{"id":19010764,"url":"https://github.com/th-blitz/bigint","last_synced_at":"2026-04-24T10:30:21.262Z","repository":{"id":170089864,"uuid":"622601354","full_name":"th-blitz/BigInt","owner":"th-blitz","description":"A BigInt Library in C focused on Best performance and Design (Ease of use).","archived":false,"fork":false,"pushed_at":"2023-06-27T07:30:01.000Z","size":761,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-01-01T21:25:39.685Z","etag":null,"topics":["bigint","bigint-c","biginteger-library","bigintegers","bignum-c","bignum-library","bignumbers","high-performance","performance"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/th-blitz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-04-02T15:39:15.000Z","updated_at":"2023-05-31T10:47:53.000Z","dependencies_parsed_at":null,"dependency_job_id":"0b2eeec9-0028-43a4-b8c5-cfd8938444a0","html_url":"https://github.com/th-blitz/BigInt","commit_stats":null,"previous_names":["th-blitz/bigint"],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/th-blitz%2FBigInt","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/th-blitz%2FBigInt/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/th-blitz%2FBigInt/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/th-blitz%2FBigInt/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/th-blitz","download_url":"https://codeload.github.com/th-blitz/BigInt/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240038389,"owners_count":19738130,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bigint","bigint-c","biginteger-library","bigintegers","bignum-c","bignum-library","bignumbers","high-performance","performance"],"created_at":"2024-11-08T19:12:25.732Z","updated_at":"2026-04-24T10:30:21.203Z","avatar_url":"https://github.com/th-blitz.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# A BigInt library in C\n\n- My project to build the best BigInt library focused on *``` design ```* (ease of use) and *``` high performance ```*.\n- Available uint types are ``` uint128_t ```, ``` uint256_t ```, ``` uint512_t ```, ``` uint1024_t ``` and ``` uint2048_t ```.\n- All uint types are stored on *``` stack memory ```* by default for the *``` best performance ```*. \n\n# Examples ( 4/4 factorial examples from 300! to 100,000! )\n\n### 1. Calculate 300 factorial using uint2048.\n```c\n\n#include \"BigInt.h\"\n\n\nint main() {\n\n    BigInt bigint = BigIntModule();\n\n    uint2048_t a = bigint.u2048_from_string(\"01\", 2); // Declare a uint2048 variable initialized to value 1.\n    unsigned int N = 300;\n\n    while (N \u003e 1) {\n        bigint.multiply_by_n(\u0026a, N, \u0026a, a.type); // bigint.multiply_by_n() method to multiply bigint types with unsigned 32 bit integers.\n        N -= 1;\n    }\n    \n    // bigint.print( \u0026bigint_num, truncate_leading_zeros, bigint_num_type);\n    bigint.print(\u0026a, true, a.type); // prints the result in hexadecimal (base10 print format yet to be implemented).\n\n    return 0;\n}\n```\n**Output:**\n```sh\n026ca8439285c67e3b9e32731120f78b66f85612a4dd1df6c1d2c69a2d7685f85e75b82bf36e22dcb6ca5044f43fef0b3316049241c821e1ec1c63f95685931f87152ced4befc5ddf7b76719a636f68e7054bf28b57d54d40975ab14d65900681c49044d1725031edbf3c1c5c595b871d6864c371b0cc54ef19d42ad02833bcaf5fb1671b523a143b132c7e1971f7bf5ca77505c960f14b330e6c90dc2539431329ef78a1e9f26b2ead7d28a622e6b586bcee22bd0a495442c6a1235588988252cbd4d36975560fb8e7e5c8cf06f29aeb68659c5cb4cf8d011375b00000000000000000000000000000000000000000000000000000000000000000000000000\n```\n\n### 2. Calculate 536 factorial using 2 uint2048 variables.\n```c\n\n#include \"BigInt.h\"\n\n\nint main() {\n\n    BigInt bigint = BigIntModule();\n\n    uint2048_t a = bigint.u2048_from_string(\"01\", 2);\n    uint2048_t b = bigint.u2048(); // using 2 uint2048 as digits to represent one 4096 bit int as 2 digit uint2048 ints.\n    unsigned int N = 536;\n    unsigned int carry_a = 0;\n    unsigned int carry_b = 0;\n\n    while (N \u003e 1) {\n        carry_a = bigint.multiply_by_n(\u0026a, N, \u0026a, a.type); // same as { ba x N } where ba is nothing but one 4096 bit int represented as 2 2048 bit int digits. \n        carry_b = bigint.multiply_by_n(\u0026b, N, \u0026b, b.type); // eg: 98 x 2 .. where 9 and 8 can be thought of as uint2048 ints and 2 as an unsigned 32 bit int.\n        bigint.add_by_n(\u0026b, carry_a, \u0026b, b.type); \n        if (carry_b \u003e 0) {\n            printf(\"overflow\\n\");\n        }\n        N -= 1;\n    }\n    // bigint.print(\u0026num, truncate_leading_zeros, num.type)\n    bigint.print(\u0026b, true, b.type); // b is MSB and a is LSB. Truncate leading zeros.\n    bigint.print(\u0026a, false, a.type); // do not truncate leading zeros.\n\n    return 0;\n}\n```\n**Output:**\n```sh\n0ffb1f702086548f51cf4de42574c8d73bb1b404ad975927b72884f1d80672bfe61ad8adfe7721a4fc7d8854fd37c17e891a9d90e18974c3fb9a690950dd518d7459377443610e2c61546d7c4a0b13945023ba8905d7081bda4677bbcbf8fd9958235da23c44a031b40652abeddeeb99ffe11aacbd440086d7086e78f47f4c656ba89f60cc1ba36943a9b5deccb74b40cfe9fcfc640876bd2598ab6113228c021a71dca583485f7901947be9564fd40e51279ac7b25536421e4d39a860b2304f01a1cad593cc918c5b839f2676ba8741198a7ba43491ecebd1fae1ebbf750cf4f5fe9df70dcf8174103407f2270438fde8057750ec238e60989c7096c452b0b8\n264736f89755064f950c281e1a6fa6b78fd8e12ce85ad9c1dcbb9fff7ba3a385ab4bf05a513f0b3685fc3a126fe696dad6236778b3a5c430d74ecf65d960cecf16a399cb4207e6d4da3b67df3e35a6e42d723cf28b804d4fbe1c8b780e51daafa84c219a58b536391a90192dd09035f42f0cfa332d617e764b82c4df26f2f1f5071579ccf2182526c05f07a29a02a71e8f7404ea7cb6acbd8a2ccf9c8fce6107a529f70ec42d367d4061ab230802f52de71805271f743024c940ab4a95a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n```\n\n\n### 3. Calculate 1000 factorial using 5 uint2048 variables.\n```c\n\n#include \"BigInt.h\"\n\n\nint main() {\n\n    BigInt bigint = BigIntModule();\n    \n    // An uint2048 array of length 5.\n    uint2048_t a_large_num[5]; // a (5 * 2048 = 10,240) bit integer represented as 5 2048 bit int digits.\n    \n    a_large_num[4] = bigint.u2048_from_string(\"01\", 2); // Initialize the least significant digit as 1.\n    for (int i = 3; i \u003e -1; i--) {\n        a_large_num[i] = bigint.u2048(); // Initialize the rest of the digits as zeros.\n    }\n\n    unsigned int N = 1000;\n    unsigned int carry_a = 0;\n    unsigned int carry_b = 0;\n\n    while (N \u003e 1) {\n        //                                                                                                       1223 (carry) \n        // Below is same as arithmetic multiplication using carrys for a 5 digit number as 12345 x 6 = 74070 i.e 12345 (uint2048 [5]) x 6 (N)\n        //                                                                                                       74070 (Result as in uint2048 [5])\n        for (int i = 4; i \u003e -1; i--) {\n            carry_b = bigint.multiply_by_n(\u0026a_large_num[i], N, \u0026a_large_num[i], uint2048);\n            bigint.add_by_n(\u0026a_large_num[i], carry_a, \u0026a_large_num[i], uint2048);\n            carry_a = carry_b;\n        }\n        if (carry_a \u003e 0) {\n            printf(\"overflow \\n\");\n        }\n        N -= 1;\n    }\n    \n    // Printing in reverse from the Most significant digit to Least significant digit.\n    bigint.print(\u0026a_large_num[0], true, uint2048); //bigint.print( big integer, truncate leading zeros, big integer type )\n    for (int i = 1; i \u003c 5; i++) { \n        bigint.print(\u0026a_large_num[i], false, uint2048); \n    }\n    return 0;\n}\n```\n**Output:**\n```sh\n0002a2a773338969b740de6e2b291fd8dd6ee62a2b41525ab61cbe52489b6cf344c23231711b6d9f34e0f13a\nb50eaf1ad3dd92771ec26b4b9ea80411c866b1ccbd855f8326edab10832755e1682d3e7a91335e3670329bc1571b5208d72f7d6be81483a6e6708abf913b789f41838e9a73c1ba82e3a956570405a660a17e1125838bc810c8d2c63915481914ea202867a563a41b6aefef5feac300a78803a30eb995208842ebeba8729397a8cd9087e28fb155a3de0f18dd90e64a9293af6487a5aabdab855fa254fcbdc9f1116060bc2e2b4410e55e7368b844d9bf0aeca92deb017def69af777e8d4edb1f1b926ae01df3366abb9e4568fc08fe255b68bca0e48382a8e6df1c7b0ba33bc2225cc512b39176a26b13098e733e51417224be36fbd933a8a7d98a08f356cf01\n0f0fc59b9f1e32d3fb43209a82fa0e7f69e302fcb0f20362b86cbbeb08b81b1ba07f08ab119ce5e092d09996b710588779327d91ee80eb679a99f0fdca7eb4a50ef174295e94d590e3cf8bf37d23e5b22dcd79a4ac2c1ea7d1d55170789fcd2fcbb3ea52ead4f7116f862578f5e22421c90cd0a7ee095903150631f27305191429a54cace66dd076c51a94034b31bebec406ee460181225e03a9a22c51e6a2a8db4a94fd352605115caf251b14df0cec523c48b79b58b0fc0676792d38a0d61523eb75f5cbc33ebda1b19933878ce7050356bd228ce9327a9916f9ff3bb5b6beedfe5382b861d6c4da52a9754b6feec8a99372b43afa7808836d281c5b2cdf79\n1cf76d6c737aad32c5ed7475855fc15c3f45c4705dd0d6b4078656d027cfee6f37772e03c35c0dcbbdaa25ea64d6865c87cac0a9a999eb88d7a16515811a77192071189c353c1e72242a4f3106cef2bad1075549b4efd6885690f3f58c1f4686951cc543118428ec653e3c6fbdb427930f624680672c1e70c25db7e7b67016a95b30dba56d0083759eac93a8e4d0c54853aa43f197b96fd70696ae5750d7d1f0427b8dbcfafc8b9924d51340fbf71bc22780fba76525f5e5b91a2461983b60bf087dfdd89dcbc6f7892d9e4c5d55d106d45f77e4fc1c44a376d693bfb8b160f12ed1bdf5f4f1127e61d9dec2dc1bba43a6ff47d294de7a67cdf3ef9093766709\n2517e985642d195031c6f5339c1cea607a699c55e75c5479cbd30ddaccab307472aa67a6a9a547d7e1eba123144193e6d2933556ddeb516151eacf0b48ce08892236abfb74bf0cee3a0e45997301027f2a53990697694f14de4fac0c908eeaeedf3dbb45c4ce9f744fef88ec1068c52056b16da099e1fb620bd90de25534b5e820b367a400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000\n```\n\n\n### 4. Calculate 100,000 factorial using 750 uint2048 variables.\n#### Same as the previous code but by replacing the array size of 5 with 750. A massive ( 750 * 2048 ) bit integer.\n```c\n\n#include \"BigInt.h\"\n\n\nint main() {\n\n    // (1) import the bigint module.\n    BigInt bigint = BigIntModule();\n\n    // (2) create an array of uint2048_t of size 750.\n    uint2048_t a_large_num[750];\n\n    // (3) set the least significant bit as 1 \u0026 initialize rest of the array with u2048 type.\n    a_large_num[749] = bigint.u2048_from_string(\"01\", 2);\n    for (int i = 748; i \u003e -1; i--) {\n        a_large_num[i] = bigint.u2048();\n    }\n\n    // (4) N = 100,000.\n    unsigned int N = 100000;\n    unsigned int carry_a = 0;\n    unsigned int carry_b = 0;\n    unsigned int overflow = 0;\n\n    // (5) perform [ bigint_array *= n ] for n from 1 to 100,000 ( Calculate factorial )\n    while (N \u003e 1) {\n        for (int i = 749; i \u003e -1; i--) {\n            carry_b = bigint.multiply_by_n(\u0026a_large_num[i], N, \u0026a_large_num[i], uint2048);\n            bigint.add_by_n(\u0026a_large_num[i], carry_a, \u0026a_large_num[i], uint2048);\n            carry_a = carry_b;\n        }\n        N -= 1;\n    }\n    \n    // (6) print the whole array ( result of 100,000 factorial )\n    int i = 0;\n    // manually truncate leading zeros.\n    while (a_large_num[i].len == 1) {\n        i += 1;\n    }\n    // truncate leading zeros in uint2048 for the first digit.\n    bigint.print( \u0026a_large_num[i], true, uint2048);\n    for (i = i + 1; i \u003c 750; i++) {\n        // print rest of the digits without truncating leading zeros.\n        bigint.print( \u0026a_large_num[i], false, uint2048);\n    }\n    \n    return 0;\n\n}\n```\n**Output:**\n```sh\n00120ccaa2076adf69f75a97695e6c1c2a4e6f377df92226e43b580d71be4b9006bc8a4b01f41c77b6cfe15b41a2f3d5d79cdb75750705bd61815ecb526297c0603f31d88f14bd7c236c44419f16c1f5bd1019fabca9f27783afc50adc0971619468f80fc417ae1af5239533c93e96eb59b610d23497843084485c2c381752778e7d6473fcd760071f4ba38466f2ff534e78f1fb8eb8f7688f9b51d701bc623a86775dc9b904cb3ef144c925741f1c8fe1f60d56b6684df46e9e15136c9fce33fedcd334b89a26de92e44e9c25d68ce8bdfb5f7b04995fd1715a363a9399be05d95301149e3e7c562981fe2dd97277e7462ddc92d5f767f45058bc4a5ce95eadbd467d0f81505eca26076a3e583d7e97330d2e6c091fb46a84754ca4db95e4fdd422b4ecc9191d23ba6f16a407546fad08f70240e4d1efe3c0a11c1fcca0aee643d8c339300e0d9fab145e1dfea92770c5d6ef5924d59760b2aa7ff84a4375fb81ac6b50678f1d835576402e7ff943cf770b254aa365e9561fd869c23c1f02ba27ac2d4aabe309e71fe073c28acd88a692e40c2ce8729947317da11ccc3dfd900b40568c124edb1e8a9816bfab123bcfb0a373e34df76fa8336db1eb8c73021691ba8d206f163b834b1387878a012519891a0145c0509c604765a32406a9fbb0424249bc18c4af6d99d5799117f6a9ac8ae8d32782757164398c8bef48799c71cee3f75160b12b81d0c2b9a4108d15da08627136be66b304cb966df7574949df678147ed715fa9d9dee163c46cace6e6552c3c759d06b77c7f62d285f82912d8b112df12aaac0feabcf858bbc30980b9ddd2b3260d3b3fd1bd64189a64888d36f8e701af1a061cfe8511a5cc525cb5af67fbacc623db68de775d408a427ee89723f74456558e78ed19d1a1e6b1847feb10a9d4bbb4386f71298611b3a072848687f84db3c8a5e1eb77b161ed6a7d330199b6622b742555c791941372248369fb1850a1cd57c47a16a1fc7dd018779e3ebaafc3935702633e8e72613957028874024086c22cc97fea8d5841608844d50912ebd40abafd5b08fe24923fc7dea341cba47f2f4afbc49859163c76661c1fafe89c75fa943b7208373f41f9da0d42e465d6b56c8b54cddbfa1117b32f87e0b585bbd443519095f603a4682bdceeb28ee358e44bcd1a6624418af61f4a7d2fe80da01115150b8e9f6c1ddd16c58665469e2e359ccd15ff433ef069d95498b284051b4a37ff23b6ca749dedb223b4ff87b81cc8d221c0b190c9b18ab6c1f380d331767c337c60b1111277a489440146f6b916bab76943d603438f88b4966745c53798af6197d141e0d401c339a8cde38398d42997d3ff0149ed8f5b3dc55e928593a6cfc004f2bbec00775d2f98225a406617432d7c7e132adcabde871e62de455db3039cb291b9cd1c3ae0a0c9addbeae1e5dd6d88ba3c12ef7f01102b58c16942f02d8c632ff3b62333c230c807aa2dafda46275c3126715b511b087ffd2a44f5b2ead677aaac2cb28c795476b7415cbadada18d6ab01a611ee3de51b27402acec9bc9534c2fefa04a8d05d16beda00fc96003831b18f9c2b89e137694e877fbadf7a4b58d797a6622baf7102690435d92b90481407c177896c60835647718479edad65dc904acc8b9d4a8f8c3042cb401b7acd78e3be7acc2cac71b68d4417be9e16520fd3182ebe9dc5d382dfa4949b1c8befc637923c6084302490298c85e559008ffda83bdf47eea7c86fb3601b0dabe156f6a812b26d2984999b8221d2ad38b425273549b81b7a2381c330f3199809b654a3ae2b732d6241b05ba3a51a63817e5abe46685081219f4be2f314832479f2662d9d364650f4ea3f17441d9d6de4d34b774d0f6c5ceb31d6827cbaa3ced39309b6ee188e9518c234e5df86b45c65aba9092514d15f9df65af80863df8c33d1bde73bdf1b2af9a93c1017f2d7b115ca0ca17965db73ecb67d941334094768726fe09e817bae792437eb4b5d67f19b1675aaa66dc2fc97c396a63ead5b5f1bcd54dbe97c089f175aa3975746446fba54f145d7c40a9bf1fdccb2bf330cb519148ce235060603097e70d410ae7006d52f5e864c474da9241f3d684fceae1a9f2672e83702cdafaee9f7a43ad5ca35cb0854538d6f7863a2169def81010866e9bf26daf7b4a6b7f07b2e2197fb3ea802853337dcd53715b8fbd36864ec1fad437935ecabd8f899f47d09e131f1be63e8195e45f83341b4d8b976dc9ffe68a4d43d7ccebc34edbd1b70b78c62c41db086e32d6260c7ffba0779b3e66613ddea21ddec73d6793499506d1e00a69c76df36c0ea1541cd941c77f0565f4b13d8ed5b73ccea9e664738511e79b04e68f94558d653a768d9e3ae6c15e30a0f6b8a5f264335b6f2889bbb9118550c7e9f04ea4111ee562e72f6f7bb3000e0e04e5e71eaecf7cc831e5b3d03a31b25dd86e90363ca87ac05188e408a142fccd91541e82be385171b4bb2087765fe45fcb08347352f0674549e93232b690d705c83c77e2624ad96d151875160be8fde83f3076eab6d1cbc73072f19c28b15c9d650f0f9d3bbce17e4a2ceadd62d9db2de6c7a0fe3f477f255db2b53de832067725415128cd140e75bdbe369897129f2f47fc1e1b5bf22fd24c0de2ffa4a6e212143bb9e0aff61f682f847b06f616822856364ecc4b5640153160d022c9d1ac1a9ea18511359723e4a144eed4c86fb199ac28b75ace7aaaf61b842e83215789af09f1a3270def727d89b188ee50d76e7802915bc77d1a5fe0329d705e8584e3261b2e8d54ac40633bf911f21b598f83c06a534a8cfaedbbb7ccef3134107cea934e08ff2ff73bd9595591722bacbe6eaabcd9c341fc0f10c04a218c2a9e45eb35ef838fc551fa20dd38f758322700919287c2b9cc8bcb4f39608178d93f481655ad18306fb6a7e1247d1a3b7a3413df7fc4243f9708b9129b94259d17eb96687feba4a16ac8b27052b417e8b1cbe3321e5b5e358d79f32682bd5689364e6fb81b90437436e90a02236cb32b67b65c4b0c3b8350876afc29d622e79625499c9bd8bd8a314934b3dec8d4a1744191df4f468e0ce809d955b44e07818847eac6ca7c78504c8ed347bd5ce25f70a9773cdee0edcdfe47ad04ad689c7b49461228ac75cc687ca0b949dfb9893e0f9019c1570d29969076ec2f2da749b5044b803bec18c1bd3aa4544b939a2be160ad028fcce94bcb7c9b777b2de1447ce8330473189222017bf1a61bc2ab2ca54da3972605fd0b7429a38ec313af2d59c67063babd066a73d367216ed3683a668dc4aa5005a5a58172cdd0f08abf3e8d8e544afa9256494059f256052414599abbbd2bfcd00492bea22aa69c278c4166b2a4d9e6e74e281a04b7e518a1da1a063eb4e2bac32fb3375c91e9cf9f1f670d7eb03e4586136e8349508ee9061e6263424fc78a37026a109d826d0e8e882dfa91f881a67199454c4f9d0461dbe6dd811c132650af27aebecfdacce577c8e8e2c87e5cb68b460f57add198733446498fa72d79d67d9bd22b0cf65cc694bba817e894679f90e16db7f6ad96e2fb8e877a4f918ed356e2965a445d65fb9e23e9214b4c4d4472331a64706ce190074f3c16f3753ba587ff6498e235f3b2a0a23bfdb7e6631b6777d8fefba30e7c9a81eb914d71fe082df9d11cd0e41924a8fa2e71dbb841760f2ee892f80319e019000a0e55c90eeb508f6e54395c32bec0fd4099c57db046378d404b522a1b9103475d02725c2265a108a3a14113718d3890e00be841908a1ed986887ff88f91c0c6f1c5bb5d1bde4d27c045b260eb2455a8e35751162850523d9fa3255514fdc655ff808e876a5ceb62dc8ffa96989dc90a3a24d5052aedc7ef22a462b2aaae044a6c4dd09d30b679ab7ce48e82bf8c1771550ea9abde036f9aec8cc90a5d05a118e680307c538363c02041b59f69137e7e755efef49df719d1bda7e39ff6dbe687bda58f0f574308d790322eb8358dbfe70283e9a0157dfdc34b69876b77d4898c53ae5b9d5b9e74ed7b6cc00776cb9945cebb77a4cad899913e5f1674629e0bf57651c70d055124f66789e01ceef5ed2ed2ad337c199ec198eaf87509e82c8b1bf9e87f83d30d045a2c90b711d5fb90bca1c0a28a60b11be0e778a6546b1843924008e5a15e7cc9ae9b6bd5515b19481793f3f726aea19b30555db55b0eefe1d39467831d91f87db17ae3a08945b606953ca4819ff658abfb30ff0b8455107de2260e1785ff98fefcda4c7eeb1abff3cebaef0436dfe5fc06f58e9f9ff0d5b5d0069b6cc2849a42656f86de183d2865a38cd506e3592bb3934de423b967e38e1585a265c9b89e477d928e8454509cf2788e77a8b53b1c901699098d963edf3863ebc138a9199762ebba82733dec74a0338f5da9ee47d17a1d718f9163679cdbc652bc63bf991045884903becfe98eb58eb4fe86ea83f2969712259d5e0b4a171dfad2502bc3359b53fecca9625e3d88fb16b22647ba6ec2e17ace26bf1bf8a617722021fb25de4c785d64d3ec222cf14803f7722f620de5d08a9016fce77f5e87f2141df36201a172e043c4bdfddae8134728ed152247b63cc1d4f94150382ce91f2b6443fc5572908d554b5ab897fa61a469fc5aaedf3a5fb14a372e7d783dce688904c08ceb7e775c268e1131db67de30e3bc56a3e14759fde418bb424c99057aab22a5e158f8940c9d68d6e4c40f1d0a2d46e06435bae6dc933866cecb57f105506408cfde20e948e460afec99f6f76b0705be4be0c6a994e8841a1d5e3385acbb202c434b42064d76e50e65a9451c0a922483e27a0bdc1286ab6d78caef9fd118dcaf417a69eac0981c0b6fa36b55684f1a298b08675a1a03995ba9065f6f7043c52e6ee0fff3f8b513a97923be0c9193ad3764d79c3a99ad54bae919f33379d23981c1cabea64b8f575090c9dbd36d6c8a8d326f9b48be1e6d46097e5a2becebb8cae1a11db91202c355c9a6eea4e710f2529aaa597f9d72337b0515a9dcd7a56fa2beb28d298f9e599acc79c465a6c4ec3bda8af3d59c3464513dc944bb8cc86b13e71976f72f028b155d294972c3a0506e23556a7a2ad11312b6e37bab4cae56519ad26ace052d3ab3daf2766e2ef50691a038f32428fab9744f6767ff73117d4c9bd830f5f6db3a804f4a676650d307b89ff674b67390df2618b04f75bfa9c14db722baff8afd4a425bce07512781e9a0180c34d51155de482d3777ac795920b1ddaadd960404af4353cf72674c0261f442129a163f2f007af79e16d90d569e983235b69cccefd2dca1611b613eaa8874ff7c34e681906e3a3d19411605c65e35a27014aec1bac489f52f72d756740843db715a117e4f4576b2efb16010e9ed01a9f8eb6119b27f23fc800607a1ddf3b558aa9ba58676bec870b8ba76026a2fdead309c840e03e3b49cdb30a4b6c60b4856ae701fde7a5b9878cc23166e49926dedba1fe4753dd582bcb6cbd8a1196e6b869b8f8a3ef00987cefdc6fcfcd8f5d987011a0e941922c8caafd06c28b60eb1177bf3731f5577ad16559829502ba393e6448ec8a5c973acc07072f2e1bec1a812d182636fd93b5776d58ee2d5b92188791747d12730faf5acc9f794c7451829d33704076d51f36dae6c9b0a9b174a79d8fdb7e82986095b7c373c900634cafaf1850cceb28ed6dd9987254a796e38548223285e7a6c8e493fdbb97814168729618088e2bb74519bfc3dd43d54875d6e9cf41414a9953145f7dc0c6831519d906e1463c9bb5ca77e381e8038e4960047ec876c7400acbd357183b30d26f205c9b6101094ca4a1832ee3c123c976cbebc73b2a9bc64551a42adc28175d4ee4949e6c2c1b33a74f92c723dc8663d75e484211d85a19d22ec1e7f28ccd9126a0d43df79c92fca63a47ef7f136c52fc15381e473dc5632e3c23a24fbd6d7e2bdae2edc6a9b4cd72506ae646cb6e7c854e5444e022d4bf99a1955cdfef686a951a8956e4c81b813380a3e499d1b8e9eda58ad7b16e9984d854f6cc10dd34ab363e9e2835049e5c33edb6d96b7c599a1560a90f6008ebd0479c1ad928856d95a089d425b1896f2c0eaef9ce9136a7b1d327cc8263cace0ba1e0060c0e6143fbc508ed82a57412282265a730fb9cb83cabd90f2cd99d3888ea8ce345f99195ceb9e51384a3f18bfb1b7d0f765f6a1ac95e7a24092f73960b2af01e1360f192a93ee07d138645d9deac05ea8643704c64df5584f182bb3564cfd20b2526b229bef0be4a85373615b79a4df2b4d88086e556e0a5b5e43c743796c1ae08f324cbc55d00ff83044faadf5c054a13e029b96fefb05fdf89e4cba430225c9f320baed5da82b8769c3751f7645f93c21c8f20930b031331e963af62c479990ef84992ac5aba4112ae701ab17ae75e7c3061fb407a91939cbef600fc99c7aafd77302fbe4c78712b697e951458596178fe8c48f4e09c02ece1a9e64940dbfa7cbdf3986779a9434aaf372ab65b52e5a131436a79f30b665cac6ce113ba323cf45ea87bde704753593ec7698d908d0f5e4c0572d6af7ac90154c3854eb58f2826fdf4adb7343a103b90d768727535daae618256828ca410f089556a1ce98e3b9691f565d226e7322525be7f089d0bb110ea7cbe16bced2de5a31748d9596cea686b09e22cd7930b42ce031a40d634d934eaa5146586987bdf386774f85dfd8d33280dddc2140d4e41ebf4dfbe0dc2e975e93664c00e2484df66ca020dcd6b15f16eab2995ea39b036b42fa9da89ebc58bc2b5fe15ee0c7074e639405a11ee8291915d015dfddd1ac9cb90125dfb6a63174133f3bbc073e0558c8fdb18bb5af7475da44d04f1f89465dc94d065b6800cb1028e4cbf75d360022498fc4d50c4257fb6f93e77f2fce909e1d41ab15dc71dfbf8da35001af6adb6cce9862877a7ab5afb6c78f283014cc2eee384aca2eb051d453c56da1f0eb296104fd82c3c1569b7e11cd3d7a90786fca1a7051c5e2ba59651a01dbb9a205280714c9280db7ca8964ded84bdfd53ef9580cb5e0d01013ce043b0c88e00e780e1e771e8f86cb90fcadd0ba367e7c828478986e2b309c5d88fdc705508b373b23e2c237997eabb4ca4af1ca3aef984cfe6f5aa8475bdd7741ffb5a01441dae7035a819c87d3264acc2bdbaeca4c99901656965e1caa7f85242621c8c15ac2dd5cb86cc96f26a025a12cd2b089c0ebcc39173355e9bed309b7d31e797b6bc09a69869df5fe1d2f47098c6825d6a00b27962e03a4bf69caf139658b6dd095c00309e84509a2171da474a3d5de1f0a9cedadc6dc82d0b9cd4842e18d80aa809e390ecbe70e69b4e7fd712e41e798e550a2cd7858df7280a89facbdae91a58261313c20e17536220c9a58536b11f5e3eb64c4d31f2df4ef10e0ffdbec407a7fe0d61d1d1f51299fa29f647d839f12ca5282193b08653333c9d6512a8cfd51dd9de7fab05cb9a9049c0d9f79225394a3b5d49f9d6d68a0900fa3d5bf38ad3e925481d849e2022ccbd840b8fa6a8491b8aadacab7cebd730f8964dacbd43af6b5f6dd11f80b150b5dab050abaced0973f29fb34e16fd5db049658fb5f3fcf42a5ac4107eeae7362f5eee1eeec2c078f7ee00536857892ccd730b290e8df0bce02fb05a905897bcb5fcd1d0e7647cb16d80ebbcedcaee5bd6847f180c03145e48ed3629012e9874224eda36d1c711ba67a328e05bcdd853816c283877a6bbdd1079bf8270ef0cc5e9b5fc6a4224b98cf9e2fd1a1af4ab2a292a7f6f76069a665fcbf098ccae057e615a2304706bdf2e8cb7f6a2e2336bcd9816767181cc5220445ac27f9e87464635336ad25419c36a54f33608e6895b7ba155400cc3a04d7a24baf46d2ec736f3f12f8c176942a34e11d28706c8edaaf1b33732121f41cd73240c38b10ca7b579a164e2f607acb277263853d1ce101216bab0d3a04ed55de2863dcc9a4a3d8cc1b68d9db04fe9d7f62b8a26bcc90d33e27f27f0dc6ac5bd2ece25fbcfd1d20d5bbecc68bd7259910231e9ccff02c9ad73ce93d8f1b7e50e441af4a7d587dde88c60a05cd1cae34918ad9330bc1371a918f1ecaeb799ef7356051d858986b0ca2fd28610f4ad9cea924a31221300c69c36bfcecaacbb9ad34ceceede02ce859c66003cdc5d668dc8a8e4c0bc32a0efcdb18da091bcee368bcce1428f74d46fe0b04a6509b1b2f7b31d15366ec49ab3a3a18e23a4d9c57b18442fffb0dde0bade5f8479e7a4f69b8b1bd26dc9633c6ab16f7dd1a2cd8d0772760a1560f788d4837684b948c0126575f3ee733bbbe073b284b1f567858fef141a1af99726a582c9476a3dcf1bcdc15cd4ad8d4e38fee1c365feae348c3617f7ddf51ace934368498170da4460de2309f7dc1d9ad184b2e835f5abc7cd3cfb176c58730c77c45224b022d46493bd9ee8331ea50359f246e4be7c1fcf334acbf454cf2d0ec05afda6379a5efb9009f772984a51a72ac25bd8513e6f11da303d2e374d62e672904186a346ce88f5861b691b7a753305890be7485e100f19e55f05989cdf0b5ffe9548b2a2c3b709b5776f472b2b90308e96478b355be82c31b03b5fc6dcb34d4f669d509a58ada4a958c71ba5ed9ed06c3736061fc82ac29815edf642a488f8c81801fc675b04c81cc4d2de66f15796c239de0dab728ee37dfe9062989b2f0d6d6a8acbb8fb860e2aadc24d7dd45f6fddbb28ce5793f55fb12106803b41bed1b0a4d9f2d2dcceec70e21a6d930f7318c5aafd41960c453f20a85d182baddd328519d288c863e7690e2f25be96131995c647ccdea69d245c8187d8302641172f40f6afa6f14a3c4cac6b55d512778c9e6b7d4fc8f9ed39e3252c053e0f744364b4a044543eb9ca4c041c44a8b94813d35a55b2f59862533a15502f14e9b4ef68d7cb97da6de76775b4abf2b49a2b37a494670293a1fe33c331ccbf83c08e040b30668638c7c9c684382b4c96ce42498c7f43e2c24edd1b6585d728602e04dd087f6892196d23f6d64b538989cf8278310b84c90abaaa8c34fd356465b676753cebbf05388b2aa851bb6a4dab470619674f3f4cd5277b815c22ea7d52b0aebd43f5d2bc2447ac4fe4f550ff9e24266025355d3b55278866e86129ff49ccb7c260d37af3de18c841bc5e071d8584e49ca5dcb2b23b9cc53487c9d2fdfb0a5c8ee57fd5f2c2d5f80eded01b7f3add622740e8189c369af58ae2a0fd2133c771b1392be25154706cda9ccc3eb49398fec33139c1894383c18cc33de6592390ef2b4d7329c82c22bb30c411273f963d2cad51dba0dc7d593bc4b8d80a99e80d1d42d167afd30e361f7703ff5d1cf5dc77226b915b690202ed623141a79d3510aa43fdd7d8192e657d758208c4d4d1a3959d9fc0a4322f06b698932e97aeb5104ff7a1712ceca9a14e167a8fd602ca1d54ad6e0d7ff2a1de7dbf3094bbf7f6e6aa0d7ebb562b4eab2b73c722560ea95260c03c404b938fcd04c2274ff371115901e736025a7916996a6f51dac52535939f7a2f8a9e8d657c25fb148a398edc3c3bab4fb6c05bd686101a6d5f45664deaf54c56dc60998adfa3682962f4c18692585358449d87d0e84b0c4a65efe6e284292574210047c1000743c7f789ff6ed3d999db193de313457eb3ebb3d8df8db03559305303f0c34df2f86d95dd468f17996937af0660148cf808c0c48351f2090a64c6a6adf923a2a552c34629fe110eb201ae463dfeac9e2632caa42b69c020164e13147cbc249054285bee6c3d516a858af090e24d77c55eb88d29163c89ec8aceeb975ae6010d3be9fc8ace45808245c8ee3f98556930817e270dc95ff5ba162ab2a5c74d78178a33bb1f1b4edcbebc3866ccb92ca6accda6b92dc668311a8c16f5dc49ff91c6c0ba388050f0ef673304cb0480d2442696a91d82f4e115e592879e9f6c5d447126076f6e09f22b21562756ef93603f4a6a87de079209f8930cba8239e52b690f3e782d6a7294672639bdef1bf4dc209a2f0ec7f7f95e1377c9739d2c7893c852b5dd958e56c7448c30da95db8587cf090976618b760b7e11b95fb0b68e8cc2dd07af12748250adbcd450f857fb2b45006628a30c13bef9fcc5cbf7a64d9ad251d9d71a3a1ef3f549b58d7c91ea94b740d659168032d64037d7a02b1367da7f8aae101f4cb936f14b992abecfde670ba78e9de2f92299ceccc02bc608339443a66f4fbeed3e4a35048f6418ad231a0b6d08546f3f0e78d6586121d30c1944a52b74cb37d67974edda716ab93296cc0a31c20072e66e567b3a3212c34170cf6ceda07827be3d7292bc419c45ebdf0662e8397f954e01598fa9cee7497ac02a92e97a46d9c01f032c9ec393207b4d3e0436d91d5f2836bb6e6c335ba20a43964e2c1d441822d81ab7dd7d5575cd740fd8f03e8a6940e8e6003e90a9752c708d2e0bfcff9d353858c68268c2fa6d4678aa7398084f0414f1d0134b3ebbb213c4b49e2cc305f1bb4f14fe78c9db8d4d12da39b26b28182f53d6e673924db156eda9301f25693530d5ec8f233cb1cd99edc8cbe7a807e4eb52010051b360e7798286211deea3eb9dc4cedcae2bbe70fcaa483c193995e2cb0799fc92a7f59d0b78da92b99a3751de1e6da34fb8a1a64d695b486a58c5c159b9811002b2a606939749be4d8c782491124dd7ae92ebb07240683f51628c6718ef2a51fa247f176d8b9f9b78e8603d9d0e7fa2bab86ff5ed3dc32e3a6d3df2b102267ad082ef48762678ec5e31d9134223d342d87f85caebb77a038beab881afd4a91fc440d46ec1a26d896019920dfb9a43a32ac83c2ee0b75b93d3a7afad979c512acd093c9497e16238a38f471ef3190f9f68617c662808f7a2b4b50cd3e26086af0e39245cf329277cbd1bca292bdfff298011f3941dbefa51f4f6176cbc5e3176c37bca77a1e6f5857c75e9e99bc9ebe21082060cf2d759cf8f9e29f7cb9e571c8e372f57e44066709780534457b382929e980492486c85544d3b774bf3cc4f8bd6c0a5618c9551c03c76e7ecf0c959668630fdd97858d704ae660c96693296646976f1ef7f55e4454f7925d5a242e58393ce1a61c9f6dabd5a2ead6736442fd4386736afbbd3a20136f954771d51daec717a6826da69c178d89429bb985ec665ba2b33bce4906c029d4c911090a07e0587051146159ad6e55795fe7ead3a70f28ad32709116a1d9afbfb74e4a0af457ffc007355dc1f44cd6040c418f1dc526a50ad3160e2d16b38c4f1e751a54edf9cad956722be4c85224c1c43b85e89380892cd99d4a015a7a9f0fb58b2d899a2da525065db7188ff6764bf47be41325f8759261e0c9da092f3f8b127fbe06a3ce06333729bc94fe31076adca4f123d602c010e686691a9c852a498acb2ebf8d26ea335b1c5c02f4145388dd9440b7b4c38c86adef301974f4da5d446c0b2d39eef76161d9767f9ec397ef1b5d98a7e3614e8de5f242c8e4abf0ab235142474aef32c8b675eabce02e3df16c155a2eeeabad3ce295d936785b8efbf7c90c3b96e658b2bdc98eb6ecf06db449bd48aa62c037ad98a1e0cd7d9d776d7fd0e0f0edb1ff409d9f37a3da5aa60281f99e2a8879f2cc9dbe20af90248c0fa6af86714b8f31050869f8326c81daf49df8452e1b2f1277a1005be59beb3737d872675476d22d14a5a50cde9a21d7a460f618d3527cd1f8c71ebf584d53cab40cf8486516bff1936653a88cd5b52c90d02be796bf438a2bdb8bd0e49f65b64fdcb6045896e365fb5315ca0ec16cb1ea61babbc8dac3550db8baa27b5fd4f03eeb734110aec89f7d60634d7757a72aa0c17662ada6382a1c50068f4a8c7846d5ed49898ce09dd41316287517332107cda6c4dc1c8550e9268bbea330da16fec0fcfadd9d04eabba54710518997fcc1ead9a31813afadabcb0f6ab638f9690d821e892b3c73ebe3b9913644298ee239925f36b15569201da2122ca6817e60ecb26d9ea1cd6192f20b0289fe2e10c1c1cf2559131f4f5f5f523ed5596ffde10dad73f3aed4ed2ecb0cc79a2ac2fc30823e65be3a4a9fed84d3422d9c43cafbae522878d10cd20106ce2ce79d3bf0e3304024c4818c8a5557e96394868fa01d2e863bfa328fac7c402d5340487778125d057a4153b8c779b1e9d3580b6452953230bf091ed5413ccfba1f65e24161179deada51f5bc6749991d883f228eeddd79e1832ad82ace53a8654832f3dac278d28db17ec7131e619e9a4d4edb70ec236e1da0a44238e7bb2eb2665459eb7cdf38d742cc32fd56fe2fb2067b43d77188c2f38b55a4a50e18690acdf9e1321f3986b8ae51202e5c4c011436f93ed0287c6051937acc1af5f8a9d1021b935f6d9db641adeeb1b9e7ab9f6c9e8add7be2c390589d992109dabf512b49512d9fa90265a5f346e7def525a406cfe60443f8edbd0b9a80fa5c76cd42e49fd0d2324b3b98f8713bbb26fd70853f1e4e778024e202d9507c07be4066021fe03db4df78c0035427014be25844d1ab1ea6439be51a73ca4ce62a4f9ac5f5ef5778edc8e09947a4ba7b51a4ae0495481a15ed100a0c92cdafaa518ac9cabce7e8e27bc035000b29d8c890e66a1ab625f75798f7425ebc58c417e81e2d384622e893e9904d7b0b5e1270bec6222c44afe4a29fe29ce400dda4032aa0c690d37d00d6888539669b7c36c442625ec478fa9796d28b91c8e8631a42872a28324305b71bd1120fba1c7a3a7379e3d7f6192890f6c090a75c093224ed4515b95822948eb0f06679a2708a7522982035302b6eb7bb83caf405c259448a6729c07544b212e2babdb3997cabb466da99d69fdb93b434b7ede0f10cb2905af0f4343ba8575ece1d91f14e3f545dfb3fad456d7560dbf78d2156f099be742acd1b20aabf11cccabfc5232b554fa524d0a1ce38bdc9b88f59fbbc9850efaf887667aa453a190d3f95a8cbd61948b1112b3f6ed810714d5b79b882387eaa0db034730deccf13c0bb5e478730ca76a6755ff016c534c5d0d1fe6e1206d13238e8caec75512dd58a518b75aa6521866571b93320d33cb41dae42d4d8bc2fbadafd63d3b2f54b06f159024878de064d63f074893fcbe06fdd13192fb7364613c3c97f313533a7a26a1e8f320e8fa57908a3c173aa1d89a4535fedb46f467b2e0bc090971d9bbac7410419d82aec0c338a5ebd0dac49a2399cf3efad9bc152f6fb6b8feace93e6d1304c514502d6d779f74c0a869da2b19b731032e706b1a536e855b560f5235fff7afe4a870301fbc715f9f1ec757b93ef8a98fbd8d150b97bd67023a0bac8ead7ebc521203e955205e2cad1276df6a5d5099352be197f7cb4b6b9e57ab3e061aa36aa514e3984fdfc21d918296ea3dd5e3f0d3214ef339406e00121430ccd27bb09e0133d36dcd09634e0d7130babe1ec6d468775ffc42791e118620034b7a5b6a572ae0316ab464115a35e169ca9aa726d0fd9b77eb74ab532d0be59df29132fb695577bdd20db11d7258db54dde9e7ff97bd5a41e208340f09c245f56a10cd75a4c1e915b36ba9f83c5a5fea7a974831ff07f82e991d08a4433a39ae8269b7cee23427f94ef654d9b3fc8299f8f816e5258011f91e6b94b2af6b7c30d7acfeec662a23b6f2b24299c1cd56fbc1d3dce45d65c9653e42be668f013a4e9b5c8ada5d4d72b879826c78775da8bd6587efc0b7edbf69cbe70e989af4ebac295eee5a246aed26a7e6914365e0ec2f6c4335e9721c9967e8f75e72123679dbacc1c67768036b49089dc771068f6a3bac64bba35f1ebc1d213c0f78900c14fd69b1b497bb97835b6e008d58ff4f9063ae8a9e45f82590fe77395ff9b2e09873618b26ddfaed0fde284256aa0c6dd155eee8bca4135eb357ed8309a79c2850c98db688a7960fcb9ac93b061b7e78027e369320f2a7384f0710aa825014141da796bf4c99ab6fa0bc50f725d4d07d3c34a1c6d97531d946ba27e867bfb58c21299cc73e181be6c216d55351f5b38b13bac3653eecedadac8762cb379ff88b242ffccb813f792677b86c72efebbca21049cb21dd388e2262d4f688ebc7145f272435310b484b545ef0630f4a319bfdc4733c8888acb4b15a41032af2085d11612d51643ca767532eb82ac8ab7e2cb824bf7da87bf65798304289455918cbb77df56c4308285846a2d0fb16df98bef712a99a16aefadaa80f95d572fec545023d93b4e8c97f71fee92cbba246389213fb8bb37735660071df038e256a89470e2e0b632b91d66fdb732818a45afcbd546dc8df907ae16d687c7f714eb8f6d6af28c75e3cabb0b8f783d22a4264e5eef48952446e1bc60b591f6f5039e5ca310d28d8d9c12fb6d183ff2ad74bdd90ea0ae9265626f5de33da6730704f8a3788f70c8ba039b9bc2cc7e1aedf69dde3556615a406ed9a8445fe8f9a0f2dca60d17596917334f97850b95bbd368c821e1d94248df530d78eddbbd6ddc9e81df531d97b576f1f8ed0d0e15efcd3048879d35f5434c7c3879381501deb589c169b36d6d20d439911bede50b09c89eb9a900cf8a1722454c5d456c04edc9785199b638b152c3c20b25f57d8ba13d82fc7ab67b97422f47baa522d63d77d3e85d06dc2727aaccd63db4794f689f3f4073e6d8578b15880dbd76563759e62ba77c03205583c0bfca0e0bd44a5f8cd70d3b2b866387fdf19e9575e8af8274032d77571bdbd50dbf3b0613d3beabbc09eb808e5b07aeaa91a51c8cd799f2f358818ab5b7d4bac3f55a437db2283b1fe61e2090d559d037a14ebee4f65498a9d4075bf9914fc53ec7c7e64793c16d91a07ccff7fbb4547ca580215765a735f3d12ebb93557ee87217d858d8003ebc71d7bd8d24a39ce3982f576c4856475917b419dfad7f658ba7b3ebea93f26e9633cb867907566f8b54af431c070d701aff52e9e9099ef5a47acb1fc66d9b05ee6ac0f3ac52095c86312549727e77b73e6eceedbb7d411036b10efadd813ee293eaf84086779c779a948a5bd49026ffe465bdb33ab107229a6bdb0351c75ef09ab99770c9bed189c3b7209bfa223fdf7d848cab2ba36689a20d2a278ea2e007cb62697c3b2169a930b1b36383b41873de4ba7fe5ee2e3fa63f735dd9070ab253bfb40607a689ef1fa3629eff383f672b2c7102749010e7eb39adad047dd6b502ee86788c8fa981f43b0c47fdb189d00dd9607f7cd81a761640301898039161268aa5d8243ca32009bce59aeb357b18b2fe5567a6a561fec5f6d3f9afb48e9308da0d5f7049cb117e3daa3124ff83ca1b942b75db9078b0a4f2347277559f81d8c4b14bb2d3756af85dc8c7c4c537dca2361e81c682ccba906362063b0edd4d75417b0e8e3109fadc5ad1c2a6d8d4d23cdfa653379681dc5a5b7acd6e5dd9237f603f7b5bed2411068e1e04b1746e7b721924c2f2ac22806f65f3fdb47696f83774d683ec9d715dac725ee379e6ebfe34b09663a503f63c786dfbbd33c32f334dac821a5940864b59dc857168ecb10622653b0de7ada0bca768065b547e0120e50165248550f2d2fdc297412b819a0983ec4cd521ab5c983d59963eecf1e5ac6ea88a7e67bbfbc0230949948d030b8a6855da4837c3963ccbbddfbfd9ed7a33200c9a2b8f108a366ae462ebaea69564652c198f075a8d0385f0469bdfd43ac116a1574725d99ac3af484238d509690e9d2153af703746923a2521ca981e517ab399ee5b924933b93bf36bd11e1e5e6eaba75986dc6a174a5e24e1731d8383033e65ace7fdd0affe6beb866e7adb9da6e17379f091e4cc492bba4cddc2460c8fa12c8235c07d25ee82f49d214adc7107f165b1059dd6491c93d459900ba0f66fc1f4832020f8c55161098c7f0f972a1278260512e06055dd52bdb4ddbf06493240c2e5c7f40514f7d3931ba90229e922a1f52665d4d1b6c2b8d882bec77316c51caf6c25688ea77313fd7e8363729968e5c1fe565b841db801502d978b213f994240119fb62baf3e0ca1d1f80ad15b494f0c009730ff04eee2c057edccf1156cb28e74d3a38c3a47bd9f2eb07512c51e771316346c0c374a6165356cd45ae8c9c80268eef2f9ff60afa072beca9e08caa6d5665aa9d84de9ec59964faad8ab022376725513ece1b7867ec40499a496446359d7142682a7fe7a3512add12a9c96e9cccd414035ac993233bc47b4994f57c21a69333ab3279d45fb710fc2d829b095ac6176513eb311ef611883f99e357099979dd6444732c5a2a57a97cd37f8183cb594e99aaeb45c4f214779dd654925181f26a119853292d54c35ab5f2a9bc0b6b0d78b820edec0050995ce9aeb8c8cb0efa5bb3124b163137a7b0b0b973a921ef09afcecd362a612496daaad790a60d79d50975b9d7c68eaf54c413f682daf1b85e7899c4a9bf0aa45bdfc18f45dbce2b42695c2406d416472058e48bbe56e9ad0e06c6466cd650dd78d99c20d23277c2b53393cb1a99c8de753d38299c73f91b34f3f7bab22a0d5df5f3a595db6bc552e9147a288815a3605ecd153f87e4b66826ef68b6e6439fc809c2640408b545cdfba3cf2b62b0958b4244a12b3179e34cc7b275c64b6419f527c937f1b0f5c2c609b5c896917effcea2bcf204d97b678d1da7cade3dca6eaafd7903c641e341e27763e7d74991eb36c4d8fa9fd4e5295321cb9d6a8486ba1156cb8d74b615acd54f3a631265461187f94178a9c324c5858fedcdf39beb5c8799e3ba516e2543a407dd4b99d85708548846e433b87fc398eaffffdb2a0f03528966a2bbb69b7354fb9b458af9c4fa8f8b0ea49e0cf05063075362f86bda7b3d030a43920a70ddc5265037098042a6910b21707e02bac6342aae4acdc6b80acd03834af5b762fe2f6811141ac7eda78a2d79b6287c82bb05fddfc24d4368214b4ae16b597670ce3817d759c7542eff6001a8d2bf3076d6847248870c8ac22838f3d623907c6f6b6c141aa4dc1d0ba410f647ab43dd3034f0f88f2fc59b87a5bae77432e62eb7a47e3735c17b011b642fd50104ba162049f017126b2132963c9fa57019add7d2272473bfa25a7ac4a89cb8e70a9de91f759790d7b7434a360bff6fb121bff579c30863bba6eaa12ef6f8dbd64e2139244b31168d54ddc26c827ccbc980994b47585304b979d0ce48169d380e3d4a4add4d217a1cde9c1050c5fc2429cc8ddac295e23f77eec5f4f3a0a7f7a706e0e3e8e2c333d29bd0cc19a18cd093f68b1c31e57c46470d592af4b61597a7b00b54c387d49bc13ecbf7e74a313a1cfd255c89c769d655f412c61f573718aa3978a4ff61b08e5b8b10f11b8388c8ae950e68b93ab3ff52f6eb22da0bdcd656fe5f8c42bf43dbd450c2aad69f039cc7f222f0de1ba1dbdeb3c6fcb1427f591ffb90375582dfcb3adc6d904c382bb3a42da429060012b332579ac2737e177e549ec4f2d756863ce149f188b50d9999a97c2bda420d02b6dc24b4f8449c2c6c1f02ec8f6e48049c3d02f46d11205dc7d97b04332ebb07c6b0f7a91787bbdb79ac910f2c81386a0045c8ebd6979ee0918265cab0e4fa5743a19a768c33664c3a662acbca4c64b2ca6e88ede57ae03875477c60e48be4cdb4cdf0096f06e304081d87072f616e3df6163060d336d08a103b6b961d770b21de7c882576a9c91a24ec65f3d1e5db5dfc47b4dfcd2b2bed0262aa6732a1634df5f86c2d6f260c3bb48918be6e8ca22ec26dafe8a19c4f3d552690ae7defb8c084db1a9259ff2d704314f447b4b9970a12dae08e991bf4840affc37a4653b2ad3adad6c1c0e848c630ca740e965e42a2fadbfa5264dd2744f6a30fc6aeb94ce7480a71f086f133a7122ae2d4f71e537e7d149ec16a466694a87300e44b4b809df7d4a72ba814a4e845483d964f5cf056aa814718546495d4b242f06915ade880642898567a4ab399fc0cb316d4dfa11a01bf337b0a0964ca9bb6fb2803cfcd08469ecb8c12982ec29a916d57b5465e14dfb7ac1f24dc58d94f420df5d3672d6c4e0a72f74d4174b587975af97b560d766915f061bb6c1302fc27b8629abe5ef13c764cf8373b906eda5ee1924b90d8ae46bcdcbc1f398d79096bc7bb42c33ef6b4f715461be2777fef2dc21056e7ada20da8ce307a95dd385807c414824be1b44bd7ecac5f086d802a6b8f20a75260c17d69597689bbceacd7d2cf2e05df2dff9e2967ba9d075ca3c05eaf3bd3690a2390239061732ed2888b97b2bfafe7284c2dc47d60c0fdb17c0bfe784d74ce833b9393aa700513f6f3c4a645c232b8772dd77250de081c56893d3a944afb6d7a0c5912a46cc6d7217a6101f1a4d33aea52dc8fd04f6004c5d0305b3a4c13f90a52ed1efef1b4b834b37fe2e13fdcc133fcea7984a9e03e634e22c2e22eed92c96faeb9c84334a0fd302cebaba8f5a73208c015d3ac075e6bdd5229ad32f97cf13c2a49c4cc0e1f4853f09dc146aa680a6264eba33e19b77b4c05a4d9570df6f7d61eb241033faf7a1c4719b64772038f8eeaa2a296b80e5d13654dc21aea46a4ac9539e093e63ed36f9b4fd9ecfbfd7297c520708b76c275ff2dff439acf76cbd5f3e584f2763205de0729937760b3f50c0f1a5c7cf226c27911cbd3750614930d1080a980afc20151c16b45867b4112f4aec8d09682e139b998fa9caab9658432ac9a1d661cc84c58e8975fb6bf02c21d71f74b92f5175dedd3fae9f4c4aed8643335e988809cd005c2d13574ce36f954e30d87b5d647203d1336fbfaa767ad940e4fbf71211f29df6be0678b7a985ff84d2845ee69b0f6859851227d701207d5c12b4243829b0633dc10f6b03e1b0ff432b9642840afd19ce1fed292f528b289b392d9ba1f9a68f8dc96550f269ed158c64c953e8b39b64d54e7ec4da6c6e736e0cdfe197c7bc1521271e8f5cff51c42672d9b5995b6d0a44e30e9e5215d768e6f553266cf9c6638dd28102ca7dce07e5ec6bd38ebd0f5223eeb946fa2f3285cd6ca8d3c291fcd6c29f4798d650ec8731f0c3f83366e417e0be7461a6b8f83cb34d1c77edbd8c98e513ee172f11dfd2617c59b6d7c85bbb853e73fde34ac0219238b4adaa3f4bba2c68c9f58b3fc0cd6ac64b5a8d5bac110d9dc064f8490b469d87f1745304254fa5c6387c7046fc21b8282936033160bed972dfe1bfa1e9e43f87b382611a454eb4715de157daa1b630f66819b3f8b5b079b5a4dcf80abac833f8888fc80540d888022be214f3cf44ffe8fbbd372e75d17c1d15245e6827402c77c402063eb5bd7bad866a29b9251f2b30b9adf220251e51917a14089111ee1af58d9f3151d41b7779bf1a048187015473b9ec6be0110e46f7d372c69cfac63c66b1cea2926362eb22b3ce95c97dfb283e9cfa436b8ae84cde2fc892206e1e96f7fd4cc04eac60ad967de66d0192f086e9d8bd92f1e577e5bb6b938df234958751ab6a96f7d449b7c871b384daeaddfce0e9430a8fcff29439ef6e4fcbeaedaa0b5674671a20e84cbdf641696b35181cd878835054f6ba05d12546e03bb5bbc492a6322cbd941f78e02f49b02d891c85f8907f1dd0a4141b1d20f68162b3d7223e08d675b119007f23cbb1470ea45f0ba6161e1cce0980381ebb9544638da0f86264895058b7d8f28a40c1eb27c7bd9418cf01fd4bff2ae14a3f5094821ebced377a8f6d109a09bfad07a1990da2d07e5f09efdbe555184ad9a9ac2e9f09189d09c77a62bfd288ff7705d70a225504bb7b56b2a83a6e94ef4db36d2c78b30e8c5f166ddbaf026d09b965f01e608011332579cc2ac0f2260d316a6041640bb5c7f44fae80d2d801d1a4440bac60484cbf946a37f901a738a453522ef6d48efbf81b86fba55e5a3ad9d79daa859d413102a9a1591e00dd13800152d2cb03c607f3f594e6305a475c090eca65f875f6fcd49f7ed99b52f1c58a961639599d005cf930b74c363ce1e3771f9566a474a9e26b1a99d72ccc1b2a4b95c41f8412afa87db54e1c58a7ffb08bffc40b38e1ba3750dfaec6dbb92246664e49a612afe3dd89f23bdf540653c8122b499391cc6ea1f81896a2f839cdd49107ce7ab0381c9a8a42b9d18c53d05845012a9528fa9243246a72364de06034603850837a37fcaf0649ebf739e56ad0b7d83f5b1a583d756771cf621ece38574cf05421aedd2cc5fe158bd6267c29dfd50b8026fd4962125a7261ca40716a81b24c1acbbfd6fb6317695bc1cf5d55ae147f421c5e70131599584e0b04ab72650adfc0d89f39125cbaa79512467727c5259c5942769dd11f43e1ad7eb0211994d2dce00767581ff3642dc95d64e63d06ba1fbbb555c48e352a053ee543bcd45c69ca74a9a2b27c46c256a95dfc2a0eb568e2ead9640dcf179f0b2202af970e06c2bd140e25dc6e9cd19d04a9574a91881d2fd5553ec83e538d9bdc25270131fc2ccf1391d20f7afa25b0bf5168948622b8772c1a6cacc20d497cdb18a494fc8939946200bbe3730aab0074293faecbdd5ab553a044cc5f6db84aa0709b3027923e6d05cb7a394e0cd2716e7b65763a7b15ed546ace46d3eb8ef81f71827e83c636f8489a3acbc31dd18a0e21307115ec2dbdef08c4607bf95b33f2817c23b41115218c8c47c37e6a9825c598d2bf71dbc4146f00b83f2fb01bd944b4beec27a981ceece807076c5869fffd29554093586482e71846a311cf61eaf7185c37aeb4193d5ae15a04bd63dfd35d8f6a61d08f6623618583f39b6d8f2f1d4442db3b86855587ea087caf8799cbf1b78048de1ff3ec96f29786cfd9a2ad0dd9340bcf399654cd133248a095f34c4d5eae842a462c52b3f7365978218de470304c1030e7ba820d5b4c6c9d0d95f4ada1e5adcd1332231f6deb44d7f0b285ec4f1ff9ee72f7fa0e1994af7d1b91c8d1e714fe79fabef4bebe9bc71ef21e4b64aa444705db3abcdd6801cc64d3209823d518913ed412e3f86ebe2d0876b4dd979d3ad9e125d2992e64b939e3d2514c1e42735f6cccb363dd56b54264f5dd7f474cec598acab6389bddb2f83425fd673e4fd7ab071bf9339bd4a761e58d5ba389fc579d3b0496e3a7f50065d286f29ea0750a53dd8f57144d4b1aa0ed8865cb38f3ef0261ba06e7edf68c7f4bf40770f57d8147accfc7dce900901ecbd3946b60ed1d4fbd68db648dbe1269bb3cd19c8fa85456e71d1f59f38fbf5076eeb2b0c0f5345f7007c992e3ad59d68a661c797b196fa104e9eae7701bc4e3a7bd38df0c5f400c0e0341a1ebc353205ac361e84d8c164b8cb30e071c291d493882a45b6b3c0f4d80a31a1952c507ce02d4f08726566a4f60e1c196bd995872fd28f0c1e452a91941b1a7c22890d16637f908b5b61e724a4554e451e15cfa4831f38d9df033eca4592c5e7d0183225da69abad97b382bd24c17290e896c31862bad972313a112e9eff998442597137d01e5428bbcb148a410d0a0e4a5a62d0c6fc0b37fcc9399c7376cd825e5342ac148e92849c4b44a94463e12984ea8779c1979c6528c0aa8438f29c3197e1a6eb321cf88c9c1290a31b2aa0f0fd9dbf498d8a828b453298246ce8e5ac546d65e3fe114226c04b0c2c23d4dc91c0a2a42ded92ce41968ed564411dbea5ae477d695b6b0565ec8ffac0cb75f4810cc98101bbd28aa4c49594de2b3ad09a31480379b493cccce9164f1176798db1ed90d9330879c578f1640ecaf893a3359aeaf14970cadf8450ea147b0deb15a897a7eb7a6f4b75d909fb685f0a9ece575029209588920255754b83e802b0e9be81077b033fa3a74c4b6c3bdde0caa270cd633b7f18b6c33967e7c9c32a16b8af94ff5973b77d681600bcd820e77b531af6171a415e8698e328a5247890af6f1026fb1db16b713b824b72ff311b00596c32f8e75c41800e7434ed757d892cc80bc651a116e95605f7ef70779637df327b78a50c713db99dac74ecd8557fbce6f2e974594e3195edc0a75715ae9ef21648483f8f3ccb74ebd9c0656e76b402e5c9db726b50428d3850341fe5cfe62debbeedaed0642713b6f9e9a7042a7597c9c7286317e9cb0306e19005e3844e9b459ad815a7834eb27e90d72dbaeddc7fe85066995cd3d4810dd9cf655021e060c079d91b0a8458df2efe62362c83578a0ad36079ce161c0203d0078d8cd5ff43e23c58c8b9d8f674a04296deb59f4ff4dbf942bdc5039c042169d72af15383bfac9380b37858f21b601e9584bec7d8f217e9e8961a937df11239e81926cdf9b3749446900a196c7f48dae847f3b58d0020d814886b0ed73d5850b030465654cee8b65343a8f63c44f84f1df8e1f545f911ce1ee5b8228078f791f3ca92cedac6c6b4cea508a563c311b98abc149dbd63eb530f99f478ff0d9312c24a3ec083cdc0d4151c53d3fda576bd2ae37ea3691f156804fc9de59a46cc1566b61e41b0d6dbb4c64fafbc4fc6b37b635ea2bd1e0044e2c152824ad87e86a3f166064bea4e0b154c97d89b15608d04a1d66d2d8bb9a9ab80d793e88f69fec7132368835421270ae6175d9b18733943d72ce97c00596d701aac8e3729b77516e319d84331ca238759abd9a181a9932198ba01a7b0c721ace1345eb312fcd6ee0bc5f6b11637eb69fb8b8a16cac711da26feef6563bf704a5d42080914b86957f91ce036579c4649d49763fe3900590029518ac37d3a84caf5fdae514193e1e7463ae4735f60cd42953203663f6cbac5b9b6bc561b4d3e6ed28d0ca942648e65cb8a3629057c006a9acc3254d4749e20360465e127b888b22c9a5fa1d849f7e3c11ef8771e88c7874b1d951beef98a8ff1893fda3dcccd1d8966a7182e7b85e2d432c2d03703bb944a0c6d2a3b60c8c35bd17b51d275ca88feeccd1c812d99b0f1180197329d5950dde1031ab67deffc1660613b7a61f360bad2b07c84f4f605be93ce052cd5ca0b2559d4861146754a799acc617bf64e28f5e4061a994ceb2d27866df26e1d2a66cf92e15eb80bb0133947c2fbef930bfa3ea9d60a28ccc5c09ef069432718c4537f901f304f6b8754ab8df8405dc3eebd3cef34bd43eb43543622b4601b9f7a0420391521ef19fd40503610dbb8f842b3c8241db300ced73f9b84e47cad10cb4c84d9563f81616a961b91e68e81123c9cdb69bdd685c07a0cd2ef6e21a78f679511cd3362f83047ac81a47b38ad78b23394eeffffe8d549748e90f5d44c05bdc7b825cb3fcf4c01ab99fbad7648ead05f222497f24e1eeb5de97e785e37778e44e18bc4cf84c818cf20294ec1b0941c7b80778cfcecce9075c4503f704d307acaec9d00f2c2dbf685a5c22d7cd339c6cff8a65b6dca4e36595b662cdc2a91fc7ba0f48fced2089c5ff6311b18775801612fd2386a7ca2f2af0233e930c8829cc3daf56d11881f05628f782ba4f6ce5f96df9540ec55f88ac2132ba477a6984997615db0a9309566e0af2bd0c619b05e8cbccf453d47810c9b390b007466fb240c356fd8475fa20995fddb9a6587eda006f74a4ba26090174e6eb6e228c900b28061554c530d3ab4409be0eff5da761ba1e76d24ae923d732b3bac760d9047683d1dd5cc7dff034e13ab055ff614db06de6a715e63d1028d1a7a077bd104a8fb55d9d7846184219ff5cb924cbbc4f921eb2dd65dcb138fdf4860d612042464a818143acfad77a45e0a38c8854e2140d77aa5262cd7d3741d1e38ae8f1d1384fe622bc695960a00d9b98b0322d1ee789496a8272f6de403c93448a664b0b0a550af392df9b3764966dc0e967531d80c44aea6db315caf677de993af0430f94f4e656469bdf95bfae8f78eef591c830c63070358c848831e1161838626a4c5a233d95e299d43e1ff14b4440b669e83cae0e26183c5a943e59d322bb1aef7ce648e6eb4ff08dee534ff5504ee4178d13338f776ea6bc034f5b1e7d190b1d73e76c82a3473ee9199e915926717a852a8e35f07a0c1e267c30eac9894cb28760a58ed476cb981d2ca15ee7fe7f8f3b6f432977a68015c298be502882ba267329fddd6d7109ca7640589c2b01f34abddb390d6ba9a6994ab9beec894f5c2a4292241250dcb808f6d59d48fff4927860157503cc6c9bb9e643f846228df2d2b7d4a7c8d4265f064cea5a7104594bb95d5839e847f603b2d5f800a83123143799aa3f190e4bda680711ed3fdb551bedce67160c7af1785d26f86024ee6250dc3d6cbbdeb0aebc0d21430c73aeedf9ff95de9668a556b047683daaf391d4bc34236f81c1d6273194b120fc539ab8ed83c787615753f03647169019527dc85a80617c32a27761a6a73026300cba35f97f016fce2ddd10deb6ad7648b1a048ba51c6bac3ad945e164e76da280699f5693e0a9a4ec1273bf9b75c11a094d3ec8bb09d7eca10fde7a7deee9272fd53cabe0d8954778adc650efd68a43b62b85b7717468c1a79d949c4cf71c8881593eaee0705e4e7ae066fea3f87bd74dc55b6270fa65858e5302afdc2c5364fc95f09db2496664af7e14bdbed31b978ccb1ac45f857b39a40fcc975b9060664b2908143ae894ce3daf089ff2c98d151a6dd135cc90a9eb0252651eb2e4255eedd9d87754e1ca019c3c472ff8171945b8d3cfa8262185f7f4966ed4ab0770a662c82763e96e3ef4897906e025cfdbaf8bd8f4d061d0362495479f0399867dace59d73c5b6d145de57f38c185e67ef4772d673dd5a85658cd5ef3495247fbe30e897aaa3ffb981a6cbf3b79ba9b98b92a6ae0244ee9b5b4a4a8ffe9b9ae9342d4645e4761b5bdad8f01405675bd9d0365a1af4ee2b330a359ebb4712b300a441369fbf92aaed3df5494a54c16fc087da034f5a163790eb6a9ea93200564584791d5c2e51b1c1f9382b793633cfc54e94ae83b04b7c523add3bc276d5888d18622a3592999bf4f01a0b1fb63d0673619f8580f929b8c5d0a778696253e32cb0bd1d8bc4f2800ed4bec96672c2ee14e7c1708ebf4bd8e0fd4519a5e9f81b90f7562dddd0c536c921a28ef798d5251097fada80f3093e50bef3552772578d72ac9e7ec957466fac4112036c052e58fe45354373b16f0f4741144cf8b77585493a386cc3f4ab5fd6f1161545c4c390569890f5e75f610209fa2ce9ab0d336f26b31d3646693af833bd07fb5fa95037cc26c40c113f50c0fc363cb62d2f07047ca63224a41fdb81a27cb5d1af505700638962a5766491abc22d67674c8c4eab37d057b9e3f1b06a44800060be3270054fe4e299e895433df7aefe238350cf00fdfddeabe77a1813039d8c64f318980ed6c9db5af7f8060bb12116b6cdc76c68eb17f59fd4b3c0c14781698bd4d7c3e70d7bdcc4561a5332df7791d739d85548a9892bbadf1d41a1e8a073fa8b2ec5817b7db0fe1099024d4256db6efc7686affdbfc4b3cf07e482417e93fb422414ac47d0cc9ce79a8de9827003d894f90ca969ccdacd09dcd4c95da1fd4959739f188fedb676e73376938b22fbbb6c4b3086f1506fb654082de16878f4a5a0e2452d1112b7e481426e83ff2203a158c8bac84c861cc1d8f9c23b9eff5964bd6d3c9c6677818517adc47718c5236a6867984bfa026216a1de20bf6b6bf532997c2f73cf5c6a9f4c93a0a8355a27909a0e0f193f050ee711d84f0afc9e47204ef32ddb1cd4c90b1c2e43ee1cd04979e94ade17ad710b26003b234d262bd18388aa5c49e0a2ea670270bc34dee54f4e2bb20e261f81c4245bc8b24864362ef26cd458ab50c49119d8e747eb8450f7cd92bdd349503d10315a785a52e03afed66ceccb30885954fc69b7fa2cde1e9e09960eb5df8e3521cad3d5aaeb2a27d33f190ea00f93691d3f949a842004eb06d1a105a06c85ec85ce5fc071bd9263895e724b04051495614e56b84230b508f09bec454aec60517f559492f7fe5221bcd72aaeb0a44400f510224d896d06349096a5d527ccd1a5b8d1ad929133d2203622af0361dc7012e07d0cf28cb241b5a9721e4cdebcffc613f4554aab6698e801b0078ffee7d6199f0095169892e63537d0aa113570247f27c787019ba8d118e3b538e3ae2e976b6e59d957422fde5a3b613c4a44169268e5d27353983de94e744f1f7c475183b9c1b45eeedd5702f4d0af3984024bcd08fc81f88cfaa7c51672161fdc79dc40f3973b7abcc99411333340942e06d1b202da4e7fee265c617dc6d42b7fe1f4b432641e85e3d4588685d66c850d704bcaacb3c11ef14707358b42c4ba2a73284d01d83835b8e986773e9695c6d18bf3484bc9db13cc0f86ebba1ea96bafaec6a7416937c0d8c4574db9f0420ff55d98cb7b1f09c6d2a0b55ce233058249a55fb68d04e5afc85b4405b8b7e0d1ef84381c8a8e22621357a72160081f5cdc3bb0595473670d6d27d8721b84412fec67427aed782850e6bf2204e473d0adff84f08b2f7d7132eee5546cedddc364d6ad0a880a5634c425227b628ce976c7cd3169673c847fa7d5181358a8dbd4df8e33cee81c069fae01a93dcdccf617a9166abe8f3f5031ecddb736b4265da8008d83ff55c04b748e61d0fcd052528896c3b0d64910f6377d000950200f1bfd37f3e8ebe7f49e29d1946ca318cd70c3c164ad75853d759a4751c76734169cac54745ddd2664bc2334e3bd9bbd4631bdd5f3aed564600cc9959c6ec61e577309f1d99cee1b57104044a93d335ee872a52ea0346669dfb4b8503f419f073554539ffd54fd3cf01d1a18348cf51d29ce755f38171056a4aaa86704c12800984dd05af569721aff4386b9c1a49f0840da3b9c2ca3e885912e112f6bcbaafe87aa3b445029ac4f530dd061f0cd4e4ad0ede1f94b98f8b9f216ec82442f519dd37153383037d8937f702b9e658c0a336ab4e5e7849dfb9a25a515ba5f8e915a4f581fbefcdd5febecaf9650cdcd5e0e97f962738c2ee718288bec6bc74ca597efaf8f38d8020c8ee41bb30bc39e8eb83159ddd1ca9ecaf8ee9dd1382b727dc8b602f8dd365095b2bcc96c8f7083e87c982783dde9426ab6aea4daf536491b345d36ace61568ee0cf275822d7fb9efb89d8f6fe4653290f231d682d421fcbe0cb2a722e9f3fceabbae022c3f293f2950634f57cf013ca76fa5d936a21ee35ebb72e16414667d3a32068bc02cc2fa35fff0b93ab91fc0f8df2c43decbae59427e544064b96b82e981256e2a7661bbc0aa5ce3eb254f60a4dce59e5f233f3d923fcd43116faf07054e7e1e8a112045a8f26e10aa89c27483575efc3210b67ca1a0b807aef421e29f614cfc99ee568652072844c33b57c56d1dda26f0e451608f5e2e3f2fb7369519588601ea024a5f7ad1d84b81ae2e07b4617cbf1700e9719c7b1e9dba11b951f084494f891eddf06898b1a0e4eefc77a549dbc9f210ed463742ac4bc8936912854e631b4e5726becae9735644de7214c331a1673d57fc74c8b5558bf8c157be35c6928a8fae4cc10fe8d3b5c886aebe808220d1fa45a9424ae7b22c0b009a0a1c895e046e3bd76ca43f140234c35516fbbe54aa4ece8e9879c5e0f3a21d604ae72a1d2f50b1ce5e23cd44b21128878afd3dfc3dee69bf231c8b27ed07bf60e034b257b6e9dd149dd8bc318c91b6ce62c7e65c115d3d49b5216ee3e25ee0637040a449832e75b9368442faa962ba5b399317b211bde142c93521d2e7a5bb0366353786bff018d72c5a26b76c20b4a55ab45b543f7460da426776a157c1fe004c03e523cc298f55fa5617df8392b9e3df7557887c80dc0a4b927f67130284c00aa7db8947c1635a929fd4ee0a9c806253a14a0208595369062fc60bf8164776d0f98a26fccd5fca2e19f11f4deb7b0cba28ff031bfde8f14c07cd6e4902465dd506abbfd5da2f159ec62e36804d06a7547ab7a237dcfe7459d279112ac8d17f1f0b43bb4512cf6f4f273f3f55f3c9b4dac31f8f27fdd18b99448922786e44f6e15eaefa59de40dec270f29c0eb475bf67d070dba32f5ed1890edd2c20c61171ef60794d29e9b5933fcccda0bbf513ec10b6ea48843f0757c9ce5cb717a7f3f175a2ca795416d4e2cd37a523ad2c3543cef4039114c0271e788db8c10dd0f246d938970ff779a54c5afb73bbf43e964fc3da7b342eaf496bca74ed8b5b096bd09ebefa2ac5552ef1d14ca9f8320784b87b3edd207fc181b39cc5a386a1b1bfa4d88ffbb70864a6e9b4a56d3185ff063d27ae741afcc87da81204ceaa01c2549dc108947dd9bc7f76dedde048661d7e50d894e4cf4e74bb1ba45dc9f3e99bf11af3cd7ebcb1b3e635eb0c0138b5518323ddc3576df5dcb23efae64094dda49fe173171ad2225d1eac28a72d4056273333ae1fd0c0188cedde85aedada5200c974b78c124d65d22b3c2170c74d28356b4b06402f63a7b98ca87ce10a21ef5583f54b5da9aff3ca3e8171362e5baddece68a9c3f85f06c96c1cb7202d583f5f4aced02171546c39826935b16bd0e367c2de4aea0e3bf5b50071331983db121cdf55da67dd2911a91ddd1558463db7a34573e7ecd1ccd33d23a9391fce294646c95ffa8556d9157bc340a74905eee3b9e0279ecc3f7565ebb0b41428f454032ffb71f76b939050197e17d1a87cceb1e7cbb8269b9b4812699a149ea2ebea4a0a5cc8b2682b3ccab29d1cd23944d8aa6cbf853ddb0964d056bb08f9ad1a7f158c504f18a21998e24a57fbb254f6a854fc8e4c6662360e6519db9350327e6e32cbfe20311ac1f3a3fbbc07656f5d5b5743ba8cd196b881987487a37c271d7dcf68fa2be010879490c3f6066b903ce54c423c13f3ad20cf68330b3b6840e3cc260d7346244ed9067302302627738e3f92bbd4474c805eac14056b5b46654f0b9b07a1fcae79d9cf2ee04e399aa7a79d615291fe4235dec20ed7c42933d647aa1a95d6353ab88bbaa9cb3a1b8e9d91d94751650a58e8c5e9e94c8d23c8a274cfb49e12ea46b6ba4971befb7f144f41cb052986ca76d0dbd1a1066977f8b4eb210c4f9089fd8ae04ef71c9e50441c201358d60e1b2a7c4f100498e15fe3de87ee6edf359b1d1acc3d12b132e0b2b257d12fb7e3153e7e8dc0badbd4dd1b943cbdb2b61c66d50ab001e4a34dc458017a2208746d08f3ee2d7077357b7905419f5b83a63b84eda851101a089c1f82ba5a1b69a1a07aba8eeafe09c0dee433815c75868bb94f0702aa5614188faa2d205b103ff8a9d93f658cf1c79f87a5ce64eff3e13fc837058a4f68297e0444c2560925394ffc52337fcb063ffeb23590c5f01869a23ab24adcf47174f7a9aa48b1e5f666b36b1457876f87f5b6fd406c709edbc9e1045ee981ac9c056db9fb8eafb8fbfbffcf24f7b750bfaed507d1dbcf7e458fe7bc59f2ac2c115b85af0aee7ca1ed65be36b11bbb4868c33a9687b90feb9930719a009a40c91dbecca72220457a424469574e00f87019d1f4749a01b4cdbe1f32ffb582ba58d7a38e86f5c32bec5538beda5c13a7ca57695f7ebb8dc6d14978c10a48dbd266670835e6f1e844c9d32c429b6dc7bd553509c33446cba972425ffa7b167df84abdb9b21fb66f7e35478ffce9fdf6c5661f15e0183b0996504db19e23445a7f6ba7f88c4daf9e8d8da3540a71f5c81fd6c5f287189c630bf674d39daae9b048e9e43f4c5adb55260245b006ae4eaa4efc808851cac5a87491e8f8cacec3a0a756d6b7ebd743faf9633ab3315d9f219a08fe685b50c7e48a696d300edd75af276b53a8a71e6fe15ee23b591a5c7cd0330e42c53e08752787ba5969446c3cb09a30cde91bf6180a5f5cb7759b262b0793dc03591efa966fec321b0048d5b3162d8c545e344ffb35ed7f244c9fa4bf4bfcd8d1fdedcd5fa0daec8435073311f82e0f84d68d4ab3dd947b199874e7cd7f8f468970d4fcbd0f17ef80a613f64965c95843223905c8a0abf739898a948df47dc972c002773d4efc7934b0f8eeec33d16808d5efba595f2591f2e5af8d332bace9c42e70cfb5568deba07190b4b969e20b1f853598efac0a855318638042e718966d6c2aed5b2e19ee108c361999cefb7dc1882e9a63d10374e067f808b3c18eb390aa8618d4ea47bbaac2b74b7c8d4da39ceca9573470f77cb8a8aeee0988f21492f6d30319bb38de08a71b4d8dfbe345567b4ae72500c65d49f33db74adda019cf51d35a9f90c11c39bcc26f9155011b286c6f3a43b08cee2752d1862155823f490378d7ac778f65b56e9d4fdf128c222e1b2a5013cbc2234ca96e57a38f169348499eb98b49c5334062367b2197a716cc4289f4bc55455b5924f65e20bf9056f3e99e8d784cb537bf7c7b40d43885670caeb2bdff9f04566247d7a7879344d76bf0ae846ede1e638d3b8c0f15c49ced1f9038ab74f2c7b404a23b9c3b16ce671aa345ae1d4ad6c8d3c01ba5b9fbca3b4246982b6ccf424589f8fb23b95c336475d623f51d5efae40c305bf6abb3c96bfaa50ad12af865a644d8228011b7599bb5c62af7ffaefd14f3fa453ffd9ea25188214384ed583c35322f55dcc8e182e5e09f80cdf37b27879410ce6a20f76da828c054cfbcacd7815c9dd170a7b827f1d8a4ec030ab867b587462cc7320416dc4b3539c795e1b986716d90e7a465cfea2cba4556605d4277b8d2a70b1246a7f586aa687194eb7e1806389cd93888e139d9610e54268088c5b12796fcf40902a825f87db1d737a37251551ca1c68da12da896b570af6e7cd24ef898e0d746a75ed82354686510d05ab1d9d907d540e6824a6cd46657e7a41a016751b738913ccc6bf9edfc6f3805e3da2931fb2fd5dcc6811c300d0daf4f7978f83fe9942650f65376fb211564409f1e1933d481003e77ae571d762179882408f6dc1bbbb564b0887c8a3a835320c6210cfe0fb8762708e1c8dc6424c594bbff88d81e2c92c507d6b95c1025635e1149f924b3c95d90e999567a84e51edbe0032a1e88a9d9ed92cc83ac5396bf3eb7f330ab332c607ffae50a9079a83615b406370d98704a31c5cf7b63c8ca0b0405d78bbb3b9adcc196c07bbf6dffea72466434b9210007a0a313af2b518d5858531d0d7902dd97896178ae5f231684bfd964c55483f11758bebcdfb78eac414884c37c552a60c2440e751a882848606251d89666c137c1d6cece3134f20c4498230431592795393a68fde32fba993ddb5e15b90d5d8bf03508924330339e7f539254d1c2dc7ce6e57842ff8f216b2f82b98f8c1a30074c3b4be504ff9059837689d980e3dca05ec4f967c68d8a33899bec074a1e940c201eebfaaf361d10a1503b6ad2b9865287c993bccdd1e1ea3014a31a9d272b827f2017f267830e45f45e6aea82254c11ead7bd1e250d947e59885b190e2e5a12758e41de5c9880fdf93e344101b93941e3a0bc1ea8767c9b47aab9afea4beec663de52dce441659c21c7c409bc181059c30e2018532e2c9c3df9a3656687f9dbaa106fba007949f4e7829e362bac9a2060f7d83d92d492fade25372af3c6bc980fef1afd2e4fe49d4b566c5e13d4de478931810dde0579a08815dda285390bdaf7552a9ec4adfcd94b008f9ce4c0a8666e159435235f6a3f7a7469445cacc1d7c4c2f98473c29af5a17e520da7e4cfd47a893b8342456ccccb3d2efb720491878e7cdd768d2f48347ad3332b9931063c4c5533e45d7ef2743e360e53a81b4f1411bc2e86bbb5a650e8cbd06f2e41e804fa1a8be72cd4e5e639eb9256a267621d23d054a4ae74362e5d156dcc2ee5eccc4902b77ed738e95d88cffaa3a3c8f6ad8949530938e60219321ce4c036ed933a3ede8a81b9071e6223ba87fd83998f78d36bf8389b1cc0c24531822967bc6b4885a1109fe2bad0fc1d895ccb50649dd15f4ee9afd7e0481a9bf359d6075a5827e0b62a47a1798f6e9da8cf2544bd4bc1f3e7fcbdb2a9f894a3cb69c3dbb4656c3d51ebf165eab26ce6d092b59b0e739a71134407ca7a761d2595d582f5abb518eb592a00447b248a7ab8a7f19c751746f399ac7f178d0329252eff483fdbe01b216afa7fab2890e6a550761b23374c7f5230514b03e8461f1514da4db2d6657d4b321ebb33afee76f5b133835c1d39afd42c9b6324cadb521f5fd3668b7d69d64c78325fdc6a955683c2a7847e8eaadfcdb9fd7afabce3233f88f6e629a5e904dd2a542c981f12f6045a1f86a3103613e3c837904252196fba1e1b6bf05aa736e5ff78f5deed9a526946a10f9dbd351f3e14e0da0db0c927b8c41d664600f8be6e5fabdfdcfdc2680bc1c11fc5004932c1b6d3395881726a5ca79463c6c2b488f95450887a7d6f2dca9f7e40e1c79b8d5eba8d1823a8075e3b7455cb130f6b47c490e1e3c1c77f48e4b26a934f275c5682f91b5da4a50190ddb34ba6786a6062420864a5b5335d95abbaa988608a3e10fac5c4037a1bf2e24c7195baf63a8867b5f753defa651bbd768441c15e0562be36616ddaff1e6d69008a3de1ebeed495b4928235fa64a51460e65b672a0fcbd514c5e956d1f644fcf7efcd8c3b1a3e1edebab1534364cd448cef2be74152dcbcdf141930a347a80ace7abb21d8e696c1eab11e38ef69324b929827ceb4bade4dcabbd20e5a88411c820362f15e1ea6a2e625765f58cd671920b14ecadb738c5e0ba1e40374b06086e10bd72dfe0e5a0de1d6a5640055d4335a024ff2cf0829b3e1671c0c1eb846ee253df6b9149c655c79eb4def030748c43fcf652881dbe2b18bbf42781750c93eee1309a50e1c4be39ffbbb4ed10a56d491bdeb3c7cfefe5638f39ac854b3ff4cdcbbe9b046f3a45289f978c5cd4b762dfc47424ce7c9005f717a1a86e3849c85df8402e670010292c3693459d75fb3a307a15ad00f4780cc5da85b0aa5a34156efd150355f6412213ff2dc31a2f38c992ecae8e62585e65e9b8d69f74a4e661101184b45ddb533acc51d23d0480dbf5e3a017d16eef287fd097eef450f6f1ab0a45951f24568a77d0da192062a839028ef915cc997bd26318fcac7aa01cde38ba3b49ff43f31e0d36a56f9b9cf7d4f227c2769345f837fbb74808a745de6a9f403e3a7f036809d83b4ba91799b9d1c2215b5abcec32af2ee72c2cc82f5b021e7b2a961148e91cc2fed43dcd793078d1fb18a8bf11dd5a8187110267d2aa981a3112c3c185c250642ae9c80b1aa6444ee4d7db8acadc2139af5ffc256a6b8ae595db3abb55e9a281106c93ccccc61cebac793527bbafb7483d711512753e498969eb9db17e7b157eaaca666a0fa4d9c08574a7d6cdd6ea3accd2d3dd2182ef81eb4d43c0189cc1c0720c0d261661166412f7f9d30e7eaab52be2a58ba33c109c4969738da6985f781fa61d9699cc68d90db433e3948c59d1466d17b33720d8c787d81a589c3dfd66723773a9ff18b0bda128e911e5bbd43b5adddcd3ac3a750783cd9a393bb9d018e97372b357c704d8223ca0668fa461c826a2e7f93e54203c579ede3c0d31cb1acd9e854c39c731ca1185c3271b428ddd45e819c6068ffb85a90a92ea385e7ddbbcbb9108b69213e3b0a21491afda2431e9b1bec31a0f2fab1058e1a0fc51f63e9e11afcdf3f849b07fd8b3b1d2e7bf1b6942c8b18a0f9474fb917b7070595cedd79f1b3519e80c986a4775892ea412b598fa209cd9cbe550733785b2514bea3164157b5a4e5dca982231d0aef08c158fa1753a8f323d71684df1cdb08145f08dde4513f0a66fdb3bf1e8d3225cedf0e34e1068be701cae5956f48fc8a6fa498944fa35fb00eaa90a7efdf948a7ed31da74750847256f35d8de483e24b32566430fc994c6f266f3931704de76fe674e0275beede4edb940d2ae89cc98323f4c1e47b3d6d4c4ec3f82a030da60a8c48554605d3de734b2b27797661953fc6fb906333aa74e4807a7b204c0fe9d90a1075fa9964e79d5a8a86112b344617d7ad959186d8fce03506007a327e10ac84c440d41c0735ac1e92b060ae3642975a96b41073f2280cc81e4dceec89686ce115998b3cd0a447ad79af8d7956a161652ee5699bf4e067af0790a34fe9f399767d235f258635dddfaed517c62927d971f86766f0b457c303a60dcaed8e6b07600a83f45748f894d4c43322f952ea3c6263f366ebfe220888f107037c50fc1e0056a5a1b26db751479493c1f49f4312221677c9067485f7231a1d328f511d93de5c26838c2fcb0d682cfc5d9d76e7cf4ca7e7e3314623690e0da2a223c85181109735eb60ffc7581b0d440e62cf066604d9a03250be84922ca22549d77d92c298276ccae6ccc99f7e08c08d940b9624ab786bd3aa58edb3990d13c542e70a1efa7ee01b7f6363d5c691329a9361cf0834c0937e7f64363df05ed0c661cd9543f9ecf2e7191a3a12c2faba183f1e0ef0093770718f7ace4fe2b8d7c854e4a84d0b0e00aaa5d5a0f29ca90a8a39bd6f8c34e2b199d84f9b67424733420ce636938205289b3f42ae56fa4f79d23f2980e6175039dca86012d1ef8e59c238112853589d332ca8e0695e59e1830315198b8eace47031294076e51cd7f2b11739c8ed1476105d0035f9a124d2875c7298a8f529eeb70df3a6583e246e9c2796a91680f1e5290b62d90d31d54f570bd97ae2fee36066e7f6c901ecc87cc1674d8033dceb3c5b632463af26f00d5b35113329cbf4c35a23f0e7aae059cad6772d34488041e76d05cd68b767f5110121e9b72175d8e058c445f0d186185534aa81f1ae37adaea744399c39547354169ae760e9b3ed0e09bb696480987e70c06fb342b77ae0bfabfd82c94c97e952fb3a6c14280ec3440c213fbb6a5253276f59460c8541a95cfff46a96b3048b120c199fc78dd651757e7f2a2a113241d05aeb3363f4566e9e6f88cb298344a7f250af3896fa933724ce97756a015645b0c79329c72422bdbb82fc708a2b1a964b10186ee5cbbaef47302cbc36c2ad8f085efcee14864b6c9708aebab5adad9d78ffafb67f6c90b2551465c6ec8bd6656a4f724b646c862901cd4ec38a69dea4f3839fa149176b4d77e541d688d3c2518aeeeeeada9d95c1fcc8a48dea04a3dbbcaf902c78144d1fe8db714b17150e5013f26da68cf958dc8a0aaa44c6ab5798d0f8f602d70b0bb27704b7a44e429c885803e410e82dab252d9880f8d3af1473a88de3494aa3798d29797e345cf1cf496291420051a922104e5ef51b7bdaa5f267204b08a49c50d6ab9eb02191311a5d47cb6d23f6e1f3718257e49bb0b0b01b66ed5b38adeae3a97fa56594e0b551a2c8e7001ba7d9e352d4ed00ffb4f2fa2b44034d80a7dc573b2c8a637d30bab61998a0750a3c24bde40eb45d494399e22c947765df82a3eddc185f4b5c383b43f8fc0757f1bdba3a89cb4bd42d7b5b2d06cc84b89a2fe795b69fee57b3a2ad1412d6193be773f758eeed3eea78263bfae31867112bb29fa9312b73c82f5b12f0e190636da1633c6b9cdaf62655128346867b82d9c5a52fcc5b0c94f3cad9495598b0efc99ddf46871309d63bf7a66e514ecec90ca817caab70613979cc6fd7359297acd6d67e867d46807555fec0d35b5a2ab238390ead7adc29e5360855b723be7a9f5e8edce6b7d2e1985924562385378c3f2e37b3e5345d7084a55252cf9978c68c20f93dd7a0b16ac2af24d36d25957cf9b2211ff597136cdf2b81148b741ceeaf94290b08833968d64122d0f54f5fa3b48dfdaf23611880359fe3debcb35f71d1e73bedcb98de9866511633bf5da016d38a31bf19c14f41ce3504eb6d7132dacf87ccc86916084c04cd83ce1afb103811d8a22fa30b54cf30a4d8d572e07d0a1ad2585d784cf471c1a4557bc20e8cb5b52e57a6ce0a2bbc5968d099d20ac4d1cf31e5b7c3867f0de2a9a96fb05818ffc16f8726c86b7d160c0f1d046cac50e1d2fc27622eaad30fe104d9a7f78ca70fe00e8137890b8034047856e2ba602cea5d18b3bec66929114e30f28ce99ba8028a44010ccbcdd90dc2ee1f1fa15bd3d38d797502913676e029bf88da5d9228b08fc8b4ba8420bd3c2ed3c375e5ced2bfbebc27d0e68633de8281ae6aa878aec66a01d625238e0d78ed488d911c206d715ac74552132b7367632fea9b8e4116d7232769e9d0b11dc73275f1cc1c131a1e857c6d03c1ba142214c92ce6ea7f975a25063461b118d84bee535a956ef34cc4f3140c6957dc74ff34b121eb28077c6c575c83ed1efa521e1a2ad749c011477ab5ef202fc1272b02954f65600a48a7969bce9d05192d387acc882f41da4df3dbbf89def8a236ac6866f2f00278f0e5bd0ee67237f4fe3e3369f66245a8d2b999a806b4388c4620e180aea1fcbe19b81f142721536ea6adc9f8a8e134bb7935a559715c3d1d9899aaa84b8262c34bd7559c72fa56e140361325106f6bb0b3fa143fb7454c734228b93b4924999c2872cdf992bccf0834328501b4ddad6ae35a3c10bd7e97daf35dbb28b95df8874548c181b1bd0fbadc24918274bfa6fe2d14f81bde0e324c2664c81065e00fbdc4f609ed40e099d6696662730b190e8631fc6c39b84e8758325e428420421f5c8b3b82d2bda971a181317e2ab4459ff7ce13d3c24e32a630aeebdcb00f2ea2633abfcfa8519b977d689c1c3dce59b67842799419aea73ec2bfd81b7d1b2b7eeb44481630516ab545ba8f9c83b1b0f61c61f0bb56bd502a29de3ad37d63f0a0a77e0802f6d782c40e8c7afdf5fe2f7bc91f5fc37736c12937369273fb206a335cdcabe78b5ad60fd2f8365f797468ab6c68c55e6d33d98267c591b09283cd97cf276f977732276cdbd8dbc6a03e66f9e29d1b8633896099f593a2dd24735dd494c028ad9190366f6af12feea001f02c3523859d9e8ca8a85045797784eeb8a002bbc2e9d66ec3c872a41e2d40ed81a31f915c283c8c55e12d1c14b780dc360c45ef3fd3f9019997a4357f4aba4d6548a90a765abc513c655248c23dfedf2078dd78f07843c2df28b748ed6b786a7329641a3dbd207c639f1f95b59059fd8f13fed9eba8854fc5f110e9005d5bd255255eabaa3ea4795a1887601bd494b8e112d51f6fc2f06d7b9837e693951bcb0f3f0cdb639374f231c15a456d0e8caaf08c816657dfbf767d2c7e10e230b0ebc65479d4c6da090cefb82241b89dacbd8025b055dbaad391ebf34bf8a5d456588916bb45aa2be877a68d1146faa42fa4bda4e1bd37002195d7c10cee5f09502b7d14ee424df7ea6f0d7deb4fe816add5e71dda49585346dfa46d18c986a89fbcc5c2b5bb3ec7ba9d9d6598d7a6ee884bd5c3f2f4df82dd3ce467c36462ec8be5ffb496911ecfd01d7fbaf73faad5f3e2d1fcff3d1a2106a0595967874f80b0a63c672fcb9e62a98e2ab868796b65ffa6f7d779df05e0752664f5dc9cd11d35adc0da67e7a9e8be96dfb1dfd9b4f7f05a6e2eae9395a6e12f884b123eb7bde281725744e0cb43eeeaa065e19f5ed8ab66b53f1b503dec8b60e85936beb466adc0bf1aa7b1d2d5976dd70908c6421f777f07bba94093c102530e2f1e3e1b334b1ade96ae303d060122ab43c37d2bd2c958e28243192e126eb88394922b11fea6da33896149a80dcf89f6e7f74101c0175728fb06d744e938e3ec3e9297cb8c17838245febcd420ec132b1b18edc50b50ba7dd77360f6c775b9e45b8ef338ecb19d05bfe525267c626fe07c40f87f2720b7a2150fa5fc6496d48bd9f8fe5f717ada962deaa77cffe9597b19d69db6f972dcddd45a7bc40947582a8e9bfaa125fc3744e268f2db005d6e8015cc1ce3d19b3bd6435d2ce32707832f39c47aa8eb0a78685c8e3dccfeec995362ca1ce6f99c25592de365ed228c2e23d35b789a90e9bae994a69db6363a883048ce0f1077b01e81136ba86e71f39f31ab150b27e795304b5aecc1fcaafaa2b25953167858ae57de93f5cd53ad9bced0a0900e3ab3189865c4509dfce621107c29058dabbd55c59d57d4c87e011150e56be5cf5d80103560b06ddce0ebee4cd4654baaf976471e1d78c028e1ead24d7a2e1ec6fe22adcb2be841a1a31bed193ebc76d1d2d12c8bca6552ec7333078f2dff056464ed7c1031bf4fe4c8452e6283fc45ae9be22d4da5a7816864621825a4ce02123f973c37e25035e853680ecb9a8e460d518ce5bd0e8d5259d959148156ee9671433a8f1a06d14a0957f0571e2c64300a50a0e68ec663cccff58155a95049c55c9850427ca0f38473b2a8cf54fd6e9196e9e1b5aa80bdbda6243a82588277663e71d29ecbed39e03680dd9a2d82a1dad5dc796f186ecad8e8244084a2053c76b28648c0ef647f618bc565a78bc715b9033eba59f16479ff904f1af4329fef8bb00fc438a54fd70287a1e3fd4177a4b957d36e0aadcbd5d3fa1fa2bb84ffa6320b9b6c3dc12aea9b98c006e4f031035d579b7b08a33dff8f7e147a7fab1cf9c33c6b2b6ea23ac75d76a8d17a46529a7558ac674a61b13b6264f920deb7a72b17f8d530122ef14823901a24db69308c3f00fbd91e1ae41abf9f2a847dc24af97de3db6024d0be671d14bba21020f5bc613072cbd76c4eb298d4be6712e3b481657d934129a5ce72455f1d8f6289590f6cf5a2c48d3ffd0a60ea8cf53ae2e99f2bb01f0e982eb9d34e34cc1a0782bf1e611398f007d0772139f09b2b478e89099091ad5b1f3c879989d49b74012d24629de09335b246b8a6cf5dabe851981fd614a407fe0ecef49c7bdcbd374e635c51de439bfa32416d9c1aded012a9430667d3d15a95f9ce7d12ee249cb4deefaa3da1b2f35a8145e1c77796d949e0149dbffc1903203ac702a4fc4a0e1fb9f075d3b54c0d864b4f046c78c79d6d21004291f6980daeb49ed1eaec4f8defcd8a8c61a7f3b792079cfd12a7badb480ab29b65a4f4a29076bbe39b600a435da85f7be8c3376d5773dd37424c9e5bc68190cd28cd9e39ee9140c483441e0090299bacd3701c39f4829cf8a93233c9a6c5f61be51cd1ed0d8205e5328187278a940efa661a446eb9cc137698cce9671dddc9b02c78b9a41bd2da82e7d69fd7ad3b900785adeb0eb87f227689cc74bc3cacc7ceccb2f523b21a816a0c702cc1ebb9301d850d5570916084c0093ac89dc914d9e85f44c977a1da5813a5c3b580d40bebdd317441a0ee3328b0b0d6aad052b5b4eee804df36f83eab457de55a0227da6ea4e8cfe90e47ce92a0680c67c8d549b8177111809fa41fdfa86c2e549aac14af37639057eb90ea21a312045b61155acd007b8fe3309a216c58101faa67905fe31d3425b1bea0b29e1657cf6e1ed38d836eb3308e9a27183a49745801090ee079af3fdf13530be46d728bea1c36f404b59f71e62a0b1eda93f00747934e13f19efa6dc917cba60cd1f3cd252932c082136807b5c53d64d085beaae2a59e2fe6a86c0f68362a4c8622019a2c4cf75f7043696e6430c84eaabcae1c506166a42a277e95e86b74a69a446845e20810238791b8710903a0b798253d9a20eaaded2d3157ca4ff6e9cd8ad631a72ca67afafeaac15c55df744fd714ea7b6b17904efe260cc21464ba9fc92b611fda5557638bc43a3a7d35e3052cd11adb0d0069fbfef04f734eba4d2636a75706626977387ccb38c9a93f3d0b2632376d4e50c302ae059fa9266c64eab2f3bcf663626eaee12101007a417efa797076928521656380c81c263ccc8f52bb3c8175ee89f6674be7d5351b1e1a5a7ff69f444a01326f1ab8c9a6ee3dafc9e50f36b27cf092557cc351253a3fe62f804d8c7e5d38970afd72be42e501effb75e1bca0cd40a136515cdd65435dfe2f9ef4f9ae61431499376b100b198929114845fdac2e075dbf185a9507eabdf03aa6f87f9c2de013cc2cc40251962a75a00b7ad58ed3f12e189c35108fb5bfdc6535cda6fa2fe45da9c326630a045ac533e2356922efe1dd16b4264500e36ff8a5b692ea9a4d036caa6756b2d8755926fe29ada5145371406fd333fc14ef2730db4c72fcad76780e8de8de3dd2a3664fb95639a4d1a67ccd5e0318ae0d152edd87ef243fefef17b73a3a697bf653e106ad6b096c9ab872bbd376570307636eafae9ba3dfe093bfad8d3440422a224b29469aee7d1c6cac1ce870a63d6902d3e8307e19bfca65e2a90f467df5de61a525607a98186133fbe332081eb2f08726e1d144321c175a996d98f0681fb90f4bcc2e055789ce5cc8d79f74e248690b4a36474fd64f8214eca86d5313e7c9eeb92e37511f08b8feebb3bc6398c5894716767288f584c641ca1285e9be6a026bdf29668130663a032300b48f73d64e0c6355fdc574c8125b99778eda37e086fc940c6dfee0835f1d884948cdff5fc8874ad848aa0d2a52dab94c4d438021906cf08cea0d0da137a0913e5ebccbef3b387de0d993c731fe567cf099426f6989bc68075d4a9e8b3416399ceab1ce5d24af108a01fd08c94f6b2e34ab350e8d00e8581101d15599fc9eda68e914c192a8d3534f4b30a135c82f831a5318dfbd6ce16d8a76da24266294927087e03c8806c067766df2f4efb0c690b736ed55da1abb43873ec400e37fb6248fb19b69b930e524dd63eb1715ead33c4430edabaf028f9ded9876ad77b82aae27005f287023d5dfcf75b1a1400b60d180de66edee0c8b55acfa1d2cc4aa004df8ad383a0d0d5af4bcb9605a14f43c04557846c5fff66c4e0d183be1fbcd64a29be5e3759f72d95b58e9d394b352fbe16728d77b2af8645bc08838afc2a8d7d81f532189e6b89a8a705112699d2c385c882dd329e794fff7441d7c4bb8eb678c3888a1fc36132f85ef8aba87bb3e12d06618f2f14d59399a7fa1cd45a9cf8d549f61d96dc5a1e01bd383610dec63a0b57ea075c532b57dd7db6c81fe90f047813fd395f228b0c181000691e707908ffb5a3ffa89016d648e02809fa45f3346785233b3a8703e8b1874424e62bfa4b537fe8af645d53917602db796638475de500ce0590700c8360f9477d0f2338accdfbcc987c8ab7c17a838b6510049a2748a65b737cf6a71f24680824d6c4260acbd09da03996e7940de2c8757117f60e72bf96858dfb83f860e560aa5270b5261b685bd5d18a2ca1dcb7fd931419c9488f2a6138363cf35f70b37ca15634d8db68d8dc26345450455fcaa652b1008e0b3a3a5d6055c0af33dca1173ce5a1aadc13efc70d3d5f9098c5ba9ac9d323629d3ac56d2950c5819f36b46d2ebfb14914b7fbf385c97818262b479ee6db545d86afdd66e31e4f6fc5e1bd82b0504954248bd7e62ae2ed51f5dc8903c6defe820abebd7d09fd773d92981ad2c55a00cfb6feac68a4d81da1318666b3e8ed8cc305a338fadad6976b387d527b80a7fd962e5ea408a94d9170d39ddd24de321042e3f444a4e6c945c182d1de770b520bbe9ac2b1f6f37f1d7780307c0ec4a11467ffa5d131e6524cb7b179a48ad201a2774eee1652a323b9d2c7d4793a85e8d3fd2a5d609145e735016ddd159abd216863b622e252898c9de55880168bb9f5cb63e9ee251b525507ecd2dd7d8f19debb05d5550a412a880c1dae43f8c1dfaf79ac25b816fce34eda214115d2f9962fb180e9e22df89638186a34576d6ac2c0dbc7ae3a24c1c69464735f3b9b81fe03b82b6983af4f7530e1f0333acd0c871b32c93f4a184b1894874f8d312b37ca99b29ad31f36705a5f70ad1fdb4cf31cc875fde5c99672c71c0198830dfd73c02b9fc444150a79aa74536f37bfbd3a364c0479bcc4ae9122ede74a65e27be06566284a0a581e40d73cd1b6e4653c3f99e918101d7bafcd7cc1d66a56e743cee687ee322d95e06a2fb08da59f8cf9416d21e130c1387cd8baa7e05d456c340b1316c4e949b5b7f9980a43470e130d420cc346d55b7791ec7cc1dc4c084aecf3020bfd4e4ac00c38a3674d9de7aae46e7b37b3bb119f7ae5f33ef82272a44d0e22d7a64d01e03f32e500808880721322847420a9d8f3ed4b8af8fd0ed778a904486e90e1c7ffc09c6108257a60391db9c38967b8313e2fe7850be5022626227403ce73e8a4077474fa45138d21b766d19e749b1032833b1051cff6a267fa0f299a9dd94064099d0be2d2f70420ae1a29c40d220a8c63aff80211534a99ad54709fd27122fb6a387c055da34b41ceb47feba144bc6b51bada95a2b768a2a77af048b2c3ee757c43d11ac9ebb7f824a677a159895bc1e82b59d1d1b203f149fa5d34017e4b64057cc465ec83cbaa5a5e0dec5f779f37c101d9a8eb039313024084c49d14ed41bcbaaf66ccc4b31bb00e6c82b9ab7ee327e5cdb0896b65cacbec5c1017c0bc76a9a286eee5bbd61b378774b7a7ce3f49597fe3f6070cb849df344fa5c6d181054d3ad44bed6a4ae5e31c040f6afeec6d2481f4eecb9893ddf643bba0f316ff8d904b8d4c2664cdb6dc39e2c2c316d8cb3f1d9a03d445e9d5b0ce0c0abb668c1ab4c6f613a97d6998433dafee65de3c093ee7206413de8c3ec9a50da381f61c98c0c0e9071baac8426eb572fb9b7d457db82be9383c325f98a80a72636b71dad10d201b81b85d0407ad28544b8d8d211e5d0802ddecb4913a3615e31848175f1a4f1b8b1d6252e7c3e20645e546a609661113be35c93da6b3fdbe94a6eb2b4a9addf99d139a97db8e0a97e21dd267f94b827aa84cd62888ede77d8e1ee10dd83154a643f86dece446584ea22fc09309a318ee22c02b72418c1e1ab860b40adfdbf38b92bfb6747271a6e4f4b9a362d3625c71faaa974b0d77aa2abd311245820f45a6f39aded606f7eddb70a382f564cc82ea8930818066cc2b89a13ea4321b2d1fd13ca73ffec965ff5994429f5f4d3b46b6d1aea4a8017b466ff15252916abc4f52be2664e753740e1fcef226b49aef7f4ab97c646972782fa44394dc4801ade94d03bfe2920cc2bf6010879c44d2819afeca6afb2e706d32bab61b6bb7fb2da1c337f498d96b60f8c36270573b324991460be1f27e847e81b751e482747853712eeb0885a4adc922e6129a13ca5aba98e526f9b972576bfc64962bf23257132a345149f43ea77e43e1100fdf924a4a81d03d408d095b759959e9e65a66dd0fd1ee6dac2426a4ed25a9b309a9571725f9f7a4ef943256128e9bf0dfa563b21036c040c1bad028d62760f68d7ec8877a48b0058b41b80a5287ec45ddac5f0792d4b91db8f8e0331c8b2908bffef422a40b292779a3c811c05c073d5ed252f98bd88cd2fa06cf73b227b71224e0d1ed55f1869e08a55ec7397ab95e016f7a03fad6281581feb34add0b90123be578e4da5c296e2781b06770dff9d81847bdc741b3ecc3b88faa38283731e31e6b690743769441852e52e8b178d425bbd4bbe79071c00cfd50684dcc04b7243dfd38dd9e53f5158b1eff894726f8db50c156448b65794938123070cda4aced4da3b55febae13bbd0d29cb0ce76c80eaf632136ff170a4794938e900007e5d15ddf1dba92e511cb8b41592c18bbdedc5ddcbb373b99251de899a8ed0ad95d4f9054a1190a837dfe1077113eb33a362ecf121d160db3983276897b95a80126ad96d1beee1af2f3cb5889b4eec9ad7b4e0032b4f9db2164885d567a557a19a43578e54614f11ac446e73305d6847be0fb4b88b0b0a87e011bcd4a5fc2f23329ffc22fb82dafd4cbdd5df5598e6bf22dfa582ce6c91967bee47cc34b459e17666d3729d20ddacf08edac8ae3d05dc69570110169b1c38a130a0bde2d158033a11f9e62ada95a439c63a40ca3d411cafab17a3ab2e7a4a138a7e9c8fbfc2a4fc3bc8cf598be30f851364d8bab34cde7efb80ede7f1d6acc8f3dcdae70642b186237196204107b5ae417e8a650534994299ecfd8fcc5f325fcf03ec610aa912f528dd21b8a5a7f7bff85007d5e814c4f2ebbab437bc3387884edb52db761dcafd374f3f5174e0303927ac2eff7a8b38fc54a2c4f8b3a6bcea905a697a10081f9854239cd00c453933babd68bf3ae9f29116109b750a4aa6d0ffc17f9fbd60b1e13e82eb23b8f6858d2df9fcd5164d231cac2ed63f42ff94f52b79646ea1a0bb33f8d3dfdd7a69960b750b2d599bdd0bfec1e7b85a71d70cb912c1b6c2fafa4fffa80ce7ce6b007db02469b0d1cd6d3b0da52b8a4682a9bd3bbbea4a4bc4b60a498a33cc9a7dc4523443a4dc573a97e70c5b8c95eb1d0a8a6e823b451d539fd3744f1bb2e3efdf001f5a6e1034ca836213cbebafaa24f789e5eaecada2ebe61c791af1b99ccdf24160d67ce464bea5a7acdddfb73c15a24a494194d584b4f05a1dc6d2d3e8f2a90f6a5f0ae042d57241190ba4d01d8ed86fcae149d6aecd712f58a5ddb52a9e9a05b84521d420112bacd1e00f1c1d11450dfb6bd847261da20ea43a50b1a60e2d7e51e7b8f072e79afd36f8fe448c0eee7c4c63246d86ecb140b02afeae5535248492576549162a54f143460d37ab1a25c4f5411dbc3fa2995356a451cce713501c3fc6d63e22cee08252cc07552186489b1534af615429b2b5bead071380092f334c658d292346a010f5ccb0f3691a9417f9140eef583a264a3f585dc59c467c37152dc99b72ec99107001ea8135f9dfcead0bc06597a9d36ad8317520506366d040fafeb95eb4bde6459dabdac270759a52394b86aba6970aa755f76ced0e082020603bd7ecc338830edd28722c330391cb81cdd24457e71224a7a0dfbe5f20875cffa4fc8a4fe9520a3db57da65d959bd62c8172880170d3dcd97c4b7132cb182ed77dba767cdc4fe8d15089f9bacfac2202aab7666fe3b2bbaf717190907a278acac785eced791249c383ff8baa500b4ebf428f8a6c8fa798ef995624310df0c11c7633a101d424a530a9d90e3e403d9241617874a91c3f1f679202c7c79946aaf48e09668d3a138c50986d77ebc9e05b0ec94a313edf4ddab507f8a57c443c3b1fa7251ea20e67977be029e16c58476088a4c8c7110ec8cb5481beea9cb670dbd1b84fcab36006a3a7ba08ffdba72c293ebe31fa85d79d42f5e3cc29ceb0e2dd0aae1840164c3f0667b05014d22c94460485595c35d7b4559afd1baea357d0d1385d41040b7caf80730356fbb1b9d75566ac778117c945126ff8aec289a6aaeecfbe477439cdee2ff3aeaedfc8a8189e9e970e9b9053fc4efaf403e0692c751414c50c7d970646c2639ab934041ea7b0252410200e8c58d6713defc6d27f7fac50a4ea11d7caa53ebee1ce4a60bb0863a8725c48e909df49bb64ddd0f287e2ed13353218dbaedf3b2e08a8e1ea9b3d24cb6b3398b5c71bb8ea40c248c444af61add76710e03dc9e21a54e2ee87dae57b7b06b9f81763386e833107ad206dc12d6d9765b94724df2b74628698d7c0299adfb6f270670f86500f22497458a7e97ac90a1171ec3357723c4c4a46ed391b00a67fcb68fee2b02176686fb270cb46336371c852ae0aa6a27f2307778534c129928ea247aca8c405a804330c9e0a9243a1cd16f8dea7922407c8a92b52c8011a6fd6135e24d6a253822a3facb611000f124862af0f6a783779fc0ee277374e3879ae359f1c0a6e9b368171a85ff4f3121a08cd40366a631cccdfad164e26e9a30804e39a4748309864d983794a60708cb77278924457bb9f2a9a6bb378ff9b80e0fb21ecede3ecb21f9f9fa091b26c1309a90e8f0679aa960fa737c3b95936f4a626052a381ef83d834ad0d3575979d148a2f2ad605355b5621728cd31c99188140dd74f2eae9314186f706701827b53d98042a4ab5ba3289ddecbae22800dae6f3d783befcc1623042ca6c55991cfe5252c010b3ae25292ff86e0540c0f50f4f50274e53372ff6b4c771f42335b9d069e7971be06b54d908c6b280a728f461283f5fcfc146640c0f275735973011e68f72e2f77ec3497ac767b4d7d02e23be8e7ef706a7bcfd37a686a7152b892c10b8f33758110fa749cd98b09c720136f41a359ba4572dabda4ba02d9b54e865a8a8914fbd9a20c6080a2897e6fae42f6638b5e4fecee0f7760a7a1e1c683b5b614b3817448971e7511a7ccdb3a75af34d2d0063a88226aa3430b088954c451f3dcab24d7b4acac52088b093e6bde114e71ec6caa80eea3e5cc3f4b469eae1fed04a2ac509fb7d8a461921a33e3d54ade486706fc57d85c15b042e32dc3b58e2846bfa3afd1358ebf48181eb60e6f2b758f699f34ade3732c71728cf275ceaaac076c1462b2ede65a73ed846e40a4427617ecf6ef70b1631cc0476f1a4f86c39b46a2212d939c7b85926ad2136c734b8b28461f09b466c594bd00b46f8ce594c60818f9a5a41c4c19313d5a79d4f14d7abb6c185dcd0c898d7c046748a85958f06f3daaa677afee2189a85a2df06a91f8739accf48eec3596372e49db33a9ff3b16d35d90d02fe1ecd6cf0687c12b013b5b428077dcca3d6d986a59bba1dfb62b530b9d0278db162eb4df3c6e18145c7cd806843deb55de66019049787035fa93f6d326efeb552702ccd29590c0961141b96bc8eeda75ad78647d401103b484eab62f23ab468c5b3cb989088356583f684aa775f4d033f8a8b29aa66d08e4aec1fd10ece31ad30077bb4157edd367a0e84e92be640a85787c75e24b6fd76d653b0af08248ba42acfa24a1a92fd10f95caca651addd624936e9942775db505665f6362b0c365ba6ba4891cd52d24c803d756c967f99925229edfd0c7e4acf9444c2ad90a1f1f0187823c6a312eaa3914c89823a38b5127422c54b4fe22cdeb10c87e313ba56fcaafec090c84b4d693de37b8927f7bf5498b6433c4ff2de8925c63c3d46eb96680b203df4a73824eff6cab1010ca84cd46d5c907a66a6123f1f671769ecc7a98cfa9a20a5940ad91233f588d4951cbd68452b0dcc3703de6c35ee00fac29b442460d880746c79b758631af91ed98f06bb380a2ae11892778a05c106639987080a8ed779b3402639faf71b229a7a55ca2df54a1892c683eb5d97b45d68d224de361b3e3e8732084246e6dbecc7e1f28a36e2ec69d385f7ac0920117fbaa37468f048aa0fda2a428c1fddbefffbf29df124f93e3fc0c773a05ae810d0c530373504f069706940abea4b0fbb60acf93fb353a1c13d42999d0c431d91c60bd2fb1e8cd17df9328fade07b0ed974002b95e8a616cac35d0ea65b21d223a1c405e027ecd24330d7ce086f377eab23faaab799431521d9a6d99e1dece3211b607321042a79e19f59a8215230c809c9e54942db9af7e26d9e6b837570f9746a8132659633f05110d85aef32eaf6858d27b2b187ac4ebf10e96556c9b513ffd20788bcb29133b7ec16d1f64265fd29ae7502cdb0ad308c94a68512327c5e85b009ce358e844b93ef34a86c5fbed73d061bcc661eb0b142171baa5654059d2663600def705f057204ca10b87f13e566b633d915d3ed9161512f8dd1be9b3d77cf6a120944df073d5d485b63a1379cdc99ec08975c25f1b8da72ef90dc3b1ae4b132f78829af11968902c22e92599d4c2f4d4bc809c9486a9a940b24a4ba482f3492ce934b54b313f9c8ec0a0beb396301f07e0ca4e246af2f5f9c87de7f71a44c00ad5f9623aeae0f5af51ae07a791f0d8940a52525aaaf714491882795970b38628684d86a147866869917f683ccbdb767299dfdede70e2ff21156c8bd4798cffbcc75214910eddaa090baa720537707b97c559909e0e844f1199a01b6b49767d904926d15593636242a63128028e92a4e18782fe95667bef0bc046aef2308ea93ce2445753931d709e827151a29e5418ea0769ac3dabada121ec809c559d5cb6b5f1d18ce70a8aa0d7285ea580e7275b789e4d2d88f08d305e32067247bc99a9d8cee8e9f39512976458243364e1fb8c72c7199eee763e0fb03891212daddbccf9c0938645945e6dc8bd9d0e38079a0227fca4e6a11576d423ff6972f4d3467efe068a9c3f23ee71d9f87ca6929eb9206436064578b69e6bf8a77a78fbca235b55ea8878e26f4c22f210f9cfaf1b381314403b5414cda6c81f358670a97bea5ab860c567ee0b53eca601a4e58b757a1a1da86e57c94466dc23b4d62068b19602b431c5257e3cdfdbdd740964474fde69ecd3f212f8cc3b486653026b98b19370d2332abfd489f7641694b7cf4b5cb8e6207b8e25ca8800ebd87a53a6244b26da20980b35af3dec3c19bb7fa76e8f00a6dfbdfb88a8b805aca99547bc1d44e5d327541b5a657f313b87647193691fa999a7f926aea2f8ce8ab85d13bbc182e55e13b41dc72b74600b4f1176b9feebfc91d527d2a3d1ea6b9ee5c294babbc161c09efee02ac7beebaa1e13958dc54689199f9be55dfa4d603240be02229b3a62ab33252a61edd35dd527649951a4f911cf43a31fcb8753ac89cb179cb6a6c85f3e3612a60b366c064347d80f56d3a62a856777d7de18d00a9967c56f894ae7b79fa82870a067f7132babf2bdbd358084c6fd3aa233029a411ff903ef56ce3de0a14856783189e37c08bb0c07e3635b8b75860ead24a16db5307c1d10656290b71952fc02fd84fec487482db17dcc1ac1ccb7b5fe485a91df9df02431d1bbe2d324aa744e3adb2a2ab7d18e2fef12532c299d01c2165e3552b9fb5cbdc76cde7a7b6d925a2b71934481414772e7c158aca1ad42b3b3ceaa6746fc60ff788796f7fe72b3fcb1d558e1473e8234fc332423122539c13bceb9a4104f8589813edb4f3eaa437a0be3318ae9e57ad0c8b2dee3f4cbe8fffbd667e61de444d91654a1bfca2e7018d4644952e9734873b40c9a26ba72c0a068e95c0ee49eba395fa67f3d7f11dfc907f044ad131c10ee672e1707ebd49f056fbfb1d32c5e59b5fad34b94dc7c31d5a5d8a18a45f0b82757695ecfd4242a0c7037d596614df708baacd5eadf77dae37333eaf0bac19c2454743457bbc6f13e9cc7278d8e6b223ba68876fe1fd3703712612efb3919f0450962e98ea9380043262690a0a823a17da9851ef2b1b0f3703b731c383576d63f0f43128e5479701313dd4c436961347c47b7c0aa1c53a08ad6fe071801e924b6f41526e6eccc526fceea5679f8deeecbb1f08cb94f978504e53cd5967590a9321e61caa95d1b0872517a07f47db20e2c9eee6f1ea9f8143b5802e3ed96b1b15783c2d90c4dba9f1bda7f159f3760f9fca5ab4ce40dcee9639db0d73c6d666dfc52ab8b126035a3dac0b72e8b4ea63ecdb3443516def92028e615ca4d975850dba21b050632bd46c618801bba647f970f1e4b6df5d4c6d482aa463ccd17ee23c8783bb3d5f246a11c508a4536d989c4f1924a30a63f550fb91ea5fec2e0fbc30b6eb386791e555cae64f9ef8c335902b9161262636204b2ced44bcf44de4b497a98963b12cb431d2983b556c50536a4f23f6b3bad3228e025f4e6b0d5ff8aa24eefeb3bdaaf1ec6abc35d2101a7a8d461deeff868567e37a459577dd324b7668bcd25f47dcf00edd9a2a67d2eecad9866c429268c6959f07d21865b6d85595911a9d7a1f93e08da4ef50d87c2ae3260876d21b4cdff3f7a51cc97431c6658a0de7af8f9766a807676906c7b33ecc542da251745fa5d37ca20bba726d998c94b87a424892bb87649944c8271db47dc9ebdd09ba8345a9ada81ca854752b09c92e7becd0483f0d99a50cd953c1c434a848dadaf0ef76aeae767196d04fe95544843bf86cd951659fb838729f7e79838e325b23c5f238d003284d785393d43cb311529345d799562fc75b93f8d3fa8d3288191b2d3b2bd47cd87d2c749ccb8783c3705e4fab7686e5843651997011336dac9bae5c81ac7437c82b5f7d0c9bfeb4b908f6bd7e330cd1facc63916965304789d2bb495565174b64e36f8f485c85cbb0de41a22c4c77546b6cb1e5c58576c557d985c07e8ddb52b8ae7d39846bc3336bf22a5a4c72a867a641463f017fd23d2d789dc578c37331f3b73dd23cc74e6ca9aa8a3b741ef40fa2ba8b45110e1c9eb910c45684a148066430532dabe4a4dded69dcd799d5ec28f409fe33e1a6de4b54f546006f7b89618b70ce8a66b63ae851125d0d23c54a15c0c8dd3972b493eefcc89f52c14c9c3ea03436396c8f82e2f3162a33266ab283f4bac28b4def9cb68012f50d521a7a941bb17f83fdaf1acdd3bfc45b291ba27cd3101172f34ba4e5d9e6e9cd11f76c18dc86b2f5a1e52215c797b40840c6eec67fdc6afdb3de64f50d7ba35d96f2e3ed949c26cd5c89a67eec452fb6362a0e6aa3c629806e6891e5bb63c9c4ddd7e24f03f9112e69e33389945ac2c563b9c33c24dd1b4fe53ad406cb3cdf3e8ed376d460f1b00d6c8e7faf0ceb6878952102ad54df3611eb6a705767f8cbd241fb6f53e89ff1ade0c8a933ec21feb20ed7da4e3ff9557181fb02aa71f4cb437e66bbaab3b9cb9fc5ab1fdc359adea99301bfc6beab6fc665fdef2ad29cde04c72770e777c0801a52e51b991fb7c1dc1ac9c7eab654259b91cf8c3be475a71caf653e0a2f448d52f64177a76e255c7847218c38923fcb836ab83ca250c5632057afbeb5aa04d02aa9f3f7ec6e2489cbcfd7f276272007746f5e0d688cd4fba2f1aebfaa2ed9db897077eee957ba8249cde58f0f5f6e4c794a9a3a24a894cab970f6fd28129d2136dd4fda88604dd6a0536e38be4b3bf330fd3de31e1615fb108a16fae5b4b2c764fce1278bd778170a36f065ce76eac959372baf29f2119d54cd66c357052c48d64b4483a8f6cdd5376d546c3f95a668f72602e52d118bc2b3070bda97da1992bdc671418200cc6d4664de2f3833fa61724064efd0b6b4b4b7b89e8801ebff2dd181b3f10d864e8010a8de575be8f51da466a890230076aa081aa22f68d3e7f38d12b0789852197495f339612b831becd3d16d5ff5d254b3cb5b580a8cf890e5b381ad0ab58b5ead67c514c846dbdccb511e5b9c4c8413fcc95607bc7f5a5749398dd8f1549b81a912506f917c0dfbc48ac5ac12c3f1c2cb5b25e9034ab2ef4e06e1d15b4e911b48add4c1a60ff48fa548f7f4722729f2f5912c07d6a508e9e5ddce4bbeb15e06475875a2b1f21954062fc7bc93df48fe589ad179a3741863fff7e44be863a8c0a22fd131f26e4d764c24269e263e55d29f63bb1319a18013447dcdb9c08f6238f1191ff8be910864fc9afca4cf607144d9bb349499d8762bc9f62d1d2d77d7fd48c3e9e10cd0dbf30a242d7e355cb6fd7b890cce5e777c81e684898dca3ff80bb0003d958f24b85a808138417079ec0c4281411f619bee65b4c64e41b948a9c38136f3b7240b05d31952ef43057efbda59d1570d9ea882b73050516b26913456acd820fa25de8d9332ae5ebae38991a981c9f991fc8675a77daa48e0b9ff17d5e40aab20f47942f7f48bae6dca9913be8617a81b423427dc308384af692d97b64c7fa166b297339164f7ba4e9a66f8faab5c8135b80b6752bae84ed55ce509f639d61835ef196976ee7922d79ee010d56fb55021f79693f50247bfed47e7103617d016037a6ce03462110b1049240a5fd258c9ed8f60e0a001ee7140a09698fc795cf4cf9a2344cda6b7fac63a0aeb1150c6501539320ae42a99138a249f8a8ba080c75b10aa6e31070445286690e012b52a474c3b58a6a091c5a94fd519062fc8469dc4433f9821191ea5081d1455ab3614ec941f64e08de1d2dbe1a473c35fd0356a67fc0b8cfa202211eae9e105da0eab98bb26cc84425be6086e53ee9718d0a5417777cef933eec20efa6767d2a0ec674945bbdc225a001c037d9bfa56c048380a4f84e7ed4b7c35160b9d0fbaf1af051b053743c84e64c899dd1343874b9f26cf2649c44814029ec34ec91821584555c641da82546a2b06b2e385c3f43a45ecb83a9b5156e206bc37bf5857d1fadf2239c2795dc05851b0a7ac9f3b24098556a6c2146ea01b103fc8c2cd440eb5408c2bc53aadac051ebe1f4a2985cfc389ae730c5f46e6ffb2e9c99c59fa5d736ab277e0ebf600e16435cfba9ab2cb080b739d7bac0847c7d250136f794356d54b799e20d4df5e048b4e3142f72a735b033354c3a2b2ad7e82a68e216fefc88839a124d0bcf06b4932566497dbb3ecf866d7c5a3d4d02e14fd266a789568fa146e3e3e4dd3bcd6adeac7b9bc2041007907294dc336b767704d1631d8b23cd82f78d18394b5512b3200d24e17796049ca7b17563e66b6dea6d6d3a33492ebf2b3c8b320730ae5d1e6ec3c882eb6e2e991939bf2b346bfb5d2913241247affd7593b94d13a07b0594cb0dec7d8cf19f39f3cf0e733d216430120aeff8f82713bcfb9ff4323c690d3bdde37e7cccb95f0e5f118c3b7a36759e7333f442248f84913144830ae114c9c93a4120a81e2fa31c00fc8df32bad575cea4fa387b433c309727169602cf133a8f3f8801d2500aef59491b23bce188388102d47c54d689d6dc2cd7a0d380abdea71e33c5600a04c5f212f4481c4e877c246524a9f8b2471ebdff321f16efeec60863bc8acb235680d79312be53b50f04427936a3c5db6347c4239ce4964f38d6a1e80bcd775a174431d9f47621e91e75354775ec2fa47497e03baecb5016fb6bb8660c265abdfc1e297f8f9f4fa1fb3e02390a97b6cf28237df0243cbc9efce0fb9c4b221589ec7e4ae8783dbce2317e34a3a39f0970561b7bbff04b3b4b7527a4497de7070bf3c5402e52f55a09e6861a82e4b9e3a86ec6fa05985cb10c1203d425261960f57d5c124bf0cd41d12c479250d8f5379bedbf64fd22900c0e3664e5a904fab901280c1033b7c7359f9b2e3f494f9812537836b60f4f889c49d6a0adcfc2244afa12295ba42ca5908ffbc1abd1752fda00cc5c74e0e64fa3cdb0cfc2293c48b1b6c77dfb1edbca371622b223fd22b812848f5127612a37d8f13ff5b7c888c25adaa5f7651ada1dce3e387a370b1b9ffeb1e4a5abb68da5b58699616a1ca854fe2c718ee317b7e5ab358781800c9b09a9d8c6ba5e620834e8232320a2ab3b288b776c49f33fde1171bda4c8880a19e084df061573abc90d27bbeada6db696a24fb0c2157c0775a26dac197ff7d1a14afdbfabbcaeda790c154c0c4ca76b7a8f74462bd2125e96b58f759d24d362d65a9ba493fecee4766799aa87a5a8ef597d341eb8d6370defe31026a1e6d45f8657ca6e3cf6ded990f1468f3e94e7ade4b72eec1186faa209a881f327fd2334ff21dd1a657fbf10481049c798e9db28a64640f5b818ef52020e1765353056814caa64df023adc40884731476134bdc64a1f330f55cacdb88a0c65709e6ce69113dafc6cca00076e8b593c00b0d1b087f984c0f60c07103a4ea251782d92433548a59ed2e4e95a46f1629d647750d6413b18f560ea7ba4900b6c98cb0b19e00defa3df4aff6eee2bbdd99dde9d5125f6edfdefc2ce6925abd0351b118a584a69a4f66e990abe02fb60fd22e364c9cc1a935e6cd14161f248a32dafae96d9f50fa2f89e8961991c9cf211fe485217ec188b8ce2c4121ac2cfcd4d6dbacd6257be1dae1ed6f6709c633a9f033b8f72ff55c02b16484f3a0031c675903ad13762f400a4a88b92ea751753700030990e9f1029f2d632b97742a4aad7dc9f2958b31b72b85e8d4ed3ce0a36779f485b3e9567bf02dd638ab11852db2a377155af145445aab0ea16fbd715ad0bacb3c5fe3ce3db035416d83bceeedefe001d78cc7714ea77d416f180b3fac6f48f74de05f5ccfaa5d09684249a6d94dbd3d65187f6ee38a6b1482de086fd6525db38044181a7d3bb146332dfc7e6e5190d8942cdaa3ea0382cc236e7351b55ec5a80a6b8c50f2707125c09ea0bb6fb97a3eee233604d53e4d776f7b382cb06e6b673fb43aa01ce758c0040bbc9deadda8d9e2e3cc0bfdd83a6946a5f8ceb61cabc9b7919d4265faa0512b6c145b64635cdef83dcdb36ad6b4bf43e11cb469b5e11f6708417220757bade95e643e3d877150acad592e43d7bb054ebc82b0c2ef2a24aaa0f82c37c36b4f5f916207f776309bbcada6c371d12c8c96c512d74f86d1cc7fcccbc178f740d3e22b0c9127388e88f4631e231c889aa635389b8045e192cb017d8a851a9e2e7debebbf35c999d81f002e0f4ecb070ae9806f7032e9411faa309fea65ab715b085ffa7fcba32b2038bad21e38912ead235a19843718602319e23c0900fbf9e0e1d5ac76dea27b1317275143a948c036bd037e31d526e5278f104d70c1a0039e7e4ef699cfd716ded113c61469c3da8135f5b0ee5e3fc7d244c9ae1868119dec809b1e6694d7927139132d837bc5079f1805d6a092d70b51818ca2f7497b6157fa3ebfeae5e8fef02a0f0dd06176691d9ae655d95424a1476d4e966d470fcab8ed8ac3407eb9305fc57d8e8958f6394deeb070c7bafca0e9b6f9ab156917ab63fe2bb1a0e9defca1d933db65033890a697c121b0d85ebdb928b8fc92f0cc85def9204b13e99642774c98097e83860603a59b8715d431470b16bebf4a46bd777acbb8e5b3a3e13f782dffdad72c6be7a8aedd1b928355ea098671072bf44dc6ab2b3cb5c09ba88e177c5f1bd9a5f678d0cb199e68acfd3b993ceaf66bd3f43579cafe80d31f4829f692c734025e366aba1d82e9fcb1835f8a8a913f07cd86d6a5bce34ebe40431fcf9ae0d750854cddfc132341f51b0c9f73020a3c817b991f9e8c7569b0bc4498970e7323c22d852bbda8e3bc9fbf514791f47e8b9334ab9458d515ef3e0eaa0b94002815492daeddac0bf859193b6ecbf7bc55593b883654fc8bdf2d960d466493793ec5307104bf440a4c496404aaefeca7ed0dd1d2b3c8b0e483ac83c00cc04bb62dfcb01a227c546a372509c82026aabc24ffc2fea4275e12c08e73da46b618a097a59b50bcc5aa6ade31ec429530145dc2c3d64c7a823ed03d197f66b3fd7539cefed9fda3ca2b115323533024e0e3c5d4b74d4f63d493442c05ca0437414fc7bf2a8c3e79c7a196d35290b5831385622839f7bd73f68fc759b33e4290d759a5f9594ac16e0d638513c6493682174a362b211a83f2f1f88086f18e050e488187edbde004b5f3400f2a5865c7a0ea2caacfafebddb5bb58d3091ea1875ee897247ec4a04884051ffc22184ed59b6a55da48c244d71f447636546eab4f643d3b36541996725f0d2047e872ac2b68a50bda232cb596d430af5aa20415e30c57d15572286a4c26c1a673ad4b9e70f6476ef1fcf742ebce178095762ace60eb09999a007563b82c291b11879be2f58f237e91e1b5424eda084c7b0235d601e3b10ab8421b14389986008bdd7a92c9e1ad74a1c4f8c94ba52db4760c176a0ed0b76ee9023bc0190a1ff9fbcd016b5378d0af16ac7a02dd173b8334123a190cc807c97dd1745823c499813cad57eaa61d41a6d26747808cf0bd31ef93b1233c23bba9ade96751fc7520b52a88829cb31f3eda3bdb5142d3cb4d053cd5d6a0402c0b534bb315737c1217c31206288a8e2e4e5891b358c09fe6ffe1057962edb5d1045e667a4e4457c1157c8070a0c136f70dac49f6cb45bcb408a958b30131488737208936da9391655361cb84a298320a5d379a2cc5c7abe326accd8704ce7d3eaa1ead1b691d551173900f790031b0ec84020dd4f771438df3ef990f08887756543b58cf86f5d77d678bc89b663297d7cec8e0b0dc4148e61e32850907efc3f06e6d2596e793bb486fb5a4a073addaa592e1ce5d9370f5c51cd88973a3b0e3d5efcac18be1dfed9cb3a273a7dd59ecc6cb2a0d8172ec6ad55e6b394bfd7908112c30cbfb5abcca086ac165fe3e46b082b318ccc29256142b465e50b237f76fb5035403c184a64d834096ba3d4a13f8dd337c35a79a3d71ee2881cbb7a150e9a229053c2f15085b1f5567f29adc766872d1a65f57bafaff8f9de41e4815e7355683fb4ca1c6daab05694cd7310dcf31b53d51912d48526d2c033e2039715d611efdf86e22cd2cd9fb7951cdf8b086ba9fc515f66b39f1a8d43f77c7446296fb339bb3b2dc386a60caa758c90cc60e70a75908f6e4d149fab96b61b74417b1f21a8278c762e4e854c4bd6c69a6187cde829ab72667f33391437c1130e7961c0bd83bd43f8ce6d1b44d21e6a708b925f41fe49ebacf065a2904a9bcff2f155c3f6c458490f8e9ecfd3fd5b243960ea9a01c700e70ba45b51d98ad5f8f95ba99a55d2dc174f64d00c8ff69629ff5a6b996c4b8565b4e2108de4c26c0b106ecf913cd5916e6107efcfaac041e539f1e867b63b10e546d28861d18e4b5c48cc1f6d0fd17a3ca71cba1f851c023d443e55be88623ad0aa2086312f93f76c9e2d198602cef9926fc20ba40477c40a1b3fdf63d000a0c44d072431e56f34be5c369b8ba26426e9921208ca86e3b37908308ae4830afa947ac48907d4af61d58434fd244112d1b6f720ed89be4ee3395fc80c74c6b765557e051ab460ea444451ba10d5f55f41325e00b3cee47d67443932645d45718eeb8d9f6ee0594cc5eb5d195a26539592905ebcbc3606b110bccca7b77595624b54a895f4d4d6facd644ce66df18d3ba0d66e42bcd2f5f7b5dcc20a87bdf02122a95285493b85bc47301de9d82a73e4ae83e168966c723a5e974f1a5f9cd8efddd54c3b0a24c1988b1a5ce216d2fc84fc961b6307b010629fa9b5a4a1dd883069227f842ac411c7bd43d386b7ab59c904d649f96be1afb9440ffe219bc1d8013cad7c38544b8cb659dab897ee0bc3affecb629ea5fb202064d2b8e2f78d4351f41c00355de353d687bd3a6034599c9190f51a0de97bac5b69bacfe49a32b18c89570a3e74df7826ef809dc88b2196340dc7e31ff40ff4edb9603ddca90f3e8aa03ba90adde00b267d9a564bd3ab1f3c7635e03cbaef787b484192168421e1039f0ee55daa96ac140c9310b0cd01cf47e028496aea6b817b788088ca6a33c203d47831cc3db9673476b3e20e9ca4007935995b8c6a731546df04fc7523d6013acf49c139674c8c7a97c93156623f08d29c694a4f21471090be162965cc560db225d6f43817cb9115a363e1c850a5c8e4c9f864aaaa511301d503f44eb54df73163eb3a16494ae10a44d6284093e1d3ad8dbad8d1d9b4fa13b0ea50994aa462435012b8b9dd600ab33ea58c0b2462c93a3675b8bf327487d47a1414b763368e352a06f8ff9e19d59b56efd4ea10edde75326433e53f7c5bc4bc39cceb2a9916815708a375bc7a4941df750a252cc56a237f1c662683d616b8dc062bfc2cb80c08a2ab005244a3ea0a9d0ffda454901d8c3cccbeb67131dcd3b5c85b20a96070d65631b52e788dbdc6cebccbb3d9db70fe1801963846f24a423f8d6790adbcfd651d9c64a517a4ce343b027a6a638cb0fb0eb200aa8023a4b82c9cedfb217e31c60c8439d58f01beaaff86fbedb7f3f9f02c2cff15cfe523cd0ef07f3c9f18acbf05bc30caf3e6684c9a1b4326e9122e170cfa725f5393215072d00b94ce0f49f52ffdf339a74d4a097b6e578ab8ed610847de2ca8304138cc703e62978ffa60ce2e91e2733f42a561ce1a39e7301e0de2de2310e72ed65a6885eb3be96975d5e2b3fbf7d12a7798c3c9ee6a843505a7cc70e3abe9b906382e832bb5ccc4ff9c1352951b8ba2ac5c7c79e05ebbfc165ed349a7aa47e2bcda659262b1aa935dbb16cfc6f36483749217afd1bfb59b44531a0d4b75e1e20816adf47dd9e96792b4c39bb1bba450380cfed4beb894505ed71a566c3a6d124ebfc9f76f5dac9e60211b2a0bd05549b0555210f0c70ee9c7832d345799823c440ca0ef742be62f69f25c7684b9fcecd23084d4980997cb846e6adf6f3a937cdfc3441bda1f2a54e98d29048ba0c2ad2ef1028dc43761ebf498c3a274645d83d3222eca54969a04b8b520facb4e989ac4f45a9062948b8f611f2e06163f300a5cbc5596ef7453e10bad4968e28d238eb26b4852100ba8cae39106af287c19cf6446893238ae84e7e704a7769c9e387f2f91b68f0449a479b4dcaaf08e2e43c947cdf3a3fb4451c607c6a68c03cffb79a40a49c4714889c44af555a1ac9f1e7f416d427a40693892bfed6d7dc8ea78300cc848f9da02eb2bf95f9a5d2acdeff2278085ed4cabf8a1037bda5d51e67e8d16765524297c4dd2a47400193e747c5af6dd5db88fe003e95f83daf6fcadca63fe1aadbdc9431e14164ea8a11728f8771f11fd65b1be58d6f1eaaeaa9d238aa6d564e877c9b139a913434f5ac1fd0d2a48caac23ef0445e58731c642571adedac1abe2ce032355677eed6fbfefe2d1fe0996c959b69e3ef5c2396a9520a049811150dd1544f85caaf5c4be409c1f2e000977c3d169cec8efab68bb528e3684fb26fe07af083bf738987f5f6db6146395ea3b6d3606c84ec5df77588798a2672054fac234eefee4f1b2944c0d66783af824d1710e483a67422940b8fc88df23fca7dfc8591102d2a2e2634fddd2a1cef2707244a964a625ef58d7ae3249b96bafbcd7cb6b7d43f03a2715d861a5f9de794e130e0fb21b7eba808ce5bfac649fd1edd7ba6777deb9dfacb337a382c5e0d869a209853ed8e3dbd403cb0aa849d14fb33430023f071e173ed9b5fe58850148236d974d4ba03fa07d94a9b078b177d7f68cd9029858dd9ce389991776848ce037214def1e328a2b57fd4d236a780e1d64b987fbbefe68e253f04e1f8ff5ce3e3d57eb1968fa4fe364fa6dd75862b2e833248c007bc600c2bc35f62f67082e36e8ff70c658604bbdb97c5fe8ea1388bdffb0a86e89c1a94f2abeb32b10eece7234396d89bbfba1ee8e4ba1ac8a84440100befa5bb0589a2b6cff68f3f50380c62871c77415d3d60d444f63c389aa41258b6fd702c0ded9784539b608779939aa5626ffafa113e5929f06bc7864b6a1475fd161205e11cbb68dc1c1fe69c7877c404eec291364c0db82283f35af48d60f659b5c0bfc882655837607423a9b7ed0bb02d5d21d16c6e5958c46199d38c29a66d3635a7bb7627fc5a2cc42a1d23aadc57471d59314d725a40a469c64fb1da28d41f4730d088becec067aeb3db85bd0d270ccf8f1d2eb9a0ed532d38621ced58a3e5210f8057d90608c90de300e129482aeef5cd1650f0b6be4a7dce52bb2373e38e2857ea0e212ce3081c87ca9ca9dbde756f360d636840470a99af019cbd3fee1ccb69c8c04531063af104d8630a9ab05cfc4f455adaf004114daaf92e0c0c43db21685b0c5a2dd75ec155f686ac506bd869deb2958cbde5de4b701af4806f2f069374773f72622f8645f58d7beff7dbcf857019e718d8c785dd6f544362705ca3de6de0cd39d863fe26b63a3581525017ec9a73a9dc59792e5cccd4c0b6e548b7de0762d406afb35b4bed07b0a09cacfdf891197c36e5a7a56de9fa5fb7ac991f38fa2b8a2621f6ffbbf88e82cc149baa14311d6de92d0c023aa0fd2aeb71200a34e639e39bfdf586d67a7258a5e415f3fa910194ea8ee02a71eddf0838706637e585e6dcd43140b3e7d17b057053e9df8ffd55731a491f7696f3aededca8d5d9ddb779c0d36e9292471f61bc5de6eb90650ef75e1c36eda04138a7f33317b03e76b290aef4cdd195718e718c83a7e0cf33b1405a59cfbdc3209151d42463921ee42b05bcfffd5cd97c1aff4370979a478951ac2becf7e1348ee2b1bc74c53f74e61490f11561e112ddb58ffd24d8abc44abd244be5fc075032d911a750369e367b91832b212ba39b63939c5acd0ce6ffeb65df14cf9d1a087e1d3f013f7ea3355eb7ece02b5d9a852146cb1aa08c5598d9fb1b5a7da1198cff489b6144bbb51e816263081245cf7e7e173e666ac61f1fd8fa2248bc785ee722e84179a2c4d30c03b60fc00458c2680ca55c8892b5b320024de5dde666f20d44668c1c78439b0e5a263eb66b5544f9bbfd05e766e38e142c73ab625ba1583fa52d2b6b4bdbcccfd9071dbfdbf8bc9ba2f9cb812abcfec6db1569d85930c8004df5d9bcf24530b0d4606427c6a073f028571261958e442906372f9089cd8074b0ba3acbb9bd21c742ab23329818958ca289ec919e864665c0104bec2b396047f446a1d2b50f6baa743549de811153816282dfebf9618ffa11eff2d98e4c7cac2855e0081f55a2a742049668b2b22c2729c4822a154028b47136a5118ed2d2367f5d7ca5f9987de1b334c169aa952b851e72cb3952ff33a3f4b4ee29304bb9d85afa93e5564a75c8149b6168db650b993892e4842b3210ae0a17884ba1ba50f88b7f2ab4cf3441f9b3ec8247c43377458f0a0d4c00fae88d6e63b37c65d08fc67358a6d62d968a5ffee2eac670511731de8184ddb6ef15e485f61dd44b9f6d476d28ffa775688f31cc1378f7d3111986eb791775597890cda764cc64f92f48db2105cecc05be245dd3b3fa5ff6b28db4e737dcf7577f54d8d770a0085ff107008331deab4433840111507a16d66caed2b0ac8926c4071e47c8f8e38045661f592c2fc74618b6d8bb4f82a7271f4b4d00d306f535501091b06dbff9105ccc5564c1d6adcce4ece2e8c4410dad4aa1dd6c97f084ead82394849e2438e359c9a9646adeaeb5b5dcd5ddeba81ba519cf46ad38dd5323b0be0190a00f16369bd0510aeeb74945d271f695440c9780cd0bc6380ad25bc274a72679314b81c4b5ca2a5082e1c34c23835c9c699cd53300c39f04abafb10255afb3912defafcd316140150349e212c382f1dea0e6073f0adce5aebddff82a53dada84ca2a21190a00038f616214c32c6d3c06b56730ad4d652efc7f3877dbb0c1ac3b5d313a9ff7b6ad0c1f2bc472effa21792f0c300dcacd6921e1a6b18772832fe8404cfbeabcf9108c6e8984b2f6a2949fac95e9a6dadf5fbae87ad55cf1206275b8b0f10830840147ded9741af2a3166b48105d265e5fd6d18c2b118c980b028a3534b97e14b9d2d117a40383b31c17c203f760d11a56c39bc523c6476f4582af0f4ded05bcfc2e01da674e9800ebcff1b190ce12ef3a58d2cf14d60466d9428efdbbf48383825d62db897f2b050a16cad154f77a037899decf85a2d9a382eb85e8d5b204bbc4c3c0eee659bf493c89153e979843af51ed7192676b455c27a15e4b95974dcb8253898ae7575bda591a43f83f2af45d0d84cb178e0710553bd9ff9c794e55f5db0933e05fe1cec3ba5702a0ff314155f692dfdf7f47c80e4a71a3c9ae109563bf8703dd1a90c3f823486014d69d6e833fbf36c427d0e71db5c3145867cd7e1a2e798a91809e0749f482942f517fb43b3f4fe1587cc427f1ab4a8e91f54ecbffcb6af9a88c3adbd876aa476bcf065961039ace18fe94390390c26c669765aa030fa6c6be435d9cbf275f27bff0ada62b17fc7283594f3b74f2f4a140cdbc22d19f709b04051b513e7faf76675b098627f7a0849de07c002f67dd943f5722357677af2b1e984ccb0135b9a526171e3ee6ed40cd968f01260b144876567d00223bb02d3a28b2dccb49dfb6509f156a8ffb7ce861c05450b396358df691d547f992ca2bb7b638de68ca24ecd1584391ec825201d05361749d55212af82c42a277818bccaa6ac3f44cdcea3ebd78e4194bbf950dc6fa30f8119d08668f5b16bbd2615eb36d844a25b9f531b3790fed8a07081f05ea3427b5d561c2d1dd7a3e55322e4a330b61e55338347ebe32be9473fe522380b6d59afc3566740f20411bfa4a79748b1989a3fdff630efe0651a00e7855ed6dc2735604ba731ca65e689751080b1ee79621dfc16e83233fc99bc577369490eaa0b64a16d14f070a0f9f6e384cac59ad0785b5283b521b4589599c3b6040b4552ba3bcd08101ebf798ef90cd80048d0a85d59a9b3f2a4d01a3b449188be8db69b6387881aa5228f8b549bf1dbb23f345848240a6440cd044e8c2286bfddb1764489da98998b290a3d0285d48ee66c2953eca1021a25694035eaef3d333a6f2a626cafcafcd9eea8103436825d4553ff1ab060507f64d152555cdbc2b2cbf6acdfaa1d9906b997e173171876f0ee24613a7f40804510440b8a98f31e43ce2d123905108fdb4557e8d2383372fbbe2cacbcef0763495ab12ebe1770108925fed6f5982d60bdce6d98ed3e7488fe9c19d5455a41463c2e23ba801e538fa2270027232a4e7674e774b4f9a437adbbf7774332c977dd4613ec7dea5e459cfd0e3c668c7d29b0af8fb245944a256270078c1f714acfa408b6166c514a63f76c4d3e8c39617b3972349ee8f7bbbaefdc957030d24869411237ec36b9ba7309b2d9aa509eca75043bcbc254dfcc44f23572d4a214d7c3d523b70a9cd2d2f2cc3c6c820d4b5fda0e2baedf7f17d57373113766e00356436200ce4fb7dbe193a1f594f38ffade5217ef4ff9334cdcadf44df9330842e88a6233cf9a4969203520fdff792dd3352323dc388b3f0ee1282eef52e51fa854f7dc9c908bb2534d10420d0f45df96ae26cfcf2f4484508b714a26fc5d3197f06b51489711378a149be5f993f6e51809b52f2626454ba6ee492dc1888c41ab226c8366fe86148c8d6d0458360d1ea2998e7722399ae47840063c666adfb1177ae6fa8741e53d7064b294ae1e5cfc9ba4a58675cd55ec72fe531fc2bd3f08bbbafe37fa1fa1d48092525127b7b93cd48bb88631e59e4b113a5ddc88af0210ed0d9a597726b67f5533f8809adf17f74bad816ff6b7fda192a2ded9a1bb3240051e4043baef8878b375beacf81493ddcc9153156a36755698578f447b8206dda3f6562c17ea4551a487f0cb0e2d0874f2aea0a503dced617df766d2c7a58cc6a736c6d7a46443cea1f577d5b834a4501fc160c72e745559717faca2b8ebf1a39fe232a0b90047eeb3886a19fb5bbc07ef8149561902f719b97238d055a2e879d7df70e475ada6e9e30f876f4b9ec50f4f93c1086df4aac86d01446d13179955579e7403380cf2b60dbc9747ac231f1156abdc15848c1f88335c1253abe31584455a34da855660e075498e0a2ca8ae8a63ddb8e9d681dc159243d65fc0b0d1ab63a789a639d79a6ddc740641148b35da0de4dd7e008694dcd3bffac27cfa35c759bb0ed7466d24928e95ed7fc2b163a3569085c4047309a97c301c552b3a4cc5a4d1d83b50c7ee7e7fbfc1853844b934a5ec36f218c3efa8ae2c9ae082ae6090b2dfdd63b64daca24b8bdb332878456926b3f179bb46967fc13c4e5fd192dee992bd20c942913834ecd7e19914629d7d0d9931c253a557b113a68954c062ba478fb0eccde1c95ee054fd86dd27a8d73868344b0c9f3503c25ebaa79e5b94cc394f7e653189a3da43c3fbf00f237c055968eca15a69bb9ed29c10e97018466ea5bbf5e8ef613dda38d2e173b19db85314728f7211ad8e8a2a84ac1d5c0d69ed5c6218f1bcdc5f7542606c0d889c090b026b4347fc229c36f5e56da8d8f0a747bf39b7573530e2b39357d3f57209b415b7e0583e7e56c7d521c248210162872a747927789f3480d0f5c916df14c54e6a6d51e7908671a1d6491523f18e9c0805611d066cd041eb51699f7aacb879e30ce8a5c9c5240ccdcdfebb4440e14c6b69aca5d0bcfafdfe2f071489544391087c461401df3f0b19f53a0076467e209f4f01346731b82f035e4007cebd68954c8c7b6c83335352a33963e8bb74ae735e8ef29f3c0951a0634677c3df96d976d31b24e94b619e6c785fd2fca8af75c1e283363acc4478f5f0f3dac638a3fa38fccc99b55e288982753db81e998c31370e877655c2872b1869e15779f6c1750357e56be06300c023baa5f964281eb0e9f4240272dc0579ff336b55160443b8d5ccc57c2f0a3c172e5003fbea0a83cc59127a87bc88ebe5f1e93e58cc5c3d4715b5b6e032f279a1bdde641e3319a0db010e2c6b9db58bcb90c7bc08bbb472151e518a33fc0ea225119c1f228c90c7bd3c3a2b67b1e7cc14353856823b25283f1e6e5c0e5be1187b38e13ffaed46470c36008e4fb3729a8a4ae09553fdf06206b5d8110f6795002ec4f4ba91a3ca9e8785c98cd35cf32311535de03c5f909e600a9de8157cf2e0f543579a43e861facbd4f6ae0f37b98e60b89523caa2c203df48b095561908f4cbb4c47f826f1ee85389e9faf08bc3f74cdeacf45004df3d3939a0cc6fb67fd814c78a866329c123070740296162f77159b56919a7033664a6664565d0e6701d9ab902fd207fc7cbc0e934a285202e1096ef3ee822d679a50a3b19f1ac98d7fd462db84c52382b30698e0871cc6873354aad78466aefd71aa906c518d71f1a8e4149fe4d93203fd5fce63749c25071ebdee28457e81646b3e38dd6ee89381ead1c3a5b5e164b7bccf4ac41ac7700ccb","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fth-blitz%2Fbigint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fth-blitz%2Fbigint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fth-blitz%2Fbigint/lists"}