llvm11-devel-11.0.1-150300.3.6.1<>,@cp9|b `R%@a(~t nid:vz y!+77~ \H淡,9a&[)h8mQeS]֡zi>ٯV:WW}ӥ{~Md9vKWsf)KzB%J?<Χ<8Yu<3>o}kh ak=. w x\=VL][%ˆyikz&Ⲟr,6dUtep ^S>C(?d # 9% ;[qw ( 5 O @ !tAB\\l\_N___(_8_9b:l>e@tFGHI/X6Y6,\6d]Pd^\b.cdXe]f`lbuxvx wtxtytzCllvm11-devel11.0.1150300.3.6.1Header Files for LLVMThis package contains library and header files needed to develop new native programs that use the LLVM infrastructure.cibs-arm-4zSUSE Linux Enterprise 15SUSE LLC Apache-2.0 WITH LLVM-exception OR NCSAhttps://www.suse.com/Development/Libraries/C and C++https://www.llvm.org/linuxaarch64 2 3  *W / U$32% /X% ! %qN)/#3Gv.G; $-%P)&:i *xx:8dyL+^  ~# e++G5".u(,0 n 9Q! ^ Q%QnC!|"7MhGP- 5>M~ (mEG Y/ K!@6 'aC5+ =!(Y(e%=VK # H LGS(4| m:<J q"-U L5nX*0 x^Ȅ iovO/l#Mn, 5SH+:6 P g(v %1'd8J4 dY rq OM gk,%iCqe 3qc<K+ !/( \CU$33K+ &I d D t #m ]8Y^*0{/[ ~- g:XGAK6-.mh f &]Sv^y[x& #Y8*  Uc [Jo $?0G;/ d_ x%k Y F(:Y Os-) c3U d _  &[Z &[^(+12' t# *fT wjrD?6 V!RWK*A rqT%" 7 0Fs=+dP5o`w-fv&-!LQ.~G›2"D-z | j|-:WFMA&IW :h r  `Mj I_`G )H 0n TAi #&~Bt 'R \X: n 5.?Nm g  rFj0+@PD5; ^M!1/q/ H# "T8VZvdW(9&dm|ej ,cHm N (ar1 .]'rzR = AS- .@? #/y   ,N&=/p ? wStC>\@tM [(G jTi YAaB9{|Cl +*Y8|fR> ((O <:&(dA-DT#KOZ vB".1!K9Q?> oUP| J  %@#W7_%!N( Vg!u`u|Fk;L  '2}. mT&jNcI?]?7Y"zUt! ;N[A%7.K{ ? >JAS%jQ8 o mH"?#BEf ?{+-HNN ) 6ض/% ]`b6mK E/ _vHl8Z R[Y'~JOK%V.#=-G / f \ed.@j$  ~? UV5hF= 1d $'BD#3G+0]WIWs@  0  4(*76y" & n V > 2o( y dH)Ez. [_  .  .Z k8dM`sBoV w -/m0#K6 o4c$6A 2s)RU%&8?MDB-L#2)2-^(] 20WvBH< j8u .p) P0G "fK#I=3B*\ &`$1),(_, n'v7M-% 2Sy9#4J- rP% 6='8{@c/* , p!b { / }}B +W>g*%<)c ( zh AOz-% #L){ 46rX SP *~ #< `"" ,qD(u DA+x$SH,VYS 9QK,zQ 5 0 c 7?/<d~ wK >6 jVU _.c,q>(1 &   ! F) :xZ' tS@wPL * ClzJzg'* *|2EP#7 AUlIi?dv;&db )j>& c  - 62` * ,S?& 5] 1^&R k o@Dy f <c+ jUR9%!Cw >!G{+fa#PH3.hM "y~1)o/kDL y Q<IQ<L :3\2ell#/9$! 0;%AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤AA큤A큤A큤AA큤A큤A큤A큤A큤AA큤AA큤A큤AA큤A큤AA큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤A큤ccc_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ c_ _ c_ _ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ c_ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ ccȾcȾcȾcȾcȾcȾc_ _ _ _ cc_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ c_ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ c_ _ _ _ _ _ _ c_ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cc_ ccȾcȾ_ ccȾcȾ_ _ _ _ _ _ c_ _ _ _ _ _ c_ _ _ _ cȾ_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cȾcȾ_ _ _ cȾ_ cȾ_ cȾ_ cȾ_ cȾ_ _ cȾ_ cȾ_ cȾ_ cȾcȾ_ cȾ_ cȾ_ cȾ_ cȾ_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ c_ _ _ _ _ c_ _ _ _ c_ _ _ c_ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ c_ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ c_ _ _ cc_ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cȾ:_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cc_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cȾ_ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ _ _ c_ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cc_ _ _ cc_ _ c_ _ _ _ _ _ _ _ _ _ cc_ c_ cc_ _ c_ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ c_ _ _ _ _ _ c_ c_ _ _ c_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ cccȶ _ _ _ cȶ _ _ _ _ _ _ _ _ _ _ _ cȶ _ _ cȾ:cȾ:cȾ:_ ccȾK_ _ _ cȶ _ _ _ ccccy_ _ cea52ae6204e02f252e51210d79504c02f093fd3fb70ae5ede57848354f0cae8fbb3805c5c657bfeee4cf2254dc696b73ae0036a6ecc2c36fb027cb34f2c4652e8cad319f2d3de1c2b03519f6c2384442d5d32176e237def6229057fec1ebba0fefb0e77bbeea499bcde27f08e88aab8bf579b9562dd85f5032d7f5baf1f56543722971f65e07c71647845958cf4189666784a876834607d581402de44f2809b52190d1b0e228a152af1ccb711662272858c3979b0a1961ac100a49c373e2f95274bb192c7f5885db915775231b47ab0ba80664854d73a7d32f5e1fa151d23b476754519264b263094908aa2f8817ea85c3ce6e967fc1b72edb2f5c7a9d8269aae5ec07395ffffaa8e4ff779f8fb3727bc465a5b3ac427bd734a4ff5254ba132b0b0bea2f29dd7427239620e5c2b53761a05ef81d79568b4f6867ce440e9ae1805947ed86c800d1a613c4768000739e8a29a2278ef43da371e2ae5ae8da469b02a8d3f4efed0cdc4b07b4d07b0d36e2805d673407aa17a394db5ec9f801ffaf2f26204056226f5716e260a82b49f70a0b80f384d10535fb945e4f4e80bbd121fbb4be83e845fbe78a89be78742854f1ab142f11f4d4ef59ddcc5fbab689e5f70a5c967e938f1d56f196cc5a8650365f8dd9da8b454972cfaa91d915cad64ac7be9486e1f334d11ded34e2283f106e0e65e79ba6b4acd22cae5942d5f4e74abfe86ecfef7b22291eb78cc752ce6c8ca04f7862c19fee58680336f7e04f24685afa5faa4cceb9be98a8bb3747e4b2a46b55a438d4417ced49cf2a4b6dbf65300ec7dfd74b33aaa6f36dba036e609c42f8d6850c791cd6ba9bb1fae6b00bc51f67011980ac805a6a49c1ed1173c35a0c655504654def89faa65e344e374cdd0026c216b861b56763ad0357d532e4a76be3a35a935fc1d49d955bc7664845d1093d868f4595fd831557ea13d73a311995b21f9c01cb8095e7f6cc39bbe48af9166f0c172fdb850da98f3f750becbd5031b1f3a7a8bb841b9caad332c83b4eec7d2d0c85795c3910155218473b79bccf42d85b4a17e5dbaaeec5afb8f94a8d1974ddb0514e357f7807270a10a69008cbfa630f6b877a1dc133c15409d9efd5fc36dea59ad27671e42e2d4f6ebde34dcd196d07e7aa4764258759a4fe80ebad675f1572a495a4d93eca5d39e5b93be86920815beaa130c2dd42333954281014337103caf12585d084070d6496bdfe74744d52052d4096dc660d4d83b3a176d29cc5b5af6c75a01e01cd0e31ea1b952d7c97b82994de6e336fd8b2bb2be9efe2c6c988e6443fcdbbcfd365fbf0d3b3294d2468a8fad85b22d9f01982ffea168536480c898cf9de7678ed948a6e9c448936cf6b84263f3508acea8874252641acb83ee3e1313a68f15e6984f4dc6164a72e9d5e6cfe1e98573100908d52986c027d21a3732e918e0db3e626915562eca7d24edf9f416bbe4bfd0ebd7619c110044a20965df1c4c8ffab09dfef99eecf4a876bd89405270ebc2846176b05cc0677fb626b7f7097795f1b3950e6fac389ffd1a709e279200d8353dc80b1b0fe14560573ae5662b7a22e1d0d13a5519d6b59862909f9ef82ed55610f01ff66f3666fb1b9eb291a7b5f89faf35c9727cf7eca54cbe9a034794a1b697a50b55c0eb913811284fbb05ad33278ac790b6cbbe81d18625743ce24b344d4d6c1d6eae36ca72cca2d2d5f895997891fcadd72ba5d216a776318b2007de85a5a18a657c896ba8b3ae0c0bf6ac8a4b1bfda4b861e7f74e52c6bd780e9e627858c71704bd3cd3291b5c55092f21d4981f8075ff3d2c9979ca3593a5c1b42c417a1055bd169bb2f35b8711c21163a34d1da86330ad56725415edbef8e01ef36ff241c5d5d151b1a5119ad872d1991966181bf9a780c7a842caafd72df09bdabed66c0d769828e5482c86552b2120fc1e284ae2ee1511b12a82162993f66af4f3a3631514762f83c76249f478de721719e7bca5ad2f840840fc6408df21ee30d9ae36b38066e2bae136b80bebc4e15b126f7f75349dda6f1c3820fd03d3e5427f18558367d9bdc8c7922968c33cdfeefd11c457537c4d6e26f101b159010366ffd4bd6e20de43447e054518fb5cd3e378b234e82da9d30dd3603ffb0c297b840fb345a53950485b69d1bc22ff59f3958d547a9eed465d55bf89445d228cb78d075875b390f249c8a6bf5abceda0880777efa697097028b8a6b985736298ec0814f0ceaf72eaf6e61d0969372e87d51f7319175d6336a2db5f5b6907ce8424658cc2be8d6fb213973aad8a12773e425d739f8bd9f6efb6c9ee40ed971f8235f06fd4ce0c2653e807bca0bef6664aee742998be42c5172d56a5601d7c4cb00f1c20a4f9fe43c86d439cf25e880d4f65ba02317459f5b064d5b2cb067198e337c51a8206e8aaf64ae8031b3ea30ff271f21b840db7ec218eb7f0be090c5507be97f43d0021733c07956ba2b373e83ebc237001c5d0a13e0070255fe91dbfc469c620a4bb27f2883e8d5b1d5d13bce3a7268aacfea210fa79b88d94fa662795e38a03c897298fd2a3208a52026a1e675f364cebe603e6f39fa44b04ef2ac700baeecb5c7a95be29dc2b0a9e2ba925ac3d7e6c897db217cdf53291e6663527fa067118df9af44e415f1f9dbb47818f6a7e047f95250fe364bb292ec2cbb00900f8dbcb752a35f74d5b5643e1c05619fafb1b40dc17d911aeac36be37fea301b0f22a19f75745f0e6ce581314902a83e6132880640c5101cc64b0262c1e0521cc7cb31a306a71cd1842f558e19039ae749320885bc36da5ce58033535f554e76a8585ac9f9f96b0802e7a0a234c8e8feadb533dcb2513cd47e4d64ff240fa4b126d3c458ea4e88be5412e3eb0bc8cfa2cb12bc7526580c54aaaefedf83f3bc4b8760a0b83f4348bfe51eeb39ceaa996e40315db364faed69efc6c48ea3e11456b44a14f4fdcb196d4b4a48aac93877b9123dad09a4bf5f910a2b1471b3d4ddee63284d7572a334abbcc2f5fb28947b56dbca87f79eceef328fadd626c2e0c998699aa0281fa8d06462baeb313b33865015804401511405a134411c814c01a67f07ca8a14f5f84cdd42f2f45014cd65ebed2313ae206746b59be7162ebe7b8ec19557c47326af7ee3d6a73b682bd607ede09c2c802cda6654bba2ddd338ef57d69dc82e32f65121c54e949f3a980ae627d92d5589e5d63645d946f13356948fa5f89ebc8723551103152571544e6146723917d3d0a079d6eadc1c6f7b7b71aec88296326ed6256b1b5621c4cabfb5d8944d8d867d96e76602347dc7a1626b2ab92ec790e75cad9734a343e23770ea404b8e11937bd0884af3eef3c18c00fd88a4ddb2901cf3c8a3c0f88db12a83997b4699c60ea988f65548c6cdf5811051b5cb28159b08cde18d52b3a2a8567c9d121c6e797db7ce9cb12b84d04479fecf31d1ebd165e006ffb969a958674a0529381045a2539f27b2e2946fa6a9d296ad3cc2c7ebe1afbe5d6ed33097e04736081bdb3f65f8a625929eb6c4562bcd0614521f40d5985345eacb174800eabc2a8dad7b3c020de5dc7ee194ba51a125ad9b7eb81f4fc6477f68af4288705203cdd5ae925af8e5ab57101a9ef89ad7e97bf0cc102e383320874dd218073e304b0ed28d1225d5f0a2dd10984d9f264172382ea1f548a67c4eeb97b211c55d06e91e8d513c24aeba7d6cc48303d4620eebb281881ac8cbf4cd732329865d482f4a09951e8c8a1d5021702a0457e3ba97ebb0c7da43fe8aa97116269a4d96050e900dd8792cc917c6e435528a550cc1e1475b5e31368db038ae8009de26b53bd1c97207d93e32f028d4878f029509c8f53a3ec3d62234651ef7cecb73e0bdd47ae5024dc848d1cc84453d3ad7c64093ac8965e7565b88578fc5c7323699bba8685de11471c0c35bc0f0698c9b9b5adb732f84df4d723bdae8773fd7c82ef17c57cb4c8f584ac352b6026ab4042371265173e609da9613f59954fdd3e3af1e87b52345e71e1c75d34913af619f1d3cee624109d370b4850f5cadf1f5238b3db1fef260b094a4f7b5c0c3246446c59746483d197038a2555bdb125f86f543349bdafac3fe0894371e5f917bea29d8e17450c3094585625516b415afbeadc0175d51e6a4edaaf726b1f2b4af470dc45a63abb73afe87b1e2f45cefbbe268f6d43073a1775c232f5e2a18c594a493e50aa4496eb1d552b97df57336ac19920da47a6333d54bdf702af5d3deb615f8e5cce5f0172cc455e96174cd96115f51c2428e895f0c3bb3c59224b4ecceba95734758ad7bcceb99a3509bab911fb69623e157025e5d0a816dcc562754a6cd61867810cc3cc123f9e67ba927f15a44ab715acb5550c5d8d9ba2fc5113cfdaad4889b268a1ce22f40882ce464e9335a73c75d5e698dae944c7f0420be3f05e3cc50eb71c0293a0547761b34bc1f91e9791eb77b15b75286c6d75dd9b6229d2d39814667a06ef9a5c5d530efedcfa34954212a455afd460f8cd07e392a7c52b2a8ad361e5c105f11c780f1d0964812b485e76a66f899c9ad03a079384918bce0f0e1fe6219bec4f468329060b8c13071de3f89a20e6d1ac491cf4944893f86a2f0ce89d73761a8176ad19aeafebce1832ae7ffc15e297a2874880560aafd2076bd0c00ec98b0b02c6ac6c23af94e5eeb8e5bae947a12237575cbf27446905b14cfe66b19de261754388bb44513f018a2a9b1e6ef20eac030d5ac5f4e6895a1b2c2dcfd8efbace56a63986550c1edef5e94092a6146df220a0f457d1122421b4138ef55b4cabb15beb22180c0fc19bc47c499c40d3f17ab1f325aaaf97d15d03f9e7fa5c201a4fcdc97a7f861c6d3349e80f052184e6fd9946c9215b0a9626f1c1b890eb2f2a19c7d91ac93cae7d2b5a390a1b0d97e6cf2c4f9df3953151e846b33de347253809dd98fba205c4de3850657a7d03eb5986541acf337b87eededf0abaf2836474777d055c69a05e15dca1113432618f8aaf44c7b47c17f96514e783147e431acadc75724ac31f085b8e36c7a6cb36b700b3c9a0380ec4821b800503ffc15bd198b38af59673425e2d4b36a85d7bc0a5e596a9930ef54d73457e2f89c1e0b4f57bf6fec8316acaef36b11f22458c074a342627ccc56467eadb806d636b12304803a5add7342dc7840b8148a9b517a0930a2bfd5292d2e73379b927a2be4e639273668b32c25edf036de5601faa36ca5391061bd6fdd824b1ca8183d658c0ce7ff4e331f487a5351d01931cb6153da345e6c8a332d777bfd1c37b6a5445649fdf257437560c5ffcc5e24714ea944bc5930705282a728b76377cebcca43768d7dc10aa0a03348ce8bae73f7bad5403a475aca1129d49c695640df1fd6575eb8a80bcbb272fca6dc3854ce649bc43500d058951b23007ac33bb38f6c072be228f0854f580074fe513511890c124b05c13509a303639f2d9b48c00d0914601b00f11cae84171ca3a1a734cabd4ef5a98e15fd80209a3976be1ba9ed8f0596bbafab75a59eb781f5b7826e00b2f22e05a321ff63c57c81a90e0188c31503431149347d4521c21c8af913e4c9b5676309868779fbdc352c9edcea9e368b5929aef530ac728ad0ffd13885420e9a9159be979970ca47b97f342c61048aae60dca8441e8b8a5bb1601b7ea6bfa2b6768d5baf4c979355cf365d23a415ca2685f5babad0c5a89f74fe233195ccb8569431f8763fae19d3e534f9478c03c742fd9e351d9fa6f27d2ba80377d9f015736db46d0c1b6c96fa949dd9eb88b8848580ec4fd613ced31a5cc6765b4e27d7761b6378c6b5bb5d0fbdcf8d27d400021f86c81dc947e0b74765451cd8abb2abaff9314e14b0c5c781241db76321d749064b96dc41a766b68c387d655e95050c1f3b8bc81e1290cf1bd59f5e201dee693fe148ae379fc9ba2f28689e800db225b53e6ca4a51114493091df931546f8c38a1010e47e8be97fa599f7ab61a1680d29f6b2f64a6c2b54c22c55aebeb9ec60bdb3af55c110f934488eef28e8c7fb2fa817f23cb3672c53adc60f86605683f843fc253e98dd6b8ca73d14451a65fce94ed74590af6863af36622b9dbce97ac21bcd55aacc8e51cbb6598eb33155613d5207e78eab254c6a6aa919dac76dfa8aaaf5d3113cb85471f3edd54378efe768f3ae049c883315d42fdc7bee4b3e187f8d83e21db83a9dc85cccf5b0d4ec7387281e2f1228f5c912f62a9ac66564819d155d4b3c17a7de40d8c078beb7b274a433f13e24babac17c235a998d67dfcf931c170bfbfd4c5c90dec81f508a4fe08ea1e4e75911ee8143ee5f44744c38a2282f6fa0fb8e6ecb0029f7022c99ed44f13962f2be99e6022396263b04f106a702f4adddc56794979f1e0edda7cdcc3d6f0e8d1a37b3b21c4ab350fac84f12e29a2d773462d975896bce079835cc34cef2756c10967b86201d3baf69ec225f04e84819f8e4c74a66a3b3e4ed90e857b6ba3cde236081ce56f611c5a0853cfd516a807a3bfd01494ffddb02da7017728ad6f6c75e691291099fd8ec774b304e39f5c8ead3670fd841086224b907fb862319845f833ccb239b13b8e4a4f8faad66ae4d4f020e5047e59b05a153f9737204b816b0ae46a442decd3705427c8dc7884ae15d5e4ca8230472d00a6e53dd8c1e97bac10eeda02a96f285db0c5f170ce9579b6671f409c4d38b5985dae0ce62c155e4b87e3e9ccdc5a8ec8ba151317f2207d00d557fb8fd0ff52bd73266965551a1deedaab73954af7502aab7720979d366fa3c8fe54587c321e0d57f71014403aee78dfdaf90865fe5c1883679999b8ccc21fe36bcde8079530a31b03eaaa4688f6b8c4d0ae18c3c97ac6e78c5e18dc8675f73af52da87798b9ceaeb8a107e9f42ec0e79d41340fe6672c76598c94d28819be3064901b48a37a798d73bf153d5e7479794b74cee0fb2a5d193513680a9721788a76eae9244922f2ef13f278464a1f49e91ffedff8dfe251b5c585585ed23fc1e5e953e15ac1dd029e5eacd8de75eeebff67c754e7e36092b2fc62248affa96c3a1d2a5107a9dc7d103429d29c836d1e03c9b9701f9a932522cd210a9274e48c5560302ffabaa40145d327ecdf6209456a57ff6df5906d4ed3db7d4af749e29a979c2f2dbb3c01a206d2fc0bfb669d6d0de66a1e53a66fbb67b609296b027e4399e6ba5d69ed7962b56636b94997fdb0cf7033b5dadaa83a44eddf973b265e33ec55781c39a2b58f4eb34aeb90b627b09ce9eb2680d162f0075950abbbfcad91226cb10b301eb62fd52aeed0273d121d1868efe6fdec0fba687400b2a9da570ee39079d8765403b86929ad9a353f5066e0a47e0af3be1b04337a9e492075af65af750ea5502ed108cff36d0eda458df548d947861ace90fb9b3995ecbdc198f141ec60268f23ca1e3c3e3191f38f89f37dd0494ab6ae19cb624c0dc8aae5b7bde16efde28c3a0be11f7aa70e0e39a2755114b5e7c6c6864cbe6dca5eaa2804b89c31078710967996a19ab3ab857e44494f10d78c2b76aa5be4ffec07a9662d3d45ced580714357d2ff9968dfd225aa7a5a8d80210c362d167b47697c863778a35e0b29a05b69c610f9e83d78a7d48ea7b0671ebe42f19392c8c9d99d0bac2847e54d1ace0c89d5849180c344ba69334c16da9cc908485c356338c764c58d2b7b30e8cb390044964fb25bd7fc144ba6f97c8b4708412b1a2009b674c798be8dcc2dee82a985d09dcfa73479f5d7c6290cb8a177a3bbb090e3d9fc998c7bd755aff23e60947316aa8ee006ec5e23e7cabb5d44877258bf91818b1a6d480d4f2e2c2eeb73453782f1ad04445346f3b15a0b079fdca420024061513459e6f234d371a15195ff6c038a18e41f5458b7379adf1c85cc0a884ac83952dbcae42cab218ddb5c6cd4bc6cf06112fccd1db4a55311d44272c4f90db2bb33d251e6caddc0b48a388b3d325d1c112714c334df413f5699e4ed7da3c3915ef333b88b6eaf7da1d0f8babae5a7027d63ef5828867db6b95f48191a6a94d5e7d3292e328ab4450198c6290b5d328dec23801aebbae9bb45cd6f5a566dab9d6efbe963dd4be636bb2afb494e66d79a626dd6bcafd7e8d33896198f0648bf4a214f736e4ca55320c0c74f981b1d209aa47d91ee34c2f0315b01eaf6a1c7d84e04c2e2da95a946e17bf9836ff70b2d20083fc023e07ba73fff8b0361f2b4eceea35a446337ab7bd0886bcf7fa65c7892d8bb8e21b74c30f28a71b823c64498bbef3535b8c392615384fa3b64c43bbf4291f800a5d20b3172c4fa96cbed9b9c96e8204e62fd333c4a5b8b47b6393dec48049222f5d07aba870cacd0f304a5e514ae2726161011192fd1dbb1694e482befd0c69bd4a6c3664075f5d7f2c8978f0f4ae59895055e38958ad97d0bd28f7a810c62b37e4a91f5e58d39379d0c10a2a295a79b12df9068b8e7bcc192e0542a8f873553497cd418c80e942e010412a5b44be5bb92f1209d4373790f13a5f1b57f6f315c7ec28a33e049e25e28f2fd3950cfc9aebe52ded12e94af647fb6084bbbb1b6e98c06b8aa45700a3ad8ea8ebe215f3d7ddc45b5596316c0ccd1f327fa29acb191a72ea67f0d49d77dcb93b31b6b7d1e00a8a3dd23112c8e5f30bd8bc688bdca3f5f5a57351cc4799e3cec795d2daca1a6644deba756b6a582c2c4c2d9b0b05e28f38efc0a948d49b65070348f46df51013a1c806ce04890c86f53565039559902252bd2e3cde44cbc62ca9230a8b0f912f723ccb729bb1c63e05e18da20af9fcfa59e850979aed8e0a7084474be36117a96f860f653d5c33e4d0df6d152c052608e9938b55743ccb085e209a18e45fbababfdac43832e01db8364ef90ee093af4e4ef5ce80d36626bd1cf41ee85c9cf5e23aa31e14b030ffe244fe021eecb49734da2da1e399a8aab84cba4e31103f4e6d3180d710a8c7c36a2a826af424cd8e9e1deeaa909ab8cfba5ac0f9f009b3f9a0ebd1f863233bb109a8281b44ea88379e5fce55a1bf668beff50bccb8b242ad3394394c4f6d6b23309ef5f43ebe59523cf4444a5bb99652ff2800401fcdc1c80618e6bb6b3db81066e8149935032f515d8a6cc467e12ff6976e53ba904df79faabb8a74413bff4eab3a1fec11858e92b55ef2bdd3c7b3dbc68e1b8b016aa03b7fc79e5af3ca81b1be1c8da722404184e2171ed51d96156708b87c65a050394ca85889734dfb9110f31233e5baa7db9f4a282c7a50c2a1a2cb99500da91766d308eb8b0cc974460b2b196023abd4208f879c058d4953fb61f46657fbbd29aee91925b6997cda415638f296788c252e4739a1d31075eef488cb2330686674fad3d95983af1b5c5f168598c8edc0478866fd41b5fbd63a2e0558dd652c472fcbfa916aaf4b34dd895fdd0a8f3841288e4958f2b3521b8bf7894f430c578a9d3fbdaead750e7a5197b9c0da7962e07300ce2cad6e5056f6db5f0147bb9ac0b6697ffcb2871ecfd9117fe99285ae80d713c6d6dcbbb44074a7924a667dbd3ff745502dcb7a4b31d8d0d770ec0daa0a51bcedf75a267f925d23c1810c3598734cfb35cc2474a913f2b20fe3c5a643584aa0dbbece00eb7b7c731f1788d324bbc1b3a992f4c3bc69ad7887eba52707cf7861087fc50802c5679d83d2fc5bd2df98e53b37f8e75adc71e07026522b1b41cf27cbecb2e4e67e746f0385bce046a4206f23b215810d433832b069f563ac2b92545602b1becb00bbb8182de99290cdc2b5c75acb67c5e758d3df0124449459b9d9dd21d2e0cbaf19ea95a4b0fda4b7ef362979752ee012d6eae665d883fc9bccb90677e0ee39ff8b0e7f3914eb0bff73ac97b4f16a2e5eb72f20ea2569fd9458a3da4c62d7a5b3fcb6462a7373724dab33524c6141e8130d0e380af49f62d5b9a91643c5c437ea049f0851684148a8c522197927bbd07b6bd0060d38bda65f40fbd928251b1354600e0e9afbfda498e79e3263b83891188aa2dd6a050bd05041ebf69980f482f6b6e5aaa76ef255e4a51fa782fa69b2453cf35895e38fee1c009b44698da93d6319d15fb47f7b3509caea26044c723b88d8bb2f968853d7ab21f90c727a9629326ff1b64f463b4d43447db75e18dc519c87be19c5ad88844d44b8d2b49a75dc26c7933391cfa1b9f41de0ee5617e93451323b83e79841f2937a07ff152e8cbcaa2c6c3338207d7f31df4d48dbd5aaa1196c54e2852b414aa7c96cf7a7e830e8b67e1c8883146268ea217d6249d2b3403cc3cb3efda8215e4d1e9a9b4b5292f843259a56b613aa9d947ce13feb48962d17c6a95812bec588143f68758f3ebca3e7d21911614468013d8fbb4531ec9912994278c9c168ac3f6081c4b5e8fff2b2456fbe3f6ac23d0cc7e4135e0ae06fdc0e38f741a88b986fa7be1ac9e48f1670d8e507a1e699d1f30d0909a703b5441253a9156b41e74f5cb0211ab9199dd54f1c3a891506da0b2ff66fe885559dadfb911f46b08f2af22267ecec43e823ea501c91b8ec504b96f595e22de36e2ee4fe57cfb02a8315c1e2e32d654c34db5c74b27017f62312b1b771aeb034bd01e492b86389c5dd14e1c943f2d125d1e988fdd25bef9db5ab35d732b96470009961c8a85439610450d194a604761a28cd1c98559aa1daec251b2e4c47a8e5be7e6d8f995f340bf5bc40fc032435381b8f4fb12cd4c2feaf6be6f549314e092f3e45a0fd2d7e5ad8d5f9492f49be3790145512730218b1c84e8d44f81fae79bab32dcfe92590656224b2fd336b27ca756b0646d83e71e31e9312550839f10b1b00a50faac78ace572f59669ef0c7d19ccfe439849409f5a68f53a85beb5fe7d76724f651331e8fd7aa4084af41ba68072dc673c453521e4f4aed5e8aaf461b37c28959a869c1efc7d17966f939dfe6c6553bfacb53c9a5d4286ac97ccbae6cec466cb455afd8ce57cd769ab0721082c3446ec2922b6528b2ac90252cc837fb6556c2601c596d37174801af9d5844ee3609b9e9ceedf952e5861d7b912904e38e32b743350b1bfbcacad9c2c4abcc486eeb5fff21219141af49d49a55826e9e42783f99384c6884d3b50f17380131e01299f5177383279d2337b09d5b055194fa62f7208ac729017e695b4f7ebdbcdd91a62dfe131a58f5093d3a7f91cddcdfc51ac68a8f3b26dd7f757bac7c8aba5c0763b6e1593001043dfc2e734f9640b7cdb89991f4d371fb6670f7ec3ba86c514505bf7641826fe7283bf15a102cbfa346a0cb3cf4229f037efc4a74bc6aa83c87b35cac42a5969bb2ba2c8634831b4fa4e82640d4f39fcb5db29f3d68ab953a29c07ae4df7dd17f89c232a2f4d45174d2c513716a515b4a17c909ee1094bab520ef380924915fc24257270564c746990b6fc813b5f0d90fb9366d468c12184706a54dd9e32158bf58d98205a1cff9491cf542849aff17f3ea7b9f96383d1aad46c9a0639506326078a740ca452e5f19bb2660527dcf846153355659fe635c8c581b9d644a59f60c7594b43649130f14e3b89a623ac3ff0092c7ac5696842e0918b5c7712c30bcd24917d957d4dac3c63f4692597a2487244053ababed8370b4bef44165e33c023568938ac292dcdb99200df06f8b7b171ea03fc7335c8915a7ffd9b66f80c833828aefed998f4e6a22874db113739f803b3d54e1c93ea75ef8e9422be2b08b02f35329aa6be9329a415a24d3b02bdcc925bdc0757bbcc0f9a0ea9a5a652540d5de8fe5189afc6c800f865867c19820ba9962f3538636bb3d4689893afec4946c31e249cf09ec94ddbc6c6e3ca0ff835bdd51ee376a5d2c7e4b45866d4a0bb45b1307c332fc417586a081af268d6cdaefa5c708c02b9d9fc7e59b7254492f0012da9159f16f99da49f2d4651c10b8c4d6b841a7801f174cbaafbb10c4c2a1745eca1889a1231b741eccefc0d6a1c7c36bd40fe41a2a29d71830aa5fd728e14cd4aff28e524440dfc3d3edf17bde48f5fff8759732cec1c9068b1e363bcf09e566e8934538f2f8935895f0bc8eaca0dcc4e03011638afdc237f4ffaa7635ef6a64ea3e25058c33cad5b2a5c0883fd7b512560094158c9d8cb4a6763be714ee605f0015a5c3cde55bc12947ad8771a040b10f243411e4adbb375c4176031aa478e0066bd77d4c7510a49e1461fde6386de15bd5d0ec9174beb2d038a776d250bdac288945794ab299ba57364d950cba89ab133ba42746ae220b2a9844f3f2c4e5178a0d2112f05f60e3f5b5e776bf3660d3eb12d7db035f24f3e58ade48e9c5d8dcdb0c1f8c54d0d65340ee3ffbe62ee35529db87a1d51443f5776fd6ccf7e2f867e43c89ba682150bbfc94b78ace92364890e80e140c7a00f2ae66e107970a11722022439d99e1575bbc65ce5b0ba301a2223fb04886b98a049bbaa129c9b8814b6988e6907afd29f3fa2ad7b21b37211563cfa13c09042160e98ca5387bf38e345a5c2af0ecdef28beaab704f5bada2badcc12df808b985fed1f5a636ffa83e56e585c87eabdf8c0bdd1980ad21340da6698c397d8c231a60415aa99d15fdaeb77eff3c74ed8c5b944ee3dca700bbe67eb5fe0c0a4fae7de807720af2d6568e9da3379059592f7936750e2864d11918ecbae813cbc98c87b6397aea430e9e250b5e41aef4e772f16ff21e2365fa4e51109a7ce5cc0ac1552f39621b1c77b56f5f3ada700e5c55388ca541d4035d64e9a8f58333d03ec24b9ca65a8ca0b1ec8647d385dd237206fb08b1d9360bf3e59b04889aabe9a0ae910dfe6f6ab0943a88005634a4b66c23258ea76b09172013d61ac9515ea8449b0208e283c6808803c2d598b9a72dfd2645cf6aacdfc17f55037f92d1becb1aaf7254deb7eb29b1c91965a8fee96db42887bd7f390c111363f27c4e4e0ebc5300ebfb643b3b40d9798056916ea070729aff236caa6fa8463e2701aa8e16884a5403164b2cc782f6c8cd9dadaf8d53008b629c48270128cf53550a475007de22d63da355fb0667354c48b0400e78197b424f98c286b501c81611b6d30f194ebf458bf47176c0e211ae0091dfc5071a078869840a1554e725d1ed313d262eb8f02ce2185133066a2792073f6f9c867d9ddbadb36704776f32b1bf9dee525dbb9381daccf339940fd77071e040acb5219362efa60d63682c9ee41306797bba91ea1b46565d371e02122fe65906015577720e809b393dcba90b078a5dd6ff9641fbf771dc7f3476ac70f60f29206a25a2c7a4e323de470cfe78ad9b4fd047691724d60432e266eb1870e880e2529fc52be437f3beb5807c296b87affaff96075656ca8ae0cd0e33a61515d12f5a4ba2c2c75202ad1c0a6c08b79492b733564750bb0554a2d92ce9fe187fe7d3df898d84fc55ee417d5e919c7c1b6e1ab4096b5dfbfc8ebec72676368bd2e4cc599e8b07d665c96880e5e971f47647aa4d766d9943b01b376be66e8d7b86a6f7f4d308779fbe9c6d9ab35ce4bf40842e324aa03a617ef575e8ca4e5bc3303d91ff7d1096e5273bf2e2946180115d8e51d5a37d4dba2ee0708a998cb8ddfd81c56aa0de802b864a7a06dc77b4b8d19dc5d670341505b967f3990beae17b48f62bdfc30a2bf08e14ee15005284dc373eb1d3852e69b158417c77418d97e0b62349358e3a3d09207d6d69fca357cb3147d3fc25c40e9ff17935e56133e87ece55d12f7aa2a8ca590b609fd130865707db896d7225c2ccd6a8c54dd7cdb6fec47c096635dab4c096872b9a22d864f363ccdef514195769e8d510049fbe6ed15616147069a6ca554f47a2e96cb127dc1e35d4d8d53b1194f48f5c280cb6cbb92c413f1bac17e871acfcb7f408b6b19f5bfc7e456a8989985f5d8a7eadc87f8dc9e1275b4824e2330d37576555a8393d3d87c84a6451f61896d5c7aa2efb0be091f4491cb56f308b02b0fc6c2ba8ff0435e1371b1ae1dc4bbfdc2040fce5016f0024816b8f43418caa41dd49362a2c92b352baac5f51aef3f7422287b222db4431203cfb8b12fc8f5bce51d814a6ae75433cfb2d85eb9fe793b5006ae3324c679e0431ebda407598595a9653b4ee6774f4764b05f154a8dc39d25eb1f13f1ff64f40d4d5c8bfd4cc7a3498f5bec07d7da94a411543fd73517e930327a6942a98d2f9c09b72a585cfc2e4ff79ad9fac44e3923bf92817d798b976c728f515db6f8900b9b684a7a47b2a870a37e47653197676a0dce51d4975e6dc613b2609ceaa3edafdc2832ae6d22a0e5018e3c5d293e21b29ca22788a63f13d2ace7a791a4be2666deb744d2cc24b081629c6470837bcc9a3c2deb4befcdb9d84a28f57543480cffd2bee3e456029f8d02018fb53d26e56948409db59677a2a9cbebfa9f4fa747c121d411bcdfe243ffbae028101283e9b695467310c6c6cf4336acd957f1ca50cc76c96f268922264bb725a120acfe358a67f9e9aec0c2a9473d3691ff303775648dd5effbae3329e2deffa3c4d2c4adcba38c53a06ddae6f10dbdd7a44c4bcecb24bb01d6ff48015f95b3d91a7f38931857790435b70806f53cd02018280ad93263bacfa08a104d85ed05a79461ac030d8a9f4b280fde4dbf9ef25d939b1a2eb18efacd4dd7935a6b60ab9d5f0f285473454d1616b60bdccd580485269083b176173094f1332077d20d916933053a37f6a1e7fe59c585693fe81b715895ca3c5de7c9f517a7af298f5d69a9a700985264a2cdeba18ac2d26b3d1678d251ad1f59ee56a2a07ecfe9035e3a5f38cc718bec8ca1ccc27a1b62d8e7aac532a7e5aafd9762d1afee5d8f93bd7d7773940e1da2d148830b06136228cd2e18261cd42eb0035c3a80918de2aebf9df8bd93b81f81809415ebdcf903455dbb0126ede140eaf2e3240127a2b1a01fe80d84cedccf3b9303aca94b0bb5d1d6eecab015d9437177f733dce2fdf4ed31f15fbb561540e37ec92817d36f2e6c01bf6f90baf7379419738989bcb3bf8b439d6bc90d69fa0ee37187404a749339800a8bd9d97e34b8e3b0a85c63be91c2d6f099096aee37322fde29772d6fe7248a916d78552a3093c89c34d4749862e2ce84425c80d73f6547c1c34859b7c954b4b8695f0b6b1bbaa28a04a693741230fe4ade1866c48678a87a4aef73b9b6fb246f93563ec4b40b7d734b8d65cded28e22634a2c26110458f218d856828cb3d7ea0eae0c5ee05b2ad5606efab6ca911556bdf5d7eaabe5376dec51336293eaf57cf962e6b2b9f06f03b0fac172d01be910c729092ccb21af5ff93be959c1e80e3e6bc9aa4829ba72b8689441a47ab045c674c4bb9f02e96d91d63ded72183958768c8981ad9973b679200448eee4406b85fa9c9f3a371cd5b7d15624ca8c06d8a28b86404003c260afd8173b7e19f2f28a3a0dfce983892f3c9fab5e7360bc93924d5ec501931f93905fd7ced65c59ddd3d7a6b02ae409f438d345dc3831883ed8930326536b9fc41e5f7f3daefce11ae4974c9c224c347cb588f91fdb7e32031d08280025e84516ad0bc354d03681b441bf429a7fd5e291a7139ca4f0135f603408abec52621826ef7d92cd06cf8859dc38c5562bb6b95b01e21fb385a526e9011eaad1d452fa5d7cc6f9bda97423542ed61b0eb98f9fb0996727b9e42358516decf22c13804a8683e27c9838d6d1b9b0148124a3f4c3a862490f52a2248ff9b169825b8a11e147129252ae4f96489b4bd9dceacf97b63016a4131df3bbfcb18491f05e78bc171947af5201c974f798f2ec1b3b4f85e9ee08c134365d0106561ec72d9e6072a4356fc0e3626829f332f7adbf3c0085aea84263fb2a2f8d9abc90ecb33148e66bca9f9caf70003b53e3428701fa5c86830356a10abb449f113d52df3434611c195d0cb5511b376f1366df0197abb3c2671229cfcf0d0a42ea2a3d629c33b979430b6c640a550151971f54ed55ac8fd3aef7e21b70bfc49d1ac7e2b649cc2b6f7b8931cdecf056b5984aa1e7ba5650d40f77350e0592475c4fa7d7d591f1f27d45eee25181bf2d51ece310c05924ee0987ec26ede49c65d161059e2bd3cc43653f447ab1a56392d70601cfaa852d451b18840f565df9dbbfda4109b58b9fcdeef8e2688b41a4e372104b30b85cc4549b932ebd97397d32541e321d61cd21375eaed3dd7e9e2d40feddaab881df4d6b6c300c1799a50def14c5bf6b4628f9f0e8ae4c0e9b98128778a5813609a690652dfeba3b97ffb84daf769c7fee38959b8c83c8d962b289ebe049f2acfadbd1f4420469e0eb065b893c3d1cc6a90c0efb06b0594117fe75c71ef8520eff203ef8308c8ff010bcaa14baa1fae6ebdc8e910e51b81eb3a0541105e3e12c3e57aab18c71878b2ab43ce8ee1d50d05191b331bc3441de4af16bd4f54f1ab801386abcbdbbf846ddac7e7762bcb6c087260c5d6e68ef23d8b3e59e478610f31ee9a084bb1681299bca4656fc4fc76e55b7eee39839aab8e253307051e3413c35b83f431266065d655bd4ec6b649eb219aaa0cac0231e135787ccaf10d5cc4b86d3249a19909a5f849f1823b781dc2c66774a24f04c5c0d13d8852f8dfab674c02fdde2ae5ebb6a01cc864a1bc57d01a8aabafbb3ba4ce6204b7eeff0369597793a88f4181f4e4c22973849da922032d76a0edd3a432602c20740a555d22cf221eeb05d67c41770ff20b80a94e31e652f09058afa75dad4b4453da92a7442e583a3e8ec01626a3c7f4515810c02c01f7a60b44e2d5cf8df64b67ef53ce4fa813a2e7d6c5a0bb54e920a226f4b33d261f88d01ecaff387fcb35c3210f01b323de42e8cb3d94b4a7d906eabf69a9d6335f30987e172fb1bd973bad26a587bf52bb338218f252d35d45a78de948cc404f288fa279d9bf5b82193660c9cc73c9a18093687af6d40f7012d4cb3dfc4ce91f1f2f4fcca2f81b305ff9ce7c438b5504fdd8709480299c6672d9a615e6a2f3c21cdaf87f601c44837b34db64f276bc1d173e7323fc6545b9013766bd4aa7775ce163a509c58c280b0ca82782a7929666c317a2da2e2a5bafed50d2c55d4ade9ad47700cb81bad3c59aa83562908c356b0d6e87214745f07e608cfbd5a2739164d474a58675bb4bba28479236566c86cc40df7c63937d750ebe2d4597de62bb121ff0d411a0f7b9aaf205aab28b7e9756c4123713ba5a1ac35f3392b5e22f90b16c7a9de8275b380edebb9449e7c0099b4059f35c337cadf47c36632147fd28bceab7f9f0a2320bad9ccf44629fa0693eca4afb895ab42cb00e2224f50aa0831508a364beac1e91f77e66e807964f180298ce24194c9e1fe92a40e2deb25924169e06afc2eea755f6ab865fa808ab9108fdb39d57fdf09146826bea6460a615dc5eaf15c01206a42a3b7ee581fbecec8ecc476949c5f916734358fc7c390f901abc68a2e6016284f0d69d828f4e3d4ff8af762b62373d23d79ebe8163b86ed75eddc7d85c57540505a4e0a2f5d9a26ca0b46464d4b284fdff6c4aa73dfa1bc54c137c83a35f7e56cd2f108e4289f4ce204ad4e7ecb802affdb82a98fb33bd572365e74f04a854de7db621633acb2197deda424ac8f59829f318cb72b6d8a19ff3f2e408012f97bb54c333baf8f86ba36924f4b40bfc24fa507ab089ee90e43a933c2e89dc297d22d0ad6e23bc74799804b078a552f8c128e84fb908f087d53aedfda7d758ead33f0df22f8bd889b319e46de7f43d10bf584a68a774fe8573d45a5baeb69b2b756c00b69eed1387b84b7676ec3535469f09be1949e6445017a48f7d6fb6a4f8984a0d728ba091a3accd7f9327a657195113fe06000653bbd1d3a3fe18dd311929cb83dcdb40bf1af719696ff874052e0fc6c73975cb5a3a93d413242fdb60921560403cdb602643b047a8c5b37d82d6c425a601f1da4050399419e84fc1fafd07841d0ac53868f777779bec0d0c5f931ba95e8b4b77f8757a7878841c6d8d58a7102ddff64190218e327e8febe01dbc89ac3b8c338703afed1c69af3a6fc0b3739cac023370e7b593255efa6ad196590b8156398e7193dc160f81ab910bbd0721129a3d505ec6424c038bb0d9b9d0d5fc090ee47eb9c9e86a2ffa2da569cae01868980ff11e468a9bf3a847f9db54a0a293d583455ba964ed1ff84c97c6c4e395c1c9d124b785e2e87486da90da922c27c489bc33ddd47eddc00b59eb6b32f3c46d2260c443c1edee22d2343932e565f25cf542d5b3cb3b02ae966a157c122ce40fee76fdfdbb770faa8f333eda4b58d38409b5b55283c2d07d9f942920d0e11754bf46578080c5ccbbf851c3720b4e7a67cae01b108ecbebdc7557bdcae6b17fa10639968955e0722254f3d8a0ea3b916e218bbe312f28fca8aff5fb7b1fa0076fe052ebadb0c5e5f8c1a2dc52ecd7bae35b7a6d90ef1ce3e85a2b8833dced71f67db50401c0db819ca6cf5d74230e984ff9312fe13096018f175854ab14cd25fc3bc3bf8fb1fb83ab03ede4dfdcb9f5010e0ecc2124d618f90e87843afd25cbd7621d978177b670e051b4759ff052fca04f13d0318694980d7f9dc5400c1e7485c8f2caa34b6d1475ac1a15a39c7e0cc6ebc679e8f113fa4cb046634b899687cd04a6e2deb8ed7e39568b770da544c20b0dc7b7b9559edcfed6ca76112190065e3d91bef659afc62052eb2bbd1cba9f8ed65e3e4a929785fde4c7433931822ede3a9a8c69c57e20f245d69d0bf53989e68c2c82b2fbd2a7b1d13725387f7e9d1a72579b55d61765f1382223ce427b69d5d580497e4644eef07863ea65ef33255af0cca9c4961c98b95b81a1979d1a68bf8e954854c420b8b5c58b7c07bbc22c74fa35647d65ed832a578a92c7e99252e3f2656c518cc70818c41f50a09ce4063e0c967644d82c33e8106d96cb259b203cfeb28c3fa48277b3a87254fb74e995aa15897ebc9eeef71cc47b8d2aa1dae8177e9d56546e012cf0f9a3d4e6dcf6a94f44f72be08f2c5e0eec97a81a4b4aabf1c964787d43a5aa93a24778003ff56eefb31093017595182925acea65296f45e7ba1814cd2bf085add2f261bd5e4b3e5f77588b85e2987741addaafc630434eacb27e51efdc53a8bd206b906404d774f154390c607497accc64bdd0b3c23c222ba747005888f10b8b8181e145d7429c96e27e9aa6bce693524a090ab1d0f9a58397ba85f51a2f461ebb7f7bc013801a25a9d717b4a04c2f6a8195728008080630b9046f82e20db3caf0459b9a48e221c43390580687a4630fbce52449b2b5b99b71b5110333be68d076732d3405ca790460936ccd7abb71aae8c8afd5b3922f4d486be192b0b1bbcc9d69997a54543a9c583259b7eb76a89d3836a0b2fd179f75bd76bbf7d8f10e95145e5caa32cefd6265430fe2ec8b2ff736f91eaa61620dc2ae6b1af632850c94496f82d0bbe3a516338ed46e5e5622fd1218d1a5255166fa8130a866bde5216d987074e0e3ac911a21bd60be57d8f550ebd566b9aec1c1be7512c0a0238128c79d0ea74bf39a75c9e147db7379f863cbfa00685b78f810d0d81c341f01571adf9a0e614af974de562878d6c98567c48a2a5ac21ceec49f3f9f9d6aee9d3a525435668f5ed9badae8a32503811c0ccf596a8fd9f556bce4c8b5141c77605a8c9372dc7370b8819b6a3924bd144b318ba7d17db802e837f0f239b87f4efdb95e6bd6ed580784585f53a7fa901fa7218d4b7433c6a41c8e18a0627046d46caeb92caf1ca5f3aa777dadf8609d426a0747c77316aa06c7048d7ae44ae827a03f9a22d2abe02c8d6767d2fe7d8e01ca06e774a26a358b1f7dff3fae58e994ea0367060c21bd2f7a07c5e956f7955c60622fab120f285811aae0a8592fe816f18a34f1fed4257ffdebeade1c804a5f25ab6f61a7b38b16c7f0d9793f5d87efd423e7952329aea8fd5d1aa475fff35791ffc8da75aa2be5ca6ae7f0e0e937d6c0ea639eea5ac7c042fd9387353afec3e33634aaeec2197722580a27d97207ad946679e4278621d8d84d9f50cabfb549bf30ca17786d40ab8453541047fc0cc78803e69b121ce897ee2ce606733114049f893754712312028aa266e54b9edc63ea4b73094c738d9a0e7092c27754eda7bbdbca061fc6cf5c78f43ad5e74c15822aecb06740dbf062387966e29889546219e966828afa9b17beb6472fed5cbe458d25fb1514bca0b67e0b4da2d1953a0ac54e07522873b1235bd196f74e75874d2c5dd5fba7abea5682f82ea1548c7ebfdd6aa97cadda6c43e7c22f216e7d577954e70778f9d528f337e75844c9d02c98ba00f1650205b0f80b44d98e997467ce39fc4ea852ee8ff0d81729cb7d1a66bd4db2bf3a6b306d219b5a45269ff2bddc0a4a917a51dd1253beb7bf3fe1e837c1555dd62f03d82006d5fbcf73fb2853674dc7861dce70ca3142985920265534b8a56d75930dde8355b735b7126de7392030168e333fd5eeb36963bd0d956748c6bbd9250894b8fb9d0114529dbe827d235e921ea600516f27cfcb64a58aac284ba52daa3faaa89fe06ef5d88cd3f4866532aed07af6aa2e09009f3f24676e8d3167d8d64034dc9a5ea94380e262af7163ad1b206a61b74ac8bffbec9b8bbcb7602e20470f768d8d53fe5351e6581f10710977f50bcbebc544cc9b9a7771ac39697e9e24bbfb24376dc24878b1eb1deba307c3e0194de6e083a78da006cd30aec5d38c093a0a0550ee60d4d437e46d9e92ec8cc5cec39da95f15468977610de0484ea3831fe789c03c2c5654da64a5d2d1b31b762e2072f12483e8b00da828372ade1cacd7fbf12b7dae451cb9bdd11b0241a0f56c23dcda2e95f75f198f48a9761ba9afcd9be40d417763a185ee1617dc3254fe603435a57c9823b4f46fe48d2178da5d678fa25b96cb3d90930a1922970555ae4f1a834256ce35b41b238a67b27a51d36d863566c024822d3a2e867db9ab9a54ad34251b893d6c9cfdc7dc1dce0cdbe5e670d2a163590bd10de164a6dcba8f75c74aff5289658582c469b197a1a9f21f6fce835ffdee1a5c294f24e9d6ef41c6369d53182106b4f323d927ce5acb94903e2fad22bc6a474faa813d22bbc77c922ab7d7ba3c1d37266549df6013b267e83b4bd11e99cec673b1bc7ac78232ce10604947451c3314f715f1ff74716e1699fb496905fe1e1061d3e612c55b18b86b95750a7f1224dfba17f3212f6855727d1822976017a2641a9807e9aa295713b0bd157d7acb5b1f330a7c1bf878406c7a11cf24206c78d33ad480d2f53757d6c9e7c6862624a0147f0088525e1a32564586edec22abce714c4190ec671528f84c7dd98c8d1a8094e5275d9b2903538d5a7d65423bba1691f7b12934c5806b9eb4bd6449311b92aa93fe64ef371c1ffebbae465550d475bf1a5de228e823d188949c4a485a05d420a7c189799b455a88e68300471b3e905c622b86b5d0661a56a9c467c6c54d8e94e45556903a8b085470195a1d75bc50bfecc83abefbf77f06f867fdb509cf4f3898be42b4a07535eac3e54084abcbfd927c8590e58ceaf448322e654d2a9a932a8d76712d4759c05e0dd6ffac6a16df032a00e30165d5560337d44d0b951ff67c9d8f7d728f86451916f15591d29f519b2f11a3faf76a84e005a1a146c91be6802706ac2c06af07d6bc68e4ef22843bd8b04dba4919cb75de395d23aa9891bbff56fcb35976d2bdef9d29b7f29f9eaade0effc59c5324dca512267bbfc76466e09db355809d98cb3c5cb0290c6a80f7449e76dc3cb1e4a847925fcce3a615dd4747c8eaa16c2570a3a6f5a0c743c1a40d11ef77045c50bd50eaeea858173f1eedc1dbad1dcbffd860e04eb9b4a01b24f7b7a0b8101a3485bdbf58119528407b5c3a27303fd25d3eb1560f7ffd16941c341e57520af7f9a04d057b7db78cd131a152598be8bee905f9e0d977ca4df281b96f151f592543551762cd641b577ee4406dcda91782cff99916741dcb62efd1775e7a9e51f478b99a8a00f62d3cb155ac4e532b59c9a6f8eaf32cc717a9bf99079c8c28e13421b972316bfaf544a8e937d3d863fa4a326dc5e19df57198f6e6de6600252a254ae95970a0ac1373151db19731eb88224f4fd50cf9ce7ca1ea1e09940427a30dda5f16a46e7d7909012d4f23144f3c0fe7d957dd838c089d6b6f35dc21003d50f790bb433435989ef1534dcfb3f36208c6d81d2aeaa7f0b7f29032c8a44269500d1ff0f8d65c349787757a9a8c7460bd87ea0fead89191db920fb17bc42af109be4978b90e12dfafc16595c2a4b190f9d6e350a3c3ed012483165b814685df9c315a9012d566ac6b3dc2ca8750d180db902fcd44132456101d40e0c1f5b4907c51517727c44423b7f7c4701c3f8225efa3616b7d035d8678e53a7cfb7038f1a3f2628da7eca94a738f8ca4c43ccf51f242ffd74ae7d7bd2f68de996426a6d72898e63297b594eaeb14687dd5220d9abb05e32e1754f95a388cc04023a22f1955744e7d947a3cab59412b283c1e6760a75b457dac6d1381e6620bf65588c50422b9dcad5526321b8cb4de703747ebd756688cc1ea283c3fba83eee93a6ec7482b24645c799805f425e2adb05687c539f0320b62730b3afad849a4b6352df8761b44ac171b7e2ecc36403a30f00082a8a66bd8337ce26e916df2ef01b5c09c88eee5c1941c3dc1e3b018b86c461cc617f70b3a40e8283a72be297475fcfcd0d9ae1acc11a1fff604d2b240875a082f6235ab95ea30e8d453ca64c17a84df0943b9e5720b8fd6131afa36b5086c11cf9edbd1a08e04cd453cb9e15cf45bc655670f6446e0490177fb0ec6d2a85c47faec66d23af92766a7319321d28327e360b46f504a0b3cc1651f39ab2cdba7f55884b5737bafdb3f98242f73b320d00a2148ab7b527f9a81b98ee5f50b3da6ddcce21b86e755694963de54adb0e712411aca3fd44df4a963f384f01a45373110b30924c5c95ddc5bc538c88d03841f561fa20a7d85ad3b29f6479a6f6198af06be3297238911f065449dded7ff13eaecfa54c4296ff678b2e0b53557c0a65610ab46bc17f2c020fa150cfc7399f7d3e1c8ae5c16b2b3a8df7d68753bbb22b6a152821a06f19df5da468dc8330acc02e70edf069528ff1ca2d268af285a1b917b91afdb3a42225673e16b9e710c96fabc4877bcdd9528137b0cb3e392252584f28b499840576182b03ba2ebeb3fc3c0f33d065baf16b2d500b2c3147a4608b7202c6351948f390b6d05f201bb9e512d8a30201f75d9f583dfe69291efab10cab062ba5b90e037e96f5d1b2df6c6a59fd453f6fca9f8ca4dd4d138fa675d2019d465cbc5bbd0bb6ff71db8f545b17318a2e5410b5bf0c131c38fc099d70f13735a61a0f900f4b8bbf451dda71859e28d4641ff5e3093e8f31dfec00098be98a225067406e280a6dbd4bb601811a3f1e5b5c47e10108b890471ce5c4123f22cde54a612a230fe6bab049226d77195c88f9fe88de1a50ae456601fe6687921eef1cb4ee1661b573d5d699d34065829e161f97026d23f2fc6cab68d73cccfc83b60055a37ba2f5497038e8b180eca58b40eb1fb1b124ca66c3323fb5d3f06385c767b44b6ee991ec507d1eaaa5ded326c159fdc861147ffa3cb7433d6a5dc8d73b972891950c26ab6ed7cceacff8e76ac17ca7e1f940f2bcaa84185b05e4b94098b55a60689449e797f76369eecf6a176774affc7bf4f3eb4fbcacedbb3fcbeda8e0887f052c2f923134b859047717f05bbbccb74c56cf6465828be4ca60165356d7390077abca35f5e927d920c6a47da7b0a680747f3999fba001af70068fdfe286c976088c8888043cc2b1015f7c2f1dfa9b2f49b8cc723ffccce04d818428a67892a307eee2f5c46edb17d4fe7b3fee06e922095a1657e8deb74e59cbff2d1f9f51f94066b2ee4a97dc45a955ab1ae9f35743303ec132c16b4f10f59ed8fa638f59e8c62997428d04f5b2f7e324be13d63f741b8b4f49aed881587fa5a1200863022c142583fb322626a08f506b9fa44d058fb9da4169a86b43ab48a1f76e6204ba2633eca6d395aaee085d70d512719c87161c6cd3d34821d23d1b4770b517d59ba19b28db34bb3fde49cf08f32675541aa71c401e38338a4e71ad4bb34c7c96a9f36772f28171a32c96ca5259f04fa89ada0d4cc3306be9ffcc50abf151529c6c6e010b1aec3e3006bac93801e9817984f6f8a4104864c6b3a3e83d8fcdbf486eed395f0ca04f2596ad25e770f2b32227eba5970a74ce7a4570d4af9862c1da601feb6d82ab3155f25f48f62b0c3cd1865fa57ff2073890fbf516624173eb14bd8868f3024f166476cb0cc517b2fe5086a6b8ca745a4eb7e10aecce67f19fa810bfa1b57a310e7a6b2513584e5fd32e3b450150ea802c66c87ad7d9896f9c5dc50811c0dcbe4247544cf2881281f5ff6c8f1603269c68fc280c337ab5389534588a910bd518c422832180377079a7a2de23d6ea4ab3f6d0d9a8f6b43651400b7e8d333f5d6957a3ec34f9bb59229fb447c7436d1ac907cffcbcc76caeccc9599afa168f1889f3101bb5e0b1fe7cf8a78ecc320cf2539266eac57ea1a819739f8c3549103adc53442d8eb27bd4081de414d48c6e54304d416e65660d1d8ab3d0214640b2636bc3a87121a2dadcb8ad379982319c99be91aff9a2468d3e549c163f627a9f4e93b361a7b5683ac32584e20137a5e48d035fb1fc88de6ab6b25c13810ca58d806d2636769b846b6061d6bb1f9dfe57e050f2e637b172802ff4062a2870f8be03b8a4c6c9e8edc9d7edb5e80603f6dd1e3d03bcea6f0e495a9f451231da6cb5754a5385f3d5782e6a04c7222dbd84b073d0c237aebab253f7ab82b7fcc26d7229d3bd43213f9040c06a29e38b311c742d841a70555e603feed9302402de55d95b6de4c68427e1546f92941b849fdd03b264f8dffbe0f44b9ce3255c4c6612ab3e16ec0915083b782d1ded0d9309384ba37c79b5acdb9ff4cd9928667416961b24bd2361d5d9a1d05c0ee39c1df338d5b29097275ea590368b1a91d25a5962530fbea26c868a7ceb6eb5f16d27e5ebe63b7be37325b60cdc01c34cb0c1eae217cc19a67eaf36b1156e07e57483f7274bd8ba508310343303989faf3fde8efaac2c94b553aee4716478018bfd83f80b06115cbb2da402893834f170ddc12f969681f98085df8595f521f9bc27d49ca30abf7e38e23f2f8eff8a48f30c9ad80b11098497223e0f094ff6bd4ac699f35ce9946d92c2e44982ee21987195b1c9eb149e8c7bbc77c163ee810901ebf20c3ae18cedef363540d456244f654cce36b5dc3097a4874b5f52d801e5d2115fe25b42e1bc3610154340e7dccb476eb7227385316ccb920f0ac97931ca4ec71a4ac1a660315be2243797825c4ea371c9d90e57241f656fbb9c3d9723efbadccfdb7344fd216edd468ad8c15a9e0a320f5aa77a71236ff3638d7e4b9ac110e9b0f752bdcb65e7746b45b87d1d3bf7e13fb10cf16b8deb2e0c745f0a2abe8cd87595c872799e074f97712eefb38fafd33d86fb63b678c203a3cd372d9bf743f50c09b737a2239501b2aeaf061916c007722aeb8a8be0095d0740b91f73c04c4d71433477cfb8dd4db5ed6b85399b79ef8d1d0611d8a7e901813247afab077ba34e072bb0286581bae08369ec512175c1c9d5f09338fcddd83391d0a51c2e404a1059dd34b98bdf1da45eda902ed9f1a465275a10a0f88b67157ae5cfd005f792a37e26f2b1743ac135633c6ae4dda86ccb103aa91b4d65b8ce3511671e6b8ad08528eb23d38b6bfda0e7e5501398d357457225bf6c5782ebb37bf420235682e74fe207a1d4ec43bbe5d0a83c4473310cbfcd215c29ce588db00a7c9c2c770e8943fa1c4d859f6c4faff19eac40f24f98ef23df30eb5c4ddac7acd925f0f4e48bd09e822c40eb1e02e933a53932eda5081c1d5cad978f11e038c2509f485e9a9f67affa9eea1fc37484f02849d7b630f1014d0291b0249a82c2e26fe3793b088f6d29eca45729a693a3a8dec5c6ce485e9475394f448e5887bdd73ddcf8a96f764476f8991c49294915f55e034639f2066feaa6466b0de1ba7027683537f72592df75e6664e94a88d0ac9a3e225dc07fca66b2e479f824ee8e2b80d357a3caab2e39677706851a892ed3be2871e39c34de61caf0d98da2028ea0a1b0db1071b1e57fc28ded677978b71a5eeb93b5a67bb18950f797bdaa1e9f1b84fc20582baf151d1fd3e925dfa64a09bfd37244dcf124bcd900f4516c0568aedca707a21cf738990e9f7b551bf8f86e5e8352504fddef7d83cddee02c7c765cf50263e17c2fc83cc914675c89aaf36b98e87c7e97d926627841558ec9000b6816972b73f2b4ee6ad75962f534892f04cde4c2b574b40a97a64c78dcda905dfa421d228f5e0152f4f5378084a1c013311749e5e69368c6a8955d32202b4b8b06538a594fc718beb69462e06c52c17a91d7701679e5e130294474b621c2a20204d4a87b6d9b0a9ce1c39f932b3e707f9a8a785c8d474b1765e6ea4b26d7337e25cdd3d95a400b63cac6c66cd4b796ebb6b26daa3582e52ebb40df50736480ebc9bba353aa63b95dcdbace018dd7dd37bebc4b224bdb36d17d522f4e0d29e121f48131353f4273dc14e70b096bd2e5f7701beba79922d2fb8af0b58c349a55075d6e63933b297f038a7600e34d2d83a05175c7da7cb41ebf8acf8a82e9b14d6f5f74539fdec754c1a4216faeefe2777cf828febb63ac9d931742ff179588516fb64aaeea6710030f1166b1c81454f99d89f762fcf2574ed782e568b3446bdcf531fabe5a4a88cae8514940edd71f350bdc58487cf2a8b0ec6a8429c207bfdff85088094c4e64672ff4f04cbd1515ceb113784a57118c12864e0e1dab747b38a864c0eca741fe0dad8ab3b5dbe2fc6dbd205b841f4aea09323a7866d14d03aaebf9ab5d50995a184e029e166eec8d274c23a130ba02310e785c5f8a55d545e1d60f846ed75e2d25130bff0666a5b87dc76dc996f1ca258b0e719fcf736f17bbb63ba3cbceec2d08f19db4a38ed9ec7303a087b1b4c590105ce1cd3cc37824487e14184115f63337a7561bbecdaf53e1d1a77a3b99b4ad05166d2f29dcae6bdcf22ce1e2cf563e8d20c7fc86bd43256633c6026ad01d6694ebc8542bdfd3faf47181a0af47a6b4682b927037676520c2fc7f5a90db7856acd8f072406215383a12d24908c8d6baa3fdb5cbd22819e4c1985fe7f2933539b9eaadc8e4fdfff2134f6270751b847df1b0e36f816b09011731f33b1307b0abab4a13e24170cfd5c3503ae9c803affe6ec2110df7bf7bf453ee6690cc523327c320abbc0fc7fe1de80946d1b9a84cde7ca056f1da39f1f8031e4bc191c4875a9cb089ffeb438ef742f41d7927d0c0b9000f53046ec0104a24dcf8e66fd401de9aa8e98344690587683034fa4f48391fdae6105b6018471136983c7ce5dfb4005ce53b569b644d6c4ead275170d625985da1a3cc5d97d0d2815b3f3b739a85cf3e060a4a492a3e220a36b023bafd0a8e1257a263308496a5be44fefa671c554919c0d45cc28c56011ae1d628f14327ca575d790c3809d304d48c2414403d694b350570410d1524abfe75a25c2ecd923b2c645f922d684e4728388015f40315feebe4ea6d62b8839c227c70b78ac88184701877feaec52177c24f9f33d6f3955ece2e42456c499fce5d9f934bab56b95361709a32b03011e826d1a578d0380b64cd915fa8dc3bc69ac47747395c71175ae72f0b41733d30ed7114033fda1cdb0e2a53a211f9e27b76473da12df3eae11b45ff9f0363c103ead2d4f9c1d6690c212171f945d83e1824e4ad673914e6f79f480c2653d52a936514f812273350e4608adc7fa8ff2620e9b5201a9d64c0f4ea980377ff1df819d951b2352f34c7eb468950b1665ba494f9ae6b79ee402c6453415001732a45326c25a52463dccad07398d98806bb0093cca4a4bf52ca021c63cd24b9ea13f9498eed79b451a280c835a401e1607a131a882cd60f606336ecfec6b6130a857228196e83de90ef8eee58b39f1ba0175e09667d6e76b651f20adf21a0916fcda4a936da3f2c9c88cb9b6fff61cdcc80a7ce98756e4c345f3b70b37ecf2aff6f7d98c4370e95c6d1f4bc030a7ebaf162a7c3dcbfd5a2c36522f62da43a3b5852497dcaa3e4a6edba31e2245dd5e81d34787592f378e13be0ac30f96a8b431a39012d912abb0585129bdee9a457b9456ebe184d8a893774449548183d61a6878baaf7b233f9620c1b956f90130966b612ab7250442c3189292b89d543b82dbb42b4f2955b446ade148a60b4819fa98c64489e988da9bddccb8f1bb4915610a99eb34aeb5eee3400901ef63f5841e28ac446dd3acadc0ed28624b78787190f51ca84d7fb10a31f28205c84155ca27f8b8669473cbcebe038b43f7adf5368421c45cb96590f74d35da12965007b212c65d2a208c4db20c18bd9723c3c241f9059d2c4fa03659c72286d6b644bf9b27c8aca135208e8caacbabe04f7e440f20251b692ee3c061b6701efa3f5b0accbf5a88e221cf8a1143523357c5b5948b88da58710b0b2b1d436fbb191e053955f85c5bdb317ce7d6a496ae6247822462c49e2fe7ff9d5c828446765559eb3b1708eda33cd8c4a7fbd7e6e204dbf402ccac3ee0e7ed3c3886036b277573407d0cf1cb25ba750e4f034738aa8110871789cf66cc91218f89fe629c41e902fdb9256e92f2bdd58533d59d75abb3f1cc4a7aa07dcef921e504eb801c18369f77a7773797d2b0f7e707fc996af621ffd247a946562eaa26a8b27a1f09980032c8c82c83027e8ab26baf7b9a69b041024bc0836c56c6216845cd3c2c25e144a1c2ca7fd26d5cf0711c91449f12f9cc73face1cecbbaf7d9197888f78d6e790cc730194fb6d4693d384a879e7b8f29f3abbfca034c5380aed456f28df14d2d16ff9f09829b3de977d8f99c5b67ee4c936284beab859138a3ac63314aa40447e46bed719fa300233b57a283eb188c4c955b6523fa113dd97d15cf0c8e920f0578eb3fcc052c5462408fb1b2b132a685c21ff5061cc0399c855e7af5477b576b2f67b481fa769f6c3af5d643dbdea65dbf3338643fca1223a09a87cdf39f9452a259859646f5be2ae0e4d2f5261dd6f746f13685419dbaa595f89b25afd5cff5ddb4f0b0e012128043ed594fcf41f0fb4e62f257a1036677e753719ae9ae242c05492ed011475462d4e34040ec940f3ae80cc2ca7fe6c0ea6e7e32481b45ae593fea0efd97a2f366562c75531d5c7fa53cf50378e59eac984ac02dfb104cec66407371ed3f36df10347682703e08946c5cbf27d9e594f89763e1b56692ff422f07a06fe0f4cc57cfbc0bf36d7f81e29123a1a00b9ad777b0f5cac61a9a966bb370901229352ac6c23ed37894956fe342d219d038080b43b0f1901b05cadcf6206d660a7ebe28c3779f3e98252baa9b329b87d6c6f8e912a010d5d9634f7e935dd4da04164bd0c0b93e0bc7ccf5ef0c1e842df05fc269bf5121b8c0770527976a415148d383281ddf72ec69f67f8da907958a42637a661db0ae25e3d0b140b896dd5da5ba21fc8458f4420eac2ff467a86fe1c6748be0b51b01feace975756a79e3c633bda5bd904e4d30fdf072709560091967398bbe29f2b4d7a865c283f07ca067d94820a21629e37f8a2680015f13d9e1e48f9b6a682807d22aad2c610d0f81f49a1f629edc62be332e878f9d392c90397acc79af108676616e564f95bd4d4baa0ea0408ba109da75fe23752cb0d3a50ffa8b87acf0b215a38ed5aa23678512c51474270d869d0a8705af389587db438b3287838df7d804a3b7db28af3f0384bdee7653f5b01eb901c3de56d46e66bc2b33967e46da2657932c8f737017d909f4d6e91c89a14667011481d6404ad09c77022cf140eefbc66377121c4a31ac41e7055ef15a9b6a4fb63fe6c007aff6a937ad9c041fda511efa35d74ea5e73b751417fdcf7d85e6a46e8524dac0f42681650b9d46323886ee0047e3ee549a68999033b2c4856b8cbed26c3dba8af97274ad31d1f67c4ce79ad705a0014184ffbe9906f0c2a23a895d63869b7845f03c05f12dfe954267d51bcc7bf378dd3d1ba4efe345698ada0d0f0beb37d4dbbeda64c27caba389a4698dc6118daf4bb92dd86802974e14a6bf62adc638ae63153efefc272eb9ca56af1af6b3ad067662d084fb9e2e881f9542f8b03e71baac17f478b022a565c120d7d23d484814b73eb9e27508c5e405b34f4f0a0eb5c6d0bb5fce367540e891b483197593787a63923d786b35a63731fcfab2eb0f7379da3c9378ebd941cae113e396e6bebbd76b5b2512013d5801162815ca39a38ff08c195189e1d611fea134a5fe59dbf0bf776d94ed263369449fff66bcac6ae0fafe8a5668b64cce38706bd50a78350dfae0446765f419ab6dce8bf1638cf1adf347b36690bcf1feb768f2e53b3bbacb85f2decd5a4932a27d7d65f44fc74b64519a467d55c5173748acc539368812ae89c0f9628d8c0268d09354a0823584375d28dfd2ddf4a2e09b630edf06057d7eff424de0b3d54f691998bc6735f3a2567fbe2b1eef8129fdf82d59f99ce040f77bf0511970449bac7086b4c72669c0800d368b5a9fc9873c8e6b74897381cc353623326db76fa661eecb0b4e6fdafce7bcecf38719d7a42b3c6336b88d17deaebf687debee1dce8f566f0b38132f0a95185816de33e79379857acb2ef219494fe9021cecdea685182eb5303e051c4fc4a14bd2959c4b5bf89f73d67204c90e034eb38a2f1e5832e491b39b4871986bce5a060b12089df5296b712ebfc26590d58a03619b8767c3b1560b908460532cc1e594cd4ee749be189211fe74f81ac8f969acd26bc97fb17800852232f036e2692b92fca64e8ec3883ddb9a832cf80cc124bec726311285d248332d554c9ad827fee638e2639affe462799e97656e1850cc89e994a127ad1169c5394d734aa4c46f0a71e798121730523b511c2cf89e018764711fd27a16483d6e0d313de408b293b0b98f96a4a913333410c5ca89c31dcef16ac19fa771b4234dc48a8f0465ae546818597261ab5eb204f0bebc5346d462685801ccd3dfa785696f9aca6edc25dcbc7c1413befffa4a756fc32e767feef59d83f480ae88150659892a48b8f2bb4b8ba821a72b93e79f68b495f35de92fd0f2f291668a833205c5ba92d794399f1a0b6a5c214a81d6437f4468ae930a04d61e100fff3d5addca5047c9d76a3fb25a41173194956009a6009db99e63e3480da3de9314096871711953bf1dc5c7b36ed8372bd5c7affbc563b0346319d6a8da256471223eef283520f315982bb479804706aba27827c58d2f1fb788a3423b9aac6049f6a905cfce308ad5b6297b1645e439d8eedc3146a1e8de5785c004a01e93ec71217b738177343c26e8cf64d5a2bad54a8e2ed63d4a013491d880440e7bf3865f53a511a5ac1dee870ddc116f0acdab8db094ca6f39a31ad5bab29845c0962703ac1c5d0da8d86b9500f5632a45c24d2671204ce473a6236d9daac5073525e469fc8b9278fb73cc015a14efcb9b10843e4d764aa85b64ed5aa59bec231f898b349e6532a6146ab01205fc30f12ab85b985f54f4e671dc9f73267b28c439dbcb1ed0da4aeafafb108f4b407242e825e276bd288fe4c1f6aa1fd72d334df3e188dad4099e8efd80c57042b81bf3ce00dd1d953cd0a277c0d6d9b4862d43afa3bf9cc3d9692e20d1d89e947448c32f0aa0369020de1cc4d4b93209869295092995e2a2ef6d9031f5661a74f5052a57065f9c659a9ee7dd2277f73b6ff49971c84aacf8c4380d047cc7397a32c55c7c54f8bba1c30e0b1f2fb16ca06dc0eafa624d4e0a5e49e1f4a6041cd78a5705dc0423ebceccf75dcb0393641569ac92f4c9f5c820e1892c620bde247b9cda631b13a9e64eba7cfe9d58ca08013e2337baff5efb3ddb8868eb6790ec042d91f1bd0c5c9823bcdf507eb5680184bdb0db919005a29ab74db208abd52fbeb26123f23d1593c2bc2954184e4632039a1e53b36db0702dc52ee96dda110d1ecee228c5bc9d51f545bc54362dcb9807e384cd7755f7e88f37301a50f07239ff73b6580d4eb3acca201e0feb3bb6d089f9077603cd604516eb78a7fce5c8efa0bdef4812af177dcb115c190c9f6c069565b805d00ff6ea28339a24180058ca39caee3655e2ac863b681e0268e7e71426d88a69cf1f22e99cb2d34bb6f96f9956eccc0484f17381600cc85720880cae05565af4fb2178d4f956a3700d39a45eddc6d0927a7f6574f7c4568cafa0c4fa0186a146eea17b4f9cc29c88a92aab72bb13140e8079d0bcabf6561945664dec94e1afb7b7a2cf2759810a2b47ed9b0859e87754d059affac45b0cf323be3eb8daa2f10bfbe152640de82123a3618ffc0e3f96479cf3beee27b566ab0da3d5d404a3ef98636c331db333ec57d4322effb6404a2bb0627d1fdf97108289b21409cff09e3f5ddc840a8d2179530af1c282da199f9f08ebfd6e33a49e9a501f38ad602a5c84176625ec729b30795a4b031f7bcf56c5e409b024ae42f405d0a99c452df793991dc775654682be325ac14e999c88e519bfd021d5496f82b213d49a2ccbeb984fe2e1a9ccf576c7f1b17b1a6cdff6483486cacf264a745e89eb303660628d399d29fedc46bc3a192a8b80a74d572b2ccfdb4e09fc035e58269be1f91e4382cc1590f3f8d1629fd466bfd6ae662e939cd5bdfd4e75c0ed5c99b2a64f633e115e518122ceafb3e190dd01157bbaa26931bea8644712e21f90e5df979ef0d336c32215d26439a21561fc1da9a901fce365c337a135d4fa27f47e92ded05ae41c1f0c936808ce436fe1f3188602454ad690acb420dd4ccb94c47aab51778950f344eff9dc22445516e319d43b516936f5c1fa35abe6213635a80b4cefc5ee53fb315850c8ad9ad13402e15fdcef2d1bb43dfe062ee0b2dbc759a52f672a23830f0c0eff497cc7d559325dbf39eefc2e42bdaac1ac9392dad288313ea9e1df510236377b9d8fb8d5721c2d07906a50c9a95d27986f737630a3b2a365575e69f260d4b8946c0d8e817e737c215420bd7f1d2aa0277fb8995c9c25d3850058fc5dd72cb7f518ac1864f753a1233e5dada406d9b4aa1c12dcc4835d40b005a952224ebaa5bdaf4bb3a5a16a2fad902588d4f9f14d427287714dc29f20a0af97cfdbe8c439e2008e7f26fb2eaee801358728287b07dbaf6e992d8cc4bf8878a68dca27e92da4115e0519474b515b1bc17e3d9a7d06ab4d37e28ca378297ce76af9a35ac8aa1bd89e71ac62f9cfe7d450dd3ffeb94a647d3a88d456d583dc444e5984a0749805f004e6f32179dbbf867ee4d452b13d6f1df55973649038cc2aec90dccd6dd4b15f85efa0243f64d7a29153d8d5484be4b6f160b943db18105a61a49ea5e4ff8dfddef1d26d3ff5ffb2451147e1fe109d1da85ec73f25c82fff1f45bd6b71af29f1a72f947e63f1321a3aa1534b5b9e35499a1940a7def8ce79baa5e5ddd148cc59a759f4fce013d194a4b1b2c7b7065fc0cc8212a497217f410b60ba025e32f4ab97ed59f7c6d757211a8acb2b73d787cb2be22588e24a1de23b8c49447b570b13e686aad303e0b3138708e91aa6d70834f4295cb87a70822d4be9d915f7e855c6d0db8122c9c0b0042808e449604f667a592ecad53a9b3f2916b81d8bff3b374d5daf8c25f1b4e5541213378efa9a1d2d00c0d0a0c4c46887e5c68ff44914b671399141ff3f4ea40416a400cd885fbb047bcdee013410b13984a6ed78d942d265d33aad187a06999576b454c027d0ed0e2faab897dbe231b2615f8465d4c593c4eb4b4a6beb62df24e6b8d833fcc3c203c6737aec6d4021bc2192534b96ebe645cc18e03ae9b4b1bafa12b5f56379a72f9ac38ffc1bcb051562afde0c20573aa8f92b79e898b4e1a6543a6dbd5a8d41e505e81e3053a5a056f40c8cb86104363c316382674bf2ab1293aa1fbc573dad9defbb9cf570f694dc8810c22523fea828e7abc4a01f7768d548e1028b7a846b82f0d3d0af85e906b8bf4ffcad962a00c05fe1bac6d9d0af24ce10d2533d2c635e4d85c1982a49e95c60d515bced27a5258387f9ab3341d516a347a498d0b3a5a4a8e64e9a2e2dfb123937e5e859c9a77aef43a5432e70ae66c9bdf164fab9eee23d898e39ab56d2dbd2d76b8f736d77da01e47af4cb609e81d933b4b29369f3e0e1e30f486f1ef0e575c2359003ca61b14a35729bc2610cfe228e980e075965951bb05f1a67970555e2d6524593ae2d8e513513910126a97d992e45459a39d512fccba2d984c96e9f946d42e4dee9394cc2170b8023bd91a4fddac959a2030f1f624cbc8d00e6a224f52fc8dc03c48cd7335c4ac4ec515dd7951b8560bc78cbdee28a6aa116e7f957f1e9e414855a4470565fc3c8b887ad95b3ef648d7d596df2f799c4b7fd1e6a87316a13c6c003c0cf2020bba9cf7941dc2676d288cb084bb4e808aec67c19ba0e03a51760f4eb2a13d41f68b977cd97c6bd59b77b25a8be2a49a88fb33f2dba9786f5120cd774a83ec9db59622cdb1be4dfc920baf117de4f8831661e0c99af74a3becb1dd3ba1dbd6d3a3203707c733dc7fdf29e20bd58c1847e6ab7d5e54ae335aa7df17a3b37c8838202098ccec7becaa72f35b3cef27195b4acc28114153efaa40552dabb7e2ea46431f15c939c465d88ac6e7bf40902d40d3906bc152d1122de8e7e28f1d25b1cf7afb257e230329725775a3848bd6deb9bfe4bd7a3ed898c765c1d312aad1514ef1c3ae0cd48ac6917469f7adb73cd0ff83acbb080920664c71fa1cf2b894045abeb66e110bb1632f8667c6f9fd819ec7b91015dd630f4a08d2884b28389e3ae0bc9cec34071a8c4f43da6d8a0fa5d262edc0f5cde6d3f8ccdd3c9ebd67c155b4a44ad8b5e9d2fff6bc199636ab6671c5451f670514c0ab6b08dc4821a26768eb0033e24b6406a5919ccd23824b90b094e6f41f33020c111af080ed8af9c4a85b5c6581f53d6dd7c439c1b01c238ece6027a84e306deb59667b190fb19b80e246d3c78bdf69340ddc49c9f2c334fe603d36547f404c44c764641ab7770285e82e11f087a1eb175ff1529d2f82da506cf8123938ba64eba40579a082e8e832f97f13fbc927e2bd38f08763d10ab7e4e88314b90390630240cb126586038bac34c87c6997074dcc419787d141c1afba048132e6940ce8cad11e02fe7b445b100972615412e156e7df2c9f61112f6032fd9fb15b42666c89537ef5e0b17aabd1426a323302832274c1ff976315461139f40b93de0dc569ca700ac282d134e238ee55be82ad139adf8f0a323399df1174fbdb3feaedce151fe49f3a3b839d9abf900640fdc2a44ecb3c86c6991c407a0830678e632e45b74e26c83680dd10b087e850043949ba4199451e3ca4e085a17cf48d27a299c3527dd420c88a37faf776a2ee89dcd1ebd8204b874e45720fc18c42df83d26454683bf31984fa250d2057c35943914676edc9cfe84b9392bb9835f32b95640465ec40978697049b3b750cb683e550b99803b89492c5a4282c4a73c0cf43a6b9f94df1edbe7c831120d5ac43d96f7daf7ba61846eff96c73184d5a98fb0b6ab82719120942ab977a035c9c9623adafd924ee5115cacdd4fbf493fda8c422528d708a6945c5c74b60b4b5897b700eb3d7c9243e5705bcca5cad0f52dcd1cf701ec4e773ac379c10c38f1b79dbd5cd886c3f1de7e9043edb3760313d5bdc5a5ef4f6a4e7e01977739fdb3ff3f20591001b28e1bc05f06fad0175463b3c64db9a85ee5443d1e1c03d54be8948abf3d7359c76a6afe5bc948a64575926d7f29034f724a248e8514eb4553934c5450fcc8fa029e6e57641532aeb70e830844c0655d7c3ebde70583e1580eee404453711494e6382b8fd22cd2e67ae2312cfd85f6a3634da07ed4f4b431b3133d61f2e4a386b76b3c53d92dec6d079e6863533ffdbe78147aca062b8dfc7a71d778a07f669ac852e26aa2cdd370de64c858654870e77479aac6f78c0227f49c736f29ccb1a6f25e30b8b9713af9a78e3227830f8b0126e3b07823d111e2bed9b8417072c7485b27f90c8c59d34cb6cffda47fd01369e875b04942563a4fff6b50163e956c3d70eee18f39240f774fd5af3cd47b33d711727196e9cc564f055c0281a81f407e3727fc133a20dd805ad8506f1ed9c409382a8e75e0047649e71d98d93618d032d66c19c35259da313516b9efc983e61dc6e3cea1e716997b4a80b603043993510d639e03f8787de830c2da764414c909ac195022ba65ae4e8f3feb9577b1de1910db7fdd36cfc1cd756be861123744d78cadd030363681b0f83395beaa3356976378c2ef54394d80747f433443c86e63b31ae7f525a653e108a70062701dee6f0c985f972308931f4baee4081b88f81e85e77879c62d2418e1f9ec98708bbe8e42c0f206af95a3bb63c9e0d9368e3d43ef88232c3c3eca4e3ed956533cce0cc33ff3f1c9e10fb63ae70f219ae852a9c5e4c12cd91549978f2a1d2708d37fab2faa2e75975e2dedb692f85353f72b5818fe1f2d1796a39c316678db59664e9674f937622d70f366831154fb82482695a73dc56007b89ea0aae4148618412213ec8781b87749fe8659d991be6a4a41793b6573b6477c77cc9cb2aafde77486dfffc6e09c67b9fc663370958086f037e391ceeb106336d58364eef15566d076f688b4b64d3b59a8dfdff074f43c6d02c8b7a02ec825a5612e83736dce40820aaeea71042c49d2bf86d1499d366797d74936e101b420a395ecf4de46360121bacabdc937f7df25cbaa8062dfab913b28eaf428dd75f3cef2eb465d08c238919be842356e20e3d1d1a2e45cf1921494d3d533b41397fdbdae9422fc292507466be965cffc7f0c99577cf70ed7602bd94080260073c24657e8a5dc022f26d4b52383089f4ecd6faffbf650b0ad652e49e731461ab9698c320439ea2f0fa3311433cfbcbdb7266a06c67bf22799ce9137472c612be8cd0301a148d3a95508372f5823f2692f1a84ff26d50ad1b91c69c8567ae7b008ff9cbafa82d1bbc2a57eef85dc6b96e2688799ec4a6868b6d4972f84e64322f8daaf70682da38f390c84743de0d81c2a9b79455071484146bcd5b12d6587ec294cb13b6ef4f6df55159537babe10a3a0dc122d3da3e934ebbee316ba648533213addf03e51741f56dcaa8e0ac003210f4e959cd01366caa368b5020de0366ae0a6ffbeda025e1be7810a16954396f6b79cacf77cce11567325c3faaa9ae280d364504550e06d4fd63334d9df673239617c2d5721ca2ef601d2300ea00d1faa003fa06e274642bfc0b638e25e703af931b708412e0f5a11340a2b086ff50fdf2753b6968a902cc9aa2cd5fe280e70e8ee1d3e109ea70b24f72ca1e11846e4fc4370949e35abd5e515e4fba484ae6683d683250e9908fc115ae766d736e2703f04cff15f0a904e6b8091efeff3e4b404cbd5303dd98b0e948a31695c64d4ed61185174ea0c1c356260b0122c725ff0cfc61d2c957f30782c487662ba5a46184d84f88d2f41b960873e09d29b4ed0b8bc53f887f895626c510633b5dc03677c8d4cfc56dd2def1cae17506ba615b895d6b6d15a9dc5df6108adfa6e5eec57d90f508659907eaa97eb13550d0c2d0270ed1e9124ce0c78b0d5038fee38b3ded934681a3498f9981e7229ed23a1da4e76d6c45b59d0a1a1eedc65731c4392eec05fff956c8d52fc1e0c9b17a60704944f5f428d04ad1e367a13e57e18939fb73fa19e1368c5a9e790d40863e8ab0146821b0944b75fcf00e4045a22a3fdc3a6d98f7af51318a97c6dcbbd2e3afe05f78c6008e737cfe29d481cb8f35a37924b0879346a4b1bc579c50f37f2b3db28653172dbe0ca942ee6f43c154c5516faeb4a8e13f6f578df9fcfe41cb509af91e29b6fd47786fbe4426566633fdaad690bb1ad07ce3b67aeaf82e4db4ea713ab67af8b74f679889e63282f75d3a06f0d281f89e0be907e48c2060368f0fc2969c81a722270fdc4bda754757acdf60af780101ed8aef48bc2d9f52d7efd393784fea25709fd237f84f206de38048c1d410b5ac2791ac2e1cd34c5f055de9ead5a3d944d85cbd0925603c73b2f0c4e8aae75ba30a2cea49d326f920b84643f51c999c849e7df66a32c10ef6fe6b46143bbd4a190732edab2cd5d3ac33fffd0fc9594793283f48e762546ac916f717034d1fb1c9997801542e8d7cd0bd5d62e7d107cd4d3ae2fa23c10d3bb71e1f716ef438ff99af48b214ce6dddfa4383c584293094018ca820f8757db3ae8b6168aee81bf6172b68e8c6df4f757a2aa210dc3e2f31cfb7ab0b72c7085f07a95182da83cd611d5e7b1530eb1a00cbad278362bdeed7feae4cc96ea809ea8784dbbe8f958528686e4c22346e7b772f7da30e2e6ddd7dd28b2cb04b1cf57a73b85424ac85b1663bcef3fe6d83ca7d8e37315fe30cf8f2fbc768e298f69863e81b711f035c3c314a181ed534be66887dfa8412e9051139e2ba7cbaf1fbb9f63636e4fa66e85f0b12bf9287122330bc6ad3230a57aef535aacf26c6383ab5ac7f915c4590eab9e1ab67d43c4e27073b20785d65a7fbf2544774f197a9f7246a4157e95508a284bfc28bbec3bd227c1033c4e87a6161d41011eb8c5722042c2020169a57dabf25310837eb35f32586628d49aff39c6471304a6e46741b81710694ca30186ec3c4350c9ca24e55765a6e1557d4ed8c0ac5f709dc780a1e656a1242ce3667a07100a99e8125d7d11f574664e9bf6366023cb86cc1a5d3e094449d1d68d08e7d7e659359013907db11ec02e387433ba511be933ac339c386d8f617cf02ff033d704b46310d362bbabbf642723515beab41e0a9de9231be76d4cdbe24f507a8c9c3875f595c44c8fc5697abc28c13aa02deda845ddffbbc500b42c35b1efb51d0fda5b547f1d505adbf852a6f7908f8602e84192b6c4e3f4fc7b455fd5bd88c3defc32043d3f88f1d4a835e5e1c7860e02a156c6dc6d33a7916ef0f35d80c676cd2a5db0a46ffd144ce4f6baf41d2bb1f5ef13c15c746de39e2e5c9ec9b542044d94e08d0f41ce442d8d19a188d66a48bf408ad5fed097ae5ac9eae866aecbf6b7b23acbc7ac2aec94ff5b3d96e45c97cda5d83d8fe89e4ca5be7056ae86b1ee76845496b494d0e24f12f0b674fc1a0f08be4fbfc21575d4ec0656011aef6a2f93ef368d6ca9d3bc2757e618b591f69816d960962cfc78d7119ae7cb6d917acc2ee91eb8e993ecb74ea931db06a8cd4830841ad44e4c8899f7028d0bc6e285ade4bb0e896dc871683125076b0cdda7432159e43e65f49c8986c9dfe59ca424e648d3b7ce33011bb2fb45400731022904241571c4f2b1c5f62149b37bc5287535da2b521b1d026b2e9fdbfc7bbc3eda520aa5429ddf67159671872a5d0a6c9c12b0e5e4b400030a09a220ff9721507cfe245334ac71fdd0ff9a5a3de740ef375fe35772c7282b29a219a9bc3982a57fe745b11683eea94450323692165f06dc8f7d22d6d4f3e9335f91908126e37d0d24f411d71aa83e768e461d5bd8ff76c84780ea8e76ba8510e6f0a0ede09b0f614854c09f7e6d68d675e08e9e88dcd331124423334ecc99a137521d903ca45f51a221ef618bfd001e2e1748b9486b31d34fce1c612fc30d3abe173740376a830bea366d27407708277f01b10b15b9cea4867f9b2874fa44735fff825c15fa6f98bdd28a8dd8383d2f560b11c9b45c05c60c2eec893a8205c7dc1234d0b165de32dfb4c2b187c1b37016a6716904fd53e26a0af35ea056633f35c2986bc495a4d597bf4cf07d2c97ca616469f7d09378e6333537230b71eaf01f8307d87556d2b3cfcd829942a0331f61bcccbe280841668fe4e42026d409726f9c833c842ff81c2347db33206ee3bb61f4709f6c9905bb1d94182dc8d8d5f9536090e6e2b1f7388396153e362e4e56ddc388cfa5f0ac303107c1db918ec2fd2f05215835cb0a365afd298fa2a9ccf0b5b8a0a2b41267f2f8089489c4104a9795ed630e40c695d052d06a28cf757a610ff4b14a891f2cda80ec0a643791a766a0594f08dab3a7b6163b16a8530b9fa9ef5bb97b493e140034a0ca1fe23a5e28dacde8559c1c00bae7f4c24badc6ad6a19607edc9d533e1f7a05de82f71ad3989aba816c6b256f2b008514a028b662936c807c1db55b08b3c727cc26fcbb20697749896425baf0924904ec12746b2f9814cbe13ee15b39a70aa0593f5b53b75f6e0fdf59ad6f2c61e3ceccb5875144f5a9e53bbd9edd643e5ece087d1e35acd16a30a9973162c2af27a9a062c646f6a4a439eba4a6e73d24186ee2d8cb48919d37f27e8079347ad4bf0a010129e5a9834814c454d29cd3abff1fe01b61d1bdeb25ae9aaee4ef69695623b77dd6f6a4ecb880674e8d7a8bcf37c88f916ce382e2e30d138fb8315abdbf74cc161f5a6c4e6e6f3808a1e755184ea1099a0b5c0d56d028c10495948f40cbee66cee858832be3cc6ef15bd4fac45932c7b101671f07be1131cacd995c175c3c4823652a17aa01006aa732e38765d868a9291345169c970f7caebb88306c1275f6398c31ba48db5faeb4662f1ebeadaef60fd39505ea3ddb049574fba649416a89e8e78b6f8f81948181f31ab54a8c056ccb4a86f59df267d4ec223401eb4d3a0771cf230b82bac40b7c206a3873027efa35c95de6298eb06dfd7dc3ad826057e61c28c7596c6f369d8e4994ca9ab5e303808c4acd37cf3e723dc3a3677047fe7a0861e1c2a6ccb146f62c319e21d2e5390c23b8ca072f127589734fef745486acdcc3ebf65ffdf778ac76d01c5f451a239fb39c02c5f29736ac1addd68983e8a0e009c012c38ca2869a6c346088f1f1613ff31e9978a064f329ec7351c58f2e51aec8b8e8ae424a230b58f63200a7fb094d730b8582e916a5eb0ef1aa028868848755b7d598a6684548ec2101960e9bf2b68660a59a8c5b8ae628994fda80f87d04b296ce78c93ede7441c5aef9632fd9ba2a4acb690e7027771b2688956f8460915569a6190bcf325d34ea780498ff49b839ff3d782c706d84eaead2685fdcf639997435b7fe4b709903aa398285a0b824cc931ab0fd8b231e4dae6600bedd59d8e8c446f2304c70160a9ec8a32932c81543ff5824aaba2d15dbf95e8206dd115765950e08f2293562a0db287af6b703d41b4b1bf375449cb0ec444929f8d12b2e222102b230c31aa9575fabd7a72b6502941d79865accd1caa4dba1519852a31249e2183f9d16f04bb9a805540221e4b858e5ad58049d9ca232349a64492439b17629cde1f363f6c5f5007e67b3e89cb3cec19b01c5299d4029559d6604f9f0e2eb354afa6e80c9ddbc6586e65f689163b472db2f1fbfbc831942d8cb7f9135957efb7cb4e59dfe86ac163f163bb9512a73719463000bda852cac8fb0c0b5625efda671724c6fc7fcb9d889808c2478eb072a7843970b2f241d4c96a4096951f6f55f18a9a55796cad30b70c573ac4f5f0cc9c4bed440a82d30795899e96d5026d39885c348da3e184e20cbb7bc3c7c48ece9d5315a9569885df1620338e8407c5333f19a8aa7d17fd13c65cc00403061b5d4c933e55618a7f3d48b26208bdfabf5333f6e30738ba14c5784b3ddfa3b36127ad61838bf9fa9b7dc62b299aba3af0c64ed2e05ae8b12a04c3ccdfa1265aaf81606689c883d8395e5c75861e1d624aa546fe6a358e22e4308556cbe196a084ef78a9a27f89cf0258a969f923d9c7a6c44cfbdda4c49fee8c9d900d816fd2d1e6b637a4ecac71112343b3a85526d3e1fc9ba5451a1648fb75491e1837bf87d49b497a09df21ac295e09384e9f134f150c628ededb85575df10e2fe644365f5df8eb510ca1ab5574487d248377cdd854991742a672dd632516d2088e33c3e1be87ca3c274f4e24f6d70c1df11d5260e40a5fa54ccfdc34aac81368fdf683b1bad8fc23bd860ee788c0cf16965701e820dc350023a6d97399ce30c0888572a320aaed63da903973c13aee3270b510b677b879034176d02dd2cb3c6cb721d1131f4488a3d7f8f40c9e23d70d367bfa7e29a0360022d449277492df580cc3da1f19e49d1c8e58e8a5af9aa42bbe9070939ba3e522cd1880aeed83a9ba6eaa5880abd60fce59a43d46206e505af9a538cdf699f3cee5e1cd6e1469011027eb3fd3cf439b1a7a998aca7ba5baec9b4f52416cf64e137fad62eee69181ce7c9a2a53ce2a015c2362d4efcb07da40a8fdf432a9123d56aa507b5a56f6c58e0e2105e8817528ab87b920d6defd7ab98fae98df0f87533aadd52e715bd2e1be457f357cf653a60ef915ad8a0a9ebf50465685b39b730890b111def01f968bff118df9fde86ba6abe3370381a8c9d38b0aa0b60665555736a57ffc18273d99a7cc8163b99211436d00b7ebcdc83be6a3eccbd7a11d14626561faa2609556a6e50ec430d8b381bad7726b75d043354899b03a4c3e001e59cb690fa8cc419cccf26276cd3b8b70a6790c20f405a83adce6343c4a40c14a0002c6acb05a8fd506c74c27939c8db295843a6df2571b096be48fe1621e7d578f1394f11b9e35143906d2f42a623f58b1c2b62a7701dcea5922626cec3838f5f48280f16f1919be2bee29fec8e01729a24dba4fcf672887fab4c45300bf0ff7de1be2408b705a1fc738e67feaf3ff8429bbc06aa1c0e698abf7b134b023985fbda3b5ffc71f246ed7ab0c11b1c1df5f60fa1b96d249f29ad8d2d5781b80fb5b3d80b6ca619aec39122ec8a5dc8e05d6634b410f23ce6cf0425a46a7f8c64ee26b118c29f3969f29f147a3fde0afd49f393c1aed1637010e9532260b588e46049f75aa1d722d7070a0c8b9366679e5a9e432a5719b46f7d60bfbf3a3daeb15b4c4cfcccf12c16bc2da840cbc5fad6ad5da3f1bad8b538b5a7792e0cc5ab76a7fa23612b4114f146674527a8267ac13b44864293362885a6f50b6e28ce38149ce98df643fbeda4a73146f78a0fd345ea1b16fe5433026e12d66b72954ca22103d93fb81722bb07dd1be4248c178fba5da7ef109b6d3e1ef62f9ff891c02bdd2fb7d61870adfd66e4b2b9fbb163a1c8d316efc4a8d2637960c5175f53eaa812c08fbedb86b4b27fd6616e24494695a6e886624f351c3e1f7f455f017c52be632d5327e99538085f1a2e684e94c34d1fb7c48254f595099abe6734e8e9efb148c02a5418219543753df222aeb1e2fe482be9c24e639f1d0ce7ce27e6464670a05b8fe79dd59d33769898ba806c912e8125571c014f0dfd76fbbbe929e52e53a76479bbd5a9de29e8df3d6ff700ddc8d97400d78964ff09eeefc25e527b07be95b13ca8c8c88d41f81d5d7b0e393e22d46511b9c9990e349478083936c68653e32f01260acb6168a6d1a1c5941d20249dbf4286ef7b465cf45019dc5bc4b2f6a6d5ff3584e9fca092fbb85b87f1c8ba76da6aa10696fdec38e3bb55a900dd3e7d33a091a8553ca7a4b066d00c32653a96dde65ec3a15f5d9bd0f72b14d6b9eaca7806e868ff595f8e94891216426d2cfb25e9e27adde40c6dcc0da694f3938da469453f7b29c28a249b2c393ac3922e1e09d3f998cdb3f983ef17b929c8a0ca7b8e8fabf5eac25552f63831b63ac1fcdb18a6aebfe1b3d9d0816528a96a21a090bca46f8af26fe8c35e7d5cb61bba8961db098aea5676134fcf699a6d3e1634439530b99c321007f2f7f512e3c328800629b6111ecb32882abdd3c6dc138717bc2c15caf5e789e3d6a9c982910c0c22fba90b4b4cb9b5627736e0aae507197671b5252314ca7fdf06b34172712ffca16306a6c34e409869bce2807ddc6bd0fdbd530c021678cb98f8fb9f4b4eb924cbb2922c35c8b5252409e5d6da4d3323b10d53556dc021659aa83532c3627fb68c651befbd05b5532876a0f1a4ce6ee39eb2d6fa4340f7b3e924cfddecec633c258c7e9c54490c28bb781faf466fb488bdb9841c070c427a825a92da0efd777c8c3062a1a0993cbb104277a85ea8ca1a1806e36f8a5faf47eaf5da6d19607fd189def65694427d0dff64d9fa5501f6bb0adca833eb067e49d32d1794cb21a131a62c47ae98ebdfe61637b7d219d35d7b2190613f719118af5eff4717892fb968af3d913e8df26e3f2af51aa1ebc2a46e21db5d9e3608268c5c3a367c974d7e5ef3469353dfe00301fc7e4c845b03f52baf56f246f7aebf0b95f07ea3e0ee8d34d478139e23ac60edbe5e14d3c49987daeac1ea2f1ed35fe1a17a11404fc2d0e2e3946fc327f486b1f2467c300c5d5db5ad5e9cebd5a1d413c0810bed41e9a682e116b9c9477cf89a546b38418c2fbbae195a3454ce832e47361b634326a6715f7cb1ce3a3a527be416d95f607a620c4d70fc7681bb8cec8e2cc642db74904688f66aca2a8f1420e35581800d09d368bf536dc931904c324855ea72ae64e1e4ac01b3ed1f9ce00890206e5eb0bb5902f909c36743406eef3e555cd733d5152ae899b75e7917bccae05eaa35ad727df61759e20f9d7ed12c61a6d8b2c613fef8dfbcdc74b78c80480cfb64a9e1d9c3db7167c68fd69964254c43eed20fcf186c29a04397f0858984a9d4257716a00f84fea89dbf47d85fa295c8d3ee89c6ee3d4b22d4f2a67dfc626fc8afe59a551cdaa5534981caf947801a266d12efc38f088ee23fb3c7ce163bacc093ba970f610a36a6a7ea91f978a8eacf72a56e9937f9488136c27a7471cf54a2a9197851a9e7d94bee13aecc5ffa412fe2ca923fc2584ead9cd8cd2edbb9d3e9c7b236eef82531a1eb8cd82e0c2aa83a078aa4f207d27366c91947e81d9cee20997b71a6df0d05d4a6f56d069dcc9c23cb7c470596eb6332472bc64c7baa6702d5195447f99058b077c84950f39874a2ae93aa5e06ad4902e7a1fb1b4dcd86229e9e188466ab9dde8439d51975328450422674675eaf7600470266238c56a37a4804a688f77f54f737231dc255bc33d30507f56c74470b8960c772e0fd87a7338473eada2cfea59312240748ecda3eb2aae73b9f4f4cd98af338f08fec2652d6ef950667a83f6eee018522c4390f9555941a321610bbe1d8af2c58d3a20dd2b394292196267ad544c9228723f8d11bf031e64118c802c1d0f26a5a5f5666e5df16c4319ab7bec90d54311c5a65833ba57646d651b6ff08c7b14ecc4f599df875ad8d82fd697e329f4de34f4a73439af25f41a3305d4176d3a3ccd76f247500bdc86baa1be53cc9c7510acffce1b3cc6913897ac5f28e8c527a2077ed051552d07b52365f2d22090dc0d6e95ce7fcc1c287b14fd6acbc2912a603bce00a32b71c46ccc8db9a8d59c18d85dda48727ac14c6791455e84ebe5503449ef1db1088dd5bc03ef5f4fd46415894be8f1341e7da574a15ab7b3d168ed73ec8ee3a43283360848861311748faa2e35c33f482d7f73910298de35a0bf8e06cc5f5919d813e395d4891df926b8061ed76c7274207334b2f9679face8ca862a6d54f4bbcd83ece95167373a88e3304d6e3239ccfa953e0550ba28025182b378e31c5b72d25d18ced6a30acbf88e42342acedd59f2203aa0f38e740134e02984441e45326709c82c9f152e43441051a72858de6178885d7e6e155cb4eecbdadb7ca60e6ebac291acc418af80650e466d541e777f3bf814fbecd40b0a027c2fdb8d1224a71ea77bc5b3073dca1bf0ad4bb6c8ddc8c3ae87146c2f2de311d59fb34da4d31574398b4367201610c85d1620342503e62eca4fcb7fde1d3797a0c2a914daa15d5d914f67826c6e8f8d69885c19decf877d165ce520f47a055d2184029be7d7e95d044d63b20a15dda307cb0c0cf1609109e934a638086d32e3206ca070d372d731c79a8eb177e728b5c4589e9f3b063a7a66733c2678a319504ddac1887ea82feb738471315533d20c0e94e8326f2cf9bb7d55a58c0cbd6d983fb9921a6c19c9111ee2f18bbbee523e8952edbc1a55406e6cdd8d32686fb83061d0e0126ac9dbbcbfa518c9f98dbd3ec83cc310601c6f7d9512ebb277e44abde1bf035ee6fc3db7bc9a3c5c555a811234eb041de1cd95df5943a0c8f8d645bc51988a47be99df6c32b047f4563acc6408e074f940e85795f987a9d7ef6de716525a75e5c1dab2d79c774724a5dc98584adedf6b5010e15e35720c5272c1c3dc93eda14f6928f97a15f3765334ceb94e7eb2feb08083bd080494ccf83da8b7c5faf834a5736114405d2d838138d582e7ec40f478cc9d7dca50e7dec0c7a4634e6d1590b0b1f78a0513b3784d4a551e7bad77fdba2f19c63772cc889a2355df24208174bc2c2e880f4f59606cc93b248013e42a1a13c676cba89ade22b165197fb038da49fcf76ad392514eda3c76091dedf3d58fcbbfdcdd1caf5270b0008f9fd5034ce5cb76c5ef0ced746459dcf4ba9ee69d57902c8be490bad0975a5e9e189a51060fc94a16d4c1ac3d3db0afa2912eb213f0b5ff1bc0f90068165ab9e93f5a2053f6e277ac0321e72147f6c59cb83109b9d0f7fcb4b81bea8393de76310b045ee02fcd56dcd86c45495fe93128b57823cdc4e0a9be67e9c2ef21a38f8a11151a53965180749cf1df247c979dcef1fb6ba58f1306fa759c3f683885a7aa401fd81fbd1aaee422b813e4652855b9fd628b7e509706d9a84211c7a845a5d95f01e9245d9771ef93152cff1c4126807c2f1fa93475f9c98f1ced455f6b8775fa4ebca67335811f501db9447ee1c9f25fc0eca5aa1596dde70b4b6764cb6011eed0ca838d63f2798e83ec6a356149ce835e579e8d463057ae2186437de1b93d196e8fb07506b0191d056cd72dd84dbe298e0868a8cf68c69da463e9818f9e823aab4eeb15dc7c5522197da3ea11be96b11505e4534e97ce90b6fe8fef0d1fceea51433a23ca6127b820d09c63480347ad867112598c4e0b8fc69ef9d5dc75ac03194c7e61ff0bac18b3968dc37fdb37e63e48fac18a9d30ffd4ff5b5c1f5224d88022dc07e22ef15f8704291e994c0748fbcd57f0968fa4e494568d579ae1842661d1b8d91f0799d84d8e3a98526c5b36d7fe08ec50a5c878648ecc8b3623ac1e9e76e2ce7c3b005871253f41b9b5192c9762e8f4f371ca12dc8245a5195aaf3e5170b67579e5d7eac0918287fa6069f85b153812de809bce99ee4325564dd825cad368baa9dc660038925d98c9fda92451332d6f70d021b8b0fb388c74f7a0b1f5975fad0f3f53c1be2aeca66c10fb86e3eefaaf436138ea255298e1b72b614e4b5cb1c84cabd2e5101d936aebfa0a093c3d66d93e535b6c838e902b6d2b9fee049c252b37a3d06f483c9ba0bfd97e59436a7d879bb6579e34016ac750aaa26a414290d013b7a05b879d2dd1c70a9780b1b2ea44282ebb2831ba3be5426421878016407d008d2220c904b943c49747841f2fbe4833b060ce0dcc069cbcfbf955321aa4a9daeb312603e4fde3608360903cc5dbe28c44fb474718e9e801c019a27658edc4164dfefcdcafe7e697501f47b34106beab1c58f512c29cc3da73e044c4112b03bc0ae99a513850a6cc71492e1ee8c3adfeb9f627d4365dfe28a4e16ecd93a39704d61b9344eb6a7676d639d0a1e3cc4b7f0852dee85f7a4ef54369c458a0922e26f3c1e9e1654c7008bfb635be69f566701212d1a6c859de616d27d81ba84b63d410535e55308ad1b4cf6d684e0f40467f7d76766cf084294b43155a6a63e2a8ba0155ef311a8f60c8b3f8b84e914a9942536f358ae977e6eee4e3eacb537bf9a3427a4d296867cf4eb37470dd81f3261943b62fbf8bb77bb4f01dcf24c2d39e3241bc709746e5948849f122c76147ececf1852a971d8d476f1d159b4f5e75f23cd70619ffd302df7225a3afbdd856386199546bb7f2995412e4d5e95b1087be297ad4814aede71eb24c2181a23eca0d426b6adfbf6accc293e01008abd4c6f598f1116ffaf4f43ca0fa7b81d4fc13a2b0af6c7caf594324dcf1e7209c1857319340a6a05a3971c09521f258e1d19c9b475fad2af04d110b8e3f022420abfc5f491990874eeadea509bfa7f0a5dc00cde4fbf99918210e09bc732d6eb5d9b3315f118fc6d34d8108f87ce58f19c6c1f6c1e1902542a6eff3b8805e67d50340e5bd16e7a3d98da983ac643d08a70def90018804cd53321def79d7256c2d6ba0532b9f4cac004e799b2770227b9d46d397381c1fe71a13fd272ce2485d4a5188ccb22277d97823ce84828371d4b7d6328cb6cbaa1586d11065aa0cc0d0bdde5467391006d1eba0886173e3216bd33b23c0df6616941744fd9de7d5fd2f56eb59d8fafbea36bec9d130d86661c1e92912a98e4678c2ef842c0b0ac509c45969e2fc0755943ce422e8e14622129f16eaf497da48c46bfc330402cf7300a362509593add3f19093b08f4ba656123e5ac31f6188ad006f110f35207ef9d0005e9b4ffc53677372af151ea4bdde7a445eb3a70284cdc9ac0c964d93222409809ecb0f256e46c4e5eff997360aa1ed2f926b6b92d7e9996ba22d18094236fa03988c1bbfa838ea8cca918af3d5c787ebb409d256be4a78468df8779dd77b62238b052e6dc6ac41d68dc68e2c1cd8d52fd0b053311fcf1b9fed825cdf155785a41a7fd5387b921df0d0f540a5dae10733c143c8f42dd1e69a1ff88d3fd6a5b543f3d62659e7531799f57c138b5bc45875a8d6fd8cba0dd35c2f342ce91c2dd52a7903c3a6caddb02ac53de6ee0b4135a5ae431d36e2d28c1ad0c406b44306b16e12ace598f71b315e36a76025dbb694b0b7e85cc2792533eef69b1d6d32a270086b3d5e430fc3614d1b00d8f695392dbf2f87aa3f3141b7402211cd3b32664e60a12c3fba820613ebc83c57e044bb04492e34511656c03475bc535ffb3008765587e974d497ef0e7407d6043edc865a4dc3f2a08bb14883d513ad55d87cb70ef08c4d977ef00ce78aa261c682e226fff7bc9f3ec3cd4153b311cc2dd9013dbecc176036c3be35aae59e2f648d1b6214df72e56a1bcb185618df3644909af71c457cbf6fefe58f012efa8840a4d39fe4f144d2c9d050a3ea6cb6de8d8131db37322dcef67c7e383e180485c6ab0052b134202a7a6344323429c2f00550b2a2170d3846ce814153ff9a654ca4b37c3d705667240162038db8882de66156d66b71a78c7ba8ef62e5835388d636ab2eb1382572c0967d7de9718990a68f0e8d539572acab117903ecf2fbb0a8eb1bc6990d419254ed9817f3221e22ee9944cb410cc84610e5a93c6c689f1cdd07644a86a98a50654bdef1c9189020f8690a227b66dbd4a343a0d0a7a24246c4b86e05798b8e947134d216d38f56dbf748bde1ee8c2ba0a2e86382725b9a1fdd40321e583e724756e802508221866b4c62c1384e8de90628c968e3b7a57109252345747f9f96d092645a4063fdfe0ce04c0a9cfec0adf37317d0da05cf01e179563c6fe1a1e4017a8b9b0ab93cb7e69c5db5f5ebacd09a851ff0e24c5344649dd6701fb6f3fb903de95b6707a3f6b508915c261bfa5c2d9bc2a327542d29a56f263f131882e82e3d00eb569819787a964d5a9ceb6a3cc9307ec8ca3d885210624145ffca45c50de85314ad10c29729af394a82d697dc7e0980edd90eadd714aaaa47691661edc7222058f3dadf5898bec89e23d79581f95b241aaffa5efa3cecfb535b013378d6d4efc6a8edcb23d78101411f68dcaa9d3e0bf6271b1232faf7daa5566187fa658040aae0b67d8b439f72315760a995866ad05b65541a989e37d82d50f1508c027df81e845a50de98d33f09bcdfc427cbe4554997259067d082b223fb46f9c7dfb9767f43d8c3f4102b63abef3b805cfe894f921725a14d83391582fa16229de7ba3e91c70ca54e8e5bf7c3503190ac6f3329bf023267ede4d9446e59abe999ff2e66fed0c09e43ed0669bc5d4c5607c6e2dbe5cbe54f7d574ae29ec964bce45837497d05634469686b394a8ecb61a783d4205dea226a20b23f3b6fd4a3b00d05500011792f32464482283b7543717850ba5270794630b31483d92420c2c90d77a095219241b0e9c82dce8415dc4f8e166bea28c4ab1a6b078e0a509642fbec32a96cc6dc728ce1036bf68035f9017138b104149b2665b2b67b10a7e999f9bbc4961501e28cf6381a22451ce4f1799d011f1df901ab9fe66862b0cfceedf05bc32229dd7c030fa804233c0736065793601ae880b373382d726e7a0f009573a3cc8f94d91ebd00bcf8fe89fd3f0cccc1f156b4e1a0de8e1815758bf87608cbb241c4b6ff3bb19f8544d05b4bb6fb0dc93653c5cab600f63c1146d046464ae378b1aec9e61ab0120c8c5c7fca35f1e8a92eb6191612308146ec28851f30a9895814cf506a7c1af9be87e1bb6a1b72da8e60dfc3cc07cbb49600b595bdb8809299ebcdc637197bb7ae8e7e2080fba4f3d543c230965ff1fb47a657617dfe9147c5184f5525c8a4bbf5ea0b416af52a1321453527603db7ff180a6ffe467ff34b9138764071eb457031ef7dc88bca0e02f99abf6d14964fd39595468101437e5ce13f76d94a37b28cf415cae029635a1bfe37c0984534e9913594ae87cb251798c0dd19ebddeb1e291b0e901e73ee128ad4fa7e55e79fb049f62257a3dc7d4d78ba7ee395a85a609fe2fb36791587f3c3b09a834c7eb7f6507bf7950e1f577964371909eefd2918752e94361594e0d05b2583239d972fafe4fd5d3196765218c5c0b02d6dcda81e3a3fe272bc228b22f87faa0022941ff718b2185a5b41a726d083b7ff78c35dc81f6e3f325a891d682a55ca140d6d040b9779af9fd3b47f047534314d62cbe970d064ffb616a7767be4afde5ee701328552e67f1947c333d1c84ca3a3da6c3706cd8923dd40a7a4ab80e06307024a93ad2146d9141f072c0eadd4528094f9bb440cb79a8bc1fbba64b46bf7d9620f9a99b56a704a33c6808fa6e3f9e546775800600ea4084b0e85169843875d4f06794abf20f2a50c0425c569864ea404888316b7f59b69052258f9965356384ec49d1af90de0601e0abce905b3a5d08ba4a8a4d8f9e22d9c4e60b170bcda248438de5d4d771abe89e43d5a454970f0b5ccdf6cf5a9a20732a0e2dfa366e0ebefbfff7391bfc51286ce1620f43fc134e2074ad485ec8946f9d69494cc7725db317e3a85750bee88ca5bc129bdb8e7d227d36682a4211d83d0cc7c5a43599125110a086e4edb999dae4e8e9f8aacfa604a845b904e459b5eafd29327e64d52727112bdd04300f0ec04f7b5f9ea623e41a99254eb0f5d60c8853e3956921f2e1eabcab10e5a6598d315f21c988fc2ef64478937aa050a9faa76a06785e144ad9f7125a81daecbb820672fd607208e96c9ac318a5de585f9946df2a04d11bbaf414e932c4d023a70ba6165317bcdc4b07202a31e15705401634184d61fc7b5334b9249adcc2ee44aaa23db8d9916d304ec8083d4bbc25b8dc8be1731a784c652944a4cd98bf9d511b20aff01166cea78556ea1a8324f21684035298ec159e8c5de94df05f66fab4590d70464899b23324982687c85fbbab5e4f1aced8aad9e75eb27ca7c73e94bdcbcd5faacf4acd0ee2217a841dc8a13ff3d01b34e019c9fed3b8c0905e93c72743048767ae33b3da7f6d02b3affb5dfb4dc527c175cdd9c80fbbec7a0721f03010238b94fa2151f86771fd5897a45280e344e1d8c7164b3f408fab2addddadfe977333d5e54ea1924e4327a1a15c49fba1f4c297c256a8590f513e067c3f4518e096514cab82051b98ea37351a7a4e3e1c3c9b11cf2c31f6d33ebd993a62f9710257387882114a01b63bbecb3ce7816159a0f5b89193b6c5882c3fa02bb07e8e0e294a48a43e324667dce4f32658c7e92010143bcfead7ddba651ab387e884ae812f5eab88f09087e95c343b780037f8745f1c588dcc2965fcb323db35aa3027860586b8a1e780907ca6cb2aaccb727ef9cd4a4d02b88f25d366e422d17c81c889d0685a9720e261e7e23032a68093eaac0635d997605375384c0e510aabfbfb374f2b7b1821fbc39bd39115eccc9122f94a34ad7696d04ce7807179af41d818cdba55d5d44b1e0cf3ce7e4a87615e7e11646aec1039a0313ade54f069788f242368739eeb2d6bbf59a8f18520cc5da9b499f5aba24b50206c6232e795194f73dd739ab8fcad095387f9dd7a185909efffd7dc7ac17f47af53ff8293f5d84fbd837e71834a9eb424be1963c7877f92dca89d58cf23cb581ca124f549e10509b73dc2662c1b684b76013eeaa832cef4058663c28300290ff046199663cb302d99a55117da702773406a445f3934e93ae3af4d7e6ac0162e2e8fcc55b82abfaac50a476e45850e3e1bfd117e90e20fcc2ff28862401d571e5cd28f772e10eb798436134d7494869eadf65ff54dba8fa4ab1b99c73706319f8da47cf1e3251fe5f6779ef11d5622d89e12f5eb484a154bbd8a4385a2c5434c7a786cf326d3ef97177f65c899e889df2fe92b68428dcb13418065b69b5a7477e4699d7bda0896f290d383a150e22f00a8c3e421f7292bc0f41e0d789dff44479330f0ca63afd6969241d19885ba5cbccb039fb1842b053e293546c0210f7ba578aaf1b434f84bc230bdee14e4ea1c1b52ed7e86a8dbc9dd40788e75eed4b4d0f86e13b13b1a59987c97ca221c124ab79454ad63bbb8db2d295b66b237c863f72440f3d2c08aeba648673633ddc78219ac1614cf2772afde368590cf825b751ab9ccbe21dee5d49c7e8c6fbe4a85eb3948263903b6aaa833f0438c88b19bdc9d34b27276ec86f304e84eb60693b68af22964e65ced0b9f958b55ffb1cb7ed6bfb7a2fc70cfaa0b72f4b70d6d4a83d8a019a0ed3788f7db5d6d3aac8cd7147b03c1f93e4a886d705089952845f2d75a05e84564e43efb67df968be588915a292b2ff3b65b902740447b4b7cbdf2413c9b97ee9dd43b01444a2441dbd5ae05d43f3018953b98bae592fb0f20147bea8ba00190c6785edf4f51c5d69489b472eb7f4cdd760127e8de8422243359be02d40e916391a0c23de71a496ed91248e5894dc28b03939687a7df3a4c530311bc30319805d1afb6d004859a55f7c6010bf226960fa8309eb9eb34d177cce7a676ad0359abb8eddcdf59a169158d37b8deb161334a92823f0358156e6679287879debab7159f9292faa4a2b2ec1303bead1cefb4cf6743c65ed11087995d151a8efff45a12a3213b1a179af12417032d38a9a1bd2a1240beead47832212f41f31cf7f825f5d615b9c3a26b1ce5c52a3565150317d7590ce2f0d9d1dfe17173ea5a65a27d5f53782aa4c87942f964efddf14dae9cd8b6704eb0e88c73e2ba4ac82957ed214dfd78ee607edecbde0f7db33ac84eb8d483f3fa6525aaaf69cff431aba80139d3993e4e9fa1ee4b2307c810cce2aab4a9ef88cab954da4f562c4fd7a43ca4bd87135f38c7d3ef677cb8a9d2f552498c2a9f25bbe97d7eb878fd994e1fee6a85a3726d120a1054688e991d393074d226dc10ed9842d1511bbd96b28d5cf2b643defbba8bdcd16cb30ed63737cb543292f56bf0d35b73dd26ddec61662e33080d6a8c0fe713c2c48fbdfaec23bf5c8c71acad62a22b08d46c3a265354a478c78baae65624c21413ba3b4aa8ee889dd1e17d672f2865c0b32d8e63ad954cec2414144904fa6e1ecaa5b5860c4d6342c8e5c09da97ab4f2a9fa1515e2f417cc3fc72de06d3aabcda28fe9f7534239e0ed5c375bbefe3427bfeb6a09083d84c0456b9ee10eacb4fa4da97648f88caf067277a0922d88bb0cdb71dc71c5d2f4f05ba4862dfc59b4340e174fc5449b27f0e774b5a547edb6c7ff5bac69a81b4521f53cda56daeb6f7945a8b717388aaebe18a3b8883ffe66f057ba91f7ce84e9517a8644b9ca92c01d2d407b1ac04b38fa15b55b2c2ff07f266af70482c3835fc71721dc0afc1d03a03b2f212fbeb5dea043af2f680aaf782a2a05219e8e5c8325df198a1951d1ba518d52a68d3417b7185b90d5fd74b8c33933b67f010f8490182dc1c34a88d9294f68f31400db0d5b5469d13a2bc44cea8bdff3425b96cf82333c104fc503a735ce8848feb8353672c9992bac6892bbf92b1031771844dd1376412ffcf54c73164aca46d3f8f7c6ccc68e4bf715a4e29fef41e63005c018df1d0b94a1d49f64f5a3428ccbdf46ebe89cfc178c46decf248c1fcfc697a7c038a9f2f17d3e8981a983715733b98bc4938ceae108f22e2a32d61700278a329445b1c85d34b5d8261c2e59c3dbe0dac81f94b0634ca30c9726bfd15783e13b5cc6fa7dc2f12c85aa14e96efa5d5f4bac95037ca47f1de491f37c3f216bd7ac897e7ec4810ca3b6042521e2f5e1389f056e2086d81255399e225b52504eaed75fe123adde6b1d879e6014d92ebe6902caf7337a2a012d664e4e01df52a65b2eeafdfb8aeb856fec0e6c372265d01b0109c3f5e2a4d9ce15e67df78f0e64a8ca1efc5d3e2dc0bf095e59058d0a611ee5971aa95e66bd26797107a90ff812b8402e670053e1b085d61ba3ca0deee59989ee0b4de2ffa090c38559a128052a769072a1b76571f17c52380f557f8eb36763de76f83b3240dfa1fcdd7843305ec08649883d239e43dc821a38c239a1bf82f7baaf12528bed2058e9bd840b3df72fc74b74b4f95081f9f9ee63dfe5c9f8799049b7fd9cf881974917f0c2495ab38a4718a4bf140d58d47ec12594e0125d40d10f3cb17d494e7055147ef074c3e3126ae154e31fff91f310261bf5fe66a873dc32a254ca0b5bc566ee6c30512cd90b8d1c910d5c79131410b22a9908a7aa9cbc1e5473735bf33f750fab61bac0be6d67d2bc58f6261a37b39a97e38e5148d45137a5a0d172d414d36888c0cd88dc4111ad7a2086bfa2b6a308ef0b1184fe60a4dc5baabc8aacb8c92c74c0a2b1f2df95d322a35c49180bd632d16bcdd2cded3474d91f4e10a8a8cb0136c50d57fde06a538981a54dc2805c92efce92661997641fb42c86199d60624239ea4afd83cb2e87fa2d6d44dd3b2143759d7445f04e106ab484417ecd1a615f981954f67b1ee911ed27ed7ef943720b053153bd35f41177a013e2f3be80b881b4d1c09e6c126f0eabf817d55b4fa54d1902ab4aa7600d99be76860984e50412bf01a1620c36b5cf6dfab6dd71a1b1269bc7871aad9529e1c0c458c0ca491658bd54463883bb26f455514b588f5b546886ff6464561326b1e2785e933e9d4f13f96319a55caaa175d19f650c23e5d6efc0a556e93f54d094f82e60e5ad523e1e47ee6ecaa912c54d8a13becdf54e35b7aef60e41193a7ce904523baa9e930dd49b559d09adf26223b3c29cb572ecbe258c86d84d8f71d4baeba6022787677301008898253840c6235828ad62eac1a05e7fba505b3e61d27d3495f79f9b851d9b7233017e690aea3974542ca9407fb34218b2254dfc2b760b34fbc24c9cdfa2f93fda768780a752ebebce2a394047691c9a7ca33f8f001e4f802b6df7c9c43d9f574e3ff3788e5055c363f0a00de863345467aaa9cbbe37ab1b0cf71dbae3048c4906d16061952cd54a0cbc7b4891449edd9a4ccb8c6e46311eca8cb3ee6fcdba9540860310e73df653efe3d759e78e2673c570a94ba334f85dd533815ff3ea793d072fe418305a94ac887f9e46205000f8cfa065aff4217b4af53fd6d63924edd1d6a195026868f0f2ef92b3cb2eaebbc3854bb559a6acce12ff4760f88cb7fa40f597311040a8ba2617891adfb202f9128af1f3bc697d0ec3269c9fac67205702199b5a640fb0a56747df08c4e06da970c873df91a0217317ec08bee8c5349c9eeb9f46c802546707a435087ba75aca98543fcfbb1d03121be4798e6f6f84bf71e8d882ba58570f7d638c343448e1b6fb290455bb6efdf4356f313fd62be307d725edad5e6ffb76e48f4f7ae46f29709b7884a4746e59cb5e2601cfbea94da59d1625659d7ae797338961b5795b6f753f76d5736220e9b5da00b8e1255b018dd56b2335033f3bbd6ef91236145262c3f1c3846664d5ba79205267c62346e84bde3628189ea46b0285b3d58f7c23d0da8007dd462585f69911ee5648a4ab11397d10134b627a2e9d3fb3d0ba91ba7048a6d232df200376e95f607540bbed9677afe3ba1b6e68560d6df16859e9cb87761c7bb3b7bbf06af823a5f6ab7929f3b78e4ad4fb2c2bd0222f8165fc4599187fa71feb99445d06f528890719f2318a2a5818ac2b8690480d31de10de0744f996195600b881f950e592eb0305065af3421549f96fde72e71cb4192ffb80452f8e827a368654282cd4ee0a3621b35bdc4a2001f32066638a544cfc193a7664b28ef84c3a1375649d070eac309cb49ac07474aec00f694c992b3d83e68a9e86bbbfe4a77495699a873cce410f54e4e84569af146d17c479c33b8aee4b08c39e8d1c3340c92a209c80b5dde7af5e49db6d761d9c1d0b1829f4873429171ae9d6501855d6e10ec66fac96a50cbe20de141a9c3ebfb6107c3e3f76bbd771da731d7d5b0820c6f0d4085d3c4d7d95efe285ec54b79502334107a0817967d4113f48644bd0c71f0c6d716b9a33f4fcda12ae1bba79b68baac2fb73da2a31e003fe18b1cc93c69e674df18b3d28ded34011705b1f4ecf454f530697ee11eb6cff8e49a4af8e14f5077929ad8ef5751908c04a7202c84b409d18f8ed95106db851d741896aa9d252ed03b92d9fdd850c4d5d2704cb216efbd69f9176a06ed7cd16847b07cc1de6144c57a9781630ab4e4a3316836f1d4621cc177fc6ef457cb3a9f0148a528548b72dd404ae0ae006dabba0332ffc3e8d692274e45a067fc25c71521bcd6342fdce3cda87ef1b79e955c8389763fd903de55d5900f8098f145b9db266747b3c7f72b6d65184a41921135f6814ea6970d7273fba70c87056e5acef1f56cae5a8c403d6514f069bbf52e522f4a727946f179f1ea03c2da0b7ce952df6e2469251b43065a9c6d2ad78400fc1be1f3395e0be769e39393829dd6d107cbe2f8a163eeb679cef18e5acb17eca3d07146f06e747c566b997420a96314705104bb391ac8d7f7fb624357c52d0be9e0fb0e9d56484ce11c469b2dc47e29da47cded318dba20f942f935e72c019423f8a755bc2fb3e9395ff2b06ea4a5355cea4a13233be52bd49dc6bdbb7a310d92253fe78963e9ba66729460c03b2aabe178f629ae86baf661368a0590973740fc14c355ad03c61c46198f36f8407cbc68eeae62954495e756af8cdeae349e22e986537218077b866e663b7864429d9b4890533d1e8c06933a1a2766c8944d9294bed4642d90e779aa436bd5a1937e15da01107e7c29891e8e7e37d519198e1d507c1a2b060fca60d4640b022d5454ca7960841cb03c48f7bd979cde98a64df0d9bc0fcb9feddc3798fb7dae8a49fc46a6427cc21a43d77aced3a6bf9ccee6c9fbd0e37485a3e8d74db585e4f632f8b9413f668f86656a0ad94731563ea967600beec126a6fd6146989208169a0b704c0b747159910ec6cf4530e7873edc286ba5cb493034b59a9955b35bfe91721c192e27e7f60badb162348343d08b9e22c5c622fd237b01d81238a43c231af8e53ce06bbca1323ef87549c832f2ed5f17943df0d70e19719a64a89d77728e72b58d09aa55333a8b2b368f05acf0042a74c20d19566c4f9aae19eb3123e3fd7b0b8dc465cdf037806ed00cf0fef2fff4760208a65fbd9f69dec1c5a5e433a77baef622a33a58083fc5ecb634d74e666c1a8ac481b49f43e20a2a72b5a707082f9b69c1bc0fa79cf4bcfd9acfde68c61508e16d6962c14baf52763eed6a62aba3c9300a2c4c531667a9fb751bd74c4b8b870078f0d506ec72e60b25176c2b3ae08efdb464c88aa9280f19ec977408e0eaef0cb63ac97f82a44a5a6894c518766b4848eb3cc7059181997d93ed7157b530350577bba75118f559417344b81f1f83d20f9c2781459eff7f7ab78ae3c35da7d487bdd68dae65a05c36c2bce42a3666327805bd98830b31175c109217c432d413adaa994a54dce17f1129b9145766019520b5b1648fec58e839dcd5c69a2ae8fc2be801a78d8e55030e13380b39cd99aa9105f27cf7f028b7568cafeab02d47c80dda849c7042db251d9eb632a763fa499ea5d4d065c3abcdb44e0ce3c433ecc5a74933b850cc1041a5f99c3e081cb949991b00379a755e48cc9b4183a8e4af950a973ab704b3e81225aae67eb2b18274e4f16e163d63d307ab24c81ab7c05153af38683f8ef16f84f7d4174f835e7c09f7ae5924e92e0dad4ad8e5bceab0bd7517ea3ccc8342462a583c8aee4a64d448ed615d6c55d0ad011f7f347822aac6d7e8dd66e8ee9900058bc4eeded997908ea78df2467b9719545b1ceb373caf3f334d24e0118d692ea6d6d1ec22b1e4827fe86d7446a034989994440f8b9ff51a250c64fa49f007d8c497aa8d7dd7b1702c99990aca2802f35e70995614728316138788b7503ec7ae345c2ec2c2cb159215687e3094d41e626ed6f29d07b061b3bfd80f638c5b87837c53cdb63b388a1d5fde4915f8860d07cbecaa4b732b2d7a128c197839bbbf9048a3396c3420ba896c1b025a97817c26fcd6992bada6767ff26497ce713ed7581358ed37089a0e1486e7d5e9422d7fd3cb880ecf38a44d1d3f6b5db09294650e4635f44b1e7acb741daf9a11ae9486f0719d82972f59b469e16224f9df89a19b9737b79787b4a1a55c694c17b11a4519a7aed794e84622ad271fa1d524f0e8179f275524aca33c59e9d21f04343b20642e415ec8519117946cca3395fa8e563486905eb358d3c71598bc15afb7fd84125f1356aceda307b93a611a41dadaa3e41f92c2d42ffdd6788ad3f16e4cf6d0368634e3564f98e7d44095c1ca6598e1a1e9f822cdad68c0b94460bd10abc52b4235b2f73eda35b4edf5842d7dfcc2a47c5d1e10d68078fc79355e2e9a6b1b497e69a01aaf8abf4d22eb5cd7358cb8771b3e5cef61c62b2d4d61e4912a69c2bd53d76bc805ffa624316c76fc7c862197fc65059e39fcba9a923af87c7a0cce9fccca3aeba1aa134046e8b313f9d3886c77c9c5e18cfcfe051a9a54cb86446660ca8fa5024f9d12bdc896b900af5273f7166d12eec238225434721587ec040870effdda7acdc42f573e87882762f6452252ae7d76a7c0e2678baf5791bf7d181e0164c0b480ada5b11f1a0ca91dafcfb2f1856e492576de4d5cf36b9000a3fffcc043794316942bd13585db7e6887f5f3b711de43461d24a6fea2d7951b8927524824ccac8c3f62ad31ed62bce670dcda2b4fa32eb344f0f99ab7263d9db47709a7ccdf3965392b4d4f190a8617b8a5267c4a480cb2923e315556eaf1052a7af8270054f4020cea88a10ed737501d265b03fcbae8a97eb537fcae3ffc951e009ee50646a2cd4a1324a86a42c34d5b700e9dfc239a0cde1dc8ef633ecc9cdc3d4cd1d19563f7f570b9a736db707f5b542483cfefae7545d371644419c7bdd74d3c7851036215a8a8d7098172d8609db8a6e9061ed0badf29819af83dd0cfcf8db55b9d47c314cec032545b6b736f293d8c659651bb24b717adda4ec70aa0e9799dbd261575c6a043cc8136d10d577f5a4dc9dcc3c084233d66e0d5926d4990567238ef61f58c0e540f6b588485c0c3b63a3f08bdf904ecb4760e43088f950a69fb99112b4169dd18f858af0fcbd1f0b8d4139bf349194b99be9cc2744cb11f8b455edace1386ef2dfa5815ea288f90b1b72dc023b9fcd493c9cebb1d706d0738b15efc16947ca67babb583260a8c629b74440786c45001dddd8f4b2e392a6d8361b7eaacc1329257990c21fa09ccf93996d8189fbf577f793a8d1839bc8198f5185220a6fd6d3c9b61b45f6f3fa0012542774ac0cec6c92baa52be1a6deeb62ff4a5aad60b3e735b69d3718afc467c97374f87b1826389f98a811302eb23a6a4046ebb9afea15b10c2a25d834d1f911c08ae9ae539548c90f64bccc98e7bc15af9805cc011d882902a1c2a66b0416fbd26bc620bb5b4aa344ac40ae05ccf133e972a8cccd2d9efd8245fdb30079a2029b69dc78344d9149287bbd57148270d01fe902e5dda4536810701d5fff91c529678278bb03e2d6a5204e3ac30545b1af1166b1d60f06cda45df7a1e18c5e8a9dd9c1dbc278c1f8bd20e7e1f0f788ed32af299505fddd21b42ba1307224d05cf718debf0a75b94dc5a915e5def4396581e79ddfbd59520c0871d6f6d851d6d3c5642627ed632fa555f7337de65c53087ab42c88675695300ad49b4324182db45bbee7e5d33804779bce3ace406cd05c798e6d0aecadd0916afd9693c3213297aae9f70cb5ac96c02405332068fda2cae4317814f83664f3dc0a5f92571f7f983a79bfea27d29323c4d02b644670a9d79d7b0d9fb725565807f51769025ec4e9b489ac1e07042f7392ca5f99af968d41cb631bfe6dff9669ce6904917be61d710d412b817154cceb168626d8610bf9e4f339c96fc1979b4d1f6ec2d3e2ded7c0b70823c018f80224b8219b40474d4be481e596d4c615b552292cf7b5bcbc84dcebffd4350e92e68e56780939e0adbb53fe597bf03fd8dbde093098a2d19311824ce308445f9f7fd44c1ed80ad3c3d888f930423f6b30df0dcc84e81fc894ad41cb08a6613e870082a20e3b5edca86d279dd0a922bf382787c5286f91e7d72d3aa7f279e432506b7d3daab099943e9c987330f31cdbb750da17655cb6b65e8e14eece831f59ae9243261710630004bf8fb9524d3d8de14cef60b34cb0e9812ef7879506035832612cce38f0273f945490b49cff5a9eac21b22602dca208011f11558fc304050414bfe0cfdf71141c72d7a777a927424e70b303bced2d1bd8cdcfb90535c2c3ff19902c66c2796d4109ae58497830741a415be8b2202279c7ef68ce777760497afb147e3c254413d71a71d7fefba0e88b7b38282b4e32e4c4df95d1ec44db16325dfe906c09cfdfb3324dbf80df8b9c2f40606d2e1d8118366b75c56b205dcc4d05672347a10a0ba6c747e2718addef4fd2eed28321099bfc42b0450399c2ef330e78ce0cd90209710d262cc1724f2e064c26d6067fc414d5dea281c7a7f44c570b6497f23275227b55458f8a279d5b4f56b38347d0908c03c27c1f09b1aa79b641c6d67f76ae7ca5faba9581f1244a855fdd82975e1e32241f6b87c0d422de4ced0add14988fc3e4868dbbd4b3f40978f0cf313287ca5891c2ef184283126831af3ba0733be65bda7621925d79cc15eab15a2f297c7696c7ad3341e2b85cac5e0733fa20b42b2af8c03bebb840c221831d1165ddf43fbeda38a63433ea94f116d2094ad3ea5bdca0362a23c9ab241d55658f4b5200000f477589f0dd4c0cecc0fe52ff94ab94b6674ea0d2fd7908b96b33cca447a5ba02e2ec1fa85a17beb085a86e2de42d07c8771d3de907d4ca5df317e0854c21424d4a5ce986dab18e8caf035b8895653d891dd2b4fcb9a5f541858c13909eaf8b7ca898925bd2fa7d2aa85b3970eca43002945bc3ff2e7a319a2ad1b3ea0e2851bf2088a7460109700ea3b95cd976bd82f1b2f202ad1921283edbc2b44d0459e4812be6ce3a77f867efc46b1dc5501473eb19767d00ad02ca0884935d9243f34d90662bd09b472c6ff4837b8b160e8bdd1f54047c263205f3c4eaab7616b434045f7114baed181daac7d2414c974bb68a84e1337bc4bbaaf7a8bf9a1d125605142c032a922f9f0d6f0cb5cffe28056711b91a57661bd891cd6469d083ba5ded2f9ce61b55e0e73b179dd989d2a1f76a010961a4e71e756e45e7bda49e3cfe526140ab44b517e52be579870420d0bfe5d57dfa232ddcd28fecd65d46d8ff110b8b7783a6aed25d7f4c4ab116cd1858090fbf8892c265d7328f64458cbf1380c06694e69e9cefbecd154685df2a95dbe232342a7b62f967dfaf3cd11394a60a5902d8a4cc2c8b2cec0dd86bc44e99e3c005b251d6186a96af83a892e00c3af29c9f9e29e02aaa59ebf0b73d8be7ccbc2a81c7badd3087ac9d90a1f67507a38167b362c3cc4020c885d437e6ece87c83599e250f5dc8b9b9f3eaa66b03f5ec44db1ef8d2727f80c96125c4883221b886a6c0170d2a670031ea37cb3d587bcebd42005e0d1d3447c60479aa0de6abf479826ec96c9a3bab6c4fd00b96404d976cfc28e057457483b1ef55e0be77da8ab71757cda69b55855bafa3d90c94d106bd9ff4bf7c5501dfb022394a458d6ec087eded551c9c0468cc25434cbfadb0d5f9a8555c81b173adee8a181ecdbf24d06c1cfb9c2463027c64d36067a4c951101da3d48f89115b35272935a8b0897b43c2c219faadebf35fe1df79c1e406aa25017b76e9b2bc0078d72fed7013dce03b481225f263bc7e3c739e4cbf492a6d63fccb3b4708befc05d4a8d8e48c1ee8caf1e6e20cc63d71da5b18eff6bbf070db434919fec1d1cd7bd13f12f975a23efdcd67bb8d9bd46aaee0289a78e37ac3006275e4f61ff8f8e6fd835425f81d2381909a24e44e399df6b2dc5db781ca7ab0c6fb90a8773f202ee4c53166cd49ee220fd04df63bf079440c25c2bc46a9f5a30c5bf9f0a60f1cd351ffd35904b0f1a11e07b525b60b42bc55f86218050389963d00d7ef0c96ef01d09cf4e2bc80e5c931be5d716c7d64cebd6ffc401bf6282eeda96dc5b3278673273c51b653d196b654c3315f3b242608d18f595640f766a8d0b822d33996fa64681bc7a7839691e75eccc1975acee39c366d45e0b2ec49772b1c9cbf0297614d979963753260f9c8a44d7c0f7297ebc159bc856c360b8b6a6594b163c7f223f4790442919e6a54b6dd6b49cb0c875ecd5c2d6fab054788d69581f4d00e8042c83410299c4e29a88a2fc4dc45e061b9537ceb97d7a1171fd0cc874499da129a159da1ff7fb10fd193bdff7ca5bdc16e9fe127173f32f3a63fd43c638e7478fcab547c8adac1e586790ad4317bdb696821cae82ec8d57a07ce252e7168b7739d0f8b0f7c9d1616cda4003dfd7ed3dfd5260f35e023332dda63f0c029b1d911cf9c009251b34b14bb6b0458bcf02dbf647046f04a3b8373324ca66d5a89bf4955836fd2b3902049213ed99772ae4897a5679dda5f64c43535cbd1f9dd704383b372422a2e3a2eec22ef2b62329fb104ed8f1f8579cb7356a1d487695c8f068575cd74823c9efeb20cb5e96ec49cf25bd7dab07ec0e3105d20086818f54b091ad915808b1e25a32153573f006723cf6b26f4c6a974b8888dd542a67f6244f875932a27e8a9804a0b6ff985a60417f30aa901096b66088c8118d0287dd4b178b0b45f8a72fa851e205506dbb14478ed1b15cec337db866b27631932c5959784dd20110866c626fea20f9be145e07771a90dd2077dd4b9ae24b353c8dc584d738a28f2edf6c8bf6eb57e4a347710478cc8a5d3fd6462466d6f0a8416ba2e68eb9da6a6f0b7af19b829f42b077e7d549b3b3676b497ce8e493c48f9a1ce16e0e44fef0b6b3032d27f690fcbd006e905ac4e6d95dd836f574dffa38ca4cdb11f775a7ff88e99e543e84506543c8665261fcce9bf72d06bd7cd90245b04d8d5b5340061b895aaddd18bddb5eaca26a9b42991fc6ca74f97526a6866f36eecc1ece4dd7a6aa745673ca91286afdea842941f9f6162bb3db4555f3d25b0472d097cba451413b804a94c78e3adc22e10447ba83ef10a5cf83125030c485152c918efbf2beaf859f74810f7802a625de6fa304a034e12c1bfb0de4fbd5e59f6d01ce6cbd2fd8f9fe0522e1365ef19b16d1f3f51587d9f01fefbe96981c0f10f5cc09b957e33f6687c87cea12b2174424e4ff462dea55acc130c563bfba224012ecff3499dcc47fac968c648e2f555a452651bc854138164a15706f74cf7ff5cd8fd59b12cafa02691cb058bb15f480c89b506a95da4539335769b4714b50c8798e70b248ad84cc6fc33c4aa68118283dac18a4dbaf127d46d0c5bf5cc5e61dabe630d1c3105caa5f608e38ffacebfb7d4a14c51d325196f04b28c7abf9acd780745fd9b104856798974678276f95ae4510874398c5d6cc56e35a2ec2a4a12acccf04b6e931a3ddf768a0ebb781d6076b1426918e13fe5f4ededdcb0ed8c48dc94f36d060713875d788900a22abad2f05f9bc64b9b4e0f3d14cc50848264e844237cf3a651e06203d4fd16894404f8a602d507a40840b6479fadc7384a168f6b3b94e42fa3303efd3fb72a0fb221c44bacbf3dbcab0e17ff2d74d98391ae97f355864482a3352167dfc2eade88d73587b7dd22e26b6420a00162bdb1a873ba91c1a8a886bc098bee3a8da4932328c5032e30a6d13aa10a0583c9f2fd3133f133bce2bd5099d37759f812aaaea101a436a4b74a76ce72b386e95e3d53d0945397e3646ca314561f748016a8622804269b17f2d6672cfd86d91a5b1f3d597bad91409df965a70acada26cef4f23e5ba97ff96163a7a12d5b09e200c90d784a0fedd29bc7d570c25d06090b175fccb7815fc8b3c17917af77dc768ac9832ae39572a635466291ad319770d169cbfd70b1147b9ef75757e9163830b95aa8554bab77289c7cffade723da2ea06c8612a6cc2caf21c071fe18c7e599b8a10fb11900c9df44e0398381e70a5c0b487e8ae43e639946fa5b13b097f65e136efe216d4d4e33e49c9af5a77fb336d9950e0838d306c992ef3787ae87f452438a55a7e6d36eda49c65f6b8f3809f7ef46da38628d7a936038e6427fbf378a6cac0bb532efb7b69a690631f5ead32da42f7afdb9f9f7eb6c3972b337299d7890a1803758aea94d79e6a710065cd6d794aa2c64fa27a3be979bf2baabb5fa4a116b97519010e125664b8a734639993af237a0fe7063d167eb3e117b6196a8241dda1dcaa18575e41bff754cf64844b69cc17852d7df69bca3afe4f0fd53eff3ebc0c496f974f57316e9f4ce9c272e965e393c5178593ff2b9418f6123a0c36e29641375488c15efc3787cb99d1379878026718fc7e75396ab71c564b20cda7479dd235007c480e41fa828129dbe985ebd6220bf23c1210b5698cb4bce50e0d3a1703b5c9666d90c0392d4d0a9d968f1aaa577e984d8ae789484b561750be910265ceeb37b4ef66a5e2098caaa1f428ea4025b1ad933d5488329651bac4b8f175d13e250601df3e5b502a32f7ebe1247980731440b5d462787c8b8228134af96735052818b150124d1cadae0297e7c6d1aa00ae36667b597478142b4d9fb1c40626167359457770f03cb4046607d5c08135ed0de277a2d2220156dc91342d89745825d9b86e451c6af2cedc9552546daef96faa16c8bf970dcd1d2899843cfa0c874be053ed514675d91183718f6c74386bde6b0105daa8e7ad40b1de4f2e5ba9b89a5b729b46217d05452811b8ffa3345a2ec84e18d201ee332328722f3fee4fca4c901d287e0945a2e60f9d3290f2f485904a8e901e8345688207ff35ad34b6abf277965d356553b3415f18f1543b105b86b00d372c3e8be9be5903f322e2ecfbb66881f6db6fcda3d6247e911866274f62cae75d0ea73e471a7b024141439f2700b875b7912137c2c53a4ab485660562d63976de5d23c83387873163705ebe85e7e0bc54a832560f870576f743a7b4e2876c9ac7e2d1b87c51d53b81a7536efcd80e50e520e98327e1113c5ca95ac918ec485990f44d4f14e15fca7913f9baa0a5788fded5913618d4ac35f1ec32a34aecd9651591a00b7eba23f305a3b9fd26a6b2346d748b5b0b9d7d69782cd7ac18c508ce94f19183251abe8346309bf0553c9083e1fbb82d421d96ea360e54cbcd2313ce5ffbb5c3ac2fbc0f41a285edd66a331404c9df710cd7b34fda79abf361b87341a7343406187c7f1008529557af7c9b48d90b5f2cf690439b7b110bca4291d3f04ec0a8d92a464439fd6a8e8fb6f1e0736f149dc634424917db8288dbb7701da7a57edf2f03c2db0ef41fa7b8bbeb00e301c88a8e4a0ee35aff33ae0a19c87a2abfb506931a9f46689dadcedd4ccdbeb189a2cf75fcd27c0a56eace44890431ff344615f0a457765c6cf768dd1b1d5978ab13363b37ec0b4161df6b6a920e3d8a9deb34d1c83b30d1183eef0b0016030b9c35b1bcf70d94e92d03fc8e77ef3edc08f1d517a7045ea40c59a56b13cce685ee6d5335152669e2582ee67a7d3ba39197653d80c736bdf5c2f2f761cb09469e3869913f19613bbce79aa33195a0355c2dc52727fe29a9425f45314f679275ddf614491953f77a3caa97973b57e37dc77ee0f6b03d536073aada86dc4f583ae1553a9ea08276e358334c3d2fa4461c5468b8bf3f43eff0cdb5c6768f929b88a2e8730423d6ceb1e0afc26df822251c261ba3273ce1cc1f721691bc1849ed5b62c61821dea04004941f86f34586247339c3b38352a5486683ad6f8da060e1a50ce0d5f9ada9e0030fd35682098b2239d72085014c0686daf422e19306dc4b5e13f8267feeedb23771a18c2f83cb4e4fe92e761473188892f856b2afa482fe8e6863250e6fdf35c4a46a3fcc5487ad4078664c85572e7e888ffcabb533f668263eef20fbbbcddb5c52fdd2abe658ce17a50b6aaa9c3cffb0073bf4347d108cc6508130b856d086d74acdd6c19fff9cc12a43e7a4a23acb07d28366e38dee8fce476e78469697cf3442f98d04f75f1b04438cd8f4d28140faca29dd939c83b048aeb3db69df6db27cadf544391a6875cf57709bbe95ca8c297983b2476df7ae59311368f014d5dcfdad8d072d7070b60588a218c9f1a841f2056e6cdda3b89356134566ee715c124f860828dbeeaaf15abb85e3d29eb8dc618ed76182b6bd2828c3cc67118df60562b4612fedaf7cfd7895494a8b53080217e51d40527babe074e3fd6d4182789ac5ab9c12405e88e81fdff108df25aaed866b986dedc8fcece4baa8f545909a8a11cd94ba101445bad574fba6f4a8779c1094f60ffae4a3f3ad7197f419243a98bbfa243fec33e08efcd817b6952f352d9c23da85c0b6fb09e0d10a0110f2a40a2e84be943722a329f8c23c1871a4e9aaad9b7678098be55f779621428c6cf0b2591af3bc4752e2e4cd8056c6986fcac6475b5b55e6416e79cb9225d48caa0aebd452a67d2f3b5cf1f909d7ce6473942b2854685bcc5e843b4cf1f92c0e89a142a7c166847c10c19a9539dafd3ad30de7cd855abe37643cd2fb5f2c2a0088acb63c1666804649c54f844e128d2d24cea09b735f457a04d08f93079ca09fade2dfd802a71047331744a414f04bfd8ecaccea1b8fa09b0258f8d303113a1e093f9e3fe2859f7caee414053d736a1798040c444c2ba5c2c693fcc26afce157cbea6620b8b9c0ee36a038a09ebc0866ac9dca94407b0c241f448cdba6dcec7ef6814647b0ecbbf4916a4db5de27ffb29d98c6ae191ceb95e673566333ea776912fe487eab6b6d2ec97040b490dfa9e62d6e3d6e44633657921a7c1f430348a27c50549ccce6dc0391f42c6b7af9912ab5eed947c2d2805023be21a00d7b2f9ca8c44beaded741c336ea3cfd12aca80edf7069c961361db36250fb06da18ba69434d8868e23c1f428dd7845cc57e7c6c8636c2875f62efef51b5530129bce9e46a9c19be5647589656091fb47dce5fa49f308311f760892e8205537f761ca7759762af6f8c6696d317b8f1ded4040017ba0fc00e5d94c26f019c46eff972cd6c1c838510c7cefdbc1cdd97c436b69f6ed491b60b79cba39b161b6ee238ee8e28e45226669e48b01693c4a2d1f29d9e7027c04705f907e9bfabd3471767e37722ba061d568571830934fb45cc876827cd33ebbcd410c740add76f0df421f67939f17e5360f5d9ea5e9e0142a1e1a77c717c9f0b93bd90b12b9f173240581c051d4260e6e2e402718c8c2ef3eb3bccc70fd54ccec14f9b0d88a46abfeb83318097655c0f37c4e67b3e4c784d5c42d5bf446fea500bae5a416677e2f703c41659065de82e4ddd853659ce8eb178f51328a89bc418d805e0d69593d91a55b0dc6260e175f0300b75779730f44f051c7510949b2645c0a429eeb0eedb5163c4c46340938da4822fee01ad4c26bcb31194a6f4594f39ec0ee32bb5c38cc6375b901744bc39be267aa7d0c5c6ed5d2c36644273a3c2b5cb324725a4c0e2cad75ba83d2ffeb27efafae6e0be57be2083fdf527f12531530c42a643230a1261215ce19f812618663f981201ada233e4882c3fc6400734f0aa59ed67717f93a3172b2c2693c929646b2b9f22a54bc7b80192d9831225683fc6840b1c6ac15944278799ab466b4ae9b46bd7caef46215fe5baf2505d7b76f6fb3ea9d27b4929d912e33183abc5fd47b6bfbfdb06e4cc1efb716ea2ffd04f46c4f04abad5b35361f8a82fba965b240d318c91029f54115b33da6fa94fc58fab0a813acc87e9198816f76fd11a895d237b162e8d927c344eddcdcfb172bd8c756328d33cd4d9ad44bfb5542d31a85f1ade565551c76bcef84ac28f59dcbce55b8aead99d523ea38e80a31a9f6a53d702dce23a0a2ab3f19e337c2fbc3857af6424b1c6d51ad2ab499084531a0e3bc9b46f374c828b98612d90b7da55e4de15c9618f6559e882f7060cfe7ecdafdbddd89f3e1816b47e45fb68995731742bd8d9092da2b3ddece0afcb498d2d2e32d2b76d2329fe1e712aa6e3dfff72003becdbd48bae8c3060547ec38edb118ffcb39c3ac92226841f80e7a853a2863ed00e55cff22d6e546fbf081cb7eebc4e52c09913fa2c815dd3edd111ce2b9c2d261a73db7e1da3ca11dbe09f8ff4adc6a13db4b57e984a74e4e34d66f9b6ee74b5704646c96a68500baeffe335a614d4c137c23ffe819dd6a3535caeb37061796dd9f0c1fa51c35935148201e95ea9446e20862cfbd7e115eb4759edb6d02742ed7c8e93ce6b86e29d61fcc846558fd168d32678500503d41c9eb9821b674eafe6a9de32bb89ebe56999b1a101faa51782c8a2bc1f38888e9874ecd7b72895efaaf2870134f0970789044dccdb89ae69fee065e4d7d01ac94dc98d03ec046bd0e1296bf2338d1026698ad9eae0ca4216c10ad9f24b968cbc323b9663621ea6d19ab18ca91ea63eccc21ecadd3a58856659b176d8071404210ae8f55e63b7d52390d370d3e81633aa074e3d3a1e74c4c9099fda00da327a075ca6c0f1e50188cb4426f294521b8fe9c9264f7b81c50a70acd72d94a3a382a5fa69eda6970ac669e01b57224466be2811cd3bdc62567741bad793c91ba584c7cac609ed3692848236fb19779425b98345dec9375f3e50dedb163d4ad0604862332311ef88afbeee7653edd26276f9c0ec6ec38de3437451b957a8eb81612156d14e4e1b808e2872aa0fe1ddc19385129b239a9a5570d3e09145bebe30c6ced5339518525591b2efe5a363298b06fe0027cba23fb946d81fda0483ce37d0ee158979941d664424a3908962265519522a2feb67bf7214cebe8b56053412b2ee56481c01f48f0723e209626b7586a83aeed2769acdf29bfd6afa99dd17674eb6f0b403aab29be9dd7c6f7cbec0fdebe8f10ced2ef208fe3ee67bd05a5594c2a7aca261f675d2ac5d16362c03a6d952f78a123b3893718c1806655c422d9945669bf55e4c449bba74480a6b71a419a992bc7224422cc4bcbdff6d27dfcd78881b0946c345531aa83fbfac34a78b550ed73f6e88baa999d0584fd6da0bdbaf3047ad46ea2177a4021124ed3c39ecae57ced88a4591ad11fc036e62ed375d4a1143763a328cc575c0d7136411d7a57a042a234245acaadb7eabe08bad3af3fcba0999e91e806c420b7d7127c4264b1d2c8a4bd6d32a624624c13a3f81a77f09f89c5089b0ca8d46eec0223c58a15b4bd0020c649c1a085793f03d4c20b34edde31c071e163a06c3ac7c9227dba4b904629464ae8046c7e6b015959b6feee4f8ddc1e89673dc8c15346ad0c411f9b05be09e7f12cb010d8433a1eb3dcd050adc40c5e5bf6a92dc2b772236561cd5414b7072e8f3481521c471399fd3b4cd7ac1231d3fda957ad147aa191bf8b98ebda0cd9bb51ada2bed2e5bcdfd2eb9c0d6f58a1b56e2cab9697f6250be1b17d2d5ace680426f0a2df89067ba91f6fa7165a163d7c75bcd9694feb57367c962b88a7023cc120a0338383ffc6b2f57cabf387552e38daa61e5f3c5c7b510db9de24e9c65d8c9ba04d13f7e42feec56a2c5bca50c8bf8d85ac18d22c369583ce00359212ef3700fd5fc22a5e4a79aaffc2559f27a5cb89ad1322240382c99f41df5a6606d325c94a66b6126fe8d12d112e6c1579bac18bd2bb1472ff3dd2ed996f1a9245fdbc4573832955f5580ddfc14cf0d2e8efb2c86e8906d5b641c9d55463559ac52e5852a64f4f025c6173ad04c191d217a5de0e7b1b81f012dc9f3d19ecde9b98b3d8a43ece8e26762f088b2bb41e3cbe17ca0272935aa3fdde0a186ad230fdcc91a586c6c19ea95e0dc6174fcb81880b89ae19017b379ea5982ae0aa06d084a4bab4801bc3ddac579e021b5d6594d55c5adfafb7c3c9c5f2da81372cf645ef9880d14fcf64dae0961b25227066e8189a0ab3908a8e0c5a6050adc171e65a9a05d0278c6646b0a6fec0ed81255c940f5ee6a2be9d54ad092aa1178f46c2ba90919c9241585e78df4b4006a89ad16ebb3bb166673b0bd0d3a3723abc72185a381131bcd0b19291e683bfba07d46f45c32805b8b53c79cbd277558db8389135930f00f2b7976b0c5d1816a5a60fafbfc8b3e8f9b3f63eb1187dc99fba12a9fbdba4b136e24b9d9a633d8a6933e1be56c9685cd6d4a136e4da035f2a6ab4073c3466e53dbd6215188d55d611e2ba3e9bc746617d47ae151cda1c1e63ad00bc8efe92227c7b829cb8c07c5911ae0a62d1711a6d189d4f4dddbb468432e8115166d78c9a714c6a76e97b7df8cec48854a4e690cfbc6e8b2f3ffcba5e69bb69ff3983ea829b5a9d1ac9175ee337bbad7e0473b73976508c0e05af1f990d240799aa6bc669b149c3840c3412ad7f4c16dab045b0f59c9a531ce76254cf930c740967d0a52aee491dcf0065b4e9db42e6272a1c88d3cff98cd1cf5d2f0bd9fbf4a3af0177c7a0a37277b4335cc19923ed47d3b25237009ef66de60b44a8bada3ad5219cf67a7a415fac72479d060abf71685f2dd9f7e0ee689601cccf553c1a0bdb34ec1c85e9d29c8b0d09377c2cd4e86f1118d85c1057d742e597985c7d4e6320b015a9139385cff4cbae06ffc0ebe89afeef3210a2694149ccd7781dd30c6a6925a1153c74ece8eb81ed5799d1a16bf41felibLLVM.so.11libLLVMTableGen.so.11libRemarks.so.11rootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootrootllvm11-11.0.1-150300.3.6.1.src.rpmcmake(LLVM)cmake(LLVM-)llvm-devel-providerllvm11-develllvm11-devel(aarch-64)@@@@@@@@@@@@@    /sbin/ldconfig/sbin/ldconfigld-linux-aarch64.so.1()(64bit)ld-linux-aarch64.so.1(GLIBC_2.17)(64bit)libLLVM.so.11()(64bit)libLLVM.so.11(LLVM_11)(64bit)libc.so.6()(64bit)libc.so.6(GLIBC_2.17)(64bit)libstdc++-devellibstdc++.so.6()(64bit)libstdc++.so.6(CXXABI_1.3)(64bit)libstdc++.so.6(CXXABI_1.3.5)(64bit)libstdc++.so.6(GLIBCXX_3.4)(64bit)libstdc++.so.6(GLIBCXX_3.4.14)(64bit)libstdc++.so.6(GLIBCXX_3.4.18)(64bit)libstdc++.so.6(GLIBCXX_3.4.21)(64bit)libtoolllvm11llvm11-LTO-develllvm11-goldllvm11-polly-develpkgconfigrpmlib(CompressedFileNames)rpmlib(FileDigests)rpmlib(PayloadFilesHavePrefix)rpmlib(PayloadIsXz)11.0.13.0.4-14.6.0-14.0-15.2-1cmake(LLVM)llvm-devel-provider11.0.14.14.3cEc2__@__S_@__@__"@_*@_ @^^y@^x^h^c^=Q@^;^9\^8 @^1s^.^^^@^!@^,]]@]@]N@]]{@]]c@]K@]b@]b@]]2@]V]3@]@]]@]\ \O\\\M\@\u*@\iL\=@\ BOOL- Let new {llvm,clang}*-doc packages "Conflict" with older devel packages, which they were split from. - Let doc packages conflict with older versions of themselves.- (Build)Require only python3-base instead of full python3 package, the additional modules are not required. Helps shortening the build dependency chain. - Remove python3-* requires from lldb9 subpackage, and add it to the bindings/pretty-printer subpackage (python3-lldb9). - Add python3-base Requires to python3-clang subpackage- Add dont-install-example-analyzer-plugins.patch: Remove example analyzer plugins from install targets instead of deleting them. - Add fix-module-test.patch: fix test instead of deleting it. - Don't build static libc++ (with ThinLTO that's not useful anyway). - Don't build libc++experimental. - Don't package libc++abi.so with libc++-devel, it's already contained in the (required) libc++abi-devel. - Be more specific about files in libc++-devel.- Update to version 9.0.0. * For details, see the release notes: - https://releases.llvm.org/9.0.0/docs/ReleaseNotes.html - https://releases.llvm.org/9.0.0/tools/clang/docs/ReleaseNotes.html - https://releases.llvm.org/9.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html - https://releases.llvm.org/9.0.0/projects/libcxx/docs/ReleaseNotes.html - https://releases.llvm.org/9.0.0/tools/lld/docs/ReleaseNotes.html - Change License to "Apache-2.0 WITH LLVM-exception OR NCSA". (https://llvm.org/foundation/relicensing/) - Allow building with ThinLTO and enable it on some architectures. - Disable LTO cache in lto-disable-cache.patch. - Unset MALLOC_CHECK_ for compilation to mitigate lock contention. - No debug info for ppc like for the other 32-bit targets. - Clean up _constraints: same constraints for 32-bit targets. - Don't use BUILD_SHARED_LIBS for Clang anymore, since the newly available libclang-cpp.so should expose the full C++ API. - Link tools with libclang-cpp.so by using CLANG_LINK_CLANG_DYLIB, similar to LLVM_BUILD_LLVM_DYLIB for libLLVM.so. - Remove obsolete n_clang_allow_BUILD_SHARED_LIBRARY.patch. - Add link-clang-shared.patch to link more clang targets with libclang-cpp.so, especially libclang.so. - Add link-clang-tools-extra-shared.patch, link-lldb-shared.patch: link targets in clang-tools-extra and lldb with libclang-cpp.so. - Simplify llvm-do-not-install-static-libraries.patch, also handle Clang, for which we now get static libraries. - Package documentation for llvm and clang separately, recommend them for the main package: they are not required for development, but actually useful for working with the non-devel packages. - Recommend editor plugins not just for llvm-devel. - Recommend libstdc++ for Clang again. - Move diagtool from llvm to clang subpackage. - Properly distinguish between %{_relver} and %{version}. - Drop aarch64-disable-memorytest.patch and reactivate test. - Rebase clang-resourcedirs.patch. - Rebase llvm-normally-versioned-libllvm.patch. - Rebase llvm-remove-clang-only-flags.patch. - Rebase llvm_build_tablegen_component_as_shared_library.patch. - Rebase set-revision.patch. - Increase disk space for build.- Make lldb recommend python3-lldb (it contains pretty printers).- Use python3 shebangs everywhere (boo#1146533). - Drop obsolete opt-viewer-Do-not-require-python-2.patch.- Remove unneccesary dependencies: * groff, bison and flex don't seem to be used. * jsoncpp is no longer used since r338461. * Move some BuildRequires to subpackages. * Don't recommend scan-{build,view} in clang (boo#1145444). * Devel packages are only required in other devel packages, when their headers are included in the installed headers. - Add versions to Provides/Conflicts except for files. - Remove unused (since r268685) CMake flags LLVM_ENABLE_TIMESTAMPS. - Fix installation of opt-viewer files when python3-clang is no longer built.- Update to version 8.0.1. * This release contains bug-fixes for the LLVM 8.0.0 release. This release is API and ABI compatible with 8.0.0. - Don't run LLVM tests on ppc at all because of sporadic hangs.- Increase RAM for armv6/7 to avoid OOM and be scheduled on fast worker- Use the documented LLVM_ENABLE_RTTI to enable RTTI instead of LLVM_REQUIRES_RTTI, which "is an internal flag that individual targets can use to force RTTI". (boo#1139584) - Drop obsolete llvm-build-tests-with-rtti.patch.- Exclude riscv64 for now since it fails to build.- Change some groups: * put libraries in System/Libraries, * devel packages in Development/Libraries, * clang in Development/Languages/C and C++, * the gold plugin in Development/Tools/Building. - Add some URLs, use https:// when possible. - Remove unneeded devel dependencies. - Only suggest a C++ standard library for clang. It's also a C compiler and needs no C++ library when only used as such. - Fix Supplements for editor plugins. - Fix some rpmlint issues: * Reword summary and description for Polly. * Fix /usr/bin/env shebangs. * Remove executable bit where not needed. * Move bash completion to /usr. * Remove hard dependency of libclang8 to libstdc++-devel. - Make rpm macros work properly. - Remove sources from documentation. - Run %fdupes on the right directories. - Enable tests for libcxx. - Reduce memory requirements for compile jobs depending on arch.- Avoid relocation overflow on ppc by not building GPU backends. - Update baselibs.conf.- Disable LTO (boo#1133254).- Fix packaging on ppc: the sanitizers aren't available there, so the directories /usr/lib/clang/*/{lib,share} are missing. - Package LLVMgold even when we don't use gold for linking. It's promised in /usr/lib/cmake/llvm/LLVMExports.cmake. - Unignore test failures on PowerPC64 architectures. The failures in ppc are unrelated to AMDGPU, so we remove that remark. - Fix dependencies: the gold plugin shouldn't depend on llvm-devel. libc++abi-devel should depend on libc++abi. - Fix typo.- Enable libc++ on ARM (Needed for tensorflow)- Update to 8.0.0 * For details, see the release notes: https://llvm.org/releases/8.0.0/docs/ReleaseNotes.html https://llvm.org/releases/8.0.0/tools/clang/docs/ReleaseNotes.html https://llvm.org/releases/8.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html https://llvm.org/releases/8.0.0/tools/lld/docs/ReleaseNotes.html - Drop llvm-unittests-Don-t-install-TestPlugin.so.patch, llvm-drop-llvm-optional-clang-specific-optimization.patch, llvm-D51108.patch, llvm-Ensure-that-variant-part-discriminator-is-read-by-Me.patch, llvm-test-Fix-Assembler-debug-info.ll.patch * Already included upstream - Add 0001-CMake-Add-install-targets-for-utilities-to-LLVM-expo.patch- Remove -fno-strict-aliasing, which upstream doesn't use any more since r245304 in 2015. (http://reviews.llvm.org/D12036) It's probably also not needed for modern versions of GCC. It was enabled in r105644 because of some bugs there. - Add a clang-%{_sonum} symlink, which is referenced by /usr/lib64/cmake/clang/ClangTargets.cmake (boo#1120098) - Package clang builtin headers with libclang. The library is basically unusable without the builtin headers. Currently consumers of libclang have to require clang as well, although only the headers are needed.- llvm-Ensure-that-variant-part-discriminator-is-read-by-Me.patch, llvm-test-Fix-Assembler-debug-info.ll.patch * Fix crash in rustc (boo#1126907)- Allow use of Gold linker to be conditional - Disable Gold linker on ppc + LLVM currently doesn't build with Gold on ppc- Readd clang-7 and clang++-7 symlinks * Fixes uses of clang-devel (boo#1120098)- Update to llvm 7.0.1 * This release contains bug-fixes for the LLVM 7.0.0 release. This release is API and ABI compatible with 7.0.0.- enable gold unconditionally like with llvm6 and older - reenable openmp support again for aarch64 (like it was already in llvm6)- Use %license macro - Use upstream-recommended %{_rpmconfigdir}/macros.d directory for the rpm macros.- Remove ppc from Exclude field in spec file - Allow use of Gold linker to be conditional - Disable Gold linker on ppc - Add patch to fix SUSE GNU triplet on ppc * clang-fix-powerpc-triplet.patch - Add patch from upstream to fix ABI issue on ppc * llvm-D51108.patch - Limit list of enabled targets on ppc * PowerPC;AMDGPU;BPF;NVPTX - Ignore testsuite failures on ppc- llvm-drop-llvm-optional-clang-specific-optimization.patch * Fix ABI incompatibility when libLLVM (built with clang) is linked to a program build with gcc. (boo#1119092)- opt-viewer-Find-style-css-in-usr-share.patch * Make sure opt-viewer installed in /usr/bin can find resources from /usr/share/opt-viewer. (boo#1112730)- llvm-unittests-Don-t-install-TestPlugin.so.patch * It is only used for testing and is causing failures when processing LLVMExports.cmake.- Update to llvm 7.0.0 * For details, see the release notes: https://llvm.org/releases/7.0.0/docs/ReleaseNotes.html https://llvm.org/releases/7.0.0/tools/clang/docs/ReleaseNotes.html https://llvm.org/releases/7.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html https://llvm.org/releases/7.0.0/tools/lld/docs/ReleaseNotes.html - Remove no longer needed patches: * llvm6-fix-gdb-index-crash.patch * lldb-fix-build-with-python-3.7.patch * lldb-add-pthread-dl-libs.patch * polly-cmake-Trust-pkg-config-in-FindJsoncpp.patch - Add tests-use-python3.patch * Prevents tests from failing because of missing python 2. - Add llvm-better-detect-64bit-atomics-support.patch * Fixes build on i586.- Updated llvm-remove-clang-only-flags.patch - Exclude also "-Werror=unguarded-availability-new" (bsc#1106000)- Update to llvm 6.0.1 * This release contains bug-fixes for the LLVM 6.0.0 release. It is API and ABI compatible with 6.0.0. - Remove no longer needed llvm6-fix-InstCombine.patch - Add lldb-fix-build-with-python-3.7.patch * Fix build with python 3.7- llvm6-fix-gdb-index-crash.patch * From upstream, fix lld --gdb-index crash.- Do not requires gcc6 for older sle versions. * llvm6 is not built on <= 12 SP3 and this was preventing build on 12 SP4.- llvm_build_tablegen_component_as_shared_library.patch * Build TableGen component as its own shared library because it is not included in the libLLVM library and is needed for ldc. (bsc#1086445)- Add patch llvm6-fix-InstCombine.patch to fix InstCombine init * Will be fixed in 6.0.1 release- Do not build stage1 with debug info. It was accidentally added with the use of %optflags. This should fix out of memory errors on 32bit architectures and speed up build everywhere else. (bsc#1092697)- llvm-build-tests-with-rtti.patch * Fixes build failure with gcc 8. (bnc#1087136)- Do not export Polly static libraries which we do not distribute. * Updated llvm-do-not-install-static-libraries.patch - Use external jsoncpp instead of the bundled one. * Added polly-cmake-Trust-pkg-config-in-FindJsoncpp.patch - llvm6-devel must require llvm6-polly-devel * Files in llvm6-devel reference Polly.- Update to llvm 6.0.0 * Added polly * Notable changes: - Retpoline Spectre variant 2 mitigation - GlobalISel by default for AArch64 at -O0 - improved scheduling on several x86 micro-architectures - Clang defaults to -std=gnu++14 instead of -std=gnu++98 - support for some upcoming C++2a features - improved optimizations, new compiler warnings, many bug fixes, and more. - Use alternatives for clang's bash autocomplete to prevent conflicts with other versions.- Remove liblldb5 and lldb5-devel from baselibs.conf. They are only build for x86_64, so no point having them in baselibs.conf.- Use %optflags, except for FORTIFY_SOURCE which is not compatible with compiler-rt. - Exclude static libraries differently. * Drop llvm-split-static-library-exports-into-their-own-export-file.diff * Drop clang-split-static-library-exports-into-their-own-export-file.diff * Update llvm-do-not-install-static-libraries.patch to not use EXCLUDE_FROM_ALL which is not available in cmake 3.5. - This fixes build on SLE12. - Do not force gcc6 on OpenSUSE - fixes build. - Reduce the amount of concurent link jobs by increasing their memory requirement - to reduce stalls in OBS.- Cleanup %ifarch conditions, remove targets unintentionally added to s390/s390x. (bnc#1078436)- Limit the amount of parallel link jobs, but no longer limit compile jobs. This should prevent running out of memory during linking while not longer slowing down compilation. - Remove build dependency on procps- Reduce disk size requirement to 30GB in _constraints. We no longer need that much since we stopped building static libraries.- n_clang_allow_BUILD_SHARED_LIBRARY.patch * Allow buildling clang with BUILD_SHARED_LIBRARY while the rest is built with LLVM_LINK_LLVM_DYLIB. (bnc#1065464) - Remove clang-devel-static.- Place gold plugin to the right directory. (bnc#1073210) * It must be in /usr/lib/bfd-plugins on all architectures. * Remove llvm5-gold from baselibs.conf - nothing needs a 32bit version of it and it would now conflict with the 64bit one. - Reduce _constraints requirements on 32bit architectures. * Since we had to disable debuginfo on them, they require much less.- ignore make check error for PowerPC as bypass https://bugs.llvm.org/show_bug.cgi?id=35871- disable debuginfo build for ARM as well- Delete intermediate files during build to reduce total disk usage (bnc#1074625)- Update to llvm 5.0.1 * This release contains bug-fixes for the LLVM 5.0.0 release. * This release is API and ABI compatible with 5.0.0. - llvm-do-not-install-static-libraries.patch * Updated.- Increase minimum memory and disk sizes required for building in _constraints.- Rename python3-lldb to python3-lldb5 so it can work with llvm meta package.- Rename python packages to follow naming conventions. - Remove unnecessary dependencies on python3. - Make opt-viewer not require python2. * opt-viewer-Do-not-require-python-2.patch- Switch to python3. - Fix %check tests when used with python3. * Define LANG=C.UTF-8 when running the tests. - Add explicit Provides/Conflicts to llvm5-devel, clang5-devel-static and lldb5-devel. * These are required to be validated by obs repo-checker.- Use LLVM_OPTIMIZED_TABLEGEN to speed up build. (bnc#1064786) - Fix files of lldb4 to work correctly with update-alternatives. - Remove Conflicts clang(LLDB) from lldb4-devel - it does not exist. It would be provided automatically, but no such cmake file is installed. - llvm-do-not-install-static-libraries.patch * Do not install static libraries instead of installing them and deleting after. * Reduces disk usage during build. (bnc#1064786) - Do not build unnecessary parts during stage1. * Speeds up build a bit. (bnc#1064786)- Updated baselibs.conf to reference version 5 packages. - Deleted rogue llvm5.spec.r29 file. - Deleted arm_suse_support.diff, llvm-add_a_LLVM_USE_LINKER.patch, libsanitizer.patch. - No longer used, applied already in the source.- llvm-normally-versioned-libllvm.patch * Change libLLVM naming scheme to match our naming guidelines. * The reasons for the original naming scheme are no longer valid, more details in the patch.- Disable all thread related tests in libcxx. Many of them use timeouts to detect failure. They can fail randomly if the machine is under heavy load (happens often in OBS).- Drop llvm5-devel-static. llvm5-devel contains shared library with the same content.- Increase disk space requirement in _constraints to 45GB. Otherwise the build gets stuck in random places. - Skip build of lldb5 python on distributions with swig < 3.0.11- Copy from llvm4. - Update to llvm 5.0.0.- Use LLVM_BUILD_LLVM_DYLIB instead of BUILD_SHARED_LIBS to build single libLLVM library. This is the recommended way. The old way was causing various issues. * llvm-split-static-library-exports-into-their-own-export-file.diff * clang-split-static-library-exports-into-their-own-export-file.diff (bnc#1049703) - Add lld, linker for Clang/LLVM (sr#517692) - Include clang++-MAJOR.MINOR symbolic link (bnc#1012260) - Remove unnecessary dependency on flex and bison. - Make sure all binaries are managed by update-alternatives - Add llvm-add_a_LLVM_USE_LINKER.patch and link using gold to prevent memory exhaustion on some build machines. - Reduce debuginfo on x86 architecture. LLVM libraries are so big that they exhaust all memory on 32 bit machine if linked with full debuginfo. - Speed up build by skipping parts that are not required in stage1. - Build lldb in-tree as one of the llvm tools.- clang-ignore-stack-clash-protector.patch: ignore -fstack-clash-protection for now.- xlocale.patch: don't use obsolete - libsanitizer.patch: fix use of undocumented types- build fixes for armv6 (skip testsuite as it requires 64bit, set the list of targets to include ARM and remove triplet hack)- Include provides and conflics in baselibs.conf for llvm4-devel, clang4-devel, llvm4-LTO-devel, and llvm4-gold.- Update to version 4.0.1 * Minor bugfixes- Use gcc6 only for SLE boo#1041469- Package libLLVMFuzzer- readd arm_suse_support.diff which was accidentally removed in the 4.0.0 update- Enable AMDGPU and NVPTX targets everywhere except for S/390. The AMDGPU target is needed for Mesa Clover (sr#485802).- Use gcc6 on SLE12- Package license & credits- Update to version 4.0.0 * See + http://releases.llvm.org/4.0.0/docs/ReleaseNotes.html and + http://releases.llvm.org/4.0.0/tools/clang/docs/ReleaseNotes.html + http://releases.llvm.org/4.0.0/tools/clang/tools/extra/docs/ReleaseNotes.html - Drop the following patches, fixed upstream: amdgpu_revert_r280589.patch arm_suse_support.diff clang-fix-substitutions-abi_tag.patch clang-incomplete-field-types.patch glibc-2.24-libcxx.patch llvm-install-CheckAtomic.patch revert-cmake-soname.patch- Enable BPF for all arches bsc#1026191- libc++ must depend on libc++abi- Stop using otherproviders() due to an rpm parser bug, use self-conflicts instead as suggested by mls.- Add amdgpu_revert_r280589.patch to fix an amdgpu regression bsc#1021577- Require LLVMgold and libLTO in llvm-devel, otherwise we get in CMake: The imported target "LLVMgold" references the file "/usr/lib64/LLVMgold.so" but this file does not exist. This happens when requiring llvm3_9-devel directly, not llvm-devel.- Update to version 3.9.1 * See: + http://llvm.org/releases/3.9.1/docs/ReleaseNotes.html + http://llvm.org/releases/3.9.1/tools/clang/docs/ReleaseNotes.html + http://llvm.org/releases/3.9.1/tools/clang/tools/extra/docs/ReleaseNotes.html- Update to version 3.9.0 * Clang now supports the G++ abi_tag attribute. * Clang will no longer pass --build-id by default to the linker. * Improved C++1z support in Clang. * Clang now has support for all OpenCL 2.0 features. * Added support for all non-offloading features from OpenMP 4.5, * The static analyzer now checks for incorrect usage of MPI APIs in C and C++. * LLVM no longer does inter-procedural analysis and optimization (except inlining) on functions with comdat linkage. * LLVM now supports the Intel CPUs Skylake Server with AVX512 (-march=skylake-avx512) and Knights Landing (-march=knl). * More at: + http://llvm.org/releases/3.9.0/docs/ReleaseNotes.html + http://llvm.org/releases/3.9.0/tools/clang/docs/ReleaseNotes.html + http://llvm.org/releases/3.9.0/tools/clang/tools/extra/docs/ReleaseNotes.html * Fix the following patches: + arm_suse_support.diff + assume-opensuse.patch + clang-resourcedirs.patch + default-to-i586.patch + glibc-2.23-libcxx.patch + glibc-2.24-libcxx.patch + lldb-add-pthread-dl-libs.patch + lldb-cmake.patch + llvm-fix-find-gcc5-install.patch + llvm-remove-clang-only-flags.patch + revert-cmake-soname.patch + set-revision.patch * Remove upstream-included patch: + llvm-nonvoid-return.patch * Remove patch for removed files: + glibc-2.23-libcxx.patch - Backport upstream patches: * clang-fix-substitutions-abi_tag.patch * clang-incomplete-field-types.patch * llvm-install-CheckAtomic.patch - Add clang%{_sonum}-include-fixer subpackage and associated libfindAllSymbols%{_sonum} and libfindAllSymbols%{_sonum}-devel subpackages. - Add sanstats to llvm binary list.- Change update-alternatives to use %postun instead of %preun, which is now what Factory maintainers are requesting. - Use the minor version to set the update-alternatives priority so the most recent version of the LLVM, Clang, and LLDB are used by default. - Add LLVM rpm macros so downstream packages can have some idea how LLVM was built.- Rename libomp to make it possible to have multiple versions available.- Split the old llvm package into this version-specific package and a wrapper package. - Implement update-alternatives to allow parallel installation of many of the subpackages. - Rename subpackages that can be parallel-installed to a version-specific name based on the associated shared library's current .so number. - Various fixes to support the above changes.- Sort a bit with spec-cleaner - Remove the latest switch for now, things should be either coinstallable or not, we don't need to bother around with compilation like this- Update to llvm 3.8.1 * See http://llvm.org/releases/3.8.1/docs/ReleaseNotes.html and http://llvm.org/releases/3.8.1/tools/docs/ReleaseNotes.html - Use versioned libLLVM (to libLLVM3_8) and libclang (to libclang3_8) - Change versioning of liblldb3_8 to liblldb-3_8 and use a variable to control the name instead of hard-coding it. - Use bcond_with and bcond_without to enable/disable build options instead of hard-coding them. - Put buildrequires as requires in -devel packages to avoid linker errors when building packages against the -devel packages. - Add ffi support (disabled by default). - Add oprofile support (disabled by default). - Add valgrind support (disabled by default). - Link cmake files to the normal cmake file directory to allow autodetection of cmake interfaces. - Remove unused lldb components from main spec file. - Split llvm python bindings into own subpackage. - Split emacs plugin into own subpackage - Move additional vim plugins into vim plugins package - Split libc++, libLTO, LLVMgold, libomp, clang-chekers into own subpackages - Make python-clang, llvm-vim-plugins, and llvm-emacs-plugins noarch since they aren't architecture-specific. - Make packages besides llvm, llvm-clang, and the shared libraries conflict with other versions. This will be important when multiple LLVM versions are supported. - Various spec file cleanups - Rebase patches: * arm_suse_support.diff * assume-opensuse.patch * clang-resourcedirs.patch * default-to-i586.patch * glibc-2.23-libcxx.patch * glibc-2.24-libcxx.patch * lldb-add-pthread-dl-libs.patch * lldb-cmake.patch * llvm-fix-find-gcc5-install.patch * llvm-nonvoid-return.patch * llvm-remove-clang-only-flags.patch * revert-cmake-soname.patch * set-revision.patch- Start conversion to use cmake macros with now introduced compatibility for ninja - Reduce number of threads if we don't have enough memory - Add patch for the nonvoid returns: * llvm-nonvoid-return.patch- for ppc64le set memory to 4GB in _constraints file (failure in Factory:PowerPC)- glibc-2.24-libcxx.patch: fix libcxx testsuite for glibc 2.24- Build LLDB separated from LLVM. - Re-enable python bindings for the LLDB API.- Disable libcxx/lldb/openmp for SLE fate#319582- Update rpmlintrc to whitelist libLTO.so- Re-enable glibc-2.23 patch for Tumbleweed- fix arm_suse_support.diff for armv6hl - adjust compile flags for llvm on armv6hl (fixes Mesa build)- Update llvm-remove-clang-only-flags.patch to remove - Wcovered-switch-default flag for gcc compatibility.- Use gcc for stage1 bootstrap - Add back libstdc++-devel dependency for clang since libc++ is only available for x86-64 atm.- Comment out glibc-2.23-libcxx.patch until glibc 2.23 actually hits the Factory.- Update to llvm 3.8.0 * See http://llvm.org/releases/3.8.0/docs/ReleaseNotes.html and http://llvm.org/releases/3.8.0/tools/clang/docs/ReleaseNotes.html - Fold lldb build into llvm and disable python support - Drop clang-disable-ada-extension.patch, libcxxabi-exceptions.patch and cmake-host-triple.patch - Add revert-cmake-soname.patch to fix soname handling- Add glibc-2.23-libcxx.patch to fix test failures with glibc 2.23- Remove FFI support because its fragile- Enable OpenMP for x86, x86_64, ppc64 and ppc64le- Enable all targets on x86, x86_64- Update to version 3.7.0 * See http://llvm.org/releases/3.7.0/docs/ReleaseNotes.html - Merge aarch64-suse-support.patch into arm_suse_support.diff - Refresh arm_suse_support.diff, llvm-fix-find-gcc5-install.patch - Remove llvm-fix-parsearmarch.patch, upstream.- fix build on s390x (one typo in ifarch and one change in filelist)- Update to version 3.6.1 * No changelog upstream- Add llvm-fix-parsearmarch.patch to fix parsing armv{6,7}hl archs.- Update to version 3.6.0 * See http://llvm.org/releases/3.6.0/docs/ReleaseNotes.html - Add python-xml dependency for regression tests - Removed the following patches, fixed upstream: * arm-remove-xfails.diff * libcxx-libdir.patch * llvm-config-lib64.patch * llvm-fix-intrusiverefcntptr.patch- Add llvm-fix-intrusiverefcntptr.patch to fix build of LLVM tools with GCC 5. - Add llvm-fix-find-gcc5-install.patch to properly find installed GCC 5.- Add a gcc dependency for clang, this is heavyweight but we need libgcc_s which comes with the gcc package (bnc#893359)- Conditionalize libcxx{abi} build on build_libcxx variable - Turn libc++.so into an ldscript so it links to libc++abi automatically.- fix constraints for armv6l/armv7l (there is no 4GB RAM on 32bit)/sbin/ldconfig/sbin/ldconfigibs-arm-4 1674112427  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~11.0.111.0.111.0.1-150300.3.6.111.0.1-150300.3.6.1        !"!###!$$$$$$$$%%%%%%&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&'(((((())))*++,,,,,,,,,,,,,,,,,----,,,,,,,,,,,,,,,,,,,,,,........,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,////000000/////1111111/22222222222222222222222222222233333333333333344444455567776666666668888888888899999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999999:;99999999999999999999999999999999<99999999999999=========>>>????>>>>>>>>>>>@AAABCCBDDDDDDDDDDEFEGHIHHHJJJJHHKKKKKKKKKKKKKKKKKKKKKKKKKKKKKHLLHHMMMMMMMMMMMMMMHHHNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNHHOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOHHPPPPPQRRRSSSSSSSSSSSSSSSSSTUVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVWXWYZZ[llvm-configllvmllvm-cAnalysis.hBitReader.hBitWriter.hComdat.hCore.hDataTypes.hDebugInfo.hDisassembler.hDisassemblerTypes.hError.hErrorHandling.hExecutionEngine.hExternC.hIRReader.hInitialization.hLinkTimeOptimizer.hLinker.hObject.hOrc.hOrcBindings.hRemarks.hSupport.hTarget.hTargetMachine.hTransformsAggressiveInstCombine.hCoroutines.hIPO.hInstCombine.hPassManagerBuilder.hScalar.hUtils.hVectorize.hTypes.hlto.hADTAPFloat.hAPInt.hAPSInt.hAllocatorList.hAny.hArrayRef.hBitVector.hBitfields.hBitmaskEnum.hBreadthFirstIterator.hCachedHashString.hCoalescingBitVector.hDAGDeltaAlgorithm.hDeltaAlgorithm.hDenseMap.hDenseMapInfo.hDenseSet.hDepthFirstIterator.hDirectedGraph.hEnumeratedArray.hEpochTracker.hEquivalenceClasses.hFloatingPointMode.hFoldingSet.hFunctionExtras.hGraphTraits.hHashing.hImmutableList.hImmutableMap.hImmutableSet.hIndexedMap.hIntEqClasses.hIntervalMap.hIntrusiveRefCntPtr.hMapVector.hNone.hOptional.hPackedVector.hPointerEmbeddedInt.hPointerIntPair.hPointerSumType.hPointerUnion.hPostOrderIterator.hPriorityQueue.hPriorityWorklist.hSCCIterator.hSTLExtras.hScopeExit.hScopedHashTable.hSequence.hSetOperations.hSetVector.hSmallBitVector.hSmallPtrSet.hSmallSet.hSmallString.hSmallVector.hSparseBitVector.hSparseMultiSet.hSparseSet.hStatistic.hStringExtras.hStringMap.hStringMapEntry.hStringRef.hStringSet.hStringSwitch.hTinyPtrVector.hTriple.hTwine.hTypeSwitch.hUniqueVector.hWaymarking.hbit.hedit_distance.hfallible_iterator.hilist.hilist_base.hilist_iterator.hilist_node.hilist_node_base.hilist_node_options.hiterator.hiterator_range.hsimple_ilist.hAnalysisAliasAnalysis.hAliasAnalysisEvaluator.hAliasSetTracker.hAssumeBundleQueries.hAssumptionCache.hBasicAliasAnalysis.hBlockFrequencyInfo.hBlockFrequencyInfoImpl.hBranchProbabilityInfo.hCFG.hCFGPrinter.hCFLAliasAnalysisUtils.hCFLAndersAliasAnalysis.hCFLSteensAliasAnalysis.hCGSCCPassManager.hCallGraph.hCallGraphSCCPass.hCallPrinter.hCaptureTracking.hCmpInstAnalysis.hCodeMetrics.hConstantFolding.hDDG.hDOTGraphTraitsPass.hDemandedBits.hDependenceAnalysis.hDependenceGraphBuilder.hDivergenceAnalysis.hDomPrinter.hDomTreeUpdater.hDominanceFrontier.hDominanceFrontierImpl.hEHPersonalities.hGlobalsModRef.hGuardUtils.hHeatUtils.hIVDescriptors.hIVUsers.hIndirectCallPromotionAnalysis.hIndirectCallVisitor.hInlineAdvisor.hInlineCost.hInlineFeaturesAnalysis.hInlineModelFeatureMaps.hInlineSizeEstimatorAnalysis.hInstructionPrecedenceTracking.hInstructionSimplify.hInterval.hIntervalIterator.hIntervalPartition.hIteratedDominanceFrontier.hLazyBlockFrequencyInfo.hLazyBranchProbabilityInfo.hLazyCallGraph.hLazyValueInfo.hLegacyDivergenceAnalysis.hLint.hLoads.hLoopAccessAnalysis.hLoopAnalysisManager.hLoopCacheAnalysis.hLoopInfo.hLoopInfoImpl.hLoopIterator.hLoopNestAnalysis.hLoopPass.hLoopUnrollAnalyzer.hMLInlineAdvisor.hMLModelRunner.hMemoryBuiltins.hMemoryDependenceAnalysis.hMemoryLocation.hMemorySSA.hMemorySSAUpdater.hModuleSummaryAnalysis.hMustExecute.hObjCARCAliasAnalysis.hObjCARCAnalysisUtils.hObjCARCInstKind.hOptimizationRemarkEmitter.hPHITransAddr.hPasses.hPhiValues.hPostDominators.hProfileSummaryInfo.hPtrUseVisitor.hRegionInfo.hRegionInfoImpl.hRegionIterator.hRegionPass.hRegionPrinter.hScalarEvolution.hScalarEvolutionAliasAnalysis.hScalarEvolutionDivision.hScalarEvolutionExpressions.hScalarEvolutionNormalization.hScopedNoAliasAA.hSparsePropagation.hStackLifetime.hStackSafetyAnalysis.hSyncDependenceAnalysis.hSyntheticCountsUtils.hTargetFolder.hTargetLibraryInfo.defTargetLibraryInfo.hTargetTransformInfo.hTargetTransformInfoImpl.hTrace.hTypeBasedAliasAnalysis.hTypeMetadataUtils.hUtilsLocal.hTFUtils.hValueLattice.hValueLatticeUtils.hValueTracking.hVecFuncs.defVectorUtils.hAsmParserParser.hSlotMapping.hBinaryFormatAMDGPUMetadataVerifier.hCOFF.hDwarf.defDwarf.hDynamicTags.defELF.hELFRelocsAArch64.defAMDGPU.defARC.defARM.defAVR.defBPF.defHexagon.defLanai.defMSP430.defMips.defPowerPC.defPowerPC64.defRISCV.defSparc.defSystemZ.defVE.defi386.defx86_64.defMachO.defMachO.hMagic.hMinidump.hMinidumpConstants.defMsgPack.defMsgPack.hMsgPackDocument.hMsgPackReader.hMsgPackWriter.hWasm.hWasmRelocs.defXCOFF.hBitcodeBitcodeAnalyzer.hBitcodeReader.hBitcodeWriter.hBitcodeWriterPass.hLLVMBitCodes.hBitstreamBitCodes.hBitstreamReader.hBitstreamWriter.hCodeGenAccelTable.hAnalysis.hAntiDepBreaker.hAsmPrinter.hAsmPrinterHandler.hAtomicExpandUtils.hBasicTTIImpl.hBuiltinGCs.hCSEConfigBase.hCalcSpillWeights.hCallingConvLower.hCommandFlags.hCostTable.hDAGCombine.hDFAPacketizer.hDIE.hDIEValue.defDbgEntityHistoryCalculator.hDebugHandlerBase.hDwarfStringPoolEntry.hEdgeBundles.hExecutionDomainFix.hExpandReductions.hFastISel.hFaultMaps.hFunctionLoweringInfo.hGCMetadata.hGCMetadataPrinter.hGCStrategy.hGlobalISelCSEInfo.hCSEMIRBuilder.hCallLowering.hCombiner.hCombinerHelper.hCombinerInfo.hConstantFoldingMIRBuilder.hGISelChangeObserver.hGISelKnownBits.hGISelWorkList.hIRTranslator.hInlineAsmLowering.hInstructionSelect.hInstructionSelector.hInstructionSelectorImpl.hLegalizationArtifactCombiner.hLegalizer.hLegalizerHelper.hLegalizerInfo.hLocalizer.hLostDebugLocObserver.hMIPatternMatch.hMachineIRBuilder.hRegBankSelect.hRegisterBank.hRegisterBankInfo.hUtils.hISDOpcodes.hIndirectThunks.hIntrinsicLowering.hLatencyPriorityQueue.hLazyMachineBlockFrequencyInfo.hLexicalScopes.hLinkAllAsmWriterComponents.hLinkAllCodegenComponents.hLiveInterval.hLiveIntervalCalc.hLiveIntervalUnion.hLiveIntervals.hLivePhysRegs.hLiveRangeCalc.hLiveRangeEdit.hLiveRegMatrix.hLiveRegUnits.hLiveStacks.hLiveVariables.hLoopTraversal.hLowLevelType.hMBFIWrapper.hMIRFormatter.hMIRParserMIParser.hMIRParser.hMIRPrinter.hMIRYamlMapping.hMachORelocation.hMachineBasicBlock.hMachineBlockFrequencyInfo.hMachineBranchProbabilityInfo.hMachineCombinerPattern.hMachineConstantPool.hMachineDominanceFrontier.hMachineDominators.hMachineFrameInfo.hMachineFunction.hMachineFunctionPass.hMachineInstr.hMachineInstrBuilder.hMachineInstrBundle.hMachineInstrBundleIterator.hMachineJumpTableInfo.hMachineLoopInfo.hMachineLoopUtils.hMachineMemOperand.hMachineModuleInfo.hMachineModuleInfoImpls.hMachineOperand.hMachineOptimizationRemarkEmitter.hMachineOutliner.hMachinePassRegistry.hMachinePipeliner.hMachinePostDominators.hMachineRegionInfo.hMachineRegisterInfo.hMachineSSAUpdater.hMachineScheduler.hMachineSizeOpts.hMachineTraceMetrics.hMacroFusion.hModuloSchedule.hNonRelocatableStringpool.hPBQPCostAllocator.hGraph.hMath.hReductionRules.hSolution.hPBQPRAConstraint.hParallelCG.hPasses.hPreISelIntrinsicLowering.hPseudoSourceValue.hRDFGraph.hRDFLiveness.hRDFRegisters.hReachingDefAnalysis.hRegAllocPBQP.hRegAllocRegistry.hRegister.hRegisterClassInfo.hRegisterPressure.hRegisterScavenging.hRegisterUsageInfo.hResourcePriorityQueue.hRuntimeLibcalls.hSDNodeProperties.tdScheduleDAG.hScheduleDAGInstrs.hScheduleDAGMutation.hScheduleDFS.hScheduleHazardRecognizer.hSchedulerRegistry.hScoreboardHazardRecognizer.hSelectionDAG.hSelectionDAGAddressAnalysis.hSelectionDAGISel.hSelectionDAGNodes.hSelectionDAGTargetInfo.hSlotIndexes.hSpiller.hStackMaps.hStackProtector.hSwiftErrorValueTracking.hSwitchLoweringUtils.hTailDuplicator.hTargetCallingConv.hTargetFrameLowering.hTargetInstrInfo.hTargetLowering.hTargetLoweringObjectFileImpl.hTargetOpcodes.hTargetPassConfig.hTargetRegisterInfo.hTargetSchedule.hTargetSubtargetInfo.hUnreachableBlockElim.hValueTypes.hValueTypes.tdVirtRegMap.hWasmEHFuncInfo.hWinEHFuncInfo.hConfigAsmParsers.defAsmPrinters.defDisassemblers.defTargets.defabi-breaking.hllvm-config.hDWARFLinkerDWARFLinker.hDWARFLinkerCompileUnit.hDWARFLinkerDeclContext.hDWARFStreamer.hDebugInfoCodeViewAppendingTypeTableBuilder.hCVRecord.hCVSymbolVisitor.hCVTypeVisitor.hCodeView.hCodeViewError.hCodeViewRecordIO.hCodeViewRegisters.defCodeViewSymbols.defCodeViewTypes.defContinuationRecordBuilder.hDebugChecksumsSubsection.hDebugCrossExSubsection.hDebugCrossImpSubsection.hDebugFrameDataSubsection.hDebugInlineeLinesSubsection.hDebugLinesSubsection.hDebugStringTableSubsection.hDebugSubsection.hDebugSubsectionRecord.hDebugSubsectionVisitor.hDebugSymbolRVASubsection.hDebugSymbolsSubsection.hDebugUnknownSubsection.hEnumTables.hFormatters.hFunctionId.hGUID.hGlobalTypeTableBuilder.hLazyRandomTypeCollection.hLine.hMergingTypeTableBuilder.hRecordName.hRecordSerialization.hSimpleTypeSerializer.hStringsAndChecksums.hSymbolDeserializer.hSymbolDumpDelegate.hSymbolDumper.hSymbolRecord.hSymbolRecordHelpers.hSymbolRecordMapping.hSymbolSerializer.hSymbolVisitorCallbackPipeline.hSymbolVisitorCallbacks.hSymbolVisitorDelegate.hTypeCollection.hTypeDeserializer.hTypeDumpVisitor.hTypeHashing.hTypeIndex.hTypeIndexDiscovery.hTypeRecord.hTypeRecordHelpers.hTypeRecordMapping.hTypeStreamMerger.hTypeSymbolEmitter.hTypeTableCollection.hTypeVisitorCallbackPipeline.hTypeVisitorCallbacks.hDIContext.hDWARFDWARFAbbreviationDeclaration.hDWARFAcceleratorTable.hDWARFAddressRange.hDWARFAttribute.hDWARFCompileUnit.hDWARFContext.hDWARFDataExtractor.hDWARFDebugAbbrev.hDWARFDebugAddr.hDWARFDebugArangeSet.hDWARFDebugAranges.hDWARFDebugFrame.hDWARFDebugInfoEntry.hDWARFDebugLine.hDWARFDebugLoc.hDWARFDebugMacro.hDWARFDebugPubTable.hDWARFDebugRangeList.hDWARFDebugRnglists.hDWARFDie.hDWARFExpression.hDWARFFormValue.hDWARFGdbIndex.hDWARFListTable.hDWARFLocationExpression.hDWARFObject.hDWARFRelocMap.hDWARFSection.hDWARFTypeUnit.hDWARFUnit.hDWARFUnitIndex.hDWARFVerifier.hGSYMDwarfTransformer.hFileEntry.hFileWriter.hFunctionInfo.hGsymCreator.hGsymReader.hHeader.hInlineInfo.hLineEntry.hLineTable.hLookupResult.hObjectFileTransformer.hRange.hStringTable.hMSFIMSFFile.hMSFBuilder.hMSFCommon.hMSFError.hMappedBlockStream.hPDBConcreteSymbolEnumerator.hDIADIADataStream.hDIAEnumDebugStreams.hDIAEnumFrameData.hDIAEnumInjectedSources.hDIAEnumLineNumbers.hDIAEnumSectionContribs.hDIAEnumSourceFiles.hDIAEnumSymbols.hDIAEnumTables.hDIAError.hDIAFrameData.hDIAInjectedSource.hDIALineNumber.hDIARawSymbol.hDIASectionContrib.hDIASession.hDIASourceFile.hDIASupport.hDIATable.hDIAUtils.hGenericError.hIPDBDataStream.hIPDBEnumChildren.hIPDBFrameData.hIPDBInjectedSource.hIPDBLineNumber.hIPDBRawSymbol.hIPDBSectionContrib.hIPDBSession.hIPDBSourceFile.hIPDBTable.hNativeDbiModuleDescriptor.hDbiModuleDescriptorBuilder.hDbiModuleList.hDbiStream.hDbiStreamBuilder.hEnumTables.hFormatters.hGSIStreamBuilder.hGlobalsStream.hHash.hHashTable.hISectionContribVisitor.hInfoStream.hInfoStreamBuilder.hInjectedSourceStream.hModuleDebugStream.hNamedStreamMap.hNativeCompilandSymbol.hNativeEnumGlobals.hNativeEnumInjectedSources.hNativeEnumLineNumbers.hNativeEnumModules.hNativeEnumTypes.hNativeExeSymbol.hNativeFunctionSymbol.hNativeLineNumber.hNativePublicSymbol.hNativeRawSymbol.hNativeSession.hNativeSourceFile.hNativeSymbolEnumerator.hNativeTypeArray.hNativeTypeBuiltin.hNativeTypeEnum.hNativeTypeFunctionSig.hNativeTypePointer.hNativeTypeTypedef.hNativeTypeUDT.hNativeTypeVTShape.hPDBFile.hPDBFileBuilder.hPDBStringTable.hPDBStringTableBuilder.hPublicsStream.hRawConstants.hRawError.hRawTypes.hSymbolCache.hSymbolStream.hTpiHashing.hTpiStream.hTpiStreamBuilder.hPDB.hPDBContext.hPDBExtras.hPDBSymDumper.hPDBSymbol.hPDBSymbolAnnotation.hPDBSymbolBlock.hPDBSymbolCompiland.hPDBSymbolCompilandDetails.hPDBSymbolCompilandEnv.hPDBSymbolCustom.hPDBSymbolData.hPDBSymbolExe.hPDBSymbolFunc.hPDBSymbolFuncDebugEnd.hPDBSymbolFuncDebugStart.hPDBSymbolLabel.hPDBSymbolPublicSymbol.hPDBSymbolThunk.hPDBSymbolTypeArray.hPDBSymbolTypeBaseClass.hPDBSymbolTypeBuiltin.hPDBSymbolTypeCustom.hPDBSymbolTypeDimension.hPDBSymbolTypeEnum.hPDBSymbolTypeFriend.hPDBSymbolTypeFunctionArg.hPDBSymbolTypeFunctionSig.hPDBSymbolTypeManaged.hPDBSymbolTypePointer.hPDBSymbolTypeTypedef.hPDBSymbolTypeUDT.hPDBSymbolTypeVTable.hPDBSymbolTypeVTableShape.hPDBSymbolUnknown.hPDBSymbolUsingNamespace.hPDBTypes.hUDTLayout.hSymbolizeDIPrinter.hSymbolizableModule.hSymbolize.hDemangleDemangle.hDemangleConfig.hItaniumDemangle.hMicrosoftDemangle.hMicrosoftDemangleNodes.hStringView.hUtility.hExecutionEngineExecutionEngine.hGenericValue.hInterpreter.hJITEventListener.hJITLinkEHFrameSupport.hELF.hELF_x86_64.hJITLink.hJITLinkMemoryManager.hMachO.hMachO_arm64.hMachO_x86_64.hJITSymbol.hMCJIT.hOProfileWrapper.hObjectCache.hOrcCompileOnDemandLayer.hCompileUtils.hCore.hDebugUtils.hExecutionUtils.hGlobalMappingLayer.hIRCompileLayer.hIRTransformLayer.hIndirectionUtils.hJITTargetMachineBuilder.hLLJIT.hLambdaResolver.hLayer.hLazyEmittingLayer.hLazyReexports.hLegacy.hMachOPlatform.hMangling.hNullResolver.hObjectLinkingLayer.hObjectTransformLayer.hOrcABISupport.hOrcError.hOrcRemoteTargetClient.hOrcRemoteTargetRPCAPI.hOrcRemoteTargetServer.hRPCRPCSerialization.hRPCUtils.hRawByteChannel.hRTDyldObjectLinkingLayer.hRemoteObjectLayer.hSpeculateAnalyses.hSpeculation.hSymbolStringPool.hThreadSafeModule.hOrcMCJITReplacement.hOrcV1Deprecation.hRTDyldMemoryManager.hRuntimeDyld.hRuntimeDyldChecker.hSectionMemoryManager.hFrontendDirectiveDirectiveBase.tdOpenACCACC.cpp.incACC.h.incACC.tdOpenMPOMP.cpp.incOMP.h.incOMP.tdOMPConstants.hOMPContext.hOMPGridValues.hOMPIRBuilder.hOMPKinds.defFuzzMutateFuzzerCLI.hIRMutator.hOpDescriptor.hOperations.hRandom.hRandomIRBuilder.hIRAbstractCallSite.hArgument.hAssemblyAnnotationWriter.hAttributes.hAttributes.incAttributes.tdAutoUpgrade.hBasicBlock.hCFG.hCallingConv.hComdat.hConstant.hConstantFolder.hConstantRange.hConstants.hConstrainedOps.defDIBuilder.hDataLayout.hDebugInfo.hDebugInfoFlags.defDebugInfoMetadata.hDebugLoc.hDerivedTypes.hDerivedUser.hDiagnosticHandler.hDiagnosticInfo.hDiagnosticPrinter.hDominators.hFPEnv.hFixedMetadataKinds.defFunction.hGVMaterializer.hGetElementPtrTypeIterator.hGlobalAlias.hGlobalIFunc.hGlobalIndirectSymbol.hGlobalObject.hGlobalValue.hGlobalVariable.hIRBuilder.hIRBuilderFolder.hIRPrintingPasses.hInlineAsm.hInstIterator.hInstVisitor.hInstrTypes.hInstruction.defInstruction.hInstructions.hIntrinsicEnums.incIntrinsicImpl.incIntrinsicInst.hIntrinsics.hIntrinsics.tdIntrinsicsAArch64.hIntrinsicsAArch64.tdIntrinsicsAMDGPU.hIntrinsicsAMDGPU.tdIntrinsicsARM.hIntrinsicsARM.tdIntrinsicsBPF.hIntrinsicsBPF.tdIntrinsicsHexagon.hIntrinsicsHexagon.tdIntrinsicsHexagonDep.tdIntrinsicsMips.hIntrinsicsMips.tdIntrinsicsNVPTX.hIntrinsicsNVVM.tdIntrinsicsPowerPC.hIntrinsicsPowerPC.tdIntrinsicsR600.hIntrinsicsRISCV.hIntrinsicsRISCV.tdIntrinsicsS390.hIntrinsicsSystemZ.tdIntrinsicsWebAssembly.hIntrinsicsWebAssembly.tdIntrinsicsX86.hIntrinsicsX86.tdIntrinsicsXCore.hIntrinsicsXCore.tdLLVMContext.hLLVMRemarkStreamer.hLegacyPassManager.hLegacyPassManagers.hLegacyPassNameParser.hMDBuilder.hMangler.hMatrixBuilder.hMetadata.defMetadata.hModule.hModuleSlotTracker.hModuleSummaryIndex.hModuleSummaryIndexYAML.hNoFolder.hOperandTraits.hOperator.hOptBisect.hPassInstrumentation.hPassManager.hPassManagerImpl.hPassManagerInternal.hPassTimingInfo.hPatternMatch.hPredIteratorCache.hProfileSummary.hRuntimeLibcalls.defSafepointIRVerifier.hStatepoint.hSymbolTableListTraits.hTrackingMDRef.hType.hTypeFinder.hUse.hUseListOrder.hUser.hVPIntrinsics.defValue.defValue.hValueHandle.hValueMap.hValueSymbolTable.hVerifier.hIRReaderIRReader.hInitializePasses.hLTOCaching.hConfig.hLTO.hLTOBackend.hSummaryBasedOptimizations.hlegacyLTOCodeGenerator.hLTOModule.hThinLTOCodeGenerator.hUpdateCompilerUsed.hLineEditorLineEditor.hLinkAllIR.hLinkAllPasses.hLinkerIRMover.hLinker.hMCConstantPools.hLaneBitmask.hMCAsmBackend.hMCAsmInfo.hMCAsmInfoCOFF.hMCAsmInfoDarwin.hMCAsmInfoELF.hMCAsmInfoWasm.hMCAsmInfoXCOFF.hMCAsmLayout.hMCAsmMacro.hMCAssembler.hMCCodeEmitter.hMCCodeView.hMCContext.hMCDirectives.hMCDisassemblerMCDisassembler.hMCExternalSymbolizer.hMCRelocationInfo.hMCSymbolizer.hMCDwarf.hMCELFObjectWriter.hMCELFStreamer.hMCExpr.hMCFixedLenDisassembler.hMCFixup.hMCFixupKindInfo.hMCFragment.hMCInst.hMCInstBuilder.hMCInstPrinter.hMCInstrAnalysis.hMCInstrDesc.hMCInstrInfo.hMCInstrItineraries.hMCLabel.hMCLinkerOptimizationHint.hMCMachObjectWriter.hMCObjectFileInfo.hMCObjectStreamer.hMCObjectWriter.hMCParserAsmCond.hAsmLexer.hMCAsmLexer.hMCAsmParser.hMCAsmParserExtension.hMCAsmParserUtils.hMCParsedAsmOperand.hMCTargetAsmParser.hMCRegister.hMCRegisterInfo.hMCSchedule.hMCSection.hMCSectionCOFF.hMCSectionELF.hMCSectionMachO.hMCSectionWasm.hMCSectionXCOFF.hMCStreamer.hMCSubtargetInfo.hMCSymbol.hMCSymbolCOFF.hMCSymbolELF.hMCSymbolMachO.hMCSymbolWasm.hMCSymbolXCOFF.hMCTargetOptions.hMCTargetOptionsCommandFlags.hMCValue.hMCWasmObjectWriter.hMCWasmStreamer.hMCWin64EH.hMCWinCOFFObjectWriter.hMCWinCOFFStreamer.hMCWinEH.hMCXCOFFObjectWriter.hMCXCOFFStreamer.hMachineLocation.hSectionKind.hStringTableBuilder.hSubtargetFeature.hMCACodeEmitter.hContext.hHWEventListener.hHardwareUnitsHardwareUnit.hLSUnit.hRegisterFile.hResourceManager.hRetireControlUnit.hScheduler.hInstrBuilder.hInstruction.hPipeline.hSourceMgr.hStagesDispatchStage.hEntryStage.hExecuteStage.hInstructionTables.hMicroOpQueueStage.hRetireStage.hStage.hSupport.hObjectArchive.hArchiveWriter.hBinary.hCOFF.hCOFFImportFile.hCOFFModuleDefinition.hCVDebugRecord.hDecompressor.hELF.hELFObjectFile.hELFTypes.hError.hIRObjectFile.hIRSymtab.hMachO.hMachOUniversal.hMinidump.hModuleSymbolTable.hObjectFile.hRelocationResolver.hStackMapParser.hSymbolSize.hSymbolicFile.hTapiFile.hTapiUniversal.hWasm.hWasmTraits.hWindowsMachineFlag.hWindowsResource.hXCOFFObjectFile.hObjectYAMLCOFFYAML.hCodeViewYAMLDebugSections.hCodeViewYAMLSymbols.hCodeViewYAMLTypeHashing.hCodeViewYAMLTypes.hDWARFEmitter.hDWARFYAML.hELFYAML.hMachOYAML.hMinidumpYAML.hObjectYAML.hWasmYAML.hXCOFFYAML.hYAML.hyaml2obj.hOptionArg.hArgList.hOptParser.tdOptSpecifier.hOptTable.hOption.hPass.hPassAnalysisSupport.hPassInfo.hPassRegistry.hPassSupport.hPassesPassBuilder.hPassPlugin.hStandardInstrumentations.hProfileDataCoverageCoverageMapping.hCoverageMappingReader.hCoverageMappingWriter.hGCOV.hInstrProf.hInstrProfData.incInstrProfReader.hInstrProfWriter.hProfileCommon.hSampleProf.hSampleProfReader.hSampleProfWriter.hRemarksBitstreamRemarkContainer.hBitstreamRemarkParser.hBitstreamRemarkSerializer.hRemark.hRemarkFormat.hRemarkLinker.hRemarkParser.hRemarkSerializer.hRemarkStreamer.hRemarkStringTable.hYAMLRemarkSerializer.hSupportAArch64TargetParser.defAArch64TargetParser.hAMDGPUMetadata.hAMDHSAKernelDescriptor.hARMAttributeParser.hARMBuildAttributes.hARMEHABI.hARMTargetParser.defARMTargetParser.hARMWinEH.hAlignOf.hAlignment.hAllocator.hAllocatorBase.hArrayRecycler.hAtomic.hAtomicOrdering.hAutomaton.hBase64.hBinaryByteStream.hBinaryItemStream.hBinaryStream.hBinaryStreamArray.hBinaryStreamError.hBinaryStreamReader.hBinaryStreamRef.hBinaryStreamWriter.hBlockFrequency.hBranchProbability.hBuryPointer.hCBindingWrapping.hCFGDiff.hCFGUpdate.hCOM.hCRC.hCachePruning.hCapacity.hCasting.hCheckedArithmetic.hChrono.hCodeGen.hCodeGenCoverage.hCommandLine.hCompiler.hCompression.hConvertUTF.hCrashRecoveryContext.hDJB.hDOTGraphTraits.hDataExtractor.hDataTypes.hDebug.hDebugCounter.hDynamicLibrary.hELFAttributeParser.hELFAttributes.hEndian.hEndianStream.hErrc.hErrno.hError.hErrorHandling.hErrorOr.hExtensibleRTTI.hExtension.defFileCheck.hFileCollector.hFileOutputBuffer.hFileSystem.hFileUtilities.hFormat.hFormatAdapters.hFormatCommon.hFormatProviders.hFormatVariadic.hFormatVariadicDetails.hFormattedStream.hGenericDomTree.hGenericDomTreeConstruction.hGenericIteratedDominanceFrontier.hGlobPattern.hGraphWriter.hHost.hInitLLVM.hItaniumManglingCanonicalizer.hJSON.hKnownBits.hLEB128.hLICENSE.TXTLineIterator.hLocale.hLockFileManager.hLowLevelTypeImpl.hMD5.hMSVCErrorWorkarounds.hMachineValueType.hManagedStatic.hMathExtras.hMemAlloc.hMemory.hMemoryBuffer.hMipsABIFlags.hMutex.hNativeFormatting.hOnDiskHashTable.hOptimizedStructLayout.hParallel.hPath.hPluginLoader.hPointerLikeTypeTraits.hPrettyStackTrace.hPrintable.hProcess.hProgram.hRISCVAttributeParser.hRISCVAttributes.hRISCVTargetParser.defRWMutex.hRandomNumberGenerator.hRecycler.hRecyclingAllocator.hRegex.hRegistry.hReverseIteration.hSHA1.hSMLoc.hSMTAPI.hSaveAndRestore.hScaledNumber.hScopedPrinter.hSignals.hSignposts.hSmallVectorMemoryBuffer.hSolarissysregset.hSourceMgr.hSpecialCaseList.hStringSaver.hSuffixTree.hSwapByteOrder.hSymbolRemappingReader.hSystemUtils.hTarWriter.hTargetOpcodes.defTargetParser.hTargetRegistry.hTargetSelect.hTaskQueue.hThreadLocal.hThreadPool.hThreading.hTimeProfiler.hTimer.hToolOutputFile.hTrailingObjects.hTrigramIndex.hTypeName.hTypeSize.hUnicode.hUnicodeCharRanges.hVCSRevision.hValgrind.hVersionTuple.hVirtualFileSystem.hWatchdog.hWin64EH.hWindowsWindowsSupport.hWindowsError.hWithColor.hX86DisassemblerDecoderCommon.hX86TargetParser.defX86TargetParser.hYAMLParser.hYAMLTraits.hcircular_raw_ostream.hraw_os_ostream.hraw_ostream.hraw_sha1_ostream.hthread.htype_traits.hxxhash.hTableGenAutomaton.tdError.hMain.hRecord.hSearchableTable.tdSetTheory.hStringMatcher.hStringToOffsetTable.hTableGenBackend.hTargetCodeGenCWrappers.hGenericOpcodes.tdGlobalISelCombine.tdRegisterBank.tdSelectionDAGCompat.tdTarget.tdTarget.tdTargetCallingConv.tdTargetInstrPredicate.tdTargetIntrinsicInfo.hTargetItinerary.tdTargetLoweringObjectFile.hTargetMachine.hTargetOptions.hTargetPfmCounters.tdTargetSchedule.tdTargetSelectionDAG.tdTestingSupportAnnotations.hError.hSupportHelpers.hTextAPIELFELFStub.hTBEHandler.hMachOArchitecture.defArchitecture.hArchitectureSet.hInterfaceFile.hPackedVersion.hPlatform.hSymbol.hTarget.hTextAPIReader.hTextAPIWriter.hToolDriversllvm-dlltoolDlltoolDriver.hllvm-libLibDriver.hTransformsAggressiveInstCombineAggressiveInstCombine.hCFGuard.hCoroutinesCoroutines.hCoroCleanup.hCoroEarly.hCoroElide.hCoroSplit.hIPOIPO.hAlwaysInliner.hArgumentPromotion.hAttributor.hCalledValuePropagation.hConstantMerge.hCrossDSOCFI.hDeadArgumentElimination.hElimAvailExtern.hForceFunctionAttrs.hFunctionAttrs.hFunctionImport.hGlobalDCE.hGlobalOpt.hGlobalSplit.hHotColdSplitting.hInferFunctionAttrs.hInliner.hInternalize.hLowerTypeTests.hMergeFunctions.hOpenMPOpt.hPartialInlining.hPassManagerBuilder.hSCCP.hSampleProfile.hStripDeadPrototypes.hSyntheticCountsPropagation.hThinLTOBitcodeWriter.hWholeProgramDevirt.hInstCombineInstCombine.hInstCombineWorklist.hInstrumentationInstrumentation.hAddressSanitizer.hAddressSanitizerCommon.hBoundsChecking.hCGProfile.hControlHeightReduction.hGCOVProfiler.hHWAddressSanitizer.hInstrOrderFile.hInstrProfiling.hMemorySanitizer.hPGOInstrumentation.hPoisonChecking.hSanitizerCoverage.hThreadSanitizer.hObjCARC.hScalarScalar.hADCE.hAlignmentFromAssumptions.hBDCE.hCallSiteSplitting.hConstantHoisting.hCorrelatedValuePropagation.hDCE.hDeadStoreElimination.hDivRemPairs.hEarlyCSE.hFloat2Int.hGVN.hGVNExpression.hGuardWidening.hIVUsersPrinter.hIndVarSimplify.hInductiveRangeCheckElimination.hInstSimplifyPass.hJumpThreading.hLICM.hLoopAccessAnalysisPrinter.hLoopDataPrefetch.hLoopDeletion.hLoopDistribute.hLoopFuse.hLoopIdiomRecognize.hLoopInstSimplify.hLoopLoadElimination.hLoopPassManager.hLoopPredication.hLoopRotation.hLoopSimplifyCFG.hLoopSink.hLoopStrengthReduce.hLoopUnrollAndJamPass.hLoopUnrollPass.hLowerAtomic.hLowerConstantIntrinsics.hLowerExpectIntrinsic.hLowerGuardIntrinsic.hLowerMatrixIntrinsics.hLowerWidenableCondition.hMakeGuardsExplicit.hMemCpyOptimizer.hMergeICmps.hMergedLoadStoreMotion.hNaryReassociate.hNewGVN.hPartiallyInlineLibCalls.hReassociate.hRewriteStatepointsForGC.hSCCP.hSROA.hScalarizer.hSimpleLoopUnswitch.hSimplifyCFG.hSink.hSpeculateAroundPHIs.hSpeculativeExecution.hTailRecursionElimination.hWarnMissedTransforms.hUtilsUtils.hAMDGPUEmitPrintf.hASanStackFrameLayout.hAddDiscriminators.hAssumeBundleBuilder.hBasicBlockUtils.hBreakCriticalEdges.hBuildLibCalls.hBypassSlowDivision.hCallGraphUpdater.hCallPromotionUtils.hCanonicalizeAliases.hCanonicalizeFreezeInLoops.hCloning.hCodeExtractor.hCodeMoverUtils.hCtorUtils.hDebugify.hEntryExitInstrumenter.hEscapeEnumerator.hEvaluator.hFunctionComparator.hFunctionImportUtils.hGlobalStatus.hGuardUtils.hImportedFunctionsInliningStatistics.hInjectTLIMappings.hIntegerDivision.hLCSSA.hLibCallsShrinkWrap.hLocal.hLoopRotationUtils.hLoopSimplify.hLoopUtils.hLoopVersioning.hLowerInvoke.hLowerMemIntrinsics.hMem2Reg.hMisExpect.hModuleUtils.hNameAnonGlobals.hPredicateInfo.hPromoteMemToReg.hSSAUpdater.hSSAUpdaterBulk.hSSAUpdaterImpl.hSanitizerStats.hScalarEvolutionExpander.hSimplifyIndVar.hSimplifyLibCalls.hSizeOpts.hSplitModule.hSymbolRewriter.hUnifyFunctionExitNodes.hUniqueInternalLinkageNames.hUnrollLoop.hVNCoercion.hValueMapper.hVectorizeVectorize.hLoadStoreVectorizer.hLoopVectorizationLegality.hLoopVectorize.hSLPVectorizer.hVectorCombine.hWindowsManifestWindowsManifestMerger.hWindowsResourceResourceProcessor.hResourceScriptToken.hResourceScriptTokenList.hXRayBlockIndexer.hBlockPrinter.hBlockVerifier.hFDRLogBuilder.hFDRRecordConsumer.hFDRRecordProducer.hFDRRecords.hFDRTraceExpander.hFDRTraceWriter.hFileHeaderReader.hGraph.hInstrumentationMap.hProfile.hRecordPrinter.hTrace.hXRayRecord.hYAMLXRayRecord.hmacros.llvmllvmAddLLVM.cmakeAddLLVMDefinitions.cmakeAddOCaml.cmakeAddSphinxTarget.cmakeCheckAtomic.cmakeCheckCompilerVersion.cmakeCheckLinkerFlag.cmakeChooseMSVCCRT.cmakeCrossCompile.cmakeDetermineGCCCompatible.cmakeFindGRPC.cmakeFindLibpfm.cmakeFindOCaml.cmakeFindSphinx.cmakeFindZ3.cmakeGenerateVersionFromVCS.cmakeHandleLLVMOptions.cmakeHandleLLVMStdlib.cmakeLLVM-Config.cmakeLLVMConfig.cmakeLLVMConfigExtensions.cmakeLLVMConfigVersion.cmakeLLVMDistributionSupport.cmakeLLVMExports-relwithdebinfo.cmakeLLVMExports.cmakeLLVMExternalProjectUtils.cmakeLLVMInstallSymlink.cmakeLLVMProcessSources.cmakeTableGen.cmakeTensorFlowCompile.cmakeUseLibtool.cmakeVersionFromVCS.cmakelibLLVM.solibLLVMTableGen.solibRemarks.sollvm11-develCREDITS.TXTLICENSE.TXTllvm-config.1.gz/usr/bin//usr/include//usr/include/llvm-c//usr/include/llvm-c/Transforms//usr/include/llvm//usr/include/llvm/ADT//usr/include/llvm/Analysis//usr/include/llvm/Analysis/Utils//usr/include/llvm/AsmParser//usr/include/llvm/BinaryFormat//usr/include/llvm/BinaryFormat/ELFRelocs//usr/include/llvm/Bitcode//usr/include/llvm/Bitstream//usr/include/llvm/CodeGen//usr/include/llvm/CodeGen/GlobalISel//usr/include/llvm/CodeGen/MIRParser//usr/include/llvm/CodeGen/PBQP//usr/include/llvm/Config//usr/include/llvm/DWARFLinker//usr/include/llvm/DebugInfo//usr/include/llvm/DebugInfo/CodeView//usr/include/llvm/DebugInfo/DWARF//usr/include/llvm/DebugInfo/GSYM//usr/include/llvm/DebugInfo/MSF//usr/include/llvm/DebugInfo/PDB//usr/include/llvm/DebugInfo/PDB/DIA//usr/include/llvm/DebugInfo/PDB/Native//usr/include/llvm/DebugInfo/Symbolize//usr/include/llvm/Demangle//usr/include/llvm/ExecutionEngine//usr/include/llvm/ExecutionEngine/JITLink//usr/include/llvm/ExecutionEngine/Orc//usr/include/llvm/ExecutionEngine/Orc/RPC//usr/include/llvm/Frontend//usr/include/llvm/Frontend/Directive//usr/include/llvm/Frontend/OpenACC//usr/include/llvm/Frontend/OpenMP//usr/include/llvm/FuzzMutate//usr/include/llvm/IR//usr/include/llvm/IRReader//usr/include/llvm/LTO//usr/include/llvm/LTO/legacy//usr/include/llvm/LineEditor//usr/include/llvm/Linker//usr/include/llvm/MC//usr/include/llvm/MC/MCDisassembler//usr/include/llvm/MC/MCParser//usr/include/llvm/MCA//usr/include/llvm/MCA/HardwareUnits//usr/include/llvm/MCA/Stages//usr/include/llvm/Object//usr/include/llvm/ObjectYAML//usr/include/llvm/Option//usr/include/llvm/Passes//usr/include/llvm/ProfileData//usr/include/llvm/ProfileData/Coverage//usr/include/llvm/Remarks//usr/include/llvm/Support//usr/include/llvm/Support/Solaris//usr/include/llvm/Support/Solaris/sys//usr/include/llvm/Support/Windows//usr/include/llvm/TableGen//usr/include/llvm/Target//usr/include/llvm/Target/GlobalISel//usr/include/llvm/Testing//usr/include/llvm/Testing/Support//usr/include/llvm/TextAPI//usr/include/llvm/TextAPI/ELF//usr/include/llvm/TextAPI/MachO//usr/include/llvm/ToolDrivers//usr/include/llvm/ToolDrivers/llvm-dlltool//usr/include/llvm/ToolDrivers/llvm-lib//usr/include/llvm/Transforms//usr/include/llvm/Transforms/AggressiveInstCombine//usr/include/llvm/Transforms/Coroutines//usr/include/llvm/Transforms/IPO//usr/include/llvm/Transforms/InstCombine//usr/include/llvm/Transforms/Instrumentation//usr/include/llvm/Transforms/Scalar//usr/include/llvm/Transforms/Utils//usr/include/llvm/Transforms/Vectorize//usr/include/llvm/WindowsManifest//usr/include/llvm/WindowsResource//usr/include/llvm/XRay//usr/lib/rpm/macros.d//usr/lib64/cmake//usr/lib64/cmake/llvm//usr/lib64//usr/lib64//usr/share/licenses//usr/share/licenses/llvm11-devel//usr/share/man/man1/-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:27474/SUSE_SLE-15-SP3_Update/2d7c218d74313ecc216ae83ecedad511-llvm11.SUSE_SLE-15-SP3_Updatedrpmxz5aarch64-suse-linux  ELF 64-bit LSB executable, ARM aarch64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-aarch64.so.1, for GNU/Linux 3.7.0, BuildID[sha1]=84753418e19131e9b2f70e7b03f25622ad8ae4c3, strippeddirectoryC source, ASCII textC++ source, ASCII textASCII textC++ source, UTF-8 Unicode textC source, ASCII text, with very long linesASCII text, with very long linesASCII text, with no line terminatorstroff or preprocessor input, ASCII text (gzip compressed data, max compression, from Unix)  RRRR RRR R R RR RRPPPPrGq0Ē5C/Âutf-874f2d12afa3bdd09039f7933bff61ae88f8d10d08d45fd8a082405ef45a9ecb3?7zXZ !t/6q%<]"k%n"ËԓT0>T @S{Q-\`ҭ͊;sd&C%8:{͢xa; L(+NԀ {dD !#E7?MaeH'~'MEƪ:y'*?B=]lH PWG}jF(r sÁ7s}mspB%2 xRNu) &{fUzp=HSm KO"tȠD 0iRs% {$G:7,֟YL^/P̺ &hkɞ7z훹r> 4i)FޗuJfjrm x*, DvK/vG@"bYFE=,XLdtN;cUT`t8P[7DxH8#Yg^4Lu3IC1vڼ:Қ7N)fbUt~\<jw!V*+|~g$6{CeрX>x,5s(~\E4ֽAϸ1ZE⛗=k2>=)AE~OD1윬֏' 0Ȯ;Xsǭڑ+`c[2bn.Y6A]pNlsPCKHҿ P5'@h.i;nҏ{,"S~!Ehc(5%ۓ(CabB"vI @Q|K%x\ ;ez(iZi@8- k!{2*n\F>+ SWSh픈 Gi>p.I 06tr{.UƸ6r쒬H_2Wsy2ΧxY&fXIG߾h?bF8[j2u6%QnP"0^6gYˈob2Е# +JInbG5굄׵*kx;Ai{9IcW6RUKyck__Kk'_ u{.u)zJ4VxD{Q> zk:)Dl'?41dOq#6-)PC)ԛT+Vg1|xtÜzLzHHT*rZa D81O!֧!vfcWw!R.rǭqN9Gi几jbAi%Z9PƧr =/o^Ye#jɏ|=Hav|5sD}3-t~t o[Vw(=EEf}UԟReP S 6u|9f4t{K {{!%D􎇎Wp..S}AAQ&-XΑQO;J)OS\wM(n7}c<{)+X H3SNCύd9os-CWG4̣[H8|3O=1ҮQ"D@ֽX[Ɛ((s,6Oq3`ǚ6֪$\G_JabyH/\Gd cdʎ$İ\k9܌a[Va2Cnzf Y 0 eɣߣ3_dǿ^ӭK^{~-: וɝu<d"B,ym, k;Sd;.#]tMrлz._݅`)t2kFRQ6?wոn H_zT [%}%9j@>1jxknwnG ӴD){AAhA'*|q\Pz߯}Sh=i_ٲR a/s"zW HFDyVܷº"w[p9a468DBS8I?>fFuŜ9 =pf#{Xf ᮽ4Ia} !dOe-W/CwsV!Lлd¦1ZS$Zo6aūҽH +ЈU62Tơ2? #^&]p1=5Qᄆ3ԠP<1Dtdx.:Ҩ*ze Hs}T=S9وx]s{ҏKbu k[h(;tJ4s#  o9՞OG 5VXgo͸Hd4P o>y^Ct#L! y r l3]~I^~aW'˜btDW:N~:ΔQyqY5ߖ_*kG_ 9SB 0V,JQxY%OĶ]?7i--);b2(pα0*Ҟ"hoL G8Q7C{,8r7q2 19#K)%̡3gd]Ѳ >]k,^@<~~# m6Lִllnen}-lt[`nۢYz1L{ohxKڰ3LҚ(0z #kEóN[KEwKϔMX6zD|Cp[7۽ڊ;qI95b[F-=I˞ߖ༨R"Q#m֪70~z<7[tU"=0D[3dĿX ߳o0 FH]& &x9u8zkKniؖb~&uQv/}UrOJmJDUT2 c*zӦdhq.? g2JqRpm왌vLǏ]٨q+!e9JW=|sXq׼v GSq>z@#q/`Qt Ƅ>G?^ڰM?4v`/{j:TVNB{0`E= H 6E} xdHigDfdtX94i_!<ِ HL9Φvw~$gNđP$wj(F, $Nmb;ehEyѝ]* !JsK~b8 Y2/hֻ4TB0vYN٬ Gclmg{Ԟ/ a>fp8{ٷ@*ڡoGmaDS(7s,tO`vf4ddLE @ ApaF=hL%7$Gxh®C6ly (T;)Y Hwq޿`qYK:BS>cg@jWbf#NJ(7Ϫ֊ ?XnN&Sc~e8󦗸ѷ< ! ԍ:ItZHMʅ ㅗA|P:d3Yў 5!NbOka)腏 fwySL2#|#M_TëSEޅPdI꤇FEs]rA 57zEPkhyL%_,R̠*ۏ2و|}fo BPچ J n (\mqo[^}0:f!;Qou[1$tO͑6 32ϫ6DM(āIiQL`2g;^n^4cUQ<*?;#l!To?S#pK;}(qIsyQp1C#Iw3~BiA.#W@ $I~t8 5>7lޏcg^KiIFO> m3?ұ)jlYV+kӻA#Wx䃁>Mެ@tW@B':,křW; =Ke3f-/'e}sVh;tTΏHt|=K-06_=l1 `Oa.8{`u#|KCv5_4դ[8r\g2 Jq#ëׇ#6K+HZچ7.US=Yw,;m 0HO\^AZC) CUC,*$G5͒am5"]#XE~'<0=Ӵ@}fE\ {yg?j?ח;d35z؁%z~|GƸB5FT*fQ;%1]Ш[o M5f34T!v+X4 6x<ıުL(Fd [#x1gs^?C[,]6ـ4 Znf:M=EYVBd"8Hv9ifV臸X&g[ǶF dbf0c,ꄰё;98uQO/'`G^>S̴VFb*a,%5h>((6ϵc_ StmL"Whi* 2 G ) bz'u4Q$'/ᯀFFga]xϽ'Hh3Fi&쒂9#>#/_TvT}|vua{Pi9d)pf AIr-V \kngIjgzMQx_hGllRDDK7K $H'lb-+{o.r߷K#6a 3#g%0Ӆ}O-ܭE^qpd@sհOJ@Q}BBax6@&kr}8?en4 RK9@l`fl[ŏ!: )>PL5FJ!U2#LSh0ɀ8]WEtKF,.*J|Ù%(4uҰUCn|_x2ƱZv-}6A!5>lax zDPJFHhv1\<xAռh:ت.vtH}^[E[" Zpnpl u};BEF,?~'|/L)#RĐZQHۥC9ȋLm [Oe2Nj_,jzrFuz%й΍P ${ԙỨ$boE@03溳i:׻!E5.O+'٤'ŀRndu<>e=rd̛Hإ ߘWԑ˪|7i7r<0=l;6ν=Vr]6O*@Q#Qflu].&H$WqͶ8JlDa& YZ