Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
15.01.2021, 19:06
|
|||
---|---|---|---|
покритикуйте Пожалуйста скрипт |
|||
#18+
Создаем дерево кэша и генерируем случайное имя файла Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
(''')0___0(''') \ '( î_î )' / / \ \_0_/ / l . . l / /Y\ \ („„„)_(„„„) Превед ! ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.02.2021, 10:47
|
|||
---|---|---|---|
покритикуйте Пожалуйста скрипт |
|||
#18+
0. Если вообще строго к коду относиться, то и параметры определяй строго. Код: php 1.
1. Сперва уж если совсем по-хорошему, то и переданный $path надо на is_dir проверить. Я же правильно понял, что подразумевается создание только ПОДКАТАЛОГОВ с файлом в данном корне кеша? Чтобы сам корень кеша существовал. И если проверку эту организовывать и при несуществовании корня кеша - возврат false, тогда п.0 переделать на: Код: php 1.
2. Лучше брать mt_rand() . В PHP7+, это синонимы, но синоним для подтягивания к mt_rand. Так что лучше всегда использовать его. 3. Почему ты уверен что каталог при несуществовании обязательно создастся? А если прав на запись нет? Код: php 1. 2. 3.
4. Циклу бы всё-таки гарантированное условие выхода может дать? По количеству попыток или ещё как? 5. Если прямо придираться, то строки '/' можно было бы заменить на DIRECTORY_SEPARATOR, но я винду как целевую платформу не рассматриваю. Но как повод придраться - вполне. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.02.2021, 15:41
|
|||
---|---|---|---|
покритикуйте Пожалуйста скрипт |
|||
#18+
6. Ещё дополню. Код: php 1.
при условии передачи $extension = '0', или '00' или ещё массу вариантов - даст пустое расширение. А также предусмотреть если переданы пробелы. Их надо почистить. Тут надо делать так: Код: php 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
11.02.2021, 20:28
|
|||
---|---|---|---|
покритикуйте Пожалуйста скрипт |
|||
#18+
В п.6 допустил ошибку: Код: php 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.02.2021, 08:03
|
|||
---|---|---|---|
|
|||
покритикуйте Пожалуйста скрипт |
|||
#18+
ТС, как насчёт Код: python 1. 2. 3. 4. 5. 6. 7. 8.
?? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
12.02.2021, 08:54
|
|||
---|---|---|---|
покритикуйте Пожалуйста скрипт |
|||
#18+
катастрофа , ну уж если писькомериться длинами хешей, то давай сразу: Код: php 1.
# 53592d42865761859f5abdcd98e80ec5208155745a1527f08b51d60a624a20cb122f28b0fb8480198eca04a8012240e3b076dba3167f1b0fe1f8385a8d4e8688830df423a94dcc005e19bc9f99a02a1d738403083801cb2e5875f631bf6a4b9932455dbc8f8fe86c7191855c739e7dd4814b6206938f05d3c9144c41f9d04fec80e9feb4bd814f744e462f1d568faf616a4e03cc48459902e247d9535a7c9e8d2f740d3cfe4e980739cdbbb1f8c55e4a9838871dd3b1ad6d89101b5e0522c0494f620512f7c221632b7b47ef65becd107b2b10c96e6dc7779763a4230ebe2bffd9276a7faac69793046fafccdc52e42e36f00027b33873017410c62a90dc43239b165a3730d6e83799483e11b6673d442856fd6b230ebc5310a4a53189c14ab974904dceec697575ca51b839d20d17408f36cd98ad1b284bfffb1016b03d877578feee2a5f4ff098dabd93e66fc7286d0ccc5884228ccc96c29e9e6da349a5e345bc8b0a6392a5dc9f7ef6b6cb234301f62782444c552c6e752516ef8095945373f984aaf8339795daea43af6186b96f379e66d0e3370c6f3e30214821aee944516c753024b4a7e5d6e0f491b187b0977b11a155f66049b91a933477b5386b4023fd15cc3ddd39b82fe10cdce7a6b052aa89dc41f98c7a33071233b599e93a2d33a5987b22fae5e98c3f1e867302143823a21a0e86327f491c1a94a5b8e202cdf6b7d715d8e420224538889b7527a57f6bf9b74926bd4c2eb62db39f16e4582b72a8728d42d6a6d0647b0b6d3aecf0848bd1596b4ec8e2bb9e6440e97ae5287a84d28dfd8c334f743101477af81073a4e2de9ca9f5b6ce67782dd1b31576cc0b5b29f20a4298048f91fa1e1d107c6e0f1054c20af2cb4df336a5897ab83de168136c4384108aa1812431dca5a86618360fa526783642385250e1879cdec6376a7e7520a949914e82e94de8610f5cf774bb72557be0d256b218ec6e3033c3f197bfa6d6658dbc894dce68b5e83ba45cfcf79396fc1bf28d49af55c252c5003f47551322ebf1c5066e37ca90cc3e3d655a6df24458d2f615899ceeef937bfd1fcf0aabf05193bcbf7f8a87d9df78e3914d5c90729eda243b1181f3c5d97c2c8f0bb1ae390e3b3d18875aa2cf377a9881ad851e21333247b0a3d55c976d068556d09fcfd6d4ee9d874cdfa93203510ebe6f5e6da2f26fdff5a3a5a214c75606e727e4a0defe4cd8ef66b40ac5b3fbaf8e0d4028007bacbbff04793dc69ff841a8b6b001f3d7cfc2477434e8f05f58d014e552a3e749eb8e8cb74c150572d18183efee1c37c9795512c92bc984239dacfd41107c594b8d6b90ea8d803a625e37849b5a85383ccdbf8bf95fe7daf99f01387d122ca6e99b8cb093047693b473f33264d5e8e5464c0382d582b7c4017645bb5ecc85f98adcd707f6f0ab98e7e9bb7834415ecfd0b62893b1ff05bf29d966842bfc1b45e708cdc48b8a5d45f58ee9af6d2689a1063fe8031a17fa0b9669043759759f2c697a14cc1b8bf8ce9d7d348005480c6170fa317c31bbb1549e96ca90b2ab7212df621129a339394051472dba3370c84b51f9b1e58356a47ee1853388b4e592b222986a08b4358634b486db7bf9d464851ef5cfa8a69eb47f7eac69b53943a336600f0f5ea86ed5842f16878dc196434e04b90ba1236200dcdd015b69e45569be913360ef518760fa5490a099ec6d87b1d951022871a90ebf32e83c81a5f276166e25aea9cee5500947cbfc0a33b08ebbe6fffef77aaebfc59b08e9fcb9cde4b7795b496aa8ff88f1fb1850bedf094a914762485310f20edb8edc589524b15a46138213c416ec5d5bfaca9d14286a8752fc3198bd4e8ca3acb2f9ea9ea6c6b18050085fccaec7ce709892652edc2851e5da9e8c4d597c8a5c3949c039acaba9ed83e0c432401f06e85ac09808fbdaa24e7f8a6a3a9014e21f1f5940e941d89633361542a7c89e336493594468999146a1360a1590af37ee76a3fc72b9193a55a24d661eb09daabcd0698eede67e79c0cff587640c2990ede32320858a2517c133257c07f13d76e9af1d02e665986ea8301776205a0a98dfabd6bca1926d7f53baec84cd41edacb4ce766edab0ed887230733991edc56374c716e73ab363f7c55f267b6e26ea0e622dc1fc0288bfc721bbf0af710f9619a4009009191ec57884c6f37925fdf1afd936a430f841a59a7ce62b10ad412f8b24e7fac1ddbc8a2fe4e0e100307354f1eea7785b543fb01a1ba547b2bb9b876e0008d74c590687f5185c9fb2449e7403e51e21fb4ba452fc69ebcf94ac5c73120395bb0a5e05facec6cee75c0a51b94e6917bd8f626cca03171b13ffc1b18190f76ec85af29b6b650c665f4767bb263b8ae5375a8734914a40b5a3f44edb9d6e4929d8a5f4c8b8e231338651c6ae1aa440a709383bccdb7a57b4f266e46b91b9a6f795f27f9fc4551e91f4d9b2ea55d778a3322d6b16006c6808b3da6c8574fff8424a5ded75520699bc159521abcfbe7399eaa14f4830675ccff374a6025fb4d80028a867278e5f93236c19403324ad2b60c74e3478ba9b73b7fad7b8c8937ad3acbc81f1c42d1ecaf0d0c339ab4d4c8e4e11318b1a9919688860b17aeacf42a7e20f13078104e491a1402bcdd7573d517ca8ddc630bb49d1bb5a5847b84344f1ed4c59ab027be1fe91c69aa24af1aa0a3f1eb6448727059fd9dffebfe5046c9ecfbbdbe19c96bea9ddec3c0d653c2d5093067b068cfb4165ec4f40d3c586138e56dbfbe74abca2af10268e098c828a28ca085323f2c1ce8d4ab0f30cd324119ba6297c447f064f0a1a1522255d9f6ba7b10321518255b345fbf13c3134f900d4de92c7697a8ad8d1eb4f0191da5dea7a81575431dbef68f26dcb3bfe267852ab6c1b8872df33b863840eb3859dc7597ae4cf862d288a9cdafa79c7b16411ccac850b36f581e8bfd8380fd75b509272e0877af736614a91ded3e8e70ab17c5da6b467acb01cd2e3f2fbbcf1fb4b9f8329a69898c71ff8c8b74106e99ce242853f72599d7c8799228d178c2541b0ee3d099ee6dab7f76a7ae8a95b85df5ed5dab248ed5ad67ed2086ed3bf9af9633b6c31cfe4a0765112000cb2f81d5a0513003b2780abcb0ddcf4f0e3481b308a5e0b6a82a26fd0e4df97b7ab4d7d70878557aff7da7f894ad5e50b6b288f36976b45b8571c79b8380c852a8abede1f82d901f8742b666ef7a1859cb7b164747b9cabe7f51e2bc74db525fe39413e821a5bde27e2d124b0062133041d3f02516f755f0822ffc713c8bd471f19e55de73e80914bc6f1ba4f9fc2b44b1e84fdd22bd266f80530b412ef327004018ee3b8be9a04a31df0610bf7ebda3b6558ef92d083f73b3bdcf1891215b02201ed38083a0e66acd0294afd90af1f17c02369e975e16fe29f5eefba42dbd9bdd2c17d52c72720ebc34822099eb5dde7840d3861ad5ceee66cf8378edc9cf887c63b59b6e8ca9c5d7a8aabb78bf77b7e3c914b65d7934209596b1860a371af3588aa7c1d39c40c02fe34d6655eaee3795e0bde0411b0b95a47e1316c4aba62f69cb00c5e9272e1ea7b6124b34353bdae5799147f907a8d9121872269cf62838b9318fffa3d559cc903ba0ff7afccf1a516effa48cd6df1c3e37428937f952a9ca291d6cf012712474d99a9fcebb186d273edaab7ffe085a95f3ca9b82fd02364cca79a88deed6b8728aa83314768f3fd5e68bca2d4284ef97ce3ae8c908d7347b193cd513abdc5ba8ba50c98ed51d102ee0b47a4ff0d600b5f09df81519123ba2f7db429c770ab4e641b89dbe900778b7ec39eccb52ff2a4f53389356e8001efc29fb2aa61e03a1db90900044fbe75e650490444978c4e1cca31621337a22875be076b24734bdee35d1815f922df12d050cfd5a462b9aa45e7102d3acdf9f785b6df8e91fe9e38924cb72085ff72293693dd74bc8b838a0ace356fd1f6d30ee758377150f8230aff2c76f6bf4bbac0c54c97925451eaada36a332aa2b4a99e4d4db599749f0f739eeea6d7545c5b3c852f802d7618b5a486e82f748525741882c91476e1d1f13cdb0ed25945a90fc8caa413ddf7c8651e703ba0f6181440312a22d02eceeb1a697d051e30fb18b9a705506e0d3b38708ee6d0aea95d4d50ee85e15f365cb58c271e2ffa571fc82b1b1e67fd9e7c7ef7cc552b11b68fdc486dcc7c4c25a7994e86bc60382203f39fa4d9af36983661782c40c4c1094e025e273c3035ec0f339aad558a0a1b42c68c127e854a5cf2d1a9537eb77e47abf00b248873889bddd5944a3ce8003ebc06d2078bd0e62212a2e30d3d783ce09f1d17dd9d903fa0ed2437d998b0f2c63a89fae5e85e07706970169fc7d1f3ccd36f18602d731ebf2f2e5a5df83e2cecfdb2db039730dee090cbad20a61aaaa5e91bdb5325543e7ecd4e85c4ec77533514e98be0b386e0e9d83820a6396b0f301c8068fad8f4f50f5a03acfcbd7a3d35dd695ab16280fa526271d7d5e470fc199c04bd01f49d6dadd403e97449d0d106df9bf1d3aadbe7db2fefe935deae1e335f4a3c4cbad006c8da3e5772a06b13c95dc1bfa02e6957b4e4007aded35625762ea84edbb8267fea8581e194bbdccd62cd4de0e4dd6e8cc4d26fa73ae010f538c24d93b4887ce5edea1ebb8d321420261993f094ccf2ff1254bc95c435f18abfdc51bc8491615afbfd62dcc1657a229ec839ca73d1898ee0ed44f9d0cb67c69054d743af20e5ac953a80bbb5b257127ed95dd48b029162a8dc4407c45e90be75fb13f855324490d6b4f2473303a3844f73cc7b4c28a524ea1e0d3c5e8da48f7f1dcd2e617e9084a8449e3e652023a8f94df69e6ed8f66872885f066474d9fcee84db45889ed384bbe5a35fed27e285e1bf4b6fc556c1b6b03d8772b1266f740470822edc0ef60b8d5a4a7421fbf1a34b9460f5f13a5b4a43aaed82d10d04e52530286f3ac395ef5e3be8580bffdd2500a4402ac0c46528df89148c03b8982ccbf60f750899f088c76d596bb6d631ee2a7333106e055037f8428942edb0155d9e7046a16945c424f4456189a70596d47f77bca3834a2d43ac66983089833000f49edb4078c041b2d36398a4b5cdef7443958f30a810b51646d858e333c64885ae499a77ecb3c9e35d6d4609049c00c97f5d058a81dbbfbae0bd36910cb5ab7cdb20d673986c7612f6944b235b4373e624c67e700e9b4849bfb8134de291e7e8b80ae31c4da03a1884427fc1b0d19bb83c9cc96bfc85a99d0a52ee89c536b52b4eebbcbdc3d7385d29abb8425e6ca00233356d062e92119fa1d28944c0bc61701855e69f29613bb1c341fe290ae15ec86b8565a30f4c548f2f2ded87c8435970504da2d4b59367034e8fa44119309809f948890a2d07d567fd0e5a290c6a427d9e9e64b32367956a8fc5cad9efcd134ec2b71b440fa6fff0bcc8f26435b5d8d125efe3ec8fadf1a40eb81ba3903e6cca1a3e5d13fabba8f42696dbd81e00b3edcafc0ece9b0a3b83b82602a13a6e37d5eca3c445d491a039b99cc8ddee9b0372d5e6245d1c0ba06f5c497fcb1f8b3af4cb315ad995775c3e0f404304ea165545df7a743d4a224e3757d68f4d85394d7de89f8ca94e093cfe4ad9e88844a665e91c1b1300b0f824ad3ffae6273b6a0cbbf0e1bdaffc8cef9e521f66879a3da1344bf98ca90237b76eb5aa453351f75fae930a1e413d53b8d34895eda1904daf80039119a3f1d0f782d18aef9d0a5a822b9dc42454d583d457a66ebe02c221a79b65faee66b2b8013a2cb55d56d4a59adf3c79ebac8839e3528d795aeb39221a341bbf9fc592e36fa441bf562dc793921f2c01e3ba1432ff1b48753ed96506db226dfe6a73f91ffd99f8445dfd7a3a41bf91b7cf7bca23c991b25d993af7ad3cbb64c5ab2d5e7500ff17e924bcd2399c909a08675875f32e748b9b37497b645fb4f2f4f8ead21988288a9c949100376527fe4a0be7309028f82145604a0db8225098d5a36670e55a19f8f6bae18c8583d084c70642ce59fbe399f1e40a42bca82b674bc7d4be96b11c08cf57b3ccf6a6ae511278b94f06f0819645ab33cb915d01def47ca305f3a092faf1416c50b454b491aa3e97a89065aad6d3ed5732611daecae56addb0ff70a98c6f78ee2729eea05db557e4e82d09d092b7d11a5e8b74ac6768b5ef08ba72a6fe091eddd55f44010a6f493eebf1bf21e1117aaad2ed1b8806eb2495e3c478350f05b985a6034369d789b2ae469f2ed59a64ce1891ec837a3f3f6d047d698290e3798522d7f8a2f742b95d8c1aa6bc323c52991c4e941846cd77a248008a915e96a113fc05aba0c2bab6d2295a655c36f8cb7f775e6c6729610e32cc42d04c0f4ef969b2820a7add4502dfbde81d2a5314763f43157c16beb1a370511bf200cf4661bd4d305bde0441244c706c254fe2da1ef49db8cdf5f2ea8ade9466d4e5b7e41b50abb586e6a615c3347f0766ed8d19f2024f52f6b0d796fc0b415821909a210344f1e985efd694ba82ae4a0c6a79f3853289e0db5d8ddba2bbed7f8c537c0d755d9b6c983be6a963ffe0ed25871d7f8fd14dd00e20abdb0370ddfd07a2442ae30ca9b1966e8b40907bbe766e1ab15999015c2dd4e68e9890145fb1ff5aa12680ea65bc22f8f4a219e9eaa4bb0d321afa8a2822c6527dea0414a41841dc9a4bcb7c04db7cba77bf3f538c6059cd1bfec5ba4eb8ef07d98ca07ea7c5da026a1acfbed73c3ab4ea8c1f5293c453c25f15c2e7185ed5afa44a21013caa2e3f0ad22d0f8bf78c181b6db57d3bc7ba326863e16ce7788eb7264afdbe14fc53de0d50d4e6db810bc7af8932f0636e0e944de78111bdc7561cdd9ada2534bc6adbe6ade8d25e35f8492ac1d367b773d898e008efc2bf2d0a6a779178a162c8cc92a6785fcf42a8998829c0677b9ad95abd68881a27f160480bd25d92983175665a90ecb0a06ab5d6a14149b0dcead7033e88d1e4ac121f4506340e1018860390aef221c206a6a558855c1290c1ba7c14e2f8021d625712191968500d1e5dac5341cff1eae3fcc12f6a42387e77c72a6c54af156688b6808f91ccefc559205abcb758b78ab5ca74b85e289e84acded285be9635e3da32a87c596976481ac71e57978bad91e000041e2f57c4a8b7dc089b412b1f09a00cf033bcdfa7dc3f64e4501a155294fcb8825f96946d5f4758e8fc02d0562392b33101808b8ededdf035abe038782352f86ba5bc54f0952839d0b620096523eed988be984e3fa089a0fdb21914ef6569f3e23a128dca27045b0ac7af80959961d20167b4c40ede1e6f0e35f0ef211ac53fbaf6e630a2e74a9912ec01b8ff032d94150440cac6ce5a3afd4e565966306e59083e12d8dc28e756825234822560c64b822fdd82087c2d92db28bf51c52987cfc568bd04f91316f6e0eb7a70e35894ba2218bf5148829850d38330a9c96b0bd69883abb6764856575d64044b4e73581e85bb939c299745766b17c573806ad0d6ed58b5466cb740dac64627203b292f86c5148446589eb5912bbba862f19a34259a64ccf2916fdbab321d4e81a484b82815c5aaf924a6ead0bc57f2f78a82915110322358d3af7c66ea0b403a1ba0ed2c8bcb9f7ed36f486b50ba5f33f7160f2ac4e052558e82743eb9ded202d08f79949fd812102a157ee6484b95dd9722d0905b00b760ab959aa085b2c147efdf683c7f3131c2458d79ba7f8af1ca58a9a8acb71fcefa51426ebebf07ef0e06e303a4bf1d8ce3feb0bd6f9e7f7a5becae1631e84a1c40f8219908e2e0a6f1b874eeb47e663d391abba7ad7e8b77b0f7cb8a828595e46d6b4782f2f0365df73c09c0d9056d5eb12d405baa9100dc4a3ff967ee0139cbd3851897a36fdab11885747ee22f0fedea42db216a65db8fbbd77245c9aade3a9d45770b05d8a0f38d708eeeb9556b9ee15ee8da0502f2482ff0a228a0ac91ffa5a32a4f94a6ff53c8c23ff3a3a2e2383b290e576a5293a889f30298e07cf42f7695cc812e2c7f69ef61630cf920652435027de5fe8d3ebb1767e71cb5b5383395a66d7231098074170e389ca6fdf5bea5d2b3b358efa3e574e58fc9ed04ce4ca54385e5086c28f44952a12157d9e89d60883cc888513df720519cdfdbf4b6e358c3da63dc295188bdb4bb77f4894bf0abb004b6f55b646e91124b1f6c2feead07e6a7df7199181cec306c8bb6e0ccbb1ebe3cfe68d41c7afc3340c5ad63a093c122b551951f01eb6621899415f7c3648d08e6f4f18302fe7e417c23167eb75fe0a5a9dd2e0647f3a0517dbf734c8c103c01681d84c6aafc062306cbd62e8aca7a4234c939de1c0b8742e17bdc18a1931e405dc7883a78d2e44b60c6066d9ba5d0fbedb56afe5ad411432a8ee79e46cb36832cabe7284eff9d6e22ace2f71ad856bef114c62e5cbad6b6ded4c0273eb5c3c06636a04827107eb0ee42af9d94f01c46ac0139373b36a0dacecf6c3f59791547b25bc40d5682a03d0d9a81f74c5dac84d07243686ac52411f909a3d87451595ca0a392a47bb651bc42260724617cc2da639958ea9d15bb5b24b1d0a901ac1875f6aefb71f684ca27eb46266dce31ae4dcbe90905452b3a3719f3653b88210d2f8c9095a1d176865523e3893e2e1e919c4adf08c3bcab3fd57ca276409d74eb774903bbbc811bdcd4da60ad555de20f5ca1e679cacad913305528996ef6e802e6e62a04ef8a9e2e24bd365912a18111806407c1335a95153f46c59b44c78c0007aa29cd4f452ebb58cbec72d8843fa3c8ad5ddb17fc7b1d63af24c6220283db8d333aa74405e34b149997648e2d5004b1796d20ad737ead53deb5659a516ddf7b1f22149b8db7a1a9243f373111459519864b6c52335457a267c61a55be959c65367cfb549e7ce5c84b30a97023dbcc99e613dc2f400655851fadf66f37721e1d09a82f931a36a139d000db6d3dd8035c3ab1db33bfd6cfa1a52f136ce8e0e9448c735c448ea60882b4846ddaa134d9754cbe9d37b66b2e65c03744e0a837de6a38e6734f99e8c2e53e0188c55420ad965641dbb4de3fb52d07ab67255a8d0403059f04da57cbbf9a63fb02f9afcc1b0b4b6220902e49a9500ec15b65b6a2133367fd04e728b3dcfa89f53684b4ae0da0b64fb0a76a3fc44d006e0d458d9336668088ad7816142f51ee854716ad0fd1ac95e79392324f2d52386d6d3125c695999180346fb5184989eb463488a0ec5fafbb39ba061b272a893dcb573d4c91bef1ca206dc31c0adff03b26409fc4af554616c466b4fe77eb50f19fe90883bb1eb28957f1c9650dc5cbf24d8be695980577f9ac4f5e2f11ffa13075718121937b65a105b785abab1c8ff5f8d064484b67a4a438b793c7b766708c4dab79e64347003579d3f562ef3f29c08c6872f834fab9d6541942def590724e9c15a640d72ecae64003b016b957d617e9d8ba7b8c25b0ee5c2853c7b7fa72e0e288df469d7cbe4bbae25edf553536ada88bfdc2c52478ae69c4914fd4329d7295722ce8d14004f8e4cd6da626ecf2ce6ad80c6fdc7750dea81b6707f11d919023bfdfa0df716b6b6679925d69dc643a6b409623ab08dda780be2c5fb523fa4a592185d1a9dc30d7c761855b9985e89133569ecd1ec7d3cf0d35ab01a4318822611b3b8c0d173297a0a5b7f0c1244bcb3941ec71c47170f0c6cfb9a1d730308049bc2032cd49c6eb0aa68df83a16e01312b5935312a5e55dfa916f7396963db25533d4dd358623f8f1b5be1168dae1f9f772606da4d8bbcedc4011963e7d4d82f6f8af40d1572285067ba7ca6636b4f854b9cd0f8c3c52447d5e9c9335becda816bfb6d55241d4c0100eabc8ddab117f1feae48e008489eefbdb9ba15fbcbba94f589d96b1d623ec47b7afac7eeb69dad45288510b53c9eac363eff34222f977ce84cf2959f36a521b5309c9e0dd540146b53bf8f9d5ccfe523da9fd66fb6b59939ee237680de37e49b52b7898fbbd19c63d9272c6f48b446f7e05515a7f11ef9d365adc2098ffa7cd31ac94fce49fb2dde9cd17082e44b22b63cc2e1801957149a2f5cc98e1158781b2a89b85f47512098806c63f6e1f497487a6991c6f7aa16ed4b5723588a0d79d389cd5ae38956a3e4a254bc2e5217833874fe8bd1c4f65dad1b86c2b77f9d4c1d0b5e7bf8d6b402a4eab2371b8a7897f520ed88a72682edc217fbb7eac8770af2b7d7f053561af4de4a51b98dd12fad29b6297b91708197fdbb33ae4c30a7bba0d943e543008098ee781cc061248fe464ba7f9c15718da1f15dac6c2f4aee127d4b5145f199e35fadbfabd196574ab9904606a043f2b95167afdf275096438d66dde22d06df3e060a4170de6fe8efd4dafd68145b8f260f02a4b343411f1fd4f1e580f5eb4edb7dafa1baa580768d7b1f829d0877fafd971386f5a5ac4bd518e8b01c21cf03f20cdb52ecdd83db6ddaf98cca416d5e179b22c65595b1cce1fac31620b2c8f7063ed7b8e4d9763ed8de635a3d5ee08d0a35f397621ea99b43510f3c02493d27ed21dccd16dc4a1c7d87ad3d9849211dfb390d6fee73ed1c14d7344fdf7babf8f1d263138f10f2313dead5b5dd07e042c782dca162d0a20a584131f625f90f29e446ad66c8d96d74fa7b954dca6b2f8822d0215eda65352dc1778cd850157ddba60726f36b6695c60099296ad6b7afd0240954f679632e9a14243c7b5461c96b1930cd5f73fd7aabccc003d03cf176b767d1ade4b018908099ef6a628bc73642cabc26b1864e1ab4dac480baad45bef94831360bfe596936fe0bd334bc50889a347083e51bf56d01983e22186f7b290660ecaa424c17447448bf25abff74b2a06d8407306edbcc9bf4986514fcb1bc9f9d0fbd9a5dcdb84465e8946b0a8b54325e9e539834f9a3074426fb65c609e635e3f8f8b7b6cdc27eedac28756be82719f7ad2b176938a972c7f26d446a428eaa74ff77f0c7b9f0391d102323964c0e2051763321b8c87b5986f137ce3ba5dc63f328e8f3f7fecfbf91f1fcec8b3190e50a3345fff98eca57c5a35169a514640971acc1188247389e18cf706987b50e225fde255f16c945811810fb83edf0052e0406cbdcc447b0c7ee53b3ab793c68efa073fdc18521e9676b428ff6e1934e868b472d129f34f6f53c4afc9f574352164b19e662000672154c5020911bc9372e9ea295c3bbfc0e275eb5ddc3f1c4688bdab62800a07634411d6dd5fe5b214a5b47699e5b717185d34a774c1b206c9ff23bf733c215c825638b55826c632e44487e6165f5ce139f35248226323b32e1f623c4603b097d4acd77042fb35009353d85b433b0e353522560f7e6c200b7564099297e11d6b7f66628a2afa400e5238de200a94bf3afaeaaeccee99aacbd6c4ff02beefe5c98904a4f35dfc7de3c539f7d9bbf866174b482e9bc40bd7eda15ab038174c700ec16d212e1757cf21e051084c9101a16fb37f2966c6eb9a4a0c01de06775e5150c2aeacd215c34c9201d5541ef6bf3a47bde5fa8fae0dcefa32b2a219c3773cf9faa195d3fc35693e6f9bed12318c63d678800042d1994cf9da813293ab7b5ced094ef5ab2ad942661db8edf44620e550dea41eb26d19d745ed6e09be78b92461abbbd4097fbcf4afc83151c86c7b42c34f2cbc1568976ffebf5acf6da4c15f7b12b677bc16928377ab15730d529b8c5910d560e61a92fae055d0c8d150b290a831e9f84363a93a57710f4451f9c953d5cca2c7e6bf1f998ec3e1ae75cb2f461484d45836161ea4796979bcd4d7b0320f7546ccaa9a55c5691e0659f9cb399a1d93b9597521d46c844f33252aadde948e9653f1ff29054818049baf69e683bfd98fd41ffaf56d7f3aa4a719b5748737180b81d3ebc6320c36fd8f94137c0a850b07bd54c97fe6e16e85462f53941272b4d5da3de9f79b4bba17fea01063ef89791d0e5e9161b00459c9431541558847467967b2582ca03c3d49c0e5c61836c27f3193d04aa581ebb861f7903d41702914b4bcef4b5cda51daa34a8626b48ebe847937e81985d77b506d8669a20f887b4fc9127c99f4cfb93389aecdde0acf452af80a55c00eec7ee226eb8bb96230a0e50291cd2ee9d058864ad0d8efde5e2b0fb7ba89ac35169759ba424758adc28f9a3600bd02fad65ab28905e194e2db117cd5e0c7eccb12c03a415d719037bf50f80e9c4f2c0922c969c78bfd39bd03bc46afcda73169d2cf9555630870add7794b78c62a0e3b2d0385799d8be47b81aa40db8759d8807d8ad5426c371cfc1eb6352785b356c6605369d51b80af46ea29472f05ff24288f707c083d1a883e9dd7652f01c002944f1d5774384f35225499c69d0ce780b3a08c511234f89b144633a44df17a1f0e51808e2e65b5b956f8cf55cb03752d62bbd8f35cc19d6dcb5caf5bee851fef662be7e03bf48f1b0fb6ca5abc2d37668582777b515b441ddfbaf8582b8c90f75b4c62d22e59d8852974ea1b6eefaaae6eee5b7b47f0dc48272e9cb90107671218a96e015167605ba611906787c312212deeff7597fe40030d250d37a3cb8ff7a69ce708940a73279b529eb7e722048e07a91ccbc37e9a4d5f93092c9e24106cda4e8806fecf805d59638ec3e65b4f248d5e03108fb5c825b10c2b2f2f0b2889ed829b074151f29550231caa9885a081be327c7e4395ec1cbdd511c8ec4a3d2d3353c066c350ba55a876daa267768e78470c901174bc3287f9b2c95913b3c4533f27920608a7d5e30d9c457b01fa9b629551f0b9d53241d53c2fb996deb7281d2f3b40158c76ded5fe8cccb724a7c87be97c7db97bacd5e818f6d1c2b36df47b269325b3649e094f0f77a78ed7a70b3f8368934627564e108d3226c1f7f2e87dbb020f6bf372e57644db11e9cc2fbce858618d83baf3211983e71aad219c2f8cd9aad9579c56f155f9d8bed70d325bc55b35ebfaf34e546aeded6455bc75ce7d00adce41f56a2cac330c5c0d9e85638cb75a5d979bbff30d6c79afc4a27c543e420a003b1cb38142a1f9539cbe8566029758f90bec0c148f763a82459923777eb0ca3058b0b788df899ebe22a78e3678f7cce2d21f91f05c3346d617253c4ec9af2dbd5f4488b772b4d8f84bef34250d8bc3d79ee42bdae4537af374e1f15b03bd0e7e1121d8ff8302b9b4cab032cb69529d56ee0bce3ce6649b69a6b2c028722ed7bdba59a00d2768fe4487111a6f39969cb7b203c2ffbe02999bf2f9c262e1c6f30e04c29fd0f97036f5b1cf00592f9afd2858f0e4e7b5a95ebdc93169d1ed6b460b811f252dc02a494ced3521558493499503b2a7918b8100dbfbce4119dcac9de3a23f43ab39e1e9c2d9480cc6e356dc0f59e277d4b4b118eca881934ccb8f2ddcb54991c352c82ab3a415bf3f3c9e0daf0bc71e21aaecf043256caadd11ff5e00cd1c400bdc9d8e05421c763d83262fb2482a6f27c39f3d6ac157db641decbaf434682f41f5e53f243a64390510eae295d99705b315d86da37aa3856bab94738538533caa6487740d3971dc990bc79127d0b0ce0f72d21b3fd315ec9c28e909e47bf8c884eb5dbae05d0ddb436aefa821f1b17bff12026c1c74784ba3b639b5c102d06d0ac249546f43789a48828173b0250d1d178bfba4c302d57bbdc6935557981277419e41272feb8d7e0b1c4b6e7ac9982c6727bd3ed722f7f4fe3da73db1dacfd2037dcf995bf63272b767ac3dd4f76fbb51b29b6debe40543e1bf02ba79a2e49c4a2218c66757684bdee37b9326d71bde633ec739755c6ff9cd5be4defad4b37119f9242e76db13504b7de9dbb035f7e7dd0251c7f80b9c91c63bd1770c8197607e216eae612fc70da66aef6bab1c1000c00304ad4a580155543b03c14a839e97c007350b4fdf2af10ef5f347a164da15866948db1d0ff137c774bc78736654d72589500409127b53aff9ee995a23f277f70c1ba034a360ce9c22397e6c6cc17e173b754d284aede77516925ca53328beb2506f12d40e619b7edf7948c2153c86d7139e2ed25a1f1452b9a25ee4b2f03a10a0aece1029c5b3e01beca80723f2a6ec5b77639b8a0f78e2b99900dfe93395875dc30f4ba38748cd341584b0ef305ff07bb9e09606f02c9d392908f51707edfc3e5132d3cbe19b889d722f4c4b84c0a83b12632c9e134a194a9eb9ed4568b099eb56ec9359c0bb8658b6895e6a5fc31e78e001d2f38855b5d6f523a5d4140184d1c2cb824a1bd55ebe7222db9224dcb86cabe967c9f2d9c6be5e49236f686971be5968c91f8ac0266fca2bb401760d8c8575377b96ed5df4d9f11c80d4a7b3ad2df2d0176d5316f6b39bb7d20dddde0db3971a2399bc9f228c56c2c28866fceaab919a5b1718261b6d68f9afd5c47878be53ed5519a7d03988171d6d9efe385377bd06370871c8c431a97c567f780baa72b5e39ff9a39fd8e7200cf54160f1632e113a34f5a028e03ec6fd600436fbe90210dcf606f66052a63661dad228e63e26ca6d85d0f7bd0cc32b9ea708f7ae3a99fc42345adc39fbefee2417921026dee45fa5df1378d09444ffb7d69f1f3359e1db5c34dd3208e34e2ee1f55a45ae44b3d9d18904273f28d2e3a93acc04b838dbebba767427d6dfea3978945d7c125f8194f55f550f1ceb80c8373646409bf6b591223a9de8227fb815b8f1a43ad1b796d8b63ed18327c4cc50d6440e8b7e3a36bff62c304ab9cf70596b1565537bc11bb445cd313c7758ff08a1fb2cc4f4182eb33b855248832744cc9f06c0240ec938fe128c80da6bad4c46fe8b05a3430489cdb67f6f7d0cb3874eacde02532e38f52aaaa8d4635830cf3236b95f3daa8a3d34df8e106b9c6266db110f2d8908966f5f73f6dc9b3d67978eba4be547928fe3e3ebec5644011e30dcbd1f2b79dba59cea82c0415200c1e5825f55113acf35114a376929293bf93a2a5ba2080ad65d756fb62eaca0166cfe16b3e12353d26b9c8bdd36dd3669a4f476f6d43194d6ad9a3184ada9965513876ef5cce86605929d790f1ea4a44c039f753cf437c5e1f7b9a69d83d822185942151c66285a8509c63f5d140f0d9afcea452e9f78ce2b9bfec75db8282a2e7bf51e6be6fadc9b92c8e77902869c32fbbfb83f2cd8391baa5b8e6c389ede37feb2131789207a73a611b6730726324448983b4bd7650dc20f4a18ad5112d989082af3aea322b44849b92592fb244889cd3c4416a5ae8c99ca0d318f98fed51a562853cd250709ada6c08fbdaba22e3a809e97d82ce4c137627074272ae07b2bd11a1f0e69311a5af2a928191f04c0c37dff2e48f452decf2b2c2d56aeccc0a4676141fe74aff53162ce60dfb636dc8ddaa8e598474582d8db2f40cb608c4781605d92f300ea60b73342eec4409d8fb093c7471aaefeaf677001fb96fad4c437c336b0ba875c32fb43a6f43e77781bd9a490e84423690132a48d0fb512d16119be4c1f9bd5347a445ce10001ea8832a9b8a30557a83b60a4cdf882a14c624d08f2173c839fbcdef78a389e85a38a6d371e0205f70715f97903235da9f8ce4596183812fbb1056682a0e4578138c69ffa9d80ce8fa5fd906fdb79b3f940a2401ba9499b9d0cc2fa9fd1927c3e59af4e96045df1d9a344b925710ddc669bf898bdd51ca1d1ff35b7fb73b24350f4693698cf266ba2b7b79cb59586ff100db41a3b7501ea888ddfeb1cf0e2c7c31a31b3e967e2b5a6c8e353740c4c9105fc8bdafc8a109a2ad6e43851702136085cf27a7eeb1330b0f717c164b5b3c412fc849da28aaf0262d4883ac8382e42451086145552883d424b44ec197ba258f709d251370dd5f43226858129740e5f0fe2c5f699e626c251d621c0d57011450b9228a93df2505e4107324476a85dee83a6379a8f69de6c45121cc1940df7bb90fe0da3ffc450c579f1d84e42a456f6eb44af24b322299547a7444d0b38f2f808b2e018c8608c53b655fac52e3fd1529414b2c2f9fd7319f22960c42dd780142971ecd7ea220735b94308ca42bd3b8e31dd3394f8bb77d5a14708fe3ef79c7fa033bb27144a3eccfdefdf0a56ddd272d98a8421978047c962f48abee8d35571a19e34ccd3758105fc40739c3a8458a0c02ab3672303556990a4ae6fefce4fd4a386d39c0ce201aa58d6f3f489b640b03b4c463d8d64191dee2493331fd5dfd748270c5e4c6db22aa23f50d51e29cfa495d767dffbc7cae1b7457389db61b5f7430c9f53754eb9acdef63e43de2d828d24b1a08b76ea1b015b9435b4c9e1fe32cdc1f79e2b8253131bb3d75ab2fcb97098260625e2b6f58dbaeb0fe1eca88069d0c8216fd05a2677ecee5918c1c4a8b0232ffc054a51373cb63ff3795a5afdde61ddcbcc18b21210709a884ec2a2f0a8381a9ecc06a48f852efa106d982cda8281b8a63d9bebd1330d7095f288e23ab18be2da2bad2220da20b4082717509b1aa89ab3cd643afc75fc00ebced27b6fd82b16fb0fd94961b9338c358bf6781b016b513e336172d627799518f11bb1205774c7b5df82342eedb6ecdc91b025d42b43d9fddccdfa1f63d974db2ade1fd99659bbd4b0668cd534d15953a1238db3d333c882700921b9d1c3b62842fa303a5076262ccaa7b4152b4d0d1ecdd3abda85e0bcacfab7e1c9f3bd5fa5ccf2319147ffa766f597766744f60ec170a76dc2dd86803f6ac520e5cffd4077d5b1cfed363ead07be131ce4ad5f8df095bf36fd9a3b98e5c440c7db34f25cac7971db9c6c0912d903240912e51c4df09063a1c603f9efb119a772f44395c7a278e9bd72063faafa8238b4a25225e3300bc3cb6bd724cf9fe2d92f6e24e6147daa280b39aeafb6e2d84ade070f3f6350abf7c105ecb266d82a5a93509f91b9f49d212235fa33bda10b714575175af40ad54662069fc5b3e08b96ce46600eab7385da22c333cafe7ba19ad9d3757c16df5402afbc08cfc2cbcaa208656ed0de3694c0cd29c97926b4347fb4ed6fe3404c644d43ace86655449a2234f3863fe3b39c618bdbefbcf24fa77cfabe9d7c307ee983eee01e5c9377e60b37bbab44c4ec76388b6406a04c734d0941244584006afeb4aecf1ac3af849264e0fe2e9a3191e5e1d858768803a3e16e74449290ac94030e81e78976a83ad4de5f35322316d379403813ded9e5554781b37f0d15373b5e313a66aa5a698b17cf2489cc3de067f888740a73be31d654b34283c16f54344d984281cd0896669e434fc2017628d9babc0bedf607998203352ad503770420a2859ee31acd7898ffb8fc828a70e8a19043ba4c10d891f78fa3b0590ae007ce8f61ad53fd0ba4eafbc5bc1e30665478794da264ac6442b8a495be79e6d5d778d4f546e8946a664e6a3f0285b194925dbc714678e06c2474720d445527b3a7caa289e6317a39b0f42c4b668eb708481d5bc531cf1551b4546d78564e1e95c962b8a7c5ea60c684afdc82e0f970a4b87f8eb86af598141b91d4abf316e570a50c563f6cbf95f815edab6444ab0316fe1dd73bfab7920ca50bfca208e3f430657af8cb91d022d4175e044016aea3737671755ded9033bf9f81935e0d645aea62899e41918c900b06099e5ee84c94a97c75d691e3886865cbb3d3bac772f72bb979b8ac9054d12f722cff05e3c730991c495541341cb54a4368851f70f0b96db8fb4dca714e8b0ee782704969541fbc1ddf3c464a82221a798fb1400b5c0eb5af195637c0f5b61286a77a4248aa954dc6abf91104d0563f9a9449963a746c9e12f2572457d87057756563807ff7cbcfcaeaba873b1494fffd643a6a79a370b65a24ab1e74ef3a979d1589fd45d5e64e6c28b54c966521e39a5d6bd60f5e5db3b9a01b1e4a229cd089ca7592d125a2ed0c24137a3c2ebccb144f9dc98d828db37557c696d8b9be070c8331162654db9dc15999f9df64e541cdfc9e0153f4f6704388dbaa27b8eb97351b14fd7e16191bffa4468f991c69bed8512792d6c053f2b8f422e6649acca8034c12681fb66c9e29b50f53f86c3a52ab3b2c9c442f69eca56ba7b16f1f2af209925e02e8dd9091ecc6072d0e6d9c4320220f18aa98ce7008027162b50922df3c3c29726c6c42c918a0f336aef658a574a9ec0727f2685b8ac214f124170361ca2a3ee1da31bc31b8159aafb39c3c5648f18904c3a10d147fc506fb76a266c3e7c6864845b07e3f1f5a323277e47573b9ebfc6282495ff47c99eeb2c99b1883b2c007018659e4900013f8c79dfaa2b2473a531c7dc83f64063698254b4cbaa6c9c7f6718d0c1338a864c4facd7e4e6203d02920050bf10767b792d8de80ff2d935a396945a00330135b51bcfb6c6d3138775716fb9cefcd2d735ff637003d0538cff16140099f9570e32e5ba723f3b35875e0164da0bdfca9ace7caf2fc7bf6fc421b5bcfe8c6cd34450420788290bc7e77fbfce1ff166c4786b2f6abbf49b1811eeda5267428e9f6ca85595c0d66fc59bf63400d5be8fe11a06b2fe6c03b79f9bd89620a636dbf918fdac5157c2d8f56fb793c2fb7e8b6123c6aa860b4c8f394df921cc6bb4d827614b001d7b9c973aa4293697fa536aef2ff4b563a360debd39a670721852e4a5bc067dd6e10e10aa0e8df37e46f3ffa6207244e8c9ee79797b9324e7b02f2b565bec4ffef9c9e6774d6e931666de17d385b726d5283a7c2ea760c6eb86dcfaa375e0e2676f6428786e3d9292d49d1cdf5c8ae8ed9599970b11835f5db3b0d5d579b143d368aee00e16639923912972b9fef235dc2846b4c4bd81b21bd7bec46092503ccf1d3789fe0e723963ab10a69a03088c9c3ad0e279e5a6851822c0573d2c4ca0ab1f85fde62bca1c9179c0f526ecf472288fdddb398958f7b4a57e7a552081970c56f85e8cca5839f2cc05c7e2e32ff8820dce7f2839d9dd3d32de73cf9eb4cdcd0293d950840142eedc535b646fb32de50b34b5e26ff45b1336fddeea79da09a1b16e0da80b13401a8d16756b237087ac9e90947a5e47dab2b506fc62199cf6833d73ddf88ac862d4563196c1cff5b5bc479fdc244bbe04654b6eb0b0dbf7a3a7cd3509cfdb128a436cd95e626628035bea66058478bf60cd331c549517113cff94429aed26add6d0caa840035c6dda393ace54429778a9ad875c4a75d22e1db7c6f68e2b6402ade7a6eaeeba167f11118f0e03d306cf5630a3828315ac68f5c05314d58a94159725f2c72b6d2e66eac93f004bf57db51b6996fa46e1e6ef1514f789ead7fb76eaf478c892aec48e45e4c1fc4ba22c304fa8d1781806a8aaaab2898de35ee5499b966c12d0aaed100688025fc3461ec7b0bf9a9302e545a026e66a83f59b2919a0305b7aaa58898e0a161911c24f93658070a2cd87171d4338c95506257e6da93709546d4c8bb50fe7a25abfdb12ee0f19e8ada516597e06eb92550e9f03805d4b78f7eb3ad903637fe01e5a017420d3dc0c91d4b25cb52c21d0eb3786035c6a3971852f2b54c30872e93fd17ecf39a573512bde3917efabbf507d1f75284177b26b3f618a100213357139c8750891a58d22f113084a196514c7a9f26d92a2dd5825808c039960f6dd9e4e5c0a5a3c0423ebbef1bccb5ca7c224a9046dc9f0e8508394caab246b3523ddf7b3f6bfe3af5bd71e949503f68a552b2a97d6f8abd7c6a449e349020fd8c1abb404abf8b7cbd8ef62f965c81a45ca8936b711483fa50cc971b5197a020d47c4e71c47b4306aa1eee874c32d54fa45d23e279cd18dcac0cbc2630e2ae0d8d54137cbad67f9bdfc9bb9cbac642f766cc2e01ffca0cdbdd8a851ef361af4980708ec66a525a0518f28235c2c8e778f14713693c7c168a09520851b971d2f99277c83a3d2cf1b59b77f6656bfae4c6d298b09a386ffab8f05caf8e190c688c924f0325ee061e2781c393171d61eecb1e8dc9f8e4fc09f1a8d75f0ff6562051ae3950b82531bdeefafc3705a4f1425d0b91e72b162289dbacf04f1bfa5a32e9d16be417cee4b8896f070b14c7fcd7d67d9cd1a666fe19d3d78d50d621ce7e605da042541fb97321c44843924f7f3e8eb06e30bc199d8e0a6fab8393eec68fa8afc599ea2c83cd6cbe7a53d4b5e2cda10112e672999e2404ee6626d20f6194051461c3d393b31a0991386b7642f835f31d19159fcdb85c89188414b7d939552a2497f3fb3081e46d8d7a552cecc52b2e554e38fb060da0bf6edf40b471002bc3705ef76644ba9239567c43a52a436bdc3c8730f9d15072398d04bf1e05464a908b56c4d9d2148ea213b37b1e0975ddecb22bd98b511af1f7a9b94be20d6ee37059b51bad4acd9e65b8b09d64af650e36bf45199b0df40b3b6cba934931abec1c934cee66c1e60c85b4036bd720ab93d6f039c102516c7798bd34192175307c304989c600ad4ce65646e0b1131eda08f6e471a6fe2cddf173117709e2ee7f6377ef13eeb10aa19ca2523874828b7e087a2288b9b217b7d9d6a35ae2478ab81ef0c6730a077b646edfc5b50a30ba63364922620332f8331c4bfdbf2e506208db4635c1b5abf18b8ef25678d934b706c1b8079fbbe06f7865e02bd686ad843c066fe6864e320244319d3573d608cf6c1ee54e8d4c3e8cd95d351ab1318b6330b5844a5ff2b7ea1fbdc634c027f461885c71d2e43570a09790a85c3cb4e1df83aeff5a9e8b5e0d6d9c6ecc60a51a18b9a9a1341f08ec7f4549632830aa4ca632972e03d5f58f0ed0534e9a7a44528ae0d013a93b6d2acf250b9a9060a68db65afee19c19dea9646fb849b57fadc0ed9eb79c5bb8f8a8906b83b88e0c4241762d275ea68a1640ff264c8c4a42043c5d24b5e566f7f78d3ed56560bd7c4aa166a2d50f84e1b901bac7c09dd37ae565293e24a01e2550cd1dffdf32cb166221ba7292dddc74a9165f62a87d2c5a828ff125a4a75cd502ada9849dec8db2226b6e563f762ac770b400b2179fb29bf6e9b02b8d5c6f032b63a8ba6c3d38b94ab9538a638b807559cbeb21351695bcc9933b7a777606ab430ef4e92b76444fced6c9aadc139e796d3ac835029915997dcb00c7dd0e990e8e367d1c3e79eea6f8f3b16d0a71fdadd2b0e23a9f666d7e7670625c488598b90635cf60883c89094b2ff0feaefe6ef8416dd04c5bd889a40cd1fbbd1f1c84344c00ddd692d98b4681e5cc712f1e71e183b3fe21d2c87933bd6343b55c1bf58cb10a0ba7e385dbdb3006eeea7839d24aeadb63c15c0888c940d6fc75c268364af4e06bc514fead99e5d8e7d4f33ef91d5ad00993dc683bc375e196af9fe923665c76ea97cddddbb8d9b3fa57fda895634fb7bb9f903f5e92b652b077efced246a9f8eca6bc24a268e9b2a9abf25e5894221c78876b07628cf8856c5e1fc8289a5966f972af8a8af8bb6d9ca0a89f34c4aa82ca28a71b97f10f36359d3f3eedb74915f0e426c1db557953a576a0efbba4bae6dfa1590bdf30dd9fd144d250d49930b8e7842afb85473806f9b06c25d794695a06c9b03e2f43384b852d5cdebe1072fc5c8efd7015935c4a1a0cfec6491335459e68fbbe1784bab4569f5484348996a27a45fc53cad2409de5cb27e777fcc4c8542ae67469873ab7361c91459d768dce07b279193e44bda5caeaf9b8bcfdca0cc929c9ac4975e7d7fff48e7c496f51cee0eb82e963e09e1f4f7913ae8bdf2d052567ffb329a3080ddd14cc67c64fe707e54cdf424ba292af0da902f6434efd45e2ab7ae8c5c7f3af590a0b3df0f784c098dc4aff5dc623a9b25b1b46d7bc012796fbbb3eda81d47dc2785e654ad3f2530d264b8b6ba2b5234fe7ece65893164b4af7085680f1a8ad16ef03a28e64575e78dd6f3cca3912d31e72193ecd8c78eadb2c4f720f5222bd311b4bd51a79a409b347c3f38420346ed8c9f3d9b13319b83175e4809e47e4fadaa2a5c7d0f6eeb5fd03858ab3f7df85ed16f35db89ff3f31f26833cfa3fcc2b3bdaccf9505c45ca6b1b2def21d5a6b77d34675ff5464e81038e92cc42d8e990ad57dcf3db9c05bae5beaf246b2f158bddf8f2e58f83054a773d486424dbd3b6d243d6210ddfa737c07e53cf9a0e5902c5ef5f1c510b56ade6da8b0b3330a7ef6304c8e1aaba78c61b3fc4dd05b6bfaeedfc02ae4310e4f9ebd4c7553dba3649696890e1c26918a148312d1bb30b14101d99a640a8ad38d5a4e8d5ea6d1c69525086c4176fc18b98db180cc1bc9d84b7536ecd0a36d92a259051afe805202208a756f2f28a286d976d0025214219b18a8e70d69f52c0ded69d77fb90181bf7c20cbc244af501333c640105738f5ea5341873a9747d19e5d1c659d4d3630c941a57336a9f6efe90b9a81d80f80e0b6f9329ec68a349445d45fb51df4629859fc1117d8bfd2708207c7d37ec61e1d31a25edd487c7d49401007317c0d7c9bd3024a897fb44417f0a3803f477090cf5c61e5abd5ed29516645ce294e55c82a093125bafd3e4eb55d6c2290e38eeefca3c5c2c83db00b1ce233e2a885821bf3df1c65c43cddaefa4887efb3e32fdac251373ff8c23fb0e74c8c6387c41c6606a608b8d12b3addba4bce15637cb7f7ed62ef0b86ccf2915f2913573683b930a40ec705ae97e52ee22a1ce601dab58ecc2d3700934e662c8375ef4cc6bf5aaa9061dc9de34e4a53a29c440191a1f87969b72abcedc006ecaddda8c3c48895da510984c52eae3f690c7740323afd09ef8429f570f377c0bee0d32f18d3602b5e5bec6df3612c321ba3a51bf8c11da4746e2f8a15f4a2a4533292e3f44c4b967ed0b4a529bc51cbb3fbe7b77c60d0333775b24cfe08ed0d794e2710630532793760cab6b041ec3461398975303d335a9d8ec8447c71dd63a97107fa1c9d0a76c87924918ba0d606b98293a37e3a3453fdacddac6b6d4819d4f1212a24961818f14072dae293c55acdd90df367c6abc15235a7a64594731bd97d937f27aa34e0c9899f70faa195be8fe0bb36f56de0ad1ecd9495a3a8fbf55a937284a6e722f8caba9e8736090b083785bab246cb582a209286775ef4822b8c7868640e5cb862f96a69ca3426e2ddcd1c777f5a274ccee52b47a234a439a23741c803539a3046e9a8c32b8e4762173083b0e178afa642e8e5bccf0c19caa337f0d984c837a4769c1911f3509c5fa9d04e68c3a9cafcdf521df6e4db25798f5a4b2a40433c11ea7dff16f5d254cc99ba52541a14a002528354b3664f1a6578427f299ff0b500ce987c2738fc40a5f4cd43dfc3f339d244e51b6d37b8987b750bc3c88c2aac3f74e0f6d1a1c142304e81bf39802903957ccfbce675c30f2f1334d22a015d3f29ce285ab9ab07dbdf955e6819e4d0a90a9672c8d0b1ebcc651ec07e06cf82a2aa5b5b99fd42844509a10d21286fe4100b1cd29ae7ca15f6e59f4c929954e93362286b7bc8d194713fc7ffcd0d3c707e77b8301b2484aabf2c2a2542eccdbd9338c73b0e2b546bf0e5ef3bb959510fb48af36a01179e835b4d4d70b39f5cd050239bef8d12f441b9c6c2f3d50083e5cc8fc16121b077bbb81c1671119a29cd5e54ccb39d3b364e2b0abe4d662fa4e6a12e975093f6c688bd8100d9b353c194cf6edfe40715fb6fbfe9a36e2472c09e56b81b9683e546326bf810812d49c93e34c8dedcfb7653b16735c0d4d1bd2b59a1387fbdb84476a9c05d2f1bf57d8a000791db01dd147a9e9cb69ad77c52cba5f27ff0cc1fea7b36ff7a5d89d836095f4c01ad182a65eaace23c45018469dbc030f5a6b855586e70b122a0ab7cdb1977e45cfd1e1b89c6dc84e8a2a49c7699a431b2bb6ac45094d512040d4d7561c258fb111ff7e6d6ce15f52b5c0e15ca490a0444ae19076c5ef094db8cc1bdfd8aa9c0c88e799ed1623e3e6db4d46298d6dc09550bc33103a2aa842ccb54fcaf6f7e60354b80fdf540f890e47a68a68a9f8a9addda3cb0073ca9981f793967d5344a0e8a5750a1dc5883229c3409e4a58ab8279d15883167afa23522381925dacc0780a372f6a5eb6a8ac90bcace39955a933c82e262793d933220e53586751886fb5c84593eba4fe02da0e8b6c2d7e1162960c6746cc1a750070e11a002287ad6088e0650e1304e368cd9ea35c7b57fcc851224e5003cb0ee79506d06c6fc215ed6b9d259a8f21325ff3d29b0667157df90bebcee22ad9b47a67c1aba3a6d6ee46fe5ccb712803e5f593e57c3be11b5292cfe2c9479dc2930146857065b50e20ba4ecef24662ae1406e9bf60e603fbbe308cb8fdf679505494157465c4257eb3ec58b71616e0779536789f0f0e226fe0e9468a39c0c80d242b3beb4bbcb662fd9113025470f3390842203ecbf60dae1417624150f0294d7c2e1cb748307895676b023d5b4c174ca8c1c7a4b6f02fcf41e9ad7f324536cadc7b4b6ee7d5005cfbc3d4edec292d4e8379df43f2eb615b57e85b7a0c3b8ad09babd4af5005c862e70d4453090f9fab869ad847b11282c4d03ebc701045ae6a3157913118b722dd761b89032d903932f71b971a505c432b0dfbd8dee9d572f7ac7abfbc7245163498606457d2ff344ab1677a33eb00c56eeeac2338638da27da228ab054d75e07fe3cac6a6ec4cebb5263396958bfa43bacee0b86c2680e87805f7554dd72e94af5446d1cba9dde78e20143559b06ea9240f9d778fc24b26ba496dbef5103377fdd1079792c44ee6a14c8e9a4aac9f0d6948a6762e4dc7767828b48f0ebdab5bca73b75058ea142b90393dc9a3293657002e3d58a63fe3895a8b9f5f09753d931b1e2496420a45ee48e7a0923ce97bb54a1bb65fed3d96e4df0e25cb1b942b2867756adaaf7f4369641d7a3917940a14dca71e706e1a83464a1776df7cd75cb81e38d2257a3a62dcfc4a8cb7e0b536ebb87c122c89e6714d05c56c6d5ba385918c5f9bbbcf86707f27d91bb8b155fa1cb06915dc0aa19dc90c4ce99b4e99946e5f603c75448c9d9d833909d09a66de82ff5440e487e6a9ff2f2a3f96c61ebccc00f05c07a3b9db662f912a2c0dedb0ff87e4dc4c1897ecaf3d8e566b277359b09ba24d710b85f160608bf96fe60ae11e4390f82fe346334e346921dba8ab46ffeacc25eaf48db4d971e5b580939de7b22b13b7946e61fc356fc189b8c6a75dac0940fb000f1af6ff9b1fd3e49b9a0b33f9c4a1dbc7bbe4d354b84244da9c41fa6172cf41afdeb36e027bb1f3431aaafbedf2ad46ff22a5d14d8fdaebcab12ec64d4623da96cafd12fed66a86cf899a1ab0eb056e3e902eab036f99c4827e2356d653c2cc9fbd46f80ddff926423026673fd3381ca76257c91cadda8cfd2e9d2eff714690815d8033ba5b7631c3697ade323841b6feae410702f3502fc7f6533da4c1b64f4ca639444b5d1ba43090d906d05178e6be21f905a5a22b378e12c9291e300c3c6bd4a73e6c62ccc9360133c8f51cba073836ba6b5905a455ecfac1da04235372448558790229a205fcd87bba6706769dcac8feb246213fd013d4eb18f155f76fd732c877d750618978b206bddf48c9fff00a1657ef8f2731c7a2d99b8060f364650d8e50aa7f4b9f9622751017ece196a6d1a1405c2ed2baaf63d62391e2ca3ab5261c064ff73fc41440d8b326aa83b2487588390c9e68394108173a6bb5d02ff871f252a396588bf75e52076707b82ca2fadf31853d3444fd0983f6b79f00715a611e8484cd40e498a6cefb40b44dfd76c19f801ca0e05356d7f6189e54235b7d38639d94fe7ed2d8c9c3a5d9241a0c4e3444f5f3359aae661d3bfe0f2fda9c4441dd65ff5519d263726891c3cceff4cf67f1ee350ac1424bbd42528930039c02ca1e94f90dd2db6462f669df34ab6a24cc06b6a37e71cc1b1301ad8f854021af3ffd15a2715b567c3028a513d77842bea70e7d429184046671e4e5c51a7345759fcc13c79f939ba59b5e5a24829882f8ce67e11a51bf6e3dca8b411fe8f96d63f65592b12f2d263ee3365d7c6808dfbd2a49945fd8b3de8508f0c01fef54d67ebca0579439c045acec3ffab59989846aa5e1309b7b35f9674edd166e78a8d5a63dbd9ac1b73d670469e5226412b2fa5c3eaa81c62769a894b497c2634ff4bf58662f499d93d4cc46a5772400c4e55d2484e002e6a998f3cf806117cdb86ac4dd03e697853c8cafbed18190ca6d4cd89cb13d4f1337783900b4527031c103a902dac8cf673ba3eb8d132f0de30a2b15b0bc32b8622e6678c216bc166199d58e1b5bd12df0132dbea5e61cbf7f2e3546d86239d3df60ca1563cab4cffa909a1d6e4f8aec316314d1c6b613da636e9dc8bf84453881e7787c50dea254e7577f0c111791f1a92a6bd24b0fd916d77cb846ec2aba42c70cfe7cc27beaf60a325bc7b64374be64f131987b51bd5fb5d8444310d7e55bf29890f9f44785305e1b7198886bc8d4277dd8e8a6319b79879ac0728c13a7e2bc6aab3907e03b6c3d659d0b21fc5a2f57f1d6c8a8bfe54f6fc8b1f288cafd8f6a86e0cddbf85b3867902b2a808c76cc59d21281d6a95760dbdc032af3bab496a404cd8aaf647a633971ead3471d9db2fb63c63daf04dcc55a17fc6995a63421c21b2505b441c0fd0992fd1ef158ef3d324d6d50695e94b0ac643788b4412be91b689ad77da4420aadbfdaa1ad0490fd036bf069d791824a8e40fbdb34801d766ec0b6652cb1329991c8277fdd98d4e00e573c57d331ae2c5e787f8c5df3d36576122143be66c536385a5b5f63972ad680667b8044bb3352536cc8f8be42b39fdcfe887879cd4c030af5d64bfc1448bcae5f22af76bd7895ca94e86ed92fe6017c61b7829506ec581f4740e70a2d45e100725ff5f925b3d2ec97320183175484cc0c5d6440d9a4a2ba44c5dd0b7174fe96f669c771d161de3a222c8826e5e8922fcec85189394e393ecf7467372e3fc61e3721f517ce2aad118ddaabf05798bb67d31047c6ec4c1623d00cf7bc3bbfa5ab2dabc8c5d99b7537da3fda498abb9123102bdadbd0e68874f8765edff878fe5ad7f7d88d53cf1a4c557c763b46ecb3652bd5b8f4b4d62455658ab0611211d2e99d14ff24412cf8f026b074c654800b75e605ecf0bede05b33b7c75643bf97a800bf6fd2609430fba057a99788c7561da2fcd40ecf9da277b7ef80fef3a126f7a6b153dfc2b6b84d9fd9adb762e9f2b6d59617768141923dc8adb8dcbf40ef97d892c0c2764693f794d14bd1d7ddf06e0d3be417fd617c9f593a25fb170aab5f7b5009ee93870f4d10794e9222f0cce755b781c3c6cf266a178fc6f27c1b3cfcccce843da2f517a8b03b70f1055b0b3d81ff6db4f2feece68b6ef3602c9fdd46c85dc0fa2dafbe946fec61e4817cc0186e21c87a7c2a76b9a08c2f145fb3b3c49dffa270a06db0493266ca08ad3b7552c84450d14e3be95fb92546cb938d31c2e58f451fdea748586d56cc7be5e5453a30d1106969d079f3000a2d1b0fe8ed7e6d1dfe9f65bee85293833c4fd5971f6441d1538fc9277ef3c3839ea7d325aaaef8a62a11c6afbdb2729dfce9c2d0e8bb5337245922a38d89a55a3d15ad456fe3a3508a2e281ace5f2c8c83fb96e56408d9a578a3addff24a4ad78afe9c2d8c72eb0de73cc52ebce95d6092b2d465ede1b682291ad4350d19f221d35a2a8605d7f215a4292621c26e5d7abcb05335dca9b4a816f2e79b16ed5ffdc095c338f729333b225c3aed41bb55e950ccd4907476059396a714a70733f41310d03076dd3e0224ef452225bcd4df6c394fa47642de2c969c168463b71de2ef4612f7898de0a105d27bdc8ff4daaae74437a8cb1338066e5f443cd2c9f5389c08b9a6255d73d3bd835a13a9546b380205cc04bdcbd46870c2ea8b5787ff1b86254df07b36a1e37bc9f343d4a4caa882ba58898d2d6333afbc64421b12b77573c0e01f290a41e95d1f997915863ce972145be5f4b0c65cdc02e4f2c31179a4fe48aadb10776c7b36582392c4b9fd8b969acdc3f9d536c56b9ba37455bf31c2f33c21596a7a0f397acc908673c88c4fc0bb75325b09454478c7bf01eb8bad87f023ef2e8708f5b1b61df9894fbc641fee988f19fd4369979feeb8e63d3a440a96be6b46701223e82a56ea1bc0accc6b40b75a12632e3ec86ca158c6b575195acd9d92389259b91b1f97824868464c790b4bec87f270813a64afb88ec5fc723007cd1f3b254d2ac33970ef0e175419b9a78fb97afed81a553c420f65285edb2545e26231e7166a3a96ff28059f47b0511758457225060406a55a8400093805200bef7df16dff2f76dfb304e01e10670c6abe024148f2129f674b472d52f8085f7d4fb775075ec91118473b08c818d6f2ac84877de0ef0e4818a025888c5495066474ca677dbbb2314ce9cbc1cbead324f0c5b5c88103ea0340172f5531199799249f179ff58bb711ef9fe12f9fc16e118af0a90ffef96cb53100aa250de8de8da80e20588de134f3a8af2e2aece9e03770a770002a90fa98219b7af95f6758f5a308f1c77811d9d5deaa763c721324d2221616f7cc606d0a53a0aa624c344f746761f0d6451f2bf2182129867dc25dea9ba29bce294a363c9737c4237bf276665c4eb836345024db3672218147a38fd32a80e256b5bf937ca60b3b2e6278f040dff63ed1b545642ebd8b75298ca024833fc7d986eb753bbbc8029a6d6fae626531458d3a288ffd804d9b0f3e11d878e3992709adb64bc8d65e69d4bc6a2ad271ac3b9ceb2d9fb11ace2911847f0b72f15d34a6108181ce1f288c47208964d6ebd10a660f514d17831f684f6ee1e0291637ec46e407dd277cfe970750c8028d78b1f838223b35f3d8eee9021466b86ae629c6e3292b2d88fde4ac944c7269e06c72eb235b990b50700cc1811ceadb5dd366e96d9e04ba3347f23a91d70563ac390d56681a5e5dcb96411c964a3def0bb6fe8510cb9b0011e7313796468ef58ed10d6da698fad586737f47005316ae3c9d22e536914788954c47126394d1b295ff6fab5e7d5735adc43869542f8f559a5009c9812c690c25ff7caf82b8982d23b019201ebfb25d9ba782edba8082554bb7af9071211bce64cad189e1a3ddf355e9d5378eb6cfd45549670b3012b4e45673c4c8083cc2ac7131e275a53f86efb0e1a429d886627585e678dcaf9e428bf6ef6cb0455ae244eeec61d218adaf76361598095c70208937931050018a51b15755fd32168f47674b5188549eaed790b90da0bb237ae6e89cfb841e353f4593b80e3fdc74569c5fd6308610d1f7e37bf8945e3fdf760361cb305ab779ad435585b8179992c5130b31753c255917e7983b8f45332ae50a9673121357da249473e9dc016cd0a41bac54930a01049e8c69378d9534b695baa10a751a65c4a3ba5a8bfdea8c0c1c9beee564751610c4e0e106b4580e6295b017ff2bc4201e671fd4c468f4817820213275a108b83799555c4fc6fd0e69fc0ad7b362034a61f5eaea47201b0253b0488244e52e2b0ed082c335828beea185086439fca61002f906093016b8cbf52f7b5b91df1530783daff69dbcae9b509512923806a630f6fbdf726fc52a3dcfbe08a9dda152edff896160f012d35ec64cbcbea22df2e231f054db321716975432d2f2867b4d6e3fad4f0fd04bd006bd594a0dcdeb9fb0e06c77e2dc9043592d08a43b56ac99e08c79326100282eed9097783c8a6a46d5f4ea195c1e008f6a435583add31ac94a8fdbcfd127c01f0c18b502f5e321a283192ce15069991c32a7817f5460ab5af01c380d8de12b3b4c59477f1321bf9009884386cd35f7f898b8ef6fc37d44649f87699e91a1614eef7e6ed65a640c1f94929f45deba4a8ba2dd71cd06fffa4fad0e0c1afbe813eee2676ce0835fff36b52665f50fbff7c7ba3f7ac314a0182583e19c959b11ec1935ea3bbf21f3bc3bcaf515cf0fd387af9e82b25d25dcbb9d53e2ff008ce58712dc6133b42b4f82ae893606ba344206a3ba986d26378ad51b91974acca64b3a19a6ffd4bea65effb8ac09d5c127c960afa51584d1db140efce19280e9af7157a142a363b413516e2828c8087cc37333022a4033f13c74ea540275b13c3dbd51ec8aaf4f19836fb37e6b61febd23342017c378a09dd8b4c3350146f02144daca134c75e40e6ba73aad40c673f64e9f47c4eab183ca7186582a9b72aded3c9560ddaf4bfe3e99fa24054a1d941ee5be56c4a391eb3beffaabc394d51bd5db69285997d13674cff5da1f0eafe4d94b61b6909d7076f6089f2aaf4e344c6fc7fd631972a4b6f559132e97a15fb4eb9d5b5bc8835eae6a7f0b2b47e3160b48d333ddf23401589d6ac30dadb8e46e20c1aff0a03647907eb5fb105f8cecdcec377444d7f0b390d972e3787e4d59557a87880ed14063bdc08d93610d180122e3e79cfebf8cce024e4e8638f7e15dadac4cff9e74a8128b20429ee99ad08164a149387c6a594fb57f4dda5aff7bea02557d69f522fbcfb59fe6ad57ae406909302789c5acb7ee31fd038a98c9a8253ee4e5538b6ee38beaa99e5c66997b27427a1a43560f48d03c7ad5ab3094f909e2c67ff3d060c423645ebb8ac580dc84a8cb33ffe85cce43f5570dbe13d02042d69b6a27ea1f4e3e8073d2fb132ff39fa2ed5e6ef4a3a2c5a9742810a6f8bd2c971b47710898816a026f5f3bc178e97d101ac02b93b147e8e70eabcbd67332af400a99e5816185d740dccfe0afbaba299ba11cffd794d25967d34a0703fa5c650d8a9b2b3dd9f5d2f9baf5fa1c0e475bd72299ab907d688638ba558fdfc5b938bb45d1452d6ee09795d3a642ce3da6736e353c5866fd2f6ff0478ae91e4288a2372e02caa0101c9d31f4f9e1d7a5261f47907625e778481c5b5256b86e9924c3ea4d9335e07e490d1605f6117d6989345584dc25d811b55f32a6bd00c40f350fea17fa59e0604a0288f1c2d95b4bc574d80224160d37f3dda23abd5afd0c1d6865cd669d3222a92ddec69cc71cb7019b832f30cca00e546c3ab7dc0959365c2a66a5867312ca034bda0e1e8d9b57f0403732adc53a4aef6f03d2e3e17f8cb950d04616e3b39054e823a1f7771773e2b7e7b47c30e8e3f33baec5d42def6202aeb9c3e981b740e914029f7e24bc9f0b225bf076d35079b85a926f1fb908a44ea9ed203b34fff4d46c7b36cd3eb45f4a8d3c559cf1d4d51954616247fbfdfb71c88097f069c13fc1b6d375da0557341e181ab59aabbbc45b8c61f86a2f2c432e7c279ef33a1449c4c8c38975a1e8e2fb0489b8008d31f9c731cbf2fbd6726901088ad0ad8cd834884d501b14f4532891b5d6b880ecf089cfe301b30e18251208fbe9ba77625bd7904204b31420920c692197b94def87a3c58c940aed638de20d979444807d5f68b5f611037467933334746bcb2cae45d3ad1ac4bf171cc07cfab5b6f7b33811275615a02251bc3b97ba676f63840ebbb6e0f4340f653f3123ba61fec5b1ab1686db6e1d0bb746e54f3e378f5c3aba53ac12a59a5e23fa3cd95e9c077b1aba62c014c87699752b12f005a5c0a3c72f24a9064e6b57367e9786209bb0c075668ab96002d4bb97cfcbef166e39c40eed9200b94b98fbf5635c1f81dd117f6c5be5ea6f30b534c5b27317c7ee7009c1235aae5a67fbb4cc9870eada7b58ca26e8b0c623f85485a5f07f7c7e8deea71a74e2731b5485b267961f843b307d3e1e5894218afd91f0d4bb2ce19cdfc6b90e62e2c07735fed9e6fe15356e8ffe6827fd2657fd99b3d5a2f626a09f97669db27a39e53f7c36c7659719eb8874148270dc72df54f401cf6d0450baed0a700e80527a30e8d2406b98e88c6688f0b0f13dd5f4431981e96eb3131a64b64f93a6b65d16fada2a825e0e71d999ce0a2515f8790056cd9576a7be02fc326e22000be15943306b154b5a04e8d9da62e08eeb11b0f7f89065b3439f8e9b6f3bf6e341d92f1f378b0fb5f4631e528176c05b0cafb09335e52edb87bcf9cfa9e38ee03ae19a0c6171eb4bb8af915259aa0f1148531afe5637b8fdd6d0a30a09c79f9aae631430cf6e260bac5715812eb3b560b2df21dec6f9110a616c68a4371c72abe7b44e80f01b2b56654e8e67120ba57e1be3323b264fd8d774e200d183571c991827eda16ea5c0789ae5cf20e646ad4aedced736e0860531b718e18420b1d6af57f7709623f7101f6231a99e786fa1c5a2006346e647f4cab279f4882585ac3214d94629b498e8a182278aabfb9ec962b6c904e32c3809e46a5cf196161cb792c673f2883e099b25850ade86553f78251de569d54ffa01ddd58cdcbd60d4ccbd7de39e527c7501df49e3c8b8d30577b66e71577f8952794f7e1f07622e64f4a3bd67dc605f95b75409898352bf301505a90576e799d45f18e5fd533929d53140627f86463d005c88783fea0cc22c491a004fa5eb2dda465eefb775c0d14e9079ca8ee697458e22e71c2a443277c8015e794d38c2b9fbbce44611867d2f54a99247e60b792e3a9d76fd1e006f48d0fe6fefc6dd87c8ed8630302902ca4b09123a06721b023d1ffb231d2e95b5134cc75671c608b1485589a7d78a501576bbde96c0ef53bb2be83fd3a9da5f9f89fd4ae10af0c8e65225cc10cf45c51592a22fe1d6e1e863b877222e677498cb66cfbf5be412ecae176a053a18f6c424dc15d1054af8c09f44dc842bebfbe11abd37455922770159524475661aa8e60d319232e3944f827cd161f916618eec182e565190d53756085106ba23c06489167e307c70f04fdc3013177da2ad51a325cc203935ff1726f4d15e83dfef595f7eb5622f1353a0eaa6edb04a8a13c462f59d489943760212c97ae1319967d9310d71cfc237717e55f9205d0b8ce4446898d0ce3b390fa404b16c031dc5ea7140dad3780c679db4634b0b095bad346af6d89e9728a7319b72fac2b0b38f33a2778ee1bf6db256f6466f1097310401b01e036f07ad1bfd9ea78d010885a05bdd4893ece21f56706389c7a1378ed7656b72e1adb0c6c5e8f00d1d6d04088ad0862a3389a21e2dc6305a762b7c1afb6cffe1241172292451b258d0e25402bc5bb9b0713f7740ab5bc90bf8460ce374c906ebc3a5a67d102bc0e6174e7e9dea26a50d89525a55212e708296a6ea9f01025181ca17ccc6363b037e5301784e2f41c3f25240c8dd47fc2e180453e825e5f6981f151d5343c1e79dae458b95f4457e5881a812e3fab74b662f2cbe26d84261c9fb7a86149e9c572ff90c494ae304b866c983e4e244ce626feadc3bd41bf296c78692afad9b445e134322c2a4e6b8eaaf48509eccfca75f5406b2c2d6897b752586af1ee00e0cb9161846ecb8431562900a8ffcb2f4b483467bc6e1f3a177d93b081b5f5c62487686d38fce5e8b3aacf05c1f4034994be717184030f1991cc1c4741c201d98d91154c54c77c495c0aa2d4991442cf508903dc9a4f9bc5dd0fb7d1dd90c7bf945e7ba9836bd191ab8713a0b08bfac0bcd503aa29398a52bc416f91414a99b7d893a138786bf5b6ffa1c3b0951383d7c84d59747733646c100e99a7a488abed70e9694c7d5a4772d0a4aed533f959b0b0e5a5e8b983c80847471d1cf15ddbca2ebabf42980990b12c862408535d13f6da66c03a7d96ff33839bb61faa09a900de8c9a481b1d1c378994e8a2385943615218390a0189e647b1059ee7ab6dc41695f95d68621ac8d69ce7c4272454d06d07ccefb474cbd563564b2a41a1a1236dd8cbbc5defe3465301fec7f8c2d1427097aa2f7e6f14537cfa5629016b08869c8318dbbc2350d8518e81ad20a2a6c9ff2bdfaa69e4b14c7109a53286b48e7b0b023ce322da5dbd7481a8ed38879347f3a29df871389a106d82d4ba7ac4e2683f57f8d203efb433b5e6b025141a89ad4c7a3b9c5092030aec3bdcca0af1ac0383e15504e7cf72c33a0e2e3b3f21e8197d57609edb69a33052e75dd0b786c53e69caa2d10d33702df95142f881f48920ada7968c4fcc945b95892407c00c6d4e198a916655933aeac4601397903efe0a768a33b2d948bd62fcf4133c72ebe3ce6bab4b6bcb9503d0d0ae48e5ab24aeb096d26fa92cbdf3fbe931ebe392d4b0e0f7a9111ff81168f7a4975f5eb98c49431ed73d93c61399a900640ed5da391f53b55add61ffd4f5252f652c25a4938ba1da2837586a802bc28d0883b673fe5cec22d1dfbe1168c1ccac1641f36fed88560e7dc0023016f4f15cb2380831b764b6ec7531eaff7e91598f908f3ef1460515632d7d6bac6f3e7a6b8a712adfc9a4c91ffd265c51413e16d07d64234f7b4345189a14ab62a4ddb62a9be1bdfa10d2520dca4d26f1de86f52008adc16a056e1b6b50ef673b032a20b1b82de5450e288dc544c35aeeeaea1acbeeca795fd146f0d4c02c3c157587c8211636c584fef823dbb6dc8510719e6ef9c3c1187dcf6cfff2ebd6a81609ee7aa68ad67eeefdc055f72b1c190d68701aacc26c79c1241721db14c6497079874024be4393e2731904baa71a588ea3e1d3cd53412be408de9124288871812cad531303a24dfdaa16aa51661090233b3bd63bf00f29c51b499734048193c07bdeaa5da710edc6cd9373fecbc574cfeefd09360f39b508d3769e907f4e66c85b00a5f8ff5b0e354461402b98b007568b44f857c5a75b63d16cb81398890ecf530e142735900b681e1b4192772a9e449d763ccb07e6a90151b7b352ab529da3243d9b133f6f4d815f08b503eea8df1c51ea701a94c917aa47816bcb00827f82b49bd9c85f4363481d6a432d583a3cc548de8db95137f10baa76c2235381c58c500fb39a8594409510ff44b0ba295d7f095dfbef279d3f5f2f34290d024ab43e458e27088090b4a1aec2f1deee1a07c25d058249a9affdf8689476004174b53b676af2d2200ce507b95a5fee4f899acc50aaa793cf105320d60859d831d9ba2f8575dcad36f78e4e0b2dec35d38c56622693601d77fb1ef28de0e9b60811da51e737bd40fa13ac1b14373d7370f63afa639a5493ff9d9e5030ee5400f1e61835e860c08c5370c175ee8ae4e2630bbfaf0b0d9c89fbf305a5208659503b38816f8b6580a3d111d4b9e3f70309e644f72301cf9624294b7b99fb4db74c2046262a0883bdc7ec2503ba5d457e1ead44c3b6c41829f8ed585731b934fc83276cf2bac52cd70ce0a16cdd6e0183ffcad45e3bb7eb492ab92704de9b10c1b4b24396e22b483007d444fb7c6fe5cea50b2cf5645294577c56cd7fae248ce53597ba7ea6ad3baaa3fb51169144c541a0d67a1206daa6605fe1fa287fde3ac450a34702e84a96f6c1bed9df95e074240676b79d3cf1a0a621f1a68252e99aa78e1378fda34e7f18a301a0550b756ce46cd37c606a4e4c118585b4fde35b2a8b4b3d963d23269c49604018b78a10bd20085b04956123c5cb8532a6b1fad0621f2c13232ba013bc201def00aa4ac1f4227083abfaa02078f14bec6218d8d11856dccdd14d907dd5903727d69699b1d29f0af3fbe3e6623b726c329dcc24f99ae555441615c0ad47281922a5701947bc1fd8ef71fe8b8bbf0efa5f70e58536686f93ad23d3bfb8e4f700b8d2570962c904dc283b0b2fa84e4d2f31af6875c974aecf2b21d9258025c43af66cb912715e1ea7c3e17107d2c0459dd52ffe0b973494fdbef51252e7667ade7be792d1071ea1ed80e274655e673e21d0cf32489a7860b1246760ebde03ce2b6cb9cbfe97abcc8d8a055b19134012932406eeeb1e25d9dd93484cc9a01fcbdd1fde381751d365bfae3d3a4999648714ea2ad54a94ce08d273e7db4762dfc699e1d2cbbc8bd4d059afc91e5b93b20d031e497fdd18e6353032ba0a42ea61ea7ce9a8b4d697d43806dbddeff4378225fca7003b30f7ad99694554870243180d70d8c5b0092368391d8940f0d03c9bcfc7a93c1b68a1ca92136c02b50f4775afd5941dee20b19755962dbee7cd303654fc15494bd8d111979d608d63ebca28f9d8a9baa25b463864d581ab1c063bd60e74d2eb5506e7cb446462a3386ff5a3724dad5ba375a9e5f28daece108386b4a88ce6eb3e68e3e69260d1eeb3f3cf790f7eeb2abb47984d750355925077a8297dc8bdcd96e8912f3f78bad30d4094dcc4b5b27e9921354cd3a94361c2adb6d466e8a4c14db4fd9a97096d88705625570bb47f5cb407420434a685f70678df3317aa58fa62011188b87438aa849f3b4baa24b887065142db019db839976556b21f22356b48032afd2c827920f37e316d5f1ecace24f51805e097a2b5be8538aa93d27f9caa207d919d92cf444741b6565580a2b2b436f5c1a5d4d8c5ef1563218dbbb16403324ed9a143a9dc067564451f7875601a07cc2b686f3ff7965f2d534048f2a173e1931cee7ea7b46fd0f4a9e6d2e5f37f973e5bf4186a64d44a48ca448dd616972a2535bcf8e823defa289ba20335ae2de767d5245e09504a8ac4d4595d1627b7b5544e1c0480ea13632b8dd10d02b6f338ad92a86cc63c33e3db173aa73710866bbbdfd1c437e9538855ef4d78ebdd788b262d16d98f9fac745d4359247f4b8e50e707c7a12a01e746a5869bfcb50abfe5025fc87f4e2f14d799806ca6d0b9abfa55d561c2eeb612c38efef37250e504b3fe5ab76e81684e88bd2ae1cc42d2039001d08eae75a22e1df3b1c97099219810aeab95deeaf6d96b2e46fc2782fcdeb1e3859f7367402810baa37f9be358af1008181b371b26ea52906f554639d7bcf2da4320962fc0b315378e067f331bd1a8cf4beea7633a0ff1a24776b26e79bd2199bcf2f48869e7de1811dc62424c6c3507f0d869cc0c9e09dd5165929c20fb209e4a299174fd0db7d5432c1f1121567f6305e711c48584e273589044e99c5d1aad52d08d59d48cae97d61649e4fd2433e824f99beec6e86b6da60c67604e3e02559dbcc6be922f2f10f34739d1c8d9bcc401de8e8df543197feda935a2c1f36047e96b17d8f876aed565051fcbceac40680efc65ca26eede7ecfe9c7c8709e8efd198b44a1891ab297505e2dee7ed2c1fb70b5ecaced59d220b41572ceac004dd806f3d4760bce6702df120a8e682f8080c9bcce057787c501455dd612652dbddf9ce6cbd588f99b0aab7caee18fa7ebccbc72115420e60644f7fdaa7862b6f104dea019a1a26ce9ccae115404a2321ef8b3f26475e5d2a47047dd5c8232f8dd9e4e98ca22dc0381fe7d967b0aca0854c741d5245096306d65f1d20ac750fcb39b8b6415a4228ae80da4de29dd4fb1ae8a8c73cb54b3693ebcdc72492a1a4c8b75102b4d8143e05b615f3d95d8a5f90bc62e161fee358bd05a45faf2c4ba284a2004209ff84e2b90bd2b99bd364df768ece1aa8e82876be855aa2a5b7de215d2a795aa637fa7c1af4b421a4c8c932e2b554dd93c332450ef21b1c613ce32eeee011ee3aa36ad695dff15b8f555247478a13a89370cc768ec8ff2eb50b4370018c09b07689a02757c4abcbcc6ad6bc783682b034ae9a7355ebc65bd26a0d238a3bbbe8c9a84e86ff93ac9980e3ca3e5b0706892fdbdde651ab5a3feff5e953e68ccd287d62620ec7a466d9c579fe18f3bcb9e5c49bdbca3c4929fc37849695f1d82c8b5eecdcd6c314bd38dd585c39cf962554d9950463a375ba74e85c1de597b22e97cf966beb095d6dd7ebc7ffee3f600869e55c52d8032b79ea1758f8bb13267236f480b588a11c0c950d2a5c526db98bdfc7dcd0b92293377f7c06ce144d98fac47cea11bb02824f50f88e7729bf558424e9507ccfa054b9bb8e80dde43aaad612d20e13dddb4c5ba0f9837f05c8c34c65ef9568128f82d62b15fbb08851653b4c9212dd49aec4a9404094e291ae0be6d7079a1e56d8b7ce79d5f073efeb9621132b1d67affcdbb01c58b2d2e4d64f20feb7bb4a011d13ff52676a1d39603036ba954e27b7217ecbd344830d3af96063c9541a407d52b743661cfd31b5e4e137fd282e4c147a2f806351e98a93c164c099711d97b4ab4de249aa5eb36decbd06a2fbd9489a36f3a9aa6adeefbb93650a82095a373e6bc5a930282bfd582ef049f18520583ff6a8d7e13d0056aab80ed4b9a77e9c7d4a4b311312c86187d232fd3a374f6b05efd7559330bfbbf6df248bd5a42cbc9ed7ecdad63b31b2b16490bd5edc85fa89a57ff6bca4fec936e5037777ce31a118592eab2c86aed64665ec25287d01ef567cbf86d64210a56fcc89a7002754e146853bae57f5d31e274b74cafbf141f0a19b5e4564f30553908b2c786dcd9686c40ec43968bfcbcd35376db8c435bc21d78f3f7ba12073d508f342ab7e3e9863d39b3c8e8136783cb294ad119936430df401a7c4a80e157a573e66ea99b36f58033af8c4a1075ca905ceeb66ad835e8f05bebe5b526639a042afd790766dfafa4edb518a2c163c815f2fa907e3f8a4812c7ace6fc670e531e5037ac13e1a99b0420d24d46774a919ddacb2f20dfb2fd9f8969f076335696769dd7dd35224279e8f9f3309a6d330e23988b3fca7808e40695b1e30c59c151925b5b7b2f9fa52f793f15309b99a82d72dbf62c1d08c6ee2f78aa25ec235c4924e505cc8b48ba29ea3e935892d0dcc5881c372baaa8c9fb2750b0592d9060b3abcf420c954d749229d9fa0c85b2c86e0116839bc4e46dd97314be84b6d66579e546c961fc3b59643db11ec25da72379b98e2d840e45a257221fde457663835b2ef00d6dc1920fa560fad6470939661f6ee334f4c2ce3f1cef44e6d919fb076a013578984a4334a23c68d37eacecce89052b1aa16cae2147a475d73e014a4df9bc22af5c83fdc995af04594388b21d04e1fc60b2655d26ef2b7d103e364a4fdb022c34c999e7d86d7a301eed11eec83ec22d5c646a44f4e1ee140868a9f0db96d1f300d660378ff286503b7b807c471c9a3a57d00670c410a2320dca0612f875643e99e921917f42a8a9f2b8f39a313ce252cb9344cb4aec1c368edf106cb26f27456bdcdb45b478a8a56a71947b1d06425727a45c2d372d88bf04ed7f5662a4118130db1c9736809b2caac2597c8f6d164b33bfd6b03b78195f2819c00ca9fd76cf40b44691e999e34242e0e2a9343b4a00f78312c0c313baad833b453b58556c4767940fa2110c82d984999d85cb8f41af091e2dd0f0084922b703f9245e8504b13293ae3a6de33bdb3a198e4d70034f41b245f7281511551ade185c5b89f25de1429c1d14e4825fe294107202a75c9e7dc0f2da197c925d3da0ce2c4156e18c598d4cc13c720a002adf1d8e180f5a1deae2dc2946239a296ddf7b74eca44181c84b09fb6d1693a300cd3c0cb74ea5ae035976e73c2e5f393742face9ce8cae4b5e48a21ec5ae8662692a893f036b8256dfb5117958ce6f7dbf78961c839a62019126c133f9cf9d58dc0184fdb47f4ecfc4f90149b56b177fb008618dd473806d0675df5d66c36bf2a59d99eca52be21e88c4bc1eea40b281dfb60cacb133de4c6678254e841638e4a3848a44262d89dd9463145793a7a7ec16f77cbdc6e6130be5dd888ecee056417aee8aa739cf96d7d2e8be7075245555dbb6c6447c554bc20e893744eb6bc753a36866fb35450aff5fec3d0ccc53b86c088490574a164fe0628d6ab42ab95f4939548ee254f962ea8bfe15bdd382016e219f9a3228f1d385c3377f9395b8466c787e6b2851d97905daa108ca6e3e4284d6018c72b39d2c5308cfc573f40d12daea4bcbe983e9900ddb7386c762a5add7ab51918f5a7035c21fca52e435531eeb84aa1ae4d505804130df54c5997841f589309d65cc519ac398ec63dca49afaa80bcb9856e77882c249a7f3b86a71551ac0a7b98b00cca74aa9d43c24e72d73bf95d79560659c0fb03f769f20a77829e6baccd65bbfc0e3af969673cf42dfaddbe4d39d265576f17268973fcb1f372a7c2cac4e3297db1affed95154fae469df335fba3989d5f17637432ed806f718746a5d144a4d2151bb02faf8673ec88ed7954e8088588098f290420ed49281bce415bc5df494f5a1d7a18d5173c2ecf463eb8e416dcdbd6a6fae23b019f8988e38ccaa4a8e41ed6425a81347c0b5cac0737f21acd44a4177346f151abf19fd9879f582ce6de487017e4add00f9d1fa1c2e2ca02f751cfcf681b6e3c6089d5f094b07bb10d7d5a3fb5e676403d76dcd785fcd169a2a94e49a9f6b0b7d64b924a94f8782f2acc454adbb9610e962d7b8cff2ad8510722eef1dc948e954d61b4fa281d0a000a042cbe11f3466b710047eb7cb5b471cd54339b82cb743e4d70e4ca0223eeec34da7bf1c494e6e86665da6e9cd1acf93ac90cb64311562727957931a472bd8879a37ef925304c483f1aace03c6e4899fe6b3d40fe894ea18203bbdf9325f1efb11cdb41455652d0791936f14d7923b2bf5ad013294a7d5914bb02509b040aea6bb3231b57cd687b450d8452319b4732e10be170304ba7a886a352d2a7cdef67591be80a73329e7e01475e28d2dd1133aa4ee7f67eca9b5c38025ca9df6b8c9dc8c411f516a51b65f39c5a899a93041b86e4bdc16712bfd124fa5de8f26d3307e59be3c7e163d326d8dba6bfc16f46b2283f4f7550f2d0a7fd9e5ca87531beadcaff11a8c62730352919a3c79519906f8fa876b5ad690f309b7443e0b3c59d521b39cb648e219580e688100700568ee30cbf14a7ef3ef842e1c8f17d44af6a743a431c4254f33e4a58b71774b0837cd264c7929e4f82f6596f06c1da2f2d746c7575aede0df851bbf44306ac6f4f7a7c35985e7878627c3660d49fbcee7c6f83578fe8216ae7bf753287da5da877998ba1f9eb644054a62c3efb6f7fe8a638f9f62bbb9175fbb27ab8b933e227806a81317beb76042eb510a5f7782b1c20cfce814121e68fb584ac8d3fd4ea8302233b92ded9403b6337fc2122658db8f8e3745ff74d3e57a2f5377b11a42bd6eca177a741674fd4f3b05d81f0ecf40a55eb4ab4583b9294c69ca896cb429430afa354348b2cce0ae39201d474a8cb03033254d7dd40c7b80261d37bd7fb312852144ebfbabbd3a3dd5d19b7b75d1113746619af50a9ea95e68a3fe6e245ccb8af42f752779173f783a9a97034d0ccf092cfdf659a00a5f8b157801d2e530da1f12aeeb94b91d42a2f39f0345283cab59aba7029cb672a342579baa9815b8127e2953a71b76642e06a97cfaa4567e7bec75d890e62134aa19115a9fd14bcfb874927be62f64cebcdef6d8e7ceb53a6629124c0f470b356936137799ab13c8671b2b7a8662915515251bd718fd06f8b8a5ef35ba32b344e02c4ceb991e1559c850438e19f80f60b92fdeb7e548e84ab0edbab8dfb90ee8c5f7f7b895a9aa96f6c0c08b49234c5d042531cebeb3aa3c552c21fbc4cdc6b5d011b3dcf5a6d4184fcd42fb276a08dc22a6589ef9de48b7d5fb628c47f46a284647826633be675cb620af65e66d8ed8b915273414f5ac748a46542e7e3755e02dc61c9b4bf4f18111ace35f6adf52c9c0b5ed579eba4b72d5ea744c0656a55fd06c294501136ab31a7a52e49fc8f8e9a145e18094d967e3f836d7182a596b0480aa026fa6d8820bc454ec4f4afb5164acbad8b728a3175425fb2565341a5221a49109e3d9bf249453e519bc86077f70632614d6ec3df88362c50bfe1340b1c49e5dd115bd09e8dd2b5edc8cb280d0e3dfa2d5118686a4522abbc062e19b87415ca6d4d3f3c5984dd5009f093a11191cc7196148e741c65927612be58dd83e10bdef38a9fae75aceeee5b57b9d7f7d3eeb459b5c3645937cd5a5672741548aa0c94e9f00c6349f1e20ecfec9838a56740be6d7dfb3a231402fbabd49a2b11fe1d9f9c42f150d3571c121b492bef06fdb44a0770f0f6604ff53b3e69740799786031e5425a59d447eb12ebe4d58084f9048e8e8b84048cd94ae3384d52475486738e712436f4bb1ce667f5daba72116a1009a6a09ca52544ab0f68a31f33f700d00f3cf0f019f7c3ca588b3e7187a63e587d9418b2cc4c581863cbea7fe53e1d0fefe0135036656c97718bfe0311b99d0cb155913c17df9cbd10afd1daa6d6f0efcfa254c2b8cb1eeb12ab7358e6a4b206492b30c70600f20c799599042575a849add7464d6c0e18a5c4d123052fe528c5cb8746fda3f210f60b474b17f3300233e593ff88f2ce5c07674e6fd1789f782557e30157614754a39a2b0efe69324680bdc65aec13b1bda6816163d7b61370611b4c67d77a8e039f91148fc223b8a6837167e08ceead0e0fcdcbb94505c2122d5f90655f92e26524c76a28d99cb5ac5be9605ad26c9de1d2ca5a41ac3f91ccc56a0ac83fa69fb4d5e3c18e20ec4f0b519c61c112f8b15c4239af9127bab0453323c1adf6af7e82e3fb7faf68cad210b664d4ad1c72cecbbb69cccb5fb851a599a2698a460c928feb53cd28ea1090570f5f90609ae4aca08eaf4474371f2b659ede337999d3c68b51b9991238943128ce623ecec6823b54d691e5a8e6c20a4324a44d33a4471f225ed8655d2a7fa30dd474e6ec72ccf3ea95d01b7381089dd86434e2a9c91de5894914a9515d0a280ba303191d009d9e213a8aeaafb607d6f16bb387df3e4e83aeceed6ba2edb3d0c5c52b40bebaaee8ea5dd39779f24953f9dfaddfc555cb47c6d358c98c4f6f69dc93f5b02daeb4403a638a480f821fba7981a2118eab9e2b4184f3d903ffa27529697c3b1732538fbce7c1cf251606cd428c2869fe08f3342f17c6dc8aa47b82761502c1fe1a11f93b1f15bd280cc4fa41c1b8ff00d898d514147234141c249f8ef1c3b80b8c047b94da00155ee0a369b3d31c2b97eb92cb73d81886b5e1ab85229c31c83b97d3419698fe56b2b9f4dbf8bed420626521a47d52849e76273dcf8ea3e34227520012a3a712249bbed112751556b1c656279bfab761ec6a1e0e8890ad8c99490198ccf64116c7843a30cf3acb760b2cd7a8ac78b174c926f45dfbb1feeb0d9fe4d27ddaae6aa16fcf1ad52fa9671b48ad951ad20396b7e9b74d07acd7e46fe818e4594b718d0b2a335d21c4a1d7a294c099facf29a96cc73e0f863ecff8da0bbbe6073e6b841a0fed2f37ceb47910de4ce65fd243cdc2e19ed7c699eec505c8a5725aadb476d95577f5622afc56bbc0740145b570581a0410c6ee0f47915d98e3ffbbb535452f768a9ec828d40ce75396ef307a553e5573e413c09148ffef3bf499800389977432d53607f5a09cb0c4541b865c252a73719c781b3f4a1778a60b50f150e8f44deeb7e8dc2dcddb41de9b411930b3df7dde3f7ea16fbccd16b1621576aad4822b970d8c18b92a9b53006393464a3cefcdebee411daa4d66a9ac221cdfa6a7f34b0f7867dcd64dba91c19ed2c0862bffee3a3204fa01cbae487bc90ad3d86c624fac9a04bad62a615583c5aa36d441d0c6095d9b27929b7c6c7cddb6a8ad5eab03e40951635f39d63cb509960aaa4fbb6d93facf0ea416e4d702fb1fd48c0919f6739dc9cff64254b44baa58b3e4cca8d644bd1ff9ad1b8b088dbb4fddc6c228e80995bb850526d9cdff2c92c52811bdaa91d15492e7e06f159b58d10de1dbe8bf9345c380e471576842650a815e6764fe6f5e17c23f9014310badb9d0966c7239ea648c5e470ea82ac3ed5eb7904e414af5e30d00ca005740866a2d05b905f116fbcf88d3f1a138c8d3373a5d0d80feb5b8848292f6620b6dc06b70de0e3eae5d282fdb9cc16a97b361516aab0e403e57aa6e0858ff239a1364949ec62da743e703255f2a6ce3bae811e8e7a5c0172b75319917a74990f856aec2cc8741299d908e0c3fbaedb57d6c91527e51392373c32ff6bde60155adc58f2117327b994450e1061562253ffa676ba3ff7f6cf10cefe9be90afae97e638aa0069cccc98e2794136e1e8fd5dcd3d8a3f826548eb0ba2ef77f0a3839afa60cd0c18b66b191a0cad62d23ee4318db937397a8de04d4c881c7587829f4d79abd82c986cf607e0f08dd18831c91317b74a87ab343deee7ab11348bed2c36c80f58b49693da8dfc2d2ba7ede5c487dc293bf49d7fa324e28dbbf6afc3e4f2532bbbc865a2545bd09d24811c3c2ba00e1090c283ae067fcc8c4f2e576063ac2487ab16f602f70071788f41800527350b9a2615fa36b72de1993976d043b3b4eed466ec650b8eba126fd8d6fcb70af2316f2149f5d55143394d90afcd69b01183293597905e9eda2cd42c157735eebf3cc79cc0366e5046c59bb1b6f30ab9699e56fb6655e518a95d7f885f8c337fe5ac5332c60c2b927f22730c06769b77edf3b9a273631d3e864d372c31fdcf5ec5c903e887b3cb256d5fadfd9196b215284a5d0fa0c693d86118076f6653797acba94db81a76971e68e8b6b2b7ccb2c3fdcfa9ea111c4d46843c7720517b7a3815ec526fef1eee8e1e7b27747d079916d2d7bd81cf4dc8287a1ce186c7a7f789c264259b125d68181d8e5aed4c426fb76843b3b867589a833f2655fd8f80cf79e3d6dc34e7f0871bcbabb9e9448eff6f593723949eec1d01a31bbcf1b089e9286ed1db706a46a23ba2bec5637a1ed40de19c56e7e1905308900401eba2e857a274f384db126e86a1fe43f95de03b6d28cb629d46c536f51f93431a7d339c2edfa75f0121e14b650ae1f02db697b858c6cab6fe5c3e90c91cd0577cb8a58b866c3e1faa20721bbda7e99697ef48f38c8d6e9dee8d5495074a748358c23427d133dc8c2f67c4736a2d1e548ece69266a864fc20fd98ad31dd3c6ae422be3e905462d4ecf98e4b9d36e6220789a8680b65dbcda4177e9be797c8167025a74cc8632c638de386bd23a175a958ae05d1f056cc07b8cfbef030a27ece3fb71269187546208921fab732cc528d9e1bd1085db35323dec6199b29ef57649a6183d9ea74b0d5946e01ac2fe6839ae1bde847b0ccbca025a806c992e7e87c746b460625b91eafc063f5d06198f25d702c048c2c69e1dcd8a508540d82b370f1c87da1e491430e29f6ef4c6a5980d0a812f8afd8c5341b50abd28ebc6a0bf5a6c21ef177c3421a5284041966c70ad483716bbb5ec7cf279a18afafba1d07716e2f94ad38cbe8471c6ebcd79013e497a1407d50914c8ad4a2c974db8232c383d6886c312465b08dcaa195c4b1c01ae9f55fec8f64f3551b39d44b3935c12007c236d2143a5b2e2b58b1b878538bf6a903179e47c8f7cad91b84cb9a00f4d906428d67927fc2c31fae2b1333e263f6f2712b0c5a181ad046553620483e746b95becdb2496f5271da4f9edee65b5115fc7a6e122f2ad53d440b7db67091c921a638d483effb9f00ccf24b4c6817587f5a127f98b13d89df3719cc28a562c3a97355e87e3afa2fc6d644ff3b84fa1205025c5c323199949bfe10efb56ffd5b6e72d6b5adf1fcb4a496cb194d7b92075c98cef7fdd2c39dd1a56a875c6d4ee00bbb6c74e9047da06b4c039fa7113bfe8b337f53d84984c476b555010b43d9073d0dbdbc9c89ba4279e213cf6d3f27befc55f05125bfa6eb9c0abd86d36a79c88352f265c801386ecea1f72cad858dd35991e64695733cfbc704f8e424dbdd2ff74dc5787198d1df821413c506450f7fec4c18fafc1391ba81553c42e2629318ef27ff1df0b5e858a7ada1e3855e4dcb828cb4eba588b4923e32dc68c2165caf321cd7c86d2a7a0f8a94456538f2793d5e83ba05b9101c6949895f046ff1cc5fb8838c1d7cd1e8134edff47feee4c8641cac8be64b8730ef77385d35c6ca94aa91c1ec267eb25daecc467ab6e6f6ba1dbaf30c93b548c2517dd42916b04cb1a96ba694867990525797d67ebc1abac0e0d1d18782f4293db2bbf8ef026ebe65b77d7dafc552c8986f5fb68312b4a265c9c11b9d10f851a6c1a55a1e7cc152a1e18d7cee2a09a5e040746d0e5b1dedb107105b3c801a28a49634f2fe8d209ed4e8c70f08d2d1a203d9ed7636234945ad1444a2e67ac98a2d7170f2da48577cebeb774fcce681fceb5d2a02e6e3d7b38e0974809dd2986193e98a4e5f7db8d6cbc7f44d2cd370aeeef317059fb6b2c1081317c5b9ed37b295dcedaea5b03fe92297898b0d664088562f40bdef31640831b2b973e14c281296c4cf2d71db98fb5568da8e00d95921fdb35abe697c4168f2884df6047764bf348811c55456673ef7de121d4c99028179c769d6119c7ea5b64a2c980a0050f6b4dbc11b22b19aba3abd9ceb49f2d0d09cd6f6c23d76ca6862be6022149d6640020b8b5c989b5cde742ac086ca57ea1cbe704ba3dd858084d808e8cffe3b21828984cd48d3c6df76ad6d1a293ffbd69c0be5924e0730e03cd38e19c21097891dd4744f6f7a5c1aae2e6bcba2406c9b44c1a44237177636bc2dc5a824edf93f6fdb441f8a284c433f121f1584ae495f80b53da04f6327301927c5e1726f0831bbaf95ab9f0e692dd865bdf82954246f6e90be6d09f897094a11dbed548ec06a5fb4c82593c64435be9355bca7b6b2cc7cc134ad6df0c43121ee502ef16e599f97ffcbe609a3c9278bf62af82420e12f0fe8c43e0fc81987d1a97e69db0ea7f4b5a420bbdb251ddaa5214cbf1a2fbac9dba8b593bd32544817d40ea32b15e288fd8ea0ddde59a519c523e9cd85868e668d2c81b2db23d98db9f6fd6136141dd9036d767014eb7f67f824c6dc3008564fe5e857ecead6a80186ab80715f6ec83757ef797883ab98e8773a50dea50e53f7158aabe76f65d2603abbc9ceadc2ec76500f041961446a312d4e7573f6a424fe27102df9aed68e8ccd54f148bb1a3c4e5d92bac84cc47e75e254090397532221e000d3e3507d23b7c7a65afcefabc621abf45722ee6a2532c1f296affbb6d67126a047016870b4e8e9978374845c806e1da1e769e9d4d7c5bc342710424997cb93ce88645ff5db4c0a56b6165c6915adc5a16f6e3e11ef6307340ce7471d2ccc5d73500aa6b2d0b0aa1b1390e9d5303458aeabb9c63c5524b8ab4f1e6f00ebaae12934889d427936aa7663902a41b7ce1556366a22c024472563f4d53a8a30e170c308713642a4ba81f50a105142c660cf703abaac07286cba4c40df0cab74fe7b8267bc5a051f4114ed52fbefbd78359ab3c3ed28a9dbc7d5c57f3d6af02617ad9bc4a2f0d6caba76ffd75b224e2304aa39c608c490262fb63ae3c78002af7401ace55f42c895b0f0129d3e58404388f53592a66eecf14c9dd1be26b7a960394afedc0ff4f5d0490c8f6053dac81147472303730899795cca56493bcb7d5d05952e4488412516088e42c4c09eaeb792d1c32632c90c2ecb6c2ad929490ca6319104b7da78b9bd7abb8ebc91c24a54b64d4002c55ccad29bedf371c86f81ac8a5190394eed67f664dbbe28ee844d6c185000cc750a45e2caf65736a40f81844d8ec25f48e68c2ab8e756f9f187dfb7fa36966cf32e0a43367c2f5a3117af40659a1d604dd1aae35fc77dcd8d00b2ae367e3a44ad2ddec583cbdda99d3bd68c5dbcbb8cecd30936b131db61ec00b37f43210dd933a0d019372f3cabbcb7f5f70a7f68feab594865ae20399d1a095e736402f0bdda50c463e3dfc883b17606c1739172f65560323cb0c3602a8ec3749a1d9531011b5cf552216ee36d6e1708d02f9eab512c16e6a469feffb5a5e2ab808ad26844ea4ba981c7ecce658f7d78cce505a7d14f32fc77d2f28515bc904d1c3216126f5ebfc3427d12c3eb91f31e26f9762e6b641099556c58946c0a1418854dc3d034e1070a2e7dbbc75bd6664eef12f21fd5bd36b44c5f39b3f179d766f0d8670dd55ab3cb7501b30e0afe6ab2de0f82472652ee6608eb2ae93585f29bf10af65f67c25211e673569c76fd8e72c5ae8caf3af9fc8853215c0c739d650638bd0d20a39e63154cca9e7a9736f4959a8767d2844f41f3783314c5ee5e367ef067307d955377aa32938b93a5bc4362722beb0b83631e0ac0b6b637652888aa623e1a1d0c2f65dea7ebde0aa67510e462264d390d2b6df6e43225dfc80116dedbf901e056762779a2ebeaf2e36d4c66b7322482e74fe8710a78474d18ccd2d70180366923693667d1eac560918f83b12cbb19abe93804f1e3f73553c518883a2752a2e9582ed6be337bc63f08f98c0cbb5d1cadf1a44180d6f5ffe4bd444a77f914093c5f92272c267066c52d0a0d1f195a3184c468f72330dc549d4102f86aeb47edbcbbedb3d8bc2682e48e7982e411c996548b62ad8a34c211ba6f22d93afe51e47758d03223799daaecde543d370d16a8e6a05962a92c79ef890141772c77a0fdfb30b478a55b321e70e265bc87287301613c2544ebf41028c046206f15e266021123d16ee9f71f86bc1c010d9de5679b4eef60281d04e82ab392ac1db8759baa784ec472e72773131f9cd1c3500112ec7a793c20877f4ec4a96da63c308d0de86c2cf75ecab9e553f01991add8f03f7000d788d228f4989a16ef6e1171f57ed0b3f7662d91c8d17f736b565f0cccce847ed0de479778c82001eb5600f1c0f9038cef2308d4d0ae66cabd0374171e04f5058038eaff39792fd51648e3fb97ec36256c0d442efe19956601a11bc805b0042fb309ea28c73f57c3599490932787caef9752fd7b65e42e32bfaf9c3ee5cf7e69d3d06fa830245594bd0b5fd3ccecc2f0220d579a4f1e48cd83d5a8372340f312650bf566efeb24dda3dfa9ae79783cd3dabd57a6ebf6f8d8ff0ae6641d24fe8bd14a2d4716f94da2060b63daaa471c95cf4f74088a6db260b1a0b9841471736ec74469904f324b6e2e65ea160a62a6f308a2f130488e545fbbb14792a4d0303521681ae4f36f2d732cec31e0970080f11104ef973ef0f560ba8f83f8dbb7941173a458268b007912b4d1ccb6419d95c2f598f40fa35a3272751cf1f27fcc9c19203c51993d49500b5c7294c99fa0d011357f9a51f187045395b3f70b67150635d87616aaa90498b0755ac91a8850efd97acc803d4a0b548a27190997b514459e58c98abc897689bd67766dfead14f8d6b4b159d2ffdfc403c1dd9e8bf9a486e4faed1755146b1f61fdc7285794f8d8c202318d6560e5295070db8018cfcb97362e541bda4cb5d5b181b5a81756cb042b48fc8ef54b50816efff48bef431ae4111f5b7e827932ff3a28d788bf8f0f50b809d52c0f498b0c5036614fcc0862c4847bf8d7ccce3e7c59f90111c3a1219d00e008d6ef97a88cf51a3c4a97220e2fbfcc27beaddd4f49289fa17f8c1b5bef798f6c21189125db376aa49a8173f5e2182fddb4da32ec8c3d21a664fa885e09904369a9eb9efde8500b76c988f50d2c3b3281fc27d62ab999ce31b747eb47df276a83f73d6454adb94956809e652615131b927435d3b1267290a00afbceb0c1324ba831cdacebef2cde2d3e1d7a29e7066548048ec267563ecd283a62303e4a77d94f518ac4c2fc11d404e83a21c2a17087286e5c3706b3a71fbb80bc5aec5b32061b50efd4ce4feda0953ab07c1e29f857fa30bac06e68c4ad92eb5432a53915bc6f1c574103dc0f2e790a38e396db68f8f658516f80406cbfe85eabc19e268b4c54c6cd434f3ceea9eb26a883e1c14821f9b924cd065d30d1505973863f9eb3762235e9e45583e18260e734a35893a74c7245660cbdc6000142c5160f1664e2f00c8ed0862ebace9e3979149ea53684becf9464b01e7679ab528a3310960b0d73365377f8a5f26e83e4a7e9601c6ebba480a973be3823a379b10e1a116aed64c57edb51498c196bc8b495251930a8b0847b9b0f26a2dece21b76bc583e7bc837c8c5917eb348cb7fc1bb2ae06944a6da4d46a7a0f12179d804def1fd957d247f7f071d94cf3dbd431d50cd83e7c0a480edc022aa2111f961e063a7aa73400217de608dd94ab09d5c9de990c3ae427554fc67de119476788f37a6cb293bb0fcc61d3aadad4f3c53d3801eda506cbef8f5b9b212a9be47dcca8dff47dbcbda917cd70b8a30d7e59f75d8217e61d71fe877b15c4514910350fa9d97338f34dd563ed3c0ddbea0243554bc97583df7dce6d45c939ac2091687035a843521c1689b0fe5bd08d3ea4f487b21da3fbfb274cacd90c996144918d01f7e894a0699350738097701285f0996d9cde3a7803b57c9d47b172dcd16677291e90c77500b9f01841f22c169c7acf85422c68f422b8897aafb0ae108d676f69ce9eb94f72fb33b947adae64809d38937222f956cad890a9e0cf8fc4cbbaea9df54b96281c7c716f4b10c9ff43796cda79a20d7b6de033dc08b669ec0eda5b9cecbd4799f5b6a0e76f29490f65bc8c1a8053506a3726220dd9b7c1cc52f18a36ffd5b47bd94a555aa55285ec18461b15ddae34efa9ed056f69e643aededa487576966287d33f3fdad5c0e47bf3197a2d4c1cc05b7acba7823ea8ae6e120cdea5d70183052b4a3d85927d41c03a9fbb00d4e1214eddd9b62c356191593fd6bf6593f46314c3a5cdcba0510709f1c685920dbd2f57feb6c53be0e4e8ff0c39daf55d1a676ec427d0ef442f7c030bd2039514a2bbba3c334c575a45484bca2acd8ba9030cd4175f201532204dfa83d8246448b625cc8bc6ac55a30d0f5296239cb9c470ba94559fcf15a9d03b48a0031fcbccc760fdc5271f3e7a6d726c21a940c3d7996a9041bde682c96749004061424cba87a4a0bf463d8529a53d1dd584ab74919af03c03ea3cf2261a28f214bcd5da036e61ee9850dad7d8df289168d96f35bc1d26bf6df361052b6f9cf14ccb8c86005e88057d6b2ff1917202d17e700bd3f61c36f43b3e2acb05e0517a0e92ade936c78d4f0cef8e6bd0ba6317ed3e89df3dee4d0865857f5023b846270188d804aa5b480e39cf16cbb36c7f177b934e0ef4b7b5f0e7f335ebe2bfc94c5b258ea193f75df46b103334821b9e1df19fafc68bd33259118c954bef5a28002aa32f8c2e2677c8fc04f4c5793c9cd198ffa0f2ab22cd65f788a46d0c17cbe10883eb1e7fa28c6adfac3e9d21f1dd665d2ab052db22afeb70c6ac1231bf45ca75e169eafbcf4345eeea497429e9fa331b38f099dd893f5e97191c66c6322355a46f1636bf2d9140a36e7a5dcf5ed53e89c8ef257723fcc110c4a3626118c70bcf3aa74472f165d78d38144f9341a6485dfbfc55a649f8e5028fe6d77ab6c629b7a62e819e34b52223c7065bd662aabcf47e5cbd896152f2b9d2b0b0e2fee0441c9ae3c0d0edc802efb61f5142cefbe59acdfba74e1e2808d458abf20f9fab1fcd268841dd2d6c968bda5c40a10cbcce1a7ff7e2e0e967cad0d070839a0ee2b16271cba12ba6fb43cc7e7572101596cbb075faf6ad69c03448875d79c186bf924c6901cdbc85d97816970989fc9a72191a943f323c8ac2ee47c799768b58e6e52cbbe64e4176a1b4261a09fddc662d2c1035fa9e94b1c45e68cbe353e134c0c246c7d5ba9885385fc3df28d61990824dd647572d9fc2da43322a3c4c33dd2d3a9fbf11bdd0894dc2dc784cf5eafde80f15b0cea41b70e1db9ff292e57c8dee793d1ff400a451bbf415a58dc5158c4c32a4f06d1d9700d36c01d83d4a676b41c715f0887f7b0706131a5cbad17e8720b83491840416b8c42d7ed285189f14c9b0b4d2268eb44cc89c67c22cd58c02e5c56dd518eec0ae6e2dd0ac9feb92e3dcda72a33d4ee1cb2858d168a2018177db1372eee6d6b661202486441cd2abef682ab587d1c44b59219db3494cf54375ccdf5619d781ade6ec6341ccda93278bb9630feea41bc0159df0be2633ae4897cf288315c0392502da0702a0c50866a22e5afcd55586548257a12a13edaa90fac343adefcf4062165bacc466168b387d8e862d0cd891f270b34bef87e37e6b30db07648faa9466a12e54e68a49df2de5a7cafadf9d89f8248c0cc5e3b33a750d5418c7e5d0e82e34431cfe1e6587b8f45b03f4badd9c1ba025ded46867ec4c8cb0698829dd4ea3610f5c7158f29c4c3bf59021123bcdeb6d0709cf9e31e722952a8c5b1c9da24e2440d04ecc0a7496109878ad24555b1b8d8409bcc7128eee2e494af4c7d14d606d19ade7c5c2fd6f07c12384aca8d86c600e963753fc474dd5546bc79f480b85cd152c8b8bc4ed2de8d9ec0e108c35fe16c0be126d961009506657b3f2196decbd3addd32887c1427b5eaad028ddf90fccbd90d7c367107b581fd0df16e7365f8f33d0814ce4df17e8221557c315e1de6bbf13f2f8dfc9882e1f6b5ca2d78ceb9d0e316985b7d5ee736f16859a00b0bb3d7de60e70ccf86e2ce1d98779edef6630e178fa5ac81c00a12c1031e19d6c65f9d284f19757a49cb784799c3eadf932ac09ac4c63902947fdffc019d727017b3430b105be462fc1f3865c5fd045dbf543bf31884ecf42610ed058d437a2f22a15bf6c478e39d2008f3e2fd01235e30bd792cd3f99596916697ebcda03147c6ad3f73975a27cdb85cc0af47fb69646fdacbabbe2eb8c41eaad51ec4510842e3ed6095094d674b94c0d2a3be4114f07a60ee520d8488ab3e65d403718b757078d3b97d5af813d186311ed9877e117528fb4a7b0fcc2ee45cf45d319a8b52ab236f90d6374cbf8f7977f7e8495cd57f99d59070d219362c56d5dfe1174fe96f8c99cc095ee16cb668726238c3b55b91cbb004a335e78920c9c828011261aec37faada507ff6c31754ddb98e1f9a53583c7ba0fc24e4ee2e0cf3fd4ce7a162da82626244c934c29b5dcebaee25b040c39f657717a3f5c50c91165138731c13097368e0338efbc101266eafb92451b33af74b01ecaa37ec1a9822e1c9fe2278cfd72787d1e98bb93b73b71f8d12a2026eaa3156028ccf36ea44d10b6b244ac296af12f4bfc597fd4beb0dec21e5d35abc5caa2708ec4dd6308ca0759ecfda7793053c658cc7a9f49f4d78ee2764baf46394f96557c5f00820e43ce87b3e2238d2ab67313070f52890472da8429153e4d65107a1d3642378eafde943c0821258cdd90f850f143853d987dbbfb3b40c067e08fe4548479ab48abf5b4cd660fb8487822a2a32db3a6ab388cd88bbe767fd08b7954c9ca5d51053f70ad223217a68d4e6ab5a40fbf3f155840d6f88d760134bdbcfc733b73c031f5f4257ae3e6c1cbcbab01474269124073133d496a75a0a10ddff5115cc66875988f7c901193466349a152447b70810ccc7da2ef5693533d4a690cc688476f0a4e6ce0db95a5936528a60f8f3c2cea76b4ce2e189ad0f84056ce361d0fdce15532cfdba6986e81d06d4e52f99b5f379af151b66eb8d3a8bb16113362625f3022640e3fe46e147e14ed4a19c6bcbfdcf398caaf41682a3625b240a44f7c1a8db52b90b44e7060c931e252bda4b8f1e7f4ed6784735cd525dcb518dd76164c64f5e40352b8527df57ca3685634d337040330829020a01fe4c3e301220814f133167dfad4bbc1b7e140a4cd6c23ca5b94d80779ac8a5e705412f8e80cc7b2345736c6b29e00eca0da0979c088e5d49e1f644540fb862d27b329534d4b30e826b094b5426d7dbc9b323241506507883530bc77ab394feb50c2e99878d3a8cc5ee8b528c528c6320daeb90d1a7538185579ede045b2ca117c9cb86517b2ffe3539b357906e8dbacaf3e16a332f773861d1b257b0f58e819190794090863917e4cf17a204f86dc3b1d3f177cbf24b4398538ed89b5186b3a0b51b88985072d396edeea31b3ebd93b3c3ba496f5ed568fa0531bef9680c03db2dc0fd41589ecf48d329831ffb6fdf5444b1543ec4e70560f7c544a84427afc13504715868febfb0ad150bda30ddad06351ce4c8aff27311f924db4f411e015ef1ade74580e94821b54a10e405bb3ba2b190a7624fe52c1e507f7eb368e7e62ab61336a288a2c62d9c4e08515441bf9ede33164490936379f29c089c13ef796c9d2a1988f73fd0e9083aebc44aa931ede84f9c7a2f32bcfa85dee0c84514c6b81c1dfc17b2371e5034d980d3a39e35e5ce094a57ef752e362065464cb8e179befdc8d11a3eb876e991dc13ce5b4aafcc129d374cabfa6acfb0c2af9221625e1e3dd77aabbab7696a1c1a5da99b93142e17202667a63323ce8b16bf8a982684a86f9dda46987fae2620de11cd4f4c47eafe0a2158cf108806395eee280c767f0b4dcd79c59429e006bc3a7da20b1712e5c976d8b492fa941b4268edf90940a16ac28aeafa1c0024eb22264fc4eefe50bf5ac734848c744da72a2f239cb899853890b9752053c3f58291321819b96632f1913448322d0058de9211a13395769f2296632dc97776c5f6f0b62abc480bf118eda44ddc26fc506f7e7ef31ec545db8f5e94842b00e8dcb5bf5d8a306534aa24dc5a6f45cff981f8accfd49cb6d69e858f3027e4c073a053a2d42aa3c22ab486dda8164f273b03215728164c7dd410224111da1a54277e7c38bedd4835bd15d5ff414387e4794a716b9f3777307eaf31ae0131b7077f3c80c0e08eb94db19bfaa1a2b76f49905992609e272bd1ed129a1a5b70c4d660c61947bbda7d3405ddd5524f209de7bac9b14f676d546593b0d28073fd2db32459974d66e906908019af9f4bed2c2ed2d0be1df0eb45d9ee0dc6a5ad6232daeecfc42dd98081e9003780260082af7b602c28f2faa9cff91dedc528b0cdbec7c3f76a95a04cc77e7e63cf25632beb8af10cb28fd0898b75e292d9bdcb21392091f8a42d1b7ee81cbe99f59b3d627526945c70885e4fd6440e69317ad5379abe8824d476304843ac9628e8bb5fe7f420bce0723c5ff1b528352745183484c2087f256d2fd7574e90e474acb7de97bc0eee0a306e9671ceffe0e35d319d4ed308ecdd9beaacb8189a562b59a4cdd3825039ed439471b2814600977824e4faae26e0bfa282ce207693b73da58c889115dc28374c44ce12d042795f518bff6cb2c88d4281b413373636cbaf7b55130c0fb023fbfcb096416aba07fe17b841c6693d942bc67f86bc69fe978cb5290fe5c52f722f47bee0ef1a48c0942fa179edf07451b06075d1b6fa22c9115eaf145d431c236e471316052132c1e0579d01123fc85fd469ea7f46e10ac7e5eee89a148fafa3b72d4b8f863fc9fb22b88c4cf7d8ddcd373b8db9a4d8a937f7b5a5aaf88fa55aed4f8faf4907327c89c582bbb9d3c1c17901ee0e2bfea919a8a840795989241185bcc5cc70470d7f2dad8c5f6395d4884fc950f8fa420997b95942b13fffb8967118e3c400ccb9c228680bbc6dafc61e90a0ad7f3092515b2c2b9a79c13b80a705a965292386704fe216ac29f9d91d744aa7368491d45803a86d7aae43e0d3fd91d5754177d2fc346fd6b75e2e8427f32aa0667a57ef84a417bb5f04849e09a7a3941b6c4aa9e3b542871785f598976b9bb552b4c26de38a7b75b9845d871eacae5999b947ff752642ad4a8dfe7642251828072b64e70ae44b9b8bdffdc14d13555b692a92d0d55c38789ffb5087f97193406e75ce5e30aebd65d077ceb901f865fdf8285968caa0be09ba23d8eb02980ebef438d1907b8bc02226daa3bedba4398587ce66358f1753549c9009dd77a8e6ebb8deb5766ed189ddd1ab97df8e34151f4d0e5a046e1541ba69b5a91e66730a4586d05777079e58d0a1666bcf0e9ae5c966f268e404b9fd65a61dd95cdeb9a1f9e0ece119478e41838c7420705c950237dcea3a34b6d1507f78921bfa5b736a233aa9d5447b9b6baa2be59db6bdfd3193c1a4d91b0be77d6418ea48cc9eaa54efa779f2088565ba60e365a0b687ea2184773d2aef2a1612d48a46ab71ca33217bae5ea097e1e2ce2b7bd156c59b9db3685de4819af45366199178b24b1571279f1de788bebb6bd2a3caa04ec959a829a3d761de1ba5ff31f8af15f9f549158124b29a97c5a83e5782f621758b7d3cfa9dfd17c50d644488464f7262997aff6243722ee2ac4c2376ed8f42e07678d482213dc3921626ef51317c2df478fc253eab054cda3f9c939e3773396963f0ef450239e8edb153e968e26d5f34d314036d85074b58b81105786508cb78a1401e107cafb1cd0a9d11bf65a58300c3469bb031c8aa6e86cfb047d7904c04b0e03ccb276f8b2fb686a2e98b07913d51e4d2abc679c26467e73c3efe0115a2b577193a72fd83c1941d6e88e39d53fc3dbd9142e694cb36ce7aad2e74fa....удалено по причине сложностей сервера sql.ru PS. Ну и фраза "UUID никогда не повторяется" - это сразу жирный минус. Всё различие для данного случая (когда кол-во элементов в кеше) не более триллионов - это лишь количество занимаемого в БД места. А в плане вероятности - не более чем количество нулей после запятой (в обоих случаях их больше 10). ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=23&mobile=1&tid=1459515]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 153ms |
0 / 0 |