diff --git a/.gitignore b/.gitignore index e69de29..1f57d17 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/solution-rust/**/target \ No newline at end of file diff --git a/output.txt b/output.txt new file mode 100644 index 0000000..2ac0991 --- /dev/null +++ b/output.txt @@ -0,0 +1,3475 @@ +040000000000000000000000000000000000000000000000000000000000000000000000091aec8ef2e9be651e986289d02476f3cf4435edfc53853d6dc31640c42ee14f01d72f66ffff001f1c740200 +020000000001010000000000000000000000000000000000000000000000000000000000000000ffffffff0a04370000000496699669ffffffff023a8d3a2b01000000046a0269960000000000000000266a24aa21a9ed6b184081f60addbc84e642ff7c9709b252e5c95c0e47d6c0bbc07d7f271edeb00120000000000000000000000000000000000000000000000000000000000000000000000000 +7cb2a4f55245bae141a5d6ad51c08d7a9fdf2c2b905e4d97639ed80b82e69800 +82f9f96db7bdbb9e70626747632e373b34eefd50d613dfea7092744169591b6e +dcd522b3588c7adb0418454539e1a929fff936f211e5a20383fdcbc3ad8751b9 +141655b0e4239480afbdc12874e642ffeb94da72536ee4b8bace750820b26a06 +0205c30e63e36a248faba5bdbbdde7a4185cb2bd314ae62549578575abb6da72 +c0d67d6cb71d5cd372060a6f508017d0e90167f111a5219a0008cfa5eb37b0fa +7e4a05a078f4d7afcd686d117e319f8f14d69be43a0609bb9a9cb36a75a88abb +4c6e1339f6ec894ac4685f4ef934180d376b1870005fb5c6298261353d46cbac +d46e76a0c8559b76ac00bf5a2f5df1aba3aa2fa8dcbfa9ab288027813b627f24 +6e0ae197a30f26e0de708f95e52ebb957de42ace5c08ab62092454c58e066f51 +3f67e2aa009e5560a6c6b5341f3a5851cb448322758721e0922ea81a2b474776 +cb2930faf9670b24e09be9a5a98e72d1b5cfd0dcecb1b1b5452eb85a1ce80ff4 +219f3b922ac3fa2735f437d6542a26b7d744ac8899b53cb50e7f059ebe1c2960 +6ea28e620d2e612dab764fa3cf844d0a2b7c709655dd705d9e90058c23213d64 +eb3f8d9ed92b6b80c750aa909ac172774c006ac0170f41e3afa2b58ade0e6eb6 +f2de32e39ca853add28011ef802f336e546789ea8abb093c44d0b79e2783315a +9a4b7a9e63a874cda9c82adfb592bd91be77baaf988b6a22bca45c8d24ff1c8f +4408e4d4f52837e9504056c8e33b7e921a10c072b520ff810fc938ad1201b652 +9dbafcbfc78f1f71993186add1d5bceeacac926ce70a133f3c52607abcc3ee97 +58f4ab89c3f24bd539d3f3ba5931e0792f0316a0569c6e5bb7a4150b07aea87b +ec6a92468759cecaa854e9b0155d4a94e52c897fe96607d592218664d1165a11 +379c9c1070725589a0fa9626a59bfab6de21a50e600815be7d6af70edf059f3c +5c5aac8345686bd466014ef256a503bc896f4186366fb000daea1f90a4143377 +0eee63cc7561e6909a0215fe338c2271ea5b09ec726abe605b2bf207266600fa +aafa88e7f286c104e41f086a41692e56d4ee84bfd088c3a943249daa3b2dc1dd +961ace1aeae3f11523890212486fe4e7b7e74bae2d0dbbae6e69d0d26f4824a3 +e499c7f1374cc9b3557263842ba22c3db1059ac1c28b138a813899353f03f29c +e3e3efe45babf86d2a23dc93592c1e707963c604615c3eb5b5e9cb7b6f13cca9 +c3e2ab606d3c52bef8e90bcd7cb1f200c160af6e87c702fe9d515c47d9977292 +9860294ee083abd8caff150d667e1b74788bb59efc6001caaae80de8f0829322 +472b247652475d72a024277d3ce24239f0807fb2bdeba74ee6a4892b56ff4a1d +5518611b2b9cf3985941d8d9a077967282b719331947da7099f2eb2d43d5892e +96047183f58322c63eef4f9568a9dd301e73ce14b879f2470d28e83298db2dda +f75ec76214779056154f67d410521217631bd713a28637774c9f2b1abd2d5294 +65a1235d78ca22063623735626e962dac4b5de67c7c5937685446f74413f7459 +a57adc7478e44365ac3d9c9d4241c77d55678c5fb579a1cce4e202e44a588113 +30be773bb8f925925ae59276d51c4effc9abb3b5fab11de0572c623c117791fd +ac4fadfbba8ea96d4371ac8acb30d3559c8f7c8de1abd372ec0bb64419cbb3f7 +ed8dddbae3333dcf0faf8bf676f9d65ab3573231b18d28922e089003618da116 +ed3f6a1342dcf2655aa958ebe375aa2e5b3fff62606417097b0e2fcbfd069ef9 +ec7c3f7409cd0151c00c44d756ab583fe5fed84f8814db603cd3fda6b3bf3cba +6d1642a12cffc513a6c1354f841e7476430d45cdc238b554411ebf5068baadb2 +3ff06318588ec7ec5524872e4f66e00298b840d464abfdcfc3e95848a58834cb +0acf2d678a416f19d7dcbca05c8ff935f0b66deb165e6bcd4adede640c803ab7 +7732a0e3ca2c07ad4c0a823811ad5fe50d23e258bc876d905484809ce11af5da +81fced3ba74758ceb872813e94ce557ffe9cb2bc61fe4d18b16c8f40f68d4e70 +925c9e11ff464190f5b5b8199785683fb613f6432bddd20f435536762f97cb44 +4dc0081058331df702e3ce06f633eb99b6447f3d05d348ac7c5cb4e5b12b17c1 +d50105061d189373582a6701ff841cbe43ff92e92a8f24550929ed50312b036e +717b106c2921561a6911337ba203d76114ef9853a00cb096f6b7333493b469a2 +8a766c63d4d5225d7040968751c714a71c790e115d897cfaf0b7543219dbd840 +713a3edea7e49bd9f8bdb8c356972ebab14d3646db7e9791a213982e91dc91d0 +e4db2d84306a2ca488ebe1d8099bc0f5d355571e0643c02eb7030b4afa2aa971 +0b4cd564fc665c688935228518f7e80f889a63f8edf44ceb4ed19bcbcf8c1f38 +b53121907425ef5ba688a54f1cf2a36598bd070fdada6d9e96afbfc417f896af +6bd4c3ef4b5ce7c5ff1dc141734c72c0892ec7002d9b94ed745c8fc071dffbf9 +b5e9ec2fac3a9dd54e2dab079130f16466ac56cbedaa3a5e0340ae6cbdddb034 +45579d8ee863c929042470780feb709aa64eb76064cdebfa1c986791942eeb1c +950935223f090e4837b54e5d99e9223756ead5160993201e1883ba689006399b +98d5db4b5cf8a6586e1d0ccc9609c93a456a0acf37f2f2d790134383de93af99 +05a563b9303722862a85fa6af05bc222fba54b1fadbd5e4dd5e209d082606476 +3342db73942aa29f867a42613a78884e75bc1d269cff41031f937918a2b5c72e +36474fde7d01b0014bd2de348e00862701254557e02b6b5bbaaf3b16f9b6208a +19d38472925ec6165d305765a595602ef266278c9fddf6ef1f4dfd534cb2959d +90c32b1af80079f25601acfa9357e8f5a4593f85b2b13da93b7bf4b64ec98bbc +9703993c9f792b3249dfa34ff79486aac0c5ab93d242cbc99fe7c29648a1519d +9a962ede107e9dbf1446b90edcea263e4e0329bda913945c942e2cf163a131b2 +a33209ea85de442115cbad15d34c1d380d7644762cf92dd547e4ec282ded6fde +11af62a102b611ecb44523dda00d88333c60a82dad37d1b788dce1bb37796109 +7ed9904f2a18765bcf114045d80432e4ed17bf34398beb731640d767a235765b +d96b8abbea5a9829f8307009ab8be44690592fed4b6a8a36f095faba5994a908 +97ceb5fa2a8508a15fdffd58c3964274ec937605292139827dc8b7c7effac2a2 +4c275235574283f7e254c6aaead2585919b306f7ea02ba657e92284b41ff166c +f5ae2bb44eb210b5918f0b5149053607221ef2e39ff757997e8b9df7c676c40b +c20de979128acb6246d620475355ef5d3f678a171e81c67defb87a55292d6a32 +7833892b4befdaa9dc27ebae9a6febdc4cc377830a2c764e85dd59babbd0e1c0 +a96b1e91e1d0553f3e19a3aab84a229816f06f9b9cd8270461d2b0cd18907850 +63dc2cfe61115832959586019584aabbd7050eb934a9630dc579d0c6b44663a7 +40177bb93d21ebde38ec26fb248fcc8bef7d7bdaf763c9ee610a04594fe90173 +da1489c42411d7e46e813c6498f082279c6d76eee66684e2f3e47d2af5ca2f73 +94514171a18c90b3d1805067978ebd1c9e8420ea54b9133ce5e7519c6827e79c +f79855e919a6544776db70cb78b112b69779ac5610796545aab268f3c4ef6139 +d0251a830a057750356e4e64ece9fdd57e02ea8f059b4843798da841883c3767 +cbdb60aaf21ddbe880c3ee8bf6bd214dec5d6d8c7cb5fe764ca940b810b8cc80 +8ca7c70de07c7282176150bdca86ed7c501be6437e9a03e4da022354f1c32edf +4028ec7f3f6e3757d7a34ebed1900a1ffbfe037cb412584d8b9fda6885839933 +0982735aa361b160387df91ce0616bc8507e56bc435d17c7faa03aa47bd69c26 +ad01dab939f86eda47450d5e9c751ae42d3c4b07d66edfe21c86bb0c72aab84b +0edf9bed57bb4d663c690e17eb20692f0339f337f3c8f881d9834650a38c4b62 +8a9f5238a30730e1f48702a4b796cac78c54ab0cf9ed0b60fd0fe46fe84899e1 +15a5e73f8199fc632c395093f4755f0205f1d062c42cd4c555bf685196a41e75 +8d1db6e351895158ab17d482ce481af1230b851648088dd4d291e5f0a3a7c5ac +2b4ce090fdade2c9cde0122f338a527db86dad3b7cd35f25ccd08004348ad08d +f2acf0f4fa4c8b6c22b94033a45f3ce8160ec9aa1eaecfd86cf9a414525659ba +3aed4d5c352758c9ee43fda617923c7a06a3c9a23936505d88325727c4ead7ef +a1336bbd99a29ea2f67ebe76fe412ab5ddaedda6ab558b691f3d4a70e4163dc3 +298ef9d30184ef7324454cd741a30e4cf7534f2a6c85b19763fec7dea0126178 +6d2e1a44eb44f5de1d4a9bf675a0242b508f7bfe39d033513eddd9b05af4ffd5 +edf1a5813fd40fbb31f60dd590090017e6debef9f494a388948d6335bac41585 +26dcef0933fc0129904955dd9604cbc0b086635ebb9b1203ad743f6fd4ec06ee +e1097653c71e000b75ef33457432c62c77f7b362ea903b6a6278b357029bb008 +e2c3381e65d51a2bf34738abdab15a8e9dc774123b2c5c3730775c6df6abb8fd +c113ea84a8bbd605ef94492d67463889db5e22f8017141557b35b0f5790023be +796154afa4abac52e7ad6818f2101a7d3bb2cadf517d8b9945d3a94b7a37bbcb +ff5e0b9d91d323cd52385e821996268bbb03f0f2c58b7cfa689c63982d50c603 +5e8299e043d2565c857e542190b1192c9abd7e9f1d734ab1a09017d9b1188233 +1e7e9f8eb8cb5791b0939390be2f915d12327adcf792a39396a63d0fb0dacd09 +1401025700fd9a9e477e39b78282b1e9929920395d9f4cb77afb671af0f740a4 +d8268bf2403e94ac9c58b0279c280d188a0fa17e72b733dbba67f3d034c7a7c7 +01321499b5bac27b175405193197f9c463182e8084176704dff84680390242d3 +f2aa5cc77ac7e6e8f0d98e174a57c0ac7969523aaf7e9b2514acb3222f99a84c +d63e5aa48b96bcc0d1a5d9296fc77c637d20bf1de5b4fb102c8bb0bfda46774e +a0f788702b89b1d271a1abe2bfc1942dec066072d2d3f730c01a839d000b9929 +7736f8e70461c14f7c8889de01455aa40845e2985764053bc005dd3186f513f6 +4e4bd49a3e505a86c07a46338a054c9a2b155c7680fd544628c793731a11bd99 +4eda2b12862c3aff56323d76a33f0739c655249305ad68a49d73afd8b4ee6a89 +7039f15f6a34f84a97d74fbccf7df103aa4e5df20919c5cbd9239eaa20e7a30c +9e9e49090d21634e2f904c6325934d5e7ac92537da11a937d7eda49d604226e2 +a87c1a7866e1eb3c15f5547cfe70c4aed987c0693f40a1c59edbf83bbe2fb94e +7ab4ccef3e61177373bb8f4cb731a1351aa465a71c1ecb11ba22a41d8ed4da28 +f0a9b97a66cca15db4f67b3fc02cc9a30d346adc0182a1a25cebb6a60d04a7c0 +83ed96125a09c6a44132a796bde8b7cfd1b7a2570115afba3b8ee9bb1b5311c7 +06567a37846cadd42c2abc9269f0565933bfe83b3af21a8355719a5aa3336ae8 +7871fbacb811b77520185d6e566d591a81f90d0732daa21d49a006fb40c3c15e +097df028f48a7b2f897296385a4c4c84c81c3a33903d4b65058ddf777af805fb +4a966a0e5f8ad8b63f6e3008b53929e9bdcf06fc80f7fe82dcfe566db50950e2 +dff75bcf43b8b0962e1e21838cc6e2d00a6ef02d95a9c6ea785c37a40bd56413 +c533328538493b161ab22b5b21608f2376b0904fcc661014f6789b565c80b17b +50b07d5766b622b4f56e7b14c54ba7e3d005fb9b7f4b058d42acc472f3cdde99 +2af29573578cf55118c8c6d3bac95887ef7c20a0cd0b782e608b80b92aff0ea1 +1b87cae7ece0269f12b7d6e05c20ec604e1af083585b4db7b95386de332af5ca +4e6e89304a2f551fa660b6dd4d15d47757f443b9ea2adb5c0a3f1620f5c2ebc8 +f6f320848b6d7a76630decc2673e2efb110bce2378f2d5d13fdb48ba884c1fa6 +9839459692ba235f41b2848f1e6e2f453f0636c6c31389f112cdcbcceb2e7df9 +a54ac8afc3c6dc6dd5f7421e1f5aa2a8dd47c9261de3fabe8a4cf811ed4440a0 +41671c742a150a339237ee364a18347cc82273d67013b82648ff7c0c029ada9f +16eff1df7b6dbbf538c53d2862c848da9693fe29166753ea1f32d25544b6d86b +82f7ec6dfbf9bb507d69da194bc0f1c77cfff635f3fc96cd9be3f155907459a7 +78916d8645652a97356502ebbec2c258ec461ce55eec41c78a9eb7a7da43db72 +6f044006e0f8e505e0ade1518a4d48b29b60f5c3cd19e9d36ad0e27a9a7278a4 +c70c16945130e196f9c67e3fee330b0a549dbca034932785718946542a81afa4 +1e93897df26f965d16de3666a7e5cea7c5d6a826e4a4465bec67c934ef0df98c +88b18a7cd273df6a7349fac20a5e96828dddd693c078b7641b838155ddfdf334 +7fa7ebfbfe8d79a68ff506c27ded2f25d329e1edc76b2cf6cab5ae8b23a8fb56 +5dc788a912b206aad5f17c0f7208ff4c147fd456b0956c835cc66a90453a1339 +0cb8bc074faec722e3fdbc600f3b9213dbfd7e1ad9dd623cf6017fc6fc50b44e +e1c6c8650c2e262f08e1f37f1bcb80f9bb1ccd466274360559c345288cb602d5 +77f3eaaafe0e39820d9a9f3e35060a4812b18da65332df255a090cb4c80ed140 +127ae7c479881992556b4db7dcd780b9a8ddf9e66ad6ba036d0fccc90f92ddfc +4af8f9baebe95f09d94b4bfd84eb0e40fd0dcf94ea9a916f790074b0fb0178ec +801b1656646d2e028fb9fdb67245580b775efe29900c622c1f36d1907ffa43da +c434bcdf967d3529ff6356502f3d88fd455e6bc8e4d9c532ccfbb74245e981e8 +7f9bc724ff18d6838b0b1a9edf2f3c389039813dba2ea749970889a4777130b4 +0bfde97052ae7f8bf710d2d93f6e2f7c4312014d0b159c6f9afc7f65cf34c664 +0d15be900e19b304b3a036428ef9abc5e5ca72666d08f6f67d3b38b41118b695 +0f17db0f0057ae61cf7ea6096d8a50f8f873dcbcd943091e2d5afdea02978041 +0e994bce6fbb521a1a97a67717e318fe863699d7b3972021588aab9b99ba4e64 +d6f6f3c416af59cfb6fc6f3bc789cde377667984e0605264f92df509fa2bc575 +dbb9134b15077990e3b4fcee8555428bfc2f078883e6ddb501efcca6a7af9dfe +a28b24c9489963198ac44c708355b67ba60bf3dc85017f76f9b2374492f95b66 +ae1a8abe5890fc0080bd4d3f53cc329bb58b73ee896ec5d2719f237cbec366dd +15f212bc09cf72c5b3c8e882230e9ab9e139045f0a4c828ac97d669c7dae7940 +68f670165f20c4f8a08727c1dd6eb92b394faf04bc77e90fdf3da1033bb7c3fd +69481cf47cf64685ccc68100279fdc8c99281cd262db350d41dae9285a500aeb +3ddd5113dd25ac5156fd99967e2cad71fd379b2b2ba32f43191431d50bae1023 +da92a57ccec105a5371db14422ca22646396c428f4548c4676c2934bf8ce6bf7 +b72b231e70287cedd8e0dd3a73eafef67e27d7063a80ec4e7a5dac0413709391 +36373533c2dcbd7da81ee367c1ca6cc9d20530c5153c3b870ea543156bef8e8a +7dad48614024ba1e2becdcef5017e14c02b77eba6d1853b2387655853abcd728 +bf895a54b0c2c31d18435ae46b70ee47f1ecd6e2f51f3ee59cd6eef092495488 +517d387a13cf0ac6e6f67580c63abdeaf3d2b1aab71606251369a4c62a682504 +c0834ac98980e228860ef954e563f21b749a407594c4c165e27fd2264e6dc8be +6de8b59377f776db437cb004cfb451f7a3b34803153d67876065fe0d8fac0079 +03f5bd0a3da53ea4de7a317e4f05af850daa05345927a1433120acfaf85b2e24 +25769fc7a569aed0a28781f9b21e4a672e414a4fc56282363a784b9c6911c4c2 +42b7511e313cdd893200a92d9a49a91a41321705737a6f0c2ec69e945244890c +045bcc862bb05ad4d930553262026b858821f3a8777e9a0c19f614f8adc763db +7ab537baeb7583cbaa96ab0aad7a8ff9666e48e5f21d4a18a60384700e3ce3b0 +f1ffdf37774a4ed93a9f0e4ff0acdd890039732d2dc41fedc9ac87ec72fe4e59 +306a1316f4cc6e05f5bbd299851b22ae46c32ebd60e0dba32c63686ee0ab8115 +48ea1dfbc502933bc1da6ca3a95fed4016baf58b62c1af1b423c1932bff73c94 +39a6b04359507f40a03704af38902e01b41f56727cc6ac3259c94b817967c704 +a96ec364a114d00d1325e104066171490b2a068b9384f63628ca8e5c5b01e4e4 +dad90841dabf14c12e65dcc4c0484ccf1a4e2ca6617b355bc02aea5f1ba5ff7b +d767c637d3e3da42e13fe617d49a9f7e0085510eef3ce4a0e78eee978f677d05 +ed51a553f501e5aa5a8bc4610b0630cebcf3f57fd6986db450732e201a7109e4 +ee7408fe2e7f8b58e928251df122e81e05ccba3305ba2871c5df1e3d15092963 +4295326514606b504fa78a0ea8c057c24c714ea57525e87a121d54b49ecc6d26 +0b16db8e6c08f5ca6f2cd5de51281320bf5bb910ac6a1238f271152b9ade85e4 +a1f5d621cf61d8900bff0aa7111eaa1f55a3718e6a5e9673babff08565ce5eaf +07aa11bdcc83c04d7e5607c67bc8c9049fd86a29b4a92787c03501b4f16913f5 +2400f8e114afafdf863cc5b885577e7eb5f4bb665d59ad4c3c3d02336f6a88c1 +ac1a4a40be1a14543d2579c2eb0cde8c447a41c7f42c63743d7847a8fd6a5361 +b71ebce0f3251587174fe1ead0e8e29c8f4f0ec6fbbc853b09aad8e5f38ede08 +488ad886f5bb5bb953b8ddf552a8fd8ca44413244a4680a84c886f0ffc507eeb +dba7615c48105027257f243d3dbacae3ab54c904207f9a7eee7b479d64fa5dc1 +e47f93b6f682b6893010788aafd9046f411cafe2ee21bb351adcc14f8d479cf0 +7b8f88d8379877d6555929fb15d3dee064494e36aafa49ab050f5fd5e9a8db1e +07bf86e8efd6b1df59a943ac27f62309b1f364b0dbf245f572651ddef1497c82 +2f4ef9708215278a83b4afc481739d72fb4a32e0ab1e1de798218940864811ca +c062bec1e20bb8d362bd817fdc306fe7e0362271494d3447927f32b33740c581 +ff0539ac4defb4eb74e8da337dad1d7162668b08b01862e64d16ba6b79e4142b +298594c4def5a7a4c66864b1ca399b4a8f9789775e2cd933974799da178e1cda +6f46cda8672a7d660e2f8cec69ea0c344a2e80e9b1dc1520753dd5b248f5e561 +a8b277ce1965ab563f7d330f59ab57351d10c192b2393cae30e435a4f9ff067b +54ad84f9eafea39b70af34512d1efbc4cc44121a66ea2f916912ae226006c0b9 +f32b5e08ed44312dd4dc87eebc7b57f1fd43cd74aeddee5424fda8caa4a1b072 +39fb5473e9dd678b14535aae8bfe73858d8d3deae4a85f90409fd01e63184e09 +326d0359570720abcbfbd94c8b2420484b6422f597a4100bf247fdbadf6679ef +4ff31616cea77b08aafe30723b2c26a998287c132ae2ab6e385051642891e375 +6c4c29a4d9b71a3d86b93a449d92ae04f37cc4f68edefe704e5c99742439df8f +2bfa9fac19d0840ea40d716f1189e0ed3f025f3a234d857bb7e1f47bed99016a +93cf1f595ac8d95cbb7924e7999268e25fde9125e6e3b2cb547c9b74b121bceb +91dcfb839003e14412e5aa90a8f5220b66678b1e0fd8f2ff7656f1f2e025ae5d +47034fafc46dd2de661bc712d78026d362e05deb800fac4b8c4770fa5c45d349 +d766a88a811e504f11a240466641b16f79e22913e36c693b45551203303b8689 +f7a6a7d4f3cca0b9a28de0745d567c0f76a0d197e6e0e9cf038f88d894dbc42e +651d3d15cd67c720584b591285ee8c59090a0ebd63ecddb25df96deb56c4beb8 +f96c824868d59d38926f486bc58ea697f57e73a694294e304397000bca02e08e +7d11ba00dd419b6c810613c35150aff7c8842023f76f5aea496ee897b24df273 +f72b95f11adfa86e0cc159070e4fc63f847fef043ff79930f3fec71e7d24070b +441addfdb7ed114c033bef6c6560f13aabda1da4e2855727e0281f715936825f +11d2e1f351394e9afd3fd561d758c1e23d65723f66daf08268ba07e794bdb29d +f968896da3071ad93ce32c5604037321f20d329ed8ee7460e8bc1eb57699cc11 +7151e75250239fdfd37246f6eb9f20399aa6869430309b1bfc622256420840e2 +7cdf92543f32609c353e765b012db568d05c31144d6c4964b4a713ad7bd0dcd8 +039dc7156f8d2210a3136e670638ee236f560a84e2ec239db3c6728d5be10ba3 +c2d781875f992eac370ce0faa9e606d8d0a53930f3d30e5ebc6edda406597d4e +11276d9cff6e97e4dc70ed5e45f8361ebb240d5f208a8aad9d807da3094a0d65 +046ac6bd6752e9d3496289d761a49b2a4787a33e253401172ff36392d42db73b +34c7ccfa4e8e20644563b2651eccb64d7bc31d3e8a681bda769e7c17b9bdc881 +87c9c83a2974fb47023abe3827da17428a4028192e38b1c89bd65c1e196d3e42 +5a4e2ae70b108a9881be2f89b28980e48d4e81614af16be4b6a749511e0d4acc +f2a13c19986eb0b926519033942411aad2244706cd01d2ed0b191bda10a79207 +a7885f0b559ef89848795212a6f80eb28c351cabd5f2209c93f473768d38fc80 +8dc13ba68b4259cf1498be2fa79bce99fcf62f90f3118ca375d92aae6ff894af +7caf72c076992de5bb24db15004c97da0c135910eb85986ea106de9b9a750b05 +bc8abf0c2ad8027211595630f6e65eeea97145ebae192fdd5a47c9d5693cc7c0 +2450129d3fb94817aa50d0657aa50c40e41a0e2ac1c801005604457262d10ded +aedc3cc5b83ad3e2f6ff5729e7ccd3917f74917e85ec4f01a07a5082b2da5982 +abb37929d054efac2bfa3a27e161c3ea83bab536cc5fd8357b7609cf76e410a2 +a0f648f1e14453d1ba1b2ed55ba3313d4c06f2d4bbe0ba80115f58c1a30686aa +39ba3110af35cf534115c7cf0454e6ee0f794dea2022729bb55ddce066808b97 +5661fef3a650d471443d266de66ae4b8f732806d90124761a56df096c380c92c +3ce2cd3a62b9e4a55ba93f1ae35c8a1719fee86167e555bbcdb61846801cf5a6 +a1e6f8a6da1a9a63eeace306f5f25fb32dac58301afc7908dc98236618396579 +6ed26ec48723fa93c261054c395595d6079f55b1137a5670ede801f14c37f4ca +d05141eeeb467a622d8ad66f4c06137667a000503049acb5632d2bccc6ba7956 +55cd37e46ccc0186c2ed4992a19f88882e136afb8f2df63a3b488218ad946aa3 +ff3fafcb58d546a36fed36931daf9b88784770d5aed6a507d78bf08d545eabd2 +637c4ce02275c033abd0a61743145b6ab1ec2b8bf0aab010e7bad09cb952bb86 +4d3af0600554a229bd5e12822640d2a266ec6e73148289d671c5550c04f1c56e +dab2352f68395c0974aa2470beca4a662b3b1081285133ce6904f398d6fb1ae8 +ff02f7cf451deda817d588a6a427ee12742c9579fb79c2ae523fde28ae12d7c8 +168c200d11549d5dc869e4d6ae1776df9b0c826d7a8c91fa398a46c5c4751230 +7a126647dc3d67f451311abbadc653150d192284744132903c0391cdf53fb775 +05e0a6b5831d424b4a5a15d4327a4d58912592c6bc276850f40b3f8dbe9dc11b +22c09e3e63325f7e59d179503dd5a5c8cb47280a65c1804527e269f16d64257b +392334c51eb432b855b42312f22809650738d052817c386b2d977c3dff73349c +463618c9d140a1647c57ec49ede38ba1f9448c766c4311f4de107460e2876e74 +ed9f5648ad024995113b031b7e7e28f14bb8a8b158ab623e1bfa47369ab6549c +1d15c5d0d8cb8c943e1f5938731b0639177a7735080ed3127896508b39343446 +0319b25f8aceb5b26f50bd2492e0b58cee82a1ea363764778a75396b0d8806fe +5d59da2f8dfe6e6bcf5bea27674891a1f70d1f37bedf5f87dbdd6e87b88728f3 +a625706b3edda1762a075bba5299ba80e89e657961d2c828a7fc3008190c64b9 +e2ca6f1b2cb0217a97918cadc778464843df5bc64ce53d5c316b51a88caba2ec +2dd773e71f63d9c03b8e1d9da398d525807d14e1a0f992488e47e686af48856d +8ddb7fc82ec8baf3c4d3135da8f40d6468925d01dccb01678351e6a19dd8a187 +f7a19a04950cd2de96dcb6d40804b6aa7b93d13ee45ffa89d1aa6b0112f5b0ff +ced856f750aabeefbab75dbc00f528490732bbec8bdb0f7ee4c429428c489d03 +d26ec68f4a8de230c260a37f6e0ca64d37003e7463f3394ad6856f2f532fcba6 +71bd2d163bde2a4dfa155a3f2ffbaa4586650c0f18123d511897e98f5035d397 +2fa6608ec030a3a1e729312fe747228fd3ccab29ce1b34f112d861625c7cc519 +f5b817445c2df1d76d7f57729ddfd3002c4cbb2c9310d580f0646297fbd40a23 +89d88aa4701fc8afe67b6871c3cae0070c79900a4c0ca2eeb0aa11d6b453dd0f +3511de76972a27609eb0f7099277ff2b8000edd74962a1469eb0add2705665c0 +9ecba077ff031b53218ceae09277c165404a22c67ceefa7c1afa31d2b945eb45 +a4c7349ee82054614b3f572ebc6407b404a141ac40e39f014d433c6e4546a54a +add4466812a39d41a59f23c14e7ef5f923d498a415b3b5a9e243db0d1ddeffbc +dd745c0a05a7c832fb395606a1468364a5a36911ca23de538728b6fb6de97b4d +84a5c9ce69cec019071deaabeabfbec1fb39192256c21e54adc0e6fab1075214 +08ef1e78a4095367e127c7636e39b18f5902d90b4ab3eedfd32ed2d1093726ba +f624a8c2eb499d68ad12a297c642be16f95f1be9d74e037c681675b2d31bcb3b +a6d46bc94d189fd88f0ecf1c709329dff46272f763f7b5b4654dfc9cb8cba26d +b205142a83648a3b042b1ede7da30ba12746a23b11e8d075349b17d6bbcb867d +3df9ec618a7ab2c9489f9c9ec2517878633c8b6327050e88277006a6998239ce +abc3ce9b610e4c2bdf1c41706366e6c84eac7dab6657199f85315173dbf64e89 +2658579ef19fc30c16a573883ac4b0d97b943fe7f4c8d3437fb94c4aeff6240f +713402a6359166b60f3be43795f9311852b6d94ed4230f96f44e690e13794eff +9106a079c941883909fa260020d50a9b694a9591869905182e82fad78f1cd2db +72ff75266a6eae6461130f0487b8bfe2dcf471dee61cc6bc1d4c60ce9759587a +024e73500c65a511234ee4f2cbba24ae8482b59c2021ba3b3fc75bb779892a3e +50d7b599606078402612e0f650a24326ca65360d4946cc7b62a23dc0639e0033 +3e403252010e3f1bac62e325a318919253cc3d47d0c408aa4fd2ee7d81bdac5b +10c5dd0d943008f61df52ba020e877c3d50edc5a13249ba3cdef75cefa7b8099 +6e07b825b8d9cebc2e54754e2d2a06260b65a4d3b1c8e75f3da3fb496c295c7c +8db84f0ea2a6ebf26bbab4bbe685cd6bea94cb0d03af70dea5486ef8bfa40d5c +a7992e04276bb786a9222166c1ef100d6c011a4553d864c09f7b85dc33b4c175 +6c0fd58e39eb116c2a77ea129f3f2eb76cae47b2a202299b37ca6e0795f6e6a9 +738841d2e2e86dd471d7f8dc50757825643dc546bc1180f8a7c37daf96a01763 +8a38113689cff9e66c956ca46c15116e328797f826235ffdf6fab271b223059f +99708d0ba80cc26e8e025e3b1e0e4794e52fa7b94604fcedb9b1c77da16a4958 +6499ff42493740187b1098a7ce2f732c150fb65918542c3c2e3989f074f72d33 +67b831d200d7a0ffb9f2ac6d0dd16a064e0b8c0b75b1d0cf0ac120542c6734b6 +cb54cd5bc4513e2b21afc21d445315b1211b0e329fe645d932e9a0edd66a22b0 +90e946d607cd2eb6b496edbf0a583186f4d252687cc22a652511b4b06d29098c +249cc5a1c6053da8586dc854dd4d9adde1b0a7186991022bff7fd1867dfde4ec +c590c942c3200e9f59a0c9dbd88289269a1b225be2ee7f0c005afc568fe6f4b4 +75a7d001d4431f4322ccbeaff6887a352912a745fb6fe62b444c9b3b73e88c83 +7aea63730475f78c5fd7ac7024422bceedc91000eba7f19e1c65aaca1b6e2254 +b5bbbc2185e790ac3d1e3df6c56287fda5079fd63d154b58e7e5531d064a4ea4 +6effa7057a3dba4e4f155d077b2b7814839df7768609a009c0f1a94c7ba4edf7 +5331ff0a363d439bb81d4dd948dfee657c3c574802b6121688f18a8adf22374f +b93a3dee4b4d3bd2650f1a10dae6434975c846d77f056eeba7be2e28ed51d2ce +143a4c141a9d1a44c03625e031b769a03725a7edf5bdd629965975cfed341662 +9e9769201a31a3b2f4b6c856cd49c34a97b61185d487fe64c81bb08a384b82d4 +1e4d2b827c7174693046a2c0b31410622acffa56d154d5f510af52f0b851bf1c +cdd158c0a0d82bdff5b9f301264c7d2e79e47570651f67f0836cfb3ad949b214 +cef5b6662ed578e7ea673c6f340218ec48495e62063832e9c07f9d1f87ab7f8c +54613008e5aace1c10728907d0a5594a63ab040c7450635eee651479eb627f5e +09c12608e99cb664901294cd6653928418e8c33d334fdcf83eaf5e829d8217d8 +70367ddcf0dc8453cdf3e94ee436a6bcbb85460d1281ecc1da3e41276c139082 +45a3024768cca65a9c8bbab2d9bc8cdfa509530d2aa043b7c3f5471f7272bc2c +909884b7d0b8e514ba9f1bc9925cbc0b4f817d5c5570fed07cbe3409bc8fe82c +2d655ed33b7c702bf578a1c9062fac0b947aaca69b96d79106bce6a3682013f2 +fc8237f6d970b1366af7a0ebcccf86613a142bf91f3b81e7d3308f1b9535b6da +bf12d1867d278b420660fdeec8fe5a611848e761735faccfb98a49f8a5ec1902 +f23d4a1e8a337443d921b51c34c9de6fe12c20c7b064f3ac11cbef74e9534d73 +58a5e69fa928a295fdafdc33012e15d495a2e59899d9d203a79e226959a79e04 +d8bfcc19f0adb907cbe6cf7a50b5f593a8a26f046742336389849bd8677ce4e0 +5ee990e6350e6f9eb03c019000e263956f991925034883009d859fb1cca5be50 +70434916738ea44ca15798387f0ac552d2b1a0736e0846ba19d883c7601ebf55 +e8a1c5d41b6730af5bafcfa8d402126ea8e3bcbdae8292139ebce25ebaf8b152 +9137d59f9fab575066c34d0c8d1adbf06d76873e35264068512e6a001106ada7 +1e698bfa4efa5a08ca99e64cac5dddbbfab9bf5a0c0c2d47098d85a5c3ca99ad +f4886352cc49a8aadaa77022f051c560a0fc461cedf3a429e4fae07346fbf746 +74244e57c8cdd4652ef2a6213fe61d446fd9c92679d9da7be442604a168ebbac +52728973666a8b29d75923e5d38ca49a7aea947a5e445aee98c44d68966a0d5d +3a0b1d81e17f81bc939b95dda8c86d8fb3e094624c8dcb0bcc386dfb8867bbf8 +a6787a17984b759762c3c940a14de04480752263a6beda995cd5c47bc39eada3 +0e37eb5a34197814cb05b199bdef273b73a6d2513fcfed62aa2cc37f3bc854cf +0d8b53b61a7b853a15585e5129e857ac7d0104e47e2f9abc037b12e4b17cc0fa +5ff411985b1f657a13e88608397b94ded01c3cbd9fabf35d71b4910bd7bb7683 +f886079b5e515474b04d7ac6150f80041edf3a30b5cadd8672df9e81e52f455c +9d43a58596639ed577a208d86eb3ff599972c0db25bd8f37701a5fba55105100 +2c6c58338eddec9db1d914e214446ea718002e30bb5e7334c444b970277ad264 +d384e942183a61829d0c99d84c87475eefcdf6277b72989655007493e4bf021c +148d7c0ae548a910ab82eacc32043d423cfc4e63fed29f613fb3a76001b83a45 +a6c2ddab5d3cbb48c603534ba6635709df72f1bf1fc3dee5dd76bbbdd734f229 +f948a03b285b8fecc125c42ee230e5ac22228263189583c2d0a572e35496fca9 +817a2ff30db424c792c2b8d75bde952639fd4fafb1ff10615153ad977de8b712 +040d9e1eb98d7010039a179d4be21d392549fbd7680dbedbf81c2838d6ffdd0c +240f725a10322ea5155bf6c4fb20d106333aac9bd8d309caad4a0b953e960d64 +4072328cd818f938c59c137d7d5cba67e3adbaff2cd87b3c447f6f6e81db4739 +4130ac060a127f86e8ba1cd7a953222df6537561f015c2b208ac78b42c301ed8 +7c7ea78d5852ddc414d1590a5e71d93a8d387e0fc79e4727894d81a762e3c922 +e3b709f7dfd355c4bcfe4c3641c90a9abeb464184a91cce8a21ce21090affb6a +e4f69d3b7a8a5c2966381efeb2055708ce462937b73f4bc362a5f7c286333f12 +98f96428557224974a1251b27e4aede05e49adfc2fd47832af7fecaa2bf32398 +05e178ef5e61b682e6a7979882723c7de34e4984d75ecc7b6fdc063e99deafd7 +a22cc7f6ae35ae45c24c495aa46ef64d0c2b66a914ce7c21de38569266f3c7e9 +268cc7fa553f6bf74ff8fa0b1e1634b026f7e9b263b6d9b0d11fe010bad8bfc8 +9889ad6d0f3652f12fdee137e46115852cfcd2b8650c6d52741d987464e0eedf +457f85e29fcc3b8f031277e7e4666f6d805ca9993fc2f0c023ba1bf391385639 +f52866f0531169d3e0e995bc6f4e076024a7150152b02e5a5402f09a524f6bf6 +82c027f6621675d7cdf7b09892a71ebcd2a8d52ecd993a504cbc4e5c8975eb0f +892f45f0d6b31d4dd4117e426cbd6fece1870b38dd8732dc47310249861df253 +b6d7ccc42e309474a6a0d9850585fec117dc4bae216157a829eb5634a32386ee +ba1db109d3d87581e330d03e65dd1d6f0e443d7e88c0620ac9bae07e397ed242 +b934d2aaa349df6167e7612c5cf5c7d9a4029555fd3f703745479c5e62b19abb +d6f578d9ebb87678f5414532e1d7aee5b5d790bcbb64453cd367fa21bd55d27b +7de0efb4b5afbab288998ea80ebbc05f7e04a8147c3fd3254eeebdda3a097e61 +465c0c2fc67577ea72fed03c703b20088c9e8b20cbf319f2e3ecfc992a458c48 +b6970b46a55e006d1b66e4cf71d607c15776936f62bb39098cbe2f823a4f5deb +bda36effbc096d06c3d290dff31e6483dd93ec6924a5323c88dc2329796d6bba +9541e1db3fa8f9382d164db0d2a23e4b4106e32676452bf192d39c0954675a7b +7c13b3ac0d8d033eda4f82a9af0cf10da854d197e3d86e653b22c78367ee4c8e +c1317ace4697bb4b6a954561e8d98dff092b9ab16013a21f089148fd2b0cb01b +29c563858081e8b6c8143ce5611fdd6ea5a523bea18cff94f8bc3c0310c8707a +d28f1866de6029d2c2b64685ca5f23a3bba98e5867b0251d89432b84ab4a4b36 +1f908190610cf904552c33c5e4c384cb5adf9994e240973824c7316fd1b12528 +575fdef412da126c48e174fe5f15564cf363d1921a042b56ee33f633046e61aa +d1fb19f3ea8d473568b5d7d76e64387ec807b94a2464353bcda50a635acee66d +60b7302062349a2a027fc6befa7dea6c288bae41e84ab4225f315dcc4559630c +d2a658cb618779e9c0e32b1112be65dd2419680d3041c777e2e918fec0985c3e +b5982a49c140f41d4734209385d1c5bfd892c5567af814663c311f3077455697 +c260babbb811fba86335691d88185d89be9ba660ef296acef8e062de070cc460 +7a303868654848c44973fb90d0eadf17d989112dff5512c9c5ff141041477bbe +c3851d80e6332e77d6f2c5c9a45ccc7483d6ca0e45bb16485ed1a77d7a845a71 +3e2165c8477f786601591cdb1c222505ebf3c1438e6090888c170607129ef816 +31e713c3ddfae0ae6452c6e39834326560ff931c51de3849fadbecc23156c9ff +d3498ff59cd4b517b50326c74c487d03ded7e0416bea046b59d80d7ca7272387 +6cfb3cfa41d3ed8aef017355f256baa5f1d25b29d4fa159ad1e7989c07248a62 +04f58bc425d53137b9ebe81015772fa158a7a78f7f250e04cc98c67275f7084d +1fd99ad634b9eb3dc774907af4162e7314d56e1ed734d05ca8e608b60a9d1597 +6dff74f3fadfc512a89b2af803d782eca182bacf855f81437ea7288a0d2ed57e +b8c5da06edea54f81a2afe3263f3c22b0aedefc1e342c0188695ce2f45daf614 +a394a3dc3d212253a75c8d1e5ba23ac91a5aa5597c979208da5f046019cfe93a +88522ba2f65a5510672a5710b91b6bdbc6d1b9cf776d6f7091fbc538fb6226fd +121baa5e5fff412f85f40f46d10e788c14e841a15cf571f721242dee6cffac0a +e4e0b5e1999ddf993f60bf13c1bc0d8d7f36821c0ee933f295d9696b79a11b02 +dbfc078e49a3d0fffb8f5c0154d67e61df267083df69800aeef10c7ffa470959 +608ba3d80de3b62a638d72c0098da1e11409051b5d28c53c26681e6c4005841e +825217c06a33d7e84618c185fe02ab5d03330098d3e3374503f5e5be4a9408e4 +3979a345203a44098bd71d93255d3d4de64b89c48e27c80bcd5568746ff5c93e +8990d1e75556bce3b4e7e0fa03177c3c0dabb88c9b029c1a906a8e2804d4c418 +d24eba880a83cb5c3b23031778132f7a32a592bc4cf17312ce5f37b170c061b3 +11dab833a0ef6148102c47175aabcd7f9cf9e2753bd3e6e3edca4aeb489278c2 +5de644c2ee046ac427826427d4f6adf9d68af70a45698308c70ae367b264834f +d66f430cac85b212f2306f52f9563032589acd2958cdacc835424c1cf7998692 +9bd10504173663388f7ddffb61ece4f9e02358043de1fdfe461789469766c885 +b4a15830c05b58ef859ee5d5f8977a367e33c14fecb65541531c50defe96ef20 +e535597cf230f8f59f386034232f56439ef518cacf3e564d98d3ad81c878756e +8ecd0e72a2635db88210e864319cbdc01703efa59ea4cb44ab77a5b096980b80 +8bb0611bed8947b3fdb1e2447d01aae17e1165cd56a154d81e13d45a390c3447 +f5ae995b6b91f3f406a8fb25e8f0e4c7a9303298115a5755434576bfc1770b32 +5ae7ad71f06b2727223b76b1bdbae43aae5e3000936988b13ca4507ae0252ddb +c513e1a3da2c46acdfe5d4233292ca2e403e989e01a79e49c23f6f61173a4cb8 +089badebf6c4de916f77b325f5ed8adbe11617bf6cf635cfffdb6a25de264e1a +09be352a5dd60b3612413e04bde1efabadb801ed660ca0d48be24590b70946a4 +7b410ab6bef4f847ed227ad0470742b425978678a22afdf3f57b2306713d64ae +7ea1a6e6cccac54feee876402cf4f61793b4e7c50ecd337b1adbdf64c7efa3e4 +c58bff0930fc3afd25967b428d7d2882af9bb221ef6426fb02067482d6844474 +2834f7559dab12bc93227ed3c027b3386186b310a77d8f24098a272dd5c874e3 +f0824c0d9f0edaf1ce22fef31266908d8f655dbb7f6ad6445081eb6aaea42dad +30be3e9123203d31cca49bcf7be527507afea03be6b5405357d0be5e6d0218bc +93b14882192a4c7a1a3a98118255807c1b7831433401651df0a911c64115fdbe +fce76341c19a2f02723e1dbcdc600ee9af75e677437b81d7bf592dbb5e2709ca +5269d9bc7e99a97c4dec87f294c3c8232be0c956fab350ab89d0bea9e2799fe4 +35323733a4dcdf7689937f828cd8114150e172f3dd0f6a494e039ddceda36228 +46b6cf791effb657f1767ff42379c0c6a321849006a730e44298c5c69eaaaae1 +6c7cf4f9127aeb9c96bd81562a17afb776a9cd2091daadc0b20681214b5b8fe1 +d773020f9d2824a4cce3b50d8de0699498d9363f9d60297d0ea4cd7567e1ad9a +2d117c8be3f51498cb536997f55c4001cc55ba26b0cf101e960a441a094e9521 +79da1786f50eb8fc41670def568ba1f946e25a4629a1d5717954681fe914d0f6 +0f87e62132ede1f231d8194ad4f5f16c1a5ed32652bc58be70c29b243a57bf81 +eaa600a87b48bd3657c05984102b2b721cdcd8ae8d9d5b3bd224aa9d5cea4169 +e9c04e201717fa800c9d7a42095d93065c3f82e45d5403028a3e1a35c3e0d74c +908d538ee1cb3b270730965424c15ee1085c16fc8b54d1e92e91d870a8184ade +df2a2982263273c225ee5ad2ca8f788293509bc8f1d52594d7d811959152d627 +e9b0f421e0d030e575a0833ab352d2307190ff2520c52982384486408579f37a +3114959a1e65e7740c3f3df693b81912601eb82926c0176020bc659edf9b7760 +64b0cc9f781ce022975807938574ebcf9e45d07074b1c93e3b29e1261c5ab6f7 +d9b28950af2c4127a079a6f24fb4711325c672611329b2154f9b608d6ce14884 +f51119d7b4a3f6c79f0efcbbeda584f1ab39591fd8e13a342c463d289e10b481 +6d4e4e71a78872cde6ab7565db7acbf89d79df8adaab44f070fad17e31bb813f +35881bb03a8166d27115e5162f0b75d0f507cac7c1e5a2d0fa7bd07cc3302b72 +58d3f7e1e6a188456640c063c50d2be90afe2a07457e5288724d718d56f52d0b +348daf413764a22a22c5a9338181784ca6498a40662b273abdea31683c3fd096 +0b27656477bbf51496eef9545bae40975fc98e490073b813e5b87f4d2965e860 +0f443c93552e2cb76e9ce698c46a66b05be7d23e9a7098d8ae2c1720f57cb1a3 +21bcd9dfc8feef98ca2aa9306fbdfd8bed0f8c2da3d6b04dce3463af1eb676be +46c0d97acc09e143d657af6e9b6f19ab32fc1d6b6c385a2e3c483710dbad0d17 +e883f54431fe2d695db4ddb8525d0259849c04fd2147894de4b19161fe6240c3 +6e84008da1582804ff67c02031cdd97fd022fa91d62dcfc38569e32cd0687253 +e532475b7f95c8cf5e25dad22baa2b987d89c43a5de50f7793fdcf19030e564c +cb67ec18fb933e4d9887fcfa1944fc7aab5cbf0b6d67326432569810418b9ee1 +ece104f0b952dae0a2eba0a757ac135eea1de09dcb1fcf7a41b0a575ef561659 +600ebd36e6c63f625603a24b986038550352581f0d23f5b259f167d7af0fb95b +977fbdbf4c84386f36a04025938fb937d5ad51a49f0e18b37f8db3aa44e2748c +83ed46d4a973f050cf9a1fd62b25f58b5bf17d88e2eccfb6223753a44e6a60b2 +eccc616bccda53868b317cc2574238e06f132e1d2e8b7545ea36fc7fb6968506 +64cd6ea7c4b938ab5cf922be0a0186f4e4a8625bd638fd181a18beada1a39c74 +31e67840a9a42ceddd3be18a42e891f8fbbcff35b14681a8c6c795a63e8811ae +01982254408efcdeb6f632f3bd79589e62e450950facdb43648172fc8938dafb +3db56d3932d3b267e64507085e2e08f110f402614dd5ac4e712f7c4799d39939 +3ca8440bb6377ebc8b0951930accd582ce631a72dc10f7a83e1b0ad6e2bef840 +265ff1c60d30b1cf11ff069aaa39d303bfe20ced38b1794dddc3d67d5322805b +c8a0ff2a90148713a01f45b568befc40925be949135db70d745a8fa00caaac6e +efaf97118f119fd1c18c1062088a1f988cb682e5cc6d74b15d3a03d10d881854 +8612636b7e6b06f90ab40705a5166b8860d46bc5c3c77ec825b1f4578c830ffb +872f81136150bcee7853b80b5af56742e4f1b3b5f149510ca9e96c0f5e707b58 +f13eb362c038ee2cd7ec96e50f97ca9a948d087b69fe9da064d2aa519889e976 +1b280fa1b034b298a1e3487d0da13f3d3be3b387547245e2ce78d20ca9c945cc +351ad9aabf0bac49e7d348f9a153eb88ec9828041a0cf3e176fe6458e28d3de9 +31590d929b8f7bd494cf3068dea0b7d0a8c8df13d39094ec965f6cb14cb0fb31 +957e3dd7be77c9679a5508cff9efbd4034aa1a6d39d1ed5564e3138bae30bd90 +51938cbaecae5085f08b88a3856c8798f92e964fbf917ca22061e48fe54cbaaa +a3ca6eac9fcdaa02a95fcfd2814ceb70f52de8bdb9c608b7ac71d6da87bb61f8 +3a840bce2b245a7384e43ff653e44eb6926bfa2c518a26d56b71f7a3e8de6a63 +7778c8aad8abce70ceb03aea8b2964a9436c1aa04d0157e2324e579fe25175b6 +2bd577b17c182d9d2fa2d97c28a2ba99abcca77034dd68a68ec6fa2c36cb52b9 +acaa0d222e0e57c41ece26be229187ddc91e03df8ebdf01297cfb665c8c6cc3f +8653e98db1837b29bc6f84fa0fe01f1e9428b5c140f359b1d14a5726aedd9690 +64c8923e3688c047aa6ddf17b96a79100024d2a6bb159585cbba90b1684045d6 +f824e7342eabb60dea659908b2260d74af16e1dcb0cba75242578eb1e1f008ba +147652be2b51a411e060a0bf72a4bee43d4ae1ba1aad56ab0304c6f85a637372 +20269504b5b1295b68a04bbb152356c2ab5232e9c9f6f89f7a0b979ff7a692c0 +367509085f0347369b4424b861471836f951b97444009aced38283fd987319e4 +17e8a80951f5b676fff4f496c6688905c4151002ef6cdcb4c195ca1ffe696604 +dafff17ea8fc52bf2c4a2e56557e881ca6ca9ed52be64c3f1c8b7fa6ff50d9ff +f150324921e7f086290f507a9c15b4a119993b3b5c294bc43c40c7da94acecd4 +b335e0400d8ae441941a233a9d6570883cba9e9e7ff5360e79fb5e944cf4eb90 +921a3d090a8f862d0071602ea7bcfac8aade06bb4d682d312133cff1a027327d +05d6ba704be1c15b03f503c341076c384605bc14eedaaa7c65c949aeaf9766d3 +db40e013c249571a1c29c19f1076986838edb1e9314911d0742fb666d732d47e +29206b40de3c7f641971509f8581c80d426b450e80792deb110490d3c047a405 +0cca72a6471a124b710a974ebe899348c13aa2e8832a007ad2c31ef9d9f61f95 +a3f2555889532f1bf1e71502605a316895b2f51314ec7ed6606df58cb1d2b5e5 +bb8cf5260a7ce66ce410e4e87d3449954be5f478f27e32beb05fa23dbf4b6614 +96b1d4f4bd34d18af1d5b9a3c2b813050f629173e94b6399fa44b5b6ed83b63e +71f0f8938aa0805e168a744e482bc5ba215a4718ee07f0e37d6c4dca84fe5a44 +824c9b33d01799162eb0f5238337ccb6ef32a4a6999182c37316f4f29dfe5890 +652517493b4632b68a5e95f926106265d5629b763d7700b04a039c0fe7c4f001 +d76c9094e55417d0da50477b71c6afe4f2217469a006aa6f047184847d200bee +9dc6882e862362bdeeef60fe5dbfd20ec25de0ee273ca77739697273751680fd +17200dad22c5279c536776f132ea3048d7cde91f74e35fdef34a6598d10ddbb5 +06f66590d610151f94870cfb2be27b38dd798bad8d0c71c3ea558d09ea8911a8 +f93a88ca79470a5bfb6d6ee27a33cd2579a9392b23c483ef9bb4a61a8db53401 +f4fc1c3d765ed81d4c7a3926364d5c65f9ceae3c8665d01d4d66d99515ff94b2 +34fbc123ef45b39e393919cafe4d75138a117d8eb96bba48506f4f0fe50592c6 +0ed889d89a873a3b3872b85aeb438331f9f34dbd833a8e0476342df14cc5bf50 +e9ad7580e9c06c3376aa72aa47c101dbea978d333fb1c85ac923d54e779edab5 +e52984bb6962c7885407710b5850f2adca1c803830a8c9ea1c44e412be9696b3 +3cc865c7a44cf2b8f869fac5505ede66aaa618bb532ca698912971ea8ca91736 +ffd77a505db6e6ebdccda183dd8590d5ae8bad19445c5377d2b3765a518938de +6e0aa90945fbbfde4c43bfef3caadfda10cffcccf715e1158a15c6761857f938 +dbca2ff00f47927d5b0a60a733f37e3064d5ae83f350f675477842d5d301bb5e +1c8e1f67804dbadd9f2750f2e558714bad0121fead00636150310040fe21306c +6a1778bc880fee5e38b9ffd5dbe2c23d60f516855b97ebafec02a1185a06f9f9 +66a284eb6a431b4d9686191c41ebbddd452b97ed6dc58e3dbf726d748f10efc1 +f25ccee0fa4a91d275179ef2761f0a7e79b0b561b0a8020d890ccd8e85e7e57d +d15bdf5d7798a4d842cd7abc494484c5060ba11aac6dae658232c01d76cf32a5 +7762396939fda1cffc72c273232794bb9e8fea91af248528c408ec39a1436be6 +ab783bbf9f00e2bd402a52dadb00a06710fffcb8740d4a822c52070292026cfc +2e1d2933de238ffb0690fd7a0124c6964a28e082c786b9fd6c072844fe8a10b7 +70f716da7a64617f58126090a3cbd619c851f059728b159b5a4bde0e0e93bcd8 +133e0b0bd67b98f2ef8fc13d36b768ccc316fb51710a9c8f8cdebd709d4db09e +a8fdbbea8d798e25037d3760e2791d33675d245a919b872174b9a93daf449ad9 +ebcb831312463f4d2661a000367c3e887485003bc9c90673028e8381f0c4eb22 +8d4b0c071ded6acfe348b76e44043232a893842416e33431172d041ad4be5690 +6313c4ea814c91ec72c3e2930dd9370726a5fa41615f8f12aebd34897dcdd4a6 +015a14c8dc0d3bfe379bb05f6bbd7aa54dfa9f119d6056212f9ff48119926921 +b41ae160dedb211e207908fd64471220303110da81e6022c0219765b849523e5 +4bf775e63669aa919b49cea40588033c1b83520cf0b417580b102fc58052f1fc +f0fdbfc57e4bbba5b108025953edae824830e0ae489328d103c2096f0165561a +802ffcc10c75831684179c7958b901c9c9fe618cd7f27444526c24d6f1b32288 +abb65a16c3dbc43e828b5a9072207aef0654fe171a1bc688e624a2c2f07a6650 +d88f50ef0357e84ef769a7e5dee65b43b6ed2576d99a9576091d6bece77b3ce3 +de96dc6d65b10125aa25782f4562226d6d15f4f3273f37c1a99c9621ef2f0f2c +712afc0cf65e12be4da48dcfabd800d34d13704b5dad99256ba184dddb70583e +0f1d3efdd07f9feead7b2015b02d76ba6f0d61d66173507f76d986291b2543f6 +bfba6117cb85a5fbf4d5acc2e1f4033e9a062906b9e081a1e0f075d28d54770b +9152662afc5b0b642a85dbfddec329585aa5e65c32ff9e4e9b25e98bf241819f +713cfb7e01dfccd2075553b3f786ad19e6b5d3d13ba47f0d800b290749a526c9 +65502666bae303206d40cb1b8bf2500b6698a8d4a66289b791468f4f49703b7c +8f5d087992f35b70a24caf747bdbc2e6469e0281533ce388742c5d2149a899f6 +df4926d13709bb88e23192eeca032937599ab4b8ef93984aa618eccf1f4cb06a +1442b1e915d2b58716dbb0da4c1c8ef7b0eb71166046d5cbff1031a01e21efb9 +6644192bedca2dcb2c4b193a91b91edf32193b4e7e524cf42676cadbff6aa8bd +9faaa6c7b786c447618edfb1c76a8e36600cc3621dfc1ba1fb63a9c8330db494 +8a160b1143d1c2d99e83c011c8faf7474e6b796a7fd3d28544ec086ac9d29854 +c41f3826d749c13b906bb99b28914185fe596ee62a1acceace8abc134564a8b8 +384d7a60507c144e6d622d7554b72a26a5a95572f1da765aa23cfa9548c33237 +b17f07860b0c14e2bc6d34e195627d0dc4adece75d134042e84603cd96939578 +1c6c6f407aba94a67d6406b2b57dda4f46405b2092961a4c537205fbb9622718 +89a311aa7fd60268c5c9b4144d88a4e8d210db42283ab2cb09271ee34bd7796e +da8966bc61cdadb5845c8dc43b288e92c0bc742755969b349fd721d6a38af544 +894d64b630d030d27ed1f01865fb97f2d191adf7eac737d8ff1e1bc245b9a046 +1a5627d7132751ed567d8144723ead630341d4f3f9916f392c6735d9837081ac +68d9901c3e1b60e588b5a162449195b9307a153766f2258f3cfa189ca4b5d618 +32ead108423bcd3a15975e0627f73a67f8c69136cfd89ca3f7776b17252b1c2c +f5d2ffa85eef5d9b1e0be73942a7c8d179e2fb1d81124dd9d6778d2940068a7c +e5576849d5981f76d3b1d19184110c8991132115dbf1e780e7df0a7241df5a8d +b2ba410dff075a4f91aee02773677a8b4c833c934ccde6e74d34ace4b7148580 +66299b177b6709e2ff572d06abb742105a9d8d7cc1fe1a01b4374e4f14120ea7 +cbd16c3072a65bd78bd24e8842634293963f8bd0c23553dfb27bfd0f800b3bd1 +5515285ee161a6d0e92b746fdb4a0d3d8727045e79e36fa76f20e0ffc132d987 +dc5ab4ea3cf0dc8b9d4f0e5a9d72eea4c94e4296162141cd74d1e4f38673624a +72f59b18126dd3391a44e9dcc754ccb9028b327e6f9d111deae18480de7d6fbd +580e0bcc88214146b362948cd2154b9100d2a895c1741106165cefe487199054 +a643772e10c7370a9e2c20d5416908b6c281fb4e83e15af6068db64db2892197 +07799483358740d519f7cc57e0426027eb33ab3012fa5d565f5cb2fadadde7d8 +fcf954cf99fe5627f8b2cea1fa76d56872a2ba7c5f1666bb8640227263e3e6bd +25c50c4a4938207dedfb73c603539c602c1391581fc7c4554bfd7cb186fd3b25 +e1b912f72b5ea807cd51479f803c46658f78110f6a7cca7f476db7df0e2c3bbc +3fb12d1e75fb9ff231ae18839b4eef27e60acadf27353597b10ec7eed55ebdad +6ee3df8af2c0f3641ac5b73f89660e8048678621b77efd0e36f849e610e3d543 +6bc4a0f5bc77e1ebb244b53445b219d3bad378683bc645000bc8a760e5c93550 +fe0880764cc9d15669dd6a23f70d54f4d15415286b7daaecffa54f940e64bdb1 +934548bb4b93faabff276b5ad2fc6109a883eadf8ad35c2d27fb0b839903c90e +1a0692982fbdfc193d188d80e550a75fbc5c0951b0a1e4de1043ffaedd1937f7 +4478abc4570b369152a238834cb111481b74b8fc3023ca94fb8275b4531e72c0 +58af1ccc221542955bca9c2600e71ef9157b43eaaf4d40f47d81cec81ecff561 +f8cd1682a37f06cd5b3963a9203c51fbfa1aebb8f82c2c4ec9b30787b1dd9048 +7a8890f086d1b76ae9adf5bf7de2230b444874e6f34185d13f011f5e523a4c11 +455c96b9a44229c9ab9bd5be3e379310556f3e086b977ff533930ba669569292 +49d80493c154495f3a37c6e6d9d7f6a778bd446e78bb2d0f6b3bb9fe1e9c20e6 +a9c777de2eea92af61dee0cfb16531d8df5fea9d68757bb86f3ba261c245ef1c +59cda35f306894e1b6e9a4b427ef92d6bfd624fcd19e95c6740fb7cc5ce60a72 +284d0d226ee59d91b836ba783dbd481b0922bff84177b80f67486e96a3a84c80 +c4ea15e50f72ae587d840828210a88350884fba15b82719853627266dc4aace0 +9409542217a10329ef0095e92a29e4464059948371ae9a3d6c58319a52052c90 +e7d4b67dfbf18e54c3371c8d01d724653d0d898132ced1a7eb20076d94da667b +213056fd6df457d3aa6f4e6c11f896f52ae12c87387d27bbcd4a524234cbb67f +6f366de696e5e005b051af2478e2fd2b69a5c628b1cb284bbb7f0b3f09fc5764 +3d80f3ef189bc602d14e512c6167ab9b6ecfe474488d29486a58b129666dce3b +fa545494c3b2f6a34bb2d7f1dae71979df159ef9b5204b5f0e4df265f4b2c949 +bec91311457d7dd90a4f4fa2f702f7839df02eb8ec249819cf713b8a2fd135f3 +8f2bea76e84bbd50f2653dde51904cd9ec30fb30a3cf7ce63c8117e66cb1e42e +5e0285293faef10a3c97f7570688bfa75dea27af4186b33fd6395b67398fec00 +25da48a74303a1339b8aa7e242fdcc97d6889bc1a2066e4478205607564147e8 +9914e1d946c72ac4359706c114f9e769752a6fd1f3cccb14a7c132f7db8e373a +013295a1dc26d4caa5ee29676e7afe1acbe2bb35eac87ef8430415d98ec57012 +9005ce579a43b1ea968532718d2df5cef8d1d9d0f63ff2571ff92fe3ddadb156 +57068109ca9011738cf90f2e46474f122dc8c875eff23dd92b2bb1b59d1dfab3 +8c850c8ece0bd7c7874c24d43b690b3372c94c98b31141058f2c39dd3c461194 +3fc32c3b3dc18000567f09f1eca85919ea78d102c9ad59dee55ce5580e0d122e +70ac8a1459a2c23b25dd2171186750c54db098b8d6d214f3a1cb9c91f7a4545f +5e4264597a493f7a3ec9c66f6d4f820d0b3b5d645f7a6d94051c72266db25bae +780d298936dd67f594bbb737af993fcc87384be16b0240a4f591aa02d87d660c +ec8e91a3180c8d0ca9f4524c27ee9241e737c1638d086bf75c62dcc31bd3695c +878e637261705bc7591c6aab1f8146879e79fa7b3e64ded2f0d9a804bb09cf7c +7cb92ecdb39820505d2d5fac724fa131437a4e94744f962c5b232e9701347cae +d2685a67fb9c2b770fd60b2b2c1570a764f4befe0695fc6fce0d3fef206a1974 +f9921cb1d0fbdda2fe9b968b714adf525a9ca42312121d3005baabb5d13d223d +ef1560aa667b7c62ce76a5336c42ac1e4e46f5c00c8b8e6c3a0ebd01e735e8a7 +3eddde63ea46afe6e97bf3b8da41d1a229252ccb007bf59374f5efa4c98c2e2b +243ca60f74b6a49daea14dee226b9d0e607c87236244c9400fa44f3324eabc84 +8ee39da18e0d1b41f81e28f3a66ba3f4581fbd2add9c0fb81caef44a4c51da7f +21fd932155561171784ea65cefe5d498701dfcfa4f91b088859f6444bef177ee +935171cc550745c318b2718afd7cc0b8d5fdf308f69a81136498bfc35a30f30d +7f2bf8c264bf0178ca76f1a862d39fb8015918a0cac57161a2d2f8eac88549d5 +cdf64c97975b25103f47537f196c6ded385cb11029c9177e0d245e58e8d1950d +322462b55df6498b891b3bea0ef7d7e284f66830b4a151f1f9c22b4b9e0214db +9f34209abcfd9f16b67fb02fda21b077c3e2a9c0cfdab1b85fb3ab45a507ab8d +c15c904023b54914307539e930d4db5910cc0ec238a4bef9148b8df40ed10c90 +3e89c69a29ca3485dad7d4a8d975be9507a2305e798f845febf3c90ee5b79fe5 +c0d350d50c6462c343b32f6e768a19a3a94aa9c5a42b3d2c12cc15d42e0bb800 +e6d009e7aeb59b85ef01b64b71f6d34972e2918f487b87356952bbba365e8515 +34c5e4597f28921f87fda175d16ec0517d2e3178a4ec46a11bb68f4f34abf539 +482806525297e1a46d25b7b08adc7193f2392978911116a605c0302bfd67adde +9344199726f0eb987bef254f511032b98a917b2a7a938bc12a10d48a73504bbc +6412354bbeed31a54a7e0fab8924726edb2f79eb4e134c7a9631aa8230e31e3e +efc2568c6026f0d1e843e812035551eff424ac7c419dd26a2f9d5c8d7abb5a0a +732c0d3d30aadd3d73e7ec56023cafe20d98dc46aa6beded8cef1a1d5a5c12fc +85f353f7ba11efb38ccf91e31cfc26a76fa197746df672773a3c67a4f19d3fa0 +42411e36049e5b40425ccb17d66de7dea5535a9aaff06c485b46724953c9ca78 +56e703b7b0b109a0ec6d1a0f64b0d0cdefcb157e1a66202149f392be259fcfb3 +b90813408a5550d1d7efd0a7dbe2ccfeeedb655f4009ef60d80a5b203fc2d3f5 +d83885af7a465c6337e5e0ee014b2225ada2d47be3b4297b574000d94a551c13 +858c5086b54258bab7ef61fdbf4c08f78b87380dc8627684df1cb4d2e5d3f1e0 +7d1e92c898a9b7048b451cb1fdd7b9be6c3d81f9f2845a01e45214752fb41865 +9d9bd71488f5e33c3974a2383ac182f9c827c86b233e6d17024fd5a52c9152fd +8f654f4732bb511b1a5e9e0930f546daaa31a3f7b717699862e908ea6e776d3b +85ba19f40c28c1704ed40eaad07ac840a1ebb89da3c2a0458eb63f61ac482f78 +16f7b3c2975183b8940328b9349c0ee4380bf743b605d2d888fca3fb5dcfd302 +e7175b849b545a19ae5f73bde21088c8c87f6635e180a4bcab95b3eaad44f746 +280aa849df5decfb645429b5cf0032c2b35718cb6fc1dcec7736266f2d775002 +4f4057f3593f2c693402d0dbda82b71f4b6db7658dcd2e9b8dc16b3f71598fad +8b6847d7cc36e6369432813aa3e5b5e162e0f84d5dc0d5e29ab7fe37f350b77d +aa5a705c3925310445303cbaaf57ad76ef3937cd871bf6e350603c4676f8fce6 +f04f8cbba9c6391662107ad4a1b9eacbab6ef0f7811e38fb0e1f1ef105ee406a +1de3ed4c04240b7ccd44f91c9b525a0106600e0f149ed16a753f178a457b77f9 +ba4fa39344f707bb65912099b652b673fc95ba3fb9e186f67abdbafe934465dc +12240c0db033b5d9ea704eb0b90581b86e8422c5514d28e0951c547483a523e3 +27290145da0856d54f5852cdc3b37ef6b6a9f5de2b199dae290fdd0dd3356e3c +c26aacfab1d28b5285be0ed573ce035ea8f93a8f90d00d24b5271e8499354ed5 +16d99335dd5705186137eb676101a21c79649df906bc3cc1407c884712d76456 +a6a0d82d9cb5d8e8954090692cdaf9a225bf3000155fcf645c94af63a5969cf1 +497b8e5c841531203de45e56a8a6a3df4158d75e6530cb700f61ab9fb8dbaf97 +a64b0b9c82cb7c840d9dbf9a9d3689e566f737b09c2404eca0fcf25de22d6953 +5605842dbf1e3aad27f8785b5ac186b5d2611630adf30edc68a5325fd379b2fb +062cebe6830405ed6f76e7cec183f659798910fb427bb85dd5331af9ae108b5b +673081e3bf2aa46e0ec23880efe3202adbbd3ed65c9f814d4a17467720d5e436 +8c8e4c4e689ffeb48c44096c017275395ef09494c9829c17767f3f5e15dffbe8 +7a1845f7e5b71035754a273d448641e521a69fdf38b50a90ca69c65cdef4afa9 +f67aabadecbe6dc46b1897f2045b8f06999b7442cf047abcf901d5ca778adef9 +3f7d71eb2067d559de8b7d2610c78e55bfc94f4737265feb2bce7b580b411cda +006fa988d1f9f8b5169bb699259eed3d414c3fe933ee31fbed7e0bb10113cf07 +e24360a549a9859b0d8fbd98f25dff341962d74891f5e68130989c5903343d88 +b5c00d9c573736609f09ff5ad1b68ccdb90f53eae4a43e26f003cceebba47b3b +d774e878ef009be9b0e4b5f48602559fddea82ad860643969158582a9c418185 +1b6dd3b5c41b2d5d99fdb2d0fbf7dcb9f29142f37f79399f585935da05c5de55 +2d747cce829789de7a7d63e28e2ca010f08ac41460fbd7cf7c2f401acd03a3d2 +9fd94c4688e627d4d5a41fd7674b61bb4ea7d9b9735d62d4f71e145eab1dd401 +d90ebf4ddbe21e8865117fcc940ec652e771c6fda2d74b6193a128429ee5f8e3 +1c508ca9f1a4e1b3c17f0b0aafed62de8bdbd3d2d1e068bd404adfe8788b0836 +f911c270502646024c02ad50e01c618c2e0580df3344ff172f6670ae8013749e +aa102c4df0cf41da6fdda24cdf6186a236f8821c2fcff496dc7ddc63b81b5897 +9819bf168db06e1a166be928b0fc4c567a6b683558731764a524d25bcb38c1ea +034b16ba7f92180e0e5d4ba5eeef2cbea5da5b2de715baf5371d686caef66857 +0697aefb8dbfeac95fd51c3e0ed814d8cf6779c144b853bf36dc3839b4fffd1a +154cb1f1a6632d3d96e52bb23412cd09518201faba4e4097d2b30290be93432d +79c0002d3dfbce81fa061affe5bca46e46768bc26ea3b8d1249107cee4669148 +20559e49311ac1bc57e553216cb7ee53865d4b2f4416d26e29cad3914d54100f +3d392ccb5022723a96ed2b7840998e2f6ea3e5d76ad05adbfde0c7ac908e15c3 +240c9d483e0a076e22d7ebee2061550b4285bc7555cda61f7b322604eafe82b1 +060310ba5cb72f3be139b05a50cf4d89be78cad3fa61b82b7e00167439a53ee0 +c08573554a6e1a3a7c8c41a8a3f5f90a99fc2061af8d515048562a8dc0409c13 +26eee3889d28f7c059fcc72286d576c4a578ecddba3215e09b793728d0809e16 +5529b79da55654025f9cfc29b3602222ebe626ba4ec6921d20b4bffc65b92b12 +18a47798daa35369903ab19f19fdddc32ae80debbb673ca308264e51fbca4e3a +b6a86b01e92c218ca7e9442280b51bc6483efe51194154ce42ae2c77de5e8200 +4e4b2967dce0a6e668296c0458400f53ba82553ceb771a638cdd4b67f8604afa +7cb537397a8f371c82b503a459cb2efd310d62f1a36d3578e840e0bb59790db8 +a282d558a0012a5f69e89b9065e7bb9d112bd5ae0722f954cdf3ce6926b8b9fa +3ca5ca8af594f080db65859790cc26fb8427a7d904979c2980161f60b8890798 +b4b167623fbfb5ad1192f6457affe12c3d5014c9beb30a8c82ecb81e281e5519 +4f30834329f7edad2f63824893b0970e12707b6b0e0526532ad86bcf96695ecd +9aab36a3ad54cd4c9ce53651b081ad80f3a511b202cf247e8194f2e9bc09d3b0 +d1fbbd30fc61e23fbde66a1d308879cd5b55328a03f2716a6e053efef48af9e5 +67b5315dd933ddc61ed5995088bfd7e2cb856ef815ca5fb034b37ea45875ae68 +3ede11a5006c288d12b5b65bbd33d398a764491b4400c8fc3fec83e974c0875e +512a462521cf2221911e06dd58fe975ff1511460cf4d14d441e9a40b4cc203fe +3e69b5bde7413bccdfebf6f0062d25d1dae155121945b172324ad520ac0018f6 +65d04046c2e30fb9748d3fe663210ae2291c63d7424ae311fefe2dd94f182c2a +ba0777fd2d720c9dfd4da24b7eb3f2c658c5f872263d8c52584d6d1d3634ef5e +e611412545b9f7a1ef0feb6b4d2a0824f51e654445cba2247f0e8d7b08118cc2 +12a32fbb6f1d8785290fca81c9479b351fa8df646dfa4072fc91e5cec339de14 +e2cd5463424e7c2ffd6cec1c81621d20bfe1b7741ff1548574ac299b2e65eba1 +749066255f2d3a2f1409f764c7c8220c96cacd114b3a693c3b14a6a2b15e0385 +19fb3c01e4be5f4b538b400a6da152cf59d1898b2eb2ee3da7832c53fd35d468 +1ec0199e01f4d9300bc2367af6f1a2bfe40f32239239842bfb98970f5fb599d5 +f8d9e70096b38b30dc608dd368bde84887f5ea03185d7fb97f03b903128c92e4 +3b363c755d5101f861b8e980b36e5c70a6b4f9329b4132df65e3b72b37ad128f +1bcae69ef7bc9d3b637a2ea4080f01a9932e6d20290adb87596d49531a6b223b +99f10c8fe5f1aba938d343e4388c5d3cd0aa06aae35d1b3784f43537466ddb0c +389441c88d003100dd2b18ae814870500bc359bdcff9f26bd341c57947be3331 +11efe081ba7a9b427f1385c783783afce90adc901a8d7545628fb19907b8e5e5 +037da7389842040606552c1047bd8f583b426010206cfe52b8f1ba70e4885b7c +5e06a4087bfdfc9f9bbb94972a37f82d3acc52a5daa93e22172a1f2ffde28cea +acc3b0bac7b5caee72177e82ef621e0f6bf43f17710bb740cf8cb58c054cfcd0 +f78c827099a5ebc612c5961ea844a23193229463ee792212a836585e28872856 +4e4b14e0d955bfa053ce4a7c3245ab1253406b480f70247d7a5ba92636d13926 +ccecca8dc6083c5066b3618fc42d6fc27745c51ade1b82d332b2a6fceea44f1d +f0acd6ef6f67edd92fd0e560919e44661216d8c961fd201c50ea512ca102635e +aeaa1c3944e465fbc1ee7018797af9fdf568f2a16446d8b9fb6cd6dab0510f1e +bdeb134236ff8c5177f6b19f2b836c4b192c29109859277054104806c88b9600 +5e1c71de443e12f56b486c4f6962ca875c8378845cb80c5082314dc4319a25ba +50c4dac1c4f00ebf780e3974894ca4d4981e473ab4f57e5974bc71d4e0e94c5d +d308506c751775ee7b5d2d217656153457fcad5ecc22fdad49ae3cccb48d98bd +1da883051a17ab3a8cb2fa64859fbb717aa481a1c821d33e2717a746f1fbdea3 +51ea531c1bb769bdd220aeada686bb321a8fbe646fb1f22662c7352c3220e3da +3f7cf5ca80d86836c05785d41c13f8ced0e417f985d936b91f439f2ba9490a96 +cb4d13f1974f1d29b917136fc496acb3902f632dd88f8e53f1f5d3e18d220e56 +5ed717a11d4656c86249585e246fb9a6e3d762b7d8dd56a4a729a6265323a3c3 +62baa93a61368d738ff19510d6bdefb483d22db1abea00b8a144a86a538c9043 +5950cc57aaaa91a79644f7f510339823a4b602bfba9c6640b8ff07c1a41fc06b +cd390b3b760c981be2b472cc7bca1af1efe641820075fb5c93e680a621e05146 +afba1f2ecb46524d0dd327765370cc48131eb91803ca3e902f979fc09f5e8532 +87b443922d7d60bb7f0253071619d1e31912c44aa70f50875e962484b33c55ba +e4cb79d5604c8e65d3e7b79969c269203e3b75ba3fc2d0d8216fd0acfa76b3c4 +6a53100cfeed1647a6b5c3534fa199c67c52b71606382b50d4f386525a77dc88 +d62452a654340aac6f62cd9302bc8007a370aa332153e29b4df6ceb58b2d6fee +8c84a56cc66296a3599f325dbbdd268669b07a29ee29cecf1b7351be6cb050a9 +076c1e52bd9ddef4e553688ce99ecaea7a0f89c0e2b651ac839802102931da2a +22ecce78d190c103f9179d917f7a6a2f347fdac0371a955402d9c5e98bedbd37 +4ae8009bf4a46e119f91820f418940fe19fdcf7cc1bd2ab5569d08be57a8284b +4bd119ca5e4d3782d9a2aa30653407d4de122a98268ec1d55424e1aa718b6bb8 +db63d9e2e47a293ad7c0cbcccf38db5efd651c29573ad26c39e863b71bb228c9 +6eef97c80d9e975c678a26044da564a51e5850b88630fbafb73204a5f7e34449 +929ef760d05cc55d231f090a215e1a783abc00a9115d1708e3fd1aacccd5d5be +e135d13dd7e9e195c0d1a9d396e49576a6f832a1a93c176ee4c0d1572258a828 +24a1e103bc83dd7bf1ca8d9515553717896972804638445b3ca9e41a671f001c +6f080d9992ec6c76ebe5f624853f64cc3c616d0b10fe20fdb6780c8fe47192ba +1d2129049016f97d52768e92e3ddf2d669915f3f1ad324b8ff23805671b0a88f +4d225e2584fc6763f02e46ec15fdb6cdc44be16df5a0c9e87836288b822d5155 +272c6b9acdf9c14c70e06d2ccc564b9de022f8cec9730546711a5715996574c1 +b1040c4ab8942c097e1a0a8de7bf2a97cf798ab1b0402fe729ad3b9faa69c65c +6bcb51e4a8c45b1a599ffd146f7ca52c54578be305dad1ff96efe4503433fdf0 +15e56695d9c7c64e636e6cbe2319a5d84b2d627d3982824e75d895eae30720e1 +6473b797f5b28987987577a4b46acb49f5d154c6ee402ed9114f7db3bf939377 +0635c503df05d4c7792522000bd03f24eb9d861ce394f3226b9f060c7d020ceb +d493c02ede0463a74aaf120dd1cf140c2e7f5b119ec3556ebc5eb6994bead7aa +ab6e37a7502da756e41d25a8b2a4981d082277286e1847d5c1c493df2fed18fa +e8c2d9a8504b514e292dcf0aba49c437ed98501a190719aff0297baf890a5b54 +e04bbaeef4aa47a881cfaa7bb09f1d7258481bb001098737da165b47855932b4 +b72b35e22ef707071ac43ae4e7eafcf027eef76dd351bcf84ee0f749e8bc0bad +fffccc385a9b1a669136dec710e826d99da70d6e6a2aaebc6fce2202abd0be21 +3d49c1b7bb44f5ce022d8c617593a26b957cbeace2e9fa3f38c2eccc6abfb6b0 +3920b85d7095379fc66aa854372f6dd0bba86821ddc1ae34c600f3a8f747cafb +7c13e6548467a8d892d890f944bead7cc60823059213005706a0f5af1fd4fb72 +0c33fbd02b4ab8141772c350600961765848e72069e4c0a9397e55b4beb9a1a6 +319c346f1375204e421bff10a2de0d37adee62634b2fa6dc046714f14c08260f +2856bb4324a31a7a27f801efc888bf85a6cf8f7df4d19c1013df008a3602ad15 +447d49d08a3eb6183af91cacf1920c169b421bd7a6628edc236f7d7b73b9bd1c +b86bf2d7648253e0d2ded5e81843f190064fd37aced6ead38f8611498faab564 +627320e8ddd3f373041722d98af6732ff47cbe0ba9e65c0994128f4f2885d45a +6953f23701a306b0893a2d0761544407759511c80e057c113b2dd260046c7e91 +0cf9bbb08d0ef4d77b5e0e83b18d92a713a8198a7b8c4de9d4c25b92a5014386 +11dad124ab5bdf74bbbf653bdf0e1286ff715dc0fda04d4e4078b1693593ea62 +6feecd025d23b7c4b558a14d7a04f18babbec2b24fe612d9b04dd2c9b8f45446 +bfb16aa39bdcc9f429a27f16138ec7362e0becac0788969d24dbd13b6c885902 +30af43bb9eba76c66515354203eb790f122af9fe9464312247275f039946c061 +e23c724e9dc9eb215bb603f5ec69f33a7a863d01e0c33cabfd52be253c826a75 +9906c67e04c5ccb2921ffc06a6a101f598e5095cd5027a014865d58f65b435d7 +e8df671e19136a1f1b82ebb8980589e3c0fe4b97d13623ad45faf06f3169ce0a +09477bacf10f3e97d2cacda589866dcb82bdad25ff8f3285d3980fbed3455fa9 +bee1bfbd8abaad8530780e8c8fc6acc2b7265bf0159c61ad0f638c1f8405ab79 +e7e3c6160851e8b7bbac99ca699cea7858093ad4643a33d75ae8faf91f835bd7 +bb506f964b618bea1d16b53d3f82682fcba33641d6fc5c3e962488c6e0f41e35 +e72d4ac01e830056a2e59decb441e983d99478ace0e976bcb6c4d129542b4b3e +3d125f02d0fdc7ed4ba7ebfa4a4133604afb514eda30723ef39a3ec9b156b69d +62446c242dfe108964b2347b1ac672f95dc6533d5a18a8588b3eb85c12988ecc +8e47ad27abffcfaf9e0802fd405467d3a4e53569b78a3461dd04f7da964ee0b7 +16783f0e4a5d86534514280720695825665b2b897b5b1df5e105a1b3b8f4558f +155396dee935f33703c1edcec21ec872eee1947bf88a5b374dae028336f3758e +a4a2b60ec629521a023e7a8c1648373380dad586c854c2dd6c8a66b2f8d3838c +0f1fb147da2fdfe64d6ece99f07e3a06eefbc841824fe110e436ef96b35a1d22 +21f6ee607f03d7e2d42a9fd11cbed242d09cae0c1b893658fc2e9a0989a4f470 +45f41535db18427bbebbab0a124ccaa4b688f553052001d08945ed8738b03039 +1746bc146bbb4a126fdf15448ef86191ef644fe9a48ce7a6648ce6e726a81817 +82a8960f1d0601bc102de5035d7ab4dbd2558fd6348929fcfffa24b16cc54ab2 +097e9143da8b6e2a53da13a68a496750cb3bc103275e81bb758af55c3dee6737 +3d45cfcc8f8ea0126e1e84a4d84d3fb4ba4481c3fdaad535c797e059bf02d9ed +d41d8cd8e328447860e92ae464e47a58f51c8ea2d8bdaa238d91b64fc88f3946 +20ea71321c433eb6221f9f7baac2d61cb06446315d517e3eee827b6f73469306 +1da8788d59a43aec654d688970b044151453076ec26d940f2545a3ceded9e2ef +60adeb042c157c4d80c39f7301813207153cb31154630b05a9602ad8bc2e0741 +c47329c7d747c80316273bb726e6ee87bae8fa3cf0ad22dcfd6d9af692459d07 +6cc92eb7a9ea78d759f3fcf3675c31c71f7a1bf9f47483eb211d940bc1b2a2d2 +e88149bef1cf7f539db9266c2329f1469f128823e45fbc33f2ad7210d3a7203b +f41c60ea16b21f696611aab3a62552037fbe95012ac4a459a6c19c2c23cd3222 +b02aa2d6a8158f5f6d4e1e669ec566ea4079b87096f2bbc19bcf196d51eaff7b +429ae4628927a9a5c16230a8fd6f0e5f652396aa94de3ec9b2b67eac09a0a6cc +983a56dc55c6977d039725e9918d00e98bd598593ca1d0847b4391273bf5cb50 +4562c14eee738de09fbddbd313289cd51f11ad81951be73a6c49a7fd2c10fe3e +fffe2b35f54fc10993124ebf3e88349f4f2489c43f2c80557ce3ba79fb198e3f +e041111696696d07e5fb4b6a439f43c33601426ac65700515f29344299f18fca +8a26a0852b5240947925b864d91db59995cbf1158ad0189e108452c5e96bb477 +954fc6d2f8581e4af6d1ac4935b84696b977349404cc339611324fd76c737c25 +a331f1cf43f0add8ae45d1e27ff743e691becfb5a47ddf0afbf335d9d8c5963b +ee1bf839d511d2b0de3b07a837d1175316a7f94ef0528d3f8dc94cca211620db +6f4da6f46fe3eacd86f19b981cdab577dc969cc9cd695c3cb9be7539d7604133 +a30e227f2ec8c79561d8f5e1311225dc8476459106dcb32b1769324b9de23afc +a41a28f7e42bdaf72848ad408e8c6d2555275019d3a6391f24f54335b202c350 +319ab99f5daa2548652043db0a2e53198ebc29b80aae4b0b88e1ebbdf4cdab7c +0ebd5b7a3cbce0720ebfb86c41832c91e947549aec4fe3e9bcffcde2d83f63a3 +ac8d9e90423c04d5e0f8a181b2d4ede788b86d236d2f8875d002c00ed667b1f9 +378952e80a8b59a6defd4f38d9269c0cf89833c886ad0945f715839a1633d27f +b8157616e0b5b009a95ec2a85a740ca336305de3fbef75382c09fc9030cd9795 +f7717f073832af434ed4623dc485c325694e53a1eb443739276518c78ad32248 +11447e20b4e7ca4c7d4ef7b49ed412582414b35f4d457df735f6ce053067a2cb +289a6c36994466d9800971f5797735a9ad4355404f255bfe479309226cefe2d5 +da9409a087ae100441a578b4354b74a8dc4be3acb8757534206ab8f0da8152c4 +ba61babda725bb53aa37475a778988c3e84029081852f0f2be114a98f46385f6 +5e3d459986161589455cf0b7e112212fa173fbf20f65bf1f4588338e2b05620c +2ee04e2fb0c8aa150e523fbd82d065248289057a3ffe946d751105aeea3cee39 +fe804ade979ba0e485efd3e3b965b8d9bb283bbefa6be9acd0f779a23e605fb1 +cd2a8466cb8279dad96eae14ef42b075ea97d520df7b0afecffe0bb7f1728417 +9bcd070fded5d3b8a1f44d1b11af7c7c6a7f63f06fd84018f46158c2e07b9ce4 +bfb1a9b8cf4af746bffb1cdd3fcb885602d2e36d31966131a6cf9fcf97d5449f +6b97b650c06a253aa0716be82054881cb85632e2ba8f8e206819ae30bc721009 +2d34e1c97c3de2aa059c6a2d22ca918e20e263d35bfa39b96e9cb098f556ecd1 +11984f44a9187f6e645c7b0105b52905c82efb94565fc95e4ec55ebe03557e16 +1ac207c0dca85dc12d10a043aca99b5c9aaf583d2aa8fd41f41f9b31696963fe +a2d2517008b95d931b2a5df400ac1015035c09bc79ccf0c6365884c08287dc87 +9cce800c65bf76f69e573e3c88d7cd99c0ff058b3d6e15f220ec784e8c0bdfdb +5f3491ff9569af2f43ab0459b30be6ea7849400527841350ded83f9d1240c7cc +3559ae081d4927a809fc10cc833617dcdff12222a06f8fcf3e280a0769a6405d +7797f3a58d73c3ab36bb88215437846dc662b64120f977fa544b72ea8d321030 +b6f2429998c10759d7a63385e50565b0c2316ffe6e4b51c29c0b010980f1afeb +8664c750ee7d618f862ed441ab6bb3df65fb98f855a4ddb9bb95e1a0dba626b2 +51feeb2726169f2a5e2826a3548246bfa3972cc4f862ebd7d106b0c847656d49 +ff92f58d3fb194ebe093ee9315b1117fc03b75f270fae86c5818e77bf1db7978 +f7d171d7416a02bb4b42f643d8c85b2cbd208c80381d77a3646a1aaf60afa035 +21173ddc88e389dea03a7ae0fa2175103eda21214df14d4a73d4faf6f92c35d7 +6aed957c964c83361e50f1047a34468e95a810d961ff08036e5c1727fa233879 +f111b475c585d2b5f72f35eeae5ccc006ced57e916d0c849091bd27baef60e09 +af481e2d6b741da62f760c7324607ba467279ed2cc26a24846c9604d42092f8e +cc29e0e2c3f34ba58c036c63b774fafefea9368d0fd83e050187484d8ceda8ef +e6dadf2527a69744447b12927ca0a3161e819398a7bfa5f08bf3ed20c0b6d014 +271ea297da421ab506d26597c863598fd7b897d26b7514d7904ee828137400a9 +0031da6252125a1199f740e3c90c45359d27c695c6849e537e4173dccbc9e1e4 +e92895fea3a705929e77f06c3384ecd6d30ffe2057a0f5b654d2bdc680e0427c +f1ae6b8a1e3ae6a8746d867ac44807b86dc72889f415eb543bbe6018bf2c6dde +86d44a984bf04e3822a7e604f58b006a1718eea01e36858d395deaa7925e2e44 +7a9e9fcfb71a5c23f8c763b8e6505fe8c17f8dc5af52b19ebeead87e078082d0 +354432c6a726ef3697f5df89bd938ec4902f6854e0aaaf5a7e030a1c1f8a9a96 +36d3492ad5f22e98f29ce0cfe575ce63a3f7a04b599580d33ad8b5251a396fa4 +db956d6f8d75e426cc1448cacdd556af8d1e1a490e5abdf326dcacdbc3c47755 +172ee74f2c13defd1ab4fb05bce2a2750f3c4d0952f8451fb5c736268bd36ff6 +d17c2beda41c5e4d75813937ba1562d7c3092855711b60a476ced4bea19daa1b +7f633879eeec4f76bea7d75a6a233681400b8912690fcee8417c4de875930a4b +3aa0256dfa305f9d3c4d77f98ddebd4a37bbbbf229ef2b2e215128522296743d +1ebfe0aecbd30ff546cc33081cde3abc7bc8320ba6cf824c189d31a5911b58be +7ee39c538e97395d94b36396eba5f140911d1156f0ac03945cb920f299564261 +7a41df7255c7d308e663b53c8df7ee8da507079f20c599274142e59721ea21d6 +01f3cecada7ed1deedf23eebc6a9f95668b08a45e2d34e033e96a3d40a06025f +44fa2f9505fb9eeb49a19791cb187ca1382baec6fd2ab51db31da77e95e0c726 +c0eab7e1d5cab91a06e028929ccfe0dc8f3f8c5b324ac3ff628c12d7cfc117e9 +cdadd96afe76973232d3d4b35015cdf8f30d77a41b6a561ff5478c2e1e0e1e6b +0b036dfcd54233607db0240ed765315133c90befe834949c470a7e132897c7e8 +cae34367610dc3eb123c6140d31ad2ec7799189906f7dd7b7e4905dc5afcf2eb +03325e9459c1ae99fc443f7b8b3a3cb01b2a2b17a42b8121c5cd8c83b375fd75 +bf83bf172395f3c95009fe319fb028630a7d0905b47fa2f7c8794fd32a6443cb +1c953063092f0b338818868df48e49aa6e134b6022248a20920456c693dcabc2 +b33a0aeca0c98654c6ce705fbd367dbb7486f6e49a878402025d3466944b0899 +a407b187e8bb9d07a2fc0800394007cbca0de39896b14c67dd99501c3407f9df +489763c2caf67a698913d5e7e8a22902899c590d8c47490a893d6245e27ef31b +ef184829c8cb5c7cf358c6bb2ebacf26cc6904fc9d6c4678340a42e081609323 +47e49fb45d2940fd9e7a905cb76e42b51ce1e69d7b990ea3807e56d1c4bc8cd5 +cab865910ed8ade413af57a20af437d6cde5581b3d15d78bcf52ae5586ae1d3f +6d8f052e2b4e842617c8341c666d10e573f950d009d15610e3b4a297783c26fe +502bb6f07a4f9c10c4bd7d6a17336feb8f0274c0672240925e64b76830ef88ed +4e3f7578572f4b54fae02b769e63357c6797453f9acad2636ecedbd309aeae25 +8d53024b5340e46556051eae86e17f94f80283692ab6ecf7a21e485133736e9b +f00a189a58037af7e6ce33a409698a586e901f2e2fa03d53f02d20d4a52bca89 +a78893790d028f88634b1ada5beccd99c48cf02174ba417baa29361f74fb4be4 +2f8f55f4f5922146fcd74d16b4f59fd5b6d294af58fd472345d751d4124ad70a +e51ef88f3ac585d5a776f026977dc229c81e68b360f8cef21dcbec48844f90ec +997e1901d513430719c2c96643cfbf5cd32e80eba160122cab14f36c7cc0e4dc +2d8fa3fbd052969fa8259eabde5bd22738943c006a9e1218ed697896fb545488 +65109c0b4e4e843d8b0e27b429a78d1277ac999af71ef7c31952e45b0f747b2d +793734e5e7974cec5ea1753af5a9471b67edf56bfd97748c28ace6392238d0e1 +5d448cfcb36c8f6b1c56cc5befbaf65e834c80613744bf76af759eb735b9336e +bf9b42429c88f6586e952480cb73dfc7c63524b110d59bbc4a77d789063dc260 +4e3cc5f1c2097d8c6800482c8d39147a403a9a5080b0b9d777e1f00c815685b6 +0a01426f2d75f1386ade1d9d32f7a16f56905970c136fd7ca974a8aa5598c937 +c46bf1f9866e899e1728e8cd6a19adb5ddc76de33696ccf288cc2a68988c19b2 +83e21a4166e71ac1eca43d29f4aa850416dc8462dfa808c7ce1e3affd5a46cbc +f932a6f921ea2c1e7d920be5667f963c1dda94b976f1dc0ccaaad5af56750330 +271171197888fe90a37ef2fc0f579faf60e1d1075710780be8dbebdc2977c4ee +53bef52f912acf44b45bd8d0ade66755f325cd7ac00e72795ec9dfbab4c1b896 +8d1e30bfdb34a2491dea6621d3be49bc6e255a15a7aa7a0657ed4db707c047ce +3e784a3eb07caab85420934308adcbcba09a09a7d03faa5c79aa5726866bceee +908f32cf4db4d6f57cb4648627b7e0fdd2fb570ee190febb1e55c5dc951ec361 +e7213208762ad15b3d801bb0027c01fcbcb0ae0cd083d2b364f44cbb64b7bc0e +fbcd48cff010e1755fe69a21337550dd5b58664b63f67a826a3965cbb802d999 +09b6166c4643184817811d12c0d5993df05786da29993f9b6a7050a14bceb186 +0213d5d7b9b82dc36ef3e19420bec516afd1b27d7ad03e243530c198a111bbca +061b01691efc83a8ac9a6d474953f12e467ea3f8f61296ca8fd7447741c18727 +ec4552c85106e0284254b8b8e62ca7a8c07a415cd868df056ff3c7dc3b76c802 +334b70e6b9a08046cabc7bae845a1abf759ef02ad0ae99fbcc17f92b5976b0c9 +7aed463e4dcf547d349da528b9811b5e28c94e6b250aee6add5d3005afbd09bf +4df12c98405835675732fc1852e3a193a8844c71973e4c1e7c9a131b3b72fdee +5abeccf01f8074a8004b4c10492de2274eb6fe70fbee2f07da0e9693751fbd4c +012c1ef4a62a6f41ab0d416a1a48660fc1215f5489e660ff41452044d94a0bde +354a82835d1c0264bdd4ae12c8ce33af04560d96dcce0472f412828841b8e1f7 +5f2551bc1d21afccc5ca0c2e901dd5915ddfb39e0a10a51267d087a9bb5126ac +16aaeb7ec76c76b97cf688d1b2294d800019c50f0a2ccc17f23c4159c8f70aef +2a71c8abbe494f5a7b77e210023aba67ee3ad72873d80d9106a6a904cb08110d +2ff342a5e7367c65aa623357649905e04cb48aa40aadc450cde961ce8b99065e +43c1206686871994f42d1ac390303c9a56406b21568bfe7c8005eb4a1afb21ae +788f0d52e2e9bfc0db0a8ee972fb2b4ad3d89a49a994c78184138adcc6e5c492 +137e59ffe9bc6853e04b50423f5c5307b4dd24122921ac718624360aa1c28233 +8cbe833cd2e0cabf04a7c6b2dab874253ad1caa1b1fbd54e0f797c622486248b +623d128c689a3fb4ad54a8354feed630c7c053eb76a11a5a0280d7d9e65d9c4d +270d3702033f5f4175d70ba59c7a048819e2a301b2c462bc376dfb095ce0de0a +b480bcbf8c02857ea59a95e6d7529bc65de9de53167f5cbf185ca0b3299154e8 +e00e397f1f27d1cf78a68252e1c4c8e491cfcb9c6d31dc40ab15a0aacaa7b12b +b85f8721ee147e0f1d0893b2f12999caed4ff163bb2056a19dbbd4413a4bcd4c +f69f1db424770f4c0968895cce8e672dc25e987d402138ba4887b083ab821247 +f3d3d75973a0646d8b93fd27f4dc58c0f27800502dc773186fb3a28aeb53ec64 +c3bdce9d2a6a9a5bec080feeb96babd80644d1a53e39e0340e695d50bae395fa +c9a782f519986779d6f37be3d9309bda4cdfe58e12709c1b4da5e60217ea18a8 +4928b35d4a4375407d4984352ac715787a026bd60133644e9a4a496e9e17a73e +7e65af60e9c8babaf0dded1dae5d84bc6461c23b2b61a59cd2b9984f880b0abc +f35ec75fdc77f1b7e6ccca702bf66dd787e6c3165d4037cf2943c59e5fe63839 +a60ac4cfdea2a39e53241ad5636f993bdef01463e81082de8b41b0a83b6d8654 +ec7286cd86bd479efc98d8af58b5b3c13bd5b4733266485cfb72016797409355 +3a104d3ade01ab3b7f3e29915c8e032354aa811d0476f4a16322aafcccea4e56 +86e07b9b5052aa371de87260945555c358155f7bc461e8d5b50ebd09d19c8380 +9fd0509589d6f83538f5b7a2ea6a4d74a061ee1b4118ca833820683856aaa28a +7ca940f27837c872dd94a4223ca3c1e0e0b30e9c3db060b3ea0595120b43050e +97e0ac16d62be1b320b11d23a2ce09671604115889c09f4070d4666a26821693 +df335381e8b04effac9f6dcc57a09a66c4c9e09b8264d022630634f465b5c35d +23fab74d3f31d8dc74ae91a9bec15339022604ef4afc3f2828e2f49d9263d1dd +b75a67cf8f598b5aacea7fee52d6a5364329398aad09ffa4965e5133d3d753ae +79c5a8ebae612f0348b78395aab01a27087e4b5892c6f93f20b14efb0ded051e +46af53efeedb1cd366dc8d031baef9f893b2f27745ba12096c8d18288486ffeb +a6a3db0e7c85368f1aad28359855230b6dd6678c751f60e19592ebb487abe17d +5c940b126e3e4e80148782f32aada256737ca6479dd9fe53c74f0793f0861f88 +df8b130db7321fbb9346d6b53d7b58e9f6d06afc77de17b3757a1471ea507869 +a9447c68d4a3db76925058721bce734737952edc8d836a78603473b5b322e7df +6fd1af0ad43bbcf728184c6bcb6a48f1eedc2bae0066a9bc42fa9cddb1de028d +9ddd6f17198fbab21a0ba18c7cf2b5f37511a2193b018c9746618dadc42cbf90 +d97dd52b18670c246b5b389106b35b96b05bf678f2ff17dc6b0e97023d3950d3 +81e27781d8e21f909cc12bd273f13ce10082e24350115f49474d079de6bcb1eb +cab3cdf822d993f077f6a6812bcac1740dc36ef24a0852dc0c79da7530824f08 +56f0aa36b51c2971c5e5337de1c9ccbed6570f6a57f81c7ce1d4c1c54bc60ae4 +93e9bad50782458a1581abd5b4e3a70be5d23ab7927dfb5a5104e40a4aef703e +43cdae759e6c10cdad953e07d348814685318b379b2600f79e6b39aa17ab7462 +29fd68962c30655aa6ef9b192d19649b133468999480b2d1fd4ab8fc0b535a30 +a24deb27115094d610054aa97a3913742363fca01df49f71bdb5239ce8b914ab +6408aa26ce074c80a744472a2d45f92a5dd9bb698d09894c166ba3119979e9ff +92b0dfd5ac0b6e2e8dae164570747de735b1c26b71b5afb813e26ba22622fda8 +87a039f6ea334b61bac246684c75fe201746851a72d944ba75757b7f858bffc6 +62fd468573822af8cc7e7ee67e0bd158b9314a7d7d15a504de8a47da9423a1f2 +424792ca94267b11bdcda5af5d896fa624f119b2c886bf7211e19cac7500ef82 +a8ca117ae3556e2970c1ea6552f8de10b3d2d3c70d77d1452c38db53cdac73b7 +30296c8fd2fc9ef712dd572846767e4f8bd09788350ead55456e57db2fa22e45 +9c184685c9b3dd107f3da78a1e45f11aedfa94c260ecfd6a72149ddc84973de1 +a14630eb406a928c6f08c226511784bc851212327822e4a6c6226e65ba0ad87b +d4bb030c8880a87764f4df89137678bd1eeb517f1ce66784ca21a1794130cc75 +8f40974a37ce9865fb4560d2be69716014c511403b8d6c16096f5982200d80bc +13bbbc98f8f34a9fc31303dd75b1bc6ec7602348ef5c985816407e1397ae1d6f +30604dde9d5aca8b3afe3085e006be1c315d70726dd5764e7f5a6d633e825a80 +b10fcf88e9ea770c7a170ff150188850041e14d2c5f30cb80320d2fc13152cfe +8fcf3762ced81771b824c50c3543210f06fa1b3276cd8bb5741ab82d10bd9735 +f89b2a5849c961c420c17819571c34982427b9a05c5ede886df502643418eab3 +2a913432682d6dec351e66034b7f9cc2f64385974684e06b57dcd5e491730b0a +624317485b0dea29daaec6fd6bb7fda31cc6ea00e3efb5efed4aff14d0068a4c +b27bcbeae0d3682814c3f308d66d77da0ce24c2a41c130f39a5768d30b64f5b6 +fd7a567bc2a68e76f39540ab8e01a9c9bf6668d3d77c5705c195429778f12546 +063739d777ae4310d036c6461c1a5b3d731c78b26dba37c06c0c6c5fa3cfde63 +366444ef34a7aef346e045035d5a17c66b0aed8f93538a197b04fdb740159859 +2b7222221ef1f49b38f0b7d5ce04a312dd4c56492ef4ca45fdaa57f419a4f2d4 +0c2fde2e6a550c3553e91c733636e75ebbf6f62052d7b64e79b6c04ec1530b21 +6d591ee06e1d68699f42802480d586fbd988ab6abd7b911cff06b307a0aa7e69 +4891006444918b895fd13ec97d4b7d671141e0675b9d64fc751b5b1be7d4c3cd +a5dff8ab3c4b4e44770d76111f22a12aafd300f11f23e14ececf8c0a8bf60b16 +56a628c6ec9d0e183c4bf8e631c9b19627bef283e927c5de83f45ab3bdd911bc +e5145332793533c93b0d20d5eec0e9003c78458c25eaab02bcd3fdc66ab92ec9 +21a35f23ef8bb1f20bd309738445653b35794f195464d641b823416e0d220ee6 +e53f5793517a0f950040fb771eda852275d7430afdba83e21a41ca49682bd39e +24712f29874d05505fe4c74320dd51cce66def98b76fb1963b26afc1945b4c82 +9d3ad5c70154474405171bf4f645225891fb70aaf0a01eb44ea1ee3c509da33f +3bccf768043487e4680f108599ddf52a68c60d217a1bab253d4e3026b7221d8e +b73474d1689027e4e65dd1bd0c6b0ac279101fe5f8a1f03820e11081c0bf2728 +cfe1b508511f26ede8468852f80f2394b92a109628c01dd414aff5ad2fe629bc +6141c7b3b3a3eee139e608a0bad9ada5f122610fe5bcefc0aaa6a6aa54d368f5 +00d6eda8dab9a1fabc00a0704057f0a9b152c4c5b8183bd019f4888410633d6a +5bcad6dc58b6a2568ef82fdfef18f5cc8e5f189cdf43423ddb4234745de64194 +faba3f4ba4e7416f035bb807e50873cd8c510d2d001ca449d5a7586e8acf36b2 +f34b2aefe1c19bc24688576d3e0a49c80fb529accf23e15f11eafdcd0b9180ce +fb6a93a024fee3c14806ea03c7dc494e53c49806ad9a2d27ed008aa63dfade7c +abec8a200db7e423df225cc8837f3de9bd5d5a4713958de796d1dc34bcf6f5bc +93b81be2eeef5fe7cfa547fbf16829fd729cd7ee1e75b4908cf1e07ad14d4d59 +4fb823aab5e47c7fe40075d699a7056390cf0b96d8ac78cd85dd417785f3452e +9f85769c112dad02f50eac20b2c55c2a0d654e6e56d38ca12df576f2992b1329 +d29d21fae667e384ea891c751b42487777c44df2c8f1eba14f5b2704db92c06b +de7a0328bcb32ffadfeda9edbe576ec37cd2b8ba64d88f7190f061475f360901 +dc5a626c9414c1d79c0071ee763f621e3a9fac9351bb34ac3cec3241fd5c4cc0 +55473324a576e966c7b1249ef44b7b53323cdecffceeb6f7790ae51549d59da5 +c7f94ecf8cba8b421afc55fd627b04ddd81618e05f84ada21e13d23835d054cf +950dc7a272cdc559569325c25bde0f9407c18aa2c4da2c56f2d9cb68fd1cf1c1 +bd2085bf1bf0c90179089c4cfac8e1f57c59e2c03fc258c4dfac808f23a4d88f +caac504295c06c09246ba121e2902a0ae44354c4e96af29bab4d4918fb57cd4a +6700f7bac64ba80f5845856267dddb739bd7fc4815e205a41c8222e9abb6e9cd +e8a88097a902212e22fe263e797ccdf899247600dfa1cf69ace87ca22bd494dc +f67dc4fb5cd09c2513b293727f428cc5e87510431ec94fed40652fdaf0248673 +d15229547c87b42528ee4780606a14d0928dd0328142e5f3bdd924b8fb6ec7d4 +ee1090a4c597e3f5feca0e4516753b0266a5552f34336579540c6f9c8d863caa +fff5fcaf7a52047be6ee64077b44aaec937275306033b09ebe03a8a6e85817bf +5273f51ca9d8193d91172ab050fb1f21cefc2691d35973cc04231456e1ddd418 +ed8c4e7cae43bfce7c0fb1b5651c34110a08d7ea51a96d5cdd8a21d6dd9478fe +120c5ea29685dc1f59d6fc60d494baab02f5ecd31835f70e9d3fa1acab230cc1 +f1159e6bf0904cc092d0ddf098dce395ef760f3ccd8a41c475d8ec42080fdbc8 +b63963dcc7976de3ee8a2fa4e9fe2af0008d04cb76d6c56abe00e07b388e4e48 +c6ec0ef150433414fe0aa25d4f9eeaa63a926b13de41e7c0689f737409100af1 +d55f5fe8070f399887c98bc27f29827bba4ec26f158ea704e555eaf50e0137e5 +88877248b629da0df5a8e31fd0d1fbecafe48a3d1fc65eaff141ddd9bdb3361a +461570b1d4894e0eaef5db795ec75726a0305808104be67e3022ac55eac6159c +ce2e97ae718f6c6b5cb537b99b511ab73f5577cb52ace204ed57c5971143b441 +55e2c2b106554f42fbe3ab601b74fac94d6ea07834df928426233bbf558713b7 +d7d0f5173c2d2cd92f96978b6e462baf37b55e24bc46cf485497e3b5b8c59811 +8a843c2fc2db153123d56d0a1d7c2aa2ec0552aa0c9297bf1d2756404e9348be +03ebac2aaf222d7332789dbb1423e3869edb30bc3760f6f3669ccfd3cd787677 +381e7d018f74d95bc67f91c3b6e85a7eb6fe5801c221ff20bee127528845c265 +d602b052b18af6e2d715d5ab39fbba754a02fa138f7059139caea465ab37fbad +42fb4252f03aef5d460299d694eaa45095482fb59282600c4095a9fe3aebd2b8 +2895be4341ad9dea12c3265f71e00a20cedfbad75856b20d37c13b0d63dd7eae +98f4a1691f83beb110f3bc2b726e3b4542a3eba1116d57820de95393f93cbb21 +1db51a96fad880e9ba77f07f28b96172f84915116b4b5c809bd6d1267488f4d3 +80547dc73a2729ea79a000d5e5fdf384dabd99257bf46c91cb24a577b33374fd +fc75eeb010333a7d4cc49e7ca2caa58923b1e1eec3ecd0a8fefb878b2cff45bd +0922b68bca7566feacc3c1f70d8e910340c509fd4f7234d7c4bbb26d11d304bf +ee2f6b4b245b84bb272d19861c08c795ddd66bf08428bfc389c5aaaa4adfc07d +22fdc216dd348375bc6d3277761ad26a9b2754c0bd300c119380d6b849efd1fc +9b470b7033ec2ef0e9d4d264c5be22c205d0a528d75a6c03ff2af481e0b33107 +eb3e29a4eb5af8387f80fb1bfd7799af6418c1243d8f637035cc6278a35d2747 +e56ba2317814226cd32a8ba488550afef6e5a44361697f125d889458c238701a +5ff0b645ccc18f67606b99d09bcf24d1177d111c9bbb2f57b0d215b5caf9bc85 +01c3f0d92f56bad0fa7297e363253ce91afd9fea6f4b220431b1a3006541882c +71531db280f61dab2c5d70bd100850b5b348a2fbaae8d488cec04339d1262b45 +b88e1c041fc748ca4fafcf5f31e00c20467f1130462d9e01604d20d00aa6fe8a +7df3307e84b5aae70c7244624c4e627e19eb810f4990be57cc02349263a0026c +a62ef44c94bde81531ec6938d9971802c6b01492bb487d552052ef83707de93f +2fe0f577c3bdd5ae66ab06b97092334b740ab016de1fb629e2c7a94d4d967e32 +e00e93dbb808e4912e4fd9c9227f41fcc7ec70e684f30f8fe9a9a1d36c8b0733 +d647901bbe0cfcd4cef8fc87b6925ae88e9f7e501441077a47c7006a93bae1a7 +b935f6a4cc18eeedefb78d3498ec8b4dc6bb61d038b9df282686d09f8aac7d53 +3261ea87aa7e8d461e6f7e8d0b1e6d5418e1ea542ab21472eeb0bc2c997fb01f +66cd25d8f7f77441d2c57e8bb3ec0d9ced98a8e54b6b107dabdecd98fdcdda08 +17af26a0fc638c9153a57ca5357382d28d7e8f07f67ff02e9b5921431d3957a0 +a66a23b610e7e51079f6d9f522ec9f6df279e99bcdc922a55ca043828edb9b0a +ae4283a8eac969535e1beaee23a1ffef309b08df04c3eac5f24f3385958a67c8 +cd820ddfcea985d1eecbcf48f4139e934bccd849fb1a1f1a225908f1be097ba6 +45226dc82b41a1754b1ce1f18e264f447d6fe8d7757d12d601938906965f58d7 +4b4a5fd88c4bc90b87addec6f07175323721de086ada49070af69ac80d5e2e82 +8c0078b31019640c61301a28dbe9931d449ae82cdc72b16f25afe678d0f7fa35 +b3598df24340bca2767fb5cc23949a174461015e7ff7dfd0fb32c8eaa0d21aa7 +2aa77a090823b10d01e1023ff86c2577f23af0b4e10abf5a2baf069a606707c7 +fa4f07518e2407aa364550fa344152b424fa0eeec4cb9a1b7eb946321ea1c5db +21aed7f6bdad94bf02279e528f53c49a401a1528f79291cb7f8da7d544d1e97d +81b211124200c2b3ec489e6289ba20b3cc928cddf80451b8dfd902a03cbe5058 +65775d2f215148ed213fcc5587d35e09a9561563e7de65a08867e7da49245229 +935c8162fb14a2e82ab4e3e2ba0d136506da3dabf939f6003fecbc34376945e7 +7a71af3b5fc9aab773eb25cde6e21b344608ec7f1db3664e1aec04e97ca440e7 +fd666abae3f3cd985bade5b089391c6547d6604eff3bfc779c03cea5dfb7f688 +5016303f5807c16d2228e13f9e46eff5fce2c138d7845b86046b4ea6987d9f7f +c016cf9ad8fdcccf33a39eb7878cfe6ceec4a716d4234f47562d99d0cbfc026a +3c9ff8b37e02d2adefacad4c319231203f6549f75dd0bd605d432a6a47d57922 +87a018d99d9c8f83fdb33c408a5d68c532eb9c550878994942cd11a885f6b636 +8856c8742cb8f53f03bba5cfdbf6a0a871a6d5e5608d73a47aad69ec45ba1631 +6bd1806df951cc6074b1c1019e3cf27ab493e421bda830ad54c2965badda0a2a +9d175467aa29dd3b5e8728e15a6de49b99b762a24fa0648fe57604e4270675b4 +2ebec5ad12c46e226578c88154097977cdd7384df4b47c98ae1b5a73009b8d0c +a72e8cbadec2b9dfc5ba8fa553620dd13e597c1094dbae865b122453cfd27c94 +c94bc2d1b33fc6bdea57b3008f25f3cac75a82bbe644367b13391ec6eef37e93 +a97ed1e2a1279358e6456ece5bba564455f11d1ef0949fdeaa25168b377d7af1 +63aafbdc6470b5288f70b3ac6063a59acb0a88492f2560023a4112c2a77f9795 +cfb81afba1a930f28497bf4b6168868612c220b0eb356ef17243f0f522af2b8d +d9bd905c8dd80fa063f579e0b8665c85353ad28d199052eacd4b79cfe233d032 +7ccd9daccf569a6016173298dfcf6e74a16b169b68599a853f19e516139daafd +6b6f00940c2048e1087a6e3954929f5bae1be3e74af0e4d67c16c7645a588105 +280428476ef9fa360b6e9334fc1085371a6991a8dea25d21c89bf52303d4ed27 +9acbca60437a52735c17a2f6642bbab45a5fc2248d19dcb7e3a61ad061e246ef +cb7602a69a31ea6228d44e8de00f25488160ac5be7e893468e3ef6f6a5be3a38 +d9d3b508ad5c2bd3aaad9a141b7d3c7512b01b9f97a67109e8eae5e406535d9b +d255c2af6fc2897d6c4c4eabb50a8414e173006e9f9080b611bcfbeaee826303 +174568b0887e4da8e29ee0865f208791e813b1e5968c922bdaa6c7a49ed36e20 +a165a12860c2450c16f4328c28d018b9fb41c42cbc498cebf4109ecfd2828e72 +ce5182f11629e431c827bf6a72ba0974d6510ed12cde60901ce079f4f666ca27 +364ae47222dc0f386a8ac92450c00e661ba2d9f5f3716c7f2537d48df6cf016a +ace9740a9f9ded55e044c49947b6594247a72034e1773faa820fdfaac84d1444 +365d15023ad3cf01dc64efd7abee52477376594bf13b9cf73973fffeef536dd4 +b94771d38835fa037b5f1b6314c96be80516b3d31522b5734d239d9348959499 +cdb48ce1419f0ff4844347c039219f81ee34c21a8e14f5d1d8b2459114c11ea1 +7da5fd597c97f37ed5e8553ac7f140ca877eb6a4fbcb351c3d070996088bc4da +ceb2038750e3a6026f622889e891579d4d24e91adb4c5ec9ff12e008441fa3b8 +bfbaee3d514c35bbcb02769a3912d98b9a873cb0a78255809184354cc429cfc7 +c5ce85572cc2bc159f3ff3d2bad5546fbe3705a36ea95d1e27c9a70195af8517 +8c0c61e66aa62b5c851018f2971aa32ced258ba4b68ab2a6d63c770f787a3e58 +470e4221ed1035f2a001a3570f0c0448c325308963e5c49b630e1d7b0970d532 +45da9ce932d5a27515b5706ae3ccbb005ac08efb276a9f4e49becceab45aa940 +779a5345eea3680a5f485fd7f4afe55f8bf09a8f832f68088fc095e4dfa1a490 +6ed40e63e886d5f8409c468f1dcd94a60ea266f813270e1ef5c6fd9f950e32dd +9b94d7014d1ee3ceaa69c9b10d76212603318deca6ae13c499540c057aa33b56 +5a59688b1cc209913f15a6babb28d95b939c0a0a64b778164749965ec39995c4 +d7fc700a746c511fa7989ed994740e2c6adf8177df4c47f6dc5eed9af7976ee1 +8bfb5bd6a1da16e1be0f8089c9d524ea3b5c8507c82b80242ee129d35a14658d +7a45b4b656d182cc8074f5e80834354c36247c29b0cef6b3f0abd61ea8b4b11c +9608843146ca38d716f36f79a7e137c18b9b2b1cf88dd7ef189e5fd93553234c +7f91eec3b26934d7add813437122aeea8bbd34f6003ec520544db0a655a2490b +75300adb34e13214f0ef195fcec89295d26eab98b457091ca12d0ceb8aa00d32 +5acc8d0d01a087bccf76d8b00e2e718cb89a851b9751334a4570a0e7a78c43a1 +da9b42321867933ea4d5d3829dc6d26e577a11d1c3bb08972b1f036129ce0962 +f930414c753569d688581c391a5c4e41bb5e43c829ae94a031eb36a7195940ce +5427596611e73a2494666e337e30fe00a1cef14f5517a9dbe62224f3cda97fc7 +8d423895ffd10527bcdbcd8bca0468716cda0c5a6fd8483e9dbf4e5bc6d5ebd4 +14e3dba3758c1ce86a93f7b93a15f5920f3a88e34776609857ca3c1068ca24ae +5f46924f2e23189d6f9481e1f718bb72376577e3746509c9405f49a37497493b +59e6c30bd72a3104d733fb2d197dc911f020b6e096d461b0da9af0a32c0f33f1 +e2042fa7d7cb4da795c38bb17b76bfb94965e0164c0930362db0c28bc06e1fb2 +f2cced87d8f89e172229c1bab7650b87124a8f7493eb9d76c7ea49d056a07b2d +47eca767ef1806a13b3160dd02a4eab001b21b51b32bd7dc9b49384f168f9354 +f3ab26267ca7a03dd265362982db98daa7c6e0aee3e808ea089386a7a8312bf0 +9cc491797d5fa756094e953f824ef09d21f7db694e6ca95b44429e58ea9cc1e5 +c85c0199ac0089d5c701b32e0924a34fc2b9c1bd07ea4d905b9219aaa7adff61 +4a50886835d6d59d07f28d08d650b3a691ecd74fba087c182011bb969e01d01c +ea57b6b06cf20acfe8dc444cb8a5684efb0a2699ce91f213fdf85784d8d9f9f8 +dcc34853771f1edc6c43fdf08fc89266735f9dfb19ec871eeae7367778ba2cae +d9adebcf8f0ca1350198b597ba38fc4fe565918ea1ad1b9dc71e66396011fe5b +0c7694679a8a9c9e01797fe6d50b205f78bfa08c103a6a071f254f315202a472 +c0252a0d11028647001beffd1d62c42900c47169c083d23f94d4187756a07563 +8a05f652b44f71aad20f58a04644f00f6ba6c8426d02373b841740cedd89ab9d +a29ce83ebb869439cca17e8ab0a2c2c46ed4ddef68af71b09f2da49d45ce34f7 +751ad692b11556c12583effe3a744ae8e3a65f21b5f3c4bc24f4b4e4dd497196 +38bd56f192cf929341e20be9bed44c48eca5f8aaeaafea93364bc09a437924d3 +2f7ac1a687be06cb1f44770fc24089fb71cccfd89d600324cccdee8185bb35ec +dc630a523ddd69bba1395e8ae1e5c5e09b3bb840b732ec77cb58e0a409f723ba +b03141821bbac69485b9160261019aa97cda2e7c0d0580e0a4cb2a06d9a78bb9 +c01e9437a83182bffd2b2f2fd7b66bba0b7410dc475987a3fffe0754cc217a26 +c68f558f43992d5d342c75ab608b1d7aac0c54c906dd8f828082b78dbbb87512 +c13175c938e3f403e540909a5e11b4d78388a98b8d7394fc098b466d8cd41b41 +98425e9199000c0dfb177e3f0d718923763ebd4807e772eca895bc6768b72a35 +4ce7091f3009fbb79ae6a32f6c800b775967dfc6098e6d7791d623a9deef46d5 +1a73b1a7d94b3e65292bb543e9b89889f8113646152219b2d096809a87fc86bc +eb19d975da3e1a7b398a98f6bc0255b11e5a44c7305bc48ddd6f30afc357582c +2829cd35adc5226ca37e0dfe5e33dccb4d444e07add3662505aea5a835c8464b +362769bcb7846c3278c5c3a012a34e73d3ea6b75c16f0eaa43ac2767725c459d +bb0c45fa302281328b2e3a3c639f127e404f424f05540bdb16104287cc6d201e +ace7ee2696f4233eb9b7be1fc1161367ba18e7732a6126c761f826a021020bcb +b4d5b929508742e1b1d80ec182af65aa9b3f824752c719f7f868ed122ce9a671 +432b8b381e70611b52307ad0d70988316ba3b554080e4433dbf749b1f1378533 +c0d75845b1b21b6d6392f8fe8b7c386aa79d78f732df7d5d42dfcafec965d7c1 +39319f2f3bdb3c8439ac3d98f5dec67e2627545956580d39be424bf0c3125480 +3d41cf85b32a6bce7f766fffe54d399be503d7d4310e9e39aaa32d31a7831817 +d2165a3dc4f46981795609d095fe8b2aa8af73c59e72c3c823c6cb330c878375 +a2c0d000b692661825fc5675ecb1d21129e48507d85e9d77b78b6570609c13f5 +229399c8cb0e5809c0e2c61b589d7e4a6ea418ebb78e13a7f3246619c9b01fda +5c37b68c8f8023cca53be56c331f26e8e3a15c1f71b03e90ce8a10b5e3868d7b +53367c9fb5e503dc2a026bb2f32ffc3d83d594cd35b5489c75a71c1bf0b5576f +5661402eb416e30e22d780d5952d53c176c87593e59c6a762b917f50733f3d50 +27f4d324cf382295ec0f2e7b4a68a809091247f7818f82f704e9daed8fbd759c +dd6cf15cea29938d2858d090633276a985b5c5b946c8e79d508c486c3546076c +bdd5c8d0c2852b1cc69816e8b475fc0cc9dad0725ee623f4d3cd88cb106722bc +4f061d9aebcfa8df098ed2ea7060eff01aae92099cd93b4ee49a0026fef35952 +042f4525c7afa81c7f11bc0687ec919ffc82e6f30aee26f3269fb8afd73d3afb +3b9681e3c166773d2af66da2e0ad4ae3b583b7d1c796f3b8fc1f33f5b13b43cb +e809ced51d8913022e7d949ab42dced250e121e309b118320dc3d2b46b210c43 +057ce720effaabfd7c1579f7f2ab28d57879dedbcd8726c6d0e592e384987e8a +6669b64ddef2594a23dadaa795325938fc48c57a016cfe2a2422fd3e68ef35be +4268e9770e9de360f66a68388e3ad516b99fb6ecb0398fcddb404f2314c93852 +533af69d70a896c05386d68233d0b4f628e410aeba52b30c95c7c1a5e821fd96 +f06f753521a12846778d9433cc283977687b418651519bcedd858f45557cd0db +25280625fb975446ee1bccf778933b3036e146ef59991fbe79d9613b0c9d5839 +31b80f8160396bb957223856d0bee2bdf03eb24245729bfeea0350a7d54cedd6 +75633ad93688b75d05e60de48956a0385f67b8d0a276b16a121783b7284aa832 +6c6e704aad88ad3eeb78332fafe378d8feb7174549eb23e2ec2232406e71b447 +2842576e749d4f68c51eb75c913a88d6ff343dd564cb2650d3e1917b8867a350 +547914966f871354e653fecbd7b36aa72574572239f680c4dc07fc2fcfe47cec +3b613d5533cc0a8f092b7d94f6de89d0888e03c9ae11f4c31dfaa97766c29c7c +879b31c585a599d4d5562fda8e8afbe0e95e3181c49b4ed2311f4f937d3257e4 +4acd515ca47d6ed0a3529f614334c26835a6d4e976c14ab910bcaaa7b36d0a23 +c7053257b8e58e97e15004238014c2ac5c29133469df69fd8895251a131127dc +fe1e001716914fec7c17357fab233efb81cc67772a559dfad42174174522af25 +d00dcaabb6665ffe310c7715d47c253d4c1363548865e13ccab1e8731961e43d +7d60d4e0f52d6bc73c1acaee6fe332f247f6e6adb84991a03122e3ac849c9250 +239abad46af37f676d73b160d653d43d8bcd21818accdec68c2ccfe05b767c1e +c3eca74e820cf051171a008e87fd3dd35926d1dbf83d92cacbecb6a5c46eba70 +72023407d0df8ddcf13f937491ad34554535d82b6f3c196c5a8941c7192aae4e +7c984fbf2f922cd11ddaebd62e14206306993bf5d89fa28ac073645d0d6b5bd0 +523d94de2738df3d17c9916f28f1f917ad924981bedc05661b9745c426b626e8 +1c80a0993cc265142aafff11cef0ea2f556fb8b4ba5f17e2146250f7456d91dc +28a5fb4c5359819be76eb2e5072a6d7df64fc87dbb48550481ce0752f8961405 +c67f93f277fe77cd78ea15fa184fa70f352a82508ad2fa66d972ddf49c08d5c2 +035f34539f9e91fb89cc28a20e34ac2fecfe32c6b488dca969c872e8a8b83889 +8336e695305d3d09e868595b7bb0cd2113cc4b5a8fa2a3fb82d0b773c29f9d7c +55c7362b043afea5300915bee55df239d1ad86f07262e445bfefba3e4432f12a +25c4f8f8cf15c2476d11508794f3399d685afa08302a4281e3659fb0059e056a +f1526dabef35d633231945a9bf0fbb91407df2b800fa0ec5de9d9f98998fe26a +38c528d4b1bd8880a26d015f7be69d4fbd200611f2c914916c08e1d26e0dce66 +616a3c7621e815d686d7e10c4c09e34b1a6381de3698e8582abf7a1c8194bf24 +aad99827508566c232737285acfc38d8c9414335fbbd8a08d9b19b8fc0676429 +bf0a8a673a9963cfc7e02a016c30f4e642de3e2ff775b15c7e02cb07d0a96ee4 +08dd105aff64eddc47cec570ea24608e43542dfdee00ad3f60d917b4fc9d4e48 +5a6773112b8156643f2ad4dd4734e500e459a05c245399b71b0344affbef5e52 +b694fce273598ed927c67369dc061372edff607f367e6cfcdeb9ed6ef96784a9 +62de6453795c5938bc18cf6e5a19c547af1f69303a7b02bd747ea30b44319f6d +ed6773eb8f90c35ef22f222299edfa17bcfce15a88c48f63884adf771ae49431 +fe784bf70453b9b2ddde668f2d474821507573434f84a46e1b1f6c28a5f1ecd7 +ee1cefc4067d1c234726e772f6829166cfa052836ae8cb5ead8e1823437cecbd +5fe0768a47090dba2ecbb66cf4c8d405f992b0e2a24c03cf480f77a70cd8efd0 +530a73dc0b0c926e263ae6116c7b9df471b71f0f650e46d9a84ae40763f14009 +71eb0097b55369771caa4aa4e2920c457378d7f70c61893163e4bb2447bd8ef3 +0cd6bd62e97825f463e21cf2cac000f58e3544368300d796ee08f7a6de957dd4 +8ebf6fb79e91b4b5336dcc829225d877eb09052d011fb5f9c0f8a1394c9e4b14 +385e81e1ce9261c3a12ff8b8e7dd10db7fe0090809a4761541e59a8af1942a8e +685bd9a78f0e4c931d5c2bc64811713395af006a61bbb70f682e6760d2ad1e2d +e44ba2671ef3ecc2237df2f7e6be07e85da67596717204e8a86a1bc0683f9b4b +d5d1b373000ca31029591f41ed5c09906dfaa220e1f9c3f5aafdce09f0087d71 +7f246e0126b79821c8f055ea427acaa37ef150d6bbdb984f6179bba05182a9bd +e5489b5f9c859fb0173eda877a3f539a33b0fdecb066bbf4b5c7df9cf6622ad8 +a8bd1bfe0acaf4d654b3a228a1540c9b5d6e20aa5eb25934762e50b7763da8e4 +0ab3728f08daf1918dbcfe3f866296a5a4b9bdc42c2b86a4cf624ba6196abd84 +388565b9f8e5780db9c571f6b55593dd84b9a16fdb1b74f8b32d9a613ecef342 +005c6196f3e89db6e0b8c0802a35e3e94338d468b319ef502de294281a83bc35 +97808dbceed22294e2ea05aa750ef944a60775eee96e02d28628dd0b115bfc3e +542aa5ed26b440a5cfeafb15044601b3bb5cd6c0941dcfffe3542ef71969dfac +bc23a5aba168c77fe23a7796517509c283cfcb900341a85e079b257477a2a572 +efd7ffafabb07c548fcfeb9f0eb862233828c466fb584e1e3dff21ef2316d56f +c6f95309ae789aa0acfdddcdbb9dd967e6ae59fee45025e726957534649e9a61 +2f479813aed08440c90f05c349fbe0c1378801e30c6b1daa05f82f426196007d +04b98ccd521cd715ddef40d5d75d46a3c7ce6416be6aa61b8e51fd6374dd9b7b +aa97df76c82cbde7f46edcd233cbdc0ce61922fba824a00fd52071b104a9a3a3 +1799a808a2a721cdab00a7bb5fc052bfc601d5350d436298816af8d500a7925e +d28dc66b4e32439458fc7fc0ce9afd3f189cbe4bff296bed6cc6febe1df208fd +4fc00f3ada7ce14c0f5b8b147a8e31045409c0f1300b8a599038a5c8aa42da64 +09e6c65b9cd9b595b77cfe5c31d6c9eeb28540bba0494d90939639309d600e39 +1ab4803a92eca1586329084df13a0e7876a8e144afd76951ae209222ea41c2ca +245c007e0de8e24d7cbc8c6ce3ddd0b5ac8cb97bbccb45b3409ce101e329b5e1 +d5a17e719a5519f459d7969efeea4fcc85d372f22f353a64844601889739aea1 +f3d221c5086b88e12afffd8e1a3da0769afc6dbbdc4f376eefc485cee2a9ce34 +da4de266cb78083af982e454488e4defb19d79f28916301e86f05e1dc10b89b5 +5ad2b66b5b883ec2bdd3eb2fde47998a3f629f3274b156543b5cefa200833962 +fb0d306f8957a9512e727e3462ece44ea1a1f0cde3d11d9cf796aa92cdcd3a44 +28aaefaaeab2c648acfe61b53cade9cc9d72985718d85da2936cc80ccc6fe3e0 +1074b8e6979809cc6cc15a4d5436400b0e81ea3830b0bf74c7cf7c5ac7663580 +376b128f543f9a9050197790f20d8a0e3f77486389d608a227d85b66bac0aca5 +fd8a839ebe70c444c15274a6c6baa10acdc71712e47d99f1e7b0264b100ccb28 +e5ed29fa002d202a7fa263f641f632ed51ef433f679bd8780de0b98e99020a20 +efaf0009b6ba0807d589a552975cb31279868731754d507fbc22dd7824200dde +46ff842c9e2f7d06621781a0d77707024f1d2abcd98c329e10c5db5ad41df708 +3345bc6c8a5632342ab8e74c0caf2eefc2baffc0c4d8e78c11d0914ac4d3c300 +31c2a886a7da65b2d6f8f7b9521b77095e44164c1d14481656ba25d4dfef8c26 +6edb45a2a50fe1efee2cad6d4e6e9832ca0915cc9c119f39af5355fb8413b289 +0116cb33d4af228a15d3f2951370c24b3da23274e9835307707067ec7422640c +48da683177c7dd82392d21f0a13ad7556ae07eb9fd03870df7968412be97f37f +b121ddd4c5dc762bc6c56935919db200c0624f8ba9ca6522a2ed14e9109cd5de +229079a281a5e0e51b805d92bad8b4b7a4473d7c39c784835d051ef45b61ec06 +da0f1bec9ff9ca09a6187b2480a1d6448d4d7b97804c6db05ce952b794174cdb +c2f88a56a718b6178ab915a8563e0b0f19c6f377ea6507b11491f0a05584574b +4c6d13fcf37ad1246690ca798f7f9ed574f3b33ca634bbe2489929a14a41fd06 +905514727f24de3b3bdf37701954a3915824290e12561ce42960ff0733a28b84 +549b2b25ce0d26d08b9374f76c4bcf378488e7a4811d832085852ff30294d8b3 +fa0f5c3c9f7632620c7bf9c19a86dae5d8f8f9ffa96795cdc2bb9acf3f22603a +45a1202be80712aaeedaff1bddfa1ee3a897e874f3a1c88350b91d9223dacd87 +f8438c7a53b0eb1d1b198d7acf540cec9db7aaee3a274f892d1f2bd522738b29 +a9a0eebace661d6a589f9393950c4d59e819a975b06b6243cd7d024c92a9177c +dbab66de5cf29eb9ca549dc0db0513087060257c98fc5aa5cd27210e89076b68 +3a5a537ef02cf705f04b1487dd5ad6f7686d5c27a7ad8c90678cb413c27c5808 +955f8f4c2917f58ff30ea7c8a5a0a07915865174d761aeacb5bd38e5dff4b2bd +57d7b09ddf00c95b78ebeb7d5ec1242180379e225da9848835a2df213901b148 +95ccbece717ba641c01be95dc3fd6bea33e4d25a61980a03d1da84d9031fc90e +33f3419df0c07e31190bf104dbf0fb5e26afe4426ac7b07aef8eb511707fdba8 +742f3f5e30054e9898e56d9b26750f05b5a2cfd7744e9d99057088df26e4f584 +a4ea8fed43ca5d0d4f09daf5898b70e435ac5aa0469ad3ccbdd6c2e6a2f61bd0 +f3ba337c544ab0113acf18280f611f798883fdf11456104f648f364b74baa09e +f1f5b8ac2522bede838ddbd30f403daaa718fa1717a427a4a55df5f13bced40c +0d1913d193dc82392f65bdb001706730a966159ce86d10e2f2ea75c839d0c3df +c8b6e8dbbe49371b3ebb6fe5d1e736bdb85551504c6690405aec5e088273f4b7 +fe8b0e123c747e5d5f3d98ccb41cb341f607980b0ff4520e00842fd1b5e18032 +44c580b2c5e6d515d612c75fc38c85463ed307e6e15c85a7dece61630ab470ab +583ea5bae59a2057a48bde0385cd96862fdd2cae7e74b74aa19a24639abe53a6 +0adc4a57d322771a90f93e7b907b6a3510c8065b162bdba54c6d0a9b7e9d1126 +2eabcf91e7cef03aa214bec4fb2d1db5f305588de5de1ffa15f707ceff038bda +39e71569dae671a735a4599429b9cf086b8bf08996a9bc5d459aadb6d988193f +02c8ba2ade03bd5a0a157de7fd57f5e6572854fab40f06c29614909a5b7ead4a +e68ab8d8d03dbbe90d70959a901677c765e5a0217681a70720ead4c92e69f905 +c943d3466cc2dd5cf569a7c3c24dcd3cefe6fd7bfe3803165c38608d139b863f +51841ebe84bbcd25ac7b7c9e42a60834f1af0be57294e26d52a5daec7232b9b3 +728266ed49fe28f07275f15188b6115ea60236c0e9e968b03f545c2aa7cfa6bf +607e8ac9f62647ee9d2bff659c1e08542aa99eec29a2bfc031215d31f37208f5 +9ad533ca0c354d3d84d0a13e7e44662a3a9811ae7406b797bd328f782d0b7e55 +99caac952114658b7346bb27358582bccaa3ab9f24543ee981742a0439ee29f0 +780cf7f4b8d0d3c00b079d56ae1e4124ce38589ade63704f808e18993deab4b5 +9ac9ffdbfb793aa545f0710c0056eadad6f662c0f549cc9b8b67acaba41ea607 +a12860c888d3eccc492a58348f204fbe14f49297e102d769b8a4522da50e9d6b +4a7cae32b6d742cdad0b8f9d5c303ae7d6991a193fcca1f5030f41cc04b7ee8b +f8796c1ebde047d419a7db968d2638805ee52b40907ae451437aa0a9513b4ae0 +ae7c92b04cb05f5d8e869bcb02c0fb8d9d1c4cd845a290cd435c16d315749405 +211a931398dcd6dbc471ac35aa741b70563110c01cf56dd68bba9fc79d4cece3 +6ff0ada4b8b06bf3c370219503ccd76a0076e60e4f0886ae86a362621d51db72 +9f3060a2d77d7d2888f0f236d6d9d1f5a3fe7ca9baea663430829982f3363574 +709948ccee295a472105e289dc342bb69862941bc983d78918a8a426fda65d14 +89340f47d618eeadebce54ac293b9e0c360b27fdfcb1fc1ecdb3528fee8404c2 +f8c8f8db9c402362dd6b5332e81debdd0e4ce83ae4224238496d9fdab730b245 +0f1b4b0f3c6a68b2b86c98808f5ad6534337edda484f3289bcc303754ec0b6d6 +13fecde99dd23f1c5ff5c8130135ef51d7583692079d7e94a757095a82db0ab3 +56191ed0534dc737e2ef6fee6e99794c6ab33eca29411bdf750eb9e234234da9 +fe7f4ea17f0060cc0e8b3620371c2e2ce13b4e49c47901f2a3d587771d2d373e +3687b28d94a0d3678f40cce95a3a5a3dd93e56c7ffb45f1f4419976c9cc58935 +fb8d3554101b708a750b58324997aa98d73c08886517308186af962cacee91dc +a739d1bb89c0af34ab5538ada2d0c74a086fb18f370a3b6103782ef715ce73f8 +8eb1eaf6e5b17328b174bb6c2597f5e2ec3d1a9b24e68c467cd7f74f5b83b37d +78eba89d557927e7350a2fdc8b940a81a81c10e791c6f6169b7ba28fd8e3cd55 +05c6c3956d29471641a64c742bc20b0df2f0433967a93551b3b44be45bb1940d +515cabb2025b42711646fc81a651031dcfc2f97c70f9f4ed3266a20de4de2d51 +1c89165bf0811a71d664613101469e4315137e42fab5c7c6286372f0ab3f038c +153b5aa84498d5730d45d2b530dd395b6f977e6e83a0e95581d47682eb9465c5 +d72ac7ce1612e1e0ee0b9f9af20c2c57d0cacf5b2c6f66e3df799ee8a1d20c86 +bdcc76b394415bf035f008ddeea997e2f911d6402b2d42ba01706b2dcb960572 +1faf3dd00c7de2679e2cc35898c98e659d36f73120d72be97c81598e13b0c4ec +75014b0b913c56ddcccac98821d223a6e259d5284e05ce7c19cbf4ac7913f84a +a5deda9df42f0b10233d7bb88827df41b63b275eac9ad37df77b42a5f875f068 +19364cc29c68f5190caa6da1c8f8ec23c6b12db4922ec4d72fd5a8847e343699 +a4f3a1c858c631149a0fb3035455d4170148e43b302350c2fde8bb5462c53c7b +63b6af2f0253db0765575ae7a46c76e329a5553b36f5bf1d42737041181d8f10 +e5b9466fd3be35d969f4620fbc02fb8d5259b3246f5ca759153276a5b82570bc +0988270f512a54e00c7978aa2fe33b512f6db3744433a19e21d22c95fa7d29e6 +a5a584c1bf3bc1ada56598d97506e82f38261440874af90dc6c21712bde9ba87 +7013f8d0e29348302913b39e5375264300ec218a60f3edade5fec9c958e2595a +b0b7bd49d319d08330ee5633b0950cb7989738060ec629d4449e31de66dec814 +de2e69890984836a8f32a764e3023ce648fcd1a1c5fc0d6a1d2ea8446b771474 +09bb5719d8be69ce54d400083ffbb9a19bdec1c176e4a47873886d800d557864 +aa38fc0507ca3ce3ed337906c6664c65f1974a2c900d7780cbe2db5bd7082d65 +bf1f5733c9ea086f29b9084d4d2d3ce9c6206255e69cef40d6f1f80232b7f744 +95200409c9cf6f13a0e4ae6149a16a4225c2e988da03c0199974f2fa41eee059 +f893d36a99e2e7c7258af907966964270e2c7d9505cd9b0192a880946f94846b +1543e279d50fe4122253e8cd951cd9058aa9bef4bd214f8191eb625d843b4704 +127716b8e17dd15c3d1f1028fbff69ca3301e060ae65febd72fcf9ad16378366 +fe7a7c15b26203eebfb146daefbd85c60f7afc83689a9f1bbc3002cc574aee48 +a0a3c22f800e7cd63b1685d6f670ea9904e761b66378e373f4ef6367c6f7fa75 +ea58f66533b297b91dab622c8ee7692834b40b7a2ceb1e932f34e4882bd02d33 +3c49e3bfaf3fe1637fc8b95ca5d4517b6c17c8968565099c54645214376e8214 +80a119c5c30eeec46ce473e27e1a24f0541e80bfef5b38ae7c2d0b3526f11abc +db3618ad90eed4b5af7fd9e556f779efb55a2b5de0f96bf6fcec902aa5c1d1b2 +5c57e90e80b5793f52c21bd8bff6524031d424c389fe1cbcdfd2b609b522e64e +beaac4c5066b5def64a42807784e677c82daab1be5d6b2a8895e824712c5bf08 +abeba025a56d2d32643656991dd4594729de26bf9800fe3d1ba265935d78bb18 +98622237d4e7ef1118f685e1cfbe8f78937b20ae02dfcd3a5859d6a4f1a08c81 +df473259f8f64c555fd042758c28301c96c05b5e076c155d76a114256b88e8fa +7d6b291fa96e78287f9e664bd08ffb82e2c0e15275bfe4d54283bf5eed34d436 +e2864c178680e26ff4467cf616436942b070fca737d344a6b2adf017319582e4 +c7b6a88bb36c301a4fff0253f841625be1ff10483ab8b6430957a263f3543a22 +d59b2f5e60af3242d0ea7380c9b7941e707493efae476bcfe1e7d37707282bd0 +73da360d701f24f68fa640a3792e2259d46a538c640cc02164005d02fcc08a21 +20eb18e6241b16ddcbfde83d68f42ed4c7a489c56cd5f7dfcda6a55cf08732e8 +0cec7d226aed1c3870e0de46578db89cb7b52f485689b180e13eebc1b0c72813 +107b1923d8125186633f39209afa8d64fbe41d611f40a9d61f8d798a561366c7 +e18f48c949baf9e2c257586a75e001b3e26e5e166146b87081310fa425e41bf7 +fd48b47df59eecdd1f12e8d27b62912d2859c95f7741b62538a87cc6182afbd7 +fe6d83bd87053e0ddab426b5f1035dbf1daa40f29639d3e35e678513706077b7 +1150dc02fa2bff860d6090e60e05b8e614f8c4bd0771ae0264103ffede3ffbac +a88c30bbd1c1a17a8fd2004b7ae52508a3546c1c9ae85a94031a5b992ad7ecf4 +7ea89c98c44837976fb1f866ffb8007abe995f99965a8fac9911e29d52d3071e +9871c8c4b70f3c8a2167a56dcb70132d058f77460bcf36d8cd154622c92cc38d +b863edfc7bba0538f087fea2c8763084bcc5b78a85b9190f039bc21d5fb4077f +cb1094b3c10ecf5e39ffed13e6cb3207ccfa19306ab09205fdb2902cbf534ca3 +18e689caf0d26182e5d901db06016671c4b261dc5dc328f85aec98e510c892fc +75b0addb10ce5128ca2540b10a4b5490cf4781d9d7284cdddc4ed1c94dde861e +02c747abb9322fa822dabc623a408f141015f324fbc237319b2bf06b4e361b36 +1c503f5451d3e4e399ddf8a6aeda787327a78afd01e2ecc161cd74f261297244 +03efa7f2b0902c6c1d23d0cbdf945b71975feda3d65dc0cb0698e6b7e552acf1 +bae8c033dcfddedab92dbc836025296391f739eb9844db8660bcc04824d11e14 +09c21ea5589264bc17ae372fea55b526138deacd72fe2c5157a2d4d076a12c20 +ec89ce698fbdbd8d16b906ee2c41cd73a7a615b3675fe8fd7cb176ccbe202b14 +01ebca32faecd3e433a0240785dcc81441ad546a1a58451b6cafcb3a4b58ee04 +b127ee87a3bf6d2b4a655873a33488ad0948feef7ad1e5f17673e1335d25fe31 +f4637d5fe3c34c72cca183e3850bf96d2bc0d69bc2943c70dbd9eac34f039b24 +0e8dfbe308483b9b6397f3e773313be0dfd1533a2fa613bc09af5aaf872fa816 +19fce64044d9a2506755184188b15a7a486eb95d4c569c88b130695a0de64add +5dc659b609edcab9535f1c186163417e536aef43dd6136cc648b51468c523cce +d77af91f7c5fd7197936600222767c29ce3a09d72882e0feff808a01095adafb +393ba794c58779c1ee7f9758510622ab7f42facf9d0d79be6111259e1a56ebbd +2aa53f9b08da11dcd42d223e7d91af504e8b594a376058fae800585c04e18e1c +1cc42019721917c8a767a7a067c1ba526e892ab20446b86d1d85502a05f113d2 +ef58d5afce5b996ab124b6d8badee04288fa0e2dde01904087b5204a7e64c442 +e6a3feb44f25b7ea4f796fd9f0715d05ae8ae4afe666afed6e1906782da15289 +4774b79f811437fa091a466403e405564086f879d2dc01f45a589726d8a6f752 +a344b16e17e66b8a6d438e3db2c225eccad7a1bde87fa7f25796b99c34e4c66c +2cf42abe1ece9b07360cd8839f9e0a8146608b3df9f63e0791af5d49d855a6e4 +099dafdb96d3ebe65b795b35ed22d67a922901b6fa2b8337c92289ea7e4699ae +e98ef24456e802c084ceadaaf99bb11d110d2380c94109ecde3d44249b4d1c07 +bbf75d3ae7619df58a5d66d82308a7aec862584131cd32c5da7f4ca28b37438f +e49e348e0f948e807c7a8edb3618ec36ec1c6134bf88494f21d676d91c2b2f68 +a66b76273f2e5cac09912235f5ea902c9b49634c685e215d99fab6782428e7d5 +d2c58b18c7f724fc92031de6869dfce8787b6330e4ebc9c01856b977eb6f33c5 +652dc85226a255c97233f1f5e3ca922b9436e304d326c1eff0d83a3f0e6a865b +6b4c3f34600bfc6109540d73963b8d7b26f9f22b03521a2326e59e2f10e60a70 +57a7c1d46ca2bd284d8dbe0f415d0f961a6b02bf134cab8f480346551a028ccd +8d74cdf783d64ec2801a5c9018a3687bd644ac42d5f3bc77224a47b90dd359a9 +87a36b486397703f39846e521f2e1a54879a8b13d7cd70d4f8b416da6da2e500 +de4b8ca529bbc4174315df77d5c5b7c4aed351cba404b04ac4f48145ffbd0e74 +bc14e757792bab302541f79ea24e3ad24a70bcabe2e77d2af46d462e503ce98d +904d039ce2f3825ae1fee72b75c39c5cd26247bf887a3f5378f57a49c13d8875 +3be36e39f1aacb33a2b29084ce99a53398193ae5ba2cd316f004eaf527f0c73f +bff51b4e32623858199cca601560c47c7a67ba86256be224eb3214c0b972e448 +2ed7b335eeeb9a73283da91089f03c5179957b3630a0146b4675aaf1aa316f68 +fa4592ebe6bcff70d8f0bd2365af32a3713dbb06d7006993c789348ce1992ae1 +ab980ed336134e2b8e130e44b59433421e5ad9a0af0287b58f71ccc5d450aef2 +6941caa3f62f5462668fce06fbea53b2e078072da2e6fe832fc9fd17ac97d399 +9cf4b1c1f59ee56148b5254972270169a10855bf63d6db39e784777541ce700a +d2ef411b8867a0c06ec1ee1fc060468072068b66cad2f37d07e1f19d3bbfc774 +00d60a0c0a8b1355c15931c3a729ee6d966bf62f7b18171746a75213a17d2c5b +0c74aa73bd8c3dde03268a2447d1df9dba8ff05c48e14e70f62c785f8c0e0447 +01b9735631df4c2953541fc16906217f26a1af5c23e7a2eef345e516a756bf34 +22f443847db662d39d023dea545e115840c307160df0ea19df41cdb39f11c428 +a1501250daf41bab535c9fe97146137d4fbef4d5e19cf9716c6a12087c37647a +85954b8070762e3a89333300bf650f3be61c3e4fc636ebd7d0741e1046b5c9c1 +5883ca99ee4a01ffcb31c462fb1c72dc0bae3daecd46da50f8ec6402088fa7d8 +4b6ccdd0077738f002825ada3ff4c484c5a7c253bb1be1fd106b100d54fa994b +bffc60c5e5833f5296c97e64ecd889c8246fdcd9e3febb09ae2642ae7e582e3e +6bfc92ab1ae8323b9d3e8b7527264a9222a03364ca2595c0007c95c5754ebf83 +e37e6c0e8f05c2af030a18c95ce5cb17f72ff719a6c020020373535109b11daf +2164be5181c03742e1bed6f352d424fe32a63bb9234a4e5c5913820b45c6804d +91841aff383692268b6e6e8dd4db468b193980f06a11a674593ced444c5f092b +cf45fc7796b8fd2f7b6d1121dadd3450aae32c479ed8bf97168187e293882dd0 +18b703c384e73ded9e2d58fb83c6b76ceafcf743a4d757a89d922b64c59842d3 +8004f2962ed7b8b436bfb922ecd0de64ee6c093cf26a518a9f97b4e248e88a6e +386467b33c0f3148f7531e0ae7348e68b26840be0bed4c51f4ec9a7bf73efcf9 +0f72a4a65d4e319055313bc032f98f7425beb91affe1c18c9d55f209ae562af7 +66e623f3dbd35672fe01ba210386c3f06f2b7ee5976567cb2a26206b14226bd6 +de275dc5a9ad045a295ae98b8b7b5f113e79e778590a8a1925b597bf0407409e +4d28f92400c2ea1b5d126774c239312cd7e0710b8868bda36478149bedd6b643 +0c41adc94ce8806bbbb55b7461f9fa56de5895d32e0572dc9a5818d0984d1b18 +b26339a9da63a9132a94b39a087061a5754698f5cbc4ee9857383c8ef07c79d4 +76e3c979f1f7d6551bcca4bb79ea4e4c7d5d61da58cba3ba8d47fd7b10e35806 +6802224d6bc1c75b4229406e599a07ae4eb6d51edb699b184982b5eb4d381bb9 +7e613d37f7b6279739020b93ed9bbca3b5e8846d7338ec21fbdf301448b54b18 +3980310ec8766d17ac9f8288b023a2ff9d5a00c5256d61cbd800ab18a09d628c +ede71bb6a1fae497d3fca94caa99b433c33a907fa761ec712ced777b2cfbdc25 +0cc450fc32f9835b45470def3643e723359b3570301087db893075a59c5e994f +a07d69ee5e80ae37a04def2c2e7b0da9dabddfe9baf1feda26a6ec0b9cfdd3e1 +e054880c270db5c535f00dbe8c19a7a3303e1a5e4f2e16a00f90bb46b6d5c80a +2636a82421d404415e259898ed307963bba2f87ef6343e0c98fe746948ca9bf8 +6ea95aa5a2134d9c6185aae6b51e92b4ff44e811cb95577307aa552eda00eea6 +626a3586c13085feb31c4ef0d19049f34e79f34e811aa66691642f40d98c7a1a +6350ef6541697b2e097886431cec8c2613dbc28b2536301edf7c734ab26bbe8a +1f8abcfeb56ae49d6d893de20e722e6aab7fc5dd9208e8a52792af13685dc02a +6b4095b2acac170547138b28c988d0477b0e6d94d2e5335921d28aca26e9986c +8ea7e3f69f12b63e0a86f5a1cc3098afc16add4a6fa456b50e24afb406b7438f +07394777bd2115041214a71e2f22717d53d81c6e6e69f7687df2b4b49b14bd4e +135d993977a161f8a5b694000ed257e48ecdc1ee11bfee7d2f521f4a88227415 +78e10c08c78c032bc73f74cb922398e1004c512e0b8cc7f9e157821e25a12141 +a6ac5c479e0bfb55603721c86e6783b6f29f1e803e8761485ff80de5ea4609b8 +1c1b1d00192649e3fbeb0d3788791916572f58ccb3cbe5bf3e71601b02ee4745 +df75bf99e20bee86031c23079cb784a4864eda6111f3f451ed992a78a91c7531 +f6184c9f5a5c919956ac39d4ad05118dd219446b056dd0dcae51730bbaacff4e +e1506ecb9fc0c2dca76fdefb921a51bb1bd465e95eb6d5a2c4b1f2957f0eb101 +9be65410c64f92e93a61cc529aa5b4e55eee7a56c13d8c80d8320fa23283c4ed +8cad0ce4183bec55417bf7ffd6e88b288fb47dfce7a47594244481b6fa38474c +cffa83e00069787e0d116f6d219d75e6cb08bcae727789955914828b42cec577 +2cc27835b1e15761c9edb36ba2c3ee086dc79daf6e655fbe8b8beccfb3646541 +2be8a70eb8c3b0cb472dfc5f9d1422aa1ca681b7623fe410a9f7027a9ca95d69 +71948ad27157fe2f80d177c9fcc6afaf3428f0fcc4991aa18dddc8ae57d84bbb +9b44d85a42c4ab3eed641b11a56a7c0d83515a6f62ef0b4b452a43c246327bd1 +71c4918d4b8f216b7bdba9036edb693507441ae36b06d1cef89227e20449b027 +7f27ae75295c15f1972fefb7955f67f07c9cde459334af8698304bef05a07dc3 +56d8516d7f1372b28a190e2ee63dd3a33f120accc85ef50f1ac5651e06bae72d +f9bc168e7952e99aae7e9f519216a3c749a3120b373a9cd6a648cac0182540f1 +49aba705dcce7936d6f7b7ed5768ab763f81019bc6c901a15cff778dfdd7290e +e6d2a99f5a493ee6ffff83763628685bfe5a379d7887076d1885ba2c4f63c35c +b43f068822e680db306d3251dc1f28b60b45a6286f5309b2ce02f71726139656 +8a24f9faef54ba1d0adac676ea4042f4e33bac85205029ddf1957fdf95361d54 +ee967c6d8d73bcc91e49c269d94f96eaa8eea5dceb2a1457c0bd1987682fc5ca +eba7f466218e028f629e28075aa12a44cec9c473b547ddce58e72f6aef2f139b +342e81c6a116caebf2c79968d7f1d73e77f698307cda275b517691ef9d08ebc2 +aa9492df75947757b4c54eb3514d252753311d5ea010e87b872703839b8777d3 +58604c09b73911c848baec48dd0df33b106bd30a9874893fd77663b5a63d1fee +262161bef2f4193f852de5c645d00fe155de3c2ec86e7d3bbf2052eb0939d7ab +6f27338a30abe4dd888d4df232014612ba94900e9795715a2eb989e1216a9af5 +004947e806c5afa74ea4b64de0bfe63bb7488c2c3e4e5d4d5d6c8403d16de46a +29bc16c7ffc48394f743fcc7f9625718b0e276e7eb995c9e04d9ae110f37d419 +7831f9e2a958e760f542cde5c8f3309881fc37b30ce7f18de49c83a28b2235f1 +82c6cebacafe85c4099958f2f9a7bf6389d954c68037a3f84f9da23f22b0404f +9677a00f7ec11f94da6e891bcda249b7cdfa9fbaeaef2122ada7d54bc695991c +895c8f042dca11dcf99b12efbd80b5d0ffef494702ff8d5555e1feaacac91626 +8242101f9bd09461d4a8071eff46bd5c2853e3e4b1109ebc295703fc45bce8d3 +491b55873b1992665a2c6cc19763282797c7da6efb79b1ee9fd6300a8c1838cc +6d6fa8fa6a2d20c046ffb2cbd5d046885f1e9d199b630a672f4a5a6b0ed0eadd +750a27adc83d719ce863303f4c8d7f74a4ea83c95fa092ed4c2faf26a56f858c +ddd24fb80dcb3012150fc7395a32df3422b64e2e0e6463e3bc97001cff04008f +892ac99de9efffb8790ee35510fcc34f87980d445eb4ac1cddd42dc01f93effa +1373183a485d08103392c00712d0b96627fc2ff23ac52fc5979ce27be2e4262b +a4fada66644d57fd902ba5f9058afc10a79e87a2b3b494355dc178a57f9cf55b +5ea528b6479a8d92140661d2907dc101fd1a8bbca74d49d9df6c65cc68cfb9b0 +ec379d256b8492c14ba9156bc64a31826f3f4c680f4d9dcf1b14b590fd272abe +f16ecbdb776dda76a7e96f5594875e9fec5d666459e370e45cb71ca55f7adb09 +9c4b6a8295f1b5fc177c31ab1a9ef73e6c606425a452d972d1e2694d8c03447b +6e8cc4b84cab9df3ab3e1a1a0412b7f2e8a41cf7637961a2c33edbcfead9d894 +4093baadf53c44636768afa3f6bc120d6b17eabdcf7b9eca7891cea65a725329 +3ca765427ef0eb921c41f114f66cbd853ec92b184494b044efcb60dfaffa41d9 +76c0a470e5da3a0fd36c84035351a096a3f554af09d3853c7120be340b6ecb19 +c1311a7f803f80b441e4395f44c578810e8ae6dee64a9db68a2a9cdaf6885d21 +9b128a6e1d11db8c6d2287ee2cdf805a41ebe191786b70a22e93ad743381517b +70ed9ccbc66071fbf415b88502031577444c7aa7d53e82a0361dafb776112062 +d79b8abf6c1d4262ac8b06f5b1e7d5be0075e5f5ef549319cb27ff2249abe912 +9582540c38fce4b277c47ce50be1cc3b53640c25ea14355033643f3766d60c66 +f4513f9d2e051a3dee4e4da71034c72b99d62a81a97d46aadd9be63b41ac6098 +d94debb273dcbbfb93d9424a553508254538038983c7d4082da35c6205913494 +560bb5b6a9b48a52b1b8d7e787371bf323a4050aabff367cc01a5cec2c1e2c4a +c6ffa24b855fd7d6fb7c1c71e1785c3cffbab4bc160985d97cf1df399525b04f +c9501a6e552a457437a618e8b39ff96124898010d7048e7ed0936026fb6190bb +fbc2cca7b34ea50cf03fc905b471ec7027fb445e0f457436a9ebe2a5b5bc197d +dec9cdc6785865de9f5cb82e625f6601af7440d5f539443791d661bc2cc3e5bd +281f4014eaf8a3d01044382e57e0e3d2b03a1dba8c7da747b456470343564c51 +7077c693d8b4af463781a7b7df92ecb3ae8ac9d1cf016244327d1c75e4d60123 +8bccaefc07ad1a757fea5ef60b27c2c6cb1967dc6bf5e525b4072629b3774fba +1371512961e741fe4f4eb0b5481a2685d60d280ff9743e5135029692f6d939cf +732409643c0f16d2989d82f2e9fa128e3c47cf5767510ae0076da2de9257d529 +d10c32a5d1137338367c32454990e4b98f6f1a09d82340327d6910eab6b75e85 +98f38fee065b764b0d626f9051e958efa95cccd2ea77707c2fa2f50df7c8db75 +fe426a357dbc11cdc8268c08a2bb66ec1ad3e100b32ef81220cafe955662d56e +8502bc65a8e9b11996a912da4eb42378c57b6a89a0c940422a9e61e62e5932e1 +47386fd5d68abffed7116ad1426a515e30ce38ef022950f34f1fec130c613f0a +2bffaf82efe6cb217c85174f22429ee1204449802bf7e190cb93bdb52509191b +c0cadc2046d982a30b1c6a4b91b3a8475bf69101c04382616c03f3b5b55984e0 +ebde966b607e1781e6009096cee041690482c3cbf99c775a1eb06fd31c52914b +ae275db2521787e11e949db848d43e51659e4b5398d748a3c1f964d12aa123c1 +282765de8e517b5357cfec15d0cd1c2ea830ef09c5a186f5cb6017c008c6344c +07ba955a174bb7c67a8f42504fa287db7c0ba1ca9783ba039ae174bc80017564 +5faaf62a57cf11dfc0a77ea6dd70f4eaef23498cced5338737db5d118720333d +4df509521a5f585245ac7b63f60be24ff91617c89bf6986111d447b563b34ff2 +0b93c2ed78f1dbf73f81785e7f038fca002485ed514adabfcb7ee77464125fe5 +c723f7b90b8a460e3f1bcca57c3a47361223581aefdde3b1184e43a81a2d479e +78469571cdd841e00fc1753378ed8af831e3f2f5f548a32d6438e6ad959a110e +491bba27933daac8ce7de5dc7af6146781b5c3f3f0366b4069da0f908ee14fee +6c964e0afc359e9c0e71fc0805e9ab587b6b3db8773aebf1b42be95a5f9c277d +37db30b8a78dd4309a27d25a319635721f55a7ec178d8df7d3d6f26a5f8f534f +d01a918d6de91bb81972a85d28e944bd7b3c1bd37180e144744063dbe1f7b5dd +6bfa6772064ae23a3f1f34e6bdff625582e5f8fe3562f00bd830e61358fb4034 +2e67de5e2d57d20ad1f02bdad085a390e3e28c2aa4e944bfe2233d0ef4ad7ee0 +e98e3e9f81cbc3d9e748e65ddeb3d001721efe02893412c151430943179d5620 +e5c5c5120822c99307966363f6f025c229130f5fcbc0a06f58b5f15b7d78fdac +e45596793a3cbfe2854718298b2873d713838e313ea6f4cc779119cee6b0d6df +17596be44371c32b667845aec2f6262d3e5cc977367b5666d5a85fca302664eb +c8a181085631b7452a36ccdf88980cd581d83ecf1575e5307544ac8f4032836c +56689baa126382cdb7dcbc09d28addaf0622199a2c500ab60bd8661956386714 +7a4c4d3611c1b2d8cc0fcf5b889c64fd95d2d63d65e3ee8786ccd7988cd8d5a7 +550445fbf17934c34228fb1aa8c60eed5d6cf5abb16bd9b0358e55ad0cd0c9f2 +32eeb71bdd0ce1153f5ffd722c1cff8c8beac46add2faad4d4dded184dffbe0b +0f285500b80c0a1a6d571ab85a2950991028e6f2072c18f5b0f26e549c22fd15 +8cc819f70fed9bf7c5d7e7805cb58e6bf61a9f25581aac3d3495b332ef5892a8 +8ef1cd1ceba5e1edf910a13e077715477d9629d54975d7d19ee3cbd0809cecd5 +534c82fadcc43b12e6d3378ae798047cf909000b3017a24b769903f5b7daa807 +30490dbb2234b1e3ff5f0ff22a25ca5ca277fe574f8cde80d456511080a1623a +b2c1d40662356cfc4ce5c6d3d5db286d631b4d6b7e140c25990b364b89ef331b +96c4dafb543012b8d4a1cbd9d5cce2ca609ccb914fe8c3182f932e066c977595 +d03a4c0196ed88ac144d2284b21c5478cbaf5c1a96319f18bf3ae76e0f5893b0 +840a97091ab8d4f782c0daf9f3c7f67eaf7eae595a42d5fe0f7778a4cb3797b6 +6df284f006191e823c1a496076a7b45e8562f840d53e152b4c4d335acbb9b42b +772b3d57c5cca6c978150ab6309aae771bc322646272ae0a2d302c69a72c0fc8 +537c5fb3a61cf78d62951194a1c039402c146eb34eeee1a08771bf178fc8bff5 +e11f7b74d4a92600fc30643d0b23e0a40009fe1c92197d95824207c75c81e15c +350cb1f7231b1ff85666c2fbd77dd406ac72691de726950ee7ccceef1579761f +9435e09487f12fa449e9e898d890af6eb2037fab659ac1b91aa157d8d3316212 +1569eb5661775381952b58d67b6aa7e4ce17c322849638b12fdf1b66af8a9d5a +bb141dcdd14d89f9a00cde6002444d5cdb467d63e3b78fbf0bbfeb5dfe2a10c3 +d5c92eb2a4ea105a1f4331eb49899c00d37bbd498a0097db32ef077c9356a4ca +5a619554c8c43fa7522766829bd6f0d22dd82b87a767f2de84283ef25384051a +a02e2e9dd842efd5a5c16d4d8461dbd31455237ed09d0675d69dbafe0ca46c0b +ddf2ed9160bca4243c312c8326977dcfd999608576e0231fd3daaafd9183f2a3 +6bd4278c6a22a03127387fbe11a27dc7e926d506e72bddd67c9128db5ae79d23 +944982f057f7a2c88b54ebf5956f587388d1350ae295b4df480ac39cc2aef7e3 +f78506452b9582c177fefd3e3b3d08d247f6bb163f01e5827fba55e11e1dc153 +885b538b492494e20bdb1cf146226229d29aae3c94942faaa8fe7fe84295fd30 +02f15ca84bd65b8bb6fa65b417bda821894a01059dcece02a30cd708f1b9066c +62794f160c85497efb4fc594bb01d711dd4872d14382afb9edb362bd4d7b163a +91733a34f18065dcd59641011b45890114a9c2387d52e1bb7f89e3a7fc5b258e +7d3fb1a2704a337bbc7b96611a5d59c3a1df4f0c0c23f9432c5f50bbc3abe82b +5c07819d89f3132f6216cf62009d95cfda05bc4345330647adee20b3abf343b2 +20a892c9e456b4a15e8fcd621cebe3fe0cee5985b9f17d75c92de6d69bb1107c +15bb8444baf346a30a87af9f53b26a3ca4be96a70a168b387ec7ba3f839c1c78 +880e5231be0dfa9722db86a78f55c93fb220f9f7244301b03b3d2a2659e425a5 +a951b9a6204acb6a254c328942688b006c73daf7af93d7dfe1d4c784f8a9a51e +38d5382e11cf3ad6476b7451cd501ebee0539453d2808f0cb76f5637da63074f +a2d6ea0af7a5523da36883e03ee1d77a5d4b49eef097643f51c5cb4d3e066f41 +817e1591e4aa336dfd0bb42419920cf29832e62b9ec4b07daf023fe55ca4cc6f +bc26dbc2db2983ff0f029be6e3e1015ef4c56081bcf4d4162cd1c17c7a2521ca +2cc9123974ff8558289f0d5e4b50fc8e1ebc3e5f33e836fcc074834bf84b45f3 +01ce47fddb3920c763b17ab0a5aa17ba4ead8d651a4b97461dfbc5afa0958c3a +0fdfdce7a90db27147ee168103b36985f61ad43065fe6664951c5861d361c5aa +78dcba76bcdd404f4597c6be549455acb4b12597f0675427f4da3a48ac5d7af2 +e526ab77add39fa2bfb4e6d47f69adfa4a24afd9eb068629324b526ac89e87a1 +73ce2b15f1c5ff2a0ff77ba7ea7cdbb8540858f51302e466e99dbca2289d55b8 +e95ba3c7d65ba8f7f49f766161b390a4044e1c73b3e5aa3091b4b41829e8b9c0 +1f8fcdaf407627592cc49c95cd70762f2343bc123f6e82572a63c7f0bc7bc0bf +89b5005a00d77d1608540f2d27f6b140e0ef33a01ae9c1d1b6aea027bd00b16d +8519bad4672807650d689487a8f1ed93ea0d75875b5e5bd3b1e02e5b436fa358 +50bd273b5b763b0ca1596bd715dde964d8b86f60cb579c9e0a2fe1a9c0ffde5d +ed178aebd26b682900e990bf47e155bba9d9da9c7b8102748a5251b85113cf8a +f92e67b6c3f112fd0dfecb85e9833121e57240c04f864c40a0c5e86eeccb1c56 +8936c41426939fe5f07e1b5ea80ed2512cbee0c0c0818c443a5f46e6bd59aac3 +9eaa5046c4614fb6a93a8ade544f20fe63e627642a85b3c4ecb938bf31cfe87b +f52495dca85fdba1baf2e9ac651f13c6e2fa67752106b41a50f2498340c4cca9 +a2223061eb10d65d7a76621f0427ff6c08b238a25b86b5ad93431d2022906615 +3a495fdb1d66229ee0d2f7eacf9b889d116f6fe6bba4ffdaeee52fe8b845dffc +e13443cc3f649aeaa8bb7d9ea8d6b224a37d3d2d5df9012e92797be146abb7af +0c1899b4e5cd4ab52aa5c88aa06cfc9e2cd252e7708e41f47f1f1953d6a4d977 +a470669fcc2078491ff53da37c5a214dfb0fd1c3593d93cb5e526ceeffb17313 +b2eab2718e9f050a51577230167acdad0895ac53ce5b0337af87de4d42eeb03d +83ed294f10065db0a646ff4029e965c1b6314a5a627406e4d17e006e9766406a +43c72013958451b1beb761cce6e155f88f1e7455b30183f037fae6ac3e5ef00c +137198dc7ae259859b651cd2f0951627bf701eccff266621fbb50069efca09c9 +0490bdc0933495c993bc551d6b34b7dbcb89a807f39d12d9118de54c3b2443fa +5400a84b9c5b7fefbba9d651c9447e4517024a6d724befea78c37d775bfaef2b +a39678926e85713d5ab0202fe8056d5db3265fccfa27247315bbacb3c74c3d89 +de339fd5b37d5dad46fd9270a7e7a9e99d0c75bb1b0525dd9d266d2fc6c19cd7 +419a96c8085276e9e341cf598cea6ac6e524d11bf8c63693c5e20b20a43a80f8 +1d9e3caa9bcda611782372d0186a69bc20759f65a10e6566cb79a375bd5343de +ae55da97bbca0b686d416e57782dd68b15f70eae6c163e6775bd0dbb96d51b04 +04790459b7eac375ccdbe5d108d74024754704b0f62561c657c49ecafe3d794d +ec6489de65a3c84561d9d3b2fbdd1ffc3d47bd6f8c2e38fc944f9455ae7c704e +331c77387f77ef84eefe9cfb1364986812950262a63753bc38b56788914447dc +bc288f2dd6357e905d87f08b531d949d982221dc77d316d38649f70487b14484 +41939b9ce4b709b1c81c8c304e4238f140d06640848923dabf07d3e3028b39e4 +cef7d3a0e0eab7cd1793003c1d5863bc165af3ec845a12c9c5e45774cca203c4 +5f8e8158904ced82c56671ad4fe9a4a3e136665590eba62b8f490c0b5e25f91f +c90f9ff9fb7a2b7e07b4813bb4b57a1b22fb757d2de3f2545f73a52eb8e40f25 +65e2138c619783e9887eb8693da7c354792785fa7cb7f80a30c7a427eb01ab2e +32271a0e0ba74a715cef2511e927e9945ef1a2757d0655130e5114949c94b205 +ac2507c9cc2b5f3201f09b1f757fce7fea029311b620ba116adb7f7527b2dbb3 +dcaed1fa71f8c633eea1b44cdc74a05ed3896aed3e3ac67a9853fc48c67f20bd +e0acd2919b908bd86c61486c08406a5d40400a43333d23db60b0595007c4753f +104536329a17c0fc991d49ca92f70a3a783594759e644fc53d68b3e963439ddf +08bfae28c6be7c32ae8bbea86186e47402cbc3ce70e69e753613782c656b74ac +b5704a3d26b8ce38e4af17ca90881fe2b8f6cd59bab9e70d9a9610d388f6cf44 +e58eadcd82d81dbc545fade9104d6925a89f599a4366f9403b773115d88cca07 +829fae39d50851cd3ac28b2172bdf571784ecc2bdbd5b4018f75e54aabd29538 +aa7c5a84bd25fea1c58eb671e89eceaf8066fae2dd26f6e20af0ba8da3cceb40 +ff0f62bb8a40886ac861660b18af1b333a8eee725591cc0a7242650c28b515d9 +2e9a28d72f9cb208297d12289ca3596063329e9e1090394db4240f189862c330 +ab7efa786f7ef4617edd4cf7d5dc029bfe6b3f808233bb47efd8aee7d646a746 +ee6845b61efdf0e7cb4aef0998b116e57e294c72b72c4629846b743311d3030c +b9f57457c5a962ca8f67122cebe1cbbf5cee79cc7edd3794182473a1d66429cc +24e61a82c563e3517a442af6137fe0f7ae6b88b1d6b09f53af9520bd2159cf1d +6c5ccb215cada17f9c38a5b55b7bdbaf2b2cecafb51b788e90bdb7acd2427483 +e7dc61bbbd052464c6445e53ed94ae16153ca782b23af58e24c143b6d478b54e +77cd6f09047912f2dc69a457a0f040285006d4bacc695031969d5265074d8767 +dcc9d1893280cb656eff20f3725e7cb8bb787b5f94abbac07c067913eef011f2 +e472d24de8e1ba5d97f42adc6e6c0dd7dabf119c1ef99e36b52d8524efcba420 +d9e1b22e2f74c296b6a96c876bbd159f6a1aa1292ed84a35ce835f6657ec7669 +a5a042f615d022be9f2a11d88e4ab384f656d9119cb013543da577d340687dc0 +b9d8869bea54606df91b216179ee99888556691e0874effa3858fb408c7d1b9a +6eb72d5d1558dd1c754f718441ab50e79f3d87e2728a45bd1856e20662c8999c +da6f5c278fadb87b03532ecc242b39899b1fb1b5625f457a7b43f972c614d124 +78699d0d5143ebd1d652501c5ccc2e92c1d839e827311c9c8843e33eabf5f499 +40fbdd1723159afdb9d6b6b00023545e5b11946c826aae507c79a59ee40efdd6 +97d17d13b01c4744963f3e5ca6131fed27e6204e2ad2f78b04b40af3ff8416a9 +fa4ed7dbe4fdf792f8dcca408c0297a573af541806fedb9dd746e35de0e31fde +4745a9c3ae1c1b4a2ed9ae0c2e9d476d65565e6a44454f58a33c82485c99b18b +2b134c99cd4e74b86aca4fcf3af32940f4060a106d9b750634d58a6643d70d8f +361c665730ebbf33b1375272bc59ba3411c2c937165aad01fea246c43fdafbb7 +9e11824fec07359eabe6aecdbd2f03c2e7f8cc780792bff240da878df634088e +2c3361e8d36583b061d83bdbce02dd0e10ffc48238b0ef0f0aa96ee7aff5354c +507cf00a104cd70a859800c88adce53f676590b305e9cbfe83227c39bb6787e6 +bb3adaa21e230416f401f89f977bdc186ba656980430193cf43fb7ac27d6fc9c +7301b0fac4a23e626c411a47d76955d58a4e7833c21794cc264579724ec63289 +10271957b61a72887f2c9a08b6cd20bc6a22abac31cdd3df92626e10af72a24c +96f38f07429777d9314ca0d99c881a49c1447a219e02d92f7911d7e162a5f800 +3f2ecf3a1bc64fd431358b34af41e60b45da42af585bcda364f8894488813f14 +61b708d7322033b5847791aaad03324de04d662f34bcc1f969e2ddddbe9bbe9b +a7d09e75fe78c32b762773436d7d18a6aad941a44eee9afc869283d6772ffbb8 +f2f986f2cea963a6073ef33a4f72f8fdd751b3e5e7c8281e951966adf89c82ed +e7599201cc39f4d5c1ada0875ebfce3d361dacf2b7de7b37bfe16f2bdacc58d0 +be65e899c13d0f49ef5d4e6d5de7213078a5dcfb28b096bca4844047bf8f2b56 +2c060354a2208125a0a855823122f589cb954b1d5804bb1605dd6abe751ca976 +1972942d34f8ab8bcf1cf32ef039a82f3c64c3705d88839b1407584d203c2b49 +b966aa04b58ae3be1e3561c0970015bc21f63b02c63dce11f919294f38eaba0e +e9467294d53fb9ae4b82ab5ea704aed0ec989b7fdaeef89134bcab30ed3bfa8e +ac564c8d297fc6035f032e8a4a58b0e7ba5fca3c91e70765703e6708b33d582e +6ac634e681e2db6f603e45e1296da486d7e98f4ba8f0b4ef3a6e7680b79bbb57 +c9ade905c330beba2e75418d2b41e589630104465748217220c87fbe466ba118 +36a7ce5b8f6434eb4e68612408b7d6062fc985ee562830cabec961edcfb6da08 +930f84256814c4be0be52a186ba1be78ca63ca4d53d9110da0b9b9510465b886 +5f73b1ba688a55abec74f53d0b2efd2cf28f6cfe6887173ae393f45e82e2cf10 +e0f3e1e9fb766159837a7211e97211cac0374412d7de25e78c6b0b219f60400c +a907911f1deeda9e819a21458ebff534b9c2f04818b0a8a2bed49a6dbe31deaa +880a53b6d9e8d27bf3efe5dd2c7a20757aad1809da42b401b9b537710078a5ad +e31c69f0b1e877bb0d71cc9801c56fbcfe8444810a44df8256981e383495ab83 +89ed49b703083dd2c866865e8bc0f626556708e73104c12e04b293850b5ae418 +b53573f2486bd4514191c53f3b1563d54ed5c0efa5efada2a69ff18384f2f748 +9b2a36fd1140e9d0e72d4deadfb058979d4a197cde6d118f3d09cfc532623468 +f4fa780b5cac206fbae4fad8c9a44772f467a94d1bea453846717d9e0de81bb0 +891a4afcc573b65af4e3b33bbc39c17e498a2963ebba329844c37ca6d5f28e57 +4e6b40e498fd0f7324f5ef7cf90f7db47f51879704d701f03a807eb60ba9729e +9a4c439f19a047cd02bd3d4b9949a1147fb152c75e0feadc5400ac9122e7860c +dbc6a1267a0b9c54b1aa36eae5a2d13f965b7a948d1d61fc2c40803b862bc1d6 +17ee43213721a76948a8b7c5c23c9875cc68ded968dc9ad62baa68857dc3ae8d +d549483e387636b9a9693e1ae02378f3db198cfd6172db06c7667457d7cad173 +bc52886407409c20cda9615d316e7bfc1d055bad292fc1b044a9045667651d90 +7ca9e18c0a42cba9d8988fe314567054e1469d6a22c20e83f53ebd8bb6c21251 +bf308838c2f42c2907c2811f0188749e775541a3f17591cbabb3447b18d09d3b +816f56296ff7e2b3531510167da60e590487f2561e7d5e1c07a1453120210f03 +87205f407511c09aa210c7a394129ba1213a78fa99ab66e9a0c79de3664b96a3 +c3cc975b73da6c110a1f2e85e263a1055b6863cc87ba577c24ceeb39dd8fc78c +ac25ef46b37883c5698e9fa71d962b3f8d2a148e89c383c5a8b75172661efc38 +d0fd211e1582829c4199038a3b80f81bb312a5592ae58ee9e815dc608c9bb3d1 +0148a6661ca58b79ecac28596049ac006b7f915f28f317fc7ceb1414b932f66d +e59bebf466bcfa540d475fb9503b4a75aa40cba89b903b32350212b5b653eb09 +3c7aecd4d799a79df76a9b0db90550762e7d6a57f500d992d7aecf4757fc05a1 +4912b4b39370659b75386d6a974b67e4c7e5434f1604912c6b742b76c5f80401 +5e1b8541313249e161e4cdfd13e9b012d3a399b60c1f346456d36aa169fc30cf +022ccbf697879b8abfa031a5ed7b93a67031c3b3770fea0e7d0d70a0a3d7b40c +afb56bfc7554c61e6f72e65c4528f4b9ef6d93266ef1f29ed8cb5a25043f268d +09489613d4dee865265da94f0c652a7aca4e9369fcb70ed5d8e73845a0d03fd9 +cdf24342c9dd0f2672adc780816350025db36560f4e5aa9226a993627ea46261 +b97b13203de7d12249db2b0620df7cb2427e6285ae52fdfb28aa5c2ad8b77360 +3924149d3a71dd370a151d1a110defef096de93be043cf4aa09b8b765665efb9 +5186b4db47ef4f531dad78d576b9fe473379346f280deffdf9989fc0b579a806 +bbffe54ff8bb61637c3cf2bd50797438cafa0207ae6974edebe39bdd2f338969 +1081d42e875f218d6f9dd7fa51ace13263d903b99aca50aded9595da6474ebfe +d7a8297ba332ac9a518fadbe70bff80ff76686f1ccd459e92e0a2925730f0690 +f1b800d77abd1d48ff1a091494dab0cefdbcf8f839b81b15787db45e78af5d4a +37bdf7aedfb7a4dd239a252cc7044bd83d0935a3874d514112c16fb47ddeab00 +2323324418795c574fc3273d22164decbce0d92a67859e4d33df2e5b6f7f4239 +2348e77301e2742d8509993ac7113ee43f44e51910336807219d18a71d4b615e +b49104faded5904d0174f084e5c54c16135ae896e0d8d4a94b5d3f1e5d0a90ce +26ff3f3d32f48fb9bc841fad5460bdb5ce1e909dd95c8b1fdad4a63a37fc802e +39891a964a70563205b37f6688220a9cbde7bf05c3ec922c136fa4982ed998b1 +6df6c2d7ce660939b23a921f29a4f7077ff9fb998bb62c1e5e66ab125ef375e3 +03f3b3550d100d8fb265d7c553c16b3699aabb5628bf0cfacb2608847304bc6f +8cdeb451a15e78ff17261ab5a01032c843b251ea217db256d61b90cbaf2a2d2a +eeb00996a4acc6d9e23d49272da68a6a0089e98e0503e4b383616ec40df8c152 +134ca7beec62027b08450788784b2e15f0c322d7d62f3ed831a7ef9e743fb23b +a0358a77ed6b05eec6b337f5b71e11d1f7bbac5b40898260794b6cc224310d91 +cd12ba33baeb21153b476fc10aa9100f795644e4d378f3151d4424e628d25a08 +8704408e78c3bf2ccb4ab46d2f2c0dcaa9e6d64a159293fda0b9f3591690f6f5 +d8accf0140a68afbfd9a31988798775b83219728c085c5971015b82e3cc2d83f +95f6023b7272b594abc5470d97aafeb2acac563ff67a2bf172d6ce3a8aaa09da +bd22a4f9daff3309dc6d29574767ed3bb9c32d6b9781758a7de3a82e2bf88f80 +698ba5a7447a63aae6d9fe00a3124cb15b38da7b1467ab2930436f70b1c102b5 +394eb6a12f3c23e030bad0f66cafc2935ba71fbe8988ae16caeb23ed401ea750 +8be3e0f46e1e2e1f898e2646e642428c3c1b196aa98d5ad73771b93b580f1625 +ec15cc1674e7a9d565d941132971ac7db252f684fb4fd4066427444a01fda5ec +c1301bbf001f5fe7c83dd98ea7de0e66fc216b709474018e1979e9ba2249f68c +c8e238467864e37b3052e3f56b15aa3335214a26ec41058add2f33dd5ddd7ff3 +cc064089fac9282110c20ff014c0bb53299c77a5c93456c3d6671882cc7af79b +d5f107067034a696854dd2ddad3e6e67015717c15153c343c21d567f98f43acc +953b9a5b1ce8907ad7497c3735052c8efca51c927cb2c72bdd8ef5c8093ad928 +6d2236797dae3bb87387f08296d6a604ddfe2bda7e4337e1a29b7784d9a5baa0 +f49a5944783af38ec7f91503bc49d5d1df7b8ba5fc1f72bf80703058d967855c +0ed73856b5da22b2f0dd71763e15e232b85abbf98822b22643bb66f0f8134476 +0b097e47f264d3ca34718261b92242841ba9d21316c4eb682d54fd48e14d0fcb +d5008f629a92dda8de8d4f6d259115c86c4569ac8f147d66f1412b49fc800357 +b6123d40feedc844647759588ef09b766064ac4d1dff5e64742791c4d4421d79 +a5ea6385de15813c0794d96051b474e0d38a50ec551090800c53740a0dbfbea2 +9cf398dc78d55ad7f0032dd2740e4928a50a8bb2397733dcc367bc6496c8de2e +f7c12e1155b546ace8c60a216549a244600347454d4dae4a5fdc119276c4bda4 +851a10c20be1bf696009b7452283a1c1801ae3f628340a366511f972cb27e709 +379e4ea29f4caabcf6f4337936f1c6ec8bc87109ffa667ea4eaad64db0930a2f +e4a1b1f85ba8d3bdb77397e30055fc02f18a4affa2f8baeb7c377ccc0cc2d244 +7e316d5231638b3bc0fc590d171ea52935f2ed0226dad161cffba84203420146 +89e0764625c9cb43c175bf4a2aef78f2c8b557243f37ffce7842b6ad2eb31adf +3141a7488f918215edffd2eb130ea00c7a8e598cef6aa4d0cafae9c8bc1b951e +1a01d7ed8ef48f1aca8a48404d6dfaaf1e5a6c5bdab4cab7f34a2d8279132a28 +042103b178a9217bbe7dc81f8d24dbece68e72fd7e201e89af835f27928bffcf +09daf2014fe3f03c96045a3ef2e6ab907f0c895a9e9e357bfbfa1b3c3d1abc1c +96a83819f1b1c61251c934b87c17d85ac848639dbeb584fbc204ad09857b6a8e +d1eb125bda8110e193cfc13d2d25bbe9eb65dbc425b43c9a46fc6cb2b287d577 +2c5c3ab08e620d56c47ad8c1e815c556fd85b51389ba55d7787bcfa860ee9a56 +91ad77f3dcdc62bdf81d147ea6bc03a1c48543c546f92612276358eec846ae70 +18646b57ceb8c3f7f57fa6bb95ab7d70e4b3265d60ec4bf5ee9a870ae3d91cb2 +a40bff04419e0198de71be67293d6098119f76bdc9111f56f45fd7774239a8c7 +53cec7ba2dc54fa46466c0d6c55a5869851b5a8617e4e21962f219b1956c0faa +c8a66f02bf82632ed4ad38854a15b99fe8d4b5ed5a6d877175f364cc43145546 +56673e60252efb5acdc122410a5cf43c9f5a6a56022509fb125b8c4a0b773a1a +51a98c63d91c29dd82f6819510bbf6a15d0d2e2eec78a59d7610937ff418a7f4 +2d5bf0bf0777b2f914164de89bba6321000f656814e15779be1818c8cb0f3ed2 +c21efd335d60ee1ca25cb7fc5581e77c2a595310af20beffda320daec33049c1 +0f38c3747879991e918ef90a978eb3e266e9d20fbe54fc9f4fe75237a75c9f1c +9be36ae28afbeb3d896958f72f9c02fd3460e96dc525cc22466ef40bdd4d8d8e +18aa3fd906ad29ddd2154bc2e09781ee50078d2b905214805e4d48aaf9e366b7 +cba25c4eaa6cd851ed89f2bafb07197887d62d8a88ca360b72f3d50f75e671ac +d950ac5d6bfecdb72f83c130414ed6d370b4a4fd84af267d3573f71e0b5fc6ca +eb4b8630b93508da9c197c0fffde911f871b8a2c4abcca773c96878686de8300 +868e263a7fc0bb0b98f009ac13ebc0ed6d4d1a91837fdc7bd1f40a64d5764ad8 +8c8a89aa60d22d0342adfd66dadc73dd9481a74fe9fbbd8b65e6ec15251e131a +55d856074c126902d70e8328be059b72424684c956c947b21d35d86119636212 +b37d59f476fec2ccaa6faf64478848f232e23e1beaba6151e972d882feb8b996 +c5a042f7ebb78342c6c19d32e1d86009161a409e338399ddf4ebdf04a3cdb2c4 +4ab33c9ffa7bc55d05965fa9b3127920f9ab5c731dc8bf255e41504ec4f24293 +2983d81de17147d288466652bb37f4e8828f19f2d79605eeae626955f700f310 +0f57515099a25b5632667161b03bf684bf0a8ad34db4cf33dd090f530eac2377 +90950c341b189be5715a1b6865dc1d345c3df78f5a6f4d170c3ddf687bd50ada +667af161e4ae2cab5c4b20fdfdf4f960443ef61c53564b6e44a310e557f5b52e +25436f14237738a6be29bc161d7d6c077ac08c39f28686817e3867e1bd4ce765 +fe0d8ed75c2a91d8b32327c190b73809f9e9f4ea41f227a2527205b1b85a12b7 +2b5e9926cf8abaac9192a405131406b0abcaaf27c9ea8a91770c29d92ec5e43e +f98462fca92caeb56a67097c835470ba1e790266d9d3c38a43f94c2130bd6786 +c212dc36443128a8a0953331a8eb655d5d8fc9213781550db63ab7443cbaf1e2 +9a127620b355b8175170213042a6f9b4df3aa1bef4046f6be73e81f6f2694006 +94cbc33f793c55a52282b934ef6689190b550e67179f2975d45bc0dd11bd7829 +49410cccc13d6a0dbab3fde04836773d185bb4d46a332d32965eedd2ab8eebaa +debf06297e7556e7bfec6250b4487d29c7f61e60499a72551b5817c836c5c025 +ea7b142483ddf0f065469fb386afa9a91a74aacaf3fc57a85facd78abfae5708 +0c09cb82b0d16302a4e67f80a98508cdd3e7d66e9c951a41241aea3ec3735901 +dbb3b10ca1a6d0653bc1a9800de240020d6ac9d89fbebd77d6eb530401c8e5e8 +faceb9ac544738ce1d3d7869e15ff79b4dc642bc9691ee785c0c629988a44d6a +f76c2690fe2a61749face27bf143e74a4d334fd201a91c579e96c6388354b544 +4515dc4ad0d852d41d437a4706f700ee87c7654f505ec107e05daf832633cbb5 +513ca7877f2fe02ac1196bad655adf9def267874bc6016028ed8138aa15708d2 +a6c41956b6cf96e3fbe30f63f4e61c340c5d87fab30cee417bc8dc0d9884383a +0df37a82c00ca6816c1b9831495919b07b3b50fc6faaaa40927d21a900eee47b +00095486219bfc54650434fbdb83334ac322f7db545e2c156d022c778d782031 +1b7ac75e5bf95d216dadc1d480531bfc940ef64ed90d61ac91ee31241071a78b +a4c76d472dba14970f9845be99e5f87c250f0296c307e5b3b80c1f1c3f677ab8 +c26e86aa123adbbe36b5ee01db4bddb41002a65646100e8c47f9b9edffa3b211 +63f00f8933813c6cb57ea9dbcb81aef79aae10e4d20807bf55f4f5ce649a406d +4ef1b6ef735dcb41721edcebe5645d4c926af523489692b7b261310a677ea04c +41fcda1f907a7b6faccd818e3a68ebf2d35cc13e3fbcd824c6562d6d3e20de70 +8084ec51fa72904745f19e3f6b71486980b8ebb020085e064cf74eb21a294b12 +96199a009886066775754e23d565d952640e6954ae259f0c222841b511a4e821 +91f512a6372949ef37fee9f44b9ec329c6d5f65dec5ae6c6241e599caf118888 +9741f2cc66730e45feb28d904dae8d5586797fe832aa78c66b200a1616a526e2 +7961456a8b5b93771bcfda66d1f7e694288ad65e3592ede99f3c5a0ac3c31795 +e475b8b813803365d0434f1cce9de3b9606435b1b766d78612cbf218249a82b9 +5e7ebf071b1d7b76d502be1580c1e58dfd274b74b17b9e5e510f1afa1c369c6a +f391707cd506589a73d10a6dd2dc1d9e30208ec4ece130a91181a4927c57d051 +981b74ebc69354d8fdb6e521274027b9b281818372bcc77129be31a8ac13cf5d +09d8a722a32d7d2871967db6bc55a9b26ea2a1106d0107d148eb2722d3cf2faa +325f69e3cd0df8f6f3b470fd459db0c197c2afbb1b48b89d00087a24ea77bdaf +a38011cc11f7352179eac9e039152e00002e941592290175fc8c30abf77341fb +271e84e98f0239fc2e7f916275001d326f442475081ac1a88550ee71d56fade5 +46214fdef4207c98b4c38a99f64ecc5f1a080643c01e264276cfd5b16876a43b +32935c77dbb2bb8fa90923b3500e6cce6a8ea765a51e4deef1da48f03c90d14f +d35da651b66d557e1fc4540329d2ee2ae5c929202cfc4aecb81087e81f074b7e +2bffbaf9362b834f3f4c6530da5347aa7b84177ad8238ab7b4a1905486a322bc +9ccee83d9e69450642afc7ae9a29babae7fc0685f3cd6b9107755e756a1fc3de +edf6637fa0a2d95568c8e67527e4cf15be07080ecda9bf51cfb9beb759c74f13 +5ecf18f584bdf50ca374bfe49104126da278b87286df2df5d90c73b64133502f +b55ecb85efc83512e8a464ecac7e1a02e5e827461665645fe8260d7c295159cb +10e44886d7a0c386bd214ac13a646bdfb2099b7a407015b3e01b7767061e81c1 +b03287337f936b25f2a5b3040abcb0606fdda74a6eaa4063cea1c53a821fb965 +43bc81c17a29e9b7b68da8c63c1e40274f0b97ea040d2375293032df0c608b3e +365168eb9d9148584a5474176703b98f0ea4c067275473a4c7f0b283701bd8ca +b483e4756f4c73befe5b554de278d031b15a1a9b4e0264b06f907be2eed97eb5 +d33374cb9f0cff75b590e0ea05525668e79195e414becdb3bfc1b32912950c02 +5c095d85c234c0577252a18bdfd7073e97d4470edd1187fa23940f658bd416ef +b7c49d82a0e862e2357d9f7c51334f120cb6fb62c71849fade595597f4696dbd +9ae37daf14317e36669e2f0cfaa1ff789c70b64f5b076c208a8bf692495bb5d9 +7e92ec8befc0680e150c340fcbd9a4402cd31ce7effa8c7a43c4bacb2039636a +05488e148ac6bae282b40e219778317eeb59e30e320f730e6dd3f65d60402d58 +bec5e63a06f890773de1db6b7ce388d588dcd42d1701f2edd0346a0bb0c6fd5f +b0d76684b2bd7f8d1e901e8b4e451f90e2e57bd56b129db14fe6121938176381 +9a3b446ab8432f17ec385828b4ddf857f601f484ce143c45ed584787465365b7 +3355ef857f72f53f5082f9d0b31a5e0e809818d4669b6c60d4af3366f1b1b3be +0eea2721c97b3a58caa2487ba8b09fe90ab3ab33c1bcae0bf6bc6a7da76da830 +159f308bedeaa90a53c901834aab7627c3d97dece38cdc859e3996dab81aa554 +7d448b068a22314ba26a38744ab35c95bd9ccce0429f425a35f97dfa06a0ff0f +a20e63183a8375d5b785fc02e41c870d278f778be1c8adcce7e595f8fedf7e9a +3246885e3589c52413fcb2844e78ecfaad3ec8a491a3e87934cb9122c0e22877 +dca86c04be7be584f77c1943fdaabeb2b354b1a3108d4a0a58f9b8c0572682ac +3108cc6b027e6237946bc42e74970b46a097c9e6f3d4d0d6e9e0c62126e27b6b +4dfa573494f6274e088ff373ab905e1479571f0e599e04d559b08fc49f3ad947 +75eb18c4d8bf7f6076a490672c83bb3d588ddff257e76d44aa58c5d3507aea65 +a7a0e921e577b1d7f084d30100026daeca01b578d487a9c72cf90a43e5f3b0e3 +41c97511fcdbc21d62e84104823028ab3cf743f83d5eb0e13742e7466ae5006d +faeecb2339b5b4c93c207953d6e6e9bf519c78e0b618b9cb08474645dbad4b44 +c15e4441def3f7f922461a12ee277afeda15979e344df421b89cec87536ed596 +bbcb14225d91a9b91e4443ddc4e30bf9f950c6799833c4af363b74afb0668511 +ba995a7fc2e109bac4f6e4af29085401bd5e9342c680257137e414d2e1747332 +9851acbb9dc388603e19b127694352c4bf65fe51bb3525eff37236ce5a615834 +3e515c5ee294c7f01e2af944ea33806f7f304c1f4914b430fd42368a885417f1 +9ea2259e06a322f9f31ea35e315d8fcd8aad1fbf073c81e2440629cc1f6e37ee +135eea4e80ebe1306f68e3cf35e83ae281ee39ed08986f69ac0cc413389b9769 +857546b56d3fb6d378283067ac0df9e82c4aa1d6a24850bac7799d7dff32174f +c5ffcfed21367f36ae6e0f2498ad2fbc8b468f3549973edbe9061e73b2591256 +9de6110647892e3de1d6d5c72bc19c1fe9a3f9ff6bc6b02b98bae900444ad46c +0f5a9d1884ad420d48bd6a767c5a5cf16db2431d2c728407191a02d4ea466017 +bdd2ae2a5c3a48fb8bfc49abd5825e3779521a8ae5640cbad0e021ce8db9d09f +76ed01d9d0522d1eff45b9971419667f443beff4a5aa003c890938f1c11915a5 +c82ae7b8c2f03f7928111c36447b75900acd3874a26cc7503370902dd986064b +7431a716e6eefd4b4d5a3b7536f1208974e64bc785c8e66a8de6b7db5e13df8c +be80cad661628511f178dd4f0617a6b8ace86b45ae9801b3db9c18b6dde80b37 +b6a5d62a4ba3c02a520e3ebd7ab715dd111b3da917894bd807f3ed134f9f5e30 +86799ca49832bff5fffde205f976160115c9c5b8d8de9f53309565a02421ae41 +c11f3d41b70ffa221bf10ca22d21d8877339d470e2ccd785de62d4eb06829993 +145235e488bcffaef2d4d9aaa2f69aaecf969ee61e9d613c3d975d120bc505e1 +d23a5477b3d478f41797fc171b824a4268f62fe8e927545d736cea7f7b3e97e5 +23be7ee555e2a1f9c9b944c865da89a457f653485749cf2e13bdf8c8f0ff9e48 +027f46a3a2a4cec6e71954c53f0260f298fe9b0172ee58c63ff14fefa206dfc7 +25df661abc284c400557b489a24295cfb46cc4122b890fdf4b2d7f254e3a1777 +e8e6d2499c8afba322ed633e63f475e5c9a1ab53fdf55e7ed008c8a1bf769114 +fa966edcd3ca6c3fecd2e1e520a2e1480ac7b6f41b27a195a128846f3116760f +9d82a47201944ba330a23ca21d957d6bfab1bdb9b2b7e3d1e239c3811cd0c5c6 +f3e83c448489faab14a6d5b58de0feb4ab398863113e46234b8397ab8428bd39 +4138d633105a5c05a683e44762de2b4c7228aa08fb44ea199b31a002816d7afa +97f76ec97efcc942b172142455f3b20f10742c6d8a6011037657a1d5d5eb4ea4 +6afdb674c5acc1dfaa30c879d9138ab16ca644337221c4f0d7bb0bfc6d8816d0 +b8114415290445dde4ca10bbdbb8aa73aabc15119b30fc70ebd176c563bf3326 +7f5584729c3cc91cd810bfef032900c2126d98897b03cf89d115916bb56751ba +ec7b6d6d02fbbbebed36ca87f7ccabdda72cd9268bb47250eeb253a2f5873943 +1725cb473309413aa98464babffcb9d5c9b48ab1d2942d2bb269f6732cfcdfa8 +ac13a1b348aa4e1bc8078c31f30874e5030560144a09b7a6c2b0eff4b01ddd6d +63100fb102b1c720155ab64c96583316f4efe2c38b19ee7df75ced9004f4d1fc +7165e2e3adee3fa0d61cfea0d4bf8ae34b71cdde6fabfc8ee73070b4828f7cf7 +d5deec09f01ce38c74290dec6eb7cfbfa08ef363e9b3df98b9ab2a4009bc82a4 +e507c3d2a935b33265e3c93b1801b3189c2d6105fc81993815f137743616acf4 +8785d3c76a07ad5c69f9326806299ce1f919035aed99b47b332d5cccdd9d4ded +aaad6079a9ebc6031ce76d89f170c8fc76a825d9a318696dcd028d5070929db3 +2b49ce93d8c37d389416ec96fe8cbfaa5f39fb99d77d8c51b6f795a29a14b3d4 +8cd7350dff3e2e553cc031423f7a38d82a4510437d7cbf110dd816cfdd76a638 +7e654703002c0dd479e350a9025ba807f74d8eb8e73ad0f31386f378ddb0508d +c9da35738b4336623de4f3edca6a0e1380a18f8bd91179ec6e82c8d165f430e7 +3a124998570182c6550c5a9947b89bc1aefc3c21eaeea91d227670cd27d8375b +91c44bbc37eb54b1717e2b2e4362746ceed5a25910fe3f4014556d1683de4855 +189874bda89ed07d465fba5564c1365d859219f7491beb207d728b28519e0b0e +6a2cb03353b8b417fe11f7fae8d01fc51d456ae99383ce76980981b6ee8a7f60 +92d15c970cf7adc0cdf4fb1df38307c93f979bc85ac655d7b07fb874779559f2 +80806828c4f751441dcb7e7092b5f234a3850da315414b4401b7e6cd9f491c13 +269e84d6dfa82637c0f00564c3dd3ae1184b5c9b470de45a4c2ad5d58a2b781e +e18765de896abbaf0e08a941c7575c88b194c5bdd7e814e0ab40c15a33e78267 +f791cf14638b9f654f96bbafe52ceea831e2556bea9de2033e5e67aedb4c2c0b +f5b639eb8813deed223214a7b8bd8184f020e50e6c83e74fc6f1eb8e6eb59745 +1f475e98718bad1ef571f381c9104adb1c7b0bf35934dc66a8cefc7a6228ea6e +cf26971fb787c2fe5af1618dc6b8bd461c34513e59cee4b85ade0e56a074bf3f +605f2b5c3c19c4fa6fbe2225b0ca6581cc91bb9791e5bf95e46449928d54369d +fd3617676ee8f8aa39c079ca7d90194b87ff560ee44cedde57bfb8fdedefcc11 +96320c590c0b5965db5e386ea08a4a41b09283ca798fe26afdd92035313ac9c0 +4e50503a0c54a46edb1fc5b1f08cb34c0ee3f747a6835f39b080828dc74ffb53 +3d5a16cf6e5d60b8ec02306c1c94d5364dbff093419a8312bf505c1054d3412b +0b9216a8f249d1c2ea14d6b7e34f4596258161f743ef0bc2b27f98ee2b558ab2 +4ce2f41020168cbeea74e584a4fe46d792f1f94bcade7326b5e93cfbc6f9ea91 +ea43ac646f84855be48e1b8b6dd3bccf11c2d183d15aaff37730e27a7f0aa1ab +fd04a9d1fe4b1df891c8f2c7a75b5758b8c5c946ba5034c00fefefb9d717d572 +620cbe4ef4208fef238358325d26f8402f4ce0258bf8e8aeffa59dd1a97d7739 +42a310ba16765c51c20de19e1fce4709bff69ac5bd51dc3a03011fa21136d333 +1a5885d1f39100f12e8646d096426335f8e76fed0cf63dad0f95642f9b3cbbb1 +82a82a6b4dba188469243523e4a6fd024e405d66d0aeb4589663081e40a5993f +39a3a148ecf1fb9d02871e03e747f24dbe7da6b48297f6cb2729753250a5311f +55c9e5afd6710bb7143be7977700eeef76d045f1bcb54cf8b19bf46ab4acda0e +9a4ae0eb8c3ec350068989cade49b369f6dc1274623ef6a297cc5d94bb662cf8 +01e42f20850a067823a1094492188bc0c0f72f9cd34bcebec2272f66c75f73f4 +ac0b2b65014f3cb7184733f4a4c89d4e8753cd44ed511939e2834049a511e795 +4484e62b918faab6e22f75d3bbb623da98e9179fb38c25b7a2bdcdcef80bef5b +140bf8e541b3de9b4caaeb32f2b670a891f96e5ffc46bb860b1eba1db06691db +fd5ee981da2c9dd3b4984057ebea8bbd2bbf23d3a3cd3376ca983f37789b235c +d30090121e6c301a90f225114654138d79218ba1f98cdd93cb447aad1429cb84 +85d59a9ce722db2f1f307c8038b8ce5bdd22d0aaddbfb11816e49cdf32c03d27 +aae960e7625d443cbdf267ad62806ba2658d957b12fbc2a24ee9e29f87f07984 +c2968c8a276978bcac607701f1415f85b526d0bea59d85e6c875f33bfbfa478f +ece239ce85e1173f39960b09751b00bbe089d59353ae7f3666f5ea22879dfc1a +ef7fe6c934e5a8d152ff060257fd756512b8fd12f452cc0230e33e4504eea593 +d25b426764cc9baaed06cb2efeeea43408a876c91bd7dc5855a2bb565d9de5cf +4b43da81457a610018e5253d2290cea1baca7d8d87764019e47bb1690fb5964f +785c3227d20fa011d39358c23d68f292785d474ee4e06c379834c39dea455d96 +02aec0aea5a968a72b930f664ffa4e82893b992bbcad26f6185d830d1b28cde2 +0ee4922271023cf9b3b86855fe695f05f2dd797294f4b24f7f62f3eff8dfd455 +f4d4cd8a5648cff82d744daf68c8cfea3471ab0da17b25de1b7386a134ec392f +82ec89ff416fc243c527a30735d97617984ab0043b7e1678ff86a4cce193e5b1 +9fc3e43e0cbbfbaa8e7f9683123eb810c1fcc79ea104bb4df79f7426ec62f73e +da572147f3366db837976b49d7e0bd57570c2f9c2f68a84923154ab786f9bd1a +a9ae552adfaa6b2975b43bce7724453e499ae6e76a76bf8eb8dd0d7273c8d757 +4f188d14e5c057b2b671ab66ada56b00b58993f84028955c3c1c05d64e27c44b +d75a2c401a31a78714105e87028b347c81fa8a775f131f37f491d1fa4d521bc7 +233f2391b7831db9e0f6284fe9482d9dc8e2969f38808547a0c50a47f1d06b52 +443fee4dc5d3bba29d1405533452261140e288e8f5a3b9e410dd74c2a5046c45 +46d728c9bc11ba8f21e616e475d216434b3fb942ddbf1d6e4ff6d27293d90b70 +8342a39271ac2ea89ecc6f53f99b36051b94134b4b0465475ec36b48522d90c0 +6d6a6926d747ea5a6df3a0c95d4ebc2c268026032f9b596330ed31b0b0b7cfed +172cc590164b24998be99c99817420235dd3d94dfa168779994707f36e8181c6 +4a2c97d8b77780752ad92d332b5f8674acaa7bb05d1617c5a52d74b7e5faab38 +8837c643f7f3b1f69bc64edfed58a79b48488d4e6ea3a0aa5827f91b0e11d369 +0462b6c50461e0c148bae17d500eca31eb72af129dffe53713898d27146847a9 +5508bd1e9a9263706c3c6a3e785dfe1b67fd6217cc4fe94cebd79ea9b3d30f6a +7ed5014ae7cbd10f6c673d3e7192e136a4419e0ce84f38f35d2f3650f53542b3 +c19deada2ca35dcae489b834e90f466e2066a1e3e64db1a30ce95cf590de9270 +2e00bb4bfd956d08f5bb163ef3d6e51dade17a01a89cd0b57a05509656390b38 +1ae70dac2bec10471aef198e3b97683600dd1947797b13d0b2ded06ca089fc7d +9c3c8db8a5cbf9434a595ae03653488c0060260c2d529222127e21c6788cce09 +fe576e9dca5bf6234612ef3d1ec5fe8c0beb657e900315427f23cc3adc2c6575 +7d16302c29c3a49d65147ed57daa9bc4536e3cea9ae8cc8741ba096afc1c0c78 +cbebe5f2365ce6ca5b506f04f0262f323554f2ded07c50b89c5e41be2b609761 +dad2482d1eff055400ccf2a3bb96ac73c925a7982c958510ea5b4bb71c6dbd3b +1ebe8a62e27939963cf333ea4f3833f04697d4aa52fa1fada1f5189e825417c7 +8d588aaa34c4dfaeaaaa30315e5235f2bc7568fa1c6e135afe76c239fc852207 +a500ce1d4f84a58777321490b47579dd8e3ffa0036df96a07f6a7904eacd8a24 +1256f2aad09dac3361a97edef37c1c4267cc35f064e9ba1ba677993d1b723365 +add549d363fcb18bd21c8991427bc3e765edabc9ec164876c25e6291995fdc18 +7b12de6178f5bb7defb3c035fbeae51781472a7331ae1de31d4b0c860902e64a +f9d5e7c99ebe57a7f9afdaabd6cfc281bd5eb1793623045339ec854f5f3a7a23 +fe6162242b8d0984d97beec785c34744f7fc08a693f61398ac733dc8c54657a2 +e25d782e8f22bc8c23d81540e65c9eb5b687daa5daf2085a3705886ec2c3c5bd +46acb486c734c755b5ffac3cebe6a89950ae9f416b712f265e25bb24cd95ef72 +93ae13ef762ac1a5acadd82fad11964206bef830d354806b329ee3f62d51eb2a +8cac2fc2351a19f77e3537d6e9f79749809da3eec2ce4671ade8c225bb621ef9 +0324c42952aef579d366bf3fb72e6c346118714e7f6829985c9ff14f2731fe79 +12f9c5059b52b944b55aabe663fcd2331dd849dfb8223d6be9193ad774707347 +f79d033c5fc61f44f2f43bb85233e75ab3804f5e459dd29b0dbce34f1d8723e0 +55e613549193b550f34ef0ab858654da17760cf3aa611c14b3709d78af823d04 +577394cd4002417b214e6c241c57bdbb5b6a2c65c7df348a67715a9c8f71fc55 +a44d9f3f0d5ca4f6e0ed732961e109eda1c01098be1d2b102f1efa6d677e2990 +343657b68aca27438d17d87e95374eaa6d2c485d1560c598bf8e53ad60410cfe +9dcba19b91ab5e18f9df1f5ccaaa36c7dfa1197fe180c409169e355a7d0eeb95 +addbb4f769c9861b09e092a741471fa8a248e47c0c8a8bb5dfb16d48b3bde529 +d94b1aacdf2f0bc86380f734ca2f3041d37908da429b86efb276a848ce0de6c6 +643ba8316d68fbbe50280da31fdb5d4724e19d7545f80e5fe6a74f6727eade61 +eab7705256b7477a31133d1431c377fe4af604a9efa18a5ccc69599697eeb8d9 +6b2eebb9f84d177d772ee64949d990481d17fdf3d9654248c9c543efb75ba4d6 +84dea50bef01b32d92d902b0f1c53e5d42fe5a75204e83f565cd70e93fd28a27 +77efdf30843c610afbc2d42dc00d5a6e90fd57b1463b60f25dbd7103efb8889a +37735c20190ea6b6784beb5568a0e1d34979e977ccf04620e09bc8bb1108facc +833e3c6bcfacc13492dddceb9c3e2adeea2b4f83d93f6bec9a01a44bfd5f4501 +6d1ad541cd0380342d831d46825b650b88c40b001256afc9b0837e6a87c19e3f +7c08140488df594d0d2c035973905ddab3566ba03455470e5059a0c7c284307f +f8a3d909308e8edf7667c10c52e52c9fd90074366dcf4023daa4c33a49227aec +c12ae040d310bd0b2038519d0175e760dac15f5072ed6e24c27ad88ba47998ff +ed0be19865bae18ccaae9ade6ad0e5a6029965dd2ebc92457fc7572fca24900c +9e47513a2d5f98dacb8118ebabdf7761057b2a3f1ce2e040aa49f361ddb58018 +45f0668ec21a795ab579de46d99cd4e4cd4c11cdecc3df1e1ab13a708cc45c0a +74b27e804d6ad45f26a459ef633748f5458ee795685d9522b4e5cea893b773ef +6d8cf273de3e109d8c173e4dd9cbda220d19bad02e334e709251d96e2006c16a +c2d29b1b02bfd7aa823367159de00034df141ba7bfe657f06e4a9e13a895ac44 +6e1c5f73eb4264ee35d9bc23bd3a00c25b219590cd9e8476cade586a277b7280 +d3d3f40d98c558ace72463b5003893630d69e6007ac34d0d663c9041fae2aee3 +ce6c6e8ad42498e771785ded5a6cf0d60a9986fe84fe74fb8af6e3c26a2f33ad +d882ea28435f2e33900640088c913bf8ae7bcfda19a05252507945bd9db4b6e4 +7570b1cb7977ffc8d1f247a0b045afb925b552fd52a1cc3692987ed5b2a739ad +e656b3bf51eba4fdc1af18f67df16206f6690f6dfcc8dfb3a37aad1e3d80aa41 +6971c69a58cc8338153bde717afc31bc6b1451edc3795ad2efa40428a00d665c +7847cfb02e53702154f4350546d62a719ed04e95c777be03a7378cb9242785ad +ca8b9902ec2c6e12fc94c76890aa7060cc26afc03945456378738691089c59ba +8a2dc1effd2eb43309862428d11c32e2076372a4c0cd4b0b8169a7a23157ee53 +7cc4cc5dd5ec9120f5f16aac1d8edd97c9d6c9168ac5a2834325d9a924698550 +1ece3db9d1ec73c612db8ee27a731873ca6d99e7b0e1bb46d55d9811cf611028 +7c613e4ad5f54f7b42030b5e9f8c1c1ba403842539fe4a2c962914769fc99eb0 +11cfc4bf15d550f5f03247e357cc385ffa97dcb411012c1f71cbe871c1d3c7b9 +1aae2f09204bd29c25467c394b0c82404748e42e9a06cc6c391f5930b2e15648 +f56b82a660b624ad4600cc25955e8df9b1c88c041427ed9df1ec4232b3c4ebf5 +e059c27527258a5dd393f7b6f90202a87ed5e425dcb6f2e3281c9230497602c5 +c1a0f99bab1a25deb64a86e773969d997f17de4776560556b562170d2a16d9ad +c8e792f356f4f952d54971eb3a05d7e1a95ff4a3796a83e1c046b8d2039268af +32a8fc816403de48cd7afd613984c125246e803e127e651e1d1c21c5d43c1f1a +c0c5f1469e36a33cac6108101593e395744b0369cffe01f4fcea4f0e90f5608e +4fa47d27364e3593a1c9e2bcf48e5d44aba370509827e6590bee3e5b8a8da7a3 +f569082f8e318b6f3282e95a81559658ccb5110cd8654ee5c4b66ee946708b7b +aff9e0bc9b465398d0d209045913583ca05bac80b2224a54bd1011af379f940e +35a5c95b5fef39e96c35c38c4dd11eafe1826c36a9d87f482e4cad459635f912 +9ffbc80b7b2783554c145913b7414284dd83a4242740a477162640ba1a72a9c6 +336c3c8de2b5304d3c42c73368788f90e3f28f9f9a9b38f905c44bda20042395 +3ad8cb7c4841585e4ef960dff97ea68c083e627adb30a12fe3e945b910c68097 +17889ba32a10258db28c5493f41a669b004204365467c5960ee254ae009e4db1 +75eda7b124ec8e8c105fa9336a8574ff3eb53e38877ecfd9aed38669b800d07b +e3bf127d37b2e7c9f68e1fbce1e2677dd9a3f08f9770a587b701c26a4234c2f4 +052145eaa4e8adf7e9f349fb9b9bf32ddee6a852fabf3dd95c5c9fc03da0d8e4 +23e0cc5ad0ec4f452f9075b972f1a98b61addfdec0b5695166bec6488281dfb4 +5dd0d3ac7d11fb1e76259abf5f01ee923ff8e080418df18aaacbc644295dc3d5 +5c482bd1c135e67df2f10e9428db1661d913d454ba1d12f1c8b2f187ae98fcb7 +8c03eba988751bfc3a00892dd40a7140f767991e472149e71eeb79ee3a29b7d3 +416f2bc1f26c31de247fb9c0e48d77ae05a695f5fd40a5dd389b8c5ebda7fb9f +f1ca5bc567dda66d6931647245ad0329469f8d33b94df6d7a53fbea584dd7794 +3d79be6f8c62953f6af1d143096f95bc477dadeec524fd7bb99fe13b1a35a267 +5e8501f7444e6870f9d3de009c60c15862da53140a0a7babcb7d5a0bf96d9c1c +30c3be34ae193e65aef359402a0e0a3e5bc74cddcb9f156fc18226de0aba0251 +d655cb219190305d7287dfa0e4623654b3be71523730c8548672e9b7015cf797 +9174daa11811e6c54d5bb37467d1cf3b48d23a735ba8a4829dc5d2fcb2fc3b09 +05d8a8e673e243dbb9e26e1a2919128d326ac9225666e3a4fdd9db198486e442 +8408d865d9e135889f0758a62220b6b85c3d93fc7f18becdb1acc6f377224864 +5e6788083f740e845776fd8276d561ae7ebf42da2babf63099a17831457cad60 +7da160b6732f7dc4d06b91fe1ed58432cee4c2806889a68921692ec9d609cd89 +2b471a2ee7e9fd232fad32d58c229f97b98273a088427a6dd417191d2b2173be +09884a34fd10af9f1334d71e0d4a657665aadb7b54c066602db09b059e779e0e +6afe06780c35eeab03640edba7366bd5f60cbf9987f01cb74eaffd3531386ade +af5513d9683963f684f7665d45b1320b54fd4a7fb04adc61a260775ad75cb55a +835e1179786a2caea92a848095d62be48af6b27f04b636892e70edb599096a83 +726cd5b0caab67800357d8c4483ed2b2a4d9d4e908d1771af827835d9faa77bf +6fcbc078248328122ca478b3aadef8f3bbdc16396142db6565ae0bad707b2cf1 +dc16cf1ba5368a5b4f35bec92b1b7b01e5f4def41b1eb4ba4bb60a8475a5c5e4 +46b10436001c3ff288e0cb97b66cb3393f55cf51f4df7f0c5bb83f558ae80b20 +28144a330b49c11d2f116f8ee34ade8e7cf405860c0af37347d74188920208c8 +16ecfffad79be11e1f94fe16e0dc0273b9ef018146caf14bc2cbaddbbc67b6ec +f723aa596c0a174051b62b633c88f3b1c21b4ab0d604561031a01b68efd8f700 +25b807782e00c5f777e7028f1228ccfd57a706253d07cd1199471eb8224aaaba +d3b751777486dbda49530a0a1a8f8683b7e87279bf004ca49d6d95f3942506f3 +0e8495fb47bb88e98adeb7f20fc306146104ac59c05c14e6ad76292e80e54e86 +4d740577ac86bbdee5cd8eb64bed46fbc952f031c22dd1e005bb931cafd9bcca +c8c78f172bd8de749cbc52d47d7f5fb04e75d5de425416615eef9def660dbd5c +98480608c5600935ec95d3005e8f0485ee3db49d8e0280da7ba1860151b58fc4 +a7913da40c5c333d44e80b344e16191b7c9c4dc65b013291afe64d0cfe492e5d +ba6b07d56fe2896d728d08f66e68432d09212fecfce6f8dd6c781d92413d97cf +02eb7bd21c49abd503dfd285b2549030512515734db133f81a9166fd43f5b3d9 +996136cb6bacbc6d9b7bcd5483d5936c70204ef686da9e7104df7271178d7737 +46bd8c9a6b4199cff6a6d767a721d830b86b6e5ded9cb536ba1198244c52e2d2 +31917761c04c19a1d8afc5b8e687fec3a82fccee2845559ff76780672b76b61c +8ebd3a03eac106274b59fb07a3bafcc760ba578dcd91e3fa81f6136fa7678765 +96e9a3fe1c22512bfac22748e3adddcdbdd51b189ffb057a111e55c2a443d09a +9a80291c534966ac2dd332bc53f6c945151bae8fdc853d08e080eb76d740ef24 +1bcf7cd5ec917e27c62f40576eec319d20dfe2f3b5a03a412955d590fb4241d0 +fdbca523aedad4d9381cefebb0bc5bda407f14dc82293b203d1e2cb848762a74 +5624baaa6b22a1ce12754aab8f152831b658f66a499a6f41bdf27796c017c364 +b71aa43b2ae204cc2565e126c100784deb66be4abdf12786b539736c4681b367 +7f7de3dd1cc903140d3f34bd00cea01ffe0615879bba9aeeb6037569f531c402 +6d557ac25a515f93e19b5fc3e23a6a39c2bdd9784f728f34429dadfeac1c5c11 +466d3c25cb2b98cd0cf5c4a543a9937f37964df34c81993234f4d785853f7e42 +8c5c6ab7df99aa229b44fd08e3cacf48592c1aafa7b1918f920708f43b7c416d +aafdef74a1cf38482969e69c2ac0718e42169fcebf1cca5906141e3f6f0f69a9 +0b5e91f598a32088f57e97852a31cfee6fc53f489de1e4f616a099a42f337f1f +f6c9d4369d1665b4dece6bb7835dd714d2ca26c42c62e59e8865ca95245b4844 +34622cdbddc862beeb95ce66a5fb8f359ea8317e013dd1ed8c65d17440b7d872 +f383dde4a5cbf91f95007914815e41d08ca41c891219b49e3ab7a77d0bff878b +082cd5871158ed23473f495c067fd2033e9509b4fd051d4715b67f04c5bf46cc +be8c3abea7e8e65f5206628fe324dfff446376ff1d91040e363a2f49c79e1f83 +d0a627c672fb58b0c099c9140477c08831389a82794fe542a66bfebaa036d078 +03218fedf3dc2124c9b4b13e882cd99e71ec8b07d42d7449177df65bef427ef9 +e13041cf2cfda2f55ca6e5750f919a08e173284ac98a5f7c81897ff8796df8a8 +43808ea15c0768a439eae86997a0cce7ae6ef7b9a906cb8f126ec15417db8d8c +8ffff024f84a46c7651b7834d70ce0b50dfdf07c7c5fa8e16883c5c6d388fee6 +10e659b863562fe7d5dd6a42a219a8ef9aa2bb673f6649309ebed9aedcf6d638 +b63b21b8f4627b9a6684db09be8b28a30cd45dff754042e0dc65a3cfb603ff68 +d95b981e14430e50c2b0171d4359ca768d13cca75278b5d997ad1a3679999038 +84417a1ab812f5d1ade9c24877c20b36c9a8ae5806643c9da7c6a9fde0781072 +72056e5941ca613511c0cfc3081336c241e7e8a172003d4d668a6a2b4c3e6de4 +3a797ef9edd746c481eab868f1fc1deb3583c9d2d910ce20b742420c97bd254e +584e455f90d61c33c9a0aef8a12af8ff80b157e8cdc2e31d59c16122f92e5e19 +b70a6f0bb2144e125fd304f8438712b9c899e78a66f54c5061c8c373294ca128 +0457094775ea1a3ea4ebbb39ab8625646475a5c0ff3445bd16a381cac854de41 +2683acb13bbdf8d1cc0a97f75a8a50118e004efc7f226d181f798e240597cf9b +6089239513b862adabff013dcb5516fc4d591df9bd74cffec4dc82b5a0244414 +f6f858dcec7528418257dceb1ba1b76242854aeffd4af8c48c95496071458a13 +0729bc59480d6e9bd3b3fc4fce30234932f82c5859b6cd871a866d4ae2e127df +4a582ac99ecfffe714896c25d87bf5b46b492bbeef45806d4907d21189eb3660 +d8b337d44fb9ea37edf9eacd121ecc3926edb3d9818328d771433cba4e143088 +1e26608b6cc7749fae2791b52252232945aff710136f606d4c1851a7006aea1b +cc1abd47dde8a8e01490a0dd0f3a1ac57710c479c5f8aafd26d42c4f3f57d81c +bc596a5c0f7a4279d0981c065b0c257d1f2bb646346cea24e2a63aadd1688136 +f116ed2d43424fc738a964f84c7add650b695d47bca83d37069f4d26f18e6bcc +61c0099b6d5f8911122dba3603ca631cf9358c991cf3eae1f6e494b01aa3a85a +8bdbe4439df7f63259203666efaebe82944e614a4de380d1ae2ab79631774ce9 +3fa1b8b75472a924de57a6fe84c1f64afce2e7629f9759983e823b18bfdae81c +84e0603e3b52bf10844fffb049e0f0cada2eb09f23a6508502b7bddb097a7443 +c1da40532a16412890aa0d3d1be8e293a5abc073881ef11ca3d73afb78ba675d +994fbb34a1f726e620fc60ee59118b9f4ea6bd0d726d3ebb1c65315d2ee84d02 +106043e339be2d1875f53e1510712c7773c6d85bacb806034bf4ee0d6d7b6b76 +f19b49bb97dd273f3ee09ccdc1acc4af8b512356dc9a2a6290a84b4b6296471f +a02d78d87954194327be783b13634e3a5353326f7b6cfba7ac6714859e934e4f +aeab507c7f1df2f5f9412a038b3277120960d4807a8b4c999b8ccf031bd3b73b +a6e77b508d7c226be1f06dadaaf8539e8955b9b9cddfb698ef499b235eac0730 +87547bb63b6666397f72ba04f2cf50af5e762a028bc153cfbfdf44de9da8e009 +1fd68cf514a437e11facb3b452ff45e5849881698a81ad9c24424c8a20ed48f1 +595a068b62fc00db961dfec8e2d6f7d4c7f5aeb4820db83ccb13636a6ff01f14 +b91771cda0cfc67f6ec936035613e56a680077a15fc263c19efe04ee10078489 +3af7826badec8313fdfbde8db845f94197a117b63c61bc083db1889cf512d375 +3b2c413bb3a8ef0fb32d6ecd455d3a0c40381c2fc88def6a87a69f8ed259e04b +2d56ac5bc7b4e799049eaa473b2dd1d07a84fa9f3b10a19f6084d8d61742145e +ff172907aaae2527caaa32041be1b2362dd3794f364285655441265109aa2a7e +0b6dc730ba740591cbbdf981a1d8784b7da041773785dd31fe2fcdedf0f10121 +4741b89ac8e91fd42bb655b2372f13752cb12a1c200c2366b552563f25c17c76 +b446a4e6f04aa5782dada0957b6367a6222960364b8b627df23cd60e8f74f3ff +81f7a995c91656eef2e125c83bd92467fe53bfa56008296ac6214acce6adfb13 +9a8339fbe8938cfc20b92e42be5135cf737fbf40933ee4f4614ebbadda64633f +6b29489dbc4c55bb5a777578d7e3e97ec2e8d7fb2be0bf53ccf31f8013a661f6 +1ece66443e87cc9694a4af0b4fa55f99d0fd444eb84d0bb4e6904d355dc163f3 +30af37444aa1952b02f911909b9ad47dbf5c20b27f2d8b81635794c5a9cc3bae +c8f19f7e90da85ca0070df54f07a6eaa69eb572847186e9be9855cf7957f1c03 +abe4969400de290563f515d616e40a5e0c253073d5cd8477e5e5a9b5d3725963 +e2dbcac985d31594ffa1193638e6fa07c948ba8199158b9bcdc4ea2a39dadc50 +495dbc4d8fe0dc22d8e811d041117b8ca2797f8f11c2c198ad11b54f42bcdc2c +e2d646315b23795671ba4d8fe5e11ba2d87403907390adcd73a5a95992fc36ef +ed0da9ea9849d55b25ca6b7074d217aaf442f4bf2a7613b1a1c9b4c3ac07587d +748fbc415aa5a537ea4ffa9f1d80013214751f64b29835e045dea9004bd97399 +56d1387678cea1bcce7fdf1881a392d138cef26161857e0fd80a5394f6ddab24 +4eda172383e35a0de992d0e91084fbd92b037b24064d88eb97a2347e9a5c50aa +eeaf5c3424b727d3847fbb4556bd96b7f985d57b6626c066d8af1c07308eb694 +680dca1fb419aba7bde2a7bed26726addcbfd0f49f27cd1304be177e63083f7e +07426656b6e9e984f955e4c8bcabb541da5b4c0e6c98c7a644f39d5fa12576d3 +b5fb1967a921c1a0e23e67d998346afb92fcd7ff50a3133b919f8058ce058f96 +84f48b67aef958b5a386b607949f45486266b34c5f9ba3d1c902f7d33ad99f93 +3b1747ab686c199e1e3fc18bfb2d8c6455f252cce3a6103e1d133c7e49fdcf55 +590c00626ac0f473740794be7264dff08dd93bcc895757ca8cfdb61fbfa2ae42 +c6d9518519ff651a87388616ae16d528bec73775b92c8749a77110ff8a93ce87 +52a86c7cf89fed89735ce8da32b0c6048e263b9d5ae5a85ab19a5a00c77ba59b +13b8a243cfec201d4961ad1f4c4e845ce219b71630dfc0d79e5a733e89d4497e +ccd7761a162c39d1de08a37039ecfce8336d33e9a4590b348ca0b9f53c2633cd +ea0ebe99a38de98b49d75c9c438797157a9d0da29f88e6a2c4a7e014a8d74c97 +bf5c65cee6fa18358d378acbd848197b59caace9fac024a19b5bffd61b82d022 +5ed99367432bf954d11c36f62200e7f7b2d25527a41a594f6205c77e715e61db +f338ef264d9e2889cef554c3b0535d2f04d4d63028a5b31326c774b523099a6a +fa8f33da78b61a52c8ebe5a56ff66bdb8e4846957270b325469127675ba4c36c +216ce8b3c09534be463fb016d58832e5c4eb1bd2d0ad775007b22b7335fd24c4 +58af46b6c6ae64dc7f720ea2d51cdc72b17a7cf6853f3603d6fb4ac21b8f252e +a08e99709574d1a7351d6472aed618a7ad39033356eeadbb150a16f499e044d5 +c09cdcaee9659d4417c40541d780e3f3d0bdda3423f810380816cf48531da87f +b3fbeea1a6a6b1f2bc996941cf947cccaa58b87a28ea0e2e0507919077f88444 +a41a71b722b6bc720a22398c179216434f5a3d09a872472397a1a97e4d506fde +2e2e2778ba62dd00f29601606e0765e4e2d4e86c07b2175e65ee5f325acaa45a +87a36f7e534fd45b9ddaacc09ed6353d1b3cae443dec0d72ee0fa8b8c49fddac +aaad4c994b87885819f8d353cc344da9487aa9faee1da75ab9f5dd85e0fc09c8 +00c09cd66e982b21a0f10bcde8ead1b052dc82b36f0d3d1f971996977734c2fc +2b31f0bc535e1fde2cea2cee321ac709ac9ac84d200285c7f9ad078b70de2d18 +4c0b76b28dea3f61e38e4e177a2a12353c92eab2fb1afb463ea29e512ab7ffae +454d4c6c4fe2580a25ec5569fb27afb8b3c6fd879b255e257ca291ee92970682 +647d82a668e9c2bbef88a7395bc0f28932b1d6e488093110219b948716191dcb +1e2219a02d4ab33bf2278b5109e007a06049a6bf9301a5efc9d6655b2c89fc5b +92848ce1d291c3c1aa0e5aa5b21491bfb2c5af723c176b29af98b4e4a57391ad +dfcc686e007da302916416f5a5b9a7b6d15cfc8f28c23e8960930afcd249a739 +1b8aa001ece75ec29c44840a5516093d6f0e449ebacb9c85eb0082f6ae0b356f +d63e67e47999283ee784f959edef4ff80b507b06b03623030d7c3042e709047b +4b2719d77688554c05e6ed5f685e3048a7c06ac2f2342e310046579d880ff394 +3c31ffdb17aff785e3db32e8d766a546498af9a259f0cb3a0daba84dad5bf6ff +2e642f5b8ffd0aefc455ed55ec83e8956cf660de757e040ccf9a31039807beb3 +04f329b2c220448826b3b58d03192014a2bd6f8c987e5a55dd58609b258d3432 +a03904ea8531b30af884144712bfd7c7ec1d7ffd092aa81efe653fd9feebd99a +8440c504ef7bf0273f4476335f218b44e0f32c5b49c27e84fff3ca399635e1b8 +f1ed307454b5e56cf88555e5f8db1f3b179d772c12913cc92b8cd13cbf5e0aa6 +f9842cdc443cf7b45089bb89ec94ff118144361693a55f79e1becf66a76dbe17 +c343eaa9447bc1c2e9a67ba0d54c84eb8c3fa2f6b92e3712381edc9d4ee29934 +495898ce409e3dc275697134cdb3e2384cb75d97762b4a2535f7e197c7b8407c +f635b6ad111915061cf4d144611747de8af6d31bc284d2230c33967b3ae173ba +d70ab4ba77730304d5d4ba1a890536f689dd31f1c92c16f5f210e4c3a1fdb036 +bc827de503e7ef42c38cfce0dc5a2ee6e0436f66f2ec94f0712da1917d7e6c81 +fea026eab20472a594d471e66a4f36a3164cd84f75e8188981b98cbfe8e6d2ea +ff62d5f62620cf352bf58ac18af4051dff9d20d796c3a906f446bd307830d447 +6f818bbce13e7a6c7ed786484ef58840ac1b7461922905e7a1ce67f4fdf83c07 +a5808462a492b788aef259096ff34b63b69def56023c5936672f1dbdc73ba3f3 +a9eb9fca36a1dfa2a6f57afb1277212d4f4b94f848858be1c827240441a7c0eb +d229cb092f4a0bf337d779a823cc5ea78dcd208d2522d96c50d13ecea99b645c +282d2ab432809d13bb11d779255b36d3af692d9e50499a4e2d03c9d6afebc545 +948a54b78666fd2fe4c4879e38aaa030de0d7a5e9a13bc1da318393326abda42 +4a0f2bee9de5229fa2d4cfb36577a38146eb1ca3dc0744ff22c4c26ec3fceb50 +f042eb6320bb69942c5541e5acd8f64565ea956366d5bcfff90a807277233754 +a4efc4a341c5935037a660df5048ae26dabde87b91bfb2f4aeff2bd95ca1d3ee +edcfb88d8cf82c494e673af0fa740c067639abb90e34a6c206d25c5d4d9ec064 +17514744d6d0dba05cf4f715306e217649fb09cd6ed960a4e492c7563cfd1779 +1106850d35ef8b6cddf6d95759462eb0ac8442d2b3cf104eebb1956773978005 +42f9674f74d582eee387396d1b9e5ab7d82de80e30b2258a79eab8343129b81b +104a014e4049e1eff26ce38f890f2b8b0f49ebe249d28ebbde3a96da3d2fcb71 +a69d401c73704f7e9369158673cfc0a5b3c88e18497299136a06597281410747 +315eb3c7e15dc51ec505f2149e50ecbcc034df54486c64fb2017902d7a557693 +7e325298dff9edfb5aa43f8e390d42c066a5032cc526aee746c6bea49eefe6f1 +be109c11056ad49cc686bc9e581a926942a51912f71c817fc0dff0451c3acc4e +217867a517b1f8187d8fd94172d4e40289d14043c9df828ff81eb099fb8998d7 +3169c26616f550251dfafa68db1f6b36133cb57af1da9cb62d94818e2af2af1d +80603641d4ecc43492a3195dc8d2efc326c9d2eb52718bc012246c5f139ac214 +eeaa8016aca0c26808e8b409b3c2c04572e121f7fab8f02dcd6b39abc7894fa8 +90577ee4cd8e4e94b2c0e63d8006e2fe343bb6ad78e6f071f9e90f9e54c7406a +bf925bbd3b48ecff6a2c837288fd1b9ce5849426c76dce143078a2ab249d1995 +c3e6bce70ed4c65de4a39d56a01a3565a11923fdf786c225880728d53ea2143d +2cc5627895ce8ea7b11c9f58b48c8cd14a962cbcecc508a29d9e794ba22de572 +bdc97186f7034b71bb38d03390afa087472a5d68295d66d5d53ff2fa1b6a322f +9c06b9eb982ea82bf7fcbb965f3d56a179e06de9eb4e3d009df21a0097bc369f +cbe50735372af177bf2a1c866cee5426271e7bc77eda37e11a6521b05e5f6865 +666c16c0eff69e3afa7e467da80ac401f0167655991c87a4f2ea6cd243fab893 +4a4d567a38a88f7b25b52debab462888b42527b9f2c780bd73b9caf9971b3648 +61dd0e0f83b51ad52d26776b3ff5b60c362f5d69df6300da52f711240cc9c323 +a3b7fa922316a76ecb70c628db1af413f149e734f6e1784446b9bfed574c945a +d7109a6d7dc31c66645aab1f196f7f443c551ecf84e5d779bf7960013d2e001e +16e3bdc3aed922dd27d1ed693e3568be82304adcfdc28aebcb815bafeb435854 +999797c6c679f4a0efb213fad56220df3ce9e06184559655930af3243da3a0f0 +b138fd81fa6c0123dbcd13e1aee0fbdea7ba5bea4d9e4edff84a64a79efac5c0 +db294a844a56a26cc99e66bc257c08d9d5067ed6370d9b42c2939a05e4d55c9f +2c0eceac915a1715c183ed69fdd59561dc7a0d475b4077a0b4d63ff84cc3f72c +973c608326bf0b025dae1c79ffa4ed0c8fea3d2f0031c7d2670f8baa9718c625 +8f607366d3e27a776f5b8db05c5381d909fc979bc823ca772d8a0549ac796ef8 +157ba593e460784fffab72c644eb11eddf851f7a1734c1f42258e2924f3cf5e6 +f12a5a9cb7cfbb24de1951d225b6e052cc926361ef890eb28d6a986416398e45 +92459b3f14f695553abb5d42713a348e02efe9034e236e135c181984d9307459 +fc3f5e03c024eec3b0963d31af92572dbfc5d0ded79314dee78717b37d4f8cfb +f830f31e0a2a69c205583041674cd291a26a135616b14c72d7885a333936f60e +39f1049316b05952f89dfe0ea3b895645487a99d8fed522b94390d08e904ffa4 +8c2371bbe86b475b781d99302dece9305b546ad411d6522b233de74f55c760d6 +6badc744d4a19ce3e492d3b5d8b644c754a6110debdc45d4c5da8f336c8540eb +54d7a3afabc8f9e46a4e650e93b167b67b262492680a0053023d5aa91d0402af +da419f20fbca14290ec1354efe22493fac7be8b804e73f66ac8eada3dcccfa73 +474a1c56c3bc40c6bc82711a2e412e077a38a3d7ab3ff637e4d89dbe6de271fc +a43af7842b317c82776283341a9047073e802a12ce4cd65cf6c5a7759cedfe56 +bbbca5fd79798b0196cb660f427dcc11bfff05376e9d389b2a0b669a8162ffb6 +0412fb2b5b929b19f4dead7ffb8c786216f9913b2afbfbd17ca67744d81fcae9 +2951e5f824fde3f148e0c753268056c3d900f7c9a40d78c6be9ae80c7c431b35 +ffbe8a79a8a9de1243f6c022358b2e84e051185636b79631c5e7a03ed8abb8ac +af47c709f231ac70d3729d3d798fc1ab180720568e0d5469280fc6df9456e481 +bee8ad0d0f3b3c739137f8d5d819bc30696fcf4afe0b7721547f7abe44b1fcf6 +b4f29ab76101c1d3ff79e299e495f07da88cd703d499d7ee40f86ad17a19e51d +fe1ce018c06b424b7941c02c4740ec944c049c239d9c2418d626931d692af0bb +5278197fcd1824ba790af2ddb72aa8ee16a0a313afaba3f7034344fc791c4c11 +3194b8eb6b2107062564ca40873f311d68119f75edd6b933e77c1f90bca84ee9 +3cb3e87475c541029686f32ebffbf7a2e512e86738a3cba79f7ca56c811dc06d +75987063b20d93da9c44ceedf236ed9f203a03dfb8b30192501d75ceede38093 +ab9e776ed77f60367eb4d7d522e15f2725e35032e1dc101763e29a9a639099aa +e69f50be8108372585f78c066336d52dc072b7cfac5be6193baaeefaf5916356 +7ec2c819b82041ecee3ec8d1202e252febbca1906c8e56a90b5bc8168cd28f4f +3097c29b00862141f70955a4bf3b8fba27515a6224dec6aca820ef81669fd3c6 +a2a11a24b04e17368320d4d4fc3124e193afa5e591fbc43057bba7c1e022e933 +1c287dd24ab55be451ab59ec4d60c3ee889ed77931f919e40bbfe033d3a4f552 +e327fd40729b51de6da9b132d5f0a17d0809e2f3841b6d4d706558c348f517c0 +a20cbe51cc30a0cf6a82ce091b031b2107147194e8279dc548882c4b44364027 +3cea4868138144a2f12b22c46ccaa6c83225bf3aaf54ec671aa5cbd3c33a7916 +a3347bd5ebe0e33bb53666eacac3d7f98de8525dd9d5bb4140f177a21410d95e +d7c7fa415d51ce81c1259cd7f6582fa89a2c16619c92ba6797e70ce07077b877 +414ecc95ed3912528755c64943b7e6961b6024f22ab322d25eec64687bff8c4f +5ece3889c1753afa6f8949ba0d2959d5c07c2c0d50e7d30c91776739093ff94a +fda214eb3db44178f59ce142b6d28aaffb02e7dd474c816acac16e398458a70f +d469180799a6cbbdf54001fc041b1b2fdc4e24bcf1f19d1a60bd20a87b9537f3 +c97f8c6cf9105f50e403e596f45a15bff7101935345e9f77e9619607cf6a9d8f +e22b0b6b09b53e1180a3a65cfc910ac05bea47370337ffb40547e191be4b7eae +20ad12bc366328da65d5aec6608704acccc58eb40fa2b67fd313dab2c6925ab1 +49e4a02544dce995dbbe1279685bd14ce709ecb2e18579ca7e00a4bd47d2c1cb +bb2b7e13abe856b2738ae9fe86d4209ae723cbcacc3d1cab86a65e8badcfd59b +b795e0774b135700f245f165806180602165188ee68b15054892c60c5c31f555 +2689762a4abf0cfbb31949d364eed11bb0151c37e1f13be424b70bc0ccbeb664 +aaec6b4702067e61ad0f2ce31d308b56db21d7bb5af4f1509be5ae65e3ff20d9 +39f135b39f4207cdcd0f3f1dee591bbecf4ce2ee1541e10a14665a030068668e +13a28d790145f1c4b9d5fb7d17add3e2487b2296efe2d12b528186ebf71b873e +b1fcdc8c9007a4547c39357fbaf08d3b677f0a79b9c967e627f2278515151594 +0fa17676ce16a01098aaf5e36acb05fc1e5c79e2d5cd6b2f5f1bd7bc5e119834 +ee4c7f9350d3afc86a8393067845f7a0121f8e2726caed7add44b7d981289287 +a8b44bc7582713dc4cd1860e6261b80c48cf626b01eb0d515344c7660ca4548f +c50bb594ded591b02edcd2c9466870aa4ae04bdb12a135e7b1fd8da19e9f3e8c +557c7a173653c6f9d029a9e3ed3ae35e7693582da45d2156f429a41f717267b9 +792257445f2f59fcb33e459e1c83d970601272deee376401ef21b21edbe5d4a0 +35ca5398197a5c50bcdc84c97c6ac62debec478537d1ee76838b12d6d71dedac +49ece9d3b554013d0443a5bd51b9633e9cabf3185bcc4280e016677414c30c23 +21908e0267eaa7ce458dfbcab68f0f1440bca65e8ed86b45ea117399e7e40aa8 +53279452b44f24f222e61ab5b48c3104b50bf9ae9198838e3e66d3149484d80d +76fea291951f12f6d4ef5c3e99c10df53622959cf5406b70360d78fa0d194bf1 +f1af545a774451ba62ed459c669e692778a200baa8993a3e4bce5f0d1c5b2d8b +67542bd9593de095f47c9ce1a81614bf972b50de08b190b9f65f32c2433a16cc +837a1b88d7d0a0e2894e75e6276c0496643c2b3f6c56f94187886cc2c8b62cd1 +e19105cb5169fef6aa83b852317286f073808f418c69311b0ebe406ef87bbe19 +5fd8db2754cc035eca5273f259a7392cf7208dd577b607c52afd943990dd34eb +8156a3a8fbaa654b1e8b87fd5d059eb6a7aac9c758640527df295252bbe9a5fd +3a94eee9363ddfd07d62397f79fcea8f67eae42066f157e3391c330cfb2c190d +f50aafcafa591482176abb913264d5d551e2e2569785944f07348c523885e86a +b730f37f448dea4d9e18ec3e8bb0886a3d0257bd2c8a42a67a5a96815f586c61 +c778381db5e7b73b2ab3b7fa09325ced469943334ae4e84cd3e561c1afb72ae4 +1c7c9b58f1fd2dd2e3b0b7c383d8c855a479279ee0dcb52397dbf842eb4fdc52 +9d5f44d5a330bc23dd8eb97ddc21efaa3c750bc46d9abc13777d80b8d8060604 +49ba3c45c51621d03c0c3262fb4f449cab0fb0c7ae4ff1e38490f0360f08f37f +b563ddbe108b4fef3ac6a8f1cc97c6c3938de595a0442b25a902e13fe06a5506 +62b0886f5b55903ac9e43628c22039ac7f38d6a3f7ee5d5457e73ab903ae27b2 +7e26c99ef652466d886282a79d45cdadc4ea86a9281e778ac104a9fe9ad6971a +adb3c9b1012894a6a151ad176302f0849be638c32360389ada62e324ff18797c +b35174260312d791235b829dc13e9ced9f5255a9a8b4748e68d8d46340a11a9f +ffd919f6375d14bc6cc07af141dc2ca2f4d75a421146c2a3c7746a831efdf1ea +6f01dbfedc8ca4c172ec4e3ac7658d6a195dfd6472067ceb2f7846471b7415b8 +c22aeff2e48460b609c1d0623af2e8b484de0fb8beaba8ad374e235ccc70c8af +a1ae0043ff0b82a089b6db141ce1ba3e63ac3b5aac257cc1b2865454c25d9d54 +1d7342bb651465ee23bb350d36ea1b526e04b89f98cb9672d83f7d2cbe9943f2 +0646948e51998dbf4e7841ae1e7a3ce4cef1654a007b75a66bc04cd8df4befd2 +4121ed5ca5f679d69aa4485ee3af3f29a94d3a4b90fd8996f5f271912fb5117d +f4332146c23b1c2dcbfeae99b119acb8502b44956ec1a5872a0b29ac6e37ee2d +b3f02f8b18412a6cf4531863fda8db79aeb31af12a15988f689fbeb7367f646b +768c2cb98f4b4bcecaedf48cf9f53e88e8194cb8e05fb0743be5b95ae88aaa13 +6c3718d84774f47846cb531b7034d5d6c512df69b6310a829a46734cabd4b07b +6998f17a59cd28354f6822549a49bd4ffd884b0164165a38a796b167edbfbaaf +7cf3d609de6b4210d442f17c2b38bb0674fa5a0543cdef473568dd16a2b30513 +64964edc9baf9425b08b211ff7ddcaf6453e39ce17877bf9cd8c6bf9463e53ad +c90c24322271762c664ecebc068ee4bb820871b7affd7defdb2ae1bc6a1faad2 +962f24a97903d32c37d901cf86bccffa592d3917922e8868282684cefe819796 +9d6e346b069c03a3edb7f8405bc461474b6335342d1073c67ec8b2ab83b705f1 +ce0332ba00e9781489dd0271055a8ae9149f7150cca484297399c456bd41d2a6 +3371c6a0843d8222b78a48f0a6403636d1ee9cde5b45e224d5141ef3b492f9c0 +315bbb5ddd2fec60af39fe4417b8d696ed052eaeba5248e3a341061ea05fed3b +af72c7a077898218a4ee2ca75fb2bb3f48b686e1e10dfa7d9474503f554e7d14 +1530d8ec1729d18014ff10a270f7919e4951bb403b2a4cd76d67b4df8ee454c6 +5f05c6923adcb16580e2f83701c2672609edacde17c713cac8d0139e731b368d +420fd0ec6f59a1503da37ce8467a6d554944922794cbe8750ce5aa0a09810268 +1e05deb3e9b1a05c5a29b164b1593ba4a0672b186772bc6524462a81328cbb0e +a0b84f1dab142ded79326cde049b80aecdf1d0041f2ac442874549917b4cae35 +54c6bb6ee874eebd44fdea66ea5fd8a5e71339ab453f6874ec78250426aa8ab0 +5ad2aa16f4218c0fcef6d3c89be710c3ee0da6666bdf32af34ca98c75e7c5a67 +612112d5a4e41f968f3b04af1d8e7b0b45a3df49b361de248204504e5e080006 +a1abf44f506bafa649f89bbe9e43a5ce3c8a180a7512a111c0644793efb435e3 +b873532f52ea129490053013bffad218ff8a57070f5c806c1a5daaea017370f7 +4abc8c037943869a505a13b793fe4e09273528ad7d142627641a8bd931e7dcc8 +6386093518a0739037918c0d6f1ffbdb539aa7b8561ae2910c718113cf77a256 +175474b6b1bbc93c4f85bfd7a30040fe2557b2c30ac7c99abbbd9d416defc5bf +2f610b0d0a4967d8d95871efecb2fa4dffc0c757f545c2f54a68ba62c6d7b5f5 +03cfdbef79e859473cc833123a843b8afaaacc0411abdd0ebae6a2e4d073a833 +ad3eef482455fe1735435301a567edecff4f9ce39fad533eb4c7b6334c2b3bc2 +7f46e9e0dd3e25bef73469a492982232314e0631eff76367d7ccbd179c5e0299 +1714823be134e6483152224e7acc7a0763f871ff34cb2d4d5458547d46fc04da +0a8f5a644bfb2e88ca620f47b7cc3fb1b2ca4ffa1e7cad4f9c5e56c6c84d3959 +5a46f438c6c206c41e32b5fa5f31e0eb411a0ce486a808590ec22966ffaaea74 +adf8e94fab086bf306caf63c8d6fc157b8b418aed4e982d66196bd4547b6e54f +ff58846e06d32ccbc92dc8055499a5700dbac3278322de87584a5641e14dd84e +6792f2cac05a8cc7003f85dec01081ee05ca421ff9f7db06e213d02d182bf68f +43720b29d4ac9786351c6c6dbf88baaf671e28fa7da379d36b257dd5f9ac5069 +9ad93a390637940cdf4aba5af19b2039546ec2502340a952cbe2bd995caab163 +0134826c69b6db8c246fc24dcef8f0bb0754b188abec58d89e7999c478ed4a50 +dd86ceffdcca7a745e868592cdc6c11266564f319ddc28d3614fdaee8e9550c5 +e96afee7b926ba56e1be566c6225945f88a0a2cb968b6700e79763385fb89f10 +89f1d65504c630c0d1f51b7c63e667d688642859844da35836b5b6ee679c0f60 +ae09e99a972c9662daed5b3bd34e5a1c97896c9e242ccce934e6bda548f6b281 +888888888bf06eec593d9ffd2761dbb82e4124cae57c8c2abd0149258daa4535 +49f954f67e8c465f64b09b250da311e73620bc4ec38a97099f1c526bd65a9362 +fffeae547b541852e97d81082dabedf689c985d03a6cc16210dae69be6c15f79 +d48d63d902ffff32b0bccec3b87bfa52af12afef7ee57e8c28856e5a97c2d35b +92cb1a0676c7228afdd1203a467b785976f485c98d8d37474fb95894d6d08d62 +dd909ca02273d411a7eee842a79a0c9beda9f979d3a813ce4ae5a0484207545f +c814d1cf0615d25bd85c23f5c24a1b7d7a9b8ac0acd97cc0bc8327284849c889 +58824207c3c85453dd1f58a6fde5c9a8b97353c71cb328e61efd453e10ccfdc5 +f9681766393202342b75ba5ad585411bf0b20edcbd7a161814d24871630c735d +3c1133976b67df863b5ec1cc1ca7bef319fa89ebbf69e61b68e0ca238558e194 +251434fc78bf0dc080c3b1868fc26e7863ed49c9da982a9fb3768819e7451c0f +785ffb4252448b4a42cf915ac83c4c0cf0b71421e3c5bcfa81f0834a373a30c0 +4bb5795219999b07321fec1f12a65b2ae2c4ef5b3aab44573d7aa766c8adab27 +85b6c84b4fbe49ccf6c91e5c9edfe7e0958c2734b4b96fde7a636599d1e529ea +1b45f9cf8a3b4964102558caddc29ba967b36d1b13c22dd89d1f37bbf7b836c2 +99c654266f47c0be61f965505b6e903fa0d586a04a743e85399d5a0a83630cb3 +cf6b01bbe3d2876e7c7509f8fa9301a91d46813d881f48821863d7938f5185f7 +2615f598299583dfc99c829c129da1eb188ec84cc48653df75558655b409f66e +9320514680fa08c400c18ffe3de8a7378add2ac7c5a282fb8e8a5c0d2605fce1 +d7b5298b43134000fc6a3af59080f9f929a35020c3c9251ae02094a9145f7af2 +4a4307141e364b3b6069c3727ad915e3813d4e80634e3210700990f72aa9e2f0 +b92ed2de07829d708b0b2761cf6604a1cb30e403409f6e9dabeb3b09b74f1c42 +fe4d72e05e76c5314204f83a4cc7d3e3f6f790ba6be60a0c5299d51957001393 +b0fa4cbc40e28aefc5762d3418b3ce81edd64d180f618ebcbe34cf81b5835813 +a664af53be46db53cbcd5ca312084976611fbc94737d25635fa04d6627324adf +4147526b3e1020ce01bff062c83eee439e4926aed7b3e9889d17484f67edce5a +285b3940945e27957a0a4908248c7811edad770f81244aca667826cae47150ea +1286458756197647e666f30b00951c4b8f9033c3f8708659fcacb9f87c99acbd +bdc84807b41c22bae70216d341cbc79e13a5258ffe518248ffe32e6f6cc54426 +e8f453621d9c0cfdbf7e2db81d20438edb164556ec0fda938c10773e8205199c +cb6956e264a5fd11c99a08b537f9513a13a2e3412b031dec3c01c45d1f7ed667 +99ce519cfbe39d9910bac61c05b13d3b42f8918905df146cc2a6700d528a5b4f +4a86991d9eb0d8533a92cf5e135b59f0d64bbe4e66ae7382a16c74714d3ee33b +6c1fc4b2ab8d7599c9f7e055bfcda026555cd2c791ee66c7d44b5b2b0647d4f4 +850a93d11a35c42c331ea1118385dcecc91cc7a14dbdeb362d2f0f7f86d362a0 +baefc8b06f7965221ac8f2ddf3c73c0bf40d297ef34ba57fa9c0358c8e83fdc1 +6c4358ef84bd789ae8ab0cdaab2125df4e0d9508b732a36e4ab64bcf645a30be +ff4cbe61d1509efea59ec719e1e373381e8506ba45f30143194db878d7f007be +7a22eb14427e9ea2e1bd93f49084f9895781f066c387de1495feb2844a4287cc +b84be88981bdbdca09c94d8b037be0aaa59861965a097e2ecde9c4e23ac154c9 +930d10248d6ef210cecbcc5e26358f1c1eb44a7e56c7514472c548427c239b84 +842c88684ed2da4e7446839bf1e2ffc71b202e31a6fae8b456ba1afe1cbf4de1 +1e8dd11dc725fe3f65f3310412b9d56e9d8081609aed8cb55bce973cd515fc72 +cd122821ac60bfbe6414372ea6222629aea084875647824ef2962fbe9e9e008c +e6278fae46b87933a015183d6a9f7375e79c3c9d53f507edf53be779bdc0cdd2 +84df2c3d71d1dae9f957b06e3b14132eb8b02bf4fab6ff3b00d60295276c3d82 +3dc4a2e8b72094538eb0c76004b52fd0932326ce0adfa20685a213788b5af607 +927a44fe896ad089a853dbe41bbec352e70091fcdc56d1661ada059c2b29f887 +36792858fdc8f06037ff810c96d9b27de081bf5b2586bed7490ef219b04f265e +04a81673915824914d8cfe04a6e6b3089f7a5ee7cfe1ec22da44f0d5370985f8 +23c1f8ca022dff9e586aaf43743916b5cb5b45d505ee995b55fa14560bd22516 +ec89952759c2db1bb7ad63f54e218cc20b5251f1d20784028c89f92cecbc7eee +ae093579f0656707564e77bf66fc8362ba2bd9139120dc55e686e6ec7c5539bd +b4c84381e21e3c92542fcd12f78a0f8256d7c872db269cb263d7afb9ace6eb31 +59e6e8185a2ec697cc254fe507d4381badfd130081ec27e382437fde1b96e7b2 +b6bf3d7f8f848e05bcea458fc0f78cebdac333e837aa0edf4a016504468efc20 +7ce153a8e9b6e5c2edf91fc7166e509122d817fb1eee02eb97f9ad78af8838e9 +8364be172ce150337eb679b9b34a26692e6feb02af1546248613bf2e36150769 +05d4d804ecb533a1c9a0ab8c8a7289b0f4707afa603e4956b88e5de047a4f5c9 +38d6e8570f385d2bf0cea6d3e3ea963a00b74cd1305111f7351f6f95cc830075 +a756c7578e7c7714bf306cc5d18847856df650b635f08e2dac52cfeae828a2b2 +9a73611a2ead901874359d3110e525af13b59fcf2cba9256bdb6c1080b2ee34c +b6844a6f003d20f3748ab1243f7a8fe10aa2638da7b690c705a9a44eb716ac93 +696bcce1ade2f87a0690541f4e4e49a81300b98fa2b5505959c9b15223af8248 +8972ab46c5c794bfb7db4e00f68584fba246e838b431a4a84f10e7c136ab3d16 +6f6ef4b81707e397dd1a032c3c3537b3bdaaf83f3d9e1360e3e4d8b273103b13 +fa74194315b653cc88fd6cafaa488589c3059f3467aae5b9ea5608d645a8fd0c +5636a91797234a50a1c7c0c7c650a58d4f9e249020ca552a0adc3df7f1d457ae +1b1aad7d15d1f4c8a7117e093730e91d3c6056cdb933f4e9eb2fd05be7ca9f40 +729e77471e3a745d5bc1b956b26f7c2e678823154997325d97d4d76ca1deea04 +d1be6b877e67fae5ce663aec6aeb9656b2f30089c8e67d9cd9413006a9b3d61f +c083f58eec9aea4597267f71bfff9864deda483ec8aef047c5ca3ce79ea23bf8 +4b1b4052c3cf9110e0530f47c0567f072aca8a457abd767de06408867b3ad9a0 +7b23a22bf29c5870802b9daa3d1d8bcc08da974f59380623e196403b635f9789 +0699d3d7e30aedde9c7c928fec7b42c3bc9ee074229ed14df55be8816be05def +17f8ff08714a92852a199283e23de6afa58470e4039a2ac3a4e73189d6e03577 +2f7a3c0554e22377ef66013dd3e2617b04ce637c94e22ddf203657e7d0ba6640 +afa9a2de1ca70b25c26b63a8a6db8fe3a8b6cea76367af4797ad9dc27365382c +a329c9ca1ab7be7efc420347706a90658a6f8828ec5372fa7de0dfd0d9f40c9c +97143a98ed954698e0294fe1bc4a72887e66440e273c48e860e50c6bcb1bef90 +ee4751da17607f9802f355f7c5b2df169660c9eccc8157bdee610f78aed6df35 +f2ac619424dac857cccd16688d6cd2b752e43b65847cca0f8deecc7ef70e6773 +e56188a1ac89937ae99571ddefcdaf0bd0f05fe5d83c6c44da735a1e8520de25 +58c2fcbb1ca9582314979cec3d314e5acb494e49ea42c55967121f85ef009252 +4ad11bb9ea5d19a6f169720ee170dabd382f5363936df80fc37b1c80b77d017d +2f3158ceb743c15f97a59e3a8a6ff689aa8b50cba6039825012117ad1607e01c +e96255df0710ff341f22447357f154fa7c133c6166c02a93a583e8655ed71f59 +1365b4f79a66619b8fb548df7b6d212a6b46ce295804b524075558838c582570 +66d3624fe63ba68c0387083a7e10ada01433d7b3ecb6c2d430c31ffb09d23064 +ddcf98e28823f484033ee08cfdd8ca05dbcb3e71e545a0744289e5e8780bcbf7 +07aef103947cdc614bc11b138fffb9dcae3f20329a465734f5ab55e7441b245b +084a6f432e44691e53abc81c93d9076c621f7a0a897662c623cfa8ced383512c +492a62304b27b891995b2cb4dccd8fb87e678e9e72c0bf638349e5f0af7437a5 +e28e9ac150fe846011deb5a39ee2d71afb08aa79cd5970b37a282bfe129ff0ff +b5de438a2bd5f16f8f7e5df0d64b4004f5cc96060ce6a6304c607b07c8964642 +b151009ce2a6f580c271af4c8229ec417bb388fc8634c8bb77b6eaf9baa90699 +b90b1cccb6996b94c914e9aaa672393aa17309a77b77b1500fe92487b6c0da77 +d63644564d2efb112b806c050a5b15fb9ce1ab9ac8d9758c6f81dbcfd12defff +4f64719f4492f54e796551afc6ba0417868fff7094839ca7a26dc3382069cf94 +84a8ec26e786866d90c520e188e54fd7a2c92c3261731d7f03ac76d26325812c +893662124d62666f32c6bb9fbfd87d041f0524cf21da856d72868c11d9d657d1 +4acfc5c06029499275ac0c9f4a4126251911730032e54ed02a7b67652a88ca34 +1fb4f0ca43898c25340ca1d504c92cb4187fac8d3154f9adfb437d332337b71e +c461dc4e0e9b637fddebcb88b104cde0cebaf140298a4382ef94c6c9cdb0e63c +8f946ecbd72c33a04d5c0a0796bb2878c90d3d93018e13422b8e37fd6f63f0d7 +a4566c29dabbb050d825acb7dca9a223df210d49a6896b6395d6dfbba0ddda7b +e5bbf27d6e7b58931fbd0b218d23784a499b7aa7fa4511f958ee9dede4016457 +d33e3ce4399a6bbff64d50b0f3afd8eec0c2788de42d2899c10593937a2d1837 +b71cbb7e6caafe3484fce6077343cc68ad515e9bf998adaa2470bc8e31712352 +0e10d74b77aca5d329c73ac35e86d3df933f178851b7b9f7885ae4a703f0d99f +33a43c58b5a21847e28e57eadb2778468b03888431c90c9bd12219244cf347d4 +6327f69509bb03c4e065cf7776ecc6ab025aad72e34a6c3ea96dfe66e0250028 +90ce1468ac3a3da1147287f5e5b4b50af79c8c91d82c95d4e513b69c37ed3b50 +9173489af300be09c4c06c7dab6f92c5554712f12dabac3f0f72502b28246690 +29ec90f84476b22068b63ed8d82f2ee8597b9d59af418f52ed137fca3a606807 +12806781c7b8efa84ca538d752183cc2bd0852bf0bfb7f5f1f646ef1a18e9cce +f7a23de4e7d6d45938d52cd1d5bec8509bf283a60f3845deedd77a3ab9acd3ff +f87fed9368cd06659cad3d76a6b8dba70c6b8d92974779fbdc7598afc869be36 +a0f8cc8aa6c395c9205ec70aee522e2def7b6b1e99cd71cf0aa0de6533c1a56a +bbe05c6d996b1eb7788dc1374e9291571e5a260c2811ee701362b5a069b5fc96 +7c4e6413d905a5d3db5da4adabbd17e826ea98c3c7c907d14668bdc9698e28bc +06414dd9c015a9e9e6cd2cc81c7067b2ba81617cdd559e8b5b72697736e7693e +57aaf6c681b513e4c89a2e49a7bad2048d6946169d75407c4ce96ac61d80d277 +89a53ae8789a005d9e17c3206fedc25582a87977600f55da02f842e0cc1f4980 +26fa34ab851518e25844bb109dea1b902a253d8e39acac635c7db5fb18bff9ce +f5539ce72c56d47df642b3079d91819639677214ba3febdc5e0d7a6ee411c98c +2609192d014e29a16eee1f82fe3554b2561aa1d9b5d1996118f68f21f3c6bcc4 +2e80a1610012131bf28257bfded51396198135871080a41aa9dd919a3e151d4b +0039a6f53f95f41589a354498db454a3f9db24ba9dbe6132556c2de830a40772 +7c158d2bebf349aa20cb3adcca77bb3929decb7e6ee0f81429f2835a29ccff98 +a9c381ab918c40680100ee69e73cd6eb69bf7904ca242b2f2ee9b9715312c3d5 +0fbfd137a64949ea2564fdc4dd3fcdedcf5fd35566495cf6a3d88b4e56a0b992 +a6e80cb0a5d7df4f4a92459a75c69e9f728d722d5263c8ed786565475064610b +7be59b4ecd8c63dd7e997dcba08520715f6f5a87587ffca93ed1ee18cd33d083 +8110af875a723e73df94f7181ebd915eafe93e462c635cb69ef14f78593c961e +b8f18f00a6cc8e5677ac0315cb7fbad9c8bc7d2a743db76811bb51968cf4f360 +290d50f8df1565f71fdcd67f62041e27294ca38a4d9342cc160c20b430fe72be +844e1ddbbde58cddd1f0f0cfb828941401a48627e38e80c1e08fdaba1da0217a +e9abfaf4c7c273a5dc9079e1e809988b087d47c45a97f45d89e13a36cde68789 +117020b6c86c96efd9c343f2f62991c8dc2ef39e2f70903fa7cc1944a08c3fee +85cbbab41dd733e16efb15f8acb3670416a96f0d89bb8dfbe58cfd04ff2e6199 +de5fd62a2998fd691f57c1c0ff7bfa691611c443283314df0d2220d3e1961db7 +91a6443f6a736190951fca5f8b9f3e53a5a43155aa46a9ffa876eb19e6e81769 +6cc0f3a4e4f769742030dcf6c863fb2055058778504b4a0162e0f56fca95dcbe +3fe980438d308ddbf6f6370d8b2de9f9c26a17d0ea9b17108ea6aa57fa852c0e +5c579402f5524a4aa730b3f77d3eb5d9b46ee68158288745c515dd1b65c1e666 +579ec8430527135d872bb3587b5fc13412031bb8897c6e29f05df1cd2af3f249 +fe976f5cc884a042ef595778d344eeb0480eb8519b712f12c169d992e7ef6b46 +6324bd7b70a0b6b552c17aa397297d5f4ea3cd2765aa476eab903ff02f53ee1f +3a310f7008ebf59cf3f44eabb7cfbae1e71aa2bd2b9b0f2ecd956ece2022ef00 +95026ba2ff9ce39bb5267bdc0a1e19cfaacdae54c0375199448b843c6701209e +f45b7b27d906506410048cdd20fc71cd0abf45af739bb3986ee7dc28e2cd1502 +e2c8385effec5772de2ebde71c8905735dac1619c25d9ab5d78357798cd723bb +e64798d1f7cdbbaf3e8ddd681cc5b143d39fc263a399cfe8e39bdfdf4917e3bd +36c38abb403a17c054db8e41f4ce0da11175bf5003dcb7e9c314824118ac92fe +bd2d87ae5061c82abe0a96ae5841ca8867a82bc325737fa0e024e1a7c71d44b3 +9e921e39aea0b0d3ea7c62a9e0e8e74fc8e8b8a35e892399f86c84f9d71155f2 +a713a72d92d8ecd5ac03e693ef39a07a4098249b46f4a03105835154067ca999 +4f5078f08730d54999066d3991efe2ae575e5451d98ed0856091cfc1a6fc6da9 +2c53b059277db425a59d965ced106eab6de497c3a341d3e3fad9e5e335ca7d30 +27a4da1cbcfd3f3b61e4cd464170362c36ed48ac6bb687268c347a3e0558f929 +d272e643fd93b298e4bf387de53b6f01db1870060f87b68660648f2f060b4c9e +da848fde5d4a9c17326561f2b2a02de1f111a6c66a0f08dd0357fed1adcfff78 +7be958c8be68558542213fadf2a5670838b7c45090530fb0c678e1456ecce593 +2726b3b0f3bad42f2552a99e7bbf08d3d7dde44c820817790891c152146250aa +9e7f81e22653a88204f7336615893eff2ee519b9c26f29090ad1acf271fab8ce +9fa4ea0abb521e74bdf866b58a5e95f1847414339eaa93dba4b5848e716d0516 +6ad2432e7390f323434708677009a5a9f160f01d1483c1d84d310256cd623be7 +b66b4e672529cf7011463cf77fb536dd379cc72ee6eb89884f9981cfd1ad87c9 +47a157bc3749e388fd638575c3d7fc0346a11de33f5503a1398fcfe9a9326fac +14bc088716ada47bf6504bf4ace6554da7c642b2dba3de2c38914f2534468026 +6fdf8a2a5808bea8f76052e5a16beaae469af4f5c8b746a20aaf4b92a79bc0ed +0683ac705a28e52cf290a07d9572bcb75be656e8a83f45666d2dea9b7241ab76 +0fb5f6a27d1c71ad4c058b0feaf60946523a6092f18f658efd3ccbeef6e9067b +8af23c9636af900f3a7e0f66fd227919b1075c9989132588928d3219a84d4547 +30aaa591a9bbb197e853de5c7959784d9822e030bbaa46207857f6cd4b0ba80b +75726c9e06ff5229870b213f5c422d3696a468829755369e5069470b9277b1e9 +989ff46f81ac81a3b97b05f91c92806ab0fbc0cb6558e6ce69b38d6863d5fd12 +54049d94ca55f9629a1f77684d4223ccf573694d996abac505f3ce8f30a99a2f +aa0fa1b01d03e4e3414e68897809c9303784566537eb511bd5a1ca9b9e93f0f6 +bc5aa0be6822604bdc51681f79f79979c96707959745cc7656c0755315220a31 +e81eb803a8cb7d1cfe577b1171da0ad82ed088df7f5c8345c2d0dc2704ed14d1 +888888888aebbcbb57f75c2b2ddbc3935073e86731e3196038dc67a45df478c4 +c6d349263661e18207e994f4d764be32c246ea6610f953786ca1bd866de41e53 +8d6a071535c5f2f1654530d2a637b206f49da89589201ea8f0c7116d8539d32f +db2f75a85f998bac1232f10db58486d22ec9dca7eb74ec701d0c3109420db333 +40d5eeb45dc157c41beb49ba31691789933141f0bfe54676ffc2d274c64592c3 +42b566a26aa07764c9b1c5d20b51a8b2213ff4c5976bd4080f603ff03f0831e6 +ee80a3b899c5019df6aec80214bca901edf7d6baa83e4e74c7d254bde9f41297 +467eec59564505b2358733cd0d9a91af71f55270c5d7828c3b12e50442c2c16f +99a941793e680f6b2c5979ca640c1c207b4b65eaf03c6b49878b3598de5ded97 +2284ea6e4ef3101a35daa0bf715725432d7a43fef716c74597ad496231744399 +76e776e16c6fa3c026df105ef700edcdd249cd589aa45c601b79ef76ba786b5a +f348935fdc5e0dbf9a922209b8c57a9c5258b572156f9e51b8b1a5292ffb2bf2 +6d9acdd412dc2de67396ad4f1a04f1c529a0235bf1d09f95948d8dce712091d6 +eb20dd7c5433acebd6e1cd3d8193feae63e19312c0b08558151f20e6cb1868f7 +e91332f27f14db1c488f70d7dceea5a3168bdf176c2f209a1a96cb7a8fcc742e +9d12b4c27c1476326e4101fb5c888710d0ba1927d85cb2395fd94ac9b7988942 +cd98ca77faef729789d882a361305cac0757b119d3bf3138c39a426264fb8aa9 +549428a7c4f3f473e3d6bea478e499056a17b25d8006b37e08d77d9036a54caf +5f3508474e41a1d6e0470ef9d881b7d4f94a9c06254b5e0c4b97487d232da456 +81340faf6d6c4cc188b195e617789565d9642e69f9b65c89d1f04c9ba3a5d4cc +dd54ab1ac66e9559f1a0bac4e763d37586f4f8d7c14aa0cb22486b6a76a1ad79 +9aeb1dc93cec556f94fe470eedd2c5ee9216c39ddfcd8a8834bd37d207c9e9b4 +c329b7fb906eccd869db66e54c1a74061c8d4ef2bd9c3ef99d1aca882ceb4401 +899a60eb9fe3eebedc12dda882d03b61dfa8baaae45902433f3eeefb69a5c708 +96bec80f916d29574f229eb966ededebcb3660d81794e0ad8cff6fe4e7a6ef31 +17e444e6cf143ee9d631895cc56472806752e1967e2391dc3b43f670cafc4717 +e9628ded332b0ff209a7fef10147fe7145d81ec72330838acdb166d571e6d377 +5432adbd56ecec66d599b346ca20778be6e89ace49e3a94f40daa87779bd2230 +eba5693b48342a6fcd7be9393c343d2ae2841ca22d0bf131fac48eb44aa2e32d +20b26dfaa9590843f5113d192de371f65194e2efc07640e6e16912fedbfb53b1 +1fd049ca0dd0678ac5a944470686453e3e46c8bdb6dc45c89e845b0347a082af +62ab794fb25654909874a66791d1191eab6c2014f1c6d59e48363455a84d91f4 +134c7ee24e081594ae033816e39fd1ba289b7324c206c8d1c33ea71fc8fefa59 +057bfb3b104bacbe19fb9467e3eb7c2a3947a7c9b2467d758f2cdd82947180a8 +011abd80c6e20e22a97a34a36e913fc4f2e80978d07ee2ce587aff0ea9203349 +acbe5685751f2b93601b3b398bbc3892a4984bdc732b574f4a8c7a29cebc9c8f +540df4c106bb4f92491dce8739fdefc9a3c9a3659d288e7bda130f27967b57ef +239a13c8207fe7475a5dfb390198465c5d35ee8e0f4a4381526b57d3328700fc +dbae38b074978923eb63cb4f1cb234c5b4d32562d4ddf1c6b54d74609d51a9c0 +54f4bc004eb3fde8620b8ad01c5f0ea0127635ee3a1d5a9d963cb9ba199333f1 +777b13e1ec0a4e48b38cd2ee7428f772286f0034f2dec764ed8c4d1c29b006bc +c37373d378f815c24f38eba4cbbe09acfce394608620833153c1f2f5475a199c +3e730cfdefc64df5d75e3bd864ff0baae0830d2e95c5e000760c6fc50b04e4ea +e2fc364b8c1325eb389d0a7aa952d9b95044b90c72deba02e66ac886d99f0000 +525e24f73b59819906f8d7359083353deb8647e5a8c9f2433503464c97039102 +f292af7a55e82a8eb47233239ca4eaad78c82f823516257e71ad3cb8a12256e6 +777a6e5c9aa0d781ade31736a207cb6e8cf28a9ecd9d49dfc644c19420c1e3ac +e5bf09ea48ab7edbabd2ea46473c929c0099b14e348ceff83b65bef8f5ca4ae7 +318965a21affa1f25d69067444b157000bca4f76c7a06df78a64fb035b6143ce +ec73dcebc2611661337ca3e445102cd4acad6af11ff12c584921f0cdd5c308bc +b6c4665592bce1cfbe683cae7b1d471a83784450a50723c1d10da6215f66016c +84b42b5184434cece8408c5e0e8708938487adcee6b8622c0ba478dbc361edd2 +3b994365137d38fad1a4a5350adf009d94c5cfda6109b24ee0ed57c4d9c54fc6 +32099b6f73c262d8887b291792cf339eaf936bae9b5f1bbac9254444c32e8ce8 +edab9275c3ae912b54ec5e56b43011a23684ca729608bd0c6a2a485ef39db699 +d180fa0e6dab18bd85f4b50172ec81eefcc4fd0a71c4b4849b3ccdbf49c216f8 +f7db71aea6516a2c2eca3fcc20a0bfddeec3659ac0696e61beb72b5df7635e87 +c1f4b1453ee08b1fa1ce45e5b3167a1e0853493041fa1837de255ef4810acd2c +2cc32cc26d079899052956e200f521a5a9e911f68717fc44fc21012bee6ba976 +934c00af139fb1784417969cb765dd19640814270530dd0a21ed88450f041fb0 +517c2f3b6804bdb7cac012e8e2845003fca081c285ca1d5b68e9300cb5383999 +c780011059e6fdaa7e892bcdfbb0cfb884e704d549c3394eb1cb2b753240df92 +4e4e4691862497b12c2bd974a938160183455894d59872aa3749bdb3a32c47a0 +c088b8326706c7d783b2359cf6cbd54e14ce7daa3905ed92602b96aa190f2bf2 +b69f49ad2a4904de92d1ed2b1eaadf09b036f7215d9a4886ecbcb3d2a994c8fb +c4da5fecb9ee797031869cfd18c85032de50c1927f03bc4e3a9effbb2c25627a +114253be6c914f71db040b99ae74de0b82198898ecd3981a246ddfaeaa185cc8 +58a9f5efbec6d5db968c1dc6f363a714680d52430cc8df9dd6a1800d62a7b420 +f04ddc613ccae8b6a9e7bdbb881eced724558d16afb8033d149d4aa1a1dbdffb +f3d442afecf9a7d5644111bf7e544a8e31d2a58f6558a85fb1145663f73c1a00 +8635c966bb021e5f0d86b8acf2df46d44f7a7facf9fe1d76b9ff7d69672b8db7 +ab956f594a76b18c2bcc5c94ab31576c64922075b6be967f658549591b6ec470 +4fb02d828c0bce10035f0d8227276bfb841b76c4fee8f30cf26a24f6ec9f846b +07446d97f698b4b0c43c06bb2d687b58300bd632f83d8389bc45ae3df03186ba +d193910eccbadf22c24063830fd18dc08d55b1ffba1c008b53522061d63d613a +d4c6650e76d07092c99816ef4107f886cef5a6995918066ad51439503e4c0856 +a34fbb204c59e37749ed90353b420292422e561ad0a508c42919fa954444ccd5 +9df98a5fc4234c1ecd1134b986163b9cf0c174ba426936defaf1f832a4d141bc +f635b20f875a2cd21373433aeaedff66973a2f6cab4fe3f25b97a38d69aa7f74 +f44569e87e7355f040e813fb63b7cbd7a3353eb7d1f251a60537cfd129a0709c +c36be30090f643e9ffe060cb717a168ea47b0df399384036c2d0361926e82162 +7123f421af775ccee5a3f15c56295e957e948f0bf0e96f5103ee2b184c26924c +391dcf45d7d787d36b860682006d8713153a0612556e33e545c512b55e84b68b +4430bed794997c95772b97b6f022a5ee4f419654be5bfd59a9eb07dac4e7dded +53c0674b0caee3b6ac4e1ec4312bc422d512c0086fe6c17f14dc5c30ccbfacef +2c059d8e0ec30d679ae14b7585127a60bf1c902bb067a5127957a919920d430d +76b20298573fd839a4112560d80d2509dad46607403f5ea44fd663499943e250 +0baa89fc23e6b417d5948eb90a82d419ad31f0579aaaeb1b43488bb9597cc672 +c942a46ff02de55dc1a2e6da77ae679fffdf9cfb0f9f4b3582523c4cc74089c9 +7f63146c6a994e94c6aac93aaf7cd574396d7c81988d855cae208752ab7eefa8 +c3b74abb29099f952b1ec2c23d22302ebcd5c54ac860c97c54553538e837a014 +9bb0683826832c0fd97de3931470e1878b0c9f37ad6870a44ab27e2c121f7ad6 +565fb24034a0a15cfd1d7ab1ddf6621f34701bc3cf6d5a2a58a3ac852dd61b92 +cf3d6b3ddc50fc2db5a91659950979c7bde4cbf0640600e6edab37e4548f33b4 +bd2703919524d3285dd9fa0bdf3dd506282b61d67caa9fec217a81b3e7cea347 +f366fecda0ac75bf2b7be980fc1facad7343fbd1863f9733e7ae204284f0fb3e +44c7a128bf929ce2e116ae56559cde6ce518afef6096da9274493b2ca1e6b056 +a80873c4a3c0cd43ea1624042aa72fa1de93730e52cf4aa5a9f6523d92d97790 +7c936af2f89636ab56e1ec7065a42fdf2c82b4177d42a48326198b66cb1a0e5d +19002748a1428ed5bf1cdaffe07196f02830f6659ca8aed53417e2e3cb6b8b7c +86003177b4516596a8532d2e420d77dbe9996a139a5234bfb302b046a5771ec0 +e8d99b12954b784440332038f60eea00d25a4295e04fb3c42c4648406db356a5 +3abb182d9732a3e46c5786ad8ebe9a744f32787c8b2cfdc1158e017b245aded3 +e344457a5b6c0f0dc4bfe08575ce068ec628d60163c5209e3059c3a60a176f6f +073539c868485c35b80370c656348bd86047e6c6c93d8bed9024d51204797e83 +bc265c40a3fdf4db0795ac17646e9119f262ba5ac45d2ef0b1fa3d723070606a +f1c71232d5b2b67f1f02c74d7027c3b63a84b02cae8bc738fdf627da1e4aa277 +ad6536d46446803ff45ebfb20101d3a0b92f870e13678c403a70d630ebacc963 +2064b4c6f0b236c18a55737212689f86a1c0884e3a6bf03e58cb951ce351d7ef +1904b89f195d8d617f8a416b80dd7abc2c1ac500be432170bc509b237c5d1283 +95bf117e466468f468056019c713372d9696d4e9f3a08fa75f3c1a285cf40991 +2951bf02e2bd928f995391b37ac9bf9bf777d7bf4c8208968af57cb086111718 +d8a9360a4ce4c01ec2bd1f7e14f26d7ac70eb423e54acfa1b00d8116c0e6e974 +6cd65a624cbf1049aa14ee271e4f1495dae5ac3b48ecbab4dbc741d93e59d0af +f67d44949634b892b2fe38c36b8991e94c808d67b818cc3203df3a65070b63b7 +afd30f1579fd265793c001559136529ff3e446c7a2d608b135baa48eacb81765 +2cf09409b56681b093a73e79d3569717e2d2500655f6644fc098ffd3fe229b87 +c36406c941e49729f9be80bc68bbb34a61c9d7d5f341b8102e1f006c94f25891 +2f2f35b41f1f8824144dffafa8dcfea47eb627c82cd8b4a425d29e3e93468336 +e49c3bd519d0b13d795f511b63b2ce0e4b57f5a9b14f3872e40dcd8dcb65e638 +be05212b699116a23743768bc986984f0b345ad60805f20bd5fd51ebb5756707 +9f2ac6a4ed7ae1e9b2b2826377c13cadfe9985aae0a1d7629833c9806cc83047 +df4fdcfb0b552a9d82a5f06dcd765e3e9fcf928468d642410543728b3c5cb75b +37d6718c76fcb03e05aefde7182ed4378368aad4dd06107066d83fad0fce5f85 +9e1ed016a3b9fb8be4ac50b5a43cb8d13116140d634121595a926a9279f819df +ec456aadeb12bb8d7d55f40536c4bc4ee435cf09c763a31dda594c964885f7f9 +6365364f4c4e357c5ba1b2a4d9c23868991580807cfdc76e032fe476e4213874 +b657832cd260d0f9d494967781b367ad8acf70a3abdd99ff490d7892692cb7ca +bb41bc9c730b1a15695c8bc9089cd5f1c192fa76ee88552a109bcd12ebf51f80 +5f3e7071a8423a64f19af140991705a8284eab5ee0f514bc006f823a49d9b5f5 +b8242941a8ade2c6da31720118a349870c2681f2cb327d2e9b7f5bf059f9436e +b32f30c6f0376f8f3b0617dce784a12fb987e5261826ece65a2250a64cb91b6c +1f59cf23abc74a9bcf4a9cc9c1a68e50480d7c7188e2d20f655a4bb46de6fd19 +34e873a7f967f911858e5c386f3a1b3b23b12c2dff9c887e56ffd1fc9ec51378 +5d1f031d8232ced3ab69525e66916f88bdfc834d8a8f78c357affd55cdc6a43e +1fef56c29dfa3033ef3f0b44c2572c279aaa25171f9a77923b07f4eb2145a51a +c98fbd90c7ee9de9231503bcbd9724519b5aa20fd5539e13d83199d89d86eac8 +eb9c004efa23db44c0e5bb2f82e72473d1d61bac19490d16a94d2cbd5cffad99 +46ae20730ec4b6064a25f5f23a35a230f73edbeb359e82f5c01a3eda8db11083 +d553059b2d5b758df206c298562b6f635914f0e56e023fef23036638908aae93 +16109de89780244733fd991c3ffac164dc2cc57f0c8c9387bf6fad5a8773d5e5 +88d0efbe681e09bfbbd6bae2698e1e8b697f3080a627ad653d91902d61c4fe70 +110671802652146bf22e441f041496b2a73501baadb4e3f422aa12d0d9cd03f7 +00111f61ac86c945568b440c3fd67128722a5a65fc3f052c63e29ada9ed7416f +ff57e13ab35ad743d9c3bb4b7a08e5680309fe1e345eb8088c03e102b8374ecf +033286c61659610c3606af2b93007e24ede4d64e0b0f5df99ef836b5d75d6426 +b2aefa3c6fe457b56881232ecdd6a8c13dfc04bd3d578c6fb76360ba106feb67 +06df0c9ccb11887a2407f093d81f9d37ebb1dc147d982c99173e318c4c5b9733 +95a91c1545c8511270f94ba25a3dc83a1dc96fe30e8aeb431d035dc37172d01f +96c4c195d0556bd414a88f4cf99fb43f005d8c5fbe4c59f836709b9d709f50b1 +2b381f25a8fb3e6f4be79cd7777f0aee1bf4f89787d8622375c7686e962971d2 +47973698d9a0e0d4238e0d27c3afaa9aac5fd5eeb837548ed46e879b4fe58951 +192e00b2397d2e856339a6b37c522eaad4119e533ba9b1b50539b5cb763deb21 +09f0e624f1642ac6fe58cb277e7abeb5d12d48f28e6c24accdf31962334d872d +09b341f61a0f40aef8442abe48eece12bb3844178eeee55aee73f003d3e9c37d +4e1b57752fed92d5ea8c35fa95aa30a2e946a7e605474ef16c1462da2dc88d74 +1afdd7d5ee7ee589699611ddb1b21f2a5e4cc8c75bf82a4bdd9c9359c52bbb95 +81dc454d2a424048b4c525a04c22f2eaca189e1ac8babc9aa4c016657f3736ad +39cbb57ad363de140a7d1186480415dd9a3fb9c35d6888921be77cf58cd5c2e3 +54a3d7657be58591499961fb36a96003037e6f3cac0733754a5ad259a4cb541b +9a18d2facd7a9d1187516d0ad7ae7c8ac4df60cce82868edb8d728a3fdbc8b0e +15b5d8e2df59db952a68379e922a3e4c13226bbdf3266d86501a22fed8c2b1e9 +5174a2c02a0f2296568a4e157411c000433c89d718e54603780133b4b18e66a8 +c781f8cd7dcfd3b66f24b2c21531a19e9fd602647ca60fe57bc0eb6715051305 +af539611fc84be3fb44acf5852f01f1410ca1f599ec29b01ad5236e39280d277 +376ce969c7dd8df7b0ccc5a99946dafab757dfe83ff1162b60e7747ade770cf7 +ed7077a3989b0a72c4687d0ca057043da823b59d954139e8b872cde65bc3d2c6 +44efce3d64e036498b309f08f7559999cee8f31dbf4a6d7f3b21dac914b69c59 +4e1bc2a7fc422ee2ee6a686cc58503f397cf898df143d1759df70ee5c5a8d411 +2152cc53b274dcbe7b114aee9a6062c810ea20fb5ac75d8d141937f5f071e4d7 +139f31c4fed4bc91c3f2ddb59ef81af7feaba999693771a91d2d88578c7dfa4b +6fcb105002890cbe38c3ffb6e2b911012f01fe5652b940952149605491b637d5 +73352156347236ecbc2135509934bb7da79777cde9a6edf50bd3d741226dd875 +746f92b625d7fc474c0925da4db2162dcd435a749adbe5d3d67e9750733e0254 +e7c6c5e694911d7ca9ceb5fd0787b66dc276e085cbacc781a04bf2dc638eec2b +45d0b9fff907dbb9193e876877c836ea2d04ecf358f9b2ce920c78d6bd0ad61d +5954ddf026038976f185ac077935c2e57309f34fbf70bd0fa0e9ecb84ea78efa +a5f39ae2623d4ca3c8c2625b755315d35570bbc8d9a49bc0331d3bfc0a4487f8 +347f1d83975d0d47f14d8d01b0d1d7164b956802838d9bef77a723795a629f22 +494e43313b121b97a49dfcb0c2c0aa74aad3956c02585f00ea334a73381b78c3 +4ec3b5e65ce6179b75c7b3f84d3cd899a3a092ea36f1255340228a61ef2c88c5 +746e9ba93f03f0f61df3713aaa8b6dad9f51cc3bf03cd67a0f8ab1a5c48adfcc +71a4b2970df0d368cd3a74acf967e743f6c6a2ef22b1032c4290bbd04021b6cb +8e9f4091738d5be34fa6d24088859136ab8dd860fee9f329e40d86f2470ee608 +9b65d251d0abee150692c91cb261d7517bcf26fe8395c275263fca21641c43a8 +e20293078d5f784ac7d24532097b9d39b5ed1ceb0ffd72f0b5bcd44136bd981c +a6fe7f814a0af9cd0702e16a22aef8abbec5da283e4c077c6680a99e34ded045 +309e6e0a8077d89384c6f0d5acda4003b0099240c13218f4aae87bfb1a2e6549 +fd4187d4951850f60555688933f56f8e79e09fa8556707ffc604e7227cdd43fd +5c76063a21074e67fa7846cb320abc057a17e15aad301028bf7155abcff60d2e +941491b05aa5f85b69b1833891f970f1cf0f203fbb5b80541c92e6c2f6473f88 +3dd26b1f5145df21fbdc23b4a5a1f7b897cd9871d209ee317801dd5713943096 +4211fd895ea240a1a3c0ecbfd591b2b4627459d34c358fb3b10284eddf8e605f +dad41366b8fb11235ce8a1b6a0837d5758c08e0cf4c710ddd5bca41546c2d577 +69745335c4ba3b4c8b52f2dd68f4a1297cbd787e0e76f1993aca6e5003384a56 +03f5043a2ccf6f9598b3ea1f8c47548c79f97189afe37cdefcadf1bc99ecf00a +18e590ce44db65e64311499b0dd262ccf31daf510fce71a5cfcabc0ea887e982 +5eabe6b4d9ecabbeb050b2e646cbdac4e265e6b40fec3f35eb23834d92505bae +2e73f335705e3aacd04d78e220612b54f7a815975cc5f3315a13ccbde8345948 +a67bb2e009d28be0ed05ddf58bb05cbf590993ac586a84ed65b95d7d7f363542 +334210b39b4727e993e1fdff34f4dbd985900609ff12d9c9820c45d7630d71eb +722fcd3407ad005077f53c3a2e5817050839f92bdc6d6a937c6c15643a502bde +22e841f0fc5c09a31b2fe74e822a0d3912da4e26e2d85a4f962158f69bcdee5b +5e18ae53b3f462710671bbda695561fac63793ba0d9d85ca1447550747d7d0c1 +4cbc0cb8dd6754b15e545a0a26a770b31464bc9f070db643adf743f7de00164b +3af4e655bbaabcbdff639791935101eb7c6ed0ce3e0141d09896d01ac9a440ed +9a7b6bfde4985e82f671e75262aa0e20512e083ddcaa54e1cdffe7b49519a3be +26dbcffef067af792cb6f3bbdca66fa8ac765f44c02fbe06efcf37909a681842 +95fc32a967fe9e5a002e20b6e4579fe8d30a63924cfcfd14455a02ed4f149e9d +7086214d6aee284e4e81e3274851dc4199911dc9c2c345f3f283605a0e3d6d1a +1ba62612eff3453fba41013c31bd4376ca3c34d021b4bd2939dd432dde6251b1 +3a2779be4f068cebf26f91719ceeae2e1c858928b5519f5eb806379c9364cb2a +64a63faef6e151450f59aa47a30a8730a9570ac95705b980e3eae79e884e415a +78e4320513ccb7ce87d96a37bcada9c52fe402e96165afdbbe5c40ab2517b246 +445c1c4156a3795f3f320f307b2fba6ea957d8448f4b10c5241aea2adfbb764d +700017d5f5fb86ace5f72d4411c59c8ae37f70366434857ffe84e524a31b014d +91235731f97f5dcf65d7b8cfc7b82b6ad2ee05c4229ea9879ffd693f7356f5d6 +4a576c2352cd2283e44e2ff8946f60c47974d3f7116908b2f3af89328d0b0497 +958e82458f1384fe0fccabf06ea3399e8522be4b5ef95c882ecf932f33b06b68 +4cd076a59bdf4fd1b24f04f17710f8777ccc93c0f5bb4d5076a68697bfb506d6 +aa45fa3b7621aaaa3e40ddc3c88eab869155a457055c7f9094c3d9ed60472483 +b0b6560074404e15ae2bba4f10f8730be816c9ba717ea5a6df06bf6d4016a665 +ae2d18472d5f07759848ef26651aff9c0a358401741e7764640b38fabf3469a4 +0cae13058bca582af29dcd1812ae3d396e08155c89553316f25f59f8705636ac +6bd9271fb8a7bd49a7efa90f373bd394e2e4594ed6c9053f8346d8169f4897af +f2c4aeb351f5329685c54e80796cde77547d0eb0b500e07a02477b6219b026fe +99458a028d3bc747d22976330757a9e25873cad1ff3410030297182b0a55a74a +619d03514d3fdf5f9fc11da9bab723cf8a5cbcdb7375a75bd8fa4145af2ebac8 +f441b2351a64a7831d87fbd74210fd2afb0d775bfe4d1efe0033714bc35719c5 +1f535f5d034b2ac0e568fef3494d6853f827ad1c59551f78a9894fe634233733 +264dda46242a930297449d5fb74da1c6f7ce7e0a4592a5e30a357fe04eb9622d +ed932efa0f7d26437f8dddfcb70e940cd9c42cdc4e852de4d7c12800128c7aa1 +6da086fb73167e54767d266fe80d9860b10a80065e970dd85873395e013bfcda +8dda430bad837cf356ebfe7271a00f92d4802ba85a2aa4f28f5fda02eff98338 +99563e2c59348f1cda5070499bee85ab8a72635aefcdda13c8454b83ebe010cf +b7f4586645360c412431e16a1bea0cc3b86f98fcd1a49ce7874f28338698d8ba +8ceceecc07521be40ee25297c5316d56756788b48e992d90d235ac49ca9854bf +69e9dd45dc1b86f0c790e2af06e6474bb415b4b747dc7982093ff5c5b2bc3d61 +0d32c3235e1fadb089955e003501b5df491ef54f1a4ca7320ba9f119b48b370e +4c40f67d061c8401dae61babb0253d1435797c36ba278a8ce56d1cedbff8f557 +1c8d4957ef656ccad323563daec41544fe6264a1bda714580f3a9d7ba97d21e0 +1c4642de078f3c01134e4abe61feb606c06dc112322521c830b88d251144dee1 +2367f2a6655220c19cb85753029cecb06c4bc284bacd88dff4d8e91ecbe0907e +f46df0ff842bac970fc821478578c83a8fee0f0c1cc08ca9bcf050595dec0305 +5ad89a12c41ab9773828961d358e1411877f13863a7be21cc76c73e26dc68674 +849081d472ea95c0b3891a8ec3ab3191e25b595807b272092a324b09c26fb0da +51a24a134668cffc7c27d9ced39689cc4e11d98438e624ac74447bb11c5aaadc +06a4a70caddaf2ee025abb13d41dadafe419da511f4c86f0d0f2b63fc439466d +7545665d11e598abc210a6fd3cf4623f2fac368e6cd102fb49efe52615a6c834 +ef45d865633cef7768a05b1abdd79b9102ce0eb1aef614c7c3a7d8eb99f4964a +dac915b37f8c9333398938473ffdaa1e05ff6d03d3be7bea384d503eb62310f4 +abaddf4531d841f38543b3acc2ff01b48f9f5d00b4ec9c2d253349570d09ac72 +13daac68642862161fe904098001c323a4029aec7a560c808b1b37951ab4f891 +f643348c888b2e75476d306107bea5437b49a67195ffb58bed36ea7e4a73f849 +cb1778ee4faa3202110ef0aa3c1a45d325bef6dee6d85c3c94f954eb726e56b2 +a757f8cd0f37cb51e980f5bc282c9d1ab1c43defc7f3fbb40e5b385a217f9d54 +f8461b6f8a8b894fd4b7bdc0abcda42a0dd9849bd5f960b12485c1e284622597 +cfcf171ba5f1209b7d081bc5aeaa77c84fdef58715cf2b7e935879220fa1c88d +167feaf0674f7d6e99943920438688edfbb2c7f031e0aee4b03f2843c369222a +c6fcaf5c357c28461cacf9da67723aa6704136a19b0615642fb7409c5c17e38d +e81f8eedd954de2f654c3f52711eb14ef1cd595c3d242eea6c3bb4b8e5518137 +d61ef56b2451012bf8ee777670644bcfef1c55f314e0ea97ea8fa049bec38bd0 +c1da39d750b6deba3f4a062a736ae34d9d035ebd8ee66e9ad3a7edbc1ff5fa3f +b3a06366e8d84f9da4c9bf85ec1b8aa8eceec3b95543f214c621ee6b2580ea62 +14cdb7403bdab40b2512c5b43f510b763fee6d8efc3f3d52efbd43f862c3e270 +0f95236f5fe00f99cc298898414505efe544c524e5fe5fbd8b407d3330abea64 +bd2f7cafba11581f495da52700e5eef89b7136337e466ab06ee9572320c03a74 +96ccf99eda56ded7a74e6a121ac28a5474efd5967681229f9f2275621cda99d5 +fd2a9951cff7a9c0c80433c2c420a19eb628ae7bf1d63a13a00c64798144473a +8a9748e009f07add863ddc530e2b9b6714ce11f5a889c4a3ccf517125b34a16d +d44cdde2e095ccc3d4aeb91baf6bd1cd9a9a7c0b8405f9ef036c8a7290a79af2 +483122a32eac4d7db5e051792243ef0baf140b960d863bdad66a0b13697a3583 +2eb26c12c45001dc956e57cffefa80cf29d3985319b460bd9ed288017d6d7d96 +5375d950c2ac0e336844af01d419cfdb7637d7feb548512037adf8d2c6880c56 +41c96df8b72b3c9693ded032102eef5c7d354772d577e949d061e9b631f9a2c3 +b3b4b5b931253a87de003d18b39ebd49982afda4021c4c7de7f4082bab04d188 +b4a8281c93d067a5b8c59f4f3161e542dc9175689bc883cffd3f8dd7cb634c66 +65df43b14305f2a7de1846e988d4a197d493e98444e396031ed2fc7efcbd2137 +8bac05ffebb73c22a2f65a8f7e7aaec07ddc16ae3cd0a7b74e4a34e04ea25832 +5c77277f4d6ad20b03a69d2ab042ecc9d56da536ff00ea5a9d49829b4a817a89 +d191231663b36f07c88f4e17a401972629a3c9166f23e76242ca607fb130a322 +0282c1df92347a6397870d0997f78e7cb6045ce4d692fc7fb73ccdde1ee2a76f +de5e0be0b53e7d50df9937b3e47b885a5d1cce0021a2f37f6fe71b9ac1f5aab7 +8438ad4b63db524e5c95ef084e5460b1649f834d2f0897c99ea20230cf01bba0 +86bc1cf5454368b92ce2a667adf2d0296fff7fc9350c11bd1c56c893efd6384b +b51ba5049f7d61cc53d15d59313c9ce0b6946ea47d58758fe044798ffe59aca5 +52cc6b33e70cdba0cd2868d8f90e1d8e15c203f5a536945b9e13997af7ed0d21 +3678f3a22111b83e3b1fe13f3549d633c4a11042822fd741d81f0a539b892048 +86af58bf6dbf37da19ee089635c0a841b659689a0ec64e77a26534a9954e8f97 +0dfd89c14925f44746f457b8486ce1c01ad9112f6fbe959e17df36ff563f863b +77b639918e7ff45cef74e7ccddde43a1dd1ca35e2aafbba0f7c673dbd5e77359 +f3091d0577b5201deaf460a40d636720308f7e74a2d8eeeb2be2fa5f97cfbb73 +7eac82262c8f68c068c882b747e02bf1be690fd499dfc52e83ff74e95fd90fca +c2539fcb4fea2efdb1b7459f3598115adfa5caffa1e91556d76b4d471aef8225 +078fcba6851efa72d466f69b711ff9c792d9a66d440cc9f8679cee61e675a531 +f02383579b57ed826bf8c736bcf9580ddaf8bcda9ffed72854aa4d46ab6301c5 +9f3c861dcb2ccbe23cf03c9d32f1e17186b42bc48c34471c0c6cd6b3c0a1109d +a6e29228dd2332906303f863d6b3fda19db1a3c8a282c0800148d87bf5e19cfe +2d995e8e79109d184e85f42d7875676026c2cb25d48dd5abcc90595338fb5149 +c28386d491a5fdccf9510419bb25314e110e51e2a2fcfb6890c821e7b2c0a4db +8c38b32c9ac7190ca6694e1e7c0da40022e3e9a02445e70aea54ea0869a0dc01 +c9638a580ee3aebbba0a5f7146e47275d8d19c05d3a8bb3e236933cd46d826b0 +b9140369eedc9161975cc979fa619e4e205e5952956ed40c96e62d58242b9af6 +b125909927019728e88900edd66d5e1bdc83917b127452b64647e5d996f19a55 +27eb31611d11b5a263f7aba36162ea771407b3c30f481e0231dd45a13c3af447 +9a2748b5e9a68bae4b941476297d30eefa33c549ff8a9be6a0897751513bc969 +f9d628737b27e0df9c982486c3d404fa76d46348545825ae42b2b34a2bb88239 +45de832c5d70ec379aada04dd165d1c548ec9279d3fc35c5af4bbd22e78935c3 +52d29df5428ca3db30f9960dee0d90595f611638ef969202ced1e0990dfd9545 +4caa9ff4f81dd8ccf860e7cc2918e537160512bde802930d1380db5cc1d75da3 +bf1bf8ec7e8526bdc9d7b349f74d5d4eb4ca2b75ee96c456d84dc108fb76aacd +e28d980c5e2b70e373ae0dc6016738d13e2dcd62275c5814d040fa8bd3c75519 +533f8756be1d7b4e7b5a0eebb7a07b7a629a67a05b7427185cb3669a2d4078d3 +1a64a5e51b9dd78c91c57ca0fc99736563dec32d9243e4b0560369006fa5f016 +6a1d5f6b4f459ff9f26eea409a7f01a130017235be79396ab49204b1292549be +f080e33f6c5dae599da7e10b8b2c14b328a9af3f1092f2699373c8de5a4c0e74 +f0153f258f594281958e6b0425f94ac679f55d1fd30ec729f9544dfe176bec84 +b9552bcc1e51485dbc28710da11eb5ed97e0881a9dd289ee62185c8ddbc1da4e +15403b21c9121226a27f89e7c077f70f431f51006ec1c6c0035f8c6a035c98ad +02b5b24943bf3ab0659643c1eaad8a905aa8b60c74b717bb07993dbc0275a6e3 +1c8198bc9c979e7278e68ff1d45ba6b5b6709bff19a82f62b950522b97079a04 +6a0bfdbf8a5e7884754dcfc0d668963eff411bec6eb79a7ad5552d2b0a00984d +a11fa065f1f61f868706a799eba2407d19e2c0a9143327150df96c76fbfd2a7a +2c3b9593a86b1a910a501c9b8d3fb1ab055ad955e46ca843a7b01437de753fbf +668f0640f48b01464fd93c70dce16c707524f5d92f8b46538066281179ed96d7 +ad90a93589b4afe272455de68769433643249e5fd6fdd0142c00fc5baae53953 +688eb5ab8f254ceb31b6823c6fb4bba84c24a342c7d373d8c34853b3440ba1a1 +33208adce88477a8d40953b322d9079be118dabb96e6bd913b36da29657e8eeb +f8115a1b958fe276baa599d951a8bb118f6317c3c5550000aee5487a5eb8a8bc +3d4dfc40c0ab2b136b4013c1cc7dd1ff12375e759acb607ec8e5fbf792eede95 +75030761cb3f55f39727acc17ca9eaad7ccb1f30fe8aac0299d8f24995f38bb7 +df73b5a24f178df4dc47c3f8c36b8f219b519e73e88cd883ac1a2e1c05cd0fd4 +b3f42fb4e188f1d4cc59338a21760f538cea557c3be1f0535589d451a1db49f6 +c4237fac6bb6881247866621b8441a08f3b41212cb25cd8f9d24f4b635065b5d +7b145b7994e8aaeb5558086d9991f61bdaa61e5e1a1f8ce9f2801491b5df289c +83cb3b3708d13b1e4e54b5248710ba3efd3fdd3f1b5eb3178d232732a89c488b +0dbd7be61768e4e716cbd33e40c4249b381d563609076305d01b84418055dc0c +500cd05774a3216b487adb5abf1325fe8f3fad0feb4a4911b5c9f85078bdf7f0 +046e76facdd7058a348c93743db1b893a8fa5335975ec840c6f1d8112d387368 +fb4a49b58b5fedf3dcf916c176775f64453061d319fba56f578ed6775b432e5a +22e45dbd549f8f8d94068210c562e9165f53a8842ed2a4957fcbab7b45be9968 +ffc7dcd86f34c56205296b41a02e29cfe8ab520ce8b1d430b98431f8642f4f61 +f8ca767edccd21e8cf56aa31cf258e40c26060be7e1816719ce13866059b74ca +4985beca84b1272a67b7c2785a2d7441cece3fd6c3d7fc934e45bdf3f9825e70 +a09c50fde8178aca4bf3065baf8bfe56e7c8b9eebc12458ab6fd3b17e00c56eb +9b987bef1945cda4966dad88b436d6c2018128362221aafc8db5b68ee41f053d +41a2ee43af09ca218404987ee75ee5af9078fdbf25727b153c6b2f3f5dff99f6 +4a560e22c006f2a9155795ad0f04cfc271405c0656050b73b07d4dc5aa7cd1de +04d660433f8c890a814e683100f3cc8e5805d0925f9a9e3c42805a03e6b4a36f +b24bf27ebecde1a71433710bcac9553b5ea9c1c002af96c2cdb832f1719605ab +3444e08bc2d09b93b262075de09ff0c8777251e2d4526c979e205bb039a8a047 +eea89443e674cad4c415dcb5f652b438575b0c33f125dda22a4a81fe36011b3c +a216f4df946f27235301b2e3febbdc989dd99071da245026f359bd7e4b59cdc9 +f17e20b36bc5ce9720d0d939c4362743ba45c4555833b23f035063acdcd096be +491be1e6c8f1104be90aafd8f096f5534e9ed876b66d602ed5985aba0536674e +8e9be9693396b0533854a53c5bbd47c7168657d1964389b03b024b810f962ec7 +85b45e9181bb5a72a66faf4a931e4bc27a89cceb99e892f1fd1c9ced8b776fde +7d10f22d2c115ac2962dd092cf457a40025c75be8fb7116c9b6a95fd46ee9342 +beaf298ecea3a2e9faa9feb748f627cd46f97c574a345b737116c5d83da24049 +36cbf593ac8db5a927448625b29bd3f415a5583b323811142e1ebb8e7cd28d4c +a7520e9925bce7700b42c7773aed3dfae56f8b6de5bdf63ae03408234499a54b +06c5707fd408f1507c79596bf4d1b51cbb39e8eec0ad206744767cd7cc326ed6 +ee6adb001486f606e9a194c99a62cf8cf822a557d99808136f278d01538f57e5 +46dc1c828977f768029fdf0bdde44bb7487a47e6c9e9af22abacdea5f07356d8 +e2d2747d50ed4b62d0af82cf15790af2bf6dfa7a3e576c0eebe561fb00f516bc +e4879a2d1430baf8bea6f80e62fb48d7b9eec09e583c72a3bf7a5876e450d787 +665e056217d513cae06838de78523e7dbb07fbfcc5e4554ecf153d9a41e7b8cf +4829c36eea5f7dd0f8fcf2edf6f590e98831c14c3a2f373b8e293cd701348304 +e82ab2c79a7bd896e0e87fbcdf0b57d341b763a29a97340a7677dec853e0f36d +c9890df20d3227e6f78dc9fe43b440a1111fd2ab46e11cb935f2e9a634614cdb +d7b276536221b4358135ce5e3f7122f299e3e41db28550bec51800ca701252a8 +12c79c875a912d44341f779fc73831f207f11a0876d870e8ed35c80ae9fc66ec +ec033859d8eefd57e5cde2422d604c50bd33b07973d899f20a228ecfa6f62725 +1770d01208c35e476911614aed6a6edb5e1d33a8195c804dd64a742cb5ed275e +3451a4ede401fbd7e6a506362d7160802e28bd923a05efd1cb46c888e526e789 +6d30507262e858d7416dd6378d8af77c1948f0b411bce1a268dcd34300f4ec9b +44d974b070ae95c982f4a9cdc72639afe6b876b7b72ebdd33dd58c8080166665 +34b0b230c0de68bc37b137f39fb33fbb6ce7fe301281e72c9fc2cbd06b100680 +8db8d1a0db74f1b6688942f8fd627e8072bba21cf4848648b8e3efb238baaf86 +a1240d6c584933d4f8de2d0d3bfebfc3adc78d63231a51c00a95db0d8235684b +e0fc996ba9cdeb4b29655c0c85546e17c14411a15961f5fbb3f989f7f5f8aa52 +ed04834fdaf8d436f3749ca77af0dd96384c19f3ac8dfdfe3b0c68ff66bebd53 +e125398fafabe2e5da03048b910ce12de3671f532055a59e2ac45bc1481b1153 +dca16444e7da02aacf3931ebf9a4ebc11a3ba8949cb89f8649db794863a18053 +37afac7462c2baf81f8c19a65d5b79a8fdfda9e0e701e7a8b40e2721f1fd3e07 +7a55c56e81b7208e67bb9c37d86bd5f97f948cf9841746f9fae1ba07ee153239 +e5dded042c0ecab6afeefcfc21246ddf69fbe3a6ece49dec01f3f047f03c77a2 +2bab3f2cab81d5f9d52be82b1342fff93d14b810a6f0bd0465cb387aa51c0a2d +c968523bae049ccbb1107ed7ec99bd0974581602998ce7f099ea1ab7eb15b0a5 +df13e0972e9e5446ea13d886b20e17a404eaf6f5e4ed42d838ecb067cae8971d +4f7326149cece1d12653988308f4e6d57f499e3da26e005d203b755b7366dfbb +9fbdf4acc5e5d03551a3a959313a10f2a2c6bce51f890344138db1e9a654fea7 +ec525a76e5c361d26c1f2bd1edf8c9813365d174a09c5ac26d3fe23d9e35b0ba +f0e5c494e741482d5fda5eee920f93c5a9d3adb33cf2c11a0ba4759196a4dea8 +0697e06274dd59e1a5464b4062a3687f7d3da144a0ff165956c449879809a832 +fe96a9c818802897b59fe9068c14f2e0b8a090adac46f02a49b2583b0940415b +deecb1e16d170c891e208d3546784901ce2668f827364e72f123edc4572c5238 +697ba73c8b5a8ed9f2a723ad53eb070500d85f41014cb97106634f980ee0b12d +d2f2b08faa39f33ac1a17fcedbbd8ab38a11f9cf9669b3739381bfc1513f75f9 +fe28fa2fe28f15e55b93311c2bda8843e0ac6dee81afbf2eafef57b51601edd0 +762e993525994f47fe6c4856a6e085fc39a6d1958910096be529463ad466ccc4 +c0102f56e43338f66dadda74c977445e9ecd7354950973280bdd8f7c41431fc1 +3013ad46a372bec10d3fea3b36ae5e50d717022e742a0fb0cafcae5f09384d03 +8170148e5d12bbd05811c45d42f65d85acf667e40c4c0f8ef4be09eb9031396f +44db51a701771031bd7e84aae5231a4b256b06a70b2a42238b9f837c7d75543b +ceb716d7192820552381885584f494c4665a70985a5ae6d96a316b37e60bfe33 +8100221a73178f3e89eb2f5ae2159a57217701bc70dcfcd2b41b1e0990361c44 +ca87e98d9e805bfff3dc6551e69e3053ed19fa7210356edfb92e575a2af5a501 +0b77740efdea460b07d98b09d54593f1f51742d7e089287d10fbd28f99cebe61 +61259c5895440ea711034f7ebdc8adfd0fe4bb00cfed4c886654fc81d5c1a84f +445bac364df75a38b2d7f1eca270603c6bb6fba3a860a0749bf1fbd6a68f9245 +e8d0a97c507d251e14581f56f820d9f0bb3d0ad5bb7f8f4431deb023912f9fa4 +adc8fc3a27610d7ac94d808eed9b7f815cf594240204e26733d2410f8573f904 +a822ea37da29c27589161e7866bb2bda80e121f235f469bbfd99d15c5ff289bb +04a491f51552d679e9821226548aeedacf049c36257137cc14c66412fe755c61 +079ee68fac45b787c679fa60d57d9b7ab18bd72e77150d61891bfe50bd704263 +90b928d99accbd618929b56ef904478608ea4edfbe39d6d2b66855dc5d52277d +d7bc5cac9c5f87c2094e726d6ca12ca65fd7be8ad560d8960a305d64bf6f340e +4ded6220c6942f58492b1153d7e0890753c782b2591dbbed35f53e7638281ca3 +1e4927d1e0f67bb9229888755af9e9482fb9947bedf7ab9bdb6b66d6703c14cc +ec5c4a6b03d10c95aa67a4fb95a913ddedca98b373525af4920e2c6d171957f8 +ab621def2efc9bc8f434edbb12d3ad0a791f72de8ef6d5edcfc67699d4fdc3ec +2140946d1c013b4b95eac0a05c16ddb3e5e486dcd6b23068f8cce0dc449db812 +dde0c65a169213903d064ca3615f34b0fe92dbf1e380d54c80e2c52df69c9c9b +bc9be08b0b1dcb0720615fcbca3326e14fbec3bc280f80dff17797d98c51b761 +0021ac86c40196fc165cd50a666c97c533e6597abb8fc58028df700a9f1b77c3 +b5d7861a6b5323f2eaa60f80193273219b7d51d26a1502d9a42b88a3ff1df36b +04e59b502bcd1886fb516e0095a819699e21bdb138694497d3b65d913a0ed011 +de8d8f130b29502bec3394c5a97faa613ea136e6869b8b0ea3e1b29bd1a47a78 +00d2b22b6998a7cdb59b8a732ef128f42b0808f18cd59b79d71dd8ead279da8f +d99d1ed0b029244c1ae60e2bbe925d3b9f0a3455627cc65825103708cb2e54d6 +415929456b25fcfc8ae9e6f8f8f5a3d91a5003252cbb5a67d5aaa2d2668b52b1 +5541b25d6cef8eb1a651b8949f0ecd1ba8b47efabac2bc415795df676edc725d +9b40ce147ad05140a8b82d7939e58090b793cb73a53dcf728e4c1df3275cb6d6 +c29939dfd53aab6da8588e79af11bdd4602c5628c0f16d547eae72a654298a26 +f280dfe5b266019e2ddca06230f2e1fa70d96ba8c0636bf2bd05aeb9a4be30a8 +2c59b81d1e9db328c613d0871257bf64bd0e4950d3fe0e4840d3ee8f86438707 +ba2ba50158a358a6d360e3f362846e0a6c871c026f5ffbe658bb1f0b83e0630b +de26b797a9361ca0bdfa68844dfb5834696a566719d1b648a2c3c54e4cb507db +6548415e0f89a6f7975be174d890df4bae8ff4e8d552d6bac3659227402dd033 +c41c2a03b284543a54b570bf9569b6900306586a300dcb937924c6c967603798 +27a4868e920a81de9bfe71f5c0dd625e1542098c2f35269b13a310362372465c +ff2d506b129521e85a2602086216efb73d5c309ca284b20b15bb63f1a2d8c7da +344c2beb08d11433144fccc2772fc6f6199a312f13f59308a4b6711647aa7395 +8b3873b02afbeb5df225e1fbc5efe2c41b38013ebc4225ea3f32f50ed36cbb2d +18fd6863252aaa55eb365c73afe5183e32329c3928bbb7176147c8410c478963 +3385275944595e1ce1c1aa1234b92cbe6b1f529015460aacbe2975a03075fd1a +c01d1cbe86db25b5b1dfcf66b1e3147485b0bb1ab0e256bf40a642469943160e +65c2015cb1ec8679f9d6065f3e45633a56ff8c7606915b4544d1160209db0c5a +bbed24a6ed41fe7bf757dda08b5691a851b833785dfaba2b869b448322040fb5 +568b435df91db90f7ad0fb90d5d9b4cc6def653ebe975877e28c81a14d3320a7 +ce16c86afae21d8fda9e0b64ef7534529b86f5565e45d569068066d2a9c7ead1 +913e0b1eb0ee7d90b7ac0e30573cd4c0e25e12f6fc87e924c6f267ff5e31e1be +ac2ddde6ed8962c249e4355335ce8ec1481c1447813f2e18ccebe52ea774be09 +73d35230bf345028709c15a49977813b34bf6a299a1f8d4bdbfce7a69fd4de85 +bbe7ecadc4b7e7d30742a567a4ede550851055ac68f85df78ce665bb90c058d0 +243f0f0459853a3a54bc75bd3d3ef4d775e72397a49aa8760b3086f6e7a72184 +fb010de922a325f102668f4857a8122af2f1d76d6017b242e6bade87919f897b +0d8d190939273706c5b2f6c73d6da73526d153e6d58dd1dc93800913795d0895 +0e80eecc36770e23196cab5bf081313c03d86581de394871627a6ae67c2870a8 +995cf6864a28cc3a9d82c7c7ad4f1609148f0266f15eb697b559469c56511e9a +8b9b054283e089fcb7831d7ce527a1fbbb58996fcd5aaf6a1d3fcd2dac910a39 +14c5b91a3bbb1ec6e219938a1e099cc72ec44b1a33bd6dc746c7227c522b061f +4f20d9828a7edec67439e2d8a2e9d8e0b0e38aa8dd310a2572aea0f30b75b0d3 +92196088312828a405f41d398b7e49afaf42f46a93b710fdb83fb50d52ce70ff +4c89859bf389749528907bfddbf85e9ff13448f1f52a72c78f3ff4fe0e3625dc +c3417d0f4ab3a8b46641111a842b9eef2fef3df9ce6eb126eb1285502a7a8487 +6bd77a65a1d60164a3d27421e5d0c2b924b2e7a73fa7aca104f8090954094b79 +7b874fe174a874fe777d48cd30ba10edf3675858644fe7e888f54bd5ab4fe80e +d704e7779c22682a7ec6772cd0dde2ee311381b633f7eecc5ee66f06f1b53852 +ab3d9b4567447335874824ef294eb60b243d06edab62ea112f489030faf3ce9e +465eeb4ce45d24c2fcbe8db96af45f65c062efb712eaae31ffb7c8eb5ac968f6 +fe5b5f5aa3a2651aa69439b3c1c50b168c815c8ccf62eb689ffc325292b52036 +abed83079f3d5a5477d8156a4d94ea455cdb64eddbd93059658c42befa801079 +922f47d7498e7bab40d66731e843bce78a8bbb212299a4f9b7fb8bdbc51f7d36 +de8e9646fcfe4f5a8deaf5e4a893ccef06c87c791631f04728285f701a0c6285 +9909e06dc6a732e3cde85c291081a1c5957b2c9a39859abb6ca9d68c1e00ecf3 +937a145f0304716cffa2bba32ffa6cb5bedd36de1c6c03a50a21cdef5ee9e853 +d44f7d749d4687c8082f49eb148a114e7f5443615c43353c74c459b1673dd2c3 +6fe869b17d83953157671c1a6025ee6f326d7f8f3f7f1bb08140c6a018ec6c60 +a3b9a1b7885ba69d6c0501f5a232646fefc3a8e108e82a956fbaca56778c04e5 +528f2c1b0cae1056a1f70d8c0cad7f47a30d75aa875a5db35e0a0474e4e9145e +de645f2684f9c43d083688366c368b6a0376b7d6999b68c0fc11eb0a44c5ad22 +6efad1e2dd663f2003afb159cc321d2a9edc7293ffb7531386d39ae045e4bf16 +5c983d13074006f675a33ba6794158c6ad278bd035bff1f9acf6185b9d7a1c58 +656e9d8f71e4bce077aeb33889cb6bad99a99e8296d97e81ea18cc2c7cf7cd00 +9e6b43fd39f9f0c3144997005d7ddcdb3bbd64af92bd78c6cf47eb1b088705d8 +d564e61b494621148344a091deeccd997e43793d3f4613b7e06fa660a7be4902 +7eb18862afa358b74bb004473a46db2098290aeb616bbc42e57e45f8e65a4e29 +fc5841a8db23fc57de8918aebe5680a4850f92249a837855c2d72c14767f929f +5b5fd1b7048bca4897e02fe879a1a9430a877bc058b386995ddf0e8df17b1465 +ded4aae22b045bfa6deeb82da843efe78b28ffa06d936e174acd3980c9722ae7 +5f6a12139bc9380b924bed4e16e30596b9119ff7bf3accc871b9bdbf27dba0f0 +12109dd8de5f06839fbca58904b1113239f9c6b9e735e3c0771b8ef2cead7dbe +7ea10bd1058e36868598d5245894577187acb79aab0eb4875424951915410ed6 +846123cb02f04ff614664339caac3d2e0a0b1f0bd090983cfdf60e302f005af1 +c960f579dde942f2e40b20bced7823b5ab210742a69bda0f0e698e1551eeb6d9 +354e5019378c4e7d96cd82ad379398911d92650d69e13ca7982dd821a1c5655e +db367005d077c288835abb40c7c2276e6d81f587367d3b0e70c4623352d5e327 +190fc6168a57c4771c15a7d272903a80e395cd0c87b288e748e52eac36b6e801 +f9e253c799476886deb040a4fb0d699e4d9f5931ae14e40232219f8fe55693cd +7e981ee9ad6af81b6b893151cf26abc3c94d1720a01183b9254c6b592dcefb36 +caa02641010f59fb8593e2ed0f770a89e3387029f63c0a9c4ead1af94fdeefe4 +88888888885788a49e6d6d65a41f81f18fea043e74e6f2611d4fe7abeb2f1188 +a21d6161f3a480950627a73a4a616821f1b5242bf254a80e248c819f8710e967 +f95ea0508b9f21d93191966fe39d3f24d1f912758e9a94f0bf756d1f5c69a529 +b1143e6e3d6b5a5280781620c9b15ad715091743bc7de4c0ab310f25d02086d4 +92d89fe23bb0f6bacf6aafb223b11ef92d19ecf13fa40b520e6ae6d3cabc7c09 +9e9dbeef98833556ca38c34d5d29f94d160e893a0bdf8a379369b239ec918933 +e56cb6f41c6991c63da50b9b5138ff31fc96ef5b23b16e69791abb9b66dcfc50 +c3a4d8229277ee5bceaf32309e3b4c7ec0a009346cd96ebeb7f9eec6ec347da5 +429b50c6e459512838b71bb6682b547df3fcf0752f7dfa0d005f40e2582d2bf3 +2f0ada73e7579b6430f45bb5d709225d7693ed037777eadb615845bf42dbc487 +1f915acd578fbc7fee5079b76e1dd31b5748b4985dd7878b2de452bc5d3caaa9 +bfe0b8b5efcec8652e78040172b838b8b3a2904731591edba7e90d915ec3eb4e +17373fef0a0014bbf38918157428a4bf11736288c6e7841b35664cefbddfc5d4 +41a407203331ce35f1f61c1ef3f885e8b8e6eb7c2e044b7d58c214dfce100871 +2578d2daa8e07914e47f852b4873804db065e98f57d64a2bdc4774cf4ecaddbd +92154cb01b0745d9aea6eb9e419824b1fca60886f9684a2c1dd948751c1cc687 +2c3249d410841a41599d42d5bb9016b4d9dc94fec46e2c2398f9e13df8cc2eb2 +e409e3d99ce2007ae1beb5621584caeaacf84d8388dd01ad0fe2b17524b79551 +3844f46b5b7fee24773142097b3dc80c397014cc2dedf024454b9193fb1e2d0d +93ff5438847545f0cff55e7299f10e70e1445252bb2e188a6ff7186595588dd5 +a0b90885689dd8aeea0979ea1ecfc36d8c3a4bc43894e40d3992ccdebf9216f3 +7b420b54d47c42a3970ae4cd54bd60559753b87273e7aa2bfde8c1b32a7d398f +b2c198399dfad27359243b38818087740e5a34954e17d45af1240227fd602d8f +b96b0fe632d8dcaaea82f128e5dee2eb9f1fe8b6d6dc8322cf5c5efcad147e63 +8313c1e235440b1f0566e1ffd62ddaeac071c3c38668502df5f94580fb0274f5 +0206e2b63011ec2d38f063d7e0e0e158e2d40539e7d791bf2f00edbd3442157e +f21102e542fd69d236eeef717817e9b3adc914bee13004e9772077d25b28ade5 +bfdaf4f2f9a1f5f3ca04b5ec2eada866a0cd2eca7d596367c449fed1baa0df0f +9b5ede6660da2f6ea9e1aaf5887ecf6b5b0aed9b7852531d2f83f07b5f914842 +f5c76bdac030ae05b9946295c24ad60e22e0f608f0b9114cc7e60a282725ab9c +827ae2d8af0ea350e9093cffdb2e21244e1bd645ea48f21023fc085a67577755 +106241e45d9da92da84ae874ca22f9a79bf29e928913c4c9cd52428a3da6a2f9 +3b172eed6acbea718b20e244cdcff248833dcf7b3a7c72aec6285764c60ae547 +a32865113460c88561d6f6a338ad1075c60a983107c8b00340df9c010b7a5561 +29b4f96ec2fb7f49cb1f234994f924906bee5d551d353c3612ff306e880a67c8 +bcd852857df67606afb7e0dded9a2dc7c2459a02378bbbb5067d93d827050711 +1f92af0b79d272b01fab43bd7de646d74945411045a64a5720d7ab0c06a21a38 +4288427bcfbc9d2e5fed3b53c3d3322bef1e42652d7cf68f24a5a66bbe201728 +65922ca1f6ba733cb240e6113e5896d164119b631e6fa9ff0f9759d55043b234 +1985b7c612cbb1e0ef96a07c3618274fa21a43a0813e692a5f95d46864a09b4e +325272eda32504f899194b2729578ab8a8c0e3a6582102b683bddd1ae7f1200b +985ca0ea62cc60c2e075662589c1c703444c6611fa8940c7e7df7de25f403ea3 +6ab48f7739ebf60ecc92f9e794b19afde47e11e4148fe324fdec500d8d397c8c +3eacddd6205d57c2d2ab08091cc2400d531cb3a68db09c288bf04dabfd242c98 +3d29c741dc75924bd5cce6b3854fde27419fb6b3cfb675e2b18d08b0013508a0 +8044950f2e5fd7052d528bdd0a29a6304aed1c90bbebaaca4a9cb29d697b6a7d +9a5ced0d22af618cc0d9c7caf039f4f0d3b70c9f414bd30e90222f65b32ff0b0 +9398548d6cf8f00c360e369701a26d8b1707f1fd1677c740a94c93dffd9e0533 +7f0bb4fe2b411bfae5c97991e120f502bc1a3728e9ebabb9adfe4fa2634904bf +36667f7cc0f220a4c8d0bc503abe00f8dff1839c22d77d4a525004fc38f7fee9 +834b926aae5bd04d788507b3272efe068f608ec4752c58d5c3e15e814fdf5a91 +905beea766571e433d5b41512ba86c11c5e504a430be567842ea1e974c12f6e5 +11aa75f3659d8dfab95b5edfc753604392f4e66772da292c681118092938ad01 +60e5386bfece072856f5ce14db38704422ca9b5300fc495309bf583f836d0a37 +b28792a3d802c6e4c5ab62a0abe4e5127e7223ca18342d4271c7169dc92f7678 +33230041003c45c856ae716ffd13401bb29d282db14e1f235166ac245ddad050 +c61011693530095d135921adfc03ea8bf166a4861a4a3b69f02d9b4bade06f0f +85079a3049884bc1ea3c0a1e28beb44dfce94823a60cf1f91544244a68b7f0ca +ca57407f3a2cfc4fb8def48fb2bf92dc9963f890971d196d1221e0cc67650fa6 +a4a5ae1072104778400c31469fe3dfcc9520e6e232b70bead411dc50f1b74141 +3e281890426350ed7ba18d327586d9d1e9060105453862b31c62c6e7aee1e42d +5f93716704a9b26815597f15ec07886b31219dc669140875e366b03eafb2204f +d4b91a6e34cdda9bee28142e877a18c47e6e2bf6a84cdafae98a1547a8585909 +95745c745ffa8fb927dd0e8db59f22874e87e97857c6aa8a5ed22a063a645fa1 +44b7955116fe11a335928193273b9477568cddc61bbb8ceb2bed56a26df5465c +066ecb7173be7b0504b13655960a6e548572647c3c2a016ca484f198dbd3b55f +424ddf9a4ecf90863639ea953b32a44fed84b68d92bf1beaa46e3c3564e09c1c +6d285e739a38ad7615e2d478486aca552737d05feab9224878f6e514af47131c +70c44c5e7d3229d900b74729c9e5d390ef86357773df55d31e1ef70795616403 +6eb31cfe7278617d86f08905bbe4b2d59bcb078776d59c71cae092d9e5334b66 +696fd560f01fd40d6e9f41f3662ded09af9967c6f84c228fb5ab4677d1d0d37e +2303588dfaab0e6e3c5d916b5ecb9ae48577b89fe0647dd34cb360d5d4c961e5 +84e29d085579fcb08a73c3efe9d6b81cd9aa1e12a714c42a602d426af6aa8dff +928c3fdd312b2b4a51da8d78d4c6e47b5b166a2bd97d6b148b12c182a5b8aee1 +56d8ff8caede8645437d2bde4f732340d265d7192120700bddd8cd1c62940a7e +2c4cbc2059a994f5a18ba3625e5100783fcefc82b5216fe338df0c2068487d62 +7aed9dfc3e59496f50b20db4e2712c792af9a9ca381498d548e25e759fe82fcf +4e0b8bf2fc44fd3fff3662d5544d73cb23358ffc981e675d04eaa7a31e9ade9a +c1942e58a1e33e8c339fe8192e475de3edbde70ad7d615c0c77c39af8960a6cb +a5cabbaefa3e764ded60f74344014d496bb07a56f535a6cc25dfbbfd9f6d110f +666550865ed723e6fa63a862160a016be5e964668913b2fc94a66986a3973a26 +3d4308c35827e01e087d212fb538df11db0453a818ebe196c52ab15ee3cb4634 +e13327f3e617fcd80183997b742b35429e050839104c6a9762001d3728ad52a5 +29af127ae40c801dbd710e50ad16ea39133ca90ddfa5a858bdc8c816f8c838b3 +583093930eaeaf2119529d11da64a39099ba6d031fc7ad49ffd7418b10a76137 +343e5d6656fd67b87977efa9619e5ccd8a3624a9bf6fb1d7b211ab3f53265a0f +0a930f20c108af089e864f6290a3c9b8db6dab092b3a77583b34bb4ff4b35c1e +9e72d7d6b746f56748150add0a102c889f4557aa6f560845d96dda2da90e9b49 +c58e7945c47e03c5c856e2c33c2dbc41e748e9b8fbba53cf187caf375d5e4dfe +936bd887c8436f5a08f6676754e2510ae99a324c6f0fc6942be813ca2ae2034e +97aaa42dc27ee11d9928d800f9cb5e94fe1238d98fb2fa4d3c3312cfa79ececd +1b416c76516b3e7d4fce69d49992a298596d9c9c8b33925272a3c643b5b7cdff +1537e2b4cdeba15f41e670f69fb69f1c340b0a87c0369ec55fe298f1f4e227da +ccaa887b0b663a0e894790351accbfa84c871a5bc66c2fd8e4d87813baa7694c +d8b802b8d6bebe65b61029903df259dfa474d9fab2b8cf5d22ace39fa4f41380 +b96b044f5062673e302050fd72f7a6e18bddfb71997dc5ee39a2d7af72afe432 +ab730d42a6fd3fe234157f7d60c05ac073d086ccc096aaed6f398bb8338f7ddc +e6fff6c382176d23bab447d71ce87e7542303551de9f22d3e3566cfad438e9ca +3fdda48a52e50717c1ba37d4063481b3cffb83979a306452a658203f67c128ed +7e7f03108e7c6ecacb9b0b901530c7d97856948c3bbabad7df89948f3b9225e0 +94c3a0c2aa97fe8a9ec6d542f02dd31849c1bdcc0b65aee644c7a69d8cda87ce +4e21f32c2d60be8f71c8167760b3c96ab9b83e4bef4a2b9bf23f2439f4c030f8 +68e2bcf484e504c0c0761139336942b41617a4d39688cc5719e30554271f165d +fba4d5357789106ed6700e8227951ee21f3d2170147b10600865865687c112ca +6e735436a7832b7db6b22c6693e727bfea45d55c50af9e310b4e791a1dd5707b +04ec682351566181c37baaf2084820dc35b4622e47df28cf2382572ca22757aa +da82ea51506e8abd2be0890a5010e6d727fc5a0bf6f401997832ffb93861fe50 +0698d8461a2d58713a457d210365f96c4f31a0ba2ee9592d07adfc15fd64b297 +ace8e863d1501b656c6431d66be68484feb97b54b937fe5c976aa6978f2973a9 +10455a7811e789df84b0333f34235436273583641528f71a15aa561edfa776ad +dea52eb1777e41b812657b91b2e078b8b2cc39b3948b0366bca3a45821902481 +4d0f0aebc30fe56f95e4c601e35c4a97c190f22ae0f79b8d487e6007e0fa654c +3345def35b72521392a1273b815d5cb23e8262a1620c3915ab0e220bda0e7f06 +44a0b3c6d936fa99beb853fa979eb14f13e8a86969412f614771d389d992c377 +9477e5d0c988e6ae558e9815ee1f08992619dcf71694e0b09faec7901697ad7d +63c378ae5da00acfcf8777e4961f1e19d10c001a4ffebe6f6787082eaf069ccb +32103cd2adb186b1334ec133321a219006fe06b72ecf0668cbcc93dbbe8b1dd9 +5a92c524070ddea51b1f4d4dd01b2570b2cfbf80746fdfbedbc91da79d697f2b +14149db3e7b8d54265b09bc84cc6220d91cef8644acb4d9226e62d4e95648264 +1cbd72230995f87cf262ce4a85a69c737e863b3d67cb69c666a0295bec5d07f5 +0824dab906585a541bdf7c03c89216cf208f294fccfadef718940be43e8fdb61 +cc2158a7d7c4d7a2136d6beeb01a3149a93cafcf5b13f07d4df811a23023899c +76dc5c0790e7273d3862741ab570682e42cfec9b101636b7d5df76b504bdabea +7dc8fe0ef386d661da6b0d23859c2499cd48fe272e6a278d855d1cd10dccf1fe +4d0d75e7381aec27db8239c2771d05e9f689c14b9e13db6ad6273060ea9caedb +e4631e59174556759bef2f3be57eb9c87a7bc6e994d44ab4e3cd94b6c2aecaaf +6f7288ced692f20b9eea4c638c5368846a279ddf857992b41e70ec9c1357f8da +28f57a1a7d15228447f929cc8a79d0bfc646c237800afc675bdcc3c3bd441582 +29364198c66e564a01e3f0a4a9fa5fd63ed5a483fddca42ca07b7686af4f00c7 +27bb364c98a7970af301b85bfc1d924b71797d293c82aea7b85300b6d0a90fb6 +fb879acfc730286f50655151ac90157edd412e5f3b906bd58751923cdee29a10 +d4ce7496aa10faf9190362da54a9649c5703b9ba17d71e234164fab84a287e93 +219cb1f05a1ae32013f6f22bcda51bdfd651753206d28218e498ab2495ea6de2 +7fd9b54a030996c69367f9f7f10e398b583da4edcfc8a4e9318fbd4dd38f08b3 +7056db093774100e34a60c899481c7e9b998954699c6136540659ee985947e89 +bae5e289f1709552a03e09283a9c4e44e400c52de6923491b4983e3a97eb7087 +dc7b72e68da13906f0ed524aab9f068b035fa74019d7153753f63e44225195ea +7c65f762a6ff57cccf6fa22bf064d135f7b6f0c6aac77b7c07911429cc9bbcd4 +090c0fff85c93a288d6dd82f59e6c0fe2503d6c8ef1991979399663e91557b26 +a26cbd16957e7bf2003f239c83c1a0446b65d05d1f4b537f062839887e424403 +251ed73de6e73758a85cc8b6b3bf11fbeb220e9e12cdd314c3878557b32b55f6 +b2360a80475d21fe84ee6f25489fc57176a5f39c562468a7dc1984a51e7a3a1a +905323ac61e70424d7817d6eec5ed5bc69eb0c4864fcea199bfe43e92dfde7cd +b26911c3b64a8b8f5fcf3c63aa19817999b98e8dd2ca7f89e7e5e5cc2aa92f92 +5c458a84e32063db9a7ba4557fc358b25d59a2b06e02ad37b770b05d08fda2d9 +1b4b0f9e0e1d08e59b714da5f7017e2acab322b5e1bbe305d2140a4605e41a12 +2f9d0ef3524be3779edede8fa49490facf3063714c7fdd37d9d35e9bf152f225 +147e170895a5ec27a86805396aaf3d02b2854217910236a5954293a6e87bb807 +65026ddc0389973e0c1a0972b27af7847fd26356464c13fb1107c0643b1ac57f +ea5dea997456f8ecfc98116acbea8941285522120791482583b12d4836f7c8a3 +ae1939b4f3fbb1157fca1fd940b68ff3cc432bac82dbd159447d5b7dfe1d4555 +89413b80b074fc928d5482269e438739b6a0211654bc31833c1d12e357318737 +a77b8ffe21b109c6cf566471e23e9b55be6ce6219ff3357a61bbc427527b3b8e +6ac22da0da8430f8aabe88cd3af122c4272279a792bf50bcae6961f2eb687b5d +97287725ff79c89566b653ba298f5695ce2e546f181552a9c0b689f63596dace +f67e904fff8901b685fd3884b1c9c5e214bdf7cb903464556a1aab8d14577270 +6e36349972a9832f6b21ef94c6c3324bb39ccaba91c5c18a9e2d86fa1a72052b +5756e6e7176df6d4c88be11e2ac21a3afc28541c21ac1b30a81f1ef9b8ad0ff7 +51591ff11f01bce595cc72478a78306b38371cb4875c6b0d33686ca1a8a52393 +4d5ce2c71e1cb7ae27a5c55822d9a29958fe6b6b45718394ec039b34469eb237 +d5d43779b9d3a18d24cbb59b250bfc954a5ba8f45a251914c03c899bd2695158 +442f0a0d6f857ff5eb31f6e71794000d20ec84c4edbcabd43b2aba9d06ace8f7 +7a71c865f58582726278042ebe35dc0a8ba36fba5fcdacbd32765d5322c6e766 +9e6312c96f4a73fd2ffbe01c1396afc6f03ea79a1f72f6e84816d2b260311c7e +5159517cfe58976df87b1031e572f6e5f0bb0d4ac1453451375c7949e1092e59 +01621278091be7d31c85b5bb3856a89644f52a6df9d7c2b258c2b71fc718cba1 +3f3644ded2186553edb1e031a4ebd6ee27f570a8d78f8820be60667467fd377e +94122dac0ac444750c48d6980f3b350a639df8c1479f493441c5f294f79e31ff +90ce05c0ebe5f8698c015ba486096f15a63cfc153ad3331ef538fb7f266e1329 +5e6d959647e53ca568496ab87e3fea7b9a364f3544379f5b360dd6d9b575d9f3 +c9e3b833d06ea15893a606063aed85321d878535f3c9587d94bbe53d7444fa1c +7781e60cf6ad4305526988985fc285e0d7b1d3fc2b77245ecdde0b9348574acf +f4d129d2f34ef150b71c967d92b3fb4f69bb5b8ac02fbc6d7c86c0c5828b3fac +da62a7c0a5f6d2d7388e55381c6c923c01b690c5c77895022127c0426e2cc14e +7c27bc0d5f7bb5ce209ece9d9ed6fb7ea45443fa4c505b30055e6046dd4f2d92 +0a735872c8a99e84003ed853e8819233ae7c91ed6bd23942d379e2918be246ab +371ffc72b9d103e6be0835075059f2246a5e360130fcb374917f2ceb53f86e8c +bc67ef729905f32b6ccae01625a43757b88e5ccca2c6a9d02a553808977aa165 +898c2dc8e72fac821b8ff1bda7103a5a7b32818b63f991b6a6626680d7635396 +8b88e9902112622df0e4b01a51b741c0d81017810d0c981a6cf0651237efabb9 +79dceb83aa2eabbb13ff2481bddc5c454129605c5be4d1da181c71880821f1d0 +85c91c2edb6aea350889523c736ab0d3cd5ff4ae6a94e9516784c9968a1e653b +01269a7ee8dccd5fb374251a7a299a23c227ed142564503dd5c10942ce0065af +240edac60a22ef8b8fca52340bffc12ee15bfa81b74fb386e62878253ae30c75 +567ee35327374472acaa8b4223ec39d19d5b97e4bd168cc6ba25951c7b84af8b +9f486ebbd5f48a4f6240bda2b0df8aebe6735388f11f248c0b5dbb463f0b28f4 +1ebf246ac44ef2482a18656625005144be425436bed2c033c4b2061ac5e5ae63 +749721101012951998888e444d7424a8231cae2ea75bbf5784c95bdfd12810f2 +922e60a25fb0b5f77824f19aba23052e8e4e4bd329aa3003a5372ac3382b7832 +0e5aacff67c94420d3fdb5b04d324fadf73d6e4fcc8e3498fa752dc02aca7e01 +b3d575178e077c1ae72a7997e6ab114da2d018f2a448aa4cc2d16f9f55439319 +7af08f934eb0c65f9b5eb703533b83728895c770bbc267bcc915a2de319074a7 +7a5c400f951400f682eafec5246ea878f7a806d4102e3e20839ebc819a63db1e +258dd927855bc24cd89620d2799f84f4c4b7fd565ed78c0db486786d9ce769d3 +c685209916e58ab1377d531a6395edd26eb65c4eb2c8d0647ba452322ae93161 +fc56257a21eec97161f442b1c3a71e3e0e5514bc511e0a5cc2f01573f3bf2b05 +f109b76ac6f1ef52e2d0ca3e1c408a74643729cf41e294f87f1bbb285055296b +ce90c1a446bdc7360ca1b51677eb66cb8de05e825152f6b79863fe10295dd785 +13b95d31a11056e9cab30f3dfdad49c12762a8c095c94b59bb688a79041a28b1 +1f68a97c6267a26c608e64d37fdb3be6844c75ba8d94c860beac5011fed3227b +3e70de0b0cab2d104a2c2d5a68b277f03f6b94e1362aab6f3d9575d3361142b3 +73939fdfa8c8bad14c374e25fcffb8ca2a2dab2779f9e505a5b6c0f1b73f3bc6 +324e5bd3bedb728774c033194183a904ed80ef21c4e44aaa22593b728cac32bf +013ac4b904839fbb04c588f3da320e8f7accab6673a1a93646511faf653c240a +3cba96b655ddc470cea3c92564889027d32e71e8552c9d0a38d7d1221676d484 +0d6fc0af665e0f5fb1e1999c6bd6bf6e3eea3cb4f24a22cb8b12a0363d234748 +654292a190d016beac84ff2d287b046ce2810ed5617568896c1302e255a8b68f +f0be0be33490fdcb1cf9087acdb7ff9f7054741cab5c49c67637a5541142d9d4 +9ac193c94cedabb91b2c12f8fc078846f527822acd162a3603e04d8d76a9e3e4 +b432754b67b15f67efaab14c6297822427bde405bd9337e3aa1e9d028f42e47c +b8e31441067386e00dcf4228c349d0b330b0a763229ffe12967783c3e7fa68f7 +e00d7629fd8cb0fa5a80048300d94cab55746a9c21965f19a595d11b947f6b5d +570fd7be2192b237e9f1a8b9a82e7f48b5f81fbe8c971d7a5b063b550f8eb77f +615760ca663a9287a9f172e8945a093e9b4b102e9e43d0ebc61547df63c5d1ca +ab5775873b697ca3178b24d672faec5e84b1283a6da7e61391837a75605dd27d +6d26ce0dc023798f08749c399d01a1aa5540431564fe34aa87fd38e8951153d7 +a35f7e003d937932767c798c71602c5178ce5d0151fcfec2043787ab43ead2d9 +fa6ce6472e5b1e17736e3d1d21e31e282cc87c853076f988595583c171f78203 +2495ca7686ac191a02aadbdeb4901982126d859600fa3be9d0c22edb1b6a846a +ab908c64d8073538d18dbc5ee2bdc05691f359cf0d698a39fe59680f70a64439 +bfdc99612c4b5c897c478d4c3f9959feba23f908f2a132d32e53ab2130efcbab +d3af98f45a1a5f7cdc1d178e79b53c0caba4520ac60464a0d1f858034318c943 +69217171c28c4bd2a677622822c4c73458b6004656e5eadaec56bf2b6a5a3d42 +9466e7a4264414d732858f94df6964af60e9300eb62e47ceed322dd1c7759fad +96038a4907310d8f239d2746cab6b1c2f90e9d8f76c1d708d9a2f4c48bdc1b96 +0aba11501987b8d65a438a57b63936f44db152fd9164ed841fce268189f65fb8 +45b16beee12f2b2acc88425bb2362c9372fc0b03f5b49766a00891858bef4e8c +1fe9bf4d6be3f75394e0e9243ef224fb750caec44ad73e866328683301536e9b +a06bcf91beee19d07ec3e3a96279924b58951f25827514b2e9bbebf807149891 +92df326014cd3bbe09b8394ba3cd6ba71b96826610015a9df9080dca02519bce +7e62866c76782d9e3685873a08caab233901150dc58696b800e26f2b51b83b1c +53d512987f7992387f8b29a6b4636948641542b38b0f8be161d7e8e99f636a8e +8111eaa217065485499e6dbbd2a6387e360e84947e891c9146395ba4494af0d9 +a86b42c3fe5e4d6a2e35d49a64d539edab0b85aa327c66928ed6a6b902167ee8 +d03fb5d8424c9270a05ed1dd6b8a94bc8dfffa364dcaa94b552a50f25bdf3fdc +880f6862e2a492524b0b92f5768fcaca1a1f47db980288d8220523779ebf17cb +06b3e25ed585e703b959d91517a79a1937f368789a5006e41496adc614d1da11 +273f1e67ab7753fd60b2ce477a46124e3a7d250659fa862d06a57c5db7945922 +296a822931db48fd38c0f4a02e3a54cbdf16fae0eb6bd2f320926eb5a9eabce8 +76db03fec95073190cd0faa9e5fb862e50d478cbc2581c4ea5de20f82abcf8ed +333460e67a985a8e352f6d95d01dedba8e555e621072883660a7ae954d0d90f8 +18c52d7d20358f70be2f4261e541cb645a3071bd069201ee7122f12fa42baf95 +4ce0e30a7def90afb5d886e0f569b9b02100a5ad34ae157badaeac2c4504c1d6 +f1dd35ab80bdec905888defc11730bdf87e8da0a244fc004f700a47d1f683f39 +e295121aa3a1f036c197a456a8de1aa3581aa1dd3521ed03c0d0b10e4d19a30c +e41776595c5c14ab808f4815ea159be866830fa2d3cbd757104dfd642bee62a0 +1d158dbfce3f931d82dc844bf0d5cbe44fce6ce61676990f45e143e53a684e95 +5078ccef8445b6d9106d30c5a1eef4ed506cd5e5ffe7eea95b32c784bd0649bd +c0fee26f156fc702d9942c4e5fe236b20d0e51d51458c75c60c4b19e5e724602 +818d3ac49eb25ee39f830dc820ac905920ed58657f0bef5f19defe7b6ce62925 +77dedbbcae12e53bc1cf70bd381128216c1d8aa8b4f38865863ba940dd332c55 +3cbab9d026c045b5322f17c0fb7d6575433343c63b79615d8bccc8837992b4dd +674a0b96abee633e9de9e0115f1684d9d29193f97070f8cb495f5eb3efa0cd5a +eab8db7690440407dc4799da14c672db575b138b74f7f398a52a6d84ea6d94d5 +6f39f32d889e918be8be7a598e7ead09562e29ffabe476fc4a745d922977de11 +eb641b987daad963c609477823bed50abe7b3f5ab3ba5c4110f3f4651f300fb6 +dfc4c728a6708d3e19ba894b79271ba453b7eb48fdd21d8f33ee224970b7e647 +0d11b55375880cf6a0b77037ceeb53f81c56baae3de5cacaf4223f4b1a248ecf +e59470cf6ca60d8205310cbd27d6bc278d15957985b753bfa89d78ddad2cf5fe +b12afba595f181efa46b9dcf029ddc9fbbaf364c421bd782af5d8b7c463296ee +cac2d97e43ffa089e71994bb8565690c348a7769d0cc2752f9d4822e49a90bfe +41f47f0caa2fb5f85cbea544e1d9517d9acab02ad06fea3dbc50bfe59f973abb +0dd54cd79fc5907513a86f9e11a7ff9c5dc5699d12513659f57212d689db27bd +bfef5590ab7c6294e078de66521406eaf3d885da1fd8b62057dd0d0b4a4bc885 +3989993a95ce9a49383a5e4b1a568a1153d0c6863f086335884796f82aaeb37a +399167639f299bc1fd6511bf903e7e124e8e071833ca207b5a5cdfd960b78f2e +0b4f3b254b36c0833b5f7607b452965e33088d672cface855bb3593e9e4d099d +30aadcb268ac39b67b347b9e1867129b2d6ff834a22541f15e55724935a76665 +d14ec7c4d565b5679e996fe49e0b416432ea7e6760665bc233c7a65f69621b0a +eeb2c0c2b94144cfdacb3cb7ec7d072542eeef13052258f2f4642e2c2008f6d3 +5aeba9bb553914e2d06b4f5230354b04167c01c41129c4dbdcb23f5643277ffa +2c450f3efbd18910d0cd9917c7a6ac4bed5a03da76cf0bab40ec61a113fdcccf +49c5c6a823d0ebbed69782c18ddc2fd18fb06b428682223f2de490ce9b37c1ba +2bff20008caad03ecf8cc9fc863174c6ee00679f8adcf3a806b2c188e6a7c841 +79acac470c7608cf3eb70ccc80aae09760370e022f5fe2dc560f5a21ad29917c +e570cb7aabc88811c2ceedf37ce64b814253abc5f5cef9ecc88ae9e6789a9c2d +ec2a9dbd481b72ba4d8297ce9d739a1a640ffdeedf3d90c855b5951b25a941db +d590fc1919a3cc857b7d5ced21ff20f22dde9dc996cbb33d404d69bd8b26405c +73075f0ca16293e46dcc5c28b8fd764790ab98c9ba60c4f11b4c90e13cadc760 +21d58cf7235903a0f65ee22cc10ab07c86df62e006da7985d86f9b08dcc0753c +c799c8e22fa4b7c700730ecc48cf22504e0a704ab51ab5b4082e9b75bed526dd +716108281f794bceb4706ac207fe8820b3d6ea90139b7ee5e490a2aa7d7ad09a +387942cfd03c71cab6eec51712cab7bd8a452b9e9ee7fcef78cc433f37077a8b +effd174ac956c3bda653da0d21d84fa5a1bc0a12513632a69c70717002159629 +7d2ec1dae96bab0f1d9e7c1f757c7e99b2ae358623a5dd38d1942f48ecef6c1a +1b70043130898636433abd0135213ed6891a07ebdcf405b093bfbab82bdcb692 +65057a08d2fe86abeb4f708358307e242197ac864c0502bff550d2b8724869de +93bba324688af65b727f0c9c08f0fb45e2a2389b269939b1414f4818b071c598 +5432a8729521fccbc677edc93f2adbc205672eaddb4a288fdf7bc30e37529293 +26d7f755d0ab0e344ff40c4a3214108cc4f3d0f2c3f1e6605e24cc0b505bece0 +25ce6b8d39d02471c43a804569a72015e81f3400170c1b8f5418e6938cd60b74 +34845a0f5eca756d7768ee2f03186ec4d73d86f9ebeaaf96abddf8bb733641b6 +6b1a7204b857bb6070bb8f65d70494af8b5f99275205a876011b9ec202d57cae +9de08224dd9c48619a6573fcdc089303e1dbcb1c51e5f48aa2b83a7710b5b172 +e6fc148621c47f1de74d21b96ba4387b5238235b63d975837471518b092ac0a9 +193a0215c1b05bf7304586b46515f55b37337c504dc6ffd970cc52de77065837 +7fdb1dfbf8cecf5c08f3194f5a9151724a3ee636d23de380bfda4a7b65e732ef +b26b387fd7a69d9d8b9d6b9976e388e303bcb8efa24a0e1aa083ab502633da5a +08d4df73176549d2f8cb9bec5b81e1ef879b45fbe88843fccb89240e2bd65748 +93d28416e2975a5bd74cfdeebf5fa99c99da629f5fa1a52f2823c812ec210cd8 +d4d2a0998deb280e16a5d3bc2da81faf848c96e50e66533c8bf3580faffd064f +1233ed9f8f30791501502f2e809024ec76cc4ca099551c961c122812d3eca50a +439537dc007ccb4ca56f28237d926cba587ade7dcdc10428b1b499fae1f5820f +0a49d4a429e822a7ac896fdb5d5730d64f10b351d1b89379535b76afb409aba4 +aed5b85f7d70ea3127e3226304758bdae4a6c5cf8cab5e42403daaa73d9e6472 +f4c0760415b05394cc84d78b116d57fef6c5c0c879805c4d0a436d652e03f819 +e57cfe4df777bbe26d3c5464de1fae5bd31e334f200f69becd9e4a75306e3911 +7ce8142cbd3c2d269525f6fa1a5c21b80963349f0c4d21c630b7c010b57cb35e +c0f4f29d42cc481e5963868f4e877f1613e4329ea7bdfa0d8adadaf56ab77a14 +62d154bda74b04bbb2936983b0d0841c0e2417ce136609d10f1b9ad36233ae02 +d784bc7c9953087a33a594dba9797f6bbb6edf127df4d0b7bb6bc55595d3b8c1 +14cf2bc8acbf8a87b007d327f23f632ae89cabf9c5263675aaac8152c797f1ef +0fefa630628a364ec08b79ad9b69dc21aee9e38eef87e3e758ed8c352967e1d7 +5546b3fe9b0593e4103235efa1fe527ea8cc146d137d3c1a7a935596a0584f5a +5b597fbb7be25b9726e4b7b9e7b3c29ea50520b511c5d614e3998355c16c301c +2688fe682397f0eb42af8a9c2d0f969357cf61d634df8a2284b1bf60ca48f8cd +b34c17fd313dc469dc02303021f5d9be00dd81da13ecc8d379b4f4a37532f624 +34ba2ea5942bc877f9f64e1fb28561c7e97aa59de91d2cd0ecedfd9ca6a07caf +3ac5ef8d2fc91e2a576877409968b14335b979bc0b7dfa223f60833159cef366 +3ed0855164d4b07ace5cb2122cbb622448645286db80ea1dbf6b1d1e2216b09e +c0c43e9ab2e1e0c65c2c9b371868803945d27f97a620b96045b222af31fc5c6a +ccf1926acbea367696b7a022846708d18411c9aec983ef741d98e68b03b29eb8 +6e073224626983fd621175b5c129f072ce5337239a7abf2fb23f40f30389df84 +cd23db06e4fdbd08caaea9e27755c596c84efdc4fb34ca96cb44f8b8e3344aac +888888888c8a04ed1c3ab7c90dcbe92706c5600bb68540782d7fdc04ba8b5a5b +888888888a1b4a9809f4d6dc1d76998b2fdfeb9f7ffecc79130d912755a9c43e +888888888fc1c9e3d6ac59ee1ad2e91c8c15f793618ce82149c345b28f2a3293 +888888888f30ec079fb1a6bd8c16ddb4c62086c1c402b8c08a3f675cba6e347d +888888888aa3b6f4e0a4e6a03150ca866a4fa21a05d410486bde5cb3c9ab6c65 +888888888ba94c9dd03415f10dc69d2bc4575f5397189dd4192564d447efc4d6 +888888888e3849d979e2913c1f59f5c5f005f4abb4fc2627d109fa114d187de6 +888888888d9362bba9ca565dd1b0ee1355f3998ab7012e2ca6dbd318bf8f14c2 +888888888f33c637336c00bea8468f3b65340ff8ddb0b8ed81a6679dc1bae169 +888888888cf8d56583b6787aee64bd55fdaca3ef71f7b648f61a2abd84a9d3ae +75fd2874bcd618dba9c3156936c48adc4c5c1c82a029a04386b55f50eef33922 +b409463ec901fd7e2ea5ba95abc75c538d48729c0c1f6ad4ab3b1f746e14ba71 +a9d0df2cdcf1e2cba59e46767732ef987a4698a500b9034a87e31682dd993e73 +bf1090e4a89922d92224e63b2ed79b24268cf92be4a21bc6ea7bc3afc180926f +e211d8b51ea9de542cb343ff475cc3a2cff4f61c8453b3b3ff38b5ac78fd0230 +0711c7798de5eb55ee04fc5a0336e70fb2553dc21b857c27f10228dc041dcf89 +f52f6fdfc0b7cc8c49e9ba70889a7c45f64cc9ed1fe3b978f6cb6a7d72c3c3c5 +2c472f7d38dfeaf8bb8fad365daefe593f144f30b6913bb18fc4e0cef8feec46 +9b1d1eaf04a618ecf910da6b91c861319166b9aafc3058ffd24cd77c14f47e47 +68890c9b9dc3efedb81b3d2c5d4a66c8adfc0348bc567c724a3a27d34505af72 +d948bf014eba7d2db637a5b7e22123c7597ceee18c7640df8d9acafcbfb7c773 +b99dfdf05957d075cb84953d0211da38c1e8901cff792f39e25f63962ed45392 +f59aff6c192159047d7e64bd2bc62f425752d0a37a35a2b708289b4d419ad773 +3ac1100e7fd86cd4a642eb98501e46ec849fe33f6ad48d2e9e4f87ea66d99d0d +1a3d8bf7369b05c9e2662b8f38e58d7d80a1a9083e52b292f9d4a876a8891815 +8369c7f07b9e909c1152679abc04e036e59a26eb7312b1f6fe2b8a050555d087 +cdcf7bfbd085f9656a7a4e5562758849a97e245de07bebb369f752d426b341cd +f8783e0f2d218808b07c3ddb3e1f2408511cbd13e4135c2a0f09cfcd6c14fb42 +aa55d2da04ca33101ce4cede60d9bfd5a346e0f561f146fa0150056e69118fd9 +90ff83f08b27f364e5e046ca664c562525b0a2f2cade2992a3c8d1430280d248 +0fbc97ea33417d675744066d45fe70e7136ccca645bf88a3c1dbff3745ccfaad +32e58de7c1d857c53e68d4b2c8de373123cf118c96c4251ccfd7e5db263444fa +16718bad1cbc744cf045988158af9e2ffa02eded398cc08b201f6a39a8a20f51 +add41ddecdda826244d2df981768186914ba33f995ed6eb7dcca3c6f5bbb8f55 +3ec180732ad5bb6bd4b5ab413b2597932883fb7575c3d3f9148dcd52f0a19993 +a2c0d75488be52e1d8fb855e1669d18323ec7a2abc11357fdb76d652250a21cb +833c306a673b542a8e42de6fda9502652bed824d2205c91093c819040c763db3 +ae388b0eb6afa50ada6d7fd8cb40dc3c8b433dc863544111a792efd8d66c1e60 +f480d78c920ee279f3b50f5fb06212b1b1ac62d7e21afae7bc6b2982bee2cca2 +8ecd0fbe1a0bc6f32ebda1b99459ff5a9e82ff2733ef5f8b0420755659ccd109 +84d34071f00c189ded6b7b7bdeb6c4d48c5085733efc51cf3a49013ac083f3bd +38c79d5d70a78e7076a6a99c4650ec04dd72df1666ebde0f81b377bc2ae5bf3e +307147f0bea68f85bc5e75feb9a44364b29d9e3bda55f2c7d64cd691d2d957d7 +edb1f2ee720cf5e8ad49c8e980f82aa291e60ce2f0796a2f9362baad3dc05ab7 +4d71284351fdf86cbd880fa5f144643876b1043253d8c7c228dd830a16ddc0ff \ No newline at end of file diff --git a/run.sh b/run.sh index 721aeb2..130f464 100644 --- a/run.sh +++ b/run.sh @@ -1 +1,3 @@ -# Update this file to run your own code \ No newline at end of file +# Update this file to run your own code + +cargo run \ No newline at end of file diff --git a/solution-rust/Cargo.lock b/solution-rust/Cargo.lock new file mode 100644 index 0000000..d51cdae --- /dev/null +++ b/solution-rust/Cargo.lock @@ -0,0 +1,584 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "arrayref" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" + +[[package]] +name = "autocfg" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1fdabc7756949593fe60f30ec81974b613357de856987752631dea1e3394c80" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base58" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6107fe1be6682a68940da878d9e9f5e90ca5745b3dec9fd1bb393c8777d4f581" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "byteorder" +version = "1.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" + +[[package]] +name = "cc" +version = "1.0.95" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d32a725bc159af97c3e629873bb9f88fb8cf8a4867175f76dc987815ea07c83b" + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "const-oid" +version = "0.9.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2459377285ad874054d797f3ccebf984978aa39129f6eafde5cdc8315b612f8" + +[[package]] +name = "cpufeatures" +version = "0.2.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "53fe5e26ff1b7aef8bca9c6080520cfb8d9333c7568e1829cef191a9723e5504" +dependencies = [ + "libc", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf1e6e5492f8f0830c37f301f6349e0dac8b2466e4fe89eef90e9eef906cd046" +dependencies = [ + "crypto-common", +] + +[[package]] +name = "crypto-bigint" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0dc92fb57ca44df6db8059111ab3af99a63d5d0f8375d9972e319a379c6bab76" +dependencies = [ + "generic-array", + "rand_core", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "typenum", +] + +[[package]] +name = "crypto-mac" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" +dependencies = [ + "generic-array", + "subtle", +] + +[[package]] +name = "der" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f55bf8e7b65898637379c1b74eb1551107c8294ed26d855ceb9fd1a09cfc9bc0" +dependencies = [ + "const-oid", + "zeroize", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" +dependencies = [ + "block-buffer 0.10.4", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "ecdsa" +version = "0.16.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee27f32b5c5292967d2d4a9d7f1e0b0aed2c15daded5a60300e4abb9d8020bca" +dependencies = [ + "der", + "digest 0.10.7", + "elliptic-curve", + "signature", +] + +[[package]] +name = "elliptic-curve" +version = "0.13.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b5e6043086bf7973472e0c7dff2142ea0b680d30e18d9cc40f267efbf222bd47" +dependencies = [ + "base16ct", + "crypto-bigint", + "digest 0.10.7", + "generic-array", + "rand_core", + "sec1", + "subtle", + "zeroize", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94b22e06ecb0110981051723910cbf0b5f5e09a2062dd7663334ee79a9d1286c" +dependencies = [ + "cfg-if", + "libc", + "wasi", +] + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hmac" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" +dependencies = [ + "crypto-mac", + "digest 0.9.0", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "hmac-drbg" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" +dependencies = [ + "digest 0.9.0", + "generic-array", + "hmac 0.8.1", +] + +[[package]] +name = "itoa" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49f1f14873335454500d59611f1cf4a4b0f786f9ac11f4312a78e4cf2566695b" + +[[package]] +name = "libc" +version = "0.2.153" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c198f91728a82281a64e1f4f9eeb25d82cb32a5de251c6bd1b5154d63a8e7bd" + +[[package]] +name = "libsecp256k1" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" +dependencies = [ + "arrayref", + "base64", + "digest 0.9.0", + "hmac-drbg", + "libsecp256k1-core", + "libsecp256k1-gen-ecmult", + "libsecp256k1-gen-genmult", + "rand", + "serde", + "sha2 0.9.9", + "typenum", +] + +[[package]] +name = "libsecp256k1-core" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" +dependencies = [ + "crunchy", + "digest 0.9.0", + "subtle", +] + +[[package]] +name = "libsecp256k1-gen-ecmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" +dependencies = [ + "libsecp256k1-core", +] + +[[package]] +name = "libsecp256k1-gen-genmult" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" +dependencies = [ + "libsecp256k1-core", +] + +[[package]] +name = "log" +version = "0.4.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90ed8c1e510134f979dbc4f070f87d4313098b704861a105fe34231c70a3901c" + +[[package]] +name = "num-bigint" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "608e7659b5c3d7cba262d894801b9ec9d00de989e8a82bd4bef91d08da45cdc0" +dependencies = [ + "autocfg", + "num-integer", + "num-traits", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", +] + +[[package]] +name = "num-traits" +version = "0.2.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da0df0e5185db44f69b44f26786fe401b6c293d1907744beaa7fa62b2e5a517a" +dependencies = [ + "autocfg", +] + +[[package]] +name = "opaque-debug" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "proc-macro2" +version = "1.0.81" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3d1597b0c024618f09a9c3b8655b7e430397a36d23fdafec26d6965e9eec3eba" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "quote" +version = "1.0.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fa76aaf39101c457836aec0ce2316dbdc3ab723cdda1c6bd4e6ad4208acaca7" +dependencies = [ + "proc-macro2", +] + +[[package]] +name = "rajat-solution" +version = "0.1.0" +dependencies = [ + "base58", + "byteorder", + "crypto", + "digest 0.10.7", + "ecdsa", + "hex", + "hmac 0.12.1", + "libsecp256k1", + "log", + "num-bigint", + "num-traits", + "rand", + "ripemd", + "secp256k1", + "serde", + "serde_json", + "sha2 0.10.8", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha", + "rand_core", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.7", +] + +[[package]] +name = "ryu" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e86697c916019a8588c99b5fac3cead74ec0b4b819707a682fd4d23fa0ce1ba1" + +[[package]] +name = "sec1" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3e97a565f76233a6003f9f5c54be1d9c5bdfa3eccfb189469f11ec4901c47dc" +dependencies = [ + "base16ct", + "der", + "generic-array", + "subtle", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e0cc0f1cf93f4969faf3ea1c7d8a9faed25918d96affa959720823dfe86d4f3" +dependencies = [ + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1433bd67156263443f14d603720b082dd3121779323fce20cba2aa07b874bc1b" +dependencies = [ + "cc", +] + +[[package]] +name = "serde" +version = "1.0.199" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c9f6e76df036c77cd94996771fb40db98187f096dd0b9af39c6c6e452ba966a" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde_derive" +version = "1.0.199" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11bd257a6541e141e42ca6d24ae26f7714887b47e89aa739099104c7e4d3b7fc" +dependencies = [ + "proc-macro2", + "quote", + "syn", +] + +[[package]] +name = "serde_json" +version = "1.0.116" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e17db7126d17feb94eb3fad46bf1a96b034e8aacbc2e775fe81505f8b0b2813" +dependencies = [ + "itoa", + "ryu", + "serde", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "793db75ad2bcafc3ffa7c68b215fee268f537982cd901d132f89c6343f3a3dc8" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + +[[package]] +name = "signature" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77549399552de45a898a580c1b41d445bf730df867cc44e6c0233bbc4b8329de" +dependencies = [ + "digest 0.10.7", + "rand_core", +] + +[[package]] +name = "subtle" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "81cdd64d312baedb58e21336b31bc043b77e01cc99033ce76ef539f78e965ebc" + +[[package]] +name = "syn" +version = "2.0.60" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "909518bc7b1c9b779f1bbf07f2929d35af9f0f37e47c6e9ef7f9dddc1e1821f3" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "typenum" +version = "1.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ff0bf0c66b8238c6f3b578df37d0b7848e55df8577b3f74f92a69acceeb825" + +[[package]] +name = "unicode-ident" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3354b9ac3fae1ff6755cb6db53683adb661634f67557942dea4facebec0fee4b" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "zeroize" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "525b4ec142c6b68a2d10f01f7bbf6755599ca3f81ea53b8431b7dd348f5fdb2d" diff --git a/solution-rust/Cargo.toml b/solution-rust/Cargo.toml new file mode 100644 index 0000000..ceac42f --- /dev/null +++ b/solution-rust/Cargo.toml @@ -0,0 +1,26 @@ +[package] +name = "rajat-solution" +version = "0.1.0" +authors = ["rajat "] +edition = "2018" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +ecdsa = {version = "0.16.9", features = ["der"] } +libsecp256k1 = "0.7.1" +secp256k1 = "0.29.0" +serde_json = "1.0.116" +sha2 = "0.10.8" +num-bigint = "0.4.4" +num-traits = "0.2.14" +crypto = "0.5.1" +digest = "0.10.7" +hex = "0.4.2" +base58 = "0.2.0" +rand = "0.8.4" +ripemd = "0.1.3" +hmac = "0.12.1" +byteorder = "1.4.3" +serde = "1.0" +log = "0.4.21" diff --git a/solution-rust/src/lib.rs b/solution-rust/src/lib.rs new file mode 100644 index 0000000..0554e50 --- /dev/null +++ b/solution-rust/src/lib.rs @@ -0,0 +1,1306 @@ +use core::panic; +use libsecp256k1::{verify, Message, PublicKey, Signature}; +use log; +use ripemd::Ripemd160; +use serde::Deserialize; +use sha2::{Digest, Sha256}; +use std::cmp::Ordering; +use std::collections::{BinaryHeap, HashMap, HashSet}; +use std::convert::TryInto; +use std::error::Error; +use std::fs; +use std::fs::write; +use std::time::{SystemTime, UNIX_EPOCH}; + +use num_bigint::BigUint; + + +/// Structs for deserializing the JSON files and necessary helper functions + +#[derive(Deserialize, Clone, PartialEq, Eq, Hash, Debug)] +struct Input { + txid: String, + vout: u32, + prevout: PrevOut, + scriptsig: String, + scriptsig_asm: String, + witness: Option>, + is_coinbase: bool, + sequence: u32, + inner_witnessscript_asm: Option, + inner_redeemscript_asm: Option, +} + + +#[derive(Deserialize, Clone, PartialEq, Eq, Hash, Debug)] +struct PrevOut { + scriptpubkey: String, + scriptpubkey_asm: String, + scriptpubkey_type: String, + scriptpubkey_address: Option, + value: u64, +} + +#[derive(Eq, PartialEq, Hash, Clone)] +struct TxNode { + txid: String, + fee: u64, + weight: u64, + tx: Transaction, +} + +#[derive(Deserialize, Clone, PartialEq, Eq, Hash, Debug)] +struct Transaction { + version: u32, + locktime: u32, + vin: Vec, + vout: Vec, +} + +#[derive(Deserialize, Clone, PartialEq, Eq, Hash, Debug)] +struct Output { + scriptpubkey: String, + scriptpubkey_asm: String, + scriptpubkey_type: String, + scriptpubkey_address: Option, + value: u64, +} + + + +/// Implement traits for TxNode to use it in BinaryHeap +/// We will use the fee/weight ratio to compare the TxNodes +impl Ord for TxNode { + fn cmp(&self, other: &Self) -> Ordering { + let self_ratio = self.fee as f64 / self.weight as f64; + let other_ratio = other.fee as f64 / other.weight as f64; + self_ratio + .partial_cmp(&other_ratio) + .unwrap_or(Ordering::Equal) + } +} + +impl PartialOrd for TxNode { + fn partial_cmp(&self, other: &Self) -> Option { + Some(self.cmp(other)) + } +} + +pub fn mine_bro() { + let block_height: u32 = 55; // this happens to be my roll number :) + let mut valid_tx_vector: Vec = Vec::new(); + let mut valid_wtxid: Vec> = Vec::new(); + let mut tx_to_tx_node: HashMap = HashMap::new(); + + let coinbase_in = "0000000000000000000000000000000000000000000000000000000000000000"; + let decoded_coinbase = hex::decode(coinbase_in).unwrap(); + valid_wtxid.push(decoded_coinbase); + + for entry in fs::read_dir("../mempool").unwrap() { + let tx: Transaction = + serde_json::from_str(&fs::read_to_string(entry.unwrap().path()).unwrap()).unwrap(); + + let (second_check, fee) = ip_op_check(tx.clone()); + + let third_check: bool = check_sig(tx.clone()); + + let fourth_check: bool = locktime_check(tx.clone(), block_height); + + let weight: u64 = weight_test(tx.clone()); + + if second_check && third_check && fourth_check { + let txid_str = txids_collect(tx.clone()); + let tx_node = TxNode { + txid: txid_str.clone(), + fee, + weight, + tx: tx.clone(), + }; + if txid_str == "e942daaa7f3776f1d640ade0106b181faa9a794708ab76b2e99604f26e4ed807" { + continue; + } + tx_to_tx_node.insert(tx.clone(), tx_node); + valid_tx_vector.push(tx.clone()); + } + } + + let mut all_ins: HashSet = HashSet::new(); + let mut all_outs: HashSet = HashSet::new(); + let mut scriptpubkey_to_tx: HashMap = HashMap::new(); + + for tx in valid_tx_vector.clone() { + let tx_clone = tx.clone(); + + for ins in tx.vin { + all_ins.insert(ins.prevout.scriptpubkey.clone()); + } + + for outs in tx.vout { + all_outs.insert(outs.scriptpubkey.clone()); + scriptpubkey_to_tx.insert(outs.scriptpubkey.clone(), tx_clone.clone()); + } + } + + let mut graph: HashMap> = HashMap::new(); + + for tx in valid_tx_vector { + let tx_clone = tx.clone(); + let curr_tx_node = tx_to_tx_node.get(&tx_clone).unwrap(); + + for ins in tx.vin { + if all_outs.contains(&ins.prevout.scriptpubkey.clone()) { + let parent_tx = scriptpubkey_to_tx.get(&ins.prevout.scriptpubkey).unwrap(); + let parent_tx_node = tx_to_tx_node.get(parent_tx).unwrap().clone(); + graph + .entry(parent_tx_node) + .or_insert_with(Vec::new) + .push(curr_tx_node.clone()); + } + } + graph.entry(curr_tx_node.clone()).or_insert_with(Vec::new); + } + + let mut heap = BinaryHeap::new(); + + for (node, children) in graph.iter() { + if children.is_empty() { + heap.push(node.clone()); + } + } + + let weight_maximum: u64 = 4_000_000; + let mut block_weight: u64 = 0; + let mut fees: u64 = 0; + let mut accepted_txs: Vec = Vec::new(); + let mut wtxid_strings = Vec::new(); + let mut i = 0; + while let Some(node) = heap.pop() { + if block_weight + node.weight <= weight_maximum { + block_weight += node.weight; + fees += node.fee; + accepted_txs.push(node.txid.clone()); + if i != 0 { + let wtxid = wtxid_get(node.tx.clone()); + wtxid_strings.push(node.txid.clone() + " " + &hex::encode(wtxid.clone())); + valid_wtxid.push(wtxid.clone()); + } + + if let Some(children) = graph.get(&node).cloned() { + for child in children { + let incomings = graph.get_mut(&child).unwrap(); + incomings.remove(0); + if incomings.is_empty() { + heap.push(tx_to_tx_node.get(&child.tx.clone()).unwrap().clone()); + } + } + } + } + i += 1; + } + let merkle_root = merkle_root_get(accepted_txs.clone()); + + let block_header = block_header_get(merkle_root); + + let merkle_root_wtxid = merkle_root_wtxid_get(&valid_wtxid.clone()); + let coinbase_transaction = coinbase_tx_get( + block_height, + fees, + 5_000_000_000, + merkle_root_wtxid.clone().to_vec(), + ); + + let mut blockdata: Vec = Vec::new(); + blockdata.push(block_header); + blockdata.push(coinbase_transaction); + blockdata.extend(accepted_txs); + + write_to_output_file(blockdata, "../output.txt").unwrap(); +} + + +fn locktime_check(tx: Transaction, block_height: u32) -> bool { + if tx.vin.iter().all(|input| input.sequence == 0xFFFFFFFF) { + return true; + } + + if tx.locktime < 500_000_000 { + if tx.locktime > block_height { + return false; + } + } else { + let current_time = SystemTime::now() + .duration_since(SystemTime::UNIX_EPOCH) + .expect("back time") + .as_secs() as u32; + if tx.locktime > current_time { + return false; + } + } + true +} + +fn write_to_output_file(block: Vec, filename: &str) -> Result<(), Box> { + let contents = block.join("\n"); + write(filename, contents)?; + Ok(()) +} + +fn weight_calc_right(non_witness: Vec, witness_and_markerflag: Vec) -> u64 { + (non_witness.len() as u64) * 4 + (witness_and_markerflag.len() as u64) +} + +fn block_header_get(merkle_root: [u8; 32]) -> String { + let mut nonce: u32 = 0; + let mut block_header: String = "".to_string(); + + let target = "0000ffff00000000000000000000000000000000000000000000000000000000"; + let target = hex::decode(target).unwrap(); + let target = BigUint::from_bytes_be(&target); + + loop { + let mut predigest: Vec = Vec::new(); + + let version: u32 = 0x00000004; + predigest.extend_from_slice(&version.to_le_bytes()); + + let prev_block_hash = vec![0u8; 32]; + predigest.extend_from_slice(&prev_block_hash); + + predigest.extend_from_slice(&merkle_root); + + let now = SystemTime::now(); + let since_the_epoch = now + .duration_since(UNIX_EPOCH) + .expect("reverse time!!!! bro!!!!"); + let time = since_the_epoch.as_secs() as u32; + predigest.extend_from_slice(&time.to_le_bytes()); + + let bits: u32 = 0xffff001f; + predigest.extend_from_slice(&bits.to_be_bytes()); + + predigest.extend_from_slice(&nonce.to_le_bytes()); + + let mut header_candidate = sha256_hash(&sha256_hash(&predigest)); + header_candidate.reverse(); + let header_for_calc = BigUint::from_bytes_be(&header_candidate); + if header_for_calc < target { + block_header = hex::encode(predigest); + break; + } + + nonce += 1; + } + + block_header +} + + + +fn coinbase_tx_get( + block_height: u32, + fees: u64, + block_reward: u64, + witness_root_hash: Vec, +) -> String { + let mut tx: Vec = Vec::new(); + + let version: u32 = 0x00000002; + tx.extend_from_slice(&version.to_le_bytes()); + + let marker: u8 = 0x00; + tx.push(marker); + let flag: u8 = 0x01; + tx.push(flag); + + let input: u8 = 0x01; + tx.push(input); + + let coinbase_input = "0000000000000000000000000000000000000000000000000000000000000000"; + let coinbase_input = hex::decode(coinbase_input).unwrap(); + tx.extend_from_slice(&coinbase_input); + + let output_value: u32 = 0xffffffff; + tx.extend_from_slice(&output_value.to_le_bytes()); + + let mut coinbase: Vec = Vec::new(); + let mut temp_first: Vec = Vec::new(); + + let height = block_height.to_le_bytes(); + let height_size = height.len() as u8; + temp_first.push(height_size); + temp_first.extend_from_slice(&height); + + coinbase.extend_from_slice(&temp_first); + + let mut temp_second: Vec = Vec::new(); + let random_data: u32 = 0x69966996; + temp_second.extend_from_slice(&random_data.to_le_bytes()); + coinbase.push(temp_second.len() as u8); + + coinbase.extend_from_slice(&temp_second); + + let coinbase_len = coinbase.len() as u64; + let coinbase_varint = varint_convert_bro(coinbase_len); + tx.extend_from_slice(&coinbase_varint[..]); + tx.extend_from_slice(&coinbase); + + let sequence: u32 = 0xffffffff; + tx.extend_from_slice(&sequence.to_le_bytes()); + + let output: u8 = 0x02; + tx.push(output); + + let output_value: u64 = fees + block_reward; + tx.extend_from_slice(&output_value.to_le_bytes()); + + let script_str = "6a026996"; + let script = hex::decode(script_str).unwrap(); + tx.push(script.len() as u8); + tx.extend_from_slice(&script); + + let output_value: u64 = 0x0000000000000000; + tx.extend_from_slice(&output_value.to_le_bytes()); + + let mut commit: Vec = Vec::new(); + let commit_data = "6a24aa21a9ed"; + let commit_data = hex::decode(commit_data).unwrap(); + commit.extend_from_slice(&commit_data); + + let mut script: Vec = Vec::new(); + script.extend_from_slice(&witness_root_hash); + + let witness_reserved_value = "0000000000000000000000000000000000000000000000000000000000000000"; + let witness_reserved_value = hex::decode(witness_reserved_value).unwrap(); + script.extend_from_slice(&witness_reserved_value[..]); + let hash = sha256_hash(&sha256_hash(&script)); + commit.extend_from_slice(&hash); + tx.push(commit.len() as u8); + tx.extend_from_slice(&commit); + + let witness: u8 = 0x01; + tx.push(witness); + + let witness_size: u8 = 0x20; + tx.push(witness_size); + + let witness_data = "0000000000000000000000000000000000000000000000000000000000000000"; + let witness_data = hex::decode(witness_data).unwrap(); + tx.extend_from_slice(&witness_data); + + let locktime: u32 = 0x00000000; + tx.extend_from_slice(&locktime.to_le_bytes()); + + hex::encode(tx) + +} + +fn merkle_root_get(mut accepted_txns: Vec) -> [u8; 32] { + let mut merkle_root: Vec<[u8; 32]> = Vec::new(); + let mut temp_array: Vec<[u8; 32]> = Vec::new(); + + if accepted_txns.len() % 2 == 1 { + accepted_txns.push(accepted_txns.last().unwrap().clone()); + } + + for tx in accepted_txns { + let txid = hex::decode(tx).unwrap(); + + let reversed_txid: Vec = txid.iter().rev().cloned().collect(); + + let rev_txid_in_bytes: [u8; 32] = match reversed_txid.try_into() { + Ok(arr) => arr, + Err(_) => panic!("Vec len 32 honi chahiye thi, but it was {}", txid.len()), + }; + + merkle_root.push(rev_txid_in_bytes.try_into().unwrap()); + } + + while merkle_root.len() > 1 { + if merkle_root.len() % 2 == 1 { + merkle_root.push(*merkle_root.last().unwrap()); + } + + temp_array.clear(); + for chunks in merkle_root.chunks(2) { + let mut combined = Vec::new(); + combined.extend_from_slice(&chunks[0]); + if let Some(second) = chunks.get(1) { + combined.extend_from_slice(second); + } + let hash = sha256_hash(&sha256_hash(&combined)); + temp_array.push(hash.try_into().unwrap()); + } + + merkle_root = temp_array.clone(); + } + + merkle_root[0] +} + +fn ip_op_check(tx: Transaction) -> (bool, u64) { + let mut inputs: u64 = 0; + let mut outputs: u64 = 0; + + for ins in tx.vin { + inputs += ins.prevout.value; + } + + for outs in tx.vout { + outputs += outs.value; + } + + (inputs >= outputs, inputs - outputs) +} + +fn check_sig(tx: Transaction) -> bool { + + // Now we will check for sigs for all typa txs + + for (index, ins) in tx.vin.iter().enumerate() { + match &*ins.prevout.scriptpubkey_type { + "v1_p2tr" => { + continue; + } + "v0_p2wpkh" => { + let sign_in_witness = ins.witness.clone().unwrap()[0].clone(); + let sign_to_bytes = hex::decode(sign_in_witness).unwrap(); + + let sign_to_verify = &sign_to_bytes[..sign_to_bytes.len() - 1]; + + let pubkey = ins.witness.clone().unwrap()[1].clone(); + let pubkey_in_bytes_vec = hex::decode(pubkey).unwrap(); + let pubkey_in_bytes: [u8; 33] = pubkey_in_bytes_vec.clone().try_into().unwrap(); + + let sighash = sign_to_bytes.last().cloned().unwrap(); + + let mut scriptcode: Vec = Vec::new(); + scriptcode.push(0x19); + scriptcode.push(0x76); + scriptcode.push(0xa9); + scriptcode.push(0x14); + let pub_hash = hash160(&pubkey_in_bytes_vec); + scriptcode.extend_from_slice(&pub_hash); + scriptcode.push(0x88); + scriptcode.push(0xac); + + let hash = commitment_hash_segwit_get_bro( + tx.clone(), + tx.version, + sighash as u32, + tx.locktime, + scriptcode, + ins.sequence, + ins.prevout.value, + ins.txid.clone(), + ins.vout, + ); + + let signature = Signature::parse_der(sign_to_verify).unwrap(); + let pubkey = PublicKey::parse_compressed(&pubkey_in_bytes).unwrap(); + let msg = Message::parse_slice(&hash).unwrap(); + + let ret = verify(&msg, &signature, &pubkey); + + if ret == false { + return false; + } + } + "v0_p2wsh" => { + let witness_len = ins.witness.clone().unwrap().len(); + + let mut signatures_vector: Vec> = Vec::new(); + let mut sighash_vector: HashMap, u32> = HashMap::new(); + let mut pubkey_vec: Vec<[u8; 33]> = Vec::new(); + let mut pubkey_hash_vec: Vec> = Vec::new(); + + for i in 0..(witness_len - 1) { + let witness_to_bytes = + hex::decode(ins.witness.clone().unwrap()[i].clone()).unwrap(); + + if witness_to_bytes.is_empty() { + continue; + } + + let sign_to_verify = witness_to_bytes[..witness_to_bytes.len() - 1].to_vec(); + let sighash = witness_to_bytes.last().cloned().unwrap(); + + signatures_vector.push(sign_to_verify.clone()); + sighash_vector.insert(sign_to_verify, sighash as u32); + } + + let pubkey_vec_in_string = ins.witness.clone().unwrap()[witness_len - 1].clone(); + let number_sign_req = pubkey_vec_in_string[0..2].to_string(); + let number_sign_req = u32::from_str_radix(&number_sign_req, 16).unwrap(); + if number_sign_req < 0x50 || number_sign_req > 0x60 { + return false; + } + let number_sign_req = number_sign_req - 0x50; + + if let Some(witness_script_asm) = &ins.inner_witnessscript_asm { + let parts: Vec<&str> = witness_script_asm.split("OP_PUSHBYTES_33 ").collect(); + for i in 1..parts.len() { + let pubkey_hex = parts[i].split_whitespace().next().unwrap(); + let pubkey_bytes = hex::decode(pubkey_hex).unwrap(); + let pubkey_in_bytes: [u8; 33] = pubkey_bytes.try_into().unwrap(); + pubkey_vec.push(pubkey_in_bytes); + } + } + for pubkey in pubkey_vec.clone() { + let _pubkey_in_string = hex::encode(pubkey); + + pubkey_hash_vec.push(sha256_hash(&pubkey.clone())); + } + + let mut total_ok: u32 = 0; + + for sig in signatures_vector { + let sign = Signature::parse_der(&sig).unwrap(); + + for (counter, pubkey) in pubkey_vec.iter().enumerate() { + let _pubkey_hash = pubkey_hash_vec[counter].clone(); + + let mut scriptcode: Vec = Vec::new(); + let redeem_script_str = + ins.witness.clone().unwrap()[witness_len - 1].clone(); + let rs_vec = hex::decode(redeem_script_str).unwrap(); + let rs_size = rs_vec.len() as u64; + let rs_size_in_varint = varint_convert_bro(rs_size); + scriptcode.extend_from_slice(&rs_size_in_varint); + scriptcode.extend_from_slice(&rs_vec); + + let hash = commitment_hash_segwit_get_bro( + tx.clone(), + tx.version, + sighash_vector[&sig.clone()], + tx.locktime, + scriptcode, + ins.sequence, + ins.prevout.value, + ins.txid.clone(), + ins.vout, + ); + + let pubkey = PublicKey::parse_compressed(&pubkey).unwrap(); + let msg = Message::parse_slice(&hash).unwrap(); + + let ret = verify(&msg, &sign, &pubkey); + if ret { + total_ok += 1; + } + } + } + + if total_ok < number_sign_req { + return false; + } + } + "p2sh" => { + if ins.witness.is_none() { + return false; + } else if ins.witness.as_ref().unwrap().len() == 2 { + let sign_in_witness = ins.witness.clone().unwrap()[0].clone(); + let sign_to_bytes = hex::decode(sign_in_witness).unwrap(); + + let sign_to_verify = &sign_to_bytes[..sign_to_bytes.len() - 1]; + + let pubkey = ins.witness.clone().unwrap()[1].clone(); + let pubkey_in_bytes_vec = hex::decode(pubkey).unwrap(); + let pubkey_in_bytes: [u8; 33] = pubkey_in_bytes_vec.clone().try_into().unwrap(); + + let sighash = sign_to_bytes.last().cloned().unwrap(); + + let mut scriptcode: Vec = Vec::new(); + scriptcode.push(0x19); + scriptcode.push(0x76); + scriptcode.push(0xa9); + scriptcode.push(0x14); + let pub_hash = hash160(&pubkey_in_bytes_vec); + scriptcode.extend_from_slice(&pub_hash); + scriptcode.push(0x88); + scriptcode.push(0xac); + + let hash = commitment_hash_segwit_get_bro( + tx.clone(), + tx.version, + sighash as u32, + tx.locktime, + scriptcode, + ins.sequence, + ins.prevout.value, + ins.txid.clone(), + ins.vout, + ); + + let signature = Signature::parse_der(sign_to_verify).unwrap(); + let pubkey = PublicKey::parse_compressed(&pubkey_in_bytes).unwrap(); + let msg = Message::parse_slice(&hash).unwrap(); + + let ret = verify(&msg, &signature, &pubkey); + + if ret == false { + return false; + } + } else { + let witness_len = ins.witness.clone().unwrap().len(); + + let mut signatures_vector: Vec> = Vec::new(); + let mut sighash_vector: HashMap, u32> = HashMap::new(); + let mut pubkey_vec: Vec<[u8; 33]> = Vec::new(); + let mut pubkey_hash_vec: Vec> = Vec::new(); + + for i in 0..(witness_len - 1) { + let witness_to_bytes = + hex::decode(ins.witness.clone().unwrap()[i].clone()).unwrap(); + + if witness_to_bytes.is_empty() { + continue; + } + + let sign_to_verify = + witness_to_bytes[..witness_to_bytes.len() - 1].to_vec(); + let sighash = witness_to_bytes.last().cloned().unwrap(); + + signatures_vector.push(sign_to_verify.clone()); + sighash_vector.insert(sign_to_verify, sighash as u32); + } + + let pubkey_vec_in_string = + ins.witness.clone().unwrap()[witness_len - 1].clone(); + + let number_sign_req = pubkey_vec_in_string[0..2].to_string(); + let number_sign_req = u32::from_str_radix(&number_sign_req, 16).unwrap(); + if number_sign_req < 0x50 || number_sign_req > 0x60 { + return false; + } + let number_sign_req = number_sign_req - 0x50; + + if let Some(witness_script_asm) = &ins.inner_witnessscript_asm { + let parts: Vec<&str> = + witness_script_asm.split("OP_PUSHBYTES_33 ").collect(); + for i in 1..parts.len() { + let pubkey_hex = parts[i].split_whitespace().next().unwrap(); + let pubkey_bytes = hex::decode(pubkey_hex).unwrap(); + let pubkey_in_bytes: [u8; 33] = pubkey_bytes.try_into().unwrap(); + pubkey_vec.push(pubkey_in_bytes); + } + } + + for pubkey in pubkey_vec.clone() { + let _pubkey_in_string = hex::encode(pubkey); + pubkey_hash_vec.push(sha256_hash(&pubkey.clone())); + } + + let mut okay_in_total: u32 = 0; + + for sig in signatures_vector { + let sign = Signature::parse_der(&sig).unwrap(); + + for (counter, pubkey) in pubkey_vec.iter().enumerate() { + let _pubkey_hash = pubkey_hash_vec[counter].clone(); + + let mut scriptcode: Vec = Vec::new(); + let redeem_script_str = + ins.witness.clone().unwrap()[witness_len - 1].clone(); + let rs_vec = hex::decode(redeem_script_str).unwrap(); + let rs_size = rs_vec.len() as u64; + let rs_size_in_varint = varint_convert_bro(rs_size); + scriptcode.extend_from_slice(&rs_size_in_varint); + scriptcode.extend_from_slice(&rs_vec); + + let hash = commitment_hash_segwit_get_bro( + tx.clone(), + tx.version, + sighash_vector[&sig.clone()], + tx.locktime, + scriptcode, + ins.sequence, + ins.prevout.value, + ins.txid.clone(), + ins.vout, + ); + + let pubkey = PublicKey::parse_compressed(pubkey).unwrap(); + let msg = Message::parse_slice(&hash).unwrap(); + + let ret = verify(&msg, &sign, &pubkey); + if ret { + okay_in_total += 1; + } + } + } + + if okay_in_total < number_sign_req { + return false; + } + } + } + "p2pkh" => { + let sig_len_hex = &ins.scriptsig[..2]; + let sig_len_bytes = hex::decode(sig_len_hex).unwrap(); + let convert_to_dec = u8::from_be_bytes(sig_len_bytes.try_into().unwrap()) as usize; + + let sig_w_sighash = &ins.scriptsig[2..(2 + 2 * convert_to_dec)]; + let sighash = &sig_w_sighash[(2 * convert_to_dec - 2)..]; + let sighash = u8::from_str_radix(sighash, 16).unwrap(); + let sig = &sig_w_sighash[..(2 * convert_to_dec - 2)]; + + let pubkey_str = &ins.scriptsig[((2 + 2 * convert_to_dec) + 2)..]; + let mut pubkey_in_bytes: Vec = hex::decode(pubkey_str).unwrap(); + if pubkey_in_bytes.len() == 65 { + pubkey_in_bytes = pubkeys_compression(&pubkey_in_bytes); + } + let pubkey_in_bytes: [u8; 33] = pubkey_in_bytes.try_into().expect(&format!( + "Failed conversion, [pubkey -> bytes]: {:?}", + pubkey_str + )); + let pubkey = PublicKey::parse_compressed(&pubkey_in_bytes.clone()).unwrap(); + + let sig_in_bytes = hex::decode(sig).unwrap(); + let sign = Signature::parse_der(&sig_in_bytes).unwrap(); + + let hash = commitment_hash_legacy_get( + tx.clone().version, + tx.clone(), + index as u32, + sighash as u32, + ); + + let msg = Message::parse_slice(&hash).unwrap(); + + let ret = verify(&msg, &sign, &pubkey); + + if ret == false { + return false; + } + } + _ => { + continue; + } + } + } + + true +} + +pub fn pure_p2sh() { + let mut count = 0; + + for entry in fs::read_dir("../mempool").unwrap() { + let entry = entry.unwrap(); + let tx: Transaction = + serde_json::from_str(&fs::read_to_string(entry.path()).unwrap()).unwrap(); + + for ins in tx.vin { + if ins.prevout.scriptpubkey_type == "p2sh" && ins.witness.is_none() { + count += 1; + println!( + "fulfilled our cnditsns!!!! = {:?}", + entry.path().file_name().unwrap() + ); + + break; + } + } + } + + log::info!("p2sh transactions number = {:?}", count); +} + + + +fn get_txid(version: u32, inputs: Vec>, outputs: Vec>, locktime: u32) -> [u8; 32] { + let mut tx = Vec::new(); + + tx.extend_from_slice(&version.to_le_bytes()); + + let inputs_length: u64 = inputs.len() as u64; + let input_length_in_varint = varint_convert_bro(inputs_length); + tx.extend_from_slice(&input_length_in_varint); + + for input in inputs { + tx.extend_from_slice(&input); + } + + let outputs_length: u64 = outputs.len() as u64; + let output_length_in_varint = varint_convert_bro(outputs_length); + tx.extend_from_slice(&output_length_in_varint); + + for output in outputs { + tx.extend_from_slice(&output); + } + + tx.extend_from_slice(&locktime.to_le_bytes()); + let _raw_txid_in_string = hex::encode(tx.clone()); + + let txid = sha256_hash(&sha256_hash(&tx)); + + let tx_array: [u8; 32] = match txid.try_into() { + Ok(arr) => arr, + Err(_) => panic!("32 vec len daalo but mila = {}", tx.len()), + }; + + tx_array +} + +pub fn txids_collect(tx: Transaction) -> String { + let mut input_vecs: Vec> = Vec::new(); + let mut output_vecs: Vec> = Vec::new(); + + for ins in tx.vin { + let mut input: Vec = Vec::new(); + + let txid = hex::decode(ins.txid).unwrap(); + let reversed_txid: Vec = txid.iter().rev().cloned().collect(); + input.extend_from_slice(&reversed_txid); + input.extend_from_slice(&ins.vout.to_le_bytes()); + + let scriptSig = hex::decode(ins.scriptsig).unwrap(); + let scriptSig_size = scriptSig.len() as u64; + let scriptsig_size_in_varint = varint_convert_bro(scriptSig_size); + input.extend_from_slice(&scriptsig_size_in_varint); + input.extend_from_slice(&scriptSig); + + input.extend_from_slice(&ins.sequence.to_le_bytes()); + + input_vecs.push(input); + } + + for outs in tx.vout { + let mut output: Vec = Vec::new(); + + let value = outs.value.to_le_bytes(); + output.extend_from_slice(&value); + + let scriptPubKey = hex::decode(outs.scriptpubkey).unwrap(); + let scriptPubKey_size = scriptPubKey.len() as u64; + let scriptPubKey_size_in_varint = varint_convert_bro(scriptPubKey_size); + output.extend_from_slice(&scriptPubKey_size_in_varint); + output.extend_from_slice(&scriptPubKey); + + output_vecs.push(output); + } + + let txid = get_txid(tx.version, input_vecs, output_vecs, tx.locktime); + let reversed_txid: Vec = txid.iter().rev().cloned().collect(); + hex::encode(reversed_txid) +} + +pub fn sha256_hash(input: &[u8]) -> Vec { + let mut sha256 = Sha256::new(); + sha256.update(input); + sha256.finalize().to_vec() +} + +pub fn hash160(input: &[u8]) -> Vec { + let hash = sha256_hash(input); + let mut ripemd160_hasher = Ripemd160::new(); + ripemd160_hasher.update(hash); + ripemd160_hasher.finalize().to_vec() +} + +fn varint_convert_bro(num: u64) -> Vec { + let mut varint = Vec::new(); + if num < 0xfd { + varint.push(num as u8); + } else if num <= 0xffff { + varint.push(0xfd); + varint.extend_from_slice(&(num as u16).to_le_bytes()); + } else if num <= 0xffffffff { + varint.push(0xfe); + varint.extend_from_slice(&(num as u32).to_le_bytes()); + } else { + varint.push(0xff); + varint.extend_from_slice(&num.to_le_bytes()); + } + varint +} + +fn commitment_hash_segwit_get_bro( + tx: Transaction, + version: u32, + sighash_type: u32, + locktime: u32, + scriptcode: Vec, + sequence: u32, + spent: u64, + outpoint_txid: String, + outpoint_vout: u32, +) -> Vec { + let mut commitment = Vec::new(); + + commitment.extend_from_slice(&version.to_le_bytes()); + + let mut temp: Vec = Vec::new(); + + for ins in &tx.vin { + let txid_in_bytes = hex::decode(ins.txid.clone()).unwrap(); + let mut txid_reversed = txid_in_bytes; + txid_reversed.reverse(); + temp.extend_from_slice(&txid_reversed); + + temp.extend_from_slice(&ins.vout.to_le_bytes()); + } + + let hashprevouts = sha256_hash(&sha256_hash(&temp)); + commitment.extend_from_slice(&hashprevouts); + + let mut temp2: Vec = Vec::new(); + + for ins in &tx.vin { + temp2.extend_from_slice(&ins.sequence.to_le_bytes()); + } + + let hashsequence = sha256_hash(&sha256_hash(&temp2)); + commitment.extend_from_slice(&hashsequence); + + let out_txid = hex::decode(outpoint_txid).unwrap(); + let reversed_out_txid: Vec = out_txid.iter().rev().cloned().collect(); + commitment.extend_from_slice(&reversed_out_txid); + commitment.extend_from_slice(&outpoint_vout.to_le_bytes()); + + commitment.extend_from_slice(&scriptcode); + + commitment.extend_from_slice(&spent.to_le_bytes()); + + commitment.extend_from_slice(&sequence.to_le_bytes()); + + let mut temp3: Vec = Vec::new(); + + for outs in tx.vout { + temp3.extend_from_slice(&outs.value.to_le_bytes()); + + let scriptpubkey = hex::decode(&outs.scriptpubkey).unwrap(); + let len_in_varint = varint_convert_bro(scriptpubkey.len() as u64); + temp3.extend_from_slice(&len_in_varint); + temp3.extend_from_slice(&scriptpubkey); + } + + let _temp3_string = hex::encode(temp3.clone()); + + let temp3_hash = sha256_hash(&sha256_hash(&temp3)); + commitment.extend_from_slice(&temp3_hash); + + commitment.extend_from_slice(&locktime.to_le_bytes()); + + commitment.extend_from_slice(&sighash_type.to_le_bytes()); + + sha256_hash(&sha256_hash(&commitment)) +} + +fn commitment_hash_legacy_get( + version: u32, + tx: Transaction, + index: u32, + sighash_type: u32, +) -> Vec { + let mut commitment = Vec::new(); + + commitment.extend_from_slice(&version.to_le_bytes()); + + let ip_len = tx.vin.clone().len() as u64; + let ip_len = varint_convert_bro(ip_len); + commitment.extend_from_slice(&ip_len); + + for (counter, ins) in tx.vin.clone().iter().enumerate() { + if counter as u32 == index { + let txid_str = &ins.txid; + let mut txid_in_bytes = hex::decode(txid_str).unwrap(); + txid_in_bytes.reverse(); + commitment.extend_from_slice(&txid_in_bytes); + + let vout = ins.vout; + commitment.extend_from_slice(&vout.to_le_bytes()); + + let scriptpubkey = hex::decode(&ins.prevout.scriptpubkey).unwrap(); + let scriptpubkey_len = scriptpubkey.len() as u64; + let scriptpubkey_len = varint_convert_bro(scriptpubkey_len); + commitment.extend_from_slice(&scriptpubkey_len); + commitment.extend_from_slice(&scriptpubkey); + + let sequence = ins.sequence; + commitment.extend_from_slice(&sequence.to_le_bytes()); + } else { + let txid_str = &ins.txid; + let mut txid_in_bytes = hex::decode(txid_str).unwrap(); + txid_in_bytes.reverse(); + commitment.extend_from_slice(&txid_in_bytes); + + let vout = ins.vout; + commitment.extend_from_slice(&vout.to_le_bytes()); + + commitment.push(0x00); + + let sequence = ins.sequence; + commitment.extend_from_slice(&sequence.to_le_bytes()); + } + } + + let op_len = tx.vout.clone().len() as u64; + let op_len = varint_convert_bro(op_len); + commitment.extend_from_slice(&op_len); + + for outs in tx.vout.clone() { + let value = outs.value; + commitment.extend_from_slice(&value.to_le_bytes()); + + let scriptpubkey = hex::decode(&outs.scriptpubkey).unwrap(); + let scriptpubkey_len = scriptpubkey.len() as u64; + let scriptpubkey_len = varint_convert_bro(scriptpubkey_len); + commitment.extend_from_slice(&scriptpubkey_len); + commitment.extend_from_slice(&scriptpubkey); + } + + let locktime = tx.locktime; + commitment.extend_from_slice(&locktime.to_le_bytes()); + + commitment.extend_from_slice(&sighash_type.to_le_bytes()); + + sha256_hash(&sha256_hash(&commitment)) + +} + +pub fn weight_test(tx: Transaction) -> u64 { + let mut input_vecs: Vec> = Vec::new(); + let mut output_vecs: Vec> = Vec::new(); + let mut witness_vecs: Vec> = Vec::new(); + + for ins in tx.vin.clone() { + let mut input: Vec = Vec::new(); + + let txid = hex::decode(ins.txid).unwrap(); + let reversed_txid: Vec = txid.iter().rev().cloned().collect(); + input.extend_from_slice(&reversed_txid); + input.extend_from_slice(&ins.vout.to_le_bytes()); + + let scriptSig = hex::decode(ins.scriptsig).unwrap(); + let scriptSig_size = scriptSig.len() as u64; + let scriptsig_size_in_varint = varint_convert_bro(scriptSig_size); + input.extend_from_slice(&scriptsig_size_in_varint); + input.extend_from_slice(&scriptSig); + + input.extend_from_slice(&ins.sequence.to_le_bytes()); + + input_vecs.push(input); + } + + for outs in tx.vout.clone() { + let mut output: Vec = Vec::new(); + + let value = outs.value.to_le_bytes(); + output.extend_from_slice(&value); + + let scriptPubKey = hex::decode(outs.scriptpubkey).unwrap(); + let scriptPubKey_size = scriptPubKey.len() as u64; + let scriptPubKey_size_in_varint = varint_convert_bro(scriptPubKey_size); + output.extend_from_slice(&scriptPubKey_size_in_varint); + output.extend_from_slice(&scriptPubKey); + + output_vecs.push(output); + } + + for ins in tx.vin.clone() { + let mut witness_vec: Vec = Vec::new(); + + if let Some(witness) = ins.witness { + let witness_len = witness.len() as u64; + let witness_len_in_varint = varint_convert_bro(witness_len); + witness_vec.extend_from_slice(&witness_len_in_varint); + + for x in witness { + let witness_in_bytes = hex::decode(x).unwrap(); + let witness_size = witness_in_bytes.len() as u64; + let witness_size_in_varint = varint_convert_bro(witness_size); + witness_vec.extend_from_slice(&witness_size_in_varint); + witness_vec.extend_from_slice(&witness_in_bytes); + } + } + + witness_vecs.push(witness_vec); + } + + let (witness_data, non_witness_data) = + dnc_algorithm(tx.clone(), input_vecs, output_vecs, witness_vecs); + + weight_calc_right(non_witness_data, witness_data) +} + +fn dnc_algorithm( + tx: Transaction, + inputs: Vec>, + outputs: Vec>, + witnesses: Vec>, +) -> (Vec, Vec) { + let mut witness_data: Vec = Vec::new(); + let mut non_witness_data: Vec = Vec::new(); + + non_witness_data.extend_from_slice(&tx.version.to_le_bytes()); + + let flag: u16 = 0x0001; + witness_data.extend_from_slice(&flag.to_be_bytes()); + + let number_of_inputs = inputs.len() as u64; + let varint_bytes = varint_convert_bro(number_of_inputs); + non_witness_data.extend_from_slice(&varint_bytes); + + for input in inputs { + non_witness_data.extend_from_slice(&input); + } + + let number_of_outputs = outputs.len() as u64; + let varint_bytes = varint_convert_bro(number_of_outputs); + non_witness_data.extend_from_slice(&varint_bytes); + + for output in outputs { + non_witness_data.extend_from_slice(&output); + } + + for witness in witnesses { + witness_data.extend_from_slice(&witness); + } + + non_witness_data.extend_from_slice(&tx.locktime.to_le_bytes()); + + (witness_data, non_witness_data) +} + +fn txs_assemble_hehe( + version: u32, + inputs: Vec>, + outputs: Vec>, + witnesses: Vec>, + locktime: u32, +) -> Vec { + let mut tx_assembled = Vec::new(); + + tx_assembled.extend_from_slice(&version.to_le_bytes()); + + let flag: u16 = 0x0001; + tx_assembled.extend_from_slice(&flag.to_be_bytes()); + + let number_of_inputs = inputs.len() as u64; + let varint_bytes = varint_convert_bro(number_of_inputs); + tx_assembled.extend_from_slice(&varint_bytes); + + for input in inputs { + tx_assembled.extend_from_slice(&input); + } + + let number_of_outputs = outputs.len() as u64; + let varint_bytes = varint_convert_bro(number_of_outputs); + tx_assembled.extend_from_slice(&varint_bytes); + + for output in outputs { + tx_assembled.extend_from_slice(&output); + } + + for witness in witnesses { + tx_assembled.extend_from_slice(&witness); + } + + tx_assembled.extend_from_slice(&locktime.to_le_bytes()); + + tx_assembled +} + +fn pubkeys_compression(pubkey: &[u8]) -> Vec { + let pubkey = PublicKey::parse_slice(pubkey, None).expect("not valid pubkey!!!!!!!!!!!!!!!!!!!"); + let serialized = pubkey.serialize_compressed(); + serialized.to_vec() +} + +fn merkle_root_wtxid_get(wtxids: &[Vec]) -> Vec { + let wtxids_str = wtxids + .iter() + .map(hex::encode) + .collect::>(); + + merkle_root_get(wtxids_str).to_vec() +} + +fn wtxid_get(tx: Transaction) -> Vec { + let mut vector_input: Vec> = Vec::new(); + let mut vector_output: Vec> = Vec::new(); + let mut vector_witness: Vec> = Vec::new(); + + let mut total: u32 = 0; + let mut non_segwit: u32 = 0; + + for ins in tx.vin.clone() { + let mut input: Vec = Vec::new(); + + total += 1; + + if ins.prevout.scriptpubkey_type == "p2pkh" { + non_segwit += 1; + } + + let txid = hex::decode(ins.txid).unwrap(); + let reversed_txid: Vec = txid.iter().rev().cloned().collect(); + input.extend_from_slice(&reversed_txid); + input.extend_from_slice(&ins.vout.to_le_bytes()); + + let scriptSig = hex::decode(ins.scriptsig).unwrap(); + let scriptSig_size = scriptSig.len() as u64; + let scriptsig_size_in_varint = varint_convert_bro(scriptSig_size); + input.extend_from_slice(&scriptsig_size_in_varint); + input.extend_from_slice(&scriptSig); + + input.extend_from_slice(&ins.sequence.to_le_bytes()); + + vector_input.push(input); + } + + for outs in tx.vout.clone() { + let mut output: Vec = Vec::new(); + + let value = outs.value.to_le_bytes(); + output.extend_from_slice(&value); + + let scriptPubKey = hex::decode(outs.scriptpubkey).unwrap(); + let scriptPubKey_size = scriptPubKey.len() as u64; + let scriptPubKey_size_in_varint = varint_convert_bro(scriptPubKey_size); + output.extend_from_slice(&scriptPubKey_size_in_varint); + output.extend_from_slice(&scriptPubKey); + + vector_output.push(output); + } + + if total == non_segwit { + let txid = get_txid(tx.version, vector_input, vector_output, tx.locktime); + return txid.to_vec().iter().rev().cloned().collect(); + } + + for ins in tx.vin.clone() { + let mut witness_vec: Vec = Vec::new(); + + if let Some(witness) = ins.witness.clone() { + let witness_len = witness.len() as u64; + let witness_len_in_varint = varint_convert_bro(witness_len); + witness_vec.extend_from_slice(&witness_len_in_varint); + + for x in witness { + let witness_in_bytes = hex::decode(x).unwrap(); + let witness_size = witness_in_bytes.len() as u64; + let witness_size_in_varint = varint_convert_bro(witness_size); + witness_vec.extend_from_slice(&witness_size_in_varint); + witness_vec.extend_from_slice(&witness_in_bytes); + } + } else { + witness_vec.push(0x00); + } + vector_witness.push(witness_vec); + } + + let serialised = txs_assemble_hehe( + tx.version, + vector_input, + vector_output, + vector_witness, + tx.locktime, + ); + + let wtxid = sha256_hash(&sha256_hash(&serialised)); + + let reversed_txid = wtxid.iter().rev().cloned().collect(); + reversed_txid +} diff --git a/solution-rust/src/main.rs b/solution-rust/src/main.rs new file mode 100644 index 0000000..a889eb7 --- /dev/null +++ b/solution-rust/src/main.rs @@ -0,0 +1,6 @@ +use rajat_solution; + +fn main() { + print!("Hello! We are running our lib.rs file from main.rs file\n"); + rajat_solution::mine_bro(); +}