Security Research
0day Hunting the Day After xAI Open-Sourced grok-build (Part 4): ptyctl Test Server's Zero-Auth CORS and Cross-Origin RCE
Thinking
2026-07-20
6 min read
Research Dossier
#AI Security#Web Security#Vulnerability Analysis#Persistence
Unlock to view this content.
ba118f25c18b1867f00f8233cdf2a56cb2dcf679f31df15bafbfb89bd413643907e06d3a0af475541d1840796d99124003e0fcfd7e568c34a64bdca29aebd1c719d05e63ec16c926f3dcb2f3a0d8659e52dfe4c2f9a5861e607421f28e061755c8275f81c734dcf1ccbcda81d957b658752d6baf72a911eb60289de951a86afa879214bf3c1fd5d14b269a3ebc0e36ea33322e3aae2c805d08b33d347db30ed4305e1ae36729e72363f02deee8cc3ce88e53583e87cbbab8468f8b1b155fdd01dc5bb9cee5bd709df01b4771fa14a3a08cb1a06a332d5035cf5006fcc2682fe23b770b90c316ca7f411d54f78d731da2d1ac34d127a705fcbe15376efddb5414626ff5518de96a12c69da14cb65ee87bf63408942323d89e00c391bcfafdeb77cf0c976f1b304f57f2f606f67e175a2412969c43b37b389ad6742e071e0fa6e3a9200e3506bad01a7ed402150903a123a4b5f70ba404ad7a3309d02cd815bee81a55bb6cab9df0bd6ba5d24b8389e243f899ae735e02ea08cb8b86549efbb98caa375c7753049d727101b5786c06741b866b624f06b864b5f61d64a5b002bbe5d29da7056fa6d1ce1303467ea4830c8fc7c2f5f145db9793ff33f0befaba90aaba47894305ddc5fa2ad7ad65b7d816d8bff4aed27617c95d7a0fd46bbda6531e54630645cb996dd5fd1fa66f2b3aff2fe1178a164739f2a8fcc2f9ac48599b95d0b0e8084d22f0004259ecb1aaf4b1135cbe09f81d5621766d6c3afb0e9b9c36e3bb0d57936ff3c170a3d7572d49f47060aa4987b80defba82148e43fd574ea61aec1aae97b7f7cc4f4779aa72420cf60d89a07f9e9322eee8fc4ce8382380fcec19e076c3be710811288d664a2e05d1834c3e4f2b11a9499a133e777921cd657378a1aceb9cc921e99335bc3fb2c7252d7b79fc697d92c8af572993ee6975f2c4e69ee87dc3e816036990af40c4475ed9a4934006d198e6321ab87c42c30ba33de0bcf8047199977ca243707afc64864a31a8d5b368f87d685dc8de9ad890238d655aefb1ee5c2726ea37adfdc88e35ac4458b4df47868f14732f0ff1dbbdbc4da6a4ae0561a4ecde782572562cfff39a7ebc04f2c59628b1f8976e1cb330d0f537e6465926044d822cff5245b4486fb03e62c578f3ab3f100ef91b5995e085561712f9398a35b3a68cccac3f8d8e1da5cd94c8735e73ba29ba5003a19635b347fe912864065f922f4ede5c8deb4bb7ffd5ffc6576cec0c1b5a6d19a9f460e4deb1c55d103719043ca5c4f0726dd448f778e0f8769b3edffe2cd23fc28e12f47b5e34e3ffc3a52bfd0167c673e411ba353f90b71e0a99dabac5d7abfa38bdb1d99b0fed84d5763cb71bdeec1c49da8a4a19fb7fbfef5ab91f0df62d9c624a284eb4df4813783ede5948555ef0c4a2d2379f6106422565bc891840ba8f9f3a0cfe6a2a0403a119eee332c78dea6d0b6d8c1a856c7f641cba4dc918c8de9b8d8e3c156f6f9e0cf6669d02446b30e825a7a4cca9d4e3640a1fa5be6e8c43b8392ccf6ab6857fc10ad24dfe4fdf83e41c5ce5e49728b86a7e62e157be7e14531c4773b3f66506564f0f989e251d22cfd0c1ae8fd06685677ef6f72e3661d3e80d826d1bb7da74585a9e244ad1a63a362925328b3bf0fce1ff1a676f2e3aad2b68d6ecf044722153daea598867db893ba4b47c4fa9aee931252cc94a41e0338bff3c660e9cc7f62d3337916b74bb38c440b18b657ea9f7ef843c6a5bddf002326484c8edd2947e6de863afbc46ce8a590e0eb9e8eec67d2776681b51f7fbff68800497f480eca541b504b147f45f803c63560f0a56e3615d681011d7d4bf91b83cc35aa096a53e3c80df19cbb20e164ad7918d535b7f54634ba33ea5d3eca7da86c1ad8286319d176b69adcf5747bb1ee74da1f4be1e5de7ba8f2c582750e1227c0b76879977af3f7b8fedec63ee715faaec0008c79ea2d92b2a6b78da2d24c89afea9832eba57ce21db03b81a92e240d2239c65b4bca64e5f399693126ece317b41c5e6c4cc33a91f629edae384478477a0cad6c7344be2ceb256f6e559eb70ef0a2289688fa992d3ffdf96df952d64dabe01e76da9af429dced5df73b9af2805f32c943f509fded918caaeaa9ecd83c30ed0ba74a15afca00fc205e46fa170adf91cc1618c68845f0bec5a020c2eadd7eaef4dcfb90a9786ff58bd3b8567980a1b412c883a7c4e8bcd8517aa0f638859cefff8cb8951512fa4c4747fd1db93f2ecb5136717b238ba5ff9f624eea7b2403ebeb41b72e7c34e90eac72b5f6320a24a4c6cb60e803d0188c5269b0ea08db6cba24fe14ed7dead6b403f34dbc090bf84789f93e411e7783721f3921996fca34df3730040d596cb8c7c1ae6fe519e916611abac4be4f5f91e0dc6069349bbe96a080787c4c122c2d54d19bb0897766efea74cbf7deec9c3b8c24e1755b69cff548c893d83ca92882b6ff32e2fa226a4d554449de684db9d4fd1b69eb53a01bab11bc6c5f563b6fcad87dd5ed1c864bc70f564c9e5b23701baa8e1834aa3f190b928d3828d84a0c69d3ea510de4729e0ddf5b69cddc895846a85eedf92af18758c960ed5ffa658b0bc8b359f87ddc4bb12a25e17c9b70eb15084f831bccc87f7d1a74187107e2f0935b4d828045f887a87a37227dca0daed3c1379e4ae924d3aeca69e4be64993445fc818cd466302ffaa71ebeded406a790726421b28dd29ba2d62cdf4990d080d9e1619540e3f0856291cf8e08ae72923024172ad4d6a067bce5161700399a899413cf58cd03e4445d065ecfafde3fdf0305f535ba4a46b1966616704f00a487793b3cbb0866dac9cc956d75a24613999db554f961c9486d24b693260d36c28f1949576d392f08e4afcbdfd134c94eb2c280c500b1ec30149cd9b9fad4cc85721ccabdc47140f9bfe173e633788e5460847b06f873555aa0abecb89c980ba4ab1659b5311c9734d2f7c2bb308e29e2101d5c009af2776ccf3969312249df427d96d7a70cd81e7eb377537e0e35686c8a99e39990678d0b77c36ac571e5b6fc85b45ee9262eddb3a3d82113a211829ca81bc3943b3de540ea699908024cb02a135cf218ed18419f86a813e568b871116600d486fe33b5b50f6ab28a2fe6452557be4d1304a2ff0abbec5cf016ebdd71daa1181a94f16b671d86ae6351d22a2f0e13762598dd4c7e09e475baa791b5034c29f988d97f62bb24f51929509146fe5ef5da93b549e9e49bef5751217c81eecbeae4edf6fc3133604db82774867b534c52ddf7218cee35bad0273e1968e95bd7a89735576fa47542c1cb06311717a79b1e1e2bdbc6a27ecebe94b8b366ce14e20a66fc96eae18a8de501ecdc4ddb052123f4cf0e82c3696e44d5b148bd0f8b8352a02ff03d35872cad65fbab28672c1bb37c5b70e50a871e0a847bfb9552217754ebf8fa78c1fcca36b6238174cb54eec1bc3d2973f6cd5c1ab5bb314d1b206af86eddef06c9756b12882220b172785bfcdc38eb02109f2bc3cc0a75f73ac201f78ef0174053ab8be72497b7236dffc563b351e57c86053eb0990e848cc9ab09316d16a35b3f02cce45560a1489440c2c2288d6b6128a1198b9075d574c6678a326a6764ad2e847656be91f009a1a6e1343771f5e61faf7885bf04787f339f5edc23aeeb1ddeed99e89c70a1b3f51a1d27794f2f3d36653dc4c21ea74e493c40a233bb2d294eb61bcce6880fe8b3253fd3e97f5ecb304eed84eca3816590a3226deee76e5f186051d5ba29ff4b75a5b29fb83cbef8666455981dab9a17ee40b5c64e143244c82202dfdf1f13419fcc93905ef10934e9e6a17dcabafa8697ff5b6ec0346025c1dfb5cc4de1b25f8bf377c7a199d5320aebefa563bfd8abd0b99ab2d686f625c74af5096ae410ea9deaacf85c403143ed92440a81d38576be6108873d7e7dfc5e3ffd6f75a2b509f00fc1b2d5ae37b131cd07db5332a369f9fb7b62eb06814fd03d1dcbd48592b6210bec402e32b9d1587a1980cc24e3643d2a2c55d9d9bc2a2c8ab509f38a56c162d3e4ae0ac9b57089dac7816cd2ef0d5a83547f474d1558c1a96fe8ec17a71e7d04795ec25eee47c2ccbd36faf3e366317058d821bcb4a037472e2ef67b98c1bb9f1b0afe095e9e6aa4a5154eaad0a679ab2ac8ecc79af9a8d156f0af61446346c1115167410fdda3e84a2f3d87350b922e26ad9dc2fb093aa5905ff6ec8c4f2af118eff169f08b714b3b76390c0a55979ce7c06e92a790aa9d000c2c062f1aba8f7d7211f319a72a6ff08b5977e43bd3e94b7024e57ea2b56b7ee55a737a9bac8205e415d6e6d4995690f9b23ac6677081a716d1d9d9a3746355609d8f64bd891c2616d66a052e3514c76c6cb0219fe8e1994a23dbaf8e132d7e61e63098e23a746641ca1ff2c21f06bee0e1b7ac7dc8b88830ab915f36acbf9b7b85a5addfe2c3283a48dee74aa6f510bb5f7144d7831875b515488fb7b22b98192e253f28b96979b6fcce404455de5849aa045a03685ae478d08f5236369464cbaf349e6b14d4b289ddf99aa7c4d1538a2ade7365031d45fa62379d538211b5a0f46a3cfffccd8d0770b875b0155fa2bed980f7888b35d17d3c0804515d33ef2a7fbaff84cd2f2a006edb1ece96f5d07398390172e72b26f825fbd25e74f238bba482aad08adfa0c94c1881ea97beb9edb1079958d88b7a315aec25d8f6a124afc217f6b7f4038079b60840d5d7a3d0cdd818d2c243876ebf7e78660da6ef5efe21eb1662d412b9f3825db0cb21e73e5c50b31001f435f684273eaa79abe06c14d86adb0adae9c1fef7516518e6e901d01d24a457c3f682eb559dad3efb059d142e5e0fb593b999ee928d63d4bfd085e074cc6e5097aeec462adc0e0e1cdc1274c029f301ffbeb9fb5392ca1ef716793b3976c8d45a4ad737b95ba2061579cde00a01a94befc1d98897f27a3245db502d5d41c8765036beff672f3bd6ef3c02d87eac99786d0032a79a8794514325ac57b5ceebda3434a4f4364f206fdeb9b767146770b5f1e4134852b7db5482d4e3e4fe11a2d11e70af2d79cde4a995619430e8eca41e1fe12faa3d9850c2c579fa1c0655f864be57277c47acce48b09da2332f0d6e9d758548371a86580a6cd5dacc48bf622e20cc566dd85a153f904c8b0af69fc5994de79783358df1ec4199c502ee73f2be5f9496ef055e4fae7f8e6416b4500a0d962fc1c8dba272ef8fc7d1df5807358f7f7c417a0fe34b93567f4a4d9682377dc14f3c27703c305f0ea688dad59a3604c07fc855b9702e6f9c0b818e58461724eabff09db9b4551732c9149494405e50ad748684e71399d0019d2afceb3d868389a77e5b82c04a25d19945679d99a8b3f334bafa099c46f52001bc00dc4c10bd6bb2b19bbcd26606eb3725db94a3ac4aca595d0d9bdc3d05c2df180bafbb48a07284ac167f3d98432d4fa9a70c417b5147b04c0b38541f1494498dc9ce83c684af718c57a71863ec6c1ef51cbea85bf67e70e040231fe6bafb04dd0d15dbe69ea71e71a26d23cf955b0e448fe78059985769bb46c6c0dd1d18fef072d4baab1ec5e9ece852e0998a90eb014d5b37989336933d5f3cb8c19e3286435b0747258315ea8ab85f4b3ef6759d20264e70f24639eddbfc2616768bfb20eb9aadb0997f35afdcfc01310d3ce7834b23cb50ce1a17ba6c92006419ce9b15bf42d972df20ab4aab8e021619b47cd896e9fbfd834654d2f92e38f94f906941c38b45fd479527db460d5f41c1e7a15a5c1370cb8528f435b1a7ae4aaf214e2db3480463ba2259fe2127391813fe9ee3d71c442dde7cf821dbca3541ab3840b1286c2564f2eca3b93358b7c71fa31a0aa45e1abc13fbaff32dacca68a1072160a89e8e1d7d3b89d1b4618e4016dc87b30ee49702e7837bf20e1e622f7e78be586c1a62a68366ef1876a5e9f1da0540af493de6f6c6c78edc4747fb7d86a3e65c1c1c8607fa315f53bfdf63289a10b29f4ac6d7d82ba83e4b3b1b89042aea0e353a97da9cf971cc25b3dc4ffeda1e4d8b7e2023ef2dc0980f57508f10fd7adc3025c0a76d0c64a652a7b1521e38be2c9fe7f8693daa430e7793dff4e10bf60459c78c4bc8d010d2d4e608d0914270e2971b45193ff86a162c23e9219fe80a0b11a4da5923693f6e5cf77a059515ba76cba21fa3097edd0acc00fccf0c1d36a365b34535f166b92b9fd8c2a54746a53abaf4d9b54b8136caaf7c798b9247b736bb4d6e666c522d1ca78bc7f93271e69ca9eefdff0a2703e9133adf813e51ab730efc036e4007e2ee71bd41128cef5843407d0aeb6ed3ef7a1684b7a34e9228e0034bd8129d7492d3cbda8f8f394622159a9a3e294db78a088266ff6e17166a8bde7868a170e67e67ca0824fa12ed250feacf39e88e8dcf4419e6e87b9c3937d3f6058e2b109dd45b5cbaf841cb7a1dbbde35418d726fc82aa0308d4f58291027af979f16326160a031c0d1fdfd66acd85a317b894e1b132b9320ae88c592e9dcc9fe030a64cf4189f082d85fc2a13b562e82fcdae3b0a09bf94052235ba61200bcb1918d85bb682b8d23c308e28cd66db841f00a5a0a800838ee73579eb458d88dc73e8ff91a2e2fa4e871428c4d4cd102fcd739ed8e515924f17304ac8c24a5cd3adee2d98b5fb929a6fecf2c08dbbd05c4c6361ef31f82b68789a58d2ebf95b7ca49039f79f166b3e750b6de8b81266c3c58beaa72894f045b9ca8c3dd7c68f505d8fc3fd48a1a3eb3729c704ae34f6af6022ca0e813e43fd31f839282a1ae8a3aca2690174b99162e45ab61595ff6674d057f8102f1231127a6b69603254ba052862b88f63cd2434fe12a16676db674e6fc48dfb5c0539e996d3c0c2e70e4aa4e50adc28a236432eb2fec310da62e6b203aa2d889c953c32e7820fff7e778514bf88c1deaa35e75b30500f82e09c01d99775e9a80cac617398fe3ef4165b554358a16bc1894f0a24fd19a6cb2cf5e8b5e27f17f4f0edbb81e495b4a1d4f38081a59fd3047ce2893287a6b05644ebaa1b9070d42353d597aecbcf50ebced38d3a18146e0e74498ee3b288dc3e102c8b491426f925803adee5a3f916b71859d68f369ae712c2f417a542acd3160409b4b3748f3d8bd12a4bf2379648fac541459d700a8cb832a0faacef66146f7bcf515044fcc392fd8475a13e8be0d901c878cc4d2292235653f5e40843eefba83af0f4892ecada48c9627321be406cfc8e48cddc34d965a99e4bfe434843a5772d0e64fae665f3504c5be59f16ef806af8307138cb1e9799d9e8da7a2d58ca0877357cd74b15dcf5144fa5f79b0facdeb28f87097dea00dfd6cb80dd3a1ab77a1fd36b1c6a6d7b8256007d5ba45764fd6cf21bffa0200b38ef22e87cc3bc909d634a6a65d0a14493476d8b3ab3196ed41fe131d3319247198f3c7cb23a2874d03e3dd22d767bfd9bbf7a51f963e3e741990de69d63d2a8d9ae6165187a96680703a0029ccc1661769bd09c0102ab9b1263d863494b8955933458b3aa408bde335909db72ddf3b96db42b30dc369d582a5cf55fe9ea3897be69bdff703cb7b058c29ab4be851dd44317e980236e0f09067942eccf0d357a89339373bb9db786dd339bbd54bf25cde398c7f84dabbdcdc7f745daca5e2240e6d701169193ee0e305493bebb19afd56ba2fdab98b6936e2acd9cea6b80e068658212429eca5afabe69a14a714375329cb6fc9dc6a69d917a1ac5f52fb339e7b5d3b1cee650dc3c5e8908178bab3a575abcdd54d89745e81d1697ba7a14a3f7f637a0b01cd4a4311097aa5c87fd1507256cf456f0b219c1bcd348358003c9c9f3131b0e89037787c3c3eda5c5cc3d67234a94172b489c48437440d365341777132a24c70f9fd8e61cb1fb73cd296d941fc3bd7527c838ed9b454816acfe698b1af194de51365b99bc91f40e2f961a158fa5881dcab966558865876feda54d25a3ec9046f60ba1f5fb85c96b2d074bbc54482cfa21e680ce0fbe816365966ef9c4646cd26b90f35f3b0aea737991bce9ad37a7afa5ec359d4a11437330ab45eb4b4b44624bbe6ab69e68b6afbef05d905e6ead77cd0f8d11826ed89a52664934f4dd544c64d22b6ecdb7f579edc7a6e8c6a0eb38b0fd47e3db4f6cebf8820e40ce1735cbc4c811e3eb269dbadaf0914fb287429587755d6169530010ab69051f9a5d99cf79cbdc16ffef0cb1cdbdf4de7d6f1f3a2b0b8808c33d9b36b89f53a79d2741e5c5f977aa156ae74358d8bd0cc17f752bdc7b06869ebc2c48dc8e191d59990c129fea3616f7e70d19fe7bba146d7afab056f8610ad02dd6f54679974545281446715ca8a55d31fab409678290da677bdc27769f7c8b0ba51071ccb6ce88d8a07ca64a9cbc74310d3c4fdb6234c8f66ce7ee6ef6b458a2ea0a637087ed031bdd080e6e87a935352ad4fecb3bbcc03fd37fc57ffeea0e96d025b8cd6668e67154ab0c4a70b4b3865e3f76381f84197a3acad3ce7c37b1c91fd943da2155fd865f902edca95dbe29f2dd2d0d83a8a9a07f32304391c59ab77844d47de9b707dd479f60e7cd71d7743735ab3206fd3e51b760cc476cf23a550c6ab6f5aa832981165c5f12f935594e3de09a4124cbb8a066ed707f0fd330d33146f0c15421ea652e78991ece3739ea20e5328b515696b126438dcaad01c7df898d180d4128b4068232e529fb5b034c291903d7401d8df88283180c6e942a9d8a6afd09daee45546edbaaf8034747993299d931b0904bfbcffacf4b62210fca187f6a38c50e6f90d9f3d0a98b0c510b0ce63743b5332754570d95d31359799f9012ffb3fc6a25922697d3bb3b33c98a7218cd21827cb189a387c6532af552a45172c1e8e90cc2b9380bdb61ed8dc940297e4432c8f82233a4cc35f1657c7d6fc9a97cf98a17ff06ec704a08b7c7a0d977cde0c8c0c7b7eb51017a8034f8b83a69f113d3bb9253a095aed73996178ff93e0bfff25982822651eea71625a3c4286446e26b3d2bfb714f04b0cd0df23f53542427c1815aca69114792bbd9bb78e78d1c99c499f1a00ca47fa3e1813046d6ddd9391eec07a3a778fe2b23d6dfdb9bcaecad6563584626b226a3c1a5e7810825ceb8c4928691430a0c90a728baa2d4abf0fc9869d10d99eaaf76176533f94d1c2b00d5edc296136ad5d8069b2d089fc9ca75f35322b0fd4308ca7627742974b2442070ba9a97eff02e6b13431dfc023d9fc7ef1035e5006814aaad8fd2545fed6f2d0f6b43831dd5674f2e324fafcadfe1029f7296ee735593534e3b1c10c6bc617648fb9b7245aa3bd7a4fde3d374ac4bc0d8ba7827c47d905f47ff7dcadb86bf2b8bb5143c307e441b61c5fbfe81f30db4bc261d6b44814eff8221d77d24da2ae8e99fe5d0dd199d642c1eab544098a1952d24bb3daee366dc514a527e580986cef09ee49e8daa89495e69823b0f2418708c64e7ed12f9122a842bc9d0b0e4b22575c89ee621f44bdc4a099e483e91293e0c430bfc2c4d588b11cab3436c8bcaf8eb04b3590cb7c339c5e6898841017bba24ecf057abfbbba3ad8c988b0525859bc2146471630cf13b1d25f6363b089e69a75097cd13d8ecc8cd82140d12aa22bb26aa8aee149876827b849860aaf70951bfa9641544fc19bfad459a43574042ee5cf3ff19c58eb1f8cd460eb8c7639841317b104073680e05e5ffe57917e515c0c7244a986c9673ce9306d2551ba140135ddbfabc00f967f11b011617c7e748cba88b641e7c577393a04475debceebc7396dbc17b191788314ec8fb3d306138acd6eb0e64a8aae65491912c8f94b7e1edac5ae048c0d639a4053f8cf6749f47564b3213c0b0f1b8bb63664f3b6f83a8b431d62ff4e21c640164cfd7d0a0c69b8bf7a5be1b619478ba9f6e5997aa5720135e067da2b73e6a0f4b61c929395b79cc0ff6ccfa2d2a9b59b2470978c3b12549f64b25994e1c9219859789dbea3537e552dac057f50764d0d1b87bccb182320ad28f77417717686e7e4930de4945b093f7e8e15b9fa288ae5dab703098f957e5d755edb73c820f351072ab57078b4b7a40df29f16a0f07580f730af7cf5b3f88deddb3d5586f9da0909bf053ae8e0f7972153f5e289ac1b585dae33da6097ccb19e5a67c3c5e469949cccefccad7b4500346978cfca31827e3ac2ec89ac95fe1f0db748a2df9c2c7d0f0657b28d8f71dc913167e0a94ca272d87757ca0b615143618c23fb2de0adc343164fb23b1e14528bb6f0cfd0950cd3e00b3ed56ee320c6d68e7b91e7f9d965ac1f8dd1080b450895b89359a695f5a09fdf9774992291bfc498e2bdd8cb8c3b4531e9cd17364674ad33ae89b313ed7f246826d668ce95bf1feb85fa7aafab215b68d039bad17f71df219a1ae4a42ec6b8b8e62293b149c48ac5adacdf450375d220265489554753dee2c4552318f89a0451423654f91dbefeec7084fdcc17e929afd01f80e8968207f6eca592f5b38fbd2c8a20868ce672a21466d6464194f667480ad5ba5d9d6320ab4f4df195f66726f12e302398ac5665ced4444687bc13d41fdb527a1ee5a8b1346a30979a4076800418febdd6cb43ffd05ae2b30ab520648e3843a3c64c879d9cb2b7b254cbd47e347431b6d4629ee4eb5ca5045dd118763dcbf28ddd4438a91e8cd49bdf26a97aabe57d656551ee16685cf3d212341bf2e0ecdfc5b722de81645d39f6a68517d0000308dd8edf09e0cebdf26c00ceb7a49ac0d33042bcfb4ef6e7c41ecce7f069bb700ea78d93e86618fa795298a2d4ea37c5c79fd7ea860b66dbe8d518dd96e4d70841bae9989c2471af8a92f1c76d8dba5630b0e4aff48f85f7d186088c6671e910c08b0761f9f383ecd15e87f539c0c6924189a71d412d831b307fc4555503ec088ae81b54b041082f6828f6e849fa8ca2d7d9fd8f417061f617d3c6d65d5c84abd9c4f4f552796ac864c45847e30d871d9f3295da53db0f5aba35c912fafb8a0dd79765139dc93b90059b9833fd17d69fc69c5ff99452ec457aa2c55f2d5793b98b1d781b84e01918e84502135a899892f18758916c99a7629742b05e7daf4f124560cba59f7af8d4b789c75981adbd8ef96fd2b5bd8411e2c99958aee56603db7a2592816d61479ef53f12f75cabdd764c4110d42eb5055b58c9e1e4aa7c17149bf4e6c271115de2dc8aa0b269c358df0d0278dcba4ffcd9769a8c729f44234204e997c6829e4127bfde3980605f2f45e9dc01f4cd4651b1a934b479d4d0c28bde9cc81f041f5b0b987afb99225b9dc4908b635dbac4b1a439612dd92f0f54da12c4cd8fba4ecb79727160e3a85d04f3f0ebccef99a25e10ca343347aa179d81fab6904b50742dc1d143ad3af472fcc89020447e78826d4df8b158a444c4a6d7a1ae064ea9d2253be666ce6502c6b2175c127dffbe4e58574781772bb222cb35230fb29506809c5f13f51871b5d8e1afb868be0a2adc45b4f32c2d0c765a4afabd7854c71f516666a4c3389ec6d8f3dd49b828762ce227feb10da34099c4b05f50b1c0d394e8353aa194b68c8ec32b791d293ae357fed22df6259396a6f891538333af14b4aa042558b26515bcd94fec7b18c4d717b6acc30c793ce15d990eee414534e562852938b36af0b5678d099246a3e3aae1e1e9c66cee708feda7ea224cf08cc03141265961c9f59f39452b8c6d8d3e9878cd7543d661745896c3a08568db4ecc73a004ab244c790c91a005400fa61c4d98f7f0b58a61494929d5cb590e2787d29f30975c33e4b8a8bdea8cf49b3c14b5d3a8b7b459cff74f677358158592c4e5708bd8fd9a7a109eda4495c89608c1f1edc4d4c916a1759587434a0c13fab2847fad0106dec9a7cc0a5dabd6ca3f466d8967e1c9a49d47b53f58e6f242233bee5c6df329bcbf450da1cfd14d1c688d2b2bb291c12b10da33c582ef555a5ae42828bfff795a448f9d4d08b364d0537ceb36d5c71633bb426561dcebb2944dcc195a6e36d80d0d02890f05cd1b6ce8f6aff119850a793ffa4bd89840e4ae47be3c4f87e48bd6bc9a98076e35ef278ac844766a1b811987526070acb9faf5eb61ae0d66e6fce60c3375f276ef3332c9498fd0d07839209079e7fa72c76d1460cc937438fdc652abe35ff735ea159aeb86d3188297c2c12a5f5167b0450ace0f85e08aa2d3bd5f465e8daa063f494b99f80c1d8a395f7c16a73fc54e94f837c2889cff49e0a292a0bbbd17c5bf71cf7165ba44e91982477d158bc06ae453c152dc1a2d52cb3a816f253af19d6741d733777bf77b35bb8b8b2a46441a38ce3d5fa41f866fc77af07a0da09a52e21166943d9cf71c645e66f5e4c796aa0d83e37f0c74c6c378f9fe1b114feacdc8560935389bfca49467ca222afa2b6a21e2fc03a9cf8f81357e79867fc1d8dc070210f4a30c3377836dc02092e345822f3b33684b6ea372f4f4cb6c29f6a7b2f72061d4963c076476acadaccf3e37e8e6d3710345b65e633a66ef5a17d50c6d8e015e57c4f5d26a307da9e6170a74c89e04c2b8e015c056fb730e738b4443ed54759198fffc9a655b4077b77a8a88bbd05c65fbeeb01f8030d63e9f98b91a2567632d93520534237eba2f90456f4a3ae0812e246cb3e702d1852fdfb0ad35e5d64ce6f2e7189a3a7ef140e4897afddcf7ac188cff1919051fe2fc6135de78e714d6a6e8863dc9639348d7278588b3c53996a2283950e1a27b30c34aeaef656ab367a794b8e93c22916684c3fb8ad64963800460cafda291251559d9b16b03fef972832558b46eefc11e956f8ad3a5302caaedc31e0d0f0ed594e7fa7467861778ea6ce07da4f15fca65d35cff97339df7710983d51e1ab70d2080aa2d2c05facff1d1be5db629a7efd72c739d251e5aac600ca79eb4414a2e619457c7c831f77d7136bfd47092c2e2054fa00f70dd54f5a0215299a6c9bd93314e2686d41ae8b14bd740c349a6d2013102bb4d5469b97d3761ec9911c3a8433b77ea984a578bcede5fbeb5d32665326cc9e6abe2b2e3f04a6cdd09b6200e9733ae1e3a4dd5ec0eaed2e701fffe8b445e11d75a0185a5850f17ebae897c280e5d40f824acdcd95194772bdfdcf170a517f00ffc5c8b35526a2fea806108bbe268fe2f73188cd293cbe3f9c683af16848327c3569e2f36ea46fe4255dfb7eef29ad63f7fe44cc9f10fa0ccba6dd74db0f000c45efe50266075d62a54d5b84bffd979f8f22972007a3ef5892928e12c883f0f9f61d00762f5c49bf11413908493da16aa2d23d29d291c9b9ae33ad0f6795cf4a7368d358a19798ff9ee80aabfc14ac1e5002095d4f8307e01094f26981991eb6093be3f32b423f3b1c4c6b2a162480c845e24c2180bd2e2bed2b1c301379c2d49bb529a99f6ae2a4c46ae1fc1df7d0328559cb7a8502fa5fcbfe0f9500c71ab8bc3d468d5aff8ae675c75fc9e43ee1949a2c1868e12d07f38ecf90006ffa8a4cfaf3c8bc82553517b0a42c71f5b2463e00dc7b11c75cfb9374507cbf07819165bf657b1a154eb0b899cb8aee2c3bf58b076805454a9846d80b9e6ae85dc88289a0356576bacc2cfdba72c2046182e6542c5e6ae0bc796540396e73720da3c6b6f50bb37f07c856233a7f494ff370f4bcb20a94a8623abd23f70d3ffbe0f0ce7bc0bf2c120a61be674e3abe64760598de6647bd4ba8a7e40e63af33242f93c06a68ea20d90b937403a6f37cc47faca5c54e364b5b1ce6f9f839a35bd8f26188f72ae8e8362279e12106e753896fecb6a6edea2257ed0288e8ce07af52ca50950587953a97c686089c0b08813076750640327850fcde1fdcffcf00ea623199d965b8d36bc63cfb1c212555a0a001b32ff21211338c5320e5677b60b122c1f7e89e1dfbddd27c75d2cae6a5c2c07f1876600eb018f56044a11dfd2eb8fc6af49087b3a26f3411cb897ca6bde92a68150deb89d4ddcf8a26a432c1da6d414d4d4cecbb920dab3381a415a056e66e025af62d608aafa7ac4a198e07fa28623797df8247df284b11841af3c1739bb1d7b70568c2a4761a2975e956efeee79a4b14c2068e0b876e83b0062d38a113b84a663685144630508c36a1eb10598b69bb8f263ab3ff9c9e5301edddd898c5cf2e71045509c05cc20fe034742df6effa4bc08ef005b677b00192f84e79a77311c53a0a78a039a7bddd703a3d5da545f0e611ef8b89e942417b8b3ad7231bfeae60f1dda5c0f978245a639d22bdf16ab78ca2d61e4ad0b90fd0d410fa048042f0fb8f8d52bb9580dd32e71eb8be8c5c892fb4246b13e19322f2848f28502f64e45fb8ef55b10e6f904819ea9cf95bbf5112abe7f57d50d48aff959657122372f2aa1bef54a700a430b2c8981910aaf60ff23e8e243fd9d9d952fceacc0b3abd2ab5ebbae17e56fcf66151931a4f11fd934d45cc8ecdd8b3c2a60d20403f3f8a16d6e54513e96023f693644e6d3f8627d14fb21030a6774ca86453de6a6cd9049e08f75419b39b59851257e7c9fc425870fb76ea23b557266bc0e55c25c0114e47a0d33ca50bec068cf4fea131aa55d7238754ef5ad8e66337677c54066bb10cec9981d77927b5a7a237a300c4ed41dff61e3830836a421dcaa118e87c881cda13cb25d831b3109dd97dbf3f59e53be2d29180ffd65616a9903e0f0640d21068d4b110590b1b460584b54412951f4d96a1406ecc89967d651ac65e7bbb29bf28deeb388c97d89c55cab8e612b6fe82df958422763461a1cb9411a7dd8ae86dab11b5edeb66bbac94fe5fd4bf53d8bde06519697f1dd260b77680c4700e5ffc5d65c5076016726cf87a66b17e78325c28af3a86b1692e5cbeabb2707e65495d4f2e67ea7eb4728769815de3581a79a14ebc6484d8e60bbf04b3619da590b9f0b3003315306831635cb5fd7fa34453e740f43173050d19a5854533427e3612e159e91be2519693a615f6686f7332338a4f7ed56a612e23292da25852ee31c600c1bcddf80185b5504beaca0fdb5f5872064d227b046d50ea665ae357bb30e39afb751af87b2e8b8fb82016a06d6f16eb6a7b9d9fd31639f5567082ab70e27d77229bef5c8ba549490e4f3c86e25ddecadacecb08fcc7379ecefde7172ee32ba662e596389c7a31e98b65f97c1b33e2bcde15c5441bfa156b2d811eb358c3772c5d199dba4969d506c0ede02e51222a8267520999505504f166dd7ed635acf118169c98693b7a5a5409948dc6838c0b76ec471ec19e5c7d2c07147027a06dab9eb3dd55d3a66f55ba3937974d8a1b6b306a62d8c08c01a6147366d9153b12689cb6ddf3a767fa030d0e515aaaf9f4af3abf8a34eb54cc89e6686431dc8983991469598fbff0ab6f638ba56d35b5a82b6bef09a7c1e9e542109908badf0bb2b1717b363bf479351a7137fb1333aa3f72741750586dc7de4065088bb86afdb9c19551e4bf12309e80d451806e48793986176db61b0b425e6a708e41fd72891bc9406c6476b47fb7340336919a65ad47d37379eb2a1cefe963ae25101c92110baabcc100043c095d77a8ab7d7ab42f834e65c9d8544f4bf8c748b5481e07f6f92e5b6b0e4d8abce5a7a95225e521ef069155a77e60e6981906c2c5e5a2b8e7e90a9ad11422c8a75910720b81b7f724931afb026e597c3462fcc4779f3528795f149c3a2070985b20943cf1b9e8f9e39769acde920bf205b93ae8ef53849a088fa047a8df6f505dca4bdac03a6d68c5b96e450e8c8b5539cf0b3dc2c8eb2a895d5b1d1281f8d77c64e25b72e5853decd47f79a2a29fa3608dcfbef4356c64c89b497a1d0009a85e8024759c355c2771bc2df8d53007f65e26b28e7a06738833a89f7cde05466adbbd1e1ef75aaed58f8a04b14e9e2cb56d2e96fd298fd8b459ba400d6ea7c52217d185fdd54bd1cacf0cd9419ef7f7fb63b883dd74154c87021129c927a3d5e045c1c2c77fc79672bc232d2050697d51b49692cfe2db80865ed69d2c43fdbed136410a35a106e97b17f8990108115d9640612912d80db66f01c02cdcc54ca929f2e00357300ddb6c7f70614621746005535b0871d689e5d39b113754e513409c2dd3bece9d0c51de31e213f246f950d971256e795533a73b1093b74a995b4e7db79906c37b193a5726836c6005c6d4bca94802e6b39b5938fef3b272623cd40c6896b7222883e63bb42f49428535f42865f960d932e0d1e9f066e26b91bf465115c91948d1349c1db440cebb94052d595f0a915a5db0ce5c84860aeeae21231671e4b46b87eaf6c3a66121df72694b6374b010a5453c9c94313975d31b9a8dc7dbd781762698f37f9e78f21811580881e2ad0fd7d284b71c575c0fb75381da107f4070065376d6cf28919640b9d39c3a2896515460fdc4bae258f56ff6af9ff85882cf750034497595e56cf18e0b30119c804b184d04f23817ebdb084dd019051106c789facc82bd5e92c1bda07354a2f85a7dbd2ef336ec6f29c184589dd9a024ece4d43f3c30da93ae405f28996540415eaf79175829044a0c247960ac8f2fbaaf4d4eefaf83f10fa7c94161f6905cdae3cd7b0970864384b6fae2b4f71c7ae5c1a94ce5bd5713396c92bcbba78fc86b39105aabaaedfb3b6ef7ebf587d5f892e7a0ce4993d80d7371f2ab5973922a222653ff8cb3ddf503f80dc203e7188363296374f688e5f0a2b86e692529708a1c92787190d29fcc91462b1b5801bec460ed265331814e0a58dc6a20035b87fff0f01fcaa0f11dfe0587ed3d33146f0247df2ba8c6fec7ebcd693b437f09bb3eb2497fa6de75045cf5f4488e2a346f4a5bacdaa937e0d1f65b18b54fbda51eb01f4060e04b1e3e128701b93c632930cf992a88d89b60f01ad4d519054a1e4aa66915cdb82ac6d787732d33f3468382f4aa2d03cb833b4e2e10f411ca00addc485d2180a883dea10dd961ec9968b748d489996a07d4cc539d9762faba2a7cd2108757578f56f1b21a72bcb4824e75e15fa22450a3bf11dbfb6a3109413952625fc32bb8b2d968f5fde336bb3b2aa9ee9cbe763a03aa688b3218dfade3dd773256bda171aa6506166fc14e0bb8c8628c02f6160ad133692758f2dac993910f515a6b301269b3ab4729707c25cad8ae76edf4f0a355821da3b9eaf8bb4aaf52dad63d8c3ea0c50d72ae1d54aa75e38d20f2bcd45d59438df4a4b66cff54c2527958a4e50763986a649759247c00dabe76bb615e9ff0249b6a5c7ce3c216f1f424909c710c1317842eb37647a5d88a0904a02e2cf07a636dbc327f4e349806ab4f7c71898c84dda904aff5f4d9e39b7a5948e708ca65eccfdfda6430d163af0a299ae781e453760a76858f46f91e68b3dbd1a5447ba0869a110055223cc8b01fcf3c15d1965737b976275b49ed775edd58c830ff407ec1a90b5a4c6cdb6967ac0665aa2f64f83fa73fd978ce47f01dff86134caca0642ca2899b6f8c00d5cc92433e278df7b9d761a5211982b86863b767396f10c264bc134cdc8bcda6c2d3bfaf265f01579af22ce401d0c7d53c3155cab3079cf7ec661ce9ed7f994d884647f72bf4fd42f181295d4ffd5e2607fd2b3fea3990b004271856708b4477c7982dc31721a307e6cba5abe380504aa83b41309f60a83b42a694200fe87680d51f3dcf3ffceff18b005059c5ffc7ab885eadf8f93132a96213d837964c93c5c912f801d9fefb46054f768c1dcd2dc3b73fb6d20b3f9ac919b406f9b3bf11f581f5d8cdf46329170c75da17a5ca3b782f8c5d7a38b6181e2c516e80d3308b9e7cdeb449aa6ca147ecaa509341967bbe1d4f23fb2e77e665fbad7709809043a97c87d109bc85624deb8a4e3b17bfc4f2470e35d910cfcd7c7f02aafe122b1c67399764b7bd5f889ec3613182f3a54e68d8f9e40039c55ea83549f6819c3abd8a751e3fba6748f60296b56e87c82db8198948478a7128bc141d56322b19ee58d3aefadd119967556f25ec16f4118d238c7b39cd121c3665f56def97aa7c55682b9a260ded12f88f3792a091c688f3cdeb056b477a9a176d7c56cb2281af4e457459c5e493e82d1f92ad5e5359a3489d81fbe063a26014ab4f53409df97655d5285c6714949e8bb5822aac7e04a79146cf70dfa7ebf7038185576a03cd1e1e140838503f3b944ee490e2f60c093a37bb8a93561c70d34ecbd3709c7889898c3d86c0587c58dbfb555c9be5725207fe9818c75d168bd5c07a0c1022bddb1a1fbac733af258cb67b787a51b465a8a26acfb78c45af8466c3127ecade0fc205353b78fff48e8ccecdfcd85c8c599727f06329e1b03c9559e96544d93b8acb078cc96d817906ded9383c5ba24e6a5ba1fc4a10d144ba6a4da26f3272216bc30cb80b28cc736f9f5b41b25d953035c128d22a67bf2c89e26288eed7a81a17a17610dd098ae8cda5980b7e1d34da4abaca70c22061dc9adb8dfc238967c53a596374bd27897cbaed5e75a93e54ffa54ad9407a7d588e2f393f24d1abd38753bd3a4407e6b731db49d89848721af05d9fddcfc06f4c7398b27cb3f4531636001d50244ef922a06e67659c1b3be424a0711a5c0c331a8da8c5345bf7c394a3fc0856defd7f0f39f18a047105e1c22a8799633fde232959286394c9a76b5e3f87d6cb329b65683fbb674e254a487a9a72395d6eec71012ba52168596a03fa130d582e6e2b685ce75833a13c67745cd0d22bc06f06ffbc406a3789b65abbb4a10bac6f707d5580f991b38c528086aeedfaa719e1c4ce8aaa30c7e05b455fb11635b5e373644bc2e2f851d1c79d4ffa8672179136d60f141d26151013e1923dc021df8eeadea39918fd804c2abae5c31393ed772c6a0817317736b8f3be01b1cbb944dc62eac4746e955f2bf2eea954cbae2083d8a3183ffa5f823a1ac707bf52d7eb540e4c206687373844294fec6ca5795f0db35482863c944894e1ef5781497474f78ee006b5af413903348fd3c657ac96bb9991f1c555bd46b82382afd45c41be9aecd7dc6142622605a6ecad8173e3ee831b8e8e1122c00ba35d169fa43da40292fe210566f94f30837a39b29dfb62d55124c7de753a9838917712d585aa9dc0d4b521604c177b0c87600cbfb5585ba851e7f3c664f0a31ee6354b971d0b1034df6971377175030324103bd0fdfbc688c28394283e7a9102137e8a2acc6b9b32f5c8eb85134bb084cf6917107eaedb49d266e9f6c9a7724986fa140d23aad9041ee6b8a48f5ddd421e1b65025d3b4bb3ac0ad2398ec04dba31a40a5cd1c2790aa7306569d3f1be269f9784d8a35d90dd5669a14916de663a279139efe1839ac391d58322e83862106ecd45553b6eeb27faac3b67e95e265d87005291365362b56cebae73dfc4d7fabc494d5b596c3df32fa2b39672cc6372fb395cdddd32c2c2b9bfb9d8c9dddcf820f3af1ebf478e12039c3d11221eb3a36abd9821d2fe347282fe2921c16dc8be510efa1df8c8e1c426828207f262533adcbed634c249c327ab9ed2313ba017d687b203e7b3ce75e2bdc62f0c26f5c11bc9bae2ea9a11938b39be7f32e3b62656fc047234143463bc38be236dbd05b8dfd67988bd4b6c0c2529f52d4a0183903ba6965b0dd8e785d946fcb9e46ccdfb5e9b8de62520d56c8a49001502428480a9dd3f71a723edcd446f5e26bab20016d667817ca84864029c100581118bf9c291913dee81d8052d7bec7aee5880a08a362da46c3ab936b995d00d554091a529aa512301dcbcc64068cbda34a9536dd17afa8fa62cfa63b790cf48c8a570c21cadd882bc6cdaba96c449af2e0fc04eb802e9db6026905c6909bfa2cd9a829fa183c5441b24a5b0823971eab90ce62dba0c7ef0c4094160862ae2da72b70f4b56e6dda63ea5bb22b2c8fb49a258845cd2c85d349daed7f9cd7223eb8da007afbed7afcac8614382479e32002f887e4d3f5a9b01d1d001e79fa640ba303ac71708c2aef0dd8d22b403c279eaefe78cedc0c14761fe356253a108db6bce30513ffd1664fd7449f922bac4c108f3148a558f69cea675148cb02f3815944cf9392257feebdeb4ee69c6c8b8ed5369c5503624afc8d264756f2cffa5988093f023d5e7dab13d3d70041f93b0859b4aa9accf4a940f309a4c3992c4ced3a08a13e790f538e3e23c425194ba73daf459863615fa809c93fcf0ce04d87adb593cc95c34e3bc111000cc2e1be2af3e12430031824c5fa11bdd09277ccbe3f859c5621281036737db0464dc628800afb4b877fc38b922cef6304987a8a6065f4e2042e609b13bd058a434dee5b830a589e57ef83785825bf2fbce0c8bfb44309854c2826a5a0b6ed4af467c374a65e1a87a36bb7c914cc386815ccc7261ba462382ca2388aca10cbede7f413e19efff5eef4a5437fbf32a83efbc87478b0da85da0b228439b2dc42297d0cae19c1f10f2836a8f8b206f9fa1cb8be83de4ba7d1e89f44d9a0b43951bd327c7cb683bf0795e76f39f724cb38694c3a7dec588594459750afe4834cdee0fc4339e3215d2ab31bba961effe0a1e862037a8bbace276491da52a501ee5cad7b6d1fc6ac185873053d5847c611796f65779734454a8c7ff7cead8141c69c822d9397691403be1ff264dba96c6215ea19fbb52c7a36d2628f0001374740362f3d14f533102e03669fd5f5f025daf346e1cbf38c79e32123d6ebb1dc90a655c041e07678ffdf8e9a0f1123875db9009b80b8d36738cf73d434e6a072bd3bff3ce89ba8b0b87275e9b1c951d95003b0e160d9699b1857046040cbb86638fa4c0c36708869022a740981d7af887244853194af14bfbde3795397d120ca5ca8beae9a8c40957ed6ecf086d5984d1b68333955852eeb9c3f980e94940a4fe8bfec6f16c1e2e1dac08e15f0b2b66a9991703c4ba1b80c6b7e6513495bd9054196a1180fbc51ef20b261529a8338ff0bcec030355fa3da0ddd2294e5684173929c6a5ecfb0635e459607492e15769df9f5324f6c10133183625f6428588c884ea2b02b40fde66650d3c6ce965c048f30df6d4456dcb508995051fbedd59764bfcc1fd730813f4804dc56f79a71a881474fa253e913abe8432a39c078fed5734d9a968cdd411864c50cdaa9f1fdeeecb094e9f15ae793820b9047a4a2120a324dfbaadac2f817f91365bf11bfd21d51564e900622b3879acaf18a67b4cb60adeb23b193bc79fb71bbac1fb82fd18dab68f4a4b24cb0b00e122bce199dfc66d06f899f46d0e65e3f03db8a92039f0a0767234f795fb6e16afa679720b49c90b33a7c61b1d9c0b576d15367cd3b6fe724ba1f7923ce5a22329076cfb296af445a1e93d7d96a9562e553bf48e54aa010c1343d2fa0d2980eca5bc1f916b9c56b0d0ca8250afa125f8e2279812f6f6aef320ba5c3fa15c560f0c0162f844bf72b3d63287db3419550c323ff01631b878c2e522ca78e845b25976583e76cb41fe2669c7b03f1ba36cd33f4f71bded1d7a55ed1505f58054772e3fcdff8cd69b6e989335a3ef5aba5226aa7162f8c086df83977acc0f9767ffeb0281a3f0856fb1b9b40a92f0a29a163f2e12bcaf8a45db8d8e6d2789e8725edc1b3040d852ddefcab7274cf76d6cf463dfd455b1d136261b1c3425c32f2f3bab86be1537f5105a9a1c20ecd77cdd013f2cd40214f7eae38e6fd4dc13dfbab9c8d531c242cb5275a853052eddcbe714f4b3d83c19f8e24b1c2eb47f4ab2fd5a1f3108344f9a681493cd90b378376acb814baad1a6e6c399fccbd237576e61e4a43796444ed927fbf6e4bdb5a6beb8fbcbaa6de375686b780b038e2e99a0f4e6aff5620d78f3a10432770231023febee3d83a0e639bd1c570dd52c2294a877c9aa2f686061306d7695db1848ad473ea267f26f4236f506772c8ea714958d1b265c3bb215f1911d3cd75b3e5d8db01088405d3e45509e03eb1953e3a0a08c8820ee9a668bccb105392d5a80618780c6386112ec37aadd6fdd72bad4e215f6129baea3d7ac998f36fe217105e81ac9d35a6db2c093e538957423f6781907bfb290a34a6953abac7e100f7cbba09d2a374af0f851c53faacacb9f97f34f03e8d4ecc4bcd4b6b606c18e7069f45f6c97c89ea731b1f9c4a1d03e567fe272c4a2a07c259b0516fbfca7b1c2c368e7af2bfdfc671a88db9978e87eba66ff3a069bd478fafbc180fbfffeac6d37fe602794ba4fbca37b4703a8ddca8f95b28344fc1930f22ad471dbe98f2ce7f5e69ac33febbd9746134915362970504bc1853e6895ad5e42a542bf7d6e5c07ca3f045a5bf28ccd760ca7165bd030c003a014c1d625f37cebf54246779ca56b7c2d7fd2a992649864346c7c7e86ec5ae7c050dbb36d617316d7f98accc71bc4e831a8272df799d9979bf1e0d0ed85d02cc83250ddef4b27d994b2ad9e9fb7f8c7b2f781cf8a57a8f04c890d561326c2bb10f809e5977ec0cf92d567994d7bee0f257fa41f11ed43342cacbb27bbd3776ad2adb3204a8ef809ae2a8f78261f28593a337084a332c68834f5e23305d4c20aeb20beaf7bfa67b5ba051a713397140a400191b33481aaa3636b02fdab3a7312f6f7b9a51c0eb76d75570c27e0ac39ec3eeea2906488eda0519a6571d943584fa0b156af086b769d9797007a3a18fb7ad78ed6a7736239ef0d46308f16c74f630fa7057cbafe17404755b8fe17d7ffaebcc585f13b0067c44c6c3daa0d0f86b6bcb4ec490951c4713344441113ab929a870c3223302308ead082a0d7419c351a63024ffaeaddcd328d82d3cba3802485557794ad8a00d7c23ed94890392940e0d66b7a16308161f78bb5e6b7416839a2b4b2a7450d6ee39342057fac7f2b799e2a74991f64f5cb00ba0d8fad6eb81e56444a6496d2ca0e78921445bfee6f8425c663e22846d8740564b4fee4aa3b7e900d7e24f649925851f928e850dbd7ced1486454b11e05c8dcc1486539e046d73050abac6b9048835ecf82fb1fd9f85e662ad4c506d23e6aaec38e3b66e26ea69e3924acb3d96a1cf4037acef78dbb504ae4f7963a961dced2cc4251e170e934ec9498a2ea61717c9b744b74f65471d09f967b1df68a1a004a9f6ec9b5ba6b1ee76f470dee66bd59590ee78140bddd07f2c1798383bb58f059f3659eecccce924473bfaff665a039186bd9d46a690450ac0f768a024d9c719bd2de5049117a563f20df2e87fa3ec8680a9baac7c8cdbc9719d1bbfc08ce197f06f4cdc0b6fcfb9f570cf847f6fb23e971f1bc4389b6f4316e737f57f312284a304d670728e2bcbe446427d5b3b8af40bec82a59fcf633a7186896e49bfe1fba24b2ceae6710db1cf674d35895f2ead02231b284d11334d91bff8ea9204f01904680ace4377124c56a297c69de4575bc81590cc0579e2b45905d37e9fe65f35d03993742e4a245b3dd558103ec4db94daca125b8023f1e92d16140736a169f9d2af119fd793731d770639a9f7f8a82c0caa613a999467545d2a7a98f10c79973d717bb6f19240494b7b14241470b0752b71e799276ac308b946e583cef48da7eb0388265ed15572f4bea8774f83ca37f7659e462bc8c0c95e910b77323b7e5c8aa54b6e48d5dd52320eddf9928b3515dac84c9423cdaf4a8d8663b422ae30e5bbb2524a4cfd4cb933a033bb8674d9716dc519ab6746205b200021a35014714917a54f91ab04094d20556534bd08a81316153e4e090f47d3aadab921be3a6571f6da582d163c49454128a308250154106b080cc844cbf846514513deea3e412a1b794371d176a49f06ac36d5f6a1e19af5a3277790bdcd4b9b9bb98ccb834d4b2b3bc460a16234837b613fd949874c6641415247187d1e7655703f3fbe2fe116d5ad2c3f6b8fc788950cc56458cc5ccf1581055c8af463ac56b0bf5dad7643b996c7fcb5548804b9d1162d027fb48dbcb89c6a93849ae4f270f610bd1c335aae11c4202de9d7285b5ff1f268cc405ceb6387ee02ab14a19c3988de5193a56ba65a58144e6c2bef5b75fda0a417d6c3ee06081f9a1618ac2cbbfeb961194103d56d7672adad4c47127d6552414a4aac5c607868e6226cd676e7b82088555187e02be42388e6160ed9c6d6481255c5b13222b57da9b310d4927f2c5c958bb466cf87366ef06be9288b2d3b040ee93f3a57a7ca9851edeec9304ce186bd19f55d17a527115515b721b4688526455fdc210a6220a6825d2880d766a9d0ed792c262818529a02b2bee34430f240c20aa1e21ba9145991eab9ff001ce160aebdde41b74985ea4c7e0b4f86599aa3d7582fdf55f878edbee456ff409599a0b2affb97e2f7dde9bb63fe40dc0f17b70819f532379ac015c501036b16d20d07ed4ea92102ba18a67482547028b58898937aaa6a7a64f21606eee1ac1fc1f2d2dfcd9e4391faa5ab527bd5bc3ea779e878883d37a7c47944235b7b814d8c2a22232e714b381804b6ede5c4b2b236c7dfdc6006545c4b0751fee5adb09c91c63aaa59dc5d4557370b2d8c7d359bd1ffecf9596ba0ca1861816c9898f1f98c678a451622266e50cbd4118fdf20e3fbcafaef50887d280a5d67542f6d82fa1d71deea2e177dcfc865710a3c9f2a097f40b0d937eb79c20101bc28d6aa3e5136f10c6f91f3fbb90baf0c818a14f5eecb36dfd3f28809178d2c4de5de82995a75119c85bf2e7635bbe978c837deeef19a3f1c411616640470f361131b1250f70e62f19f6919b91ccd5ef1c22d931a49795693c5d8d4b16d41bbf57e3ae26310aa8f3d20a2180927649c1526564fcfd786afb86de4620ab1a2c445bed00bb954e3f3c31f6e11db69cb35f8dc225c0ca39593efce64979f381e5816477782a86dc271d90995d83f30be917b13f2f88aad076773067f040dc53878da90676130865bddcc2f75e88765eb15b915b46259b8be2af54df7b91dba26dfa7396c938a35aa3b7873b9b7a90d630f9edb866ad43edd1987badc7ec1588d88c366a11bb357902d41b4604f93e423cb29797d837625bfd6419c3bec16512690794802a446d671f2f868e7f00e486c43fd77e980e522f241880f3c71d3133d3c489ce4c957df225749138406caf2d8aec3d094d71cfc2e7baa4d09b41245508351b7718e0f320a45f4e1783c2cab5c6629d0c02efba152e32c31730bd287cfc6390e98730819394a84df7c919b9a644e459c66ae4b3dbaa024556c51f0def04eaf94d5d6ba46dba27fe25d60729f035e722b0937a3736e0d34dce937bebe9452b344985cb154709dc76fa7e53927e4aa44c05c2087de2434358d38a1f97a211e40366721940b4906424f4d51a1cf58d165b0c56b0a86456638bf9312808277e16809e6614ac18866dec1d77324878e54788803491bc439314589736c4278955250ce797bb12147915137cee9f97acaafc92e96d774891a32e28ded5552432244ba4e2e5acd837b82a0cf763f8550a6bbcb631cffb5775e76cfa258e5f7ec88da3e165d00922b59e2c58781d0813111e8ae4a663910b5c9fc6c8b8d1d36d14224af45c44abd9964ed1121b0eddd8d48048e6dbbbe74341c1a819db673a8411673f269f2debd371ca71a1c27c16a68171a43169a8d32ea4d1c8ccee21a6ee60c3dd042a10f7053362a60d8e90cb2e75c67bf678e75058ebb9912f5346fef5eb68de978fe19843a8e02065abac23d38f1616bb9090e7bf94edc9145a058e835027ec6cfec2d6d7bb7b6991ab42553156b69d9e12466a79f5f7a4d3b4036845e05eea2297d72ad66196b9d8afad86685ce7959613d702b93c4e8d639338ad034cc38596870543dc17496b335a44a1dc7ca3672098fa20d3f4adcbc4f1dfdeeb5bd3d056d0201438f5ad7d994ede594d562b19fdf8b5443f6dd8789ff8ebd241898967264977d099cf91972d90144e678d81158e661a96b99aff75898fc87d7b807c0c599600637fdd03e29020644c26c68d3d3bb5c4d6c9eb6e91bf35e40f4a29df60eaca1fc37cad6abdd5f31d4da8fe7a5ba3aa429bf6207fb2ef411edd6265fbf401f1b182ff7984430b206b5d5bcf2549914d81381337f2c53c147fb9c40d51a088c47f95600e1f06e68d424e6034c9a6baa1693394b3111e61aacafcde7815db5f020fefa4728dbb8f446b73215d9f07b02e1a9f9166fa76602ed9cbe4c270692924f72bbc7c403b9652af5d8b044bb51f375c2dd20ed828b79f28edddd54f457a653ca2020bc75e77c412f775232b3d47f35449af80f07eae906b07e3c3cb94255b68829dc88c3181bb5120c2b64267cbbb36e269c3ca573453520dab7216437d6653e98e7774ee37c8710b4e9194cc2f446b76e0346c5bb501790d5e7756d3dd551e6ea25df26e471fafbf6c4d141568db4e8f17b9223aef649cf871193d63bce6655399d11d40393a29ad7c191861a3d210eb8c422c9e65e0c4899bbbeb716340879179cee2d6fcdd90de5f616b284cc00081878f5fcb2f4de3504febd5bab44c5cc114906174189fe0b807761f64d2ee20a7c50b2a177fe711d8aaa2ae8c7556996a7a9f443fbbe4a014d5bad9624cc9ba8d81a07d654558bb93f84bc1b9029d5e5d198b16775280341387cdd24613e354acdf4d1e4451cb16a8048763f7d1fafc3fa3a905fa1c6f0bcf3a3d4326a613a72b2e0cfb6565b64b121254505688d8d5a6364ea8dd0a5625b04d8cfae562f47e3df9c235f351e726449e013d5e9a184408aeea5c33988f08729b650b36a042b4c2280cb6dc6c0928e0288b25e728731b7434eb5dfa74743d93083deb12b1edc7434a165f5720d79a58c17916de9e05d4f946f8a90e6bf7d10438449c5bbdd9fa6077af45d9a2ba9dbcfd202624bdc962bff04bb8a7569da8093a45665dde9064eea58fb43f9f3c5ba76fc6be42bd97687e41db61a1eca05f9d74663b54098d44db0c020bec420915e738189b36fdd00050d6c371c425cda44b3790f2866a4d9e8c5f787ffd18ed333236ec05403e52273a1802f55071ebb83d6c136018450df502583eef7cd11880d93ef26b334c569e2d9c06bb09bfcebb1513478cd88aa8e6904ddde8d1f0fbd0b266992d822f47014d1c5c1323690282b749f74f973af87e59aed5155d0c9e6a0a6cc6d264d56cebe826da733f2cc8f63a6cbd728e72fae2759762bd6a8bb783362000d3fc810d45714f0f24ffe4ef843045b544398ecf9236f922ef75edcf4feaabe846f5c7a081818c968250b4a3662e0546721241f0711df26947fa01db517ea542de66dc6d2f027f75cc5c8997edf6a47553e4efbba5a6708f35680d693657535990e9aa2e2b89b9585ed3bc62b4999116cd1dcb3da9f524a4c001d2efb3d12fe292ed811b6abe05f2a898cdbbba4539ff25020cb15500be6fed6d0456986f961e5cc5c0cfdecdd631b8e63007727aeb9472c578c4f124f55c1027f54314f9be39cb8894af5c7992ab2b6d9ba238671736277683a59edc6ecbb8987cd413969b7880600abdba52966cfeec7c0ca299fcacbb571ff4b475badcafd1adbf5e17f1473f9a070d6c7ceb2d984ce66350caea8383e962bbea07e9235158ce83e7e72700daf0be644ccd78cc2a1b788594ad9fae5d33014dac4316fb3692eec50169ebb0d6bc25da4fd0401de2842647332161a28a565fc7abc9aa9b8595794aac406ba8c7af8fa7e3f1c2bd84b4e739c816ef1e9194986fd7d7e13bfac01d8a179a315d6392bd01b2bd3395260d738cda905c512de114d097392b7e9cbef25d87ac6f6fe3264dadf63892bf266e1f6420bc376a4dd07c83696661093538f5eca562f5403f9bf8737bc955b2bc1dba4fc6ccd5d400ae4d58fbfabfc22d5ee1de7d62b0b10d04130b6a8554cfd7e64a5fea9565198e470b4e2b25900f76bbed729c2f495c37012c86bd3393cad86a0f3b16714992b27d8ac67010845ee7e03cf7b67942da591324a278c1823ca271286fd35682ff97cf52aeb58d6809dfcb6ddee8a5e81aa1759c0f3370531009643a9ea2920bcd4b824c9f53151b7a5b4e8c670036c8881d20223de366e9a506bb2da606d46c6fc5a7a2cca7955220ebed4cc669c2b5d911029a12ad2ae12b60a859dd2c53699444a0df16ddb65645a5ac7c7e88a65349b9af7956137040298723f9fd8409d408468c493e9b5c4016681efa79e218270f1b12239f35f6d8c77ee81ae171fa246d99a3b96e216af1b4a80c6d1613e343cc37c2c80f25cade0547170444022bfd87541c065fcf0df5a134a7ff0b7c433bfc3fa0ab310456481eeb42a9e8ab40ae6d3f7b1e7f366bf5fb6b2f94b3ac9b55b6ea74d5e83cc21c3fe0b6682007dfc10106307547936eb53ed5a3664abbf83a6b9e4f473cfa90938c13656cc3b1e365d000f9655649175138c4ee0d575356dcee5a5ae6cd11086a6f42ec12e4a12ce5e5a3e7f8b8dd534a3210b94ff3179b0ba96a97478356f2daf8afec2f999da2530f2e23b1410d99e0cff86387d5b36a100c47b4decd26c56a2ee33f609575f2a53345bdd4e5d23ac5fc2dc67583edfa806ef7d3ea83f67bc5d08849567b777d422b37c3e579c81f051461daff786297b9ff9090444c260097cb03519584946cb0fde38704a72eb7b62ca104019791123e3374c9fda5dc8d63fca6e976799bb0cb7acfce20d284d11a290279145c7918190ae5e3555e8d27328017fef2cd096ef52e6447f67d3e8d9b367c5a38e61d5457b86223b52d0646aadfd0e128189999256312edcd2c5c7885f3e0d8b284a6be59a37e477453544f7008a0d723b0c2b9ca0b3a37bd25a3fa969fcbabdd57c2aa5f3e1a4ba1721119ff94b9d12ae5c9b5eecfb02cef1a1e43f514213eb4a6206fcfd2bbf95829a76a570d7df831c6250e40dacfd633ceab3caf6dafcaa31e8211fb351e9043a9e24cdb4e88ee4058e354a93899558c14a2f87217c02f2acb7aabeb05af2888eb9d45be4af43c1c801edc0359587e9fad2aa8f569ad02db5a88076309b86ed56b5f563c411d17d38e30050e884632cecf7ea96857baa414974156b6146d9322f56c9a0e6eff07c899d7cbcf64c4e7d9b714b16ea94d1e11c5488164725da3ede232dba9acd11d488a538c77233a643aa57f8a53a63f06c629665c8d5354d79f521c3e84ef45786122333679908cfdd1d42a2f9461def16a30245762174739d1395a73d30bc80e8c68d45cafeef959f8e73ce0b428dfb9e8ce3ce99ffa6340d68553a8243b0de791fff1c7852ee3757d11c0f784cd61982144b4e62671e50410949aea9b643e96b4f2a1dfd68eba4fa7bace242e25ecf7fd7cdd867ae929cbb4d9a9179071bbd28175e549be5c1b7d7d15a6ecfaa7fafa73bd4bfb1987b8898e4301659cd3e38b96f17ccf0dda278a6fadb91801c26cbe23a380ad5cf82dcfb950bf8c542f83dc8fcadb4a7ce8613a7eb46321f428b8cf39c1b5291e92f3b969608d6bcb60eadab0589951a935a7212ad2478a95d4348032804d6adcf979cf7b662de304a4a321290bcca66be33085ff369ef46eccfb9663aeb151a4f0f9bf41ae6eb29511e39079abf07a1a370b32fbc5e73c2818a525ba8feba6eec7a17be8d9c3aebec8ec2778afb59953427bfdd6b7dc0bc6274c1b7049f8d94c27133d149c23a2743692175846ae7571868b86a7bfec04f33cd7b2d093f2a7dedc19f105b649e471ae3d80b1cdbf4d9c3645293166fad65c5868238ae5f793d4892d6e1ed8caf4ae727a05f562733536d8d3db23d1f61d74df21e511f096abec41167d819001ab878056ce19b119a233bef4489dfd25780b24376f1a3be2293f90640e5897d29be73296eb5837d5092bad9be0ab93d67a75f5c10de0db14ea1c393f35164f8c916ea9a175b80abbcb042cc1ed95bd6173e7dba5e0456c2e203e335eb8dd0ea8e3afb9d2ac16e7ba2bbe1cdb0ad9e36a088170284eb302b7bf5353d831e7a5d739e0fa1b5b7b3c3cf2abd910ea032d8ddbd4655ba0e2e73b55f908f6d902007bc0985175ed70ab3f68123a08371aecf3250ae006506f5857e280ead2462de26c0b9f3946276c773b279e4b4fa72c01ba9a6c148a22fbcc7b3aa2ef74f6922febb9c859915fe51acc180b0ec8e0042a35ac667edbaba538357b1778972f7fb96c541031138707c499f99857d0dd5d763ee4f2a2ce87b751e089dc738a71c7dcca4b52782f84ab58004bce061fbed9a2533866d278f373d97a7e32232240564eb0568853587c32c710e7f1eb053b8167d83152e48c168071bb11cb6caa23294e9702500762ae62e026581ebd0ef73d2c2c32609605fa276ff755114525541c4c5b48a456fda96368f8e5892a62de09d32de4503bc1da8fa8e35f018f5d7b0c29db807ce2db863aeaed8e1dd93d627721f7a489ece3cf882c5e88835809b7f5e803151fe588ddfb8b6c26dbe63a48025bea84a38b992305a72f7d0c5303ba3188123e04539e710a92a9ded861f79813925abce10f4d3a2143ae9bf73a9d113d06f36077df258458b874106553b2187990f72a867dd6ffe0ba668a4bb19cf941dcfb9c7ec1010cc39a2f4a99ae8ddab137d17dc39658315986d7bc6673d11a6e52b32b340e5693b511f3c9af7430472f971996983ffbfb18d4f7415c1a9e4891910718fb883a7c2cd55a92b951fc240d19ea43f8ed1d71675de17e8f571461517f3cf4445e8ce1a55b925e0a535dfccc42b631a4bea5f04ef8a0b07676a194bc1add498efb76a45f3c0dbaa48bca3ebec0580f65389ae62aa692162e0d8f8cc4105ed4a12fabda3a0af46ca2501b3d1ddbdc1ec59f92e042ea71d6131613db02a95a0aabf47785183def404d13b09d248cb0c2bda1de1e3a2ffd7555169a14e364c960c6da9ffba966a99189feeec64f4803d90936318103068e4d27f6dfa10b54977d6336d1387859c6bfa2902c05f3db85119d05bc08fd80d6f9d86ce86618c6be4fb0f756c86a17f5c9101ea710331ea29f2967aafc2a604f38f620eaa5cd9585f87d3771fa4be35d3287b8caee55415a49d64f7965410ae669eb4da0d23a659d2886f41a06e1f3c361e923b2baa8b6d8ca619b59c1fd2c26a87bebd246652761c774408ac1f8dce6334ccfcc663591ad00aa5f8a977dbd05b58242f940e001839f1daaa54a073ed2db99305e3aaa73103bda4d4408bd57a4cadfbcdbd35ccd852419bcfa8ca496