From eb4b1716aae8c0187f0f057463a2117e9cdb38c7 Mon Sep 17 00:00:00 2001 From: Adam Sawicki Date: Mon, 20 May 2019 13:46:23 +0200 Subject: [PATCH] Prepare initial release --- .gitignore | 2 + CHANGELOG.md | 3 + LICENSE.txt | 19 + NOTICES.txt | 82 + README.md | 107 +- bin/D3D12Sample_Release_vs2019.exe | Bin 0 -> 85504 bytes premake/LICENSE.txt | 27 + premake/premake5.exe | Bin 0 -> 1362432 bytes premake/premake5.lua | 50 + src/Common.cpp | 176 ++ src/Common.h | 380 +++ src/D3D12MemAlloc.cpp | 3122 ++++++++++++++++++++++++ src/D3D12MemAlloc.h | 603 +++++ src/D3D12MemAlloc.natvis | 27 + src/D3D12Sample.cpp | 1501 ++++++++++++ src/Doxyfile | 2492 +++++++++++++++++++ src/Shaders/FxBatchCompilerScript.fxbc | 19 + src/Shaders/PS.hlsl | 40 + src/Shaders/PS_Compiled.h | 203 ++ src/Shaders/VS.hlsl | 46 + src/Shaders/VS_Compiled.h | 220 ++ src/Tests.cpp | 548 +++++ src/Tests.h | 33 + 23 files changed, 9698 insertions(+), 2 deletions(-) create mode 100644 .gitignore create mode 100644 CHANGELOG.md create mode 100644 LICENSE.txt create mode 100644 NOTICES.txt create mode 100644 bin/D3D12Sample_Release_vs2019.exe create mode 100644 premake/LICENSE.txt create mode 100644 premake/premake5.exe create mode 100644 premake/premake5.lua create mode 100644 src/Common.cpp create mode 100644 src/Common.h create mode 100644 src/D3D12MemAlloc.cpp create mode 100644 src/D3D12MemAlloc.h create mode 100644 src/D3D12MemAlloc.natvis create mode 100644 src/D3D12Sample.cpp create mode 100644 src/Doxyfile create mode 100644 src/Shaders/FxBatchCompilerScript.fxbc create mode 100644 src/Shaders/PS.hlsl create mode 100644 src/Shaders/PS_Compiled.h create mode 100644 src/Shaders/VS.hlsl create mode 100644 src/Shaders/VS_Compiled.h create mode 100644 src/Tests.cpp create mode 100644 src/Tests.h diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..d01ec3a --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +build/ +docs/html/ diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..65a9473 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,3 @@ +# 1.0.0 (2019-07-23) + +First published version. diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..abf6d9e --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,19 @@ +Copyright (c) 2019 Advanced Micro Devices, Inc. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/NOTICES.txt b/NOTICES.txt new file mode 100644 index 0000000..7b28535 --- /dev/null +++ b/NOTICES.txt @@ -0,0 +1,82 @@ +Notices and licenses file +_________________________ + +AMD copyrighted code (MIT) +Copyright (c) 2019 Advanced Micro Devices, Inc. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation +files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, +modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the +Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE +WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + +Dependecnies on microsoft-directx-graphics-samples v-u (MIT) + +Copyright (c) 2019 Advanced Micro Devices, Inc. All rights reserved. +Copyright (c) Microsoft. All rights reserved. + +This code is licensed under the MIT License (MIT). +THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF +ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY +IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR +PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT. + + +gpuopen-librariesandsdks-vulkanmemoryallocator v-u (MIT) +Copyright (c) 2019 Advanced Micro Devices, Inc. All rights reserved. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + + +premake-premake-core v-u (BSD3) +Copyright (c) 2003-2016 Jason Perkins and individual contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + 3. Neither the name of Premake nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/README.md b/README.md index e5fabb4..0d4f810 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,106 @@ -# Direct3D 12 Memory Allocator +# D3D12 Memory Allocator -Easy to integrate Direct3D 12 memory allocation library \ No newline at end of file +Easy to integrate memory allocation library for Direct3D 12. + +**License:** MIT. See [LICENSE.txt](LICENSE.txt) + +**Changelog:** See [CHANGELOG.md](CHANGELOG.md) + +**Product page:** [Vulkan Memory Allocator on GPUOpen](https://gpuopen.com/gaming-product/D3D12MemoryAllocator/) (TODO) + +**Build status:** + +TODO + +# Problem + +Memory allocation and resource (buffer and texture) creation in new, explicit graphics APIs (Vulkan and Direct3D 12) is difficult comparing to older graphics APIs like Direct3D 11 or OpenGL because it is recommended to allocate bigger blocks of memory and assign parts of them to resources. [Vulkan Memory Allocator](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/) is a library that implements this functionality for Vulkan. It is available online since 2017 and it is successfully used in many software projects, including some AAA game studios. This is an equivalent library for D3D12. + +# Features + +This library can help developers to manage memory allocations and resource creation by offering function `Allocator::CreateResource` similar to the standard `ID3D12Device::CreateCommittedResource`. It internally: + +- Allocates and keeps track of bigger memory heaps, used and unused ranges inside them, finds best matching unused ranges to create new resources there as placed resources. +- Automatically respects aligment requirements for created resources. +- Automatically handles resource heap tier - whether it's `D3D12_RESOURCE_HEAP_TIER_1` that requires to keep certain classes of resources separate or `D3D12_RESOURCE_HEAP_TIER_2` that allows to keep them all together. + +Additional features: + +- Well-documented - description of all classes and functions provided, along with chapters that contain general description and example code. +- Thread-safety: Library is designed to be used in multithreaded code. +- Configuration: Fill optional members of `ALLOCATOR_DESC` structure to provide custom CPU memory allocator and other parameters. +- Customization: Predefine appropriate macros to provide your own implementation of external facilities used by the library, like assert, mutex, and atomic. + +# Prequisites + +- Self-contained C++ library in single pair of H + CPP files. No external dependencies other than standard C, C++ library and Windows SDK. STL containers, C++ exceptions, and RTTI are not used. +- Object-oriented interface in a convention similar to D3D12. +- Error handling implemented by returning `HRESULT` error codes - same way as in D3D12. +- Interface documented using Doxygen-style comments. + +# Example + +Basic usage of this library is very simple. Advanced features are optional. After you created global `Allocator` object, a complete code needed to create a texture may look like this: + +```cpp +D3D12_RESOURCE_DESC resourceDesc = {}; +resourceDesc.Dimension = D3D12_RESOURCE_DIMENSION_TEXTURE2D; +resourceDesc.Alignment = 0; +resourceDesc.Width = 1024; +resourceDesc.Height = 1024; +resourceDesc.DepthOrArraySize = 1; +resourceDesc.MipLevels = 1; +resourceDesc.Format = DXGI_FORMAT_R8G8B8A8_UNORM; +resourceDesc.SampleDesc.Count = 1; +resourceDesc.SampleDesc.Quality = 0; +resourceDesc.Layout = D3D12_TEXTURE_LAYOUT_UNKNOWN; +resourceDesc.Flags = D3D12_RESOURCE_FLAG_NONE; + +D3D12MA::ALLOCATION_DESC allocationDesc = {}; +allocDesc.HeapType = D3D12_HEAP_TYPE_DEFAULT; + +D3D12Resource* resource; +D3D12MA::Allocation* allocation; +HRESULT hr = allocator->CreateResource( + &allocationDesc, + &resourceDesc, + D3D12_RESOURCE_STATE_COPY_DEST, + NULL, + &allocation, + IID_PPV_ARGS(&resource)); +``` + +With this one function call: + +1. `ID3D12Heap` memory block is allocated if needed. +2. An unused region of the memory block assigned. +3. `ID3D12Resource` is created as placed resource, bound to this region. + +`Allocation` is an object that represents memory assigned to this texture. It can be queried for parameters like offset and size. + +# Documentation + +Documentation is provided together with the library in form of Doxygen-style comments inside the code, in file "src/D3D12MemAlloc.h". They can be read directly or turned into HTML and other convenient to read formats. Unfortunately we can't provide pregenerated version browseable online. You can generate it on your own by following these steps: + +1. Install [Doxygen](http://www.doxygen.nl/). +2. Open command line and enter "src" directory. +3. Type command: `doxygen` +4. Open following file in a web browser: "docs/html/index.html". + +# Copyright notice + +This software package uses third party software: + +- Parts of the code of [Vulkan Memory Allocator](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/) by AMD, license: MIT +- Parts of the code of [DirectX-Graphics-Samples](https://github.com/microsoft/DirectX-Graphics-Samples) by Microsoft, license: MIT +- [Premake 5](https://premake.github.io/) binary, license: BSD + +For more information see [NOTICES.txt](NOTICES.txt). + +# Software using this library + +Place for the link to your project :) + +# See also + +- **[Vulkan Memory Allocator](https://github.com/GPUOpen-LibrariesAndSDKs/VulkanMemoryAllocator/)** - equivalent library for Vulkan. License: MIT. diff --git a/bin/D3D12Sample_Release_vs2019.exe b/bin/D3D12Sample_Release_vs2019.exe new file mode 100644 index 0000000000000000000000000000000000000000..e063ec615a135f0a83fafc49a4f9bc22103b50fa GIT binary patch literal 85504 zcmd?Sdtg+>`S8CXSqPB0ixQ3ZRoA*SUQ(kr7^%CEm9x0f$jx{`V^PG48bhK%MT48I ztcTO4RxP!*($==TRx4JjL7^sq*>IDKw|I}O)q_EeS|NDhyq{<0>?WZ0?f3otet-P} zd*=4cGc(UT^UO2P%$ZYlVXG(CiM4^{Uq;q5zj5kVLA zsvj@^?(X+qotOFbJrJ9>i*VDTH=90H?ki1ul>1uKSIT{>={?;07rfT=3GVLqUYj=! zceDAtO5bcAJFj1byPL$FeAUd^f_vYVR7X9Y%YQt~Q}xbiGcsv?o})b@hwNA6`3o@* z>e#&dasA34&JjoaLp+|LDr&&>EFo2h$X~9fc0neSo0nLPB;yF28zWwiad?g=PYP(x z@$`sGX%7yQ6!)(+NA*olZjPre6ZZ{nHAwO$f99{<9Fu9u+Zb#$RFW@CH&a<*h!!eUN z-24l5{;wW#^Ix3F@76z_2@k4I`|+wi>nA=XJtHVn>KN#*WPK z*x}n%eLvRp3~gU2=~kiS-@eSvtNF`&{joWoHR6{)BNY$k8>y*5e;k%6juQ+_nSMT~ zOAT|kVKoG6R>5uO6-fMLF3n5(JZsfaM&`R#@^g-VPxEF<4HYKT+x6QrPFt^r?QFKpm5 z&&!9^uOOe1+-CTqs|S}R?YTIZFVznK_3~qaX19^bF<&(j9n^9hhlv>O0&>u4_2mFsJy9lC8#q&qZ9<7st&=zmZsdT&$$au*BPc zE;Vbzc799(4Q9@?Ndj_Z4_y=jxn>5vu>~ zzsRWBi_gsSiVZVT2XQqP0)f5o>7kKEyzUXw(tTl=ONNSfwiJ=dAxo2CR{ISz)hr{Y zI=_`pDYX|I>G9z6zWu0x4HGup@2SNu8wROKtFRyh2}6)lmk+c292Q;@-oGG}jugv~ zRGfWYz%Vz6v@h2ppOG9AU#a~&iu3tp8laAhhD)1#{_o*AB zv^HASesX)n?2ej!QL{f{+Kg9U3-Zw8J2K3V;lW?rywD%7c+Hpekgd|39Ev8lg?)E- zwzM}4$Lnjc70{$W#O$g{t_%B~==9y)QPJT`ZYBYU#zPHrQn6u0bK<$XBTlE0*zIQ= zJZqSC?+FnzmJj2OOzh5S92%o5dvjxEd#qxOFWE|V$r&3P^ZSxepU`9){)!YKRZU(- z|HjRqGEsTr6`LA=NKR_dP;QvNXeMr!@5oA_@Q_))x!w7*4BxFCiFqMUBN8H39INQ6 z|DNHrBN_a0vm;i~QU9Vyn-B6l9-4NbQE_R0BMrYT&^V&9;>O~}yk$APLr!kj-OtD| zWXM#@$cS7Txnw{n8RpNVLR7F}v|%ogiWs@u46|}ezhQ=p*Oavn=2qk({gTr-JTb30 zr!jX~&YF|=O&57N(4R)?mS7+TVRkYV{G%7mh z*2K*%v5tS_8Ri{=v&yU-l3$gYD?fjXhQ*K^G4j_RQ?|{ps+?G^!2s(pc70})tdFHe z#!3k1ZirPF#Wx%qb2?%|_=@N1AJsGkRzxf`4H)Jv!BFIqHJOrf*Nvx|UCVMJzEKm3 zd$(pqv+@|`+Ub$0%qKNI|9E6{O@5WxW0)6$=3^r@n^DkI95Z*vQ?u>3c{THA9TN4E zc&e#8Zk}#f)ot;ToBdTKANj_F+w8Z7c|0+5C@o+*h^J;2rzfDFLD-c}DKp zfmZXpFAXc!XEgLE#Gh^ z7`?|C*67KG^h)k1b4V&u(EFmq8>uPf%sJ);`v->#S8Q>`jEEldIW1*G=J-a9N6t(_ z_Dl^1>}_7=!);Yb$Jg>A&4doBh32h+SV>y7(m<+~lLS2wTX9%1ByGE4P}_oo+NQ?e zx3=$q|2Nuq$szxJ`#xc4n`af%K$+bP!(16`mbSonOa~VS>nwwmTY}-#ImHd$)LF$M z&_0NhT-`9#isTRzA2Tb!kgthcd`V^$!+8cOMlHI9lIxHKVO>Qxm#g;2##RR!4yZE2 z`I!XzH?h`O;|mE5Es_6_9}c<=ul;Kg&XSzr^8W(A|9^mg+`jnZW=doRlR?DXBI5H* zcUtrvDbzuJ<_s`*q6ztVl*lpED1ZGyA|3WOoYm-VNKxeW*80u+$S~xu$nCiK$^e?U zS)Cs<8Lc_viydUKIf4+wWL?8hBNfT-%|n>f#>`0o4Ut$cleUVSU1d(F7TW#@B}Rr& zEca|fq}nWmeP+I5FfpKFPFEGxIlzoCC65lvAc^H}jaO`|A0`OK^uA<93L>c?Rj7(> ze||{)eK)r2eWT;^ToH~P_L)ZRmehF#G3V^MY;TBuJnj6*H0hPH*L-8pl90pk)bgMZ zOM00pHhS{TxcR;{CCBHFdLpTsP%Kpwa3Zu5y5&RyC$HO^6jjU>BO+rj4Edf|=c`=r z^EWcU8iI9#9$C>448U(0RfQKr5m7n-RWNBIF zYk7_8$N&vjnKu>35{}<@JIWg~f}SqTHSyHt!6v4WxcMikdd%!lb7w2_L+)Pl!`eZW z9ov+dAKIB8UR7PbrhX%t;}z|5CuKWjV|?s+`3?KUWPa`NS24MM*n51Hb(tf@RIHsl zI#$wdSm*hTj-I@@74EZ_(|IxT1=O%6`=JA*p43jrr$iGIvu})yjz_F@U$ttV;hV5V=08?bYW^d) zQPDkjl4x>@={6W+ucv*6!wRUwAFFsp+848~awy8Ecw_G9c*z=RUySy}61LxdLFwBs zs`jnlpCK+1mm#k@c(eWTmuRYcM^#dBCcH*Z?~z}p!*L`k=JJh#L~ux5%zRe*zEosK zWX7d4va7PN@G88*_%h!&5>3UB=mWAFi4`*L;WSxV!9V4Obv<(M5`SX}t38zD=j?#g z)I1BN>orve3Mxn0?AFV%#M;1&HF5JCrX_l$%rTO$HN*z1TkUaScx!aUUi9u5Om9ga zp98(q{Ls?-jSBclYLThK{iCQu#TRprFiPGs%$N0KH$C6z_-9_6g@HB6Z{MgE2~tgz zVxfmxEb6-Ui#8F4D%4epRK4Daizkh<+QRy|>(Em+XPegnlN84+Lz>rB<(mN6&@(sGZ;}oxMdO@1 zB|BMeRs-fBrH~3kF<_+PYUOp&nwT|Db5>e7OO2c?XWg_w`sig;h9pXqJiZs?eNZUD;02 zY9o8gTh=JZn9WsYrxX%ms2b+zKHHn?@vxXpeIhJoo^Kc^{uQ6pZ#B$I{bf7D-`?%moTwfjOP_iK-b*Z}jFR+ndmB&Xu-`^sOFf@MxG}vpsr10BW(l?cZ&Y->e7hsiF3xVnz^oJUBl%ubGi|$ zm|lFtg>lnSl=rp#To~LuD_piNHuj9JhLKJ?Y+SLv{^Q^kY%yWws zMt>|lQOr(EMMnxK3%Fd?0>HC8IX@(x^8>Loiv$4~iVYzYGdDZc)Z|qiX(`t z%i62Vt+I4OOQbQo;}$Cg!yJK)&3FDfy52VmuBd|Y=8K>DZi^!VgmC387>3l^j&%nt zP@5%ZUgyLy9>W}_Y|IGUkTogfFpZh_2Nk@`Dy-w;=CfkyGWUy{qax1aFg7GI8Kx>- z@TG>7wWr6coe?ATBfpUzuP9-pSRSP6Y5N@EOlBIGx%yHTXM|l|&qj*CiJPyZAWe0} zOr2qR*Mrn3TPrQDVK`S=XD?Lz{f=RNUX_};5Gh3KX>4Wilvrv?YotwfK+N+BR(P;E zL{l>#=C@MlWv)K99nzoC4)G(tXjk0we()Q*B6apMR$bLGYf7tO8j3qwdjK?TM9@MX z+*D=m7l9H?RTl?mTbLslXth;lBouMPp44Zg!+w?rs7$r!>9s5q15xv=nwWWnVM0J7 zv8Fh}L>NJuM^fk1tXK@Jk(yqtkj7ItLNDO;bI%U`Ll!Fx?WAGL=Ei^zI(&c4$j*8L^ctcB^AdC3I1fGD)!TjtjT6 z1Z9IuI=)u4HJMgKRn~m`aL`bROf2U3JeI%xLv9$+c0ST``#H!`HE7|OXxTgQ)D;9{ z(y!Y5@eCO~QFF6QAlBW%C4`(-RZ)suN+?#5j`_}F(b^JhCMd2%uRwA+=9Iih$;%A~ z%A+7s@p7Xt!WbOVn;$VZ_vS{-jfq=l51GHeRS>HjduGE3r(@^D(%gn2P6tY^xw3N! zcw**6zp>Shn-8n9;}teDLd^{$mkwzhmgve6MqirKFjj_sSetrbqFPx(hwxP6vhZ7^ z^O|W<{AxtqT0pb5Pv#Lbhxwk!k69C0T)f`0PRsrKgNo_0qW|%G5dAUp%a}Q!3bPUt z&IUXE%M2AWUqnFJ{kv#3W1*?gaIm3w<{Jqo2YXlYHR%@V4p%Ck56 zBf8vW0Vey9a3-7+%STRSOF%U(dhmDBk5ffxevOvoVJWi~d0ZTE?y|veb~6{l^849e zLQnKWbCKdz;rWNI0@H%EU4SXJp8?}vl2w>9{IAWXbuvkZUB1s@>)6nOY&Iq(#p>G) z^X_0bsNjuYk8&3U`*3&W4rv&n1myM^R3RhbrkWG-;E!sziL#wT>%5)6mDb6WpqQj3 zxCIo1nF+cSm%}zRO$w?sdqk>vK^ixsAtm=k=1*ff?Sr{xu1$r?cBbl(KG@t+b;YUb zfDHQyc?mnG;S_lso9NHM$l2Bm!hC+lGqYV^?_q7iXI7KlyMLPudhzAAEz~|E7uoS< z`3z4+7cmBOk)zQjkiW;DWSCWq)%kwmq9YA<6J)H6J*8tV2Bo^3US=WG{9X0`QZPs@ z!`x)Qi1a0LF2>@hEZF;ul08Ppd$}n1utM7Y`3;+Am2{jlSeZMyQCf!${5d;@(%U*fZOu>kv(iWH8S7j?zVo7;NFA|nlJT*JTI%^pTm6MixE*cD@4T#RrVJ^x5Rc#Y#L#D;if8ARU`}M=(3tfb84$8Ij-^<5 z(nm4thGO5Sq12p`-7-;8r~qlHbNqwWD^AgSvS*iAgB<=Sr||=1L(ICQj>er;iWv?k zERSkX*IG@vkkhR5mspF;_E`<5sj(sT#ADR6Wu#i*^k| z5;Dh>+HWvbi!tfgcZk~lZwgP$pFJdQ%}3FBIM_@$Zv9~iPGptPuMPdgQ|XJ_Wjia) zol;K$kC-p1DSiG)$`ThbpNs5zckBCB-sF<5h677BH;k;<+<3s>u@QNC3;r&akzViL z+i{paMl+3%WEL+_{nP7xh6;HdSJz<`&ON%?+h) zh8}GFrY8hMIdF>NKcUL0o6BXVDm6FE4>2*fIyJW@mO3mLORUY0R($5WJqoPM|IL(U zcE&AMWpE^1d9@KU|LLkzVk8!gv)J7=#-{K&@}$_P*y{T+Ti+hlF(QDN1M*^qxl2ZN z#cKA08QlFieMZH{*w>L$rDFYKv4cb`_>8PDY1l9861#Uu*$2khn=!zqKMgS6a8T}_;nkYcNml}wmn%Qm~4xOd#%AdKg4 zZ6BM!|7H8G&$h2fRq;77vi-;AQBBSxn4823V!xmG|EOt7WMOXbwOpv?1C}ss8mEl> z!5Xrh!$^nQ^jknM9MX`C6KZ zW|NnR)M>bQRxA3JVV1C?5;jax-_HRh3qXddtd~!#f(u5o{E^Z5oOJ)Rka(sAz#LDV zrt=k$FIU7h3p_2W(c1nA}q(ER5h1rVUX&j4Rh`U5&rr- z%^+0!H6LTM3P?2&OJATIssPLyW02gXh?8c&L)(DB>jDLN!QL6$*?96Fp~chQ9mHE)q?2MQ%u)t^aUBKqg+j$XZRNTBV zP{xwS7CitCofraRsLHxE2bvupujs$wHfeLMVI3bfwtf(+*uf%lN4(-I%#R-#6?Vf# zvio{C87X&@LTbLCJuay+h;XKUsHGRivwY6VoDz0X?6cpN&dXoq3xOMY4;< z$rZ!bh2p6z2`X#h#A0i@KH4E$Aazx_J4Fm*3b+mYG<`hw_deObENAZ9KW1*SCggCU z#fp`h-4(0rKc=~pAxI=$xryV-s6?o%ib#;aNVNAExgD@sm@NW#hd}XnDLm52wk4{# z9Qq0`qMGW&7j!~9Q76B!6seCKVsREh&#ocg&M z_(2Ss8Bg$}6!oI1)<*lDFFR2eGHh@m`lK25C1b&krF8M9KL2HTJg&<3h1Px=@m;{7 znb0Qj7y+UWj`+sRwSA%ICB{$0^##P--2JJqW(%Qt{-|%vgf3sGQ)MmvG>V2@!@cs2z6JkJP%VXJ@}hmqB91jRo)PoA~K3Ol~)d`SzBme{6{ zJZp}ZXWbc}`bO;^@rAJNUGO}=wfr`zTmpXzp-#aM#O6#2eu3gQYH}WdZ3M_lGbBs- zpe!477XMYM9)Nb}eE!QuOXhrHXuHmgpOU0B|MiDSk%Nd=vn5MX$yeYDy)0CMib6X9 zeM`b`WU>SY$OuFxFJ;z1?opHJmzOgTr$|OxQ1gm-`dtjY5}?5~-EL;pp>GpGd7~~I z?dIMoVAA56FRAurx+i=!UlF(}l&K7zKTrp$@*Zj8@lp}UGU_H8>z@};RZ^|+3(_}q zrVKL-B8L?6^(N{38vOsNNm-J)t%0RZT7n;xo7S(Orr~naDmP&Pc@m;i-q)gv!rbtE! zNoz@(xlnv><2$=8QwzFO5zXyNX&!kPUjPUl=upLIdtlPJw)7lS8gb(lHZd&K96s>IsR0F-DCK9UM^CCNE9 z56FSkLFZS)hIQDcg=1wQbjGG?Y@3Ez_<-cGyj>j#-rQ~@7riORaB}0Kcpv0c*I|N- zs=W}*94K{R+0YuJBA$<9SC!lnj}p-o2AxfWoaSX&^5OzXlf55x&<}&y0kSM-4HmG+ zeok>#(dj5RI-=qfg0qXEXXtgkw4Mj1A`UX1v~1L=HlJ|V{(hRt0g#_ zn3&1`Ze`{o6gU4N2WV^siVN7vs~|mLO|WkMH&#p6C~1>70#)OmEXv zhs8AZEJ@};=IRKuY#FPx%Y(D4a*y*p+977?I`%-QU0D20q6iofbK+>SwQ%Ya5c%=hRe{#fo2%)o{m4?@NLw@l7W=KJXH=F3$k*5^mr zqc)#2a-X*+-AGNHbS(EXBk@5_#qKT2>Hef0R;c#fnI4(a(n|^@mNMCJqg3 zzfYmXLNA>lmOti{b5S5$w7J=833d^wlmOHZc4=CIva(aSFi!zJOi;5!u!Ly&Gw9rv zxMF(g#wEB`J2Gnvq?jtGD3JGS?4uS1Z2^(9jm}-oc&Qre+I9oGtuUV$_dc0|%L<}P z!VA_4mwv+{B0P=bfbQPKGAYCK#y%7Tijk#(ar42TpUm#=H?pIKSOB*>Mfct+XW-bs z;T?nHoubt;0b=M+m1)w{@6(XB`i6`DO3ZGjX!U$)Gl$4&mQ&P1NJg&IT9h{ks#*l0g*Za!)MVTRYlV8+ zka3B7c0$PubM3V3_K>x-|KF6dU`NkLvZRwzRd*$feW4CE;=qvU?b;!T>44;x5%{cW zOVRw++$k?DY(gWJF+1^KSsXj@)cl1J^DWFyOQ8gor-fzPoa)+fLp(PvY`8?N_spt= zLL}=R5BsoCduOsVpSP464;N#pJIer7FxjO-eEI>j_-sc#*?6DNltV=9xXT$J(hK_D8+2lBkY~QG) zJyeRH-^QeK^QV#%+E=yFq;V-i);*HWd?f`8RRzot&}9NTKnWvt_-}}j7SzgPjv88d z9uMxtVeE3avk!x-B(XZ8cKIt2bk%T<4016L##5`B@kXsHhKK>S#y2JzCX7uLIgc^b zswTt;s7obl@THTN^9+!&jdDDxSFwrsYjYrl*?XX+*J5E z7Xm9u^Clf62xcI>3)gXYW$)%aDKRpcZ*W=zAWC_ErW(9z38h!2{&2rEHo2ImSRo;3 zJ7~VEG6_N3A!xiA6xKZgqZ9()!Y>X~B?{=DWXj!(p!Z0OS@^DUa-I^jPIXht8+to&4LT1gv+9+h)R6fw)Qm#XKZLv>O($z`G?%O@)iLEb9)&H8PYsx4CB7W~rIQ9e zDIuPEB#yT-wQ4F3lHo@m;UEZPA91?0K&E-aQdJUvAhNKxW{%=JqNz%^)9aqHODCornJ{PJ&whQ1bgOiu^sl>l>> z?pQVYq-wur@F>=uWG*^JY2gFI=bY4X6?IN(GZOkHH)@YiPv#ME#T%=O`*N`p*BxNn;Im>rl;n9liZnKsl ztKqM99QlJ^y6~oxTigg?(bNB`S@Z?sXk#}{%Ie`s#vU?hQTzxzA~Eov=Wy{NEGdk7 z*gB+&N+tUVA?(<^V+M};BWxpDRu7TP?|*wxv^MKeC*v{?EAvUaq~G*Vyc=W&b`fG7rdS+YEW8saIc+erv&vc&Tw0!kvA%$lZrds`CgUC+f!eC+;R4iw@h?Xr4UN)qdX}YDhKF)oPOy_h$`Gb5{#2C z138^6z>%?zceL^k9m0>_Ye>(oE})!`_3whD3UCv}X^bFG5yG9LpY zvRi2zQ|aG`vo@CK%#S3#%+*SR@AiAqG7ZbSi;7dhCDe?{FU5g&590`{r;`i_Wdx<* zHc7L*FX;^Jgvih(k?G_{9FdUexI?hAmNb=)ER%t$bq+Q^w7}%+J zEO6nix=+p)r2zZMQ<xo5E(yHtW> ztYyl%r`?U+BEeBsw{q^W-PnE!jFo)FB|jQC3Jf_msP_1}+-i795)9O+F&- zZOLW{r<1KXLbN~Jt-%&+=YB~A`pUm(=p}^P@`Vt|Wq3t)Y1Nw9%)7r8gN50+GGcro?+z-0QoIDLzEI&MP+D5ALf%>xO1A5?A5sa@w&=7Lov%ly zJ)uHYpH3@QkVy|4mEc^j^Z8ZCd%R8y=(KAYT;MF#X7Tuke zH|dyLaNL@=;HBn^aG2qjkXg+FR&zHosKpL?bFdZ5u4C< zuF5C2idwcDoz^YDqaIU)P$r#h!H3+zw-8^hid%#)4+Q{0f^R7PbnJ7oX?CT6_mdoVShU1c4i1WBPqDJ)|dqRb8rkS1pk~qYB~xO}{VGG0SmW zC1$1as>HRDXnCLfhY(S7^hH9quXD5%m0^a~f8vK3W7P-GzSNK-Vz`}$ZB!SfsloynWkx%+lhLQJTPcj$X^0we9 z^n%_l?p5p=hCOAfB;Gqil2cJ)rfT-AcG>dbbo@uYa zvnNNDHGDA4N|pL|o?|I7?OldXs5u}sAaOnfC$A8_T+`lEAGZHpHYE~O<7DS1(oS!cC-98->qaq@C zqFZ2?9$tIjVsCt!+gHrZakFs?r}A?nPdPMv*1-B8V!j+T(~$+cn~9J5Ca#{9jyN7C zVx|{-E>RJp7Dm3RTo~EI26~>entMzjX?=IZ=^&T#Kdmef=!yXt4-KZ8I^xu7rw#`V zOC^ea(@eMx?E@u50BLaz4xJ+Kf)DFk);9;AbPKW`pD2w0HmFFI^%lH?M1$q6d=sTcxu44@;T)@Q3*H zYA0%LRPy~EX_mH=@5PN_m#=7X9bOzmn8f5bBc#9!H`Yi@I(adU%Z-;SuS%SQmyT^k z1hl$sRQxcwjjjlgvNCOaMKxx){n&H5jmL?2FsoX1151A5@}HcKWuaIrR5Dc;@H*@W z!99Dg(NDgjH{TExg~PyXAM&0W{WfFW(<~iidY_TxRJ1Q0{Zg={qw_cxygWH06))#m{LsD?WtrwVXeU@3-Cgy!*Im@&a&uvT3e}kjG@H4$;GS)?|IO1>VFS-P=hOc-h(8N zih{SQ4eHU1a%o0&wOLp!q`2-M(n>2po9zP-xcI~3AEy1K;{O6600|*K3J~YR#OU5C z$LPR1ttVFUQjAv@-OGXwlZ%3?%p3Y+B^Wi^ITzc1TgpC;eZ(2+{21bV z5HgT2**mO_8h)y?MZ`OMDyJef$R z$urgkIjm={+0##^ekQ7*Rmi#(;#2kIPiDyCXbV2@_1qo@8FOP}E+Or^gqPo%VWK}Kak&UHcllm+?V71ihuS7q`X z?-sN?k%?KaK{jMThPzlkZpncBNrNoSg1lR)t9#-d8ITqYlFWjvaY05d%z#{`L4KG8 zS>l2iKhA*sK!co_1(^?s9DVq#B?EG(201JXa-oam==m9t{%+Oi-77N@-*>V6G~10Y zYLJ(*AfsK7jah#As|I;I3-a*<-RNIt8S|$aq%{lj93bi#M)qOwIt!QBuyg94W>`y? zilJ-4j_M&u-!XL@h4G(y&MV??;|oc)u3N3l!BWu9Uup6L zc(Ly-vDZM6dIW%4fBGyoAP7HRB!iYw-%&koVZ%sOTj` zk5JLkR$|Xpz`R#L^Z^P2voG;?xbfAJJ#6>CjN%n~j^l0i47vf}C#V~<1Npkyc>z~v zx7s=&^A;kw+yyKPC`iU_o$vgj7j>aaNSqpM;yGh6El1!ndt$H>S8AP(-mRjdRDikU zHVUSdm&8>r%K@Rpq%QG4SHxN%B4i! z5AWq$ z_Xu^$3BxY{mgx3Q=<*vE_*nt&6krAOHlgDLSWeFULx7LNQ}pkbG-~0iA|F`+8|xbt zfTGJNc@#tzJjV$hm0e{WD~R?~%B5wJN`|U-iarLC2_WI<7E){Ji`BkS(2fAK<9T^7 z%#-~|o=v=yQ`KWz<8^=jQu z824ic_4YJ8yYYPdkT2AQyBi+w!(I0_XXCcufe*kZNjqVLS8*NO&jq9tkXI#jy|1(H zA@S^#=;JsrH@8oM8zmPUv7-_~A`UoFO0RwH>-_v7ik-4dV0Hn0a}Q}d1T`o-*OJ(| zQ~GSd}EnjoFI5N(;>4V~TY>+G5)nPI6{X@M{yp?{M3RY$R-#A%N4b?#80{~~dR zBk>C9SKwPB3Mer<$MSH-60=McQ{1*vUD8EMC~jsekE@$`JTB%J+^1`CQKGUZROC1e zyG*ypRhhgAiwvC;{9i~=sW6)Ixb--46eW5t%I169Br->D=5x5sI<@dV$4PmgeqOY+ zMQ_T6V$59mraI;)njHNtqDdn-oLsa~M(O*%5TdL@TYnN!a;D&t zo^@KAHRvZahGoS8x}405;DxX0=u?zK&H8Av>3v({P1B60NTJ$7FSVdaMTrHlM*+48 zIz^hpe+D33rlHIV0jjQMpG%fH8=PMVXPMrG1Mru96TCH@iz_yeOJ|^6<7pR7MmUc}DM5l^5FsZ^KaQWg6yRnm3W*ndE0H47QDD38dZJpP+e9!xZ}*hTT5Jf}zj zhwtL&8^r%kIyzF1jA1e|R0GK;bzVg#RXvuidW^_0>{E%}B_x7eRAW6jThD}sbIz)+G69X4r z@&u8t*!}%fiOC=-%p*nJhJ3e+o}5k6=OZPjdKdSL;`#;P*tU@fId%dISL?3BOe&zc zfQ}_nUV|?DGhn2O5D=~?TW7zGrGbQ#B|qkYLQWujNBokGEuipvs$kENv*BjpBO6Fa zoqCBh!iBw0qB5}K1U9T;4;Cb;Q@=Y1cIaTdIRZOc!xn1T55;luem)rQu@Z0-4j!Cv z3pt#kA5W1w6h1Hr>gR)@{yr$-ui1oWis5JTEuY-CDxFj;(@&yT-RQ@4HOou10MTSv zRAMj%+LyNr9Tt^n(YstlO2rhsHZW!2)j@?!k_xy~T2vy(Anbz$6{Sc(Ua3sViicLL zkh$J%>m%aN5Vw3#!tsL>4x&l+`e#(`LnR?~YM$HTgYf5PVF&EFwBe*C)!vV??LA4& zznMy&RIci!o2CQVB*p1&(@xTCuUf6&*DU&}6v&Dtz-=g~k;RyGjgY9r0SvqH`t>Ex zs=B7vsk+t*xZB|65|wGNBLO$z(?JRQ-de;J!VLehw*W1r+Hb7`y;aonNG9TlQ?<;w zHw&^-gRIJed~u2fdH&K&reA81`?4V20^uQw?9ri522jsKa^MP68%#f&$p{!Eu=ZAYv8amsUY(mVj#k8e@@X! zfV-*o0bc;g@v={=vvEeMu#g;f8|F!;Xnzunl(&KyH;<4+{cd;Th zN(yIE03E)g)8lCx_Nn3fZbvV#w|6Ao&XJe=M|MaQI$jMwc?oZn_XaZ9UwwdaruKX~3*qOT8HYgI|BzXmq^KdlzwTu;=xbgR$asuXn_0pD?!I&c;HgUCjDi5chue zmRIamgWm@zr`9m<5-K61x=xL1xde-AXs~GoV4$Z~N=xKzfL2veu6*ZgH-q%Dc@UuB z0U6?63%`+y+ISz*-ahq)dt*N_r8(zZLF%=JcYEGZ4RZX zUNBNsuSd;y=7UPRj9+6(|KY^ zQ1AT=w|}x+ZxKCA7~UqSbNLi$qy9=x0Lj_TjFM@wBS#YPN`tw(B2T9^+_n*EizVYF#p zlF=7(WcFB6!ahi_YTH>Y%vR+2QzqgEC+f*-Xcpvk4f4hxGa!e$AT!-tkzA`9}OfXE-Ln2z|RH{_M+R3twYDb5aF(%tv7MMmivQeNg)n#NE& z@TA(>QfKz*X3-pEejD^QHuK5e<1-`$E!eRP62aDDU8dZrH1`voy>sNoJZJ@NvBM_yQs zJY_4$jy&YaR2igXa9}(iO(<#4MuFX_(96FZc8i{WYMe76tN(fq>*arnD{ZXOL* zF|l4dwTIe8I-Qr?1|=gj zSD}UOJwktaxRA_RBK?8Ty#Ej_G({r(C!x8#5qKpu*RK*eP_*HQJe@7*G7a*>EXWc-TESvxvHU=ToS6lg?}FTu zmClE1ki)Vd7fM0dKP4aK06o64-hAtD^7-7AydxN|<2 zvl;Rll2v##{tW5gXTIvQ-(e86Dm4aC2LC9%B*UiPqK>ptjwcn}TPNY=h^$T$MJI{A z9x>lEtoeOeedL^cW^64Kx%1<{RY#mZYsP#(3p2p}QLsI!e5b?UREEKOh>f4fH+6WM5;Z1=eAsSy8xzTs_+o_b z_VElRZdcx$WN*WsaI2y=-1^}`np>rh;8u)eb2&uZ+)*?7+&u=myX9&okzkTMAxn=rNgJuFPqR$V*Vy=X=;`^If5%hTe93z@ytpg;$D)kOpYxfjJKjSbPD-29!M%MnVtLuy zeP2c1aOI_7rsetn%N31~j%Cl`-I7_fVk6a}14dSSV0RrbI~}dHgz-1yT_>xk);FH zf!hK`;=`QAjb+;+ZDFCctjjhYEl707rJ}{@Xi&N-9Sw2R87CmqYGrCZCLsL=FDJm# z(Mk*;co;r&yK9!{hkDH|rFIh@;mVQF%BzlUQMGoxgEU3(xEPkmGbk}(J@hjeQ9 zG;8(@XJ*1xsw}ybMdlxwyu#GIEql6mBDJdI9#F}sG&1|64;@EtULQel1S+iwBMi%ug6#uGBa-)u7Bbk*0sBU)Nx&wW ziBF~wQPV#2(-?M%Wa9ZxYTBmjfmdqUG3dYyZZZ7nh##^%79DJTT_(n(L2|MnXSyI0 zuN07~Hv3J{Lam~=e&L3XZ~?xPRrOYCh*b(g*3@4dp^Hh(%@p%X4RT)=q}v7Qsn3Ai zph0fTg8a<|c_Z7NDH>#I7UV7g(d%2SzZu9-u{{Y#rK8R6)SN%)B8oE~B1uint&m=; zZ;zu3*!M0{C!bDHY_1NH_+e0PR7BT7)Tx&_QSYAFF`(Z49zWJ5Kh~xIv}(17N=HW2 z3bl2>{=sxuBX*!tnV)LKcZ&FC%eu5qf|xN`NvsIL#CDmFxtNnfHNH`}DEoW`ko#_l zk+pI#%rS^Q4XZ%>EdLIh(4qk{O^62H&i-um0@ zr7%dT^gT<@Z_wS2SW1#GNEE_uHxG7sV74$qojjP*=ob4xgdklVdAbj>McEQpA1soq z`Z%B@i(Bac7^hlfWWuD*yB@#U_L9mCf%!C8ilzDm@zZhp#|BB~lDOl&HZscGF< zOL}O5jb9e!|JDcFqhAW~2&+j07(Yc~YT|ndB31=62FoaxTBdes>VS6E9W$o|M04(Q&e-BOmo|!@#llUHF>pSkyi(rFW>dTc24a&t4h+bj()GqZ1ym7y-^0A#CG*@y)Zg=EEkzQ zF~C4q;;IH^xrvZa5^KI-l9^+-{b1-O^*jbt9+~Ul;8$Dqe0l80&DH&kUNp zh%iJz^6jU72aC%#H_O1(M4Rg?Qxp4S)kYy)>TetdD`dXN5bzBa&fbY zdz%Lh1iqxiI5^mRIb+}aza9=o>IX6c!fJyoGaTG4v;Q<4j@o-T$O}OO!$I-!pfT~A zCEqY6Fy2QN>}iHmeYY1f7*?S8Ae|?b39a6Y@g1*@FZhfTcOUeu-BA>g#K7xgPi zK^ffC-ZQ|huOrgFiCY0wy4*D|n|wcIwp>xd!2OQ8LR+ojeyg(%zA{IQ!A8ZKjjvXf zycbKn(-Y$=xCLLz?E>|O#S&|Ix8ye7Ex~3y@NP-TDNI^?`%b>F@yu|cM^!*HzFd(* zOp-EN{U?oY!`0;B{we$9hm@{X_7gW;Uj$;5w^x7UMvT$``)2^o13=7aW3O=m`dAzj z{@8NEr7pnIIc~&e4X`Bx;B$+3GE;}YXn;pE03Xuzdr!#!;eKbX`aKw$H#G5awS1`9 za02pjfZQklM)lM_yB(U|Y>FJoMZ12ZAua| z7?}=4sm%R)zecTK;AJKuv70G%P%bsTDxc4XuQ)D%);CUOQ`u11$#9S_f6HgTx%?kd zeLnNnkw(R<4QKK)p-2yA*GQi%y4b2vK0X4Tnn3L%Ku=&U&M_wxry|VhF;?C}oL3vs zk=5s{W*KZg2wkDT*{-mD13?D+e!q-}-fmg5T4mAM1^d-Cq5H_89lfkb^xFFYkc$@{#tu5wVKS zm~VV1cR9y8-XZ!0BvO@p&bXpoptkbuP4`_fzP&r?I6juf9ntITn`9o4E__==lYG3L zE=1etXV0H~bS(Po?dfW+=#wv8^I`Y*dg8fzs!}JRK|!%=_;dqC{V1Jz4WE>N9Z{@s z{itXWwf`znw5PjqqH5HOA~{)ozz;uyAIKNtQ(gEBytCnlN$`Vw{bdAuOQ}il1K&tX zvv0m!du1mY~soqyyu1z zS6+;|*)Bs5cws8eRh%S^o)}0EtEGNvK6l4j%-%I$)S1T9oT70h%-Ta{rMnLsLe8zxlatnVVh}RTKT%(`xy%K(0g&R(!j50ZO6+2NV+{K$pw|Qp( zV5GdWa3m-$!Rv53y<>UiEaRSbse)Q&+drW=_$;x56CWLIRTpAd8|&T8n`4bl#>~Rw zuTuKKcEU#P`UPXFqtN8iwvh`D$=IGGKM6_boV-4|^&)C2k6O=8JCxbRLR3M3KFCji%9^ zuh`E++OloXWn{~1jl+yPie|wgx*ZuhUPO%N&Q}`pTDCP7*w>CEu))3(C)40;{~3vK zrvZ#9^OeS7cD-~AZ1g$I>Kx=kG4-;!qJ{D@y^oC|o-zXQ6z634#K;sriX>V@d6oGw zS1$8W$j)#VI6miA;eI1`H|MCB4AzLEjCR2WF$)IyTo$@TEjPKy`^=nCXV5v@dSB-H zrGRvCdE}ByFF}Y%7N!Nh4Ac*Oup3R3$@&{#*kTp?taU=FhD5h!GwMn*>1Wcxdkasdx$Tma;1 zlydt@K`Yi2dzU=^LL7O1F0n%a1+&*aSVDIT^c_6FHB>Xs3PK+HI4!pn54|P4ti_57 zKPj0mR^qXJ4>rtv3dovS|*r!jU9^sRBs#j?2?-F@uH}}3V%Oga5 zEys|`A*)GgZy8YpXmiojF{&QW{e5R<&{)vW# zrAOKZ1=)o>_(q(4l5&gfqj1&H{pZbm`}G$%7TIl&gMtuxTDWCrqt{*o&a!Qf<=A_` zWv=Nx7>GkPL`5_Ej2>X#1BOAfkBYDR;}@s`t=hW?FZ0H)fNsV8rMRkJt^}V9@$L06 z%EpbW=@l(&7~Eob{drJo&8KB=$Ai661-qUap68Ly4P3-&;%14HQ3t~E6$c3?TnB!5 zYnZZlZW;rN-3*oOholc!y_X}be@Lf^iLM;|4aLs;2>^!aJzJtv-j(-g$T0qPQqtag ziIGy%-d23l-D&TAu1{S?W?bDaTz{A3Oy}hwz4aw!D&8zSrb(b4S z#^E7qD7!zjOWm&@Mq<&VFqCkLo%gE+JFxMH0%ls1Gtm0*{e?$}sk~rxuhM))7$0+6L1VR%C|ui0rykpPrsEse&gWzsLgQ+O4)HV`HLgya zL%hp&f9WLp12wLeXX!8pxIa93fsecZiJCb}u$oDRTCqm5Vxpisp3DiXfLE3v9K3GO29XfZKKpZyr z9MI*+C!Yew$SvxfM;V!c;LtOMHlA#%J17%f`DyRFKh^i9ro8Xq3-3$^8V*Qw1=8M4 z1R*iEMQ^|-9T#F)u&gMBpZ(03ZPGmWuB?5mcOxLad)n6|j*U`B4;Fvk2jDH%hl62c z8@m_npfX?4(&Kx1N_ym(8#awu!CJv%^FD}!D#dA|NZS@t?OLKG=oFpK-ko9o+6Igp zI=e|kTrohMqIOAPV4jf~m{yNURX_uSlXpWbTM}e=3Qq9^ME2dGP$#=25tgeq^bN66 z5fvFx-xSsIOKrQ`>mWG$%qj_#sDS~Raaw-l1nqYg66OP#}vM`$yeZITZ7KkB* z9xa7ZTG%PVP9$?|0oq``W#rn=Afn}vyteySZd5P&MbW_0sZ#C#EKR$>~}+9Vui>zPeUFWs@6{B6CxrTiAB=? z7_3T<4jE?7g7TSjujy$#jAPq*jR%@Wz*^Ar`J8vao_ zz?;kF4k{Ty)Gris+S4ch?yVDk$*M~h;0;FNieg${RqPbis{?&(<)os#f-;8?c8%|e zzeoEm42mjTOs&jlfNXxwhGAvIU&aPbS%<+O?14W_sVrln!r3!GaVeDcI zct2c3kXdcUnl?{Z@h)xu?cGE=$G*xbw~ZTlK>&Jqe@z_nc1OrQ<~sT$k)LP3OF4Lk zs0J&Z?*g0e?soXgJD({`+-sC8yf5O2Dj)vzY_MD7mgDs9FDC@(w4qMXa^V7beXruJ z`t4dMQZL?P8l3m1I`6`L@-}@-URWgi=N$W2sOTK~pnBe`o(t7e$2TbdEcI+v&&lek z;rA&267_sYJ-<{>9q*w(oMVTmXP$ZvRnL6&9HE{MEBO7C->;tgtLJF-JWxFi^*ls9 z4^z)0)KlZv^*Kf1(eQGwm-GqWM=QrNg;~pH3F%Q{NcW1&fl;#<8(Spt&;Gc%F0#|Z zCmFXk91t*zJYQe)s@C8)p6SY9tPPI@Q_|S6PnviGDfosfY zUU1gVZdK3dq3w}f-IclRmB|Tt4HyA8^W8P|j>0Be9R$$x;~dl`ByHGW1I`eR#n_nb zTk#~ueeX`hzt4J{p}YNB$iU&NLFcb{WoXMR-)lt;GvLvaihhk#Uo^}2(K-^=^ZHKV zuOwk~NADAS){1L0<`5*QaH>RKyq=UbzRnI0SFPMm%yyykUgaav`x*0`7rhImk9%5H z2I~m3;f8;CupK`hq`&q&7+j`32siDyJJ_l{i-OhK(-Le}o>04BtHm#vmf*@aS$o7~ zI{Ap2`26Dz>tuT&@vnBD|Ae2dm$LqMd*1>dWpVXA3kf6$Y=VG^pe~3Il}i!=228RE zNq{Jqm;?-p-CTA+bb3R0EoVBuS zE52|B3j1D?DSq1QU4+eG^KMOn^|QCE8~bc~0ge|RCbJelXDuJF1ei#$wY%8*@&V(G z9K`rRdQ@cP0&Dr3B=9!&scsFSJB8Rma9b0MzJkR@Yl6{#ypci+B|(cRK?^QHi!wnA zH$jUVq*~DcR5wP2-`%17@O2ap+VlASZXsS_n|Mk0TwCC0Gc+{Cy)p;3Za{Yl<4 z*CGp?mN@LPL*&-twwftcPmG1=S@CS#J~pxHMUdUmQDd#z#}aou7UWnp)mS|nYx1og z)FX+{=Gj$a^|cBR?k-8Zhnik?()Vxn_izWI{;dfl{36~mve-GSm>3^1 z<4eYN@#igI1-9Av`-Y7fhY|JeQ+3hSX_lD0bzp8s78(|Vxi|3l*d2fdH39#?LF6C! z97L;Lsj&vWK%1-nf|UCu(s_=|UL$v`S|Iec1jN0u+g8DFSiPH3f5$=8dff)RJ(BZo zA{!svA%QR0q(ea2W|Q}c`0#6dAgjiDfIakXMAZXdA@u@NuL8A$y*WVskSJQX1u^$O znA{AeTVbC*Ce`<9ta~;i*SiTnfj80c1DjBLtE^4*1AEZoHxgK}6&2q_;QyVdDd!y+J&;3vYMb{f3gA~i;|P8Ze**Sz5d$Ljzn&lk2^xq0jlR511a|f?N7;+bC&piATnozoRsygO zd;?55=m$7J2b>rYfQO9E$dN$v_p)(&z5)&ZHtNpd!~FSVztxKia>(_*!b)GDeQ(K* zzJ-z}hAo%!kWKS$WAC8KXc_43qc{)0&AfJ|(Ru6Pm&t>gzULq43;0;Q?|>}S61+Y{ z)|+hb;RCGtJ}AA0toEdYH=WY3I#fVBp=u!uJGeLX`e( zoN1rE0|I+kf(edUatL+3+w#^Ofo-BTXOLQeaUYNe)dordtOHyzKF$G?|oLlr6bF;=T9QxrQCJb zF1YU*Gy#@M+Ou)i^0y1Eb6>a4-HSI1?PFtJ0>kaB@ipo1po{ntJkX{*>)d|<>q8de zT|?y`AOmkKDu=i6d_v?G@OB3d3`Xr>p0%6;_iYpW-3?Pz_9@)LzrpRpLVT96z&htG zKzxI6&U>JRS75ufiOu+Ja{91pFLW zZoUW!?Q_41F5?YSbKr14ww8azDrKNgs~sN$WV%~^ku>F1gg?V2{{mhUGI$MQdjn#l z@8x?Hk#!J0FILES%5IR{h(6LHz%j%D^A#jxA8p~8ayec$#^O0xu#|s;I0gO@!afY% zH^~1R!i%yI7E~>#b@c?}CHAo?>4P7pDCQnGwEwS zm0zSo1el{ppxo?8jUP*wlQZ zP0_LjDGmT?ZIFvouAeA8te-e&SU;UV3lcm3q}ERbrHnjSXN-P9VX(0T)3u814KIR8HpVWRXQKohA;& z6qReJm_$~9K_~>;$an+BSa833A0N&Tz{&j<+kA+zzp>$O(~o$+hSt2DAXjU0Wdd43%0uQf&Q`y_}}1T4E;pS{Nt>G37=!+%3< zxnfY&pJ(;Ik~J5<=pdc4AxX4pKRL)=a2@6U5)RtGS4v_luswTGOh*AE+A`_-J#EZ< zS?Lz&eugyMC8|qL?V+gl?3RuXp6(!Pd%47f`=f6&d^X!c*YA5p`rQ4ol8E8SQT-jt zpr7HxJAExI@j0#lLK@{g6bN>axu+APVNPVBt-gj8bXp#P9o%=b=`3tD(*@N!^qpvtELC$s< z7TC`@Zvp;;)LV(No#orH0>L7C9NGPaQ}ku{X&5^6VVkx5AH;)0rAbOTM4V5713v~? zy#QzO8vOBd@Ua_TfeS8w9hMefB`)J?*#qBG_A)u_Lknh8%XWN$c1sobA_n9r)*JT0 z5RG~qOMkSCIyZ6PUe4l)13Tm_8`#kuBs^~8)W>PKUV2VsI^lsiZ{2#j!dF}1!Z2@{ z!w7TG?azpglPGKdJ!k>>y0Jh=*#@5P8Dg3^G{XYS@=@*2&`x1hf_`Vj1N#F^eOZd$ za!fpnaN1P?E*SnN{V6lGW&1cy#p5> zB6cr~J`y}b+4;Et|BtDzTh6zi`hMjvOuf*XDw_y+p zVpqW2tb-H4Zpoa@_(XIfu8Ls?6sh>Jt(|GLG1~cj&w1&+xNF8wXmmEE^L~*d?VY)d zO}*>(Vldeqyvk@g(zsM0b~`)MQ<*O7Oy@FP(3zI?@4XefmUrErgck2!V#JpdZ;=s~ zG<`~-aEt7&UbsMm+cINI zp5ZEZ7{Iy5n+lYUC7#|&6!Uq2s zh=|uRejVbb2AJtpNO~BEF#it3cZ~|ui)wG`QTXx_#lPRz?KKnceiU*st{LoVJ0|j5 z8z>2LOO|4@Ej)9iN6cc-(=pwTyk~#!ReCTCMj!cgJ%W#xU=u>v2gMpF^D9h>y?U){0rR(1eOz z6<~~u&2q@YxVTL{7a?^jzgutzE&xx*j%Hz|aZw@I8;?t(3EbA-(_)q?#Gloc)@4Qi#H|X+ZsvPZm?z_-mY1E&t z>z8-df9yo{N&mVNv>)X~-%|gl-%@|!x0Iidzn0IYCMln6(30|N+z~0il}7n0U0xnl zev4852VI`2%F(~H==Ncp@YN)-d*|Dj8>O^;d-CKnp12G7w%7+yB=s&Am#jX-e8Ej2 zyttD%^$uK9=q8`7IWk}i3XEBbyE1-``8f5Cvnp57~lY*NS+^XP53La80SMk4A zweMa9*C@D2!4DMtLcw0DUa?9KS7|N4iNlP3{6N906+FnhiEx~$(i;EQD!*011Oc6R~7uDf)6S9BL#)3_mJveyUtgHJ*xaY z1)orGmx7HW489Mkv~Ew8%Gc@DivIH92ENX3Q}tRD+^1k~g*RHkOBAe8FsR@S3NBS} zzN-JUO24Jx2MTs5cu>I%)y}>O4p#7jsP-?>X$4CZpIilXf0ipfuQ4*3Tng&)&8l3d z-;W;0hXl7%#M);JsPWtn80oBj2Ar!Po}H2S2@2X2OjR&f!6pS;6>L*5Aal*d}+cw{a!`dyrEq&pPc-or>2pKg?=D%hs# zIUkA4uc~y~D&1~xb!D*5i_5RYs{S$Y{Qk;?Hjit8&F%8c3vziXW_hmhco%qVuEuJY z&mbW?FyB=j^!l^Pa%@4b*XH(m<{AB3-qUDb#Q@cQ1(Q}9=~IQ975%k}u5F+}cddd; zRsM1XQPW;AAq$GhVZ&KUe1 z@4#8Am|j=y_XfN*L0d}6`L?OkN~hUMYb%{Dzb)Te@2hhol9oC;b#z*4YFgUpwDDsz zGelA8lo``dmu=#bH4{M}5TQJJ;)b<6oe9W%_L1+IE}mIhR8}-|hA1m6&!0K7q(D6W z_)O3&MtL+%SqJ$%tOx}%X8eR{Lhz-t9mgX3c|Kq(rurt`j>-lm6qj|-HURL zBl+;4Ow3xN^JU?8_#waV#n7^1aH)5`$;M?Z!L#iG?#6g-2zd)eO*#^o<&qJ2+CYWC$9P7~a z1F0gIDk7~wD&_#|5oZg6p&(7zrArL%KEueVFN@epz106nqZ!aXG)&0Ez9n z0Kq)JS(mh~V6!R=iIyipAU-2LYnBjI37zwu^IOmNS~b55vH!49h^G8m1H?WxDti7* zzQLfQX~Pc2>H6k5&UWxH&o}mmZR0^X>NwNpIMe3iL}g~YuEec<23|SniCgpTSo8be zOj@;aR<}?7JZSu9Gbe|74|#dQhXZeKndGb+{i`{-8x~$UcUg?}$<@BieQ&sG=(Ib( zx$@WT^9TO(nI#1olWQ-X^6YILBMNRRY~T5Qx5_!cjlcBS`=6d3=y-70{?sex5BtJ9 zZB5D(yQfwSE1Vj4?DbU5HJ7~bH~+2~cYOHRJM&*>cf`#*4p5ROmy{g;A#axO)on7f}h{PYMsmMC#+s;>m*~RvyWkj?O zEvT>bI4^5(HMr2Sx_O>Tw{A;Bv%}3ex`jrYy4Iet7p0rplkay`23-Z^Q;H^6a#g!9 zEv2Zaz)@U0+kq)wnljwkIIm6>o!==6DUq)6&qytcH{&FwL%uWnN5f=XY0ZDpN@*23IAjBY@e8SNY%bk+O9__nA4?_&EVOfb#A zXnB#Zzs`r5IMr3@OBwDD&S&IUVnb0Rwpn&vx2NOME{bShxcj4WrnuBOQ%YU*JoLK) z(d@fu&&Nf~$7uPe@e0qu6ggoX`7@_a&zn);m{wF;<|vy}T<9n$Dk;n_i*BY;wQ%)_ zHg|12$Bm7Y*D>{fT3sNRk~-4%ZLJL}WVnTaD^sr;X`3-?+EJ!2j7#DX9XTa`H7?^s z{fX2#SjE6`^^-&A3)Yqf;gIXxkricgyD0CA#zp97SWCSta>}4xXMtmkNu^raCS!DJm<3jgUlVVne9D?pl{K-|edOOAjrb zgSpG9Wms!Ot6`*QjC}|g7q!wTfVc2rom4Bvz&iwy^1z?eVU=Y&%E#EkUZ$(-r*RjJ zkC3Oi2S&@}`e_E1Qz_Gi%F;1vOl?|rHrlA6y8TN1x;pMesKn_+oDzp1|~{oPT_jQuLqYkrIy(L0IyJMs%@17oA8SBF#$5@Y>@z z%XyCJ@c5C~SJqt>(ZVjaZ-QArOv^*9vU-xh9#u!|JkIiAtI%n-OOfTeVpx;X(j8Hj zX-eUY!jhtVWakxxbw?Va$n6aiE4dktu1Aj?-HCZ$)TqLVt>u)DwXFv$+#pu99{k#{ z&)*thySPCB6rJ&P+F-pPg8r=ezttSEJ!2%zA9j{|;K5KeHI8dWEG}t|{{; zhiP^+b*Z}1dTZtd3u=@>!CxVckC>30z0@r*$P7f$HoFHDX?HHlN4NS-G<_bKBp%6ELEeyTG9E`mqpKuWG4 zc2lBH69QLax2JPQ$XHN+KkJnVV&^#gzRWhWR+NMecQ(XdiR3%yXE~ z^w<``nmfBNOS(3G6C&0pC$=wj$D1D}iJkKFh+uN!>2VaQ7NIm5$CqPQW=B`&$At0b z{g0zsY+lSuU9cH4wi$9f(UQJv}aESRN;4+EXT8nFcHzL zB8Q&qfoNBAoJw-(5N%AlY~RvS)6D~T0-ncR-gNftsI`q$RQ1!<@ys-zV4QdYV|Bo@ z8#(04wW+KVENYKq;L1$2j$_;uikg-4N;(XnEq%MfzipIw3mI1*WKVP~=6hh{B@=q|5D#-0(JSC>Q&&Uh@P~ig8+7 zI0Ks`b7tf_ie{7*mdwt>erIZA6S~SjEz`6i5?&js3vicL)^Wk8t{T$jM~WnTR@ha4 zoHjP-X@`%Q> ziJ@YI7>@f(a)e!+D{{pUq(%{fqV%+OEQjEr4YV>_!-%WmHu0Sv# zuQaEnn+;oauyJ&yzC3-5b30k4d>+(XZb_fO=|wJ7jQ#%Ml1B6@L=)q(W3*0ao32D9 z!O8cJ6Lm<6O%s(IR3EX6E%yhxN`k%0&X(6CY{Q425PN1#4Nu4s6^$6leu@1M)-1n~apN1a&4`6n1-cI&5c$}TH@MPtg9^pv8XZEBqbZiUx%PRfzT)|^?tkdq)!|M3( z$Gi0Bsk=79=JcfJNBVg4!svVM|NjI2EIq=WVjfE$9N{*@r_f60>MMOdmy_Gbm?kHy zPh%rae7>_hjgv!pk>WqGN-)SDYprn7{Yy9RY=7te6}W0D8{EO~*1_*+2Ev1>h##wa zCqI4>JGtMve2gb^cEBHg)u2JXYZI6|~%9JqGk+!Oa8oK6@wmNy@d9w1&h`4j< zJL}JP)0>mBr$_t7uB;z2#+pwQFX=CH!jt@ zo(a#dD-n}B{heovCmuiZdV|mI@o7Nbjl?r}UfYjeeU!<&Sj%v)67L8o6jN~L>I~EB z#9Us8k^)uc?RWD;D2pAp_alg0zCaG|c3T`)AX#Qg8F=B0&2K!(deKKzo}?YdS$NZ# zx#5ICKcv$ZL>Txy0FS8#2*Y+3;?VH?@*C`ZhhCE1?0G%gC<*`SHW2E-Lh>@F8P|E@ z>^pWf+XwtL=j=om^G!#%52|iBt?Gu;EJt2AEot<6V@tCp_V!O|?2q00K3?}F4^>~b zff=g4k>)cXS|%FmXC;&%`Oa_^STi zr?b>J@B(>}i*%~e;}g+KIrG@`w#d;l=t()7@H9P+n=cA)DbhBhnw*b%+{|)evvN&% zx*r_(k$eDC9cKXgkY1+JnlI~bKBE(l^|vG46otq3^)}(*?ZP4zX*{nb4>P^x13T$a zo@~h0fD(`p)rJu@2kC$fh`p*u)3_aOg5TJ}deo42!pjVPCVPvy9I( z#z0vzQI;81M%kMWkp7Px38}_&V$sBlpEsWOE>|$RTq^5Png96=vluE;p~JBjfp-fW zmoZD0nabCg;;cj(`q0mM<|2c1&4)SFggOUNj&~E7Q6l2hiG&`V`ZH9($cwR z{-kd{%&9e~(+GNa=Ybg|B2F8$)KtC}@#D3D6-kqA=3#CJ`IrxLYCGy=qEC2tgBeA} zS*8y&J>o|k(P>pktQ2!uT4y~oy(MNG)G3ZiYhJ9~Xe#TZh62zg9lYZ~qlck6Clz?9 zn24K?fyXk9Yi=L$%|{379X>WSg2!5v;n_|zNf~FE&NcHVzWMMmeT?>N z9P(eL>Xeiglx}>z=*Vq9zB%`q`(A$i4{6ooNbTFt{i^Cb=4Uw_B`!Qk5pX%?2hvm1 zCXDtut2948lgz*)1z}2l*)%>1>_bCFb3=HTvyNrHe(*)BbY4B)_#wn{yu8o`XyDa* zhNY&8R^$~!`Hj3rk+5Ef2g9@$I$2M&DjaSUR1O=*EZ95w1oG(A)an|%oS*_}u8~LQ zmy``F&(9-HZB!mJeY&23H;s5r$m5zw)y0$0puH)A9v+*ezU zH8M}q%Z$h?mh^HX^CaHXh`ch1SByM}UA4JP;#DB;U@r3floQ_P0h{FRuG7QhrCa*E zMV)!qUVE*x3gQ#FSjS2E`GeKNit;3nsS$ZsNFK%JyfOo?JR;A)t3ci|EFeZV8f`f^ z2=mCI)599UQcOL|B02y^8{?YJyv(yL@?9b-Po4u5BTwpxftNu%zMrTs8m#c}N(UUU zVHE(Q4VKbZ(5%Tcy1x{2u9kJG0s*4aW3I%a4EinQ#RkR=#d|MG3h;4als74Qemv_u zEH#Z)Dv*bN$XMpdHZ%X*4$GhzF{tDW-@u9isTO?usz-XaR7JzQhNW6e(ec9%fNUsFc>QaI%CAZvhHGFMmI6Aoprm5Ucc_u=>Cd_m8kZI~sD$b!$6qQE1qU!<2Ovf0%J{Z5=7{Aj*Qi(Bsi9>sdq0Te-|xA$y~^~Dr#ht8FQ?2tY&qK~sT=(Orjtj+ncEPqzXtWM z1|D(veqDZ5nej2BWOZ>5Ak&G%s9%i3jZG}ZRjV)8g|c`uJjY~S_{j52%#y_kgqvy!RIgI z{jqJ`ece)r42lzj4)hQMcf!_e>I*sd5x$FrScvd6>vC>l-Z1?ygjPi_I&H2a?L`Uf z^vwhDi8>)}*oAfc_HM$zxx1*x`*>^D#ER-=J;clulBe$*nQCBoLq*szJc%OvYld`0eb_o2T6e40EYom4^jbR z0J8vj+>~$Ne+I}SvA{@=yws>aq132_nI zK=Pje$aW?Cz(_v?$nsc+fqy9=+v5Qwy`QT5w*gr{x5B7zsTm|{4h|AO*fm(p-hP&t zvH5IKwC)^Hu*N3r%Z7-FONNRI8qXDH*A5eB2B(WNGp30%EtiPikWuml@nZ1K^Tgob zFxZlF#bAp~B&e}C2p-ZVIERY0E+Lw0AS>*7$#F2HE&bu!p_~1oi~V8S`}^VJsV_Hy z0LFVN#z4v+NevN|2m8UW7IfnQdCrysSd1~q1my8EuL0WtS>K5=)=BQwjdn=Rd-6yg z(NhelO%Q!DhKW9wp`wS+(6(J~%h9iwm4N zVt7V2+A{vAwg}YwrD{v7sV$`RPo$|Q+NOPlH1&jO^D%mX!S8KA9tQx~?)w%R^`8c$ zUY1^K)L#HdJ^K+L^X~^FpVfe@w+@g;8zB1;d!3QyOMi*?G$7lNoOPPGFgR0;aLy3t zW=zL++f)(P(W70@$?e@NA{`Y-BjH(t2HSq=A|vlpKpv-EZ}1%s$ioB3I=@wEV@zMc zm~O$C{snT}bd(&|f>*yDM!j6cs~(X3c>qw$k@WpH79?JpQ?&Jx5Fb-od4x=#+qhODRA0?j(@E8hYwu@ij z;4v7G^|d}}n1cKml}~(~&pJE?EHPm3+l=}n0ol(Yl|BMU`B-l^@V)?KI{pqLod(GC zB$Xa;r@?PLAoa3TrBA=hz&jU^$6G4>p-RX6#OTkNfEaplp-Mjj$bPj0^054m(${17 z^-Rd+Hk9*t0FeDnJhzuPH+Y&j8|NX(I1f?lfOgLF1mF|LsA2r-G$CbGwbY>VJ|O$~ znMx-P?+qR3i}hR|*x=q=&vnGL!0ECv_HqG1IC`vf_~ChCnm*;q^kby{d|cP38|g< zKVK%q3kcJcF2yI|T+Nw)HNRCP-EFM-HSGhy8+1SR#DGhfI5~qIgp&xNEBF>L9 zw+gIe-B#WGNXNhr}2Z@o}`-^ko zx6e3u2DZfPtR^gtNuqJ`?I5|GcmU>;hZk`Q0^u*{11(exXmXb_3I zy$t!s;-QIfua}3J&w*p`(R;XNypDdFN+(R6V8r9F{}O$$zc%DY_m_Cwv*cl>U#w`! z0{m1A>7?0$c*66LlPT|g#8Z*SJso{?I~Va*==M3Cd2b*uSmhiE*oJHyEbAhZJj*UA+Mc0OnKXpmkYc`Q{Exur68}?ly_zd z_NkC}yyL&`lQ-o2-}lLP>Kk?CzweWmGo}frL_C`0FMhu5ee!+83EuW2oMWA7>7$)) zH`ZM01%{@#C}M*JFHV%jqON<9r!Hu`F(}`USaqel6ff(*qX>nKVqP~q1vafR5G?fj z@%mViXeq#zkf19HQ`DQNl$KmR&0Bqq_+yN^YN9d<8>`(7fx7wZXw$FOcmiJIhTvyb}#c+dIE0T z#i^0S@4FSdT-T^1xNHywbpc;xu)4N0Z)dj>*F3x`!sX9*R|W!wjlgSA{kA)T z-;QAnkbf-hl|e3A1zOd{yYC%NJO}6ZE)+wKDyjDR779FnXVidb>+A4RD;M5*?eO8@ zZ)m$4&*as+>g&DG%pAt>P#CXufwLpvb5+;X)Kxobr8Z#(SOgm+`wxXS*b6Z`zhu^o zvZCpQ;g;j7iKDXGA9U1ts~j~Ao@&w4XhWUXQH^&>dOeQ$H4A)xyvnKuyGf!(>ih)Z zsPoL{9l#D>C0_}G20J_uOpO=7@51xykP&DDWuC|7bjWIGlTO#m=gx4)hNB9qoqb2&*l&DLpjIRcRRwK8!#p*0^B@+7rxIhoz=6j;u-=6% zJsy$e+w#pAUJpmv5v;7j1jG}N4!=@shbo~w22aQc146YJh?Jopxxx`})jDeG z+!TPT(S>_AkpoPqTyUY!h5a6kDC7~qh*kz`p{l(8>X-){)z)J*6r;{kib7n}8F#qw zmQ#Z>G(|?r41P8Bc7q8C`^Mo?@g_$!KN7whmXx7!c%qUS5C|z@LGzFvG5g0dhFA5a6sv73abNSU%)M9YV%!Z(^ zAt>`pgV6hVut{&mlmy-Rc%?3M4)4n1^>Xnp^QL*d*EIMhD?KUn1pS!Be`m?;I)AXC z(ml%q5x{zEh@IszCZ{tzA16z-5#qYoQdjV}#b?p>!+iUp!OAI!2V%>#h0s~zHuOd% zy#C2}BQe^ldsQ5RC$;?x@m`P`FZ2*E^pkGL_5C@JX`jvFJ!VeltZ*Bg2{LD#yYP`w@)<%E!XPdl0MP!h?7Tbg(j4uD_<|p{+c= z72h$%<-w~NtG`1%H7U)$Rr2`1`ICzi`b7w}xOUP6xIx9+0DC7I`S@m#ctXYT-5~L) zisRcsVkFM9Sr^|m68NSO?tcLtz-+OW+41pXGCwu`R2G^kp|AJscybW+K0_8xcud5T5BNPCK z@D`>KC;S6KE#idh5f&ld3OHjJ?n_3z7%*ozF1H|_3#hMu6P|%<*&WCy9ElKv>)PgP z+Pv2N5-z%oL_XnX2nC3D0Db~{QN}o6>nMyD;)MCwa@vl#`PwkA8K0Mqu}H8;n1gr$ z;^ynVyheNop#u4YeaB*)5GOnf;ZDTO*LrzfcpJh)$S2&5@HFCt2N5#vLFyZzzUE4J`9;_x0S@6c2rCgcUnezRL*=#A`b>;5a0nkpIDk0e z4ulxYi*~@23Akqfaqb`8g+RVb0e_Z_J$2+S2Ye1;8scq$A0u#1CFBV49s>2h9q_R{ z$OQRo0rj;{!jBQwA)l~kK6HCb-ywEGeD*(44EJC~;(CstY<^z1v5B))Y8{kI>Y_lx@n=l`C1ou8S0sax85%E^Q zx37bqAl?r6`Sr-h{np|Jd{^aGv=i~=fKUAx*C}vccPn82{|Fdgv&Leuv_o%sEw>qg_L!2zd>I`GmYi!8jqW zLoiO*eZ3JcZWiKk1dhdj^3dx)4gZt8{!9D668NtKPF(_Ki_pzPF4h$9Ws3JV#j#uq zAD4w=k>4vTG%>it#NZ4Q1KeI0J{%?nEhYwwObot)z1PQn6N8UT47QjUEHg1kH8H3# zF?i0z;ARtp9wr8TObiB@7>qYDs5dd#VPf!%iGfEkplIF$1NMcYc@_*9r)d0Oz&J&- z6AT!qXkG#X#wnV6z<_azW&{{8PSMN&1I8(uhrobwie>^BFiz3fQHZWkEqR9gT#wnVcz<_azCKe1B zr)YYC0pk?S05D*jvcCWf7^m#Zz<_be{xL9MoU$(g1I8))Rbaq4Wq%16FizRu3kHl+ z_UD6vmVGH0XxaY?47BWLf`OL(FTg;{-VO#@_KU$l%l11OEzD4j54HDf=8Spx#sV*MkA|p0Ym#2Go1X{&O&(-c$CU zfC2TMvfl~@)O*VQF)*OsQ}(4`K)t8zSAzldp0b|~2Go1X{sAzc-c$A&U_ia6?CZdQ zdQaKE2?o@A%6>H%Q12=G>0m&;r|cgD1L{3xe-Ri^?t9-c$BIFreO3_U&Lmy{GJ3!9dIYMljH_?+yl9 z_C3Hr%f1g7XxR?}11o~{}dQ#*;j#qmi-H0pk;qM7--q|2Lmnp^T9yNz61=k>{o$-mi;AQpk;p_7--pF z2nJgAv%x^i{s}P9vY!J6TK2yO11OEzj00z{1%6dQaK=!GL;C+3y4c>OEz@84RfRl>JgLfM`}w_BJq}-c$B@U_ia6>~8`C>OEy2 z0|wN4%03PZsP~k80vJ&5DSI0jQ12=GJTTC*zZnd)?0bTNmc11WwCv9T11)#5m`hkhp0%kEBFAN$zP zvMbLneTwBjeCgr!9sQf{`N@);N3I_!%V#-Ko70xxo6|9;KArS$Uq7Sy!v~h8F03wpZVmw%?)Ee$_c*sj%-iCn|qr-xngh5gds;{`jeiqEhDb_Cg-tF zn`HXuzfEk(eyF>>+wv=MIr+`y-7l zv&WCH=il62((C)nTUsvJbD@2F+A}hJ{g}I2*58_HPapLgnLhK2`&#zLjI&?+@l08N z&%jAJlWHf}dx{%TF6<+o#8~|%+y3d}52P`D`8$JieB1Nv3%&{gU)Wub#OHM1S!fSl z_LNNDet1uIzt@ZGxx??5=_CJsKD*m5rrUSSK9=}bIA=7^`L)x2DDF(z-XmAt+r0gndG_1JZjj~M6E-&gD*kG_``kS; z{dj&y^AB!z+qb6dm-L=oU~PG1yT|_C*n4F8%>7Sg$Ho89{?|4+{yFztb5r(|{sDX9 zPc{L+Dd$ehdD*8O3fhN0O#G&twB1Xxdj4s?ePq1U$DCVxe6;>xX`}taXZy%<*E#>* z@bHTZ?Q>?Z{Y^OscU3gE^uNyjmxd!UecPn0?39Za+3$EO4frBwaLn(ro|t&OefJe# zVt$C6$DTTW{jk$-uy_AxuPjeF?XMf^H{D<_DmuXa=A1WmTvq*z#r9j0+DI>Z(&=+I zSf5&KcU<{C%A2zDw(VG-|LJ0TpI2_7{Id~obiQ)|f!K(En^x|63rRER%d%Ais-E@@s*7H<;wx0{J(a7_94e)A40GnIVSrNf_=#`*_ROPPmam{gkYa?O!g@R z`;}v|U!mTAnV4g;Zz0&f9FzSE!9M1g>|+S_Gsk23DKV+NyLkRvO+vGn&@GsdW{}O`#$u{|)5d2fN$v=hQ zzp_mJD+K?RW%6$!_`fWZ{|muCW|{nB2>vt6yFSPv$ z!T-y&vQHuSf09)5^Yu;Q!aMzOsKI_|+T2Kb_^ueum)xWx2AiA^3lp zR`xdp|1a^CeGb9@%l0b!9fJRt<;uQ?;QwV>+5Zsyzoe)9LkRv~mMi}eg8xT(llCtm z_F%Z^^um3UO#F1>GhSCuU>y?`RnzW z9-kbwe$(TZqt}vg}^~bK(ms-E-DeJf4f>A>-k|<>t{WG>}q|j=a*i8>-neG=X!qX^}C+GcD26O^V_c0|9bx0 z)%k(84|a9_pzViUonL7CVpr!M+Wy$p`H8kqc6I)u?UxVKVpr#%+W*+q`Kk6#c6I)${g+*x-)jG6SLeUl|LOB%?H}#x{8{@?yE?zt{#BoU zYyWFk=jYl#>+^T*zxDaO_V0FF_gs7`LF5jed`dwyEr$K+a(MjL7qpy8n7bq{>r?`a zCv9h!!=hhbkbNovPmboEQdoZdL~$y?HZ((=LO8SX>5-=rc36w>&f2br(ar0Be=6ah zBNzPYRKjZL@2P~EAID{#N;vY&%x6y}9DIND_)`hEev@-5L5SQ-Pc2~fO8Z0j-{b#p z2^jAnOM*f~%E5SNA5T!D^YJPg`EF{yAMAQwpp81R?2Ywq8$Kl*z>{X#Bhp5vj_yjTp?D*t+cI7S(&gZX_akN%Bs{=nX7VFOst0ow+)9_0-kHtIJnctgc<{Tiv+2Y4wuTZL7DhZu-rV v-z@zNTZnt^@VjPZ>&ne55lJ<4vSNAD@-@r1FBgxdK3e-I@&0>!9}@UK=g{8X literal 0 HcmV?d00001 diff --git a/premake/LICENSE.txt b/premake/LICENSE.txt new file mode 100644 index 0000000..e7611e6 --- /dev/null +++ b/premake/LICENSE.txt @@ -0,0 +1,27 @@ +Copyright (c) 2003-2016 Jason Perkins and individual contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + 3. Neither the name of Premake nor the names of its contributors may be + used to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/premake/premake5.exe b/premake/premake5.exe new file mode 100644 index 0000000000000000000000000000000000000000..9048d51e09da5bde02e6337dcfaa603a2cebf292 GIT binary patch literal 1362432 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