diff --git a/cmd/rhoas/pkged.go b/cmd/rhoas/pkged.go index 4724aa12b1..873441a199 100644 --- a/cmd/rhoas/pkged.go +++ b/cmd/rhoas/pkged.go @@ -9,4 +9,4 @@ import ( "github.com/markbates/pkger/pkging/mem" ) -var _ = pkger.Apply(mem.UnmarshalEmbed([]byte(`1f8b08000000000000ffecbd6973dacab63ffc556ef9edcddd5b03b2ad54dd171631423256c2a4a19ffad729b544844c0bb86114b7ee777faa270d2026079c641fce9bb3635addaba7d56bfcadffbd8bc7df27b3bbcfff7b17c5f3e102fe154c92bfe177e97b701f040fa2e80f06a22f0492ff778062dcec4bfce3eef3dddfc34932f87b301d0e903ffe3b988483bfcbdf93e69fee8c643af931ffe6cf87779f4f1ae1d39de52783bbcf77f41f5f26c1dde7bbbb4f773dff473498d3ffee4c26f3336878f5e7c1f0eef3ff77f7d7ddfffb74d79dfb6870f779fe633160ffe80cfcd9647cf7f96e3c99ff473c9ecd7d8406e17fc0c5fc3ffca51f231fa2c17fc4e3ff808b1885ff11f8c17070f7e94e9f34623498e17e0314ffebc76432ff2b9ae011e89c67779fc70b843edd7d194cb3ffee0d66f3ecc3fc4f5b5fbc4ec205a6f17fefce5ab8573f1ef3899db74bfae475129edafeef68f2573209c967f6e0c72c266b27fe252a77fff77ffff7e9ee3b9ddd4907eaf3df6812f8ac3d3e89f8ffc3c1dc8f11f9d3989e05dee8d3dd2cde0cee3eabf79fee924938b8fb2c89b587da634dac89e42fff9ac7e4034990c4ff12a4ff12ef7ba2f059923fcbf25fa25c7b14d507e511dc7dba8b67ff0af112d1d59aa564b42f83e5dd6759fd74678c27779f655910a547f1d39d85e2f1e8eeb348366670f759bc7f7c78f874d78fc3bbcfa220089feef4fc3fdd7ffd6bea87c2dd67e1d35d27c41d0a9feeba19d51a1ad129d404facf49309a91364ff338c1447407011e42bcbf7fa8c9d2e3a73b6b86ff72ffa008f78f8a72ff7f9fee5eb79acab507511065de349be8ff7dbaab9fded4fdd7bf16e3c56c10de7dfeff844fc227e1ff91ed1c0e7edcaefdedda1fbef69feea684e4ffbdfb368aceddf28c07fcdfa7bbd09ffb7c3da6fe8fc1789e779a7f41463c87bdfced2f2879fb790c69c1198c28bc8bc188e43289673118e9720c0653fd310c864df414069337bd31981b83f9a50c8672812b7399bfe793d1607c98d7d0269cd9e03bf841cc46be1cb3c154df98cd8dd9dc98cd0166c398c187b09cbffd601e2f077f0dc67fcd27093a22ed94db66ace841e6bca82609ef6342df7d343bcc856abb5c4896c5c7c7f770214cf01e36f458c18614551288c84518464d12a4daa32aff016ce8ef2009b7595181cf901f0ff1999c85d033c83808dbac320b293206dafac60d2ec70db6ef69c61cee1ca921867ab40875f507706a8b406fa481d45f00d74ca16cb07fdb8d606c2e0324bc404941c6172132657be139e60c74b50594db11fb2e62fd8cebd1147aae2df8754580d21cc158997baef605ea8d29745fb3fe3d693df41d71d321ff36c37aa22e40f74935ea211a3435e4c91d04eadadc739f22ded6d04d31ac6b633cae319e3fb446d6cc73d03c9045d58883973a9a0f43b733698d3b4b5fb217ad2444e1b35d0b74940eba0a22738995bc7ffe5b9ff673849604eaea30d4d102a4da0a4a6811d69f62e00e5746acc5a1db8e80a40a46dd7c1808b4bfefae109babc9cbdd65d930fc3159cde8a5decf7479a35f20f82937c1ef26f8dd04bf0f61f5fc9a5f51ea63435c42e41345f10344befbcb897c84e09f10f94422f2a9bf3f03ba897cff083e7048dec3b24db801aeb100922df4640dc111ff9bf9054ae2dc7394512bb1d32051d3d6d85e04b2bd0a74350d757b84db074943f01d65dc97d126d4edb9db9e2e61d28fbe759fc6a1a36c42575b41d91480d38e60a1bdd1b49440ee20d87d8a07f26cd1132df57bd7185f582e0ad062363f2617f146995cf471d6f7870bca4537ebfb4d2ebaf1c3fdfc905ff32bca456c88bf470b38f8311ecc8f051614da9da994c9ff25d57aa2f4597cf85c13fe52e59aaa48d259ace7f157aa640fca43ce24145196ef955a05ebb9571e1fa57b813765d314840ad673a0e98df5dc58cf6fc17a8a7ce143b9d02514355956d5c39ada519e74484fab3ddecb0fb50bea6994de3314b5fb074516958c81dc4b0fb57bf951fafdd9d24d51fba77187433a9b350b5d4bc03a9b2fdb3170cd05703b28489519948285ef28094c954da83784d0b52ce05a1bcf0951512f33d3e0c5d687d320d5deb88e6734c329d45711d4d1c24f3505ca766ae8d958512821c1af6b5fa0ae8aa0aef5806b4abe63a120d5e241577b0b129bdbc1dff0375012a220b137b81f4fb23786de5880bab6018e9502b7b369455313c6da9be75ac8d0d5c4686a2994cc1970c48dd1d466c0696c40574303dd7e0bdd0e32ea66eaebea90d0dcb4b1ae991a4d4bf0dc8e18a44614ea8f91270d9127cd22dff1a281a38a415c68aba30d1983e8a06bc5d0ad254cc014c8760a9cf68b9906d44f21ad45ac9706b1f223744c14240a0a757bd31ab3b104b400895af00704637335fd022565011c4bf01d75613c7750a837a6b0f97a5f8fa65aa037de7cbd1f75a546e24bcf91ef90fd597852ffdea86b0f83543121eedf51de405f1942c756bfb7a7ade2f8c633f9fb06f7057a93887df7d5734414c8dad093c837d9be18cf8d374f5245386e477dc9c6fb237c8dc937599bb663bd41d95e840d0b79b289c2673ef6849c913a9a67ebd74ae6a297d8294c6c01147c36d0419b40420b20b0f514a8ada078deb236a946d6d493d40548d0d8d0c114eafdc3ebce6d0fc97ae9391dbcce89ef84bb3e28090c7d678d405d1360aacda0d418193aa1f98d7e73647f134cbf823cb98defd02a74db0b46670abbcabcea1e75f44772ce8c6638c4eb4ccfa0bac0f72074fa7f9babc9cb81fbfac6cf0c9e1b489511704c11a4ca1b3907ce7ae63bcab82da90b98d86f61a33057c11ac2c442505f4f611244f99cb4b7e2393c363ebdb376cb73c00faf6f75f3b51687c1d89a78ceba629dad65e8ac4786ae2c43e28b3337bede9819cff32148e6c38c5e1d2d614cf6e2a52fa85f0d5d8d7dfcf7fae17385cfa1e77610bd2b8d2ffdb8c4d7186f11bbc0b596a16bbe81be9502a72100a753f4d1f139b13ded4ca1542bf0a33ef315b2f3de35225f6f6c0cdd44c0a9459c067084d6506a089e34d4a16cd2f16cce8f32bf62026573eeb99d32bf90d0224c1a33df69139a42672d183a4831cfe436327cb78c06ef4f5b7ac9149fcdc8775f2398a802e15fae86796e0cf53ee7cf45df640a5c4b84cd7604c6e61276b52fbde7d1a21e637e75f05cc89edb79f39fc13218d13dedcb9d61d82cdc45ce0bc5c2b9488331e30951280d118cb55590a86ff8de107b5fd5f9789b44a6eb9dc07bc361a85b934ea2a6ec5cf4e8fbf6ba80ba3a6e2598273f2e02d97ec36fcd365df551e5d9dc848e45e803637b069b23ce976750b74786ae2e8c265a86ae51b85fb5175b7f8cc204a130d5a6613d7f9fbe46931728bd4640b20543177f78e9d31c6e44c573c49951171746333b6f9487bba25af81be6b93fb50e9c1f873a9a0347154bfc220dc641d35c92b549b5258835bac7f4bdaebc2bb49f7604655bb8d4fe845263ba4d571d8543dfed103e0612b5f0a66b4990a8f33d7c25cdee7fb7f6d2ceee6bf55c3ca9b1c077dbd01b33ccf300ddebffc17c12cf31647c3c88b561d0d466be630dd9f97c71307fd7ad218cb5d8c772928ef94d07c17167ea39eb8dd1ec2cb373e26a2ba8a337cf656be85a785ef7f55888a0d4596279caef3ebdb4badab740b7177d693805e4dd5057505a2f813ca2676b35991bba3884637b08f5b562346d7a87d87b16eaaba81e4dfb306534e1f1bbda0238f688d0a30f8761d2c7ef7e1a26e80d74b53a6e47efa1ba02ae390c7515cb448b40eee03110f83279f19b1d2168bedeb75275ecbb9d49e818f80d9cb7641301dc675d1c011720a8e33e8c6590f52fc6bcff9693f7ff73bcc69cc2049f8b705bd67af3dc76f4edcbbad113bce87b9dc914726766e88d5580d7ab2e26465d88ea4963e5db0005630befc7bda1f33e8345ce674df2f60789bda46fb2b00cdf1a43d8d4265eeff9c5c772cb9749be96fdac8f17e8d882e77486a1fe7c5f8f9f229834e65836f3a99c37e7724ef69b6bad3cc7424c0edb96dd36816ebf7d8d26119bc7d4931ae41d277fab3f45403697a1fb744f7e6fbebee0bf193ae61ffd7bf6ff732879737a96c5f259667d14dec07b43efa0405f2f078e88cff306d369d43509e0371d8f1b6bd26b9b7e877ff3f03d7e6e6c3a099a01f7f5de6876d2d0e9bf1858aee7fac06682e99a1b7a9842d95eb1b93683441583a6a8568c817f77f8bfbfbb029bd77c0a93f63de591f8bf3b9847125af83a13bf11595751ad8fec6f9d88c9add1c13397d1ea71f9b7c9e4df7af66e73d9e898fcc3da95ee9ae691368a6064fd1e9123489c94c274a37689678244156152926d70ff28905f797c55e4396b2c038d06445f429bb0ae11d90beb1c81ac214f42898f79835e787fbaa7c96136a5ad57451b6fd3af7a77451a6f6570dda2cefc7c6cbf8c98af1de6599648e76425a1b39e0d4ea4ad2f34de419785823198621930d37fb03e4bfbd9910b735970475e38a64f50b9d4a6ebc0753026eb4f610296599b3ed35dca323ef98de893443fee4c4077670df9998940d29862b9e56b7ce2da65fc2cd313f3383cd6a622f60dafd70cd4699c1f6f87cf395fd3ec4e1d39f3d9dbe1f0f13bd5e7df1d4e03b974fe731d57cf75dc80ad6ff18da7dfb68fea41be6ebff9024a4a32c6c8aef92ed6cde8ff57ac45b5acb17317834bc7fa054978c49f4d2c7e2cbc4691dee34faac9aa2249d2c3391e2555b8602a1926fb435c4a7ca627d86e0b4d6f2ea59b4be9171b8d93f0aa3ea4247c5ff0ccfd69b9f13fedbf562f98197f7f7666fccd7f7d6336ff5ecce643c267f2612ee1b1ae7d80c3ba2280efbd0eebdacd5f7df357ff61dce03447b52789a3d6d8de00bb6448e1bf6f2bd26fd0692f0269b80cc69d67e05a6f41825644292b1a624430056e1051e7b58682042c8344280419ab8b20258610eacc7e2e29a011948d88043c236be23b402838bb2be901ee70085d6d569a431a8cebf12b71fa11c5b1aec9bedb99ec38ce75550cebda1426d62c74a8b1db93ed3448ec45480cbc16823a563c89318429d3f6a61eb7a320192e3df7b5d2c967d485b9ef840b289ba8e5584b38eea041b3fd7294266a982e1b879ad45071ca98ccf0a4864963163afda3e3d13db288513a90acd47735811aaa9901a49b1b100b46da17b3aeed3afdf5cc511bb5baa282f7f25b6e4cfa9e19166c35374a8fad093746d7a3fffeefcb2be4d97d082649323902bfc0dafc64c4a74218b37c96ccfc4bf117de2b33b3899ef258e54d6f32f34d66fe7d5e4976e33f4874a6a35d4282becf53614e93a02b98d27119ba2212fdbd32f4fd812c980bcbd0bf962ddd64e87f1a7738559456e7d05117ad04cc3c27a0be0c87c5dea5ca68afb82cac97dc9f9cfb932ae3f176fc25db6342092450470bd0cdf01cf68f4b623cb414ca600af47ee439b528ff5e63df9338b11874353190ec91a19b0aa36f19e876eab99d258fbda1f135cfdcf739339a601a484830f4a11036b5cdd7f871e949eb65885588c41ef97a4320b17d5d15f785d58a2918b7971ce3a22a46617bbe03c7deb4920ee2a22b5ec3521c60a2a69e8462d81ce53e31fd99facb698c0d1189a16c0b3cee344844ea978f6bbbea8624cea1545b80643d04a9b2c8e304fa0ba0db1b4f36a741b333859252f4477de171b7dd927f4b2b7e1fbde82861beeb0d70dbb91a522fb70b253483f57c4f5e767cb2d6123ae212c64a02f5c6b895a0314cd414f43335e410ad2690946590f44f528358ecf030906624562790ec195145747be8495194c7a1e0396943acfe0167ad98abc97545fdf17810cc8fc9fab4d12f10f67f29e6c64dd8bf09fbffb6cf39bdf21f26ed93e12e82c5213c2a1f20efab1704e32014ff84c02f13815ff9fd59d34de0ffc7718893257e6658a586e8d0b54a5928f9ef15121acb68a106786b026553e81c902033232f8b68ce242bf795485e5b92e532884b91cc15922ccf70b1e6a0aecca0a48cf78f5fcea4da1755bd4d138bdc2e674be96a4a229d1da5e7eb2809ebb901b9154dfbbede8fca9a9396f8ce1ad12c317bc3a3c20b466daca19088ca82517c089376e4b36870301e45a13e4444c26712707dd498e13161d2107c1720d81ccd58b4f61bd684f05e324da765f7cd465b50bf7646a869e8f6224c500a25650e4824291806091a7ac91ad1887313794e3bcf72a3595122777cb4a2c94b6fa4f63bbd49b49be967a2c0b5a741626fd8d8ddeeb3aaf5d3a2b695696469e8280b1a7d5e9d1151479d894f9c05586b2292baec3bebd9d768f2f2daad45ed82465490d48759942c95eee72c12731a62493fd58679f4ac3685e342947d3e76541f21aec9161c04c3ecfbdda8c455e4bbeda276930207a4c0b526c0692fead1246dc5da171ed5eb7559464157eb02b72102176b1d3c93099f8786c0b30332edb5ecd8181a8d4c93c9a3f0f33e449a19f7f442ce4ea3109d9a6b8f252df8e251fa5155b6df16ef48ec9ae7882ba8db5bf775f25674c8b0f32f066313c171bb2ae3b17867b3f18e399df668e99c2f520d745ccc623ca82993c8fb8215248ba20dc9fa691328ad4701bbef7c0e1e595faca9a2216cbe2eaeac5dcee6fe7c71043e84b5f949ddf29e082bf767e99697c42dfa39ddf29ee8960fa708706ca2a7087079d39b6e79d32d7f1fc991ddf80f522de96897417994ce8cc5aae04a47354ba52202fdfd308fd2cf85639da159fe5ac674d32cff69fce134c532c8522d89728685d7a290c420445eb7953afef753954ac7776cb990d6bb042c35ade07a385979db1602b7e6708a8249e9d1098c470ab314ab464cdc334c99085d33258ad7e951630be3690aa0dca7e9c65889ece279a2cdce585441c884e6cad4e3b810114514beb2928315bc766227503651961edcdc56c456149e4217c5406e475ed28fa0ae8e0171b1a1055170bbc7d6fee9a5a870d95cc17544a2fc620536c8e0624a701b1148d08cb8f8526dca04e764d0dd51a2717b01b843a155a5888c334885a3517841d39c92543076260a027ebe9ff97e554797f173badaa314519757ae908d0a29d4cf220a646b08caf78841bbac67c0a9329050575f211df92b943b856f3a95103e3d020151187bdbf893afdb5128a0def1d4646e20f896cdfb8da5dfe674b3947f8b4019b47363408a1567df35113542940d15dba9edf9d9517722360b6726374a344ca327347a869e2bb4ad68faad60c82086167cf64bf00e7cdc423a7cb769c7ada870877530c567bc00c91179e3511436d18a7c9b41121991ef10c3d43048ac09be9b1d4cbf2e121727812ea13020d480a5af11813d6a9a0824f8cc9194fdcc7d5d380b44b9f79dc7a5afab72cbed2c5b0edff3d5dc736af3026d0c3ee23ad18de74735caef2b2e2011c0d8f31c9d15fe84f72aa3f287151760133d0544376f7a53466fcae86f206c7e4c34e3c5a218e5dafd7925062a98d0b11203b27041dd9310fc3125067e2d1bbaa99eff146e7048e5a4c83e05f1394359216812cfca326cd81bd0a7eddcf6b41c4d1813319a22b1c45a86c46734c309413fc97d34d30c4511ab4a45a40a9278620b45552a570998489558c85c95fcaa22d4db146dad6921eaef29abad3be332541a86169189dcdf5d8189fe3cb2b084f887c5d294a0670a582db353cfb188bfb0df3497d0d5843d6bf24cbfdf5d133c9f60cc128d9c1a1641052ce67a72674a927058bfc5f9f60bdfec6f7f45f1f2efefc88f8e783c68930f7778c8c205b3cd6f0e8f9b8c797b554e7b55e87dff1849938c7591ac19f94849ab8bf83a2a38d2bbb366e4f34a5add5c1d3779f3b7e00c87a44e9abb91d52e4dec75e8a014381dd7d7ed452f5117dd92946387f5ad1c0fe38b101923d20fc1ddcdfb68738c5b5aef746c2f60422275a670dc4141d2780b75240167ad18512661c5adaef83048151dea8df1775778677f9397edb9f98e2279ce7a0a1a60089b366a25e6903a73aae693630fd3fc120d7f2b82ae5148cdcfdbb0146f8a8b8768ffdf5d213674b00ce2a779cb9d3fb4c81a85ea779a23c2f241389634efabe3d071942573cc6c8a86e8565da373a86bd9ef86de48b1444d9d3e7bf793ace71e09b9cb8dcfb4566b636ce8942e43e7c6fafeb8e020da9a8f36a5916459c4dcc8d0091daca6ad390e097666fb02e7ac9102d99e338d64531a9349f55413314598281552ba3d1b14f690e218e67dbeffbc5d4be29fa2c13c3ec1a8ccdbed17fab1747c69a15f91a5c73d42bf2adf84fe9bd07f13faaff2b4f3db7e7d919f8d7409815fbaaf9d9927ff406e9e7a9ec42f5d4ee2a7147f8cc8cfe67a0a43ca9bde44fe1b5f38e1b696229b962432847ad94b9853e550f01a11c66d527808f114082c88ce5952ba18488d31e816ccaa0521de93d479a0af1115320d1a752191d0789a7a41239136beaea6e1f34ed27885906af648dbbab6f59b969088832c92a220dc8d54316c6a62d82ca55d94e8a0023a355903090b73b528c0429fbe8a5e74ac204433a339ddf8f515896a0209daf8f551cccdd4f91c69e40dd4d505104e9acf2b94943101972f0ab9949e3c0d25da8a42916d2168da422955452fed292b1041f66b4cd269626de3ebf60cd69f265ed22073198cad49ab4e529312dfb5262f5d92a2b2e4d11ca14442fcd9779a42a23d5cb390b6d0990d0a692fad3afeef5ae4e9f69baf3f46e6172d6a459397fed85e187a2182a8b8f68d79ecb9d6e43b5edfe69ad0e1769fe6befe44e7405d0e69c80af5309cb2298ffaa11131799455693fc6af6c1d788a16d9d3453d9a128583a5174d3c17a07284108fbcda735e9a6c1ff179701a3f4057db84785d687f29702dc1734d616bdce29ebcf97a6301249b15c5e80c7da91f0107242405ac18ddb57b5fb84b68133a66b6fffd5c992a46540d09607c92af0f94bc083848f0753b35ea26597b235e45c6189f6f6366d44db207464c14ba34570aabe82177e37afc839cd32abe511c775f546585e28868db33ee5bdc91ec058d7a3ae53c503ed42674f37b7384fe64bd8449b883dd57b58e3dcc57d2d3791f2de813229890082fb4f79ec41a1babcda2c9087dc5fb6296ef9bba309ed75338b66b3c75ede01da73c34fa16b3df45b5f47b203dd114c20c249fa61ae534a119e8d65e5ee36c9c4de8603e254a46d39c40a9b1714b6f9ab231ea2a0af5d72539430d756bfddb4b9a426545f4fe6933cfb176c6f5a9cb94141bf19dc68cafcb0e8fd1f1bdb304289b0ae677dd2c7a8ea6a4c1589b7b8ef5adbf99bcd4df9e1746c31461ac15d2b84a7b41efe4971afbddfa5e1e8fd19ca7cdd1e2151c2b9001d3d4df8c7c1cd91ec1549b87fbd63f7d5a86ae95b624027c336b49b6e0a52aa1c3dd9215405da57db03d0bf4350541d187a8700fa6302669852be05853cf59f13bb135ae36c2bcc5933bcb605c2ab8551a93bc53a5c8ebaabb4da288a73c150ddf8196b39ee27b1cbac4781591821e84df148d3fd36a1e43fe7e185fb3ea8ef649db76b4fd1b7dcbb2fb17e73cda6c0247219189c415bfe73d2fec2fe6557ee17e56c921f7c7f8cb4ff388c6b4c0e36aa79ceb7bca039e62b3394f02bd21f88dd9da7585a52bd33b6c24f44c65d1a78577b8820e76c6ed05d449b1ae2124a9be1da5fc96af88d1ced035e449c3a5513787a1db59425d1d82fad3dca66bbef21d651a7e99b1b1d0c277dbb1f1a5f69f46b3b62467a169be7934b519c1a4410ac9f177bd52e620eb537bd977a6a90c594a53af920fed40ea13833a4d17c56746c43c9844b293f73237ce16cf147dc3a3c3e3fe86e79ad2ddb426c059cf8ed1bf47ce2ec9caef79bfe91885b38d76cf75653f757183f92f7bebfeb3450b5726be132c699f5bef90144e5a096e3f643c3d8b58e6346cf1cb1a895cbe829179e47f1ff9870d3ab4498e7f527b57d0b24c22e394b3024a2e08c54ac8fe98a86536d353c205f3a637e3f2cdb8fceb8d48f4aa5fd9ae4c06b98849593a1a43223cf604f5b374ff5979f84bbdaf49624d793cb97a016542b50b5a94a5f362484e8f59564455b9171f72db339b6a05133ad0f46650bef182c3d7b43264f93afa5942fba7b26069ac2bdb8db97ebd62458c572483b355a75046b83d0d23a636beb6ab0d3d69887811de62a874901ad7080ca03bf37128fa158eb8a3a2dbef03ac794658c0aff5c2dd24b71bb7fe496efd315967c5b12e03a99933a62b8606546893ef87d43cc0946ea1013749eeb7e50db71cb45372d05875fa02ca3d8fd4559614ebaed103ce1a79728754a4ae309c8e69df4641b8d564e27cd695654158dc509a83426471e9f76ccea46dd901bf016e7b96c3a8f4232316e6bed38e59042e095a60ebb9772d8d66380df5881a9a33b806ed075b333190fa71c1d0bb677d58d50316a0505109a04a387fae12ca5b5d7119ba9d55e8f2e8eb826353004b5215803a9a645f476f3e35ce8f7cd75a41bdc1ab22549cb55ad496864b28e3b5042994847ba36efe4f20a90bea084773481de18ae78833230e5ea0dc9900d7c82a1840a741d60e9f69dfb126d478db9906b236f35c866d5aa9089c3f761dcdd91e14aa1d64d1ec34a2bbdaf91fcc5b0ee251d87ba3f229bee3564435ad7ab00a1255f29d0e77fe1fa24383498740a1b4a5c602dfc17662db81648f8a06799834e6a0ab0d832414a143ee2451a65a5d719a479d5b439890f10b552e1a42e69cc5f4e2fbe5f44b6730d4d595efbceeded5716719e8e8ad97a8422751459874286f2a3ac164dac6a89b0f8354e943599b7a425ed91ee82aa90e817913ab944e9cc355989d349a3cdff3bc027d704525f0c7c09f0f8e2881b4cdf94aa0d213e5cfa2f2597ef8abf6f0a0aaa27a7f9efdfe5722603e8a72a6042a82aaaa925093abe4ad72d36ca255f2d6fea63725f0a604fe36821ebdef1fa30492b12e62cc97d5da51259072a4fbcfd2fd5f0f0ff722fedfe9b58855b92662be71316b3ea1f82c25f0517cccd8c783228ae2a35ca9039296f7594b3ed57d3ca9bae94d07bcb18693ae6ba50ec88ce0570b5461c568fb71499f6081801f6be8d78630d6b4406fbc15b1cc0bb2dd211af7c06956652fae973009ce08a4a1b51e329c7da776d0d9408233f5e728a038296fa1b31e92e0565d154141a6e7351982c41ef33a086d07d022c4746e247392ee67514f2cd464208e115287202e068257e88f7c3f62d0350a817ed5e7ac085d59ad53b3dfdd5712d0ecebaa4c6d05b90e9cef75b00b7f49f05bda07f15ea84e07a6505f4545b8d35d58469ae91ba4f48c6daf5711afdf2fe0e3e3b3538f484d80bcfe41c57e1efaded045a5e5b035740adf9cd02fab2591e9d83480d344816ccf985e0dda7df1f5e0f875716934d1103a2b06a958753fa84d80561aecb4f3f3b75b09b172afabee09d98ba779cbe5d512ed34cb362ed668a167be30a66676b6745976af7805417a4f1a26021209a4bc008dbc2faadf166d566d5a7d31ea37cd6598a011be7b7d761f8d67f4bce78eb0acf18618ea2ae6bb87ea37f400df5b5dc177b5caf696d76bc96d6585dfabd70beaeab895749037b6c79c367cf7995dac92f799026d5f780bb81da28aae69906a31704810352f5a3e2aad5f814fedd7c5b91e5f3d0f02399a2a9bd0b1de806b6d7adc4eb787f7f4723bde96bd89da378be3fb7a6363e82622764f761f4afc48a8b897d406416c29143d80edbbd38e02d97ef3243c3e10a14eaa36569d8f291c6b6258a7d5305b49116ab76a4fd0226812fe360df53562819864fce25a133b466fb2e78ed33e5a09ad27e2ebf62cd8630fede2df58a0658fda8318bd857511ed85ef3644d0e5f6a90c9eb8e29cecdd57ccd7aaf8cebc00ef5b65bb36293d9ae0bb9d19e8b2a48eddbb7a98d7bc1d5b2b6b06657bc4effb3bf7898fdb054e88d7b84093b9fddbfd5610c5f679d9e67d13e0ac577bd6c8c0bf194d52bb89258dd0f918d9f74141c60a1194c2d473b589ef584358d7524613b9ff41d2df6b33359a217983bda48f65a615d4550538ed3db2586ec7e467f13cb4896c3fd9b92ba34bb462ad1b3ab5c818b380759dd3cbd7f2e991d8387bb578cfdde438762408dd762dd4976ca1c87372de80f9fbe39cd4bddaf113aca2d0d5466519ed602da13d6791f36ffe96d85fa1dce901b71a4abbedda024c4511cbfad9185806cb7c2eab2890e6d3a0a951bacea4f16af6d1708006c7eca3accd4f06c93caa8a2495ad1147eda3170465feb8201936d153fcd179d39b7df4661ffd5d8c20ecbe7f887d948e75912019f5e14cfc8c0a8e743c48a6226eefdd413284e28f0992f9b54ce96620fd67f186530ca41d0475fb9a06d21170d668db400a747b063ecc40cae7789e81748bc66b1b48dbc035e79ea3f0a018be6e470da6ad3a1656ad59e87010e8f5cc68d2808020adbdd41155ecc3ede2b054391061cc6a07151415cfb57e140be38204a590192659104456dba9683060fd0cb1808cbfcdd6309a7ec3e7261887d380b7a3c554579e6b6d8cba316fb90805a941b3b2b1105e67c64a37afa742e906cb20b1a65eb2560c3ddbdb6d5a2a8cb4e5b37e6d232d9f7b459da9938ca4fc7b6a0ccdcff03e2533d4a342b63f987aa966769e26238e30902b7bbcaf271260f3add798f6c591d447cf9bee686e7e6d3caf7a6267eea3860ebe584b4f005d90d748e2860a7e3eb9e171ba3780ec9071310ff0291a236c98a075e8f4a36e9f227eec57ae89315ff648e16412c4c4e6568bba8e5752ec4e2a589b170b26813badf8e09c15e05a7b0d8515081de4ccb4baa282cf14eda36834b27ef8ee537edf4a35c4f69d79b4a9e4097be8a6464fb400c923e76f5398847b0d362079ac08fca3e3d39a4a74eca2a1ad93f57b8a51d31857f3dcccc8448a760789f8f5278c81dce8c68c22599facfe5ad1a0c97f13b8d179089d7e7e064f397b5b46c67c4ea410c014266089e7e7496a1a24f61b2d626c7f29f3baeab765ef9e609ee41a789ddfa06c52348fe6283f4bd9bb4de653bc6bfd024f270849801a9510a86b2328d93c980ed3458214abde80eae2cf047d29475d6a76d201358613c3333f9346439b01a7b1a1a842f69b9ff262db8805f3594b7c673db94df93feea7ab0d81d498c2b87668adb9b18a8d8516403818f4bbb7c802d83dd3c5357ccefaaf74509c7c17519f1bc8c53dc66762ecdfa5afccc330af6767d16917e9aca0ed2926b5ddb2203f6d82dfa06d433d7702703a41fd8ac180e16016fc88e15173176b75a6c18b26f44b9f85fbcf82f4972a4ac2bd2c08e7542193c55f5a21e2f47cfe07f13ecbbacd265a9dcfbfafe9cde0753378fd3e4a2dbbf11f64f2a2a35da62476ed4850e0095ce9488aff634dbe646618a1f85a75c97e27c674337afdd3f8c369662f225a3b26ba5ee27f3e46d96fbd33f675cd5f084c811b7055601c123029f2cd08b89da1efac69f964bdb1309e1b2bcfb1f6c429186531368b87fb18d0589bc6eaedc6afe9600a9cf58800a8253456c8770d56cd02ab2fa4df63a6bf453d9ab689298a9a26629ad363f0ca195865e1a61525cb9baa5007591ee0cc77e6ac9c37597f0242c9d5a5edfcb6dc07ad0d03d96200ae58ada33943598e5e550e2056019df50c8be8440d74da334347783f25cf4133cf3109f8641dedc43dd2f3cc72dd0c12eb634f89992ed68641aabdf405f52b2913de405aafbfaa34a96d9d6534d01b044c6e5f5e25ff9d95879f403920263f122790c528d23350342be03360a49a444bcc1f37a99d605e23ea9597f45feaf12b5f930cf41124e8addc9fa9b0fdc9e301ea641fe91959559bda321e40dbaaaf0eea393dd0edf7ac97ae30aaf57bda375b17ffa7df07a357497deb2073cce21fc540ee2ca183327363be572c7f708f792f1f737f7c6361febf97098fdd17e3199f61627a60f9a127ec79c1848dcf13a8d7ae55269b3e39289ecd0f4b84a4c5d92aaa54eb89f267f9f1b3a8fca5a80f4aed417c783c4b45bd20e6dcd554d49af8203faa99a7349b68852478a0e94d45bda9a8bf8b084a6efb87a8a778a48ba8a68ff243a69acaf7efe3460755d37b4578502b2b184a42ed3daa29a1f82aaae96fc6906eaae93f892f9ca296aea781dcbe5a3d02a8a34d582fa97133dfb5848f89c22073a3d10987d44cf7b514854169fea0ba24642c8de0171fc6c3237546267e194b99aa614d9ed2d38fbcae36f19d7062e86b1426f68c89b6441ca6eb50ddb74d3c75995a9ba56800a74d3c695f491ad08aa51faca29e1c2e806bcc8c8625786e470cd25555b8ff2c0f6dafbdd8b9ba5550e50b6b938be294d69c1ebac7e54883223c09591b50de53567785438c20accac634ca050c43674de148f4e728d40936395667c5b04ed555cf596f604abcf25b6bf11a7591f5ad17931a3024ddab507ba4ea8c5f5b3d25631914fbbdea6ce37e0ae1e41d049286089bed13553b728788ba0a0b6775d79c616f8ca6bda11efa69af27d4c85ab1c82d5a4f88a4b09873cf6dbf98756d3bdd91ce03ab8ffa7403a5da8efac8ee254be542a3bd1ed50afeb0a33aa795a93366a77ed8c3bc1d6d4469ba4ae4073b43341530d0f7a7571d49f723e6c29d390ba740ef684990a8736e12e2778fa455e984e72f42478c816b2cca261afaa630157fe63be2347c979abf9e42070915aa3e8d20701a35df114598d341f85cf5d9ec2ca9b9ca4461d34e61628f0ed0bc014e23f5a4e17b226dd8b751c539a3a93f81640f8384432081296c9234cb3d67cede1033108da29819ba2ac3c44e5b75969edc500be9c9ab2c3599a5aae23e84d07dadba473328050ba0db71e8040b90a059a8db69211df1159fbfb3a3160afdb073c3f8939a549fb1e299646b91ec896ac0fc4442028f08095c1b05e3112b1e6c21cf35dffc26810daab847c548980c8accccfbde1755b52f2229871a0b524d06e4ad01cb708b47f792c73de73124295c80c02bb517e6ea8a26a3f9641a07875535da248795144ecce411859e287caed53e4bd25ff70f35f9517d7c3ccf6a7441b85b42f655cc468afc200bb957309b691548f8fea637b3d1cd6cf4bba887f4c27f88dd880c7511a023453a6c373a811f1dcce3911fd507e5f172762342f075aa16fc5e0ce96636fa47f18513ec460c22b21cca90c9e70281832cebc4ec6f87eb6815a2a2b35a0205b7e1cc68da2ba0d3bf67fa68d22e663eb02c94fd631fab81d5e6a9def5a29d224b1fc77fe73a3796b1b3ac190aa7696d8afac04128dd6eed7ae9db741f3faed2c13b92b8c55f0972794be2be497effce1cfe23eb1d1447bc841c284bf7f71f90d07d41c04b4af12da1fb2609fe997ce22c8190d74060867a6efc3f09172eae3408d78579c15931f39ca090ca1ceacca940f0c5436938f5a488a502a34da0af87836ed9b8ca71cf8d676b02257503bad4d0fd357e8afdb1b58431c59387ce2a6ed59fe281d398c33ac1aea245e0df87a74f8550f91de31ec46c67698b636d188c3b535650b702dfaec2b8290d116c3e158becb73dd7147c5e105ca77d170d9ad451a888d03151101367c96afb1bd6d7612580e3e153837b0a5c6de63bd6304877cf49c1808efbcdda72078f470a891bc5799c3436c73b0b125b008e42d6a5e79eb876079c00fd427f7bd7b0a9a120414bc01d4e143b6b61e8e214eaeb6920d96f5052463c06dc1b9b4b5fb2531e6f8869f61c54c42d65e3ad97806000e2f3d92fa511fa6e7b6c3c159c1ebb7796d72d594096b6d897ec19702ca15c27215cc06a5c4492eecfe32561731405d9f7ed194dfd7f8ab7e36289a333a6f1ce39f662ee3cdb87c9b5bf7e81bdf05c5bf07535f5dd29a93392d72d20b19f43829fe6104cb10994cde920b199037afed01aa92bc063d6c7a28acf1485a120e395f9c03bfb03d4b97b5859ddaa1981cfb797a011d0ed92c24aa10d1a29c5dd3363dfe98c28fcc223a9d5d29335c463d7bfbb028765c8ee48b156c73bfa4281942bbf25a7dafef33585e30e0a1265081b160ac6000523ba77c579319cd985e7acf0394ac3c44e0d9db63b711c91161eb7fb90a4592bc8933b7d98a7e46663e1bdf392358d9fd7795beae43d37a57cefb94c9465f84c9d44ac7e4e85d184a6c7da743d0b9896242e3981b2bd00f4cdd99b5adbcd1d4dd9f747d64bf29cf514e8745f0fe00056d0ab55e2fefdcc7850b71740ee4cf6af519656cfeb9ea0816e21e0b4e919751a3512a8d25f2372df746be251cc42148c5f0fefd5180ca18e460cfe6341d3ce8be796fede9686c3606c1569cb7ee3f79aa7f26f9d9599a1ab0bcc1ba16e0b213ecfe9d3a4ed3ccf9df164daaa7367b6b9c132809b1a3405bd6ecc8d98f2198fe0ae6a34d5fa8cb914df8920dd9dd3d6dda37b542fbeefb588d48c1ad375ee17fb9345b555d7e6bea34ca16bcf49de0297476252ab8a60e406a9f6304815cb779492acb15d3feae85c127b0575f4c6a00b74260314eaeb30fa8bbc5f428b3069cc7c87607817bec77266e32dd4b1fc307f68211305fa7aea49f47c76d86fdf5d6146dee704cd4347d8df07b90b78cfc529dcdfd7b9f3cd648a3e71b0aba39caff07975f69c471385babd607b81dfa22994d81e56f4bb3d4f9ad744a1985abde7d3e45176a7e1116c607c7ea0de2fca6e5f193fd9919baaf0748f8d7f0857d72fe0ead220187a5f995c58c4856534e532de962e11bf47467fc7da1c95cf7b637bee9177524d8c4669bcfb233c9963da96e4f956827504edb7d51f3219fe386f3bafe61e85b8a8e481c5fb90439704957c86b7a56b54de0fca6b8a7f13d513f728056e07c13159332b488fe233977099c9596f947842059e74e9f736e7192f3bfac9e8d473b54df3a5f7a8d07f2d0a182fa3702e781e76ba054d52e08fb41e01bbdf95fd7c8dc9bbd52dcd4126fb75e5c09deb562a2b994955620f3cab5299f84722f1b2899e6223cd9bde9c383727ce6f669cfdc07a65c5112fe1c4793cb7727505733aeec3a97031bfd787f3f87185ab7f2d7bbab970fe895ce22c174e5509b3bc6c348b8fd923f695be3d3dce471b72b3c929fd1e8be131d3e0a59d957ccad434ea22da322f1f44ba8d262ff60e8aed1a85cd578e28bb437f8bc20744ac8417318795559ea797b2bab22a98125e19e260b5ca4edc1cce7a437346fa3b393d1c82a4222729539d78b91792f397d835cf1157502fc66f11c88db7aab955c15af0b5cd4a5cf175e83defe4f064aa71564e63bbe470630efa68535d9ef9b0c9716fa991cc1c97971c6174cc2b4b8fec9eb9bc9cbba424789fc2e75d73355f079a8f50980f45391cc2a6893ca7a318ba5df35d4b08d28b9971399d24a7839567a26bc5ef57791dfb874dcd79f9a4b34b36bf4dae1dd3f6718549dea10e49bf14a7f1a60eddd4a17f6341e723cb931447bc8c3af4f001ea50656ec37bd5a1f320316eead04d1dfa8db8c439ea5065c1924cece3a907d5a259f9dbe3ea50a1e8c24175a8dcef29ea5087a748fc9c3ab44fadc840c68fab15bb733ca4566ca7761c522b7230769a363fc0aa50b27f5dfa7b8a7e90e8c1444d3d09c5b039ca69c8d7eec8f8fbbda02703ff73b5e544d0ff5d1ab877589c0692380c756b029c0e11f3db5b051faad41806b88f68a48e3d625556b3a201bc2faa32749680234aea742ce6c5dbae46ca553802d21f36cd292ffa92ad311d47f3e48ee839eb23aa4f760f2a541f0e487f8eea331cd20aba79d1094c1f189b4bd8dd0f0bb1571d8aaf085acfd9d96f0e5d2ffd09b880bf1942f44d25ba093b1712763e12c0be3ce645527d1857ba2e8afd05d52242f00dc4fea616fda99ce23cc5a81ad23e13b60af9d37b94862d48f75314a40c6afab8309ec14d53a564bd8449b8bf6fac54202df5b1a0ad7750a837a650b747bc7a1790ed942b0844d094738581565a7cde0d0bdc862fdfbf76459cb86d8cb7225edea94a139f3bffdbfcb54d94b76b0ba4d702a8fe7941f48250433741f42688de9e97339e978f83a9cec7bb8400aa88ca0708a0154194ef154009c13701f42680fe891ce21ce17317b83a8fbf27bf550a854570e7e3c2660140fa70ae6611f0774fd9ee52e9edd702682fcf0bbfa4357e1f00f121f0604e4715382fb7da92f6b4564cd5dae4357c0e09a7740f9ee630d5fe2790d4dd1a3f5b7b5c2c5b0a13955a70e552eedd594134cccabb80692127bfb12737793bb8e9cb9aad85482cdbdf625a3e3cfb9d94a9bfba90bd9886477302589b9f0b82a909c4a37a16a6a7f427023bf1899ee0652e34bd09da3741fbf77a46d9adff40519b8e78912018f948cdd21398d3f120980b0adb84e00f0982f9c5ece9266cff13b9c419e2f698e36e5607c1706ccc4a316eebdba362b7c8db6bc34cec3d140cb3d5ff29c13036a3f74ac13062a0774e8bb1cff04c59b9c562fa7633830ec84a8a9e62fbe57b510898895a5d710b3649cc6093f68adff9ba66f1ef9ea32ca0dc79060e8911df00bb90be3cb296a1a30855b01dbb73e3c12da594e8c8931a0b1a44426ab7202a5693f2a4ac16c5fca13502299444f57b9740063d0c52a50fe53da9d3f91c8a01221b2cba17e12bda04d6627fa048751c3f512368508c6c2fc2a6a86ecd6771064d785d27bea38c6d5db5e9f929f952bef2df29ac10efe3f0f92baa4e0ca287f75d82fbb00fe72e9c9da7500aa4e1b43aedebe5062c66c7b4a1d92f097ef9a5e9d1379fc34d15fab71472f065ff100d6831bb88e2234a35e9fa6e869a7039cd87527cf333dc549f3f8a2b9ca2f1d89b2d2da7aadaa31d4814008855b85b80ae38f31d8514c4272035ba8802d91a02a95f00ab35c500ffbbe898702df421d5309185c2fa4e55022dd01b6f7bc29af7d1b9c7c1b10b10658cd64b9804d136b8158d962100414398b4e32de7480f386b02bee839b5831a18af7206dc76e4bbed42c5c14af0d0453d9abaa47a170da9cfc1462b0bbbf38a71f6868097ea48a019c7641d8719306bbe96452054ba0fce7a66d4cd2d674a617f9aaf394d7a63613ca3670a58448bd0172bee61ed940375f2bd2af4735ab17a423f994f85d3253ff7c01d0ea1abcdf6561ce4bfbbaf245dc1d7559969251baec9e66730284758c5af5120d902d6bcfdaaaa88fa232da6bf7f1fab1c54241bbed515a7e08bb0f66d0b58c8ecbc0ad356b737ecbc3eab7de84c3b9da4bd8192a5f79360b667febf557549ba4e8dcdcede16ad10e56a77781d72e04ea921817e96a97e1eb8d66ee5923728db3350d71610dfcda41f91fed9d9f4684ac9b808f646c022f576a132e6ae365d718f2a34cddd3996345bd7427dd97ef3247b1388d567b64bb4ec93e629633e82d7de4c9f0acee08afb445355f668bda7f089ab54804193283e52f48536f978d7a0fc27e6c7df5c83377df84f957ce945bfb22e4c06b948ba07e104d7f600de5f500fa614df5c80373df88fe1068774e0f512486851cee6a8d0eb1091f3a75cb6c13212a9d68de57697e8bc858ac9051d34a1fd1b1196bb4b635d57f71d91a21853488b4c74bbcfaad64f0d2c53cea0144e617cd0735845c32bd6810dbdb208488e141695bd8e3d5d1d5380630b617910386b85e84d0dd3e8098d1e96f3834415811445580e058e410a7f84b28582b8f65247b410453e476d19e8f62220e9d4a43808f2622d0e12550e2452255cf6753b055d9a6eed498d0507c3253ab06b90c0354091c68610eba3995e54da9f621061a51ec17f0f52a2e34ca01c101d26a4852e88fec2d7a5a823b040c40d702c3148ecd9a0abcda014306fec63d41f0dbfb5edd7c81b8f705fa490c9ceda449391d1e4a85f946e12a4d864d93c747c529c83829d67c563ecfe68c574307bc88ab1e0764b9a1a6f0da1be560c5d5d0147216353bd14eb57e106b846511765678954dd27e3b65c6b0353510c9255065980f516dfc90adf0c031d353db78342a9a19ca373b6bae230d04773203504e086c3415723ba6b096cdb365f0ba9f75aff7914e5ed6b112d44c3c18fad218cb598ebefecdb94d825f4c6cc771a9b56ac390c6c790875340c4875fa460a7a9328689a4bd0b4dfa8e7738d75dab1ef28e3ef3ac2e76d9c150dd13b284cec1994b539de0ba6bff27bc8f5ef4520d958dfdd77def6ad09d6ade8ddaa588f0e2bf24190d7f276e45c868e9281f41bcd701aea11836160054a62b25e98e78d7cd7e2fd48c035a720c98b0040c98bece775cfd0f1771dfe1b6e4b2a95fababa09eb141621486b5567e20dea08c171c7047b80eb5b5d91b569176c0edbfcb058599f9c5fb353d7f87791ef50206b90201454ee41430cf5a11d24ebb30b20e1b389ef5acbb55358dfd987989cbb86dded15ec217dd1fa663c9331095df95e64eb1f57acd5dc732d0d8f65bbe6ec3d361b5228a84eeee88eedc640e4de101e91c1723c8b5a3f157b7de1316a932243847766fbcf0bd5b46263774dc79da52f958af7c46d673dc3bc84d924f1fb94f33fceef1c7cae400275b420101ad21cc17895153ba37cdd4486aec6246b91204e3604431f0a6153db7c8d1f979eb45e860e297635f2f5864000dabb2a7d3fa4e1148cdbcb50577f00a7b6f53e532895a0694ee1b8d30b24f5bd676215246811d6c54d203dce43d79c15cf449ff6bfc9df0a6503a535e2fc9c9e977cce0c7d13f32c8684f918c1ec7d2dbca93a48a12410344edf010970a93d3194ecb8c0c7174683beadc4a6ef5a088ced99a1a384edcb0238aca0939ec912b2ef7626868eef1040ccb6f386d797be318d19958f1abca0c1f66f14028546b7e0fee81b5e44f3dca6b16a5f240befe17bf663e349eaaa8a4ff6648082b13905fa2ec2684fd6101ca167a369bd415943ad58ebc334b3552b862e8ab0d999625980b709d2159503f4677c3f561e2986b5450341366dbcf9758dfdad92376e7c09ad7a4e6383f9458ffc767e81363c2eeea7e588c32015d91ddd5d07060f847f276f5976b6721e50a291dc2dd7449edc697b4e885a241268afccd4af28cac0ce2c3bf34d2c9ba11438964064bbb18665eb62110317386bfc7ea1e2992fc96fe3bc8fbe8ee571258652679fac71099a0091355dcc8f946548e5a2716627765fa36f4d6b85795a207714a8f75523014bfc9685923d05d250f8fa16ac5eebc67f12881ed7a285c21c5bfdde5b2d03591bc2b7daa22ca38ac340fcc97916f83adbcf28df4f7a1703d26fd1b69f177f83892ad3350af97dc6bcdc6adbaf73f2b6e98d8df165bd09083fb08481b346dfba6602252c2786c877c249f86522bf7e798abf91282c7b438b9f11dbf2634b266bf69f5bf2128fccdb78d21041c7b67cd7dae0b3da199b4b68db29dc2343d0283da3a0a7b1b5c0fdc41aeb8ffa38a1833681841620e55178549ec4ef2ee5cb853591ad375fb7e7a0abcd392d9c07139992daccedfe68ad7eef62beabcd482461571b02bd1d0107d1e27a757312363bab203508eab191d0b7cc28cf9f44d001dd8e4327c85085019523964182ee5981a8836f9637b6c7057f2df3bd0cf1d9a5b6fbbc9860516f281608fa86df5132d79db16b64deac80089ff7de39147808028dceb22d35665037879e343f6f0e741f53e074a64182e572fe7e119d26f61cebc7cede15ee1087e5f2b2f16715f3d8dd0b16cd48ff862cd1932c4cd31ebab3b7741392a266d6a63087b3788ab17b67e2328fc063611d0e2c5bcc0e91f98c046559e033d7a4b5f45e9412dbf0bb8aac5e4fdc7f67777c58f44d5b66674fc7672f62ba1bf153a5a1633194f16d7d80473b8325d4d7cb90de6fa60fd7887c15146c0925d9e76d52318f42f14dc79c01bbb3eccb9d6130eef4806b623d69cfbad2ef8a6797164ba2feb95261c6a62578ae29e43a4191efb071a90c8df5cf3424b101786c83165b62452679f1b5ca7dd0d5313e1b4040a5a8f11eff3b3903b545ab820f15cefe18381d732b99b4f836646708cb99b0393a899e5ebfd1db4f53f9bd69c5db6fe4f6f90f1178ded727d61f889d8adfdf2474d6b341b73c86b9faef6b243aa24934591cc310a16dde15d12b7c96e4cfb2fc9728cb8fa2faa09c85f02dff217076a220cab9b3934db43a846e5fd39b07f3e6c1fc2d7c16f8a65fdf8539595c0631a476a4b0d1094ce84828af28cbb50b2286d4ce2b6c745624efefc4866e1ecc7f0a3738e6c254458ef17185105e2cde2d43b79d99a3a16c0b1fe8c6c4637344e26d5726feed20d85d855a11f7f0dc77dc07fbe960aa50051db5c8d61f23dc9e86d85117233589a337408a1b8543dfa9cd0a6654919a1672ec0d2606c705119bcc8b87357295c0d6d557fa5be790ca46e9dc3177ec551d88f91defe9d7adf1b7c572dce658d82175f9e2f378546dec6da90411cc4471fcfd5530457e10ce76e895232d7e8198fd8780f5fd4eefdb4dccbe3dacef7e58c93dbfb2908dc7b884887d2faa1f2062df5f4ec42604ff84882d1011fb0f60413711fb9fc1090e08d8b2b984fb80f7641683f5659dc57a7d8b9f1e03d98e3341f24b2d722430f39c70e352ff410a25f598009dfb64593c585b589bc4be59a4e718c2b3200e61427c5dccd7de5831848d62acc9d423714ddc6fb256b8ff8ae524f1bcb588c663509b7e90a84bae7414f3a7b6739fbc72cc08da8a05cce2ff98fdfdb438b762a5ce8abcaf2ab4901cb04e545a0ecb8172ac59e85a02708d17426ba1826a26c477b5a12751a40f9e7fe7b900511a684c91e7ac37d45ff01c7591f5ad176b89efac4b7464fd398d379227346ee7e3d5c5a5a14f3750aa513a247501f15ed4d9be3dcf452fb15398d802705f973dea3b99f80e100c3d9b03f55f75a90fc077caebe0496b31903b88c66b2a0be0584216fb583a5334cec2d7ed59505746fb516b2c12f348db31e5a914f378155bf96cf0631907033f08268bf111517eab6d967c2e0aef4aff91544592a4da5952fd05910109d91f93ffc3667a4ae07ddef426d6dfc4fa5fff986fddf92b0bf8e5d12e9211248b67660489e4068ae7650455a425be3b238850fc3119416caea730a6bce94dd8bff187136f6c51eccf44638d8b7f7b8abe64e296e7586f0418ad4ec4fcecefedecefa7e27073f176c5b0a357c50227b36245492c96e700789ce67e94d1d2a4c56232f1b39f899fa7a91022873820ff9f8977414a6cc7bcb8fe8ce163cfb21421c744adbac6ab64b222ff19f85fb63686cee9e96c5ab106f2b49dc62c901ea320b173d88a6d913b0309ac9877bd7660de583553b3906228db02ad5e79921f635f2ac632743b2b627b27a1bb45ff01580689380ceb2c8c5a476f7e9dacdfc877ad15d41b0a0b31ac5897f6c278b6265052f1fa9370c4aff153ec8fad258c8d99513715e8ace256fd291e388d39ac1be37aa2d290c25f31f6d135e7553acb7bd949d00cf41b337c9e40133506f8dc37f785d11d0ea1f27643cf893a46ce54628f065d0dd1feb17adac6ed6750e22952053f8904a650ef470379b620f4d9da30d487eaf76e1114d1aef9ae2504692db25d8ba45840124e1ea63e03a534745502ae290709ca802f01ee0fdfef426a06fd9b58a0858668b33046be0fc3ad10fc12ed7bf98e24cea154cb7c4a14aaa2f315ca9d1e5667dba5b4384bc7eb752e8446b5cabc7d67f1dfd72306f912e37387c72fc1a648a53607d46db23f679c3965193e034cd72807ed3ced7cf130e18a3b424386098827edbb18525fb9262cddaadb6ff34aaacf144e83cc37c17b060ebd215b7be93b8a40c340d73cf490ee51918f4b242d2d8549639687136a2c9cfaf4b14895e0048df059299aa9687a4a83a6a1c966ec3b9d1160298d040245d6509612e712d3d234482bd7b3ccbfe43ce4bc38360d8fc46ba7ae0049af404b381655c2cb480ae6b96f213f2bc5b0c1f299eb13f8977dbed79db789f00e0e1953e987ddfea6690dc384852d53e0d729d4edb6e776263c84f330edbc0a73156f5d2fb9d9af95f073bd2ff497f6b3c35f77df5f3247a8ab3c1dac1822fea59a07e7747ca5296307cf9def282be2e3afe04fbd7c5c6aaeda1f464cdee592a9aa9c06ccf8f19e7740e029c4e49d5ce1fda07b44fe4de78579a06ba2036fe9ce98a18466b0c403f1bb7cfc2e666bc2ab5af78bef8b92f1e53dfcdb84634d0ceb847f17f6b6f4466dbf9f53fa4d714dce7b1b3b980f6cc13d95de491d09dfce987b206bc8935032e817dec2e7779ef1423a48d6efee1a14dfe5ed0aeaa51425061b45d2dda08e7ef010ed3c65ec39023a4a40623378ab9d7bf43735cb56ea204be888cb422acc3c742da19fad07e119e7be6bc5b911b82bbe0ebe6397de33cae7453128b419109984ce81a69234242ee79c22139c305796a24be6a6d34294ed05380192ef485a1cb9bb2d2793917753a81395548da7e1e1e1c4772c76f731afee1753a6b7f48fedf3538bdad2700965cc13887be5dea89b088e3d223f1764ea559090374df01d7b63c4abc8484ae6ff7920d9b86fc138e5dda66984cb30b1d35036a7a1deff89757b9ab79c129fa85c2f4f423189e729ddefe77d3c770a626d1ad62bf9c6c93a1cd879e34ed1e5f6a6d5b37391f767e8649c52fc12703b1b3a2f7b13eaeabce21eefdc876df88913ce7e295d8ac97a434fee4cc3a4cfe6cdceefb3b20c1b160af7bc83ac8f6a5924cdf40f56e8354bb39f92da51f8be4bb6d0aa6bf87cce49bf4940d25c039a8a81ef33a2fa388558305793ebbb80fe0e7e0c8e9686626d7e12ffadc2d27ad401f44bf1d0dfebfff9b566d69bffe766dfbd947d975dfc8f7503d1412fe10d921ed523915f17f1064997f306518a7fc21b5423dea0c7df9f4dddbc41ff506e71b65388396bae9680c19d2cf15e6198c5117d4c524621f6aa52f1d96fd461f3b87ec2461a8ceb47e9e478363b86e509710a10634ec1208795762220d75eeaed91591f9563e938de55a8ab4b62dce13870fb8c9115d83930ddc66ceb47f584c49c4d89709d34de32ba399e9dabade00e1e13493e59d4a32971a841d7de14f0d5158a71a68a6193188232811f2b1730cd9d44150a4bc96815ea6a4ab1d59fa256172b005ef49263e74cbfc65a8fb4a93228c5da10c6f41ba6080e03a244806990a80be89035923cd79c926415f7f5c5a83fcd599cdcbdd1b004289b154e41b4d88dc323f4fd081d1305898242dddeb45c8b54db0abf4ca2bedc5906c9ee5c7da71639fd86d5a3b8d6c3ad38bca8cf15f1fa90629ccb760c5c730128fe598f540d738b0e0276260986994a3109bb233aafa69612eca071670adcd7a3f30b9ae632d0ed34d411e2c6558a7f48f68e60550e5c6d4af02c9aa322eed28be78261cb3511a455aaa2109f0b5d59d244247b53a8f476c23d2e567bab343af1df37049b4fa7382330e53856a518d3f14ec538fde83d16fca6b90c9d7042cf357574788e25f82e40645d2571153e156249f3b8d72da3544300edc98b913bb64bf19425632e7168178c40fbce61f94c6cf89960679edfbd22ae624540414e4f85d18a9ceb9db8d8eab5223c0aec33d254e37631c33d4a684d086e9cc90d36a7c7b9969da3e7d0cc8c28953c93d44d903b4bd8dd75329c43db8e03f64d58b4b237bf3fc7348575718b06a55cd4fbb08cc00c99ca103a3f6b88237decd65f10e8df33fcbe73832332598219d6caeff14fd2bcf3f76da3da7eecc277cf230b38204ee55ea20a6df6db851cdcdb0e6d7657cb86f3526d88fccc573b408fce69db4989cfba322e3a64d91c8991ae92eead5a0e279cdd22e64b36c72c21540222d4d74a2977e184718b6f62b0d5d73e4779eb80e19bbf4ddc510493c6fc04a798b08b8f46ef11eba7e8d824b41f725eeea161029cf56acff8e4b7a27382d40ce9ee3ade8c5138c56f0ecb97d8f336d522e03436beb3560c1d315e05a62ce997e045116cc5c3fbcdc656084fe58e90a38e35916200726ce8edb7a4206b6ead6bb8c761ccdeb92f9313ee057780971d45079dc3079dc2b9f307f75b767494de6f8a5fcab03adfe304fb7ac699dee6c999417f4ffda2de16e65d353de5bd2ccd75abcf175da5673769cc5e7a785f3e20d7e3ef708006c70cfdaccd4f1afadf91e951fb230bbddc123d6e86fe7f86e98e5dfc8f35f4d3412f5210557950ce33f457f0a8e386fe0a2cb777174425147f8ca1ffd7b2a99ba1ff1fca2dce35f4f3ac8bab19fa79b6c45e433fd0ed19f830437f9e6572a6a19fcfe3630cfd48435841800916dcb1c2738ceedacb51e33d17e4f3622e958a563dd9761e8453a8afa240ee2c83ba2643d9fcc1806a49e2b8af53230029f8c9b27640bd96154b3961cfaf5d9826cfd8a99ef3314365f63d294e5a7f5a5b1bebedd5698cbe7605e575638e5abdf6eaf54b30f79cfe0ac48200f467d9d23d017c31df3ca97de25ab02475e7225180535011f9478bc5541733ad8eeaef2cf3b3b75799cbee068bcc5380fb7a8939e07e2a8ab15a3f7cf729ca22851d0efc40b2279641624dbda47467049f15fd3dc7d896ef4b1681be8409980689f8cce77bae925a6120d08284178db5c4fcbff388624ec7a13b1b4a48f0eb783f6971d66ebfa37eef1a07226e33be5f8ac4e363118362b6bef6be42ba264cc0b222f2562460d3ba35a191a1c48848b2b3f83daa3a6be5a20dd5ca3ce7819ecc2211098806e93f8b5e064e7b613cdb353f3314a21970148103341fdeeb5d00ec0efb6dcf1ad83069c43c4a38db2b7d272ab9b8e762e53795e7f3f89d2b22daf1be8a8876857b53e58860fdd8a35da0e8ab14b6dd915a66c18f181e3581b0561f6a04a1fa45054aebcd08723382dc8c201fa5d6b0abffd166103aec450c21c2e399f817ef328454a06dbedb104228be19426e86903f98639c6f0ac9401eae563b371f63bfaf72878eeb9a4410980237e0ead438e489c731eea333f449dc8f9aecc58f3b7d1e3328295b7eb76ab5d018ad975874df56a958c22e8fab8acb715553c7776c99fc9e802990ed94c70f820421a87736cc6421f8ba3d0d624df29cb548554cdc6ff5fc5ad1e4a5af37367caf8d5898fb4e3b66711ed42f9a270df258b54a358da9762cb6623df5599daa3041284c6b2f754412c3df3ca7c6fec6ce1703f320f5c7747b1aea43929414a4da4b5f50bf921aaf0da4f5faab23313b3b7b726dd38b44f7e4b9907cf95ab9cec598a602300c35657c116a5eef49023daf6675c5e4eb17436ef5da8297bccebd376d68a5426af5b4d8db0c875ed2175fe9771978c9c01167a7afcb6f6a8669927b4a5458f3e81c2ad558bea6e37363844af59b748042dd9aec8bff256ab8138a1c18a138ef33fa2171401f82b7f8378a67c70a15e116bfc0fffe4bcb14dd54cf9beaf9ef2d48926bffb16a271ef2322ae743ed3c95532677f1e13c95f382f0ea94e28f5139d95c4f615179d39bca79e314e75cdb63ea26c1162c41b057798f09fe1af15e11511b8b527356425e649ea55c5c8bf252ec146371af377be6bbd647d53b9a0614676147ac0dd293e8bbb6daf88ac732f4c60c56aa6d9d0d56016d8aed95a93a9957bc692ec3048d2886dd700aa42882ba2d0167c555382cda0f49dbca35c06adf3ecf1e515953d0cd710d81d38ebcf108cf31f15c7bc630108746b34344eb565d8bb1ca53c49bf492fe0bd0d126d0d7c381638f881af93cedf5841ac1eaa3e960873df6f43ced42e35797a566bfbbaf2465c3d75599aa301c77b35f382bc10ebc3e1d8bae599741ddfb8eb209f5c682c0fa376d5a929ade891170c03074d64245fa5fd1b3ffc373c00fafab91b345d374e8d9f49cf5ac0a723f48795d2bae6637b27b98e362d270ea2a787e3a8fa7394cb513d269283fa8aa8f85e9fd3995edd01ddc5f438bdc8b3331e7d83929a6552c70ff9d441561b20f678e782f8b65cc655fb71786ae2cf78c1f8592cd70f9ecf219124efde623bc9b3f06b3c1fcbf821f8370309ec73e95dc0ed4e9da69fe934a6785507754e9fca545bbdeab74fe5a89eea674de44c94b8992bb3ce06335d09df12f5201a0269c89f9f22e75b4a232c9bb2b00108a6feae84d1dfd27f0903375d3b18902c916da5bb87ed7d255191efe7c2b55716fc4386ddfd94aad3c5c87a08ade3e69db3e435f34bbc0b550b8c7bd7709faa1ae2e8070922efe8af5e2ed14479ea29ae9a951d925d77f7fed81bd3a3090ec05c5ab2611d60be00651a03736811c2e0306cdb0dfbd3ad500c558ac8466f17592721a03c75e184d7a2e5b58371c8fb66062940d7183363b4b28e59037999bb23ddd4edb2518b3866ea2ac8683d3de766d6ecfe5063f73839fb906fc4c4af8ca7399ae0f72d16f42bd91127b4b5c8064d211be770c1795de0b5eb7646b4f8f654fd0b96d438cac08240dfbad2aa5fe10444676efa6c41e760cb6e61d650cf7bc49efcd00895ace6344f090df750e2e1192f0346f396854014fd2c7f72c749469e0dac87846cf24dce740b601af4b4271a349c88aec65610a944757c3eeeccfb6d8f32652689931be8f07cb369e961192d1760a74d9b97bf4cf8164d9b3177f0254ca9ebde1193c685486fac8e4ba5eb63ecff939eff6dbf77bc3dbf6c8c81cce02dfd543101dc5ba0d149a05dfbb1d488ed89686a4ce110f3fc36b711006e9cbe3b972e79958dcf6666fbd10a983bcb13daece7a09e62d876089cf7308121a4297bde54dfc16509f0a24fd2a63e23360656001a18d9464a5a17bfb33d28e9c833294cab12c2e5b4702d4f7d60bc96b51edd493a8ae2dc2e77f001ee52cfaff7028982373cdb2ee98ee55823dcaa1a108b425798b3661fedf27be4b07206428bf323b4d5135de1edfc533f9ddf224e2bf9a41cc3769fb62cd3da257307de7cdd7d50daf3544ef4689fe53f4cffd38fc7b7817f73db1b954d45b2abd410765b79f82e7da435f31d38dd1d80b1deb0d9f876d98b0e239e7722b955baade7e9a3549e0a95c513d508362cf5925d06523e0982248591b524b600bfea9948d47e718eac4bff8136b789d10c9b93f5f1cf156b136bfc04575c10ad43717d5cd4575332f1f332fd39b7e6d471419e522d18fb2287d80bbe9f182d18f84e29bbbe9e66efa73f8c141a792e0b91d913b3518ac505e4054ee0cc3a6bd311af36190841b972972a1de1042973b9aac09944d6137f02f139869be171388d9b7443926015dba250663130b69b30171401188032e6cf2026d253af7385f4a06539b06f565e31183889c15cd23e3331cd3b7d03553063dc18dc5995019a4b597ac785a9edfc3157b465745f0a0fbcae03e9ee2cc80c9d733d696419c1b47bdb4381ec3d8af9b99b196cfa120848706097664c6e3eda27e05e13918db8bbcafa7c78cbe5e8d7e9bedad0609848b6c85465c083264345718b9ab73c8f6ed73614f4b465dd63f09f4dbbfb64481657bd3220182ed12a63a6ffb83fd76909e6dfc5ae69421c18355b4197571c99c2f15ebc20d8a8d14c8afc5c0c01f30516588b279ef2a6ab2bdf0256519166b2774a9929319e5faca103ab6fabd6b6c8d7bb480f8f142827a671ac8dacc7347556bae40d94e8bfbd68ab52fbeae2e03a91f81b1b984bd496424645d58216e71468a068ed1103aab78ebee9694ec20b1d7a1636f886225b236829a64f376ad220fe902b72102d762c6a6ddb301127506755566bf6734738306e75945e514266a8ffedd4281d04881cd8d66d9b85f61f96e0ea9b30cef3987fc3251660073da0ba3410a346285bbe4a0f59d1a317c87ba5d23c6b393efa5b138b48e3051e97db02d0475fb2dd4090c50b6f7bde4b122389742c495e641e9c7f7f487ef6aabad757ef331af4af7af6520d933e05842db519624ef754403754b86e631710ed33babb3405e126c4c9d1edf7a6b16fc2b4ee1d8123c47790324afb4963bcaf4c602ca9d09708daa792daea4682ff92b7d48cce58d7e52d5ae61694e3e0bfce68f2cf547e7299c22e0e64d6f9af64dd3fef59235bfe95756b5d9301709ed7cb83f4fd5dee5424735ed07e182819d0ff71fa568ff5a3e7453b4ff31ece090a60d5030b648c5846b856786581391d012d2ea201270cd0d2d47fd11e8345aea13cd936b64d97c899b3ba7ed6352d382a639a5e1415493cbc68f8a5a634663a6d56dd3c9b52b1b4bed8d5c7333c63b7d44586bb3f9f7635135ae539962359cf8497cf80d606d3e520e956b35b5f6678230dee4d09b1cfa873e3ceca25f590ca5a35c420abd17ce74f8bc470aad2887f35e2994d07b93426f52e89fc30c0e09a121165ae6fef5aa48c8beae0ea133a2429f345c7a8e38fd5001347327d19c928096bbaca2e7da7815ed2041b4442c735d305af2b8d0b2eb8bc772d2b631c59b2066da6cbeda8af4d964fb42622e4d5a524f6f6c02497df3598c2e439acfc7de7273415d1d03c91e193a5a14721ef8fe7d4c79dde6c13d2be62b70ba72413ddbcb4239ca7167e94bf6a2ab3736bd44b503c94e49f943bb18cf45db18fa10f7bba0b4b276dde0e202fb24498e598d599b0f15d64978d6cd687c13d66fc2fa07bdcff4925f535027235c424897eecf84417f8f902e5d4e4827f4de84f49b90fe6730810302ba4484a5258c154493ce9437cfb5840e8929318b71096f50b667a0ae2da04c40c4363c38de4e1ab390c68b109f39f95b13ad802baa248e201f632be94115a1def90ae54ecf7301ea27761224f6c66f5081c9d6d52f0c33b848c797221d2cd924050e48816b4d6882adfa03380a4bee6498df1b5a4f990ab6eaa288831cc8f62ac0c2bf6e8f7ab286283eb132eecb6813eaf6bc184f103aca2674b515944d22f4c2427ba3692981dc4190c5d3f4448bc4d05c5cc01b7f8fa363021e6973a68027fd9778df1385cf92fc5996ff12e5daa3a83e288fe74878ca2f2d0c2ce34f2837bc7fb817ee1f15a58ac7cab5075110e55c186413ade0b1079ade24bc9b84f7ab993bb9e55795f0f00817090690e5c312de09cce7908847b9cf05453c42f019229ea24ac2a3c419454d12a4daa32adffffeece726e2fd13b8c011110f8b40248cb331ca451f126a5919225cc0fa646198da14c4bc8443c03164d040471b8ef9c9cbc4b492f5d273dac59cd12178a6636e8952390e69d3449ed3ce4acdb07ce8c3fdea8d34d813e25ca07fe5b9e686e29c10dacb7d8e093648d62774709fc3213c46af2e0e83b135f19c55467326ead2b5de6091365feb30f5dd0eaa10ab4b151f99389bd17a79d1713c08e647a34a0bed3237dafd07d908950b96b6b8df1fd075b311de24c8dbdb51b8e8d79522d92817b115aa6702862ae4c29d692cace042ef3616aa1f8617caa67a0a1bca9bde24c91b3738724fb7a54905b13adbb9e494a8428f7978bb8e52811042904166500ac7c021a8310ba3618a30ce931529225e2da61256430cf52145d2901abcc63c968c16c0b104bf68c44b9465f8bc5e022944e0192d7afd46af42d22206c3a2179a8cf32c6afd54ecf585c7cbd13326b5b2a750521a83a6360d127b5441cf06b8d686a2b0d9b54047294de63a8b86cb7b8fb323301aa4019af8a37f9d2a35567df0932ee60ad67d547efc2351ea7f2de3bec98fb717e3675f8caadbff313265c5c89790331541f90039b3227cfdbd722621f82667dee4cc3f9b6b9c2e7b065b0ee38a847ffa3b49f8676db690d60041941b4e611210d4372c9361598bf65721e38db36ffa509a2338e649e914e19247040679df0814d2784ca141914c534d60df47399df628b722e6f3640eedafc0b14779bf5179dc84ca9083be35018ef5a342dee4a8b2b2af13eb2db5ecd22a5694965843445e1d8fee8de6fca1854ce4b916492d7a375d3c42d2b57aa18e66b00186504725c0009bf45323d1bf01ee5b5f4561d298f9581e7e66b2b14b11c24970818ee6a0bf4660dc51bf1fd40bc42991c393b00e255508e44eeab99add1fad8beb12e7bf3d45b66dbe9254389d7f1bd0a8db8a2a601f80b837f2bf8ffc23623769f20b04ed3f126bef2668df04ed3ff0c9a497fc8af23419e032f58599b07c5db9b942cb7f7f7d614ce64d70be09ce7f041738241f5319a535a63216039ecb6cb4bea3489eb39e826702f0156e650f99907d5729ebe82443666130f98dfedbc67292482b883604dfb59241b7021c8b046176a624a36afc7a5f8f2691511778a59c9854f1713b32a9e4f3e59956edf8f29a1aba35f128e23c0ac6bc220d1d0f4aca6c403de51b5aa5574d0c7dbd0c251b7f370ca4fe8c54b9d5874338b6e7c035a71e896668a49e6309c0353786de5880fad3b8d50d4a7de33907e32ca36948aae734b589e79828d4d15b89aef25c104caabe5344e8d8a9efbc469e341cd22a2a769a557dddb36f3443280bcc9d01471987fa70d7b6feffb377b53d8aea50f8074df62eaf3bf2716146a8415661a4d06fbc0d458b9a05454dee7fbfa1adb3ce55479db8f725e18389317da31e9e3ce7b4e73cc2d9ffebd63da6b723b84aed8a717017b34cb8b7752cf77632917c9c94ce825f003e97b145b9f841f65e9e4a983045196e4b9643c26040957458a57caa6ad024a52645d02547e5164a52c5a63f0f212d7e48d7002c8463cbdf73f21704fbdb50c2daab07aa13e3338527cb699f6d87e6bc189d89d631b52156793b96d459c415a47ee48b773612962cab6ee8d1c28a35570fbad15e3fb64f9bd966058cf475b0d5716b5b83ed647e6437e5d125ee552cbb2655b37d1ea81e3c71cbe794cd9c51d5e055dddf14750d52f3a2692a550ffafb391057f435325648f0bab98fd43f6e9b7352fa1859e49373b5fe1eaf5c0ffbb3ccd355148cef75fba6aaa3ba483e2653bccd2f12f5192fee51d6544916afbdb0dd12294df8763f2f4e3c4fa3aef1e21ea917a75d41a3f60f7a058d3a68da79719d17f7eff037fe76ff06f78d8dfc952cf2e2c2e92c6bb2071845f9c700e68e61a276d51dc07400d301cc4980e130f09b61e66b552dbefcccd2e26796d45f96519efd81eb4bc1a2337ddee048166f8a199d02a24b31234db8a32a035df0e743468feaa3f24d9184ff3e147521a3ff3f229c7b637f458e4646fff9457026d0d7fbc0c4420c9b07235ff422d3c7e849693dd95e6c9255b46d3da446037347c8e0869d6e06e30298788b60a881120ba9a5ef7e14bd750ad52692689a6f6d0b7a1306ae40f57acb8d6acb3a4e2d9724a55ac616f9ee188a3c3494edfbdf67ab50767660cae64f99d6dec320087bb6ec2e53734346f9a2674b9884704cd71b96da2c7b61ed914924603a551838bb91376850214e6de8d789e5aa7640735f081f3b074f9b59148479286d70220f3530d74b1b0e6b04c526b566352d816ffaaf81e4ace3b94be2f9b818d1c8cff7f6d38b5acfdeecef929d50a0b2bf0326c236ac49e6e927e70d446d194ada0a143a4e4a826d8897c874493c158ad41a88c8030f23435bbe9be3e9f9687d7c4ff2c40cebd8132bb4056c7fa47c73d8f79abd0844ad882557055385a4d366ddf6d98f3132b4767f1e8ce2e0fbb459f3fdbe78eac9a027eb685047833e06bd3fff020000ffff010000ffff9dad58b6d58f0200`))) +var _ = pkger.Apply(mem.UnmarshalEmbed([]byte(`1f8b08000000000000ffecbd5973e2c8b62ffe5576f8f5f4e9d6806cab22ee8345594218ab8a4943deb8b14329514226059c621427f677ff474e1a404c2e700d7f9ebacba432574e2bd7f85bff7b178fbf4d66779ffef72e8ae7c305fc3b9824ffc06fd2b7e03e081e44d11f0c445f0824ff9f00c5b8d9e7f8fbdda7bb7f869364f0cf603a1c207ffc4f300907ff94bf27cdffba3393e9e4fbfcab3f1fde7d3a6984bfee2c3f19dc7dbaa3fff83c09ee3eddddfd75d7f3bf478339fdffce64323f8386577f1e0cef3efddfbbbfeffedf5f77ddb98f06779fe6df1703f68fcec09f4dc6779feec693f9bfe2f16cee233408ff0517f37ff94b3f463e44837fc5e37fc1458cc27f057e301cdcfd75674cf4180d66b8df00c5fffe3e99ccff8e2678043ae7d9dda7f102a1bfee3e0fa6d9fff706b379f661fea7ad2f5e27e102d3f8bf77672ddcab1f8ff9c4cedb2563f23a094f6dff4f34f93b9984e4337bf07d1693b513ff1695bbfffce73f7fdd7da3b33be9407dfa074d029fb5c72711ff371cccfd18913f8de959e08dfeba9bc59bc1dd27f5feafbb64120eee3e4962eda1f658136b22f9cbbfe731f9401224f1bf05e9bfc5fb9e287c92e44fb2fcb728d71e45f5417904777fddc5b37f877889e86acd5232dae7c1f2ee93acfe75678e27779f645910a547f1af3b0bc5e3d1dd27916ccce0ee9378fff8f0f0d75d3f0eef3e898220fc7567e4ffebfefbdf533f14ee3e097fdd7542dca1f0d75d37a35a43233a859a40ff39094633d2e6691e279888ee20c043880f82a03ee036d60cffe5b1765faba935e1fe3f7fddbd6e35956b0fa220cabc6936d1fffc75573fbda9fbef7f2fc68bd920bcfbf47f85bf84bf84ff47b67338f87ebbf6b76b7ff8daff75372524ffefddd75174ee96673ce03f7fdd85fedce7eb31f5bf0fc6f3bcd3fc0b32e239ece51f7f41c9dbcf63480bce6044e15d0c462497493c8bc14897633098ea1f603035c260a453180c9be8290c266f7a63303706f353190ce50257e632ffcc27a3c1f830afa14d38b3911e3f8cd9c897633698ea1bb3b9319b1bb339c06c1833f81096f38f1fcce3e5e0efc1f8eff9244147a49d72db8c153dc89c17d524e17d4ce89b8f6687b9506d970bc9b2f8f8f81e2e8409dec3861eabd890284a0f0a6718b547415264f9e1376043ff0449b8cd8a0a7c86fc7888cfe42c849e41c641d8669559489131d0d6376e70396eb07d4f33e670e748ba181ad12234d4efc0a92d02434f03a9bf006e3385b2c9fe6debc1b8b90c90f0022505999f85a829db0bcf69ce40575b40b91db1ef22d6cfb81e4da1e7da825f570428cd118c95b9e76a9fa1a14fa1fb9af5ef49eba1ef889b0ef97733ac27ea02749f54b31ea24143439edc41a0aecd3df729e26d4da32986756d8cc735c7f387d6c89a790e9a07b2a89a71f05247f361e87626ad7167e94bf6a29584287cb66b8181d2415741642eb192f7cf7febd37e8ed09240431d86065a80545b41092dc2fa530cdce1ca8cb53874db119054c1ac371f0602edef9b2bc4cdd5e4e5eeb26c187e9fac66f452ef67babcd14f10fc949be07713fc6e82df87b07a7ecdaf28f5b1212e21f289a2f80122dffde5443e42f04de4bb897cbf091f3824ef61d926dc00d75c00c9167ab286e088ffadf9194ae2dc7394512bb1d32051d3d6d85e04b2bd0a0c350d0d7b84db07892ef88e32eecb68131af6dc6d4f9730e9475fbb4fe3d05136a1abada0dc1480d38e60a1bdd9b09440ee20d87d8a07f26cd1132df55bd71c5f582e0ad062363f2617f146995cf471d6f7870bca4537ebfb4d2ebaf1c3fdfc905ff32bca456c887f460b38f83e1ecc8f051614da9da994c9ff2dd57aa2f4497cf85413fe56e59aaa48d259ace7f13750c9ee95c747e95ee04dd93405a182f51c687a633d37d6f34bb09e225ff8502e7409454d9655f5b0a67694271dd2d36a8ff7f243ed827a1aa5f72a8ada2fc6966e8ada9fc61d0ee96cd62c742d01eb6cbe6cc7c06d2e80db4141aacca0142c7c474960aa6c42431742d7b2806b6d3c274445bdac99062fb6319c06a9f6c6753cb3114ea1b18aa081167eaa2950b653d3c8c68a4209097e5dfb0c0d550475ad07dca6e43b160a522d1e74b5b720b1b91dfc0d7f0325210a127b83fbf1247b631afa02d4b50d70ac14b89d4d2b9a3661acbd79ae854c434dcc869642a939038eb8311bda0c38fa0674353430ecb7d0ed20b3de4c7d431d129a1b36d63553b361099edb1183d48c42e331f2a421f2a459e43b5e34705431880b6d0db42163101d74ad9886b584099802d94e81d37e69a601f553486b11eba541ac7c0f9d260a12058586bd698dd958025a80442df80382717335fd0c2565011c4bf01d75613e775068e853d878bdaf47532d30f437dfe8475d494f7ce939f21db23f0b4feadf9b75ed61902a4d88fb779437d05786d0b1d56fed69ab38bef94cfebec17d81de2462df7df11c1105b236f424f24db62fe6b3fee649aa08c7eda82fd9787f842f31f9266bd376ac3728db8b50b790273751f8ccc79e90335247f36cfd5ac95cf4123b85892d8082cf063a681348680104b69e02b51514cf5bd626d5c89a7a92ba00091a9b069842a37f78ddb9ed21592f3da783d739f19d70d7072581a1efac11a86b024cb51994f49169109adfe83747f637c1f42bc893dbf80ead42b7bd6074a6b0abccabee51c77824e7cc6c8443bccef40caa0b7c0f42a7ff4f73357939705fdff899c17303a932024e5304a9f246ce81b39ef98e326e4bea0226f65ba817e62a58439858081aeb294c82289f93f6563c87c7c6a777d66e790ef8eef5ad6ebed6e230185b13cf5957acb3b50c9df5c8349465487c71cd8d6fe833f3793e04c97c98d16ba0258cc95ebcf405f58b69a8b18fff5e3f7caef039f4dc0ea27745ffdc8f4b7c8df116b10b5c6b19bacd37d0b752e0e802703a451f1d9f13dbd3ce144ab5023fea335f213bef5d33f20d7d631a4d049c5ac4690047680d255df0a4a101e5261dcfe6fc28f32b26506ece3db753e617125a84893ef39d36a12974d682698014f34c6e23c377cbd4797fdad24ba6f86c46befb1ac1441508ff7235cc736368f4397f2efa2653e05a226cb423306e2e6157fbdc7b1e2dea31e65707cf85ecb99d37ff192c8311ddd3bedc19868dc25de4bc502c9c8b3418339e1085d210c1585b0589fa86ef0db1f7559d8fb749d474bd13786f380c0d6bd249d4949d8b1e7ddf5e17d050c7ad04f3e4c74520db6ff8add9a6ab3eaa3c9b9bd0b1087d606ccf6063c4f9f20c1af6c834d485d940cbd0350bf7abf6621b8f51982014a6da34ace7efd39768f202a5d70848b6601ae2772f7d9ac38da8788e3833ebe2c26c64e78df27057540b7fc33cf787d681f3e3d04073e0a862895fa4c138683497646d526d09628dee317daf2bef0aeda71d41d9162eb53fa1a44fb7e9aaa370e8bb1dc2c740a216de742d091275be87afa4d9fdefd65edad97dad9e8b27e90b7cb74d439f619e07e85eff0fe693788e21e3e341ac0d838636f31d6bc8cee78b83f9bb610d61acc53e96930ccc6f3a088e3b53cf596fcc4667999d13575b4103bd792e5b43d7c2f3baafc74204a5ce12cb537ef7e9a5d5d5be0686bde84bc32920ef86ba82d27a09e4113d5babc9dc34c4211cdb4368ac15b361d33bc4deb3d05845f568da8729a3098fdfd516c0b147841e63380c933e7ef7d330416fa0abd5713b7a0fd515709bc3d050b14cb408e40e1e0381cf9317bfd11182c6eb7d2b55c7bedb99848e89dfc0794b6e2280fbac8b23e002040ddc87b90cb2fec598f7df72f2fe7f8cd734a730c1e722dc96b5de3cb71d7dfdbcd67b82177dab339942eecc4c435f0578bdea6262d685a89ee82bdf0628185b783fee4d83f7192c723edb246f7f90d84bfa260bcbf04d1fc28636f17acf2f3e965b3e4ff2b5ec677dbc40c7163ca7330c8de7fb7afc14c1449f63d9cca772de9ccb39d96faeb5f21c0b31396c5b76db0486fdf6259a446c1e534fd2c93b4efe567f8a80dc5c86eed33df9bdf1fa82ff661a987ff4efd97fe750f2e6f42c8be5b3ccfa28bc81f7a6d14181b15e0e1c119fe70da6d3ac6b12c06f3a1e37d6a4d736fd0effe6e17bfcac6f3a099a01f7f5de6c74d2d0e9bf9858aee7fac06682e99a9b469842d95eb1b9368244158386a8568c817f77f8bfbfb9029bd77c0a93f63de591f8ff3b9847125af83a13bf11595751ad8fecaf9d88c9add1c13397d1ea71f9b7c1e4df7af66e73d9e898fcc3da95ee9ae691368a6066fd1e9123489c94c274a37689678244156152926d70ff28905f797c55e4396b2c038d06445f429bb0ae11d90beb1c81ac214f42898f798351787fbaa7c96136a5ad57451b6fd3af7a77451a6f6572dda2cefc7c6cbfcc98af1de6599648e76425a1b39e0d4ea4ad2fe8efa0cb42c1184cb10c98e93f589fa5fdecc885b92cb8232f1cd327a85c6ad375e03a1893f5a73001cbac4d9fe92e65199ffc46f449a21f7726a0bbb386fccc4420d1a7586ef9129fb876193fcbf4c43c0e8fb5a9887dc3eb3503751ae7c7dbe173ced734bb5347ce7cf676387cfc4ef5f97787d3402e9dff5cc735721d3760eb5b7ce3e9b7eda37a906fd86fbe8092928c31b26bbe8b7533fadf8ab5a8963576ee6270e958bf20098ff8b389c58f85d728d27bfc4935595524497a38c7a3a40a174c25c3645f255975db20cb677a82edb6d0f4e652bab9947eb2d13809afea434ac2f705cfdc9f961bffc3fe6bf58299f1f73f96197ff35fdf98cd1fcf6c3e247c261fe6121eebda0738ac2b02f8deebb0aeddfcd5377ff56fc60d4e73547b92386a8ded0db04b8614fefbb622fd069df6229086cb60dc7906aef51624684594b2a221460453e00611755e6b2848c03248844290b1ba08526208a1ceece792021a41d98c48c033b226be038482b3bb921ee00e87d0d566a539a4c1b81ebf12a71f511ceb9aecbb9dc98ee3dc50c5b0ae4d6162cd42871abb3dd94e83c45e84c4c06b216860c593184398326d6fea713b0a92e1d2735f2b9d7c665d98fb4eb8807213b51c6b09c71d3468b45f8ed2440dd365e350831a2a4e1993199ed430d167a1d33f3a1edd238b18a503c94a7d5713a8a19a1940bab901b160a47d69d6b55da7bf91396aa3565754f05e7ecd8d49df32c382ade646e9b135e1c6e87af47ffecfe515f2ec3e049324991c815f606d7e30e253218c593e4b66fe1df017765e2036d1531eabbce94d66bec9ccbfce2bc96efc0789ce74b44b48d0f7792acc69127405533a2e435744a2bf5786be3f9005736119fae7b2a59b0cfda77187534569750e1d75d14ac0cc7302eacb7058ec5daa8cf68acbc27ac9fdc9b93fa9321e6fc75fb23d269440020db400dd0ccf61ffb824c6434ba10ca6c0e8479e538bf2ef35f63d89138b41571303c91e99465361f42d03c34e3db7b3e4b13734bee699fb3e6766034c030909a63114c286b6f9123f2e3d69bd0cb10a91d823dfd00512dbd755715f58ad9882717bc9312eaa6214b6e73b70ec4d2be9202ebae2352cc501266aea4928868d51ee13339ea9bf9cc6d8109118cab6c0e34e8344a47ef9b8b6ab6e48e21c4ab50548d643902a8b3c4ea0bf0086bdf1e4e6346874a650528afea8cf3ceeb65bf26f69c5efa3170325cc77bd016e3b5743eae576a18466b09eefc9cb8e4fd65a42475cc25849a0a18f5b091ac3444d413f53430ed1da0492b20c92fe496a108b1d1e06d28cc4ea04923d23aa88610f3d298af238143c276d88d53fe0ac95e66a725d517f3c1e04f363b23e6df41384fddf0173e3177b556fc2feed39bfc0734eaffc8749fb64b88b6071088fca07c8fbea05c13808c53781ff26f0ff861ce264899f1956a9213a74ad52164afe7b8584c6325aa801de9a40b929740e48909991974534679295fb4a24af2dc97219c4a548e60a499667b858735057665052c6fbc72f6752ed8baadea689456e97b3a50c352591ce8ed2f30d9484f5dc80dc8aa67ddfe84765cd494b7c678d689698bde151e105a336d650484465c1283e84493bf2593438188fa2d0182222e13309b83ed267784c98e882ef02041ba3198bd67ec39a10de4ba6e9b4ec7e536f0bea97ce08354cc35e84094aa1a4cc01892405c32041432f59231a71de449ed3ceb3dc685694c81d1fad68f2d21ba9fd4e6f12ed66fa3551e0dad320b1376cec6ef759d5fa6951dbca34b2347494058d3eafce88a8a3cec427ce02ac3511495df69df5ec4b347979edd6a27641232a48eac32c4a964af7731689390db1a49f6ac33c7a569bc27121ca3e1f3baa8f10d7640b0e8261f6fd6e54e22af2dd7651bb49810352e05a13e0b417f56892b662ed338feaf5ba2ca3a0ab7581ab8bc0c55a07cf64c2e74117787640a6bd961d1b4353cf34993c0a3fef43a499714f2fe4ece885e8d45c7b2c69c1178fd28faab2fdb6784762d73c475c41c3debaaf93b7a243869d7f311837111cb7ab321e8b77361bef98d3698f96cef922d540c7c52cc6839a3289bc2f5841b228da90ac9f3681d27a14b0fbcee7e091f5c59a2a1ac2c6ebe2cadae56ceecf1747e043589b1fd42def89b0727f966e7949dca20fd32dd9444f11e0f2a637ddf2a65bfe3a9223bbf11fa45ad2d12e83f2289d198b55c1958e6a964a4504fafb611ea50f0bc7fab98ce9a659fe69fce134c532c8522d89728685d7a290c420445eb7953afef753954ac7776cb990d6bb042c35ade07a385979db1602b7e6708a8249e931088c470ab3142b3d26ee19a64c846e33258ad7e951630bf3690aa0dca7e9c65889ece279a2cdce585441c884e6cad4e3b810114514beb2928315bc766227506ea22c3db8b1ad88ad283c85218a81dc8ebca41f41431d03e262430ba2e0768fadfdd34b51e1b2b982eb8844f9c50a6c90c1c594e0362290a01971f1a5da9409cec9a0bba344e3f602708742ab4a111967900a47a3f08246734a52c1d8992808f8f97ee6fb551d5dc6cfe96a8f52445d5eb942362aa4503f8b2890ad2128df2306edb29e01a7ca40425d7d8574e42f50ee14bee95442f8f408044461ec6de34fbe6e47a1807ac75393b981e06b36ef37967e9bd3cd52fe2d0265d0ce8d0129569c7db789a811a26ca8d84e6dcfcf8eba13b1593833b951426f9a3d41ef9946aed0b6a2e9d7822183185af0d92fc13bf0710be9f0dd861db7a2c21d36c0149ff1022447e48d4751d8402bf26d06496446be430c53c320b126f86e7630fd86485c9c04ba84c280500396b14604f6a8d14420c1678ea4ec67eeebc25920cabdef3c2e7d43955b6e67d972f89eafe69e539b176863f011d7896e3c3faa517e5f71018900c69ee7e8acf027bc5719953facb8009be82920ba79d39b327a53467f0161f363a2192f16c528d7eecf2b3150c1848e951890850bea9e84e08f2931f073d9d04df5fc53b8c121959322fb14c4e70c6585a0493c2bcb50b737a04fdbb9ed69399a30266234456289b50c89cf6c8413827e92fb68a6198a2256958a481524f1c4168aaa54ae1230912ab1507355f2ab8ad06853b4b58685a8bfa7acb6ee8ccb5069185a4426727f730526faf3c8c212e21f164b53829e2960b5cc4e3dc722fec27ea3b984ae26ec599367fafdee9ae0f904639668e4d4b0082a6031d7933b539284c3fa2dceb75ff8667ffb2b8a97ff7c437e74c4e3419b9ceff078e889e227a5f6a9f6f8b722d55451a93d2a67c898b270c16cf3eb393c1e6bf702c175274db38956d915f737bdc9983719f3977955e87dff1849938c7591ac19f94849ab1318d22179531144e1e1e182517484e073e44dcc92d48c25ddd76a8a2248b55f9f25dde4cd3f8b331c923a69ee4656bb34b1d7a18352e0745cdfb017bd445d744b528e1dd6b7723ccccf42648e483f047737efa3cd316e69bdd3b1bd800989d499c271070589fe161a4802ce5a31a34cc28a5b5df161902a0634f4f1375778677f9397edb9f98e2279ce7a0a7430840d1bb592e6903a73aae693630fd3fc120d7f2b82ae5948cdcfdbb0146f8a8b8768ffdf5c21360db00ce2a779cb9d3fb4c81a85ea379a23c2f241389634efabe3d071942573cc6c8a86e8565da373a86bd9efa6a1a758a2a64e9fbdfb49d6738f84dce5c6675aab551f9b06a5cb34b8b1be3f2e3888b6e6a34d692459163137320d4207ab69db1c87043bb37d8173a6a740b6e74c23d994c664523dd5449a224c940a29dd9e0d0a7b48710cf33edf7fdeae25f14fd1601e9f6054e6edf60bfdcac3e5a39c14597adc23f4abf22f25f4ff5ac10437a1fff6b4ffc8d3ce6ffbf5457e36d225047ee9be76669efc03b979ea79d14dd2e5247e4af1c74437b1b99ec290f2a63791ffc6174eb8ada5c8a625890ca15ef612e6543914bc4684719b141e423c05020ba27396942e06923e06dd8259b520c47b923a0f8c35a242a649a32e24121a4f532f6824d2c637d4347cde491aaf10529b3dd2b6ae6dfda62524e2208ba428087723550c1b9a18364a6917253aa8804e4dd640c2c25c2d0ab0d067aca217032b08d1cc6c4c377e7d45a29a4082367e7d147333753e471a79030d75018493e6f30a25654cc0e58b422ea5274f4389b6a250645b081ab6504a55314a7bca0a4490fd1a93749a58dbf8863d83f5a78997e8642e83b13569d5496a52e2bbd6e4a54b5254963c9a239448883ffb4e5348b487db2ca42d74668342da4bab8effbf167986fde61b8f51f3b316b5a2c94b7f6c2f4ca31041545c7b7d1e7bae35f986d7b7b12674b8dda7b96f3cd1395097431ab2423d0ca76ccaa37e68444c1e6555da8ff12b5b079ea245f674518fa644e160e94513cf05a81c21c423aff69c9706db477c1e1cfd3be86a9b10af0bed2f05ae25786e53d81ab7b8276fbea12f8064b3a2189da12ff523e08084a48015a3bb76ef0b77096d42a799ed7f3f57a68a11554302189fe4eb03252f020e127cc34ecd7a93acbd19af22738ccfb73933eb4db207664c14ba34570aabe82177e37afc839cd32abe511c775f546585e28868db33ee5bdc91ec058d7a3ae53c503ed42674f37b7384fe64bd8449b883dd57b58e3dcc57d2d3791f2de813229890082fb4f79ec41a1babcda2c9087dc5fbd22cdf3775613eafa7706cd778eadac13b4e7968f43566bf8b6ae9f7407aa2298419483e4d35ca694233d0adbdbcc6d9389bd0c17c4a94cc467302257de396de346563d655141aaf4b728674756bfddb4b9a426545f4fe6933cfb176c6f5a9cb94141bf11d7dc6d76587c718f8de5902949b0ae677dd2c7a8ea6a4c1589b7b8ef5b5bf99bcd4df9e17a6de1461ac15d2b84a7b41efe4e71afbddfa561e8fd19ca7cdd1e2151c2b9001d3d4dfcc7c1cd91ec1549b87fbd63f7d5a86ae95b624027c336b49b6e0a52aa1c3dd9215405da57db03d0b8c3505413186a8700fa6302669852be05853cf59f13bb135ae36c2bcc5933bcb605c2ab8551a93bc53a5c8ebaabb4da288a73c150ddf8196b39ee27b1cbac4781591821e84df148d3fd36a1e43fe7e185fb3ea8ef649db76b4fd1b7dcbb2fb17e73cbad9008e422213892b7ecf7b5ed85fccabfcc2fdac9243ee8ff1971fe611fab4c0e36aa79ceb7bca039ee266639e04862ef8fa6cedbac2d295e91d36137aa6b2e8d3c23b5c41073be3f6021aa458d7109254df8e527ecb57c468671a1af2a4e1d2ac3787a1db5942431d82fad3dca66bbef21d651a7e9eb1b1d0c277dbb1f9b9f65f66a3b62467a1d17cf3686a3382894e0ac9f177bd52e620eb537bd977a6a90c594a53af920fed40ea13833a4d17c56746c43c9844b293f73237ce16cf147dc3a3c3e3fe82e79ad2ddb026c059cf8ed1bf47ce2ec9caef79bfe91885b38d76cf75653f757183f92f7bebfeab450b5726be132c699f5bef90144e5a096e3f643c3d8b58e6346cf1cb1a895cbe829179e47f1bf9870d3ab4498e7f527b57d0b24c22e3ce0b28b920142b21fb2ac552766200d94c4f0917cc9bde8ccb37e3f2cf3722d1ab7e65bb3219e4222665e9680c89f0d813d44fd2fd27e5e16ff5be268935e5f1e4ea059409d52e685196ce8c2139d9a0ac88aa722f3e6456623ed50a2674a0e9cda07ce30587af6965c8f275f4b384f64f65c1d25857b61b73fd7ac58a18af480667ab4ea18c707b1a464c6d7c6d571b7ad210f122bcc550e92035af11184077e6e350f42b1c714745b7df1258f3e77ae16e92db8d5bff20b7fe98acb3e2589781d4cc19d31543032ab4c9f7436a1e604ab7d0809b24f7cbf2865b0eda293968ac3a7d01e59e47ea2a4b8a75a7f780b3469edc2115a92b0ca763dab759106e3599389f0d655910163794e6a010595cfa3d9b33695b76c06f80db9ee5302afdc88c85b9efb46316814b8216d87aee5d4bb3114e4323a286e60cae41fbced64c0ca47e5c30f4ee591f56f5800528545402a812ce9fab84f256575c866e6715ba3cfabae0d814c0925405a08e26d937d09b4f8df323dfb556d0d07955848ab3568bdad2700965bc96208592706fd69bff1348ea823ac2d11c5247b8e239e2cc8c8317287726c035b30a06d0d1c9dae133ed3bd6841a6f3bd340d6669ecbb04d2b1581f3c7aea339db8342b5832c9a9d4674573bff8379cb413c0a7b6f543ec577dc8aa8a6550f5641a24abed3e1ceff43746830e9102894b6a42ff01d6c27b61d48f6a8689087893e075d6d1824a1081d72278932d5ea8ad33ceadc1ac2848c5fa872a10b997316d38bef97d32f9dc1d05057bef3ba7b57c79d6560a0b75ea20a9d441561d2a1bca9e80493691bb3de7c18a44a1fcadad413f2caf6c050497508cc9b58a574e21caec2eca4d1e4f99ee715e8832b2a81df07fe7c704409a46dce57025566bf17d5bf1fefd59aa208b2fc5f82f84910ced1047f320c669682a50a129e82aa54085d3bd95a6cb61542d781a6374df0a609fe32d21ebdf41fa30992b12e62d197d5da514df024b674383754a9098f17cc0da5649f971cfa28489c873c488fb57b41567e03ce745307ff2c0671923ac8ece1578b59617569fb7149b56031811f6bf3d78630d6b4c0d0df8ab0e60531ef108d7b9035ab1219d74b980467c4d4d0b20f19e4be533be87720719ac6731450c894b7d0590f499caba18aa020def3f20c41628f794984b603683d623a37924449f7b3a83216ca33101f092949101763c22b5449be1f31e89a8598bfea735644b1ac56afd9efee2b896df60d55a666835c1dcef73ad845c224502eed83d02f54bd035368aca222f2e92e42234dfa0d527ac6b6d7ab08ddef17a0f2f1d9a947a43c405e0aa1623f0f7d6f1aa2d272d81a3a856f4ee8979595c8d46d1acbd944816ccf988a0dda7df1f5e0f875716936d0103a2b86ae58753fa87980161decb4f3f3b75b14b172afabee09d98ba779cbe58513ed344b3c2e966ba167be30a6d6ec6ca9b5ec5ef16282f49ee84d0424125379011a795f54d52d9aafdab41063d46f3497618246f8eef5d97d349fd1f39e3bc212c875313454cc770f9572e801beb78682ef6a95192e2fdd929bcd0abf57af1734d4712be9206f6c8f396df8ee33135925ef6b0ab47de12de026892abaa641aac5c021f1d4bc7ef9a8b47e053eb55f2de72a7df53c08fa68aa6c42c77a03aeb5e97193dd1eded3cb4d7a5ba6276aea2c8eef1bfac6349a889840d97d28f123a1e25e52730431ab502001b6ef4e3b0a64fbcd93f0f840840629e058753ea670ac89619d16c66c2545d4ddaa3d418ba041f8db3434d688c56492f18b6b4d4c1abdc99e3b4efb6825b4b4886fd8b3608f69b48b7f6331973d6a1a62f416d645b417beab8ba0cb4d55195271c539d9bbaf98af55f19d7901e9b7ca8cdda4f46882ef7666a0cbf23b76efea615ef3766cadac1994ed11bfefefdc273e6e1738215ee3024dcdeddfeeb7e229b6cfcb36ef9b0067bddab34626fecd6c90324e2c7f84cec7ccbe0f0a325688a014a69eab4d7cc71ac2ba96329ac8fd0f92fe5ef3a9d908c91bec257d2c33ada0a12ac069ef91c57293263f8be7014f64fbc9ce5d1968a2156bddd0a945e698c5ae1b9c5ebe964f8fc4dcd9abc57bee2687b423f1e8b66ba1be640b459e93f306ccdf1fe7a404d68ecb601585ae362acb6807cb0aed398b9c7ff3b7c4fe02e54e0fb8d5a8da6dd716602a8a58d6cfc6c03258e67e594581349f060d8dd275268d57339586033438662a656d7e305ee65155244994ce8a97b9203ef3c7c5cbb0899ee29ace9bdeaca4372be9af620461f7fd43aca474ac8bc4cba80f6742695470a4e3f13215217cef8e9721147f4cbccccf654a3703e99fc51b4e3190761034ec6b1a4847c059a36d032930ec19f83003299fe37906d22d1aaf6d206d03b739f71c85c7c7f0753b6a306dd5b1b06acd4287e341af676683c6060469eda58ea8621f6ed789a5ca8108635646a8a0a878aef5bd582317242885cc30c9e221b2324f458301eb67880564fc6db686d1f42b3e37c1389c06bc1dadabbaf25c6b63d6cd79cb4528484d9aa08d85f03a3356ba7969154a3758068935f592b5621ad9de6ed35261a42d9ff56b1b69f9dc2b4a4e9d6424e5df5363687e86f72999a1111512ffc1d44bb566e76932e26003b9b2c7fb7a22b1365f7bfab42f8ea43e7ade7447f3e617fd79d5133b731fe906f86c2d3d0174415e2e891b2af8f9e486c7e9de58b243c6c53cd6a7688cb06182d6a1d38fba7d0afeb15fb926c67cd9233594493c139b5b2dea3a5e49b13ba9766d5e3798c4f0b4e2837356806bed35145680759033d3ea8a0a3e53b48fa2d1c8faeebb4ff97d2b9513db77e6d1a69227eca19b1a3dd102248f9cbf4d6112ee35d880e4b12206908e4fcb2bd1b18b86b64ed6ef29464d735ccd73332313a9df1d24e2971f300672a31b338a647db2526c458326ff4de046e72174faf9193ce5ec6d1919f339919a00539880259e9f27a96990d86fb49eb1fdb9ccebaadf96bd7b8279926be2757e837293027b3446f959cade6d329fe25deb17783a014b02d4a884405d1b41c9e67175982e12af58f50654d78126404c390053a3930ea8319c189ef99934756d061c7d430186ec373fe575b7118bebb396f8ce7a729bf27fdc4f571b02499fc2b87668adb9b18a8d8516403818ffbbb7de02d83dd3c5357ccefaaf74509c7c17519f1bc8c53dc66762ecdfa5afccc330af6767d16917e9aca0ed292665deb2783f6d82dfa06d433d7702703a41fd8a7181e160167c8fe15173176b75a6c18be6f64b9f84fb4f82f4b72a4ac2bd2c08e7142493c5dfa158845c7b7810efb3389d6ca2d5a9fdfb9ade0c5e3783d7afa3d4b21bff41262f3ada65aa63d78e84069ec0958e64fb3fd6e44b2689118aaf55a2ec57624c37a3d79fc61f4e337b11d1da69a2eb6100e46394fdd63b635fd7fc85c014b8015705c621c19522df8c80db19face9a565236f485f9acaf3cc7da13a76096c5d82c1eee63f0636d1aabb71bbf66802970d62382a596d05821df3559610bacbe907e8f99fe16f568da26a6286a9a88697a8fc98b686095859b56942c85aa421d64298133df99b3cade64fd091e255797b653dd721fb4360c648b61b962b58ea60f65e97a55e980580574d6332ca21335d069cf4c03e1fd943c07cd3ca7497028eb6827ee919e6796f66692581f7b4acc74b1360c52eda52fa85f48c5701d69bdfeaad2a4b67596d1c0d009aedcbe144bfe3bab143f8172404c7e244e208b51a467a06856c067c04c3589569b3f6e523bc1bc46d42b2fe9bfd4e357be2619fe2348d05bb9bfa6c2f6278f07a8937da46764556d6acb78006dabbe3aa8e7f440b7dfb35ebac2a8d6ef695f6d43fc9f7e1f8c5e25f5ad839a6316ff28067267091d94991bf3bd62a9847bcc7bf998fbe31b0bf3ffb54c78ecbe98cff80c13d3034b153d61cf0b266c7c9e40bd76ad8ad9f4c941f16c7e5822242dce5651a55a4f943fc98f9f44e56f457d506a0fe2c3e3592aea05e1e7aea6a2d6c407f951cd84c66ca21592e081a63715f5a6a2fe2a2228b9ed1fa29ee2912ea29a3eca0f996a2adfbf8f1b1d544def15e141adb098c9b224d4dea39a128aafa29afe620ce9a69afe497ce114b5743d0de4f6d54a1340036dc27a498d9bf9ae257c4c1406991b8d4e38a466baafa5280c4af307952821636904caf830341e293932f1cbb0ca540d6bf0949e7ee475b589ef8413d358a330b1674cb425e2305d87eabe6de2a9cbd4da2c4503386de249fb42d280562cfd6015f5e470015c7366ea96e0b91d31485755e1feb33cb4bdf662e7ea5641952fac4d2e8a535a737ae81e97230d8a4825646d40794f5909168e3682b02a1bd32817300c9d354526319ea3d02030e5589d15c33a55573d67bd8129f1ca6fadc56bd445d6d75e4ccac19074af421992aa337e6df5948c655218f8aab38dfb298493771048741136da27aa76e40e11751516ceeaae39c3de980d7b433df4d35e4fa891b562915bb4b410496169ce3db7fdd2ac6bdbe98e741e587d34a61b28d576d447762f592a171aedf5a856f0871dd539ad4c9d6976ea873dccdbd14694a6ab447eb03344530103637f7ad591743f622edc99b3700a0a8f9604893ae726217ef7485a954178fe2274c418b8e6a26ca2a16f0a53f167be234ec377a9f9eb29749050a1ead3080247aff98e28c29c0ec2e7aacf666749cd554d1436ec1426f6e800cd1be0e8a9270ddf1369c3be8d2ace194dfd09247b18241c0d094c6183a459ee3973f68698816814c5cc3454192676daaab3f4645d2da427afb2d46496aa8afb1042f7b5ea1ecda0142c8061c7a1132c408266a161a78574c4577cfece8e5a28f4c3ce0de34f6a527dc68a6792ad45b227aa01f31309093c2224706d148c47ac8eb0853cb7f9e637088250c53d2a46c264a864cdbcef7d5155fb229272d4b120d56440de1ab00cb778742f79dc731e4392c20508d2527bd15c5dd164349f4ce3e0b0aa469be40893c289993ca2d013854fb5da2749fafbfea1263faa8f8fe7598d2e887c4bc8be8ad948911f6421f70a6633adc20bdfdff46636ba998d7e15f5905ef80fb11b91a12e0277a44887ed4627f0a383793cf2a3faa03c5ece6e4408be4e01835f8b21ddcc467f145f38c16ec4d022cba10c997c2e1064c8b24eccfe76b8a456212a3a2b2b50701bcecc86bd0206fd7ba68f26ed62e603cb42d93ff6b172586d9eea5d2fda29b2f471fc77ae7363193bcb9aa1c89ad6a6a80f1c44d5edd6ae97be4df7f1e38a1ebc23895bfcc95097b724ee9be4f7ff5b0eff91a50f8a235e420e94a5fbfb53602fa54f72ed932cfcad3c0acabd20cab5b3602f6956f7fde5025c29d96789830ff70f457ea2dc0b8f925a097b596a9a4db812f6726fd39b38786316675cdd835221af89c0acf5dc037012385c5c6915ae0bf382c762e63941219f3934986781e08d87d270ea4911cb07469bc0580f07ddb28595e3a09bcfd6044aea0674a9b5fb4bfc14fb636b09638a2f0f9d55dcaa3fc503479fc33a01b0a245e1df87af4f2551f91de31ec47067b98b636d188c3b535660b702e4aec2c2290d116c3c158beeb73db729f8bc40b841fb2e5a35a9b75011a1d344414c3c26abed6f585f8735018e8f4fadee2970b599ef58c320dd3d27052b3aee376bcbbd3c1e292c6e16e771d2d81cf42c486c01380a59979e7be2da1df004f40bfded5dc3868682042d01f73a5100ad8569885368aca78164bf414919f140706fdc5cfa929df2a0434cb3e7a02278291b6fbd040408109fcf7e2997d077db63f3a9e0f9d8bdb3bc8ec902b2dcc5be64cf806309e5ba09e102568323929c7f1e34091ba328c8be6fcf68feff53bc1d1c4bbc9d310d7ace0118730fda3e60aefdf50cec85e7da826fa8a9ef4e49dd91bc8e0109001d12103587008b4da0dc9c0e129b79a1e70fad91ba023c707d2caaf84c512c0a325e990fbcb33f403dbc8735d6ad1a12f87c7b091a01c32e69ad14df404f29f85e33f69dce8862303c92da2d3d59433c80fd9b2b706c86ec8e146b77bca32f1448b9065cf2aced3f5f5338eea020518650b75030062818d1bd2bce8b81cd2e3c6785cf511a26766a1ab4dd89e388b410b9dd8724d75a419edce9c33c2f371b0bef9d97ac6910bdc1db524fefb979e57bcf65a22cc367ea2962f5742a2c273447d6a6eb5900b624c1c90994ed05a06fcedefcda6eee6dcabe3fb25e92e7aca7c0a0fb7a000cb0825ead12fcef47c68386bd007267b27f8db2dc7a5e07050d0c0b01a74dcfa8a3d748b44a7f8dc87d33ac8947810b51307e3dbc57633084061a310c9005cd3d2f9e5bfa7b5b1a0e83b155a42dfb8ddf6b9ecfbf75561e4c435d60de080d5b08f1794e9f266de779ee8c27d3569d7bb49b1b2c03b8a949f3d0ebe6dc8c299ff108f8aa46f3adcf984bf19d08d2dd396ddd3dba47f5e2fb5e8b480da9315de77eb13f59545b756dee3bca14baf69c242f70792426b5ab08506e906a0f8354b17c4729c91adbf5a48ece25b157d0406f0cbfc0603240a1de0ea3bfc8fb25b408137de63b04c8bbf03d9633f5b7d0c0f2c3fca1859a2830d6534fa2e7b3c37efbe60a33f23e27681e3ac2fe3ec85dc07b2e4ee1febece9d6f2653f489975d1de57c85cfabb3e73c365168d80bb617f82d9a4289ed6145bfdbf3a4c94d148fa9d57b3e4d1e65771a1e0108c6e7071afda2ecf685f1931db9a90a54f7d8f887c075fd02b82e8d84a1f795c98545705846532ee36de912f17b64f477accd51f9bc37b6e71e7927d5c4d44be3dd1fe1c91cd8b624cfb712ac2368bfacfe90c9f0c779db7935f828ce45250f2cde871cbf24a8e433bc2d5da3f27e505e53fc9ba89eb84729703b088ec99a59417a14a4b904ce4cceba5ee20915a0d2a5dfdb9c67bcece827a353cfd536cd97dea342ffb52860bc8c62bae079d8e9163e49813fd2a204ec7e57f6f32526ef56b7340799ecd795a377ae5bb9ace4c95189d74239cb93f35bc2f1b2899ee2c9c99bde3c39374fce2f669cfdc0d265c5112fe1c9793cb7927505733aeec3a9f033bfd787f3f87185ac7f2e7bbab970fe442e71960ba7aa8e595e469a05c9ec11fb4adf9e1eeca30db9d9e4947e8f05f234d3e0a59dd57dcad434ea22da322f1f84bb8d262ff60e94ed1a858d570e2bbb437f8b620844ac8e17318795559ea797b2bab22a98125e19ec60b5ca4edc1cce7a431347fa3b893d1c87a4223129539d78cd1792f897d835cf1157d028067111dc8db7aab955615bf0b5cdea5cf175e83def24f264aa71565363bb04b13e077db4a92ed77cd8e4b8b7de48668ecbeb8e303ae695f54776cf5c5ede5d5212bc4fe1f3aeb99aaf034d4a28cc87421d0e61a3893ca7a398865df35d4b08d28b9971399d24b183d568a26bc5ef57791dfb874dcd790da5b34b38bf4dae1dd8f671d549dea10e49bf0358e32f266fdcd4a19ba0731141e7236b941447bc8c3af4f001ea506582c37bd5a16be162fc62ece9a60efd895ce21c75a8b26a4926f6f1fc836ad1acfced7175a85079e1a03a54eef71475a8c3f3247e4c1ddaa7566448e3c7d58add391e522bb6f33b0ea91539223bcd9d1f605528d9bf2efd3d953f48f460a2a69e8462d818e534e46b7764fcfd5ed093d1ffb9da7222f2ff2e0ddc3b2c4e03491c868635014e8788f9edadaa0f556a0c43dd473452c71eb152ab59e500de1755193a4bc061250d3a16f3e26d9724e52a1c41ea0f1bcd29affc92ad311d47f3e48ee839eb23aa4f760f2a541f8e4a7f8eea331cd232ba79e5094c1f183797b0bb1f1b62af3a145f11b99eb3b36be2d7d3687af193a47c9285bf6541921e954745dc89a63faa17fd4484405156e44c449005994ca1561d4a5f6eca665b1d4abfafe94d2fbae945bf9ac4f39150f6e5312f92f453934ec9f9c9b914bbe267e5fc2882f2280bd205737e6ae76680cb8a2c661ce551911e1fef6bf7a7f0a99ca51de55379d39b82746317675dddc32a5235c27d267615d2a9f7a80f5b08efa7a84a19f2f471b13c439fa6eac97a0993707fdf58bd405aea6391dbe8a0d0d0a7d0b047bc981790ed94ab0a44e49473d581165e7cde4936da4133dfbf7645d8b86dc8b7227cdea9ea139f3bffdbfcb54dd5b82b8ba6d7c2abfee1924ad20591876e25956ed2e8ed7939e379f938d4ea7cbc4b48a18aa87c4055a58a70caf70aa084e05b51a59b00fa3b72887384cf5d1ceb3c129ffc56291416b19e8f0b9b053ce9c3599b45fcdf3d55bc4b95b85f0b18be3c43fc9276f97d78c487b084391d5558bddc7e4bdad3d231556b9397f439249cd23d789ac354fb9f40520f08c9748f8b554c61a2525bae5ccac23b2b9c86d97b17302d64e7eb7bb294b7c39c3eafd95a88c4c6fd35a6d5c4b3df49d5faabdb7f17d3f06876006bf363e1303581f856cf82f8947e479c273ed113fccd85a63741fb2668ff5acf28bbf51f286ad3112f120e231f29617a02733a1e0e7341619b10fc21e1303f993ddd84ed3f914b9c216e8f390c6775380c87caac14e3b6be3d2a768bbcbd36ccc4de4361315bfd9f121663337aaf1416230646e7b468fb0cde94555f2c267237321081acc2e829b65fbe1785d099a8d515b70094c40c4069aff89daf6b1609ef39ca02ca9d67e09068f10db00b89cc236b193a8a5005e0b13b371ee6524a8e8e3c495fd0701252ca0551b19a542b65a529e60fad1148a124aadfba043ce861902a7d28ef49a2cee7500c15d960d1bd0864d1260017fb4346aa23fa891a41c363647b113644756b3e8b3368c2eb3af11d656c1baa4dcf4fc997f285ff4e0186781f87cf5f517562603dbcef12f0877d388be1ec8c8552480da7d5695f2f4b60313ba60dcdce56852ee173f87512a5ef892a54e559fec50c7b3755e826e4fca090832ffb8768408bd945141f513a16ec720937434db89ce64329bef9196eaacf6fc5154ed178eccd96965355fcd10e240a05c40ade2d40579cf98e42eae313b81a4344816c0d81d42fc0d636c500ffbbe898702df421c5319185c2fa4e91022d30f4b73d01cefbe8dce3e0d8858a3247eb254c82681be68a46cb10a8a0214cdaf19673a4079c358161f49cda410d8c173d036e3bf2dd76a10061258ce8a21e4d5d52cc8b06d7e7b0a39575de7901397b43604c0d24d0dc63b28ec30ca2355fcb22242add07673d33ebcd2d674a617f1aaf394d86be309fd133852ea235e98b05f8b076ca213bf95e15fa39ad763da19fcca7c2e9929f7be00e87d0d5667b0b10f2dfdd5792b8e01baaccb4920dd764f333189423ace2d728906c016bde7e559144e391d6d6dfbf8f550e2a9217dfea8a53f05958fbb6052cd4ecbc0ad356b737ecbc3eab7de84c3b9da4bd819265f49360b667febf54b149ba4efa66676f8b568872f13bbc0e3984a7a44ba09fe5ac9f07b3b55bc8e40dcaf60cd4b505c47733e947a47f76363d9a5c322ec2be11d848a35d2894b9ab4d57dca30a4d73778e25cdd6b5505fb6df3cc9de0462f599ed122dfba479ca988fe0b56fa64f056770c57da2492b7bb4de53f8c4550ac2a049141fa901439b9cef1a7ce889e227a5f6a9f6f8b72229aaa8d41eced287e55f27537ebf3e7cff58bb17b054cc2a26f08956d9def737bde9c3377df8e74bbef4a25f591726835c24e7837082231ec0633ce870be87283c3c5e500fa6149fa3076336a4666ce8be56531441aa4a4cfbc5d8d04d0ffe43b8c1211d78bd04125a94b3392af43a44e4fc29976db08c448a7763b9dd253a6fa1807241074d68ff6684e5eed258d7d57d47a43cc614d27213ddeeb3aaf55313cb9433288553181ff41c56d1f08a7560d3a82c079263864565af63cf50c714ead842581e04ce5a217a93de347b82dec3727e90a82290a208cba1c03149099050b65010d75eea8896a4c8e7a82d03c35e0424b19a9409415eacc541a2ca81448a86cbbe61a7a04b13af3d495f70585ca203bb26095c0314736c081bc58c95d2fe1483082bf508fe7b90121d6702e580e830212d7941f417be2e451d8105226e8063894162cf065d6d06a58079631fa3fe68f8b56dbf46de7884fb22254d76d6269a8ccc06c7ffa2749320c506cbe6a1e393321d14f63c2b2363f7472ba683d943569605b75bd224796b088db5621aea0a380a199beaa558bf0a37c0358bba283b4ba4083f19b7e55a1b988a6290ac32f002acb7f84e5602671818a8e1b91d144aba728eced9ea8ac3c018cd81a40bc00d8783ae4674d712ecb6dd7c2d24e16bfde75194b7af45b4240d8741b68630d662aebfb36f53629730f499efe89b56ac390c7679080d340c48b17a3d05bd4914349a4bd0b0dfa8e7738d75dab1ef28e36f06c2e76d9c950f313a284cec1994b539de0ba6bff27bc8f5ef4520d958dfdd77def6ad09d6ade8ddaa588f0e2bf74130d8f276e45c868e92c1f59b8d701a1a11036460a54a62b25e98e78d7cd7e2fd48c06d4e41929703809217d9cfeb9e69e0ef3afc37dc96142ef50d7513d629404290d6aacec41b341082e34e13ec81b06f7545d6a65db0396cf3c362a17d727e9b9dbac6bf8b7c87425a8304a1a0720f743134867690accf2e8584cf26be6b2dd74e617d671f6272ee74bbdb2bd843faa2f5d57c266312baf2bdc8d63fae58abb9e75a1a1ecb769bb3f7d86c48c9a03ab9a33bb61b13917b43784406d0f12c6afd54ecf585c7a84dca0d11de99ed3f2f59d38acddd351d7796be542ae313b79df50cf3126693c4ef53ceff38bf73f0b9020934d0828069487304e35556f68cf2f526320d3526598b047b52174c6328840d6df3257e5c7ad27a193aa4ecd5c837748140b57755fa7e48c32918b797a1a17e074e6deb7da6a02a41a33985e34e2f90d4f79e895590a04558173781f4380fdde6ac7826fab4ff4dfe56281b28ad11e7e7f4bce47366389c9867314cccc70866ef6be14d35400a2581e072fa0e48804bed89a164c7053ebe3075fab6129bbe6b2130b667a68112b62f0be0b0d24e46264bc8bedb999806be430031dbce1b5e5ffac6e8332a1fe9bcb4c1f66f140c8546b7e0fee81b5ec4f5dca6b16a5f240befe17bf663e349eaaa8a4ff664808271730a8c5dacd19eac213842cf66c37a83b2865ab1d6876966ab564c431461a333c5b2006f13a42b2a0718cff87eac3c52166b8b068271aabff9758dfdad92376e7c09ad7a8ebec1fca2477e3bbf541b1e17f7d372c461908aec8eeeae03030ac2bf93b72c3b5b390f28d148ee96db449edc697b4e885a241268afccd4af28cfc0ce2c3bf30d2c9ba11438964064bbb18665eb62390317386bfc7ea1e2992fc96fe3bc8fbe81e571258652679fac71099a0091355dcc8f946548e5a2716627765fa3af0d6b85795a20771468f45533014bfc9685923d05d250f8f216ac5eebe67f11b01ed7a225c31c5bfdd65b2d03591bc2b7daa22ca38ac340fcc17916f83adbcf28df4f7a1703d26fd1b69f978183892ad3350af97dc6bcdc6adbaf73f2b619fac6fcbcde04841f58c2c059a3afdd6602252c2786c877c249f87922bf7e7e8abf92282c7b43cba011dbf2634b266bf65f5bf2128fccdb78d21041c7b67cd7dae0b3da193797d0b653b84786a0517a66414f636b81fb8935d61ff57142076d02092d40caa3f0a83c89df5dca970b6b225b6fbe61cf41579b735a380f263225b599dbfdd15afdd6c57c579b9148c2ae3604463b020ea265f6eacd49d8e8ac82d424f8c76642df32b33c7f1241070c3b0e9d20c31706548e580609ba67a5a20ebe59ded81e17fcb5ccf732c46797daeef3b28245bda1582ae82b7e47c95c77c6ae9179b352227cde7be750e02108e89d655bd267d0680e3d697ede1ce83ea6c0e94c8304cbe5fcfd223a4dec39d6f79dbd2bdc210ed0e565e3cf2ae6b1bb172c9a91fe0d59a2275998a63d74676fe92624e5cdac4d610e67f11473f7cec4651e81c7c23a1c58b6981d22f31909cab2c067ae496be9bd2825b6e1771559bd9eb8ffceeef8b0e89bb6ccce9e81cf5ec47437e2a74a43c76278e3dbfa008f76064b68ac9721bddf4c1fae11f92a28d8124ab2cfdba4621e85329c4e7306ecceb22f7786c1b8d3036e13eb497bd6957e573cbbb46c12f5cf954a34362cc1739b42ae1314f90e1b97cad058ff4c43121b80c73669d925566e929761abdc07431de3b30104548a1aeff1bf9333505bb42af850e1ec8f81d3696e259316df86ec0c613913364627d1d3ebebbdfd3495df9b56bcfd466e9fff1081e77d7d62fd81d8a9f8fd4d42673d1b74cb633457ffe71a898e68124d16c73044689b7745f40a9f24f9932cff2dcaf2a3a83e2867617dcb3f11d3ee9c885e511065de349b687508ddbea6370fe6cd83f94bf82cf04dbfbe0b73b2b80c6248ed4889a31398d091505e51966b17440ca95dabc4d12fc6866e1ecc3f851b1c7361aa22c7f8b842082f16ef96a1dbceccd150b6850f7463e2b13936f1b62b13ff7610ecae42ad887b78ee3bee83fd743055a8828e5a641b8f116e4f43eca88b919ac4d11b20658ec2a1efd4660533aa484d0b39f6061383e382884de6c5c31ab94a601bea2bfdad734865a374ee983bf6aa0ec4fc8ef7f4cbd6f8db62396e732cec90ba7cf1793caa36f6b654820866a238fefe2a9822df09673bf4ca91163f41ccfe75c0fa6e62f64dccfef31f5672cfaf2c64e3312e2162df8bea0788d8f79713b109c13711fb2662ff2e9ce080802d3797701ff09ecc62b03eafb358afaff1d36320db7126487eae458e04669e136e5cea3f48a1a41e13a0739f2c8b076b0beb26b16f16e93986f02c884398105f17f3b5eb2b86b0518c35997a24ae89fb4dd60af75fb19c249eb716d1780c6ad30f1275c9958e62fed476ee93578e19415bb18059fc1fb3bf9f16e756acd95991f75585169203d6894acb6139508e350b5d4b00aef942682dd452cd84f8ae36f4248af4c1f3ef3c17204a038d29f29cf586fa0b9ea32eb2bef6622df19d75898eac3f477f237942e3763e5e5d5c9ac67403a51aa543521710ef459deddbf35cf4123b85892d00f775d9a3be9389ef00c134b23950ff5597fa007ca7bc0e9eb41603b98368bca6b2008e2564b18fa53345e32c7cc39e057565b41fb5c622318fb41d539e4a318f57b195cf06df977130f08360b2181f11e5b7da66c9e7a2f02e644049552449aa9d25d55f101990907d9dfc9f6d402d36d353b0b7f2a637b1fe26d6fffcc77cebce5f59c02f8f760951bf26c8279581913f09842d898a2409ca636db758d55160c0fb8adcc4f70afc94ecb3247ef53ee723f2832209f73545a8ae03536c9a4db8ba0eccbea63789ffc6244ebcb645d93f938f352e03eea9fc92c95c9e63bd1174b43a91f5b3bfb7b3bf9f0ac6cd65dc1503905e15ab9ccc8a0526b16c9ea3e0719afb51464b83568cc964d07e26839ea647881ce780fc3793f18294189079adfd1903c99e6579424e13b5ea1a2f9ac96afe670880d9da9806a7a7b369c51ac87377f459203d464162e7d815db727786145831ef7aedc0bcb17ea66671c550b6055accf22467c6be7c8c65e87656c4004fe2778b4e04b00c127118d6592cb581defc3a59bf91ef5a2b68e80a8b33ac5897f6c27cb6265052f1fa9398c42ff153ec8fad258ccd99596f2ad059c5adfa533c70f439ac9be37aa2d2b8c29f31f6d135e7453bcb7bd949d00cf4f5193e4fa081f4013ef78d7db17487e3a8bcddf873a293913395d8a3415743b47faca3b671fb1994789e54c15922812934fad1409e2d087db6360c8da1faad5b4446b46bbe6b09415a8b6cd722791690c49487a9cf90294d439580db94830465e89700f787ef77213f83fe4d2cd042e3b4592c23df87e1561c7e89f6bd7c4712e750aa658e258a57d1f902e54e0febb4ed526e9c65e0f53a1747a35a6fdebeb3f8efeb11c37d89f1b9c3e397b053a4529b033a37d99f33ce9cb20c9f01a66b9423779e76be78ac70c51da171c304c993f65d8cabaf5c139673d5edb77961d5678aa941e69be03d0387de90adbdf41d45a0b1a06b1e7f48f7a8c8c725929b96c2449fe531851a8ba93e7d2c52343841237c568ab62a9aa3a2d35c34b919fb4e6704585e23c141913594e5c5b9c4be340dd2caf52cf32f398f3b2f8e4d6324f1daa92b40722cd0128e4595f032928779ee5bc8cf4a3176b07ce6fa0403669f0376e76d22bc83e3c6543a63b7bf6958c33061b1cb14fd750a0dbbedb99d098fe33c4c3b2fca5cc55bd74b6efb6b25fc5cef8bffa5fdecf0d7ddf797cc111a2acf092bc6897faee6c1391d5f68ded8c173e73bca8a38fa2bf8532f1f97daacf6c7129377b964af2ae702337ebce71d10781e31792757783fe81e917fd379611ee836d181b77467cc50423358e281f85d3e7e17b335e145aefbc5f745c9f8f21efedd84634d0ceb847f17f6b6f4466dbf9f53fa4d714dce7b1b3b980f6c613e95de4903095fcf987b206bc8935032e817dec2e7779ef1424e48d6efee1a14dfe5ed82eaa53c25861d4572dea081bef338ed3c6fec3902064a4062338cab9d7bf40fb5cd56ea204be888cb423ecc3c742da19fad07e119e7be6bc5b911cc2bbe0ebe6397de33cae7453128b419109984ce81e693e81297734e91094e982bcbd32573336835caf6029c80cb7724378edcdd9693c9c8bb79d4894a8ac8d318f170e23b16bbfb9857f78b79d35bfac7f6f9a9456d69b88432e609c4c7726fd69b088e3d223f1764ea559090374df01d7b63c6abc84c4a3e807920d9b86fc13ce5dda6b984cb30b1d3506e4e43a3ff03ebf6346f39253e51b95e9e846212d453badfcffb78ee14c4da34ac57f28d937538b0f3c69da2cbedcdad67e722efcf34c838a52026e07636745ef62634d479c53ddeb90fdb1814279cfd52ce1493f5869edc9986499fcd9b9ddf676519ea160af7bc83ac8f6a5924cdf40f56ed35cbb59f920252f8be4bb6d0aa6bf87cce49bf4940725d039a8f81ef33a2fa38c55938616e12c15830f89e2943e81430fd127b1d3a28a532d7aebda5f8b6c2449f339c9614b8bae8bb4d748a0c1d26facc773a8cf729249f2ad717d60826a1e03f67b88287e57a83d05f40f6b76b9e64e377fd61902a96e70e097e5ecfb0890cec49c36190e86f58b6084e78fb0ed38af8ef9f7d434f03714bf627bfb5f7f0634a37d54558fe69d77c300d75c182f364e036df3c92d7bc4661a38382f16bf4623ccf07f168661a8a089d26fedb8cfa499fe256d7647961788fec5568e077e4dcf350bec39799eb165fa3399a653e80f588b75904258560b400b783efdcc6ac0f35af2bfa837844ed59f9bcaf38d773cfe036dfb68630217a251a1816c2ba08d1c71cbd46b029fb6b44e66b58138ff2153c9f6b60356e995e83ef83a375dd589b1faceb261247a57896f7f6772866b0e39165133dc5799b37bd396f6fcedb5fce2fc32efec7fa70e9a09770e54a8fea91b0cd1378d4712fae74392f2ea5f863eabbfd5c3675f3e2fea1dce26c672e73b25e2d7b8a3b47e3bd4a2c0b02fc988caa42e064a5c162bf3196cde3fad9566930ae1fa5938351ed388426c499478cb00543baf1cc0c0db5977a7bd4ac8fca81b01cac2e34d42531ca7210c77d4e840ae02b986e032ef6a37a420246a74429c64a1ea79b8351bada0aee80a991ccb1453d9a12473874ed4da1388242010a55316c10036ea6a8fb8e8269c89cbb15868692b13934d4941646788a5a5dacb87bd14b0e7c35fd126b3dd2a6ca101c6b4318d36f9801671810e51f4c83445d4087ac91e4b9cd29c934735f5fccfad39c05b9de9bba2540b959e1cc478bdd205a42dff7102b59898242c3deb45c8b94ca0b3f4fa2bedc5906c9ee5c7da716397dddea5150fae156106dd4e706b4fa90162890ed18b8cd05a0e0853d52f2cf2d3af6d8992400842a0514ed8ee8bc1a5a4a80bfc69d29705f8fce2f6834978161a7a18110778a50f052b277046876e06a530246d3181541d35e3c170c5b6e13415a622e0af1b9309425cd22b43785328d27dce362a9c64a6331ff7d4380350d0a1204530e42570a101fef947b348ede63c16f3497a1134ee8b9a60e4acfb104df0588acab24aec2a74220781eb4be654cd605d09ebc9879404a2918bae48421812805e3edbe73583e131b7e26d899e777af088a5a110894d353616c26e77a27a8bd7aad088f02fb8cabd5a07bcce186125ad0851b557343ebe941eae5a086736866c6cf4a9e498a9ec89d25ecee3a07cfa16d2770e24d58b4b237bf3fc7348575718b06a55c91ffb08cc01c10cc40f94306746a6cdb299e22d0bf67e09be7063565b204338897dfe31fa479e7efdbc6f0fdc0a3ef9e4716284482417a892ab4d96f170a4cd90e446177b5ecf02a1576c9cf7c75e0c2d1396d0717e0b3ae8c8b463d3647625cafa47bab10cb0967b708d894cd31cbe69680088db5524a3c3a61dce29b186cf5b52fc0a575c061c5df26eee0a506fda3ce6c6117dc90de23d64f312081d07e28e8600f0d13e0ac577bc627bf159d8a3de688d876989ba3708adf1c96ecb4e76daa45c0d137beb3564c03315e05a62c639f18fc0930eae1fd66632b84a77207e65187b848013c39b0fbf65b529035b7d635dc13e8c1deb9cf9313ee050f5c293b780f06751c0ce6c89db6b8dfb283b2f47e53f06106b4fb1ee7f59733cef4364fce1c717b8a8ff5b6002b4f31f897e6bad5e78ba1d2b39be8b3971ede970f48d4fa271ca0c131433f6bf38386fe77a469d57e8b2a4db72cad9ba1ffcf34ddb18bffb1867e3ae845aa192b0fca7986fe0a1e75dcd05f01c4f8ee6ac684e28f31f4ff5c367533f4ffa1dce25c433fcf96ba9aa19f6739ed35f403c39e810f33f4e7d961671afaf93c3ec6d08f348415049860c11d2b3cc7e8aebd1c35de73413eafc454a968d5936de7413885c62a0ae4ce32a86b32949bdf19ca34417df00d6a0420d57a59b61da8d7b24a4727ecf9b5ab4ae59976d5733e66a8ccbe279585eb4f6b6b63bdbd3afae84b57505e37cd51abd75ebd7e0ee69ed35f81581080f12c5b862780cfcd374f6a9fb8160c61c2b948f4ee145444ecd24a4fd59588abb3713acbfceced55e6b2bbc1226a15e0be5e620eb89f8a4acad677df7d8ab2087f87a3b690aca7659058532f29dd19c16715bbcf31b6e5fb92658e2c6102a641223ef3f99eaba4561808b420e1159f2d31ffff3c1380d371e8ce861212fc3ade4f5a59b9dbefa8dfbae68148f98cef972268f958c4a098adafbdaf0a761326605911312f12a478c39ad0886e6244245995fc1e559db572c5956a659ef3404f6611c4040187f49f651d00a7bd309fed9a9f190ad10c388ac0d1d50feff52e7a7d87fdb6670d6c98e8318feecff6cad8c92628eeb958f94de5f93c7ee78a7094bcaf221c65e1de543922583ff66817e5fd2a55a977a49659f03d86474d20acd5871a41a87e5101b17c3382dc8c203723c847a935ecea7fb419840e7b114388f078bc9cf58f1b422aa072df6d082114df0c213743c86fcc31ce378564e02c572b7c9d8fb1df57b943c7754d22084c811b70756a1c72c08018f7d119fa24ee474df6823f9e3e8f1994942dbf5bb55a688ed64b2cba6fab542cd19ec755c5e5b8aaa9e33bb64c7e4fc014c876cae307418210343a1b66b2107cc39e06b12679ce5aa42a26eeb77a7ead68f2d237f40ddf6b3316e6bed38e599c07f58be6c9be3c56ad524d63aa1d8bad584f7d56642e4c100ad3da4b1d11408737cfa9b1bfb1f3c5407848f140c39e86c690241306a9f6d217d42fa440b38eb45e7f75246667674fae6d7a91e89e3c1792a65f2bd7b918d3540074a2a68ccf42cdeb3d49a0e7d5acae987cf96ccaad5e5bf092d7b9f7a60dad5448ad9e167b9be1d04bfae22bfd2e031d1a38e2ecf475f945cd300d724f890adb3c3a874a3596afe9f8dc18a152f13503a0d0b026fbe27f891aee8422073429cefb8c7e481cd08780a5fe83e2d9b12a63b8c54ff0bfff0e35c67e3179eea67ade04c94b0992e4da7facda8987bc8ccaf9503b4fe594c95d7c384fe5bc606d044af1c7a89c6caea7b0a8bce94de5bc718a73aeed317593608296ea2754798f096e22f15e11511b8b52735a6f401399672917d7a24cd48a2936ea5e6ff6cc77ad8f2a56360de46abc89203d89be6bab8daf782cd3d067b0526deb6cb00a68534cbe4cd5c9bce28de6324cd088624f0ea7408a2268d81270565c85c3a2fd90b4ad5c03acf6edf3ec11953505dd1c8f1438edc81b8ff01c13cfb5670cbb7468363a44b46ed5b518ab3c459c582fe9bf00036d02633d1c38f688a891cfd35e4fa8118c4d9a0e76d8634fcfd36e5d8bea9af2ec77f795a46cf8862a531586e3e5f60b6725d8a98d41c7a26bd665752a7c47d98486be2035391a36ad274fefc4083860183a6ba122fdafe8d9ffee39e0bbd7d5c8d9a2693af46c7ace7a56552f234879513aae66ebd93dccf16c693875556d0d3a8fa7394cb513d269283fa82a6e87e9fd3195edd01ddc5f008fdc8b33b122d93929a6552c70ff9d441561b20f1f92782f0b26334df60d7b611aca72cff85128d90c4fd32e9f21e1d46f3ec2bbf97d301bccff3bf83e0807e379ec53c9ed4091bd9de63fa8745608754795cedfa1e2de2f26d1dd94ce9b287929517297077cac06ba33fe25d451b9269c89f9f22e75b4a2acd07bd5514af14d1dbda9a37f020f3953371d375120d9427b0b8ff35aba2aab6331df4a55dc1b314edb77b6522b0fd70fa9a2b74fdab6cfd0179b5de05a28dce3debb04fdd05017403849177fc57af12ea6214d51cdf4d4a8ec92ebbfbf66c85e1d1848f682e2cc9308eb0570832830f44d2087cb804133ec77af4e3540b1512ba1597c83a49cc6c0b11766839ecb16d60dc7a32d98186543dca08dce124a39e44de6a66c4fb7d3760936b4693451567bc5696fbb36b7e772839fb9c1cf5c037e26257ce5b94cd707b9e837a1a1a7c4de121720990c84ef1dc333a6f782d71bdadad363d913746edb10232b0249c37eab4aa93f049191ddbb29b1871d83ad79470dd23d6fd27b3340a296f318111cf3779d834b84243ccd5b0e1a55c093f4f13d0b1d651ab836329fd13309f739906dc0eb0951bc7712b2227b599802e5d1d5b03bfbb32df6bc89145a668cefe3c19aaba7658464b49d025d76ee1efd39902c7bf6e277804ad9b3373c83078dca501f995cd7cbd6e7393fe7dd7efb7e6f78db1e1999c359e0bb7a08a2a3586f8542b3e07bb703c911dbd290d427e3e167782d0ec2207d7e3c57ee3c1343dfdeecadf323759037b6c7d5592fc1bce5901a00f31c828486d0656f7903bf05d4a70249bfca98f80c580d67406823f59469e8defe8cb423e7a00ca5722c8bcb3690008dbd757ef21a723b7560aa6b02f1f91f8047398bfedf1c0ae6c85cb3ac3ba67b95608f726828026d49dea24d98ffff89efd2010819caaf9a9d86a89a6f8fefe299fc6e7912f15fcd20e69bb47db17603d12b98bef3e61bea86d708a377a344ff29fae7fefa197b7857a1b604a6ada24e5ae90d3a28bbfd103cd71efa8a996e8cc65ee8586ff83c6cc38415cf39975ba9dc52f5f6d3ac49024fe58aea81da317bce2a812e1b01a7298294b5213540b6e09f4ad978748ea141fc8b3fb086d709919cfbf3c5116f156bf3135c54172c1f7f7351dd5c5437f3f231f332bde9d7764491512e12fd288bc7abc5ffb8bbe9f182d18f84e29bbbe9e66efa7df8c141a792e0b91d913b3518ac505e9c49ee0cc386bd31f5f93048c28dcb14b9d0d085d0e58e266b02e5a6b01bf89709cc34df8b09c4ec5ba21c93802ec3128371130b69b30171401188032e6cf2c28a253af7385f4a06539b06f565e31183889c15bb24e3331cd3b7d06da60c7a821b8b33a132486b2f59d1c33cbf872bf68cae8ae041f795c17d3cc5990193af67ac2d8338378e7a69713c86b15f6f66c65a3e8782101e9a24d891198fb78b711684e7606c2ff2be9e1e33fa7a35fa6db6b71a24102eb2159a7121c890d15c61e4aece21dbb7cf853d2d197559ff24d06fffda120596ed4d8b0408b64b98eabced77f6db417ab6f16b995386040f56d166d6c52573be54ac0b3728ea29905f8b8181df61a2ca1065f3de55d4647be14bca322cd64ee852252733caf5b362765be31e2dfc7fbc00a8d19906b236f3dc51d59a2b50b6d3e2beb562edb36fa8cb40ea4760dc5cc2de243213b22eac80be3823c53ec768089d55bc75774b4a362d8c686f886225b236829a64f376ad220fe9025717816b3163d3eed900893a83862ab3df339ab94183f3aca2720a13b547ff6ea140d0536073a35936ee1758be9b43ea2cc37bce21bf9a28338039ed85a993c2aa58e12e39687da7460cdfa161d788f1ece47b692e0ead234c547a1f6c0b41c37e0b0d020394ed7d2f79ac08cea51071a57950faf13dfdeebbda6a6b9ddf7cccabd2fd6b1948f60c3896d0769425c97b1dd140dd92a1794c9cc3f4ce1a2c9097041b53a7c7d7de9a05ff8a5338b604cf51de00c92bade58e32435f40b93301ae5935afc59514ed257fa50f89b9bcd10faada352ccdc96781dffc96a5fee83c855304dcbce94dd3be69da3f5fb2e637fdcaaa361be622a19d0ff7e7a9dabb5ce8a8a6fd205c30b0f3e1fea314ed9fcb876e8af61fc30e0e69da0005638b544cb8567866883511092d21ad0e2201b7b9a165983f029d464b7da279728d2c9b2f7173e7b47d4c6a5ad0684e697810d5e4b2f1a3a2d698d1986975db7472edcac652bb9e6b6ee678a70f5292dae6df8f45d5bc4e658ad570e227f1e13780b5f9483954c672dfef09c27893436f72e86ffaf0b08b7e6531948e720929f45e38d3e1f31e29b4a21cce7ba55042ef4d0abd49a1bf0f3338248486586899fbd7ab2221fb863a84ce880a7dd270e939e2f44305d0cc9d44734a025aeeb28a9e6be355b48304d112b1cc75c168c9e342cbae2f1ecb49dbc6146f829869b3f96a2bd26783ed0b89b96cd2927a86be0924f5cd6731ba0c693e1f7bcbcd050d750c247b641a6851c879e0fbf731e5751b07f7ac98afc0e9ca05f56c2f0be528c79da52fd98baea16f7a896a07929d92f28776319e8bb6318d21ee77416965edbac1c505f649921cb31ab3361f2aac93f0ac9bd1f826acdf84f50f7a9fe925bfa6a04e46b884902edd9f0983fe1e215dba9c904ee8bd09e93721fdf7600207047489084b4b182b88269d296f9e6b091d1253d22cc625bc41d99e81bab680320111dbf0e0783bd167218d17213e73f2b7065a015754491c413ec656d2832a42a3f305ca9d9ee702d44fec2448ec8daf5381c936d4cf0c33b848c7e7221d2cd924050e48816b4d6882adfa1d380a4bee6498df1b5a4f990ab6eaa288831cc8f62ac0c2bf618f7ab286283eb132eecb68131af6bc184f103aca2674b515949b44e88585f666c35202b983208ba7e9891689a1b9b88037fe1647c7043cd2e64c014ffa6ff1be270a9f24f9932cff2dcab547517d501ecf91f094dfa130b05c7b100551e64db38956f0d8034d6f12de4dc2fbd9cc9ddcf2ab4a7878848b0403c8f26109ef04e67348c4a3dce782221e21f82a22de2fc67e6e22de9fc0058e8878580422619cfa28177d48a86565887001eb9385616a5310f3120e01c7904103036d38e6272f13d34ad64bcf6917734687e0998eb9254ae538a48d26f29c76566a86e5431feed7d0d3604f887381fe95e7363714e784d05eee734cb041b23ea183fb1c0ee1317a0d71188cad89e7ac329a335197aef5068bb4f95a87a9ef765085585daaf8c8c4d98cd6cb8b8ee341303f1a555a6897b9d1ee3fc846a85cb0b4c5fdfe80ae9b8df02641dede8ec245bfae14c946b988ad503d1330542117ee4c636105177ab7b150fd30bc5036d553d850def42649deb8c1917bba2d4d2a88d5d9ce25a744157accc3db75940a8410820c32835238060e418d59987a5384719eac4811f16a3195b074313486144943d2798d792c192d8063097ed1889728cbf079bd045288c0335af4fa7aaf42d22206c3a2179a8cf32c6afd54ecf585c7cbd13326b5b2a75052f441439b06893daaa067035c6b4351d8ec5a60a09426739d45c3e5bdc7d911180dd2004dfcd1bf4f951aab3ef841177305eb3e2a3ffe9628f53f9771dfe4c7db8bf1a32f46d5edff1899b262e44bc8998aa07c809c5911befe5e3993107c93336f72e6efcd354e973d832d877145c23ffd9d24fcb3365b486b8020ca0da7300908ea1b96c9b0ac45fbab90f1c6d9377d28cd111cf3a4748a70c9230283bc6f040a693c4d41a748a6a926b0efa39c4e7b945b11f3793287f617e0d8a3bcdfa83c6e4265c8ff8fbd2bdb6d9469a20f14cd3f2c26632e03b11b10661c1cd3d0776ca1b11b6c05bc60e97ff74f7463271ee3c489b228121791b2d00beda272aaa83a279e5a0b04adc716bcb96795157d40b3b72cb3cb54acd85e528550bc9acfaf75adfc63128378ae455b8bdebdaf7d85a46bdd478014c110e1009023c20087ced3a3d5bf613d37d82451362cfc1a0f0f1a6cec3286705a5c004889a65b82725b7e78312ee097148767911a0832178a76e5b98a339d6f9f9f4bfaf4b79bc4718c116d8503fbb121abba6d5101fb02c6bdb9ff30f75f81ddf4926f00da3f926baf03da1dd0fe81ff32d943fe89789a2ef031fac20d58fe5cdcdc12e5bf5f5fb8de66079c3be0fc23bcc04bf8986114336718ab219e3be4687d28091edc2ed180127c45ff740f194133ae15eb00da21b3d21bfcc67e766a9cc43305d121e7bb56164f5ac8b16811a6bda41d55f9e85a4d1689ae727ba59c94aaf8b8b648957c6e074cb5e37654e9c05a788c719e84f95e9186ad17085211b337e53ba6d22b673ad8ae23c1a9c7e150981654e516601ce44e895c63e9d16a8661e5418b43aeb1d3c17085d49bdc9c844773d7f71ce6878e264cd5733465e141834480cc8ef6757c2f24c8dac6497c009dca87a3c41330662a2a4e75507d3df3b9b10ea143616e81a09447009fe6d6b9b39fd75bcf985647342ab52b86c16dcc3ae10efb58eeed642a3838ccac4553007cae638b62f167dd7b492460c214651a5bd22ce2b90655d2614cf954d5601366b2e0439b9cd02d64a40880937b90921fd23de81ac281e6ec31f93d82c3ca13b0fc30d18b96f999c29366d5f7b64379434607d03aa036c498b703419afb8d82d4df647164235ec6baea46134aac5836ea416fb4d797edd364b659e86af460540aae6dcba8a6f989dd642745dcab40b40155b31d18d204b654f9b4d9cc19558d86d5fda0a8ab92b2214d93a87ad0bfef811a455f3566448297ad7da2fef1b635a799839146deb9561def35ccf570388f278a84dcbb8faabe294abf4cc397c15473cd13887a4f14f747942541e42f2dd8ae8194cc5d7f5c14c79f87519744713d1ac55d02a3f6377a018c7a766917c57551dcf7e0b7e6e9fe84f08dcdfc9b2c92f495b7b3ec92bd83e9f5beccc17c609aa8de75e7603a07d339985607d3b8814f7633bf8b62f1eb318ed2c7382c7f2dfd24fe1f2e5f4b169d1973704722ffa69c519b237a2d6724731fa8ca4037fc2529a36f76455dcae8e77b84734fec53e668ac0e07f79c35858e32d401e602b8b9529345df070e46b7bd3a92ed0780acfcaa8e9036b29e5b5c0cb7eceda67b97ea0057087ab29e612ed294dddfb4bf8ea0b4f105dae65b9a9cb2f15c9ba37abdd956324505479a4dc24cca028ddc586a4f1ca9bdeaf8f7f395275a3b7dc6d68f98d6de95e17a7d53b49711d89271b2e89b02261ebca3fbf532791edfb3eb1120820eacc273addd78626c50cacf4ce894a1664ba64b7b5f483377a2df6ee7beeb259eb0c5a13892f55cc94c382a11e43791362f29053e701e5cc15a07b94d82fc2e1dd3cccf4dfdd5f7ebc81e0c77e18e4b5136dce900611396249e28adebbabcbcf40479a5a70a0e33824d889708d824987169a4193c9ae85763555e1ead713b38d95f73264908bc3298f005aa74763e42b27d3ef692b37079390d045bd2673d12cd36eb7acc7e8eb12ad7e773a5a6cfbe9f6dd6cd79bffad693b99eb883411d0c7ad9e9fdff3f000000ffff010000ffff8ba6b93dac930200`))) diff --git a/docs/commands/rhoas_kafka_topic_describe.adoc b/docs/commands/rhoas_kafka_topic_describe.adoc index 7e31eea420..0203b9a622 100644 --- a/docs/commands/rhoas_kafka_topic_describe.adoc +++ b/docs/commands/rhoas_kafka_topic_describe.adoc @@ -6,7 +6,7 @@ Describe a topic === Synopsis -Print detailed configuration information for a Kafka topic" +Print detailed configuration information for a Kafka topic. .... diff --git a/go.mod b/go.mod index 6d0ba82542..e7a7a870c4 100644 --- a/go.mod +++ b/go.mod @@ -22,7 +22,7 @@ require ( github.com/nicksnyder/go-i18n/v2 v2.1.2 github.com/openconfig/goyang v0.2.4 github.com/phayes/freeport v0.0.0-20180830031419-95f893ade6f2 - github.com/pkg/errors v0.9.1 // indirect + github.com/pkg/errors v0.9.1 github.com/pquerna/cachecontrol v0.0.0-20200921180117-858c6e7e6b7e // indirect github.com/spf13/cobra v1.1.1 github.com/spf13/pflag v1.0.5 diff --git a/locales/cmd/kafka/topic/common/active.en.toml b/locales/cmd/kafka/topic/common/active.en.toml index 935785c515..f209bda3e2 100644 --- a/locales/cmd/kafka/topic/common/active.en.toml +++ b/locales/cmd/kafka/topic/common/active.en.toml @@ -41,7 +41,7 @@ one = 'topic name is required' one = 'topic name cannot exceed {{.MaxNameLen}} characters' [kafka.topic.common.validation.name.error.invalidChars] -one = 'invalid topic name "{{.Name}}", only letters (Aa-Zz), numbers, "_" and "-" are accepted' +one = 'invalid topic name "{{.Name}}"; only letters (Aa-Zz), numbers, "_" and "-" are accepted' [kafka.topic.common.validation.partitions.error.invalid] one = 'invalid partition count {{.Partitions}}, minimum partition count is {{.MinPartitions}}' diff --git a/locales/cmd/serviceaccount/active.en.toml b/locales/cmd/serviceaccount/active.en.toml index 87f64174fc..8fd6ebd4c3 100644 --- a/locales/cmd/serviceaccount/active.en.toml +++ b/locales/cmd/serviceaccount/active.en.toml @@ -70,3 +70,18 @@ one = 'Sets a custom file location to save the credentials.' [serviceAccount.common.log.debug.interactive.fileFormatNotSet] description = 'debug message' one = '--file-format flag is not set, prompting user to enter a value' + +[serviceAccount.common.validation.name.error.required] +one = 'service account name is required' + +[serviceAccount.common.validation.name.error.lengthError] +one = 'service account name cannot exceed {{.MaxNameLen}} characters' + +[serviceAccount.common.validation.name.error.invalidChars] +one = 'invalid service account name "{{.Name}}"; only lowercase letters (a-z), numbers, and "-" are accepted' + +[serviceAccount.common.validation.description.error.invalidChars] +one = 'invalid service account description "{{.Description}}"; only letters (Aa-Zz) and numbers are accepted' + +[serviceAccount.common.validation.description.error.lengthError] +one = 'service account description cannot exceed {{.MaxNameLen}} characters' \ No newline at end of file diff --git a/pkg/cmd/serviceaccount/create/create.go b/pkg/cmd/serviceaccount/create/create.go index e350b0f793..548835b922 100644 --- a/pkg/cmd/serviceaccount/create/create.go +++ b/pkg/cmd/serviceaccount/create/create.go @@ -5,6 +5,8 @@ import ( "fmt" "os" + "github.com/bf2fc6cc711aee1a0c2a/cli/pkg/serviceaccount/validation" + kasclient "github.com/bf2fc6cc711aee1a0c2a/cli/pkg/api/kas/client" "github.com/bf2fc6cc711aee1a0c2a/cli/pkg/connection" @@ -50,7 +52,7 @@ func NewCreateCommand(f *factory.Factory) *cobra.Command { Short: localizer.MustLocalizeFromID("serviceAccount.create.cmd.shortDescription"), Long: localizer.MustLocalizeFromID("serviceAccount.create.cmd.longDescription"), Example: localizer.MustLocalizeFromID("serviceAccount.create.cmd.example"), - RunE: func(cmd *cobra.Command, _ []string) error { + RunE: func(cmd *cobra.Command, _ []string) (err error) { if !opts.IO.CanPrompt() && opts.name == "" { return fmt.Errorf(localizer.MustLocalize(&localizer.Config{ MessageID: "flag.error.requiredWhenNonInteractive", @@ -62,13 +64,22 @@ func NewCreateCommand(f *factory.Factory) *cobra.Command { opts.interactive = true } - if !opts.interactive && opts.fileFormat == "" { - return fmt.Errorf(localizer.MustLocalize(&localizer.Config{ - MessageID: "flag.error.requiredFlag", - TemplateData: map[string]interface{}{ - "Flag": "file-format", - }, - })) + if !opts.interactive { + if opts.fileFormat == "" { + return fmt.Errorf(localizer.MustLocalize(&localizer.Config{ + MessageID: "flag.error.requiredFlag", + TemplateData: map[string]interface{}{ + "Flag": "file-format", + }, + })) + } + + if err = validation.ValidateName(opts.name); err != nil { + return err + } + if err = validation.ValidateDescription(opts.description); err != nil { + return err + } } // check that a valid --file-format flag value is used @@ -199,7 +210,7 @@ func runInteractivePrompt(opts *Options) (err error) { Help: localizer.MustLocalizeFromID("serviceAccount.create.input.name.help"), } - err = survey.AskOne(promptName, &opts.name, survey.WithValidator(survey.Required)) + err = survey.AskOne(promptName, &opts.name, survey.WithValidator(survey.Required), survey.WithValidator(validation.ValidateDescription)) if err != nil { return err } @@ -228,7 +239,7 @@ func runInteractivePrompt(opts *Options) (err error) { promptDescription := &survey.Multiline{Message: localizer.MustLocalizeFromID("serviceAccount.create.input.description.message")} - err = survey.AskOne(promptDescription, &opts.description) + err = survey.AskOne(promptDescription, &opts.description, survey.WithValidator(validation.ValidateDescription)) if err != nil { return err } diff --git a/pkg/serviceaccount/validation/validation.go b/pkg/serviceaccount/validation/validation.go new file mode 100644 index 0000000000..078799ab5f --- /dev/null +++ b/pkg/serviceaccount/validation/validation.go @@ -0,0 +1,92 @@ +package validation + +import ( + "errors" + "regexp" + + "github.com/bf2fc6cc711aee1a0c2a/cli/internal/localizer" +) + +const ( + // name validation rules + legalNameChars = "^[a-z]([-a-z0-9]*[a-z0-9])?$" + maxNameLength = 50 + minNameLength = 1 + // description validation rules + legalDescriptionChars = "^[a-z0-9\\s]*$" + maxDescriptionLength = 255 +) + +// ValidateName validates the name of the service account +func ValidateName(val interface{}) error { + name, ok := val.(string) + if !ok { + return errors.New(localizer.MustLocalize(&localizer.Config{ + MessageID: "common.error.castError", + TemplateData: map[string]interface{}{ + "Value": val, + "Type": "string", + }, + })) + } + + if len(name) < minNameLength { + return errors.New(localizer.MustLocalizeFromID("serviceAccount.common.validation.name.error.required")) + } else if len(name) > maxNameLength { + return errors.New(localizer.MustLocalize(&localizer.Config{ + MessageID: "serviceAccount.common.validation.name.error.lengthError", + TemplateData: map[string]interface{}{ + "MaxNameLen": maxNameLength, + }, + })) + } + + matched, _ := regexp.Match(legalNameChars, []byte(name)) + + if matched { + return nil + } + + return errors.New(localizer.MustLocalize(&localizer.Config{ + MessageID: "serviceAccount.common.validation.name.error.invalidChars", + TemplateData: map[string]interface{}{ + "Name": name, + }, + })) +} + +// ValidateDescription validates the service account description text +func ValidateDescription(val interface{}) error { + description, ok := val.(string) + if !ok { + return errors.New(localizer.MustLocalize(&localizer.Config{ + MessageID: "common.error.castError", + TemplateData: map[string]interface{}{ + "Value": val, + "Type": "string", + }, + })) + } + + if len(description) > maxDescriptionLength { + return errors.New(localizer.MustLocalize(&localizer.Config{ + MessageID: "serviceAccount.common.validation.description.error.lengthError", + TemplateData: map[string]interface{}{ + "MaxNameLen": maxDescriptionLength, + }, + })) + } + + matched, _ := regexp.Match(legalDescriptionChars, []byte(description)) + + if matched { + return nil + } + + return errors.New(localizer.MustLocalize(&localizer.Config{ + MessageID: "serviceAccount.common.validation.description.error.invalidChars", + TemplateData: map[string]interface{}{ + "Name": description, + }, + })) +}