ghc-ghc-devel-8.10.7-150500.3.2.5<>,d p9|  P^Tri#iC"8 yfFYM4oVW/N@ێZ"{ }C>8"x7U!=8Cn-PU4.GK9ɃE (.RNX>}В(I?rG. CEZLT)3xM]e5޽J}l7UOy2CF:im ,*b/abGin)7+1Hςíz窨--C>B?d $ J :@H  0  ?| ^\ M UtlP$(8h94h:h>MX@M`FMhGMHldIDXY\4]^ b%c&jd&e&f&l&u'vE wG@xf yzTdhnCghc-ghc-devel8.10.7150500.3.2.5Haskell ghc library development filesThis package provides the Haskell ghc library development files.d ibs-power9-102ċSUSE Linux Enterprise 15SUSE LLC BSD-3-Clausehttps://www.suse.com/Development/Languages/Otherhttps://www.haskell.org/ghc/linuxppc64le/usr/bin/ghc-pkg-8.10.7 recache --no-user-package-db || :/usr/bin/ghc-pkg-8.10.7 recache --no-user-package-db || :^x^u^uQ<Q9Q:VSU  @=?EEE%%%5 55 ;|;y;6\6Y6[@@@khlIF%%%???zzz>;>"S"P"Q"7"4"4sss L I Ja9a6a8vsusssX/X,X/000(((URRC@AFcF`FdQQQHHHL%L"L#@@@*** j g g,+,(,,AACr555O`O]O_w7w4w?EEEBAB   j6j3j9ife [1[.[.]]]{{|{}999   "#o#l#l d a bc`ennnc``BvBsBr]]]@@@'c'`'`YYYcccxZxWxQ@u@r@rWWW@@@ZW^===SzSwSx3s3p3p6g6d6eQNNrrr>>>jgl222>C>@>B^[]"""ifhErEoEo626/60XUU~989595???cccۖۓۗMJKPMN+m+j+j    1 . .PPP+R+O$@q@n@oIII&&&:::k;;;TuTrTt...FFFJJJLII jjj+++  } ###+++%m%j%l}z|6}6z6|   444***$#$<<|<~111aEaBaFIII===mmm999x`x]x^;;;(e(b(bVUV...vuvrvr\\\tq|GDE412C@@  a^_R}RzR{kkkU<U9U;yyy~~~œ™š555OQONOOhhhHHHEEEUxUu!!!C@A.).&.'ԕԒԔ P M N 8.8+8*%G%D%EWWWN N N '6'3'4"""=7=4=6$)$&$'IqInIp:::000?? ? *M*J*P͖͓͓gEgBgC$$$8k8h8i*'(&&&~~~;; ; -v-s-tppp'$[[[${$x$xHHH5A5>5?666eee888EEEb__0-.rCr@rAKHI,,,!!!ooo959293WWWDDD>2>/>0lll---lgldld|yy```[~[{[~wbw_wlMMM}zz222,,,PPPJiJfJe \Y`qqqrrr$!!HHHhhh[w[t[ugdf>X>U>T'''<<<888586^Y^V^TFJFGFFDDD/8/5/322~2z$$$5 5 5 NKL\\\%%%!!!!!!aIaFaHvvv;;;^^|^|>;<ȖȓȓkkkN0N-N-ggg$$$888JTJQJQ555,,,' '' $D$A$A444A?A<A<"""0[0X0X\\\nYnVnWOwOtOo|>;;fffQNOdEdBc(%''C'@'B)))CCCCCC854!!!MM~H/555;; ;lQlNlN~s~p~t;8:`E`B`E999gDgAgA###'$&___'''UUUg:g7g9vvvmmmFFFifgqqq&#"  =:=սպվtqqifga^]wRwOwN_f_c_aX`X]X]_\GDCZWX|Q|N|Lwwq '$%;89sssnkkRTRQRU׾׻׾|~(D(A(DGDCZWYa^^fffɼɹɽ0-1ccc1q1n1oyxxD/D,D+yy~y}.t.q.rSP_PgPdPg+(*~~~||+++4446 66777wwwMJL~R~O~Q???<<<rop   ]]]333J7J4J32/3!!!&#$VVVDDDa^`p#Ohru$Tly v24&y%" XNs r)      |040&pu,*AGVo ,8)6x D Bk$Vl-K A*V>pF2RN awϩa3N6r`0e()0b5<<&>6?XTP%Ǔҫ #q g 3|GP=h??G3HV>g-  `G % M_K^o&X,67{xK' #9jAg(eac%.g%zs,Q- R4W !x1I`!"}?G ?<`n/20 $hmY=X) $ 7 r !: FC|W8[*0+Qi w /u m" i$S F(4|?ZW UF T1 z 94 C O^J!EBbR_ x|} @gwu7 3t$i[v/n8Pp$# R qTCie :<q+&_ͶxwMKM]"M`x  '   =.I*JD!>5'F6(6^)YM. tL X \c 772 ki,?A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d Nd Qd d !d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d d 9bd8bad6f25176f777d83064036d93e8b941b4e8f20c88f85bba09692e823220e4f64d03a7328f0dbf3d3bf051a041443d953ff5ad9d3c06a413c877b6b60d7b064d8dd33065c39ce559e9492271343fc73ab5107be664fc2d9d1c3843a4e5673da8a600920d3394d8ced25c177c214329e28816cdf92a0bf83d1f13e9629037dec6973fe6e8146bdff65c68205c509e79f071379bcc47d3664d8189a707a28a1ee31c304e5f9ed89db8c8059fe1074f42d5ca4ad885134a5c4c590092c9783976dfb3104e84e84399826275ea97fc28b3088d166a34b8cb81d4f9c6a394f72c120f8ecb48ea7b3910c2594bb286b2d9bbcdec1fe87f7f257251ae56b8b0cbbc823b7c0296c36b2cf342ca2981161d3445d0da643c3161a7cf41f1a265b762ec1421e58ca5ec79490884f6ba2a6b8fa03ed0fddb974f9f9cc08b6950e6522a37a450bcf398270259eee44263157b4f02ae0c60adc4980bbf48bbd140565fdacbc1412d949a0af4f4ed6798f4af1aea060cbbc7499bc0c838af5d3f26d0e44985f0b575fe30daaccba77493b4f6f33c3b27ba755ec2a97e4e5a85b90b99fdc7624964fcb43d694e158f0c511989c9141e172cb15a7ac9b2e2aab1dbdd79a18f74226be7c19d117ff1dcfad85417653d8277fa4e44c8f95bb3a6ac2d54a99c0659b6e74e481446a3e933e1f45d1eace601a3697ed86f4dd5027332deb42498bb6c389762f618b2688c205e19ce0cc9a4461612aed267c957c069c0594a7631b7dfee4a4d50e3fe2dd78ef2c6f26ed00b653b5bf52217ce17a684166c4bbc2aaef54d6a9b7a26fa160df49ad8e278e42dabe3581fcb5e5dddde36ce80d058935be8225dd790db999dfdd0a29d88f9b41374253f855a9ff4b6b6d1538eb2c7654db423de466c5dd77a6a3e7300e628a6ba26a971a54b510c5d1e9148acfcb9c3b458dbfacfaf53e4e91d92af3f223476511db31b2d6bf4fddcea4080347b80f5b2bdb7bcd408fc7f3d0b5c66bc33ca8ba7e79e9c944bf9994b3b2680868562fd1d88b03aee03955846d752bc6052eb0e832c6e8757ea3e5db44192a05906b005bab2e9fec2b3d6b68a3dda7fee98e0447d3f662e9480dcf83d6b9374438fc74eac9c1ae6f69f29b88c88f6a2a3c72ccd9fc31121f605258b9c9c1c07c49cd6a6526c8a998f77de25d9d5d3b1ebf50d1b4605a70ef4c50dd1b679f6f8148c83ba2835dc0ef9087b38c8771eaeeb96583f1d4849a9d77bf83fb65f13ffe99189b733ee909f8dfff005d63acafa3ec2b89b21e0b43865482de9152295f4232ca0b8d5a771a09d3a7804ce9ef9bbbeec02cdd9b7f50d1eebac6d5c58051401699fda7d52e75afa2007b1f965f643e2f21e72b675f03f0d87c40071b29807d0f9063bc8cd109875b472f2a70f114e79750384f2b403920acb66187f27e33459878de83d19534cfe97b99dfc83dc155c09b3f9d0903c3ffa466078f999915736c592b4c3110995ac84b85176e35994399913fa5d4c2bd325f14cab5cb64b35829476999dd8660d1f622b1ce7d4a068df3f5e8b8df83eb604178f99803f3f6122f0934045664c70a276f89999abc5c0fae41f92568ef957a94816ac431fa41136a90f170a2ce26d0e8e1f5d8794ea5ed097573f0760449f3bd3cfb10f446e119dd3870a80d8a3033a50688626ee0cae5c5de5856ba8f250560adb6221cdb2aec1b6f08b6160b0a0c128ab1a9094857bba2771bf31250c05198193ea480312c76c42085b81425d5d1c62bf8573b19a9f65f7bc741ace5d11ff95db54da461c33c691ec9a89ac2cd94f44d397a40385e4158df0a122271380f42a77226ca6c317ea678af2d7fbb5b36bacbb26a91a84157e8d6bc2fafda4e049a8be4124a88afb845dfd8aaa12d6a80b83a8c2f76734a2a169051ea639339e6cfc73f2733901e2204c29108e7b86e3a2b302e5f30d598017c193ad407fa7841ece76e4c4a3e3bc8c991f23a3d64f1b8a07753a70a8d76838a0165b785b226c0212d66325c92e330c3d3de7813863a4b665bfaea503c09e7f8b6d928939ffd4d5b829cb03ec32674af1700d35304a599803050380c7a972ed4df8384501aa3a49819d84cedee77baf68e06d055543603e501df69ff8991a96b4b1dd8803f6d4129654139bf168054bfe42dadc876a9425981f909f2c9aa57d95dd101cd36a7ac5b34d6b7d48c3cc53a8da37cbad86fe19ee621aa00cf08e03d737a30a185a720dfaf2b7fa1d78b8442163d0bad9d5455018c73e7efbc8fdd74555820a143485aa9cd1ece8a18a87c627d6e9c48ece2ba3412b10b186e6eca2c386576b21af13947df6b648c5d2d9c371c5da6b585353c0fb11863e8ecbe612562e656da3d6534e8a9696c2d8d49a95bc73aa0e3043e8bffbd5f55b7646e663fb57cfd34c70d2636df4afe376f7549ecfc2d03d2e71d7d5d4fb6e05d29a28d0d7cac65f4a830f3bfdcdd412a3d6dbb03df507e8b366f2792210ce95a9d1a04d1137db3f9cccd1e9c44c9ff04c5b351101c2fb51a7ac68a6224e351bd3f706ba0394843298b4d21162a905cf655c0b2da3083a56dcdd57e0b88ccb864d07fcf5de034ac8cd571e40fd246ac52c6e98c0af9773085d4b73e861f29ea1c0199f31b5094412855a135f51edbd8b75b6001e3b9494cc7ec71fb9d2039e9f147502f2ee3c478e07b8d01988eaf677ea466fd5f98a8045ffa59893fe856879bbffa54b9fada12f7e9cfdb0e773f39a5dc9e83219572897dfc3c511a28cdf6dfa61fea65aacc0fa731659e72f51750882f948f245a7c07fe8ff4248859ec1255eaf367b7c0b09f785f9f430e7f1672f922faac25485f66cbe0d9def82ed9aa1a123becb9377fb5a171f0aa47214732aac4d32d605accbd8337079ace63234e15fa3908b3da9990d62aef9af83865944b25fc71b936ef621ce0e60ee881807a9c15465822e4bd3869675ca33a8b35fabbb0ec4e9d4ade33e53d7d5fef9002d56ada1a6238f27243315166dde500049df02b3f547a7132412f8e101c754d4373a00ec68c45c079a0c7f498aa49b29e9ee31826c26ad307e989745693a7b712f2051589885e5b475594497655917171ba3a4c94df63ede698ab52f292f55e9bb9532b9ea5ed1eb0d69d8b13aad86e640d6e2b3a2bfbed202a42d78d9527c08b7ecd0dae80f622a0d846c49c26c052920afd4f32c53df222a70eb8f971d9e844d4db097b37d5cb3528832634a46b7730c28ba8a59d0aefd1b77300716bdf85cbe82d57613d46746fd055f56f99220740851493721024e0d20083a07847e81dc74f4657e0d17fa5fd8860564269c49e850270f8296b5cd37a46496fe283d94bcbd60e55e0c69c69ab42e4a23bebafdcf6bc979cb2e9526fd0bccf676864480a29fd0e0a46ceea668a656b812df3cf7b56749bb73196d4d3f03f250fc0392b19ba1d2fe0fe689211c06c3a9f4882ce1e69ed6fc06a567fdd6d67d4781c58cd0dc013fa1b1261f863ce7aa691e9284d4757f7af45af5278f02ae6d5dc58e96a8eda5a98711575096c01cdca864843455b02ff194e6565932162fa8dc142bdbabc49ff9712d117cd3497f4e38727991e92d1b484d1981d8596d55015950b2f0a3c2c44553b120fcc0c8276701e7912183cf649b4c0504a225c20d17ab32a8f39509fc27dc255c4a5427e2a528359e5f73a76eae2c555774e1172a7a9cd7ce61ea2095ffcbd5fb30f6843b6e53ac532e1cefd6bb780cf8572bd0bd8c09409e491fdd74dac8d6f38b80e3507b52751ba3eb043131c4cbbfe55e5d0edfe41a4786cc7593229ee1ec531d79ae2e6811da3209df7fde649650a6f2c7ab958fba2dadaaaa5e1e978180d17f44d29b143bd50d626acd66154ff6f5d7d6284aed8ad5e8ea202fd22ffed0ba7fd4a92f90c54670c0f180c38cd1eca5e0c0215c096e774741582396c91bde36d41d50ce97cda8e2a681f53b85757c40176ebe86a1a97348bff34b494b44678ef45474d54f8dbd50f849d4ec8633697d2ff198d649e9124fd659e67c819b7efc7ef22b32de274bf1859e7e3dc0db31c4b54205bbb716bf8aa56b65c87b5624efbf23c9802b0a203b14669e2d14d6a828258677935b2bde76fa7658c048f93075eda7177a7c6854c5f27369fce707d83d750ec5f3384416a8924235b684e46b42eb6b68a01e5335015f6c8e951e9591dd8144f6755dddfa6afaba82b85ef70c363b768b7dffc08f619a6060d947123b622f34da3cb26009a3af5da16d319ea7bbfc62fa23d68e723411cf93c6b678642d5a7cb33fc34e5f98f0ffc75f26f37c7affc98e08215934acbcbca5925f565c8a5188b0fe0bc7ec8d71ab9bda885a10f1000c102c89ab68c9689dc8954c9e501057792a0db48567a9626d07ce92a8a41ac7c4d37d496843619a4970b606bba68d043f68e80f29e17b1d5e47f44d27417b97b0d0503e9266eb1a4a526cb2c59625daee2bb83c05943e325fa9a448295985108b77ed39339fd18713455c9a8be97213c6084a65db13a8045d520a75092e3d106fe6708fea871314a0bb58abe0cf13fb8aa2989c22b1e5276e6a2597ab1e0e0d533256b9e7358ec6aa2b38c0ca0213f14205c4c442f631382b46c1b2d8f43ccfad56048c434acaf06d2a4ff16a59335ffb79ed4dc952207a8bd724af1c6cf735875e736a1e13652a29da29e1b657a6458380c92b8bf192bfb424996890765868d2189a6efcb653112f994a80de24f807dd28c34b3cd2048a79d53dc04ba4ed8c5bd500589a94d87e6fe6f0b1cdf28b420d62ee2edc792de934bf6a7c17233ab9c5d99c6be37deee9776ed1b9d3cb79800848477fda3776edb1b528f0a36b4c62bdaafb92ec7930154227890889e4690f8f34221b20067ad2a6648aaf46dd633bf2b6407644c429b96207557f5b5bf48b004133252893d0185b8b660b1f74cef202f7dd4e08e5be22f63d79150b58e942e67f9ccefa9630686361a8545561a686748df67a5917af5738b152e518265b293b0e47a01d6792b43b377e85b9514cbb7edc6064c7e80975f1fb2acb617f5c0fba084591a93e676b2b58df7d7bedc37844472b74c54d822362b1e3d875688c5efc01b54b702eae79a69faa63b29c944854bbf4b6b533c30e370e435d52cc7f101140912d5b35d1ee00bcfc045a40b5d6cea149702d5e482152232f6542adf84f0c2d9a6f072c69629581e3a2fd438ec0b36bca6c22f778ffb55f84baeffdcf76060e8b2014c262cb573e73650a8485078979e41770abb5cbb75e1d6df15949010236b41f65848c6d8172196950a40b0f83d332589354f29f9ff0ed17dd708ac7c19161da376d1ac1da722b7c45138f55494200823ca248d6653df339507c24c59a837008fede1b2e40b5b7cf5b3c82081c576e6a4ac79caa70a5ba5dfe4fca149bc1cb669ecb56f185c247a271c34ac506e26e1fd9d1db801fc103ee909cd8893fde13d4df4ab65bd89160980e58bfdbfd085680637f7d6e414406f11e8c8545dce8f8e17158e3534a527065b0d3cceee816c6e258cd2688d766390b92c2de133a4459e286bed86136d0df8e5a99167a38a338647b6c85f2c766554360dcb3375c20386b431c1510674df369562c582740d18fa4d07468c542ef1b68b71aef6c22196ae966718f83c68e574a0be216f376437069552377219c9992553570881b9ad09e4a7120bc774dddddbe807d2c055f7ac3864a9123580874b6e0c4ab30f456845161aae46480e1f559f26239932144995038727d5245369205396140d15ec70405be7ae2d6d297ea39a6952915050a8b13f6a2d969d5b0929bf885152888a9f7db6dfef471e734e63fdd676528dcbedb5b3f51c880d16bc48f2c82efc2ba6cd7b9703354b4ebc6f346b36ad455c6cd843c8e584a7682f8cea9bf260d3fd54f1cff1329d6f7d7599f946074f9b6eeb6dbef9d3a7c80046dad8f3f432b65be6c59bae9f659902c692a47832d2b6ded5db5af0e16164cbd0449394a33bc12949908866cdff7969b041c1349e953bff31afb8ef18f1bdb02982362b41cdec51cb4fdbdd61b70c342223accead523b42ba58706409deda515c1cb00ab711e7b8781d62e6c8ceee3e7d3ac2411aa5aefb2e546e5b60d4000a566e0170a13db37150df2168811b56a8599a039092b1399666473ec53c13552c0a52740e83caf41e912090df7eb08d395571735d083174eac43e4c30772193cfd6cafb2168fa14257ccba5b17789a3ba255bdb152aa8a4e607d2c7e688e0909b6fe947717a49b72093b884246dc0013ff7a6d637189727261d4fe0d7fa3dbe98925a7924a91466589f837f1015a23e23e6badcbc2ad314a47b6411c3bcb7b673ff07abd68c72687601c585d3dbd7750e990c32337c48b44752a62363f93cbc1bf751b1c642f41241a9ef0301e42fbe784c6904999337caba3cb5f4371340b3baa0e28fac381c5bc8267d03c579f352d2c5a60b3ee1e8dee12f530b906acf9c3a8e74cdcb1674a92f0ad859715cd9bc626fbacaaea3fdbbe758f7c49dafc22006e690c75d73cf9eb258f015d0c2abe4b2d6d61aca1db6cecb98206e76110d08c7d479805cd45f8d961a533cef790afa10be7d5c651bc0712caad9094689a4148feaa039f87194d76a6183a7e4da3e7c34d4d78cda354a5aa929c69218240ba8329e97e4d6cb0dff3fa221cfa0951b59a33f973799d4e2bf809525b72dc8ac16ab61f2144c5bcf008c0483a1a3c2307783287b6920c443791dcf6784597ef48e95101a6cacef81ed0e0575935e6899b663237d929e3238174cd1e107db6736affd296c6def389e99ed26d8c0703780329016aabcae24e711deb5cc9417e887f45dbfbab575d7f73d9c00a6d4498e50264fb8139e7d5c817423da92da1cdf79dbbeaf6e454aea517a9472daa7f220248b9b0570cfb1b20569c280267ae83f122502ee3c1429e2331453e69a4fa5528ba4dad833fb1d7b7d12c50ab8ffefae64ae0e2106e41f112eac1e78aedabd0a1d06d689498bbfd030141075c6051a26a484ba48b22850de031e008c8c237ba5a9dc101c80da82751efd4e6542776005e950f72353360d18c4bda61511e86c694775616b7ccdcafd7196759b0e54e0923c9246ca935ca1c4f8b7c7045f59f51df44a76bad71297e81b7ae31bf35529ca3a85f725c30cedebe1c29af44ac009cd4f1246b6e922c790b5ac62af7522cd361132bea9298d3dd902781d1f5a4caae7a8a43e33d76b18cfd8ed85db7900778278ed9b311e38d81edd2f359477817d75a52072d135b04205ded00a8a802caee67f16dea12a220b629d524e7188f5fc9b0abd6c1ba81a6491b94946d997bd46367bc3c24ca62b626a85b2cfa84f5478b5021dc83ae245e267172bcaa8022a5dd8d4042c2696455b4fd43534092e65acead08a25317279e7c9ba3b54bbacd84e0dcdc40e6563c460cc51256d2944754eba82a4cf1ca3c1791096bab9a610e09cfd67561c1f253a6443d08862169f7c08a2154c67c64f60a6d15987520af3843b90ec055a0a78c0fcd67c43ef3f50d8f4d1f1f93b703bfd87f6ed345ec2496e96d50f4e2b1be8d023f57775609939aed6208f0f7fec518bbc1f35d109cc721b54b7085a318bc19ef5a895daf14703696e2933fe0a2391a78f2fa28cc227a1111e2a6cd4897aa15e1d1e5adebb1f042408656441b537d41489e1aabc6590bf1f4fd88b53777f9b32e9bd4d37f6e00bbb305d2be515a681a23da2e99e135c4358d421311cdfebe6e0ad05c64d9f23f30f9d8d521f17016002f4e27dd3bfe84f90acf29fd971b16c495c8155be8f8f6418934596ab3f0f6a91faa704bf00887907645ddb309459ece18b8db22b18ec59fbae0c95deba49e93a4f13a533e6c5fcd861eba5cfb03788e1701b5e174ecb2daf21746e8fcc6f9548c9e373ce8de1e2a479f79bd6ea459b99fb5cf0deaf334e12c8596c7213da41be7d8477aa8a3eb9d6028d6f5a65e0318399416c3a94caee273a991f8e26d7a7a9c28581bf5ac280317e5a68053bcc5341a10ca5a7e36331c2f2c4eccb1630e074fa04bd2a3207882fd068668d267659392559a67706a63d6b0472712cb9ae1fdee69fe7ae81482cd45def48cefdb9ab17e894eefd778f261ae3dfff8ad513e641694ad0fb9101c7f839386db3793c497d194893f25102d93d40a4a1839aef5ba5216ed5d546f5933950163497e37c9736af14e9378c763d0da981bdcbbcef1415c75c24e5b1d24e4957976a5688c27f783cee60a8770336f592ca7a03962e315938e17436c9bdc49f8744fba64e076e6e425ca6661befe0678ff46a9c928383be1b22f175b2e48e3676a0e3e086f161099f797a0e1e0f10f9f83cbfbd3fe35b6ecefe61bc694ef228ba33de970ebea35bf0fbd8a6b19e7d75c07f061a13dd4fb14ea44a3b9681988741851ed7a3ed7001a282a8e6b12f95b74ce2a693e6d811004e5fdb73ee10e54af095456101890d58acbe2a2ad84aa30646d1c31ed1d275afcfddd8fe67c704d40f875dd15f34790c12555d6bc5d23668816a4036d28b3cca6ef0380c5f649dc2d70b03c64497ddacbabd3a368265f8d4817656dfba43f55baa04660a33041418b437f65029c0a6fcb576018f8d62589803543239f2a67de92fc077547ebaea383b6b128816afed83adc89679b67b81fd7681cfe17b9e24a1ab3b6c7630aace0376b719118b3de72106ca77cc2773ff55e83a5e224f697783bc5d76ca1bfed29543a244669568cb10f8b23e8ffc4dc62c36998b966e77803ab054571cd834afad0b12f78c0ec9d3a591cf1a35d09ec7574f31788296ef21a89aecadd518554d6b9c71a94bcb4448bdef3062ef13d61efbd9d9185cef4a5874959ec5842db8982c462053030c97df30dfc672bb61dbb2343f6399d81468021c6f75cc4212617dcbf4fa85ce41543dce559aea8952fe2652f00b166bb5739f17e97b97524643b1f1d6143690201ce6a8554e7d58afdf7d49690fe56f169391c7224b6ba6d6ceea25ddb4dca992ac425afd50cc63a5eba4f43292e0c7e1c995c6a63599737739c981334c2c4f297cff2331a864d99645e5fec9b99e62faf25b979a36a2412a5fba3fb1d4b58e3d66f79978cb7b8faf6adbfaa913d7f88156769beb1ac8650ef8eccb8c036a0a980a3f8aa7ac13584ac367a3512087f45c46a5d1049329a8598ac0ffa55286c02f9efa3200455f0d37b99724323c784fe9d9e7c3686f9d6c2b345c3eef2cc6610b4bc91832e3502878b0b205e961b46c8025b05fc391e5d2c274eb898f1e8b4dad9b5a1426de67667a3022feeed61ce45c67fc9c8ae64b631e158af245ec982607f1ab87da3394bf5265aa5d937791676c713786a0f88dfefd4051b7047e321e25b3dbf87c3cca83ec7c917097c0e048e260d212d329e78d12b5bff6cd49a4d030c6c7f787097be5e36975d030af6d0f9657d687f2822584c472e487f72ea36d32ea3c5ddcccee88952d880626f7981ae51c725bd815be4ba92c5d3fbc25aaaa7d1d536b53ef04e27b75d4c179e695efed7c2537f7fc426d499fa3fc3735c6d05c627bd457cbd680731dcddecbc72bf1bd3f0e8cb9f05a47709fe9ec2897f6b55f491e137b9b63f236fbe10ae710bc03fef834821a33699dd615314e3403c6529c31795f67375ef047e739cc29588dbb310910e3438cd9979d8e36990158646136ae139461afd69fafcbd58966b13b0f1d0f43eb888dcfc1bf49228fbc7a3dfdffc18f3ae04ead376522ca490e22cef57f1610d9517fa45a5edc0faa9fb6c67303cf11f7f126b948b63f39275e57527e8768a86cbdd5dc01646039ff571b2eac5049288c572b16e768ea6e9e08bec46db39a980cc8b89e1f76d3d8811fb2dc9f2e70ce4e91b91700864807c423b4493f0aee090f9a9822fc9f4e26adb80a5c355b917e7b20b28800e4a5e04141ddf337ea307745239c4fea58205af0a4f84c10476fe0e6da8503f9e866dfabc9146ffe9f31e2b414d06784376ee9b582b0c1ca67f0d0dd35d41c642e56bf46fd4b930168927e284f55c3881cb6891754d5ab63e70a49825dcd954067a5d35191952eab55407f0008f709780594c03c378937bda5b94a8bb689a5521923c428affff3961a2bc13ce7aa5d13b7523132e57932da839e3d0e5b34647db290023c889f0120831ceafcdf418b29468ddd237582eb811ff5c470656ba30c242bb80b95153288472749b51d390908945312f0524a731fbf1cb682e516d259a12247f910a26c22de744946f2646f4b4c798e4389dcda64e6fa63d55a431d88985e7c252f567031f17e2624187576c60d8d374ed7cfc3897615010b695cb3e435d3a7ae53297b1df737c14304fa480eb301e3b59b0535ae7dad7d41e33c18fdb87e3aee20c08a0a572706bc54723706e8c16127718b7e78b7aa691733093fae0e7b21e1008c5fb530fe7a8809bb48c8aece9a4461ba09978bde05a7a0517a0533fe97e08577061ea346d8f7914ee834fec5d6d07fab59cbc5dee4394a37624a84b56c8b68e7c297a551f26e43ef516a1c829b1911fee854885330fc9ee232df682579980c115f31bbb359f6fd4cb3aa5ae9896eaa891bcdf1859544cecf7cc49b616549c3f4f4d6c5ba5562bc59dca45997fcedab87c05e263c4415cd88dd94d5ee4a3d3951d6062aeacc7eb325e550fc4a4f406d352d69babb25a7eb3772f54a5c97e1edb9bd48c015afc84a12e8e48a2b496a93f218f627d90bdde7c688cc5be65c9450c8f67df823a8489046ae984673e8b85eeb795b8a3b461d2f8e327fc4e6a775172a286cab701e2a830ffe4e9ee209db0db4fab8a4a05a2558a4d6388ad9bf387cb0f52af3626a198ff11c32cf5f68a47f1a63611e9a4fb65be6ff40da415197739420759a8fdf5ad3d26a52594123f56f385b1889d3a1474f7f3c6903ee357771766e63ff4f6bc83e0d2201b76fa0946d4b34e07932a460cd302eb3be975921b05e1f308ca0e829f2a836aaf64bb3cb7c0de0fce1f7d9e414dcc2b71adacd58239bc5146a4eed96ece79d4318f615efa379daff34693c72ca76e75c75096c525e6d866b0514f6732bce1a559860a51eb33b83c7679b2b66842a52d0549df1145ff7af9a6d37d668ff1c62203cc094fb4ca5fd673a549f50ed30f932255ea790933d01bc1ec74bf642c83ee797e7d8968a48483213fae671a9451febaedbc625a53fc7096550d0a97d2852b5a5c903a848248de8de509a81535293a5d673d38ab52987a2a5851615a24f60ae74bcbcd1267de689d807282e3e97bd7d3fa9460dfa4fcb4c62ea5877ea598f87435e7bb9435cc4429fe564cf8c26f0e17b7439d919f5f47da9b66d6952c4eee2fe7717d5fd2f6b4bc4857457a3a8d66a5eb5a030e59298f583c1e2844c6256ec398ad9b52c5c6a918e45949cc505260263cab405eebf79c23c966f37c65708fe6b8acb82375320a01ba1574339e6d5a052f0be8d35720c4e39b07ec7032eafdadce2333476f4ff7af50d118444d35593be499161da2e7f0fe01ec5cb78d8691563386c65d401626617d6f5225ac79c9a8511af364937add336e7d0c6d8a100c1b837e52c6affc4327aa1d4ba31d531ed153ae57dfdf44462db05592da01e8ec32e0ea941b8730e9b381e12b2cbc15d0f29e4d8ae702d2504e781f8b598b74492448bcf0174ca473385afaad910337bdc3073b42bb6447914415b4c706fd8cb7474f34077b3cbcd07921e1c7f1b5fef2ffe5fb31028adad9c3618ab45faf3996d424c00ddd3910beaa4707ca9b942fa80877f3aa4c60b8aed7ae18eb62e17e4265055dd3c397e09d68acf5859a0d160173c299334ab253681357287abd6277cad8fc1037354b5e2e253995249e23548344bb834a6ed738424d040f4d33390c77c2fba018b308e4f29cac941e40fecbcc2167a001fb8263765e1b57df42d28edbe52380a843a48d8de44b2bb0f728805310805825e71e251c690733c9944569c72ae735f8c10bc94305a04fafd4745f83479ef281969a4d313f5aebc62413c8269a6f73a66497bac27c89ce2f003c071aed13eb6263e9733ac8641160dc1be5f27dc8088ae49d66bf2cabac40ef77293d87188a34c57ca5945cca4dc7130629b4443fd3c6dd606402fb41016c3f89ec5f722ebc40b81bee94740a348c1b5895cfce5bd96732c1d5aea868a2f3492c10a5cf2039b07cbf3bec1785ddab4003d6cd941bc108b71c51ed6d0f949725504603bba6032787bd45a7ebfe1468d3638a5432df1fcfbc2de021595cd80abddf4ffbf4b7f576a8dd4ad0c50afe45f0e61c1543bc9c33a859679c865754d4df0cbf83b60e548b3cd9ae033c5ad675eb18d51a931accbca06f6ab740fc658c1380d7314568f4d5655c879fe5104aa4e585d6c6a14b837e729b114a6c759d3cd083a366edcc5b0476d186375d4e953d41de9c5cb1ebdd8ab1e807df7c946b0d25e6482fe65b94bdfbb229d147d81e307176c3197ea1426f3025ce31fd4e013645c305b6ebb8abe16c84e96b306efe02dfc29dc7da6519c48950de06a185465676d01b824ae756ccf6459dcd13a9ccf0fd7939dc8bcb69111ae1504d45ba4a3d66d9f37a9f81ec32214f4131ff76108135675bf69afbcea42f6cad63041cf88e4c30069de1e4e961e7bb4be940336b96a2ac51829a3eda3cc2a8297727652e92090abbf16b78269fc4aaeb289ccef55ab1d36ac69f3ccc71446862b9eb306a00ce717951ce788fae8bbd0c67f2ba65af4d21df4f719e3137981b774e1452b4ea7d2a6d2b77981c867e651232dd7459dbbba8932c5aa98bd2424056110c11c443a573bde4e1c7677ac833b975097e4d14ba68b65956ea4cf5f45aae9dfe5a9e15af7f083c05d0ff944c349b6a09a69d3b283f8de61edf1e41e0f36707e0519dcdea921c0e5123358137e8970d835f5bf8dadddd354830080bdbe09ed1a0f932b5a52d22cbaa6b825fc30f8e61dc960fa9174af67f9e72be93495f99cff056de5c702b572bdaf66bdb18f6fa80648d4a9d79f19eef92bdce247845d563b7fdf82a45294817cafc2f28d9f3456b4ad4c29a09ff9b097ece2534baf5032253d8ab5fb5de6fcf8941e3c96ca1365011291d5ce9bac59369f6164ee56c5dab85318253b8db89eb5036ec6f916e8cb3fd592db95c0d83e537c84091067976763f735e5e307198aceb1a5225772289ee7da37349d80b66a68ce85336ab840d549430cd623af946844f02c1f1b5b8e32ea0051cf481fec8ff03b98f2e0bfe19135b2af014001e1a2c42cea53a9358e501a5aa040053117dc8035eb3517c0ae54e0cbd524749d2530601d52458f59647669343d8bf55fc2b29584a8739fbacaddc3a5df93d968d10971e16314cd07a73b2b4e80693c5c53e89e832b6809db9335e45035316fe8a2f3393e803e5622e75fb8bd37061c22e33b6a7470f65dc88248691c6a93e78a3d3f4ec4c0699608247382b4a56287100838141b242f2fd11227cc4faec5195b5db9d707c317133e3c33b3f6bf7db4fb44727c2815a5ea0f5061bf50474fcc8b602fbf6136510d54628d7ba075377d469254ae67173d932b697fcd4748fcc781bd1e44ebfc0b32694f98f203cb276384239621e1bb567831aa9e39864a81862a868d4b5841166acb647d3e5a08b46d08bd05b1a8b1d047c7a239f717ea12b0e5c767bd83d51daeb5413c3532d73296153a5186ad5c5ff259564a587a400dfcb4180e283fe95a042fee6dbc15d7b03400fdfa9ab7b0a3e45c7e6fa615fdccdc1ca35b20d3967e16ac75d3f820fdfc3e69c3d0cee329d1de3a365634411bd375ae6a265be49f2b647de1fe19b01a6eafc48568dd009cf681de24a66a19b5a5b63a61d42709873d8f7ef63d68ff52100050114dc6bd310ae10fee4899a4958b787a3a3fef2eb1a2d6a98d3471676bfb350559545ffdcd6e99ee21883d41e1ab46c1615906b3e43502aba18e5e16439326f3be39835eb671d42e0bc66d3f4cec62377c2dab7c74c583164f1add64c974b74d9d10e2dfc5022ab5c2156a8517c2b3426c50407ba9326286ba549656760703b6fa62c837daaf658c41c3c23e6bb6c14ac0f3fd91d4b92bd64eb192d280a263834a054f579687176278b027e7d156d643118d275a2e7a0ed8cce5a5c8234fe13409aad4efd082b52bc99329fea928281b44ac03345d92aa405d5053a0d1efd47597ee016726916061cb55f7fe3880d32cfeb7551d3b6b3e4a980b6f5602ad63904e25fc168c19011a4d2a074571cbf881fec9d3d1742af71db8b9ceb7e9684fcf013cc6f9b2b117d7fb87253759283c6a30db6a68e00baf5b3e244ee3bb33691c55b44144929f4a5196afda102bd8e3479a6de0d9f9de819fbc6d5207d544c14103b6160d4663f5429b21d9aa1ac96a28aa0dfda6d60e6af496a699d5e6a273db4bfbcff05e9cb6aacbf72a0a364369b12906979c5b9e09c49c785d3df23e3b80a0953c93ddd6dc5f54aee640625950dda9253089c8ea672e598b6d311fad045b0bde427d35f250c5df16e5aee936de2f2e00373e9b19869514405774c5ceb61dc8a8f95fefdb078ff2545009de70b69e3d853aab34f78c01eac9e3b046822e4246250a49354931848af844d6e5ba2a30ae02d5d0b119ecde6140646a8c08d3af955477a68b792d0d6d4aff75ad8a88560a58cd5f04fcfdafe79c039d3f51da219f149c3e88f4136bb256e17f77e5076fcaad97b1efd9e9f9bb0112ee87112723a6961c7bb1936f54629c9d6810052425905669d7a6d4be238ee0219d48bb3238ea589658cadf23cd7343ad1ccee2cd9f41c8d11e0f252a3218951574e2cfebe28b1b8c5ca33123666d0ce8dfbb0f3eb49a2eba9044f96f258043189171f70578e137ecbe430015e69ae7d452a14dbe8a286d0780fe2eba66e6b74f9ec53444d581bb60468babbf52d6f50b86af8ede9453d6054032897f170d5a7ae9dfa37c2d88e43baefa5e475678f357cd82052499a918d3e72c2235d1e58b645e6ba59c48f7f73363b161b32160d0727adecb3287ef79d96caeab6f54c89555534968ec810bb48bfd4b67a3ee3738c753b8cf99c0bb54af4c4505439cf0aefda9de3f8e32c5fd5a3b8874fa9d87183d2808569d62f9ccb5314510dca6265adcf8478b37057427424c2ce93447357324f9d6945510aeb29a74561f701ef8e09cebff7e307566a7953e098fd9c2861435ea979e69b6fb461422c6aca1013b153b2dad7cc225f1080d814d7d4f06508e7b90a5c95c8b9f7df9d9264def2d773d631b2cd5c88833ab81dae21db792a2c9570ff6c2d52ac43fe61fceff8e4e9d2a78ced0f90fb95b5e734d9ffdbaa70ac9cc0f6a643e7371f46b4e5e633a7ecfb11e4cb15bce65d4dea6e6172b3e2a6de150d43d19b35225d38bc9536a0b4083a8aa0245920403f6962223bd817f4e80de8446bcffc186cbc124010a1ba74df039143ba5fda14f22f18cdfaea5b98cb3994fe9a5664c7e71a87e863c1b6c22b03ab56d9df4b9108a309c036c2b6047ca45ef9d4e52cf0a67f59321af2ba9970cd84939b40a470df5e971c85af9167651ce212694be36010b7ebdbf8787bc2c21192b6693ab204770def6fd68e5bc37fbc033f90dbd26adb08f33c02f3bff2361bec17fd3f8f644eeca56380604b9c42f36768389aa536002abb134c204aa88fa4ecfb9334b85fc3a8bd482427600002cc2327c869b89d0295f5927df9d293c45359506ea161c168c9892d9a51632ec7ce3545f2963125f71fab36931066c01e4e613f9930db6580202959f24148d1d08e75e85af34c89814270d2e2a05f55368c48a62222376e1c947072f3a5329477faaec35cbdc863fb584c4abac5b83a031edba171e00e29b8b9a4cd29e5d9a89d72db000863be7996fd54070e030f4baea9e61359894af81b52782ec58ada51cdbd1953a28efa0127928e9eb9b62d643450a2b8e7cacdb22244f7b8c33f4c8f631e1a017c8fe4c1c96ba842ba3154d3b54446c774397b7aa61404e8028eb1988f921681f887a4fd82e604ba335a21c5268a7132f38b99f049238944988610c960994d35c82eb0282a57a027631490d61100dc90fbb24326bfdd7c5526429af61610712ed0c071857202be8fc08e4110d304391b9932f3341773319882d6f81e17e1240f30d40240bf477be53c11715aa954cf1a578b27f6beda9ab2efc1c51112b2cdf73e38b9d2e07a49ec4a66c4fe40d2bd0dd1d57e2fa1e96d0cf7fd43688d75e9883442a19d2adcbe36b578f81f6c5692a839d1ab73ade218c8c163710dd46f376dfb6e0e73a8fb98037d3af711a71b34ad5deb69e70bf6c7810adefc8740613a23f6d07e36f57e8c5c1b7fdc9f6f4ac16f8563bbab8e2ebc16f133f2c1b80e588e9d11db2705fe5536a9dd639fb2b3297be1b298746ffcdc7cc305a38d85f213bf23dfebd8b30fa01a9ca6be214fee80f76d7265d9deab40f1d85d536b6a0e1559ecb91f6b1aae9dc0dc6ab6dcec026b4e34f03853b1c9b5c213b7674e07788883a65e2e15bed2818b606361aa52dae2bf48eda87f602289188c76d33845be3a944bb665d134ae62794dceddf5cb2b12e6a21ab5cc63395dfef8ded0ea3384c7ca1fc71e38c398e2243295baf70bd89f0d0d90acaded0eed89ad9aa84a780059fcdbdb3f7923ec6e7bed2fc61b334a752dce9ff2e324f471086dc463c6b1560a4c15912410e3294ab4a07a18a6e2cb4250529b9cb7693db005a6f78975af063e71916bad636e05bf9d396dc1afe4e00deeff41117195dc10b0d20fcb1eb6ea3c0880ea89cc12178d76aad841835a91d268a7e3d703e058121f922cf9cafb59b6c68ec8134f29642648ecfd9cccf95f661a2ea2c5cd66993dce5bb3ada06f0ab66f7d4bebe5929e0caee825ab07338644e412ad006306475a8a4b36c10b6e48b2eaf864bba93a7ec69797377e4b4e0e0de8756b812e1ec981ccac0e651c035c7c4f1d82fc3b637430916ac1d7872e47e3d12c099e03939d7f62c9c2de2b71ef4a8f5b3e31634a2d87d093ac8059d1ccb8c7fd6c145cb4481e18bc19290b91e48f8b492d9860cd101c9e2fd20b236f4428e27b15baddd38fb71081e938d29728cfac256565be452f589ac014e8b2fe79f0def0ab0b6541cd392e8e1d7a0c74d6c05c508ff729c9733bc255bdf12303cabf2c2400c6e5c34cf71bb536cc0706da433b840e214428627faa2eaeedfbdbe5316e51d3191cb0075c83700e784f26332baac1b5c92a0bfa9b1d3ef76c60acb17fe1ef373547b2c5dfed39b895d3e2931e53c907c63e6124160ff126b39b7bca22cf0222f6359f3d8fdf72f18769c764ad9dd55e7b0be45ea56fd62d3c4d9bdb67c5c8f976b2886cbb00ca0530bc08ac54d3e6456ce8b54570e51eee2fe1e1eff5877c5b406df0708e57365356b4e169f6d3856fe9241d0c9772543cad17a225dc3da4b1174d7461f733d2bea73a7067dfdcec9bcd345a5f951424d47ba32fbb24da2342910f8948dd52992750c890bf771c25b29ce5fefef729a8f057ad43a4d17238ece3fb7fac27190f5622c0f39ead1e9171e97141b946b3d20187f7a8016a228f29e739500b0066e256e5ea2a52fe6eeb459e8c44634b195a4b12905eff8dd80603a0b11f9258fa7892ef4e92a5d98b208a5af15d3063ebf0e8cdd46ba698a64680a9bd5b8db18d5e6b5121995cec8165944b392a9f1979b43adbfd4923f61363b54e1f7f855bd8383ca211f8aeaf09b75b4d463e12d3514ce5b753b050d7367e87525d7302ef5911eead7f5c5ba5cb3c2401584fd21841d849ab26ee0c99060bcf26ee8574938741b78b81bbf0530415ee689527073b9c197f9ac58ebb5f8c9101490ba810cdc42752136c4bfcd3795b0b8f7ab62124ddc51febfbf3d67402c1252acc2cda9ac3f2c4519e5c08b7c94d523c52e1abe177e0a78bfd2fa938069498f9d8cd98bdda2ca85ade7f90d5bf139d15e7c15975a84098b85088add19ce26ce2d98951bebf9f21a19ceb13e4134065e30231388a00a5fdf953098501c787ab48decce0e6a8fd95bb2f84eb954ae55aab1ea5f23fb986543eb0b09d23cf2f361af2da9a93b4118f1108f238f0a397a7c0d0dab86be955a836e043752412a97f31f32ac9aaae0fc8240306a80a40f6a05d108006a433b3d118a0392f6984c124e8edab95c6d77660c390b2424caa3ed22c4210835c5e3a3ad989559d786c5110eaaaf6854276054103e06ef0eb6e4aeb506d9ccf75ee1d283df2142ad6c8e269904c8aeeb894e126eddf26285326c77d58c2d212db7c7c5c718bfc9e159f82ca1f470c7e0aa3f72d626eb93d561340a3f77fd626fe8f52a9b7cdf837e90ead3e1b03708593e0e58ff487a5ad77c9d42a9361abd53d0586e81059787a35162d9b0084054acda079bb3b31248e1864a18124a69480f9dd5180cd887fdfe1c4f18b2690f4155f36789fda0c4a2931d731e62eed3edb69261b1605d5d060205c4354ed5d1b771a26040a671564632b1aaa807aee4a0c0cec73c9b1b65fde74abb8d3e6d49dd4d3f91b184d221f6b656b838ebb6865e14399f21096d131dab7f189e52874959eb6a7ec5e2704a5365e73b7321aadcd9cf800713e97a2ee6955dd8374f07c2787d15e43ec347a9f616e80acd0b792b7c43ae24acc4acfa62a427f101718ee9953e8c19be4d0ae9e5089c6d013203dce72de5a489d6b9a8abcca84dc90510581ce9b140fc63859a6134b53c6ed8df6665cfcae5b4a29e09d44e765600de2d567a9ada6ebca51707cd2a88d913b9ba458e97bad685d693c3f6b24c82f764af98e2b1f0606e89e95a0d4b9b3d2637c21794d1f6112c16e94d0067756198de40e65e0f2808d0dced4ab2902c221657ea564160896a1de6d74cf197182dfe1d418790927b68e71cbec77dee442810fd5b0eb51ca3e3a06b22bd90edda59afe304673a4c0d44e29f1655a847e3c1e8623447b0d224d06fda48b6128de146609902977d21c2a66589fe25a278f450499ed0654de08368f03bfebc40aa52fe68119b1b7033b1de90ae0a9d0f6bde945545b0b20e95c149c53c234b24388fa127934e1b77e1429f89423bf93c57c8a0f3a3f6dc28f9494ce5308b1c65411c0d5c8aca3c4fcaed641eaf66b41dec0475bfc426bec324ec9bccfdbd343b0e53b9725c28df342cf0fea105a250c618e7a25105499336e7f7ec43606b28e53d2853c36434d32864cad4eb15cb7894196a9db7bb6013ed608f3189b73b2f23e4c5fc01ad40b33222ce6fcf1ca10ef2832dafffbd40f92f00770592811d7abd2a504d548731faa55910b0e9f71ce321fdfbb3830e7b716e402300f39000ae8e25e8bff6375f5bc0f278fc71b27d17a6467f544967f9e83ef83fc7cce3cc64f64c272bbb0299111ec226e118816736da0976fdc30d5ed3d1344d772cba795cf4f612c822caf1bb7411154c12d72504e7ad556093af20ce0c168dc7bd6d3929609e5d73ae4b72a09b667918039810aa0747eb3d3ce1c49756d83a3c4421af1d8a0a36f183f8424294308aba7968fa03a0333311c3402cbd05eff974e3891fe4865adac4d5c0a81d33673dfa6689a764bccf2b515167f87a21212fdc1e117fc884ec69f62fbd8c19cd01672c8e044605f52f8cf54040243807c4afda51b25e8e6bb80bbb3fd87767491b46717a9fcdc533443dc848582ec3cc1745c4bc456279bc19b16664693f71efc972b3b04a92226d65c5428bdaeac7043d614437fe880bb2c26541684ff4f4e71f7847cb75ac404c6ad1106cc7f5cf1c7bf2a0a76da10c188b5232c11a83aae8288253a9a24981f70efcfd6a08581a46b15510f26de50c63dc08690c85f7890b31eaef18ec9a032a1ef64e9fd14ef9a99372c37705bfcd2626d600c271fb47a17094481c2326265fc103dc9b552bacca914d1f4a09c08c2a4560ecd8198eee8611cef6e5636ed02170d76d600d3a5fa76d8cc18e36e50474b3887fa83557cbf2a9ff58c052643548714c776f8bc37a48ad7265936d772250da3156978a6149b3ede2032a2199e2ef0a94792aaa6844244d809ebfaff0be24d9fe93201c9ae988067166f7e83f70f8fbe82b85acd2c3e4b46b62a0d09fc56379cb743c4d80cf93693d0a31b6d3fda96844ee43c896db18cbd10ee9543d9e7184a1cca832f05c63ae2556051abceb656d60893488612cb1ce2f2ce1c31585d49f3f542069c8ae6b9bb2fd7ea341d5c80c00701ebae57c82a3905ab2fddb80c4af9f47b1d33b388083229af58d375b392b99157239bfb6014f0b4d90a050c631baef6b43cb54d1d73eefc0c8c2a8f28fb8a92def2b823a35d7cd80bc93edf6e22cef7d8435fb7729bbce7158e1542b17d1b886937379ccc6cb28b97f1e3c36b6a0172dd9b842ff056ec09a1f55fafb74aec1ec75f3a2fdc2320a21090567f9a87319d473908d6f7711cca1d0514bed0c913fdb57a777e08b9fdc0a1f7e8fb06d40a9e886cb16012ac3d37860324c0848944c91f5e7d04b68868ac76d246bed2022f709a4c673d0a1e9c9e29832796910fd9d5021105d4c3442b6245011556c541f3eaa3650371dbc6ee46bbbde06a352f4edf4780ff85f9b68348ced384231862be5131eab74299fd50852dcc2b4d5e88974bdecbd5e1e2acdb2aa184bd9a4cf0d64b26d54470aa889d1abdea8027dba8ba55b8307fc9f9d38e7dccca0eca4325cbf4e9fb3631e08f209ed479dc078d980e7c4ec451980bf55e3a145f507e4c7f8ff4b8a0111ab501845d03e69fea0059880346566bb786db75d2afce6c2210a19157295e08bba947ddc0048dda2ae13dcfb446bfa7164ced4ca6db09de9f97a4bf7534328491ddfd1d97d064b84577bc2bc5a08cbea4689303b94774a7c408c8863bdafc1c127394145d82a57512679a537c21cd74f4ab4d797eb3c1bcaf3fca1cfc5ce280b47b036d7fda4476144cd4d0d026017554674b51f76b471dcb18ac4e694defbf60def9905c4ad7b10b45a80849a19251d10ef91370eb7794b9fd0801855ef51f0375c5f956c21dc18bf7eda7614806042f39501974af28ea29e1f3f82836f18984e5b8e1cfa91c1d46029ddd930204c7979e6bd72b540ce677e051d8fabedbcd8c4db50c5365224881bc39cc54c8ada14cfffc878cdc285477aa29cb3a6b97e6b6878fbb08a6e1873115b510022bf989a73d3e2c6d3d4286eb9660dc689807f4d414383320f7f6c7036075c2789c59ac76bbbf7cb0fd3ac6372d2e4d9933f7d50c34891faeea298a875f2dd86e147a8fa3c891fe1af8afc80e05fb7a5fdbaad55ca512bbdcafa412bbfcffc44f9c68b94e0bf23aa47fe903da7f4b11339c6a6682b30a626d73ebae60c1db2f829818e695e5b5eac0878237631c59d075ec2509a5e1204014b8766fb395f58b63b469f4f1a38f413995a3b3086d599ba190f82fe4bef0ff04e04363f9f5a72ce8ef99eeaf970fa9c4b178aac335ad197245492c74d1f05e0a85c14439d3185903c3f7d91166d361e65fba9f76e197e80939846e50b1a446edce63fc482e4128c0ce7c092ca5e83c04abed40ecded376798ff0e336b425e90aaba39a336ddd741db5faa4cb389fa67db1fca53ca263cc80ffe415a2c907d709d41ddc2bfd85e4137a3c0dce550d6c7124d8019027f2331d27c0e2ebf90db95e386d2f9712cd39a3c2f8a23044d84e464c90f7ab11743e4bedb1dffd8ef40ce0194b9ba850a6de639e4aa976e40d96c46b122e8ef44807c771d6541a7faca2bf73165b3fa96f71cc664b2c31d6c36d2453941fa41ddee2d6d8fcec6b2a530d5db22017b65886f11dae1452c816275a2bd798b5cc1c7db2109e16529e8556df029d2a47ae6b6eaa5a299247308a85ff0b622c52afd0700d65e7a43d404b0a850cd889955f5090496619904bdc65b4ecf0b7947c309eee8d8287dde8c68839f2f9712f0b3edfab4c617fb4e2050991829d56d8c9a54b8b9f5a8af65cc250e8e16cf97c7b318487c336339966a9755ca79209dd1f815290fe47d0a74fdf42b8a9d2fe0fcfafb715e886cd6a48ad4e4e5fbf0eca72bfdffa94d6ee4432e127dcf230bd2448c0ced1b66f6d0ca8043d3bd9e1caa62503857ce8d503c275d6f5b95318df165021d2e18e236339a6467b30a6e085999c51244a3aa1532433597921ea80b17aa08480f45c507cdb79d189f44820006058fd979ac73b91b04b800c973364e1b5b23585d6376c92b96c951c285ce47437a319b4b5813481dccf001d1a95f53084dcaacab81c6c307f5d4d6e56c3e2846c803dc382e320f6f2584d995742bef07fef50887d2e4e57e789ce4efe6f31fa62171a0736aba8825f9564c48de56a97608e1be0e3c5d112ef7a7c63b530c83e26d8dc5a0b0a7f8367a5752cfe688be68d6f7fc80be5eeb6102952bc82c6a7c977d4cf910344b83f5eb3657b3dbd2f21557164582d158c42db88c92fb074715bda5b270c4dee2eb0068e43c3dfc4dbe5f3b0bdcea729f111de51d93bb216bffe7578d048066e5017fd2a95516646554f30c54b853d4a9ed3e1d445bffb16d7cead01806767ca2160aa2baceb478b482222eed14a243237a4b4e5bb9b0ad082be4346cefd6ea0e44edf863b8a0f34199aa3a8b3b8675dd28c9e45eb80402108405a5da72ca43c95e7bc6dace3dbddbc3e6077384930f21571ed484f33d2ecea4f57926caeed218d35b0d099a416a8a4371e6429c510d99dc1c8f0aeb8cbd7b9af10688d012aba46340ccfa1abe0e4ca91df5fe7f64f689da3f6f071622e57a7ee621bbca6fd26dc75be08e406855346ef61e67d3db71fbd257f162417902c9ae53b0b037e43af066dffc409abec06baf7ceb9a6ca3296330a627c63f532d1a1bf43b3e3853f42e939cd5fcff8bf9b8a08bb25bdc0c8f22cbad04855f3e6447998d50d0f65f156a1f6532916145d818ee5ef98a8f6f223ae0269f96181ea48e402aaad3816e666967e16db88c5db8cf1de6b373807530b2ac53101b23fb84f23634d20b4b008328cd2ccaa020cd4f4bff458111164a0bc5c2efbf609cee94ca261851580fedd485b3916a8c1b25a56c5bf088d2164b4c07b215920d2ba37b680ee9ccf5e9826ba054dbd432412b9ae6f9793b86b156b6d4a5889ff85ca56ef8f6d383e03180d3de77f8ada6df5b3f6bc709673fee638a46698a857ea3eeed2e0581f6fa219938fc11e293415d58477195fef064e24cef5300c1602f3c4bf5beb65a8968ad0520422b96cdf03a05ae2f8bd9ec7d91771905d48bd65a7c882776fd8204737a157b791f826a6fbd3ad933b05ec76e1bd453f412caea7d7ef0c791fd246d3f1fc15eb3a5e5b3958628d748807d8d83d060a0a8c88aad73c62bc4cd4e21cd9d61032dc79a46c7283217190cbe05560af64de5963adb8928738ffbad79371a2a2e49c40e79cc72175a6598c376cb1f2eb65f10d96ae7af4196816c517a32e6d26e483b7d8309f29b1b6825c524122a6e4e636fa937c55e63162bcde3dfb04aed6adfd7a229a7d87d939c9b07d47a82803f853b4d8f1d938b45da7b0cc757ac11d9cbbc465d3f3e5ee96900c5e73a9d30cd4c00d71f178b7df8175b830744900eba360dca1b8d48d6d93848155cf67d17e83ab7c75844840aca3639a18c38723d9e5d42af778c626a22c6f232a19c895637375916f14d920ae528aef2eaaaf0001e3731c96b378861c453b8a69173cfdf2eac5cd108a777c34aaa02dcd5bfd56c1ec3818c4ae8e2db18ace447d8ebfcc4348ed40a657a7f52a220cba90e3a61bdc7696af57f433920d229c3c825704cba36e870705c27c377c27a6aa144e3d01566ff8409dc3e50ef3ebaf1eae2a22a5bf37c5d0a132c4e6966a0d8569d0c9355c617ecec817ad999445c6ee5ba732a4837d9bdc6d31b77c69ffe012bd147c8c8a9cf987533a2cc4ec2d609b1635f12267dfff395120ef0a634e573d6505880eab0f4200b91a5a8d1b169a12e39e6c62ea2d696d722659018bb0d74c075273fcfd9e26042f58f437f9294d5670aec213f7c342abc27b5e7e1016c73817c5b0a8203f7bd963d7af6572f9597e442f37f8cf9583c7e7443366665c5e6a5b00d17a74721a87bebd25367025cc80d3bed7e50c4c4552f837583b35519b3dba8a006f73eacdafdfaac95496a2f318297cd74f5fe2fdd5366f4e7113d2d9b64fd5237c3e48d13d8899210c1bfb6873fe897fcd41e6040906918833eb9ac6aa217f030e671302c8a5dd9280340d5e140c924a200fd2212dfd18e73127c8da893ae5a5d86c800c631968a280a490e022007b418c991f9038ca9545187b75241f15e098e8d81b46a8d6b0ab16823bb85bc0d13b62f6392f5acc31265627347def8fe9661bb11227780a22c92a961b6174298423e7dadedeb158e11fe3e91ede294ff7330c8374e742fadf286bad624d0c25794bcc38aa493ac1a7caad351fb07d6525a006f2d39555e47570b6d62badc2b9f9adc5dd052e611caa853ca0488f1be4943c7610e0f0b0442fe84da70e1b2d4873832f166e2a4c7b6825fa8f34e6186ed56a2af24c1fa5a9d61a67eb08f1dbb5e910649f735dde8d43f240306acadf8affd2f4df45363e9965c8fc38cb88fb9797e7533c658b5d90cf0f2c8d99a16848523932b1124f11d651ef3447f73fc9f4c48db80bed9155a2039a21dc242f616b4011d54ef86906da7b9f0af9ca67ff90a0d18d3e48ef5f671fafc73887791c55d571bf43da27af7b83e39bcac815332cccb450ecbe2e9fd1e8833fed9c4d2e7fae4073fce2085729d8563a18d4b05518bd9e746de133d6cc5fd65865f5e3b2c06a11933dcd492ef53a8ef1ce8beb0e264b30ed77161ad7d12c5b7cb6b790c94aa05ea4f2e4511c1d1374ab2a96dd5c095e557eeaf470406be36af25b24a20811d434acea6448d3ebbe13c440a44074e89094946d28eaa1ff05cd301f29a58728a548c3504b78ca4c084512b1b23963a095617bf3e4688bd00c60ffc84668a98438c937463a75e85de1749a7f5caa6922a367ec23578c77811f5a955abcd25c59dd8aa9104e8cd5abb67bb483f4f5627bc63bbc032ab5bf338817f6631df797137b01f2a551aff482f6fb5d2da26d6c8889ea627d5dc59fa587139e2a857d337ad08998e136d5725f78cd986bb8255284b27662e96f9acb5c878c1287f4db695eee79c87e058a626889118880d6cbd6156af9d0032345474e1729d235a44afdc9a501d1814dae72a8200a16f8c985b481cdb042d1f2cce62250162bbda82aa7799221a4798d25453c7f6742f8b6b4cad997fb5e87c218da0ee11b588f7f2d040baf9f510d5c625240b0c7e9e5fd75a9f50381d872f2c2e84551b497283fd06ab84b52ba413bcd19d2ef2dd976b816bb00768b7935e0b869d88e4e88b4548149d5646ebc951b63bd96e5bee0688f81b86b4d3539cd64ae0a707de92388708440dd221b6f02c584aca084c59b1206cf546481e27cc944315a1538e07fe49dd34861e5cdbb3f2e307d822a7f99a613ea82ef63778dddafd94f6dd1c6535ab6c4dad9efa449064520f17b98b0ef68c8b652bc8a8253dce562f366f1efba85f1d0242b467374e2626273f81c196e379f2749fe54a503feb245dc5506d50e4d8906b24233c9971396ca0f92c5122b37ba7b20a2c4fe75688c7f08206da1063b838a4797023a642fa53067cee6ba04c120eb4fa065290e1c3d7d650c20579eb74b0ba3fe96a96779de43fd3f37bdc8c50ef3b8694e7d73dc52494fe4df64a96abec1795b57be6c0c6216fa0a3fa834d6ecd1769e2d3dc71ef57c35e00cfec34b961eb4398027330efe7def5039965e2558e16410ab33cb83c0e5d38690f845f39d7410f03d4a5e3eb2e8a966877578f6c3e576c46bdad835887b74bb5a8503dfa9a69c84673a43901dd5ed9319d4719f02c21aef108e0ba8ed59e6fdda08cf5614b696e9332a345f3bbe293f8f1392416e97469503b54409d0fbbeee1208d7dd367a52f794f2ace0b5c3a7555776da2a427322b5715077cdf1ffc505c1e19e4d3b423730b65fab1eb3e9bfad1b60108488b1ced208d2466a0a28c0cfed75e34f8889affb418911790d4331db291d4cf421bdb0302966321d994f3ef44c5b12d6911f90ed220a28f8a50a8bc3a10a92c954962b8c2110c8e647ed3e90965b2c4d47d6b8b80296eced2b60c430904796044428be32e589c8e25b4987e663fba54eb67477cfe60c1d36d182b880369d1bc2ac1d9f36221ff0673da23db47547c514bc85fe5493c024a6443ead18fbbfdcdca9f544a448cce965e277463a56f7e215eb9d478db0e5b9c702a5322be9fd09fabe3a7e1542427c0be351d8aece9377668b71afc1f7c7f7e9ea3a3c4d169783dae5a3becfd04e473bfb1886d814c1517c2673bd76f3238cea256d708b5e0874becb0d7382ba1269c51ca1f035c0d266e216b755a075df3be2919a4dec0bf6d80f110fe448bbc1ff4b8433993bb4e3226b827774b91a5025b63ae0f0ae4af1fb3cb5eeecabf3fcf2d50aefe2eb300b126231e5c722ba20f3214b6745c3c730a792ec25be3c57d5406139de7b7100a536c07119171924c4ed37ceaee3ea2e75121950b0ef8e945a418e671c44b47a7375bcc4d791b2fd3a3c9b1570a9d1b245cc8760e1dcf87ef1657237d44ac31f7d2b35062d81c9c0f1f7bb48926677145b9dbcb557df2fc69965007fb49fc11d7eb40678afc9a3f9c2964199e0e6351fc00594eb023dce9f695708cb57fa3b8d0158cd5c94a0565532620445cc8aa1787120a8ab65563c77459bc7db7d09ee2ecd52034b454056085a1c5d308930aa33c7155d2bd7d6cc836c90a4397db4e2f76425abc924b5a88731a082dd32f712f302e6f35505ce1c78579e1a27cd484703b4f802d8095ee8dd310b3a71217926f6c47b539d2f83b98b108c6e45c9d93b9a4d98a8917b93107cfec4131bacaaa728e3fa915d191e89c430081b515439feab53840ab738e29aae42b695b6bc4e662624ac50f08a0e4ec2e12c241eb8d16a1e80f519926091957e80bc6e711e5c9fd44077eab45dbe83a80d1f1e20081ad5a3e92126753f1a163897fe1c554e6a1c75f3fdf904399855cba211a7d13665e92b618dfd1f7ba7fabd7ccdcc8fb08b8c8e9453b4a0ddbc85c93adc297e1f065e4e4f1cefeaf36e3a41faec7f4e8f68c957969bf773b45bc062eb4c2e8ab28028db5e16bda57f26537fcd95201f4f2b0f7d42135607cc4d7870fedfa68c7be047942b12e8205e9e6862a6794421c9d2f951295c0194df4a46266affdfff61d5fe7b116afba59362e61c0efd8ab45d3432e9ababc81931e42a3e12d77f71d08aea1df36ded42fd67b179a47aed265ae4dea246dcddb54b85c3ce8159aa851eee8fd758b478052a2a0c7ca8f90ae907971625ebbcee2d837a71aec1d9a548bf3575432f7b5fcb2a3adb5f1c6353652dba8de91f42e10539458a8145a1c6c59ce67ccbfb6945c1d8817154df1a3e4505b2c16144df96e6c8672ec14890d400e5315083598bac45c3a7daabf723109f9bb3baff60b473f0343b9550cae32170bb270bf81612a80585723c8ba9361881c15fe5cae568fe64c54ba59d597d57f934e9ff7845d50433024cc1efe8af10838529ac9a14af9012c50a0df8d347ec6e05caf7581432dc08f7721d2bb95edac0ff6142e88443f63041ba57e80c056f558c3df2323d985cc35dcdd5e213c85c3daab4d7ee2b0d866ac49e1244d3106748294c58a076174748b662ed649a977a38dd2e0159586ddb606a8b0774c5b261329343f4cb9dc7d1c8d5d04bd53d883f42cc6cb9d9aa7a4457e96ad45856f4fdd2550efb3bcbdffd39d3c18a5639fea03cd07f264c936f10587be8b1e5cae15daf6351eef100251df034c5df1be6762cdd7c91d1b8f819e60a31076707050551648737ba5b243c043f8ef6ef39df0d49674c7cbdad5178444eb2f490960d074bcd6eec936351c847a3c5563ad3766262c003f5b02dac304a19bbe6508bdccaf42f866d860c70aea9a851ff0b8068535d9bb6a69b00a9957a8c641be181f2bcdba466d82b8b7ad55a3d3d7ee97a449fa582f2837908aa9ff7269956d676099697c0f9ce1ba598987836f51c7921cc75a7811c5ff090975966ab29e9967b9485b1a2a01ea2681106431a75d1ec3a66d38b560006dc84a5ad027715daebd7f32529d0e782ca810c314a3c87aeaea269c70c284ac1fc7ade0fb85b7ea0d4c43147a812276cc4926202571abf694bfb738da21fb044860e9f4490ea669c5a97bb30fc61b22497fba7587cea6a5e0b990dd1da04994db8ddf2e981d2d3f48af4f9e5eeda43c7e579d4f8aab8d380f0499d4b57a96d1bb4c2c350f5bf5422c77ecfe52642b2b876455d335303c2f7b777ee5ebb8bd0040d2914faf90eb471e11fb2950db2edfabe7e66b53e00349058ebe81a1508b43cb4d48cc99dde2d8128f0d6434b85b04eae4f193d62ac4bcae5764cf11bdd6a0237e7712ac52ec3dedc57af7128b74bf33f901bb351bc781913fffbe9b570665f0b16b1c4277813d4472050c5cf19c7b1e1465e91c73e6c0a3e67406d2348d94e5f9e071d5f536dce72ef3d935bf816b9dce59698460676a1fc4be5177ba5c83b9062722745b7f23a7b2efdc10f4af096360219dc3b6ee20af1b9157e7e37969439f41957c73f1cc7443a21e761811eea1985f28dfd27f180906470daba74486bfe911915c57049a1f8f274f3d35589ff50d70ddc001b8fe2e71750ce5911289f43d213ca96251c8587ec9a2ae9a9f340a66e4312b9a76366eea4d39ea69e4b672f150034c0b4b613ba6652307519ace44970f8947503fa7da350710963f4f4dc25bc6b905daf89fda8c04720f21c1b39938471a5814f87fac99deb4aad7f163dbfcbbc360afda983b04e0090f40a8212e969a10f25590d86d7eb778f5849fcde1946e9b493eb7f37d9abc71c2702b61ae5b618b39ce97f4304f82c92a5cfa8eabe4ac207ccd37a5d80586cd79b72b256c3877819a14b40ccd924a5e6b0b836b3af5c8c52ed8939efda42ff90501215dfb3156f7d48716a329c3545fda38cb6a579c5418da190d1bebede98141c3e417252b8f44fb8eb94b7ef3344cbeba67ecd7dd958ecec845ca5b418d9b278ea20ee133db7ff05985fe61af17462df40d6b5031357f48bd0f630e805069fad31c3ebe45e0434b6321386bff22eab746ce2af1d48366aacec0aafa6cbdbfed0b0f648aa37d940730bbeaee0523aa03be016b797fa397b8977c150f55cf6615bfec40c9f663a54cdf6d59efa65d61d821ef35d0bba522fa3bf0bda4b8ffdf9430d2b3181911d6a6b832deef2b71feec28bd8c393fadb788ea76278f577aeec1a29392ea55decbf978437f90f28fb2adbe3fdbecd1349ff14d276849c4755db7a60c29058bf1aa9f75863f67bbafdb9e0776fb9b8f4f2c5b88ed94de1cfb23dbff882e4ff6ff52f36ce84b32adb6a17f6d975f5c24c1c826cdbf532ad84da7a2c613eeacaf761eda3dab5773e3dd83715414ebfb77de5f081a5c71235f3dd090cdf9bde1c714c50b545cdb6fd389bb720c16b9e4d9b7ff676e46563cb9e02dbeb24666faa285b00b2343fef45ee24cb9c3f1f8956e4a6a1afcdc74c17d81ab38cf2cc07e9367d68bdfdc5ab2fe73842a860976c34e8244f903fe90186de9e0869a547cb9c1686ef1a743d1849315cb37ef7cd61a8c997dcf0d0fdbc0fa775f2921b80f4be61ee667eef7ff788fafa3c8838a1eea1e6661be2dd15d07c87daba5b9c70860a230caf4a49151fcb5b75bbef8d691417d10694343db35e1b40283eb9b8d5da56cd49adc28d4c9eef856310de6a5d1c5b3b49669100d40b37e92a9d90f731311d0366c6b4cc8e6c7862354595b309fdb4fb248d3588e4934e843fef7b672325ea35545b379808d51471eedb8f655349ca173585a62259abd991a8d29b4a7b5984cecb28e2c3ca3c27b36072c77522d855a8c300baa56f9329cf0a9902bde6f58c4f5cfe193c6845ce20ab77d4fc4b6806131162a0a5ba5f7545a04ad893edd3243cbd9646fa0378f4f6fbbda1a3d4b40ee0b0088abdfc8d32af0403d72ad92188ae204e465ad68d5ac3fceb77125d4b4a2c048d94b72f7a2fa01c12098473950bd1248a478900cc38cb2b4330dc5a66e3b4424e0108db637ce894418cb269e9c1482277ae6edcd1a3128380648f05be4031712e3272c232cbe7d0ee79cb31466507b59ef3ebf6f6efb50379b656b3df5ac50fc6e2e04f5d8443d71f9baa4948498c2cf6db20deb313a01bb4bbceae61157121a304d2c4611ba913a074ad9958feb9eceb6048b100f03d45c6f2e8150be1736a498cf9c932436146ee52ad795a8ce9e18762e6d40fca8d43b0522c41a89adb49fb074ee011daa9e3ab45ebd7f2e15fd462743c57962734fd0f6dc4d9e03af548fb4f50124c8a60ada652ab411cf0fdfa02f50d67b067d82ac3ed34096e4f91419ff41389e2747a3b0d0fe23d83bc6bd98ae093515095ad98d35348bd484675288ca24a5743d0e507b77a577bd6faaf396fb990bb48d29847599403e620acc9f5ba0c3fc262515a1a9def308488647d5a6a4bdd4fbe235a2f8b2cddb7ce52a2a3ae8da709f88f4461202ebbcbbc79d3a21cba11e5e0d4b0419c8ed5b62f8ee53bef8677a08ec27652b1a1af4c88b23aaa239f99e933df2b1205bf5fee14bcae92569daec4157b1c224c6db9ca3c09ff421fa1958385dd1f133c38b8f1d39f3d4eb74feb995646f6ea7e8c81b7a068237e99ed96b22d1a24cdbdb612d1b3748584c2298db1f22ba4e0fe62fe536297b2f627a7217081adc4e623c125e69d6e88cae7d74bdcd43b71e1c585b3b84c0466caad73c9ee4b7e90df9d15a75e49050d7c28269d3e6c52a81606f6ae404c3cd56b38ae74166abe014de461a655f0c5fc95d5b578e355971993c9cd89383c17d208eeccf1d86e0af89844f5acf166850dee06f1172192441613fe431ab2ba34eb706ebe5403d4dfe86f1b2c90516de0b4b90c5c27a61a1b6afa03b46ef1dc12cad04b0a2d665726971b48a7b170bfd0ea61f8de3e23ab0a3b1efdc78d2c84ccf04a7d2961db3fabd091e662d08e7554719deebc6ec692504eddf10ae3071218bea48a2866e893339ca193bda8c958fbf5f43c5c9b891fde04e7795f1126373e04c3b2d4b97960b5b434d5f8657bdaa7c1652d1e4b15ef5746c60e07d77ccf6712905ef372dd45657237d4a63bb71aa12cb6ac597e7f6f2fefe61b737970b83bb37242c853b57838c3e7bd362e64a65b77b319b2b1a1da133dfb6d0c269a12d345bf0b2067d115b656575650c498be133569b7cca6ffddddc2c504abf1db9aa5c6a43e90529bacdaf77787ee17ea91c58d38f08d6392e0f6ddb45f319dbe8262cd4206670ffc199ce8141ef13ef4f5e7cf79edd8108078d7e91cc45e8cb2b64b1d2f01ca471b0e80d4e4e993d9342a2c6e4655e6abf1bf23656d925194468cd94bcf4aaa2e2001b8835c5582434258b759b795c7e9f8be2ce2886991a0eac02164084da4d6f1083f7487dde3a118347686156d15b8ff9d4a5bf26fc53af719e924bb1a69148fc92fa01a724cb7e91a04ff868591a3c11f6e0ef6a105620f4ce644696ed23c813646b1114884553ef0708eaf6cfd8effe9d39c5601ce89d973133cc8c92baeb5aa0d921db71d204794e59c8c385b1cb222f6dfa266cf18dc7e661418ede79d53153960281a55056615108cfd669d33c205037bc22187ca8b4cb1c4693ac451667a1f8c48db856ee1a1b0ef8a41e99f1612bf3050173b22ca6f6220828e26ae53b07cc3dbbb21ec59e575025099c14d22ac23e1006ae3268eae0d8221d820a9e7262a08d9f407c9e7293c5dc307cebc713f52f8f728f9b49041f12b361ac8dba56471f13e6c24b9476f25864309771554ed2e16512b352b610b2417e4887c38077a9cf694998e6d26cc556fa91955b57e2e5432ef8f17e43093e71584f9bef3444ee6e3abc5e8ebe770b814e8a035dacec81b1fb9748724c9baeb527cb23978b52d65e979f1b1b0cde8c3c64dce75b45a7ca57402cbabf77c3f6f237245281f8a7c07d1c3f4b5a56c46aaba960f8432a38c2dba201daa4ab0eec8a36d2ccb5de1cabc063dd1d3dcb9576e8f95532bc01b6f0722ffe983dc63c57cb472f83b4875cc6afd3b9db3208d422dc71a343abf9b204be0d03f7050daab895fc3a1dd5a61db4d33bb6b75cf8261f6c1bb2ac4ead2db172f9e42ac8e5d76cf19624219d1f14166c932c0d88779fceb0c417b9f3086416818fbc0a95709ae938f54ed7b4e16b99ec642e87246b949908979cc498c4e54e327c40479dc96d74f7bdd0dabdcb8ded93d60bc1b62ae1b4a21ebac8be34b998bbf9dcec2cc30d823068fc60c022c79a4064926f8a1e9ace6955d2edcf3b7dccd5965ac902d2b6c79d18ae08e464c6788142993cf689b5394c963d4473062f3b29445bd374f9c3a2f7260240a9ca044d7723c489899ac2fe025653bd3f2493360d50e0c0979cf439ee769dc96d0b91524dbc18e1ba6ea1ea19f3e94dd2e1d29547931034fbba7892a4097419875bd5de0a258d791fea5264d1b66de4cafc8d6f88cc008bbc0e91b7a793f57c6f9fe2725aa635a45b87928a9b9c5925d34ef684c49dd8b0e9660b989d7ae437443f7f49fdd4bcef57a5d3f3292118fbea6ae5bfad5f1d0db38489dd5e57d495f6974ffdcbf0781cffbabd1293ea4c16408c09c6af8078fc0041195abe69055cd2ab5135f842cd016afed2733e9dc2ec327122f71e3384d56cd4e14884ed671cfae2c62bed37e7e099a808f4036db7544e53e74b6b4e9d1174f06a4d6621046a9ee11482bb2a26b0ed1e408b6e556ebba51463988f6bda61ad93cc190b10229dbd666e15bb1f23fd639a2d714f13d972b32c1d4377c852064960e549866ffc764da6e53a356a1d41f341a0256f0afc4ea188fa8eed2e88dadc90317210dd3d322a31f0da245dce37b5b1892f2a4b418ab9bafbd5487ecd74b80f4667de9625db53813ce9f971057a80f063f39b1c117f6799e6ef4c0d5cac74e60f66ec1728c037a43ef6db386c002d853c44608f613e5b1a4a708d3aa26719a646c216ecb7a6a90d2c9b351692ddda67f6eab9d4ad2e966b8a546d6c3ff14bd00514630bc9caff10534cea183b9af6aad1079d22c1a474b86e566d87dd91bea32118322cb0f0a9643d601f14237d95477ccc93541534b5fd525279b08178c49cdceeefc7606f4d5ea004971a92b53567499de76730d411d3b51d4d369347cf90fbd318aefa2fb71066d9540f9826f0946789224a286ce03566f92cfcda40f70a5505c2d2cc549f37f17c48128246acdfc40da5126dfa78305530bbfcfb0a9b0c15a76a56b052ccd7475a9d2c00adc1ba51a84426f233024b92ff7bb94e65409ea8a2cb0b71df7789696e3aa24794431df6fbde299faa8e767a0c1a8b4ce4fbba4001ddd87557879bf14c1955f3cd9cd94ac74c47bfe4b55c962102cd4322bfe6761710ccf409fe2b52a4033cfa4ab5405c91499d516f44c07303e1c5dfb753a2ee888693b494038cfb53b5e805fef0874a3048c83ca0f84caea078d27c59b1256d34358658e84569fe2717c5578e1a42f69fd78f739b4065825cc429728cc2012f1f156a4f50252e96b5aa2b57e42d4db289219903c81b7d9e4221d5492aa2a53f961ee672740454bcfd330131a5a24bb8071fe2ec4c9e0f72353bedf4fbe838b206d9c65308269944c0b8dc49500d3023494bebe284355eb8c2fc7cb1564424257559dd560fb71288c920e6517c6b501f71777a60a3fb0f360ee7662da0afbb0619be6d3e9e0e5080802d64c06c5b63a91f997cca6023060ad7ae46abfb6e03602ff68ff7b25e50c426e8075d05f6a60576d74a18743629180f344a211a04cc724cf3a41738d3a2d603c3b00dab0a09bb8bcfe62541d986b2574eb98625c6ad6ae4e6ecf6cd673885442e3a5bf0bfaecdc8698d2979defe3aafa1794d9825491e61c2b59368fb040b01159f66fc87847940b536d45597ad3a5c2b1c0025c57babac2e9c4d98967b4b3bf78c7bf8a4ce678bf55b50defe4ba22ed5f9141cbc31b79feb6dcfc219a3bdc229bf7455b2df7b48457fe16a54accd20324c92dde8ac5b16bea3548ff5933c76482fc426470346ae3a4975bdd70f87851fa426d1a38fc1fb1564749f3538cb73618fcaf7d0fe41e6b9757e302e5397c49735bb722c5331c81e240e2e46bdadcb0ac30e163b939163682f0668e6d5e284b848a1b48c9cdd410a70c915ea24486e14028f634b641f77813be587cc702fa7c6c726d87524348930b7011abb528596692327647b66f719e5adcfecfdd2d6f95f0dd2150d2bfe3e33eff95e9bb9429515db33fc4f074b40bfdbeba1dff8c52346c56b25760b0f0ba918b7da38192cbd241c12f85e0e62aae55b118825277f915f0c9e555d496b8455693760c0bea8af2f0816b3f1f99d1e29b8033d16abd5744434a8d10629039910b073d14097e61f412ec877fe7921235000a3ceda6b544c4965a101b63ff154e0e43ae5df6a4f8bff905545688610de5ce5a087cf3e24c593c1bc355aaac7ce289556541641b359a6ed9d0712a581fe9ea8fc9bf086b592d09620e94aa9fa52896585f7f39b0c2146673658c43a4fdb7f8e30af838812fcf27c909fd51c0e35b220cc91d2517ed68453dec23bd4e77dec1500d4c7ed36c00a58c1ef6cb6d844ce7d3e037a470212830bf01b32f247dcf489f259540d967d9dae9ca75e09d2cf1a0ac9f57c6265974c233b696a3216b12539d87d6a7925f2140599988d4a90c5121f3d4b5076a6789e32dbaac7377c5fbe3f5ecc54ff629197bcef1aa13c457bc08ec89c9aaed2c3f5eb79523b6be24bb86fd0483139016ff05838283c2a9dcc377bf618220e2fe34ab54ad1fe2add80f598d7c6fcc0cef0313723bd5f0649f03734fd79ea6b45573aa02f729cbde43024fb70baa7ac01d17af93ecc953b33d7bf65f2bb4247688e418830a45a0cad2795cf0a0a82a7a1af107865571da30a634d0f6375d4dfc8ab6e07a8da39260d1b8bb42f16d84b84076e2ec4bb4c36232c283a86de7c1cf90cfdf009f96a312b5d479389344ce08e138e66a0b737bdc41c545bc69d6b2a72a70389cabc1f761e8f7d1dde6aca5e7d709c6592c806f57497cb918c30d0e3adbeb8e103ea2c64bde7c858d19ec6472770c45ddb9de9bb0ca7a5de5cdf25db2de8fe30f34940e8fd1c46b4024878792bff26f2dcfe27d09736d70bf687e667991dd3be8f9a88843a932ca61fe98b224a3b4f57a02b65e95e9761f97ffece1eea1b3bbecad658c4055a411fc45378108b4c6143e8d0ee80675cb72ecbb194b0031a008c3c2019d0d36e8fd2cd0632d69bcc90f3be50238ca3501c7e66e82baf833172cd7121324e9f3b64b23da881ccd2c89c28478a48e1114c71bc158df7e76b79671a70b3b9826bf326bbe82467798536770dfeee34d1628bebd9bfe62208752cc91e881ca3be8afeabe7fb2fd02e4cbc27c6ddee60790f40b32063c82337ced8cb3255646832717fa92e5565aa2b832c39f27c3dd7fd67878e1c9e7c1445755ce0159e0f93057cc14e860043601fa63c259fdedab0169b7c537aeeb8b957049b8987c201345858fe30668a780320c0396922fb293ace9808a109c99e34bcd80ed3f89b850e64d2273d034dbae3f4d3d0728efb0b8db60d7d9a6c8b003d4e304e367d00f97308b719cde6765741a32ba352fa70c150a52c5e9a1f1e3b1f6ed4b300a433dec3810dca0d88327a1c39617551cb753be620034dd0596e1d384a55202f27fe1184e8500ea638b09718b48743c0d075aa2ce6bdee604a2be33f8404a1166041ce01c1426c78e8cf654566f016ccb06d34531aacfba14b620c50aa69f8cc231cbafd6a2cb5049bcf2004bcf6a5451b78578df5fade7e65481bb3d72c7c7fea13a5afec08b3e2643f05a294c55e8aa1935209014fa74b73b4fcd057ec050590e9d6f381f0268d11b16277e7be1fe73a0038adb5caa4e86a6a344af7b0e65f867b242a0a89d9455311025e23b2d34221dea4eaddbe5c0066ba13e0b9e6bff05253fce3a5c76f131e7f4350c1db126d9c53d529234419c2186c1b689daaab5cef52fb8193ca966ea027f4722549804c734ba1130a901b392d7af38e687ed3322adbbabedd82b101fdcb24130d546d8f8b6bc099e338193a61f6143350acde0194bb91f0360067716d86157cee37391270c07943751917471978b08d801a69be243c4104c5400512278e461a3e115c00bc32a45b181a5fce52179bd718671efbb253f911bbc8f20646ef22af0fe2af4ae8b02ba1a2924c5f3f2ffc969d56dde969eb561c2b8d857fb37f0b0603249848f347a900ad8aa7b853daf2c4f4664c0030181df854376b7bf5d51fdb787a781d1d6d54f3ac15fdb09499058c287174cf04ba900d3debc86722ae4a2f715fd1189bad76e14ed585778bd74eea844e4fc83f4b7a7faa09e56bfbe9061a54d3ce8eea58baf9e89c39df025c1142737c0d4c9c56650daffb4e27ed082a9a85638740c081cabe5908b81be849b82efbfb36e6231071f40a0044437a73ecbb6e44009c661ba1d471985fcee376f4233f7727b9bc27a1837b1bece9f5603356aded9cf6235387fa23ccc01e580fdc32b8161cfe8ba7d9f3deef392903d6c37c42eac8905fca5b48a30793e2c0cebb381581112b55ed2dec5f762c4e4e0e8eb65032caaad3beb86834972eb21121f9becab53cd77a9f519e58db3b6310aae47dc6870c460ec2ac8c83f99c0983961ddba38c1339615601ecaf36acec16ae9753a120e6a1e2fed0c4304482770fa17e02321d5bc76c0fdef301bd20f5bd13227715656ff7ea6f140a02ffdcaa753e536465a477fe8745e1fff48d27b7ef0ac5aecf3cc1046677d61d347634bdc687a2ae00711e31dc5153ecf76538b6eaeb3425cee20e3e754815165c958a727b9d089ed5fbb3a248f4323a0d4da8d86b3c1e8343d825bb1e74a018f58ed0ee6ed526fff90028774dfc6b0eb3f53a951fa4457c51aeeff56dca735aaf33ce20dd4a347e17beb16a850125986c8187d558e0fe6bb230e3279e477ac7d99042d5184a865e8f134825b8a1d974c473466024d4dbd345576c00755f25c4e51682f4742af65aaf0ff621109712503225e57ef3c507c4cca8d8cb374eeed0319a12e2b626c012354cefffc49fa5d23f29cb04d246f9735a259b6340f702a4fe8a760d58444356c813d67e7fe4a36b6b12b64c7856421bdc5c3751c8e4d278df03aad30df086619e9b482287fa58f6a7a7f212b661ff20dc6eedb7f166ad45558073bd27a9f4454d75b98a61cb1b7bf5106caed98e2e80e66d3a1add169b3b05daa5e00c14bb1a1161d16ad3a246c7953d91d6b6e85249a946c45b5a1a98081fe1d9d4944be18c786b5af73d787becf05cdfade96aee0d545af353e07d70f70f2f20b26919bc939d3b45aa14eea4473314102b7234a570c6db6c29d25ee0adfebf0dcf0ccda9cf19cce36b7c38022320d3f137e2626c98601f010ab1ebbe7a3377d5be101105482b0c13235be8de67ef9c11c8e5d2418074cc05c6ffe77709c98f6487fedea766648ac77c8b4f321ce8ccf69a0a5214297b50ed1c4e91b0f04f5a95284d827ecf52b48b16c4790e4079067b0ead1caf9b01dcf2fef2f3205ea9cb217fbf7e262c433288f27dda8797191497e5cf5e10c876551867ee8f8e40ae26afda4a10e48d59f05196eae1620416c5034770e11deac6dea25b908da608f67fbde0acee3991fdcb09e6526fc40a8ae97b55256de531381e0b7b0ab8a7c2df719bef721feda97b2fffc4f03c6d495def775f6e2123bb585ceb1b2f2bfabd294cbc3a717a35098f8bafab6da761d7cb8b94d69a83f20bf53f83736e285d0727605346f50bde945d5c638d95e56baaecca565548fa9c170907925a86f87fe5fcb1d8602629fd22d8b3e633d031048056a998363127ed43cf47c1a0ccd54a80963c40e23e9fcc6f7ca23f436c895c25f4f3697bac854b81d7df5ba9236daf6c4fd4192aa4814b467a6c33ef15734b21fc96d104465b8ad887dd8a01d6ed90e02cf8b972921fd11f5de3ccf3ecd5025441819e9615707e54120a20661f38ec99ef6bb61e3f72f6191b203d87637685d273316bb6afc899fc5bec524b8620768c7bdee3994f67ce192b732d0349359f8dfcc5dbb3c32df7bef610299ee83adc5a909c5279e62883c0623f0c434c0c09f2492d430e2927356e04d0bcf77bc2cf8ec95f0a993ab67a53186e3f33f25860711e3d3e35ff8b8cb22c3840e0500b91481bad8cf4453614fcded4552232fd8b3ac11641679392316bd71ab1b4ba8563ac561e9cd8ac8b94d1e9a988533e8f028a81e4bed81e18b657e57fe482b0e76da93910936bc8e16042ae166deddeb935ad0dd51e8101db8b564f2e7fd0edee93a8ef88f1f76f80f418a48338c13c2c26b761638a7c708d34a9b6ad5b9c5121668803acbd6567fb95090d675d88e1360c7504597a9c8748fdea30c4c42fb92bd07e43aec251a41a6410eb5568c65dff8a37e26f4928b1b0f5eac230af5c52c76d78ef4e28b1a841c5f80dc77870a8bd156b2948b750edf15d79ebffd1ccaf1edf30afde94de6dbf37b22acc4dfa83a07f91cd2fc056b7f5d91c821b98a50ba52be82baabf475c35a24707ace2bc2ee030b0c6ca46d56fa8705d454a5cf6dda3a95455c69e6c7a396ac427d2bda13d7657e96dc5ea218ba0725b76e3e4d574b1091045e507ea22dea0f36955f4532cd13d6957956869c4e4a08cb5a9558c413619a50470d72f4d59783c7323f959d1b29722d46fc94032ebf021fa38a6334322ae9a76d37ae7a66a1058ff04234253ec5278074d7eef92d7be78b588cfd99daf81eb3858f507f51d95ea5df981efd4fc08563c44c4ee83a03aedc402d53d8b2263ffc8535f059c84b31e6d6a1a3260963f94d17d5a7cf15e4523544eb001a000b8935ccf81fa65c400954ba95cead4f1564880ffd64f53dd804e1e2a6f4d7c7793e2f0a99b4d7b5e1145ba23a4c9369356ee83b5931988a72211ffc796952cbf6b38cd14668a8df55ef04762857e1f7fd470a9efb4a000ce50f6dcfaaa57a47a5bf4924c519784073cbbbab1e4ec731e6f35b1da7340ae63de726bb561a55eb45c2f5275ccc874560de7f5afa12d69f74a03f93780686647b3cf6bf6bd289db39b8db47ddbe468e039485a5d5bed58885c33e098edfe7673ecff08dd635008a6da02d5e1eb8f45edafce44a3405d3541d3500b2e839b2ad13251ea16beac31e59579c3f7b8da4de934b6c0a9805794d3f0bb5c99bb649b2287fe404dcfbaee114d7615fb850c0bfecd00e91afd06202a9e1f7e11eb8fd36ab70e6a12ac14e0472ea7ac129001f2956c3adff554ddb5d17124897a5b80f30ef9191790e84afaf1110569097def3656e4055db2b123cb6e97a40c88597163566b5e0a9baed6bef2dcf3fb3e18d9b726f273e2facd32005a9905d82e7dfe6a8937bb6ccbfc851d662075a9f25b4a0b7a7b3fa52c8e77b2d71b6ef7ca2a64fd8d3ade623cc5e6a55951c4b6b9e8d341ab21b73398198f8d6fdf42aec1894e68c52301b55abce573d9cbf8319632584f2cdc753972e25201a24ebefd3e96f53ea5b96d0ec0a70aa26d58b6f5814e06528bc31c94fcffa1a328d2e29309e949cbb975d254dee8fac9686be7306ae983d9dabcd967754eb7029e1b1f6c9373fbeffc098d06611098c9a329f58a74f49d518ce7d75e31b1241b63a7c7b22aeb98da28fe3d6097d097a1cd30e87f415c9ca76a1979eaa4040bc898cb63d561d669d91bd30d2975428b42935db1c583a07f009a234ff350c5337bdd39aea4c2b416dfd09a6f3d4b32d34cefa3cd01705e513d43e9d362d71db9243d0da768c85fd4ee8973f2a0de25b564c96b186250332bf8e3930570188c521dbf712f24795d2936241b8e7a94f120fc6b79d637fa0a35044d9fa27176e685fa113fc50fe481afa23e82585d820901bdc2b57f367793ed4ebae1f5b65b155d183f916e502b9b28aec1a0cbd29f3c543d78fd2d1e073bd86009f6f6632bb1af9eba64c7aa0f13d1cef26083386703cf3b138cfec850b3f8c6508879feefc153829b6b2a0858ccbba4768ccba7bd81803bb4d77173af2dacca0eca916d3c526705452d52e0977444d7e8f9a0897a9bb33d179607f2afa280d17a45f5035a81dec73f7fd2429e054ed076cbc277b0e8d7644be3c7443f6ac291787e0bc2191c9d01cdd9a6c729658b8696801e3bde175e0225d6997d01dcfb2e0a17076fe4f9e333f6193ffd76c35768e583e058eb4c7f3213b789a2c6a0ef149aa0bd4f6e305d89a4dfc8b6b2c999286af85f4b9f3bfb1c2f56a3a1e5360fe3ea8f31d3829e1524b15aebc59682f39acb17a720c8f6de236ce39a1b6c73e7a2c98249a6880cbe8d481b71959c101e3e1868e60a5de5b67767d345ec6d968eb51107be369593b926ad57778e7fd74a8f74485c9426ebc5c0f7388cbca5d22347087f603739638056602d085a12fcbebefeaa150b5d6d1d8c92fe22543ccca3dc50f63dcf329d107f20c44b81ff4a3bd69bf2dc06ec8743a21bdbc29842b1d472e294ce494236c9d2bb31988a3c5d039d611b02a7ab96a2f36ccac512b9dd3fe00b644fc2e922614207b0d356d75e223c389f36642afe441caea953b5402b273bc43710d0c58dd3f9be1cd4ce3146c80ab7ffcc9823560480230adc0693ecfa6bd012e6261d8ced39504bffb2bf3c55d812997064826110d61ca497dc60a56cafd0cc43a6111d13678ec1a2ea1f2fc10ef65233fbc9a1e267ceab7a71bb2330b8ea9a60a8b36c653c271b3d1f587064eb51701328618d0b901d05c96c02c3855913842f95aa04f900b53268fb17a15b528dcd5950d8b949d100f2077e818046d3242e19015d9ad36907f7652214a108b8f75dc7998a1e8216d92d61e660ecf39f5a69e5bc8f21115dd7d436304d05f225367269537a1b7bc4f30d0b1618441e29421b306e3d2f1af45f527b2c65dd7c3c6258fc95f37dbe3d7ca6bf01745818c74c97fb8e521ccb63b4bdc90b492f48ffc18ccff1704a7421ae1b69bacc957385dd07785be7e7a74def58f8826ab85c7ec8694de3b7d0ffab1302bedac682432ccf1c7c5a8a8199ca03430701c9ba0d1af0a55d9579e19aa990f3eb0686724f6a7ab7d0ec2033a68bdac69976913b13d889358c0a7d444f40dd0e1a964e3f97558869f648e3f65fe2133ec1b3d6089d8e357039b218a251559e66ceb74afd3a95135f6710bbe66375224f86c00492367baa1e0049c73468c3e0d4ed7d38e0ac0637dced86be9682ea578b71dbc7a9689272b4d6d53594e3c606e44d5b33cb9e5142c096df11cd454af744dfb0381067828528ce99ade055382a225a9d272d6dd9b9e649d614a76741b195a3a1463aeb64e04e924e5e04a32181e6e35a0afa85362066460f9088e607e42c233a9ad9b40fce0631dac0aa022c1b170f2a7c4add01ac85e32f77cbacd75dbe269a2e1c1fd64cf1293ddeab309baff3516876806b3cda3470475c251d84dfd88eb4b86da5999e2760a3d7c5b8d871703c74883f5920e02d5bc189788c3707e45bd9ae103286811795b18d558a889f5188f2bd014cd05ca4b47ffee6fa98c3e45eab44efed4e5d8ecffecb4685d5caffa2fbfb66e4c0bdd56d367af9baf4f38b045b7bf5a6a2b483c33a387138cbe260bcd0cc44a0e9c2b8db27250ad302f72d1527bdff0add7a60e21f5cc512c793a0794fb4ef531cf5c62400aaadc409a44f1d721bbf029a1d94dc704175ff250a524a265dd1ea6d6d3d1406835d8dd28f5275563d795b6b6113b5c0e3365352b6a9687b2bc7233e54434421a9cd6b9b28184b556bce7c5f56a3856ed7a5aaf8c903494e67ae543ce63035beea7fc1257a6682206273fbff291409e99fea72d3a4210999f6223b8e89964ad64e2327a5c0c045d9c20dcba3524d983f1b85297fdb2d07e76ca2b7b49b7253da7ac07ac5d3a55b38c4a5ec76141e14a9621d49168fbb31ae1eccf1a05ab04151db04d35e06827ba25fe119c886a177951794cc4bc7429449f51f945c6259e4796565859fed2e2cf926c1e90db1d7d7d5a0a5732963073525554f94ff8748200163f8e584b912d65c74347618ae0f99844cec0e9c544bb4acda35be5265cc065f66bc3013d9f85408aafe48dbeb63bafd190deea72f7dd4a2613d0d81a453c94fd040b68dec72879760831a7f32e9cf985a170295c490a653a5f1cadc3cc77b87f69688497a25ce29b666a19c6fa71307c336a0491f0257020a6078dc1c941db237086a7083b75970cb886c4bb0cdffb368f0e9d2098819c3a465eb630ed0177f0501d88b1b31bdeb0a8c48b1c097c6be9a12c3a8f083c5b3e41e60b8ec458bfe9639707e243e2ff798a432fbdfeda656a0ccb3c39f5cbc7e2ad934ed75ac3d754c7804399122ef8a2afe4fd6277653b58502452161524c2143c572f7136a1562deb1ca9e2703c4534630efaa259538a48ed7c6cc53820959d88bf5c3c96d02da85f9eebb73e6ca931e5f68f0d134945e224bf1d19b2a38b484aa2a89a0999cba788352e21d1272dc3b55a774db58f4ce0c58e7c256a4484298501354ca717e77a85ff29bc962fd9e7022ddd0a146a3b30907b90f4ddc2977ba7710e08789b5201a6bbab0159eb0375b2454875cc06b0e5050f67045b6005a1103731867ace0e2b475cfd94e3ac5c985bd42a7fc6b4b6c80033831bd788f38789022d58f51b178b2421f6d6378d3b3e04002c55538e01778c8eec3ab016b494b5103dfc9312f18bf7229ced33ef707fbe133f5801e20338cc824a9b5a99aa7acc863290691f4bb6f58c55150e2889061fa28826358c60deaf8a0662f00d52127e5739af8a3738d88db95928b4825b072d1d2184fce1a8b78c7368fc2fdb635ab81b281ffda7f9af7c5b5889721eb34bcbc14723fd8be0e75a6f0853e3b3e79fa11875f6a40e063601297959b5bfb54031eb4417e23f48ccd27aa6314cddeb5434e89380782864d034970739f86813a152f4ecc23e7bb86abff7fd0eaa64e1ac5ea37eb80d8b76d4e53d73550fb1fae023210140f2faef3b52f58a970142a5edec9f298fb7463c00e836dbe684f8c68f36244cbda966064df5f9097042894af8b838d26d8e9d7e0bb9be516a1a97189021ff4fa3b213b171bb3c685b9f9b5d949564b0a985607807e2aa494535e63ec6cb3c75177989ff3460600b5a382a1557070666492562c33396ae900c2310d5f273f3187117a567b6320d9f67e4df06aed2f81b7f41076c86bf11a19a99e35c89eae522347278720b2c666714baba970b1b43f124ae582d50f3cab71b3d9b0b172927c062fd43f80f03609eb2492e9f153cbf6383bf32c4289f4396a9f5f1e7965e59d66ed2ec46b6eb848e074334ad951a66006b548fd5431b9db322cd5bb4a2c3823be6cebfd4383530ecc615a86cd412550e2f561dbe0dae90b6b14106bd4fecb5e7f42b859f55c8fcb178283733f991cac6fe90730820716f27bf06059a492c942e3b15c51f8211f57cf3f6f7e6ffba0bdb662e688e56839a3a13022d006c9791861a8925aca6a11801d07bfa9fa7e41a9c848053a26413902b60d10e2dad787e42d55a5e7dc4a4cc49983bc4cad04bdc7cd8eb924343c27352e55a84773a04588896056d4748748190d6a1d50e6bfc377798bd319e6c26ddd7af9db3ecacaa2ba829c826390c9ea0c942a387f83382c3fa8b1c03d4b897d9b8680f0a2c79919ce4cdc949a745347940aca3060fc313c44a777ec7ebca1c89a10536dd0521ec59e1710f5f846b281bbec4ec95ccbf7b675c490abc93651ca6aae09d5f10d0200d823ac02add2cd8cbba74744d344f5e4ce02e88b1fc1d3665af832823642df689a6f90592b1b2f2f41c41b2552364e00cdd34c46c00687b297416450119f2995e2dacd59918e18d9bb710013decaaa3c6a24e3b5d968132d1e05720d3c691a58e7d4e7cfd93ad55d299eb5367e92ba839eefa5884e266a63c35cbaa9760a92401a07c0ea6bfdd8ff0947cbf2db7b8879b95e026cd4a1e7b65e3a566bc865f2ef9cc8038333013df0a6bc5c82222294b30b8ef5f76cf29d68393b67acdd652ad2990bfaf238ec5542e55320fb9938563f626291b23554c184e9ec915126129b8144893d757957f4120f7a5151f918a6a22bbd2c315d99cc8ff824763ab87587200646b408c5381b7e1228fecab52d6dcbff4a73f63099bcb8e5b50d2bf9be4f0846862cc6b74486935301de62a7b7e51d077fca8d2cb97a768e3160cefc9967d595e3aecbe36c45eb995ffc71df9d070fbb10d8ed79f69f9664f593170d344be52f62be3ce6f424d411519d17618f7b49a4e28e1fe5e6d1d4b0817ed7d43ef29f478df4eb38ae979ee04c42dbe32e6ad8ac398b5954397fe76297865dd999dbf2a946df0b4ed0c983d8669fe67e8232ab847cb7e816596a0c3faba7f2c205887aa6baa7aebc8014cf9b595aec312db61930645c18ada2a94ba8cf86ba668273896a7068794ba7ec1e37930558dbe4f6245be79f4f3930e5ec546b5244705a67ef46968a745eb455c027a26ef4246ebb10e22bfb2995565cfbf25515b73ca41276ffe8394b4816a37a9146c558066d54677b8fc6044f84383cb3e5491c1b049f8d326930eff2dfdd13171f80383f3528847f4b76a99f0d59cf15a8180064340c853c0b500e72c34c2a37813f65c8d6616f7117973b908236d127e61e43f3ce94b229429263f1abfe1a9441003a2a6c830b9df28a31e548e61ad855abca9f45697664c2d44a707ad8bbcbccddbcb13c5608478da6200745b014ee480714ac941ce5de937c9075f960a25901294c5a1bfdcf5bbe7a346c87cb829ff6dba1542db3fc6af6fe855b598b32b63c83e87d5bc64d6007dcff00fdc873d5051d6144aeeeaca7ba93ecd5e20ece019d1659464cb2cf42a13c40389dcf7f8da956754c6c91f2130f89aa2dd98a167ee55300fa3037e70e387a1a71041d1158b57ee354f8893c30187bddfa78656cae4ed1483510863af9de1b68b4762aed006e06c43e8f2b2832276d719838d0668220760ac3a144e3053ed91c878cc0ed4bf3becae24693baf6ec43c9e72039458bf05422f361f7ec3843a9b171d590126ba50fe8c9c08ab8248213e8460190e9237b7449dacea446974171f1a42ceb81c7e76706069c300428b273257c477fb447c001818c7198ef79f286e83359a7b95b3fc8d43e47985cd5209eee0c518a3996f3024094745f90d52e97e25e8450da248f0287caef0f3aa59f4d4b07050b9a56e2d14ebf090ecccb9baae9a7fe37e4d7648f93b4fedf6fbc55e655da212d7b3bda659cce9f478ffe0cbfdf68cad45eb85eaf7b652bf77a50a9be196239fa9149f37503a4c8cc23721e7ab7e34c9d6605775b18e3fdf3b36f60320da565bb3fc2b9a3a1b9cd47fc1742ef58832bb0805d519d08f110d25518d106550f2636a1a1003627fea8068cc7b6b754f263b81c911012a421d688b22fe5310fa384b4dc3411d1e33f575de824ef9abec3d1dc6970e1764a66061aff542378a5bafa637a406db42c4be34afc63a0491bff6e06cc92b12456d3a21320c6d157424ae70ae386c0aafcf8145c5b5322ce4254dda63c6732ef2868265c3af58d123e02aabe96531af3eb3cbf5e0135c6a604abcd897536d8c6bdc679597321ad2dff14c3883eff4f008ea3bae10cf06bb84200f984bd9a277870b7a6476fd087b4e8fea2522bc9c143f32940bf02a2d45e0595a2ea8d5a6743270270e0702dc6b8c1114a79bbe12c564fd024e962341eb716973360280ed4a4c544a20deceeba37d0ae0d300aa60cb3bd1c09e93aa6d25a5c18661fb3e34480bda3c4aec00e50d3e3ee39fbac6a3623edd3de4628439c4f02b67233b86f0300f854f70d3a7c8d924475d0746e9a1cf2ca35aceb4110f5821105f6330c25cec5e421909da2e761eaee650aa7a18092313278630ad53cc693d5d46a277b8555de73666edf4c037d1e64105b0db877fd72edbbfc72faa277d07bbed61c35e397c5a64f2d34c5ea80e701e724a928348e5d3b2be6523e140fa87081ae0be1dfd33d770317e8abfb81893305347de11f2aa56fd2d31ccbee116d28afac16bc8cc981adcf77d09bdfdc07810428fe7b2516890af425594491666bbb856e01cea9a9886c49e2101aa760ff5755b5bd02eb2904cfcea6393af4bbe2e2f55d4b3e21fea3a933587993ad5d7c216390bc4ab691807aafb8a6d5a6f1df58c0a38bd62be6a64e33f51332e1f61e44b8ca8d37826afbb89c0219ccbe757c949e92c8170e0af2219a5902f26e025ea8a6a028e1006c2c79d82ca94ca48111e14e818e11aa4ad4db71b7701290fbbc9c1b97711cd1ee97179ab0d1574cb622f6017a038c83d66dc2a3dc9647026df1890b39e7f441859e22d83f29fca335ed0fd4f145fdce4663debb4645e216e859d7c507ea38d568b57b9e67ec3cb53506e654c04b475247121d12e9d8560817a79eb824a256f861184359b30ff6585f05f2df5a1e83faa93a91cffe56bb9bfec68be8d6162ea28ff0ce9097c4d7e672063537c56878353bf15f8dc0e4bb3b9d8dc442ed81a25f50ef16b0ec8bc5051e9e28ccd219413f02d24682e642cf2e190c1451022669c3e6de6ebacfc030cd7ceacd4587bd4ce39287fdd91767f888cb3ee5ccff22a36b3e7d967ea73335be7a416c16ae00952d1d5b08eb76dfa8cc5c0318ec77cb3f2b969dc9849cb9edec8d13199cc4cd0d51d9763f2129844ab75d4799d3ca17c66bc27682ee140f30f418ad8546d02701713ec2bfb92302146e4c27a90adc033f5f99fc84d79fd22f4e4f2892cc2c4629ecb5c4ae0e810bb027fe5b023d9a572da07661d7723a9f0b37dbc5cd9db453a6aa6a998e0df11713b6f4cb62c8de4b3b0a0f95ca952b2cd4359351a0adffd7f57e56f4418717cf10035f2e32977f9f07dbad2da050b810c4b04b6f53a7e88a9a5cfb6ef409a8c338d9a13da838036abe66dcdbaa03d45427adf9020349434d70087b97c6b2d4ad03d9e076f9377b713deeb0e5a1855b4acd7f7993915a21678f77d8c4255d8575d82da1f070df6614f564501820c3d1a06e928ac3dccbfb520cfcf8c621779f6a2641494e668f4b5bae745bf7caee8fd8d888a6592dc4cb7f17ee9fbf5c18cba056727f646c2a7295b04742638c4f97037aa731ecf7cad3f5bacdeb53ff4ba77fbf8abde52e05228549132bef0d7682fd9db0db9689710c12657f6d0c0fa18c3bde13b041a3ec21427729efa5a9081e09c585b491cde2e7fc10ceea34a9fbdfdd729d7563f423fe714a12c5bc2fe9e9c2adde5222971e812a3a057cd0ccc481091157b27848f0dd8d5465915102ddebe7de28c8fa52ad588b70fd4081ebf4b19bce30a24980a8018782d186e8ba8a3a3b49d4296dd0f173ef91ef6637023401acbf3e7c2efed6595360ffbc475430b6c1cb6316eea857359ee468fd958cc77e4eb8caa2201345f1fe435ba045313c14b339094206e4bab76d1963a27f10e9d173527ad6105d9798cd44ec1ca5d512f543d54be05f3604807a7e6619a8ac7b98633f6cc114d9ab62501e43652dfe290b7be58ae2ce98d2f6f0e2e4df58451945946f5382f223134d995d801e6336c796b528576daa1cd1346493f5c930f644f4dd985fdc35351d80880596cce199459fff61f05b2bc8f679d16fafe0ee5cbf3d42d4ba8154c86c7b2a2782d5058b8bd38e31398383c4e86a6e84ea04881129257af2de3a0898fc6549b7826e89dcc393800b2c4fa9d560a6d8a86cb8d4f75e2e76c9590f360370006597c1107dc4bee5a100476f5337bb3678545a2f0463e9ab0eb7fd64441130a8082807ac4ce925933afba4271c1233c0192ece35c8de705d8988798c45dc2a9881dba8271d28cc529f2ba97426198e5b8f9473b2d8b8c9bb81979d961d67a3f32781c210131eab5a300576d61155dc08ade9ac9d3241d6ac0141a0d1225cc0e781d7e1f5ddad319e1490c72f72d2b22bfc126d3669441c7f001a382cae3ce657bdf6696456eb6b25342858420f93ae56e0de1b91ad312455a368803ab74bb8a361643f39098ca131ee433816d7e7977ffc2a0022a8ae396fd2f682747641aed2e20f1085528346d7a24fbbd095030988cf2892ffebe35fedc49f31b60ab23a2328643a256948d7114076c13f49387211a8f8995ddacacaa052f6b99db429f9f9e978897f3b6b1b02e8c5840960cc839bc281f5d5da0f6aa54b718efe263a55d7dbea760ca4af79006f1ec9eb77f698c12417e1b194ce85bc69ee7d38b7721f667a76ee03bd185f0b31fa579a99b07b099480650b35caf488384ab8d089acff638c34f5c76a0846c2ebfb9da90ceecedace747ed4de3948e480b24cca5dd67d29dd9baa6f50fa2a7c61b581f04afe4858e71ded28b6e3700c259bd2b45adcab7ec021e12d7c5bb66eeeaa5b085973a1f396356007a1e7529d2f9eaf8ace9c910bde6ccfead82c07af95f0a6a87ae826ce134b0211644ae1b8e027bc1ff33f02b5ef4fc381009ea981659b26a9f9a764f724ebe6ae386417ac75f7bb3109072f1bec5468d3e70db496e43edd3724956a3bdbfabfcf75eade312e04aa33b7d4202c471b0a45af2d8a8d2c4b72586e17f0a85f6faa9368ee71f190601cc8ee021254dcbc2a107e7ff338c3c6497cafc38d48be0235b3a19a22db69313f809c3004da864f465ab9da3164d107083df159163c76b1ef85329666e114df85218e6fc8cf33c893d6c56e2108a36574a259277f19ae708912ef6bdb9a4e1aeec5c04f6fd240d5260a8c0ae648a232ec90991ae314b783678419a501ed30853b937d18d26f75af66c249a405f22d3425a8d9d95a590840da2900a4d3c97dde78d625d1edb2890ba23717e8735524649b58368107a9a332aa038be9d54fbd3e9e2390ca033112e4510e1fd65e9722533134fe365726dd3d8059e2e0f4334cd6e5f7c39d0722bd2f76079c366262e527311b88dd4032239a25f18dd26f9d55d317a430fdf1dc60ec9dd5cfc7869bfc46d3d5e38dc8363ebb3008c35af8e06fd4559bf59239a582f97985fd4a86887e7d528c4ddbf9489e893d6c6d038f88e6aefaaeff58b1012c96296b75112e9d4c1722b0bf06a11f106afd7619dee194933333f6cabaa475a0065309d374a2c570883afe5c5764cb1d624bf06455d571c9f098bde27468be4911b69631d6547ffe216f03d0140c36dcb83a84759c195d3703206ae5ea0ccaa807752b017971ca42cfb32c8ae248d5f1d89520e465caf6c00c1ff0122b9ca8a52e8a25de9944224b59db3621ace8cec64d3f4d36c47f1c2d6eae64f3937aa1821094b7d7ecf06e432cf82d78849baec5b2a5c0efe66e6d5774d34b8558e8ade65c58b89ab38367c554ca1ee5dc957dc3566ef3f39ab25a44ac4065d24b3a02c08a04f3caf8cbd229511b1a1ac13e776cf563bd04cb2e56107c8a9bc85836cdcaed87a59cc61f7db439d648ef95f0db6bf2dcc42c6a02a0f015f5f1e3dbcca632720c764d8000724618977c90be154c599d782942ac23e83fddedc28f62481aa99b37deee7a854fd1e045c767cd81719805c3a7c566dae6a0f7193b88db6e297a9905cda5d742ad7783e34fd461416d31fa41cfd6368f3a398cf1710ff8dd111a34eac2db61c36c1c02880e3815438218806ba655c33ee89e0eb6a4bcce79a73819f068e143b0a024fe0c1db2b4f967db9bb430620909d8d5c025e04d044891dee9dd82096a5f23fb01c8e08f68c8ac1a422ab6df0e88112cde90bc9a34ae1c66a740f34c742dccd2220cc8a2555053c373014f71aadb8e1fa5582bb61be473cbb473cb70839b9eafb2b58b66f397e7b0029f547eb1f821ccdabe58f86c40987ca9859ed0cb657136f5de37e57f10755a9594ebc55752b7b65b255c839482e917a6a64f91e2ca6613dec38b37d8ea3597ad846abbdbf69ade2da425d7be529c6d36baa74f1046cd4b5ad05cce5ff31aa68851233a84e4c2f444858a9873b9ab06e79576d0d60eaa7e5833165c16646a832c3bf741b1c4ddfc99213ed7f13ac05bf25e58c9093c342cd16b8b0b4af52bd348c663665fe2137b84197b7c14f3b789ff54eb994cc64dd6dbbb4ddff67df2f8c41696d52e8ff5ffd9f79712ea3f2e88f7de5ab612c28c2d1046c3c862f9ea6fc2942110d452de3fecc5166e2793cf1a9f3790bce1b1c892b917beee8652537fde1f4e36c3c0a99fa8dfeee55115f6a12a38d9c78372a38cf5e83aa03703686bc684704ae77bd2d1840418a0a5ea649ba5926b786cfea82ce18c1d5d9b4b73043c96eb86f02aa505295ae520f7d0dfa4a21eec9294ea605ec9f742d04fae6f34376e7d6ae132837540fe8083902542587a178e66e160beaf51df97845b3e43d14fd20d3dc5ab49ce66c6e09ed2aea33809b2a11bc9f9aa843ee5a323bd00b69f394b24994802556b5960fdc4d6f01f50377afce1c21ce4df1f37744f8c8bd5554e1692b020eb4ceecd0831e87a9b7f676547c4833102aaa3a7d52d420e8a0ef999e4278f2d9ffcd6f2e8d45e7580c689c8db3e1bece1b9d83c697abe966ab2ae4654cac621cc4e719e98c8c94ad7f505983ff6832d5de482829602a2297f94792ea53d4d524b9848807e3841cab80d1b35fd18f9782e55e820a257328d2b2560fd6173988c19e034d684e587877a2cbcd5ba7b9f34c05b08ffd473e40a5ae9e49a1ad9d5bf5f0fbb2b7bc834cbfe01ecea6dafb87b2e997a71fd86cec0aaf68b32b501241bf33f2773bd8da8606962ad7dfcbb9a3356a8ddf70ddfca90502a47b2be780775156e8231b3aad8aec6fccca82a500d4ff6d5d2b5c559944232a0801d22c7507d56a820523cbe697ccdd99642c9a248eae3e3ccf2db9babb050c0d2d409f34342d34999970e6a257031fe9b75eaeb44afa2639d8f715f080f18d20784b958dffe8f4aefa7ecd4451eaa031a8df72d1a08be488e8cab20d389f2fa8510aebe311a35a4a7aaa6841de771b7d9f00424b1f8e7ed7f78c9d10b1d5d17002208c59f4329cf5e984ed00254dd4ad2a62a3ca45191ae697aeb1f947a393a7a9d0c63035cee6b935ff6deb828b73686d1418c1b06587a993af03ba7c0db67d7beff49007563685b0e6b24be763ae705be44f55b04b0a9eaa0f6ba882e79a9c7b2bd17661842e728f37cee9220578dbd6f7f6559493526568769a7ac209ceacfa1305bd5d1a37496e6a2a5632ed9c556491414481f296fbff6569deef30723eea2993124d4793dda892221625b5d3e739bfdcab1f562995797f827e9096c4ad399cd4c1cf22f20b0ec879168c2890d659782f77b57daf751883d1da735be66c81462e6a6d00c6850901a59b974e67b540575638eb3fb7f12419b4b7f836f14254fd0e361994b6d2c2ed7188fb71141cadd166d44b42778b6e8f360d88a308b2bf34fa205952606032bb5d364ef8f209b81183b1311404914e7b5c4f46392c124bcbeabee0541c23c3314b468eca03b5c6c53d897cfcd914d1a12d2b73234df344d5a6d13ed47df64eb2f66e29e438d748935f839942d68c0860a070506a5de25e23dd1a536e6437d37f73bc95a91fb2f72a9974e39f99a1eee81737f7eb012baa09e754c2fdd2a3242f28344c0ffa0bd02cffb2a2d7de2241da802a388a349ad6af13a3386d58e49d06e01ac67e36c41f75f6993de63b2866e3b4a87b85b5b33394b90afd69b728b68329814e1e6c2c886448619a957c4325b1c03db105cc598c408ac477fa1f67d9a2117055c3e0beef71b4d9a84c6fe8e5fd20c78dda23ced1cb74747a375c5361d6c4a97451dbc4cd9860cf6ab62ff6ec6f523871a67c3339863b478412d65efaeb543cd6ea925401e18c78aa0fa221af48f51db12e6bc755d6695724dd92dba63e2792003856dc5b50e5c07552bc59845854e559d0600f2d6bf87843d1afeb59d1273a242cd046c69f53bd55fabcaa07f3e66d677b3597ffd25fbe7ae63615765fbf0631764aab950fc7472914d7aca7f58b45e0bde1fdf38bd69efa0b963e61ce5fa6848156c30ee1a145e4a2cbdf91be8805fcb92218b20351e7fbadc4d935917cc3e7c00084377b6fedeecc4b0f7de1250b5d0f0cb4254d82c58ca58ba783f768eceaf69d6eb4671f26db3495f4f6d3832f21e97c7386008d1854883086ad85bc1c47f6cfe56a333a0da837bbb4f57d28745cf5b697b107d8b13022b2856ac2940ae6328e68a30410baf6e43e87fb6cddb65b42346d97375fabc4259e179fc02c4784d4bea21ce46d83032853175b86bf37b29e14c037c335a7df350a11ebcbe45fa74413128c3a3b868eef47b31e5edb8dbf9a4a607129e71645b645647ee4f009c027f676cdd579817fd45c5a596fc44470be3df01393846a16893c876eba3685ed8a159f36995fe586682d5db0ceae85ae7e727643933bf31adac0af39cb08eee968a17022644f2ad20485b8b4e23af4221be15e272fa36a7ed5cb21a6a265f4640a534586ce7c30d2f1b1e256008d89b986779aa82aeb52e63d935a145ee5e78b2ed6be6f3f7ab8c3d24f27b1b63701111a81fe7336df635094a57b214c7feb248c79e3482d856df7569d58c0edb2efcf772837894baf51d1c929bc058fd385c1045f993cd6dfcfc2973f6090908878e4f9541c6a6655b0bf608624edda39ea15ab58a86cf5e17c40b873a4e1f16f2fdff5229102031a98b25e2146ebe13472e553679056f6c4dbe32f1b4a802dc6c7ed869b09bfac36b826fc925083b52e53340e3b99c9546bab1f92164248fd1f4eded33e26ca00a4be98a43a0de275b29f3506cfb40fa587b5c0d4ad933290d8cb1ddc2171fae12c71f8e303f9184b20a1acd44e6ed30bcda7288c43727572d03db547fecd5daac062eb7ca3181c6d3ee97af3dd25b19bd877cc91e1f69caeed003d7d171ca2c175e74734c9754802a086deb13ca02e7234111406f16aca500066fec37e9b0e5183c57c54bf9a0a0426ae1e8c4a8dc042ae0ef4b3e6e3107126f31b5a00a6a0095a76d0f660136c4318c192b9eaa4f01778eb3d764a83412f125bf367ccdfe47c6119636a2642f3355d0229770f3dc62578d9a2a92bb488d5f235c49d272591bed06b192c5f1ce3d1ced31a72e4d9246cad225084deb17d30d51c481c8861bdb0b517370fcb8f211193eae6487eb0baea9f4f796521cdedd8584f5f3d63b6a8e4e04acc88bf766e9d5df93c3475c2d650b2f105039c842c2fa523c700816ff4e4f3e82ed4d6054bb1255c07e325a1a0024d0d2ea2cc6f159cffe006c9e8ef4ae3c648fd42bc64473217ad8a0f66a0e4bdf8917793aba1f9fe3192fd0c8a77b608097c126f3670c93b822bd161f6e7170582de87803c9e14f61faddb4110035feae3345f45ac800859d21bd146d9893f633b29cc2eff7054c6bef9e27f8157d4e08164381f272181f85656c66e7ae47b9de5a6bcb438e92ed25941946ba881b3e64a0fe5de2300611d212686d0650eb33555f9e1033ee68e460c499474582b2c10dd41169e56787c68b4a64bd1db1077a99aa54b941e72854cf593e6c7ec31a815d7fe201c59d16d55beaee6ba707eb5fcc8eb9c7a1f1e9963b9f3ca4267301288f08476a055ceb7fc0902ef8507ff34066b64b294d0e7cc407eed7024a4ae9fdb4612eae016a6f05dd7e333086cd52b0313812a70b20bc8c12db01e5e8d99a9548d4847cf092a678caa5486716ebba5be226f821644538b49128ea38933790cf5261c6523d481084cab79461ea88005708cc4edacbd5d78b7bda620768c14b889187ff5398ec11f406b0c685686e342e1f1bbc3c99cf28670bf241b2ea43a46d5001fb9583952f094e0e5b74a762f1c8da768e597f290784af8d11c7a24203875a1bb27860c2e37378a8e9567dbeeb0357ddc74ca6ffd688b2cc28c158197fa723066f402941b84555a81cbb3731285b7b4ca07de4aa8cfdc11ba8ce0d2486dedfbb74912010604b424586d2330e50cca1277823c000b6fcd9ceb1dacf7f649e6188c66cc84df9c4f47f8bf0e0d64b13a61b50ca693acc270082cc36b575f66e0cb2b96b4194ee4f0c13589a506b941cc08dc26a4d4213afa5ac4a82523ffd6ebc60d8b41c84c5b27481beb108a0e36e321f61aaef502408678c1fb6e5195d6c3634438f7f6bc5eddf5119e65720d840f812eb015b42bf64de43aaafc949c7a98c6df016e448d52bae319455f4670a92d5da3e55e99e9f98cf00ca93b65fb053547fdb9cad09b306565cd99707e3275663cf321746570091f87ebc92f6dfdd0b7108066e7e296b773cad930bf4ff08b76522a8307ee7e06635c82cedbdad2bb1b9bed2b312e4c9a26d0019785aa233806f1ea86ccf7e9ca099cbdfa12fe7186d928de2a2f8c17a6f397d060d1e506d580d6319d0afca883264b1579df161490170aad4a73e9a10d1c52cd1f7c364b7aa523466e055f2520aac281c83e95094a14cd94e6ce1b9baca920c03508c0e1683af46f9c2ef11f27b37e5079991b9b338e31a496b637db0760942e314d63dea6ec75c3f9ef5f86a3f3c5ea0c7be507ccf3962186c3813e6b05701e6830e45b9224777ef4e0b8328f2118f7b6f755520295e9638321773a39729037afd1798b6ea5fb1ad5dda517f41b847822cdf3d7a4538172c31b28ef1d5f88b4d6e5657bde06c12df03a402a05be34896eaa1423de38275b7cab41c0a124c1926659a2145e5475aede3bbe57b7bb4de09e8a0c7bdf1e91c304fc53e025753fe7760d885016dc3f8073d416c7811f6bf38aaf3db339116dfc6fcc4bfd7264fc99792cb1678a7e95c37f9932b74d7f63165bc55a30d593266b1e68623c001968cb69b579b175615844cee6c41132e4cbceb6a862f6434598f52b74c5af2adc1588b39f8d5b46cf53461d4cbbe3912da4d6fe969d81b6eaee38d2e366df77c96586b62f3c3b0a4071aa6fd22ba607c41dfa0d772b12193c93d2f8afc1a11b3f1451e7f4293d05115486da6092c2eaee67843cf84fb039745659f004fa5cebb711dcbc454f668cace45c11d20d7f9795dace53912407e20d2e355c62782e68d7c536b9f4f24b672bf331a35df27904ca1a25854b8bcfe57c8660c68bceebe1cd4795552d40b1cd36903aab59481a5f1ca5c11af8aff331298e95b51e7f228d74a75f816cf2592860a9aaa9193ac71a6864699fabfb7c7f1104b354704eeaea23eee7e16377f9fc20ad54a10f68a517a691f6779509087d1c375ce0ff1e4209d613bc3869db304538df17a600d11fac65270a41d4510e3dbec433b68b26ba0376d780049c1cd7fcb4b20da9480b81286994d2978b968b11d3c18d89225d6121ee52c1b1fb7b9cec3d318bfa79dc3f8cb6fb3b25a963f261b222bca0335b1171393a5b0fd9afb9d72f41f9b6786e18d5faafeb9f7113f93df55cfb4cf2047a1211b9220b55d320b9cd1eb8d009f1aea315b2f2c51d7f6e65d437ce79541b945c459fe3aa6c23e35c5f81209467d4fce0e70be3c88db22c56b84967db1d36dd8fb62ef38fba585a589b726aeeefdefbec76e60731523bd7c28f098e9f854e2425d0ec949a2488318f5db5ae14ca68ec1b0f5a044b6aad118f98136f6466ef6e7a39554f86b77462b4c1cd588f35c3f34d7774ff6b8194b19a59145f21ce9edb732ed467154fc84012e9b99a3f252d5a06c3c151a854d0ac90c5a79f7ec9f816d4eecd8cc869a860c4e5baa6b838adfa725590f737632d9f7c9d7f2d09efc401c2ef52f04fb0b36fb8bb941ee61bc056d0172337307fc23fcee0af606ff24ed60654b0c715093c53c1684bee3cbab047c73595b279d34ff3c4390e80baea839328d60c79f2ada62a41e216943e2b2a6b232fbfcc7d91b931155c22eddc9fc79d36baf3652fd59adbc179af100dd47de071733a31bb8ebc0962157f64284e9e02af83ccf90716542885eee1a71ab70510609f3a503433137decebedb502dbcdcd5a688a98beae1d72ae0fa7b98c590cc3a877e5258facd6474b5918f66b7e3222682afc12fc8e573d163ec7db93393801dd80c199f9b2322c2a57b054e42a24e42dfc4985d36b4fa1909a723cbdc438bc2fb561263b6059bc6456647c4fb80352e4b1df7f3eeae961c1e186923ef2e5c072804667cbc5e9d95f748a05efb50210b6f707045b77fa6dd24d82e69e5fe153a54422b48c25037ed3bd8a18c0c69eb68bd6333a3c453c118583a6c074256a469134d5054c89ac0b73053010d05a459d20bcf7428bd40b5d12d7b7bd8c471a70627f504fd50bcf460958dbae4b164dd99fe8d565f264b29bfd63f1e7c3018453e30f50da60ae8b31de9f3171d7d86a5bdb492026d69270df39cbad61887ef1faf8f05ce49c461cda8b9e1a5c6de5438fb034be5ccc5423357252a24e29fcc4d19a5a2f5b16dd301ef69d2dddf894ffe48281d125267143ef5a80fedfb465915c6bc9dc2de277e0ab5c24ec7f3b8852ddba99945f9c7d83a35d9d01e15220fbee5323c040c052176302df43259ab1555fabf7f5f6233a4cfdbb33a1ace675a697d290c27812f35a8a72d96f3d0ae73d0419d38dfff27a52106ee90ffed2a82fe59e6597b42944ccd8cb13bcd50ed5ff87f1af70dd927c0360be5fa87ddfb398a19aacb56a66db0b008ad78e19de6bbe5a2b2087ce6a5b19b73ea8012e913cfb381dc2fb90150fee59b45d33d076aa39611f7fc6ecdfd4cf1c5ebc2a561a1e981c28ef53d55579388c55b9ab1d5cbf38bb30289bc71b63aa62c33f240d4b602b30477db45e417c5573c91d5a2082f0687f06f67913d6f0ec2d7210228a36c8f695d441dad7d58dfebfdfeda045a46c0dfb8de6b283de0c9939950daaf5c9084a7368393d3d985d0df217e83f419eb9a4a131876092b57254dbab578b69a92218b1a46454642b780b3ac35e0a4b7d31041a242780f64aa09aa1a071a900cb2c6c2a6dc69b1af2f6bd08646f3f8c0e0dc9225cf9d0e31b00174ff43a3027543e243d139fea0522175f3d3c602ac2ff8e49d8d70e9cdf8af6795464d6f83878b755c193da05fa9701c495512b1025fe680edaf803824afa2d3065a1129218edd4416c942050d53d8c2c976da9d53c17e0b6ad3678037e3afec5ad576d547fb896a4b220db6442f7b4288ad98bac51fac882e4db66b52a28c23660827fda7a0197f6330b98f7cff27a490ef06cad8e309d18b57c2d50733141e849f36c57a3f292559c3d70e5fdaed1dc02a3b3aea7d01d8602afd29fd84c370ace48d245846f68579000b75abe32a158ec5e8a22cf929bc8fd306cbb892d575777b2a43ca10f93b5ba71f1c5f097ab0718bc864076e0320ede33c5e9253be8e3f6ca83fc00660ec681f3da13a664ec06aa0f6c1d4ab790ae6c25a6c8954e7c85f6827abc26bd656148069d6297d94ae1663d29f63792a15745f1b9735c65df8e25f1d57b11a8b37e3f495b6c7c6ead95f15832f46fe85cd7ecddf93fd5ca560dcb574e17839fae5b1668ddad3900ec5fa06064330ee383f181954bd577251b4be8820e17d688d761ef5cd72060c1e6b95193f980f05b923a5f82952450d67d7a7bb1b66a151aaccaf2a9e1819a23da79e7b4a4db5bd52b3f0ea3c46ea05db9aaf6d828f30c226cfbc677e1b0ec28de63506fa4e9de3d2b139995b9af024600d2ba935f87d6ac8d279af37cd75174c11926e64f00320762b8912a50384cae0009fbc2c63c8553dfadb3e7f94017b98de215de533773e52713837836151624413fe2d2816b7b3ebe1f9c2b0c061446a5053ae6e8eaf4351e300a02fecdb5ec64af9b4f8c6ec59004667c22584f758980d6871b5b22e09637769124881e3b75242374f61c6a5f19a2ee3c8d6fc8aa7df1c124a42b9c15fb5f7ca87f13c762b3916e2a9e6c1d1d9bf3265802b29ef00ed052fdf0b725b590997c61a49d9d9d840c6f193bb6d060ab9497bf456a28e4e123127e1e86de5dd569f26a0b0b6a84807be0e8fd89f79f7fa18ab102c297e5efed36535c54ed28229a05b9bf00365447d1eb620c794296fb5b1a0ad184a3b3fb057f10a807d8978d912127372314cd435344d4d4ab53a58ea4385249d1f8730462539bd7fc4c6f26ac06b9d3d5eeefc9417b708068a17281a305b34b09d522d9fc726b2c3f8fc93d1eb2d7e0534bc5d5807764f946d361209b0c9f0a4b05a908e1059979d6b62f7f29c342bac89073e499f6e68a9f32f7788ba2021cbb6a2c5ed69dc1583648745a4b8657c1a5a403250b60501a2deadeeb8f9ee23f1a43494e0c6856cec3e3036301d05d7812450e76c800b0724dead52ebcb921192cf3b8afae4e27052c516ecec1103a1d7961146b21e8818684818c389c4fe993e280671ab1969f59ca681af9bb4d91e3885702ea4b4c72a2635e7a474dd075ff6f2232bf5f09677b0c3030a021676b99605149e4e315fa2e8f21729e28d953f90603636895334c52a035a65b9e9ba91170cceac5f9013b62d593c377fcf49bf6c93db71f47597db9027a43033de580d6b111e8ddd76370014c162e1189b54feb32873f497593b84df7580400cdc1fa55b84ac0090a50cde8086f2eb84de18e70168f2132408672624f6d0e97a83ae66c3b4817b31042537ada91027fdf08338492300a24e6b295f4585326af24f4a94b3efafcaf6fb1577bf887fa21fbf1ba41b5e614168916aa5ab630d938fc532c26c9a951e3c8ae327ca677e981ddf1cf0ac00b631d36d4792ae390953900af107bbe36ea5028e24542069be556234bc41fb820c648637e778f91d88c090b806fd8dd9ee9f7c53271997ddcd5f85221f3f8ff9983e324a1240275ddfd61882ecae9a00aa6b0bac1752b012a0b2a23ce64f667b77de075a5954ad8f2ad9d6f5298a37f53eef9f8e8a25c08e55885d10ec5479bd9518296bab16ec498dddff40dde803ef35a4b1f51f2b787cc60b0d0f7f35c6d3e43070841557eb0e24dc65ed1b1b849840b3c0a7522275e1da2543abed282b2e8820e903c939bd234fe3dca1049e723532eb981add1a105a0d5c3b998b8b0bbfdd5c7453e040f287d03fee3df328572b568c0cf41dc9e3dd5a0db2c64fa2d05506f2968f9839343ef3bc044fb99d386f9ac2dea11e4dc207c24777881426ebf6d842fee3651b0cd8f6bf4d07aa99f99ee76e06b0fc7003024b96c777236a1e4e44eab82b3b4d1bba22ac7ba1249ca9ef752da17e6cfaa486b84e452c48d10ea7b7cbd584a6e38432412f67f9bd1171521bc60fec080878ae3b3412a1c408cb2f6fd1cae4c21aa7cf93abd80c7330cf49d21ee64b41c67c8538985aceecd760c94e9a3876dbf46ddbaa4336620353a8fac18805e208862ee2bf763ef1ebca6f813ea48db4b85694642544edf341d9ea3b7552dfefe46805fbc04c33e6622351473071455c871d0236d4904327e35cd7dd9477afa12e06b65667d38a97e212d352e363705bea1e2fa3c2425db14a7247352454f4c8d2174007d228499d394d3bd68ca70ee12d9c443b37cafacc4ee261054ee80c50add7bdaccdd29fbe0c7d70229b396bb2afd1a035ed39c332f80c94d0f576fb45dc23b856d10c41f1bc5790bd38112af889d33bef51832238ce589b189efa1b67440c852cb310569c26595a3b7b0b073198ad1b02a983e1dbdaba54a1834f13084fcc55333a682a975b829f21e375cbc127c9604e7893080a5249c3d7f344ad592d28808d97e71f4971158e2527a07dc63f3e7decf24e155e54fc477127dea43bd4be80409e9e91b5de75c7c683189c85e5ec4adf0c9d510e9c67e60f769cc49ae2bbf7d81a754940d74be291f337029a01e529ba1b6fe3dc1f9bc98388f8d04752f0f6e50a39b1eadc1de4239cbfef3eed767fe6d74480093a04204059dfc79112340de4c64b9e02f00772693a69fc0dcad20bcac604ac70dac411ea5797be317b03e13bb57408a2a7d8a6ce8882f72dfecb7d1acbfda90ddf92e8c4e982363c3237c3f28ae7c53c8eb5d677bafaad3911ff474a09b3aae82d0242bbf1e0d9c8513475a1b21aea7bd7d5f5e384171aa79bde9ceadd73c224b8ac3e1f93b2620dcd51743698b16b843598bde2dec925406a3372f20a82bbf72ab846720e718eb0bf78a7aaba6be1e90663621d351d9809f5c3aaba88c133514058885ec19a2de2deb943950e477ff7b1f50af02f971eedc3d77c28d48db2fb8cacf23628124bc008eb40d3c2bea03dc951de82990548930cb9915e2fe5fb94db06d23f586efbd10e006494c1c4d2c79d8965c03661ea20462991418cc94d53b208008d749e756f41c8564d030fa30c6fc73525606db5930b9bbf10a9550f377ff2f6a873bc19a5b082010d214e2a5d8483ca4808d8f90d24515c2e068a0c26cd67a5fbaf8a55ed6c2fa373962570de9c1a10bbc3de5ca707b51d4f21af0cea12cb53518e54eb4fa150fd69e69fcfcb2c922408f10a6f88998b6307e69c236afa6c714738976f59010d58cf09fc25ef473d33c1b752c01a543ac731988e2f9ceedb8e2ce74279e889e7dd057d617e1780a12cb6714d180fe7a35450cf0384507ab30037b961f6bf05846f21e887c9d61e106242986c4fe1a06fb9a90d8094696b16d0e6064de9eb2a310a73bfc0e46186bac472c029f948bad76ff40e4cee7719bd13bf6a91e412747d530b09735e423c4da8102961b83bd441d911e55cb5cb1cc46b7fdbf87aad7a55ea4b4a3928462e172a1e8b48d8be1824980caa7f139b4727803a2ed77531de45ff29bd74a5438cb4a0c6a5c0e59b3d648a1d1b0086d67149b85b46908ec32f0cc8f1db4af5c8b8d5d07c0ba4c823dfb9e6be52881920cdc8ac3dcfe78e1d8e76a0b6358f16c6486d70ae65f84a488c70330cfd5c2ad952f223e3240d6b761286591032ad14f760ea2117953fe0b9d15b828fa533f7274a85eee13967d469d87b84f9d8f97f9bd13e408fde9096a5ec8297af67c6783098c0f13cc28889ab6e962886b64075baaf0ee2b3a0410fd9a47912e75ae06ec93aca06d95dbe3e2ec6f8b5b1f915eeda99890806c47f2f9de5e54f88e2640561c2940f8f289067ab5009ff8a19a4f5a4b3ee9d8904ed773321dc7e0515a90d3bf7b957beaffb83ab26bef5ccadbe2e641b5ee224fedae0003e47b4471844a0e9657b94440d3c295506d732419c7ebce67db89a334f88d4fdaacdac5411e613d9f86ec1535a6994c64a2618831817bd673a087ed4342aecee6a31dfb186a747d28c1cb98ea541bcadfbd46249d9807c60c9675615e6217c6ce21585d65db739f6407afb4abb4d342f79a38b57e829720cd27041f55b9886d44bea750b82c781ff36ff11f8c5272637a7d13efb5d7e68abe10fef40b4fb9f81ef90e51a5d88b0d471cb26f7c7faf8b33c1edb750486e6063a8e71e34ace7fb3df4b17b385a23210d6463c94ebd57b767c20bb6cfcce425396df2ca894fb3e086fe5917999b8a282f2f89ef0da0f011b70ac75a45da99223abc332f9b4d0b66d4d03d82626f4819f6fcc373abde640e3ba856d403aaec615940f727d42d016e852f1fc045ad9b785fe623feee5ac8a7a54b16e5883e653e3d858ab818e394dc738791ddfce6046199c53b5014c299a5fbc93d258356af0de909fd0cba3b6946050076417b4fcf9397b38aaa31000ec874179b97254a3c746c79022f4f5203ac8c535a8f8968142f86fcc1bc41e386e4da11eafdb0f4e8e9225974b49852d82c4b1d9fb10c2ba6aefeadbbb0d6bd01f5087db5e88b97a72fcb813b8a8b1dfafe18f591b6ede88a410580bb6d707eda017c4d986b43c885e0216c76e82aa54bf9ca90a912da4785a488311b0f0d51ea2d4cfed263259c86ddf0063dd9b4f65f0921913216560cc1e30da463b725472073e6a94ca81a061c2b3e2eb1ad45f641f890f0300aeedf9829a9f08586347ea2be24d5d851b5490ac4c0c672817b501752bdee98d4ac60a4d6188f54816f9d3a8b1373f541b0802fb4462b51132bc95183dbc5c7b94a8c951f09f0572278c4c3147b48d188ee7bb3039158163984bf9b1d66a32788fe638154319bfeb4c3c5bab8c020828d875f47ed3279cf628bcc9e2aacaf43cdae45062675e9cc94952b5a69b2709714decc19544837e3ebc76817e95fa3939faca9ccd2f718c818d7c9b5b4b147d62699a5b5941d9e820dece5701dc70e09b428a5771fccef6de02d348dfeeb978bc5486b92dfb390eb8dae3c491d1a18a949cb9b2714d37ad4a5b8375f805781a109ef94b549e1cdcea6adc075db1debcff66cbb3978d4f222dfd6dad02162ca1357b9fd8ea00481d96190804ad9e3e16d54039116621bd53be1290442229143bc57ed94832d5991cfe6eaf8b08df3a9104338ce4e4049a10afcff5615125ec952072ddb14cf29c81b58c45117919d9b69da274d686411b1dc869fde3482d2020554c1121d2f6a49c2c241bbbdf889ff091e8e616a2105e8ceaa64a8f171657eb04568b4ea372566c6f4af747cfbeef4c745619b2068d38b65ae18545379486369662f1b1de56b4903fbe8a51e36ca10bbad44d70ec9b3d45a8f1ab55635ca482a5a5c64ff212ec1351a66e1e7c82d223a13527d6ff0159eed41730dcf9012d7c703fa781afeb996ee6038245a5696b3e328971e979cbdeb817babe148259b597ee2de750945c2ea0dcdcb7e65b48cc0efe5d8d0e4c02960ef3093ce43e563eb1e7f68fd3ee1fdd48da959ea4b2fd5c16fc41d130145756bb1136061926a1ff12a2f4ac4fc6b5292b24f6d4efa0ebf4f1420c7a15a9d31b252e9d967828c5c2ccc1a32fae94a0d4b614a2e150cb39fdda7f6f5b4a0614f0ba9e6338f0fc8cbcca5c942e6e558c52b3194fa0e245ab88196beeb2399ef85437c0f9dc33bb48778b5d344172e2a291c2db8d5863c18a3111c1ac96622db2459690b2d5069e8ba403fb02ce65b3d428cf25844bf6d2c9ce76b1394da1f7a809fd9f769822115ed151d970e4c90ffe3202b2a10ae6f4b0475aaaf377637e73066b2d994a6976f8fc62ecc8cc23a06255a319455d93a9007e1639773900a1c9a1e6df3df52789176f3e2e8c39efa4bb09d2fa703002305ed64eb136cbfb57fc6f034ba72ba79a958d01551ab843a6a8596da30e98370134a937b30bdf91fe192afa83d6fee7cc9b32548e07880e2e3624d264235782d7549ba83ffb7729de2feeaf34bb472a9e2edef42e9f821225404d695820b3bb677ebf2741c03206743a6868a58e1feadb5e51120e78dcc854ebe32b5a6aa64b116d917e6655df92a5fe2d16bf15b14a6b6ae4a4530e98f699b825c118e411046faef64e2d8cbadce1740987ef1d1e5189b75f3519fec9aca307acf16f3ce038d75618922e481ed879c42405e69e30ee37035e1a18f791925dd95ce11cc0c2e394782be959fdd898bed2f44999143c2355e96e4a03c7c322e656110aa08ef245bffbb548608207a49c272148d58a50acb3a2fac76e5cd386786f11d036514f63fa43d7e78d75f7912a23f415915ba5ebb2fc55327b3b07e067ea28a11a3ab9866a1ac80b86b8f4c34965bd4cbc24974e9b4958e680e2b9b9e2d2fef11e4cef1c37180c0df9718c104666bab3b83dd6ff1bd07f27c650d6fa8d782341a6ebea131c5d91cc2be410e94772d47ae2f10b85638bb0d25178b49e1879bf8c5358beb2be572aa1d624f6868a1de3579b3c952051cca4750b2a36fde7b544530366a2ba613ba5562fee7ebcdfe7b82ccf4c8fa789da8167c0886e5e5d554fb6e87da9ac30d085ab74762b28af9b3bef1e97f4b605e2139efa7187407494592d36c41274319811331eb22c8c6362383bc2bf4ece8b8597024612b9db09861c872a97584b471d26e0724ec258c970232569db9f6616083e8eb45affc1760ee2c02f3de7d690c2310c0d7cd292fe10048e83bec13441ec48c779776010fcdc2a18b835a8685268c032da43127aa5a2113585da9a2facd23a9964bb8197e7c59a08f9b151b23f670b36f4b21a66201769f3a2c3e429371c6bc7ab2827e19194b0deba1958432d6ff8f2ca3600e8d1d2adef9c1c7991dcc25b20ab6cbc8762d7d3f65e1ee8205757a0d43e2d3745dded8a50571e3bcba87b2693f6750ad7305465953709413fd43da4079cd39363d848309aee48a7104666c995b37aaeb577fb77301bb987bf933ab9add83b06114212d520c14b63d1ce826afa07fcd5eff371fe0a2123fbb07c617b4f9d3e6baab0bccee93898ec859d654506c4164e2f3a0739e728e0ea94bc23b8ded67fe2af19b1bb0e8e7bd99be2328b9c0dbdafa3fa27d32659c87e89728dc81570932e070d8135fbb8ddad6016bdafd23974b7a674caa94257ecb2833ddde94abe12cb24ef1dcd5e74ea0c8c80824e0e2e4a9299e68435c346223b0c031cba9aceb4635673bf16511498a0904d080afdddcf7c8b79d8e372289dd7e32eaf9d76c08993e81683e100800957fb37b63b5cf4ea6b960ef5aca40a4361266686ead119dcd0c1bd52eb295552cf7893c3b888e61e380884cf437f2315433f87040338ae6958ccaf053e9c2eb98e83855bd277c23d75c8839476882e44d3fdc722247d9e04cbc5087609fa1d2fdf95fbd5a84587a7130aff750f4002c5a40216fbf29b6ef147df86c339232ccf92b76496c18997e0e3c188c00d1c3676e728791b8319ff00208e10afcc29a9d1a0f4edfd40e48150b7e7100d8dfe2e352a52ac822fa8459cc096343228739f76dfc2dc882aa1a8e3ff3601ff61aa9055fe281ffd1529cd4fc8715c1b4732f8046885534d8fc1426b083e5c7e708365c8beaa44717e9ebb770d05a245615ac569a719d00d2c4ac8b8ad0a752ea6c0319fcda7916ab38716c39d30ef5709c9bfa99c2ab33b0e5df87dc24d3c3612d9d1d92760e2dd1e0813fc0b74847f754e5a17175356f46295c712e95a9810d4afacc6b2056b5939f1fcc6a851edb5a3106329634cd95d3ad3ab1029a0b7e3ed562ae08279c2d35ffd13a5781db2f31e3cc764bb194bd85cb4be2ac943f9d48e658f1edf34b103487c55ef550555e4422ed137c6cbbb242b10f812a8cae02385ee95db3db5183563751d43e3ace069364cd1dd82fa49049b2bf546cd68e2176fd77f36fdff18b39677998807c35e2da20824cf74e494553d3e36e4f8b6c1863eca193c96c5c4bcc74442bb5b7aaac8a3cc0177aff8eb173957743e767ad8ee8b0f7b364265aa0f8774a925137d4ac35cea6091f18338743c3605820d6488f31a0e39b1b4968e297b60cf7d2d76d6f5d779787835622bab065d27f9704056cc89c166e336310bd31db863b44f4679eff0b552ce40d492aa148986899a1d1cc3d99b3d52ef5d9ebd0cbd77589caf4cd30bb0d21c258f673da8ac5aa675ba5dc562ee77f60e5a05cc1fcafc402add13ccf0f8ee66c8c6865946300fa84693f97d757b54a25345f555cba02afd6b9fa3eabbb677d97edec6c89c212b78e6508ef01938d93b3ee09e3cf77e328398ab7ec7da1ca6e3a6662f504aa9723764af1184b22fbd59ed5e71318e7e64acba33caf1c51fd0c871ba7a99d3bc264bc546464af4d1f75d59215950b8ffd1798014fa95e4ae2b1f6fbbbb3807974a29c758731f7846ed312828f35f9df508cd404cfe303c3650083aafadc738d91f9a7afddcb20a7534ceb2e989007040f012d60f884628ca0f52a4c48f5c659b92428b4c29bec86417317ab56cf6c6ddfe800c4e5cfa79c417310e18033776c48c926084a95b31e8561dd6162465cb6fb3276f0aa90f03bc97f78c79c14b8b7d219be063a46431914e512578c4db157d7285f5be2ba036b192c0641b5c5c1a76d9dfb62045fdfa016e460e825080021bfdcb0ea4a025ed64c1a74955360b81bd80463f0ed9d3ed894daef7f3b48a3ac0d3cd01709628b5b9c56e746d51cf21d5123953d20c7772b85822ec5d37ecffe874ad5e22934ffa78a6823adbedf16f026f53b2b946f0e41203d4f150055bc78e7f5168f794d6a4847b8ee34bebe0754e7a7c0bbe428972bd237a6683f799b50c74f6676643a6948bf430bdfec7f27cd53a656b9ee98d32b189ffeea92351871ffcc40a91c2b2442511dfda57ac2c78b254672c860aaa983b768a73e2946c01a06a868f75744578ec0caa46f64e7c09e33a6b1f6756ec92fd3af244322e4fa953161dd23ef9c574bc11cd1478809ba8f3ac4e786782affcf2f36d9624c18480775d6e71d3ff9d32f61a566597ac7f7f1872ef410fc7a87dde662224b91aae766517c0e02b4e00dcb281341bb31b0aee478569744b533f3b2ba1dcd1fe04d844245b8ecbd8b575b4482f10c73d82337786d6711dc6719bdf8a7c43a137b712ac961c3acde69f816c06904011df469246570ca6167005fe66443f4855f8425c6d1a6c575f83a80e563bf26e6d6b9ba49f22276aa8f3cf236b0bac6af9584b940a63195502b9f2f012481857588481d146a7a3803acf9e9d402ffbd6e9266cd0040e93fee976144270d572633807a9d82ccd43f69b02b502346018656f8f026bca30f39f063e6cf90538652e14e8640093114f52d22e2a5a925aa7d220f3885be1ab467a1c66efeb124cc55729afa2277bd2fce02a08e03c8d8c6e2dbc7f3262f1aba350252640b4e10b25a6a14bfffe56c0424e8851277ff41378cbc0a86f9de1544868e309e5557ab4878a342305a1d76e29d775daf26efaf7a5ffefab3776e32147b67deb51eae732ab3ad47de93cf606d054be7e8b96104ce42ba80347af611025be3d216f2041ff211c06d992b13febb2e5371923ce4ee565a67721ec8447e5b1740f04bdcb895a9eb14647016ec2b5383c05a979cc75d0c8942dde0e6f671453e69a58c182ccc687801ffa6a99d1ba409c1230b7e5ce1d8ff88bf2524a167e680b5d11dde34a51cdf123f2c5fbf7f2a2f0f26a354975aa8e9c5a08eedea788bd9a389ac9bd2949cd0201f8133156ca82ab5912047b7ced208e2ee8ee799540635dad0609198c956b2051b9923f86cbef3e9632f0a45feb25f98b34a24833a0209790e83562eb5461f80a1e7791299c46262ed4b7a5cc6d19c5532c810d5298ea0cf6798d284ca4dc6607ce321eb71fc113a019c391c71ef2fd75ef5e263c7913f61376b41f4f0f1e37b2f8202ca8c10a3ce2f0a901554acf70d4049754161d28c105f6ffd741a14e7da431f8148f54d1fa480b8868970a053c7b161cb081f8ddc718cb053bf5dc7bd39919e4cb078b0ed87277ed9eb32c85e21cbc6f85b9f5f5097512397f1ac9af5c0f994f8e1da493eca24c9db75bbb823378456910a4502f9c6d019de6c662673632a0ec4d35bbd1932cf2d467d9851d5e7c596fe397d4fe395770f1a3a4eb0413f53c5ee229b6499c9b349350a0b2d88b9d841b1450a6233a21c06731331a672c8a8d0e3a1f6537171e006e4f1a06f9c8b8325cdd5eccf006ddfb9814164aee01eb1477b6b4f9880cef774306d574201e35f1e08d39a37a2df6d8d3050e272cf62589b878df7c2d313dd548f574340873388ffbba449822cd1cdeea6de54ba78e537def54f9d0f6b88a0b4cb6ced91eebf5654ab7ecb2f8b1f76a12b2067fb3909e8548f6c47354f098a01ddd37d4fac255d174a6b22e9cd6ebe5c5f6d41d604e8dfb78211c1b07de0bbd340afa7d4a9fbb625c7e5625ef038a7fb2c44e4434174f888954b36b0186066e6805a859c90d3e2747bb549cd859a1246d92cc60721bd108ff944254b4c1cf20f2a0aa54425f9720a23233082d0bea50333c185ebdbfe5568b93325adc0df720c3782d5b94e3e329503e81a6f9da0636952c9ed62011bd79a35f10b00cfd313bb98a17fecceebbb2afc89addc6e3f1bdfee7285109d2e2ffca298d7e8cb73ff17ea1fc98ace790e126861bb57d8d98102789044c5fa7fa8901e40e14753e4f50ea04dae4c6900bb283727e70e36a545d7969df438e411fd511f799d3041cddff8b72f41aaccbcbf1ab9b05e6135f251c14b36d985b3d1d676cae23b609bbf0f6afedd3e706236261b5717465c4daab660bc998906854059f2b85422d0f1ec385348a2d31cdc20486149154db1e3db0530a55e544e4fe8a4de132767f4812d5f16f76e5646239dc7a8539e4f5e4f58df7ffb9feb8e5f259e2881ab4afa28590ba95cf27ede792feffff421539e40d4ca00cd4a71b98db250c43aaac9c1b469c098bfaa21bf47264ddbf6eeb3d749daaa7bb816fbdb985a2cf61ed9267249558ae2d9a7fe9ff3aea3c804a5537e7d07e5b924771bfcd51bfff1b45408ac425f88a522be79a61229773032afe771762f11265c99928e93c8defff4cb167bb1057b0a53f6377ce8cd7ede7d5b1732196c716b274da58c0d572c50e6af9ea36cf47ffd99d106d55f7e6900877f3347d92ab82a429fceff96f065fbf746ca7e02303d6697ae21387fa7066102dba30d33cb9f6ab6c66b48fb933c180a629bc1004933a73878ecffc630178533ccf40988035c6e41cab12ae4ccafbb344b9a63e42e44e64555c1bd24c8f3b93afc2009db065839a2bbd85202641f47ad5a9b509467fe046d65a9e1a4a50a268dbe948b3accf51418c62c9dba3d90d8c9e15b97d06ba1dbae6333f06d040311eb61b4f9401951816c06a80f00d406410f5627137ee780e59101b9a17af6a1f233c5e213f438316881d4b53b2ee67b0b77fa318183be1a1b6806fe81979c2e4a4254bb56d71a7c0cc8b9474f1cf840964eae004bba8cffbf544ba390f98e88d192e2ba78b62ae78199c92fdc26f1fdda6c8949aa7f3432841e8e6407f30c8996ef63ba96a488a4d07b303d06e4ac322a3a2931353d367e6f3ba12da0b3c28f36bc2d9bb5ec896b4cd29edccd5dd6413c8c9cfa7c39505c29594744fef093712d2ced576b354ed3299ad012352de191bf0ba8bfb3f09a46406265f516a091a5ce5ecf707b493d7549b4eda5d6249a60559fe4a8b097acd2d5e8ab576e1e8868f933ec91b4c9aa18a5d0e88af187c7ac20219803d4dd0bb04123d528d26aa260074fde8ab4c07da0c3a4034b1a18cd68429a0e2dc5fae30ba47afd9766a764b1020de0b09db5101faf3a653459b6266d94622de2288629c2a31c5130a23483c71d58edcdb966d53307c4297cbc6fd7d0986289a512a79a7b9192ae2b1820d50e7142e7038d16353a3c129b971b087e7e5fd706faf7fb609120d5b8a0d5c90bb0bbb3474bcef28e1c9f6c23a4cb374287f8a881e4b09a1c9c0f837f22b236ccae08ea31c13fcc202cfe66c8fdfd6aacdcde33767f7e7135cb29d34fd1ec3b82385ec39464c5e7fdb1bf4ca26abe31a11f2825b5a27b5335f03b536e785008c9373541ae66650ee055f80c988673b818611bbeba13b81c6ce2b3ec2a6a160574d6277ba1f2aa6686c78b2aca08918a75a7b8c9e62c154aa25fb4914ed35091f699ead5f21d12d84321ab24464f2136ecb91dcd5507fd16e5652824c5f04ef6f43ebb1265a1968bcdea625c0e3ffc5eabcd2b455aa5910a52b83db942d64125027096303a846420a67985ff0cf2830861267495fae6eec4ef99436c77b2564758c26bdcd4d00a0c5d46f9910f5a187b51efac85cac988cec9da8be2534b5c8aaee7077125d21e62f1423a1f17993ab22aa49c0ec110c8f7a153dee8341c3226d05ded1af53706ad7e46ffc6bad763ba6d7fef3f0329b91d9c35d58cd90bce928e1aa5abce9acdd060a9ac11fad2f74e97024dd58f9c251ab3b6060ba5a8ec1d802c1d72fbe9a3f3399e6b7e7a6b1d34e0459a1ab8dfe921563cd6dbc2dbd40bbd51c89ef972772ab7f0147acc57dcfd42f82d58c40875333e135dd919732ebafd869c2aae1bbeec4c746bd7bcb523de4c9261f8476a227526f07f57b6d206304f513cb2455243c828c308c30d4e596635b08d8f4bdcc439966b01b2ac4242b6354167f6f50131879b39027a368f921fb1c0d31664d57349ca3f28bdd22d2e4cc770713159b7493e7bffe98d7df71e573986575ee61307deae75a1ebf79f78208a937bb7c972f5f2dc514d2c4d5e3dc1c17dd653703ea7a0b94c29c16c5268c62e0ec273dbc94c60fa0a44b3b5cc45d8d15100fb1ddbcf5edd15d56d157ddc5522bd2dd9cf1da26695aeec246e5ff4e62b84a821a268bfc6288285b153330b4e0ea4db121d28e2f45e9cd70541961994dc489bd2ae94d91fb631342bd56f4e1fd38c34ab6468d74c1159c756d03e9b13b797043ea8efed66c13a17edfc9173a251b4f7e7e29bae6fd58f375130dd6b13fecb21f81545f8d3e3311e2099a2a9cba7ade3d04d064d222928de1ff81d3e64a874e9ef9c738c5dea542af87050b00219d6c0ef577456ee8ae9ca8fa2ce74c665adc1a559947d06b7642b64687048d34ccb9dfcf2d3aac8493d51c79a4f822ce86986808612626c048c5fe0f2e04c679af8449f20c79b75516410a9e84816a67fd4c2e2485742ab2e2696f070ad6468b011654bd17e549bd2e11e2ab5b8df68fce0c40f1c8f9fc0290b6b9b4c00b34b7fc72dcc1938d5af755b0bb096796726172e75b5a92637bc34b25056638ad3ec38015f34001a379708cf6413b39271136203ac6a9a644d145b74554f0e8d94eed4fa1145fdc9f76e439d3227c4aca3f2aaf3f60df45b3f2e6773e6a0ab31535d8f4c38bcc03768158b1722a120b04f99c2d83fbe86bc58c3486ea52cf46e0e92838dfc01fbc59203bf336ff8bfb64aa394db10e83ab108b28c8f7ff3efb8b70231dab311cb2993cab3d8722c08bb6dd02d50d3470649033f2be102524206b99eadc5097684d7435b1f28f7eecd1d7afc591f122dac9805ad9d4a440940d17e90ffaf21a3aabca3eac33cd91a705cc9ed46da143613d6fd175b952e29f7a9997bdf834849e646938bb8fd516a7466e0268bdbad5e17df12aeb2c3b7e03ecf9c12b56d6495d4a0c37568829ceb4aa7193659c0d412dd4fe244f7be6c09c911835db918af2194a05a2db4f65f517ddc096409b055e982aba94851c52b1db7bee9e291bea8e36d199fadd1723bbe342e832020a8923f8e14659520e86912a631b0cb70d29dcd40967c35400a10f8366ae95f69a8374b6faee31392494044857a496a3a4d38d2ecc08f1e731d827a56faf18c74d42d6ab48de21db6cc1be5ba6cca959eb4cd678b047ca5c6b0c199d74c636311eb11e0602ca8c44952e2ae7b0d63f9c25e26a89b2eda663c368d702b44a4b503715fbea353536aa7bbac013444e138937f37d13798ccd2bfaa5b0810cde2f9ff103eba1c8dd30ebfc95cdd4c6a9ac39676592a354c8a20a52b6fd2229102c16c1bd658298c1e81f20fa6b9c322c7912d7ebed593fb73b4f4d8bf52cc4b51a02a4f903ba135632b628bd769307cc50f41d53ce98dcc21f199b377df343a11bec74c64ddd080e96b7c4c6c73adc04505b2452c2f7171a7078919926413048fce8011d62a6d25e0c056c9c93eb47b1f284c75adaf0f3fa44a3b73fffd25bdfaffa4ac7b29f7176ab802e8a8b24706a5fc4b11db1f08ea4c9a5d35949b60a0a523c5b69542dd6776eeea7a6809a7796c40c98e87e88a3936d24768210c749ab8102dbd9200c0e1d7e3adf7390d9a000c81b8c5d8945f0a704668430b2fc9a6e4355f5614801cffa2357a27ba8bd89d23376f7cc3cbee52b2776e95b7bbc57b8946ab9db0f5ee0205c8c952c39070fd938bc2f4eb55e92cfb66e23888243c28e80bdfbb89b5dfc43cd6343f974cb5a085b825da5b63e98342e93d03939884dc8fbc1e2f50675e2d54b7c569352909db5060e2339d31f370b25e308467d0a70fde96c072a80702933060501480050fb747ef6ed3222faa36a0369b15ba9ef36ee1e8129527631960e900053d364b685deb12aee551a104628b4f3edb34977ab2a9cccadcc204b51606e4505df8f5f500da91e275dca8cd8f72da1c7207c4b72ba25a62e53cee96052cca8cd9ad86df41ea7534793222566497d457790fbcae4426f213ae3fca785d05e1135bd7c73a5d8ccc4cafe6849ee0372d9a92d158ed5d827ba444ada78a328177e3b7b63aa8213338dbf8fbd33d5415d8d9770ed8b17304cfc8a3a06b45473aec4100920e529fdb0c22107848192eeb191ae6a147930e66f387f9fef192b9b7aed734f51aee72d534216e5246ad02c4e5f0b24090b63cc8ff3750a83f6d568032eb7f73ed1288819063902870562d4f4b02dc005190d59ecc3654f15e6c2a569e2abc6f8fc9f399340b769249b61932a3c89ddc531e49a3a533311ff8a43607ad44748567daf456f8d19c299c70f0653587674fb2c5b82e75cf8fe3e2687a87a66a03f3356e935438413542fe5c1302805d0f1410e73d91dc4ed429e503b010c96e0a4587fdd489b19491d7715faf3cfe1baeda6d782b27e4c14a2c3f6c73d0aeba962f90db6687a0bd5db174e264702d66c219e616f13e0bc92d6df7c67d9cf3533cfecd8c82b1e6e02901016c465e82594cf61dff4f0339dd0c7c1ab297d659033ebf92d5daa1b6f0dcc54e4f6f83ae22549e0bb05e84370c8ade500f6311a626d16714b93ea3c569b781fc77654eeff748a333997563fb260eef77a06cb4c04cd37654996fcb4a0053d81d0ea7a3f3294396e6b08ee78e3773beaf9b462158a2ac9846c1f7c0a81bc2c29b7b0b36d17075f77d8e114202909b879ecd16810520eed245baf45c8597cc2f59f413e7b2226ac61673178c8462bd61456a2d122ed0221e568e0c836d297c3658a595f1f7081f370f6eb5e23acee4fff3c5d5087976d8a0d2629c2369b2232aca5b558bec8f69a3a21a6b4735557eaa0227cc7fd7ec28525d4f5d1f63f914c7813de54812a2f92c9ca6d902f0bef34d158eeaf3a2c150064d69014d2e4353dd1819d68cf36c42968631d6def487051016e182b78d601ed8538226583f7a5e1ebce22cc621554b628560a3ac3c2a79e5c40a70aa1e7f5c612f68c66bd9ed04e47921c513c1fe43dce0ab3c860a1a4cb601e4ceca85f6f0008d1d07700036801f9cca050089d17c6282e71c69601ec634fc4a48a1180fe57fbc189828b3b18300b4fce808d89ffe228cff6df567fa1ccd2b0b2e5adcebd712d76eda41584575d2651bc8693c290e6c9d2d6e105992f3dd27cc6f16a9eb3846d5e7f5caa58f63aaa058fd00eca8cbb034d0549878f26ef7431beafb8de5dca00a881be1c5dc167e75dde5b0fb97bea249a30bc819e08632fc93b29f11db6984b62d8c29b25cba940351ba3e21ad98cd977ac1b6f3c24852795e0b82fb90d54d56777594b89db452397e8163b833a6050d0c930f2b2420e955ea8c399055ae2f3da7cd2b1422ebed853c20eba88ef714c1724c3e9fc893a84e3d684ae1089104baf313fc4ce1cb388808ca82e4a2385e220ad86c2b3531497a8da8a139bd169383bc01fd8a746e7b2e9e18668d30e934f66555eeaad099410c69464ffc0b48c6ed211ea8408bbca4bddde952ba6d89a3fa89b877c46cb04367498a36d9564f14cca9fd3c469e8326b3350a9920d3c3e040472e7b2309115a64151fe79ab35caaef22abdabc3ec7f783469366b2bfb43a556964253a7870d0df75ad769e89487f93493d668c22e2d90de6e590953f724dba6797efe2daf7ec01dc6d9e7ce65e5acefc1bc61a5f3fe27fcdece8fec9b5a86b7747837ee071942784fd9369831ffb6d97921928b88e47ede9987c399375e73b8062ff5d4a6efeb81515c2462e09ffcc1fc7122424e03607e7ad335b5307c20a75782d8a15f90a94a8030b79eb236169ec4d190952075c929beaffe94442285459eec90aad3dd49712951f3c090d4c3f859b54db8e4b5d98738c920400248dbcff87a1aac0e5b00e0f1ed2c5f666fd5f1ff773315ce02bd7dcebf8e49594e01b7c23f676e49ac31f89ef14808ca16e188039b1d7e74bee515bcffb8a356c327e938bbaeda14e607b1abac94dcf755159a155d7df78f7a0f2007b6143039cac4698ea131f10565427d3d9f0fc7391e6a20ec3738ac9e5b95954a6403b8ef3f0b668afddfeba171134bd09d021e6822c1adf90db2b5ba58deb8b943c92d3e1504c3f0fdf79b3383417817ebcac44919dca8f5bd0c2b787f405213306045fac0fc9cde62a2dde75c0129084cd012501e67d69ddea49d1d4c415eab9a7def65ce51b1d94e1e7535eaad76b64beec16bd46a47e936945e53df812f60c85d58d80538c35fd8dbb150dc009d820d7f530948a6ca22e774c2b9e1c0c81e6488f9784902d64361d13e5fa6a76d64d7b507c41750375a3c494c1c5c185ba5336ff257ce6196c99e032c8eaec1003dc316456988c0088963461bc74ca2cf036027515e904774272e1d03886877d6838a62ac347755f4371703bec6eb40842588479897d69756ce38039022f7b89c9cd3222e00646e23fc1a5b2fa267005b8dddad27e028dce8eeb0d24b1929809ed48e4c417e7d1fc7dd8e513016c7822c88fa6f206c818ff9ce7692e2e5d5239e80218992e5f771f95798be31bf43792928782b0bd8239c49045ddb3ddd5ad2a6c077ba3c2c620651fc021e958dff42002661d7d82c4efb93f415f565a079dd0a78c95df94363b6a5af4148e185de5a84e9f54596d3a29a84de60a78a1377e2ba1306b3ec120fbc2419f49eadca5fcbf754d1be8e931fc576eaf819b8f1bc48280c151cd4a6d113928a3f626bcb9a5a7ae93bdf4713d1cc5edab503ea7b92d57dec1cd6daf362459069375d77a1e74d029e4f7d36ce5beb47f427ef3f571240996aa7764d166d9773a8f89748140596e6d7fbbb3633f0354a640919ceb7aa3a4e471566a709e2c362912462bd343a6c457b3a1020f6a734b61b2c61c00d8acb3118520e557eaf34f34723231c0e21dc5ae0b368816f30ea9c3fac5467c65a6847f2d015ca199c12e58becbe171988e32d90539fbd4712ef36660f4923ef5a5bc0c2c550382ed4643bdf420bc98371e33fd3006ce416984a89310959e0a18e9bd87b64f669563d36e96aaa2519238472760a8ac9db44e0e80e5caeb84c2cef557fa9eb226291ef338678b165cf5f74afcbafebf1db0774995c68b4f8dfab811f52dff7748450afec1032d699f13add62155eaa6abf5f6a1e4965d613cd94c39a55fb4f4203d83d817e5e69cfd9d95112e84a44c580ca0de51e37fbcc85a5843f8cce2a8eeca987e4944ea074aeee2fee1568e2220bc8b836264b7cbd9cd11024ae4a3f26ae2cdb7a24538c807cf1132dab3834b2d76e9b8431452206e9f2b6086bc3a8ba08d025b184c2d33cef75c464e687e1f2665c600fa2709ddc24c28787cc490cf9f6d8d9ff9bd4f7a5c33a75b65a164b7ec9f348acd228a0fffc7ff359cf84d5538b6a2d6b2a2539bad5bff917e13e9f25eed9eef7d1c0bcc1ffab44aac519ae6192296d9e18cb52ce0081ce02616583d0107e6ac26498afad40301a799304889d56dae5c811fe6739035869c5ee02dadeac842550cb91c2a7139d9c7c5895f745802d204d057f110977a3b3ac10ebecca1aa00104b4892b9159debb0ef37f6fe0b6314c4c80208fa21e0b8ab07b2508f1cd9bff91d3e483d61bab48b6d399a7ffea8bf57b6d569ea67d4c1d20be54b99fe39f401200560418e35a34ca40d4f99c666309511db1c45858a8dce614109e43a9248ca5671b4d123d072a1d526a2299151192ac23e8659aa8d46a20b509687a3969ba95b721aa38808cfb84fac13a709d469d93f9b9ffcbed1c178d081bfecbe011e00399266470bf5cdc5dda0c0e22a2e264376439d39cbe0b7ca1c4b308952e1d45489478b708fa7ced6b81f0109a589fdb495c44f5e7e7410b0ae28e30df01b7de4856dbb4d16aa21e60d2d6022e7cefe62f5395b23e0e030ed2a2e263b80ef145ad09abe7b2c191af7b4c4db756a59aae52dbdbb30a565f13c90ea597d69bb0637b16704f0a6836288fc14769facb0dff2b681be1d7fd7cca6654faac7104f2c481cf86e06a3576edad3d84d20b4a2912cd9dd646d388712aa47a69a8ce95408be4c8a8ebf570706316bcdd63ddad7b295323b44bfc9d5d2175f26dc3acbcc498d1a6e9cac04718083a55e2c5986f37beef439e0d4db6dea5964bea34268bc255bf32f979d696ce8c938d0fa71a65a0462027bab4a87ed7617a4cb79f6f70344191c33c4144e6ad9ab7924911d39b7c848d6ffc77268022e23bdf758ddd494440b57090ef02db5fe4dedf22ebbb038e850c3ef3ee10421d5c4a3b227ecd3fbc36b199930a19a52e13fdb82738fe66ac79df63d182c99d5e164cbde966c52b425e1257c7b6b8d62e75b22e31e3496f844a4dd8e30e7a9bd725d408b220622e5ce39b3d35af2b7fcea06ea5f3a94912e494ee7eece0e761e0fe3481009a9daf504dd1ac65ed523d66ce5353262fc6f03b7a4a0c3b8aeb6017e534b2354d2b6b44a1f378057a82ba0ef5b30f7b4929ca039778947d85d7cd6ef127a44e7256380b5b44d3198e95103b8fd92efe62f829e2e38201f4cfd1b1ff66dabe10a51816d62e90c544c564252b2246f90d601d76346d9f9cb6a68075111e1bd1362d2ee8eb262cd9090ec61f88230075c78aff208ba0964609844754b38629e3b7165aef7eb7a63d30c6f704c9aaa61eaae97c1e1224242c88c2fd8e702a3dc934cfe0602964b140aee9971f9a196eb33e4208b41de9c3c45eff2b8f8e15531f0ab845c003c6798beb0a850525fa52425f1125af60e9266bb204abc40b487a589046e947ff28e30380adbbb0838ca9d1bc45019d8453790692a99cb9914820ee9f48ddbc4916569e98ec6c6a9085e5815d9b0bf95d46dd1816900c54cd572de3435ba8880b9ba82b78b7a4d93e69143412a23bf711daafcaaa34b29516482fdf2ffe52b5acd5a04e637bc2be2a124df322e90c0a1b9994ac82af1e29b5d8be6613356c1a6c978f98998f11a690e9cf18e70cc01827332a29ffe748ed89cbe13eab11997b1228aefd180a2497adb5cbc21f35dfa5111f5af8e74f23bffc16e75008c853705a1465c5c44cee2af98088fb7ae5e347033a2bd258360182e2ca176048d6051065090b8c5f5d3f908f7fdb8ff2525198cf53e940eea0a7c8d5506ff74e87b64e2ee0ce18d0ecb8419128919969fb00580f06d755ad45967cd90c604897afc47b2d167685c23cb8d193f59cc89e5aa71143818385a1141d8b67bf5b221ae2774eeea0fbb136587f00e0426dd10cea9f69a642f983e8d3b07764d2b993ee1741975b0c4125170a0076a31c3166f4a5a85e91bd08033f501d033a2b886b95725d2c8002bd0c9e7552cf5e5c0b45758c5b25ce0eb655a0928d6e45958ba2248373e2ebddae21cea21c049c55d85aa9409bad801fbec13f9ff9059f1d74928149b72bed8789e82e5a89a40470af80e7798c36ff6b1578d44bc0da8696a89da09282c901b8b28eb7ac422759f167ee04159aaee44de34a578bf80fdcabb4506d92ef937612b77d85d2fa8840bc07097826ee3504dad225eb3577250e14138fc54aeade8b954c9a0dc76ef17845da48c75ecc420be3136020f9cae0d3518bc43cb55b035e39607c9180cee774a305457a005cdbf4c86e6409128a3fe04d908329159f0c86c6b37b0811147da59929bbcd327468ad278dc6bb99e69dab0f4ea66087cb9498d5e0e766a56024c997197485ce3540271ac7514416a74352ff0eb3b10c80135e93b9b780418a74327d8a7c02a7c4f1aa03e6841e76cdedf92026b238cb78c946a3b9295c3b1a09b7a6e46179bc4200571274ebd722efbd9f2c17dfb6203afc7c9a68f887481a72cdcec07d4b71d0a932afea881fc01bb88cc685e526661acd27c221522b7bb7c2ef9e0b5ca5efdaf81a8a7100fb4752ede8305478a844e4829c892f1d9063e46c8219a56f6568c5c2fa727e6a4e93a9bb8ff486895187242af4c88a22bbcd7364b07806056fa66d5ea1bd0c95cd6640d494d6f036af16610cfb45366b55b6ceeaf8101d28e42f3f4ceb4dcf0e9181f39fd5fcb4d775e409343c8eb03aa353f36e1b2375ff84ef90aa333555b5ab8165866101806b1bb98d7eeb4ed51ab02a7b9591278f663283959a5a631621a20fceff1a4b6cee68d9aa5fe71c66c140b04f70b51abe84999150585261fa328a7e810920813030489eccf13140692192cef6a4bf2fd3631a33a977d077a59cfbc4fb2fed229f4cdec773d8cba07b3a44de76117ee33d1100f9463176e31257080bc14c059efb182bb4ccefad9b383efaa34206d6cfe07f4a34cceeb12ead02603a00d4cc2bf7dc66d2003cce6b4345cd6539bc3974df0ff57a96e4f191a9864e248c38c245797289a1f67ab0518a5a978df7ab76416a33545949a5b9a363c573b9d402260f56d52223cd5aa9e4ea9112571d00da138cc951a7b6622f19ce0b90b3d72b02b66a36a45a835f60f69afef7d57ac2bc179b1f81ad8b3344cc655781a183782828306c1b9b2b9ab036f608d5203e894039145cda0ce8f67617fcec8b1375ab9325e3f0c95e82b175262c7118a85ce61b72f3e53446a2084b2080f516bdee777f7d1e924194f9413176752412b7f07b645e65586ffafe31f8a5785da0597a518d09c85ece272f9d4fe8d6af35f25cd8f3620e15ae141e9223a90c1996a69a346f0a41351ddf17f2ff20a3ac4179aeaa47e3cf8569e0853bff8ab3d66802bef36e08ad85c0c27437920f7d4177be6c689e45a222fea880d6b2b7e6334630481d803b8165bb123030de27bf017201f2c7eb1ce1de5191f58f8eb04e910b0f73d8d993355a8a677abd606bc606713adcdf559316768e781c244669e21f4de8b1fa3be5352bb8fad957af8288e0f9e344854ddee4302a0871a27c176f9a112bd78449b0b6024cb481f7fc6474439149cf3ce92974cdcec3c00778951aab14314a3541ad937b3a4d546cfa3b9e43e9a6d0913114a943645e4b295ec8c15ca07502b1bb3dd89beb6f2703e323e404d3c520bc87917adac65480500313a5ac0185b1729db8bcbb03b825d716d52d9304a429c7ea23c2b8e866b34b68ecfd9ef79a0a6361c6b2ef96ea34e51f134c62b708621b6bcb94bddca00a01669e723de171084c839bd47760d37c0a8cf74a0af780981139eb327d56243917eb578e1951521f2656cc9a5559769de7b11f4b3483e8ded965ce63907f1828490f6384c1b0cc5c5c93efe14c4c75fc4030b602777b1c7b7a6c1d39574d5a0e16aeffc3123b4d73fb792f002f1d37f98eb1172372f5c93ca98c26ac1a15540b323538e399c5b7c0c40596a4a6c122ff270b24788df99e1ddf202f84e434cf81b85e3ed8d46f5556445022c15f1ef458eaf7f11dac834cabbe3dd7e7e142cc419b983db39dfdf78ed1cf2a9d37ed0504efae6775d6a3f01bdda7bed95e69e56747646f63517d9455112ea4906871f245b1fadc9b84fa8afd4ccc68a0f33e99ebe8938aae5d33668b6c7be6df8d5007b33e18f803462203520393ff763cd2612d2ff48b66851869be6b9dfc406b3f7927301e19b0c4ee7fbfc0587e4a7629ba9628b9c3a50dfc48c504ccb0167217880e84c7c45d623feb7567b481c635f9747bbbe443e802d33e5af2f3c4c4dfd8e417950902a888b81bc09b26231eb38207c5ddf5ddef51d0501f446ccb2ee1c5ea2d4d47a306c245e4c6840d0ac67fc9d004eae5d26f2be1d643db3bcdb83d5a0ed2f768a5e13e8f84478fca83ee90e124a31e3dff6d1d5158223d966c451e4fc7691111821e0a61467cb2d9a91209b2b5639f18a70c37a2d7d3f785984ab897abc058f9bea1d3db484ad3688cb6dc1499b4dd806956988089c5752234a586768b64f48c7a6756a912e2425ede9b3ea29173ff170c78149266255d8819c58d4991a159d63607221337ed1602b50cb870275fd48c4ec2339323b0e901c06474345d1db9109cbf2a6ad96cd24b1549e50fa1fe7b0175cdcc1ccbc24c83977ed938f460d26deabe055abc06a6f48c19d354bdf5a2774b7c9d9ac7f08e3c19e954e8961f6ec6cef8c096c32625d02b4cba2f715cb78b3ae39ce48351e62174b938f77820738036c0ab6dbe7ca79832d7690ca92de1bf88b8903407823b2f908817b31071a017e56f5d9213dc65d50a7f15ab8254ee899229c53cb950e440861e7d2c5122374eb64e401d8f678aed424e50fb68981a81b03ce0332f483b06fcd23f64f064758fea16571e882488adc92e9b7c4a3678d077bcefd2c593ff0d815e7ea22abe75b6d6496efcafab1cdc244da97d40b99c45b3a1b786b43903647b09305740f202958f4573e004c1ffaba1aeaf405804a3b2f99f322a26c4bc8bf82b76cab07b3e15639059c02e1e9dddc7518d6dcb229de983d31251a067b2d3bea8954c447e34790b3ec4e8f48ba83a93943945dc2776c193d264d45cd22d325943b683a3f468fb5fd2c037c9603e664151d161714416147882dddabc6ffd14e3d045577320a6609b30bf50aa5bb3bea964bfb31203cc00f06b364c07926c4183eda26709f0f0e85beed3beb12d99bc582533478913c6d616d51f5c43252803ecdef3389ff760fda87a8411b9cea8e2b5b0415aff7cb807d6aae108e79400c0b455c30a8fb2b4353ccc1f47f3364d354fdb84cc0c4567b89f6edee8850fa120d464c9dc407c6789c499618787d901a2ffcebe2d3a64536835d62bd62e3fa7c829da1b9bd7c1b58f4a7d7b2e573fccd99bf221441e0ecae343a5b2ba41cb85ec26dae0a368e7c80ba909298b9446108de29cf2241860af27bc1c8bb1615e1340fdb9c09d9fe5e3a4c64dbcd4645fe8c28334c37f7fed22ed438af244ba6e0f67f5c08457bde5596eb4535f7aeabcd911a2343d8d94057f23f3ff60e1ec9e6282cc79f14e41f7ebc5ff25218542da5364da6b49c8b8671b490b2d7e7f7e93606841a453f57ae6a9987a010ded23550560bac3c676c8c9ed42d05c7e53b1db839eba596ee28e30f440cf4d35e4210ae69ba1313dc131788dbaf395b4e0cf1d604d0c559a75a6096d982b68b378cf3b3aeb949b11e490bc8fdc29aa3b1ec0295068ace5d57dbbeba3aa2396aae4afe8f533e234a8d10005bcc9e72782516373a2a2949159b47efd8f7ffae9a9ee9917495becaa0001cd4b0b3727c8ada637ad35f9547b25c8cc7a578edc3c89f00d35ecfa3e417ac9c7096fe3c6cafdbae747d1c321b689953bd2b1e5310c560ef208f18408347acc828b376475645e36e9866c8b32ebf9680db9e1fa2580bd23da59b7e6fbfd65dedb20edba1815f58497f0e876321e3445f100eb2bb8954322d330a890dcb11750f59675757de30d2a557956827f3d4a5ff23cf15eb38722f45864fd2930f2f9e815fb8dc8aa207497d0c61e21be8982bd9e2a8a767774017dffea88d49224b338ad3b4cf0d6811cb601129399533897c8dc6ed9bcc7e4002af41ceadb755d895b41e18cedd872776ee6ac993c0a2c8c30c3beb6824308dc941cfcc2eb0d095eb1c3bf9d4ae527e28d0408b4d9de02d60ce577a478d73bd4b5ec1f178f26ccb8b8f20f51258b7d9b7dac76e055322db7d7088ef87c6cd86a13c08ee1a6a3fc9b835aa91589ddd93dddb6ea8248cc9f9073e9da694dd8b2d92288cde43c1811805846dc88d8e1ddafe1028c060e67e2511bfdc2d30270c87cfc0b39b6c9b35a9600da77ec0e416d0c58c15b814c2bc0ae6f4485177bc503e465705cb720f77e2b075a349267289d1bd6305e5f1d2888241aa093889b1cdff65abf9df62128e72d6a5cb79be1e5e87d20eaba876b162878e107a0fd02a02d945e409b19fc798f3cd79677ed01215d681d34ed19065ca2ce360e9c23b89849e3c01c2b2ef834a887e5b5db680856df5bcd7be581d672bcba7026276fbeafbd217d1f10c490b528c79f0ff5a69cbe18c61c56d0aff9a7c8ed417458ea833e6e8ba8ec854ae31fc24bc1d5556802113b13a0f5bf498ceb1b1d42d8daba5a06e5e7c9158d26cc8f72070dde81c08f5f77e204993551191d3a18742ce166a0761f12ab2f22de3c3b0bf8b39edcd1913ef7862a9ea0592602b360fd516d6ca0b4bea2ca19b66a20f84902bfdbffe18c3bfa8bc582868f82f526d5ce490279d95e6503ed945742d735d05785bb6c24b9165e41a2e13b4d9e90f4d3ca6eb80775506c1f7a62a9a68ce13f441e2e9affb7fe95f171eec1948387b01b06e41ce31482d9e0fe61515809755e02f6a803cee51d95ea685abbaf70c14f8bc16731b4dacbfd0c6057bfb2583880c70f82c207bf5da1aad72cb3bb86c737ec223d8f51d2a67a77e192bc50ea32dc9a07b0c725c9c925d60bccabbdc413d70266b0565130f2b868fad144fc7038cf16d81246c4e4f07a5fa620c274b49b63b79bf8f79ff8a917e06eedfab81bd1d2808ab0820125e67e5e15e7e8bca85e7284c2ff454f5987e1c199d461579a8b493f140040f0a29f6d1af04e80aebd20d6971a309a9162b511ff176ffb00a0bec065eb96d47b87ab0cb0d9e04a8bec2ed1b3f888f1c0a01ff2e1c72cd699097b15030466371c8e9b05c249724394d10397e1ca3035091add1c360af0837cd2312fc9dc6a7faed6800332d7034d2b2aef3f380f511fa1eec9940b5996ca61222849672fea776cd5861cae1697c16daafaaa8ad0a6caaf4b82dbaa79e999c6f066bf47820af2fb89007cbe5ada98fa85f6c30a642749e0b88353636c4bef2faf3e1e9c00c536c070b4ab36e58e28ea9285d2f9ac668489b1acc651748f20a38e5f33bc22484459749d5f4a1fdb8f980c64a2a4f4af7025a35157b320113cce61715c4032135b13397af716fe866ac8ebf37e8ca6a99322a7b393f76eab943025f381b8e7226da9f7635106f970558139ec955bc878a8823035127cb051c53636235439df001c6c08b4e86630b77da6e6d575450bc51960d6df6841cf3c4562e846a87ea3974a1ec3c1a6578a92e3c8ecc48a1d3163dd0917d71bfc5d79176b799a89f45727f7ea438b2b7fa5ef152896b8000c817898aedb6403fc7a28ca763f331fcb2eae2e7893c3297d5f0fdc49d688caec2c72689588c8b168403e627657d7196c6fcc7d95bf1001b7d7777af02cc433822079ffd495ca6e8fa736a04c7a24e64dd3a5c67b39fade255b8530a0bad18c4eb8ad57d6319cee10684748db575c08d15ed7197343f44c66c09eb1f7ad82d5f1409186d428bb72da2b17d08513fe047fb435f19d36734a225532bf36563915f0f1083298325cc46f35d6abc9ff13f0fcecb5e63c2ab5ad0c6736c790318ea00a2c1a5bbd636efaa6086646c78d6aa4774f7145a7433d87fb69fee6d384cd58333b2cc1663bde9eaa10345685c40a1e46ef1541dc088a27da2e631509f5d43e29b82d774e29fb533c6d0e72dd5622cdba9a97fe17ac2facebe59b24a9799c778fe653adabbf0a26aa2e2838ce5df161b6e8d7f569317e7837e59270034a0ee64a111793f599629985b5a8ef15d1f017c84a6ea38033b68403c1e1ad0daf1653863bd36ce1f42de35d4b496a9e47115ade0fab266bafbc5083c7edf4f0315ce206127635675e68041f59122b2bd9d5186fcceaa373b448158cb9bc323429d812b53351af6b63bcdae6c03fed7f40f1b0ac4d93c336aa839f0e6510cc1fb6ac4388d0cd639de7df9b19e136d17b18c9005c3852e3d0a4e7c265a43c03227e54d1be0c3afc2c5630f0eb0f7707b91bb8b3f46afa3298d5c1f7f85f2d6e10fb600ddb9e9f458eb0d9b46de509a02e71fc473566d366decc8105759339c113d18c6898b8328593345b730fe338f77cc10263edc8d3f80718b64e72fa026f202c1871ae180954fa73e1873257cc3c064abb12e444766acd4d5838cc8abf99abdba6d50d5a63c39a8f171beee553e3e80da5a57c4f52df522b4141af351e872db2c31ecacbc1494212e238d2a7cf84c72ae739be3f7b3c6ff1f939d016222afa6932e8c8857316e76e1c927fb385a11da6150314baa9c67bec206002ec897ad3d501903aea1810a4ec70b320737f59439249ffb9f2b9527400b958195e2c6dc1b8172962748a4393888eaf8ee8ea8727fe01883e733a6951230d37cc2d4a2a749207d517b1d44708ba1e1c4e193468168de2004c3061bc4dca23a56340438a42c33d1eff0f603d365b6409930aab2cdee046d0544280be78d5e58df5d12f9c7b3ce69b342d105db255cd0d0b05820af9503611904a550d08bd1f03fd549ea90d8127982f9252309805e5297b7fa66e53ede83e32fb09f72d45ff8dcc6eba819df096e34f93d0cf0f1bd5579d61e26c2dd49ec8a93b7f106db39c48fe17789e210cfeb6dcc592ae7af2e28be6c8a5983d41b8005820f25d7e573698cd36459fa7d48559e4d70675ac474e9b6d7517b8d11bceceac284e499128177b80d1499aaf1f120506245e3d0bf0d8eda03b164be54445bd58bbcf791f323a9b8dbf15f517488b98b68dcff9e45de4e7d89aa2c012e78f154054da4cb7b56c7c5c1fbb502374f7be05b98983e3122ac9079a32f5c36d5af57e857dd0f0d28d7f0425c5791e860fbdd8314841ca68ccfe853999d84aad4510d0f8b7bb577c904e58b79ef1a2f7b93965e8c02f2b19c85e3aeb008d6b5bdcad54618de13da6147198335b361e831e7a3ed872c0159339233a89d60b62f9ba76f71d21b0e9aa5e9a3e03f63111086ca4ba11de8997cb3c0c372f43a7e2b79b3c128154d3e1c81c8600f621d6163139b022442a306b730be98ca677369835be0954d4c5ad2ce024be56140dc2f79db1e5194ad6e61c70c0e42e8aac411df003ee35864efc7889330bfeb3cf4ff92e8d5150d7a45b8ae139d3cbef7159766638625bac2163c8db52f6b7277f944ded4126e83f349c4a19cbef87f2f2203ee5f5f708f40fc1e499f0001ab8a50512e7ed221a7ae6f588a921e95a359052c4e4de09246459a798b12eed26bd8cf0daaece54cefcda47bf331b013f1e644d867799173cd1dd66a2c974d21f47c6ab31d99212df46d7a46e0c87b1f5e16391fbc7de267ea9e25b543295fc2f69f63b0723864ff51037498fecb429314f8046d935820fae07fa8f45c4cd98c7c9398098494ead7a062b3104c017a618aa303721705b6e7ff0bf5f31b81337a25db100c8f97959a1f05b28706ef234d86b01573be0d89eb3815163672405dc22a68e38c5b56142f4c5bba00c4930369663452047dddee03cdf77a83e73bb4c8801c504cd69f652178e704274dd8d6170d2ae7c993a8c746cd03de77ac9b126d8b73f74f2e18e12e1b7353818a4207f7690bfb9457dfd90c8725b13493270e7aa23540ecf763a60986a60335bcd2843754d37c8171359b7ca3685b52a232def44cfcf288b12302f2508b75a81366c67a4bd64c31cd99c950b0e93c57daac6c46d9ea84376a25a02a216ed92dda6eb7f9b684af99ad5a60821351ec7c7a20c399875f506728bd517dee1920abc49688153ea2f3c82795a8b48958ec7ea9fbff2c02c533ceb46f0d5460b6d472cda4191c1215120cb861c025d881fc36733d3df457e85e96d2ac407585c3d31ac88297017e1c87d93fcdcda183825d4891759a82303d6d2dc7cbc98af5a13c80ff02cf235bfdc0cb3087379303f2f9c8f9e0eee0291d5be11bba9540946b9edd699a8a4f4af08cebd4d9af5999a1a600a6229ff06854c5d097e98b2b130973cf3d633c60b6f0fbd99a5f51c880c4a7324d85dfc0cdcc5cc8b4608430d18db2b49a4f92c180976bce6d94bfccaaf8e51c447ba65f9c140305ea4478b3ac9647beebca9b46931385250df91c7a78585be119d29019baab8d05a5aad95338acdcde72f32f928e8ad81a74e3b7ef32e28214fa64c6f21f97973af6e3a15040c8bdd71ee5a98783bdcbd97e85c8d45e75ef683e296dee91bf6425e5e54a8cec3c90898ae25fc958c6f74c431f0ea0f6eafa2fd17b0c7ecb96ec8ef48bedb2df0451b09f3ae5ba6730c88522cec116b778bd962ff76a826da63383e0d42ca0ea5575b2c0200b3d46d5949489741eaf12070ef153413b37b0ad01d066ce33768bbe92f97b5a390cdf819aaa21b89a9e80a3d39b57f4e668bf809a2bdb66c75d9ac04e492dc8bbc4c3f985e8be1f56260876dc70f11e817b1e7dc1e513da6fa648aed627aeeafab08e470373ed832f359dae92888e11c3da10abd80f2fa793ebd392d1ea263b2cd5192c0a1b4b473d4adb0b17b327ae132527b4527fa2c66c192a3b6a64832c887be196f8152252566771dcfe7a07c3ef16c38f3488d3e863ba94930355186a30e7a8303f3fcdf00d5964b69abf93a5fa74cd0ad02e2232ceb5d0218baad6dbc51515497b24718c998727e51c7cb3fa8b27dfbacddffb9db8158e96a7951d61242f1d610bce350f63d2c06c5877288353e59887f8a240eb91ec7794aecba75fae9acbbc91cddeaaa16294db8b8c0763161426e561ee986056cf9a3a63febe79bd3a71c7a61c31645fa8f3ca78f74699c97573ed238f7a986c28c58049071e096442493b0796362d5acab085903f435fe001bd7b03004de5d2900afd232572061a226778294af484a4ae84ea833789de6dbe96f5c262d9bca0c83c477dde8e2600d3875c60b747df15c2f2b9affbc2a37c5ee2bc3e1527a30558989164f09a082db972b78407a1a6a3291e06a64694a90fd0b8e07e69add2426cde8f7805ff3f1a8720979b1a17fa27f29605568bffeb0fb7e69d04a039cbc4d19b405ba637d5082af12bb419cd056be2e41cd2a4b087c529340cc9736e8e54d251a577bf2ce6071a89c9f5bfbff59a5227be9877f701129a294cf2d35f44f950e09dff82a0565f6a9d2c90a7ddf777de04e0268d4abe43df0ca78e201a9b914c19074065d486b7a253584df29ffebd648a0180afee7d088e5faafa4b13da9ae3063e0ec1b7740505e17044dbe76e79c1b0f070e17831a4d6a7e70030723a0608de1fa975b1d5ec1f5379ed6a6e91cfe2bad4546459e58cf78978f30aa7fb470cbaecacf54552533b971d845a66a7c50854c3959d4a475a1efb0f71e1b1284b91a8e89c80ad3e659388dae1a87b1451a5854138a8d2c0b101a4713eb8ae29ad742db41cf690ea0c095fd475e064bb2892cc5b688635d3ae2287f45a5f6e6186693e5d0c800db915ca5a5778139bf6ad691d8c82a9adb73b631f62da30c85a1964c841a97168cecba2021e62d6f5eb4cdd896e123f7c933118a5fbb5d7fa1d0fa0a887acf1c8b6eb779c4ca50ca097e13dffa9ff770de18dd44b64e927e16ef1037b433b366e8bee62d80aa8f2be442acb766dabe0fd15abf36b2ef52f683eabe3c3dbd4d54165aa66087a511c99eb6697f13c7190f26ace555d387f298c74c94dcb41b9edb59ff4ed3f7d9b12ba181e0b799ca0dad4a09b29abde7b5321a59106f97a5fa2036df669abd44649645c02f3c526ade8f362483049fad2943045bf926006d69343a4d4e3f614406d1fb2e5300e6c4677bb1e20190c3a45095fdc4c5d729b91addbfcf0bbebfe56e2737e51d893f1f2fac246cf566307081dcabb33d64abf38a0e3b7522951d10955cf27eedb9f73e0c6b8dd5e3705903b6e6397259b055f37decdd35fce919fe2313fca4e007de882b41bde40a70c4bab5d0cc6aa266aab3602a1464891ddef4cd93d31b12b29ee6c8d1fd60e8872b53cfd9fde963096ecc79ef93b0192df183b5ef31385f662e1a63023de7cb34958222d48176809954172f6ee0e0a01e73e4c8beaf9670e46642f658cb97b27e4501e4af0afa2512caeecb7b2d0279cfce6c266ca3608f6989bfb505b32a44222b21afea81af11b68fe43ed44cb898de54e7b08522b3904013b1244f1766bfc513a943ef97ac05e87f3ff4040272e69da99c26187cecaa1f4ab45bb961f81afe77b46216386091027bb40a3bf548639d6087a2d43638b7ea99a601a0c89feac4f371bb7177bcc7e3a9066442b7654cce5fcd9a4ca4fce4bd406b8c261d710716d90a15a1687236e4ad243153359c7548405d20048da862b545bc3b3eac3a7f73badac8ab5f0f2ee4a911c15d1080c4cdf6997c223e09b340f5f1bb970c930b458f768a0bbbe787cb87f181820a3d122b3548d676b3e5a52cbfef06d7424ec065c1f34c230407f9f5dc002c27a9666bec439affe6fee2f5cb8b562a5241145e89e2d327a36292b125bca2e0589c2009265rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootghc-8.10.7-150500.3.2.5.src.rpmghc-devel(ghc-8.10.7)ghc-ghc-develghc-ghc-devel(ppc-64)@@@@@@@@@@@@@@@@@@@@    /bin/sh/bin/shghc-compilerghc-compilerghc-compilerghc-devel(array-0.5.4.0)ghc-devel(base-4.14.3.0)ghc-devel(binary-0.8.8.0)ghc-devel(bytestring-0.10.12.0)ghc-devel(containers-0.6.5.1)ghc-devel(deepseq-1.4.4.0)ghc-devel(directory-1.3.6.0)ghc-devel(filepath-1.4.2.1)ghc-devel(ghc-boot-8.10.7)ghc-devel(ghc-boot-th-8.10.7)ghc-devel(ghc-heap-8.10.7)ghc-devel(ghci-8.10.7)ghc-devel(hpc-0.6.1.0)ghc-devel(integer-gmp-1.0.3.0)ghc-devel(process-1.6.13.2)ghc-devel(template-haskell-2.16.0.0)ghc-devel(terminfo-0.4.1.4)ghc-devel(time-1.9.3)ghc-devel(transformers-0.5.6.2)ghc-devel(unix-2.7.2.2)ghc-ghc(ppc-64)rpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)8.10.78.10.78.10.7-150500.3.2.58.10.7-150500.3.2.53.0.4-14.6.0-14.0-15.2-14.14.3bbk@b'E@a2@`@`OL@`"y@_<_H@_@_xg_/@^Ӝ@^@^W@^J@^:@^)^&^ P@^ P@^ 8@^ ^@^C]]\@\\@\@\\ @[[@[@[[@[][][[[O+[8@[&M@[5@[ Z@Z@Z@Z3@Z7Z5 Z+@YeYY@Y@Y*Y XXM@XXS@XWW_@W@W;W7@WV޾V`Vl@V1V_V@V$@VwVetV]VVf@V@V@UUȒ@U@UhTUg@Ug@Ud`@U]U]U-@U+Ut@T@T Tи@Tи@T@T*@TZ@dmueller@suse.commliska@suse.czdmueller@suse.commimi.vx@gmail.commimi.vx@gmail.comdmueller@suse.commimi.vx@gmail.commimi.vx@gmail.commimi.vx@gmail.commimi.vx@gmail.commimi.vx@gmail.commimi.vx@gmail.commimi.vx@gmail.compsimons@suse.commimi.vx@gmail.comschwab@suse.deschwab@suse.deptrommler@icloud.comguillaume.gardet@opensuse.orgptrommler@icloud.commimi.vx@gmail.comptrommler@icloud.comptrommler@icloud.commimi.vx@gmail.commimi.vx@gmail.comptrommler@icloud.comschwab@suse.demimi.vx@gmail.commimi.vx@gmail.commimi.vx@gmail.commimi.vx@gmail.commimi.vx@gmail.commimi.vx@gmail.commimi.vx@gmail.commimi.vx@gmail.comguillaume.gardet@opensuse.orgguillaume.gardet@opensuse.orgptrommler@icloud.comptrommler@icloud.comptrommler@icloud.comptrommler@icloud.commmanu84@outlook.depsimons@suse.comptrommler@icloud.comptrommler@icloud.comptrommler@icloud.comptrommler@icloud.comguillaume.gardet@opensuse.orgptrommler@icloud.commimi.vx@gmail.commimi.vx@gmail.comptrommler@icloud.commimi.vx@gmail.comptrommler@icloud.comptrommler@icloud.comptrommler@icloud.comptrommler@icloud.comptrommler@icloud.commimi.vx@gmail.commeissner@suse.competer.trommler@ohm-hochschule.demimi.vx@gmail.competer.trommler@ohm-hochschule.depeter.trommler@ohm-hochschule.demimi.vx@gmail.competer.trommler@ohm-hochschule.depeter.trommler@ohm-hochschule.demimi.vx@gmail.competer.trommler@ohm-hochschule.depeter.trommler@ohm-hochschule.demimi.vx@gmail.commimi.vx@gmail.competer.trommler@ohm-hochschule.depeter.trommler@ohm-hochschule.demimi.vx@gmail.commimi.vx@gmail.competer.trommler@ohm-hochschule.demimi.vx@gmail.commimi.vx@gmail.commimi.vx@gmail.commimi.vx@gmail.competer.trommler@ohm-hochschule.deschwab@suse.desbahling@suse.commimi.vx@gmail.commimi.vx@gmail.competer.trommler@ohm-hochschule.depeter.trommler@ohm-hochschule.depeter.trommler@ohm-hochschule.depeter.trommler@ohm-hochschule.dero@suse.demimi.vx@gmail.comro@suse.dero@suse.demimi.vx@gmail.commimi.vx@gmail.competer.trommler@ohm-hochschule.depeter.trommler@ohm-hochschule.demimi.vx@gmail.commimi.vx@gmail.commimi.vx@gmail.competer.trommler@ohm-hochschule.depeter.trommler@ohm-hochschule.depeter.trommler@ohm-hochschule.de- add ghc.keyring to have source validation enabled - limit to use llvm12 for Factory as newer versions are not supported- Remove dependency on binutils-gold as the package will be removed in the future. Gold linker is unmaintained by the upstream project.- add ghc-armv7-VFPv3D16--NEON.patch to use vfpv3-d16 on armv7hl- update to 8.10.7 - drop 4134.patch and refresh ghc-pie.patch * portabilit yfixes * Export some RTS symbols required for static builds of GHC * Fix LLVM version checking logic so it no longer complains about supported LLVM versions. * Fix some RTS crashes on Darwin due to mixing up the closure sizes of the aarch64 and x86-64 backends. * Fix a crash on the non-moving GC due to incorrect logic for calculating the header size for array write barries * Fix a bug in base leading to a high likelihood of space leaks when using lazy bytestrings * Fix some timer races in the RTS possibly manifesting in #18033 and #20132 * Fix a number of bugs affecting the RTS m32 allocator * Fix a bug where code may be unloaded prematurely when using the parallel garbage collector * Fix a bug where the linker may during shutdown unload code before libraries’ atexit handlers have a chance to run * Improve code layout by distiguishing conditional and unconditional branches * Add hs-boot file support for -ddump-minimal-imports * Ensure hs-boot files are built before source files in GHCs -M mode * Fix a long standing GHC API bug affecting clients like HLS where async exceptions used to cancel threads during typechecking would be caught by the Template Haskell evaluator and reported as compile errors * Improve error messages when looking up packages fails * Fix a number of quirks in GC accounting * Fix a code generation bug which could result in entry of unlifted objects in some programs using unboxed sums * Ensure that POSIX signals are not delivered to the ticker thread when using the pthread itimer implementation. * Fix a specialiser bug which could result in the construction of recursive dictionaries in some programs * Bump containers to 0.6.4.1 * Do not treat -Winferred-safe-imports warnings as errors. * Fix a bug where typechecker plugins could be run with an inconsistent typechecker environment * Fix a simplifier bug which lead to an exponential blow up and excessive memory usage in certain cases- add 4134.patch to fix build with Sphinx4- always build against llvm9, also on SLE15 (suse_version == 1500) otherwise the resulting build is not working (llvm is 7.x there) (bsc#1181571)- update to 8.10.4 * Fix a crash caused by inappropriate garbage of heap-allocated data reachable from foreign exports- update to 8.10.3 * More robust support for architectures with weak memory ordering guarantees (e.g. modern ARM hardware). * GHC can now split dynamic objects to accomodate macOS' RPATH size limitation when building large projects (#14444) * Several correctness bugs in the new low-latency garbage collector * Many, many other bug-fixes))- disable %{ix86} build- force multiversion for subpackages- add --enable-unregistered to configure phase on unregistered architectures- update to 8.10.2 * Fixes a code generation bug resulting in incorrect code generation for foreign calls with complex arguments * Fixes a bug causing object merging to fail when the lld linker is in use * Introduces a workaround for a Linux kernel bug in the implementation of the timerfd mechanism * Fixes a few specialiser regressions as well introduces a variety of miscellaneous specialiser improvements * Fixes a potential loss of sharing due to left operator sections * Fix bootstrapping of GHC with the LLVM backend on x86-64 * few important correctness fixes for the low-latency garbage collector.- cleanup specfile from Leap 42 and older remrants - drop fix-unregisterised-v8.4-8.6.patch - drop fix-build-using-unregisterized-v8.4.patch- Update ghc to version 8.10.1. Important changes are: * The UnliftedNewtypes extension, allowing newtypes to be wrap types of kind other than Type. * The StandaloneKindSignatures extension, allowing explicit signatures on type constructors. * A new, low-latency garbage collector for the oldest generation. Please refer to the compiler documentation for all details: https://downloads.haskell.org/~ghc/8.10.1/docs/html/users_guide/8.10.1-notes.html- update to 8.8.3 * a compiler panic due to over-zealous eta reduction * the ability to bootstrap with earlier 8.8 releases has been restored * the directory submodule has been updated * the process submodule has been updated- Increase memory limit for qemu user-space builds- Fix typo in last change- use ghc-bootstrap-helpers on all archs - lower build env requirements on riscv64 * make sure we can build on smaller systems * adjust parallelism so we don't hog big workers for almost a week * many thanks to Stefan Bruens for pointing out the issue and helping with the solution- Update _constraints for aarch64- drop 0001-Fix-check-whether-GCC-supports-__atomic_-builtins.patch * fixed upstream - drop D5212.patch * fixed upstream - drop fix-build-using-unregisterized-v8.4.patch * bootstrap compiler is 8.6.5 now - refresh fix-unregisterised-v8.4-8.6.patch - clean up spec file- update to 8.8.2 * A bug (Issue #17088) in the compacting garbage collector resulting in segmentation faults under specific circumstances. Note that this may affect user programs even if they did not explicitly request the compacting GC (using the -c RTS flag) since GHC may fallback to compacting collection during times of high memory pressure. * A code generator bug (Issue #17334) resulting in GHC panics has been fixed. * A typechecker bug (Issue #17112) resulting in GHC panicking on some programs has been fixed. * A bug (Issue #16707) in the implementation of software transactional memory potentially resulting in hanging transactions has been fixed. * A bug in the implementation of compact normal forms resulting in segmentation faults in some uses (Issue #17044) has been fixed.- add fix-unregisterised-v8.4-8.6.patch * fix build on s390x and riscv64- refresh buildpath-abi-stability.patch - refresh ghc-8.0.2-Cabal-dynlibdir.patch - refresh ghc-pie.patch - enable riscv64- use prebuilt alex and happy on Tumbleweed to avoid buildcycle - Don't require llvm in ghc-compiler for other architectures than arm- update to 8.8.1 -new stable release - refresh Disable-unboxed-arrays.patch - drop allow-riscv-and-riscv64-CPU.patch - merged in upstream- add fix-build-using-unregisterized-v8.4.patch * fixes unregisterised builds when bootstrap compiler is GHC 8.4 * fixes build on s390x- Enable build on riscv64 - Add memory constraints for riscv64, restrict to 2 jobs - allow-riscv-and-riscv64-CPU.patch: recognize riscv64 as architecture - Apply Disable-unboxed-arrays.patch also on s390x- update to 8.6.5 * A build system issue where use of GCC with -flto broke configure was fixed- really bump llvm5 to llvm6 requires for ghc-compiler- bump llvm req to llvm6- update to 8.6.4 * A bug wherein changes in default method definitions would fail to trigger recompilation has been fixed * A bug wherein plugins would fail to lookup names not in scope in the module being compiled has been fixed * A bug where some programs involving StaticData would be rejected with either a typechecking error or internal compiler error has been fixed * A bug where compilation on Windows can fail with linker errors referring to __chkstk_ms has been fixed- use python3-Sphinx instead deprecated python-sphinx [boo#1119686]- update to 8.6.3 * A code generation bug resulting in segmentations faults in some programs * bug leading to programs with deep stacks crashing when run with retainer profiling enabled * A bug resulting in potential heap corruption during stable name allocation * Plugins are now loaded during GHCi sessions- dont require memory-constraints on older distros - dropped reproducible-tmp-names.patch- update to 8.6.2 * Several compiler panics observed in GHC 8.6.1 have been fixed * An integer overflow, resulting in some encodeFloat uses returning incorrect results, has been fixed * A long-standing bug in the LLVM code generator, resulting in incorrect floating point evaluation, has been fixed. * A long-standing bug exposed in GHC 8.6.1, has been fixed. This issue resulted in undefined runtime behavior with some uses of the dataToTag# primop. Note that this issue, while less likely to manifest, has existed in some form in all GHC releases prior to this release and may result in silent, incorrect evaluation.- Make use of memory-constraints to avoid OOM errors- Remove forced 'make -j2' for aarch64 and %arm- add Disable-unboxed-arrays.patch * apply on ppc64 only * fixes ppc64 build - add D5212.patch * fix GHCi on big endian platforms- cleanup * remove unused conditional in configure command- update to 8.6.1 - add 0001-Fix-check-whether-GCC-supports-__atomic_-builtins.patch * fix __atomic_builtin detection * upstream commit ce3897ff - drop add_armv6l_and_armv7l_target.patch * fixed upstream - drop fix-ppc64le-recognition.patch * fixed upstream - drop fix-build-using-unregisterized-v8.2.patch * bootstrap with 8.4.3 works w/o this patch - refresh ghc-pie.patch - refresh ghc-8.0.2-Cabal-dyndir.patch - refresh buildpath-abi-stability.patch- Add fix-build-using-unregisterized-v8.2.patch * Fix build on s390x- Fix armv6 build by adding armv6l to llvm-targets: * change add_armv7l_target.patch to add_armv6l_and_armv7l_target.patch- Cosmetic: replace tabs with blanks, strip trailing white space, and update copyright headers with spec-cleaner.- Fix dependencies on arm and s390x- add fix-ppc64le-recognition.patch * recognize powerpc64le as PPC64 in cabal files- update to 8.4.3 * code generation for UnboxedSum fixed * compatibility withe newer binutils (as) * Cabal issue with abi-depends fixed- Fix build for older openSUSE - Don't do selfbootstrapping * Cuts down build time roughly in half- Fix armv7 build by adding armv7l to llvm-targets: * add_armv7l_target.patch- update to 8.4.2 - drop 0001-PPC-CodeGen-fix-lwa-instruction-generation.patch * fixed upstream - drop 0001-PPC-Implement-Atomic-operations.patch * fixed upstream - drop 0001-Use-__atomic-intrinsics-for-atomicread-write.patch * fixed upstream - drop D4089.patch * fixed upstream- fix BuildRequires for llvm- use %license macro as used by new ghc-rpm-macros- refresh ghc-pie.patch so it applies cleanly- reintroduce ghc-pie.patch (pure upstreams don't work)- update to 8.2.2 - Several important correctness issues fixing potential runtime crashes - A correctness issue leading to undefined behavior in some programs making use of STMa fixed - A runtime system bug which may have manifested as a segmentation fault under low-memory conditions fixed - ghc-pkg now works correctly ihn environments with misconfigured NFS mounts - GHC can now produce position-independent executables - Significantly improved type errors - refresh reproducible-tmp-names.patch - drop ghc-pie.patch fixed upstream- update to 8.2.1 - improved compiler performance - reliable DWARF debugging information on x86_64 and i386 - aarch64: registerised through LLVM backend (experimental) - optimized build for platforms with LLVM backend (arm, aarch64) - improved performance on NUMA systems - interface file determinism - various language improvements - update _constraints * ppc64le builds need less memory since 8.2.1 - drop support for ppc and s390 - drop ghc-no-madv-free.patch fixed upstream - drop 0001-StgCmmPrim-Add-missing-write-barrier.patch - refresh buildpath-abi-stability.patch - refresh ghc-8.0.2-Cabal-dynlibdir.patch - refresh ghc-pie.patch - refresh reproducible-tmp-names.patch - refresh 0001-PPC-Implement-Atomic-operations.patch - refresh D4089.patch- add D4089.patch * fix GHCi issue on ppc64 * see Haskell Trac #11262- add 0001-Use-__atomic-intrinsics-for-atomicread-write.patch * add missing memory barriers on atomic read/write ops * fixes upstream ticket #14244 - adjust comment for patch 32 * the situation with upstream #12537 is improved but not solved. Patch 32, however, is correct. There are even more memory barriers missing elsewhere in the compiler.- add 0001-PPC-Implement-Atomic-operations.patch * fixes parallel programs on all PowerPC platforms * uptream ticket #12537 - refresh buildpath-abi-stability.patch- make compatible with new upstream macros - added patches for more stable abi: * buildpath-abi-stability.patch * reproducible-tmp-names.patch- enable for global PIE support: - the compiler is built without PIE support due to the bootstrap libraries being non-PIE using BuildIgnore: gcc-PIE - the compiler itself builds -fPIC objects all the time, which should make all ghc compiled binaries be PIE. - ghc-pie.patch: enable default -fPIC on Linux/x86_64- comment for patch 100 - refresh ghc-no-madv-free.patch with upstream patch * upstream fix for Haskell Trac #12865 * Haskell Trac #12495 is a duplicate- update to 8.0.2 - drop patches merged by upstream: * D2495.patch - refreshed patches: * 0001-PPC-CodeGen-fix-lwa-instruction-generation.patch * 0001-StgCmmPrim-Add-missing-write-barrier.patch * ghc-no-madv-free.patch - added ghc-8.0.2-Cabal-dynlibdir.patch by Jens Petersen simplifing haskell packaging + Interface files produced by GHC should now be deterministic ( boo#998972 ) + A bug has been fixed that caused standalone derived Ix instances to fail for GADTs with exactly one constructor + Compatibility fixes recent Linux distributions.- drop D2844.patch * the patch causes more issues with parallel builds - fixes boo#1020909- add D2844.patch * fix issues with parallel builds- make compatible with new ghc-rpm-macros- update to 8.0.1 - drop patches fixed upstream: * drop atomic-cast.patch * drop cabal-show-detail-direct.patch * drop 0001-link-command-line-libs-to-temp-so.patch * drop 0001-implement-native-code-generator-for-ppc64.patch * drop ghc.git-b29f20.patch * drop u_terminfo_0402.patch * drop u_Cabal_update.patch * drop u_haskeline_update.patch * drop 0001-Fix-misspelled-WORDS_BIGENDIAN-macro.patch * drop D2214.patch * drop D2225.patch - refresh 0001-StgCmmPrim-Add-missing-write-barrier.patch - refresh 0001-PPC-CodeGen-fix-lwa-instruction-generation.patch - add ghc-no-madv-free.patch to fix "unable to decommit memory: Invalid argument" errors GHC reports due to a misdetected MADV_FREE capability. The configure script sees the symbol define by glibc, but unfortunately this doesn't mean that the running kernel actually supports the feature, too. The upstream ticket https://ghc.haskell.org/trac/ghc/ticket/12495 has more details. Thanks to @psimons - GHC produces debug information on x86 and x86_64 - aarch64 has LLVM backend (requires llvm-3.7) - native code generator for powerpc64[le] (openSUSE contribution!) - disable html doc on SLE, we don't have python-sphinx * Thanks @mimi_vx- add D2495.patch * missing memory barrier on PowerPC, ARM - add 0001-StgCmmPrim-Add-missing-write-barrier.patch * another issing memory barrier on PowerPC, ARM - add 0001-PPC-CodeGen-fix-lwa-instruction-generation.patch * fix bug in code generator * fixes build of ghc-zeromq4-haskell on powerpc64[le]- fix boo#994268- add D2225.patch * backport of upstream patch accepted for ghc 8.0.1 * fix SMP primitives on all powerpc archs- add D2214.patch * backport of upstream patch slated for ghc 8.0.2 * fix issue in code PowerPC code generator (32 bit and 64 bit) - add 0001-Fix-misspelled-WORDS_BIGENDIAN-macro.patch * backport of upstream fix slated for ghc 8.0.2 * fix bytestring library on big-endian archs * fix wrong results in ghc-pureMD5 and others on big-endian- update haskeline to 0.7.2.3 - refresh u_haskeline_update.patch * Fix hsc2hs-related warning on ghc-8 * Fix the behavior of ctrl-W in the emacs bindings * Point to github instead of trac- update Cabal to 1.22.8.0 - refresh u_Cabal_update.patch * Distribution.Simple.Setup: remove job cap * Check all object file suffixes for recompilation * Move source files under 'src/'.- limit parallel jobs to two on aarch64 * aarch64 runs out of memory with too many parallel compiles- add missing C library dependency to terminfo devel package- update haskeline to 0.7.2.2 - add u_haskeline_update.patch * canonicalize AMP instances to make the code more future proof * Generalize constraints for InputT instances * Bump upper bounds on base and transformers * Make Haskeline `-Wtabs` clean- update Cabal to 1.22.7.0 - refresh u_Cabal_update.patch * Backport #3012 to the 1.22 branch * Add foldl' import * The Cabal part for fully gcc-like response files- update tarball to 7.10.3b * some documentation files were missing in the original 7.10.3 tarball - add 0001-link-command-line-libs-to-temp-so.patch * fix panic in GHCi when linking against C library specified as command line argument (-l) * currently under upstream review * fix Haskell trac #10458- update Cabal to 1.22.6.0 - add u_Cabal_update.patch -- update of Cabal * Relax upper bound to allow upcoming binary-0.8- update terminfo to 0.4.0.2 - drop remove-cur_term-usage.patch - merged by upstream - add u_terminfo_0402.patch -- update of terminfo- update Cabal to 1.22.5.0 * Don't recompile C sources unless needed * Support Haddock response files. * Add frameworks when linking a dynamic library.- use upstream variant of remove-cur_term-usage.patch- update to 7.10.3 - add cabal-show-detail-direct.patch -- Fix testsuites with large output. Debian patch. Thanks Joachim for suggesting it in Haskell #10870! - add ghc.git-b29f20.patch * fixes upstream #7830 * fix ghc 7.10.2 failing to bootstrap ghc head on ppc and perhaps ppc64 with some optimizations enabled * backport of my patch for upcoming ghc 8.0.1- atomic-cast.patch: fix signature of atomic bultins - ghc-7.8-arm-use-ld-gold.patch: remove obsolete patch- Remove ncurses6.patch - it's not so easy ;) - Add remove-cur_term-usage.patch to remove the need to access the cur_term global which isn't available in the openSUSE ncurses6 build.- Add choice for libffi in openSUSE:Leap:42.1- remove llvm from requires - add ncurses6.patch to fix build with ncurses6, all thanks goes to Tomas Cech sleep_walker@opensuse.org- update to 7.10.2 * type checker fixes * fixes for Aarch64 support * fix deadlock in runtime system when scheduling garbage collection - 7.10.1 highlights * implement Applicative Monad Proposal * implement Burning Bridges Proposal * support for partial type signatures * reimplement integer-gmp * support plugins in type checker (experimental!) - drop llvm-powerpc64-datalayout.patch * this patch was incomplete all along and now we have our native code generator - drop ghc-cabal-unversion-docdir.patch * ghc-rpm-macros is following ghc's doc layout so no need to patch - drop D349.patch * fixed upstream - drop integer-gmp.patch * we do not support SLE11 anymore - drop ghc-7.8.2-cgen-constify.patch * fixed upstream - drop D560.patch * fixed upstream - drop ghc-glibc-2.20_BSD_SOURCE.patch * fixed upstream - drop ghc-arm64.patch * fixed upstream - drop ghc-config.mk.in-Enable-SMP-and-GHCi-support-for-Aarch64.patch * fixed upstream - refresh 0001-implement-native-code-generator-for-ppc64.patch - disable ghc-7.8-arm-use-ld-gold.patch * not sure we need this, must be rebased if we do- add ghc-config.mk.in-Enable-SMP-and-GHCi-support-for-Aarch64.patch * enable SMP and GHCi on Aarch64 - add ghc-7.8-arm-use-ld-gold.patch * Aarch64 needs gold linker- refresh ghc-arm64.patch - unconditionally apply ghc-arm64.patch- add backport of powerpc64le native code generator to 0001-implement-native-code-generator-for-ppc64.patch - refresh D349.patch- on s390/s390x use "make -j2" to stabilize abi hashes (see also redhat bug 1212374)- disable llvm on arm64- re-diffed ghc-arm64.patch- add ghc-arm64.patch for aarch64 - add aarch64, s390, s390x to ExclusiveArch- remove unneeded conditions- chnage constraints to 12G for disk and 4G for ram- add ghc-glibc-2.20_BSD_SOURCE.patch * fixes build on unregisterised architectures (openSUSE: ppc64le)- drop ghc-cabal-unversion-docdir.patch * ghc-rpm-macros follows upstream ghc again+ add ghc-glibc-2.20_BSD_SOURCE.patch from fedora - updated to 7.8.4 + removed D177.patch (in upstream) + removed D173.patch (in upstream) + removed ghc.git-e18525f.patch (in upstream) + refresh 0001-implement-native-code-generator-for-ppc64.patch * A critical bug in the LLVM backend which would cause the compiler to generate incorrect code has been fixed (issue #9439). * Several bugs in the code generator have been fixed for unregisterised platforms, such as 64bit PowerPC (issue #8819 and #8849). * A bug that could cause GHC's constructor specialization pass (enabled by default at -O2, or via -fspec-constr) to loop forever and consume large amounts of memory has been fixed (issue #8960). * A bug that would cause GHC to fail when attempting to determine GCC's version information in non-english locales has been fixed (issue #8825). * A minor bug that allowed GHC to seemingly import (but not use) private data constructors has been fixed (issue #9006). * A bug in the register allocator which would cause GHC to crash during compilation has been fixed (issue #9303). * A bug that caused the compiler to panic on some input C-- code has been fixed (issue #9329). * A few various minor deadlocks in the runtime system when using forkProcess have been fixed. * A bug which made blocked STM transactions non-interruptible has been fixed (issue #9379). * A bug in the compiler which broke pattern synonym imports across modules in Haddock has been fixed (issue #9417). * A minor bug in the code generator in which the popCnt16# did not zero-extend its result has been fixed (issue #9435). * A bug which caused the compiler to panic on pattern synonyms inside a class declaration has been fixed (issue #9705). * A bug in the typechecker revolving around un-saturated type family applications has been fixed (issue #9433). * Several bugs have been fixed causing problems with building GHC on ARM (issues #8951, #9620, #9336, and #9552). * A bug in the typechecker that could cause an infinite loop when using superclasses in a cycle has been fixed (issue #9415). * A bug causing corruption in signal handling with the single-threaded runtime system has been fixed (issue #9817). * A bug that could cause compiled programs to crash due to use of overlapping type families has been fixed (issue #9371). * A bug in the inliner that caused certain expressions within unboxed tuples to not be properly evaluated has been fixed (issue #9390). * A bug that caused the compiler to not always properly detect LLVM tools (particularly on Windows) has been fixed (issue #7143). * A bug that prevented GHC from deriving Generic1 instances for data families has been fixed (#9563). * A bug that caused type inference to infer the incorrect type in the presence of certain type families and constraints has been fixed (issue #9316).- add constraints file- remove dblatex dependency- add patch 0001-implement-native-code-generator-for-ppc64.patch * native code generation improved compilation speed * fewer errors in testsuite than with C back end- add patch D560.patch * fixes dynamic linking on ppc * see https://phabricator.haskell.org/D560 * this is a back port of the upstream patch- add patch D349.patch * fix a crash with dynamic linking in GHCi when accessing the process environment * our patch has been submitted upstream * see https://phabricator.haskell.org/D349/bin/sh/bin/shibs-power9-10 1687554459  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~8.10.7-150500.3.2.58.10.7-150500.3.2.5  Annotations.dyn_hiAnnotations.hiAnnotations.p_hiApiAnnotation.dyn_hiApiAnnotation.hiApiAnnotation.p_hiAr.dyn_hiAr.hiAr.p_hiAsmCodeGen.dyn_hiAsmCodeGen.hiAsmCodeGen.p_hiAsmUtils.dyn_hiAsmUtils.hiAsmUtils.p_hiAvail.dyn_hiAvail.hiAvail.p_hiBag.dyn_hiBag.hiBag.p_hiBasicTypes.dyn_hiBasicTypes.hiBasicTypes.p_hiBinFingerprint.dyn_hiBinFingerprint.hiBinFingerprint.p_hiBinIface.dyn_hiBinIface.hiBinIface.p_hiBinary.dyn_hiBinary.hiBinary.p_hiBitmap.dyn_hiBitmap.hiBitmap.p_hiBkpSyn.dyn_hiBkpSyn.hiBkpSyn.p_hiBlockId.dyn_hiBlockId.hiBlockId.p_hiBlockLayout.dyn_hiBlockLayout.hiBlockLayout.p_hiBooleanFormula.dyn_hiBooleanFormula.hiBooleanFormula.p_hiBufWrite.dyn_hiBufWrite.hiBufWrite.p_hiBuildTyCl.dyn_hiBuildTyCl.hiBuildTyCl.p_hiByteCodeAsm.dyn_hiByteCodeAsm.hiByteCodeAsm.p_hiByteCodeGen.dyn_hiByteCodeGen.hiByteCodeGen.p_hiByteCodeInstr.dyn_hiByteCodeInstr.hiByteCodeInstr.p_hiByteCodeItbls.dyn_hiByteCodeItbls.hiByteCodeItbls.p_hiByteCodeLink.dyn_hiByteCodeLink.hiByteCodeLink.p_hiByteCodeTypes.dyn_hiByteCodeTypes.hiByteCodeTypes.p_hiCFG.dyn_hiCFG.hiCFG.p_hiCLabel.dyn_hiCLabel.hiCLabel.p_hiCPrim.dyn_hiCPrim.hiCPrim.p_hiCSE.dyn_hiCSE.hiCSE.p_hiCallArity.dyn_hiCallArity.hiCallArity.p_hiClass.dyn_hiClass.hiClass.p_hiCliOption.dyn_hiCliOption.hiCliOption.p_hiClsInst.dyn_hiClsInst.hiClsInst.p_hiCmdLineParser.dyn_hiCmdLineParser.hiCmdLineParser.p_hiCmm.dyn_hiCmm.hiCmm.p_hiCmmBuildInfoTables.dyn_hiCmmBuildInfoTables.hiCmmBuildInfoTables.p_hiCmmCallConv.dyn_hiCmmCallConv.hiCmmCallConv.p_hiCmmCommonBlockElim.dyn_hiCmmCommonBlockElim.hiCmmCommonBlockElim.p_hiCmmContFlowOpt.dyn_hiCmmContFlowOpt.hiCmmContFlowOpt.p_hiCmmExpr.dyn_hiCmmExpr.hiCmmExpr.p_hiCmmImplementSwitchPlans.dyn_hiCmmImplementSwitchPlans.hiCmmImplementSwitchPlans.p_hiCmmInfo.dyn_hiCmmInfo.hiCmmInfo.p_hiCmmLayoutStack.dyn_hiCmmLayoutStack.hiCmmLayoutStack.p_hiCmmLex.dyn_hiCmmLex.hiCmmLex.p_hiCmmLint.dyn_hiCmmLint.hiCmmLint.p_hiCmmLive.dyn_hiCmmLive.hiCmmLive.p_hiCmmMachOp.dyn_hiCmmMachOp.hiCmmMachOp.p_hiCmmMonad.dyn_hiCmmMonad.hiCmmMonad.p_hiCmmNode.dyn_hiCmmNode.hiCmmNode.p_hiCmmOpt.dyn_hiCmmOpt.hiCmmOpt.p_hiCmmParse.dyn_hiCmmParse.hiCmmParse.p_hiCmmPipeline.dyn_hiCmmPipeline.hiCmmPipeline.p_hiCmmProcPoint.dyn_hiCmmProcPoint.hiCmmProcPoint.p_hiCmmSink.dyn_hiCmmSink.hiCmmSink.p_hiCmmSwitch.dyn_hiCmmSwitch.hiCmmSwitch.p_hiCmmType.dyn_hiCmmType.hiCmmType.p_hiCmmUtils.dyn_hiCmmUtils.hiCmmUtils.p_hiCoAxiom.dyn_hiCoAxiom.hiCoAxiom.p_hiCodeOutput.dyn_hiCodeOutput.hiCodeOutput.p_hiCoercion.dyn_hiCoercion.hiCoercion.p_hiConLike.dyn_hiConLike.hiConLike.p_hiConfig.dyn_hiConfig.hiConfig.p_hiConstants.dyn_hiConstants.hiConstants.p_hiConstraint.dyn_hiConstraint.hiConstraint.p_hiCoreArity.dyn_hiCoreArity.hiCoreArity.p_hiCoreFVs.dyn_hiCoreFVs.hiCoreFVs.p_hiCoreLint.dyn_hiCoreLint.hiCoreLint.p_hiCoreMap.dyn_hiCoreMap.hiCoreMap.p_hiCoreMonad.dyn_hiCoreMonad.hiCoreMonad.p_hiCoreOpt.dyn_hiCoreOpt.hiCoreOpt.p_hiCorePrep.dyn_hiCorePrep.hiCorePrep.p_hiCoreSeq.dyn_hiCoreSeq.hiCoreSeq.p_hiCoreStats.dyn_hiCoreStats.hiCoreStats.p_hiCoreSubst.dyn_hiCoreSubst.hiCoreSubst.p_hiCoreSyn.dyn_hiCoreSyn.hiCoreSyn.p_hiCoreTidy.dyn_hiCoreTidy.hiCoreTidy.p_hiCoreToStg.dyn_hiCoreToStg.hiCoreToStg.p_hiCoreUnfold.dyn_hiCoreUnfold.hiCoreUnfold.p_hiCoreUtils.dyn_hiCoreUtils.hiCoreUtils.p_hiCostCentre.dyn_hiCostCentre.hiCostCentre.p_hiCostCentreState.dyn_hiCostCentreState.hiCostCentreState.p_hiCoverage.dyn_hiCoverage.hiCoverage.p_hiCtype.dyn_hiCtype.hiCtype.p_hiDataCon.dyn_hiDataCon.hiDataCon.p_hiDebug.dyn_hiDebug.hiDebug.p_hiDebugger.dyn_hiDebugger.hiDebugger.p_hiDemand.dyn_hiDemand.hiDemand.p_hiDesugar.dyn_hiDesugar.hiDesugar.p_hiDigraph.dyn_hiDigraph.hiDigraph.p_hiDmdAnal.dyn_hiDmdAnal.hiDmdAnal.p_hiDominators.dyn_hiDominators.hiDominators.p_hiDriverBkp.dyn_hiDriverBkp.hiDriverBkp.p_hiDriverMkDepend.dyn_hiDriverMkDepend.hiDriverMkDepend.p_hiDriverPhases.dyn_hiDriverPhases.hiDriverPhases.p_hiDriverPipeline.dyn_hiDriverPipeline.hiDriverPipeline.p_hiDsArrows.dyn_hiDsArrows.hiDsArrows.p_hiDsBinds.dyn_hiDsBinds.hiDsBinds.p_hiDsCCall.dyn_hiDsCCall.hiDsCCall.p_hiDsExpr.dyn_hiDsExpr.hiDsExpr.p_hiDsForeign.dyn_hiDsForeign.hiDsForeign.p_hiDsGRHSs.dyn_hiDsGRHSs.hiDsGRHSs.p_hiDsListComp.dyn_hiDsListComp.hiDsListComp.p_hiDsMeta.dyn_hiDsMeta.hiDsMeta.p_hiDsMonad.dyn_hiDsMonad.hiDsMonad.p_hiDsUsage.dyn_hiDsUsage.hiDsUsage.p_hiDsUtils.dyn_hiDsUtils.hiDsUtils.p_hiDwarfDwarf.dyn_hiDwarf.hiDwarf.p_hiConstants.dyn_hiConstants.hiConstants.p_hiTypes.dyn_hiTypes.hiTypes.p_hiDynFlags.dyn_hiDynFlags.hiDynFlags.p_hiDynamicLoading.dyn_hiDynamicLoading.hiDynamicLoading.p_hiElf.dyn_hiElf.hiElf.p_hiEncoding.dyn_hiEncoding.hiEncoding.p_hiEnumSet.dyn_hiEnumSet.hiEnumSet.p_hiErrUtils.dyn_hiErrUtils.hiErrUtils.p_hiException.dyn_hiException.hiException.p_hiExitify.dyn_hiExitify.hiExitify.p_hiExtractDocs.dyn_hiExtractDocs.hiExtractDocs.p_hiFV.dyn_hiFV.hiFV.p_hiFamInst.dyn_hiFamInst.hiFamInst.p_hiFamInstEnv.dyn_hiFamInstEnv.hiFamInstEnv.p_hiFastFunctions.dyn_hiFastFunctions.hiFastFunctions.p_hiFastMutInt.dyn_hiFastMutInt.hiFastMutInt.p_hiFastString.dyn_hiFastString.hiFastString.p_hiFastStringEnv.dyn_hiFastStringEnv.hiFastStringEnv.p_hiFieldLabel.dyn_hiFieldLabel.hiFieldLabel.p_hiFileCleanup.dyn_hiFileCleanup.hiFileCleanup.p_hiFileSettings.dyn_hiFileSettings.hiFileSettings.p_hiFinder.dyn_hiFinder.hiFinder.p_hiFingerprint.dyn_hiFingerprint.hiFingerprint.p_hiFiniteMap.dyn_hiFiniteMap.hiFiniteMap.p_hiFlagChecker.dyn_hiFlagChecker.hiFlagChecker.p_hiFloatIn.dyn_hiFloatIn.hiFloatIn.p_hiFloatOut.dyn_hiFloatOut.hiFloatOut.p_hiForeignCall.dyn_hiForeignCall.hiForeignCall.p_hiFormat.dyn_hiFormat.hiFormat.p_hiFunDeps.dyn_hiFunDeps.hiFunDeps.p_hiGHCGHC.dyn_hiGHC.hiGHC.p_hiHsHs.dyn_hiHs.hiHs.p_hiBinds.dyn_hiBinds.hiBinds.p_hiDecls.dyn_hiDecls.hiDecls.p_hiDoc.dyn_hiDoc.hiDoc.p_hiDump.dyn_hiDump.hiDump.p_hiExpr.dyn_hiExpr.hiExpr.p_hiExtension.dyn_hiExtension.hiExtension.p_hiImpExp.dyn_hiImpExp.hiImpExp.p_hiInstances.dyn_hiInstances.hiInstances.p_hiLit.dyn_hiLit.hiLit.p_hiPat.dyn_hiPat.hiPat.p_hiPlaceHolder.dyn_hiPlaceHolder.hiPlaceHolder.p_hiTypes.dyn_hiTypes.hiTypes.p_hiUtils.dyn_hiUtils.hiUtils.p_hiHsToCorePmCheckPmCheck.dyn_hiPmCheck.hiPmCheck.p_hiOracle.dyn_hiOracle.hiOracle.p_hiPpr.dyn_hiPpr.hiPpr.p_hiTypes.dyn_hiTypes.hiTypes.p_hiPlatformAArch64.dyn_hiAArch64.hiAArch64.p_hiARM.dyn_hiARM.hiARM.p_hiNoRegs.dyn_hiNoRegs.hiNoRegs.p_hiPPC.dyn_hiPPC.hiPPC.p_hiRegs.dyn_hiRegs.hiRegs.p_hiS390X.dyn_hiS390X.hiS390X.p_hiSPARC.dyn_hiSPARC.hiSPARC.p_hiX86.dyn_hiX86.hiX86.p_hiX86_64.dyn_hiX86_64.hiX86_64.p_hiStgToCmmStgToCmm.dyn_hiStgToCmm.hiStgToCmm.p_hiArgRep.dyn_hiArgRep.hiArgRep.p_hiBind.dyn_hiBind.hiBind.p_hiCgUtils.dyn_hiCgUtils.hiCgUtils.p_hiClosure.dyn_hiClosure.hiClosure.p_hiDataCon.dyn_hiDataCon.hiDataCon.p_hiEnv.dyn_hiEnv.hiEnv.p_hiExpr.dyn_hiExpr.hiExpr.p_hiExtCode.dyn_hiExtCode.hiExtCode.p_hiForeign.dyn_hiForeign.hiForeign.p_hiHeap.dyn_hiHeap.hiHeap.p_hiHpc.dyn_hiHpc.hiHpc.p_hiLayout.dyn_hiLayout.hiLayout.p_hiMonad.dyn_hiMonad.hiMonad.p_hiPrim.dyn_hiPrim.hiPrim.p_hiProf.dyn_hiProf.hiProf.p_hiTicky.dyn_hiTicky.hiTicky.p_hiUtils.dyn_hiUtils.hiUtils.p_hiThToHs.dyn_hiThToHs.hiThToHs.p_hiGHCi.dyn_hiGHCi.hiGHCi.p_hiGhcMake.dyn_hiGhcMake.hiGhcMake.p_hiGhcMonad.dyn_hiGhcMonad.hiGhcMonad.p_hiGhcNameVersion.dyn_hiGhcNameVersion.hiGhcNameVersion.p_hiGhcPlugins.dyn_hiGhcPlugins.hiGhcPlugins.p_hiGhcPrelude.dyn_hiGhcPrelude.hiGhcPrelude.p_hiGraphBase.dyn_hiGraphBase.hiGraphBase.p_hiGraphColor.dyn_hiGraphColor.hiGraphColor.p_hiGraphOps.dyn_hiGraphOps.hiGraphOps.p_hiGraphPpr.dyn_hiGraphPpr.hiGraphPpr.p_hiHaddockUtils.dyn_hiHaddockUtils.hiHaddockUtils.p_hiHeaderInfo.dyn_hiHeaderInfo.hiHeaderInfo.p_hiHieAst.dyn_hiHieAst.hiHieAst.p_hiHieBin.dyn_hiHieBin.hiHieBin.p_hiHieDebug.dyn_hiHieDebug.hiHieDebug.p_hiHieTypes.dyn_hiHieTypes.hiHieTypes.p_hiHieUtils.dyn_hiHieUtils.hiHieUtils.p_hiHooks.dyn_hiHooks.hiHooks.p_hiHooplBlock.dyn_hiBlock.hiBlock.p_hiCollections.dyn_hiCollections.hiCollections.p_hiDataflow.dyn_hiDataflow.hiDataflow.p_hiGraph.dyn_hiGraph.hiGraph.p_hiLabel.dyn_hiLabel.hiLabel.p_hiHscMain.dyn_hiHscMain.hiHscMain.p_hiHscStats.dyn_hiHscStats.hiHscStats.p_hiHscTypes.dyn_hiHscTypes.hiHscTypes.p_hiIOEnv.dyn_hiIOEnv.hiIOEnv.p_hiId.dyn_hiId.hiId.p_hiIdInfo.dyn_hiIdInfo.hiIdInfo.p_hiIfaceEnv.dyn_hiIfaceEnv.hiIfaceEnv.p_hiIfaceSyn.dyn_hiIfaceSyn.hiIfaceSyn.p_hiIfaceType.dyn_hiIfaceType.hiIfaceType.p_hiInst.dyn_hiInst.hiInst.p_hiInstEnv.dyn_hiInstEnv.hiInstEnv.p_hiInstruction.dyn_hiInstruction.hiInstruction.p_hiInteractiveEval.dyn_hiInteractiveEval.hiInteractiveEval.p_hiInteractiveEvalTypes.dyn_hiInteractiveEvalTypes.hiInteractiveEvalTypes.p_hiJson.dyn_hiJson.hiJson.p_hiKnownUniques.dyn_hiKnownUniques.hiKnownUniques.p_hiLexeme.dyn_hiLexeme.hiLexeme.p_hiLexer.dyn_hiLexer.hiLexer.p_hiLiberateCase.dyn_hiLiberateCase.hiLiberateCase.p_hiLinker.dyn_hiLinker.hiLinker.p_hiLinkerTypes.dyn_hiLinkerTypes.hiLinkerTypes.p_hiListSetOps.dyn_hiListSetOps.hiListSetOps.p_hiLiteral.dyn_hiLiteral.hiLiteral.p_hiLlvmLlvm.dyn_hiLlvm.hiLlvm.p_hiAbsSyn.dyn_hiAbsSyn.hiAbsSyn.p_hiMetaData.dyn_hiMetaData.hiMetaData.p_hiPpLlvm.dyn_hiPpLlvm.hiPpLlvm.p_hiTypes.dyn_hiTypes.hiTypes.p_hiLlvmCodeGenLlvmCodeGen.dyn_hiLlvmCodeGen.hiLlvmCodeGen.p_hiBase.dyn_hiBase.hiBase.p_hiCodeGen.dyn_hiCodeGen.hiCodeGen.p_hiData.dyn_hiData.hiData.p_hiPpr.dyn_hiPpr.hiPpr.p_hiRegs.dyn_hiRegs.hiRegs.p_hiLlvmMangler.dyn_hiLlvmMangler.hiLlvmMangler.p_hiLoadIface.dyn_hiLoadIface.hiLoadIface.p_hiMatch.dyn_hiMatch.hiMatch.p_hiMatchCon.dyn_hiMatchCon.hiMatchCon.p_hiMatchLit.dyn_hiMatchLit.hiMatchLit.p_hiMaybes.dyn_hiMaybes.hiMaybes.p_hiMkCore.dyn_hiMkCore.hiMkCore.p_hiMkGraph.dyn_hiMkGraph.hiMkGraph.p_hiMkId.dyn_hiMkId.hiMkId.p_hiMkIface.dyn_hiMkIface.hiMkIface.p_hiModule.dyn_hiModule.hiModule.p_hiMonadUtils.dyn_hiMonadUtils.hiMonadUtils.p_hiNCGMonad.dyn_hiNCGMonad.hiNCGMonad.p_hiName.dyn_hiName.hiName.p_hiNameCache.dyn_hiNameCache.hiNameCache.p_hiNameEnv.dyn_hiNameEnv.hiNameEnv.p_hiNameSet.dyn_hiNameSet.hiNameSet.p_hiNameShape.dyn_hiNameShape.hiNameShape.p_hiOccName.dyn_hiOccName.hiOccName.p_hiOccurAnal.dyn_hiOccurAnal.hiOccurAnal.p_hiOptCoercion.dyn_hiOptCoercion.hiOptCoercion.p_hiOrdList.dyn_hiOrdList.hiOrdList.p_hiOutputable.dyn_hiOutputable.hiOutputable.p_hiPIC.dyn_hiPIC.hiPIC.p_hiPPCCodeGen.dyn_hiCodeGen.hiCodeGen.p_hiCond.dyn_hiCond.hiCond.p_hiInstr.dyn_hiInstr.hiInstr.p_hiPpr.dyn_hiPpr.hiPpr.p_hiRegInfo.dyn_hiRegInfo.hiRegInfo.p_hiRegs.dyn_hiRegs.hiRegs.p_hiPackageConfig.dyn_hiPackageConfig.hiPackageConfig.p_hiPackages.dyn_hiPackages.hiPackages.p_hiPair.dyn_hiPair.hiPair.p_hiPanic.dyn_hiPanic.hiPanic.p_hiParser.dyn_hiParser.hiParser.p_hiPatSyn.dyn_hiPatSyn.hiPatSyn.p_hiPipelineMonad.dyn_hiPipelineMonad.hiPipelineMonad.p_hiPlainPanic.dyn_hiPlainPanic.hiPlainPanic.p_hiPlatformConstants.dyn_hiPlatformConstants.hiPlatformConstants.p_hiPlugins.dyn_hiPlugins.hiPlugins.p_hiPprBase.dyn_hiPprBase.hiPprBase.p_hiPprC.dyn_hiPprC.hiPprC.p_hiPprCmm.dyn_hiPprCmm.hiPprCmm.p_hiPprCmmDecl.dyn_hiPprCmmDecl.hiPprCmmDecl.p_hiPprCmmExpr.dyn_hiPprCmmExpr.hiPprCmmExpr.p_hiPprColour.dyn_hiPprColour.hiPprColour.p_hiPprCore.dyn_hiPprCore.hiPprCore.p_hiPprTyThing.dyn_hiPprTyThing.hiPprTyThing.p_hiPredicate.dyn_hiPredicate.hiPredicate.p_hiPrelInfo.dyn_hiPrelInfo.hiPrelInfo.p_hiPrelNames.dyn_hiPrelNames.hiPrelNames.p_hiPrelRules.dyn_hiPrelRules.hiPrelRules.p_hiPretty.dyn_hiPretty.hiPretty.p_hiPrimOp.dyn_hiPrimOp.hiPrimOp.p_hiProfInit.dyn_hiProfInit.hiProfInit.p_hiRdrHsSyn.dyn_hiRdrHsSyn.hiRdrHsSyn.p_hiRdrName.dyn_hiRdrName.hiRdrName.p_hiReg.dyn_hiReg.hiReg.p_hiRegAllocGraphArchBase.dyn_hiArchBase.hiArchBase.p_hiArchX86.dyn_hiArchX86.hiArchX86.p_hiCoalesce.dyn_hiCoalesce.hiCoalesce.p_hiMain.dyn_hiMain.hiMain.p_hiSpill.dyn_hiSpill.hiSpill.p_hiSpillClean.dyn_hiSpillClean.hiSpillClean.p_hiSpillCost.dyn_hiSpillCost.hiSpillCost.p_hiStats.dyn_hiStats.hiStats.p_hiTrivColorable.dyn_hiTrivColorable.hiTrivColorable.p_hiLinearBase.dyn_hiBase.hiBase.p_hiFreeRegs.dyn_hiFreeRegs.hiFreeRegs.p_hiJoinToTargets.dyn_hiJoinToTargets.hiJoinToTargets.p_hiMain.dyn_hiMain.hiMain.p_hiPPCFreeRegs.dyn_hiFreeRegs.hiFreeRegs.p_hiSPARCFreeRegs.dyn_hiFreeRegs.hiFreeRegs.p_hiStackMap.dyn_hiStackMap.hiStackMap.p_hiState.dyn_hiState.hiState.p_hiStats.dyn_hiStats.hiStats.p_hiX86FreeRegs.dyn_hiFreeRegs.hiFreeRegs.p_hiX86_64FreeRegs.dyn_hiFreeRegs.hiFreeRegs.p_hiLiveness.dyn_hiLiveness.hiLiveness.p_hiRegClass.dyn_hiRegClass.hiRegClass.p_hiRepType.dyn_hiRepType.hiRepType.p_hiRnBinds.dyn_hiRnBinds.hiRnBinds.p_hiRnEnv.dyn_hiRnEnv.hiRnEnv.p_hiRnExpr.dyn_hiRnExpr.hiRnExpr.p_hiRnFixity.dyn_hiRnFixity.hiRnFixity.p_hiRnHsDoc.dyn_hiRnHsDoc.hiRnHsDoc.p_hiRnModIface.dyn_hiRnModIface.hiRnModIface.p_hiRnNames.dyn_hiRnNames.hiRnNames.p_hiRnPat.dyn_hiRnPat.hiRnPat.p_hiRnSource.dyn_hiRnSource.hiRnSource.p_hiRnSplice.dyn_hiRnSplice.hiRnSplice.p_hiRnTypes.dyn_hiRnTypes.hiRnTypes.p_hiRnUnbound.dyn_hiRnUnbound.hiRnUnbound.p_hiRnUtils.dyn_hiRnUtils.hiRnUtils.p_hiRtClosureInspect.dyn_hiRtClosureInspect.hiRtClosureInspect.p_hiRules.dyn_hiRules.hiRules.p_hiSAT.dyn_hiSAT.hiSAT.p_hiSMRep.dyn_hiSMRep.hiSMRep.p_hiSPARCAddrMode.dyn_hiAddrMode.hiAddrMode.p_hiBase.dyn_hiBase.hiBase.p_hiCodeGenCodeGen.dyn_hiCodeGen.hiCodeGen.p_hiAmode.dyn_hiAmode.hiAmode.p_hiBase.dyn_hiBase.hiBase.p_hiCondCode.dyn_hiCondCode.hiCondCode.p_hiExpand.dyn_hiExpand.hiExpand.p_hiGen32.dyn_hiGen32.hiGen32.p_hiGen64.dyn_hiGen64.hiGen64.p_hiSanity.dyn_hiSanity.hiSanity.p_hiCond.dyn_hiCond.hiCond.p_hiImm.dyn_hiImm.hiImm.p_hiInstr.dyn_hiInstr.hiInstr.p_hiPpr.dyn_hiPpr.hiPpr.p_hiRegs.dyn_hiRegs.hiRegs.p_hiShortcutJump.dyn_hiShortcutJump.hiShortcutJump.p_hiStack.dyn_hiStack.hiStack.p_hiSetLevels.dyn_hiSetLevels.hiSetLevels.p_hiSettings.dyn_hiSettings.hiSettings.p_hiSimplCore.dyn_hiSimplCore.hiSimplCore.p_hiSimplEnv.dyn_hiSimplEnv.hiSimplEnv.p_hiSimplMonad.dyn_hiSimplMonad.hiSimplMonad.p_hiSimplStg.dyn_hiSimplStg.hiSimplStg.p_hiSimplUtils.dyn_hiSimplUtils.hiSimplUtils.p_hiSimplify.dyn_hiSimplify.hiSimplify.p_hiSpecConstr.dyn_hiSpecConstr.hiSpecConstr.p_hiSpecialise.dyn_hiSpecialise.hiSpecialise.p_hiSrcLoc.dyn_hiSrcLoc.hiSrcLoc.p_hiState.dyn_hiState.hiState.p_hiStaticPtrTable.dyn_hiStaticPtrTable.hiStaticPtrTable.p_hiStgCse.dyn_hiStgCse.hiStgCse.p_hiStgFVs.dyn_hiStgFVs.hiStgFVs.p_hiStgLiftLamsStgLiftLams.dyn_hiStgLiftLams.hiStgLiftLams.p_hiAnalysis.dyn_hiAnalysis.hiAnalysis.p_hiLiftM.dyn_hiLiftM.hiLiftM.p_hiTransformation.dyn_hiTransformation.hiTransformation.p_hiStgLint.dyn_hiStgLint.hiStgLint.p_hiStgStats.dyn_hiStgStats.hiStgStats.p_hiStgSubst.dyn_hiStgSubst.hiStgSubst.p_hiStgSyn.dyn_hiStgSyn.hiStgSyn.p_hiStream.dyn_hiStream.hiStream.p_hiStringBuffer.dyn_hiStringBuffer.hiStringBuffer.p_hiSysToolsSysTools.dyn_hiSysTools.hiSysTools.p_hiBaseDir.dyn_hiBaseDir.hiBaseDir.p_hiExtraObj.dyn_hiExtraObj.hiExtraObj.p_hiInfo.dyn_hiInfo.hiInfo.p_hiProcess.dyn_hiProcess.hiProcess.p_hiSettings.dyn_hiSettings.hiSettings.p_hiTasks.dyn_hiTasks.hiTasks.p_hiTerminal.dyn_hiTerminal.hiTerminal.p_hiTHNames.dyn_hiTHNames.hiTHNames.p_hiTargetReg.dyn_hiTargetReg.hiTargetReg.p_hiTcAnnotations.dyn_hiTcAnnotations.hiTcAnnotations.p_hiTcArrows.dyn_hiTcArrows.hiTcArrows.p_hiTcBackpack.dyn_hiTcBackpack.hiTcBackpack.p_hiTcBinds.dyn_hiTcBinds.hiTcBinds.p_hiTcCanonical.dyn_hiTcCanonical.hiTcCanonical.p_hiTcClassDcl.dyn_hiTcClassDcl.hiTcClassDcl.p_hiTcDefaults.dyn_hiTcDefaults.hiTcDefaults.p_hiTcDeriv.dyn_hiTcDeriv.hiTcDeriv.p_hiTcDerivInfer.dyn_hiTcDerivInfer.hiTcDerivInfer.p_hiTcDerivUtils.dyn_hiTcDerivUtils.hiTcDerivUtils.p_hiTcEnv.dyn_hiTcEnv.hiTcEnv.p_hiTcErrors.dyn_hiTcErrors.hiTcErrors.p_hiTcEvTerm.dyn_hiTcEvTerm.hiTcEvTerm.p_hiTcEvidence.dyn_hiTcEvidence.hiTcEvidence.p_hiTcExpr.dyn_hiTcExpr.hiTcExpr.p_hiTcFlatten.dyn_hiTcFlatten.hiTcFlatten.p_hiTcForeign.dyn_hiTcForeign.hiTcForeign.p_hiTcGenDeriv.dyn_hiTcGenDeriv.hiTcGenDeriv.p_hiTcGenFunctor.dyn_hiTcGenFunctor.hiTcGenFunctor.p_hiTcGenGenerics.dyn_hiTcGenGenerics.hiTcGenGenerics.p_hiTcHoleErrors.dyn_hiTcHoleErrors.hiTcHoleErrors.p_hiTcHoleFitTypes.dyn_hiTcHoleFitTypes.hiTcHoleFitTypes.p_hiTcHsSyn.dyn_hiTcHsSyn.hiTcHsSyn.p_hiTcHsType.dyn_hiTcHsType.hiTcHsType.p_hiTcIface.dyn_hiTcIface.hiTcIface.p_hiTcInstDcls.dyn_hiTcInstDcls.hiTcInstDcls.p_hiTcInteract.dyn_hiTcInteract.hiTcInteract.p_hiTcMType.dyn_hiTcMType.hiTcMType.p_hiTcMatches.dyn_hiTcMatches.hiTcMatches.p_hiTcOrigin.dyn_hiTcOrigin.hiTcOrigin.p_hiTcPat.dyn_hiTcPat.hiTcPat.p_hiTcPatSyn.dyn_hiTcPatSyn.hiTcPatSyn.p_hiTcPluginM.dyn_hiTcPluginM.hiTcPluginM.p_hiTcRnDriver.dyn_hiTcRnDriver.hiTcRnDriver.p_hiTcRnExports.dyn_hiTcRnExports.hiTcRnExports.p_hiTcRnMonad.dyn_hiTcRnMonad.hiTcRnMonad.p_hiTcRnTypes.dyn_hiTcRnTypes.hiTcRnTypes.p_hiTcRules.dyn_hiTcRules.hiTcRules.p_hiTcSMonad.dyn_hiTcSMonad.hiTcSMonad.p_hiTcSigs.dyn_hiTcSigs.hiTcSigs.p_hiTcSimplify.dyn_hiTcSimplify.hiTcSimplify.p_hiTcSplice.dyn_hiTcSplice.hiTcSplice.p_hiTcTyClsDecls.dyn_hiTcTyClsDecls.hiTcTyClsDecls.p_hiTcTyDecls.dyn_hiTcTyDecls.hiTcTyDecls.p_hiTcType.dyn_hiTcType.hiTcType.p_hiTcTypeNats.dyn_hiTcTypeNats.hiTcTypeNats.p_hiTcTypeable.dyn_hiTcTypeable.hiTcTypeable.p_hiTcUnify.dyn_hiTcUnify.hiTcUnify.p_hiTcValidity.dyn_hiTcValidity.hiTcValidity.p_hiTidyPgm.dyn_hiTidyPgm.hiTidyPgm.p_hiToIface.dyn_hiToIface.hiToIface.p_hiToolSettings.dyn_hiToolSettings.hiToolSettings.p_hiTrieMap.dyn_hiTrieMap.hiTrieMap.p_hiTyCoFVs.dyn_hiTyCoFVs.hiTyCoFVs.p_hiTyCoPpr.dyn_hiTyCoPpr.hiTyCoPpr.p_hiTyCoRep.dyn_hiTyCoRep.hiTyCoRep.p_hiTyCoSubst.dyn_hiTyCoSubst.hiTyCoSubst.p_hiTyCoTidy.dyn_hiTyCoTidy.hiTyCoTidy.p_hiTyCon.dyn_hiTyCon.hiTyCon.p_hiType.dyn_hiType.hiType.p_hiTysPrim.dyn_hiTysPrim.hiTysPrim.p_hiTysWiredIn.dyn_hiTysWiredIn.hiTysWiredIn.p_hiUnVarGraph.dyn_hiUnVarGraph.hiUnVarGraph.p_hiUnariseStg.dyn_hiUnariseStg.hiUnariseStg.p_hiUnify.dyn_hiUnify.hiUnify.p_hiUniqDFM.dyn_hiUniqDFM.hiUniqDFM.p_hiUniqDSet.dyn_hiUniqDSet.hiUniqDSet.p_hiUniqFM.dyn_hiUniqFM.hiUniqFM.p_hiUniqMap.dyn_hiUniqMap.hiUniqMap.p_hiUniqSet.dyn_hiUniqSet.hiUniqSet.p_hiUniqSupply.dyn_hiUniqSupply.hiUniqSupply.p_hiUnique.dyn_hiUnique.hiUnique.p_hiUtil.dyn_hiUtil.hiUtil.p_hiVar.dyn_hiVar.hiVar.p_hiVarEnv.dyn_hiVarEnv.hiVarEnv.p_hiVarSet.dyn_hiVarSet.hiVarSet.p_hiWorkWrap.dyn_hiWorkWrap.hiWorkWrap.p_hiWwLib.dyn_hiWwLib.hiWwLib.p_hiX86CodeGen.dyn_hiCodeGen.hiCodeGen.p_hiCond.dyn_hiCond.hiCond.p_hiInstr.dyn_hiInstr.hiInstr.p_hiPpr.dyn_hiPpr.hiPpr.p_hiRegInfo.dyn_hiRegInfo.hiRegInfo.p_hiRegs.dyn_hiRegs.hiRegs.p_hiincludeHsVersions.hlibHSghc-8.10.7.alibHSghc-8.10.7_p.aghc-8.10.7.confghc-8.10.7Annotations.htmlApiAnnotation.htmlAr.htmlAsmCodeGen.htmlAsmUtils.htmlAvail.htmlBag.htmlBasicTypes.htmlBinFingerprint.htmlBinIface.htmlBinary.htmlBitmap.htmlBkpSyn.htmlBlockId.htmlBlockLayout.htmlBooleanFormula.htmlBufWrite.htmlBuildTyCl.htmlByteCodeAsm.htmlByteCodeGen.htmlByteCodeInstr.htmlByteCodeItbls.htmlByteCodeLink.htmlByteCodeTypes.htmlCFG.htmlCLabel.htmlCPrim.htmlCSE.htmlCallArity.htmlClass.htmlCliOption.htmlClsInst.htmlCmdLineParser.htmlCmm.htmlCmmBuildInfoTables.htmlCmmCallConv.htmlCmmCommonBlockElim.htmlCmmContFlowOpt.htmlCmmExpr.htmlCmmImplementSwitchPlans.htmlCmmInfo.htmlCmmLayoutStack.htmlCmmLex.htmlCmmLint.htmlCmmLive.htmlCmmMachOp.htmlCmmMonad.htmlCmmNode.htmlCmmOpt.htmlCmmParse.htmlCmmPipeline.htmlCmmProcPoint.htmlCmmSink.htmlCmmSwitch.htmlCmmType.htmlCmmUtils.htmlCoAxiom.htmlCodeOutput.htmlCoercion.htmlConLike.htmlConfig.htmlConstants.htmlConstraint.htmlCoreArity.htmlCoreFVs.htmlCoreLint.htmlCoreMap.htmlCoreMonad.htmlCoreOpt.htmlCorePrep.htmlCoreSeq.htmlCoreStats.htmlCoreSubst.htmlCoreSyn.htmlCoreTidy.htmlCoreToStg.htmlCoreUnfold.htmlCoreUtils.htmlCostCentre.htmlCostCentreState.htmlCoverage.htmlCtype.htmlDataCon.htmlDebug.htmlDebugger.htmlDemand.htmlDesugar.htmlDigraph.htmlDmdAnal.htmlDominators.htmlDriverBkp.htmlDriverMkDepend.htmlDriverPhases.htmlDriverPipeline.htmlDsArrows.htmlDsBinds.htmlDsCCall.htmlDsExpr.htmlDsForeign.htmlDsGRHSs.htmlDsListComp.htmlDsMeta.htmlDsMonad.htmlDsUsage.htmlDsUtils.htmlDwarf-Constants.htmlDwarf-Types.htmlDwarf.htmlDynFlags.htmlDynamicLoading.htmlElf.htmlEncoding.htmlEnumSet.htmlErrUtils.htmlException.htmlExitify.htmlExtractDocs.htmlFV.htmlFamInst.htmlFamInstEnv.htmlFastFunctions.htmlFastMutInt.htmlFastString.htmlFastStringEnv.htmlFieldLabel.htmlFileCleanup.htmlFileSettings.htmlFinder.htmlFingerprint.htmlFiniteMap.htmlFlagChecker.htmlFloatIn.htmlFloatOut.htmlForeignCall.htmlFormat.htmlFunDeps.htmlGHC-Hs-Binds.htmlGHC-Hs-Decls.htmlGHC-Hs-Doc.htmlGHC-Hs-Dump.htmlGHC-Hs-Expr.htmlGHC-Hs-Extension.htmlGHC-Hs-ImpExp.htmlGHC-Hs-Instances.htmlGHC-Hs-Lit.htmlGHC-Hs-Pat.htmlGHC-Hs-PlaceHolder.htmlGHC-Hs-Types.htmlGHC-Hs-Utils.htmlGHC-Hs.htmlGHC-HsToCore-PmCheck-Oracle.htmlGHC-HsToCore-PmCheck-Ppr.htmlGHC-HsToCore-PmCheck-Types.htmlGHC-HsToCore-PmCheck.htmlGHC-Platform-AArch64.htmlGHC-Platform-ARM.htmlGHC-Platform-NoRegs.htmlGHC-Platform-PPC.htmlGHC-Platform-Regs.htmlGHC-Platform-S390X.htmlGHC-Platform-SPARC.htmlGHC-Platform-X86.htmlGHC-Platform-X86_64.htmlGHC-StgToCmm-ArgRep.htmlGHC-StgToCmm-Bind.htmlGHC-StgToCmm-CgUtils.htmlGHC-StgToCmm-Closure.htmlGHC-StgToCmm-DataCon.htmlGHC-StgToCmm-Env.htmlGHC-StgToCmm-Expr.htmlGHC-StgToCmm-ExtCode.htmlGHC-StgToCmm-Foreign.htmlGHC-StgToCmm-Heap.htmlGHC-StgToCmm-Hpc.htmlGHC-StgToCmm-Layout.htmlGHC-StgToCmm-Monad.htmlGHC-StgToCmm-Prim.htmlGHC-StgToCmm-Prof.htmlGHC-StgToCmm-Ticky.htmlGHC-StgToCmm-Utils.htmlGHC-StgToCmm.htmlGHC-ThToHs.htmlGHC.htmlGHCi.htmlGhcMake.htmlGhcMonad.htmlGhcNameVersion.htmlGhcPlugins.htmlGhcPrelude.htmlGraphBase.htmlGraphColor.htmlGraphOps.htmlGraphPpr.htmlHaddockUtils.htmlHeaderInfo.htmlHieAst.htmlHieBin.htmlHieDebug.htmlHieTypes.htmlHieUtils.htmlHooks.htmlHoopl-Block.htmlHoopl-Collections.htmlHoopl-Dataflow.htmlHoopl-Graph.htmlHoopl-Label.htmlHscMain.htmlHscStats.htmlHscTypes.htmlIOEnv.htmlId.htmlIdInfo.htmlIfaceEnv.htmlIfaceSyn.htmlIfaceType.htmlInst.htmlInstEnv.htmlInstruction.htmlInteractiveEval.htmlInteractiveEvalTypes.htmlJson.htmlKnownUniques.htmlLexeme.htmlLexer.htmlLiberateCase.htmlLinker.htmlLinkerTypes.htmlListSetOps.htmlLiteral.htmlLlvm-AbsSyn.htmlLlvm-MetaData.htmlLlvm-PpLlvm.htmlLlvm-Types.htmlLlvm.htmlLlvmCodeGen-Base.htmlLlvmCodeGen-CodeGen.htmlLlvmCodeGen-Data.htmlLlvmCodeGen-Ppr.htmlLlvmCodeGen-Regs.htmlLlvmCodeGen.htmlLlvmMangler.htmlLoadIface.htmlMatch.htmlMatchCon.htmlMatchLit.htmlMaybes.htmlMkCore.htmlMkGraph.htmlMkId.htmlMkIface.htmlModule.htmlMonadUtils.htmlNCGMonad.htmlName.htmlNameCache.htmlNameEnv.htmlNameSet.htmlNameShape.htmlOccName.htmlOccurAnal.htmlOptCoercion.htmlOrdList.htmlOutputable.htmlPIC.htmlPPC-CodeGen.htmlPPC-Cond.htmlPPC-Instr.htmlPPC-Ppr.htmlPPC-RegInfo.htmlPPC-Regs.htmlPackageConfig.htmlPackages.htmlPair.htmlPanic.htmlParser.htmlPatSyn.htmlPipelineMonad.htmlPlainPanic.htmlPlatformConstants.htmlPlugins.htmlPprBase.htmlPprC.htmlPprCmm.htmlPprCmmDecl.htmlPprCmmExpr.htmlPprColour.htmlPprCore.htmlPprTyThing.htmlPredicate.htmlPrelInfo.htmlPrelNames.htmlPrelRules.htmlPretty.htmlPrimOp.htmlProfInit.htmlRdrHsSyn.htmlRdrName.htmlReg.htmlRegAlloc-Graph-ArchBase.htmlRegAlloc-Graph-ArchX86.htmlRegAlloc-Graph-Coalesce.htmlRegAlloc-Graph-Main.htmlRegAlloc-Graph-Spill.htmlRegAlloc-Graph-SpillClean.htmlRegAlloc-Graph-SpillCost.htmlRegAlloc-Graph-Stats.htmlRegAlloc-Graph-TrivColorable.htmlRegAlloc-Linear-Base.htmlRegAlloc-Linear-FreeRegs.htmlRegAlloc-Linear-JoinToTargets.htmlRegAlloc-Linear-Main.htmlRegAlloc-Linear-PPC-FreeRegs.htmlRegAlloc-Linear-SPARC-FreeRegs.htmlRegAlloc-Linear-StackMap.htmlRegAlloc-Linear-State.htmlRegAlloc-Linear-Stats.htmlRegAlloc-Linear-X86-FreeRegs.htmlRegAlloc-Linear-X86_64-FreeRegs.htmlRegAlloc-Liveness.htmlRegClass.htmlRepType.htmlRnBinds.htmlRnEnv.htmlRnExpr.htmlRnFixity.htmlRnHsDoc.htmlRnModIface.htmlRnNames.htmlRnPat.htmlRnSource.htmlRnSplice.htmlRnTypes.htmlRnUnbound.htmlRnUtils.htmlRtClosureInspect.htmlRules.htmlSAT.htmlSMRep.htmlSPARC-AddrMode.htmlSPARC-Base.htmlSPARC-CodeGen-Amode.htmlSPARC-CodeGen-Base.htmlSPARC-CodeGen-CondCode.htmlSPARC-CodeGen-Expand.htmlSPARC-CodeGen-Gen32.htmlSPARC-CodeGen-Gen64.htmlSPARC-CodeGen-Sanity.htmlSPARC-CodeGen.htmlSPARC-Cond.htmlSPARC-Imm.htmlSPARC-Instr.htmlSPARC-Ppr.htmlSPARC-Regs.htmlSPARC-ShortcutJump.htmlSPARC-Stack.htmlSetLevels.htmlSettings.htmlSimplCore.htmlSimplEnv.htmlSimplMonad.htmlSimplStg.htmlSimplUtils.htmlSimplify.htmlSpecConstr.htmlSpecialise.htmlSrcLoc.htmlState.htmlStaticPtrTable.htmlStgCse.htmlStgFVs.htmlStgLiftLams-Analysis.htmlStgLiftLams-LiftM.htmlStgLiftLams-Transformation.htmlStgLiftLams.htmlStgLint.htmlStgStats.htmlStgSubst.htmlStgSyn.htmlStream.htmlStringBuffer.htmlSysTools-BaseDir.htmlSysTools-ExtraObj.htmlSysTools-Info.htmlSysTools-Process.htmlSysTools-Settings.htmlSysTools-Tasks.htmlSysTools-Terminal.htmlSysTools.htmlTHNames.htmlTargetReg.htmlTcAnnotations.htmlTcArrows.htmlTcBackpack.htmlTcBinds.htmlTcCanonical.htmlTcClassDcl.htmlTcDefaults.htmlTcDeriv.htmlTcDerivInfer.htmlTcDerivUtils.htmlTcEnv.htmlTcErrors.htmlTcEvTerm.htmlTcEvidence.htmlTcExpr.htmlTcFlatten.htmlTcForeign.htmlTcGenDeriv.htmlTcGenFunctor.htmlTcGenGenerics.htmlTcHoleErrors.htmlTcHoleFitTypes.htmlTcHsSyn.htmlTcHsType.htmlTcIface.htmlTcInstDcls.htmlTcInteract.htmlTcMType.htmlTcMatches.htmlTcOrigin.htmlTcPat.htmlTcPatSyn.htmlTcPluginM.htmlTcRnDriver.htmlTcRnExports.htmlTcRnMonad.htmlTcRnTypes.htmlTcRules.htmlTcSMonad.htmlTcSigs.htmlTcSimplify.htmlTcSplice.htmlTcTyClsDecls.htmlTcTyDecls.htmlTcType.htmlTcTypeNats.htmlTcTypeable.htmlTcUnify.htmlTcValidity.htmlTidyPgm.htmlToIface.htmlToolSettings.htmlTrieMap.htmlTyCoFVs.htmlTyCoPpr.htmlTyCoRep.htmlTyCoSubst.htmlTyCoTidy.htmlTyCon.htmlType.htmlTysPrim.htmlTysWiredIn.htmlUnVarGraph.htmlUnariseStg.htmlUnify.htmlUniqDFM.htmlUniqDSet.htmlUniqFM.htmlUniqMap.htmlUniqSet.htmlUniqSupply.htmlUnique.htmlUtil.htmlVar.htmlVarEnv.htmlVarSet.htmlWorkWrap.htmlWwLib.htmlX86-CodeGen.htmlX86-Cond.htmlX86-Instr.htmlX86-Ppr.htmlX86-RegInfo.htmlX86-Regs.htmldoc-index-124.htmldoc-index-33.htmldoc-index-36.htmldoc-index-38.htmldoc-index-42.htmldoc-index-43.htmldoc-index-45.htmldoc-index-46.htmldoc-index-47.htmldoc-index-60.htmldoc-index-61.htmldoc-index-62.htmldoc-index-94.htmldoc-index-A.htmldoc-index-All.htmldoc-index-B.htmldoc-index-C.htmldoc-index-D.htmldoc-index-E.htmldoc-index-F.htmldoc-index-G.htmldoc-index-H.htmldoc-index-I.htmldoc-index-J.htmldoc-index-K.htmldoc-index-L.htmldoc-index-M.htmldoc-index-N.htmldoc-index-O.htmldoc-index-P.htmldoc-index-Q.htmldoc-index-R.htmldoc-index-S.htmldoc-index-T.htmldoc-index-U.htmldoc-index-V.htmldoc-index-W.htmldoc-index-X.htmldoc-index-Y.htmldoc-index-Z.htmldoc-index.htmldoc-index.jsonghc.haddockghc.txthaddock-bundle.min.jsindex.htmllinuwial.cssmeta.jsonquick-jump.cssquick-jump.min.jssynopsis.png/usr/lib64/ghc-8.10.7/ghc-8.10.7//usr/lib64/ghc-8.10.7/ghc-8.10.7/Dwarf//usr/lib64/ghc-8.10.7/ghc-8.10.7/GHC//usr/lib64/ghc-8.10.7/ghc-8.10.7/GHC/Hs//usr/lib64/ghc-8.10.7/ghc-8.10.7/GHC/HsToCore//usr/lib64/ghc-8.10.7/ghc-8.10.7/GHC/HsToCore/PmCheck//usr/lib64/ghc-8.10.7/ghc-8.10.7/GHC/Platform//usr/lib64/ghc-8.10.7/ghc-8.10.7/GHC/StgToCmm//usr/lib64/ghc-8.10.7/ghc-8.10.7/Hoopl//usr/lib64/ghc-8.10.7/ghc-8.10.7/Llvm//usr/lib64/ghc-8.10.7/ghc-8.10.7/LlvmCodeGen//usr/lib64/ghc-8.10.7/ghc-8.10.7/PPC//usr/lib64/ghc-8.10.7/ghc-8.10.7/RegAlloc//usr/lib64/ghc-8.10.7/ghc-8.10.7/RegAlloc/Graph//usr/lib64/ghc-8.10.7/ghc-8.10.7/RegAlloc/Linear//usr/lib64/ghc-8.10.7/ghc-8.10.7/RegAlloc/Linear/PPC//usr/lib64/ghc-8.10.7/ghc-8.10.7/RegAlloc/Linear/SPARC//usr/lib64/ghc-8.10.7/ghc-8.10.7/RegAlloc/Linear/X86//usr/lib64/ghc-8.10.7/ghc-8.10.7/RegAlloc/Linear/X86_64//usr/lib64/ghc-8.10.7/ghc-8.10.7/SPARC//usr/lib64/ghc-8.10.7/ghc-8.10.7/SPARC/CodeGen//usr/lib64/ghc-8.10.7/ghc-8.10.7/StgLiftLams//usr/lib64/ghc-8.10.7/ghc-8.10.7/SysTools//usr/lib64/ghc-8.10.7/ghc-8.10.7/X86//usr/lib64/ghc-8.10.7/ghc-8.10.7/include//usr/lib64/ghc-8.10.7/package.conf.d//usr/share/doc/ghc-8.10.7/html/libraries//usr/share/doc/ghc-8.10.7/html/libraries/ghc-8.10.7/-fmessage-length=0 -grecord-gcc-switches -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables -fasynchronous-unwind-tables -fstack-clash-protection -gobs://build.suse.de/SUSE:Maintenance:29433/SUSE_SLE-15-SP5_Update/e1f5fca9735dfc7fd9c5836ec7b2940a-ghc.SUSE_SLE-15-SP5_Updatedrpmxz5ppc64le-suse-linux  directoryC source, ASCII textcurrent ar archiveASCII textHTML document, ASCII text, with very long linesHTML document, ASCII text, with very long lines, with no line terminatorsUTF-8 Unicode text, with very long linesUTF-8 Unicode textASCII text, with no line terminatorsPNG image data, 128 x 104, 8-bit/color RGBA, non-interlacedPRRRRR R R R R RRRRRRRRRRR E2 G utf-82b2d2d57173f16351d7cb73c1970f286457b155df5e065c99230846fcc9dfb52?7zXZ !t/̱%s=E]P.X~ .B+U@wỳ_^SgLu;[ NZ_j_,jK]~.S@`7ŻB8HŴCw:$X(Ujg\1إdZ[xꐤ9eogOi[@P"&mkF11|+⥿oKUUfc+Gy,ՓoN ty((DN2VlGυe1 oZ?1r41^1&cx P vYWو:j`,F<IBI*@ ޹? 9>Ki=*G#vjJG3SDS_RPp.::H{1tbۼz@>J|&*f%~" FlHAE0Ҏu=c⽨^7]biCvʥHpQtҢ"BBIlWp;; /)*CRTM:>y-a݀w!(ᐇ"$![oe6IL\IO5]~78ZiL+ZDouZ^D4P"J7Fѳ0ӡ`r$P&0TV `9`R,2OV'Fz}Mr$_3$I )3rCJ4@nѧ#3.:sv}eHjO%jPD霡SpߤV„Z;? ZCb7h>2:7;| S}Ukgo{0 )zJVcX~o|h+ڌk 6a-7~4D.,Q,Jԋu,Ke?PhIK;ᅾBmgr1 ~~)TRblJ7MblNO5 (AhYYodlfqD{|>`$k6JP'B%ص?j5?t,8SEQ*@J<fĥ-"}y69ru*-N΋C0L<xw92֦՚Tޏb(άCnxEC-Ho1gw#Obap!@th=z"F>hqK>3/KUU \ R DHS:ZT'm7VjynG(s 8Cƈ? UV!B(U`*p(%l܋C=߇]X~a?F-| զ*!WCkPM؂ qguPt$1r 9:WԎeXVAQ$[VU*c4w{M[D= I$yTǃ_ Fm3բܝ7 T$s{x?=ʾ0Astk(5l>gb{1730ɯT( 9PzO _ pN_&rm%|ģ,%$]NZUJ=0R!5sï*\J8Lv6APR0`$ͱr$`#;gHwǡzt/m Men8`!\X{)i$>u}۟ɛ t-(~!Gg, t\O޽:fHf(lnjX#8 X LW\ 6OZXzDmk{ ^={i:JB N?Ur*rz$Eզ0s &f*?(7$Q8|`M#>Ρ[!6[FqiP@Ң&3BzDol)./X˯S48SZ=:tV-)8T>R )hѩv{ZGi;5_?hݧ$s{dIHhݖwoLnΜѸoH]Ƣ:+u[~g$`o &_ Ll}?gxX̪J[ȬKxV0ې`ޭ(d쀢 3,-, ۶MxrP!u-(%A*ۥooEs9U IYD2ӛkv@ŏZMq]$t+gDcWzRnʉ%8b'zj#CBivPZ)E$R3uˆjQ-؟ri75HY7#Ao^bM T(coLgv7c nwѡP}]u䌗PNT"ĩ 3UL( %㖙f!NsվnA ر럷Z?N .bGme)utg!E`f%h.5쯷 ]^ \믋uه}w( yoqAوy=NY{W8R>ӂi_*%51xSCš*ApoCr)\*`TD,zu8PyĮTDP\}E7A"ݗG {I誽}l%NbD+\5q}1~tkD> gA1i@R*P1]2E[VN FAH=)b[~@$1gjt(TT#<%%Qqw kB sz٣+>_GPB.h=ZL1A^gw%ZjxCD¢#5:$ͷ3%LVVy,C -?iViZ[Wt ,8 %I{l"Kp*fHHCҿSrɔML̯Cͥ=jحo곣s@F \% b^6$Θ)!tN# S4>7zp=x=B(DTmu) U''2X7i3 AK=\̩m&^-wDG }{Ue` , >{5nߙ|,SDlG|4#*J!Sk[RJ<7{(w $lښgxWbF4nN@6][vvQЏ¶vdךt |ޟ99K2]2ymZDXF0fESN_I+ڥgX*Uq="!4!.ŸoC{ؓKu/4@p<5Tc]/# ,⎨$+fs={* n#%pL[ ޿,>㘇+y)A>.g:s}H72W> L,̨W3&Hsj%J ĴV> ] 3PgB Vk;^Hc <%@볬7_\m':t5r[-tvDE~*ef8ؤQt#%@U@t; P}Z~CdKR. ,q}Z VȈLid[2O*]:WzVqqanivr1"Mvu jO.s. rW@~ ngUXX~>{1w%AF]Ta;>$EMʢ{CI5ZЯ9s .<óZ?hOFs|>lHZkCx@meYrF|$]/0J5`DB6i~@ I_č; B!ojY3 mdTM㱧 ƅzqq2q;,[8z2Ԁ!eƱ(>eGPbF*Xˢ|oIe/'ڶ({ c_GLn€Zv1H-x] <. ˇ Z:m'DkU{!};ׁz $^=a$=\DM[%m?M,S625z2~'{S{4OD܎k빌 |<gX {nDI Ưw=]4$;8=>vZ~ĺPlT-t暫jEdcI;_ GVK)7+w @6>(\'S hB*+ξ퀒͉cZ*^a0sZr:eatjw0.=9!'J0'Ѕ8R<r>X`dT7Fw}#3U{\>%ቲ 9`]d2F!To' n'l){SFZ',rۀ׿`9K-@*Vs[M0~-$+7Q;׺VuȬ f. X3N*֖Y',6tYѼ5"܎4~ʢǛ_*FRE|ަDƭ #LNܲ.hWNa xV⥦j>?H؆iV}N=؋,ALz`Cw ]Xs9.dH2MSN834yMHGRUҠKVyhD4.HEZMdxXQJ. JDhPގ[8,u5j1Nvkұϵ!MEET>ʇ?ᒞɝ6<=ASLRٺoo4o{w8$\lDjp{@ A7H>ɩbz_gzE(gd+^ !'"NO?EF]]WNgcq MK3AJ7Q_}V6q{:;H||gD\3)F<\Oۭ6%bo!S]B.`h8d2煢 دM<8*ۅَz^#5{̸[4u/dՈ4.S @|$[t>r{q>i-FW ONz?r 0ZZHN-3|-LJj:hD8<*P2;{Rَ!%!C$`K$}Rg^e9YOPzGPyW%F. L2Hˉ $$iwO^+勮*t<7O:r$c/$;RraNZj."{Tf9Ì*}{J%0wq `3"-MHN38 ɿ͵ͣڽg2'U@7E;pו~ Pr, k+pw.+3Af۸# }Q˙_z!1i,TmKːZ;P%rdE^h6ľ_17sQǛf4ؙ42%*ªĹHOy&|3 FuSk_fz?.u*UA|5tLme7'*Ǜ%KQ<u,[-s߯4U#6EXqi=˛lIrrMiUYα1k0a?"~;;,;09Apk&u6"s_iisl+".RD+NRzNM@弸H>#Oڌ2"ZʔNrU SM5N{u 4\6>BFv ]?8gFe:E,M%GD!+56V8K0<3:۳^aD4͂tVf2Q.i|UɋG_rʶ(c {wq4pFqQ9S«su K{̮Ͽ*QxBm YZ