From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qt0-x233.google.com (mail-qt0-x233.google.com [IPv6:2607:f8b0:400d:c0d::233]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.ozlabs.org (Postfix) with ESMTPS id 3s6Tjq3zMxzDqYj for ; Sun, 7 Aug 2016 15:33:50 +1000 (AEST) Received: by mail-qt0-x233.google.com with SMTP id w38so191439627qtb.0 for ; Sat, 06 Aug 2016 22:33:50 -0700 (PDT) Date: Sun, 7 Aug 2016 01:33:45 -0400 (EDT) From: Nicolas Pitre To: Nicholas Piggin cc: linux-kbuild@vger.kernel.org, linux-arch@vger.kernel.org, linuxppc-dev@lists.ozlabs.org, Stephen Rothwell , Arnd Bergmann , Segher Boessenkool , Alan Modra Subject: Re: [PATCH 2/5] kbuild: allow archs to select build for link dead code/data elimination In-Reply-To: <1470399123-8455-3-git-send-email-npiggin@gmail.com> Message-ID: References: <1470399123-8455-1-git-send-email-npiggin@gmail.com> <1470399123-8455-3-git-send-email-npiggin@gmail.com> MIME-Version: 1.0 Content-Type: multipart/mixed; BOUNDARY="8323328-1245204871-1470548026=:17623" List-Id: Linux on PowerPC Developers Mail List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323328-1245204871-1470548026=:17623 Content-Type: text/plain; charset=US-ASCII On Fri, 5 Aug 2016, Nicholas Piggin wrote: > Introduce LINKER_DCE option for architectures to select if they want > to build with -ffunction-sections, -fdata-sections, and link with > --gc-sections. It requires some work (documented) to ensure all > unreferenced entrypoints are live, and requires toolchain and > build verification, so it is made a per-arch option for now. > > On a random powerpc64le build, this yelds a significant size saving, > it boots and runs fine, but there is a lot I haven't tested as yet, > so these savings may be reduced if there are bugs in the link. > > text data bss dec filename > 11169741 1180744 1923176 14273661 vmlinux > 10445269 1004127 1919707 13369103 vmlinux.dce > > ~700K text, ~170K data, 6% removed from kernel image size. > > Signed-off-by: Nicholas Piggin I played with that too. However this needs distinct sections for exception tables and the like otherwise the backward references from the final exception table to those functions responsible for those exception entries has the effect of pulling in all those functions even if their entry point is never referenced, making --gc-sections less effective. I managed to fix this only with a change to gas (accepted upstream). But once that is solved, you then have the missing forward reference problem i.e. nothing actually references those individual exception entry sections and ld happily drops them all. Having a KEEP() on each of them is unworkable and defeats the purpose anyway. That requires a dummy reloc to trick ld into pulling in those sections when the parent section is also pulled in. Please see attached a subset of the slides I presented at ELC and Linaro Connect last year to illustrate those issues. Also attached a sample patch partially implementing those changes. In short I'm very glad to see that this might steer interest across multiple architectures. I felt like this was becoming much more intrusive than I expected and that maybe LTO was a better bet after all. But LTO has its evils too and I'm willing to look at gc-sections again if there is interest from others as well. Nicolas --8323328-1245204871-1470548026=:17623 Content-Type: application/gzip; name=gc_slides.html.gz Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=gc_slides.html.gz H4sICBW8plcCA2djLmh0bWwA7Dxrc9tGkt9Vpf8woSuxFIMgSD2sR+SsLet2 c2s7Lkupva3UFmsIDAlEIIDgIUrJ6r9f9zyAGWBAUnbqNh/OiiIA090z093T rxngu+/vlzG5Y3kRpcnFYOx6A8ISPw2iZHEx+Onmv4Yng+9f7e5899XbHy9v /vnxioQlIHz86c27Hy7JYDga/ePgcjR6e/OW/M/fbt6/I0CBXJd55Jej0dWH ARmEZZmdjUar1cpdHbhpvhjdfBrdI5UxosnLYcFx3KAMBtgd7wWGlhQXFgrj 09NTgTggMcWRsmSA4Gf1HSfCaIB/y6iM2atPLKh8mBYpQ0Zef3pP3kVJdU9u WZ6wmBTRb+y7kYAElCUrKcGOh+zXKrq7GFymScmScnjzkLEB8cXdxYBmWRz5 tATuiQG9gFGcEz+kecHKC8FAMqpJJnTJLgZ+mj3k0SIsNUqX6hn55tn4+PSc fIj8NKYF+RiVOevSWLCE5bRMc43G68KPorepT07cY1f1W5QPMSMljPtiULL7 cuQXBbJn9C25hmGygFxeX5N5mpMaXchkTGgScHkfkRn1b1kSFOTb0e4Ox33L 5rSKS0BMSpc/nqXBA/l9d4fwZ8M5XUbxwxn5KwORRdQpWB7Nz3d3HiWBG+S1 hh6OHRJO4PcAfg/h9wh+j53dnSC6c7lgHOLTDFktb3d3ShSxQzK3pLOYuXjH cnj+rEx9BfOMVmWY5g55lrO7pFrOmLwOaMnEVc6WNL9F2Hmaliy3zOJ1HtHY +RuL71gJAncKmhRDY0rN9IHYIkrOyJgtydHX8o8CowIGZJvmZ2QWV+wc71Ey w4D5ac6V6YxUCUwljhImEOnZXVREJUhLR59XflhEVNGGjpqRc7mfkaikoKHn GlJC7x4UBiy7FJZEg7ViqIMwsDQOdKRn3snB+PRQ4dmFZYzt2dHk5WwmiAiO DMs0A664E7bUn87SskyXZ8Rzj2QDTnsYypGM3YNur6KnWZoDk2oCk+yeFGkc BbCaQU65QAsnAjijAVo1MQjVF7ZLYvM4pdBdzOZl3fCCfCvnFDOaG41HOqvB eOBAPUVTKG3BfJRlWzGGSAWGUM8q12cDdKzT2N3JDCLGNHp5yRGr2CEp/MYR eUVsVARgFUMzwOC/32spUkrPidb6ClnSqC/YBd68u+Mu0yQtMuozWJHgQWBt ZTmzLCUwdVUewSr7wFYDh8g7h9T45y3GRkkIC6206HAtVTGJZunVzK3Xf69u 2tXekOtY8fIZGIooRlJ4s8GeSDCbVRGEiyWN43NNkbk0LFrco7ymFA8b9ZMd DtGo2JS7oWfRF4U8o8GCFQY690+b8IECyJ0uwSB3VW3cp7DjhgAunWhJF2wW p/6tQ/Ce3dNlFutPMGaR9wLl1wqGrQHEYC1zGhtPihIGrT0pooDNaK6ToQHo YcTXLT61TcHbagobCU36CHUacmkJva8Nk3zs4Y9ucWQkAAsUHOwb3i2L2RIf ySbha1vrRrlkE4M70EIg9PngJ64q7uXAHy0STRe3Yq5nMld0XptnizWD4CAg NejZPMqLcuiHURzYzKinE1dc/DLsFw3+WhzpKzRNBBtrCJNbCDC0izyFqAD4 PId/jJ3bncazgP/T7YpwOIcNyNzDn5YB1Zdwe7lYh7R910fWrs05neDPhiG1 13hjBEwfL3rtKFPP49by2mLkSuFPTk7sw5P8oiWkNbMK18uaIMRcF8rI1lS1 Sb5Cl2pKwXCtuqe0OtBHC8ltBvrSNtImGsJ84Orjp6vL1zdXb8/IR/D7MqeE VGTivuR3jIhURBpmwvtvzIs2phf2Mdn7tltbF7IniQaEMWSPFSpMqc/Fr7Vb fdG51f4p/knd8tb7hjIwhWrqcaMnhmoeWNZdzQ/dYfYv3jWU+gZR99C4aJN6 G4+HhxDXJQKDREvIN1T/MklJUuAkwlEB1CQ7irerEO5lpBnENoN60uc4TmrO l0+JoM/bmVSS5hCw2TOpIMDAeJOfGLdjcgGECU8huxlmaREJHUurEr2CwEhj l+Z0FvkCRUPAzP6MgHJGYnQCOE5XuMiykPYgcIAhh6iRqixbj8QBWkicUJ4u abK2Jw5h9rQOSfSkISnnuoQMoSTIPv0e0hsTIDPbs1YzXJsAcN0vMYtSaaIs MWDuT6EfeSTyqvFXApQr9JDnO2do1fVZhgHy4zOVvMEvc9Oa1IEqODW1IiTs 2BWVAAdNkflow8wU9Da2trOOOlZSza+zwOqOJus6MuZfy1bxQU8OLSmMkgDi La2B1wOLQZlrOJR7kmLSV1/mbN5J8zThSEPYIBq3NXJ7ckWVNWWAZwq8MGc1 8cCKe/KPGUe95C1eM0WNBvJL3bXYBD9Hklgbq12z4Aa8ncmObZlsXdbhOrg+ JWgKJbBeoqAMcZYiSFtCs3w09jylz2qRC/UPTPVvuWJbEnsgW9ZqV0Oeu7Lu Ij1oxP2XJQsiCus7UvrUTq9BAEUW0wfNCQpml6lvEG+yQz3VVoXO9YnYdlHO lonY2IwDYAQxu2OxJwyquh2btxPz9sC8PbSncVan/Gh2O7GU1ib6NNUiPDXy RzUOC/bh1tiHFuzjtdjSANBfK9rENnjXREm8pmYrscnWiumNFWvaZDW4aVbl 4RpikdOHphnv9DbGEr0RbpvWOFpq/eJd0wbzT1MNVdw37WjFm1Zu0+s2WEt3 GmF+27RmVZ7FWrO4b9pzPUSEm6ZFWJymUVqgur1kkIHUrXjXtHHXbAs9eatw Ak2zdArElO6w8RsY7WpOxCLtfmCL9NcBW7ShH9yqHf3gFm1ZB9zRnn5gmzb1 Q9u0qx/aom39wFbt6we3aGM/sEU7+4Ft2toPbdHefmCrNveDd7V7FmH+ppk3 tLbNzLCmbbZ77rGEkDB18gxwazLrRmp3/eCqTde1BJKIEMa/CG0YertKKMGm V8ksZ/SW8rI1hAYL4CE+GEYJZmGwbu/SKJAIWPEAI/9tvVNaZJB/zSMfH/IG sU/KnQWS/MJaskbjFSlpXVpX4ZeWwNeu/7Fne3SbzT6diMTuLbRi3Zj5tILE BnfWBfA8p+AvVAUHkv6CSyoHTiZk9sC3nKOELFMIpGZ5uiogMdIqzZ3p/swJ XgxQBoN/GSUMvYSwhmGKQojSLFo00HW3CNVtPGx8ai93tl6Aa32dCLl3e9FU TWzE9yiaEPCXqpqpL6I+90VK0zMWqTn2QUuOyOD+QKYJStiQ0InScOu5YBxf A/pzS0DctMQ0KwBJXSkeaCPi6fD6Aao8pk62Dj9zZI82Obpcn5Brs7TsVdkw CmBd9Spt3fzY2wFX1z5l7ZI31XUL+qjRtlWro7Z474Y8+eITbclBb1pXGrbS 8yG1xy1bK0XR2KUpnq+hyhneQ1Qc6/l9baHfJHonEEEGbZJNy4Y6iJXgEtiN e3hWmqLRTla0raEsNKKHsmi0UxZtHWu3pAn64D57h2cqXAUTjtdurvTtVW+x 7b7VARNzLJP1zskA3nxIZG0poU1LlAzsBQXw0gUM/MH1iwKpEUKaE2d7/j6Z eN7RcOKNPfKPg0uy9/6HG4dcfbr84b1D/s6idN8hryGw+4TwBfnEwGHfscDl hBAhjugsiqPyAVQgB4/BD1SRIPUrXkrD6ABPkxXpvFzRHDeBYEkVIBZOIa9i MD94mA7wC8bO5BC7R/8u06RIQYOq5egdW9B4VJ+lG6rOiqejqmHt7qjzbZzG 9X9/worT2Bt6p8PJ6Rl5nwagjJB0GsflOGPVETnBkvcQ2MQP5JeqwJ13Xk4E rLQqSVFW8zlESrTEoCgEpsTQAiGRIve8EAfyItx8VwNCUe/udMpzXrvSpz9s ymNfm5U3zzxHIHJMs9Y5NHJfxRDzGM9fI1CIa5oU5P3NwNHu4Qav8RKkqR+U E2cP9JLUYVaaxaQ0nlFVt663QubRPaZPv0EwHrB7lImYIl+5tCrTc9KUiEi9 8aQqfub0+fkzqyXubCC3LIjaKO6WeI5NlmKyZ2dovpjtTQ49R/7ud+yQsC9Y OkXQ8YnnyN99G594xlPrcetooRKrWU3t7OPhRiSNp1meLrOyzXk6gwFVpQhW a/6DCskt/DqIVDU3qXWnajPdzgEPZi9+BQdSjOvKB149PdoO0eGwAt2v8oLX h9Ko8dPW6WUQ0MbZegffg+jHqdq8sSuP9dhlc8IDrcS0rupuYvGBZ6xipWBL el+HxiqgV5pdP8BUaw5pu1wb5krBO6nI9b1Z+FRCPTTVv1F8o66xRqH7Yl9V y5eRcmcdWXiGNdcp5iKR2pGySq9r9cxNn3buYwYCZljbGbZs1tSxtTzbkEaK YExK6pFm0M432Ha9Km7bumrbrolnJibKeE1amZMcozzXIo65At2w0RpzpXua wni6MnmWo7uTXisAQUICxisHwem80etQiGjGMvoWKThOdKeW4r+aoHm6Z+JZ pCCOZ/H4aQuL0EJxrXHnuKvB3QhVZ19XPmVX7oeZ/dylet67c6L3ZDLk2DNx u+FxzXwezHd2k5RJap3WnliMRI+0NxlD02i1zZJptNom7XPspiqnCR9chlGi edGnW8GOI+4Yd4uhtjAdD8OI4PpMXMesxcWhYRnbJrCVxayNMHpNZP/SwNhQ nfTW9ONE9G6tGVmtRCt9k3rUzd5aDUaoZo/UetyRXklRPDMQsAYiG1AZtBaR NtjbTOPfalRln9Oj12/eciWoX7DwDicnlxy0Yy2fXR1eHV29FBxvUpQ4Ekfs 24tdFKm5AvEjiXU9Xo9NBJA8jbXOPgvATA8zO6fYWU7qkbmqiGLRGYTSjhtY 6Jx3t3JJrWbUPD1W+y5Lut2Mh3ZPk/EdSf5WDWjire15mBrbh3z3pn+vQuBQ yOT1zcwtkPj7QB0QHD8yCoaDQb4apZ6TGc31/IwtSQNEja0ZmtEsp2u0CpZX uJvTOZ5V/FqBbqgXQ+wwYMl8DcIO5Ee5HzMTbAM50PrfbTmN5VyfBOcYumk6 +vq8Z0UI6I0I4gxTo2N4fCwojQzd5npFhLDp9aees1a8j8DWx2SLl4CknXbA YDhV7KSx09gHJ5w44YETHjrhkRMeO0HsdPd8zJS4dXRa9SO4kblFNUOXpLho TMZ8CaJe364yJH3WBXceF+328YH3dWMfysApw+YIqvQWjZiquHXECTkkdkD0 63P7GxLpF2H/+RZSvcBR3c1TmPXAzPniq4wen+0x/r+/9mQ6+MMmJk6b3vrI 2pgofmRgbyO+6UgsX9naVFuLe81bk3b+rY9wrVyprcv2w9COSvYJ/EsGYo7l j5wo7yFdR9sUjhrR1ihanbZgJb6nAskrLYqLAWSFqCADkiZILs1xjkt6ywqQ KpmxkIIfpAWhCeCmFffE/EDfKmQQTHGryE93qVemcKMaBiVfiwIqWGAWG1dY tw3ki9BY3vYpPGKE3WdwhwXfvN5dDCAsL0PAXKZYDPdBvW5dcs1KNW6BxIcN vZVpvWGuelCTTmNXzhEAm0DFLIGRxxagm6RzsL4deDV8aaO2JF09mbQ2GN0m nSmptgac2kyXdma9Q7QehpFpK7Vsqh52VSZVHu+57miR0yyM/GIkaA2DaOku ovk+rMRhzjJGS8LP1zae1RxClSAa+4MG8VlD+CMHIKbz2VxQGvFH8eIz+PBH DkFMa8Mg7Gvj/1gpq/+8Ulb/eaWs/gxKWf05lHL0Ld+z5OXIgrsi4XfIgNcz B+jkRMyfzpXjE1/7oKLiKavWtni+r7bAvXOIaPylroKPYJXmt4SKEi8fkXTH swq3gqUPlifCyBzftgdXyIEkkaoQ+6WX19fCI0bLhSvdcWfzWy+dSZhH+7bX dpiiQmfU8ElfgY43NZVN/d3MR0XHKGMT2+GbZhfCbG6Vl1qtndKjfoSg8MVR b3y+FefknDoMsCCLqmUftjHpz8Q2jqpuJTR5UgJPG8RsKkS3XgU2jcNOzz6y L6X1RN22EYSZqi5/fwral/esrRVLkX8dVr0ytuu854jMk3VMHXVoBi4qrK09 SuvLsarOQIhxlGHzBM4b7dZ2iZ+E97RV0eqwdeJ5xsAw44nneEUfCgEK/sN4 uzUqkuclyRme++Gfccol24UIGjYIQyFQ1/WFJ3trQYqvU+HpG/shG1KuAFl9 jQq/bdOt7JxotRlxXb+Gxz9jU6kv4qRx/2vBojKlHPirxoU77cdmkGU73Sm/ oLP20zr8peD139kxyydP+Q7Q7s53I+5V+GfB/DwCo6d9F+wXekfFU/F5sO++ +vny7eub1z8jl+vzY7/8//GxzcfHRvwovFDZdPYL80uIXjJRQOA1/t2dOzAN qwN/KoAuhEwBkUdl0fwBy/x+SG4jmDaEZDIkIiv2HKafV0mCJQ++l4CISTEF 83pG9lCeAL4CtHTl4kL754/zecHKry6eI/QcFDZ4vu8g0i0eKQecvYTeRQv8 lpwLjM5fL2CU+y7fqvxxvjf4O37Yb7BPXl1AfPo9yKdi5AxCs7hggk6Kb41v pvMjgq2jE4FR3Uwm+kiD9VRCsHrb0EG4tZRYw1ClHS6+3vLVBRnUzByQb74h X0EcVricEQr3GJDFYyEcBLOMqBnQ++sfrsgxDAjID8eKzMvPIvOyTebks8ic tMmcfhaZU5PMLXuYpTQPYNFylUVyKHvy738TeYOiQWC5KHDJrxq1h3SBf23y e7IXpIx7Ip5WpAnhSrbPB1tM74WCj+6X8cgtWVHu1WKUKQ5+zlH1w73TVHzR Cyyngx1jwQv3HITn8sG/lrxp7JCJQ1zXbSNOZZkQfG8Vx5yG/gUmGvEJCHIC o6YAvPj5XxwDlitmPTTH1zVB+eqo6Dk3TvwV7F5gFTjV4E1o0I+khQ81ngxg 1s9EAnF4/qmkBrq23ryBl3RpUU6LMF0lGhg+BD5DTsKtYxw/EA4CqSRbIhZD wybA+dAzmtQjwbiDCQspmASKh9/jTMWIUl/rqJPectslfLgGpry66oLnymjO 5zAfjlNAk1+yYIpucxqzRGkLXC4AGM1FThcSDj9fA/8pbogDHWw1hZlyPEQc ozDwKUHzIpP0F0qUvNMVTcppLRI0VgIV1xzGqHNInBOf8WwZ2DfiebcmHV52 nvKy85QlyIpAkUHJ8icFP1MjatOctQl+QI4Ph8/bz9M4noagK2rGsLjbCX3r 1K4804LkRXQvxiANbT0HntLzFrikiR+muQw08JOuZwS/6cp7rDL8zl6A88SW SntJQBDhn47F09MCHY97TgVBTci8RxytskVCugTnhqUQZOGNYN7efk0G3emZ 9ZO2NL4tRohQjK7RoU9GiMD/5/Lv1Do1EVQaIPJBWE0m9EvbFOAfhQBBQtcO ueSldPIOxDL6JF4xGZAXMt9X/wYA8XFBfsp4jARXbxOX/AT0rvmDN8grH3Rp IT63yr916w6U1YObqTyW5Dn1Exrg2XVhyZrHsBBBJ1bkNdqNvcHYg1gRRjSe yL+H8u+x/Hsi/k44XGvUavATiTyRyBOJPJHIB7KTA4TTfELCWCCFyObzyI9w seYMhinDQm5t1BERp36iNg49R8TEnNiHhhgoeVHU8VZRZRlEfbwFsh3KT1Fw oiNBiGAwx2nIQE/tE7nkBoyGvjqioq5lGRTq1yQL5e4wwwkhbQXwnOFnTDBZ rrNmAzmIlhgJQ3CKVkafvxyQMPqNKy1LCnGlrH1EPBol7A6ZJ15GyKWNK6dV hi+JJ8KE7e2rIhVGrogOQatqxcYmmuWFlb19yFdkZSqatwNTyJ6vsM93UVHi h4xbIdW+0pUe8L1BnEIU6PBxODJmk50xuG6j8zlzCnuDNNFwBdKjZA/azKny xZaZ4zzqCIK/sYOhnzlvZOpvLKhnYMC7PP1ym4QceDgQKfnAMnwQwg2IF1zA XtOJNkiHHHnmDEDA3ISB4kAgVFSQSqGNRgMgtchP8xzVtPbOQo+UdhT6uiqi ZYUqD36e2/LatuMTEKbmXiIm/YKFbVIKXDfZm4c9z4FI8LyvjYzNKSFTrWRH IwraChIVKVRR0pwPFQM9MvYGqovNEpD1HyWCmtfTaHySKG0WbTw+BXVUrths WOU0m2KmB+aolEIyIXA7GNi/to3Hd/YmLZYzAeRah9mY012w8koapDcPN3Tx gS4ZrAEOPTAoZLT0Q+kpW8T1ABd64M9goQZTvWEvTsWH0N0QopGWfFPIQXnV eVbNIVJBMV3w6MPo5n/be7vuOI4jQfT56hz9h2RrZAIC0EADIAgSBDgkRUpc UyQPQdnjlXT7VHcXGkV0V7WrqgECMs+xpPHY3rXX9+zO3N27M7tjnaO9Y+0d WdbYsq0Pyw+0XynqN3Bp7z7dv7ARkZlVmVlZ1dVA44MSNGOiuysyKzMiMjIy Mj70jUd/U/pMH1sMC6ROaosK3upzXzodlpYOXSMo5ONKJYh54MEIFwtPUyfN d72g1+8pfSA31IWOmDQn7zrczNEGJK5k5NahjRUz9Sgkoh+WhLUCOzKVKTpR iruRZATiYAMd6dKoGnP6smXg6Ys3nv9WBY61JBsZV/XGk1eRRE5IG1WF5rrC ZoTgkhcSJO25ar2sMEP0SoYxXks6N7uXnJP2rvQvaQ/7TbooUTmuK2eCsWSJ SnomDdMzhRwgEHLTA31K7aCOh4kxVP8yHeCb4YhRB/kR96MxiScOcU9+UMXy 60VDwHcsDTk5sQMMGpo4eOOhIzM1YyDj2hTkx6RTuVTHUrBEsJEBSmWOV2bg zFhRLLjKQNNtCV/L5cEY/SthktfzFRA0JZnoOFYP1uryODaWsmcyGP2KRoGA tdJA05iuuZAyjYdfclQRgoZfdoLgCLqMxxSTkTNKOrrt9Hg/kXQPgsXPtlwv bMFhFFU2oQSSfh5Jq/e2UP2oD25NIs0NDVSgxAfMvdvs9FuUFiPClBjwfn60 EsNVFyOnrWoZGc9QpiO1H23VA22oV9BoCJIf9ECdjAOfn7UseM10Bb3Ay0FU +7If+FrH75mdL6ctyU+1Mf2Q35rvDNCW7/2yJf/WKtGOH0dlO/6tVMO+1AAJ hn/jDRV66JI18Dkm7VqdeKooxKSmkP6r7W/pHVcdT/saP9sXp9JcYGbMIsU9 9/R4odIo1LNJDAoxuqWFq2ozCU/jBoQKB+PMxFpuzO0ZHAJedBWX2SaIMH3e 6Xub625zQ50RqHUsifpkzKo7q6qBotiCxMMtFt2gNdsMOsfTycrFg01ircjI l9zDjCKU+DukEW+sAi+rZDhKSMigiUyY3NcZQhwIGjSRnhfk6W6sAkOikzYe Z7l+mg5CRvAMPxDREvpUIoESYPEd8AtrgEr0gHJwW5rCRFmbqFJFGiH2Va6D CTi9nuu3LuGdn3yR7BlHLffadOPjz5B1xuigCE9mluDPOZbVN5bYxIRnUzik osS1NieybEoebkrcdyXdjrAtKBuqisUReRs2zesB7E1jHpuAEwb8U6kyhQTZ 2UI/6mPs2smjjqOMwTGIjtowEvyZsQq8dcyb4G8f115OKxknM26oACmZHTnf dA/Wpk2KX+68VW0MjwDeuDpibd7wWH2WCrd0sWIwLv2qwYkNJAMpfldgFbaR Hw1kyJ8VfMifSAOClk4B8RwTuR4qxTMqdqEF6TRGTxzYxq1sChjHogMi9hth Hms0Ql2vMwbaCK2amoIgJ6NI4cjJWrlsk2jKtkDzMzmKfuQdjI3b+g58UiH6 PY2QmlrR7y3pLbL7n6sMyP3Od8bcZXEUJE3LJI+iR5rGdXZOJxwzTCFFeqSm oMZBD/VIUAH5ZuSag3CrTTj+unS/l9iilDcnz5P9SW8dunE/9L/hYIrO3C5U oGV+OlM64k+Tn4k2yWNd6fD8yA3ji+Q/wTcj/TnRmZhMUll0DrC6gSXiZ4Y6 XZdYOEq0UwxdqUjWVvok048y8g1cxSi1H6f9wfkm2HTLvEbdxTXAJWPBGKqT qh6dRlOewiyaxUNlwFLqlWFSHHbqqdAvmLeiq6ZQQXL9aayU9BZEW/pymHHQ RtW03EAN3CnsMzZue3f+Ks3Ya/XjZF4jVSnE8LAWmr5JBPErySYD4HBbXAEm F04W2UToSzddXJKqmNI0tNgJ226s8Rh8r/Ofx0zjCgcGpuKfqj7swnjbjNxU s+k8/RB1JQHdzqoQprQCeNtulFhF2wFHBl4YYefqLqQadQymj16xr4LXlOY2 Y7R+6jeIqdsP0wdZI6Ix0JEMssg+o248VruICTKkHUdvrBpz0id2i45t/OM5 XefYXsQ5hLOUKQFJMvJFkmGiAXKlrHQxbGgMVmsMR7QxVct93QJ4z9BKBsqS ZMYZsT7OMlJ6LHv4tOsGyt6nnGhJBZAANkkk1WA8A2VkkXioSSNSiNQDKQDp Ap6DqNKC271ypBWMZqPTb7VdaUq+vjp99TKcnNeEl0CkYEvVyuQbYABG32jR uRS0XEVoc62HHpKvmtFaeWKR9FIXQT0Kx/stb8ONToDOtOEj7sT1qzIhr+2D oiPmDW/Gl2ySFuVFbMcNgwTS4YEGTidOHILILvf1wP92HwBDBbHQy7htSMqL yYTBb4ZBz+2HofSACQP0Aex2oe9pfBn0ldom+zE5LXHTX+B3tlGlj7Bp4Ivb fm5yPK8SmuOsGYedr8P0vvMdgUTo/esDBoqtCe+wu8wVbC94AtjfzeV4bzne W4723jKUiqquCjibrmm21pzNxVio2c1DHoG1ASlLeH6GNEd53WOu5+RBBiO7 fuPcYvJGw/SivzUxwuztzboIk/uo2EmfeeYZduPi6o1rl29fxi/kxEjn3DrF GFgPJaktG5eO7XqdE9m4thfyjHfPQxgqma3dNiBnLXbDgvGklzrS28+KT/ud gApgmucVbhaDp6EMM3YCLXJ0oTerKB8z7vP1H7mlMkXIWPEozp+XAxHHTpx3 LhL3C4fimeyZ7NQadlN15fVsbxYmK2Kz7Mtq6ssUTMECw0jPNKIGN1orFY1x 5BNSs6SYd4cq8vQbhuGu5JUpgKIT42pS+DJ/Eibt8qeRWkX2aw57cilQEKB4 k5yMsv4kjDuUZL1RBggS7nJvU+5EaKxi/rf7/Vx96QVN1bNd0/C+LDc0NBh6 +Ir3mnHJ0aYsPdtet41XHX5QGbext7xqtdtiEuVSgmU5a9VZc0CP1bR5mDMG AGy7cXJPD5O/xN3dWqvo7sVdeFPHym0Z2ha6+CbuFbCFDpeaDxOeLIS7sbCT UihM7j2i0+ZnMktAhH6aHHP0IImiCBsTBajWyvgBvPIhtwJ+kbFekxejAlYm 4AA9XXfGB6XdGoJAd0Pq/GiI2iTFPZOi6uZ5CFHb14ouOUlFF7+l2mXK9vLC UfKfeDe1Be0ndJoxXROoN5PKoqGbLFtbiYOKuJLDgSbXguOVpBdsA9Kz13Ga 7tj0q1+bxkvWrznd3lLC3wbIOQ7SiXMhVjhEW0BofIGgVnqb9EUX9edvvASc 4tIWpSJSJR8aHXVBgr/gwRL/pjbJE8vK1ZYcjHqfi22TJomP2Yu1itZX8mC9 Vsl0x40HKS/wONJl3jq9rEhgtuCby8YIzJR5NAsbEzXlfYeqthMWUhlmGxBL hkN/SblehZ0B+sxRXZMFoG18mPrG23ThuC/4k/L/8UWqEkzl3sEEM3FZqagG CnoDgkUWWkmT85yNHgRBV1Fqf9KBvaC3Wg5BsrRU7vT5ra0y9oTG2hxV7zre hP5MWJY9tVNOg+ooshTUzn7yAAJQOQSuVKxLMc2CmVK268aOKnqJJRPA3P0C l/ukjEZShCl1N3AvRyhFhNi2cgQpcrUQMhHBcEvX7UL4UDE3yGRYeeDiecaS 5EuZkOCjkl2LOg4GLjXTI7gchidZQJGwX3pMJ7kKplJnagvSa+y5AYivmSvg HCHMpxJX0sW6IjtZrszOVNj0CsfQ7AzWaJVBLZpT9jG5NHIliMySaGEG/htI psz6ENpGvbFd9wO/TpkWQA7WRbXpFPtRHCYEsOEJnlsPAvA7TBRPsQsztqP+ pRcvX/o6e4lOeaRFR+RtVul4FRZsONv8bgSTDqAj+3kpX+FHiusFCmO4L+i/ AYWjkA8uxfhtE2loHudlcEjijZ8frQQntRKnIxhdMdtQPwN91+Q1MUEDmgy6 nzCd2rgJlad3Ql8tUA9lDsNxhSWQB2BBqTqLaJq63/BQEN44cdCafo7I0MUj OcUXKBE+Vy8vZMemnTP1DVm+kG4wKImVdNLDL5ISS7kt+kmYRt+3N0lyqOie TEGnheZZga3xgsFJUD3ARBuL1XtKMUiLCGA+0qV7ti4anX5Ypgdam/c0wzhH tO2eP/EPHdfM4QK2nC+phjaTywBWpJk03sApgqiTGFYmrd7bpW5kNthS4RKK C60cFE9spzvK8UnL1Dx5xFSorTpNqXfIit4ggLUTLqxSXePGX/BYg3+Lj0i6 9xbtYFwDpab5ZxpF333dPKjoenZilPeiOiUu4m2zO4XhkFasCZsbSIq5Ijke bXl4w4JpA1qtaW5UTDySeN4SieRCBNMPNsOqZqdEKPLV52l1KrmRKgLQALuX QxV23iQOO6sfdUdGI+UsZVkKVncvn4v/zF3fvaEpS5NMF89IKcxpsjsaZ+iW R2AbMzxpNM5xZtw3KmeiJjRVYO8ecHR8S1x9FXE7lHucQH7GQy6Zh811Nuk9 oy7pNj+xIw1ylXANlxVtZvIpt5tkPF6q3Ak6t62IloHGs4ZBUoHMTtviMax7 dOsbnk0DUsBEr9our/hGlNvo0wY5usG98o7WeS7UxX7R5XarbKRg7lFA5Hos EWXDIQ2tixYwqlz664xYnl4t7wU9s3s1FqCXRMX3annvRXeIiiUCzBo5CN0Y YT89hsVXXHRMYyTd40BJ8mLLQWD2sUrJSeDoQOlIMBNIsJXpLZujJEn3QS+a lIGQWIuv4XagCzyN0BGlBadorxNVCoIWOe6UwEd72IHuD89FsMA0dWANY31S owTGc8IENAbTpp2Esys5UJcFXy4lIX7S2V1N9TEYsfcwNYXpC6+kTchdn5Ri C8sz451cOmURPMyvUEssXq1B3loSj9XDE94RAnqdKPApwpfHA7dSf0T9fCWS oMFh4YSIw1yQZHxdc4jjFuMyAxf7iTFmylqBY17rBE4si05m61DqB0GBzLz3 YiYtxegkoPXlzuWCEh2IV2TMn+5WzAGrjCa6Uial0UMFpcbaqBFfakKHAehC 0DxsmWXBdfQAsdudoOF0ClKIpYN3g6gYkUsZeB2Vz7GKMWoVD7JNBhUkI0vE HRKgPfaQ2wJkBqviJjykUm2DSFQYwGyuzRF/OW8Ek+bNGGFNpCneftAdfhP5 OTAqH7eINE2Xgaa2Q7tuXvxjhVWKxoKtM5hP0qCXwb4Ezon+TJOrnlVjeuxR N2PjJXqWhKpk8tpV7NRK+tEoJn8tSzUJn8EWoHB2TwSYtRBA3rWpd73Jr7rD KQrl5FEq1dQj96aomFx2HTNRXxk3DH63rV5jZeBUvCZgKlRm1thMeZ+iThdt YFnT3yAhiy9O4KSRjk40lMNvgSmGdi1jGTB/L4BlhxXJtXw2Cl71kVJ6JZkn Cg9EMkEBnMorlEWqAqfxikxmljt83tHOVfLNWMYccjOVQlDKioaQZ85Uzzxb DCtypwEw1SstBgaNECGxQmcxIE+6jLADhip2t0FgkvUHwaGAvoCbHMLSNlcI jteDq7DMEXphZgCmKAE1QoZAuBxIXnfgmwL/MzlQ2iqSqlcxPtOkpDgAo8Rq xdjKt4J+p8U63gYdQyiNC22ddE1PGCdFgPtyJcqeL7y/pKrEcS4g4WCB6pbM pyfaUIJU4XWGi4VyvXg+nE2cFt10+W4UG68R3I5hIGJpuCLTatWQeVGvrHSK jL33a34j6i3xf5/jfyolZEPUs2gu0F8ktt483ehLqaTkYukQlZXcMR2k0sJV FcobcmPt0tHTU3KRNBp9pYgGR1ZvGaiPEJQh56nUQCUHilcXuCa3LywuoIEW CJlcRWfAIZVOe5kzakbNSBWKpRzgRD/gGzksVNApns0Fz1cRdDi7dqDDJIrB TB6Edas3XqTu8qYGqoPmbNrGoMrvrru2DBSsSt1AcE+1wLh+1KfYSUfmoubV RnqgQKCOug6jbtM1Fablxt3CZvRJvCIU/rTbCZnlHoQNuA5hFocPoBF9NIGU iwm0+7vVKGwK9xPzfUpfKZDZn5EnUjjFJ0kiM5cBOVkI5nJfnn/HwoazlxYP BJVBINc1rOp4yYmQhTANsFMxB5aThYboO6Z5gCrZUrKpS6VQIXHYFyXsc7Mt akmFC4yqKtNlvPW3tiNva7vN3JYHSlNEdUixDOk6phwHBkZ1UUloJhNAu9V2 lTldZ9thnSByI2J0hKMghe2gT/JcaK+gbIpmOJSUxzEZbaT1nhzrRIZaGa4i isLRnRel0eWJ1WDDUVzOqb6p8EESDfs9uQjJ6i+9+zEmI30rJa+35MXN99aa ZElKM35Vir1PYp9LmVCCEm5d6Iyu38PJtsY1oe77pfh9Sfgi1680tEFCZ12/ ZC62dGEhw2usVezwJa6FZT/6zXBy7QG4z+g1l+3WUzOwytuclJI9BTLN/eRc yJmfGhh54Xjdp5zEcSU9v/Nv4eW5zbx2F//lRimY91HWoIVScM9f/UY5QEK1 JsvIE1OTjyKXWa7LekLz/DsX0wvexH6el3zq+m7zlqJwBu5eimUpZKGQtD6F KHOlZLPOXdFCwCwrtQPUzE0w4LKJqyX35vtoYmdF61SsDoSiAD5v3Ja3OHWc 05aEPScCXmyJ8zElWu901DSZSaqB6BUtndxrfBgaN2D6duwmzWSJ2Sxgv0C5 jqI715WODzOTHkoZYKvf7W6zc41weoWBYuXK+puUNxUlFz+nqpoNckqtQJYY ue1sjFcz0w7hj7N763M2x+Ewn3yprqvS0Jpx+4oHh9/gLlv9xgsyPFDTrLAJ bZQB7HvhlgevFRIxYrUopnaiOCvfRWdVqlFFPFK/RY0+fuQK1CPXPVvi5GQJ 8Q/ZyCP7Uj2H7C4KjItqMljcLV25opZQnkM+Pn2S162cc9HKxUnmLVxCwCv0 b/GyRe2Il7qNy6/RAnonmMe/u6G2wvIropnnYz5qXOroRN9SC0NxjTPTlEeL 4gmrojKNVlEqh3XUzp9gBrJLjgwPqSizc5KCj1eUzwfLVTpRlG+ZCHY31nOV U3UZ5LGkNhOWrlYqRuRv/m5nTfUKVHV43reeN1TLhsUzMAXdHk+mhATCwGye 91mN1VbAkTkwJzT5sfokphPrNT8iAcNZErsgm9cBrxi5P5a8axxVuexzvdhF DmdsY4mWKOCBg7gEzKBrZVt0t+ghz15M78smMEoHlXH3V9ufEB2obcdzcvGo wdtpI1BVzA7U9EeMgxYlaGLZIXAxIEepw+5yBEXJiSRIXuqlewN0CGkN4TEc Cv70HAHLKVsuGZUWMEZEeSUNx1IKTfeFvKd5EorFVVJIDgp7E70VSUklJZxZ dElBgegIg92ypZmkU55Y3UZ5JtPLVO1KL9Nk9DOekzAl68XuukJFk1Ilolxs nr8ZYHW5TSyBnji2SYuLR3Ki5WFxJCztENJdl/iGyBQxbGnN1s2IyJykYtHr R+blmoe3hlknafzVlpfQYr3SrLC8u4k8a6zphzmWkzdN5j6YxnwIZj40yS4G 3kFQh9uYy7+7KnLkAe+gLUiuDyAcFtRwfVF8roVnGSfNEYOZKQLehIoYiiI6 lFgOfruYVh6Yhnn3k3qQVFpSqfqJxOFZ/s6xM9VTpKhoZQdyiQEDxBuBdEHD 95wMwWYhGzRFjPH2GNOOLoDJt2cqtjS47SAOhKyayTiVY9u0CM8s9k7doT30 mbHKRM5IJmrjE5hJ3hKGyDcS2Dcj9yqsJ22O1ajfiOJwbHbc1IFOeNF15zrl vh+3xTEokwCYtIzXPTvW0uJM+dmVLTWHbNnn5B6Ynzk8fdmKljDcBjG1jJxr kyjJchy4hCuVpcI526jS9XxUCdxmpGwLTZTvLznxenWtEwShra/p2kxaNINR N3ob6mWaLcyMmx3Tn2fZQnr3JCcwRt2cp94mKl3yy6mgHKAmKFQSj8VM4jbs wpQIQrfiS7PXj1IVDZRH9MnwMC8UVWoTGTWvXlZCf7nMdkQhDcBqiIY0XpFT lqU7y9KEPR70mbzZlfCkGsri5niDBKL+ZMS4yRU+aAtBNMdsnQS7FWhSBQbq t5wOFvZB6d/30bseI5Objq8XJZEXUay1DWcrr0llbHGjcZhyic5evnVNFlcs FE5Kxs6UGQr0zyWlmRBqst5EruAwct0UyjstAz8fF/47wTSJmcm+a5ZHdBdt mRORU+rYEUnBcb07fM2JZV3noqgr7JoKmOcrZtBW74xHSmAjRTxIfO0CXdLp Gwej8RUOmf7aHlSU+y394bKBT71OnJ7dXqYwYmXHXUqyputZ5TaVRzGJqnZb wxGdJrN6xrhtQcUz5Z4M+LOzc5XxbL5daCk8a2DtAwq8UN705vUsJBMSXR6+ DKGF7xU738wk8zKXdZSmN6kMjG6ReP6+evk0hdL5dRIw9WwKM2JbiZMciu5+ UVu4Ol14euVPIV9JZIqy1Y6ojXTRDeMQp3PNZbcCysyarLvcuUjNhOs444po qaUsJe/HC1mZrD1UoMFyWXdx+2oLE9zS6K+ElF5DFmj/Ju9ctkpLemLaWH9M dVE6eQ5X9so5yimxclKpxMRufvMa6wYtXiOatilgAlQ0O6BUhk4HMUR3MyTI m3jnmuwhTjutzmgYfmEKEVexWvxm1vObQdgLQifx/8ORboUeOkKJ4eFl2Mo5 2ft2z11+leIUptOpvFpZkXk2aduqKpkFdDYcO1lJNHxBO1jvJ8eXzpEqX+H9 IU7orXh2XFl3O52Adfvdc9P0XSBMrZdaJRSk6UbNHEgiCzY/tjccnH+/F6Tp 8xJgTFtGTcRpWqzppMAx6C4bigrgRFHQ9Ki+t1rmy/VxPEiv5M4aOqU9tuv0 +NaNKUIM60rGgJInx5KhKkOkxE60paeTKin1SgixQhE2kxFgqSkA3+u7UdPp uWOKPMOqUtoA/GCLdBaJ8Ij9FRwYrz6PeFIIYgnfzVugvKfxgnBb1WaHaqB8 ORKZO+ZW4MhR4aoV0WqWnT+vNII1hJlPiRTCYhexsZqW+D7EfXD61bGxV1vj E6+OTxvHAZEpuoumybHQHc8r2GQcj0Qzjk1MJFebFKMXp7Kp2rjF6AadrFgq RWl3vvxNtUzjqSl8ck6vbSSgZzToJM1P1xZ4S+Vnmy4Ik1dmX0tq9m05YSvi ltNYZD9NuYww+ArH4Gu7weBoUFgeh3YsFqDRjsjBmAzWWcvFbVrUIeATyKxP 41BEBnMnRIsTVqNPpJWoRaiHvWN92ex6kfXmm4Eb4lUiFfhN/HbQU6jXgycg ak9YgsJzvKmkEwKooTpy8pLDFF9zr/H7Ddgh+eLMeGBI9wYrZpNdMwYVhe9r aTpLFJTbZmKjAZ5otnj/1zOrBoUpF4is029unDDvR3KdfgZXKqSbA1mNEJFt DCYZgyeLTMM6jaIs80iui2Kv05Ej1VRXPctWko6Y3q7na03yE+sZHlINIi+V dnITYKBY7RPNXEVFsnQzj5JH+YRhRX99YC0FIzl/moE5t35BmcoIhik6a/of aKTSxr5vdS6GqnShPZhKMouPbIC7qc09kKrlq3TnElMv1V2uaIU9Y4W96m5m 6RiJ0fQEL2twhFtPEr8rNW418yLV49iXZTvJENMajlPUmwUuyy7pnLsArRRm GWoDsV2gL69GUrSCNclzInec6muEaMlscnnTOldqVqq2s4dVVHqdD73QJ7SF PqIxFpWz2VuxmrKr05DHJ6yMYiMSQtMKgD1IXU85juvaTPHLLkXEPhThKSt9 yomfzIUpnQDTIxYZitBNAjVWvk658QI9hqpuFa3gsYsug9w1PFiTpaySoz51 l5VqqTm7WJYZuTJMJaRoXz6hWaaPzpqd+dItTS1mK5fplU73XIRqUPksk6/x bpLvgQpj0y11Cd4WUa4mZ/OR5TL2HlTrIsLC8PhgrwPiriKuEGbVtkcWbYnG jvgEbIdDb4bqWEe/5Haj+I5C893LrlmcavKwZjRgZ81V6gfIgHvW2mHc+Epm fhG0FAG+QjWpZZLLUn+7nhsbREO2EpWrbMFJnh897JI3xXwXmahKvGIPbZVt DKPnDLkiJM4WWomIfjdbMiepx8h7oCtBABRW4T2WZRy8ZnOXa2pp2/O78/a/ XW99+1Q+ceSXtoNFQNlbXd1VTWN26k6vpbftNxVPb+ON/HqKB4/cDsZmJme0 tHJavlNxPLXXhk9ZasB4Uo/nwv7QzgZTZFj4gGyVqs9zDxaL51MZpEDcA3IT rbx+8JM7Ldloiq9qAMX704hbIlWHF3gbJh7BCxdyHCG1Axa+w3hLKlLLZY2O 0fz56v7zygJutC9hn9odDDWtiis5KneVyCcBLqNGNKBXFNd2gqq8ZjqlJZws 6kh9A9Qbq2qD/Wk+qkqDaqYYFyefudfRVKgj5YSjTIAeYWc3QywYGm9TcsSx ikmpiu5oKmzrG3g52+1xczN3SeqFQYNy/LX6royhhlcZVYLt5W9hfujfDxuJ 0SmokNniY9pumk6pojBUxRqJp+/oScts05Qb8oC0gEUBlN5eIrvK+mOFgEHP aYJsFbC5eu4lXKdKuWG+cCmBZ/YcZfNUNqMVEjO8NzFh00m1ZAZmYz0QN1lJ BWNMG+ck1qfbMSypYQpI6nVSdm/Jsq9JxrS1LYQjJ/N+KgiLm2c5SVyzNz1k e4orwYgOBVPZQpbKwzGL4B4UCbRL2iaULUHXoTFjnhtleAm1dCPlehq1x7Qn BLfQPSPGDRYwQtsp8wCmN41jN/QnhSO0enXP88FKCLy6D912v4NF3+9SWckk rkiC4HXu1sR0O+uBoOCPpsfLp8irJXLBXpYjFVe+otPx7MUYDT2lI29fRD1c LhxKXJAlpCiMcs82U6Ownn7q/7C0mZig0dnckcWw6X5KrYpI0y1d/J2gXX6i oHBPiT/P50F4BlJTVsjDq/DSSFxFQBn24GzAiw+BYiELxssr/ZQLD4kmya1x jPvpmGAbycLQXX5dinJ5vKEjb0f3rdNdYreUHHOKaZHcqIK1MamWUoQEz0dH l+AnuS58kinup6KnTAt+VXsd3n31spH216IYiQ/CTwZNz3nPqs2OR/5sLdW3 QQ6jTCs+srRiT3Y46M6ljYFihcq92ARd4i+bTxDNk26IPEVlCPAiB86jQNJX ts0+04C/xDKSUu32RobB784AZyjBU4lQO4xCIVJOix9WWK06c+q52szs/PTp hcXxrIldUl40eI4hbHUGoa3ZmIAEayCXMACUr0+0qfr8sEQes5hPktEDEFoi 1OdE2j6iWl6tgDnSMAMfNwMPtlaMe0e7xTmSqisUART4kepNToM9kbnU5L9j 0A2fRRZiXUP06/plArUGDbZWm5mxX6hQdUFPJB89tSTmMp/Apg4DSV8zpfqa l33NFfS1WKqrOdnVbEFXC6W6mpVd1XK6KtHHjJGQE+OiYXNM2SOtRpgtm0kB 6GprtdSgtaBhWnZwahbLDqqN+5G71u8oB/qIJwSNA3R8ba4nRfuWpsaNi6YZ dm7ZPsMJ82dlPkV3z+V6OGc8s/nB5SB+2HcZdHIx1T1gqBkGoCBKRzQR7hi6 HYcOuqqUUVvjobdxB07DqbeajJYkSwjmw8DVfaWDbuFdt+U5lhsePrg676ne 8qAjVHMjznyTYpln8ibqQtNIb3vCxIxma0ww9Zr9/rCw65I9D7o8U0TZMkfw Uh5Usk/wDwYJ8VCHCulahxfjUJOavBTseJ2Oo2Ux0W+OzIvlTOrJA73vKXcD mUy6GYQYpJvk1aUEZGtMXIRb0Fn6qpwbN3PUUSPmT1Sm0OOdRHUIMwjqdH64 I0Zu1HnZUx3fNJT6XfFMCSqXGYOM+WaGls064we+q2Z5hJ5kdrrQxZQ7WIbB idNEBcY1PA2JQk3waGXM0rzh15zmskVFjPKJxAOSPuNLQBGmxz8yZh+Icglo q/9HLFhUgcRWky2DyqxFQWiwlO53LGOOpogiWJQirSXoU4IFMa+fYBzPzzAy PxBpvKq7jAFpNvP9xXbBfAp2tLQFuyBXMrocmwvMKg5CBQHOGuaAhZ7CGA7C HX6cVjsusQq3HD+W4PnTzF0QSRqmcv43ZhIYunBIMtKiktuRdY2SHFu6DfLu UCs9fw4infxdrV5yUQOZbTZtoc2l5QItumiD2sT7kqbTETMQFZlVYJzHdjIP DvatG+nYtY5FHlyegUWq7lNi+aTfC1+W5NKVGzQ/JAFPTJG3xouyl23ZXu0B SSqHu0LG7mw/K0o/49r4mXz7BFY+5gfBlMpi/JgrnSZA4ngwMZTkwNAf/1Z8 Y66ZkEuIp6STHKHJFXcllIFfnMmSYiKNucj0SZneKb0Ocvm6mzSTKzmVdBSX JdFL2SCwA+otaQXSUEaMO50tZztSLtF0sZo04cFjHk+sLpJM+O6aR6i/TLmk OTk6vST5UbhtMYMpaxuvlByrY6+S5F0T8MkO00TrHiYU1t6gZ1JUU49cQcTi U1n9ZYB8K+FfpIvBNK6jiDfGy9erLOrG1liVw7Y9OddRZdjtt8TLZwoVAkPa 5u8xMhqz7f4VF25mzF6SIUo81y7lCmxVxrEx1wLFR3otTSuRvLlEE/tgtHSz Zmf81JPtwRqPItC4PQQavzUAjd/aTzTeDnpDYhFa7A2JagdWHIKUwDhJPL5Q JCwDYYiyNN2Mlf2FDmTChqGkwBDuQzGlXEPXBDdOxbZsjN84ISisvRd7XTyx 4tm2jmfX4iyuwx0Dpcym8O91y6aNW17bjZ8PmuIXCaClCVxPPBg4Ml90lUoG dC+AENAPjxZPOlfC7hkZ6Nhz2Bl6eiSDEzf6Qgfpx17H23FkUQE2AS0nWOVZ ojirJLdN2A368UAzgtpa5y47Wb8uNHQleyC3b8g0M/CzONerOIdfdfmPPyip mBUsmiwpjM6qAZrzIF+XhkqTcmsWiOs2fgTEaW4E6LkSO3fLvk0lUu7bDEpq xGiiRw2qBCnzp2qEm9Q51JP2cApaEKphcxc3FWLkZa8pSsmrIa8oBgmpnPuJ HHlV8m7CKs3sFxMpJSR0ER1ImKxPsiBdhVH2Lsqy1IMslMa0mlsUJV8J1k1d ScwKn69gh+fx3WcR0BLV6wcMpI5zomjv64JC5pY5nirGWUvOq6kpG2S+Bj/Q rjNiI+ZB+Y/mmP92ZYU4ZRSgbXjt9rCkyrPLK97xr6dOCMc03G8a7vrCYvd3 FegaqmfTubrp+OxF2Jocn3og5asPzBVJy13ehYbKfPrdhuIyNcYMlynloEod aj5TzOaGB3DSY0o0Ub2leCq6rqisgMDoAacW7YIHFdM9M20BLOp1QUufjjbb E3e7Hcp/qD12eljsgxSp6btTQFdMSbHpTq0hait5JR/YCRyKqEktHDhU1T7z 1DZ2Qmsl67indS63/JzeX5TXLdnuFQXE6D8zOtyAjN+qzXUnvBCPZX5PcmQQ +p6tsKKMvVtq4o1MV8ApTRdTXOW/RE+UKxIQf1PeQoGaPLaFKQerMzogdhhZ kD2JrY3kuvnIeVH6LhintgyIBVniwVDYWs/BlujLhi7zNVZ8vah6UYytl0OY YJ9J6qAoH7FpMucJEJVspzFWnVz3Gl6cuLRRuXKP+y6jJc/zm66AbrkdkIph hNanm+hFyN04gDbww/PBlszZtOVEjBewF6Fy8LjeM7PA6Vm6ee2sTbWeFX3L K55lmLXwDWi2cVsZnTuB4UMS7zVP0omTmYIutuq6PKv9ehz3zk5Pb21tVb/d 98KNqIvFVoKwPX0nmqYOo2kYQlSlnCuIX/jWDESJExwczMDPnz1yA0AtZff3 dGJpjufdYQwmtNHpt9quvNW9vjqNplNvbc0NXUBNlLGy6L3DUIy+cXSXeEYV zd2DP6RUZ0Zr5clS1j1dpQWO91vehhudSDLpGOcjNIq2/SB0xbw5H/JgCTRd 7LhhkFp8+T7tYMJgX/Az7tOGrz4hFXpJZcFAr85m4MtkZmhOgRPHdDPowrbe msa3CUttkiSUZ6F3UdNAzyfpoQmDosJkfC7ReZXKHGnNOOx8HeYH2yT/AXrX vqO3y9dLDB2UxK4HizdTTBNfJqL3bBqtF/EwJdCummOUpwXRfWKZnVE+1xaU L3OLypf5mUH3htka5ob2QDy0zGZP46TFl8V55cvC6az7aL4AyLj5il7m5ik9 6E3M3CbFWq6pPHNNbce7Ots0gYeZTKbskLXVJkc9l4765d6ox6znCxrpuGdp 3FEPHaIT/4PXC9GmR3ju6e2n6e1Uj9QJQ27RtL7ewAAXvXDc8NZwGY5oNAs0 mheDrps7DiVTwtiI3nqK3npZeoa/nhdgPsp3nqF33uK1sgsRr9B9X5BemxPT TxxVcpYNnDo7np9bbC4DWBXCdNweQr8WdFqW3gtid1Lgvp/f2pT/xUixBvmo 2Flc5DEP57gfArdVkUtmlJ9znUONiFdqZ0TYxQovzIIp0gaNgNtpRjWAxTPK JlObOcOHM3V4GFlUt8DamZo2vNN8eMtsgh0Swhbn+BBWDw1DCwt8BBcPCQOS Zf+1eL+MzD84CXtajOAKNy+Rp4Du42f1bFIdCkZFi1N8JBfUkaAOgqdL+Dyt V4QsGhi2GhV+xKjEeHjgAKrD5AvFy+rgeKm8Zppy1zI2XlGYWtS5YREPaycK ATQ7Gt1Z1bsRln4dK+73vFkzlLGKeEaZIURxoBYVYWAVcajgs3Fam4ge1T+N 35Yl71eKv4xIEBjaOWH8NgZJX+LMYJ5BCjfgWLnGtHFt4QFiT7zCddQXFa8g nRf0/OV67kn0/kH+2RVCp6dpLOJWE4eDZgU83lYmEK+lDBmRs+byGMAAbdCY KZwMFXgA1qys+CsaY6kADpWlkCWDtPQhTteS1YQaUzQRvx/NKc95fRUPgyf7 Po9RbZ0cz70tNNqNVRQzzNYcmV9qZ86c4cNGcxiOy0BHTo1QAs3c/4q51umG RLPWwINJdvUyReNj9oBJdml1NfmmIQNhbbkUzOvDDNwrSv+v5fCjYDQzQYDN fI8xyfQwNdpk8grweVUqmcWeNM6mS9Amrg9TNBZVbbSyLq5Mlw9/kHsdTGYc u/zUF7k9hxLeMwyd5773G64vS5kDGFl3sCkubQdrzjhoj429JkU1E/gkt9WJ DMTkrC0DTfWkPOEkb6CRDX625SAvHUjNkZ4bTm0PBVaeFQQEy6zlMiw4DvPi gfMjgmOevyIJCS7KnJAbAZw58mhRwByn6v6UDeDNFpXMjeTV8ymYq9G0HQuZ 4ybeDNCQqmgbwsayCDV4U5xKAP0Ch8DNLDTSZ9IyVCGbTDGBHSfVydF4Zg5P YiW1EgP7AeeJcqi33Pblu72xytj/+R02jj5EFPc9wSqvfvM5o4TKLvHDX1fF FTiWaZvZe2zQVsSNGzHbqafoYOQNj4VEInaiTacjy27tFjfJEki6y2cikT2A AG1rKOmCf6iKMtBjfH66ZGaWAcqGA1O/5A86j7H3cwKR5Z2ToovxQm/bxKm3 3CI7YWSp1yFtPtDDrhMbVSaWed1EesvSAIdljTEHSxsr2tl5+WFCeTMcB7QB jAL/qARj2ci0rAA66IP+yhouj1IiNwdRBVrJelaRV5BUKRsbbQd9aggiLmC9 fizq5mCGkcCX+zzeNmLZDxkHBSwVdCZZqzNJyitWeIkDHnQGzb0wvcvg4Wdp 2Wo5kM52lb2MhRAYVkLAHZGGze85KSYA/n8LBigLu/FLJ9z4exhZhBsmoQAF N8+FAlwjVepxCkBWs71JTJ2lhHOT5DC74WzXoR81K1yhfi2KhFl6tSl+WKPb ozTe2ZLZTD59pdKrvKaXjVWfhW7B045X8JBCoL7dBzIXALXiooetgofrs0UP 54oezhc9PFX0cKHgIWiwfsFjUZerAIJOrUXPw6KH60UPixDpddsFT7nDTxYg lxEBUDS2Hgly273iZ2qOvLaUyXZvpk/UVktgpr0LpduSF9X5qfQ8qzRCso9c vFVZGoE/OqnNS0vm8iOZsGzeXeCvMuMgjdbYXnkrkXD3O98hGKVeiaV+tKyS YvaSapNoCObWlsvXLr90+frtHA0+acX1iWXoWlPhLXl88oOFsB/Y81Wxb5TU 0at72AShPqJx23nC14u4FI9HQeTgoZ0omJUf+FNa84KhFR51EphMLZYnls2T GRwaqx+z95FlbxEPmqbVFZ44SnEqVPi0goCoRYq2jlnpiTRMR+qvebpmcSZf dWWRw5C2tAR/0+Kyp+/VU48igbjbUTYZWmoj5sW7aFWUDFxMGM6WU9u+12RH GljyfBsJHdOxyxftduxa0Of+Dl9LBYCZ7ukAQbc1svwzdCBCjLUkvb6woJMQ Eq7X9Bsv4OxE/L5OTfZvFp/JlcxDTivlH2oIazRvG3d8s1jaMFgfuELdu04T 7Y7o3ymc4LXqAQnps6W0cnGx12kNWAhZBbMgiXzCRmqwJF70wfGR5zKIQwcn 73Ro9kGAlb6V+MhEk1Oni2Bio8tM2tzKpI0MmnAfnkuwqFoZHlCemU2Nx9mm OMZVwI/nt61tleclt3hjizEzWxCU2MZxwji5Ent3yhCWARcN2brfyDzuqkDg FA0EiYspqykvu6OuiTYiMgoRnVBpe6sUTYVs2lav7KkQRe094zCf3a7vZZhF TlvHv50BdFDVQXDAmPNGPNRAU/XwhMFiKqdYuDSPQ1JXPj4h2yWnm6bFcblp LhcNAgku3X4CnN2kP6iX5MIhe/wdbpi2VT7cEG092IfHnRGbSNUBo5N6lS54 BH/AOxW5xuE03skKitdLHgj0kqIDlVU+odhpWw3M8Hv+hBRLnTiQpVU+nDZV Im1X44CMj9zSkYMLbqQdMUK0TViehnA+u0QUj+GDwRKOBuVraLvxqoQlV4or XuiuBXcn2aX1MOh6/e6kSKA/yZ3zbWnhZQfahXbSbcZbPIGvhphQ9BKlOc6p wkmXSgiF96tJO+j+Fv54IR7TgnIIEmu1dJweaEs5JUENJfsq+pf6cBC6fLfX CcKMrylV0Aaq3hLDSDwX0vFwHwYOoJh0k1Z5Q7pn3qvyLt1WHZtaaWdPd2Oj Ztbh3kYbYPxVXtPZJJNaLLygVytYqX6jEp1acYy9A35K5uoZ4AJBdxR0+0Eu ZhT/i3k4BCWIiPLEG/GLCBfPZTAYihfFaBbK8UauXOQqRNnkyUcMDsJx4Nf7 PU1qWXLSaYSvwzC0s0qGNQADwgvAqmBx5zL+cjEwDy9KIjfcFHFmpGfBkQyw 3Jf+HF6MYF2M3AndjkcuYCJNCZxBqGveGUbLkgpHXzPTpV/tM6b1nHa0rPgX 8IdJr5ZnXTg+AhJynvIKzUYYllZf3i0KWnOrRonnpFC1fJKJpqpGYVM4Ltla pU/VKB81f6coTZKk7zTKfss9Ym58iOLZfGQ8xkskMUvvyty7VE3+6mVDhqhY l635dp0IMx35KtCs4qWkklaFmctz5HOrnGksPj5JCBhre5uw2GrcZReGOsnm ubcOjUlpcvXyggCeSYDpQhIWOLSHBXwVHYRoIelSSY4DBzuvCCR92kYYjole px26GD/GZuntfDHyfvMwlL511oYilTDi5dPPaQlV6LoWIWBhB5tYCo0umo3q 8XQBLTSYV30A4H1UBjnLVrRkwzYY9OdQOlQHjI3T7wagJmCl4DVfmBGLEkdJ uZ7dd/PctDU9REYQWxJ6KOBx0Kv3wqDntHn5OkXdcIX/qHlX51b5ZvQNbt3T BJnF70pPW5IbJGjN5VDkeZv4vQEChFzBvFJB1+U1NcnollRSwlhXPJ4jKdMU f+TY50wyt9twW5MiAwOmCO31USsHFIKAguccq5OUkkquBS6z26kwk7yq3zpq gq2YFUGTTtlNDUHH15zAzAUV6880evsjcd9qfbYJGA7sjwgB9kcSKfanHFE5 YyHk6c9OCNwFPs16fPggvYPnZV3l3XC3dVUBH+SEXw8TKi0chtT9nrCY+ApV dhNAbQ+eTgKnNV2Tj1yfLSdXvm5UrMQcvgJj01A0U0UJDUVahtMxKQosZgxl Ml1OTzg444dNnhePJ1IWSREiirqAUz05t5iWAQOxbXGGHyRnkuG16eYl4BlQ 5Ne+/rWnV1+TJgV40vE0QO5NojUN3dzG6zUNdH1W/zqX33Behzylf13Ibai4 B6ktpJvMkunshx4lrq9nXErMMcSckwxOCaA7hTa7A3RxGYGuiW4UUxe3spgA Y3qfk0w7SKs+fEkPcew016mTsQrIzQljVHm5vNEOSNea9K8iD3nCvzXP7bRk RgFe+9GQm/npJGQeCP73vPh71lzTCagQuhf7jQaFC/AEDCJBPmnxZjICHMvN dCh6Bgrz6djgIBU+gOL0IGo2itR0o07A3DXEQ/vWoWnlBCco8jxf9KqLp+Xx WEFqZC1ph7orZZ3dn37q3pLI8Iu4doGVWMfx230M4xfRB+gkGUVB0+NZqURk gEhjTO6TSVZl0k75aQiUrE7gt3m+DMr4I8dX92qLePB/nXMVWk+iuhudlVgV ERRnK737b7erlUnxK77gPPx6YbvfcpJfpcaHT+7/2G95TTd5llEeAQZ/w1Qy 4jevFUQJ/G0JfymFvy3hL2XhMQW8E8ZayXVocsv1fA+wFSYPmt79X/pmMxzx VQQMKpIVGWERcSFAX8Zknk0XLeOhE0Mnk5iiIHQYRa54TisIHVRA8ZqSXd1p OdPPN9fhl/T8EbBbLkNEsm12YZM+VdnLsDOuwg8X0bfBAe7vNnC48JbY6Tr3 P0BjCKwFGLpL+FcJ1XRshPppu2qh1J0iSrl3BxCqnxIK3tyPBxGqnxLKgB+K ULl0MskEmFDJFO94gk5B5/57KqFUOsG2fzn6dnX6+dipZsn004RMPyUyeUAm D8lE/sL+Jo61HcK6u//T0KPZYkxxlkaWxRT599/ruhsZIvn33+4Fm3/4+xxK BY3IWS8kFEEgBncIg24hlW7kAeeQaMcPNvss6vWj2IvTdp6NSOJjhkzJarqZ NGfdP77/x8/c2MWNr7l+/+0dFysfdIPm/fdA9/Y2/H4Mn7rbf3zbm2RdaBYC +jb66sqCRz13g2123E2sDLbZCx344LuNAHq4/zZaZzAZyss9eIgfMJVLld28 /17UDeCkqPTUuv822wESxNBlDNA7sLHTx3REvL+L8HA1Q22/Y1mRTtvznQyx X6S/Njpf9deDfut8IaU9gomCXtvZLCbzVStkDo3X3dD83bXR90UBd96kMCBA bJaV686m13ZhtbSq3epmFZ7HrNv3oklM8AL9Uvb1a56/EU3fcpvrGEEQuHGE 0XsJPWA1rrGbbSCc68Pf54FqL7iNsO9twGqEny4yTIjssg2QnRuxG7bxThjD CqjaBCxOPKRlqIR3+yaVVl0vdrNE8jprrl1s/kMDcAC7a1xIJ8C+A6cGGMyO C8C+Fw0iVh54DsVuhvffSb4Dy8MKRTDXusddd/vWdQkIEcAXXVhusDLZqgdK B/zvJacPFLsGdIya6x2nPUm/XuqHURDGDmrKVL8hmg45DeGkEyrriXIQ9XvT SQYlttPvsm8CbOR2fIbAhHmfkXWa/r3I1u5/GtJ7VpvrobcWt8P7v46i7AbY syy3qOPcaWUIScvXvtyiHpVjd//4902veNGpkIVkXEXA2wZg7s5HP/fvpCL1 zh/+nwKhmllzPbnmKv+664Fe5NxhhIRtEp/OnT98rwniM9r5w/cw2qnpReI3 1FvgVZOIzh3nj29ueKzjbgXTID23AsW+2m/wJTgtVuDLf/x0+w707Wx50c42 3xYnmdPYBmmJ7//D91kYwEcMZ9pp7sA0N7wM6dZCq6TMLsEL+MwuJgfrLfgb 1uvrArbv/wwQOFDBzIPPpR5meENDUMg6J927vSC6/66NeM/ff7fRzyw8wIIA JWnZd3cYSOkm6P0sCvohCksstgbqC4zrJI+Rhp+wrnTn/s+ohHBKqLbTh1+m W2Hg4d1in+DioE9gN9vs5d4k/iESopYUwdtUM3oKDLI1RlUHhsC6QcuDEyhm LgGV1OsQhvBLL0B9OEPY9X6WsEGn5XQylI3c9v33YsBX20pfxJzTCboDSMyB 7rjt7Z37724MoG8OcA5xG263H6Ouz+5/fCd04MgM473/duTYCKyDmIQGrIgm F3YYocPZYBv3f70Tw6K7/25vw23dfzdaB4psODHozHEE0tzZYYCid4H4nUm2 6bS3FXKtO9EO6IudOw4oItHO/V9iZ7AKgVkksMPuBI0G87fvvwc/IeViPDOm 2ewmTUENi7yBcH68/ccPNty4ymC0qwxGBs0uqs82QL3ehNfHwQ5gaN2J7zhK ZzSiX2+6bdaF4bvx/XezirEXWwWA5eji9eMgTwIMOmN6Ooh9z9VA8ha6Bwvd 8/GIwrlfPEbx5uacU3ay50mYtbrgqVK8TPgozymwyqHlJFuDLRVTIsDJCJDm TINggj8sUKlGqpGUyxF2B2s3OaXQWZKGm+SMxtXrwaOQEgZk5bJr2VI/f+vB hw8+efD+g189+CBDngf/8uD3D37+4LcA8tGDD5ashPr8uw8+/PwNeP7h59// /EcPPgXY36mwNspBm/cR6sHHDz74/E2mdgEv/PTBew9+9/kPH/yukLQPfqr1 AV+L+8ihPcB/Fzr5HQz7Y/g/7PI3gJPf4KA+gA5///n34Ov78Bl+/PxNGzfk dbGUMTgkmzmM9hMY5W8e/BL+h+h9//O/fvAhQ+wx+PR7Bv0gUT6mb59/D0fz e5jQX8MEP4b//f7zH09yQLFtwOcPGJDrPWj2G0Yj/+jzt7BT+PTP00DdDx98 Bg3/WZULD34u80ji+z548FEqPqrswT9BS5zHRzCq39P7P3rwc94nfx389glw x8ef/zVAfgDMKTq5yGBaH+F4fof/fABQnzz4Z3j9h9Q2fT+fKZLqlzC838Jb 3sSef4Pk/CX2Cc8+hbkgCpBNP8K5fP5mhq/vWGwlj9786NFb7z56851Hb/0w w9eP3vpPj976/x699R+tHP3nv//5n/757UIG5iCP3vz3//Ptn/35nY8LGdXo LocP//QP3338g//y6I1/++jNHz7+mx//+W//0cZqKpTJXXec5Hj26K3/+ujN /xdQ8Pg38O/7j97674/eegs+sEdvfcIIM//50Vufwgf6AYAe/+SXj958D35T j2eP3vjs0Rv/+OiN9xMuQeiERR698U9/+g8//h+/+4f//9MfAfHx2UX47dFb f/fozXcfvfXLR2/94NGbHyIF3vz48Ts//NPf/8qk2856lm6PP/rkz2+8/+cf fj9DtMe//fnjf/OuXc9//Dffe/zzj84Potnj3/3dIFKpIDmk+l/f//Gf/u9f PP6/3n/8b372+IO/U+mvkEqFyqj1MHPR4s9/+7P/9elP//TT7/8ZqPX9TybZ n9/9+E8//fRP/+XtSUGYP//8vcfv/GqSa3ns8b//EVf02OP3P/2fP/jvqnUL +mKrk7D+/vS3Hz3+yX96/N5//B+/+w+P3/mnx7/4SWbNhBZV7os3Hn7y8BcP P3r4qwzyH/7+4WcPP3342Rc//OJHdhJA488e/urhh1989+GvoZPfPfztww+L CQLwv6QX/gv8+yFvUUieh/+1oEEOsWDgOKQPH/4G2v3+i7e+eOOLNx/+9os3 v/gRg6/8AXQFP/7ii7+BB//ORstsJw8/ztA0TNTAh/8owD+Fvz9EjEL3H8Kb 4Z0fw9B/C//+4oufsIeffvFvv/gBfPns4UeTDF7+BqH5ky9+9PA38JKfcGic 7m+/+MEXb/EBf/bwA+gZGAVnQm/5BMB+m3KBwM6/PPxsGv7BJtjDZ9A/vlqw Ef+AmsXD/5y+A35dxUcXGQ4dsPKTL/7dF28y6uI3NJvvMhjJdwH2rxFjGa6K Ni2Hdq+VtZCt37n/TqdnZSSsm7R+/791OgOUPwEVrd3/dRi7zQ0s6DxAGSxs ksNAm17kaL+5eHV3/7/5rAG93HGsxhj+iMEBx2ASQJC0xnTuv9Nqgc7XdVtw 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 AQ7+jsXhkAIA --8323328-1245204871-1470548026=:17623 Content-Type: text/plain; charset=US-ASCII; name=gcs_wip.patch Content-Transfer-Encoding: BASE64 Content-ID: Content-Description: Content-Disposition: attachment; filename=gcs_wip.patch Y29tbWl0IDFkN2VjNDYyNTdkYzU0NmJjN2I4NzQzOTc4ODUxNGZjNDY1MGEy YjENCkF1dGhvcjogTmljb2xhcyBQaXRyZSA8bmljb2xhcy5waXRyZUBsaW5h cm8ub3JnPg0KRGF0ZTogICBNb24gT2N0IDI2IDEwOjE2OjE0IDIwMTUgLTA0 MDANCg0KICAgIEFSTTogcHVzaGxpbmtlZHNlY3Rpb24gaW50cm9kdWN0aW9u DQogICAgDQogICAgU2lnbmVkLW9mZi1ieTogTmljb2xhcyBQaXRyZSA8bmlj b0BsaW5hcm8ub3JnPg0KDQpkaWZmIC0tZ2l0IGEvTWFrZWZpbGUgYi9NYWtl ZmlsZQ0KaW5kZXggZDViMzczOTExOS4uNzU1NDE0MTRjYiAxMDA2NDQNCi0t LSBhL01ha2VmaWxlDQorKysgYi9NYWtlZmlsZQ0KQEAgLTc3NSw2ICs3NzUs MTAgQEAgaWZlcSAoJChzaGVsbCAkKENPTkZJR19TSEVMTCkgJChzcmN0cmVl KS9zY3JpcHRzL2djYy1nb3RvLnNoICQoQ0MpKSwgeSkNCiAJS0JVSUxEX0FG TEFHUyArPSAtRENDX0hBVkVfQVNNX0dPVE8NCiBlbmRpZg0KIA0KKyMgTmFt ZWQgc3Vic2VjdGlvbnMNCitLQlVJTERfQUZMQUdTCSs9IC1XYSwtLXNlY3Ru YW1lLXN1YnN0DQorS0JVSUxEX0NGTEFHUwkrPSAtV2EsLS1zZWN0bmFtZS1z dWJzdA0KKw0KIGluY2x1ZGUgc2NyaXB0cy9NYWtlZmlsZS5rYXNhbg0KIGlu Y2x1ZGUgc2NyaXB0cy9NYWtlZmlsZS5leHRyYXdhcm4NCiANCmRpZmYgLS1n aXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9hc3NlbWJsZXIuaCBiL2FyY2gv YXJtL2luY2x1ZGUvYXNtL2Fzc2VtYmxlci5oDQppbmRleCBiMmJjOGUxMTQ3 Li43MDE2MWM5YmZhIDEwMDY0NA0KLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS9h c20vYXNzZW1ibGVyLmgNCisrKyBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL2Fz c2VtYmxlci5oDQpAQCAtODgsNiArODgsMTcgQEANCiAjZW5kaWYNCiANCiAv Kg0KKyAqIFNwZWNpYWwgLnB1c2hzZWN0aW9uIHdyYXBwZXIgd2l0aCBleHBs aWNpdCBkZXBlbmRlbmN5IHRvIHByZXZlbnQNCisgKiBnYXJiYWdlIGNvbGxl Y3Rpb24gb2YgdGhlIHNwZWNpZmllZCBzZWN0aW9uLiAgVGhpcyBpcyBuZWVk ZWQgd2hlbiBubw0KKyAqIGV4cGxpY2l0IHN5bWJvbCByZWZlcmVuY2VzIGFy ZSBtYWRlIHRvIHRoaXMgc2VjdGlvbi4NCisgKi8NCisJLm1hY3JvCS5wdXNo bGlua2Vkc2VjdGlvbiBuYW1lOnZhcmFyZw0KKwkucmVsb2MJLiAtIDEsIFJf QVJNX05PTkUsIDk5MDlmDQorCS5wdXNoc2VjdGlvbiBcbmFtZQ0KKzk5MDk6 DQorCS5lbmRtDQorDQorLyoNCiAgKiBFbmFibGUgYW5kIGRpc2FibGUgaW50 ZXJydXB0cw0KICAqLw0KICNpZiBfX0xJTlVYX0FSTV9BUkNIX18gPj0gNg0K QEAgLTIzOSw3ICsyNTAsNyBAQA0KIA0KICNkZWZpbmUgVVNFUih4Li4uKQkJ CQlcDQogOTk5OToJeDsJCQkJCVwNCi0JLnB1c2hzZWN0aW9uIF9fZXhfdGFi bGUsImEiOwkJXA0KKwkucHVzaGxpbmtlZHNlY3Rpb24gX19leF90YWJsZS4l UywiYSI7CVwNCiAJLmFsaWduCTM7CQkJCVwNCiAJLmxvbmcJOTk5OWIsOTAw MWY7CQkJXA0KIAkucG9wc2VjdGlvbg0KQEAgLTI1Myw3ICsyNjQsNyBAQA0K ICAqIEFMVF9TTVAoIFcoaW5zdHIpIC4uLiApDQogICovDQogI2RlZmluZSBB TFRfVVAoaW5zdHIuLi4pCQkJCQlcDQotCS5wdXNoc2VjdGlvbiAiLmFsdC5z bXAuaW5pdCIsICJhIgkJCTtcDQorCS5wdXNobGlua2Vkc2VjdGlvbiAiLmFs dC5zbXAuaW5pdC4lUyIsICJhIgkJO1wNCiAJLmxvbmcJOTk5OGIJCQkJCQk7 XA0KIDk5OTc6CWluc3RyCQkJCQkJCTtcDQogCS5pZiAuIC0gOTk5N2IgPT0g MgkJCQkJO1wNCkBAIC0yNjUsNyArMjc2LDcgQEANCiAJLnBvcHNlY3Rpb24N CiAjZGVmaW5lIEFMVF9VUF9CKGxhYmVsKQkJCQkJXA0KIAkuZXF1CXVwX2Jf b2Zmc2V0LCBsYWJlbCAtIDk5OThiCQkJO1wNCi0JLnB1c2hzZWN0aW9uICIu YWx0LnNtcC5pbml0IiwgImEiCQkJO1wNCisJLnB1c2hsaW5rZWRzZWN0aW9u ICIuYWx0LnNtcC5pbml0LiVTIiwgImEiCQk7XA0KIAkubG9uZwk5OTk4YgkJ CQkJCTtcDQogCVcoYikJLiArIHVwX2Jfb2Zmc2V0CQkJCQk7XA0KIAkucG9w c2VjdGlvbg0KQEAgLTM3NSw3ICszODYsNyBAQCBUSFVNQigJb3JyCVxyZWcg LCBccmVnICwgI1BTUl9UX0JJVAkpDQogCS5lcnJvcgkiVW5zdXBwb3J0ZWQg aW5jIG1hY3JvIGFyZ3VtZW50Ig0KIAkuZW5kaWYNCiANCi0JLnB1c2hzZWN0 aW9uIF9fZXhfdGFibGUsImEiDQorCS5wdXNobGlua2Vkc2VjdGlvbiBfX2V4 X3RhYmxlLiVTLCJhIg0KIAkuYWxpZ24JMw0KIAkubG9uZwk5OTk5YiwgXGFi b3J0DQogCS5wb3BzZWN0aW9uDQpAQCAtNDE2LDcgKzQyNyw3IEBAIFRIVU1C KAlvcnIJXHJlZyAsIFxyZWcgLCAjUFNSX1RfQklUCSkNCiAJLmVycm9yCSJV bnN1cHBvcnRlZCBpbmMgbWFjcm8gYXJndW1lbnQiDQogCS5lbmRpZg0KIA0K LQkucHVzaHNlY3Rpb24gX19leF90YWJsZSwiYSINCisJLnB1c2hsaW5rZWRz ZWN0aW9uIF9fZXhfdGFibGUuJVMsImEiDQogCS5hbGlnbgkzDQogCS5sb25n CTk5OTliLCBcYWJvcnQNCiAJLnBvcHNlY3Rpb24NCmRpZmYgLS1naXQgYS9h cmNoL2FybS9pbmNsdWRlL2FzbS9idWcuaCBiL2FyY2gvYXJtL2luY2x1ZGUv YXNtL2J1Zy5oDQppbmRleCBlNzMzNWE5MjE0Li4wY2JiNmVmNGI1IDEwMDY0 NA0KLS0tIGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vYnVnLmgNCisrKyBiL2Fy Y2gvYXJtL2luY2x1ZGUvYXNtL2J1Zy5oDQpAQCAtMyw2ICszLDcgQEANCiAN CiAjaW5jbHVkZSA8bGludXgvbGlua2FnZS5oPg0KICNpbmNsdWRlIDxsaW51 eC90eXBlcy5oPg0KKyNpbmNsdWRlIDxhc20vY29tcGlsZXIuaD4NCiAjaW5j bHVkZSA8YXNtL29wY29kZXMuaD4NCiANCiAjaWZkZWYgQ09ORklHX0JVRw0K QEAgLTM5LDkgKzQwLDkgQEAgZG8gewkJCQkJCQkJXA0KIAkJIi5wdXNoc2Vj dGlvbiAucm9kYXRhLnN0ciwgXCJhTVNcIiwgJXByb2diaXRzLCAxXG4iIFwN CiAJCSIyOlx0LmFzY2l6ICIgI19fZmlsZSAiXG4iIAkJCVwNCiAJCSIucG9w c2VjdGlvblxuIiAJCQkJXA0KLQkJIi5wdXNoc2VjdGlvbiBfX2J1Z190YWJs ZSxcImFcIlxuIgkJXA0KKwkJX19wdXNobGlua2Vkc2VjdGlvbigiX19idWdf dGFibGUuJVMsXCJhXCIiKSAiXG4iXA0KIAkJIi5hbGlnbiAyXG4iCQkJCQlc DQotCQkiMzpcdC53b3JkIDFiLCAyYlxuIgkJCQlcDQorCQkiXHQud29yZCAx YiwgMmJcbiIJCQkJXA0KIAkJIlx0Lmh3b3JkICIgI19fbGluZSAiLCAwXG4i CQkJXA0KIAkJIi5wb3BzZWN0aW9uIik7CQkJCQlcDQogCXVucmVhY2hhYmxl KCk7CQkJCQkJXA0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2luY2x1ZGUvYXNt L2NvbXBpbGVyLmggYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9jb21waWxlci5o DQppbmRleCAyOWZlODVlNTk0Li4zYmZkZDc0OWEzIDEwMDY0NA0KLS0tIGEv YXJjaC9hcm0vaW5jbHVkZS9hc20vY29tcGlsZXIuaA0KKysrIGIvYXJjaC9h cm0vaW5jbHVkZS9hc20vY29tcGlsZXIuaA0KQEAgLTI0LDUgKzI0LDE0IEBA DQogCSAgIi5lbmRpZjsgIgkJCQlcDQogCSIuZW5kaWZcblx0Ig0KIA0KKy8q DQorICogU3BlY2lhbCAucHVzaHNlY3Rpb24gd3JhcHBlciB3aXRoIGV4cGxp Y2l0IGRlcGVuZGVuY3kgdG8gcHJldmVudA0KKyAqIGdhcmJhZ2UgY29sbGVj dGlvbiBvZiB0aGUgc3BlY2lmaWVkIHNlY3Rpb24uICBUaGlzIGlzIG5lZWRl ZCB3aGVuIG5vDQorICogZXhwbGljaXQgc3ltYm9sIHJlZmVyZW5jZXMgYXJl IG1hZGUgdG8gdGhpcyBzZWN0aW9uLg0KKyAqLw0KKyNkZWZpbmUgX19wdXNo bGlua2Vkc2VjdGlvbihuYW1lKQkJXA0KKwkiLnJlbG9jCS4gLSAxLCBSX0FS TV9OT05FLCA5OTA5ZlxuIglcDQorCSJcdC5wdXNoc2VjdGlvbiAiIG5hbWUg IlxuIgkJXA0KKwkiOTkwOToJIg0KIA0KICNlbmRpZiAvKiBfX0FTTV9BUk1f Q09NUElMRVJfSCAqLw0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2luY2x1ZGUv YXNtL2Z1dGV4LmggYi9hcmNoL2FybS9pbmNsdWRlL2FzbS9mdXRleC5oDQpp bmRleCA2Nzk1MzY4YWQwLi4zNTQwZTQyMDg0IDEwMDY0NA0KLS0tIGEvYXJj aC9hcm0vaW5jbHVkZS9hc20vZnV0ZXguaA0KKysrIGIvYXJjaC9hcm0vaW5j bHVkZS9hc20vZnV0ZXguaA0KQEAgLTUsMTEgKzUsMTIgQEANCiANCiAjaW5j bHVkZSA8bGludXgvZnV0ZXguaD4NCiAjaW5jbHVkZSA8bGludXgvdWFjY2Vz cy5oPg0KKyNpbmNsdWRlIDxhc20vY29tcGlsZXIuaD4NCiAjaW5jbHVkZSA8 YXNtL2Vycm5vLmg+DQogDQogI2RlZmluZSBfX2Z1dGV4X2F0b21pY19leF90 YWJsZShlcnJfcmVnKQkJCVwNCiAJIjM6XG4iCQkJCQkJCVwNCi0JIgkucHVz aHNlY3Rpb24gX19leF90YWJsZSxcImFcIlxuIgkJXA0KKwkiCSIgX19wdXNo bGlua2Vkc2VjdGlvbigiX19leF90YWJsZS4lUyxcImFcIiIpICJcbiIgXA0K IAkiCS5hbGlnbgkzXG4iCQkJCQlcDQogCSIJLmxvbmcJMWIsIDRmLCAyYiwg NGZcbiIJCQlcDQogCSIJLnBvcHNlY3Rpb25cbiIJCQkJCVwNCmRpZmYgLS1n aXQgYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9qdW1wX2xhYmVsLmggYi9hcmNo L2FybS9pbmNsdWRlL2FzbS9qdW1wX2xhYmVsLmgNCmluZGV4IDM0ZjdiNjk4 MGQuLjU0ZTJhNWVjMTEgMTAwNjQ0DQotLS0gYS9hcmNoL2FybS9pbmNsdWRl L2FzbS9qdW1wX2xhYmVsLmgNCisrKyBiL2FyY2gvYXJtL2luY2x1ZGUvYXNt L2p1bXBfbGFiZWwuaA0KQEAgLTQsNiArNCw3IEBADQogI2lmbmRlZiBfX0FT U0VNQkxZX18NCiANCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4NCisjaW5j bHVkZSA8YXNtL2NvbXBpbGVyLmg+DQogI2luY2x1ZGUgPGFzbS91bmlmaWVk Lmg+DQogDQogI2RlZmluZSBKVU1QX0xBQkVMX05PUF9TSVpFIDQNCkBAIC0x Miw3ICsxMyw3IEBAIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgYm9vbCBhcmNo X3N0YXRpY19icmFuY2goc3RydWN0IHN0YXRpY19rZXkgKmtleSwgYm9vbCBi cmFuDQogew0KIAlhc21fdm9sYXRpbGVfZ290bygiMTpcblx0Ig0KIAkJIFdB U00obm9wKSAiXG5cdCINCi0JCSAiLnB1c2hzZWN0aW9uIF9fanVtcF90YWJs ZSwgIFwiYXdcIlxuXHQiDQorCQkgX19wdXNobGlua2Vkc2VjdGlvbigiX19q dW1wX3RhYmxlLiVTLCBcImF3XCIpICJcblx0Ig0KIAkJICIud29yZCAxYiwg JWxbbF95ZXNdLCAlYzBcblx0Ig0KIAkJICIucG9wc2VjdGlvblxuXHQiDQog CQkgOiA6ICAiaSIgKCYoKGNoYXIgKilrZXkpW2JyYW5jaF0pIDogIDogbF95 ZXMpOw0KQEAgLTI2LDcgKzI3LDcgQEAgc3RhdGljIF9fYWx3YXlzX2lubGlu ZSBib29sIGFyY2hfc3RhdGljX2JyYW5jaF9qdW1wKHN0cnVjdCBzdGF0aWNf a2V5ICprZXksIGJvb2wNCiB7DQogCWFzbV92b2xhdGlsZV9nb3RvKCIxOlxu XHQiDQogCQkgV0FTTShiKSAiICVsW2xfeWVzXVxuXHQiDQotCQkgIi5wdXNo c2VjdGlvbiBfX2p1bXBfdGFibGUsICBcImF3XCJcblx0Ig0KKwkJIF9fcHVz aGxpbmtlZHNlY3Rpb24oIl9fanVtcF90YWJsZS4lUywgXCJhd1wiIikgIlxu XHQiDQogCQkgIi53b3JkIDFiLCAlbFtsX3llc10sICVjMFxuXHQiDQogCQkg Ii5wb3BzZWN0aW9uXG5cdCINCiAJCSA6IDogICJpIiAoJigoY2hhciAqKWtl eSlbYnJhbmNoXSkgOiAgOiBsX3llcyk7DQpkaWZmIC0tZ2l0IGEvYXJjaC9h cm0vaW5jbHVkZS9hc20vbWVtb3J5LmggYi9hcmNoL2FybS9pbmNsdWRlL2Fz bS9tZW1vcnkuaA0KaW5kZXggOThkNThiYjA0YS4uZDVjYzM0ZTlhNyAxMDA2 NDQNCi0tLSBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL21lbW9yeS5oDQorKysg Yi9hcmNoL2FybS9pbmNsdWRlL2FzbS9tZW1vcnkuaA0KQEAgLTE4LDYgKzE4 LDggQEANCiAjaW5jbHVkZSA8bGludXgvdHlwZXMuaD4NCiAjaW5jbHVkZSA8 bGludXgvc2l6ZXMuaD4NCiANCisjaW5jbHVkZSA8YXNtL2NvbXBpbGVyLmg+ DQorDQogI2lmZGVmIENPTkZJR19ORUVEX01BQ0hfTUVNT1JZX0gNCiAjaW5j bHVkZSA8bWFjaC9tZW1vcnkuaD4NCiAjZW5kaWYNCkBAIC0xNzIsNyArMTc0 LDcgQEAgZXh0ZXJuIGNvbnN0IHZvaWQgKl9fcHZfdGFibGVfYmVnaW4sICpf X3B2X3RhYmxlX2VuZDsNCiAjZGVmaW5lIF9fcHZfc3R1Yihmcm9tLHRvLGlu c3RyLHR5cGUpCQkJXA0KIAlfX2FzbV9fKCJAIF9fcHZfc3R1YlxuIgkJCQlc DQogCSIxOgkiIGluc3RyICIJJTAsICUxLCAlMlxuIgkJXA0KLQkiCS5wdXNo c2VjdGlvbiAucHZfdGFibGUsXCJhXCJcbiIJCVwNCisJIgkiIF9fcHVzaGxp bmtlZHNlY3Rpb24oIi5wdl90YWJsZS4lUyxcImFcIiIpICJcbiIgXA0KIAki CS5sb25nCTFiXG4iCQkJCVwNCiAJIgkucG9wc2VjdGlvblxuIgkJCQlcDQog CTogIj1yIiAodG8pCQkJCQlcDQpAQCAtMTgxLDcgKzE4Myw3IEBAIGV4dGVy biBjb25zdCB2b2lkICpfX3B2X3RhYmxlX2JlZ2luLCAqX19wdl90YWJsZV9l bmQ7DQogI2RlZmluZSBfX3B2X3N0dWJfbW92X2hpKHQpCQkJCVwNCiAJX19h c21fXyB2b2xhdGlsZSgiQCBfX3B2X3N0dWJfbW92XG4iCQlcDQogCSIxOglt b3YJJVIwLCAlMVxuIgkJCVwNCi0JIgkucHVzaHNlY3Rpb24gLnB2X3RhYmxl LFwiYVwiXG4iCQlcDQorCSIJIiBfX3B1c2hsaW5rZWRzZWN0aW9uKCIucHZf dGFibGUuJVMsXCJhXCIiKSAiXG4iIFwNCiAJIgkubG9uZwkxYlxuIgkJCQlc DQogCSIJLnBvcHNlY3Rpb25cbiIJCQkJXA0KIAk6ICI9ciIgKHQpCQkJCQlc DQpAQCAtMTkxLDcgKzE5Myw3IEBAIGV4dGVybiBjb25zdCB2b2lkICpfX3B2 X3RhYmxlX2JlZ2luLCAqX19wdl90YWJsZV9lbmQ7DQogCV9fYXNtX18gdm9s YXRpbGUoIkAgX19wdl9hZGRfY2Fycnlfc3R1YlxuIglcDQogCSIxOglhZGRz CSVRMCwgJTEsICUyXG4iCQkJXA0KIAkiCWFkYwklUjAsICVSMCwgIzBcbiIJ CQlcDQotCSIJLnB1c2hzZWN0aW9uIC5wdl90YWJsZSxcImFcIlxuIgkJXA0K KwkiCSIgX19wdXNobGlua2Vkc2VjdGlvbigiLnB2X3RhYmxlLiVTLFwiYVwi IikgIlxuIiBcDQogCSIJLmxvbmcJMWJcbiIJCQkJXA0KIAkiCS5wb3BzZWN0 aW9uXG4iCQkJCVwNCiAJOiAiK3IiICh5KQkJCQkJXA0KZGlmZiAtLWdpdCBh L2FyY2gvYXJtL2luY2x1ZGUvYXNtL3Byb2Nlc3Nvci5oIGIvYXJjaC9hcm0v aW5jbHVkZS9hc20vcHJvY2Vzc29yLmgNCmluZGV4IDhhMWU4ZTk5NWQuLjhj NTM1ZWFjZWEgMTAwNjQ0DQotLS0gYS9hcmNoL2FybS9pbmNsdWRlL2FzbS9w cm9jZXNzb3IuaA0KKysrIGIvYXJjaC9hcm0vaW5jbHVkZS9hc20vcHJvY2Vz c29yLmgNCkBAIC0xOSw2ICsxOSw3IEBADQogDQogI2lmZGVmIF9fS0VSTkVM X18NCiANCisjaW5jbHVkZSA8YXNtL2NvbXBpbGVyLmg+DQogI2luY2x1ZGUg PGFzbS9od19icmVha3BvaW50Lmg+DQogI2luY2x1ZGUgPGFzbS9wdHJhY2Uu aD4NCiAjaW5jbHVkZSA8YXNtL3R5cGVzLmg+DQpAQCAtOTMsNyArOTQsNyBA QCB1bnNpZ25lZCBsb25nIGdldF93Y2hhbihzdHJ1Y3QgdGFza19zdHJ1Y3Qg KnApOw0KICNpZmRlZiBDT05GSUdfU01QDQogI2RlZmluZSBfX0FMVF9TTVBf QVNNKHNtcCwgdXApCQkJCQkJXA0KIAkiOTk5ODoJIiBzbXAgIlxuIgkJCQkJ CVwNCi0JIgkucHVzaHNlY3Rpb24gXCIuYWx0LnNtcC5pbml0XCIsIFwiYVwi XG4iCQlcDQorCSIJIiBfX3B1c2hsaW5rZWRzZWN0aW9uKCJcIi5hbHQuc21w LmluaXQuJVNcIiwgXCJhXCIiKSAiXG4iIFwNCiAJIgkubG9uZwk5OTk4Ylxu IgkJCQkJXA0KIAkiCSIgdXAgIlxuIgkJCQkJCVwNCiAJIgkucG9wc2VjdGlv blxuIg0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3VhY2Nl c3MuaCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3VhY2Nlc3MuaA0KaW5kZXgg OGNjODVhNGViZS4uNWU3ZTQwNDg5NCAxMDA2NDQNCi0tLSBhL2FyY2gvYXJt L2luY2x1ZGUvYXNtL3VhY2Nlc3MuaA0KKysrIGIvYXJjaC9hcm0vaW5jbHVk ZS9hc20vdWFjY2Vzcy5oDQpAQCAtMzU3LDcgKzM1Nyw3IEBAIGRvIHsJCQkJ CQkJCQlcDQogCSIJbW92CSUxLCAjMFxuIgkJCQlcDQogCSIJYgkyYlxuIgkJ CQkJXA0KIAkiCS5wb3BzZWN0aW9uXG4iCQkJCQlcDQotCSIJLnB1c2hzZWN0 aW9uIF9fZXhfdGFibGUsXCJhXCJcbiIJCVwNCisJIgkiIF9fcHVzaGxpbmtl ZHNlY3Rpb24oIl9fZXhfdGFibGUuJVMsXCJhXCIiKSAiXG4iIFwNCiAJIgku YWxpZ24JM1xuIgkJCQkJXA0KIAkiCS5sb25nCTFiLCAzYlxuIgkJCQlcDQog CSIJLnBvcHNlY3Rpb24iCQkJCQlcDQpAQCAtNDI5LDcgKzQyOSw3IEBAIGRv IHsJCQkJCQkJCQlcDQogCSIzOgltb3YJJTAsICUzXG4iCQkJCVwNCiAJIgli CTJiXG4iCQkJCQlcDQogCSIJLnBvcHNlY3Rpb25cbiIJCQkJCVwNCi0JIgku cHVzaHNlY3Rpb24gX19leF90YWJsZSxcImFcIlxuIgkJXA0KKwkiCSIgX19w dXNobGlua2Vkc2VjdGlvbigiX19leF90YWJsZS4lUyxcImFcIiIpICJcbiIg XA0KIAkiCS5hbGlnbgkzXG4iCQkJCQlcDQogCSIJLmxvbmcJMWIsIDNiXG4i CQkJCVwNCiAJIgkucG9wc2VjdGlvbiIJCQkJCVwNCkBAIC00NzksNyArNDc5 LDcgQEAgZG8gewkJCQkJCQkJCVwNCiAJIjQ6CW1vdgklMCwgJTNcbiIJCQkJ XA0KIAkiCWIJM2JcbiIJCQkJCVwNCiAJIgkucG9wc2VjdGlvblxuIgkJCQkJ XA0KLQkiCS5wdXNoc2VjdGlvbiBfX2V4X3RhYmxlLFwiYVwiXG4iCQlcDQor CSIJIiBfX3B1c2hsaW5rZWRzZWN0aW9uKCJfX2V4X3RhYmxlLiVTLFwiYVwi IikgIlxuIiBcDQogCSIJLmFsaWduCTNcbiIJCQkJCVwNCiAJIgkubG9uZwkx YiwgNGJcbiIJCQkJXA0KIAkiCS5sb25nCTJiLCA0YlxuIgkJCQlcDQpkaWZm IC0tZ2l0IGEvYXJjaC9hcm0vaW5jbHVkZS9hc20vd29yZC1hdC1hLXRpbWUu aCBiL2FyY2gvYXJtL2luY2x1ZGUvYXNtL3dvcmQtYXQtYS10aW1lLmgNCmlu ZGV4IDU4MzFkY2U0YjUuLjM0OGE0NjJkM2UgMTAwNjQ0DQotLS0gYS9hcmNo L2FybS9pbmNsdWRlL2FzbS93b3JkLWF0LWEtdGltZS5oDQorKysgYi9hcmNo L2FybS9pbmNsdWRlL2FzbS93b3JkLWF0LWEtdGltZS5oDQpAQCAtOCw2ICs4 LDcgQEANCiAgKiBIZWF2aWx5IGJhc2VkIG9uIHRoZSB4ODYgYWxnb3JpdGht Lg0KICAqLw0KICNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4NCisjaW5jbHVk ZSA8YXNtL2NvbXBpbGVyLmg+DQogDQogc3RydWN0IHdvcmRfYXRfYV90aW1l IHsNCiAJY29uc3QgdW5zaWduZWQgbG9uZyBvbmVfYml0cywgaGlnaF9iaXRz Ow0KQEAgLTg0LDcgKzg1LDcgQEAgc3RhdGljIGlubGluZSB1bnNpZ25lZCBs b25nIGxvYWRfdW5hbGlnbmVkX3plcm9wYWQoY29uc3Qgdm9pZCAqYWRkcikN CiAjZW5kaWYNCiAJIgliCTJiXG4iDQogCSIJLnBvcHNlY3Rpb25cbiINCi0J IgkucHVzaHNlY3Rpb24gX19leF90YWJsZSxcImFcIlxuIg0KKwkiCSIgX19w dXNobGlua2Vkc2VjdGlvbigiX19leF90YWJsZS4lUyxcImFcIiIpICJcbiIN CiAJIgkuYWxpZ24JM1xuIg0KIAkiCS5sb25nCTFiLCAzYlxuIg0KIAkiCS5w b3BzZWN0aW9uIg0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL2tlcm5lbC9lbnRy eS1hcm12LlMgYi9hcmNoL2FybS9rZXJuZWwvZW50cnktYXJtdi5TDQppbmRl eCAzZTFjMjZlYjMyLi41MDQ3NzU3YzM0IDEwMDY0NA0KLS0tIGEvYXJjaC9h cm0va2VybmVsL2VudHJ5LWFybXYuUw0KKysrIGIvYXJjaC9hcm0va2VybmVs L2VudHJ5LWFybXYuUw0KQEAgLTU2NCw3ICs1NjQsNyBAQCBFTkRQUk9DKF9f dW5kX3VzcikNCiA0OglzdHIgICAgIHI0LCBbc3AsICNTX1BDXQkJCUAgcmV0 cnkgY3VycmVudCBpbnN0cnVjdGlvbg0KIAlyZXQJcjkNCiAJLnBvcHNlY3Rp b24NCi0JLnB1c2hzZWN0aW9uIF9fZXhfdGFibGUsImEiDQorCS5wdXNobGlu a2Vkc2VjdGlvbiBfX2V4X3RhYmxlLiVTLCJhIg0KIAkubG9uZwkxYiwgNGIN CiAjaWYgQ09ORklHX0FSTV9USFVNQiAmJiBfX0xJTlVYX0FSTV9BUkNIX18g Pj0gNiAmJiBDT05GSUdfQ1BVX1Y3DQogCS5sb25nCTJiLCA0Yg0KZGlmZiAt LWdpdCBhL2FyY2gvYXJtL2tlcm5lbC92bWxpbnV4Lmxkcy5TIGIvYXJjaC9h cm0va2VybmVsL3ZtbGludXgubGRzLlMNCmluZGV4IDhiNjBmZGU1Y2UuLjY4 ODUzODI5MzEgMTAwNjQ0DQotLS0gYS9hcmNoL2FybS9rZXJuZWwvdm1saW51 eC5sZHMuUw0KKysrIGIvYXJjaC9hcm0va2VybmVsL3ZtbGludXgubGRzLlMN CkBAIC0zNiw3ICszNiw3IEBADQogI2RlZmluZSBBUk1fQ1BVX0tFRVAoeCkN CiAjZW5kaWYNCiANCi0jaWYgKGRlZmluZWQoQ09ORklHX1NNUF9PTl9VUCkg JiYgIWRlZmluZWQoQ09ORklHX0RFQlVHX1NQSU5MT0NLKSkgfHwgXA0KKyNp ZiAwIC8vIChkZWZpbmVkKENPTkZJR19TTVBfT05fVVApICYmICFkZWZpbmVk KENPTkZJR19ERUJVR19TUElOTE9DSykpIHx8IFwNCiAJZGVmaW5lZChDT05G SUdfR0VORVJJQ19CVUcpDQogI2RlZmluZSBBUk1fRVhJVF9LRUVQKHgpCXgN CiAjZGVmaW5lIEFSTV9FWElUX0RJU0NBUkQoeCkNCmRpZmYgLS1naXQgYS9h cmNoL2FybS9saWIvYmFja3RyYWNlLlMgYi9hcmNoL2FybS9saWIvYmFja3Ry YWNlLlMNCmluZGV4IGZhYjVhNTA1MDMuLjIzOGM3ZGUxMTQgMTAwNjQ0DQot LS0gYS9hcmNoL2FybS9saWIvYmFja3RyYWNlLlMNCisrKyBiL2FyY2gvYXJt L2xpYi9iYWNrdHJhY2UuUw0KQEAgLTEwNCw3ICsxMDQsNyBAQCBmb3JfZWFj aF9mcmFtZToJdHN0CWZyYW1lLCBtYXNrCQlAIENoZWNrIGZvciBhZGRyZXNz IGV4Y2VwdGlvbnMNCiBub19mcmFtZToJbGRtZmQJc3AhLCB7cjQgLSByOCwg cGN9DQogRU5EUFJPQyhjX2JhY2t0cmFjZSkNCiAJCQ0KLQkJLnB1c2hzZWN0 aW9uIF9fZXhfdGFibGUsImEiDQorCQkucHVzaGxpbmtlZHNlY3Rpb24gX19l eF90YWJsZS4lUywiYSINCiAJCS5hbGlnbgkzDQogCQkubG9uZwkxMDAxYiwg MTAwNmINCiAJCS5sb25nCTEwMDJiLCAxMDA2Yg0KZGlmZiAtLWdpdCBhL2Fy Y2gvYXJtL2xpYi9nZXR1c2VyLlMgYi9hcmNoL2FybS9saWIvZ2V0dXNlci5T DQppbmRleCA4ZWNmZDE1YzNhLi5lMmM2YTU2NDlmIDEwMDY0NA0KLS0tIGEv YXJjaC9hcm0vbGliL2dldHVzZXIuUw0KKysrIGIvYXJjaC9hcm0vbGliL2dl dHVzZXIuUw0KQEAgLTEzMiw3ICsxMzIsNyBAQCBfX2dldF91c2VyX2JhZDoN CiBFTkRQUk9DKF9fZ2V0X3VzZXJfYmFkKQ0KIEVORFBST0MoX19nZXRfdXNl cl9iYWQ4KQ0KIA0KLS5wdXNoc2VjdGlvbiBfX2V4X3RhYmxlLCAiYSINCisu cHVzaGxpbmtlZHNlY3Rpb24gX19leF90YWJsZS4lUywgImEiDQogCS5sb25n CTFiLCBfX2dldF91c2VyX2JhZA0KIAkubG9uZwkyYiwgX19nZXRfdXNlcl9i YWQNCiAJLmxvbmcJM2IsIF9fZ2V0X3VzZXJfYmFkDQpkaWZmIC0tZ2l0IGEv YXJjaC9hcm0vbGliL3B1dHVzZXIuUyBiL2FyY2gvYXJtL2xpYi9wdXR1c2Vy LlMNCmluZGV4IDM4ZDY2MGQzNzAuLmI1MmY0YTI2NGUgMTAwNjQ0DQotLS0g YS9hcmNoL2FybS9saWIvcHV0dXNlci5TDQorKysgYi9hcmNoL2FybS9saWIv cHV0dXNlci5TDQpAQCAtODgsNyArODgsNyBAQCBfX3B1dF91c2VyX2JhZDoN CiAJcmV0CWxyDQogRU5EUFJPQyhfX3B1dF91c2VyX2JhZCkNCiANCi0ucHVz aHNlY3Rpb24gX19leF90YWJsZSwgImEiDQorLnB1c2hsaW5rZWRzZWN0aW9u IF9fZXhfdGFibGUuJVMsICJhIg0KIAkubG9uZwkxYiwgX19wdXRfdXNlcl9i YWQNCiAJLmxvbmcJMmIsIF9fcHV0X3VzZXJfYmFkDQogCS5sb25nCTNiLCBf X3B1dF91c2VyX2JhZA0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL21tL2FsaWdu bWVudC5jIGIvYXJjaC9hcm0vbW0vYWxpZ25tZW50LmMNCmluZGV4IDAwYjdm N2RlMjguLmEyZTZmNDdlZGIgMTAwNjQ0DQotLS0gYS9hcmNoL2FybS9tbS9h bGlnbm1lbnQuYw0KKysrIGIvYXJjaC9hcm0vbW0vYWxpZ25tZW50LmMNCkBA IC0yMiw2ICsyMiw3IEBADQogI2luY2x1ZGUgPGxpbnV4L3NjaGVkLmg+DQog I2luY2x1ZGUgPGxpbnV4L3VhY2Nlc3MuaD4NCiANCisjaW5jbHVkZSA8YXNt L2NvbXBpbGVyLmg+DQogI2luY2x1ZGUgPGFzbS9jcDE1Lmg+DQogI2luY2x1 ZGUgPGFzbS9zeXN0ZW1faW5mby5oPg0KICNpbmNsdWRlIDxhc20vdW5hbGln bmVkLmg+DQpAQCAtMjA2LDcgKzIwNyw3IEBAIHVuaW9uIG9mZnNldF91bmlv biB7DQogCSIzOgltb3YJJTAsICMxXG4iCQkJXA0KIAkiCWIJMmJcbiIJCQkJ XA0KIAkiCS5wb3BzZWN0aW9uXG4iCQkJCVwNCi0JIgkucHVzaHNlY3Rpb24g X19leF90YWJsZSxcImFcIlxuIglcDQorCSIJIiBfX3B1c2hsaW5rZWRzZWN0 aW9uKCJfX2V4X3RhYmxlLiVTLFwiYVwiIikgIlxuIiBcDQogCSIJLmFsaWdu CTNcbiIJCQkJXA0KIAkiCS5sb25nCTFiLCAzYlxuIgkJCVwNCiAJIgkucG9w c2VjdGlvblxuIgkJCQlcDQpAQCAtMjY2LDcgKzI2Nyw3IEBAIHVuaW9uIG9m ZnNldF91bmlvbiB7DQogCQkiNDoJbW92CSUwLCAjMVxuIgkJCVwNCiAJCSIJ YgkzYlxuIgkJCQlcDQogCQkiCS5wb3BzZWN0aW9uXG4iCQkJCVwNCi0JCSIJ LnB1c2hzZWN0aW9uIF9fZXhfdGFibGUsXCJhXCJcbiIJXA0KKwkJIgkiIF9f cHVzaGxpbmtlZHNlY3Rpb24oIl9fZXhfdGFibGUuJVMsXCJhXCIiKSAiXG4i IFwNCiAJCSIJLmFsaWduCTNcbiIJCQkJXA0KIAkJIgkubG9uZwkxYiwgNGJc biIJCQlcDQogCQkiCS5sb25nCTJiLCA0YlxuIgkJCVwNCkBAIC0zMDYsNyAr MzA3LDcgQEAgdW5pb24gb2Zmc2V0X3VuaW9uIHsNCiAJCSI2Ogltb3YJJTAs ICMxXG4iCQkJXA0KIAkJIgliCTViXG4iCQkJCVwNCiAJCSIJLnBvcHNlY3Rp b25cbiIJCQkJXA0KLQkJIgkucHVzaHNlY3Rpb24gX19leF90YWJsZSxcImFc IlxuIglcDQorCQkiCSIgX19wdXNobGlua2Vkc2VjdGlvbigiX19leF90YWJs ZS4lUyxcImFcIiIpICJcbiIgXA0KIAkJIgkuYWxpZ24JM1xuIgkJCQlcDQog CQkiCS5sb25nCTFiLCA2YlxuIgkJCVwNCiAJCSIJLmxvbmcJMmIsIDZiXG4i CQkJXA0KZGlmZiAtLWdpdCBhL2FyY2gvYXJtL253ZnBlL2VudHJ5LlMgYi9h cmNoL2FybS9ud2ZwZS9lbnRyeS5TDQppbmRleCAzOWMyMGFmYWQ3Li44ZjU2 NmM4N2MyIDEwMDY0NA0KLS0tIGEvYXJjaC9hcm0vbndmcGUvZW50cnkuUw0K KysrIGIvYXJjaC9hcm0vbndmcGUvZW50cnkuUw0KQEAgLTExOSw3ICsxMTks NyBAQCBuZXh0Og0KIC5MZml4OglyZXQJcjkJCQlAIGxldCB0aGUgdXNlciBl YXQgc2VnZmF1bHRzDQogCS5wb3BzZWN0aW9uDQogDQotCS5wdXNoc2VjdGlv biBfX2V4X3RhYmxlLCJhIg0KKwkucHVzaGxpbmtlZHNlY3Rpb24gX19leF90 YWJsZS4lUywiYSINCiAJLmFsaWduCTMNCiAJLmxvbmcJLkx4MSwgLkxmaXgN CiAJLnBvcHNlY3Rpb24NCg== --8323328-1245204871-1470548026=:17623--