From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19894 invoked by alias); 11 Jun 2012 18:33:49 -0000 Received: (qmail 19880 invoked by uid 22791); 11 Jun 2012 18:33:47 -0000 X-SWARE-Spam-Status: No, hits=-7.6 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_DNSWL_HI,RCVD_IN_HOSTKARMA_W,SPF_HELO_PASS,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from mx1.redhat.com (HELO mx1.redhat.com) (209.132.183.28) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Mon, 11 Jun 2012 18:33:26 +0000 Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id q5BIXPGe031167 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 11 Jun 2012 14:33:25 -0400 Received: from spoyarek (vpn-232-171.phx2.redhat.com [10.3.232.171]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id q5BIXDRj017605; Mon, 11 Jun 2012 14:33:14 -0400 Date: Mon, 11 Jun 2012 18:33:00 -0000 From: Siddhesh Poyarekar To: Jan Kratochvil Cc: gdb-patches@sourceware.org, Tom Tromey Subject: Re: [PATCH v3] Expand bitpos and type.length to LONGEST and ULONGEST Message-ID: <20120612000336.5dfcc246@spoyarek> In-Reply-To: <20120611125933.GA7733@host2.jankratochvil.net> References: <20120523174610.GA23405@host2.jankratochvil.net> <20120524070634.4e346d9d@spoyarek> <20120524150105.GA8232@host2.jankratochvil.net> <20120531234422.3ea35cde@spoyarek> <20120605222651.GA25480@host2.jankratochvil.net> <20120606235335.7fa94030@spoyarek> <20120606213420.GA9219@host2.jankratochvil.net> <20120608141636.GA24175@host2.jankratochvil.net> <20120608152735.GA26491@host2.jankratochvil.net> <20120611182346.1b8d872b@spoyarek> <20120611125933.GA7733@host2.jankratochvil.net> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/vs_ML.3dIosvoEW_+4DgbG=" Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2012-06/txt/msg00301.txt.bz2 --MP_/vs_ML.3dIosvoEW_+4DgbG= Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline Content-length: 2359 On Mon, 11 Jun 2012 14:59:33 +0200, Jan wrote: > > Please let me know if any of the above assumptions or wrong or if > > there are any other cases I can eliminate. > > I agree with these assumptions. > > Here's where I'm at right now. I modified the splint command to look like the following: rm -rf splint/ mkdir -p splint/bits touch splint/bits/confname.h for i in `cat files`; do mkdir -p splint/`dirname $i` splint +posixlib +gnuextensions -linelen 999 -hints -showcolumn \ -Isplint -exportlocal -DTUI -I. \ -Icommon -I../include -I../bfd -I../libdecnumber -I../opcodes \ -I.. -I/usr/include/python2.7 $i &>splint/$i.out done and used the rest of the commands as is: find splint-clean/ -type f|sort|xargs cat|perl -lpe 's/^(\s*)(\S*?\.[ch]:\d+):/$1LOC $2\n/' >splint-clean.out find splint-bitpos/ -type f|sort|xargs cat|perl -lpe 's/^(\s*)(\S*?\.[ch]:\d+):/$1LOC $2\n/' >splint-bitpos.out ./locdiff splint-clean.out splint-bitpos.out Once I got the locdiff.out, the major improvement was that each warning has a specific pattern as I mentioned above, which meant that I could do some further processing to eliminate some of the more obvious spurious warnings. It also had the effect of reducing the output size to about 4200 lines. Then I wrote a script (attached) to reduce this further based on the following rules: 1) The store_unsigned_integer, extract_unsigned_integer and other related functions can always safely accept int as argument 2 since the type length to be passed in it must be a primitive integral type. So we can ignore all entries that look like: LOC - Function store_unsigned_integer expects arg 2 to be int... + Function store_unsigned_integer expects arg 2 to be int... 1) Lines of the following format: LOC
- + for type incompatibilities are processed to get the old warning and new warning and then deduce if we have caused a regression due to the change. The deducion is based on the type assignment warnings before and after. The basic rule to deduce safety of the change is to ensure that the target of the assignment is large enough for the source after the change. After running this script the changes to review have come to approx 2500 lines (also attached). Does this look OK? If it does, then I can do a step-by-step review of these changes and post them. Regards, Siddhesh --MP_/vs_ML.3dIosvoEW_+4DgbG= Content-Type: application/octet-stream; name=process-locdiff Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=process-locdiff Content-length: 7975 IyEgL3Vzci9iaW4vcGVybAp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CgpA QVJHVj09MSBvciBkaWU7CgpzdWIgcmVhZGZpbGUoJCkKewogIG15KCRmbmFt ZSk9QF87CgogIGxvY2FsICpGOwogIG9wZW4gRiwkZm5hbWUgb3IgZGllICRm bmFtZTsKICBteSAkRj1kbyB7IGxvY2FsICQvOyA8Rj47IH07CiAgZGVmaW5l ZCAkRiBvciBkaWUgJGZuYW1lOwogIGNsb3NlIEYgb3IgZGllICRmbmFtZTsK ICByZXR1cm4gJEY7Cn0KCiMgRmlndXJlIG91dCB3aGljaCBjaGFuZ2VzIGFy ZSBzYWZlIGJhc2VkIG9uIHRoZSB3YXJuaW5ncyBiZWZvcmUgYW5kIGFmdGVy IHRoZQojIGNoYW5nZS4Kc3ViIHNhZmVfY2hhbmdlKCQkKSB7CglteSgkcmVm X2Zyb20sICRyZWZfdG8pID0gQF87CglteSBAZiA9IEB7JHJlZl9mcm9tfTsK CW15IEB0ID0gQHskcmVmX3RvfTsKCgkjIEl0IGlzIE9LIGlmIHRoZSB3YXJu aW5ncyBiZWZvcmUgYW5kIGFmdGVyIHdlcmUgb25seSBmb3IgdGhlIHNpZ24g b2YKCSMgdGhlIGFzc2lnbm1lbnQgb3IgY29tcGFyaXNvbi4KCWlmICAoJGZb MF0gZXEgImludCIgICYmICRmWzFdIGVxICJMT05HRVNUIiAmJgoJICAgICAk dFswXSBlcSAiVUlOVCIgJiYgJHRbMV0gZXEgIlVMT05HRVNUIikgewoJCXJl dHVybiAxOwoJfQoKCSMgTGlrZXdpc2UgZm9yIHJldmVyc2Ugc2lnbi4KCWlm ICgkZlswXSBlcSAiVUlOVCIgJiYgJGZbMV0gZXEgIlVMT05HRVNUIiAmJgoJ ICAgICR0WzBdIGVxICJpbnQiICAmJiAkdFsxXSBlcSAiTE9OR0VTVCIpIHsK CQlyZXR1cm4gMTsKCX0KCgkjIElmIHRoZSBlYXJsaWVyIHRoZSB0YXJnZXQg d2FzIGxhcmdlciBidXQgd2l0aCBhIGRpZmZlcmVudCBzaWduIGFuZAoJIyBu b3cgd2UgaGF2ZSB0aGUgc2FtZSBzaXplIGJ1dCBkaWZmZXJlbnQgc2lnbiwg dGhlbiB3ZSdyZSBzdGlsbCBPSy4KCWlmICgkZlswXSBlcSAiaW50IiAmJiAk ZlsxXSBlcSAiTE9OR0VTVCIgJiYKCSAgICAkdFswXSBlcSAiVUxPTkdFU1Qi ICAmJiAkdFsxXSBlcSAiVUxPTkdFU1QiKSB7CgkJcmV0dXJuIDE7Cgl9CgoJ IyBMaWtld2lzZSBmb3IgcmV2ZXJzZSBzaWduLgoJaWYgKCRmWzBdIGVxICJV SU5UIiAmJiAkZlsxXSBlcSAiVUxPTkdFU1QiICYmCgkgICAgJHRbMF0gZXEg IkxPTkdFU1QiICAmJiAkdFsxXSBlcSAiTE9OR0VTVCIpIHsKCQlyZXR1cm4g MTsKCX0KCgkjIElmIHRoZSBlYXJsaWVyIHRoZSB0YXJnZXQgd2FzIHNtYWxs ZXIgYnV0IHdpdGggYSBkaWZmZXJlbnQgc2lnbiBhbmQKCSMgbm93IHdlIGhh dmUgdGhlIHNhbWUgc2l6ZSBidXQgZGlmZmVyZW50IHNpZ24gdGhlbiB3ZSBo YXZlIGFjdHVhbGx5CgkjIGZpeGVkIHNvbWV0aGluZy4KCWlmICgkZlswXSBl cSAiTE9OR0VTVCIgJiYgJGZbMV0gZXEgIkxPTkdFU1QiICYmCgkgICAgJHRb MF0gZXEgIlVJTlQiICAmJiAkdFsxXSBlcSAiVUxPTkdFU1QiKSB7CgkJcmV0 dXJuIDE7Cgl9CgoJIyBMaWtld2lzZSBmb3IgcmV2ZXJzZSBzaWduLgoJaWYg KCRmWzBdIGVxICJVTE9OR0VTVCIgJiYgJGZbMV0gZXEgIlVMT05HRVNUIiAm JgoJICAgICR0WzBdIGVxICJpbnQiICAmJiAkdFsxXSBlcSAiTE9OR0VTVCIp IHsKCQlyZXR1cm4gMTsKCX0KCgkjIElmIHdlIHNpbXBseSBncmV3IHRoZSB0 YXJnZXQgdHlwZSB3aXRob3V0IGNoYW5naW5nIHRoZSBzaWduLCB3ZSdyZQoJ IyBmaW5lIHRoZXJlIHRvby4KCWlmICgkZlswXSBlcSAiVUlOVCIgJiYgJGZb MV0gZXEgIlVJTlQiICYmCgkgICAgJHRbMF0gZXEgImludCIgICYmICR0WzFd IGVxICJMT05HRVNUIikgewoJCXJldHVybiAxOwoJfQoKCSMgTGlrZXdpc2Ug Zm9yIHJldmVyc2Ugc2lnbi4KCWlmICgkZlswXSBlcSAiaW50IiAmJiAkZlsx XSBlcSAiaW50IiAmJgoJICAgICR0WzBdIGVxICJVSU5UIiAgJiYgJHRbMV0g ZXEgIlVMT05HRVNUIikgewoJCXJldHVybiAxOwoJfQoKCSMgU2ltaWxhciBs b2dpYyBmb3IgKHMpc2l6ZV90LiBzaXplX3Qgd2lsbCBhbHdheXMgYmUgc21h bGxlciB0aGFuIG9yCgkjIGVxdWFsIHRvIExPTkdFU1QvVUxPTkdFU1QsIHNv IHRyZWF0IGl0IGFzIGlmIGl0IHdlcmUgc21hbGxlciBhbmQgdXNlCgkjIHRo ZSBzYW1lIGxvZ2ljIGFzIGFib3ZlLgoJaWYgKCRmWzBdIGVxICJzaXplX3Qi ICYmICRmWzFdIGVxICJzaXplX3QiICYmCgkgICAgJHRbMF0gZXEgImludCIg ICYmICR0WzFdIGVxICJMT05HRVNUIikgewoJCXJldHVybiAxOwoJfQoKCWlm ICgkZlswXSBlcSAic2l6ZV90IiAmJiAkZlsxXSBlcSAiVUxPTkdFU1QiICYm CgkgICAgJHRbMF0gZXEgIkxPTkdFU1QiICAmJiAkdFsxXSBlcSAiTE9OR0VT VCIpIHsKCQlyZXR1cm4gMTsKCX0KCglpZiAoJGZbMF0gZXEgInNzaXplX3Qi ICYmICRmWzFdIGVxICJzc2l6ZV90IiAmJgoJICAgICR0WzBdIGVxICJVSU5U IiAgJiYgJHRbMV0gZXEgIlVMT05HRVNUIikgewoJCXJldHVybiAxOwoJfQoK CWlmICgkZlswXSBlcSAic3NpemVfdCIgJiYgJGZbMV0gZXEgIkxPTkdFU1Qi ICYmCgkgICAgJHRbMF0gZXEgIlVMT05HRVNUIiAgJiYgJHRbMV0gZXEgIlVM T05HRVNUIikgewoJCXJldHVybiAxOwoJfQoKCXJldHVybiAwOwp9CgojIFJl YWQgaW4gdGhlIGZpbGUgYW5kIHByZXBhcmUgaXQgc28gdGhhdCB3ZSBjYW4g cnVuIG91ciBmdXR1cmUgcmVnZXhlcyBlYXNpbHkuCm15ICRmID0gcmVhZGZp bGUgJEFSR1ZbMF07CgokZj1+c3t1bnNpZ25lZCBsb25nIGludH17IlVMT05H RVNUIjt9ZWdtOwokZj1+c3tsb25nIGludH17IkxPTkdFU1QiO31lZ207CiRm PX5ze3Vuc2lnbmVkIGludH17IlVJTlQiO31lZ207CgojIDAgPSBBc3NpZ25t ZW50IG9mLi4uCiMgMSA9IEZ1bmN0aW9uIDxmdW5jPiBleHBlY3RzIGFyZyA8 bnVtPi4uLgojIDIgPSBGdW5jdGlvbiAqc2lnbmVkX2ludGVnZXIgZXhwZWN0 cyBhcmcgMi4uLgojIDMgPSBWYXJpYWJsZSA8dmFyPiBpbml0aWFsaXplZCB0 byB0eXBlIC4uLgpteSAkbWF0Y2ggPSAtMTsKCm15ICRsb29rID0gLTE7Cm15 IEBzYXZlbGluZXM7Cm15IEBmcm9tOwpteSBAdG87Cm15IEBleHByOwpteSBA dmFyOwpteSBAYXJnbnVtOwoKIyBXYWxrIHRocm91Z2ggdGhlIGZpbGUuCkxJ TkU6IGZvcihzcGxpdCAvXi8sICRmKSB7CglteSAkbGluZSA9ICRfOwoKCSMg U2tpcCBibGFuayBsaW5lcwoJbmV4dCBMSU5FIGlmIC9eXHMqJC87CgkjIFNr aXAgc3VtbWFyeSBsaW5lcwoJbmV4dCBMSU5FIGlmIC9eWy0rXUZpbmlzaGVk IGNoZWNraW5nLzsKCSMgU2tpcCBjb21tYW5kIHdhcm5pbmdzLgoJbmV4dCBM SU5FIGlmIC9eIENvbW1hbmQgTGluZTogU2V0dGluZy87CgluZXh0IExJTkUg aWYgL14gU3BsaW50IDNcLjFcLjIgLS0tLzsKCgkjIEZvdW5kIGEgTE9DLiBX ZSBsb29rIGF0IHRoZSBuZXh0IGxpbmVzLgoJaWYgKC9eIExPQy8pIHsKCQlw dXNoIEBzYXZlbGluZXMsICRfOwoJCSRsb29rID0gMDsKCQluZXh0IExJTkU7 Cgl9CgkjIFdlJ3JlIGxvb2tpbmcgYXQgdGhlIG5leHQgbGluZXMuCgllbHNp ZiAoJGxvb2sgPj0gMCkgewoJCW15ICRsID0gJF87CgoJCSMgTWFrZSBzdXJl IHRoYXQgdGhlIHR5cGUgcHJvbW90aW9ucyBhcmUgc2FmZS4gU2VlIHNhZmVf Y2hhbmdlCgkJIyBmb3IgZGV0YWlscwoJCWlmICgoJGxvb2sgPT0gMCB8fCAk bWF0Y2ggPT0gMCkgJiYgL0Fzc2lnbm1lbnQgb2YgKFx3KykgdG8gKFx3Kyk6 KC4qKSQvKSB7CgkJCXB1c2ggQGZyb20sICQxOwoJCQlwdXNoIEB0bywgJDI7 CgkJCXB1c2ggQGV4cHIsICQzOwoJCQlwdXNoIEBzYXZlbGluZXMsICRsOwoJ CQkkbGluZSA9ICIiOwoJCQkkbG9vayArPSAxOwoJCQkkbWF0Y2ggPSAwOwoK CQkJbmV4dCBMSU5FIGlmICRsb29rID09IDE7CgoJCQkjIG9ubHkgaWYgd2Un cmUgdGFsa2luZyBhYm91dCB0aGUgc2FtZSBleHByZXNzaW9uCgkJCWlmICgo JGV4cHJbMF0gZXEgJGV4cHJbMV0pICYmIHNhZmVfY2hhbmdlIChcQGZyb20s IFxAdG8pKSB7CgkJCQkjIFNraXAgdGhlIGNoYW5nZXNldC4KCQkJCSQjc2F2 ZWxpbmVzID0gLTE7CgkJCX0KCQkJZ290byBkb25lOwoJCX0KCgkJIyBUaGUg KHN0b3JlfGV4dHJhY3QpXyh1bik/c2lnbmVkX2ludGVnZXIgZnVuY3Rpb25z IGFsd2F5cyBoYXZlCgkJIyBhIHByaW1pdGl2ZSBzaXplIGluIGFyZyAyIGFu ZCBoZW5jZSB0aGlzIHdhcm5pbmcgaXMgbW9vdCBmb3IKCQkjIHRoaXMgY2hh bmdlLi4KCQlpZiAoKCRsb29rID09IDAgfHwgJG1hdGNoID09IDIpICYmIC9G dW5jdGlvbiAoKGV4dHJhY3QpfChzdG9yZSkpP18obG9uZ18pPyh1bik/c2ln bmVkX2ludGVnZXIgZXhwZWN0cyBhcmcgMiB0byBiZSBpbnQvKSB7CgkJCSRs aW5lID0gIiI7CgkJCXB1c2ggQHNhdmVsaW5lcywgJGw7CgkJCSRsb29rICs9 IDE7CgkJCSRtYXRjaCA9IDI7CgkJCW5leHQgTElORSBpZiAkbG9vayA9PSAx OwoJCQkkI3NhdmVsaW5lcyA9IC0xOwoJCQlnb3RvIGRvbmU7CgkJfQoKCQkj IEFuYWxvZ291cyBjaGFuZ2UgdG8gdGhlIEFzc2lnbm1lbnQgY2hhbmdlIGFi b3ZlLiBBZ2Fpbiwgc2VlCgkJIyBzYWZlX2NoYW5nZSBmdW5jdGlvbiBmb3Ig ZGV0YWlscy4KCQlpZiAoKCRsb29rID09IDAgfHwgJG1hdGNoID09IDEpICYm IC9GdW5jdGlvbiAoXHcrKSBleHBlY3RzIGFyZyAoXGQpIHRvIGJlIChcdysp IGdldHMgKFx3Kyk6ICguKikkLykgewoJCQlwdXNoIEB2YXIsICQxOwoJCQlw dXNoIEBhcmdudW0sICQyOwoJCQlwdXNoIEB0bywgJDM7CgkJCXB1c2ggQGZy b20sICQ0OwoJCQlwdXNoIEBleHByLCAkNTsKCQkJcHVzaCBAc2F2ZWxpbmVz LCAkbDsKCQkJJGxpbmUgPSAiIjsKCQkJJGxvb2sgKz0gMTsKCQkJJG1hdGNo ID0gMTsKCgkJCW5leHQgTElORSBpZiAkbG9vayA9PSAxOwoKCQkJIyBvbmx5 IGlmIHdlJ3JlIHRhbGtpbmcgYWJvdXQgdGhlIHNhbWUgZXhwcmVzc2lvbgoJ CQlpZiAoKCRleHByWzBdIGVxICRleHByWzFdKSAmJgoJCQkJKCR2YXJbMF0g ZXEgJHZhclsxXSkgJiYKCQkJCSgkYXJnbnVtWzBdIGVxICRhcmdudW1bMV0p ICYmCgkJCQkoc2FmZV9jaGFuZ2UgKFxAZnJvbSwgXEB0bykpKSB7CgkJCQkj IFNraXAgdGhlIGNoYW5nZXNldC4KCQkJCSQjc2F2ZWxpbmVzID0gLTE7CgkJ CX0KCQkJZ290byBkb25lOwoJCX0KCgkJIyBBbmFsb2dvdXMgY2hhbmdlIHRv IHRoZSBGdW5jdGlvbiBjaGFuZ2UgYWJvdmUuCgkJaWYgKCgkbG9vayA9PSAw IHx8ICRtYXRjaCA9PSAzKSAmJiAvVmFyaWFibGUgKFx3KykgaW5pdGlhbGl6 ZWQgdG8gdHlwZSAoXHcrKSwgZXhwZWN0cyAoXHcrKTogKC4qKSQvKSB7CgkJ CXB1c2ggQHZhciwgJDE7CgkJCXB1c2ggQHRvLCAkMjsKCQkJcHVzaCBAZnJv bSwgJDM7CgkJCXB1c2ggQGV4cHIsICQ0OwoJCQlwdXNoIEBzYXZlbGluZXMs ICRsOwoJCQkkbGluZSA9ICIiOwoJCQkkbG9vayArPSAxOwoJCQkkbWF0Y2gg PSAzOwoKCQkJbmV4dCBMSU5FIGlmICRsb29rID09IDE7CgoJCQkjIG9ubHkg aWYgd2UncmUgdGFsa2luZyBhYm91dCB0aGUgc2FtZSBleHByZXNzaW9uCgkJ CWlmICgoJGV4cHJbMF0gZXEgJGV4cHJbMV0pICYmCgkJCQkoJHZhclswXSBl cSAkdmFyWzFdKSAmJgoJCQkJKHNhZmVfY2hhbmdlIChcQGZyb20sIFxAdG8p KSkgewoJCQkJIyBTa2lwIHRoZSBjaGFuZ2VzZXQuCgkJCQkkI3NhdmVsaW5l cyA9IC0xOwoJCQl9CgkJCWdvdG8gZG9uZTsKCQl9Cgl9CgoJIyBUaGUgbmV4 dCBsaW5lcyBkaWRuJ3Qgd29yayBvdXQgYXMgZXhwZWN0ZWQsIHNvIGNsZWFy IGFuZCBwcmludAoJIyBldmVyeXRoaW5nIG91dCBhcyBpZiBub3RoaW5nIGhh cHBlbmVkLgpkb25lOgkkbG9vayA9IC0xOwoJZm9yZWFjaChAc2F2ZWxpbmVz KSB7CgkJcHJpbnQgJF87Cgl9CglwcmludCAkbGluZTsKCSQjc2F2ZWxpbmVz ID0gLTE7CgkkI3ZhciA9IC0xOwoJJCNhcmdudW0gPSAtMTsKCSQjZnJvbSA9 IC0xOwoJJCN0byA9IC0xOwoJJCNleHByID0gLTE7Cn0K --MP_/vs_ML.3dIosvoEW_+4DgbG= Content-Type: application/octet-stream; name=differ Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=differ Content-length: 198446 LS0tIC90bXAvbG9jZGlmZi4xNzM2Ny5hCTIwMTItMDYtMTEgMTU6MjU6NDMu ODA0MzE4NDgyICswNTMwCisrKyAvdG1wL2xvY2RpZmYuMTczNjcuYgkyMDEy LTA2LTExIDE1OjI1OjQ0LjI0MDMxODQ5MiArMDUzMApAQCAtMSwzNjczMDQg KzEsMzY3NjIzIEBACiBMT0MgYWRhLWxhbmcuYzo1NzkgKGFkYS1sYW5nLmM6 NTc4KQotIEZ1bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNp emVfdCBnZXRzIFVJTlQ6ICh0eXBlKS0+bGVuZ3RoCisgRnVuY3Rpb24gbWVt Y3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgVUxPTkdFU1Q6 ICh0eXBlKS0+bGVuZ3RoCiBMT0MgYWRhLWxhbmcuYzo2NzAgKGFkYS1sYW5n LmM6NjY5KQotIEZ1bmN0aW9uIHVtYXhfb2Zfc2l6ZSBleHBlY3RzIGFyZyAx IHRvIGJlIGludCBnZXRzIFVJTlQ6ICh0KS0+bGVuZ3RoCisgRnVuY3Rpb24g dW1heF9vZl9zaXplIGV4cGVjdHMgYXJnIDEgdG8gYmUgaW50IGdldHMgVUxP TkdFU1Q6ICh0KS0+bGVuZ3RoCiBMT0MgYWRhLWxhbmcuYzo2NzIgKGFkYS1s YW5nLmM6NjcxKQotIEZ1bmN0aW9uIG1heF9vZl9zaXplIGV4cGVjdHMgYXJn IDEgdG8gYmUgaW50IGdldHMgVUlOVDogKHQpLT5sZW5ndGgKKyBGdW5jdGlv biBtYXhfb2Zfc2l6ZSBleHBlY3RzIGFyZyAxIHRvIGJlIGludCBnZXRzIFVM T05HRVNUOiAodCktPmxlbmd0aAogYWRhLWxhbmcuYzogKGluIGZ1bmN0aW9u IG1pbl9vZl90eXBlKQogTE9DIGFkYS1sYW5nLmM6NjgyIChhZGEtbGFuZy5j OjY4MSkKLSBGdW5jdGlvbiBtaW5fb2Zfc2l6ZSBleHBlY3RzIGFyZyAxIHRv IGJlIGludCBnZXRzIFVJTlQ6ICh0KS0+bGVuZ3RoCisgRnVuY3Rpb24gbWlu X29mX3NpemUgZXhwZWN0cyBhcmcgMSB0byBiZSBpbnQgZ2V0cyBVTE9OR0VT VDogKHQpLT5sZW5ndGgKIGFkYS1sYW5nLmM6IChpbiBmdW5jdGlvbiBhZGFf ZGlzY3JldGVfdHlwZV9oaWdoX2JvdW5kKQogTE9DIGFkYS1sYW5nLmM6MTYy MiAoYWRhLWxhbmcuYzoxNjIxKQotIFJldHVybiB2YWx1ZSB0eXBlIFVJTlQg ZG9lcyBub3QgbWF0Y2ggZGVjbGFyZWQgdHlwZSBpbnQ6IDggKiAoYWRhX2No ZWNrX3R5cGVkZWYoKCgodHlwZSktPm1haW5fdHlwZS0+Zmxkc19ibmRzLmZp ZWxkc1sxXSkudHlwZSkpKS0+bGVuZ3RoCisgUmV0dXJuIHZhbHVlIHR5cGUg VUxPTkdFU1QgZG9lcyBub3QgbWF0Y2ggZGVjbGFyZWQgdHlwZSBpbnQ6IDgg KiAoYWRhX2NoZWNrX3R5cGVkZWYoKCgodHlwZSktPm1haW5fdHlwZS0+Zmxk c19ibmRzLmZpZWxkc1sxXSkudHlwZSkpKS0+bGVuZ3RoCiBMT0MgYWRhLWxh bmcuYzoxNjg4IChhZGEtbGFuZy5jOjE2ODcpCi0gUmV0dXJuIHZhbHVlIHR5 cGUgVUlOVCBkb2VzIG5vdCBtYXRjaCBkZWNsYXJlZCB0eXBlIGludDogOCAq ICgoKCh0eXBlKS0+bWFpbl90eXBlLT5mbGRzX2JuZHMuZmllbGRzWzBdKS50 eXBlKSktPmxlbmd0aAorIFJldHVybiB2YWx1ZSB0eXBlIFVMT05HRVNUIGRv ZXMgbm90IG1hdGNoIGRlY2xhcmVkIHR5cGUgaW50OiA4ICogKCgoKHR5cGUp LT5tYWluX3R5cGUtPmZsZHNfYm5kcy5maWVsZHNbMF0pLnR5cGUpKS0+bGVu Z3RoCiBMT0MgYWRhLWxhbmcuYzoxNzI0IChhZGEtbGFuZy5jOjE3MjMpCi0g UmV0dXJuIHZhbHVlIHR5cGUgVUlOVCBkb2VzIG5vdCBtYXRjaCBkZWNsYXJl ZCB0eXBlIGludDogOCAqICgoKCh0eXBlKS0+bWFpbl90eXBlLT5mbGRzX2Ju ZHMuZmllbGRzWzIgKiBpICsgd2hpY2ggLSAyXSkudHlwZSkpLT5sZW5ndGgK KyBSZXR1cm4gdmFsdWUgdHlwZSBVTE9OR0VTVCBkb2VzIG5vdCBtYXRjaCBk ZWNsYXJlZCB0eXBlIGludDogOCAqICgoKCh0eXBlKS0+bWFpbl90eXBlLT5m bGRzX2JuZHMuZmllbGRzWzIgKiBpICsgd2hpY2ggLSAyXSkudHlwZSkpLT5s ZW5ndGgKIExPQyBhZGEtbGFuZy5jOjE4OTkgKGFkYS1sYW5nLmM6MTg5NikK LSBWYXJpYWJsZSBhcnJheV9iaXRzaXplIGluaXRpYWxpemVkIHRvIHR5cGUg TE9OR0VTVCwgZXhwZWN0cyBpbnQ6IChoaSAtIGxvICsgMSkgKiAoKChlbHRf dHlwZSktPm1haW5fdHlwZS0+Zmxkc19ibmRzLmZpZWxkc1swXSkuYml0c2l6 ZSkKLUxPQyBhZGEtbGFuZy5jOjE4OTgKLSBBc3NpZ25tZW50IG9mIGludCB0 byBVSU5UOiAoYXJyYXlfdHlwZSktPmxlbmd0aCA9IChhcnJheV9iaXRzaXpl ICsgNykgLyA4CisgQXNzaWdubWVudCBvZiBMT05HRVNUIHRvIFVMT05HRVNU OiAoYXJyYXlfdHlwZSktPmxlbmd0aCA9IChhcnJheV9iaXRzaXplICsgNykg LyA4CitMT0MgYWRhLWxhbmcuYzoyMTg1CisgRnVuY3Rpb24gYWRhX3ZhbHVl X3ByaW1pdGl2ZV9wYWNrZWRfdmFsIGV4cGVjdHMgYXJnIDQgdG8gYmUgaW50 IGdldHMgTE9OR0VTVDogYml0X3BvcyAlIDgKIExPQyBhZGEtbGFuZy5jOjIz MzggKGFkYS1sYW5nLmM6MjMyMikKLSBGdW5jdGlvbiBzZXRfdmFsdWVfb2Zm c2V0IGV4cGVjdHMgYXJnIDIgdG8gYmUgaW50IGdldHMgTE9OR0VTVDogbmV3 X29mZnNldAotTE9DIGFkYS1sYW5nLmM6MjMzNQotIEFzc2lnbm1lbnQgb2Yg VUlOVCB0byBpbnQ6IG50YXJnID0gKHR5cGUpLT5sZW5ndGgKKyBBc3NpZ25t ZW50IG9mIFVMT05HRVNUIHRvIExPTkdFU1Q6IG50YXJnID0gKHR5cGUpLT5s ZW5ndGgKIExPQyBhZGEtbGFuZy5jOjIzNDIgKGFkYS1sYW5nLmM6MjMzOSkK LSBGdW5jdGlvbiBtZW1zZXQgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXplX3Qg Z2V0cyBVSU5UOiAodHlwZSktPmxlbmd0aAorIEZ1bmN0aW9uIG1lbXNldCBl eHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIFVMT05HRVNUOiAodHlw ZSktPmxlbmd0aAorTE9DIGFkYS1sYW5nLmM6MjM3OQorIEFzc2lnbm1lbnQg b2YgTE9OR0VTVCB0byBpbnQ6IHNyYyA9IHRhcmcgPSAwCiBMT0MgYWRhLWxh bmcuYzoyNDQ1IChhZGEtbGFuZy5jOjI0NDgpCisgQXNzaWdubWVudCBvZiBM T05HRVNUIHRvIGludDogYWNjdW1fYml0cyA9IDggLSBzcmNfb2Zmc2V0CitM T0MgYWRhLWxhbmcuYzoyNDUxCiAgSW5jb21wYXRpYmxlIHR5cGVzIGZvciAr IChVSU5ULCB1bnNpZ25lZCBjaGFyKTogKGFjY3VtIDw8IDgpICsgKHVuc2ln bmVkIGNoYXIpKnNvdXJjZQogTE9DIGFkYS1sYW5nLmM6MjQ1NQorIE9wZXJh bmRzIG9mID4gaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKGludCwgTE9OR0VT VCk6IGNodW5rX3NpemUgPiBuCitMT0MgYWRhLWxhbmcuYzoyNDU2CisgQXNz aWdubWVudCBvZiBMT05HRVNUIHRvIGludDogY2h1bmtfc2l6ZSA9IG4KK0xP QyBhZGEtbGFuZy5jOjI0NTgKICBSaWdodCBvcGVyYW5kIG9mIDw8IG1heSBi ZSBuZWdhdGl2ZSAoaW50KTogMSA8PCBjaHVua19zaXplCiBMT0MgYWRhLWxh bmcuYzoyNDcwIChhZGEtbGFuZy5jOjI0NjcpCi0gUmlnaHQgb3BlcmFuZCBv ZiA+PiBtYXkgYmUgbmVnYXRpdmUgKGludCk6ICh1bnNpZ25lZCBjaGFyKSpz b3VyY2UgPj4gc3JjX29mZnNldAorIFJpZ2h0IG9wZXJhbmQgb2YgPj4gbWF5 IGJlIG5lZ2F0aXZlIChMT05HRVNUKTogKHVuc2lnbmVkIGNoYXIpKnNvdXJj ZSA+PiBzcmNfb2Zmc2V0CiBMT0MgYWRhLWxhbmcuYzoyNDcwIChhZGEtbGFu Zy5jOjI0NjcpCi0gQXNzaWdubWVudCBvZiB1bnNpZ25lZCBjaGFyIHRvIFVJ TlQ6IGFjY3VtID0gKHVuc2lnbmVkIGNoYXIpKnNvdXJjZSA+PiBzcmNfb2Zm c2V0CisgQXNzaWdubWVudCBvZiBMT05HRVNUIHRvIFVJTlQ6IGFjY3VtID0g KHVuc2lnbmVkIGNoYXIpKnNvdXJjZSA+PiBzcmNfb2Zmc2V0CitMT0MgYWRh LWxhbmcuYzoyNDcyCisgQXNzaWdubWVudCBvZiBMT05HRVNUIHRvIGludDog YWNjdW1fYml0cyA9IDggLSBzcmNfb2Zmc2V0CiBMT0MgYWRhLWxhbmcuYzoy NDgwIChhZGEtbGFuZy5jOjI0NzkpCisgT3BlcmFuZHMgb2YgPiBoYXZlIGlu Y29tcGF0aWJsZSB0eXBlcyAoaW50LCBMT05HRVNUKTogY2h1bmtfc2l6ZSA+ IG4KK0xPQyBhZGEtbGFuZy5jOjI0ODEKKyBBc3NpZ25tZW50IG9mIExPTkdF U1QgdG8gaW50OiBjaHVua19zaXplID0gbgorTE9DIGFkYS1sYW5nLmM6MjQ4 MgogIFJpZ2h0IG9wZXJhbmQgb2YgPDwgbWF5IGJlIG5lZ2F0aXZlIChpbnQp OiAxIDw8IGNodW5rX3NpemUKIExPQyBhZGEtbGFuZy5jOjI1NDUgKGFkYS1s YW5nLmM6MjU0MikKLSBGdW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0 byBiZSBzaXplX3QgZ2V0cyBVSU5UOiAodHlwZSktPmxlbmd0aAorIEZ1bmN0 aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIFVM T05HRVNUOiAodHlwZSktPmxlbmd0aAogTE9DIGFkYS1sYW5nLmM6NDA5NCAo YWRhLWxhbmcuYzo0MDkxKQotIEZ1bmN0aW9uIHdyaXRlX21lbW9yeSBleHBl Y3RzIGFyZyAzIHRvIGJlIHNzaXplX3QgZ2V0cyBpbnQ6IGxlbgorIEZ1bmN0 aW9uIHdyaXRlX21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJlIHNzaXplX3Qg Z2V0cyBMT05HRVNUOiBsZW4KIExPQyBhZGEtbGFuZy5jOjQxMzggKGFkYS1s YW5nLmM6NDEzNSkKLSBGdW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0 byBiZSBzaXplX3QgZ2V0cyBVSU5UOiAoYWN0dWFsX3R5cGUpLT5sZW5ndGgK KyBGdW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXplX3Qg Z2V0cyBVTE9OR0VTVDogKGFjdHVhbF90eXBlKS0+bGVuZ3RoCiBMT0MgYWRh LWxhbmcuYzo0MTYzIChhZGEtbGFuZy5jOjQxNjApCi0gRnVuY3Rpb24gQ19h bGxvY2EgZXhwZWN0cyBhcmcgMSB0byBiZSBzaXplX3QgZ2V0cyBVSU5UOiBs ZW4KKyBGdW5jdGlvbiBDX2FsbG9jYSBleHBlY3RzIGFyZyAxIHRvIGJlIHNp emVfdCBnZXRzIFVMT05HRVNUOiBsZW4KIExPQyBhZGEtbGFuZy5jOjY0NDkg KGFkYS1sYW5nLmM6NjQ0NCkKKyBGdW5jdGlvbiBhZGFfdmFsdWVfcHJpbWl0 aXZlX3BhY2tlZF92YWwgZXhwZWN0cyBhcmcgNCB0byBiZSBpbnQgZ2V0cyBM T05HRVNUOiBiaXRfcG9zICUgOAorTE9DIGFkYS1sYW5nLmM6NjQ0NwogIE5l dyBmcmVzaCBzdG9yYWdlICh0eXBlIGdkYl9ieXRlICopIHBhc3NlZCBhcyBp bXBsaWNpdGx5IHRlbXAgKG5vdCByZWxlYXNlZCk6IHZhbHVlX2NvbnRlbnRz KGFyZzEpCiBMT0MgYWRhLWxhbmcuYzo2NTA3CisgQXNzaWdubWVudCBvZiBM T05HRVNUIHRvIGludDogKmJpdF9vZmZzZXRfcCA9IGJpdF9wb3MgJSA4CitM T0MgYWRhLWxhbmcuYzo2NTEwCiAgRnJlc2ggc3RvcmFnZSB0eXBlIG5vdCBy ZWxlYXNlZCBiZWZvcmUgcmV0dXJuCiAgICBMT0MgYWRhLWxhbmcuYzo2NDc4 IChhZGEtbGFuZy5jOjY0NzUpCiAgRnJlc2ggc3RvcmFnZSB0eXBlIGNyZWF0 ZWQKIExPQyBhZGEtbGFuZy5jOjc0NDggKGFkYS1sYW5nLmM6NzQ0NSkKLSBB c3NpZ25tZW50IG9mIFVJTlQgdG8gTE9OR0VTVDogb2ZmID0gYWxpZ25fdmFs dWUob2ZmLCBmaWVsZF9hbGlnbm1lbnQodHlwZSwgZikpICsgKCgoKHR5cGUp LT5tYWluX3R5cGUtPmZsZHNfYm5kcy5maWVsZHNbZl0pLmxvYy5iaXRwb3Mp ICsgMCkKLUxPQyBhZGEtbGFuZy5jOjc0NDcKLSBBc3NpZ25tZW50IG9mIExP TkdFU1QgdG8gaW50OiAoKChydHlwZSktPm1haW5fdHlwZS0+Zmxkc19ibmRz LmZpZWxkc1tmXSkubG9jLmJpdHBvcykgPSAob2ZmKQorIEFzc2lnbm1lbnQg b2YgVUxPTkdFU1QgdG8gTE9OR0VTVDogb2ZmID0gYWxpZ25fdmFsdWUob2Zm LCBmaWVsZF9hbGlnbm1lbnQodHlwZSwgZikpICsgKCgoKHR5cGUpLT5tYWlu X3R5cGUtPmZsZHNfYm5kcy5maWVsZHNbZl0pLmxvYy5iaXRwb3MpICsgMCkK IExPQyBhZGEtbGFuZy5jOjc1NDIgKGFkYS1sYW5nLmM6NzUzOSkKLSBBc3Np Z25tZW50IG9mIFVJTlQgdG8gaW50OiBmbGRfYml0X2xlbiA9ICgoKHJ0eXBl KS0+bWFpbl90eXBlLT5mbGRzX2JuZHMuZmllbGRzW2ZdKS5iaXRzaXplKSA9 ICgoKHR5cGUpLT5tYWluX3R5cGUtPmZsZHNfYm5kcy5maWVsZHNbZl0pLmJp dHNpemUpCi1MT0MgYWRhLWxhbmcuYzo3NTQyCi0gQXNzaWdubWVudCBvZiBV SU5UIHRvIGludDogZmxkX2JpdF9sZW4gPSAoYWRhX2NoZWNrX3R5cGVkZWYo ZmllbGRfdHlwZSkpLT5sZW5ndGggKiA4CisgQXNzaWdubWVudCBvZiBVSU5U IHRvIExPTkdFU1Q6IGZsZF9iaXRfbGVuID0gKCgocnR5cGUpLT5tYWluX3R5 cGUtPmZsZHNfYm5kcy5maWVsZHNbZl0pLmJpdHNpemUpID0gKCgodHlwZSkt Pm1haW5fdHlwZS0+Zmxkc19ibmRzLmZpZWxkc1tmXSkuYml0c2l6ZSkKIExP QyBhZGEtbGFuZy5jOjc1NDUgKGFkYS1sYW5nLmM6NzU0NikKLSBBc3NpZ25t ZW50IG9mIExPTkdFU1QgdG8gaW50OiBiaXRfbGVuID0gb2ZmICsgZmxkX2Jp dF9sZW4KKyBBc3NpZ25tZW50IG9mIFVMT05HRVNUIHRvIExPTkdFU1Q6IGZs ZF9iaXRfbGVuID0gKGFkYV9jaGVja190eXBlZGVmKGZpZWxkX3R5cGUpKS0+ bGVuZ3RoICogOAogTE9DIGFkYS1sYW5nLmM6NzU4NSAoYWRhLWxhbmcuYzo3 NTgyKQotIEFzc2lnbm1lbnQgb2YgVUlOVCB0byBpbnQ6IGZsZF9iaXRfbGVu ID0gKCgoKHJ0eXBlKS0+bWFpbl90eXBlLT5mbGRzX2JuZHMuZmllbGRzW3Zh cmlhbnRfZmllbGRdKS50eXBlKSktPmxlbmd0aCAqIDgKLUxPQyBhZGEtbGFu Zy5jOjc1ODYKLSBBc3NpZ25tZW50IG9mIExPTkdFU1QgdG8gaW50OiBiaXRf bGVuID0gb2ZmICsgZmxkX2JpdF9sZW4KKyBBc3NpZ25tZW50IG9mIFVMT05H RVNUIHRvIExPTkdFU1Q6IGZsZF9iaXRfbGVuID0gKCgoKHJ0eXBlKS0+bWFp bl90eXBlLT5mbGRzX2JuZHMuZmllbGRzW3ZhcmlhbnRfZmllbGRdKS50eXBl KSktPmxlbmd0aCAqIDgKIExPQyBhZGEtbGFuZy5jOjc2MDQgKGFkYS1sYW5n LmM6NzYwMSkKLSBOZXcgZnJlc2ggc3RvcmFnZSAodHlwZSBjaGFyICopIHBh c3NlZCBhcyBpbXBsaWNpdGx5IHRlbXAgKG5vdCByZWxlYXNlZCk6IGdldHRl eHQoIkludmFsaWQgdHlwZSBzaXplIGZvciBgJXMnIGRldGVjdGVkOiAlZC4i KQorIE5ldyBmcmVzaCBzdG9yYWdlICh0eXBlIGNoYXIgKikgcGFzc2VkIGFz IGltcGxpY2l0bHkgdGVtcCAobm90IHJlbGVhc2VkKTogZ2V0dGV4dCgiSW52 YWxpZCB0eXBlIHNpemUgZm9yIGAlcycgZGV0ZWN0ZWQ6ICVzLiIpCiBMT0Mg YWRhLWxhbmcuYzo3NjA3IChhZGEtbGFuZy5jOjc2MDQpCi0gTmV3IGZyZXNo IHN0b3JhZ2UgKHR5cGUgY2hhciAqKSBwYXNzZWQgYXMgaW1wbGljaXRseSB0 ZW1wIChub3QgcmVsZWFzZWQpOiBnZXR0ZXh0KCJJbnZhbGlkIHR5cGUgc2l6 ZSBmb3IgPHVubmFtZWQ+IGRldGVjdGVkOiAlZC4iKQorIE5ldyBmcmVzaCBz dG9yYWdlICh0eXBlIGNoYXIgKikgcGFzc2VkIGFzIGltcGxpY2l0bHkgdGVt cCAobm90IHJlbGVhc2VkKTogZ2V0dGV4dCgiSW52YWxpZCB0eXBlIHNpemUg Zm9yIDx1bm5hbWVkPiBkZXRlY3RlZDogJXMuIikKIExPQyBhZGEtbGFuZy5j Ojc5NDUgKGFkYS1sYW5nLmM6Nzk0MikKLSBWYXJpYWJsZSBsZW4gaW5pdGlh bGl6ZWQgdG8gdHlwZSBVSU5ULCBleHBlY3RzIGludDogKHJlc3VsdCktPmxl bmd0aCAvICgocmVzdWx0KS0+bWFpbl90eXBlLT50YXJnZXRfdHlwZSktPmxl bmd0aAorIFZhcmlhYmxlIGxlbiBpbml0aWFsaXplZCB0byB0eXBlIFVMT05H RVNULCBleHBlY3RzIExPTkdFU1Q6ICgocmVzdWx0KS0+bGVuZ3RoIC8gKChy ZXN1bHQpLT5tYWluX3R5cGUtPnRhcmdldF90eXBlKS0+bGVuZ3RoKQogTE9D IGFkYS1sYW5nLmM6Nzk1MSAoYWRhLWxhbmcuYzo3OTQ3KQotIE9wZXJhbmRz IG9mIDwgaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKFVJTlQsIGludCk6IChy ZXN1bHQpLT5sZW5ndGggKiA4IDwgbGVuICogZWx0X2JpdHNpemUKKyBPcGVy YW5kcyBvZiA8IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChVTE9OR0VTVCwg TE9OR0VTVCk6IChyZXN1bHQpLT5sZW5ndGggKiA4IDwgbGVuICogZWx0X2Jp dHNpemUKIExPQyBhZGEtbGFuZy5jOjgwMTcgKGFkYS1sYW5nLmM6ODAxMykK LSBPcGVyYW5kcyBvZiAhPSBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoVUlO VCwgTE9OR0VTVCk6IChmaXhlZF9yZWNvcmRfdHlwZSktPmxlbmd0aCAhPSBz aXplCisgT3BlcmFuZHMgb2YgIT0gaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMg KFVMT05HRVNULCBMT05HRVNUKTogKGZpeGVkX3JlY29yZF90eXBlKS0+bGVu Z3RoICE9IHNpemUKIExPQyBhZGEtbGFuZy5jOjg3NTcgKGFkYS1sYW5nLmM6 ODc1MykKLSBGdW5jdGlvbiBtZW1jbXAgZXhwZWN0cyBhcmcgMyB0byBiZSBz aXplX3QgZ2V0cyBVSU5UOiAodmFsdWVfdHlwZShhcmcxKSktPmxlbmd0aAor IEZ1bmN0aW9uIG1lbWNtcCBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBn ZXRzIFVMT05HRVNUOiAodmFsdWVfdHlwZShhcmcxKSktPmxlbmd0aAogTE9D IGFkYS1sYW5nLmM6ODgxMiAoYWRhLWxhbmcuYzo4ODA4KQotIEZ1bmN0aW9u IGFkYV9pbmRleF9zdHJ1Y3RfZmllbGQgZXhwZWN0cyBhcmcgMSB0byBiZSBp bnQgZ2V0cyBMT05HRVNUOiBpbmRleAotTE9DIGFkYS1sYW5nLmM6ODgwOAog IE5ldyBmcmVzaCBzdG9yYWdlICh0eXBlIHN0cnVjdCB0eXBlICopIHBhc3Nl ZCBhcyBpbXBsaWNpdGx5IHRlbXAgKG5vdCByZWxlYXNlZCk6IHZhbHVlX3R5 cGUobGhzKQogTE9DIG1lbXJhbmdlLmg6MzgKICBGaWxlIHN0YXRpYyBmdW5j dGlvbiBWRUNfbWVtX3JhbmdlX3Nfc2FmZV9pbnNlcnQgZGVjbGFyZWQgYnV0 IG5vdCB1c2VkCiAgICBMT0MgbWVtcmFuZ2UuaDozOAogIERlZmluaXRpb24g b2YgVkVDX21lbV9yYW5nZV9zX3NhZmVfaW5zZXJ0CiBMT0MgYWRhLXR5cGVw cmludC5jOjgxOAotIE5ldyBmcmVzaCBzdG9yYWdlICh0eXBlIGNoYXIgKikg cGFzc2VkIGFzIGltcGxpY2l0bHkgdGVtcCAobm90IHJlbGVhc2VkKTogZ2V0 dGV4dCgiPCVkLWJ5dGUgaW50ZWdlcj4iKQorIE5ldyBmcmVzaCBzdG9yYWdl ICh0eXBlIGNoYXIgKikgcGFzc2VkIGFzIGltcGxpY2l0bHkgdGVtcCAobm90 IHJlbGVhc2VkKTogZ2V0dGV4dCgiPCVzLWJ5dGUgaW50ZWdlcj4iKQogTE9D IGFkYS10eXBlcHJpbnQuYzo4NDAKLSBOZXcgZnJlc2ggc3RvcmFnZSAodHlw ZSBjaGFyICopIHBhc3NlZCBhcyBpbXBsaWNpdGx5IHRlbXAgKG5vdCByZWxl YXNlZCk6IGdldHRleHQoIjwlZC1ieXRlIGZsb2F0PiIpCisgTmV3IGZyZXNo IHN0b3JhZ2UgKHR5cGUgY2hhciAqKSBwYXNzZWQgYXMgaW1wbGljaXRseSB0 ZW1wIChub3QgcmVsZWFzZWQpOiBnZXR0ZXh0KCI8JXMtYnl0ZSBmbG9hdD4i KQogTE9DIGFkYS12YWxwcmludC5jOjM3NgotIEZ1bmN0aW9uIGFkYV9lbWl0 X2NoYXIgZXhwZWN0cyBhcmcgNSB0byBiZSBpbnQgZ2V0cyBVSU5UOiAodHlw ZSktPmxlbmd0aAorIEZ1bmN0aW9uIGFkYV9lbWl0X2NoYXIgZXhwZWN0cyBh cmcgNSB0byBiZSBpbnQgZ2V0cyBVTE9OR0VTVDogKHR5cGUpLT5sZW5ndGgK IGFkYS12YWxwcmludC5jOiAoaW4gZnVuY3Rpb24gYWRhX3ByaW50X3NjYWxh cikKIExPQyBhZGEtdmFscHJpbnQuYzo0ODMgKGFkYS12YWxwcmludC5jOjQ5 MSkKKyBPcGVyYW5kcyBvZiA8IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChV SU5ULCBVTE9OR0VTVCk6IGkgPCBsZW5ndGgKK0xPQyBhZGEtdmFscHJpbnQu Yzo0OTEKICBUZXN0IGV4cHJlc3Npb24gZm9yIGlmIG5vdCBib29sZWFuLCB0 eXBlIGludDogcXVpdF9mbGFnCiBMT0MgYWRhLXZhbHByaW50LmM6NTAxIChh ZGEtdmFscHJpbnQuYzo1MDIpCi0gRnVuY3Rpb24gY2hhcl9hdCBleHBlY3Rz IGFyZyAyIHRvIGJlIGludCBnZXRzIFVJTlQ6IHJlcDEKKyBPcGVyYW5kcyBv ZiA8IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChVSU5ULCBVTE9OR0VTVCk6 IHJlcDEgPCBsZW5ndGgKK0xPQyBhZGEtdmFscHJpbnQuYzo1MDIKKyBGdW5j dGlvbiBjaGFyX2F0IGV4cGVjdHMgYXJnIDIgdG8gYmUgTE9OR0VTVCBnZXRz IFVJTlQ6IHJlcDEKIExPQyBhZGEtdmFscHJpbnQuYzo1NTMKKyBPcGVyYW5k cyBvZiA8IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChVSU5ULCBVTE9OR0VT VCk6IGkgPCBsZW5ndGgKK0xPQyBhZGEtdmFscHJpbnQuYzo1NTMKICBMZWZ0 IG9wZXJhbmQgb2YgfHwgaXMgbm9uLWJvb2xlYW4gKGludCk6IGZvcmNlX2Vs bGlwc2VzIHx8IGkgPCBsZW5ndGgKIGFkYS12YWxwcmludC5jOiAoaW4gZnVu Y3Rpb24gYWRhX3ByaW50c3RyKQogTE9DIGFkYS12YWxwcmludC5jOjU2Mwot IEZ1bmN0aW9uIHByaW50c3RyIGV4cGVjdHMgYXJnIDYgdG8gYmUgaW50IGdl dHMgVUlOVDogKHR5cGUpLT5sZW5ndGgKKyBGdW5jdGlvbiBwcmludHN0ciBl eHBlY3RzIGFyZyA2IHRvIGJlIGludCBnZXRzIFVMT05HRVNUOiAodHlwZSkt Pmxlbmd0aAogTE9DIGFkYS12YWxwcmludC5jOjYyOAotIE9wZXJhbmRzIG9m IDwgaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKGludCwgVUlOVCk6IHRlbXBf bGVuIDwgbGVuCisgT3BlcmFuZHMgb2YgPCBoYXZlIGluY29tcGF0aWJsZSB0 eXBlcyAoTE9OR0VTVCwgVUxPTkdFU1QpOiB0ZW1wX2xlbiA8IGxlbgogTE9D IGFkYS12YWxwcmludC5jOjYyOQotIE9wZXJhbmRzIG9mIDwgaGF2ZSBpbmNv bXBhdGlibGUgdHlwZXMgKGludCwgVUlOVCk6IHRlbXBfbGVuIDwgb3B0aW9u cy0+cHJpbnRfbWF4CisgT3BlcmFuZHMgb2YgPCBoYXZlIGluY29tcGF0aWJs ZSB0eXBlcyAoTE9OR0VTVCwgVUlOVCk6IHRlbXBfbGVuIDwgb3B0aW9ucy0+ cHJpbnRfbWF4CiBMT0MgYWRhLXZhbHByaW50LmM6NjMxCi0gRnVuY3Rpb24g Y2hhcl9hdCBleHBlY3RzIGFyZyAzIHRvIGJlIGludCBnZXRzIFVJTlQ6IGVs dGxlbgorIEZ1bmN0aW9uIGNoYXJfYXQgZXhwZWN0cyBhcmcgMyB0byBiZSBp bnQgZ2V0cyBVTE9OR0VTVDogZWx0bGVuCiBMT0MgYWRhLXZhbHByaW50LmM6 NjM2Ci0gRnVuY3Rpb24gcHJpbnRzdHIgZXhwZWN0cyBhcmcgNiB0byBiZSBp bnQgZ2V0cyBVSU5UOiBlbHRsZW4KKyBGdW5jdGlvbiBwcmludHN0ciBleHBl Y3RzIGFyZyA2IHRvIGJlIGludCBnZXRzIFVMT05HRVNUOiBlbHRsZW4KIExP QyBhZGEtdmFscHJpbnQuYzo5NjQKLSBPcGVyYW5kcyBvZiAhPSBoYXZlIGlu Y29tcGF0aWJsZSB0eXBlcyAoVUlOVCwgc2l6ZV90KTogKCh0eXBlKS0+bWFp bl90eXBlLT50YXJnZXRfdHlwZSktPmxlbmd0aCAhPSBzaXplb2YoY2hhcikK KyBPcGVyYW5kcyBvZiAhPSBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoVUxP TkdFU1QsIHNpemVfdCk6ICgodHlwZSktPm1haW5fdHlwZS0+dGFyZ2V0X3R5 cGUpLT5sZW5ndGggIT0gc2l6ZW9mKGNoYXIpCiBMT0MgYWRhLXZhbHByaW50 LmM6MTEzMiAoYWRhLXZhbHByaW50LmM6MTEzMCkKKyBGdW5jdGlvbiBhZGFf dmFsdWVfcHJpbWl0aXZlX3BhY2tlZF92YWwgZXhwZWN0cyBhcmcgNCB0byBi ZSBpbnQgZ2V0cyBMT05HRVNUOiBiaXRfcG9zICUgOAorTE9DIGFkYS12YWxw cmludC5jOjExMzAKICBOdWxsIHN0b3JhZ2UgcGFzc2VkIGFzIG5vbi1udWxs IHBhcmFtOiBhZGFfdmFsdWVfcHJpbWl0aXZlX3BhY2tlZF92YWwgKE5VTEws IC4uLikKIExPQyBwcm9nc3BhY2UuaDozNwogIEZpbGUgc3RhdGljIGZ1bmN0 aW9uIFZFQ19zb19saXN0X3B0cl9zYWZlX2luc2VydCBkZWNsYXJlZCBidXQg bm90IHVzZWQKICAgIExPQyBwcm9nc3BhY2UuaDozNwogIERlZmluaXRpb24g b2YgVkVDX3NvX2xpc3RfcHRyX3NhZmVfaW5zZXJ0CitMT0MgYWxwaGEtdGRl cC5jOjQwMgorIEFzc2lnbm1lbnQgb2YgTE9OR0VTVCB0byBpbnQ6IGFjY3Vt dWxhdGVfc2l6ZSA9IChhY2N1bXVsYXRlX3NpemUgKyBtX2FyZy0+bGVuICsg NykgJiB+NwogTE9DIGFscGhhLXRkZXAuYzo0MzIKLSBPcGVyYW5kcyBvZiA8 PSBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoaW50LCBzaXplX3QpOiBvZmZz ZXQgKyBsZW4gPD0gc2l6ZW9mKChhcmdfcmVnX2J1ZmZlcikpCisgT3BlcmFu ZHMgb2YgPD0gaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKExPTkdFU1QsIHNp emVfdCk6IG9mZnNldCArIGxlbiA8PSBzaXplb2YoKGFyZ19yZWdfYnVmZmVy KSkKIExPQyBhbHBoYS10ZGVwLmM6NDM0Ci0gRnVuY3Rpb24gbWVtY3B5IGV4 cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgaW50OiBsZW4KKyBGdW5j dGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXplX3QgZ2V0cyBM T05HRVNUOiBsZW4KIExPQyBhbHBoYS10ZGVwLmM6NDQ4Ci0gRnVuY3Rpb24g d3JpdGVfbWVtb3J5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc3NpemVfdCBnZXRz IGludDogbGVuCisgRnVuY3Rpb24gd3JpdGVfbWVtb3J5IGV4cGVjdHMgYXJn IDMgdG8gYmUgc3NpemVfdCBnZXRzIExPTkdFU1Q6IGxlbgogTE9DIGFscGhh LXRkZXAuYzo1MzQgKGFscGhhLXRkZXAuYzo1MzcpCisgRnVuY3Rpb24gc3Rv cmVfdW5zaWduZWRfaW50ZWdlciBleHBlY3RzIGFyZyAyIHRvIGJlIGludCBn ZXRzIExPTkdFU1Q6IGxlbmd0aAorTE9DIGFscGhhLXRkZXAuYzo1MzcKICBG cmVzaCBzdG9yYWdlIGdkYmFyY2ggbm90IHJlbGVhc2VkIGJlZm9yZSByZXR1 cm4KICAgIExPQyBhbHBoYS10ZGVwLmM6NDc2CiAgRnJlc2ggc3RvcmFnZSBn ZGJhcmNoIGNyZWF0ZWQKIGFscGhhLXRkZXAuYzogKGluIGZ1bmN0aW9uIGFs cGhhX3N0b3JlX3JldHVybl92YWx1ZSkKIExPQyBhbHBoYS10ZGVwLmM6NjMw Ci0gRnVuY3Rpb24gcmVhZF9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBz c2l6ZV90IGdldHMgVUlOVDogKHR5cGUpLT5sZW5ndGgKKyBGdW5jdGlvbiBy ZWFkX21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJlIHNzaXplX3QgZ2V0cyBV TE9OR0VTVDogKHR5cGUpLT5sZW5ndGgKIExPQyBsaW5lc3BlYy5oOjU0CiAg RmlsZSBzdGF0aWMgZnVuY3Rpb24gVkVDX2xpbmVzcGVjX3NhbHNfc2FmZV9p bnNlcnQgZGVjbGFyZWQgYnV0IG5vdCB1c2VkCiAgICBMT0MgbGluZXNwZWMu aDo1NAogIERlZmluaXRpb24gb2YgVkVDX2xpbmVzcGVjX3NhbHNfc2FmZV9p bnNlcnQKIExPQyBhbWQ2NC10ZGVwLmM6NDg5Ci0gVmFyaWFibGUgYml0c2l6 ZSBpbml0aWFsaXplZCB0byB0eXBlIFVJTlQsIGV4cGVjdHMgaW50OiAoKCh0 eXBlKS0+bWFpbl90eXBlLT5mbGRzX2JuZHMuZmllbGRzW2ldKS5iaXRzaXpl KQorIFZhcmlhYmxlIGJpdHNpemUgaW5pdGlhbGl6ZWQgdG8gdHlwZSBVSU5U LCBleHBlY3RzIExPTkdFU1Q6ICgoKHR5cGUpLT5tYWluX3R5cGUtPmZsZHNf Ym5kcy5maWVsZHNbaV0pLmJpdHNpemUpCiBhbWQ2NC10ZGVwLmM6IChpbiBm dW5jdGlvbiBhbWQ2NF9yZXR1cm5fdmFsdWUpCiBMT0MgYW1kNjQtdGRlcC5j OjYzNAotIEZ1bmN0aW9uIHJlYWRfbWVtb3J5IGV4cGVjdHMgYXJnIDMgdG8g YmUgc3NpemVfdCBnZXRzIFVJTlQ6ICh0eXBlKS0+bGVuZ3RoCisgRnVuY3Rp b24gcmVhZF9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdl dHMgVUxPTkdFU1Q6ICh0eXBlKS0+bGVuZ3RoCiBMT0MgYW1kNjQtdGRlcC5j OjY5NworIEZ1bmN0aW9uIHJlZ2NhY2hlX3Jhd19yZWFkX3BhcnQgZXhwZWN0 cyBhcmcgNCB0byBiZSBpbnQgZ2V0cyBMT05HRVNUOiAoKGxlbikgPCAoOCkg PyAobGVuKSA6ICg4KSkKK0xPQyBhbWQ2NC10ZGVwLmM6Njk3CiAgUmV0dXJu IHZhbHVlICh0eXBlIGVudW0gcmVnaXN0ZXJfc3RhdHVzKSBpZ25vcmVkOiBy ZWdjYWNoZV9yYXdfcmVhLi4uCiBMT0MgYW1kNjQtdGRlcC5jOjcwMCAoYW1k NjQtdGRlcC5jOjcwNCkKKyBGdW5jdGlvbiByZWdjYWNoZV9yYXdfd3JpdGVf cGFydCBleHBlY3RzIGFyZyA0IHRvIGJlIGludCBnZXRzIExPTkdFU1Q6ICgo bGVuKSA8ICg4KSA/IChsZW4pIDogKDgpKQorTE9DIGFtZDY0LXRkZXAuYzo3 MDQKICBGcmVzaCBzdG9yYWdlIHRkZXAgbm90IHJlbGVhc2VkIGJlZm9yZSBy ZXR1cm4KICAgIExPQyBhbWQ2NC10ZGVwLmM6NjAxCiAgRnJlc2ggc3RvcmFn ZSB0ZGVwIGNyZWF0ZWQKIExPQyBhbWQ2NC10ZGVwLmM6ODIzCi0gRnVuY3Rp b24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgaW50 OiAoKGxlbikgPCAoOCkgPyAobGVuKSA6ICg4KSkKKyBGdW5jdGlvbiBtZW1j cHkgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXplX3QgZ2V0cyBMT05HRVNUOiAo KGxlbikgPCAoOCkgPyAobGVuKSA6ICg4KSkKIExPQyBhbWQ2NC10ZGVwLmM6 ODQ0Ci0gRnVuY3Rpb24gd3JpdGVfbWVtb3J5IGV4cGVjdHMgYXJnIDMgdG8g YmUgc3NpemVfdCBnZXRzIGludDogbGVuCisgRnVuY3Rpb24gd3JpdGVfbWVt b3J5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc3NpemVfdCBnZXRzIExPTkdFU1Q6 IGxlbgogTE9DIGFtZDY0LXRkZXAuYzoyNTkxCi0gRnVuY3Rpb24gdGFyZ2V0 X3JlYWRfbWVtb3J5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc3NpemVfdCBnZXRz IGludDogbGVuCisgRnVuY3Rpb24gdGFyZ2V0X3JlYWRfbWVtb3J5IGV4cGVj dHMgYXJnIDMgdG8gYmUgc3NpemVfdCBnZXRzIExPTkdFU1Q6IGxlbgogTE9D IG1lbXJhbmdlLmg6MzgKICBGaWxlIHN0YXRpYyBmdW5jdGlvbiBWRUNfbWVt X3JhbmdlX3Nfc2FmZV9pbnNlcnQgZGVjbGFyZWQgYnV0IG5vdCB1c2VkCiAg ICBMT0MgbWVtcmFuZ2UuaDozOAogIERlZmluaXRpb24gb2YgVkVDX21lbV9y YW5nZV9zX3NhZmVfaW5zZXJ0CiBMT0MgYW1kNjQtd2luZG93cy10ZGVwLmM6 MTExCi0gRnVuY3Rpb24gcmVhZF9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBi ZSBzc2l6ZV90IGdldHMgVUlOVDogKHR5cGUpLT5sZW5ndGgKKyBGdW5jdGlv biByZWFkX21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJlIHNzaXplX3QgZ2V0 cyBVTE9OR0VTVDogKHR5cGUpLT5sZW5ndGgKK0xPQyBhbWQ2NC13aW5kb3dz LXRkZXAuYzoxMTkKKyBGdW5jdGlvbiByZWdjYWNoZV9yYXdfcmVhZF9wYXJ0 IGV4cGVjdHMgYXJnIDQgdG8gYmUgaW50IGdldHMgTE9OR0VTVDogbGVuCiBM T0MgYW1kNjQtd2luZG93cy10ZGVwLmM6MTIxIChhbWQ2NC13aW5kb3dzLXRk ZXAuYzo3NykKKyBGdW5jdGlvbiByZWdjYWNoZV9yYXdfd3JpdGVfcGFydCBl eHBlY3RzIGFyZyA0IHRvIGJlIGludCBnZXRzIExPTkdFU1Q6IGxlbgorTE9D IGFtZDY0LXdpbmRvd3MtdGRlcC5jOjc3CiAgUGFyYW1ldGVyIGdkYmFyY2gg bm90IHVzZWQKIExPQyBtZW1yYW5nZS5oOjM4CiAgRmlsZSBzdGF0aWMgZnVu Y3Rpb24gVkVDX21lbV9yYW5nZV9zX3NhZmVfaW5zZXJ0IGRlY2xhcmVkIGJ1 dCBub3QgdXNlZAogICAgTE9DIG1lbXJhbmdlLmg6MzgKICBEZWZpbml0aW9u IG9mIFZFQ19tZW1fcmFuZ2Vfc19zYWZlX2luc2VydAogTE9DIGFybS1saW51 eC1uYXQuYzo5MzIKLSBSaWdodCBvcGVyYW5kIG9mIDw8IG1heSBiZSBuZWdh dGl2ZSAoaW50KTogMSA8PCBsZW4KKyBSaWdodCBvcGVyYW5kIG9mIDw8IG1h eSBiZSBuZWdhdGl2ZSAoTE9OR0VTVCk6IDEgPDwgbGVuCiBMT0MgYXJtLWxp bnV4LW5hdC5jOjkzMgotIEFzc2lnbm1lbnQgb2YgaW50IHRvIFVJTlQ6IG1h c2sgPSAoMSA8PCBsZW4pIC0gMQorIEFzc2lnbm1lbnQgb2YgTE9OR0VTVCB0 byBVSU5UOiBtYXNrID0gKDEgPDwgbGVuKSAtIDEKIExPQyBhcm0tdGRlcC5j OjMyODkKLSBSZXR1cm4gdmFsdWUgdHlwZSBVSU5UIGRvZXMgbm90IG1hdGNo IGRlY2xhcmVkIHR5cGUgaW50OiAodCktPmxlbmd0aAorIFJldHVybiB2YWx1 ZSB0eXBlIFVMT05HRVNUIGRvZXMgbm90IG1hdGNoIGRlY2xhcmVkIHR5cGUg aW50OiAodCktPmxlbmd0aAogTE9DIGFybS10ZGVwLmM6MzQyMgotIFJldHVy biB2YWx1ZSB0eXBlIFVJTlQgZG9lcyBub3QgbWF0Y2ggZGVjbGFyZWQgdHlw ZSBpbnQ6ICh0KS0+bGVuZ3RoIC8gdW5pdGxlbgorIFJldHVybiB2YWx1ZSB0 eXBlIFVMT05HRVNUIGRvZXMgbm90IG1hdGNoIGRlY2xhcmVkIHR5cGUgaW50 OiAodCktPmxlbmd0aCAvIHVuaXRsZW4KIExPQyBhcm0tdGRlcC5jOjM2ODkg KGFybS10ZGVwLmM6MzY5MCkKKyBGdW5jdGlvbiBleHRyYWN0X3Vuc2lnbmVk X2ludGVnZXIgZXhwZWN0cyBhcmcgMiB0byBiZSBpbnQgZ2V0cyBMT05HRVNU OiBsZW4KK0xPQyBhcm0tdGRlcC5jOjM2OTAKICBUZXN0IGV4cHJlc3Npb24g Zm9yIGlmIG5vdCBib29sZWFuLCB0eXBlIGludDogYXJtX3BjX2lzX3RodW1i KGdkYmFyY2gsIHJlZ3ZhbCkKIExPQyBhcm0tdGRlcC5jOjM2OTIKLSBGdW5j dGlvbiBDX2FsbG9jYSBleHBlY3RzIGFyZyAxIHRvIGJlIHNpemVfdCBnZXRz IGludDogbGVuCisgRnVuY3Rpb24gQ19hbGxvY2EgZXhwZWN0cyBhcmcgMSB0 byBiZSBzaXplX3QgZ2V0cyBMT05HRVNUOiBsZW4KK0xPQyBhcm0tdGRlcC5j OjM2OTMKKyBGdW5jdGlvbiBzdG9yZV91bnNpZ25lZF9pbnRlZ2VyIGV4cGVj dHMgYXJnIDIgdG8gYmUgaW50IGdldHMgTE9OR0VTVDogbGVuCiBMT0MgYXJt LXRkZXAuYzozNzA0IChhcm0tdGRlcC5jOjM3MDYpCisgVmFyaWFibGUgcGFy dGlhbF9sZW4gaW5pdGlhbGl6ZWQgdG8gdHlwZSBMT05HRVNULCBleHBlY3Rz IGludDogbGVuIDwgNCA/IGxlbiA6IDQKK0xPQyBhcm0tdGRlcC5jOjM3MDYK ICBMZWZ0IG9wZXJhbmQgb2YgJiYgaXMgbm9uLWJvb2xlYW4gKGludCk6IG1h eV91c2VfY29yZV9yZWcgJiYgYXJncmVnIDw9IEFSTV9MQVNUX0FSR19SRUdO VU0KIExPQyBhcm0tdGRlcC5jOjIxNDQKICBGaWxlIHN0YXRpYyBmdW5jdGlv biBWRUNfYXJtX2V4aWR4X2VudHJ5X3Nfc2FmZV9pbnNlcnQgZGVjbGFyZWQg YnV0IG5vdCB1c2VkCiAgICBMT0MgYXJtLXRkZXAuYzoyMTQ0CiAgRGVmaW5p dGlvbiBvZiBWRUNfYXJtX2V4aWR4X2VudHJ5X3Nfc2FmZV9pbnNlcnQKIGF2 ci10ZGVwLmM6IChpbiBmdW5jdGlvbiBhdnJfcG9pbnRlcl90b19hZGRyZXNz KQogTE9DIGF2ci10ZGVwLmM6OTMxCi0gT3BlcmFuZHMgb2YgPCBoYXZlIGlu Y29tcGF0aWJsZSB0eXBlcyAoaW50LCBVSU5UKTogaSA8ICh2YWx0eXBlKS0+ bGVuZ3RoCisgT3BlcmFuZHMgb2YgPCBoYXZlIGluY29tcGF0aWJsZSB0eXBl cyAoTE9OR0VTVCwgVUxPTkdFU1QpOiBpIDwgKHZhbHR5cGUpLT5sZW5ndGgK IExPQyBhdnItdGRlcC5jOjkzMiAoYXZyLXRkZXAuYzo5MzcpCi0gT3BlcmFu ZHMgb2YgPCBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoaW50LCBVSU5UKTog aSA8ICh2YWx0eXBlKS0+bGVuZ3RoCisgRnVuY3Rpb24gcmVnY2FjaGVfY29v a2VkX3dyaXRlIGV4cGVjdHMgYXJnIDIgdG8gYmUgaW50IGdldHMgTE9OR0VT VDogbHNiX3JlZyArIGkKK0xPQyBhdnItdGRlcC5jOjkzNworIE9wZXJhbmRz IG9mIDwgaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKExPTkdFU1QsIFVMT05H RVNUKTogaSA8ICh2YWx0eXBlKS0+bGVuZ3RoCiBMT0MgYXZyLXRkZXAuYzo5 MzgKKyBGdW5jdGlvbiByZWdjYWNoZV9jb29rZWRfcmVhZCBleHBlY3RzIGFy ZyAyIHRvIGJlIGludCBnZXRzIExPTkdFU1Q6IGxzYl9yZWcgKyBpCitMT0Mg YXZyLXRkZXAuYzo5MzgKICBSZXR1cm4gdmFsdWUgKHR5cGUgZW51bSByZWdp c3Rlcl9zdGF0dXMpIGlnbm9yZWQ6IHJlZ2NhY2hlX2Nvb2tlZF8uLi4KIExP QyBhdnItdGRlcC5jOjExODQgKGF2ci10ZGVwLmM6MTE4MykKLSBGdW5jdGlv biB4bWFsbG9jIGV4cGVjdHMgYXJnIDEgdG8gYmUgc2l6ZV90IGdldHMgaW50 OiBsZW4KKyBGdW5jdGlvbiB4bWFsbG9jIGV4cGVjdHMgYXJnIDEgdG8gYmUg c2l6ZV90IGdldHMgTE9OR0VTVDogbGVuCiBMT0MgYXZyLXRkZXAuYzoxMTg1 CisgQXNzaWdubWVudCBvZiBMT05HRVNUIHRvIGludDogc2ktPmxlbiA9IGxl bgorTE9DIGF2ci10ZGVwLmM6MTE4NgogIEltcGxpY2l0bHkgb25seSBzdG9y YWdlIHNpLT5wcmV2ICh0eXBlIHN0cnVjdCBzdGFja19pdGVtICopIG5vdCBy ZWxlYXNlZCBiZWZvcmUgYXNzaWdubWVudDogc2ktPnByZXYgPSBwcmV2CiBM T0MgYXZyLXRkZXAuYzoxMTg3IChhdnItdGRlcC5jOjExODYpCi0gRnVuY3Rp b24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgaW50 OiBsZW4KKyBGdW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0byBiZSBz aXplX3QgZ2V0cyBMT05HRVNUOiBsZW4KIGF2ci10ZGVwLmM6IChpbiBmdW5j dGlvbiBhdnJfcHVzaF9kdW1teV9jYWxsKQorTE9DIGF2ci10ZGVwLmM6MTI4 NgorIFRlc3QgZXhwcmVzc2lvbiBmb3IgaWYgbm90IGJvb2xlYW4sIHR5cGUg TE9OR0VTVDogbGVuICYgMQogTE9DIGF2ci10ZGVwLmM6MTI4OSAoYXZyLXRk ZXAuYzoxMjg1KQotIFRlc3QgZXhwcmVzc2lvbiBmb3IgaWYgbm90IGJvb2xl YW4sIHR5cGUgaW50OiBsZW4gJiAxCisgRnVuY3Rpb24gZXh0cmFjdF91bnNp Z25lZF9pbnRlZ2VyIGV4cGVjdHMgYXJnIDIgdG8gYmUgaW50IGdldHMgTE9O R0VTVDogbGVuCiBMT0MgYXZyLXRkZXAuYzoxMjkwIChhdnItdGRlcC5jOjEy OTEpCi0gUmlnaHQgb3BlcmFuZCBvZiA+PiBtYXkgYmUgbmVnYXRpdmUgKGlu dCk6IHZhbCA+PiAoOCAqIChsZW4gLSBqIC0gMSkpCisgT3BlcmFuZHMgb2Yg PCBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoaW50LCBMT05HRVNUKTogaiA8 IGxlbgorTE9DIGF2ci10ZGVwLmM6MTI5MgorIFJpZ2h0IG9wZXJhbmQgb2Yg Pj4gbWF5IGJlIG5lZ2F0aXZlIChMT05HRVNUKTogdmFsID4+ICg4ICogKGxl biAtIGogLSAxKSkKIExPQyBicmVha3BvaW50Lmg6ODI5CiAgRmlsZSBzdGF0 aWMgZnVuY3Rpb24gVkVDX2JyZWFrcG9pbnRfcF9zYWZlX2luc2VydCBkZWNs YXJlZCBidXQgbm90IHVzZWQKICAgIExPQyBicmVha3BvaW50Lmg6ODI5CiAg RGVmaW5pdGlvbiBvZiBWRUNfYnJlYWtwb2ludF9wX3NhZmVfaW5zZXJ0CiBM T0MgYXgtZ2RiLmM6NDg2IChheC1nZGIuYzo0ODUpCi0gRnVuY3Rpb24gYXhf ZXh0IGV4cGVjdHMgYXJnIDIgdG8gYmUgaW50IGdldHMgVUlOVDogKHR5cGUp LT5sZW5ndGggKiA4CisgRnVuY3Rpb24gYXhfZXh0IGV4cGVjdHMgYXJnIDIg dG8gYmUgaW50IGdldHMgVUxPTkdFU1Q6ICh0eXBlKS0+bGVuZ3RoICogOAog YXgtZ2RiLmM6IChpbiBmdW5jdGlvbiBnZW5fZXh0ZW5kKQogTE9DIGF4LWdk Yi5jOjUxMiAoYXgtZ2RiLmM6NTExKQotIEZ1bmN0aW9uIGF4X3RyYWNlX3F1 aWNrIGV4cGVjdHMgYXJnIDIgdG8gYmUgaW50IGdldHMgVUlOVDogKHR5cGUp LT5sZW5ndGgKKyBGdW5jdGlvbiBheF90cmFjZV9xdWljayBleHBlY3RzIGFy ZyAyIHRvIGJlIGludCBnZXRzIFVMT05HRVNUOiAodHlwZSktPmxlbmd0aAot TE9DIGF4LWdkYi5jOjU5NwotIEZ1bmN0aW9uIGdlbl9vZmZzZXQgZXhwZWN0 cyBhcmcgMiB0byBiZSBpbnQgZ2V0cyBMT05HRVNUOiBmcmFtZV9vZmZzZXQK IGF4LWdkYi5jOiAoaW4gZnVuY3Rpb24gZ2VuX2ZyYW1lX2xvY2Fsc19hZGRy ZXNzKQotTE9DIGF4LWdkYi5jOjYxMgotIEZ1bmN0aW9uIGdlbl9vZmZzZXQg ZXhwZWN0cyBhcmcgMiB0byBiZSBpbnQgZ2V0cyBMT05HRVNUOiBmcmFtZV9v ZmZzZXQKLWF4LWdkYi5jOiAoaW4gZnVuY3Rpb24gZ2VuX3N5bV9vZmZzZXQp Ci1MT0MgYXgtZ2RiLmM6NjQ2Ci0gRnVuY3Rpb24gZ2VuX29mZnNldCBleHBl Y3RzIGFyZyAyIHRvIGJlIGludCBnZXRzIExPTkdFU1Q6ICh2YXIpLT5naW5m by52YWx1ZS5pdmFsdWUKIGF4LWdkYi5jOiAoaW4gZnVuY3Rpb24gZ2VuX3Zh cl9yZWYpCiBheC1nZGIuYzogKGluIGZ1bmN0aW9uIGdlbl9wdHJhZGQpCiBM T0MgYXgtZ2RiLmM6MTQyNCAoYXgtZ2RiLmM6MTQyNykKKyBGdW5jdGlvbiAg ZXhwZWN0cyBhcmcgMiB0byBiZSBpbnQgZ2V0cyBMT05HRVNUOiBlbmQgLSBz dGFydAorTE9DIGF4LWdkYi5jOjE0MjgKICBJbXBsaWNpdGx5IG9ubHkgc3Rv cmFnZSB2YWx1ZS0+dHlwZSAodHlwZSBzdHJ1Y3QgdHlwZSAqKSBub3QgcmVs ZWFzZWQgYmVmb3JlIGFzc2lnbm1lbnQ6IHZhbHVlLT50eXBlID0gdHlwZQog YXgtZ2RiLmM6IChpbiBmdW5jdGlvbiBnZW5fcHJpbWl0aXZlX2ZpZWxkKQog TE9DIG1lbXJhbmdlLmg6MzgKICBGaWxlIHN0YXRpYyBmdW5jdGlvbiBWRUNf bWVtX3JhbmdlX3Nfc2FmZV9pbnNlcnQgZGVjbGFyZWQgYnV0IG5vdCB1c2Vk CiAgICBMT0MgbWVtcmFuZ2UuaDozOAogIERlZmluaXRpb24gb2YgVkVDX21l bV9yYW5nZV9zX3NhZmVfaW5zZXJ0CiBMT0MgYmZpbi10ZGVwLmM6NTM4Ci0g RnVuY3Rpb24gd3JpdGVfbWVtb3J5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc3Np emVfdCBnZXRzIGludDogY29udGFpbmVyX2xlbgorIEZ1bmN0aW9uIHdyaXRl X21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJlIHNzaXplX3QgZ2V0cyBMT05H RVNUOiBjb250YWluZXJfbGVuCiBMT0MgYnJlYWtwb2ludC5jOjIxMTMgKGJy ZWFrcG9pbnQuYzoyMTE5KQorIEFzc2lnbm1lbnQgb2YgTE9OR0VTVCB0byBp bnQ6IGJsLT50YXJnZXRfaW5mby5sZW5ndGggPSBibC0+bGVuZ3RoCitMT0Mg YnJlYWtwb2ludC5jOjIxMjAKICBUZXN0IGV4cHJlc3Npb24gZm9yIGlmIG5v dCBib29sZWFuLCB0eXBlIGludDogaXNfYnJlYWtwb2ludChibC0+b3duZXIp CiBMT0MgYnJlYWtwb2ludC5jOjQzMzQgKGJyZWFrcG9pbnQuYzo0MzMxKQor IEZ1bmN0aW9uICBleHBlY3RzIGFyZyA0IHRvIGJlIGludCBnZXRzIExPTkdF U1Q6IGxvYy0+bGVuZ3RoCitMT0MgYnJlYWtwb2ludC5jOjQzMzIKICBUZXN0 IGV4cHJlc3Npb24gZm9yIGlmIG5vdCBib29sZWFuLCB0eXBlIGludDogKCom Y3VycmVudF90YXJnZXQudG9fd2F0Y2hwb2ludF9hZGRyX3dpdGhpbl9yYW5n ZSkoJmN1cnJlbnRfdGFyZ2V0LCBhZGRyLCBsb2MtPmFkZHJlc3MsIGxvYy0+ bGVuZ3RoKQogTE9DIGJyZWFrcG9pbnQuYzo2MzA5IChicmVha3BvaW50LmM6 NjMwNikKLSBPcGVyYW5kcyBvZiAmJiBhcmUgbm9uLWJvb2xlYW4gKGludCk6 IGJsLT5sZW5ndGggJiYgYnJlYWtwb2ludF9hZGRyZXNzX21hdGNoX3Jhbmdl KGJsLT5wc3BhY2UtPmFzcGFjZSwgYmwtPmFkZHJlc3MsIGJsLT5sZW5ndGgs IGFzcGFjZSwgYWRkcikKKyBGdW5jdGlvbiBicmVha3BvaW50X2FkZHJlc3Nf bWF0Y2hfcmFuZ2UgZXhwZWN0cyBhcmcgMyB0byBiZSBpbnQgZ2V0cyBMT05H RVNUOiBibC0+bGVuZ3RoCitMT0MgYnJlYWtwb2ludC5jOjYzMDcKKyBPcGVy YW5kcyBvZiAmJiBhcmUgbm9uLWJvb2xlYW5zIChMT05HRVNULCBpbnQpOiBi bC0+bGVuZ3RoICYmIGJyZWFrcG9pbnRfYWRkcmVzc19tYXRjaF9yYW5nZShi bC0+cHNwYWNlLT5hc3BhY2UsIGJsLT5hZGRyZXNzLCBibC0+bGVuZ3RoLCBh c3BhY2UsIGFkZHIpCiBMT0MgYnJlYWtwb2ludC5jOjk0MjMgKGJyZWFrcG9p bnQuYzo5NDIyKQogIFJldHVybiB2YWx1ZSAodHlwZSBpbnQpIGlnbm9yZWQ6 IGNyZWF0ZV9icmVha3BvaW4uLi4KK2JyZWFrcG9pbnQuYzogKGluIGZ1bmN0 aW9uIGJyZWFrcG9pbnRfaGl0X3JhbmdlZF9icmVha3BvaW50KQorTE9DIGJy ZWFrcG9pbnQuYzo5NDUwCisgRnVuY3Rpb24gYnJlYWtwb2ludF9hZGRyZXNz X21hdGNoX3JhbmdlIGV4cGVjdHMgYXJnIDMgdG8gYmUgaW50IGdldHMgTE9O R0VTVDogYmwtPmxlbmd0aAogYnJlYWtwb2ludC5jOiAoaW4gZnVuY3Rpb24g cmVzb3VyY2VzX25lZWRlZF9yYW5nZWRfYnJlYWtwb2ludCkKIExPQyBicmVh a3BvaW50LmM6MTU0OTYgKGJyZWFrcG9pbnQuYzoxNTQ5NSkKLSBGdW5jdGlv biBvYnNlcnZlcl9hdHRhY2hfbWVtb3J5X2NoYW5nZWQgZXhwZWN0cyBhcmcg MSB0byBiZSBvYnNlcnZlcl9tZW1vcnlfY2hhbmdlZF9mdHlwZSAqIGdldHMg W2Z1bmN0aW9uIChDT1JFX0FERFIsIGludCwgYmZkX2J5dGUgKikgcmV0dXJu cyB2b2lkXTogaW52YWxpZGF0ZV9icF92YWx1ZV9vbl9tZW1vcnlfY2hhbmdl CisgRnVuY3Rpb24gb2JzZXJ2ZXJfYXR0YWNoX21lbW9yeV9jaGFuZ2VkIGV4 cGVjdHMgYXJnIDEgdG8gYmUgb2JzZXJ2ZXJfbWVtb3J5X2NoYW5nZWRfZnR5 cGUgKiBnZXRzIFtmdW5jdGlvbiAoQ09SRV9BRERSLCBMT05HRVNULCBiZmRf Ynl0ZSAqKSByZXR1cm5zIHZvaWRdOiBpbnZhbGlkYXRlX2JwX3ZhbHVlX29u X21lbW9yeV9jaGFuZ2UKIExPQyBicmVha3BvaW50LmM6NzUxMSAoYnJlYWtw b2ludC5jOjc1MTApCiAgRmlsZSBzdGF0aWMgZnVuY3Rpb24gVkVDX2ludF9z YWZlX2luc2VydCBkZWNsYXJlZCBidXQgbm90IHVzZWQKICAgIExPQyBicmVh a3BvaW50LmM6NzUxMSAoYnJlYWtwb2ludC5jOjc1MTApCiAgRGVmaW5pdGlv biBvZiBWRUNfaW50X3NhZmVfaW5zZXJ0CiBMT0MgYy1sYW5nLmM6MjkyCi0g QXNzaWdubWVudCBvZiBVSU5UIHRvIGludDogd2lkdGggPSAoZWxlbWVudF90 eXBlKS0+bGVuZ3RoCisgQXNzaWdubWVudCBvZiBVTE9OR0VTVCB0byBpbnQ6 IHdpZHRoID0gKGVsZW1lbnRfdHlwZSktPmxlbmd0aAogTE9DIGMtbGFuZy5j OjQxOAotIEZ1bmN0aW9uIENfYWxsb2NhIGV4cGVjdHMgYXJnIDEgdG8gYmUg c2l6ZV90IGdldHMgVUlOVDogKHR5cGUpLT5sZW5ndGgKKyBGdW5jdGlvbiBD X2FsbG9jYSBleHBlY3RzIGFyZyAxIHRvIGJlIHNpemVfdCBnZXRzIFVMT05H RVNUOiAodHlwZSktPmxlbmd0aAogTE9DIGMtbGFuZy5jOjY3NCAoYy1sYW5n LmM6Njc1KQorIE9wZXJhbmRzIG9mICE9IGhhdmUgaW5jb21wYXRpYmxlIHR5 cGVzIChVSU5ULCBVTE9OR0VTVCk6IChVSU5UKSgoJm91dHB1dCktPm5leHRf ZnJlZSAtICgmb3V0cHV0KS0+b2JqZWN0X2Jhc2UpICE9ICh0eXBlKS0+bGVu Z3RoCitMT0MgYy1sYW5nLmM6Njc1CiAgTmV3IGZyZXNoIHN0b3JhZ2UgKHR5 cGUgY2hhciAqKSBwYXNzZWQgYXMgaW1wbGljaXRseSB0ZW1wIChub3QgcmVs ZWFzZWQpOiBnZXR0ZXh0KCJDb3VsZCBub3QgY29udmVydCBjaGFyYWN0ZXIg IgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIAkJICAgICAgICJjb25zdGFudCB0byB0YXJnZXQg Y2hhcmFjdGVyIHNldCIpCiBMT0MgYy1sYW5nLmM6Njg1Ci0gT3BlcmFuZHMg b2YgPCBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoaW50LCBVSU5UKTogaSA8 ICh0eXBlKS0+bGVuZ3RoCisgT3BlcmFuZHMgb2YgPCBoYXZlIGluY29tcGF0 aWJsZSB0eXBlcyAoTE9OR0VTVCwgVUxPTkdFU1QpOiBpIDwgKHR5cGUpLT5s ZW5ndGgKIExPQyBjLWxhbmcuYzo2OTcKLSBBc3NpZ25tZW50IG9mIFVJTlQg dG8gTE9OR0VTVDogaGlnaF9ib3VuZCA9ICgoZXhwZWN0X3R5cGUpLT5sZW5n dGggLyBlbGVtZW50X3NpemUpIC0gMQotTE9DIGMtbGFuZy5jOjY5OQotIE9w ZXJhbmRzIG9mID4gaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKFVJTlQsIExP TkdFU1QpOiAoVUlOVCkoKCZvdXRwdXQpLT5uZXh0X2ZyZWUgLSAoJm91dHB1 dCktPm9iamVjdF9iYXNlKSAvIGVsZW1lbnRfc2l6ZSA+IChoaWdoX2JvdW5k IC0gbG93X2JvdW5kICsgMSkKKyBBc3NpZ25tZW50IG9mIFVMT05HRVNUIHRv IExPTkdFU1Q6IGhpZ2hfYm91bmQgPSAoKGV4cGVjdF90eXBlKS0+bGVuZ3Ro IC8gZWxlbWVudF9zaXplKSAtIDEKIExPQyBjcC1hYmkuYzo5NgotIFBhdGgg d2l0aCBubyByZXR1cm4gaW4gZnVuY3Rpb24gZGVjbGFyZWQgdG8gcmV0dXJu IGludAorIFBhdGggd2l0aCBubyByZXR1cm4gaW4gZnVuY3Rpb24gZGVjbGFy ZWQgdG8gcmV0dXJuIExPTkdFU1QKIExPQyBjcC12YWxwcmludC5jOjM2MyAo Y3AtdmFscHJpbnQuYzozNjYpCisgVmFyaWFibGUgaV9vZmZzZXQgaW5pdGlh bGl6ZWQgdG8gdHlwZSBMT05HRVNULCBleHBlY3RzIGludDogb2Zmc2V0ICsg KCgoKHR5cGUpLT5tYWluX3R5cGUtPmZsZHNfYm5kcy5maWVsZHNbaV0pLmxv Yy5iaXRwb3MpICsgMCkgLyA4CitMT0MgY3AtdmFscHJpbnQuYzozNjYKICBU ZXN0IGV4cHJlc3Npb24gZm9yIGlmIG5vdCBib29sZWFuLCB0eXBlIGludDog dmFscHJpbnRfY2hlY2tfdmFsaWRpdHkoc3RyZWFtLCBpX3R5cGUsIGlfb2Zm c2V0LCB2YWwpCiBMT0MgY3AtdmFscHJpbnQuYzo1NTYgKGNwLXZhbHByaW50 LmM6NTU1KQotIE9wZXJhbmRzIG9mID49IGhhdmUgaW5jb21wYXRpYmxlIHR5 cGVzIChpbnQsIFVJTlQpOiAoYm9mZnNldCArIG9mZnNldCkgPj0gKHJlYWxf dHlwZSktPmxlbmd0aAorIE9wZXJhbmRzIG9mID49IGhhdmUgaW5jb21wYXRp YmxlIHR5cGVzIChMT05HRVNULCBVTE9OR0VTVCk6IChib2Zmc2V0ICsgb2Zm c2V0KSA+PSAocmVhbF90eXBlKS0+bGVuZ3RoCiBMT0MgY3AtdmFscHJpbnQu Yzo1NjAgKGNwLXZhbHByaW50LmM6NTU5KQotIEZ1bmN0aW9uIENfYWxsb2Nh IGV4cGVjdHMgYXJnIDEgdG8gYmUgc2l6ZV90IGdldHMgVUlOVDogKGJhc2Vj bGFzcyktPmxlbmd0aAorIEZ1bmN0aW9uIENfYWxsb2NhIGV4cGVjdHMgYXJn IDEgdG8gYmUgc2l6ZV90IGdldHMgVUxPTkdFU1Q6IChiYXNlY2xhc3MpLT5s ZW5ndGgKIExPQyBjcC12YWxwcmludC5jOjU2MyAoY3AtdmFscHJpbnQuYzo1 NjIpCi0gRnVuY3Rpb24gdGFyZ2V0X3JlYWRfbWVtb3J5IGV4cGVjdHMgYXJn IDMgdG8gYmUgc3NpemVfdCBnZXRzIFVJTlQ6IChiYXNlY2xhc3MpLT5sZW5n dGgKKyBGdW5jdGlvbiB0YXJnZXRfcmVhZF9tZW1vcnkgZXhwZWN0cyBhcmcg MyB0byBiZSBzc2l6ZV90IGdldHMgVUxPTkdFU1Q6IChiYXNlY2xhc3MpLT5s ZW5ndGgKIExPQyBnZGJfdmVjcy5oOjQ1CiAgRmlsZSBzdGF0aWMgZnVuY3Rp b24gVkVDX3Byb2JlX3Bfc2FmZV9pbnNlcnQgZGVjbGFyZWQgYnV0IG5vdCB1 c2VkCiAgICBMT0MgZ2RiX3ZlY3MuaDo0NQogIERlZmluaXRpb24gb2YgVkVD X3Byb2JlX3Bfc2FmZV9pbnNlcnQKIExPQyBjcmlzLXRkZXAuYzo2ODMKLSBG dW5jdGlvbiB4bWFsbG9jIGV4cGVjdHMgYXJnIDEgdG8gYmUgc2l6ZV90IGdl dHMgaW50OiBsZW4KKyBGdW5jdGlvbiB4bWFsbG9jIGV4cGVjdHMgYXJnIDEg dG8gYmUgc2l6ZV90IGdldHMgTE9OR0VTVDogbGVuCiBMT0MgY3Jpcy10ZGVw LmM6Njg0IChjcmlzLXRkZXAuYzo2ODUpCisgQXNzaWdubWVudCBvZiBMT05H RVNUIHRvIGludDogc2ktPmxlbiA9IGxlbgorTE9DIGNyaXMtdGRlcC5jOjY4 NQogIEltcGxpY2l0bHkgb25seSBzdG9yYWdlIHNpLT5wcmV2ICh0eXBlIHN0 cnVjdCBzdGFja19pdGVtICopIG5vdCByZWxlYXNlZCBiZWZvcmUgYXNzaWdu bWVudDogc2ktPnByZXYgPSBwcmV2CiBMT0MgY3Jpcy10ZGVwLmM6Njg2Ci0g RnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdl dHMgaW50OiBsZW4KKyBGdW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0 byBiZSBzaXplX3QgZ2V0cyBMT05HRVNUOiBsZW4KIGNyaXMtdGRlcC5jOiAo aW4gZnVuY3Rpb24gY3Jpc19mcmFtZV91bndpbmRfY2FjaGUpCiBMT0MgY3Jp cy10ZGVwLmM6ODk5Ci0gRnVuY3Rpb24gd3JpdGVfbWVtb3J5IGV4cGVjdHMg YXJnIDMgdG8gYmUgc3NpemVfdCBnZXRzIGludDogbGVuCisgRnVuY3Rpb24g d3JpdGVfbWVtb3J5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc3NpemVfdCBnZXRz IExPTkdFU1Q6IGxlbgorTE9DIGNyaXMtdGRlcC5jOjE2NzAKKyBGdW5jdGlv biBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgZXhwZWN0cyBhcmcgMiB0byBi ZSBpbnQgZ2V0cyBMT05HRVNUOiBsZW4KIExPQyBjcmlzLXRkZXAuYzoxNjc4 IChjcmlzLXRkZXAuYzoxNjgyKQorIEZ1bmN0aW9uIGV4dHJhY3RfdW5zaWdu ZWRfaW50ZWdlciBleHBlY3RzIGFyZyAyIHRvIGJlIGludCBnZXRzIExPTkdF U1Q6IGxlbiAtIDQKK0xPQyBjcmlzLXRkZXAuYzoxNjgyCiAgTmV3IGZyZXNo IHN0b3JhZ2UgKHR5cGUgY2hhciAqKSBwYXNzZWQgYXMgaW1wbGljaXRseSB0 ZW1wIChub3QgcmVsZWFzZWQpOiBnZXR0ZXh0KCJjcmlzX3N0b3JlX3JldHVy bl92YWx1ZTogdHlwZSBsZW5ndGggdG9vIGxhcmdlLiIpCiBMT0MgY3Jpcy10 ZGVwLmM6MTg0MiAoY3Jpcy10ZGVwLmM6MTg0NykKKyBGdW5jdGlvbiBzdG9y ZV91bnNpZ25lZF9pbnRlZ2VyIGV4cGVjdHMgYXJnIDIgdG8gYmUgaW50IGdl dHMgTE9OR0VTVDogbGVuCitMT0MgY3Jpcy10ZGVwLmM6MTg0NwogIFBhc3Nl ZCBzdG9yYWdlICZ2YWwgbm90IGNvbXBsZXRlbHkgZGVmaW5lZDogcmVnY2Fj aGVfY29va2VkX3JlYWRfdW5zaWduZWQgKC4uLiwgJnZhbCkKIExPQyBjcmlz LXRkZXAuYzoxODUwIChjcmlzLXRkZXAuYzoxODUzKQorIEZ1bmN0aW9uIHN0 b3JlX3Vuc2lnbmVkX2ludGVnZXIgZXhwZWN0cyBhcmcgMiB0byBiZSBpbnQg Z2V0cyBMT05HRVNUOiBsZW4gLSA0CitMT0MgY3Jpcy10ZGVwLmM6MTg1Mwog IE5ldyBmcmVzaCBzdG9yYWdlICh0eXBlIGNoYXIgKikgcGFzc2VkIGFzIGlt cGxpY2l0bHkgdGVtcCAobm90IHJlbGVhc2VkKTogZ2V0dGV4dCgiY3Jpc19l eHRyYWN0X3JldHVybl92YWx1ZTogdHlwZSBsZW5ndGggdG9vIGxhcmdlIikK IExPQyBtZW1yYW5nZS5oOjM4CiAgRmlsZSBzdGF0aWMgZnVuY3Rpb24gVkVD X21lbV9yYW5nZV9zX3NhZmVfaW5zZXJ0IGRlY2xhcmVkIGJ1dCBub3QgdXNl ZAogICAgTE9DIG1lbXJhbmdlLmg6MzgKICBEZWZpbml0aW9uIG9mIFZFQ19t ZW1fcmFuZ2Vfc19zYWZlX2luc2VydAogTE9DIGRvdWJsZXN0LmM6Nzk0Ci0g T3BlcmFuZHMgb2YgPT0gaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKGludCwg VUlOVCk6IGxlbiAqIDggPT0gZ2RiYXJjaF9sb25nX2RvdWJsZV9mb3JtYXQo Z2RiYXJjaClbMF0tPnRvdGFsc2l6ZQorIE9wZXJhbmRzIG9mID09IGhhdmUg aW5jb21wYXRpYmxlIHR5cGVzIChMT05HRVNULCBVSU5UKTogbGVuICogOCA9 PSBnZGJhcmNoX2xvbmdfZG91YmxlX2Zvcm1hdChnZGJhcmNoKVswXS0+dG90 YWxzaXplCiBMT0MgZG91Ymxlc3QuYzo4MDEKLSBOZXcgZnJlc2ggc3RvcmFn ZSAodHlwZSBjaGFyICopIHBhc3NlZCBhcyBpbXBsaWNpdGx5IHRlbXAgKG5v dCByZWxlYXNlZCk6IGdldHRleHQoIlVucmVjb2duaXplZCAlZC1iaXQgZmxv YXRpbmctcG9pbnQgdHlwZS4iKQorIE5ldyBmcmVzaCBzdG9yYWdlICh0eXBl IGNoYXIgKikgcGFzc2VkIGFzIGltcGxpY2l0bHkgdGVtcCAobm90IHJlbGVh c2VkKTogZ2V0dGV4dCgiVW5yZWNvZ25pemVkICVzLWJpdCBmbG9hdGluZy1w b2ludCB0eXBlLiIpCiBMT0MgZG91Ymxlc3QuYzo4NTcKLSBGdW5jdGlvbiBt ZW1zZXQgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXplX3QgZ2V0cyBVSU5UOiAo dHlwZSktPmxlbmd0aAorIEZ1bmN0aW9uIG1lbXNldCBleHBlY3RzIGFyZyAz IHRvIGJlIHNpemVfdCBnZXRzIFVMT05HRVNUOiAodHlwZSktPmxlbmd0aAog TE9DIGRvdWJsZXN0LmM6ODgzCi0gRnVuY3Rpb24gbWVtc2V0IGV4cGVjdHMg YXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgVUlOVDogKHRvX3R5cGUpLT5sZW5n dGgKKyBGdW5jdGlvbiBtZW1zZXQgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXpl X3QgZ2V0cyBVTE9OR0VTVDogKHRvX3R5cGUpLT5sZW5ndGgKIExPQyBkb3Vi bGVzdC5jOjg5MwotIEZ1bmN0aW9uIG1lbXNldCBleHBlY3RzIGFyZyAzIHRv IGJlIHNpemVfdCBnZXRzIFVJTlQ6ICh0b190eXBlKS0+bGVuZ3RoCisgRnVu Y3Rpb24gbWVtc2V0IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMg VUxPTkdFU1Q6ICh0b190eXBlKS0+bGVuZ3RoCiBMT0MgZG91Ymxlc3QuYzo4 OTQKLSBGdW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXpl X3QgZ2V0cyBVSU5UOiAoKChmcm9tX3R5cGUpLT5sZW5ndGgpIDwgKCh0b190 eXBlKS0+bGVuZ3RoKSA/ICgoZnJvbV90eXBlKS0+bGVuZ3RoKSA6ICgodG9f dHlwZSktPmxlbmd0aCkpCisgRnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJn IDMgdG8gYmUgc2l6ZV90IGdldHMgVUxPTkdFU1Q6ICgoKGZyb21fdHlwZSkt Pmxlbmd0aCkgPCAoKHRvX3R5cGUpLT5sZW5ndGgpID8gKChmcm9tX3R5cGUp LT5sZW5ndGgpIDogKCh0b190eXBlKS0+bGVuZ3RoKSkKIExPQyBkd2FyZjJs b2MuYzoxMjQ1Ci0gRnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8g YmUgc2l6ZV90IGdldHMgVUlOVDogKGNoZWNrZWRfdHlwZSktPmxlbmd0aAor IEZ1bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBn ZXRzIFVMT05HRVNUOiAoY2hlY2tlZF90eXBlKS0+bGVuZ3RoCiBMT0MgZHdh cmYybG9jLmM6MTQ2MSAoZHdhcmYybG9jLmM6MTQ2OCkKKyBBc3NpZ25tZW50 IG9mIFVMT05HRVNUIHRvIFVJTlQ6IHNvdXJjZV9vZmZzZXRfYml0cyA9IHNv dXJjZV9vZmZzZXQgJSA4CitMT0MgZHdhcmYybG9jLmM6MTQ2MworIEFzc2ln bm1lbnQgb2YgVUxPTkdFU1QgdG8gVUlOVDogZGVzdF9hdmFpbCA9IDggLSBk ZXN0X29mZnNldF9iaXRzICUgOAorTE9DIGR3YXJmMmxvYy5jOjE0NjYKKyBP cGVyYW5kcyBvZiA8IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChVSU5ULCBV TE9OR0VTVCk6IGRlc3RfYXZhaWwgPCBiaXRfY291bnQKK0xPQyBkd2FyZjJs b2MuYzoxNDY4CiAgRnVuY3Rpb24gZXh0cmFjdF9iaXRzIGV4cGVjdHMgYXJn IDMgdG8gYmUgaW50IGdldHMgVUlOVDogZGVzdF9hdmFpbAogTE9DIGR3YXJm MmxvYy5jOjE0NzAKKyBGdW5jdGlvbiBpbnNlcnRfYml0cyBleHBlY3RzIGFy ZyAzIHRvIGJlIFVJTlQgZ2V0cyBVTE9OR0VTVDogZGVzdF9vZmZzZXRfYml0 cworTE9DIGR3YXJmMmxvYy5jOjE0NzAKICBGdW5jdGlvbiBpbnNlcnRfYml0 cyBleHBlY3RzIGFyZyA0IHRvIGJlIGludCBnZXRzIFVJTlQ6IGRlc3RfYXZh aWwKIExPQyBkd2FyZjJsb2MuYzoxNDg5Ci0gRnVuY3Rpb24gZXh0cmFjdF9i aXRzIGV4cGVjdHMgYXJnIDMgdG8gYmUgaW50IGdldHMgVUlOVDogYml0X2Nv dW50CisgRnVuY3Rpb24gZXh0cmFjdF9iaXRzIGV4cGVjdHMgYXJnIDMgdG8g YmUgaW50IGdldHMgVUxPTkdFU1Q6IGJpdF9jb3VudAogTE9DIGR3YXJmMmxv Yy5jOjE0OTEKLSBGdW5jdGlvbiBpbnNlcnRfYml0cyBleHBlY3RzIGFyZyA0 IHRvIGJlIGludCBnZXRzIFVJTlQ6IGJpdF9jb3VudAorIEZ1bmN0aW9uIGlu c2VydF9iaXRzIGV4cGVjdHMgYXJnIDMgdG8gYmUgVUlOVCBnZXRzIFVMT05H RVNUOiBkZXN0X29mZnNldF9iaXRzCitMT0MgZHdhcmYybG9jLmM6MTQ5MQor IEZ1bmN0aW9uIGluc2VydF9iaXRzIGV4cGVjdHMgYXJnIDQgdG8gYmUgaW50 IGdldHMgVUxPTkdFU1Q6IGJpdF9jb3VudAogZHdhcmYybG9jLmM6IChpbiBm dW5jdGlvbiByZWFkX3BpZWNlZF92YWx1ZSkKIExPQyBkd2FyZjJsb2MuYzox NTI0Ci0gQXNzaWdubWVudCBvZiBpbnQgdG8gc2l6ZV90OiB0eXBlX2xlbiA9 IHZhbHVlX2JpdHNpemUodikKKyBBc3NpZ25tZW50IG9mIGludCB0byBVTE9O R0VTVDogdHlwZV9sZW4gPSB2YWx1ZV9iaXRzaXplKHYpCiBMT0MgZHdhcmYy bG9jLmM6MTUyOSAoZHdhcmYybG9jLmM6MTUyNykKLSBBc3NpZ25tZW50IG9m IFVJTlQgdG8gc2l6ZV90OiB0eXBlX2xlbiA9IDggKiAodmFsdWVfdHlwZSh2 KSktPmxlbmd0aAorIE9wZXJhbmRzIG9mIDwgaGF2ZSBpbmNvbXBhdGlibGUg dHlwZXMgKExPTkdFU1QsIFVMT05HRVNUKTogb2Zmc2V0IDwgdHlwZV9sZW4K IExPQyBkd2FyZjJsb2MuYzoxNTQ5IChkd2FyZjJsb2MuYzoxNTI5KQotIE9w ZXJhbmRzIG9mIDwgaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKExPTkdFU1Qs IHNpemVfdCk6IG9mZnNldCA8IHR5cGVfbGVuCisgQXNzaWdubWVudCBvZiBV TE9OR0VTVCB0byBMT05HRVNUOiBzb3VyY2Vfb2Zmc2V0X2JpdHMgPSBiaXRz X3RvX3NraXAKIExPQyBkd2FyZjJsb2MuYzoxNTYxIChkd2FyZjJsb2MuYzox NTM4KQotIEFzc2lnbm1lbnQgb2YgVUxPTkdFU1QgdG8gc2l6ZV90OiB0aGlz X3NpemVfYml0cyA9IHAtPnNpemUKKyBPcGVyYW5kcyBvZiA8IGhhdmUgaW5j b21wYXRpYmxlIHR5cGVzIChzaXplX3QsIFVMT05HRVNUKTogYnVmZmVyX3Np emUgPCB0aGlzX3NpemUKIExPQyBkd2FyZjJsb2MuYzoxNTYzIChkd2FyZjJs b2MuYzoxNTM5KQotIE9wZXJhbmRzIG9mID49IGhhdmUgaW5jb21wYXRpYmxl IHR5cGVzIChVTE9OR0VTVCwgc2l6ZV90KTogYml0c190b19za2lwID49IHRo aXNfc2l6ZV9iaXRzCi1MT0MgZHdhcmYybG9jLmM6MTU0OQotIEFzc2lnbm1l bnQgb2YgVUxPTkdFU1QgdG8gTE9OR0VTVDogc291cmNlX29mZnNldF9iaXRz ID0gYml0c190b19za2lwCisgQXNzaWdubWVudCBvZiBVTE9OR0VTVCB0byBz aXplX3Q6IGJ1ZmZlcl9zaXplID0gdGhpc19zaXplCiBMT0MgZHdhcmYybG9j LmM6MTU3OAotIE9wZXJhbmRzIG9mIDwgaGF2ZSBpbmNvbXBhdGlibGUgdHlw ZXMgKHNpemVfdCwgaW50KTogdGhpc19zaXplIDwgcmVnaXN0ZXJfc2l6ZShh cmNoLCBnZGJfcmVnbnVtKQorIE9wZXJhbmRzIG9mIDwgaGF2ZSBpbmNvbXBh dGlibGUgdHlwZXMgKFVMT05HRVNULCBpbnQpOiB0aGlzX3NpemUgPCByZWdp c3Rlcl9zaXplKGFyY2gsIGdkYl9yZWdudW0pCiBMT0MgZHdhcmYybG9jLmM6 MTU4MQotIEFzc2lnbm1lbnQgb2YgYXJiaXRyYXJ5IFVJTlRlZ3JhbCB0eXBl IHRvIGludDogcmVnX29mZnNldCA9IHJlZ2lzdGVyX3NpemUoYXJjaCwgZ2Ri X3JlZ251bSkgLSB0aGlzX3NpemUKKyBBc3NpZ25tZW50IG9mIFVMT05HRVNU IHRvIGludDogcmVnX29mZnNldCA9IHJlZ2lzdGVyX3NpemUoYXJjaCwgZ2Ri X3JlZ251bSkgLSB0aGlzX3NpemUKIExPQyBkd2FyZjJsb2MuYzoxNTkyCi0g RnVuY3Rpb24gZ2V0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIGV4cGVjdHMgYXJn IDQgdG8gYmUgaW50IGdldHMgc2l6ZV90OiB0aGlzX3NpemUKKyBGdW5jdGlv biBnZXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMgZXhwZWN0cyBhcmcgNCB0byBi ZSBpbnQgZ2V0cyBVTE9OR0VTVDogdGhpc19zaXplCiBMT0MgZHdhcmYybG9j LmM6MTU5NiAoZHdhcmYybG9jLmM6MTU5OCkKKyBGdW5jdGlvbiBtZW1zZXQg ZXhwZWN0cyBhcmcgMyB0byBiZSBzaXplX3QgZ2V0cyBVTE9OR0VTVDogdGhp c19zaXplCitMT0MgZHdhcmYybG9jLmM6MTU5OAogIFRlc3QgZXhwcmVzc2lv biBmb3IgaWYgbm90IGJvb2xlYW4sIHR5cGUgaW50OiBvcHRpbQogTE9DIGR3 YXJmMmxvYy5jOjE2MDEKLSBGdW5jdGlvbiBtYXJrX3ZhbHVlX2J5dGVzX3Vu YXZhaWxhYmxlIGV4cGVjdHMgYXJnIDIgdG8gYmUgaW50IGdldHMgTE9OR0VT VDogb2Zmc2V0Ci1MT0MgZHdhcmYybG9jLmM6MTYwMQotIEZ1bmN0aW9uIG1h cmtfdmFsdWVfYnl0ZXNfdW5hdmFpbGFibGUgZXhwZWN0cyBhcmcgMyB0byBi ZSBpbnQgZ2V0cyBzaXplX3Q6IHRoaXNfc2l6ZQorIEZ1bmN0aW9uIG1hcmtf dmFsdWVfYnl0ZXNfdW5hdmFpbGFibGUgZXhwZWN0cyBhcmcgMyB0byBiZSBM T05HRVNUIGdldHMgVUxPTkdFU1Q6IHRoaXNfc2l6ZQogTE9DIGR3YXJmMmxv Yy5jOjE2MTYKKyBGdW5jdGlvbiByZWFkX3ZhbHVlX21lbW9yeSBleHBlY3Rz IGFyZyA2IHRvIGJlIHNpemVfdCBnZXRzIFVMT05HRVNUOiB0aGlzX3NpemUK K0xPQyBkd2FyZjJsb2MuYzoxNjE2CiAgTnVsbCBzdG9yYWdlIGJ1ZmZlciBw YXNzZWQgYXMgbm9uLW51bGwgcGFyYW06IHJlYWRfdmFsdWVfbWVtb3J5ICgu Li4sIGJ1ZmZlciwgLi4uKQogICAgTE9DIGR3YXJmMmxvYy5jOjE1MDcKICBT dG9yYWdlIGJ1ZmZlciBiZWNvbWVzIG51bGwKIExPQyBkd2FyZjJsb2MuYzox NjIxIChkd2FyZjJsb2MuYzoxNjIzKQorIFZhcmlhYmxlIG4gaW5pdGlhbGl6 ZWQgdG8gdHlwZSBVTE9OR0VTVCwgZXhwZWN0cyBzaXplX3Q6IHRoaXNfc2l6 ZQorTE9DIGR3YXJmMmxvYy5jOjE2MjMKICBPcGVyYW5kcyBvZiA+IGhhdmUg aW5jb21wYXRpYmxlIHR5cGVzIChzaXplX3QsIExPTkdFU1QpOiBuID4gYy0+ YWRkcl9zaXplIC0gc291cmNlX29mZnNldAogTE9DIGR3YXJmMmxvYy5jOjE2 NDIgKGR3YXJmMmxvYy5jOjE2NDQpCisgVmFyaWFibGUgbiBpbml0aWFsaXpl ZCB0byB0eXBlIFVMT05HRVNULCBleHBlY3RzIHNpemVfdDogdGhpc19zaXpl CitMT0MgZHdhcmYybG9jLmM6MTY0NAogIE9wZXJhbmRzIG9mID4gaGF2ZSBp bmNvbXBhdGlibGUgdHlwZXMgKHNpemVfdCwgVUxPTkdFU1QpOiBuID4gcC0+ di5saXRlcmFsLmxlbmd0aCAtIHNvdXJjZV9vZmZzZXQKIExPQyBkd2FyZjJs b2MuYzoxNjY5Ci0gRnVuY3Rpb24gY29weV9iaXR3aXNlIGV4cGVjdHMgYXJn IDQgdG8gYmUgVUlOVCBnZXRzIExPTkdFU1Q6IHNvdXJjZV9vZmZzZXRfYml0 cyAlIDgKLUxPQyBkd2FyZjJsb2MuYzoxNjcwCi0gRnVuY3Rpb24gY29weV9i aXR3aXNlIGV4cGVjdHMgYXJnIDUgdG8gYmUgVUlOVCBnZXRzIHNpemVfdDog dGhpc19zaXplX2JpdHMKKyBGdW5jdGlvbiBjb3B5X2JpdHdpc2UgZXhwZWN0 cyBhcmcgNCB0byBiZSBVTE9OR0VTVCBnZXRzIExPTkdFU1Q6IHNvdXJjZV9v ZmZzZXRfYml0cyAlIDgKIExPQyBkd2FyZjJsb2MuYzoxNzA4Ci0gQXNzaWdu bWVudCBvZiBpbnQgdG8gc2l6ZV90OiB0eXBlX2xlbiA9IHZhbHVlX2JpdHNp emUodG8pCi1MT0MgZHdhcmYybG9jLmM6MTcxMQotIEFzc2lnbm1lbnQgb2Yg VUlOVCB0byBzaXplX3Q6IHR5cGVfbGVuID0gOCAqICh2YWx1ZV90eXBlKHRv KSktPmxlbmd0aAorIEFzc2lnbm1lbnQgb2YgaW50IHRvIFVMT05HRVNUOiB0 eXBlX2xlbiA9IHZhbHVlX2JpdHNpemUodG8pCiBMT0MgZHdhcmYybG9jLmM6 MTcxMwotIE9wZXJhbmRzIG9mIDwgaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMg KExPTkdFU1QsIHNpemVfdCk6IG9mZnNldCA8IHR5cGVfbGVuCisgT3BlcmFu ZHMgb2YgPCBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoTE9OR0VTVCwgVUxP TkdFU1QpOiBvZmZzZXQgPCB0eXBlX2xlbgogTE9DIGR3YXJmMmxvYy5jOjE3 MzEgKGR3YXJmMmxvYy5jOjE3MjEpCi0gQXNzaWdubWVudCBvZiBVTE9OR0VT VCB0byBzaXplX3Q6IHRoaXNfc2l6ZV9iaXRzID0gcC0+c2l6ZQorIEFzc2ln bm1lbnQgb2YgVUxPTkdFU1QgdG8gTE9OR0VTVDogZGVzdF9vZmZzZXRfYml0 cyA9IGJpdHNfdG9fc2tpcAogTE9DIGR3YXJmMmxvYy5jOjE3NTIgKGR3YXJm MmxvYy5jOjE3MjIpCi0gT3BlcmFuZHMgb2YgPj0gaGF2ZSBpbmNvbXBhdGli bGUgdHlwZXMgKFVMT05HRVNULCBzaXplX3QpOiBiaXRzX3RvX3NraXAgPj0g dGhpc19zaXplX2JpdHMKKyBPcGVyYW5kcyBvZiA8IGhhdmUgaW5jb21wYXRp YmxlIHR5cGVzIChzaXplX3QsIFVMT05HRVNUKTogYnVmZmVyX3NpemUgPCB0 aGlzX3NpemUKIExPQyBkd2FyZjJsb2MuYzoxNzU0IChkd2FyZjJsb2MuYzox NzMxKQotIEFzc2lnbm1lbnQgb2YgVUxPTkdFU1QgdG8gTE9OR0VTVDogZGVz dF9vZmZzZXRfYml0cyA9IGJpdHNfdG9fc2tpcAorIEFzc2lnbm1lbnQgb2Yg VUxPTkdFU1QgdG8gc2l6ZV90OiBidWZmZXJfc2l6ZSA9IHRoaXNfc2l6ZQog TE9DIGR3YXJmMmxvYy5jOjE3NzAKLSBPcGVyYW5kcyBvZiA8PSBoYXZlIGlu Y29tcGF0aWJsZSB0eXBlcyAoc2l6ZV90LCBpbnQpOiB0aGlzX3NpemUgPD0g cmVnaXN0ZXJfc2l6ZShhcmNoLCBnZGJfcmVnbnVtKQorIE9wZXJhbmRzIG9m IDw9IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChVTE9OR0VTVCwgaW50KTog dGhpc19zaXplIDw9IHJlZ2lzdGVyX3NpemUoYXJjaCwgZ2RiX3JlZ251bSkK IExPQyBkd2FyZjJsb2MuYzoxNzcyCi0gQXNzaWdubWVudCBvZiBhcmJpdHJh cnkgVUlOVGVncmFsIHR5cGUgdG8gaW50OiByZWdfb2Zmc2V0ID0gcmVnaXN0 ZXJfc2l6ZShhcmNoLCBnZGJfcmVnbnVtKSAtIHRoaXNfc2l6ZQorIEFzc2ln bm1lbnQgb2YgVUxPTkdFU1QgdG8gaW50OiByZWdfb2Zmc2V0ID0gcmVnaXN0 ZXJfc2l6ZShhcmNoLCBnZGJfcmVnbnVtKSAtIHRoaXNfc2l6ZQogTE9DIGR3 YXJmMmxvYy5jOjE3ODEKLSBGdW5jdGlvbiBnZXRfZnJhbWVfcmVnaXN0ZXJf Ynl0ZXMgZXhwZWN0cyBhcmcgNCB0byBiZSBpbnQgZ2V0cyBzaXplX3Q6IHRo aXNfc2l6ZQorIEZ1bmN0aW9uIGdldF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyBl eHBlY3RzIGFyZyA0IHRvIGJlIGludCBnZXRzIFVMT05HRVNUOiB0aGlzX3Np emUKIExPQyBkd2FyZjJsb2MuYzoxNzk0Ci0gRnVuY3Rpb24gY29weV9iaXR3 aXNlIGV4cGVjdHMgYXJnIDIgdG8gYmUgVUlOVCBnZXRzIExPTkdFU1Q6IGRl c3Rfb2Zmc2V0X2JpdHMKLUxPQyBkd2FyZjJsb2MuYzoxNzk1Ci0gRnVuY3Rp b24gY29weV9iaXR3aXNlIGV4cGVjdHMgYXJnIDQgdG8gYmUgVUlOVCBnZXRz IExPTkdFU1Q6IHNvdXJjZV9vZmZzZXRfYml0cworIEZ1bmN0aW9uIGNvcHlf Yml0d2lzZSBleHBlY3RzIGFyZyAyIHRvIGJlIFVMT05HRVNUIGdldHMgTE9O R0VTVDogZGVzdF9vZmZzZXRfYml0cwogTE9DIGR3YXJmMmxvYy5jOjE3OTUg KGR3YXJmMmxvYy5jOjE3OTYpCi0gRnVuY3Rpb24gY29weV9iaXR3aXNlIGV4 cGVjdHMgYXJnIDUgdG8gYmUgVUlOVCBnZXRzIHNpemVfdDogdGhpc19zaXpl X2JpdHMKKyBGdW5jdGlvbiBjb3B5X2JpdHdpc2UgZXhwZWN0cyBhcmcgNCB0 byBiZSBVTE9OR0VTVCBnZXRzIExPTkdFU1Q6IHNvdXJjZV9vZmZzZXRfYml0 cwogTE9DIGR3YXJmMmxvYy5jOjE4MDEKLSBGdW5jdGlvbiBwdXRfZnJhbWVf cmVnaXN0ZXJfYnl0ZXMgZXhwZWN0cyBhcmcgNCB0byBiZSBpbnQgZ2V0cyBz aXplX3Q6IHRoaXNfc2l6ZQorIEZ1bmN0aW9uIHB1dF9mcmFtZV9yZWdpc3Rl cl9ieXRlcyBleHBlY3RzIGFyZyA0IHRvIGJlIGludCBnZXRzIFVMT05HRVNU OiB0aGlzX3NpemUKIExPQyBkd2FyZjJsb2MuYzoxODE4Ci0gRnVuY3Rpb24g Y29weV9iaXR3aXNlIGV4cGVjdHMgYXJnIDIgdG8gYmUgVUlOVCBnZXRzIExP TkdFU1Q6IGRlc3Rfb2Zmc2V0X2JpdHMKLUxPQyBkd2FyZjJsb2MuYzoxODE5 Ci0gRnVuY3Rpb24gY29weV9iaXR3aXNlIGV4cGVjdHMgYXJnIDQgdG8gYmUg VUlOVCBnZXRzIExPTkdFU1Q6IHNvdXJjZV9vZmZzZXRfYml0cworIEZ1bmN0 aW9uIGNvcHlfYml0d2lzZSBleHBlY3RzIGFyZyAyIHRvIGJlIFVMT05HRVNU IGdldHMgTE9OR0VTVDogZGVzdF9vZmZzZXRfYml0cwogTE9DIGR3YXJmMmxv Yy5jOjE4MTkgKGR3YXJmMmxvYy5jOjE4MjApCi0gRnVuY3Rpb24gY29weV9i aXR3aXNlIGV4cGVjdHMgYXJnIDUgdG8gYmUgVUlOVCBnZXRzIHNpemVfdDog dGhpc19zaXplX2JpdHMKKyBGdW5jdGlvbiBjb3B5X2JpdHdpc2UgZXhwZWN0 cyBhcmcgNCB0byBiZSBVTE9OR0VTVCBnZXRzIExPTkdFU1Q6IHNvdXJjZV9v ZmZzZXRfYml0cwogTE9DIGR3YXJmMmxvYy5jOjE4MjUKLSBGdW5jdGlvbiB3 cml0ZV9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdldHMg c2l6ZV90OiB0aGlzX3NpemUKKyBGdW5jdGlvbiB3cml0ZV9tZW1vcnkgZXhw ZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdldHMgVUxPTkdFU1Q6IHRoaXNf c2l6ZQogTE9DIGR3YXJmMmxvYy5jOjE4NjcKLSBPcGVyYW5kcyBvZiA+PSBo YXZlIGluY29tcGF0aWJsZSB0eXBlcyAoaW50LCBzaXplX3QpOiBiaXRfb2Zm c2V0ID49IHRoaXNfc2l6ZV9iaXRzCisgT3BlcmFuZHMgb2YgPj0gaGF2ZSBp bmNvbXBhdGlibGUgdHlwZXMgKExPTkdFU1QsIHNpemVfdCk6IGJpdF9vZmZz ZXQgPj0gdGhpc19zaXplX2JpdHMKIGR3YXJmMmxvYy5jOiAoaW4gZnVuY3Rp b24gaW5kaXJlY3RfcGllY2VkX3ZhbHVlKQogTE9DIGR3YXJmMmxvYy5jOjE5 NjcgKGR3YXJmMmxvYy5jOjE5NjYpCi0gT3BlcmFuZHMgb2YgPj0gaGF2ZSBp bmNvbXBhdGlibGUgdHlwZXMgKGludCwgc2l6ZV90KTogYml0X29mZnNldCA+ PSB0aGlzX3NpemVfYml0cworIE9wZXJhbmRzIG9mID49IGhhdmUgaW5jb21w YXRpYmxlIHR5cGVzIChMT05HRVNULCBzaXplX3QpOiBiaXRfb2Zmc2V0ID49 IHRoaXNfc2l6ZV9iaXRzCiBMT0MgZHdhcmYybG9jLmM6MjE1NSAoZHdhcmYy bG9jLmM6MjE1MykKLSBGdW5jdGlvbiBzZXRfdmFsdWVfb2Zmc2V0IGV4cGVj dHMgYXJnIDIgdG8gYmUgaW50IGdldHMgTE9OR0VTVDogYnl0ZV9vZmZzZXQK LUxPQyBkd2FyZjJsb2MuYzoyMTU0CiAgRnJlc2ggc3RvcmFnZSBjIG5vdCBy ZWxlYXNlZCBiZWZvcmUgc2NvcGUgZXhpdAogICAgTE9DIGR3YXJmMmxvYy5j OjIxNDcgKGR3YXJmMmxvYy5jOjIxNDYpCiAgRnJlc2ggc3RvcmFnZSBjIGNy ZWF0ZWQKIExPQyBkd2FyZjJsb2MuYzoyMTk4IChkd2FyZjJsb2MuYzoyMTk1 KQotIFZhcmlhYmxlIG4gaW5pdGlhbGl6ZWQgdG8gdHlwZSBVSU5ULCBleHBl Y3RzIHNpemVfdDogKHZhbHVlX3R5cGUodmFsdWUpKS0+bGVuZ3RoCi1MT0Mg ZHdhcmYybG9jLmM6MjE5NwotIE9wZXJhbmRzIG9mID4gaGF2ZSBpbmNvbXBh dGlibGUgdHlwZXMgKExPTkdFU1QsIHNpemVfdCk6IGJ5dGVfb2Zmc2V0ICsg KHR5cGUpLT5sZW5ndGggPiBuCisgT3BlcmFuZHMgb2YgPiBoYXZlIGluY29t cGF0aWJsZSB0eXBlcyAoTE9OR0VTVCwgVUxPTkdFU1QpOiBieXRlX29mZnNl dCArICh0eXBlKS0+bGVuZ3RoID4gbgogTE9DIGR3YXJmMmxvYy5jOjIyMjEg KGR3YXJmMmxvYy5jOjIyMTMpCi0gT3BlcmFuZHMgb2YgPiBoYXZlIGluY29t cGF0aWJsZSB0eXBlcyAoc2l6ZV90LCBVSU5UKTogbiA+ICh0eXBlKS0+bGVu Z3RoCi1MT0MgZHdhcmYybG9jLmM6MjIxOQotIEFzc2lnbm1lbnQgb2YgVUlO VCB0byBzaXplX3Q6IG4gPSAodHlwZSktPmxlbmd0aAotTE9DIGR3YXJmMmxv Yy5jOjIyMjAKICBGcmVzaCBzdG9yYWdlIG9iamZpbGVfZ2RiYXJjaCBub3Qg cmVsZWFzZWQgYmVmb3JlIHNjb3BlIGV4aXQKICAgIExPQyBkd2FyZjJsb2Mu YzoyMjE2IChkd2FyZjJsb2MuYzoyMjE1KQogIEZyZXNoIHN0b3JhZ2Ugb2Jq ZmlsZV9nZGJhcmNoIGNyZWF0ZWQKIExPQyBkd2FyZjJsb2MuYzoyMjIyCisg RnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdl dHMgVUxPTkdFU1Q6IG4KK0xPQyBkd2FyZjJsb2MuYzoyMjIzCiAgRnJlc2gg c3RvcmFnZSB2YWx1ZSBub3QgcmVsZWFzZWQgYmVmb3JlIHNjb3BlIGV4aXQK ICAgIExPQyBkd2FyZjJsb2MuYzoyMTkzIChkd2FyZjJsb2MuYzoyMTkyKQog IEZyZXNoIHN0b3JhZ2UgdmFsdWUgY3JlYXRlZAogTE9DIGR3YXJmMmxvYy5j OjIyNDIgKGR3YXJmMmxvYy5jOjIyNDEpCi0gT3BlcmFuZHMgb2YgPiBoYXZl IGluY29tcGF0aWJsZSB0eXBlcyAoc2l6ZV90LCBVSU5UKTogbiA+ICh0eXBl KS0+bGVuZ3RoCisgT3BlcmFuZHMgb2YgPiBoYXZlIGluY29tcGF0aWJsZSB0 eXBlcyAoc2l6ZV90LCBVTE9OR0VTVCk6IG4gPiAodHlwZSktPmxlbmd0aAog TE9DIGR3YXJmMmxvYy5jOjIyNDggKGR3YXJmMmxvYy5jOjIyNDcpCi0gQXNz aWdubWVudCBvZiBVSU5UIHRvIHNpemVfdDogbiA9ICh0eXBlKS0+bGVuZ3Ro CisgQXNzaWdubWVudCBvZiBVTE9OR0VTVCB0byBzaXplX3Q6IG4gPSAodHlw ZSktPmxlbmd0aAogTE9DIGR3YXJmMnJlYWQuYzo5NzgKLSBOZXcgZnJlc2gg c3RvcmFnZSAodHlwZSBjaGFyICopIHBhc3NlZCBhcyBpbXBsaWNpdGx5IHRl bXAgKG5vdCByZWxlYXNlZCk6IGdldHRleHQoImNvbnN0IHZhbHVlIGxlbmd0 aCBtaXNtYXRjaCBmb3IgJyVzJywgZ290ICVkLCBleHBlY3RlZCAlZCIpCisg TmV3IGZyZXNoIHN0b3JhZ2UgKHR5cGUgY2hhciAqKSBwYXNzZWQgYXMgaW1w bGljaXRseSB0ZW1wIChub3QgcmVsZWFzZWQpOiBnZXR0ZXh0KCJjb25zdCB2 YWx1ZSBsZW5ndGggbWlzbWF0Y2ggZm9yICclcycsIGdvdCAlcywgZXhwZWN0 ZWQgJXMiKQogZHdhcmYycmVhZC5jOiAoaW4gZnVuY3Rpb24gZHdhcmYyX3Nl Y3Rpb25fYnVmZmVyX292ZXJmbG93X2NvbXBsYWludCkKIExPQyBkd2FyZjJy ZWFkLmM6NjA4NgotIEZ1bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRv IGJlIHNpemVfdCBnZXRzIFVJTlQ6ICh0eXBlKS0+bGVuZ3RoCisgRnVuY3Rp b24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgVUxP TkdFU1Q6ICh0eXBlKS0+bGVuZ3RoCiBMT0MgZHdhcmYycmVhZC5jOjc3MzIg KGR3YXJmMnJlYWQuYzo3NzMzKQorIEFzc2lnbm1lbnQgb2Ygc2l6ZV90IHRv IFVMT05HRVNUOiBkbGJhdG9uLT5zaXplID0gKChhdHRyKS0+dS5ibGspLT5z aXplCitMT0MgZHdhcmYycmVhZC5jOjc3MzMKICBJbXBsaWNpdGx5IG9ubHkg c3RvcmFnZSBkbGJhdG9uLT5wZXJfY3UgKHR5cGUgc3RydWN0IGR3YXJmMl9w ZXJfY3VfZGF0YSAqKSBub3QgcmVsZWFzZWQgYmVmb3JlIGFzc2lnbm1lbnQ6 IGRsYmF0b24tPnBlcl9jdSA9IGN1LT5wZXJfY3UKIExPQyBkd2FyZjJyZWFk LmM6NzgzNCAoZHdhcmYycmVhZC5jOjc4MzEpCi0gQXNzaWdubWVudCBvZiBV SU5UIHRvIHNpemVfdDogcGFyYW1ldGVyLT52YWx1ZV9zaXplID0gKChhdHRy KS0+dS5ibGspLT5zaXplCi1MT0MgZHdhcmYycmVhZC5jOjc4MzQKICBJbXBs aWNpdGx5IG9ubHkgc3RvcmFnZSBwYXJhbWV0ZXItPmRhdGFfdmFsdWUgKHR5 cGUgZ2RiX2J5dGUgKikgbm90IHJlbGVhc2VkIGJlZm9yZSBhc3NpZ25tZW50 OiBwYXJhbWV0ZXItPmRhdGFfdmFsdWUgPSBOVUxMCiBMT0MgZHdhcmYycmVh ZC5jOjc4NTMgKGR3YXJmMnJlYWQuYzo3ODQ5KQotIEFzc2lnbm1lbnQgb2Yg VUlOVCB0byBzaXplX3Q6IHBhcmFtZXRlci0+ZGF0YV92YWx1ZV9zaXplID0g KChhdHRyKS0+dS5ibGspLT5zaXplCi1MT0MgZHdhcmYycmVhZC5jOjc4NTMK ICBGcmVzaCBzdG9yYWdlIGdkYmFyY2ggbm90IHJlbGVhc2VkIGJlZm9yZSBy ZXR1cm4KICAgIExPQyBkd2FyZjJyZWFkLmM6NzYxMQogIEZyZXNoIHN0b3Jh Z2UgZ2RiYXJjaCBjcmVhdGVkCiBMT0MgZHdhcmYycmVhZC5jOjg0NzQgKGR3 YXJmMnJlYWQuYzo4NDczKQotIEFzc2lnbm1lbnQgb2YgTE9OR0VTVCB0byBp bnQ6ICgoKmZwKS5sb2MuYml0cG9zKSA9IChvZmZzZXQgKiBiaXRzX3Blcl9i eXRlKQotTE9DIGR3YXJmMnJlYWQuYzo4NDc0CiAgRnJlc2ggc3RvcmFnZSBh dHRyICh0eXBlIHN0cnVjdCBhdHRyaWJ1dGUgKikgbm90IHJlbGVhc2VkIGJl Zm9yZSBhc3NpZ25tZW50OiBhdHRyID0gZHdhcmYyX2F0dHIoZGllLCBEV19B VF9iaXRfb2Zmc2V0LCBjdSkKICAgIExPQyBkd2FyZjJyZWFkLmM6ODQ2MQog IEZyZXNoIHN0b3JhZ2UgYXR0ciBjcmVhdGVkCiBMT0MgZHdhcmYycmVhZC5j Ojg0OTUgKGR3YXJmMnJlYWQuYzo4NDg0KQotIEFzc2lnbm1lbnQgb2YgVUxP TkdFU1QgdG8gaW50OiAoKCpmcCkubG9jLmJpdHBvcykgPSAoKCgoKmZwKS5s b2MuYml0cG9zKSArIDApICsgKChhdHRyKS0+dS51bnNuZCkpCi1MT0MgZHdh cmYycmVhZC5jOjg0OTUKICBWYXJpYWJsZSBiaXRfb2Zmc2V0IGluaXRpYWxp emVkIHRvIHR5cGUgVUxPTkdFU1QsIGV4cGVjdHMgaW50OiAoKGF0dHIpLT51 LnVuc25kKQogTE9DIGR3YXJmMnJlYWQuYzo4NTg0IChkd2FyZjJyZWFkLmM6 ODU4MikKLSBBc3NpZ25tZW50IG9mIExPTkdFU1QgdG8gaW50OiAoKCpmcCku bG9jLmJpdHBvcykgPSAob2Zmc2V0ICogYml0c19wZXJfYnl0ZSkKLUxPQyBk d2FyZjJyZWFkLmM6ODU4NAogIEltcGxpY2l0bHkgb25seSBzdG9yYWdlIGZw LT50eXBlICh0eXBlIHN0cnVjdCB0eXBlICopIG5vdCByZWxlYXNlZCBiZWZv cmUgYXNzaWdubWVudDogKCgqZnApLnR5cGUpID0gZGllX3R5cGUoZGllLCBj dSkKIExPQyBkd2FyZjJyZWFkLmM6OTEzMyAoZHdhcmYycmVhZC5jOjkxMjYp Ci0gQXNzaWdubWVudCBvZiBVTE9OR0VTVCB0byBVSU5UOiAodHlwZSktPmxl bmd0aCA9ICgoYXR0ciktPnUudW5zbmQpCi1MT0MgZHdhcmYycmVhZC5jOjkx MzMKICBUZXN0IGV4cHJlc3Npb24gZm9yIGlmIG5vdCBib29sZWFuLCB0eXBl IGludDogcHJvZHVjZXJfaXNfaWNjKGN1KQogTE9DIGR3YXJmMnJlYWQuYzo5 NDIxIChkd2FyZjJyZWFkLmM6OTQwOSkKLSBBc3NpZ25tZW50IG9mIFVMT05H RVNUIHRvIFVJTlQ6ICh0eXBlKS0+bGVuZ3RoID0gKChhdHRyKS0+dS51bnNu ZCkKLUxPQyBkd2FyZjJyZWFkLmM6OTQyMQogIFRlc3QgZXhwcmVzc2lvbiBm b3IgaWYgbm90IGJvb2xlYW4sIHR5cGUgaW50OiBkaWVfaXNfZGVjbGFyYXRp b24oZGllLCBjdSkKIExPQyBkd2FyZjJyZWFkLmM6OTYzNCAoZHdhcmYycmVh ZC5jOjk2MzEpCi0gQXNzaWdubWVudCBvZiBVTE9OR0VTVCB0byBVSU5UOiAo dHlwZSktPmxlbmd0aCA9ICgoYXR0ciktPnUudW5zbmQpCi1MT0MgZHdhcmYy cmVhZC5jOjk2MzQKICBOZXcgZnJlc2ggc3RvcmFnZSAodHlwZSBjaGFyICop IHBhc3NlZCBhcyBpbXBsaWNpdGx5IHRlbXAgKG5vdCByZWxlYXNlZCk6IGdl dHRleHQoIkRXX0FUX2J5dGVfc2l6ZSBmb3IgYXJyYXkgdHlwZSBzbWFsbGVy ICIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAkJICAgICAidGhhbiB0aGUgdG90YWwgc2l6ZSBvZiBlbGVt ZW50cyIpCiBMT0MgZHdhcmYycmVhZC5jOjk3MDcgKGR3YXJmMnJlYWQuYzo5 NzA1KQotIEFzc2lnbm1lbnQgb2YgVUxPTkdFU1QgdG8gVUlOVDogKHNldF90 eXBlKS0+bGVuZ3RoID0gKChhdHRyKS0+dS51bnNuZCkKLUxPQyBkd2FyZjJy ZWFkLmM6OTcwNwogIEZyZXNoIHN0b3JhZ2UgZG9tYWluX3R5cGUgbm90IHJl bGVhc2VkIGJlZm9yZSByZXR1cm4KICAgIExPQyBkd2FyZjJyZWFkLmM6OTY5 NAogIEZyZXNoIHN0b3JhZ2UgZG9tYWluX3R5cGUgY3JlYXRlZAogTE9DIGR3 YXJmMnJlYWQuYzo5OTQ2Ci0gT3BlcmFuZHMgb2YgIT0gaGF2ZSBpbmNvbXBh dGlibGUgdHlwZXMgKFVJTlQsIGludCk6ICh0eXBlKS0+bGVuZ3RoICE9IGJ5 dGVfc2l6ZQorIE9wZXJhbmRzIG9mICE9IGhhdmUgaW5jb21wYXRpYmxlIHR5 cGVzIChVTE9OR0VTVCwgaW50KTogKHR5cGUpLT5sZW5ndGggIT0gYnl0ZV9z aXplCiBMT0MgZHdhcmYycmVhZC5jOjk5NTgKLSBPcGVyYW5kcyBvZiAhPSBo YXZlIGluY29tcGF0aWJsZSB0eXBlcyAoVUlOVCwgaW50KTogKHR5cGUpLT5s ZW5ndGggIT0gYnl0ZV9zaXplCisgT3BlcmFuZHMgb2YgIT0gaGF2ZSBpbmNv bXBhdGlibGUgdHlwZXMgKFVMT05HRVNULCBpbnQpOiAodHlwZSktPmxlbmd0 aCAhPSBieXRlX3NpemUKIExPQyBkd2FyZjJyZWFkLmM6MTAwMjQgKGR3YXJm MnJlYWQuYzoxMDAyMCkKLSBBc3NpZ25tZW50IG9mIFVMT05HRVNUIHRvIFVJ TlQ6ICh0eXBlKS0+bGVuZ3RoID0gKChhdHRyKS0+dS51bnNuZCkKLUxPQyBk d2FyZjJyZWFkLmM6MTAwMjQKLSBBc3NpZ25tZW50IG9mIHVuc2lnbmVkIGNo YXIgdG8gVUlOVDogKHR5cGUpLT5sZW5ndGggPSBjdV9oZWFkZXItPmFkZHJf c2l6ZQorIEFzc2lnbm1lbnQgb2YgdW5zaWduZWQgY2hhciB0byBVTE9OR0VT VDogKHR5cGUpLT5sZW5ndGggPSBjdV9oZWFkZXItPmFkZHJfc2l6ZQogTE9D IGR3YXJmMnJlYWQuYzoxMDUzNgotIE9wZXJhbmRzIG9mID49IGhhdmUgaW5j b21wYXRpYmxlIHR5cGVzIChVSU5ULCBpbnQpOiAoaW50X3R5cGUpLT5sZW5n dGggPj0gYWRkcl9zaXplCisgT3BlcmFuZHMgb2YgPj0gaGF2ZSBpbmNvbXBh dGlibGUgdHlwZXMgKFVMT05HRVNULCBpbnQpOiAoaW50X3R5cGUpLT5sZW5n dGggPj0gYWRkcl9zaXplCiBMT0MgZHdhcmYycmVhZC5jOjEwNTQxCi0gT3Bl cmFuZHMgb2YgPj0gaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKFVJTlQsIGlu dCk6IChpbnRfdHlwZSktPmxlbmd0aCA+PSBhZGRyX3NpemUKKyBPcGVyYW5k cyBvZiA+PSBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoVUxPTkdFU1QsIGlu dCk6IChpbnRfdHlwZSktPmxlbmd0aCA+PSBhZGRyX3NpemUKIExPQyBkd2Fy ZjJyZWFkLmM6MTA1NDYKLSBPcGVyYW5kcyBvZiA+PSBoYXZlIGluY29tcGF0 aWJsZSB0eXBlcyAoVUlOVCwgaW50KTogKGludF90eXBlKS0+bGVuZ3RoID49 IGFkZHJfc2l6ZQorIE9wZXJhbmRzIG9mID49IGhhdmUgaW5jb21wYXRpYmxl IHR5cGVzIChVTE9OR0VTVCwgaW50KTogKGludF90eXBlKS0+bGVuZ3RoID49 IGFkZHJfc2l6ZQogTE9DIGR3YXJmMnJlYWQuYzoxMDU3OSAoZHdhcmYycmVh ZC5jOjEwNTc3KQotIEFzc2lnbm1lbnQgb2YgVUxPTkdFU1QgdG8gVUlOVDog KHJhbmdlX3R5cGUpLT5sZW5ndGggPSAoKGF0dHIpLT51LnVuc25kKQotTE9D IGR3YXJmMnJlYWQuYzoxMDU3OQogIFJldHVybiB2YWx1ZSAodHlwZSBzdHJ1 Y3QgdHlwZSAqKSBpZ25vcmVkOiBzZXRfZGllX3R5cGUoZGllLi4uCiBMT0Mg ZHdhcmYycmVhZC5jOjExNjM1IChkd2FyZjJyZWFkLmM6MTE2MzcpCisgQXNz aWdubWVudCBvZiBVSU5UIHRvIHNpemVfdDogYmxrLT5zaXplID0gcmVhZF8y X2J5dGVzKGFiZmQsIGluZm9fcHRyKQorTE9DIGR3YXJmMnJlYWQuYzoxMTYz NworIEZ1bmN0aW9uIHJlYWRfbl9ieXRlcyBleHBlY3RzIGFyZyAzIHRvIGJl IFVJTlQgZ2V0cyBzaXplX3Q6IGJsay0+c2l6ZQorTE9DIGR3YXJmMnJlYWQu YzoxMTYzNwogIEltcGxpY2l0bHkgb25seSBzdG9yYWdlIGJsay0+ZGF0YSAo dHlwZSBnZGJfYnl0ZSAqKSBub3QgcmVsZWFzZWQgYmVmb3JlIGFzc2lnbm1l bnQ6IGJsay0+ZGF0YSA9IHJlYWRfbl9ieXRlcyhhYmZkLCBpbmZvX3B0ciwg YmxrLT5zaXplKQogTE9DIGR3YXJmMnJlYWQuYzoxMTY0MyAoZHdhcmYycmVh ZC5jOjExNjQ1KQorIEFzc2lnbm1lbnQgb2YgVUlOVCB0byBzaXplX3Q6IGJs ay0+c2l6ZSA9IHJlYWRfNF9ieXRlcyhhYmZkLCBpbmZvX3B0cikKK0xPQyBk d2FyZjJyZWFkLmM6MTE2NDUKKyBGdW5jdGlvbiByZWFkX25fYnl0ZXMgZXhw ZWN0cyBhcmcgMyB0byBiZSBVSU5UIGdldHMgc2l6ZV90OiBibGstPnNpemUK K0xPQyBkd2FyZjJyZWFkLmM6MTE2NDUKICBJbXBsaWNpdGx5IG9ubHkgc3Rv cmFnZSBibGstPmRhdGEgKHR5cGUgZ2RiX2J5dGUgKikgbm90IHJlbGVhc2Vk IGJlZm9yZSBhc3NpZ25tZW50OiBibGstPmRhdGEgPSByZWFkX25fYnl0ZXMo YWJmZCwgaW5mb19wdHIsIGJsay0+c2l6ZSkKIExPQyBkd2FyZjJyZWFkLmM6 MTE2NzkKLSBBc3NpZ25tZW50IG9mIFVMT05HRVNUIHRvIFVJTlQ6IGJsay0+ c2l6ZSA9IHJlYWRfdW5zaWduZWRfbGViMTI4KGFiZmQsIGluZm9fcHRyLCAm Ynl0ZXNfcmVhZCkKKyBBc3NpZ25tZW50IG9mIFVMT05HRVNUIHRvIHNpemVf dDogYmxrLT5zaXplID0gcmVhZF91bnNpZ25lZF9sZWIxMjgoYWJmZCwgaW5m b19wdHIsICZieXRlc19yZWFkKQorTE9DIGR3YXJmMnJlYWQuYzoxMTY4MQor IEZ1bmN0aW9uIHJlYWRfbl9ieXRlcyBleHBlY3RzIGFyZyAzIHRvIGJlIFVJ TlQgZ2V0cyBzaXplX3Q6IGJsay0+c2l6ZQogTE9DIGR3YXJmMnJlYWQuYzox MTY4NyAoZHdhcmYycmVhZC5jOjExNjg5KQorIEFzc2lnbm1lbnQgb2YgVUlO VCB0byBzaXplX3Q6IGJsay0+c2l6ZSA9IHJlYWRfMV9ieXRlKGFiZmQsIGlu Zm9fcHRyKQorTE9DIGR3YXJmMnJlYWQuYzoxMTY4OQorIEZ1bmN0aW9uIHJl YWRfbl9ieXRlcyBleHBlY3RzIGFyZyAzIHRvIGJlIFVJTlQgZ2V0cyBzaXpl X3Q6IGJsay0+c2l6ZQorTE9DIGR3YXJmMnJlYWQuYzoxMTY4OQogIEltcGxp Y2l0bHkgb25seSBzdG9yYWdlIGJsay0+ZGF0YSAodHlwZSBnZGJfYnl0ZSAq KSBub3QgcmVsZWFzZWQgYmVmb3JlIGFzc2lnbm1lbnQ6IGJsay0+ZGF0YSA9 IHJlYWRfbl9ieXRlcyhhYmZkLCBpbmZvX3B0ciwgYmxrLT5zaXplKQogTE9D IGR3YXJmMnJlYWQuYzoxMzI0NAotIE9wZXJhbmRzIG9mID09IGhhdmUgaW5j b21wYXRpYmxlIHR5cGVzIChVSU5ULCBpbnQpOiAoKGF0dHIpLT51LmJsaykt PnNpemUgPT0gMSArIGxlYjEyOF9zaXplKCYoKGF0dHIpLT51LmJsayktPmRh dGFbMV0pCisgT3BlcmFuZHMgb2YgPT0gaGF2ZSBpbmNvbXBhdGlibGUgdHlw ZXMgKHNpemVfdCwgaW50KTogKChhdHRyKS0+dS5ibGspLT5zaXplID09IDEg KyBsZWIxMjhfc2l6ZSgmKChhdHRyKS0+dS5ibGspLT5kYXRhWzFdKQogTE9D IGR3YXJmMnJlYWQuYzoxMzcwOQotIE9wZXJhbmRzIG9mICE9IGhhdmUgaW5j b21wYXRpYmxlIHR5cGVzIChVSU5ULCB1bnNpZ25lZCBjaGFyKTogKHR5cGUp LT5sZW5ndGggIT0gY3VfaGVhZGVyLT5hZGRyX3NpemUKKyBPcGVyYW5kcyBv ZiAhPSBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoVUxPTkdFU1QsIHVuc2ln bmVkIGNoYXIpOiAodHlwZSktPmxlbmd0aCAhPSBjdV9oZWFkZXItPmFkZHJf c2l6ZQogTE9DIGR3YXJmMnJlYWQuYzoxMzcxMQotIEZ1bmN0aW9uIGR3YXJm Ml9jb25zdF92YWx1ZV9sZW5ndGhfbWlzbWF0Y2hfY29tcGxhaW50IGV4cGVj dHMgYXJnIDIgdG8gYmUgaW50IGdldHMgdW5zaWduZWQgY2hhcjogY3VfaGVh ZGVyLT5hZGRyX3NpemUKKyBGdW5jdGlvbiBkd2FyZjJfY29uc3RfdmFsdWVf bGVuZ3RoX21pc21hdGNoX2NvbXBsYWludCBleHBlY3RzIGFyZyAyIHRvIGJl IExPTkdFU1QgZ2V0cyB1bnNpZ25lZCBjaGFyOiBjdV9oZWFkZXItPmFkZHJf c2l6ZQogTE9DIGR3YXJmMnJlYWQuYzoxMzc0NCAoZHdhcmYycmVhZC5jOjEz NzQ1KQotIEZ1bmN0aW9uIGR3YXJmMl9jb25zdF92YWx1ZV9sZW5ndGhfbWlz bWF0Y2hfY29tcGxhaW50IGV4cGVjdHMgYXJnIDIgdG8gYmUgaW50IGdldHMg VUlOVDogYmxrLT5zaXplCisgT3BlcmFuZHMgb2YgIT0gaGF2ZSBpbmNvbXBh dGlibGUgdHlwZXMgKFVMT05HRVNULCBzaXplX3QpOiAodHlwZSktPmxlbmd0 aCAhPSBibGstPnNpemUKIExPQyBkd2FyZjJyZWFkLmM6MTM3NDUgKGR3YXJm MnJlYWQuYzoxMzc0NikKLSBGdW5jdGlvbiBkd2FyZjJfY29uc3RfdmFsdWVf bGVuZ3RoX21pc21hdGNoX2NvbXBsYWludCBleHBlY3RzIGFyZyAzIHRvIGJl IGludCBnZXRzIFVJTlQ6ICh0eXBlKS0+bGVuZ3RoCisgRnVuY3Rpb24gZHdh cmYyX2NvbnN0X3ZhbHVlX2xlbmd0aF9taXNtYXRjaF9jb21wbGFpbnQgZXhw ZWN0cyBhcmcgMiB0byBiZSBMT05HRVNUIGdldHMgc2l6ZV90OiBibGstPnNp emUKK0xPQyBkd2FyZjJyZWFkLmM6MTM3NDYKKyBGdW5jdGlvbiBkd2FyZjJf Y29uc3RfdmFsdWVfbGVuZ3RoX21pc21hdGNoX2NvbXBsYWludCBleHBlY3Rz IGFyZyAzIHRvIGJlIExPTkdFU1QgZ2V0cyBVTE9OR0VTVDogKHR5cGUpLT5s ZW5ndGgKIExPQyBkd2FyZjJyZWFkLmM6MTQ2ODMgKGR3YXJmMnJlYWQuYzox NDY5MSkKKyBGdW5jdGlvbiBwdWxvbmdlc3QgZXhwZWN0cyBhcmcgMSB0byBi ZSBVTE9OR0VTVCBnZXRzIHNpemVfdDogKCgmZGllLT5hdHRyc1tpXSktPnUu YmxrKS0+c2l6ZQorTE9DIGR3YXJmMnJlYWQuYzoxNDY4NworIEZ1bmN0aW9u IHB1bG9uZ2VzdCBleHBlY3RzIGFyZyAxIHRvIGJlIFVMT05HRVNUIGdldHMg c2l6ZV90OiAoKCZkaWUtPmF0dHJzW2ldKS0+dS5ibGspLT5zaXplCitMT0Mg ZHdhcmYycmVhZC5jOjE0NjkxCiAgRnVuY3Rpb24gaGV4X3N0cmluZyBleHBl Y3RzIGFyZyAxIHRvIGJlIExPTkdFU1QgZ2V0cyBVTE9OR0VTVDogKCgmZGll LT5hdHRyc1tpXSktPnUudW5zbmQpCiBMT0MgZHdhcmYycmVhZC5jOjE1MDY0 IChkd2FyZjJyZWFkLmM6MTUwNzApCisgQXNzaWdubWVudCBvZiBzaXplX3Qg dG8gVUxPTkdFU1Q6IHJldHZhbC5zaXplID0gKChhdHRyKS0+dS5ibGspLT5z aXplCitMT0MgZHdhcmYycmVhZC5jOjE1MDcwCiAgTnVsbCBzdG9yYWdlIHJl dHZhbC5kYXRhIHJldHVybmVkIGFzIG5vbi1udWxsOiByZXR2YWwKICAgIExP QyBkd2FyZjJyZWFkLmM6MTUwNDEKICBTdG9yYWdlIHJldHZhbC5kYXRhIGJl Y29tZXMgbnVsbAogTE9DIGR3YXJmMnJlYWQuYzoxNTI2NwotIFZhcmlhYmxl IHNpemUgaW5pdGlhbGl6ZWQgdG8gdHlwZSBVSU5ULCBleHBlY3RzIGludDog YmxrLT5zaXplCisgVmFyaWFibGUgc2l6ZSBpbml0aWFsaXplZCB0byB0eXBl IHNpemVfdCwgZXhwZWN0cyBpbnQ6IGJsay0+c2l6ZQogTE9DIGR3YXJmMnJl YWQuYzoxNjUyNiAoZHdhcmYycmVhZC5jOjE2NTI3KQorIEFzc2lnbm1lbnQg b2Ygc2l6ZV90IHRvIFVMT05HRVNUOiBiYXRvbi0+c2l6ZSA9ICgoYXR0cikt PnUuYmxrKS0+c2l6ZQorTE9DIGR3YXJmMnJlYWQuYzoxNjUyNwogIEltcGxp Y2l0bHkgb25seSBzdG9yYWdlIGJhdG9uLT5kYXRhICh0eXBlIGdkYl9ieXRl ICopIG5vdCByZWxlYXNlZCBiZWZvcmUgYXNzaWdubWVudDogYmF0b24tPmRh dGEgPSAoKGF0dHIpLT51LmJsayktPmRhdGEKIExPQyBkd2FyZjJyZWFkLmM6 MzMzCiAgRmlsZSBzdGF0aWMgZnVuY3Rpb24gVkVDX2RlbGF5ZWRfbWV0aG9k X2luZm9fc2FmZV9pbnNlcnQgZGVjbGFyZWQgYnV0IG5vdCB1c2VkCiAgICBM T0MgZHdhcmYycmVhZC5jOjMzMwogIERlZmluaXRpb24gb2YgVkVDX2RlbGF5 ZWRfbWV0aG9kX2luZm9fc2FmZV9pbnNlcnQKIExPQyBldmFsLmM6NDQ2IChl dmFsLmM6NDQ1KQotIEZ1bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRv IGJlIHNpemVfdCBnZXRzIFVJTlQ6ICh2YWx1ZV90eXBlKHZhbCkpLT5sZW5n dGgKKyBGdW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXpl X3QgZ2V0cyBVTE9OR0VTVDogKHZhbHVlX3R5cGUodmFsKSktPmxlbmd0aAog TE9DIGV2YWwuYzo0ODkgKGV2YWwuYzo0ODgpCi0gRnVuY3Rpb24gbWVtY3B5 IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgaW50OiBlbGVtZW50 X3NpemUKKyBGdW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0byBiZSBz aXplX3QgZ2V0cyBMT05HRVNUOiBlbGVtZW50X3NpemUKIExPQyBldmFsLmM6 NDk4IChldmFsLmM6NDk3KQotIEZ1bmN0aW9uIG1lbWNweSBleHBlY3RzIGFy ZyAzIHRvIGJlIHNpemVfdCBnZXRzIGludDogZWxlbWVudF9zaXplCisgRnVu Y3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMg TE9OR0VTVDogZWxlbWVudF9zaXplCiBMT0MgZXZhbC5jOjYxMSAoZXZhbC5j OjYxMCkKLSBPcGVyYW5kcyBvZiA+IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVz IChVSU5ULCBpbnQpOiAodHlwZTEpLT5sZW5ndGggKiA4ID4gZ2RiYXJjaF9k b3VibGVfYml0KGdkYmFyY2gpCisgT3BlcmFuZHMgb2YgPiBoYXZlIGluY29t cGF0aWJsZSB0eXBlcyAoVUxPTkdFU1QsIGludCk6ICh0eXBlMSktPmxlbmd0 aCAqIDggPiBnZGJhcmNoX2RvdWJsZV9iaXQoZ2RiYXJjaCkKIExPQyBldmFs LmM6NjEyIChldmFsLmM6NjExKQotIE9wZXJhbmRzIG9mID4gaGF2ZSBpbmNv bXBhdGlibGUgdHlwZXMgKFVJTlQsIGludCk6ICh0eXBlMiktPmxlbmd0aCAq IDggPiBnZGJhcmNoX2RvdWJsZV9iaXQoZ2RiYXJjaCkKKyBPcGVyYW5kcyBv ZiA+IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChVTE9OR0VTVCwgaW50KTog KHR5cGUyKS0+bGVuZ3RoICogOCA+IGdkYmFyY2hfZG91YmxlX2JpdChnZGJh cmNoKQogTE9DIGV2YWwuYzo3MTUgKGV2YWwuYzo3MTQpCi0gT3BlcmFuZHMg b2YgPiBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoVUlOVCwgaW50KTogcmVz dWx0X2xlbiA+IGdkYmFyY2hfbG9uZ19iaXQoZ2RiYXJjaCkgLyA4CisgT3Bl cmFuZHMgb2YgPiBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoVUxPTkdFU1Qs IGludCk6IHJlc3VsdF9sZW4gPiBnZGJhcmNoX2xvbmdfYml0KGdkYmFyY2gp IC8gOAogTE9DIGV2YWwuYzo3MjIgKGV2YWwuYzo3MjEpCi0gT3BlcmFuZHMg b2YgPiBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoVUlOVCwgaW50KTogcmVz dWx0X2xlbiA+IGdkYmFyY2hfbG9uZ19iaXQoZ2RiYXJjaCkgLyA4CisgT3Bl cmFuZHMgb2YgPiBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoVUxPTkdFU1Qs IGludCk6IHJlc3VsdF9sZW4gPiBnZGJhcmNoX2xvbmdfYml0KGdkYmFyY2gp IC8gOAogTE9DIGV2YWwuYzo5NzkgKGV2YWwuYzo5NzgpCi0gRnVuY3Rpb24g bWVtc2V0IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgVUlOVDog KHR5cGUpLT5sZW5ndGgKKyBGdW5jdGlvbiBtZW1zZXQgZXhwZWN0cyBhcmcg MyB0byBiZSBzaXplX3QgZ2V0cyBVTE9OR0VTVDogKHR5cGUpLT5sZW5ndGgK IExPQyBldmFsLmM6OTk4IChldmFsLmM6OTk3KQotIEZ1bmN0aW9uIG1lbXNl dCBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIFVJTlQ6IChleHBl Y3RfdHlwZSktPmxlbmd0aAorIEZ1bmN0aW9uIG1lbXNldCBleHBlY3RzIGFy ZyAzIHRvIGJlIHNpemVfdCBnZXRzIFVMT05HRVNUOiAoZXhwZWN0X3R5cGUp LT5sZW5ndGgKIExPQyBldmFsLmM6MTAyOSAoZXZhbC5jOjEwMjgpCi0gRnVu Y3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMg aW50OiBlbGVtZW50X3NpemUKKyBGdW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBh cmcgMyB0byBiZSBzaXplX3QgZ2V0cyBMT05HRVNUOiBlbGVtZW50X3NpemUK IExPQyBldmFsLmM6MTA1MiAoZXZhbC5jOjEwNTEpCi0gRnVuY3Rpb24gbWVt c2V0IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgVUlOVDogKHR5 cGUpLT5sZW5ndGgKKyBGdW5jdGlvbiBtZW1zZXQgZXhwZWN0cyBhcmcgMyB0 byBiZSBzaXplX3QgZ2V0cyBVTE9OR0VTVDogKHR5cGUpLT5sZW5ndGgKIExP QyBmaW5kY21kLmM6MTgyCi0gT3BlcmFuZHMgb2YgPiBoYXZlIGluY29tcGF0 aWJsZSB0eXBlcyAoaW50LCBzaXplX3QpOiAodmFsX2J5dGVzKSA+IChzaXpl b2YoaW50NjRfdCkpCisgT3BlcmFuZHMgb2YgPiBoYXZlIGluY29tcGF0aWJs ZSB0eXBlcyAoTE9OR0VTVCwgc2l6ZV90KTogKHZhbF9ieXRlcykgPiAoc2l6 ZW9mKGludDY0X3QpKQogTE9DIGZpbmRjbWQuYzoxODIKLSBDb25kaXRpb25h bCBjbGF1c2VzIGFyZSBub3Qgb2Ygc2FtZSB0eXBlOiAodmFsX2J5dGVzKSAo aW50KSwgKHNpemVvZihpbnQ2NF90KSkgKHNpemVfdCkKKyBDb25kaXRpb25h bCBjbGF1c2VzIGFyZSBub3Qgb2Ygc2FtZSB0eXBlOiAodmFsX2J5dGVzKSAo TE9OR0VTVCksIChzaXplb2YoaW50NjRfdCkpIChzaXplX3QpCiBMT0MgZmlu ZGNtZC5jOjIxNgotIEZ1bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRv IGJlIHNpemVfdCBnZXRzIGludDogdmFsX2J5dGVzCisgRnVuY3Rpb24gbWVt Y3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgTE9OR0VTVDog dmFsX2J5dGVzCiBmaW5kdmFyLmM6IChpbiBmdW5jdGlvbiBzaWduZWRfcG9p bnRlcl90b19hZGRyZXNzKQogZmluZHZhci5jOiAoaW4gZnVuY3Rpb24gYWRk cmVzc190b19zaWduZWRfcG9pbnRlcikKIExPQyBmaW5kdmFyLmM6NDY4Cisg RnVuY3Rpb24gc3RvcmVfc2lnbmVkX2ludGVnZXIgZXhwZWN0cyBhcmcgMiB0 byBiZSBpbnQgZ2V0cyBMT05HRVNUOiBsZW4KK0xPQyBmaW5kdmFyLmM6NDY4 CiAgTmV3IGZyZXNoIHN0b3JhZ2UgKHR5cGUgZ2RiX2J5dGUgKikgcGFzc2Vk IGFzIGltcGxpY2l0bHkgdGVtcCAobm90IHJlbGVhc2VkKTogdmFsdWVfY29u dGVudHNfcmF3KHYpCiBMT0MgZmluZHZhci5jOjQ5MwotIEZ1bmN0aW9uIG1l bWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIGludDogbGVu CisgRnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90 IGdldHMgTE9OR0VTVDogbGVuCiBMT0MgYnJlYWtwb2ludC5oOjgyOQogIEZp bGUgc3RhdGljIGZ1bmN0aW9uIFZFQ19icmVha3BvaW50X3Bfc2FmZV9pbnNl cnQgZGVjbGFyZWQgYnV0IG5vdCB1c2VkCiAgICBMT0MgYnJlYWtwb2ludC5o OjgyOQogIERlZmluaXRpb24gb2YgVkVDX2JyZWFrcG9pbnRfcF9zYWZlX2lu c2VydAogTE9DIGZydi10ZGVwLmM6MTEyOSAoZnJ2LXRkZXAuYzoxMTM1KQor IEZ1bmN0aW9uIHN0b3JlX3Vuc2lnbmVkX2ludGVnZXIgZXhwZWN0cyBhcmcg MiB0byBiZSBpbnQgZ2V0cyBMT05HRVNUOiBsZW4KK0xPQyBmcnYtdGRlcC5j OjExMzUKICBQYXNzZWQgc3RvcmFnZSAmcmVndmFsIG5vdCBjb21wbGV0ZWx5 IGRlZmluZWQ6IHJlZ2NhY2hlX2Nvb2tlZF9yZWFkX3Vuc2lnbmVkICguLi4s ICZyZWd2YWwpCiBMT0MgZnJ2LXRkZXAuYzoxMTQyCi0gTmV3IGZyZXNoIHN0 b3JhZ2UgKHR5cGUgY2hhciAqKSBwYXNzZWQgYXMgaW1wbGljaXRseSB0ZW1w IChub3QgcmVsZWFzZWQpOiBnZXR0ZXh0KCJJbGxlZ2FsIHJldHVybiB2YWx1 ZSBsZW5ndGg6ICVkIikKKyBOZXcgZnJlc2ggc3RvcmFnZSAodHlwZSBjaGFy ICopIHBhc3NlZCBhcyBpbXBsaWNpdGx5IHRlbXAgKG5vdCByZWxlYXNlZCk6 IGdldHRleHQoIklsbGVnYWwgcmV0dXJuIHZhbHVlIGxlbmd0aDogJXMiKQog TE9DIGZydi10ZGVwLmM6MTI4MiAoZnJ2LXRkZXAuYzoxMjg2KQorIFZhcmlh YmxlIHBhcnRpYWxfbGVuIGluaXRpYWxpemVkIHRvIHR5cGUgTE9OR0VTVCwg ZXhwZWN0cyBpbnQ6IChsZW4gPCA0ID8gbGVuIDogNCkKK0xPQyBmcnYtdGRl cC5jOjEyODYKICBGdW5jdGlvbiBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIg ZXhwZWN0cyBhcmcgMSB0byBiZSBnZGJfYnl0ZSAqIGdldHMgY2hhciAqOiB2 YWwKIExPQyBmcnYtdGRlcC5jOjEzMzcKLSBGdW5jdGlvbiBtZW1jcHkgZXhw ZWN0cyBhcmcgMyB0byBiZSBzaXplX3QgZ2V0cyBpbnQ6IGxlbgorIEZ1bmN0 aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIExP TkdFU1Q6IGxlbgogTE9DIGZydi10ZGVwLmM6MTM0NwotIE5ldyBmcmVzaCBz dG9yYWdlICh0eXBlIGNoYXIgKikgcGFzc2VkIGFzIGltcGxpY2l0bHkgdGVt cCAobm90IHJlbGVhc2VkKTogZ2V0dGV4dCgiRG9uJ3Qga25vdyBob3cgdG8g cmV0dXJuIGEgJWQtYnl0ZSB2YWx1ZS4iKQorIE5ldyBmcmVzaCBzdG9yYWdl ICh0eXBlIGNoYXIgKikgcGFzc2VkIGFzIGltcGxpY2l0bHkgdGVtcCAobm90 IHJlbGVhc2VkKTogZ2V0dGV4dCgiRG9uJ3Qga25vdyBob3cgdG8gcmV0dXJu IGEgJXMtYnl0ZSB2YWx1ZS4iKQogZnJ2LXRkZXAuYzogKGluIGZ1bmN0aW9u IGZydl9yZXR1cm5fdmFsdWUpCiBMT0MgbWVtcmFuZ2UuaDozOAogIEZpbGUg c3RhdGljIGZ1bmN0aW9uIFZFQ19tZW1fcmFuZ2Vfc19zYWZlX2luc2VydCBk ZWNsYXJlZCBidXQgbm90IHVzZWQKICAgIExPQyBtZW1yYW5nZS5oOjM4CiAg RGVmaW5pdGlvbiBvZiBWRUNfbWVtX3JhbmdlX3Nfc2FmZV9pbnNlcnQKIExP QyBmLXZhbHByaW50LmM6ODUKICBSZXR1cm4gdmFsdWUgdHlwZSBMT05HRVNU IGRvZXMgbm90IG1hdGNoIGRlY2xhcmVkIHR5cGUgaW50OiAoKCgoKCh0eXBl KSktPm1haW5fdHlwZS0+Zmxkc19ibmRzLmZpZWxkc1swXSkudHlwZSkpLT5t YWluX3R5cGUtPmZsZHNfYm5kcy5ib3VuZHMtPmhpZ2gpCi1mLXZhbHByaW50 LmM6IChpbiBmdW5jdGlvbiBmNzdfZ2V0X2R5bmFtaWNfbGVuZ3RoX29mX2Fn Z3JlZ2F0ZSkKLUxPQyBmLXZhbHByaW50LmM6MTE1Ci0gQXNzaWdubWVudCBv ZiBpbnQgdG8gVUlOVDogKHR5cGUpLT5sZW5ndGggPSAodXBwZXJfYm91bmQg LSBsb3dlcl9ib3VuZCArIDEpICogKGNoZWNrX3R5cGVkZWYoKHR5cGUpLT5t YWluX3R5cGUtPnRhcmdldF90eXBlKSktPmxlbmd0aAogZi12YWxwcmludC5j OiAoaW4gZnVuY3Rpb24gZjc3X2NyZWF0ZV9hcnJheXByaW50X29mZnNldF90 YmwpCiBMT0MgZi12YWxwcmludC5jOjE3OAorIE9wZXJhbmRzIG9mIDwgaGF2 ZSBpbmNvbXBhdGlibGUgdHlwZXMgKGludCwgTE9OR0VTVCk6IGkgPCAoZjc3 X2FycmF5X29mZnNldF90YmxbbnNzXVsxXSkKK0xPQyBmLXZhbHByaW50LmM6 MTc4CiAgT3BlcmFuZHMgb2YgPCBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAo aW50LCBVSU5UKTogKCplbHRzKSA8IG9wdGlvbnMtPnByaW50X21heAogTE9D IGYtdmFscHJpbnQuYzoxODkgKGYtdmFscHJpbnQuYzoxOTQpCisgT3BlcmFu ZHMgb2YgPCBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoaW50LCBMT05HRVNU KTogaSA8IChmNzdfYXJyYXlfb2Zmc2V0X3RibFtuc3NdWzFdKQorTE9DIGYt dmFscHJpbnQuYzoxOTQKKyBPcGVyYW5kcyBvZiA8IGhhdmUgaW5jb21wYXRp YmxlIHR5cGVzIChpbnQsIExPTkdFU1QpOiBpIDwgKGY3N19hcnJheV9vZmZz ZXRfdGJsW25zc11bMV0pCitMT0MgZi12YWxwcmludC5jOjE5NAogIE9wZXJh bmRzIG9mIDwgaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKGludCwgVUlOVCk6 ICgqZWx0cykgPCBvcHRpb25zLT5wcmludF9tYXgKIExPQyBmLXZhbHByaW50 LmM6MjAzIChmLXZhbHByaW50LmM6MjA2KQorIE9wZXJhbmRzIG9mICE9IGhh dmUgaW5jb21wYXRpYmxlIHR5cGVzIChpbnQsIExPTkdFU1QpOiBpICE9ICgo Zjc3X2FycmF5X29mZnNldF90YmxbbnNzXVsxXSkgLSAxKQorTE9DIGYtdmFs cHJpbnQuYzoyMDYKICBPcGVyYW5kcyBvZiA9PSBoYXZlIGluY29tcGF0aWJs ZSB0eXBlcyAoaW50LCBVSU5UKTogKmVsdHMgPT0gb3B0aW9ucy0+cHJpbnRf bWF4IC0gMQorTE9DIGYtdmFscHJpbnQuYzoyMDcKKyBPcGVyYW5kcyBvZiAh PSBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoaW50LCBMT05HRVNUKTogaSAh PSAoKGY3N19hcnJheV9vZmZzZXRfdGJsW25zc11bMV0pIC0gMSkKIGYtdmFs cHJpbnQuYzogKGluIGZ1bmN0aW9uIGY3N19wcmludF9hcnJheSkKIExPQyBt ZW1yYW5nZS5oOjM4CiAgRmlsZSBzdGF0aWMgZnVuY3Rpb24gVkVDX21lbV9y YW5nZV9zX3NhZmVfaW5zZXJ0IGRlY2xhcmVkIGJ1dCBub3QgdXNlZAogICAg TE9DIG1lbXJhbmdlLmg6MzgKICBEZWZpbml0aW9uIG9mIFZFQ19tZW1fcmFu Z2Vfc19zYWZlX2luc2VydAogTE9DIGdkYnR5cGVzLmM6ODA0Ci0gT3BlcmFu ZHMgb2YgPiBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoVUlOVCwgc2l6ZV90 KTogKHR5cGUpLT5sZW5ndGggPiBzaXplb2YoTE9OR0VTVCkKKyBPcGVyYW5k cyBvZiA+IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChVTE9OR0VTVCwgc2l6 ZV90KTogKHR5cGUpLT5sZW5ndGggPiBzaXplb2YoTE9OR0VTVCkKIExPQyBn ZGJ0eXBlcy5jOjkwNiAoZ2RidHlwZXMuYzo5MDIpCi0gQXNzaWdubWVudCBv ZiBMT05HRVNUIHRvIFVJTlQ6IChyZXN1bHRfdHlwZSktPmxlbmd0aCA9IChl bGVtZW50X3R5cGUpLT5sZW5ndGggKiAoaGlnaF9ib3VuZCAtIGxvd19ib3Vu ZCArIDEpCi1MT0MgZ2RidHlwZXMuYzo5MDYKICBUZXN0IGV4cHJlc3Npb24g Zm9yIGNvbmRpdGlvbmFsIG5vdCBib29sZWFuLCB0eXBlIFVJTlQ6ICgocmVz dWx0X3R5cGUpLT5tYWluX3R5cGUtPmZsYWdfb2JqZmlsZV9vd25lZCkKIGdk YnR5cGVzLmM6IChpbiBmdW5jdGlvbiBzbWFzaF90b19tZXRob2RwdHJfdHlw ZSkKIExPQyBnZGJ0eXBlcy5jOjE2NTMgKGdkYnR5cGVzLmM6MTY0NSkKLSBB c3NpZ25tZW50IG9mIFVMT05HRVNUIHRvIFVJTlQ6ICh0eXBlKS0+bGVuZ3Ro ID0gbGVuCi1MT0MgZ2RidHlwZXMuYzoxNjUzCiAgRnJlc2ggc3RvcmFnZSB0 YXJnZXRfdHlwZSBub3QgcmVsZWFzZWQgYmVmb3JlIHNjb3BlIGV4aXQKICAg IExPQyBnZGJ0eXBlcy5jOjE2MDMKICBGcmVzaCBzdG9yYWdlIHRhcmdldF90 eXBlIGNyZWF0ZWQKIExPQyBnbnUtdjItYWJpLmM6MTY4IChnbnUtdjItYWJp LmM6MTY1KQotIEZ1bmN0aW9uIHNldF92YWx1ZV9vZmZzZXQgZXhwZWN0cyBh cmcgMiB0byBiZSBpbnQgZ2V0cyBMT05HRVNUOiB2YWx1ZV9vZmZzZXQoYXJn MSkgKyB2YWx1ZV9hc19sb25nKHZhbHVlX2ZpZWxkKGVudHJ5LCAwKSkKLUxP QyBnbnUtdjItYWJpLmM6MTY4CiAgT3BlcmFuZCBvZiAhIGlzIG5vbi1ib29s ZWFuIChpbnQpOiAhdmFsdWVfbGF6eShhcmcxKQogTE9DIGdudS12Mi1hYmku YzoyNzIgKGdudS12Mi1hYmkuYzoyNzEpCi0gTGVmdCBvcGVyYW5kIG9mICYm IGlzIG5vbi1ib29sZWFuIChpbnQgKik6IHRvcCAmJiAoKCp0b3ApID4gMCkK KyBMZWZ0IG9wZXJhbmQgb2YgJiYgaXMgbm9uLWJvb2xlYW4gKExPTkdFU1Qg Kik6IHRvcCAmJiAoKCp0b3ApID4gMCkKIExPQyBnbnUtdjItYWJpLmM6Mzgy IChnbnUtdjItYWJpLmM6MzgxKQotIFJldHVybiB2YWx1ZSB0eXBlIFVMT05H RVNUIGRvZXMgbm90IG1hdGNoIGRlY2xhcmVkIHR5cGUgaW50OiBhZGRyIC0g KExPTkdFU1QpYWRkcmVzcyArIGVtYmVkZGVkX29mZnNldAorIFJldHVybiB2 YWx1ZSB0eXBlIFVMT05HRVNUIGRvZXMgbm90IG1hdGNoIGRlY2xhcmVkIHR5 cGUgTE9OR0VTVDogYWRkciAtIChMT05HRVNUKWFkZHJlc3MgKyBlbWJlZGRl ZF9vZmZzZXQKIExPQyBnbnUtdjItYWJpLmM6Mzk1IChnbnUtdjItYWJpLmM6 Mzk0KQotIFRlc3QgZXhwcmVzc2lvbiBmb3IgaWYgbm90IGJvb2xlYW4sIHR5 cGUgaW50OiBib2Zmc2V0CisgVGVzdCBleHByZXNzaW9uIGZvciBpZiBub3Qg Ym9vbGVhbiwgdHlwZSBMT05HRVNUOiBib2Zmc2V0CiBMT0MgZ2RiX3ZlY3Mu aDo0NQogIEZpbGUgc3RhdGljIGZ1bmN0aW9uIFZFQ19wcm9iZV9wX3NhZmVf aW5zZXJ0IGRlY2xhcmVkIGJ1dCBub3QgdXNlZAogICAgTE9DIGdkYl92ZWNz Lmg6NDUKICBEZWZpbml0aW9uIG9mIFZFQ19wcm9iZV9wX3NhZmVfaW5zZXJ0 CiBMT0MgZ251LXYzLWFiaS5jOjM0NiAoZ251LXYzLWFiaS5jOjM0NSkKLSBB c3NpZ25tZW50IG9mIExPTkdFU1QgdG8gaW50OiAqdG9wX3AgPSAtb2Zmc2V0 X3RvX3RvcAotTE9DIGdudS12My1hYmkuYzozNDYKICBGcmVzaCBzdG9yYWdl IGdkYmFyY2ggbm90IHJlbGVhc2VkIGJlZm9yZSByZXR1cm4KICAgIExPQyBn bnUtdjMtYWJpLmM6Mjk1CiAgRnJlc2ggc3RvcmFnZSBnZGJhcmNoIGNyZWF0 ZWQKIExPQyBnbnUtdjMtYWJpLmM6NDU2Ci0gUmV0dXJuIHZhbHVlIHR5cGUg TE9OR0VTVCBkb2VzIG5vdCBtYXRjaCBkZWNsYXJlZCB0eXBlIGludDogYmFz ZV9vZmZzZXQKLUxPQyBnbnUtdjMtYWJpLmM6NDU2CiAgRnJlc2ggc3RvcmFn ZSBnZGJhcmNoIG5vdCByZWxlYXNlZCBiZWZvcmUgcmV0dXJuCiAgICBMT0Mg Z251LXYzLWFiaS5jOjQyOQogIEZyZXNoIHN0b3JhZ2UgZ2RiYXJjaCBjcmVh dGVkCiBMT0MgZ251LXYzLWFiaS5jOjY0NQotIFJldHVybiB2YWx1ZSB0eXBl IFVJTlQgZG9lcyBub3QgbWF0Y2ggZGVjbGFyZWQgdHlwZSBpbnQ6IDIgKiAo YnVpbHRpbl90eXBlKGdkYmFyY2gpLT5idWlsdGluX2RhdGFfcHRyKS0+bGVu Z3RoCisgUmV0dXJuIHZhbHVlIHR5cGUgVUxPTkdFU1QgZG9lcyBub3QgbWF0 Y2ggZGVjbGFyZWQgdHlwZSBpbnQ6IDIgKiAoYnVpbHRpbl90eXBlKGdkYmFy Y2gpLT5idWlsdGluX2RhdGFfcHRyKS0+bGVuZ3RoCiBMT0MgZ251LXYzLWFi aS5jOjc0OQogIEZpbGUgc3RhdGljIGZ1bmN0aW9uIFZFQ192YWx1ZV9hbmRf dm9mZnNldF9wX3NhZmVfaW5zZXJ0IGRlY2xhcmVkIGJ1dCBub3QgdXNlZAog ICAgTE9DIGdudS12My1hYmkuYzo3NDkKICBEZWZpbml0aW9uIG9mIFZFQ192 YWx1ZV9hbmRfdm9mZnNldF9wX3NhZmVfaW5zZXJ0CiBMT0MgZ28tdmFscHJp bnQuYzoxMDcgKGdvLXZhbHByaW50LmM6MTA5KQorIEZ1bmN0aW9uIHByaW50 X2dvX3N0cmluZyBleHBlY3RzIGFyZyAzIHRvIGJlIGludCBnZXRzIExPTkdF U1Q6IGVtYmVkZGVkX29mZnNldAorTE9DIGdvLXZhbHByaW50LmM6MTA5CiAg RnJlc2ggc3RvcmFnZSB0eXBlIG5vdCByZWxlYXNlZCBiZWZvcmUgcmV0dXJu CiAgICBMT0MgZ28tdmFscHJpbnQuYzo5NAogIEZyZXNoIHN0b3JhZ2UgdHlw ZSBjcmVhdGVkCiBMT0MgbWVtcmFuZ2UuaDozOAogIEZpbGUgc3RhdGljIGZ1 bmN0aW9uIFZFQ19tZW1fcmFuZ2Vfc19zYWZlX2luc2VydCBkZWNsYXJlZCBi dXQgbm90IHVzZWQKICAgIExPQyBtZW1yYW5nZS5oOjM4CiAgRGVmaW5pdGlv biBvZiBWRUNfbWVtX3JhbmdlX3Nfc2FmZV9pbnNlcnQKIExPQyBoODMwMC10 ZGVwLmM6Njc1Ci0gRnVuY3Rpb24gQ19hbGxvY2EgZXhwZWN0cyBhcmcgMSB0 byBiZSBzaXplX3QgZ2V0cyBpbnQ6IHBhZGRlZF9sZW4KKyBGdW5jdGlvbiBD X2FsbG9jYSBleHBlY3RzIGFyZyAxIHRvIGJlIHNpemVfdCBnZXRzIExPTkdF U1Q6IHBhZGRlZF9sZW4KIExPQyBoODMwMC10ZGVwLmM6Njc3Ci0gRnVuY3Rp b24gbWVtc2V0IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgaW50 OiBwYWRkZWRfbGVuCisgRnVuY3Rpb24gbWVtc2V0IGV4cGVjdHMgYXJnIDMg dG8gYmUgc2l6ZV90IGdldHMgTE9OR0VTVDogcGFkZGVkX2xlbgogTE9DIGg4 MzAwLXRkZXAuYzo2NzkKLSBGdW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcg MyB0byBiZSBzaXplX3QgZ2V0cyBpbnQ6IGxlbgorIEZ1bmN0aW9uIG1lbWNw eSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIExPTkdFU1Q6IGxl bgogTE9DIGg4MzAwLXRkZXAuYzo2ODYKLSBSaWdodCBvcGVyYW5kIG9mICYm IGlzIG5vbi1ib29sZWFuIChpbnQpOiBsZW4gPiB3b3Jkc2l6ZSAmJiBsZW4g JSB3b3Jkc2l6ZQorIFJpZ2h0IG9wZXJhbmQgb2YgJiYgaXMgbm9uLWJvb2xl YW4gKExPTkdFU1QpOiBsZW4gPiB3b3Jkc2l6ZSAmJiBsZW4gJSB3b3Jkc2l6 ZQogTE9DIGg4MzAwLXRkZXAuYzo2ODkKLSBGdW5jdGlvbiB3cml0ZV9tZW1v cnkgZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdldHMgaW50OiBwYWRk ZWRfbGVuCisgRnVuY3Rpb24gd3JpdGVfbWVtb3J5IGV4cGVjdHMgYXJnIDMg dG8gYmUgc3NpemVfdCBnZXRzIExPTkdFU1Q6IHBhZGRlZF9sZW4KIExPQyBo ODMwMC10ZGVwLmM6NzE2Ci0gRnVuY3Rpb24gd3JpdGVfbWVtb3J5IGV4cGVj dHMgYXJnIDMgdG8gYmUgc3NpemVfdCBnZXRzIGludDogcGFkZGVkX2xlbgor IEZ1bmN0aW9uIHdyaXRlX21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJlIHNz aXplX3QgZ2V0cyBMT05HRVNUOiBwYWRkZWRfbGVuCiBMT0MgaDgzMDAtdGRl cC5jOjkyOAotIEZ1bmN0aW9uIHJlYWRfbWVtb3J5IGV4cGVjdHMgYXJnIDMg dG8gYmUgc3NpemVfdCBnZXRzIFVJTlQ6ICh0eXBlKS0+bGVuZ3RoCisgRnVu Y3Rpb24gcmVhZF9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90 IGdldHMgVUxPTkdFU1Q6ICh0eXBlKS0+bGVuZ3RoCiBMT0MgaHBwYS10ZGVw LmM6NzQwCi0gRnVuY3Rpb24gd3JpdGVfbWVtb3J5IGV4cGVjdHMgYXJnIDMg dG8gYmUgc3NpemVfdCBnZXRzIFVJTlQ6ICh0eXBlKS0+bGVuZ3RoCisgRnVu Y3Rpb24gd3JpdGVfbWVtb3J5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc3NpemVf dCBnZXRzIFVMT05HRVNUOiAodHlwZSktPmxlbmd0aAogTE9DIGhwcGEtdGRl cC5jOjc2NgotIEZ1bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRvIGJl IHNpemVfdCBnZXRzIFVJTlQ6ICh0eXBlKS0+bGVuZ3RoCisgRnVuY3Rpb24g bWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgVUxPTkdF U1Q6ICh0eXBlKS0+bGVuZ3RoCiBMT0MgaHBwYS10ZGVwLmM6MTAyNgorIEZ1 bmN0aW9uIHJlZ2NhY2hlX2Nvb2tlZF93cml0ZV9wYXJ0IGV4cGVjdHMgYXJn IDQgdG8gYmUgaW50IGdldHMgTE9OR0VTVDogbGVuCitMT0MgaHBwYS10ZGVw LmM6MTAyNgogIE5ldyBmcmVzaCBzdG9yYWdlICh0eXBlIGdkYl9ieXRlICop IHBhc3NlZCBhcyBpbXBsaWNpdGx5IHRlbXAgKG5vdCByZWxlYXNlZCk6IHZh bHVlX2NvbnRlbnRzKGFyZykKIExPQyBocHBhLXRkZXAuYzoxMDYyCi0gRnVu Y3Rpb24gd3JpdGVfbWVtb3J5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc3NpemVf dCBnZXRzIGludDogbGVuCisgRnVuY3Rpb24gd3JpdGVfbWVtb3J5IGV4cGVj dHMgYXJnIDMgdG8gYmUgc3NpemVfdCBnZXRzIExPTkdFU1Q6IGxlbgorTE9D IGhwcGEtdGRlcC5jOjEwNjgKKyBGdW5jdGlvbiByZWdjYWNoZV9jb29rZWRf d3JpdGVfcGFydCBleHBlY3RzIGFyZyA0IHRvIGJlIGludCBnZXRzIExPTkdF U1Q6ICgobGVuKSA8ICg4KSA/IChsZW4pIDogKDgpKQogTE9DIGhwcGEtdGRl cC5jOjExNDEKLSBPcGVyYW5kcyBvZiA8IGhhdmUgaW5jb21wYXRpYmxlIHR5 cGVzIChpbnQsIFVJTlQpOiBiIDwgKHR5cGUpLT5sZW5ndGgKKyBPcGVyYW5k cyBvZiA8IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChpbnQsIFVMT05HRVNU KTogYiA8ICh0eXBlKS0+bGVuZ3RoCiBMT0MgaHBwYS10ZGVwLmM6MTE4MSAo aHBwYS10ZGVwLmM6MTE4MykKKyBBc3NpZ25tZW50IG9mIExPTkdFU1QgdG8g aW50OiBvZmZzZXQgPSA4IC0gbGVuCitMT0MgaHBwYS10ZGVwLmM6MTE4Mwog IFRlc3QgZXhwcmVzc2lvbiBmb3IgaWYgbm90IGJvb2xlYW4sIHR5cGUgaW50 OiBocHBhNjRfZmxvYXRpbmdfcCh0eXBlKQogTE9DIGhwcGEtdGRlcC5jOjEy MDMgKGhwcGEtdGRlcC5jOjEyMjQpCisgQXNzaWdubWVudCBvZiBMT05HRVNU IHRvIGludDogb2Zmc2V0ID0gOCAtIGxlbgorTE9DIGhwcGEtdGRlcC5jOjEy MjUKKyBGdW5jdGlvbiByZWdjYWNoZV9jb29rZWRfcmVhZF9wYXJ0IGV4cGVj dHMgYXJnIDQgdG8gYmUgaW50IGdldHMgTE9OR0VTVDogKChsZW4pIDwgKDgp ID8gKGxlbikgOiAoOCkpCitMT0MgaHBwYS10ZGVwLmM6MTIyNAogIFJldHVy biB2YWx1ZSAodHlwZSBlbnVtIHJlZ2lzdGVyX3N0YXR1cykgaWdub3JlZDog cmVnY2FjaGVfY29va2VkXy4uLgogTE9DIGhwcGEtdGRlcC5jOjEyMzcgKGhw cGEtdGRlcC5jOjExNTYpCisgRnVuY3Rpb24gcmVnY2FjaGVfY29va2VkX3dy aXRlX3BhcnQgZXhwZWN0cyBhcmcgNCB0byBiZSBpbnQgZ2V0cyBMT05HRVNU OiAoKGxlbikgPCAoOCkgPyAobGVuKSA6ICg4KSkKK0xPQyBocHBhLXRkZXAu YzoxMTU2CiAgUGFyYW1ldGVyIGdkYmFyY2ggbm90IHVzZWQKIExPQyBocHBh LXRkZXAuYzoyNzc5CiAgRmlsZSBzdGF0aWMgdmFyaWFibGUgaHBwYV9zaWd0 cmFtcCBkZWNsYXJlZCBidXQgbm90IHVzZWQKIExPQyBpMzg2LWRhcndpbi10 ZGVwLmM6MTMyCi0gUmV0dXJuIHZhbHVlIHR5cGUgVUlOVCBkb2VzIG5vdCBt YXRjaCBkZWNsYXJlZCB0eXBlIGludDogKHR5cGUpLT5sZW5ndGgKKyBSZXR1 cm4gdmFsdWUgdHlwZSBVTE9OR0VTVCBkb2VzIG5vdCBtYXRjaCBkZWNsYXJl ZCB0eXBlIExPTkdFU1Q6ICh0eXBlKS0+bGVuZ3RoCitMT0MgaTM4Ni1kYXJ3 aW4tdGRlcC5jOjIwMgorIEZ1bmN0aW9uIGFsaWduX3VwIGV4cGVjdHMgYXJn IDEgdG8gYmUgVUxPTkdFU1QgZ2V0cyBMT05HRVNUOiBhcmdzX3NwYWNlCiBM T0MgaTM4Ni1kYXJ3aW4tdGRlcC5jOjIwMgotIEZ1bmN0aW9uIGFsaWduX3Vw IGV4cGVjdHMgYXJnIDEgdG8gYmUgVUxPTkdFU1QgZ2V0cyBpbnQ6IGFyZ3Nf c3BhY2UKKyBGdW5jdGlvbiBhbGlnbl91cCBleHBlY3RzIGFyZyAyIHRvIGJl IGludCBnZXRzIExPTkdFU1Q6IGFsaWduCiBMT0MgaTM4Ni1kYXJ3aW4tdGRl cC5jOjIwNQotIEZ1bmN0aW9uIHdyaXRlX21lbW9yeSBleHBlY3RzIGFyZyAz IHRvIGJlIHNzaXplX3QgZ2V0cyBpbnQ6IGxlbgorIEZ1bmN0aW9uIHdyaXRl X21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJlIHNzaXplX3QgZ2V0cyBMT05H RVNUOiBsZW4KIExPQyAuLi9iZmQvbGliYmZkLmg6NzY4CiAgKioqIEludGVy bmFsIEJ1ZyBhdCB1c3ltdGFiLmM6OTMwOiB1c3ltdGFiX3N1cEVudHJ5QXV4 OiBpbmNvbnNpc3RlbnQgc3RhdGUgKGxleGxldmVsID0gMCwgbW9kRnVuY3Rp b24gPSB0cnVlKSBhZGRpbmc6ID8gX19QUkVUVFlfRlVOQ1RJT05fXyBbZXJy bm86IDI1XQogICAgICAqKiogUGxlYXNlIHJlcG9ydCBidWcgdG8gc3BsaW50 LWJ1Z0BzcGxpbnQub3JnICoqKgogICAgICAgIChhdHRlbXB0aW5nIHRvIGNv bnRpbnVlLCByZXN1bHRzIG1heSBiZSBpbmNvcnJlY3QpCiAgICAxIGludGVy bmFsIGJ1Z3MgcmVwb3J0ZWQKIExPQyBpMzg2LW5hdC5jOjMyNQotIE9wZXJh bmRzIG9mIHx8IGFyZSBub24tYm9vbGVhbnMgKENPUkVfQUREUiwgaW50KTog YWRkciB8fCBsZW4KKyBPcGVyYW5kcyBvZiB8fCBhcmUgbm9uLWJvb2xlYW5z IChDT1JFX0FERFIsIExPTkdFU1QpOiBhZGRyIHx8IGxlbgogaTM4Ni1uYXQu YzogKGluIGZ1bmN0aW9uIGkzODZfbGVuZ3RoX2FuZF9yd19iaXRzKQogTE9D IGkzODYtbmF0LmM6NTMxIChpMzg2LW5hdC5jOjU1MykKKyBDb25kaXRpb25h bCBjbGF1c2VzIGFyZSBub3Qgb2Ygc2FtZSB0eXBlOiAobWF4X3dwX2xlbiAt IDEpIChpbnQpLCBsZW4gLSAxIChMT05HRVNUKQorTE9DIGkzODYtbmF0LmM6 NTUzCiAgTmV3IGZyZXNoIHN0b3JhZ2UgKHR5cGUgY2hhciAqKSBwYXNzZWQg YXMgaW1wbGljaXRseSB0ZW1wIChub3QgcmVsZWFzZWQpOiBnZXR0ZXh0KCJJ bnZhbGlkIHZhbHVlICVkIG9mIG9wZXJhdGlvbiBpbiBpMzg2X2hhbmRsZV9u b25hbGlnbmVkX3dhdGNocG9pbnQuXG4iKQogTE9DIGkzODYtbmF0LmM6NjEz IChpMzg2LW5hdC5jOjYyMikKKyBGdW5jdGlvbiBpMzg2X2xlbmd0aF9hbmRf cndfYml0cyBleHBlY3RzIGFyZyAxIHRvIGJlIGludCBnZXRzIExPTkdFU1Q6 IGxlbgorTE9DIGkzODYtbmF0LmM6NjIyCiAgVGVzdCBleHByZXNzaW9uIGZv ciBpZiBub3QgYm9vbGVhbiwgdHlwZSBpbnQ6IG1haW50X3Nob3dfZHIKIExP QyBpMzg2LW5hdC5jOjY0NyAoaTM4Ni1uYXQuYzo2NTYpCisgRnVuY3Rpb24g aTM4Nl9sZW5ndGhfYW5kX3J3X2JpdHMgZXhwZWN0cyBhcmcgMSB0byBiZSBp bnQgZ2V0cyBMT05HRVNUOiBsZW4KK0xPQyBpMzg2LW5hdC5jOjY1NgogIFRl c3QgZXhwcmVzc2lvbiBmb3IgaWYgbm90IGJvb2xlYW4sIHR5cGUgaW50OiBt YWludF9zaG93X2RyCiBMT0MgcHJvZ3NwYWNlLmg6MzcKICBGaWxlIHN0YXRp YyBmdW5jdGlvbiBWRUNfc29fbGlzdF9wdHJfc2FmZV9pbnNlcnQgZGVjbGFy ZWQgYnV0IG5vdCB1c2VkCiAgICBMT0MgcHJvZ3NwYWNlLmg6MzcKICBEZWZp bml0aW9uIG9mIFZFQ19zb19saXN0X3B0cl9zYWZlX2luc2VydAogTE9DIGkz ODYtdGRlcC5jOjIzNzkKLSBGdW5jdGlvbiB3cml0ZV9tZW1vcnkgZXhwZWN0 cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdldHMgaW50OiBsZW4KKyBGdW5jdGlv biB3cml0ZV9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdl dHMgTE9OR0VTVDogbGVuCiBMT0MgaTM4Ni10ZGVwLmM6MjQ1NAotIEZ1bmN0 aW9uIG1lbXNldCBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIGlu dDogbGVuCisgRnVuY3Rpb24gbWVtc2V0IGV4cGVjdHMgYXJnIDMgdG8gYmUg c2l6ZV90IGdldHMgTE9OR0VTVDogbGVuCiBMT0MgaTM4Ni10ZGVwLmM6MjQ3 MwotIEZ1bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVf dCBnZXRzIGludDogbGVuCisgRnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJn IDMgdG8gYmUgc2l6ZV90IGdldHMgTE9OR0VTVDogbGVuCiBMT0MgaTM4Ni10 ZGVwLmM6MjQ4MAotIEZ1bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRv IGJlIHNpemVfdCBnZXRzIGludDogbGVuIC0gbG93X3NpemUKKyBGdW5jdGlv biBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXplX3QgZ2V0cyBMT05H RVNUOiBsZW4gLSBsb3dfc2l6ZQogTE9DIGkzODYtdGRlcC5jOjI0ODQKLSBO ZXcgZnJlc2ggc3RvcmFnZSAodHlwZSBjaGFyICopIHBhc3NlZCBhcyBpbXBs aWNpdGx5IHRlbXAgKG5vdCByZWxlYXNlZCk6IGdldHRleHQoIkNhbm5vdCBl eHRyYWN0IHJldHVybiB2YWx1ZSBvZiAlZCBieXRlcyBsb25nLiIpCisgTmV3 IGZyZXNoIHN0b3JhZ2UgKHR5cGUgY2hhciAqKSBwYXNzZWQgYXMgaW1wbGlj aXRseSB0ZW1wIChub3QgcmVsZWFzZWQpOiBnZXR0ZXh0KCJDYW5ub3QgZXh0 cmFjdCByZXR1cm4gdmFsdWUgb2YgJXMgYnl0ZXMgbG9uZy4iKQogTE9DIGkz ODYtdGRlcC5jOjI1NDAgKGkzODYtdGRlcC5jOjI1NDkpCi0gTmV3IGZyZXNo IHN0b3JhZ2UgKHR5cGUgY2hhciAqKSBwYXNzZWQgYXMgaW1wbGljaXRseSB0 ZW1wIChub3QgcmVsZWFzZWQpOiBnZXR0ZXh0KCJDYW5ub3Qgc3RvcmUgcmV0 dXJuIHZhbHVlIG9mICVkIGJ5dGVzIGxvbmcuIikKKyBGdW5jdGlvbiByZWdj YWNoZV9yYXdfd3JpdGVfcGFydCBleHBlY3RzIGFyZyA0IHRvIGJlIGludCBn ZXRzIExPTkdFU1Q6IGxlbgorTE9DIGkzODYtdGRlcC5jOjI1NDUKKyBGdW5j dGlvbiByZWdjYWNoZV9yYXdfd3JpdGVfcGFydCBleHBlY3RzIGFyZyA0IHRv IGJlIGludCBnZXRzIExPTkdFU1Q6IGxlbiAtIGxvd19zaXplCitMT0MgaTM4 Ni10ZGVwLmM6MjU0OQorIE5ldyBmcmVzaCBzdG9yYWdlICh0eXBlIGNoYXIg KikgcGFzc2VkIGFzIGltcGxpY2l0bHkgdGVtcCAobm90IHJlbGVhc2VkKTog Z2V0dGV4dCgiQ2Fubm90IHN0b3JlIHJldHVybiB2YWx1ZSBvZiAlcyBieXRl cyBsb25nLiIpCiBMT0MgaTM4Ni10ZGVwLmM6MjY0MyAoaTM4Ni10ZGVwLmM6 MjY0MikKLSBGdW5jdGlvbiByZWFkX21lbW9yeSBleHBlY3RzIGFyZyAzIHRv IGJlIHNzaXplX3QgZ2V0cyBVSU5UOiAodHlwZSktPmxlbmd0aAorIEZ1bmN0 aW9uIHJlYWRfbWVtb3J5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc3NpemVfdCBn ZXRzIFVMT05HRVNUOiAodHlwZSktPmxlbmd0aAogaTM4Ni10ZGVwLmM6IChp biBmdW5jdGlvbiBpMzg2X3JlZ2lzdGVyX3RvX3ZhbHVlKQogTE9DIG1lbXJh bmdlLmg6MzgKICBGaWxlIHN0YXRpYyBmdW5jdGlvbiBWRUNfbWVtX3Jhbmdl X3Nfc2FmZV9pbnNlcnQgZGVjbGFyZWQgYnV0IG5vdCB1c2VkCiAgICBMT0Mg bWVtcmFuZ2UuaDozOAogIERlZmluaXRpb24gb2YgVkVDX21lbV9yYW5nZV9z X3NhZmVfaW5zZXJ0CiBMT0MgaWE2NC10ZGVwLmM6Mzc0MCAoaWE2NC10ZGVw LmM6MzczOCkKLSBPcGVyYW5kcyBvZiAmJiBhcmUgbm9uLWJvb2xlYW4gKGlu dCk6IChuc2xvdHMgJiAxKSAmJiBzbG90X2FsaWdubWVudF9pc19uZXh0X2V2 ZW4odHlwZSkKKyBPcGVyYW5kcyBvZiAmJiBhcmUgbm9uLWJvb2xlYW5zIChM T05HRVNULCBpbnQpOiAobnNsb3RzICYgMSkgJiYgc2xvdF9hbGlnbm1lbnRf aXNfbmV4dF9ldmVuKHR5cGUpCiBMT0MgaWE2NC10ZGVwLmM6MzgyMiAoaWE2 NC10ZGVwLmM6MzgyMCkKKyBGdW5jdGlvbiBleHRyYWN0X3Vuc2lnbmVkX2lu dGVnZXIgZXhwZWN0cyBhcmcgMiB0byBiZSBpbnQgZ2V0cyBMT05HRVNUOiBs ZW4KK0xPQyBpYTY0LXRkZXAuYzozODIyCiAgTmV3IGZyZXNoIHN0b3JhZ2Ug KHR5cGUgZ2RiX2J5dGUgKikgcGFzc2VkIGFzIGltcGxpY2l0bHkgdGVtcCAo bm90IHJlbGVhc2VkKTogdmFsdWVfY29udGVudHMoYXJnKQogTE9DIGlhNjQt dGRlcC5jOjEzMQogIEZpbGUgc3RhdGljIHZhcmlhYmxlIGxyX3JlZ251bSBk ZWNsYXJlZCBidXQgbm90IHVzZWQKIExPQyBpbmZjYWxsLmM6MTAxOAotIEZ1 bmN0aW9uIHJlYWRfdmFsdWVfbWVtb3J5IGV4cGVjdHMgYXJnIDYgdG8gYmUg c2l6ZV90IGdldHMgVUlOVDogKHZhbHVlc190eXBlKS0+bGVuZ3RoCisgRnVu Y3Rpb24gcmVhZF92YWx1ZV9tZW1vcnkgZXhwZWN0cyBhcmcgNiB0byBiZSBz aXplX3QgZ2V0cyBVTE9OR0VTVDogKHZhbHVlc190eXBlKS0+bGVuZ3RoCiBM T0MgaW5mY2FsbC5jOjEwMzUKLSBGdW5jdGlvbiByZWFkX3ZhbHVlX21lbW9y eSBleHBlY3RzIGFyZyA2IHRvIGJlIHNpemVfdCBnZXRzIFVJTlQ6ICh2YWx1 ZXNfdHlwZSktPmxlbmd0aAorIEZ1bmN0aW9uIHJlYWRfdmFsdWVfbWVtb3J5 IGV4cGVjdHMgYXJnIDYgdG8gYmUgc2l6ZV90IGdldHMgVUxPTkdFU1Q6ICh2 YWx1ZXNfdHlwZSktPmxlbmd0aAogTE9DIGluZnJ1bi5jOjY1ODgKLSBPcGVy YW5kcyBvZiAhPSBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoTE9OR0VTVCwg VUlOVCk6IHRyYW5zZmVycmVkICE9ICh2YWx1ZV90eXBlKHYpKS0+bGVuZ3Ro CisgT3BlcmFuZHMgb2YgIT0gaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKExP TkdFU1QsIFVMT05HRVNUKTogdHJhbnNmZXJyZWQgIT0gKHZhbHVlX3R5cGUo dikpLT5sZW5ndGgKIExPQyBpbmZydW4uYzo2NjA5Ci0gT3BlcmFuZHMgb2Yg IT0gaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKExPTkdFU1QsIFVJTlQpOiB0 cmFuc2ZlcnJlZCAhPSAodmFsdWVfdHlwZShmcm9tdmFsKSktPmxlbmd0aAor IE9wZXJhbmRzIG9mICE9IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChMT05H RVNULCBVTE9OR0VTVCk6IHRyYW5zZmVycmVkICE9ICh2YWx1ZV90eXBlKGZy b212YWwpKS0+bGVuZ3RoCiBMT0MgaW5mcnVuLmM6NjY4MCAoaW5mcnVuLmM6 NjY3NykKLSBWYXJpYWJsZSBsZW4gaW5pdGlhbGl6ZWQgdG8gdHlwZSBVSU5U LCBleHBlY3RzIHNpemVfdDogKHR5cGUpLT5sZW5ndGgKKyBGdW5jdGlvbiB4 bWFsbG9jIGV4cGVjdHMgYXJnIDEgdG8gYmUgc2l6ZV90IGdldHMgVUxPTkdF U1Q6IGxlbgogTE9DIGluZnJ1bi5jOjY2ODMKLSBPcGVyYW5kcyBvZiA9PSBo YXZlIGluY29tcGF0aWJsZSB0eXBlcyAoTE9OR0VTVCwgc2l6ZV90KTogdGFy Z2V0X3JlYWQoJmN1cnJlbnRfdGFyZ2V0LCBUQVJHRVRfT0JKRUNUX1NJR05B TF9JTkZPLCBOVUxMLCBzaWdpbmZvX2RhdGEsIDAsIGxlbikgPT0gbGVuCisg T3BlcmFuZHMgb2YgPT0gaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKExPTkdF U1QsIFVMT05HRVNUKTogdGFyZ2V0X3JlYWQoJmN1cnJlbnRfdGFyZ2V0LCBU QVJHRVRfT0JKRUNUX1NJR05BTF9JTkZPLCBOVUxMLCBzaWdpbmZvX2RhdGEs IDAsIGxlbikgPT0gbGVuCiBMT0MgaW5mcnVuLmM6NjczNyAoaW5mcnVuLmM6 NjczNCkKLSBWYXJpYWJsZSBsZW4gaW5pdGlhbGl6ZWQgdG8gdHlwZSBVSU5U LCBleHBlY3RzIHNpemVfdDogKHR5cGUpLT5sZW5ndGgKLUxPQyBpbmZydW4u Yzo2NzM4Ci0gRnVuY3Rpb24gdGFyZ2V0X3dyaXRlIGV4cGVjdHMgYXJnIDYg dG8gYmUgTE9OR0VTVCBnZXRzIHNpemVfdDogbGVuCisgRnVuY3Rpb24gdGFy Z2V0X3dyaXRlIGV4cGVjdHMgYXJnIDYgdG8gYmUgTE9OR0VTVCBnZXRzIFVM T05HRVNUOiAodHlwZSktPmxlbmd0aAogTE9DIHByb2JlLmg6MTI4CiAgRmls ZSBzdGF0aWMgZnVuY3Rpb24gVkVDX3Byb2JlX29wc19jcF9zYWZlX2luc2Vy dCBkZWNsYXJlZCBidXQgbm90IHVzZWQKICAgIExPQyBwcm9iZS5oOjEyOAog IERlZmluaXRpb24gb2YgVkVDX3Byb2JlX29wc19jcF9zYWZlX2luc2VydAog aXEyMDAwLXRkZXAuYzogKGluIGZ1bmN0aW9uIGlxMjAwMF9yZWdpc3Rlcl9u YW1lKQorTE9DIGlxMjAwMC10ZGVwLmM6NTEzCisgVGVzdCBleHByZXNzaW9u IGZvciBjb25kaXRpb25hbCBub3QgYm9vbGVhbiwgdHlwZSBMT05HRVNUOiBs ZW4gJSA0CiBMT0MgaXEyMDAwLXRkZXAuYzo1MTMKLSBUZXN0IGV4cHJlc3Np b24gZm9yIGNvbmRpdGlvbmFsIG5vdCBib29sZWFuLCB0eXBlIGludDogbGVu ICUgNAorIFZhcmlhYmxlIHNpemUgaW5pdGlhbGl6ZWQgdG8gdHlwZSBMT05H RVNULCBleHBlY3RzIGludDogbGVuICUgNCA/ICA6IDQKK0xPQyBpcTIwMDAt dGRlcC5jOjU2NAorIFRlc3QgZXhwcmVzc2lvbiBmb3IgY29uZGl0aW9uYWwg bm90IGJvb2xlYW4sIHR5cGUgTE9OR0VTVDogbGVuICUgNAogTE9DIGlxMjAw MC10ZGVwLmM6NTY0Ci0gVGVzdCBleHByZXNzaW9uIGZvciBjb25kaXRpb25h bCBub3QgYm9vbGVhbiwgdHlwZSBpbnQ6IGxlbiAlIDQKKyBWYXJpYWJsZSBz aXplIGluaXRpYWxpemVkIHRvIHR5cGUgTE9OR0VTVCwgZXhwZWN0cyBpbnQ6 IGxlbiAlIDQgPyAgOiA0CiBMT0MgaXEyMDAwLXRkZXAuYzo1ODEKLSBGdW5j dGlvbiByZWFkX21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJlIHNzaXplX3Qg Z2V0cyBVSU5UOiAodHlwZSktPmxlbmd0aAorIEZ1bmN0aW9uIHJlYWRfbWVt b3J5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc3NpemVfdCBnZXRzIFVMT05HRVNU OiAodHlwZSktPmxlbmd0aAogTE9DIGlxMjAwMC10ZGVwLmM6NzM5IChpcTIw MDAtdGRlcC5jOjc0MCkKLSBGdW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcg MyB0byBiZSBzaXplX3QgZ2V0cyBpbnQ6IHR5cGVsZW4KKyBBc3NpZ25tZW50 IG9mIExPTkdFU1QgdG8gaW50OiBzbGFja2xlbiA9ICg0IC0gKHR5cGVsZW4g JSA0KSkgJSA0CitMT0MgaXEyMDAwLXRkZXAuYzo3NDEKKyBGdW5jdGlvbiBt ZW1jcHkgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXplX3QgZ2V0cyBMT05HRVNU OiB0eXBlbGVuCiBMT0MgaXEyMDAwLXRkZXAuYzo3NzIgKGlxMjAwMC10ZGVw LmM6NzcxKQotIEZ1bmN0aW9uIHdyaXRlX21lbW9yeSBleHBlY3RzIGFyZyAz IHRvIGJlIHNzaXplX3QgZ2V0cyBpbnQ6IHR5cGVsZW4KKyBGdW5jdGlvbiB3 cml0ZV9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdldHMg TE9OR0VTVDogdHlwZWxlbgogTE9DIGlxMjAwMC10ZGVwLmM6NzgyIChpcTIw MDAtdGRlcC5jOjc4MSkKLSBGdW5jdGlvbiB3cml0ZV9tZW1vcnkgZXhwZWN0 cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdldHMgaW50OiB0eXBlbGVuCisgRnVu Y3Rpb24gd3JpdGVfbWVtb3J5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc3NpemVf dCBnZXRzIExPTkdFU1Q6IHR5cGVsZW4KIExPQyBtZW1yYW5nZS5oOjM4CiAg RmlsZSBzdGF0aWMgZnVuY3Rpb24gVkVDX21lbV9yYW5nZV9zX3NhZmVfaW5z ZXJ0IGRlY2xhcmVkIGJ1dCBub3QgdXNlZAogICAgTE9DIG1lbXJhbmdlLmg6 MzgKICBEZWZpbml0aW9uIG9mIFZFQ19tZW1fcmFuZ2Vfc19zYWZlX2luc2Vy dAogTE9DIGp2LWxhbmcuYzo0NjkgKGp2LWxhbmcuYzo0NjcpCi0gQXNzaWdu bWVudCBvZiBMT05HRVNUIHRvIGludDogYm9mZnNldCA9IHZhbHVlX2FzX2xv bmcodmFsdWVfc3RydWN0X2VsdCgmdGVtcCwgTlVMTCwgImJvZmZzZXQiLCBO VUxMLCAic3RydWN0dXJlIikpCi1MT0MganYtbGFuZy5jOjQ2OQogIFRlc3Qg ZXhwcmVzc2lvbiBmb3IgaWYgbm90IGJvb2xlYW4sIHR5cGUgaW50OiBhY2Nm bGFncyAmIDB4MDAwMQogTE9DIGp2LWxhbmcuYzo0ODIKLSBBc3NpZ25tZW50 IG9mIGludCB0byBDT1JFX0FERFI6ICgoKHR5cGUpLT5tYWluX3R5cGUtPmZs ZHNfYm5kcy5maWVsZHNbaV0pLmxvYy5waHlzYWRkcikgPSAoYm9mZnNldCkK KyBBc3NpZ25tZW50IG9mIExPTkdFU1QgdG8gQ09SRV9BRERSOiAoKCh0eXBl KS0+bWFpbl90eXBlLT5mbGRzX2JuZHMuZmllbGRzW2ldKS5sb2MucGh5c2Fk ZHIpID0gKGJvZmZzZXQpCiBMT0MganYtbGFuZy5jOjYxMQotIFJldHVybiB2 YWx1ZSB0eXBlIFVJTlQgZG9lcyBub3QgbWF0Y2ggZGVjbGFyZWQgdHlwZSBp bnQ6IChvYmp0eXBlKS0+bGVuZ3RoCisgUmV0dXJuIHZhbHVlIHR5cGUgVUxP TkdFU1QgZG9lcyBub3QgbWF0Y2ggZGVjbGFyZWQgdHlwZSBpbnQ6IChvYmp0 eXBlKS0+bGVuZ3RoCiBMT0MgbWVtcmFuZ2UuaDozOAogIEZpbGUgc3RhdGlj IGZ1bmN0aW9uIFZFQ19tZW1fcmFuZ2Vfc19zYWZlX2luc2VydCBkZWNsYXJl ZCBidXQgbm90IHVzZWQKICAgIExPQyBtZW1yYW5nZS5oOjM4CiAgRGVmaW5p dGlvbiBvZiBWRUNfbWVtX3JhbmdlX3Nfc2FmZV9pbnNlcnQKIExPQyBsbTMy LXRkZXAuYzoyODcgKGxtMzItdGRlcC5jOjI5NSkKLSBGdW5jdGlvbiB3cml0 ZV9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdldHMgaW50 OiBsZW4KKyBGdW5jdGlvbiBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgZXhw ZWN0cyBhcmcgMiB0byBiZSBpbnQgZ2V0cyBMT05HRVNUOiBsZW4KK0xPQyBs bTMyLXRkZXAuYzoyOTUKKyBGdW5jdGlvbiB3cml0ZV9tZW1vcnkgZXhwZWN0 cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdldHMgTE9OR0VTVDogbGVuCiBMT0Mg bG0zMi10ZGVwLmM6MzQwCi0gRnVuY3Rpb24gcmVhZF9tZW1vcnkgZXhwZWN0 cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdldHMgVUlOVDogKHR5cGUpLT5sZW5n dGgKKyBGdW5jdGlvbiByZWFkX21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJl IHNzaXplX3QgZ2V0cyBVTE9OR0VTVDogKHR5cGUpLT5sZW5ndGgKK0xPQyBs bTMyLXRkZXAuYzozNTcKKyBGdW5jdGlvbiBleHRyYWN0X3Vuc2lnbmVkX2lu dGVnZXIgZXhwZWN0cyBhcmcgMiB0byBiZSBpbnQgZ2V0cyBMT05HRVNUOiBs ZW4KK0xPQyBsbTMyLXRkZXAuYzozNjQKKyBGdW5jdGlvbiBleHRyYWN0X3Vu c2lnbmVkX2ludGVnZXIgZXhwZWN0cyBhcmcgMiB0byBiZSBpbnQgZ2V0cyBM T05HRVNUOiBsZW4gLSA0CiBMT0MgbWVtcmFuZ2UuaDozOAogIEZpbGUgc3Rh dGljIGZ1bmN0aW9uIFZFQ19tZW1fcmFuZ2Vfc19zYWZlX2luc2VydCBkZWNs YXJlZCBidXQgbm90IHVzZWQKICAgIExPQyBtZW1yYW5nZS5oOjM4CiAgRGVm aW5pdGlvbiBvZiBWRUNfbWVtX3JhbmdlX3Nfc2FmZV9pbnNlcnQKIExPQyBt Mi1sYW5nLmM6MTIxIChtMi1sYW5nLmM6MTI5KQorIE9wZXJhbmRzIG9mIDwg aGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKFVJTlQsIFVMT05HRVNUKTogaSA8 IGxlbmd0aAorTE9DIG0yLWxhbmcuYzoxMjkKICBUZXN0IGV4cHJlc3Npb24g Zm9yIGlmIG5vdCBib29sZWFuLCB0eXBlIGludDogcXVpdF9mbGFnCiBMT0Mg bTItbGFuZy5jOjEzOSAobTItbGFuZy5jOjE0NykKKyBPcGVyYW5kcyBvZiA8 IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChVSU5ULCBVTE9OR0VTVCk6IHJl cDEgPCBsZW5ndGgKK0xPQyBtMi1sYW5nLmM6MTQ3CiAgVGVzdCBleHByZXNz aW9uIGZvciBpZiBub3QgYm9vbGVhbiwgdHlwZSBpbnQ6IGluX3F1b3Rlcwog TE9DIG0yLWxhbmcuYzoxODUKKyBPcGVyYW5kcyBvZiA8IGhhdmUgaW5jb21w YXRpYmxlIHR5cGVzIChVSU5ULCBVTE9OR0VTVCk6IGkgPCBsZW5ndGgKK0xP QyBtMi1sYW5nLmM6MTg1CiAgTGVmdCBvcGVyYW5kIG9mIHx8IGlzIG5vbi1i b29sZWFuIChpbnQpOiBmb3JjZV9lbGxpcHNlcyB8fCBpIDwgbGVuZ3RoCiBM T0Mgc3ltdGFiLmg6MTI2NwogIEZpbGUgc3RhdGljIGZ1bmN0aW9uIFZFQ19D T1JFX0FERFJfc2FmZV9pbnNlcnQgZGVjbGFyZWQgYnV0IG5vdCB1c2VkCiAg ICBMT0Mgc3ltdGFiLmg6MTI2NwogIERlZmluaXRpb24gb2YgVkVDX0NPUkVf QUREUl9zYWZlX2luc2VydAogTE9DIG0yLXR5cGVwcmludC5jOjM3NyAobTIt dHlwZXByaW50LmM6Mzc0KQotIE9wZXJhbmRzIG9mIDwgaGF2ZSBpbmNvbXBh dGlibGUgdHlwZXMgKFVJTlQsIHNpemVfdCk6ICh0eXBlKS0+bGVuZ3RoIDwg c2l6ZW9mKExPTkdFU1QpCisgT3BlcmFuZHMgb2YgPCBoYXZlIGluY29tcGF0 aWJsZSB0eXBlcyAoVUxPTkdFU1QsIHNpemVfdCk6ICh0eXBlKS0+bGVuZ3Ro IDwgc2l6ZW9mKExPTkdFU1QpCiBMT0MgbTItdHlwZXByaW50LmM6NTkxICht Mi10eXBlcHJpbnQuYzo2MTApCi0gT3BlcmFuZHMgb2YgIT0gaGF2ZSBpbmNv bXBhdGlibGUgdHlwZXMgKGludCwgTE9OR0VTVCk6IGxhc3R2YWwgIT0gKCgo KHR5cGUpLT5tYWluX3R5cGUtPmZsZHNfYm5kcy5maWVsZHNbaV0pLmxvYy5l bnVtdmFsKSArIDApCi1MT0MgbTItdHlwZXByaW50LmM6NjE0Ci0gQXNzaWdu bWVudCBvZiBMT05HRVNUIHRvIGludDogbGFzdHZhbCA9ICgoKCh0eXBlKS0+ bWFpbl90eXBlLT5mbGRzX2JuZHMuZmllbGRzW2ldKS5sb2MuZW51bXZhbCkg KyAwKQotTE9DIG0yLXR5cGVwcmludC5jOjU4OAogIFBhcmFtZXRlciBsZXZl bCBub3QgdXNlZAogTE9DIG1lbXJhbmdlLmg6MzgKICBGaWxlIHN0YXRpYyBm dW5jdGlvbiBWRUNfbWVtX3JhbmdlX3Nfc2FmZV9pbnNlcnQgZGVjbGFyZWQg YnV0IG5vdCB1c2VkCiAgICBMT0MgbWVtcmFuZ2UuaDozOAogIERlZmluaXRp b24gb2YgVkVDX21lbV9yYW5nZV9zX3NhZmVfaW5zZXJ0CiBMT0MgbTItdmFs cHJpbnQuYzoyNzYgKG0yLXZhbHByaW50LmM6Mjc3KQotIEFzc2lnbm1lbnQg b2YgVUlOVCB0byBpbnQ6IGVsdGxlbiA9ICh0eXBlKS0+bGVuZ3RoCi1MT0Mg bTItdmFscHJpbnQuYzoyNzgKICBUZXN0IGV4cHJlc3Npb24gZm9yIGlmIG5v dCBib29sZWFuLCB0eXBlIGludDogb3B0aW9ucy0+cHJldHR5cHJpbnRfYXJy YXlzCiBMT0MgbTItdmFscHJpbnQuYzo0MjMgKG0yLXZhbHByaW50LmM6NDI2 KQogIFZhcmlhYmxlIGkgc2hhZG93cyBvdXRlciBkZWNsYXJhdGlvbgogICAg TE9DIG0yLXZhbHByaW50LmM6MzE5IChtMi12YWxwcmludC5jOjMyMCkKLSBQ cmV2aW91cyBkZWZpbml0aW9uIG9mIGk6IFVJTlQKKyBQcmV2aW91cyBkZWZp bml0aW9uIG9mIGk6IFVMT05HRVNUCiBMT0MgdGFyZ2V0Lmg6MTAzNAogIEZp bGUgc3RhdGljIGZ1bmN0aW9uIFZFQ19tZW1vcnlfd3JpdGVfcmVxdWVzdF9z X3NhZmVfaW5zZXJ0IGRlY2xhcmVkIGJ1dCBub3QgdXNlZAogICAgTE9DIHRh cmdldC5oOjEwMzQKICBEZWZpbml0aW9uIG9mIFZFQ19tZW1vcnlfd3JpdGVf cmVxdWVzdF9zX3NhZmVfaW5zZXJ0CiBMT0MgbTMyci10ZGVwLmM6NzQ0Ci0g RnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdl dHMgaW50OiBsZW4KKyBGdW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0 byBiZSBzaXplX3QgZ2V0cyBMT05HRVNUOiBsZW4KIExPQyBtMzJyLXRkZXAu Yzo3OTkgKG0zMnItdGRlcC5jOjgwNSkKKyBGdW5jdGlvbiBzdG9yZV91bnNp Z25lZF9pbnRlZ2VyIGV4cGVjdHMgYXJnIDIgdG8gYmUgaW50IGdldHMgTE9O R0VTVDogKGxlbiA+IDQgPyBsZW4gLSA0IDogbGVuKQorTE9DIG0zMnItdGRl cC5jOjgwNQogIFJldHVybiB2YWx1ZSAodHlwZSBlbnVtIHJlZ2lzdGVyX3N0 YXR1cykgaWdub3JlZDogcmVnY2FjaGVfY29va2VkXy4uLgogTE9DIGJyZWFr cG9pbnQuaDo4MjkKICBGaWxlIHN0YXRpYyBmdW5jdGlvbiBWRUNfYnJlYWtw b2ludF9wX3NhZmVfaW5zZXJ0IGRlY2xhcmVkIGJ1dCBub3QgdXNlZAogICAg TE9DIGJyZWFrcG9pbnQuaDo4MjkKICBEZWZpbml0aW9uIG9mIFZFQ19icmVh a3BvaW50X3Bfc2FmZV9pbnNlcnQKK0xPQyBtNjhoYzExLXRkZXAuYzoxMTk2 CisgRnVuY3Rpb24gZXh0cmFjdF91bnNpZ25lZF9pbnRlZ2VyIGV4cGVjdHMg YXJnIDIgdG8gYmUgaW50IGdldHMgTE9OR0VTVDogbGVuCiBMT0MgbTY4aGMx MS10ZGVwLmM6MTIxMwotIFRlc3QgZXhwcmVzc2lvbiBmb3IgaWYgbm90IGJv b2xlYW4sIHR5cGUgaW50OiBsZW4gJiAxCisgVGVzdCBleHByZXNzaW9uIGZv ciBpZiBub3QgYm9vbGVhbiwgdHlwZSBMT05HRVNUOiBsZW4gJiAxCiBMT0Mg bTY4aGMxMS10ZGVwLmM6MTIyMgotIEZ1bmN0aW9uIHdyaXRlX21lbW9yeSBl eHBlY3RzIGFyZyAzIHRvIGJlIHNzaXplX3QgZ2V0cyBpbnQ6IGxlbgorIEZ1 bmN0aW9uIHdyaXRlX21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJlIHNzaXpl X3QgZ2V0cyBMT05HRVNUOiBsZW4KK0xPQyBtNjhoYzExLXRkZXAuYzoxMjc1 CisgRnVuY3Rpb24gcmVnY2FjaGVfcmF3X3dyaXRlX3BhcnQgZXhwZWN0cyBh cmcgMyB0byBiZSBpbnQgZ2V0cyBMT05HRVNUOiAyIC0gbGVuCitMT0MgbTY4 aGMxMS10ZGVwLmM6MTI3NQorIEZ1bmN0aW9uIHJlZ2NhY2hlX3Jhd193cml0 ZV9wYXJ0IGV4cGVjdHMgYXJnIDQgdG8gYmUgaW50IGdldHMgTE9OR0VTVDog bGVuCitMT0MgbTY4aGMxMS10ZGVwLmM6MTI3OAorIEZ1bmN0aW9uIHJlZ2Nh Y2hlX3Jhd193cml0ZV9wYXJ0IGV4cGVjdHMgYXJnIDMgdG8gYmUgaW50IGdl dHMgTE9OR0VTVDogNCAtIGxlbgorTE9DIG02OGhjMTEtdGRlcC5jOjEyNzkK KyBGdW5jdGlvbiByZWdjYWNoZV9yYXdfd3JpdGVfcGFydCBleHBlY3RzIGFy ZyA0IHRvIGJlIGludCBnZXRzIExPTkdFU1Q6IGxlbiAtIDIKIExPQyBicmVh a3BvaW50Lmg6ODI5CiAgRmlsZSBzdGF0aWMgZnVuY3Rpb24gVkVDX2JyZWFr cG9pbnRfcF9zYWZlX2luc2VydCBkZWNsYXJlZCBidXQgbm90IHVzZWQKICAg IExPQyBicmVha3BvaW50Lmg6ODI5CiAgRGVmaW5pdGlvbiBvZiBWRUNfYnJl YWtwb2ludF9wX3NhZmVfaW5zZXJ0CiBMT0MgbTY4ay10ZGVwLmM6MjI1Ci0g RnVuY3Rpb24gZ2V0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIGV4cGVjdHMgYXJn IDQgdG8gYmUgaW50IGdldHMgVUlOVDogKHR5cGUpLT5sZW5ndGgKKyBGdW5j dGlvbiBnZXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMgZXhwZWN0cyBhcmcgNCB0 byBiZSBpbnQgZ2V0cyBVTE9OR0VTVDogKHR5cGUpLT5sZW5ndGgKIExPQyBt NjhrLXRkZXAuYzozMDEKLSBGdW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcg MyB0byBiZSBzaXplX3QgZ2V0cyBpbnQ6IGxlbgorIEZ1bmN0aW9uIG1lbWNw eSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIExPTkdFU1Q6IGxl bgogTE9DIG02OGstdGRlcC5jOjMwNgotIEZ1bmN0aW9uIG1lbWNweSBleHBl Y3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIGludDogbGVuIC0gNAorIEZ1 bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRz IExPTkdFU1Q6IGxlbiAtIDQKIExPQyBtNjhrLXRkZXAuYzozMTEKLSBOZXcg ZnJlc2ggc3RvcmFnZSAodHlwZSBjaGFyICopIHBhc3NlZCBhcyBpbXBsaWNp dGx5IHRlbXAgKG5vdCByZWxlYXNlZCk6IGdldHRleHQoIkNhbm5vdCBleHRy YWN0IHJldHVybiB2YWx1ZSBvZiAlZCBieXRlcyBsb25nLiIpCisgTmV3IGZy ZXNoIHN0b3JhZ2UgKHR5cGUgY2hhciAqKSBwYXNzZWQgYXMgaW1wbGljaXRs eSB0ZW1wIChub3QgcmVsZWFzZWQpOiBnZXR0ZXh0KCJDYW5ub3QgZXh0cmFj dCByZXR1cm4gdmFsdWUgb2YgJXMgYnl0ZXMgbG9uZy4iKQogbTY4ay10ZGVw LmM6IChpbiBmdW5jdGlvbiBtNjhrX3N2cjRfZXh0cmFjdF9yZXR1cm5fdmFs dWUpCiBMT0MgbTY4ay10ZGVwLmM6MzIzIChtNjhrLXRkZXAuYzozMTgpCi0g VmFyaWFibGUgbGVuIGluaXRpYWxpemVkIHRvIHR5cGUgVUlOVCwgZXhwZWN0 cyBpbnQ6ICh0eXBlKS0+bGVuZ3RoCi1MT0MgbTY4ay10ZGVwLmM6MzIzCiAg TGVmdCBvcGVyYW5kIG9mICYmIGlzIG5vbi1ib29sZWFuIChpbnQpOiB0ZGVw LT5mbG9hdF9yZXR1cm4gJiYgKHR5cGUpLT5tYWluX3R5cGUtPmNvZGUgPT0g VFlQRV9DT0RFX0ZMVAogTE9DIG02OGstdGRlcC5jOjM0NCAobTY4ay10ZGVw LmM6MzUzKQotIE5ldyBmcmVzaCBzdG9yYWdlICh0eXBlIGNoYXIgKikgcGFz c2VkIGFzIGltcGxpY2l0bHkgdGVtcCAobm90IHJlbGVhc2VkKTogZ2V0dGV4 dCgiQ2Fubm90IHN0b3JlIHJldHVybiB2YWx1ZSBvZiAlZCBieXRlcyBsb25n LiIpCi1tNjhrLXRkZXAuYzogKGluIGZ1bmN0aW9uIG02OGtfc3ZyNF9zdG9y ZV9yZXR1cm5fdmFsdWUpCisgRnVuY3Rpb24gcmVnY2FjaGVfcmF3X3dyaXRl X3BhcnQgZXhwZWN0cyBhcmcgMyB0byBiZSBpbnQgZ2V0cyBMT05HRVNUOiA0 IC0gbGVuCitMT0MgbTY4ay10ZGVwLmM6MzQ0CisgRnVuY3Rpb24gcmVnY2Fj aGVfcmF3X3dyaXRlX3BhcnQgZXhwZWN0cyBhcmcgNCB0byBiZSBpbnQgZ2V0 cyBMT05HRVNUOiBsZW4KIExPQyBtNjhrLXRkZXAuYzozNDcgKG02OGstdGRl cC5jOjM2MCkKLSBWYXJpYWJsZSBsZW4gaW5pdGlhbGl6ZWQgdG8gdHlwZSBV SU5ULCBleHBlY3RzIGludDogKHR5cGUpLT5sZW5ndGgKKyBGdW5jdGlvbiBy ZWdjYWNoZV9yYXdfd3JpdGVfcGFydCBleHBlY3RzIGFyZyAzIHRvIGJlIGlu dCBnZXRzIExPTkdFU1Q6IDggLSBsZW4KK0xPQyBtNjhrLXRkZXAuYzozNDgK KyBGdW5jdGlvbiByZWdjYWNoZV9yYXdfd3JpdGVfcGFydCBleHBlY3RzIGFy ZyA0IHRvIGJlIGludCBnZXRzIExPTkdFU1Q6IGxlbiAtIDQKK0xPQyBtNjhr LXRkZXAuYzozNTMKKyBOZXcgZnJlc2ggc3RvcmFnZSAodHlwZSBjaGFyICop IHBhc3NlZCBhcyBpbXBsaWNpdGx5IHRlbXAgKG5vdCByZWxlYXNlZCk6IGdl dHRleHQoIkNhbm5vdCBzdG9yZSByZXR1cm4gdmFsdWUgb2YgJXMgYnl0ZXMg bG9uZy4iKQorbTY4ay10ZGVwLmM6IChpbiBmdW5jdGlvbiBtNjhrX3N2cjRf c3RvcmVfcmV0dXJuX3ZhbHVlKQogTE9DIG02OGstdGRlcC5jOjQyNgotIEZ1 bmN0aW9uIHJlYWRfbWVtb3J5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc3NpemVf dCBnZXRzIFVJTlQ6ICh0eXBlKS0+bGVuZ3RoCisgRnVuY3Rpb24gcmVhZF9t ZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdldHMgVUxPTkdF U1Q6ICh0eXBlKS0+bGVuZ3RoCiBMT0MgbTY4ay10ZGVwLmM6NDY1Ci0gRnVu Y3Rpb24gcmVhZF9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90 IGdldHMgVUlOVDogKHR5cGUpLT5sZW5ndGgKKyBGdW5jdGlvbiByZWFkX21l bW9yeSBleHBlY3RzIGFyZyAzIHRvIGJlIHNzaXplX3QgZ2V0cyBVTE9OR0VT VDogKHR5cGUpLT5sZW5ndGgKIExPQyBtNjhrLXRkZXAuYzo1MzIKLSBGdW5j dGlvbiB3cml0ZV9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90 IGdldHMgaW50OiBsZW4KKyBGdW5jdGlvbiB3cml0ZV9tZW1vcnkgZXhwZWN0 cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdldHMgTE9OR0VTVDogbGVuCiBMT0Mg YnJlYWtwb2ludC5oOjgyOQogIEZpbGUgc3RhdGljIGZ1bmN0aW9uIFZFQ19i cmVha3BvaW50X3Bfc2FmZV9pbnNlcnQgZGVjbGFyZWQgYnV0IG5vdCB1c2Vk CiAgICBMT0MgYnJlYWtwb2ludC5oOjgyOQogIERlZmluaXRpb24gb2YgVkVD X2JyZWFrcG9pbnRfcF9zYWZlX2luc2VydAorTE9DIG04OGstdGRlcC5jOjMx MgorIFZhcmlhYmxlIHN0YWNrX3dvcmQgaW5pdGlhbGl6ZWQgdG8gdHlwZSBM T05HRVNULCBleHBlY3RzIGludDogbnVtX3N0YWNrX3dvcmRzCiBMT0MgbTg4 ay10ZGVwLmM6MzE2IChtODhrLXRkZXAuYzozMTgpCisgVmFyaWFibGUgcmVn aXN0ZXJfd29yZCBpbml0aWFsaXplZCB0byB0eXBlIExPTkdFU1QsIGV4cGVj dHMgaW50OiBudW1fcmVnaXN0ZXJfd29yZHMKK0xPQyBtODhrLXRkZXAuYzoz MTgKICBSaWdodCBvcGVyYW5kIG9mICYmIGlzIG5vbi1ib29sZWFuIChpbnQp OiByZWdpc3Rlcl93b3JkICUgMiA9PSAxICYmIG04OGtfOF9ieXRlX2FsaWdu X3AodHlwZSkKIExPQyBtODhrLXRkZXAuYzo0MDQKLSBGdW5jdGlvbiBtZW1j cHkgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXplX3QgZ2V0cyBpbnQ6IGxlbgor IEZ1bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBn ZXRzIExPTkdFU1Q6IGxlbgogTE9DIG04OGstdGRlcC5jOjQxMAotIEZ1bmN0 aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIGlu dDogbGVuCisgRnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUg c2l6ZV90IGdldHMgTE9OR0VTVDogbGVuCiBMT0MgbTg4ay10ZGVwLmM6NDI2 Ci0gRnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90 IGdldHMgaW50OiBsZW4KKyBGdW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcg MyB0byBiZSBzaXplX3QgZ2V0cyBMT05HRVNUOiBsZW4KIExPQyBtZW1yYW5n ZS5oOjM4CiAgRmlsZSBzdGF0aWMgZnVuY3Rpb24gVkVDX21lbV9yYW5nZV9z X3NhZmVfaW5zZXJ0IGRlY2xhcmVkIGJ1dCBub3QgdXNlZAogICAgTE9DIG1l bXJhbmdlLmg6MzgKICBEZWZpbml0aW9uIG9mIFZFQ19tZW1fcmFuZ2Vfc19z YWZlX2luc2VydAogTE9DIG1lbXJhbmdlLmM6NzYKLSBPcGVyYW5kcyBvZiA+ IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChpbnQsIFVMT05HRVNUKTogKHJh LT5sZW5ndGgpID4gKChyYi0+c3RhcnQgLSByYS0+c3RhcnQpICsgcmItPmxl bmd0aCkKKyBPcGVyYW5kcyBvZiA+IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVz IChMT05HRVNULCBVTE9OR0VTVCk6IChyYS0+bGVuZ3RoKSA+ICgocmItPnN0 YXJ0IC0gcmEtPnN0YXJ0KSArIHJiLT5sZW5ndGgpCiBMT0MgbWVtcmFuZ2Uu Yzo3NwotIENvbmRpdGlvbmFsIGNsYXVzZXMgYXJlIG5vdCBvZiBzYW1lIHR5 cGU6IChyYS0+bGVuZ3RoKSAoaW50KSwgKChyYi0+c3RhcnQgLSByYS0+c3Rh cnQpICsgcmItPmxlbmd0aCkgKFVMT05HRVNUKQorIENvbmRpdGlvbmFsIGNs YXVzZXMgYXJlIG5vdCBvZiBzYW1lIHR5cGU6IChyYS0+bGVuZ3RoKSAoTE9O R0VTVCksICgocmItPnN0YXJ0IC0gcmEtPnN0YXJ0KSArIHJiLT5sZW5ndGgp IChVTE9OR0VTVCkKIExPQyBtZXAtdGRlcC5jOjExNDgKLSBPcGVyYW5kcyBv ZiA9PSBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoVUlOVCwgc2l6ZV90KTog KHJlZ2lzdGVyX3R5cGUoZ2RiYXJjaCwgcmF3bnVtKSktPmxlbmd0aCA9PSBz aXplb2YoKGJ1ZjY0KSkKKyBPcGVyYW5kcyBvZiA9PSBoYXZlIGluY29tcGF0 aWJsZSB0eXBlcyAoVUxPTkdFU1QsIHNpemVfdCk6IChyZWdpc3Rlcl90eXBl KGdkYmFyY2gsIHJhd251bSkpLT5sZW5ndGggPT0gc2l6ZW9mKChidWY2NCkp CiBMT0MgbWVwLXRkZXAuYzoxMjM0Ci0gT3BlcmFuZHMgb2YgPT0gaGF2ZSBp bmNvbXBhdGlibGUgdHlwZXMgKFVJTlQsIHNpemVfdCk6IChyZWdpc3Rlcl90 eXBlKGdkYmFyY2gsIHJhd251bSkpLT5sZW5ndGggPT0gc2l6ZW9mKChidWY2 NCkpCisgT3BlcmFuZHMgb2YgPT0gaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMg KFVMT05HRVNULCBzaXplX3QpOiAocmVnaXN0ZXJfdHlwZShnZGJhcmNoLCBy YXdudW0pKS0+bGVuZ3RoID09IHNpemVvZigoYnVmNjQpKQogTE9DIG1lcC10 ZGVwLmM6MjE0OQotIEFzc2lnbm1lbnQgb2YgVUlOVCB0byBpbnQ6IG9mZnNl dCA9ICg0KSAtICh0eXBlKS0+bGVuZ3RoCisgQXNzaWdubWVudCBvZiBVTE9O R0VTVCB0byBpbnQ6IG9mZnNldCA9ICg0KSAtICh0eXBlKS0+bGVuZ3RoCiBM T0MgbWVwLXRkZXAuYzoyMTU1Ci0gRnVuY3Rpb24gcmVnY2FjaGVfY29va2Vk X3JlYWRfcGFydCBleHBlY3RzIGFyZyA0IHRvIGJlIGludCBnZXRzIFVJTlQ6 ICh0eXBlKS0+bGVuZ3RoCisgRnVuY3Rpb24gcmVnY2FjaGVfY29va2VkX3Jl YWRfcGFydCBleHBlY3RzIGFyZyA0IHRvIGJlIGludCBnZXRzIFVMT05HRVNU OiAodHlwZSktPmxlbmd0aAogTE9DIG1lcC10ZGVwLmM6MjE3NwotIEFzc2ln bm1lbnQgb2YgVUlOVCB0byBpbnQ6IG9mZnNldCA9ICg0KSAtICh0eXBlKS0+ bGVuZ3RoCisgQXNzaWdubWVudCBvZiBVTE9OR0VTVCB0byBpbnQ6IG9mZnNl dCA9ICg0KSAtICh0eXBlKS0+bGVuZ3RoCiBMT0MgbWVwLXRkZXAuYzoyMTgy Ci0gRnVuY3Rpb24gcmVnY2FjaGVfY29va2VkX3dyaXRlX3BhcnQgZXhwZWN0 cyBhcmcgNCB0byBiZSBpbnQgZ2V0cyBVSU5UOiAodHlwZSktPmxlbmd0aAor IEZ1bmN0aW9uIHJlZ2NhY2hlX2Nvb2tlZF93cml0ZV9wYXJ0IGV4cGVjdHMg YXJnIDQgdG8gYmUgaW50IGdldHMgVUxPTkdFU1Q6ICh0eXBlKS0+bGVuZ3Ro CiBMT0MgbWVwLXRkZXAuYzoyMjEwCi0gRnVuY3Rpb24gcmVhZF9tZW1vcnkg ZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdldHMgVUlOVDogKHR5cGUp LT5sZW5ndGgKKyBGdW5jdGlvbiByZWFkX21lbW9yeSBleHBlY3RzIGFyZyAz IHRvIGJlIHNzaXplX3QgZ2V0cyBVTE9OR0VTVDogKHR5cGUpLT5sZW5ndGgK IExPQyBtZXAtdGRlcC5jOjIyODkKLSBGdW5jdGlvbiB3cml0ZV9tZW1vcnkg ZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdldHMgVUlOVDogYXJnX2xl bgorIEZ1bmN0aW9uIHdyaXRlX21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJl IHNzaXplX3QgZ2V0cyBVTE9OR0VTVDogYXJnX2xlbgogTE9DIG1pY3JvYmxh emUtdGRlcC5jOjU3MQotIEZ1bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAz IHRvIGJlIHNpemVfdCBnZXRzIFVJTlQ6ICh0eXBlKS0+bGVuZ3RoCisgRnVu Y3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMg VUxPTkdFU1Q6ICh0eXBlKS0+bGVuZ3RoCiBMT0MgbWljcm9ibGF6ZS10ZGVw LmM6NjA4Ci0gRnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUg c2l6ZV90IGdldHMgaW50OiBsZW4KKyBGdW5jdGlvbiBtZW1jcHkgZXhwZWN0 cyBhcmcgMyB0byBiZSBzaXplX3QgZ2V0cyBMT05HRVNUOiBsZW4KIG1pY3Jv YmxhemUtdGRlcC5jOiAoaW4gZnVuY3Rpb24gbWljcm9ibGF6ZV9yZXR1cm5f dmFsdWUpCiBMT0MgbWlwcy10ZGVwLmM6MTAyNCAobWlwcy10ZGVwLmM6MTAy OSkKKyBPcGVyYW5kcyBvZiA9PSBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAo VUlOVCwgVUxPTkdFU1QpOiBtaXBzX2FiaV9yZWdzaXplKGdkYmFyY2gpID09 IChidWlsdGluX3R5cGUoZ2RiYXJjaCktPmJ1aWx0aW5fZGF0YV9wdHIpLT5s ZW5ndGgKK0xPQyBtaXBzLXRkZXAuYzoxMDI5CiAgRnJlc2ggc3RvcmFnZSBy YXd0eXBlIG5vdCByZWxlYXNlZCBiZWZvcmUgcmV0dXJuCiAgICBMT0MgbWlw cy10ZGVwLmM6MTAxMwogIEZyZXNoIHN0b3JhZ2UgcmF3dHlwZSBjcmVhdGVk CiBMT0MgbWlwcy10ZGVwLmM6NDMwNSAobWlwcy10ZGVwLmM6NDMwNCkKKyBG dW5jdGlvbiBleHRyYWN0X3NpZ25lZF9pbnRlZ2VyIGV4cGVjdHMgYXJnIDIg dG8gYmUgaW50IGdldHMgTE9OR0VTVDogbGVuCitMT0MgbWlwcy10ZGVwLmM6 NDMwNAogIE5ldyBmcmVzaCBzdG9yYWdlICh0eXBlIGdkYl9ieXRlICopIHBh c3NlZCBhcyBpbXBsaWNpdGx5IHRlbXAgKG5vdCByZWxlYXNlZCk6IHZhbHVl X2NvbnRlbnRzKGFyZykKIExPQyBtaXBzLXRkZXAuYzo0MzEwIChtaXBzLXRk ZXAuYzo0MzExKQorIEZ1bmN0aW9uIHN0b3JlX3NpZ25lZF9pbnRlZ2VyIGV4 cGVjdHMgYXJnIDIgdG8gYmUgaW50IGdldHMgTE9OR0VTVDogbGVuCitMT0Mg bWlwcy10ZGVwLmM6NDMxMQogIEZ1bmN0aW9uIHN0b3JlX3NpZ25lZF9pbnRl Z2VyIGV4cGVjdHMgYXJnIDQgdG8gYmUgTE9OR0VTVCBnZXRzIENPUkVfQURE UjogbWFrZV9jb21wYWN0X2FkZHIoYWRkcikKIExPQyBtaXBzLXRkZXAuYzo0 MzkwIChtaXBzLXRkZXAuYzo0MzkxKQorIEZ1bmN0aW9uIGV4dHJhY3Rfc2ln bmVkX2ludGVnZXIgZXhwZWN0cyBhcmcgMiB0byBiZSBpbnQgZ2V0cyBMT05H RVNUOiBsZW4KK0xPQyBtaXBzLXRkZXAuYzo0MzkxCiAgVGVzdCBleHByZXNz aW9uIGZvciBpZiBub3QgYm9vbGVhbiwgdHlwZSBpbnQ6IG1pcHNfZGVidWcK IExPQyBtaXBzLXRkZXAuYzo0MzkzIChtaXBzLXRkZXAuYzo0NDA3KQorIEZ1 bmN0aW9uIHBoZXggZXhwZWN0cyBhcmcgMiB0byBiZSBpbnQgZ2V0cyBMT05H RVNUOiBsZW4KK0xPQyBtaXBzLXRkZXAuYzo0NDA3CiAgVmFyaWFibGUgb2Rk X3NpemVkX3N0cnVjdCBpbml0aWFsaXplZCB0byB0eXBlIGJvb2xlYW4sIGV4 cGVjdHMgaW50OiAobGVuID4gcmVnc2l6ZSAmJiBsZW4gJSByZWdzaXplICE9 IDApCiBMT0MgbWlwcy10ZGVwLmM6NDQxNSAobWlwcy10ZGVwLmM6NDQxNykK KyBWYXJpYWJsZSBwYXJ0aWFsX2xlbiBpbml0aWFsaXplZCB0byB0eXBlIExP TkdFU1QsIGV4cGVjdHMgaW50OiAobGVuIDwgcmVnc2l6ZSA/IGxlbiA6IHJl Z3NpemUpCitMT0MgbWlwcy10ZGVwLmM6NDQxNwogIFRlc3QgZXhwcmVzc2lv biBmb3IgaWYgbm90IGJvb2xlYW4sIHR5cGUgaW50OiBtaXBzX2RlYnVnCiBM T0MgbWlwcy10ZGVwLmM6NDQzNyAobWlwcy10ZGVwLmM6NDQ0MCkKLSBPcGVy YW5kcyBvZiA8IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChVSU5ULCBpbnQp OiAoYXJnX3R5cGUpLT5sZW5ndGggPCByZWdzaXplCisgQXNzaWdubWVudCBv ZiBMT05HRVNUIHRvIGludDogbG9uZ3dvcmRfb2Zmc2V0ID0gcmVnc2l6ZSAt IGxlbgorTE9DIG1pcHMtdGRlcC5jOjQ0NDAKKyBPcGVyYW5kcyBvZiA8IGhh dmUgaW5jb21wYXRpYmxlIHR5cGVzIChVTE9OR0VTVCwgaW50KTogKGFyZ190 eXBlKS0+bGVuZ3RoIDwgcmVnc2l6ZQorTE9DIG1pcHMtdGRlcC5jOjQ0NDEK KyBBc3NpZ25tZW50IG9mIExPTkdFU1QgdG8gaW50OiBsb25nd29yZF9vZmZz ZXQgPSByZWdzaXplIC0gbGVuCiBMT0MgbWlwcy10ZGVwLmM6NDU1OAotIE9w ZXJhbmRzIG9mIDwgaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKGludCwgVUlO VCk6IG9mZnNldCA8ICh0eXBlKS0+bGVuZ3RoCisgT3BlcmFuZHMgb2YgPCBo YXZlIGluY29tcGF0aWJsZSB0eXBlcyAoaW50LCBVTE9OR0VTVCk6IG9mZnNl dCA8ICh0eXBlKS0+bGVuZ3RoCiBMT0MgbWlwcy10ZGVwLmM6NDU2MgotIE9w ZXJhbmRzIG9mID4gaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKGludCwgVUlO VCk6IG9mZnNldCArIHhmZXIgPiAodHlwZSktPmxlbmd0aAorIE9wZXJhbmRz IG9mID4gaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKGludCwgVUxPTkdFU1Qp OiBvZmZzZXQgKyB4ZmVyID4gKHR5cGUpLT5sZW5ndGgKIExPQyBtaXBzLXRk ZXAuYzo0NTYzCi0gQXNzaWdubWVudCBvZiBVSU5UIHRvIGludDogeGZlciA9 ICh0eXBlKS0+bGVuZ3RoIC0gb2Zmc2V0CisgQXNzaWdubWVudCBvZiBVTE9O R0VTVCB0byBpbnQ6IHhmZXIgPSAodHlwZSktPmxlbmd0aCAtIG9mZnNldAog TE9DIG1pcHMtdGRlcC5jOjQ1OTIKLSBPcGVyYW5kcyBvZiA8IGhhdmUgaW5j b21wYXRpYmxlIHR5cGVzIChVSU5ULCBpbnQpOiAoYXJnX3R5cGUpLT5sZW5n dGggPCBvZmZzZXQgKyBNSVBTNjRfUkVHU0laRQorIE9wZXJhbmRzIG9mIDwg aGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKFVMT05HRVNULCBMT05HRVNUKTog KGFyZ190eXBlKS0+bGVuZ3RoIDwgb2Zmc2V0ICsgTUlQUzY0X1JFR1NJWkUK IExPQyBtaXBzLXRkZXAuYzo0OTMwCi0gT3BlcmFuZHMgb2YgPiBoYXZlIGlu Y29tcGF0aWJsZSB0eXBlcyAoVUlOVCwgaW50KTogKHR5cGUpLT5sZW5ndGgg PiAyICogTUlQUzY0X1JFR1NJWkUKKyBPcGVyYW5kcyBvZiA+IGhhdmUgaW5j b21wYXRpYmxlIHR5cGVzIChVTE9OR0VTVCwgaW50KTogKHR5cGUpLT5sZW5n dGggPiAyICogTUlQUzY0X1JFR1NJWkUKIExPQyBtaXBzLXRkZXAuYzo0OTYz Ci0gRnVuY3Rpb24gbWlwc194ZmVyX3JlZ2lzdGVyIGV4cGVjdHMgYXJnIDQg dG8gYmUgaW50IGdldHMgVUlOVDogKHR5cGUpLT5sZW5ndGgKKyBGdW5jdGlv biBtaXBzX3hmZXJfcmVnaXN0ZXIgZXhwZWN0cyBhcmcgNCB0byBiZSBpbnQg Z2V0cyBVTE9OR0VTVDogKHR5cGUpLT5sZW5ndGgKIExPQyBtaXBzLXRkZXAu Yzo1MDEzCi0gRnVuY3Rpb24gbWlwc194ZmVyX3JlZ2lzdGVyIGV4cGVjdHMg YXJnIDQgdG8gYmUgaW50IGdldHMgVUlOVDogKCgoKHR5cGUpLT5tYWluX3R5 cGUtPmZsZHNfYm5kcy5maWVsZHNbZmllbGRdKS50eXBlKSktPmxlbmd0aAor IEZ1bmN0aW9uIG1pcHNfeGZlcl9yZWdpc3RlciBleHBlY3RzIGFyZyA0IHRv IGJlIGludCBnZXRzIFVMT05HRVNUOiAoKCgodHlwZSktPm1haW5fdHlwZS0+ Zmxkc19ibmRzLmZpZWxkc1tmaWVsZF0pLnR5cGUpKS0+bGVuZ3RoCiBMT0Mg bWlwcy10ZGVwLmM6NTAyOQotIE9wZXJhbmRzIG9mIDwgaGF2ZSBpbmNvbXBh dGlibGUgdHlwZXMgKGludCwgVUlOVCk6IG9mZnNldCA8ICh0eXBlKS0+bGVu Z3RoCisgT3BlcmFuZHMgb2YgPCBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAo aW50LCBVTE9OR0VTVCk6IG9mZnNldCA8ICh0eXBlKS0+bGVuZ3RoCiBMT0Mg bWlwcy10ZGVwLmM6NTAzMwotIE9wZXJhbmRzIG9mID4gaGF2ZSBpbmNvbXBh dGlibGUgdHlwZXMgKGludCwgVUlOVCk6IG9mZnNldCArIHhmZXIgPiAodHlw ZSktPmxlbmd0aAorIE9wZXJhbmRzIG9mID4gaGF2ZSBpbmNvbXBhdGlibGUg dHlwZXMgKGludCwgVUxPTkdFU1QpOiBvZmZzZXQgKyB4ZmVyID4gKHR5cGUp LT5sZW5ndGgKIExPQyBtaXBzLXRkZXAuYzo1MDM0Ci0gQXNzaWdubWVudCBv ZiBVSU5UIHRvIGludDogeGZlciA9ICh0eXBlKS0+bGVuZ3RoIC0gb2Zmc2V0 CisgQXNzaWdubWVudCBvZiBVTE9OR0VTVCB0byBpbnQ6IHhmZXIgPSAodHlw ZSktPmxlbmd0aCAtIG9mZnNldAogTE9DIG1pcHMtdGRlcC5jOjUwNTIKLSBP cGVyYW5kcyBvZiA8IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChpbnQsIFVJ TlQpOiBvZmZzZXQgPCAodHlwZSktPmxlbmd0aAorIE9wZXJhbmRzIG9mIDwg aGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKGludCwgVUxPTkdFU1QpOiBvZmZz ZXQgPCAodHlwZSktPmxlbmd0aAogTE9DIG1pcHMtdGRlcC5jOjUwNTYKLSBP cGVyYW5kcyBvZiA+IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChpbnQsIFVJ TlQpOiBvZmZzZXQgKyB4ZmVyID4gKHR5cGUpLT5sZW5ndGgKKyBPcGVyYW5k cyBvZiA+IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChpbnQsIFVMT05HRVNU KTogb2Zmc2V0ICsgeGZlciA+ICh0eXBlKS0+bGVuZ3RoCiBMT0MgbWlwcy10 ZGVwLmM6NTA1NwotIEFzc2lnbm1lbnQgb2YgVUlOVCB0byBpbnQ6IHhmZXIg PSAodHlwZSktPmxlbmd0aCAtIG9mZnNldAorIEFzc2lnbm1lbnQgb2YgVUxP TkdFU1QgdG8gaW50OiB4ZmVyID0gKHR5cGUpLT5sZW5ndGggLSBvZmZzZXQK IExPQyBtaXBzLXRkZXAuYzo1MTIzIChtaXBzLXRkZXAuYzo1MTIxKQotIFZh cmlhYmxlIGFyZ2xlbiBpbml0aWFsaXplZCB0byB0eXBlIFVJTlQsIGV4cGVj dHMgaW50OiAoYXJnX3R5cGUpLT5sZW5ndGgKLUxPQyBtaXBzLXRkZXAuYzo1 MTI0CiAgVGVzdCBleHByZXNzaW9uIGZvciBpZiBub3QgYm9vbGVhbiwgdHlw ZSBpbnQ6IG1pcHNfdHlwZV9uZWVkc19kb3VibGVfYWxpZ24oYXJnX3R5cGUp CiBMT0MgbWlwcy10ZGVwLmM6NTEyNCAobWlwcy10ZGVwLmM6NTEyNSkKLSBG dW5jdGlvbiBhbGlnbl91cCBleHBlY3RzIGFyZyAxIHRvIGJlIFVMT05HRVNU IGdldHMgaW50OiBsZW4KLUxPQyBtaXBzLXRkZXAuYzo1MTI1Ci0gQXNzaWdu bWVudCBvZiBVTE9OR0VTVCB0byBpbnQ6IGxlbiA9IGFsaWduX3VwKGxlbiwg TUlQUzMyX1JFR1NJWkUgKiAyKQorIEZ1bmN0aW9uIGFsaWduX3VwIGV4cGVj dHMgYXJnIDEgdG8gYmUgVUxPTkdFU1QgZ2V0cyBMT05HRVNUOiBsZW4KIExP QyBtaXBzLXRkZXAuYzo1MTI0IChtaXBzLXRkZXAuYzo1MTI3KQotIEZ1bmN0 aW9uIGFsaWduX3VwIGV4cGVjdHMgYXJnIDEgdG8gYmUgVUxPTkdFU1QgZ2V0 cyBpbnQ6IGFyZ2xlbgorIEFzc2lnbm1lbnQgb2YgVUxPTkdFU1QgdG8gTE9O R0VTVDogbGVuID0gYWxpZ25fdXAobGVuLCBNSVBTMzJfUkVHU0laRSAqIDIp CiBMT0MgbWlwcy10ZGVwLmM6NTE1OSAobWlwcy10ZGVwLmM6NTE2MCkKICBW YXJpYWJsZSBsZW4gc2hhZG93cyBvdXRlciBkZWNsYXJhdGlvbgogICAgTE9D IG1pcHMtdGRlcC5jOjUwOTUKLSBQcmV2aW91cyBkZWZpbml0aW9uIG9mIGxl bjogaW50CisgUHJldmlvdXMgZGVmaW5pdGlvbiBvZiBsZW46IExPTkdFU1QK IExPQyBtaXBzLXRkZXAuYzo1MjM0IChtaXBzLXRkZXAuYzo1MjM1KQorIEZ1 bmN0aW9uIGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciBleHBlY3RzIGFyZyAy IHRvIGJlIGludCBnZXRzIExPTkdFU1Q6IGxlbgorTE9DIG1pcHMtdGRlcC5j OjUyMzQKICBWYXJpYWJsZSByZWd2YWwgaW5pdGlhbGl6ZWQgdG8gdHlwZSBV TE9OR0VTVCwgZXhwZWN0cyBMT05HRVNUOiBleHRyYWN0X3Vuc2lnbmVkX2lu dGVnZXIodmFsLCBsZW4sIGJ5dGVfb3JkZXIpCiBMT0MgbWlwcy10ZGVwLmM6 NTIzNyAobWlwcy10ZGVwLmM6NTI0MCkKKyBGdW5jdGlvbiBwaGV4IGV4cGVj dHMgYXJnIDIgdG8gYmUgaW50IGdldHMgTE9OR0VTVDogbGVuCitMT0MgbWlw cy10ZGVwLmM6NTIzOQogIEZ1bmN0aW9uIHJlZ2NhY2hlX2Nvb2tlZF93cml0 ZV91bnNpZ25lZCBleHBlY3RzIGFyZyAzIHRvIGJlIFVMT05HRVNUIGdldHMg TE9OR0VTVDogcmVndmFsCiBMT0MgbWlwcy10ZGVwLmM6NTI0NSAobWlwcy10 ZGVwLmM6NTI0NykKKyBGdW5jdGlvbiBwaGV4IGV4cGVjdHMgYXJnIDIgdG8g YmUgaW50IGdldHMgTE9OR0VTVDogbGVuCitMT0MgbWlwcy10ZGVwLmM6NTI0 NgogIEZ1bmN0aW9uIHJlZ2NhY2hlX2Nvb2tlZF93cml0ZV91bnNpZ25lZCBl eHBlY3RzIGFyZyAzIHRvIGJlIFVMT05HRVNUIGdldHMgTE9OR0VTVDogcmVn dmFsCiBMT0MgbWlwcy10ZGVwLmM6NTI3NyAobWlwcy10ZGVwLmM6NTI4MCkK KyBWYXJpYWJsZSBwYXJ0aWFsX2xlbiBpbml0aWFsaXplZCB0byB0eXBlIExP TkdFU1QsIGV4cGVjdHMgaW50OiAobGVuIDwgTUlQUzMyX1JFR1NJWkUgPyBs ZW4gOiBNSVBTMzJfUkVHU0laRSkKK0xPQyBtaXBzLXRkZXAuYzo1Mjc5CiAg VGVzdCBleHByZXNzaW9uIGZvciBpZiBub3QgYm9vbGVhbiwgdHlwZSBpbnQ6 IG1pcHNfZGVidWcKIExPQyBtaXBzLXRkZXAuYzo1NDM3IChtaXBzLXRkZXAu Yzo1NDM4KQotIEZ1bmN0aW9uIG1pcHNfeGZlcl9yZWdpc3RlciBleHBlY3Rz IGFyZyA0IHRvIGJlIGludCBnZXRzIFVJTlQ6ICh0eXBlKS0+bGVuZ3RoCisg RnVuY3Rpb24gbWlwc194ZmVyX3JlZ2lzdGVyIGV4cGVjdHMgYXJnIDQgdG8g YmUgaW50IGdldHMgVUxPTkdFU1Q6ICh0eXBlKS0+bGVuZ3RoCiBMT0MgbWlw cy10ZGVwLmM6NTQ0MyAobWlwcy10ZGVwLmM6NTQ0NCkKLSBGdW5jdGlvbiBt aXBzX3hmZXJfcmVnaXN0ZXIgZXhwZWN0cyBhcmcgNCB0byBiZSBpbnQgZ2V0 cyBVSU5UOiAodHlwZSktPmxlbmd0aAorIEZ1bmN0aW9uIG1pcHNfeGZlcl9y ZWdpc3RlciBleHBlY3RzIGFyZyA0IHRvIGJlIGludCBnZXRzIFVMT05HRVNU OiAodHlwZSktPmxlbmd0aAogTE9DIG1pcHMtdGRlcC5jOjU1OTIgKG1pcHMt dGRlcC5jOjU1OTMpCi0gT3BlcmFuZHMgb2YgPCBoYXZlIGluY29tcGF0aWJs ZSB0eXBlcyAoaW50LCBVSU5UKTogb2Zmc2V0IDwgKHR5cGUpLT5sZW5ndGgK KyBPcGVyYW5kcyBvZiA8IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChpbnQs IFVMT05HRVNUKTogb2Zmc2V0IDwgKHR5cGUpLT5sZW5ndGgKIExPQyBtaXBz LXRkZXAuYzo1NTk2IChtaXBzLXRkZXAuYzo1NTk3KQotIE9wZXJhbmRzIG9m ID4gaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKGludCwgVUlOVCk6IG9mZnNl dCArIHhmZXIgPiAodHlwZSktPmxlbmd0aAorIE9wZXJhbmRzIG9mID4gaGF2 ZSBpbmNvbXBhdGlibGUgdHlwZXMgKGludCwgVUxPTkdFU1QpOiBvZmZzZXQg KyB4ZmVyID4gKHR5cGUpLT5sZW5ndGgKIExPQyBtaXBzLXRkZXAuYzo1NTk3 IChtaXBzLXRkZXAuYzo1NTk4KQotIEFzc2lnbm1lbnQgb2YgVUlOVCB0byBp bnQ6IHhmZXIgPSAodHlwZSktPmxlbmd0aCAtIG9mZnNldAorIEFzc2lnbm1l bnQgb2YgVUxPTkdFU1QgdG8gaW50OiB4ZmVyID0gKHR5cGUpLT5sZW5ndGgg LSBvZmZzZXQKIExPQyBtaXBzLXRkZXAuYzo1NjUyIChtaXBzLXRkZXAuYzo1 NjUwKQotIFZhcmlhYmxlIGFyZ2xlbiBpbml0aWFsaXplZCB0byB0eXBlIFVJ TlQsIGV4cGVjdHMgaW50OiAoYXJnX3R5cGUpLT5sZW5ndGgKLUxPQyBtaXBz LXRkZXAuYzo1NjUzCi0gRnVuY3Rpb24gYWxpZ25fdXAgZXhwZWN0cyBhcmcg MSB0byBiZSBVTE9OR0VTVCBnZXRzIGludDogYXJnbGVuCi1MT0MgbWlwcy10 ZGVwLmM6NTY1NAogIEZyZXNoIHN0b3JhZ2UgYXJnX3R5cGUgbm90IHJlbGVh c2VkIGJlZm9yZSBzY29wZSBleGl0CiAgICBMT0MgbWlwcy10ZGVwLmM6NTY0 OCAobWlwcy10ZGVwLmM6NTY0OSkKICBGcmVzaCBzdG9yYWdlIGFyZ190eXBl IGNyZWF0ZWQKIExPQyBtaXBzLXRkZXAuYzo1Njg1IChtaXBzLXRkZXAuYzo1 Njg3KQogIFZhcmlhYmxlIGxlbiBzaGFkb3dzIG91dGVyIGRlY2xhcmF0aW9u CiAgICBMT0MgbWlwcy10ZGVwLmM6NTYyMyAobWlwcy10ZGVwLmM6NTYyNCkK LSBQcmV2aW91cyBkZWZpbml0aW9uIG9mIGxlbjogaW50CisgUHJldmlvdXMg ZGVmaW5pdGlvbiBvZiBsZW46IExPTkdFU1QKIExPQyBtaXBzLXRkZXAuYzo1 NzAxIChtaXBzLXRkZXAuYzo1NzAyKQorIEZ1bmN0aW9uIGV4dHJhY3Rfc2ln bmVkX2ludGVnZXIgZXhwZWN0cyBhcmcgMiB0byBiZSBpbnQgZ2V0cyBMT05H RVNUOiBsZW4KK0xPQyBtaXBzLXRkZXAuYzo1NzAwCiAgTmV3IGZyZXNoIHN0 b3JhZ2UgKHR5cGUgZ2RiX2J5dGUgKikgcGFzc2VkIGFzIGltcGxpY2l0bHkg dGVtcCAobm90IHJlbGVhc2VkKTogdmFsdWVfY29udGVudHMoYXJnKQogTE9D IG1pcHMtdGRlcC5jOjU3MDQgKG1pcHMtdGRlcC5jOjU3MDcpCisgRnVuY3Rp b24gc3RvcmVfc2lnbmVkX2ludGVnZXIgZXhwZWN0cyBhcmcgMiB0byBiZSBp bnQgZ2V0cyBMT05HRVNUOiBsZW4KK0xPQyBtaXBzLXRkZXAuYzo1NzA1CiAg RnVuY3Rpb24gc3RvcmVfc2lnbmVkX2ludGVnZXIgZXhwZWN0cyBhcmcgNCB0 byBiZSBMT05HRVNUIGdldHMgQ09SRV9BRERSOiBtYWtlX2NvbXBhY3RfYWRk cihhZGRyKQogTE9DIG1pcHMtdGRlcC5jOjU3MjMgKG1pcHMtdGRlcC5jOjU3 MjUpCisgRnVuY3Rpb24gZXh0cmFjdF91bnNpZ25lZF9pbnRlZ2VyIGV4cGVj dHMgYXJnIDIgdG8gYmUgaW50IGdldHMgTE9OR0VTVDogbGVuCitMT0MgbWlw cy10ZGVwLmM6NTcyMwogIFZhcmlhYmxlIHJlZ3ZhbCBpbml0aWFsaXplZCB0 byB0eXBlIFVMT05HRVNULCBleHBlY3RzIExPTkdFU1Q6IGV4dHJhY3RfdW5z aWduZWRfaW50ZWdlcih2YWwsIGxlbiwgYnl0ZV9vcmRlcikKIExPQyBtaXBz LXRkZXAuYzo1NzI2IChtaXBzLXRkZXAuYzo1NzI5KQorIEZ1bmN0aW9uIHBo ZXggZXhwZWN0cyBhcmcgMiB0byBiZSBpbnQgZ2V0cyBMT05HRVNUOiBsZW4K K0xPQyBtaXBzLXRkZXAuYzo1NzI3CiAgRnVuY3Rpb24gcmVnY2FjaGVfY29v a2VkX3dyaXRlX3Vuc2lnbmVkIGV4cGVjdHMgYXJnIDMgdG8gYmUgVUxPTkdF U1QgZ2V0cyBMT05HRVNUOiByZWd2YWwKIExPQyBtaXBzLXRkZXAuYzo1NzMw IChtaXBzLXRkZXAuYzo1NzMzKQorIEZ1bmN0aW9uIHBoZXggZXhwZWN0cyBh cmcgMiB0byBiZSBpbnQgZ2V0cyBMT05HRVNUOiBsZW4KK0xPQyBtaXBzLXRk ZXAuYzo1NzMxCiAgRnVuY3Rpb24gcmVnY2FjaGVfY29va2VkX3dyaXRlX3Vu c2lnbmVkIGV4cGVjdHMgYXJnIDMgdG8gYmUgVUxPTkdFU1QgZ2V0cyBMT05H RVNUOiByZWd2YWwKIExPQyBtaXBzLXRkZXAuYzo1NzUxIChtaXBzLXRkZXAu Yzo1NzU1KQorIFZhcmlhYmxlIHBhcnRpYWxfbGVuIGluaXRpYWxpemVkIHRv IHR5cGUgTE9OR0VTVCwgZXhwZWN0cyBpbnQ6IChsZW4gPCBNSVBTNjRfUkVH U0laRSA/IGxlbiA6IE1JUFM2NF9SRUdTSVpFKQorTE9DIG1pcHMtdGRlcC5j OjU3NTMKICBUZXN0IGV4cHJlc3Npb24gZm9yIGlmIG5vdCBib29sZWFuLCB0 eXBlIGludDogbWlwc19kZWJ1ZwogTE9DIG1pcHMtdGRlcC5jOjU3NzIgKG1p cHMtdGRlcC5jOjU3NzcpCisgQXNzaWdubWVudCBvZiBMT05HRVNUIHRvIGlu dDogbG9uZ3dvcmRfb2Zmc2V0ID0gTUlQUzY0X1JFR1NJWkUgLSBsZW4KK0xP QyBtaXBzLXRkZXAuYzo1Nzc1CiAgVGVzdCBleHByZXNzaW9uIGZvciBpZiBu b3QgYm9vbGVhbiwgdHlwZSBpbnQ6IG1pcHNfZGVidWcKIExPQyBtaXBzLXRk ZXAuYzo1Nzc4IChtaXBzLXRkZXAuYzo1NzgwKQotIEZ1bmN0aW9uIHBhZGRy ZXNzIGV4cGVjdHMgYXJnIDIgdG8gYmUgQ09SRV9BRERSIGdldHMgaW50OiBz dGFja19vZmZzZXQKKyBGdW5jdGlvbiBwYWRkcmVzcyBleHBlY3RzIGFyZyAy IHRvIGJlIENPUkVfQUREUiBnZXRzIExPTkdFU1Q6IHN0YWNrX29mZnNldAog TE9DIG1pcHMtdGRlcC5jOjU5MDIgKG1pcHMtdGRlcC5jOjU5MDQpCi0gRnVu Y3Rpb24gbWlwc194ZmVyX3JlZ2lzdGVyIGV4cGVjdHMgYXJnIDQgdG8gYmUg aW50IGdldHMgVUlOVDogKHR5cGUpLT5sZW5ndGgKKyBGdW5jdGlvbiBtaXBz X3hmZXJfcmVnaXN0ZXIgZXhwZWN0cyBhcmcgNCB0byBiZSBpbnQgZ2V0cyBV TE9OR0VTVDogKHR5cGUpLT5sZW5ndGgKIExPQyBtaXBzLXRkZXAuYzo1OTA4 IChtaXBzLXRkZXAuYzo1OTEwKQotIEZ1bmN0aW9uIG1pcHNfeGZlcl9yZWdp c3RlciBleHBlY3RzIGFyZyA0IHRvIGJlIGludCBnZXRzIFVJTlQ6ICh0eXBl KS0+bGVuZ3RoCisgRnVuY3Rpb24gbWlwc194ZmVyX3JlZ2lzdGVyIGV4cGVj dHMgYXJnIDQgdG8gYmUgaW50IGdldHMgVUxPTkdFU1Q6ICh0eXBlKS0+bGVu Z3RoCiBMT0MgbWlwcy10ZGVwLmM6NTkyMCAobWlwcy10ZGVwLmM6NTkyMikK LSBPcGVyYW5kcyBvZiA8IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChpbnQs IFVJTlQpOiBvZmZzZXQgPCAodHlwZSktPmxlbmd0aAorIE9wZXJhbmRzIG9m IDwgaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKGludCwgVUxPTkdFU1QpOiBv ZmZzZXQgPCAodHlwZSktPmxlbmd0aAogTE9DIG1pcHMtdGRlcC5jOjU5MjQg KG1pcHMtdGRlcC5jOjU5MjYpCi0gT3BlcmFuZHMgb2YgPiBoYXZlIGluY29t cGF0aWJsZSB0eXBlcyAoaW50LCBVSU5UKTogb2Zmc2V0ICsgeGZlciA+ICh0 eXBlKS0+bGVuZ3RoCisgT3BlcmFuZHMgb2YgPiBoYXZlIGluY29tcGF0aWJs ZSB0eXBlcyAoaW50LCBVTE9OR0VTVCk6IG9mZnNldCArIHhmZXIgPiAodHlw ZSktPmxlbmd0aAogTE9DIG1pcHMtdGRlcC5jOjU5MjUgKG1pcHMtdGRlcC5j OjU5MjcpCi0gQXNzaWdubWVudCBvZiBVSU5UIHRvIGludDogeGZlciA9ICh0 eXBlKS0+bGVuZ3RoIC0gb2Zmc2V0CisgQXNzaWdubWVudCBvZiBVTE9OR0VT VCB0byBpbnQ6IHhmZXIgPSAodHlwZSktPmxlbmd0aCAtIG9mZnNldAogTE9D IC4uL2luY2x1ZGUvb3Bjb2RlL21pcHMuaDo3MTEKICBGaWxlIHN0YXRpYyB2 YXJpYWJsZSBtaXBzX2lzYV90YWJsZSBkZWNsYXJlZCBidXQgbm90IHVzZWQK IExPQyBtbjEwMzAwLXRkZXAuYzoxMDMgKG1uMTAzMDAtdGRlcC5jOjEwMikK LSBSZXR1cm4gdmFsdWUgdHlwZSBVSU5UIGRvZXMgbm90IG1hdGNoIGRlY2xh cmVkIHR5cGUgaW50OiAodHlwZSktPmxlbmd0aAorIFJldHVybiB2YWx1ZSB0 eXBlIFVMT05HRVNUIGRvZXMgbm90IG1hdGNoIGRlY2xhcmVkIHR5cGUgTE9O R0VTVDogKHR5cGUpLT5sZW5ndGgKIExPQyBtbjEwMzAwLXRkZXAuYzoxMDYg KG1uMTAzMDAtdGRlcC5jOjEwNSkKLSBSZXR1cm4gdmFsdWUgdHlwZSBVSU5U IGRvZXMgbm90IG1hdGNoIGRlY2xhcmVkIHR5cGUgaW50OiAodHlwZSktPmxl bmd0aCAvIDIKKyBSZXR1cm4gdmFsdWUgdHlwZSBVTE9OR0VTVCBkb2VzIG5v dCBtYXRjaCBkZWNsYXJlZCB0eXBlIExPTkdFU1Q6ICh0eXBlKS0+bGVuZ3Ro IC8gMgogTE9DIG1uMTAzMDAtdGRlcC5jOjExNCAobW4xMDMwMC10ZGVwLmM6 MTEzKQotIExlZnQgb3BlcmFuZCBvZiA8PD0gbWF5IGJlIG5lZ2F0aXZlIChp bnQpOiBhbGlnbiA8PD0gMQorIExlZnQgb3BlcmFuZCBvZiA8PD0gbWF5IGJl IG5lZ2F0aXZlIChMT05HRVNUKTogYWxpZ24gPDw9IDEKIExPQyBtbjEwMzAw LXRkZXAuYzoxMjkgKG1uMTAzMDAtdGRlcC5jOjEyOCkKLSBQYXRoIHdpdGgg bm8gcmV0dXJuIGluIGZ1bmN0aW9uIGRlY2xhcmVkIHRvIHJldHVybiBpbnQK KyBQYXRoIHdpdGggbm8gcmV0dXJuIGluIGZ1bmN0aW9uIGRlY2xhcmVkIHRv IHJldHVybiBMT05HRVNUCiBtbjEwMzAwLXRkZXAuYzogKGluIGZ1bmN0aW9u IG1uMTAzMDBfdXNlX3N0cnVjdF9jb252ZW50aW9uKQorTE9DIG1veGllLXRk ZXAuYzoxMzUKKyBGdW5jdGlvbiBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIg ZXhwZWN0cyBhcmcgMiB0byBiZSBpbnQgZ2V0cyBMT05HRVNUOiBsZW4gLSA0 CiBMT0MgbW94aWUtdGRlcC5jOjMzMCAobW94aWUtdGRlcC5jOjMzNikKKyBG dW5jdGlvbiBzdG9yZV91bnNpZ25lZF9pbnRlZ2VyIGV4cGVjdHMgYXJnIDIg dG8gYmUgaW50IGdldHMgTE9OR0VTVDogKGxlbiA+IDQgPyBsZW4gLSA0IDog bGVuKQorTE9DIG1veGllLXRkZXAuYzozMzYKICBSZXR1cm4gdmFsdWUgKHR5 cGUgZW51bSByZWdpc3Rlcl9zdGF0dXMpIGlnbm9yZWQ6IHJlZ2NhY2hlX2Nv b2tlZF8uLi4KIExPQyBicmVha3BvaW50Lmg6ODI5CiAgRmlsZSBzdGF0aWMg ZnVuY3Rpb24gVkVDX2JyZWFrcG9pbnRfcF9zYWZlX2luc2VydCBkZWNsYXJl ZCBidXQgbm90IHVzZWQKICAgIExPQyBicmVha3BvaW50Lmg6ODI5CiAgRGVm aW5pdGlvbiBvZiBWRUNfYnJlYWtwb2ludF9wX3NhZmVfaW5zZXJ0CiBMT0Mg bXQtdGRlcC5jOjM1MwotIEZ1bmN0aW9uIHJlYWRfbWVtb3J5IGV4cGVjdHMg YXJnIDMgdG8gYmUgc3NpemVfdCBnZXRzIFVJTlQ6ICh0eXBlKS0+bGVuZ3Ro CisgRnVuY3Rpb24gcmVhZF9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBz c2l6ZV90IGdldHMgVUxPTkdFU1Q6ICh0eXBlKS0+bGVuZ3RoCiBMT0MgbXQt dGRlcC5jOjM2MQotIEZ1bmN0aW9uIHdyaXRlX21lbW9yeSBleHBlY3RzIGFy ZyAzIHRvIGJlIHNzaXplX3QgZ2V0cyBVSU5UOiAodHlwZSktPmxlbmd0aAor IEZ1bmN0aW9uIHdyaXRlX21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJlIHNz aXplX3QgZ2V0cyBVTE9OR0VTVDogKHR5cGUpLT5sZW5ndGgKIExPQyBtdC10 ZGVwLmM6Mzg2Ci0gRnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8g YmUgc2l6ZV90IGdldHMgVUlOVDogKHR5cGUpLT5sZW5ndGgKKyBGdW5jdGlv biBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXplX3QgZ2V0cyBVTE9O R0VTVDogKHR5cGUpLT5sZW5ndGgKIExPQyBtdC10ZGVwLmM6Nzg2Ci0gVmFy aWFibGUgc3RhY2tfZGVzdCBpbml0aWFsaXplZCB0byB0eXBlIENPUkVfQURE UiwgZXhwZWN0cyBpbnQ6IHNwCisgVmFyaWFibGUgc3RhY2tfZGVzdCBpbml0 aWFsaXplZCB0byB0eXBlIENPUkVfQUREUiwgZXhwZWN0cyBMT05HRVNUOiBz cAogTE9DIG10LXRkZXAuYzo4MjcgKG10LXRkZXAuYzo4MjgpCi0gRnVuY3Rp b24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgaW50 OiB0eXBlbGVuCisgQXNzaWdubWVudCBvZiBMT05HRVNUIHRvIGludDogc3Bs aXRfcGFyYW1fbGVuID0gdHlwZWxlbgogTE9DIG10LXRkZXAuYzo4MjggKG10 LXRkZXAuYzo4MzgpCi0gRnVuY3Rpb24gd3JpdGVfbWVtb3J5IGV4cGVjdHMg YXJnIDEgdG8gYmUgQ09SRV9BRERSIGdldHMgaW50OiBzdGFja19kZXN0Cisg RnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdl dHMgTE9OR0VTVDogdHlwZWxlbgogTE9DIG10LXRkZXAuYzo4MzgKLSBGdW5j dGlvbiB3cml0ZV9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90 IGdldHMgaW50OiB0eXBlbGVuCisgRnVuY3Rpb24gd3JpdGVfbWVtb3J5IGV4 cGVjdHMgYXJnIDEgdG8gYmUgQ09SRV9BRERSIGdldHMgTE9OR0VTVDogc3Rh Y2tfZGVzdAorTE9DIG10LXRkZXAuYzo4MzgKKyBGdW5jdGlvbiB3cml0ZV9t ZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdldHMgTE9OR0VT VDogdHlwZWxlbgorTE9DIG10LXRkZXAuYzo4NTEKKyBBc3NpZ25tZW50IG9m IExPTkdFU1QgdG8gaW50OiBzbGFja2xlbiA9ICg0IC0gKHR5cGVsZW4gJSA0 KSkgJSA0CiBMT0MgbXQtdGRlcC5jOjg1MgotIEZ1bmN0aW9uIENfYWxsb2Nh IGV4cGVjdHMgYXJnIDEgdG8gYmUgc2l6ZV90IGdldHMgaW50OiB0eXBlbGVu ICsgc2xhY2tsZW4KKyBGdW5jdGlvbiBDX2FsbG9jYSBleHBlY3RzIGFyZyAx IHRvIGJlIHNpemVfdCBnZXRzIExPTkdFU1Q6IHR5cGVsZW4gKyBzbGFja2xl bgogTE9DIG10LXRkZXAuYzo4NTMKLSBGdW5jdGlvbiBtZW1jcHkgZXhwZWN0 cyBhcmcgMyB0byBiZSBzaXplX3QgZ2V0cyBpbnQ6IHR5cGVsZW4KKyBGdW5j dGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXplX3QgZ2V0cyBM T05HRVNUOiB0eXBlbGVuCiBMT0MgbXQtdGRlcC5jOjg1NwotIEZ1bmN0aW9u IHdyaXRlX21lbW9yeSBleHBlY3RzIGFyZyAxIHRvIGJlIENPUkVfQUREUiBn ZXRzIGludDogc3RhY2tfZGVzdAorIEZ1bmN0aW9uIHdyaXRlX21lbW9yeSBl eHBlY3RzIGFyZyAxIHRvIGJlIENPUkVfQUREUiBnZXRzIExPTkdFU1Q6IHN0 YWNrX2Rlc3QKIExPQyBtdC10ZGVwLmM6ODU3Ci0gRnVuY3Rpb24gd3JpdGVf bWVtb3J5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc3NpemVfdCBnZXRzIGludDog dHlwZWxlbiArIHNsYWNrbGVuCisgRnVuY3Rpb24gd3JpdGVfbWVtb3J5IGV4 cGVjdHMgYXJnIDMgdG8gYmUgc3NpemVfdCBnZXRzIExPTkdFU1Q6IHR5cGVs ZW4gKyBzbGFja2xlbgogTE9DIG10LXRkZXAuYzo4NjUKLSBGdW5jdGlvbiB3 cml0ZV9tZW1vcnkgZXhwZWN0cyBhcmcgMSB0byBiZSBDT1JFX0FERFIgZ2V0 cyBpbnQ6IHN0YWNrX2Rlc3QKKyBGdW5jdGlvbiB3cml0ZV9tZW1vcnkgZXhw ZWN0cyBhcmcgMSB0byBiZSBDT1JFX0FERFIgZ2V0cyBMT05HRVNUOiBzdGFj a19kZXN0CiBMT0MgbXQtdGRlcC5jOjg4MgotIFJldHVybiB2YWx1ZSB0eXBl IGludCBkb2VzIG5vdCBtYXRjaCBkZWNsYXJlZCB0eXBlIENPUkVfQUREUjog c3RhY2tfZGVzdAorIFJldHVybiB2YWx1ZSB0eXBlIExPTkdFU1QgZG9lcyBu b3QgbWF0Y2ggZGVjbGFyZWQgdHlwZSBDT1JFX0FERFI6IHN0YWNrX2Rlc3QK IExPQyBicmVha3BvaW50Lmg6ODI5CiAgRmlsZSBzdGF0aWMgZnVuY3Rpb24g VkVDX2JyZWFrcG9pbnRfcF9zYWZlX2luc2VydCBkZWNsYXJlZCBidXQgbm90 IHVzZWQKICAgIExPQyBicmVha3BvaW50Lmg6ODI5CiAgRGVmaW5pdGlvbiBv ZiBWRUNfYnJlYWtwb2ludF9wX3NhZmVfaW5zZXJ0CiBMT0Mgb2JqYy1sYW5n LmM6MzcxIChvYmpjLWxhbmcuYzozNzkpCisgT3BlcmFuZHMgb2YgPCBoYXZl IGluY29tcGF0aWJsZSB0eXBlcyAoVUlOVCwgVUxPTkdFU1QpOiBpIDwgbGVu Z3RoCitMT0Mgb2JqYy1sYW5nLmM6Mzc5CiAgVGVzdCBleHByZXNzaW9uIGZv ciBpZiBub3QgYm9vbGVhbiwgdHlwZSBpbnQ6IHF1aXRfZmxhZwogTE9DIG9i amMtbGFuZy5jOjM4OSAob2JqYy1sYW5nLmM6Mzk3KQorIE9wZXJhbmRzIG9m IDwgaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKFVJTlQsIFVMT05HRVNUKTog cmVwMSA8IGxlbmd0aAorTE9DIG9iamMtbGFuZy5jOjM5NwogIFRlc3QgZXhw cmVzc2lvbiBmb3IgaWYgbm90IGJvb2xlYW4sIHR5cGUgaW50OiBpbl9xdW90 ZXMKIExPQyBvYmpjLWxhbmcuYzo0MzUKKyBPcGVyYW5kcyBvZiA8IGhhdmUg aW5jb21wYXRpYmxlIHR5cGVzIChVSU5ULCBVTE9OR0VTVCk6IGkgPCBsZW5n dGgKK0xPQyBvYmpjLWxhbmcuYzo0MzUKICBMZWZ0IG9wZXJhbmQgb2YgfHwg aXMgbm9uLWJvb2xlYW4gKGludCk6IGZvcmNlX2VsbGlwc2VzIHx8IGkgPCBs ZW5ndGgKIExPQyBtZW1yYW5nZS5oOjM4CiAgRmlsZSBzdGF0aWMgZnVuY3Rp b24gVkVDX21lbV9yYW5nZV9zX3NhZmVfaW5zZXJ0IGRlY2xhcmVkIGJ1dCBu b3QgdXNlZAogICAgTE9DIG1lbXJhbmdlLmg6MzgKICBEZWZpbml0aW9uIG9m IFZFQ19tZW1fcmFuZ2Vfc19zYWZlX2luc2VydAogTE9DIG9wZW5jbC1sYW5n LmM6MTkxIChvcGVuY2wtbGFuZy5jOjE5MCkKLSBBc3NpZ25tZW50IG9mIExP TkdFU1QgdG8gaW50OiBuID0gb2Zmc2V0ICsgaGlnaGIgLSBsb3diICsgMQot TE9DIG9wZW5jbC1sYW5nLmM6MTkxCiAgTmV3IGZyZXNoIHN0b3JhZ2UgKHR5 cGUgY2hhciAqKSBwYXNzZWQgYXMgaW1wbGljaXRseSB0ZW1wIChub3QgcmVs ZWFzZWQpOiBnZXR0ZXh0KCJBc3NlcnRpb24gYCVzJyBmYWlsZWQuIikKIExP QyBvcGVuY2wtbGFuZy5jOjE5NgotIEZ1bmN0aW9uIG1lbWNweSBleHBlY3Rz IGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIGludDogZWxzaXplCisgRnVuY3Rp b24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgTE9O R0VTVDogZWxzaXplCiBMT0Mgb3BlbmNsLWxhbmcuYzoyMzYgKG9wZW5jbC1s YW5nLmM6MjE5KQotIEFzc2lnbm1lbnQgb2YgTE9OR0VTVCB0byBpbnQ6IG4g PSBvZmZzZXQgKyBoaWdoYiAtIGxvd2IgKyAxCi1MT0Mgb3BlbmNsLWxhbmcu YzoyMzYKLSBGdW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0byBiZSBz aXplX3QgZ2V0cyBpbnQ6IGVsc2l6ZQorIEZ1bmN0aW9uIG1lbWNweSBleHBl Y3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIExPTkdFU1Q6IGVsc2l6ZQor TE9DIG9wZW5jbC1sYW5nLmM6MjUzCisgVmFyaWFibGUgc3RhcnRyZXN0IGlu aXRpYWxpemVkIHRvIHR5cGUgTE9OR0VTVCwgZXhwZWN0cyBpbnQ6IG9mZnNl dCAlIGVsc2l6ZQorTE9DIG9wZW5jbC1sYW5nLmM6MjU1CisgVmFyaWFibGUg ZW5kcmVzdCBpbml0aWFsaXplZCB0byB0eXBlIExPTkdFU1QsIGV4cGVjdHMg aW50OiAob2Zmc2V0ICsgbGVuZ3RoKSAlIGVsc2l6ZQogTE9DIG9wZW5jbC1s YW5nLmM6MjY4IChvcGVuY2wtbGFuZy5jOjI2OSkKKyBDb25kaXRpb25hbCBj bGF1c2VzIGFyZSBub3Qgb2Ygc2FtZSB0eXBlOiBlbmRyZXN0IChpbnQpLCBl bHNpemUgKExPTkdFU1QpCitMT0Mgb3BlbmNsLWxhbmcuYzoyNzAKICBPcGVy YW5kIG9mICEgaXMgbm9uLWJvb2xlYW4gKGludCk6ICF2YWx1ZV9iaXRzX3Zh bGlkKGMtPnZhbCwgYy0+aW5kaWNlc1tpXSAqIGVsc2l6ZSArIGNvbXBfb2Zm c2V0LCBjb21wX2xlbmd0aCkKK0xPQyBvcGVuY2wtbGFuZy5jOjMwNworIFZh cmlhYmxlIHN0YXJ0cmVzdCBpbml0aWFsaXplZCB0byB0eXBlIExPTkdFU1Qs IGV4cGVjdHMgaW50OiBvZmZzZXQgJSBlbHNpemUKK0xPQyBvcGVuY2wtbGFu Zy5jOjMwOQorIFZhcmlhYmxlIGVuZHJlc3QgaW5pdGlhbGl6ZWQgdG8gdHlw ZSBMT05HRVNULCBleHBlY3RzIGludDogKG9mZnNldCArIGxlbmd0aCkgJSBl bHNpemUKIExPQyBvcGVuY2wtbGFuZy5jOjMyMiAob3BlbmNsLWxhbmcuYzoz MjMpCisgQ29uZGl0aW9uYWwgY2xhdXNlcyBhcmUgbm90IG9mIHNhbWUgdHlw ZTogZW5kcmVzdCAoaW50KSwgZWxzaXplIChMT05HRVNUKQorTE9DIG9wZW5j bC1sYW5nLmM6MzI0CiAgT3BlcmFuZCBvZiAhIGlzIG5vbi1ib29sZWFuIChp bnQpOiAhdmFsdWVfYml0c19zeW50aGV0aWNfcG9pbnRlcihjLT52YWwsIGMt PmluZGljZXNbaV0gKiBlbHNpemUgKyBjb21wX29mZnNldCwgY29tcF9sZW5n dGgpCiBMT0Mgb3BlbmNsLWxhbmcuYzo0MjggKG9wZW5jbC1sYW5nLmM6NDI3 KQotIEZ1bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVf dCBnZXRzIFVJTlQ6IChlbG1fdHlwZSktPmxlbmd0aAorIEZ1bmN0aW9uIG1l bWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIFVMT05HRVNU OiAoZWxtX3R5cGUpLT5sZW5ndGgKIExPQyBvcGVuY2wtbGFuZy5jOjU4MSAo b3BlbmNsLWxhbmcuYzo1ODApCi0gRnVuY3Rpb24gbWVtc2V0IGV4cGVjdHMg YXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgVUlOVDogKGVsdHlwZSktPmxlbmd0 aAorIEZ1bmN0aW9uIG1lbXNldCBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVf dCBnZXRzIFVMT05HRVNUOiAoZWx0eXBlKS0+bGVuZ3RoCiBMT0Mgb3BlbmNs LWxhbmcuYzo2ODEgKG9wZW5jbC1sYW5nLmM6NjgwKQotIEZ1bmN0aW9uIG1l bXNldCBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIFVJTlQ6IChl bHR5cGUxKS0+bGVuZ3RoCisgRnVuY3Rpb24gbWVtc2V0IGV4cGVjdHMgYXJn IDMgdG8gYmUgc2l6ZV90IGdldHMgVUxPTkdFU1Q6IChlbHR5cGUxKS0+bGVu Z3RoCiBMT0Mgb3BlbmNsLWxhbmcuYzo5MDEgKG9wZW5jbC1sYW5nLmM6OTAw KQotIEZ1bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVf dCBnZXRzIFVJTlQ6IChlbHR5cGUyKS0+bGVuZ3RoCisgRnVuY3Rpb24gbWVt Y3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgVUxPTkdFU1Q6 IChlbHR5cGUyKS0+bGVuZ3RoCiBMT0Mgc3ltdGFiLmg6MTI2NwogIEZpbGUg c3RhdGljIGZ1bmN0aW9uIFZFQ19DT1JFX0FERFJfc2FmZV9pbnNlcnQgZGVj bGFyZWQgYnV0IG5vdCB1c2VkCiAgICBMT0Mgc3ltdGFiLmg6MTI2NwogIERl ZmluaXRpb24gb2YgVkVDX0NPUkVfQUREUl9zYWZlX2luc2VydAogTE9DIHAt bGFuZy5jOjIzMwotIEFzc2lnbm1lbnQgb2YgVUlOVCB0byBpbnQ6IHdpZHRo ID0gKHR5cGUpLT5sZW5ndGgKKyBBc3NpZ25tZW50IG9mIFVMT05HRVNUIHRv IGludDogd2lkdGggPSAodHlwZSktPmxlbmd0aAogTE9DIHAtbGFuZy5jOjI0 OSAocC1sYW5nLmM6MjU4KQorIE9wZXJhbmRzIG9mIDwgaGF2ZSBpbmNvbXBh dGlibGUgdHlwZXMgKFVJTlQsIFVMT05HRVNUKTogaSA8IGxlbmd0aAorTE9D IHAtbGFuZy5jOjI1OAogIFRlc3QgZXhwcmVzc2lvbiBmb3IgaWYgbm90IGJv b2xlYW4sIHR5cGUgaW50OiBxdWl0X2ZsYWcKIExPQyBwLWxhbmcuYzoyNzEg KHAtbGFuZy5jOjI4MSkKKyBPcGVyYW5kcyBvZiA8IGhhdmUgaW5jb21wYXRp YmxlIHR5cGVzIChVSU5ULCBVTE9OR0VTVCk6IHJlcDEgPCBsZW5ndGgKK0xP QyBwLWxhbmcuYzoyODEKICBUZXN0IGV4cHJlc3Npb24gZm9yIGlmIG5vdCBi b29sZWFuLCB0eXBlIGludDogaW5fcXVvdGVzCiBMT0MgcC1sYW5nLmM6MzE5 CisgT3BlcmFuZHMgb2YgPCBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoVUlO VCwgVUxPTkdFU1QpOiBpIDwgbGVuZ3RoCitMT0MgcC1sYW5nLmM6MzE5CiAg TGVmdCBvcGVyYW5kIG9mIHx8IGlzIG5vbi1ib29sZWFuIChpbnQpOiBmb3Jj ZV9lbGxpcHNlcyB8fCBpIDwgbGVuZ3RoCiBMT0Mgc3ltdGFiLmg6MTI2Nwog IEZpbGUgc3RhdGljIGZ1bmN0aW9uIFZFQ19DT1JFX0FERFJfc2FmZV9pbnNl cnQgZGVjbGFyZWQgYnV0IG5vdCB1c2VkCiAgICBMT0Mgc3ltdGFiLmg6MTI2 NwogIERlZmluaXRpb24gb2YgVkVDX0NPUkVfQUREUl9zYWZlX2luc2VydAog cHBjLWxpbnV4LW5hdC5jOiAoaW4gZnVuY3Rpb24gcHBjX2xpbnV4X2Nhbl9h Y2NlbF93YXRjaHBvaW50X2NvbmRpdGlvbikKIExPQyBwcGMtbGludXgtbmF0 LmM6MjAzMCAocHBjLWxpbnV4LW5hdC5jOjIwNTcpCisgRnVuY3Rpb24gY2Fs Y3VsYXRlX2R2YyBleHBlY3RzIGFyZyAyIHRvIGJlIGludCBnZXRzIExPTkdF U1Q6IGxlbgorTE9DIHBwYy1saW51eC1uYXQuYzoyMDU3CiAgQXNzaWdubWVu dCBvZiBpbnQgdG8gdWludDMyX3Q6IHAtPnRyaWdnZXJfdHlwZSA9IGdldF90 cmlnZ2VyX3R5cGUocncpCiBwcGMtbGludXgtbmF0LmM6IChpbiBmdW5jdGlv biBwcGNfbGludXhfaW5zZXJ0X3dhdGNocG9pbnQpCiBMT0MgcHBjLWxpbnV4 LW5hdC5jOjEzOTgKICBGaWxlIHN0YXRpYyBmdW5jdGlvbiBWRUNfdGhyZWFk X3BvaW50c19wX3NhZmVfaW5zZXJ0IGRlY2xhcmVkIGJ1dCBub3QgdXNlZAog ICAgTE9DIHBwYy1saW51eC1uYXQuYzoxMzk4CiAgRGVmaW5pdGlvbiBvZiBW RUNfdGhyZWFkX3BvaW50c19wX3NhZmVfaW5zZXJ0CiBMT0MgcHBjLXN5c3Yt dGRlcC5jOjE2MgotIEFzc2lnbm1lbnQgb2YgVUxPTkdFU1QgdG8gaW50OiBh cmdvZmZzZXQgPSBhbGlnbl91cChhcmdvZmZzZXQsIGxlbikKKyBGdW5jdGlv biBhbGlnbl91cCBleHBlY3RzIGFyZyAyIHRvIGJlIGludCBnZXRzIExPTkdF U1Q6IGxlbgorTE9DIHBwYy1zeXN2LXRkZXAuYzoxNjIKKyBBc3NpZ25tZW50 IG9mIFVMT05HRVNUIHRvIExPTkdFU1Q6IGFyZ29mZnNldCA9IGFsaWduX3Vw KGFyZ29mZnNldCwgbGVuKQogTE9DIHBwYy1zeXN2LXRkZXAuYzoxNjQKLSBG dW5jdGlvbiB3cml0ZV9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6 ZV90IGdldHMgaW50OiBsZW4KKyBGdW5jdGlvbiB3cml0ZV9tZW1vcnkgZXhw ZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdldHMgTE9OR0VTVDogbGVuCiBM T0MgcHBjLXN5c3YtdGRlcC5jOjE5MwotIEZ1bmN0aW9uIHdyaXRlX21lbW9y eSBleHBlY3RzIGFyZyAzIHRvIGJlIHNzaXplX3QgZ2V0cyBpbnQ6IGxlbgor IEZ1bmN0aW9uIHdyaXRlX21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJlIHNz aXplX3QgZ2V0cyBMT05HRVNUOiBsZW4KIExPQyBwcGMtc3lzdi10ZGVwLmM6 MjE1Ci0gRnVuY3Rpb24gd3JpdGVfbWVtb3J5IGV4cGVjdHMgYXJnIDMgdG8g YmUgc3NpemVfdCBnZXRzIGludDogbGVuCisgRnVuY3Rpb24gd3JpdGVfbWVt b3J5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc3NpemVfdCBnZXRzIExPTkdFU1Q6 IGxlbgogTE9DIHBwYy1zeXN2LXRkZXAuYzoyNTAKLSBGdW5jdGlvbiB3cml0 ZV9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdldHMgaW50 OiBsZW4KKyBGdW5jdGlvbiB3cml0ZV9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0 byBiZSBzc2l6ZV90IGdldHMgTE9OR0VTVDogbGVuCitMT0MgcHBjLXN5c3Yt dGRlcC5jOjMwNAorIEZ1bmN0aW9uIGFsaWduX3VwIGV4cGVjdHMgYXJnIDIg dG8gYmUgaW50IGdldHMgTE9OR0VTVDogbGVuCiBMT0MgcHBjLXN5c3YtdGRl cC5jOjMwOAotIEZ1bmN0aW9uIHdyaXRlX21lbW9yeSBleHBlY3RzIGFyZyAz IHRvIGJlIHNzaXplX3QgZ2V0cyBpbnQ6IGxlbgorIEZ1bmN0aW9uIHdyaXRl X21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJlIHNzaXplX3QgZ2V0cyBMT05H RVNUOiBsZW4KK0xPQyBwcGMtc3lzdi10ZGVwLmM6MzgwCisgRnVuY3Rpb24g YWxpZ25fdXAgZXhwZWN0cyBhcmcgMiB0byBiZSBpbnQgZ2V0cyBMT05HRVNU OiBsZW4KIExPQyBwcGMtc3lzdi10ZGVwLmM6MzgyCi0gRnVuY3Rpb24gd3Jp dGVfbWVtb3J5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc3NpemVfdCBnZXRzIGlu dDogbGVuCisgRnVuY3Rpb24gd3JpdGVfbWVtb3J5IGV4cGVjdHMgYXJnIDMg dG8gYmUgc3NpemVfdCBnZXRzIExPTkdFU1Q6IGxlbgogTE9DIHBwYy1zeXN2 LXRkZXAuYzozOTUKLSBGdW5jdGlvbiB3cml0ZV9tZW1vcnkgZXhwZWN0cyBh cmcgMyB0byBiZSBzc2l6ZV90IGdldHMgVUlOVDogKGVsdHlwZSktPmxlbmd0 aAorIEZ1bmN0aW9uIHdyaXRlX21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJl IHNzaXplX3QgZ2V0cyBVTE9OR0VTVDogKGVsdHlwZSktPmxlbmd0aAogTE9D IHBwYy1zeXN2LXRkZXAuYzo0NDcgKHBwYy1zeXN2LXRkZXAuYzo0NTMpCisg T3BlcmFuZHMgb2YgPCBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoaW50LCBM T05HRVNUKTogaSA8IGxlbiAvIDE2CitMT0MgcHBjLXN5c3YtdGRlcC5jOjQ1 MwogIFRlc3QgZXhwcmVzc2lvbiBmb3IgaWYgbm90IGJvb2xlYW4sIHR5cGUg aW50OiB3cml0ZV9wYXNzCiBMT0MgcHBjLXN5c3YtdGRlcC5jOjUzNwotIEZ1 bmN0aW9uIHdyaXRlX21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJlIHNzaXpl X3QgZ2V0cyBpbnQ6IGxlbgorIEZ1bmN0aW9uIHdyaXRlX21lbW9yeSBleHBl Y3RzIGFyZyAzIHRvIGJlIHNzaXplX3QgZ2V0cyBMT05HRVNUOiBsZW4KIExP QyBwcGMtc3lzdi10ZGVwLmM6NTUwCi0gRnVuY3Rpb24gbWVtY3B5IGV4cGVj dHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgaW50OiBsZW4KKyBGdW5jdGlv biBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXplX3QgZ2V0cyBMT05H RVNUOiBsZW4KIExPQyBwcGMtc3lzdi10ZGVwLmM6NTc0IChwcGMtc3lzdi10 ZGVwLmM6NTg3KQorIEFzc2lnbm1lbnQgb2YgTE9OR0VTVCB0byBpbnQ6IGFy Z3NwYWNlID0gYXJnb2Zmc2V0CitMT0MgcHBjLXN5c3YtdGRlcC5jOjU4Nwog IFRlc3QgZXhwcmVzc2lvbiBmb3IgaWYgbm90IGJvb2xlYW4sIHR5cGUgaW50 OiB3cml0ZV9wYXNzCiBMT0MgcHBjLXN5c3YtdGRlcC5jOjgxNAotIE9wZXJh bmRzIG9mIDw9IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChVSU5ULCBpbnQp OiAodHlwZSktPmxlbmd0aCA8PSB0ZGVwLT53b3Jkc2l6ZQorIE9wZXJhbmRz IG9mIDw9IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChVTE9OR0VTVCwgaW50 KTogKHR5cGUpLT5sZW5ndGggPD0gdGRlcC0+d29yZHNpemUKK0xPQyBwcGMt c3lzdi10ZGVwLmM6ODUyCisgVmFyaWFibGUgcmVnbnVtIGluaXRpYWxpemVk IHRvIHR5cGUgTE9OR0VTVCwgZXhwZWN0cyBpbnQ6IHRkZXAtPnBwY19mcDBf cmVnbnVtICsgMSArIGkKIExPQyBwcGMtc3lzdi10ZGVwLmM6ODcxIChwcGMt c3lzdi10ZGVwLmM6ODc2KQorIFZhcmlhYmxlIHJlZ251bSBpbml0aWFsaXpl ZCB0byB0eXBlIExPTkdFU1QsIGV4cGVjdHMgaW50OiB0ZGVwLT5wcGNfZ3Aw X3JlZ251bSArIDMgKyBpCitMT0MgcHBjLXN5c3YtdGRlcC5jOjg3NgogIEFz c2lnbm1lbnQgb2YgTE9OR0VTVCB0byBVTE9OR0VTVDogcmVndmFsID0gdW5w YWNrX2xvbmcoZWx0eXBlLCB3cml0ZWJ1ZiArIG9mZnNldCkKIExPQyBwcGMt c3lzdi10ZGVwLmM6MTAxOQotIE9wZXJhbmRzIG9mID4gaGF2ZSBpbmNvbXBh dGlibGUgdHlwZXMgKFVJTlQsIGludCk6ICh0eXBlKS0+bGVuZ3RoID4gdGRl cC0+d29yZHNpemUKKyBPcGVyYW5kcyBvZiA+IGhhdmUgaW5jb21wYXRpYmxl IHR5cGVzIChVTE9OR0VTVCwgaW50KTogKHR5cGUpLT5sZW5ndGggPiB0ZGVw LT53b3Jkc2l6ZQogTE9DIHBwYy1zeXN2LXRkZXAuYzoxMDIyCi0gRnVuY3Rp b24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgVUlO VDogKHR5cGUpLT5sZW5ndGgKKyBGdW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBh cmcgMyB0byBiZSBzaXplX3QgZ2V0cyBVTE9OR0VTVDogKHR5cGUpLT5sZW5n dGgKIExPQyBwcGMtc3lzdi10ZGVwLmM6MTAzMQotIEZ1bmN0aW9uIG1lbWNw eSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIFVJTlQ6ICh0eXBl KS0+bGVuZ3RoCisgRnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8g YmUgc2l6ZV90IGdldHMgVUxPTkdFU1Q6ICh0eXBlKS0+bGVuZ3RoCiBMT0Mg cHBjLXN5c3YtdGRlcC5jOjEwMzQKLSBPcGVyYW5kcyBvZiA+IGhhdmUgaW5j b21wYXRpYmxlIHR5cGVzIChVSU5ULCBpbnQpOiAodHlwZSktPmxlbmd0aCA+ IHRkZXAtPndvcmRzaXplCisgT3BlcmFuZHMgb2YgPiBoYXZlIGluY29tcGF0 aWJsZSB0eXBlcyAoVUxPTkdFU1QsIGludCk6ICh0eXBlKS0+bGVuZ3RoID4g dGRlcC0+d29yZHNpemUKIExPQyBwcGMtc3lzdi10ZGVwLmM6MTMwNAotIEZ1 bmN0aW9uIHdyaXRlX21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJlIHNzaXpl X3QgZ2V0cyBVSU5UOiAodHlwZSktPmxlbmd0aAorIEZ1bmN0aW9uIHdyaXRl X21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJlIHNzaXplX3QgZ2V0cyBVTE9O R0VTVDogKHR5cGUpLT5sZW5ndGgKIExPQyBwcGMtc3lzdi10ZGVwLmM6MTM2 MAotIEZ1bmN0aW9uIHdyaXRlX21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJl IHNzaXplX3QgZ2V0cyBVSU5UOiAodHlwZSktPmxlbmd0aAorIEZ1bmN0aW9u IHdyaXRlX21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJlIHNzaXplX3QgZ2V0 cyBVTE9OR0VTVDogKHR5cGUpLT5sZW5ndGgKIExPQyBwcGMtc3lzdi10ZGVw LmM6MTQ0OAotIE9wZXJhbmRzIG9mIDwgaGF2ZSBpbmNvbXBhdGlibGUgdHlw ZXMgKGludCwgVUlOVCk6IGkgPCAodHlwZSktPmxlbmd0aCAvIDE2CisgT3Bl cmFuZHMgb2YgPCBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoaW50LCBVTE9O R0VTVCk6IGkgPCAodHlwZSktPmxlbmd0aCAvIDE2CiBMT0MgcHBjLXN5c3Yt dGRlcC5jOjE0ODcKLSBGdW5jdGlvbiB3cml0ZV9tZW1vcnkgZXhwZWN0cyBh cmcgMyB0byBiZSBzc2l6ZV90IGdldHMgVUlOVDogKHR5cGUpLT5sZW5ndGgK KyBGdW5jdGlvbiB3cml0ZV9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBz c2l6ZV90IGdldHMgVUxPTkdFU1Q6ICh0eXBlKS0+bGVuZ3RoCiBMT0MgcHBj LXN5c3YtdGRlcC5jOjE1MDIKLSBGdW5jdGlvbiB3cml0ZV9tZW1vcnkgZXhw ZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdldHMgVUlOVDogKHR5cGUpLT5s ZW5ndGgKKyBGdW5jdGlvbiB3cml0ZV9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0 byBiZSBzc2l6ZV90IGdldHMgVUxPTkdFU1Q6ICh0eXBlKS0+bGVuZ3RoCiBM T0MgcHBjLXN5c3YtdGRlcC5jOjE1NjEKLSBPcGVyYW5kcyBvZiA8IGhhdmUg aW5jb21wYXRpYmxlIHR5cGVzIChpbnQsIFVJTlQpOiBieXRlIDwgKHR5cGUp LT5sZW5ndGgKKyBPcGVyYW5kcyBvZiA8IGhhdmUgaW5jb21wYXRpYmxlIHR5 cGVzIChpbnQsIFVMT05HRVNUKTogYnl0ZSA8ICh0eXBlKS0+bGVuZ3RoCiBM T0MgcHBjLXN5c3YtdGRlcC5jOjE1OTcKLSBGdW5jdGlvbiB3cml0ZV9tZW1v cnkgZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdldHMgaW50OiBsZW4K KyBGdW5jdGlvbiB3cml0ZV9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBz c2l6ZV90IGdldHMgTE9OR0VTVDogbGVuCiBMT0MgcHBjLXN5c3YtdGRlcC5j OjE1OTkKLSBGdW5jdGlvbiB3cml0ZV9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0 byBiZSBzc2l6ZV90IGdldHMgaW50OiBsZW4KKyBGdW5jdGlvbiB3cml0ZV9t ZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdldHMgTE9OR0VT VDogbGVuCitMT0MgcHBjLXN5c3YtdGRlcC5jOjE3OTYKKyBWYXJpYWJsZSBv ZmZzZXQgaW5pdGlhbGl6ZWQgdG8gdHlwZSBVTE9OR0VTVCwgZXhwZWN0cyBp bnQ6IGkgKiAoZWx0eXBlKS0+bGVuZ3RoCitMT0MgcHBjLXN5c3YtdGRlcC5j OjE4NTEKKyBWYXJpYWJsZSByZWdudW0gaW5pdGlhbGl6ZWQgdG8gdHlwZSBM T05HRVNULCBleHBlY3RzIGludDogdGRlcC0+cHBjX3ZyMF9yZWdudW0gKyAy ICsgaQogTE9DIHBwYy1zeXN2LXRkZXAuYzoxODY5IChwcGMtc3lzdi10ZGVw LmM6MTg3MykKLSBGdW5jdGlvbiByZWdjYWNoZV9jb29rZWRfd3JpdGVfcGFy dCBleHBlY3RzIGFyZyA0IHRvIGJlIGludCBnZXRzIFVJTlQ6ICh2YWx0eXBl KS0+bGVuZ3RoCisgVmFyaWFibGUgb2Zmc2V0IGluaXRpYWxpemVkIHRvIHR5 cGUgVUxPTkdFU1QsIGV4cGVjdHMgaW50OiAocmVnaXN0ZXJfc2l6ZShnZGJh cmNoLCB0ZGVwLT5wcGNfZ3AwX3JlZ251bSArIDMpIC0gKHZhbHR5cGUpLT5s ZW5ndGgpCitMT0MgcHBjLXN5c3YtdGRlcC5jOjE4NzMKKyBGdW5jdGlvbiBy ZWdjYWNoZV9jb29rZWRfd3JpdGVfcGFydCBleHBlY3RzIGFyZyA0IHRvIGJl IGludCBnZXRzIFVMT05HRVNUOiAodmFsdHlwZSktPmxlbmd0aAogTE9DIHBw Yy1zeXN2LXRkZXAuYzoxODc2Ci0gRnVuY3Rpb24gcmVnY2FjaGVfY29va2Vk X3JlYWRfcGFydCBleHBlY3RzIGFyZyA0IHRvIGJlIGludCBnZXRzIFVJTlQ6 ICh2YWx0eXBlKS0+bGVuZ3RoCisgRnVuY3Rpb24gcmVnY2FjaGVfY29va2Vk X3JlYWRfcGFydCBleHBlY3RzIGFyZyA0IHRvIGJlIGludCBnZXRzIFVMT05H RVNUOiAodmFsdHlwZSktPmxlbmd0aAogTE9DIHBwYy1zeXN2LXRkZXAuYzox OTAwCi0gT3BlcmFuZHMgb2YgPCBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAo aW50LCBVSU5UKTogaSA8ICh2YWx0eXBlKS0+bGVuZ3RoIC8gOAorIE9wZXJh bmRzIG9mIDwgaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKGludCwgVUxPTkdF U1QpOiBpIDwgKHZhbHR5cGUpLT5sZW5ndGggLyA4CiBMT0MgYnJlYWtwb2lu dC5oOjgyOQogIEZpbGUgc3RhdGljIGZ1bmN0aW9uIFZFQ19icmVha3BvaW50 X3Bfc2FmZV9pbnNlcnQgZGVjbGFyZWQgYnV0IG5vdCB1c2VkCiAgICBMT0Mg YnJlYWtwb2ludC5oOjgyOQogIERlZmluaXRpb24gb2YgVkVDX2JyZWFrcG9p bnRfcF9zYWZlX2luc2VydAogTE9DIHByaW50Y21kLmM6Mzg0Ci0gT3BlcmFu ZHMgb2YgPiBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoVUlOVCwgc2l6ZV90 KTogbGVuID4gc2l6ZW9mKExPTkdFU1QpCisgT3BlcmFuZHMgb2YgPiBoYXZl IGluY29tcGF0aWJsZSB0eXBlcyAoVUxPTkdFU1QsIHNpemVfdCk6IGxlbiA+ IHNpemVvZihMT05HRVNUKQorTE9DIHByaW50Y21kLmM6MzkxCisgRnVuY3Rp b24gcHJpbnRfb2N0YWxfY2hhcnMgZXhwZWN0cyBhcmcgMyB0byBiZSBVSU5U IGdldHMgVUxPTkdFU1Q6IGxlbgogTE9DIHByaW50Y21kLmM6Mzk1IChwcmlu dGNtZC5jOjM5NikKKyBGdW5jdGlvbiBwcmludF9kZWNpbWFsX2NoYXJzIGV4 cGVjdHMgYXJnIDMgdG8gYmUgVUlOVCBnZXRzIFVMT05HRVNUOiBsZW4KK0xP QyBwcmludGNtZC5jOjM5NgogIEZyZXNoIHN0b3JhZ2UgZ2RiYXJjaCBub3Qg cmVsZWFzZWQgYmVmb3JlIHJldHVybgogICAgTE9DIHByaW50Y21kLmM6Mzc2 CiAgRnJlc2ggc3RvcmFnZSBnZGJhcmNoIGNyZWF0ZWQKIExPQyBwcmludGNt ZC5jOjM5OCAocHJpbnRjbWQuYzozOTkpCisgRnVuY3Rpb24gcHJpbnRfYmlu YXJ5X2NoYXJzIGV4cGVjdHMgYXJnIDMgdG8gYmUgVUlOVCBnZXRzIFVMT05H RVNUOiBsZW4KK0xPQyBwcmludGNtZC5jOjM5OQogIEZyZXNoIHN0b3JhZ2Ug Z2RiYXJjaCBub3QgcmVsZWFzZWQgYmVmb3JlIHJldHVybgogICAgTE9DIHBy aW50Y21kLmM6Mzc2CiAgRnJlc2ggc3RvcmFnZSBnZGJhcmNoIGNyZWF0ZWQK IExPQyBwcmludGNtZC5jOjQwNCAocHJpbnRjbWQuYzo0MDUpCisgRnVuY3Rp b24gcHJpbnRfY2hhcl9jaGFycyBleHBlY3RzIGFyZyA0IHRvIGJlIFVJTlQg Z2V0cyBVTE9OR0VTVDogbGVuCitMT0MgcHJpbnRjbWQuYzo0MDUKICBGcmVz aCBzdG9yYWdlIGdkYmFyY2ggbm90IHJlbGVhc2VkIGJlZm9yZSByZXR1cm4K ICAgIExPQyBwcmludGNtZC5jOjM3NgogIEZyZXNoIHN0b3JhZ2UgZ2RiYXJj aCBjcmVhdGVkCiBMT0MgcHJpbnRjbWQuYzo0MjUKLSBPcGVyYW5kcyBvZiA8 IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChVSU5ULCBzaXplX3QpOiBsZW4g PCBzaXplb2YoTE9OR0VTVCkKKyBPcGVyYW5kcyBvZiA8IGhhdmUgaW5jb21w YXRpYmxlIHR5cGVzIChVTE9OR0VTVCwgc2l6ZV90KTogbGVuIDwgc2l6ZW9m KExPTkdFU1QpCiBMT0MgcHJpbnRjbWQuYzoyNDU0IChwcmludGNtZC5jOjI0 NTUpCi0gRnVuY3Rpb24gY29udmVydF9iZXR3ZWVuX2VuY29kaW5ncyBleHBl Y3RzIGFyZyA1IHRvIGJlIGludCBnZXRzIFVJTlQ6ICh2YWx0eXBlKS0+bGVu Z3RoCisgRnVuY3Rpb24gY29udmVydF9iZXR3ZWVuX2VuY29kaW5ncyBleHBl Y3RzIGFyZyA0IHRvIGJlIFVJTlQgZ2V0cyBVTE9OR0VTVDogKHZhbHR5cGUp LT5sZW5ndGgKK0xPQyBwcmludGNtZC5jOjI0NTUKKyBGdW5jdGlvbiBjb252 ZXJ0X2JldHdlZW5fZW5jb2RpbmdzIGV4cGVjdHMgYXJnIDUgdG8gYmUgaW50 IGdldHMgVUxPTkdFU1Q6ICh2YWx0eXBlKS0+bGVuZ3RoCiBMT0MgcHJpbnRj bWQuYzoyNTQ3IChwcmludGNtZC5jOjI2MDkpCisgVmFyaWFibGUgcGFyYW1f bGVuIGluaXRpYWxpemVkIHRvIHR5cGUgVUxPTkdFU1QsIGV4cGVjdHMgVUlO VDogKHBhcmFtX3R5cGUpLT5sZW5ndGgKK0xPQyBwcmludGNtZC5jOjI2MDkK ICBGdW5jdGlvbiBkZWNpbWFsX2NvbnZlcnQgZXhwZWN0cyBhcmcgMiB0byBi ZSBpbnQgZ2V0cyBVSU5UOiBwYXJhbV9sZW4KIExPQyBicmVha3BvaW50Lmg6 ODI5CiAgRmlsZSBzdGF0aWMgZnVuY3Rpb24gVkVDX2JyZWFrcG9pbnRfcF9z YWZlX2luc2VydCBkZWNsYXJlZCBidXQgbm90IHVzZWQKICAgIExPQyBicmVh a3BvaW50Lmg6ODI5CiAgRGVmaW5pdGlvbiBvZiBWRUNfYnJlYWtwb2ludF9w X3NhZmVfaW5zZXJ0CiBMT0MgcC10eXBlcHJpbnQuYzo4MjEgKHAtdHlwZXBy aW50LmM6NzUzKQotIE9wZXJhbmRzIG9mICE9IGhhdmUgaW5jb21wYXRpYmxl IHR5cGVzIChpbnQsIExPTkdFU1QpOiBsYXN0dmFsICE9ICgoKCh0eXBlKS0+ bWFpbl90eXBlLT5mbGRzX2JuZHMuZmllbGRzW2ldKS5sb2MuZW51bXZhbCkg KyAwKQotTE9DIHAtdHlwZXByaW50LmM6NzU4Ci0gQXNzaWdubWVudCBvZiBM T05HRVNUIHRvIGludDogbGFzdHZhbCA9ICgoKCh0eXBlKS0+bWFpbl90eXBl LT5mbGRzX2JuZHMuZmllbGRzW2ldKS5sb2MuZW51bXZhbCkgKyAwKQotTE9D IHAtdHlwZXByaW50LmM6ODIxCiAgRnJlc2ggc3RvcmFnZSB0eXBlIG5vdCBy ZWxlYXNlZCBiZWZvcmUgcmV0dXJuCiAgICBMT0MgcC10eXBlcHJpbnQuYzo0 NzgKICBGcmVzaCBzdG9yYWdlIHR5cGUgY3JlYXRlZAogTE9DIG1lbXJhbmdl Lmg6MzgKICBGaWxlIHN0YXRpYyBmdW5jdGlvbiBWRUNfbWVtX3JhbmdlX3Nf c2FmZV9pbnNlcnQgZGVjbGFyZWQgYnV0IG5vdCB1c2VkCiAgICBMT0MgbWVt cmFuZ2UuaDozOAogIERlZmluaXRpb24gb2YgVkVDX21lbV9yYW5nZV9zX3Nh ZmVfaW5zZXJ0CiBMT0MgcC12YWxwcmludC5jOjIxMiAocC12YWxwcmludC5j OjIxMSkKLSBGdW5jdGlvbiB4bWFsbG9jIGV4cGVjdHMgYXJnIDEgdG8gYmUg c2l6ZV90IGdldHMgaW50OiBsZW5ndGhfc2l6ZQorIEZ1bmN0aW9uIHhtYWxs b2MgZXhwZWN0cyBhcmcgMSB0byBiZSBzaXplX3QgZ2V0cyBMT05HRVNUOiBs ZW5ndGhfc2l6ZQorTE9DIHAtdmFscHJpbnQuYzoyMTMKKyBGdW5jdGlvbiBy ZWFkX21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJlIHNzaXplX3QgZ2V0cyBM T05HRVNUOiBsZW5ndGhfc2l6ZQogTE9DIHAtdmFscHJpbnQuYzoyMTQgKHAt dmFscHJpbnQuYzoyMTIpCi0gRnVuY3Rpb24gcmVhZF9tZW1vcnkgZXhwZWN0 cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdldHMgaW50OiBsZW5ndGhfc2l6ZQor IEZ1bmN0aW9uIGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlciBleHBlY3RzIGFy ZyAyIHRvIGJlIGludCBnZXRzIExPTkdFU1Q6IGxlbmd0aF9zaXplCiBMT0Mg cC12YWxwcmludC5jOjMyNCAocC12YWxwcmludC5jOjMyMikKKyBGdW5jdGlv biBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgZXhwZWN0cyBhcmcgMiB0byBi ZSBpbnQgZ2V0cyBMT05HRVNUOiBsZW5ndGhfc2l6ZQorTE9DIHAtdmFscHJp bnQuYzozMjMKICBBc3NpZ25tZW50IG9mIFVMT05HRVNUIHRvIFVJTlQ6IGxl biA9IGV4dHJhY3RfdW5zaWduZWRfaW50ZWdlcih2YWxhZGRyICsgZW1iZWRk ZWRfb2Zmc2V0ICsgbGVuZ3RoX3BvcywgbGVuZ3RoX3NpemUsIGJ5dGVfb3Jk ZXIpCiBMT0MgcC12YWxwcmludC5jOjc5OSAocC12YWxwcmludC5jOjc5OCkK LSBPcGVyYW5kcyBvZiA+PSBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoaW50 LCBVSU5UKTogYm9mZnNldCA+PSAodHlwZSktPmxlbmd0aAorIE9wZXJhbmRz IG9mID49IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChMT05HRVNULCBVTE9O R0VTVCk6IGJvZmZzZXQgPj0gKHR5cGUpLT5sZW5ndGgKIExPQyBwLXZhbHBy aW50LmM6ODAyIChwLXZhbHByaW50LmM6ODAxKQotIEZ1bmN0aW9uIENfYWxs b2NhIGV4cGVjdHMgYXJnIDEgdG8gYmUgc2l6ZV90IGdldHMgVUlOVDogKGJh c2VjbGFzcyktPmxlbmd0aAorIEZ1bmN0aW9uIENfYWxsb2NhIGV4cGVjdHMg YXJnIDEgdG8gYmUgc2l6ZV90IGdldHMgVUxPTkdFU1Q6IChiYXNlY2xhc3Mp LT5sZW5ndGgKIExPQyBwLXZhbHByaW50LmM6ODA2IChwLXZhbHByaW50LmM6 ODA1KQotIEZ1bmN0aW9uIHRhcmdldF9yZWFkX21lbW9yeSBleHBlY3RzIGFy ZyAzIHRvIGJlIHNzaXplX3QgZ2V0cyBVSU5UOiAoYmFzZWNsYXNzKS0+bGVu Z3RoCisgRnVuY3Rpb24gdGFyZ2V0X3JlYWRfbWVtb3J5IGV4cGVjdHMgYXJn IDMgdG8gYmUgc3NpemVfdCBnZXRzIFVMT05HRVNUOiAoYmFzZWNsYXNzKS0+ bGVuZ3RoCiBMT0MgbWVtcmFuZ2UuaDozOAogIEZpbGUgc3RhdGljIGZ1bmN0 aW9uIFZFQ19tZW1fcmFuZ2Vfc19zYWZlX2luc2VydCBkZWNsYXJlZCBidXQg bm90IHVzZWQKICAgIExPQyBtZW1yYW5nZS5oOjM4CiAgRGVmaW5pdGlvbiBv ZiBWRUNfbWVtX3JhbmdlX3Nfc2FmZV9pbnNlcnQKIFNwZWMgZmlsZSBub3Qg Zm91bmQ6IHB5dGhvbi5sY2wKIENhbm5vdCBvcGVuIGZpbGU6IHB5dGhvbi5j CiBGaW5pc2hlZCBjaGVja2luZyAtLS0gbm8gY29kZSBwcm9jZXNzZWQKIHJl Z2NhY2hlLmM6IChpbiBmdW5jdGlvbiByZWdjYWNoZV9jb29rZWRfcmVhZF9z aWduZWQpCiBMT0MgcmVnY2FjaGUuYzo5MTUKLSBPcGVyYW5kcyBvZiA8PSBo YXZlIGluY29tcGF0aWJsZSB0eXBlcyAoaW50LCBMT05HRVNUKTogb2Zmc2V0 IDw9IGRlc2NyLT5zaXplb2ZfcmVnaXN0ZXJbcmVnbnVtXQotTE9DIHJlZ2Nh Y2hlLmM6OTE1CiAgTmV3IGZyZXNoIHN0b3JhZ2UgKHR5cGUgY2hhciAqKSBw YXNzZWQgYXMgaW1wbGljaXRseSB0ZW1wIChub3QgcmVsZWFzZWQpOiBnZXR0 ZXh0KCJBc3NlcnRpb24gYCVzJyBmYWlsZWQuIikKIExPQyByZWdjYWNoZS5j OjkxNgotIE9wZXJhbmRzIG9mIDw9IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVz IChpbnQsIExPTkdFU1QpOiBvZmZzZXQgKyBsZW4gPD0gZGVzY3ItPnNpemVv Zl9yZWdpc3RlcltyZWdudW1dCi1MT0MgcmVnY2FjaGUuYzo5MTYKICBOZXcg ZnJlc2ggc3RvcmFnZSAodHlwZSBjaGFyICopIHBhc3NlZCBhcyBpbXBsaWNp dGx5IHRlbXAgKG5vdCByZWxlYXNlZCk6IGdldHRleHQoIkFzc2VydGlvbiBg JXMnIGZhaWxlZC4iKQogTE9DIHJlZ2NhY2hlLmM6OTI3IChyZWdjYWNoZS5j OjkyMykKLSBPcGVyYW5kcyBvZiA8IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVz IChpbnQsIExPTkdFU1QpOiBvZmZzZXQgKyBsZW4gPCBkZXNjci0+c2l6ZW9m X3JlZ2lzdGVyW3JlZ251bV0KLUxPQyByZWdjYWNoZS5jOjkyNwogIE5ldyBm cmVzaCBzdG9yYWdlICh0eXBlIGNoYXIgKikgcGFzc2VkIGFzIGltcGxpY2l0 bHkgdGVtcCAobm90IHJlbGVhc2VkKTogZ2V0dGV4dCgiQXNzZXJ0aW9uIGAl cycgZmFpbGVkLiIpCiBMT0MgcHJvZ3NwYWNlLmg6MzcKICBGaWxlIHN0YXRp YyBmdW5jdGlvbiBWRUNfc29fbGlzdF9wdHJfc2FmZV9pbnNlcnQgZGVjbGFy ZWQgYnV0IG5vdCB1c2VkCiAgICBMT0MgcHJvZ3NwYWNlLmg6MzcKICBEZWZp bml0aW9uIG9mIFZFQ19zb19saXN0X3B0cl9zYWZlX2luc2VydAogTE9DIHJl bW90ZS5jOjc5NzEKKyBGdW5jdGlvbiBwaGV4X256IGV4cGVjdHMgYXJnIDEg dG8gYmUgVUxPTkdFU1QgZ2V0cyBMT05HRVNUOiBsZW4KK0xPQyByZW1vdGUu Yzo3OTcxCiAgRnVuY3Rpb24geHNucHJpbnRmIGV4cGVjdHMgYXJnIDIgdG8g YmUgc2l6ZV90IGdldHMgaW50OiBlbmRidWYgLSBwCiBMT0MgcmVtb3RlLmM6 ODAxNQorIEZ1bmN0aW9uIHBoZXhfbnogZXhwZWN0cyBhcmcgMSB0byBiZSBV TE9OR0VTVCBnZXRzIExPTkdFU1Q6IGxlbgorTE9DIHJlbW90ZS5jOjgwMTUK ICBGdW5jdGlvbiB4c25wcmludGYgZXhwZWN0cyBhcmcgMiB0byBiZSBzaXpl X3QgZ2V0cyBpbnQ6IGVuZGJ1ZiAtIHAKIExPQyByZW1vdGUuYzo5MTM2CiAg RmlsZSBzdGF0aWMgZnVuY3Rpb24gVkVDX3JlbW90ZV9nX3BhY2tldF9ndWVz c19zX3NhZmVfaW5zZXJ0IGRlY2xhcmVkIGJ1dCBub3QgdXNlZAogICAgTE9D IHJlbW90ZS5jOjkxMzYKICBEZWZpbml0aW9uIG9mIFZFQ19yZW1vdGVfZ19w YWNrZXRfZ3Vlc3Nfc19zYWZlX2luc2VydAogTE9DIHJlbW90ZS1tMzJyLXNk aS5jOjE0MzMKLSBBc3NpZ25tZW50IG9mIGludCB0byBVSU5UOiBhYl9zaXpl W2ldID0gbGVuCisgQXNzaWdubWVudCBvZiBMT05HRVNUIHRvIFVJTlQ6IGFi X3NpemVbaV0gPSBsZW4KIExPQyByZW1vdGUtbWlwcy5jOjI0MzQgKHJlbW90 ZS1taXBzLmM6MjQzMykKICBQYXJhbWV0ZXIgY29uZCBub3QgdXNlZAorcmVt b3RlLW1pcHMuYzogKGluIGZ1bmN0aW9uIG1pcHNfc2V0X2JyZWFrcG9pbnQp CitMT0MgcmVtb3RlLW1pcHMuYzoyNDU3CisgRnVuY3Rpb24gbWlwc19jb21t b25fYnJlYWtwb2ludCBleHBlY3RzIGFyZyAzIHRvIGJlIGludCBnZXRzIExP TkdFU1Q6IGxlbgorcmVtb3RlLW1pcHMuYzogKGluIGZ1bmN0aW9uIG1pcHNf Y2xlYXJfYnJlYWtwb2ludCkKK0xPQyByZW1vdGUtbWlwcy5jOjI0NjYKKyBG dW5jdGlvbiBtaXBzX2NvbW1vbl9icmVha3BvaW50IGV4cGVjdHMgYXJnIDMg dG8gYmUgaW50IGdldHMgTE9OR0VTVDogbGVuCiByZW1vdGUtbWlwcy5jOiAo aW4gZnVuY3Rpb24gbWlwc19jaGVja19sc2lfZXJyb3IpCiBMT0MgbWVtcmFu Z2UuaDozOAogIEZpbGUgc3RhdGljIGZ1bmN0aW9uIFZFQ19tZW1fcmFuZ2Vf c19zYWZlX2luc2VydCBkZWNsYXJlZCBidXQgbm90IHVzZWQKICAgIExPQyBt ZW1yYW5nZS5oOjM4CiAgRGVmaW5pdGlvbiBvZiBWRUNfbWVtX3JhbmdlX3Nf c2FmZV9pbnNlcnQKIHJsNzgtdGRlcC5jOiAoaW4gZnVuY3Rpb24gcmw3OF9w b2ludGVyX3RvX2FkZHJlc3MpCiBMT0Mgcmw3OC10ZGVwLmM6MTAyNwotIEZ1 bmN0aW9uIHdyaXRlX21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJlIHNzaXpl X3QgZ2V0cyBpbnQ6IGxlbgorIEZ1bmN0aW9uIHdyaXRlX21lbW9yeSBleHBl Y3RzIGFyZyAzIHRvIGJlIHNzaXplX3QgZ2V0cyBMT05HRVNUOiBsZW4KIExP QyByczYwMDAtYWl4LXRkZXAuYzoyNzcgKHJzNjAwMC1haXgtdGRlcC5jOjI4 MCkKKyBPcGVyYW5kcyBvZiA8IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChp bnQsIExPTkdFU1QpOiBhcmdieXRlcyA8IGxlbgorTE9DIHJzNjAwMC1haXgt dGRlcC5jOjI4MAogIEZ1bmN0aW9uIG1lbXNldCBleHBlY3RzIGFyZyAzIHRv IGJlIHNpemVfdCBnZXRzIGludDogcmVnX3NpemUKIExPQyByczYwMDAtYWl4 LXRkZXAuYzoyODQgKHJzNjAwMC1haXgtdGRlcC5jOjI4MykKLSBGdW5jdGlv biBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXplX3QgZ2V0cyBpbnQ6 IChsZW4gLSBhcmdieXRlcykgPiByZWdfc2l6ZSA/IHJlZ19zaXplIDogbGVu IC0gYXJnYnl0ZXMKKyBDb25kaXRpb25hbCBjbGF1c2VzIGFyZSBub3Qgb2Yg c2FtZSB0eXBlOiByZWdfc2l6ZSAoaW50KSwgbGVuIC0gYXJnYnl0ZXMgKExP TkdFU1QpCitMT0MgcnM2MDAwLWFpeC10ZGVwLmM6Mjk5CisgVmFyaWFibGUg YWRqIGluaXRpYWxpemVkIHRvIHR5cGUgTE9OR0VTVCwgZXhwZWN0cyBpbnQ6 IGdkYmFyY2hfYnl0ZV9vcmRlcihnZGJhcmNoKSA9PSBCRkRfRU5ESUFOX0JJ RyA/IHJlZ19zaXplIC0gbGVuIDogMAogTE9DIHJzNjAwMC1haXgtdGRlcC5j OjMwNAotIEZ1bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNp emVfdCBnZXRzIGludDogbGVuCisgRnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMg YXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgTE9OR0VTVDogbGVuCiBMT0MgcnM2 MDAwLWFpeC10ZGVwLmM6MzY2Ci0gRnVuY3Rpb24gd3JpdGVfbWVtb3J5IGV4 cGVjdHMgYXJnIDMgdG8gYmUgc3NpemVfdCBnZXRzIGludDogbGVuIC0gYXJn Ynl0ZXMKKyBGdW5jdGlvbiB3cml0ZV9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0 byBiZSBzc2l6ZV90IGdldHMgTE9OR0VTVDogbGVuIC0gYXJnYnl0ZXMKIExP QyByczYwMDAtYWl4LXRkZXAuYzozOTMKLSBGdW5jdGlvbiB3cml0ZV9tZW1v cnkgZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdldHMgaW50OiBsZW4K KyBGdW5jdGlvbiB3cml0ZV9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBz c2l6ZV90IGdldHMgTE9OR0VTVDogbGVuCiBMT0MgcnM2MDAwLWFpeC10ZGVw LmM6NDk0Ci0gT3BlcmFuZHMgb2YgPD0gaGF2ZSBpbmNvbXBhdGlibGUgdHlw ZXMgKFVJTlQsIGludCk6ICh2YWx0eXBlKS0+bGVuZ3RoIDw9IHRkZXAtPndv cmRzaXplCisgT3BlcmFuZHMgb2YgPD0gaGF2ZSBpbmNvbXBhdGlibGUgdHlw ZXMgKFVMT05HRVNULCBpbnQpOiAodmFsdHlwZSktPmxlbmd0aCA8PSB0ZGVw LT53b3Jkc2l6ZQogTE9DIGJyZWFrcG9pbnQuaDo4MjkKICBGaWxlIHN0YXRp YyBmdW5jdGlvbiBWRUNfYnJlYWtwb2ludF9wX3NhZmVfaW5zZXJ0IGRlY2xh cmVkIGJ1dCBub3QgdXNlZAogICAgTE9DIGJyZWFrcG9pbnQuaDo4MjkKICBE ZWZpbml0aW9uIG9mIFZFQ19icmVha3BvaW50X3Bfc2FmZV9pbnNlcnQKIHMz OTAtdGRlcC5jOiAoaW4gZnVuY3Rpb24gczM5MF9wc2V1ZG9fcmVnaXN0ZXJf cmVnZ3JvdXBfcCkKIExPQyBzMzkwLXRkZXAuYzoyNDk1IChzMzkwLXRkZXAu YzoyNDk2KQorIEZ1bmN0aW9uIGlzX3Bvd2VyX29mX3R3byBleHBlY3RzIGFy ZyAxIHRvIGJlIFVJTlQgZ2V0cyBVTE9OR0VTVDogKHR5cGUpLT5sZW5ndGgK K0xPQyBzMzkwLXRkZXAuYzoyNDk1CiAgT3BlcmFuZCBvZiAhIGlzIG5vbi1i b29sZWFuIChpbnQpOiAhaXNfcG93ZXJfb2ZfdHdvKCh0eXBlKS0+bGVuZ3Ro KQogTE9DIHMzOTAtdGRlcC5jOjI1MTYgKHMzOTAtdGRlcC5jOjI1MjIpCisg VmFyaWFibGUgbGVuZ3RoIGluaXRpYWxpemVkIHRvIHR5cGUgVUxPTkdFU1Qs IGV4cGVjdHMgVUlOVDogKHR5cGUpLT5sZW5ndGgKK0xPQyBzMzkwLXRkZXAu YzoyNTIwCiAgT3BlcmFuZHMgb2YgfHwgYXJlIG5vbi1ib29sZWFuIChpbnQp OiBpc19pbnRlZ2VyX2xpa2UodHlwZSkgfHwgaXNfcG9pbnRlcl9saWtlKHR5 cGUpCiBMT0MgczM5MC10ZGVwLmM6MjU1NSAoczM5MC10ZGVwLmM6MjU1NykK LSBBc3NpZ25tZW50IG9mIFVJTlQgdG8gaW50OiBhbGlnbm1lbnQgPSAodHlw ZSktPmxlbmd0aAorIEFzc2lnbm1lbnQgb2YgVUxPTkdFU1QgdG8gaW50OiBh bGlnbm1lbnQgPSAodHlwZSktPmxlbmd0aAogTE9DIHMzOTAtdGRlcC5jOjI2 NzUgKHMzOTAtdGRlcC5jOjI2NzgpCi0gRnVuY3Rpb24gd3JpdGVfbWVtb3J5 IGV4cGVjdHMgYXJnIDMgdG8gYmUgc3NpemVfdCBnZXRzIFVJTlQ6IGxlbmd0 aAorIEZ1bmN0aW9uIHdyaXRlX21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJl IHNzaXplX3QgZ2V0cyBVTE9OR0VTVDogbGVuZ3RoCiBMT0MgczM5MC10ZGVw LmM6MjY5OSAoczM5MC10ZGVwLmM6MjcwMikKLSBGdW5jdGlvbiByZWdjYWNo ZV9jb29rZWRfd3JpdGVfcGFydCBleHBlY3RzIGFyZyA0IHRvIGJlIGludCBn ZXRzIFVJTlQ6IGxlbmd0aAorIEZ1bmN0aW9uIHJlZ2NhY2hlX2Nvb2tlZF93 cml0ZV9wYXJ0IGV4cGVjdHMgYXJnIDQgdG8gYmUgaW50IGdldHMgVUxPTkdF U1Q6IGxlbmd0aAogTE9DIHMzOTAtdGRlcC5jOjI3MDcgKHMzOTAtdGRlcC5j OjI3MTApCi0gRnVuY3Rpb24gd3JpdGVfbWVtb3J5IGV4cGVjdHMgYXJnIDMg dG8gYmUgc3NpemVfdCBnZXRzIFVJTlQ6IGxlbmd0aAorIEZ1bmN0aW9uIHdy aXRlX21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJlIHNzaXplX3QgZ2V0cyBV TE9OR0VTVDogbGVuZ3RoCiBMT0MgczM5MC10ZGVwLmM6MjcxMCAoczM5MC10 ZGVwLmM6MjcxMykKLSBPcGVyYW5kcyBvZiA8PSBoYXZlIGluY29tcGF0aWJs ZSB0eXBlcyAoVUlOVCwgaW50KTogbGVuZ3RoIDw9IHdvcmRfc2l6ZQorIE9w ZXJhbmRzIG9mIDw9IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChVTE9OR0VT VCwgaW50KTogbGVuZ3RoIDw9IHdvcmRfc2l6ZQogTE9DIHMzOTAtdGRlcC5j OjI3MjggKHMzOTAtdGRlcC5jOjI3MzEpCi0gT3BlcmFuZHMgb2YgPT0gaGF2 ZSBpbmNvbXBhdGlibGUgdHlwZXMgKFVJTlQsIGludCk6IGxlbmd0aCA9PSAy ICogd29yZF9zaXplCisgT3BlcmFuZHMgb2YgPT0gaGF2ZSBpbmNvbXBhdGli bGUgdHlwZXMgKFVMT05HRVNULCBpbnQpOiBsZW5ndGggPT0gMiAqIHdvcmRf c2l6ZQogTE9DIHMzOTAtdGRlcC5jOjI3NDQgKHMzOTAtdGRlcC5jOjI3NDcp Ci0gRnVuY3Rpb24gd3JpdGVfbWVtb3J5IGV4cGVjdHMgYXJnIDMgdG8gYmUg c3NpemVfdCBnZXRzIFVJTlQ6IGxlbmd0aAorIEZ1bmN0aW9uIHdyaXRlX21l bW9yeSBleHBlY3RzIGFyZyAzIHRvIGJlIHNzaXplX3QgZ2V0cyBVTE9OR0VT VDogbGVuZ3RoCiBMT0MgczM5MC10ZGVwLmM6Mjc5NyAoczM5MC10ZGVwLmM6 MjgwMikKLSBWYXJpYWJsZSBsZW5ndGggaW5pdGlhbGl6ZWQgdG8gdHlwZSBV SU5ULCBleHBlY3RzIGludDogKHR5cGUpLT5sZW5ndGgKLUxPQyBzMzkwLXRk ZXAuYzoyODAwCiAgUGFyYW1ldGVyIGdkYmFyY2ggbm90IHVzZWQKIHMzOTAt dGRlcC5jOiAoaW4gZnVuY3Rpb24gczM5MF9yZXR1cm5fdmFsdWUpCitMT0Mg czM5MC10ZGVwLmM6Mjg0MAorIEZ1bmN0aW9uIHJlZ2NhY2hlX2Nvb2tlZF93 cml0ZV9wYXJ0IGV4cGVjdHMgYXJnIDQgdG8gYmUgaW50IGdldHMgTE9OR0VT VDogbGVuZ3RoCiBMT0MgczM5MC10ZGVwLmM6Mjg0NyAoczM5MC10ZGVwLmM6 Mjg2MikKKyBGdW5jdGlvbiBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgZXhw ZWN0cyBhcmcgMiB0byBiZSBpbnQgZ2V0cyBMT05HRVNUOiBsZW5ndGgKK0xP QyBzMzkwLXRkZXAuYzoyODUwCisgRnVuY3Rpb24gZXh0cmFjdF9zaWduZWRf aW50ZWdlciBleHBlY3RzIGFyZyAyIHRvIGJlIGludCBnZXRzIExPTkdFU1Q6 IGxlbmd0aAorTE9DIHMzOTAtdGRlcC5jOjI4NTgKICBOZXcgZnJlc2ggc3Rv cmFnZSAodHlwZSBjaGFyICopIHBhc3NlZCBhcyBpbXBsaWNpdGx5IHRlbXAg KG5vdCByZWxlYXNlZCk6IGdldHRleHQoImludmFsaWQgcmV0dXJuIHR5cGUi KQogTE9DIHMzOTAtdGRlcC5jOjI4NzcgKHMzOTAtdGRlcC5jOjI4ODApCisg RnVuY3Rpb24gcmVnY2FjaGVfY29va2VkX3JlYWRfcGFydCBleHBlY3RzIGFy ZyA0IHRvIGJlIGludCBnZXRzIExPTkdFU1Q6IGxlbmd0aAorTE9DIHMzOTAt dGRlcC5jOjI4NzYKICBSZXR1cm4gdmFsdWUgKHR5cGUgZW51bSByZWdpc3Rl cl9zdGF0dXMpIGlnbm9yZWQ6IHJlZ2NhY2hlX2Nvb2tlZF8uLi4KIExPQyBz MzkwLXRkZXAuYzoyODgzIChzMzkwLXRkZXAuYzoyODg2KQorIEZ1bmN0aW9u IHJlZ2NhY2hlX2Nvb2tlZF9yZWFkX3BhcnQgZXhwZWN0cyBhcmcgNCB0byBi ZSBpbnQgZ2V0cyBMT05HRVNUOiBsZW5ndGgKK0xPQyBzMzkwLXRkZXAuYzoy ODgyCiAgUmV0dXJuIHZhbHVlICh0eXBlIGVudW0gcmVnaXN0ZXJfc3RhdHVz KSBpZ25vcmVkOiByZWdjYWNoZV9jb29rZWRfLi4uCiBMT0MgbWVtcmFuZ2Uu aDozOAogIEZpbGUgc3RhdGljIGZ1bmN0aW9uIFZFQ19tZW1fcmFuZ2Vfc19z YWZlX2luc2VydCBkZWNsYXJlZCBidXQgbm90IHVzZWQKICAgIExPQyBtZW1y YW5nZS5oOjM4CiAgRGVmaW5pdGlvbiBvZiBWRUNfbWVtX3JhbmdlX3Nfc2Fm ZV9pbnNlcnQKIExPQyBzY29yZS10ZGVwLmM6NDY1Ci0gT3BlcmFuZHMgb2Yg PCBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoaW50LCBVSU5UKTogb2Zmc2V0 IDwgKHR5cGUpLT5sZW5ndGgKKyBPcGVyYW5kcyBvZiA8IGhhdmUgaW5jb21w YXRpYmxlIHR5cGVzIChpbnQsIFVMT05HRVNUKTogb2Zmc2V0IDwgKHR5cGUp LT5sZW5ndGgKIExPQyBzY29yZS10ZGVwLmM6NDcwCi0gT3BlcmFuZHMgb2Yg PiBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoaW50LCBVSU5UKTogb2Zmc2V0 ICsgeGZlciA+ICh0eXBlKS0+bGVuZ3RoCisgT3BlcmFuZHMgb2YgPiBoYXZl IGluY29tcGF0aWJsZSB0eXBlcyAoaW50LCBVTE9OR0VTVCk6IG9mZnNldCAr IHhmZXIgPiAodHlwZSktPmxlbmd0aAogTE9DIHNjb3JlLXRkZXAuYzo0NzEK LSBBc3NpZ25tZW50IG9mIFVJTlQgdG8gaW50OiB4ZmVyID0gKHR5cGUpLT5s ZW5ndGggLSBvZmZzZXQKKyBBc3NpZ25tZW50IG9mIFVMT05HRVNUIHRvIGlu dDogeGZlciA9ICh0eXBlKS0+bGVuZ3RoIC0gb2Zmc2V0CiBMT0Mgc2NvcmUt dGRlcC5jOjU5MiAoc2NvcmUtdGRlcC5jOjYwMikKKyBWYXJpYWJsZSBwYXJ0 aWFsX2xlbiBpbml0aWFsaXplZCB0byB0eXBlIExPTkdFU1QsIGV4cGVjdHMg aW50OiBhcmdsZW4gPCA0ID8gYXJnbGVuIDogNAorTE9DIHNjb3JlLXRkZXAu Yzo2MDIKICBSaWdodCBvcGVyYW5kIG9mIDw8PSBtYXkgYmUgbmVnYXRpdmUg KGludCk6IHJlZ3ZhbCA8PD0gKCg0IC0gcGFydGlhbF9sZW4pICogOCkKIExP QyBtZW1yYW5nZS5oOjM4CiAgRmlsZSBzdGF0aWMgZnVuY3Rpb24gVkVDX21l bV9yYW5nZV9zX3NhZmVfaW5zZXJ0IGRlY2xhcmVkIGJ1dCBub3QgdXNlZAog ICAgTE9DIG1lbXJhbmdlLmg6MzgKICBEZWZpbml0aW9uIG9mIFZFQ19tZW1f cmFuZ2Vfc19zYWZlX2luc2VydAogTE9DIHNoNjQtdGRlcC5jOjExMTYKLSBG dW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXplX3QgZ2V0 cyBpbnQ6IGxlbgorIEZ1bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRv IGJlIHNpemVfdCBnZXRzIExPTkdFU1Q6IGxlbgogTE9DIHNoNjQtdGRlcC5j OjExMTgKLSBGdW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0byBiZSBz aXplX3QgZ2V0cyBpbnQ6IGxlbgorIEZ1bmN0aW9uIG1lbWNweSBleHBlY3Rz IGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIExPTkdFU1Q6IGxlbgogTE9DIHNo NjQtdGRlcC5jOjEyNjkgKHNoNjQtdGRlcC5jOjEyNzMpCi0gRnVuY3Rpb24g bWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgaW50OiBs ZW4KKyBBc3NpZ25tZW50IG9mIExPTkdFU1QgdG8gaW50OiBvZmZzZXQgPSBy ZWdpc3Rlcl9zaXplKGdkYmFyY2gsIERFRkFVTFRfUkVUVVJOX1JFR05VTSkg LSBsZW4KK0xPQyBzaDY0LXRkZXAuYzoxMjczCisgRnVuY3Rpb24gbWVtY3B5 IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgTE9OR0VTVDogbGVu CitMT0Mgc2g2NC10ZGVwLmM6MTI5OAorIE9wZXJhbmRzIG9mIDwgaGF2ZSBp bmNvbXBhdGlibGUgdHlwZXMgKGludCwgTE9OR0VTVCk6IGkgPCBsZW4KIExP QyBzaDY0LXRkZXAuYzoxMzE4IChzaDY0LXRkZXAuYzoxMzIwKQotIEZ1bmN0 aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIGlu dDogbGVuCisgQXNzaWdubWVudCBvZiBMT05HRVNUIHRvIGludDogb2Zmc2V0 ID0gcmVnaXN0ZXJfc2l6ZShnZGJhcmNoLCByZXR1cm5fcmVnaXN0ZXIpIC0g bGVuCitMT0Mgc2g2NC10ZGVwLmM6MTMyMAorIEZ1bmN0aW9uIG1lbWNweSBl eHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIExPTkdFU1Q6IGxlbgog TE9DIGJyZWFrcG9pbnQuaDo4MjkKICBGaWxlIHN0YXRpYyBmdW5jdGlvbiBW RUNfYnJlYWtwb2ludF9wX3NhZmVfaW5zZXJ0IGRlY2xhcmVkIGJ1dCBub3Qg dXNlZAogICAgTE9DIGJyZWFrcG9pbnQuaDo4MjkKICBEZWZpbml0aW9uIG9m IFZFQ19icmVha3BvaW50X3Bfc2FmZV9pbnNlcnQKIExPQyBzaC10ZGVwLmM6 ODI4Ci0gT3BlcmFuZHMgb2YgPT0gaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMg KFVJTlQsIGludCk6ICgoKCh0eXBlKS0+bWFpbl90eXBlLT5mbGRzX2JuZHMu ZmllbGRzWzBdKS50eXBlKSktPmxlbmd0aCA9PSBsZW4KKyBPcGVyYW5kcyBv ZiA9PSBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoVUxPTkdFU1QsIGludCk6 ICgoKCh0eXBlKS0+bWFpbl90eXBlLT5mbGRzX2JuZHMuZmllbGRzWzBdKS50 eXBlKSktPmxlbmd0aCA9PSBsZW4KIHNoLXRkZXAuYzogKGluIGZ1bmN0aW9u IHNoX3VzZV9zdHJ1Y3RfY29udmVudGlvbl9ub2ZwdSkKIExPQyBzaC10ZGVw LmM6MTA5OQotIEFzc2lnbm1lbnQgb2YgVUlOVCB0byBpbnQ6IGxlbiA9ICh0 eXBlKS0+bGVuZ3RoCisgQXNzaWdubWVudCBvZiBVTE9OR0VTVCB0byBpbnQ6 IGxlbiA9ICh0eXBlKS0+bGVuZ3RoCiBMT0Mgc2gtdGRlcC5jOjExNDgKLSBP cGVyYW5kcyBvZiA9PSBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoVUlOVCwg aW50KTogKHR5cGUpLT5sZW5ndGggPT0gMiAqIHJlZ19zaXplCisgT3BlcmFu ZHMgb2YgPT0gaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKFVMT05HRVNULCBp bnQpOiAodHlwZSktPmxlbmd0aCA9PSAyICogcmVnX3NpemUKIExPQyBzaC10 ZGVwLmM6MTIzNgotIEFzc2lnbm1lbnQgb2YgVUlOVCB0byBpbnQ6IGxlbiA9 ICh0eXBlKS0+bGVuZ3RoCisgQXNzaWdubWVudCBvZiBVTE9OR0VTVCB0byBp bnQ6IGxlbiA9ICh0eXBlKS0+bGVuZ3RoCiBMT0Mgc2gtdGRlcC5jOjEzMTgg KHNoLXRkZXAuYzoxMzI0KQorIEZ1bmN0aW9uIHN0b3JlX3Vuc2lnbmVkX2lu dGVnZXIgZXhwZWN0cyBhcmcgMiB0byBiZSBpbnQgZ2V0cyBMT05HRVNUOiBs ZW4KK0xPQyBzaC10ZGVwLmM6MTMyMworIE9wZXJhbmRzIG9mIDwgaGF2ZSBp bmNvbXBhdGlibGUgdHlwZXMgKGludCwgTE9OR0VTVCk6IGkgPCBsZW4KK0xP QyBzaC10ZGVwLmM6MTMyNAogIEZ1bmN0aW9uIHJlZ2NhY2hlX3Jhd19yZWFk IGV4cGVjdHMgYXJnIDMgdG8gYmUgZ2RiX2J5dGUgKiBnZXRzIGNoYXIgKjog KGNoYXIgKil2YWxidWYgKyBpCitMT0Mgc2gtdGRlcC5jOjEzNjcKKyBGdW5j dGlvbiBleHRyYWN0X3Vuc2lnbmVkX2ludGVnZXIgZXhwZWN0cyBhcmcgMiB0 byBiZSBpbnQgZ2V0cyBMT05HRVNUOiBsZW4KK0xPQyBzaC10ZGVwLmM6MTM3 MworIE9wZXJhbmRzIG9mIDwgaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKGlu dCwgTE9OR0VTVCk6IGkgPCBsZW4KIExPQyBicmVha3BvaW50Lmg6ODI5CiAg RmlsZSBzdGF0aWMgZnVuY3Rpb24gVkVDX2JyZWFrcG9pbnRfcF9zYWZlX2lu c2VydCBkZWNsYXJlZCBidXQgbm90IHVzZWQKICAgIExPQyBicmVha3BvaW50 Lmg6ODI5CiAgRGVmaW5pdGlvbiBvZiBWRUNfYnJlYWtwb2ludF9wX3NhZmVf aW5zZXJ0CiBMT0Mgc3BhcmM2NC10ZGVwLmM6NjY2IChzcGFyYzY0LXRkZXAu Yzo2NzApCisgQXNzaWdubWVudCBvZiBMT05HRVNUIHRvIGludDogcmVnbnVt ID0gU1BBUkM2NF9EMF9SRUdOVU0gKyBlbGVtZW50ICsgYml0cG9zIC8gNjQK K0xPQyBzcGFyYzY0LXRkZXAuYzo2NzEKICBOZXcgZnJlc2ggc3RvcmFnZSAo dHlwZSBjaGFyICopIHBhc3NlZCBhcyBpbXBsaWNpdGx5IHRlbXAgKG5vdCBy ZWxlYXNlZCk6IGdldHRleHQoIkFzc2VydGlvbiBgJXMnIGZhaWxlZC4iKQog TE9DIHNwYXJjNjQtdGRlcC5jOjY3NCAoc3BhcmM2NC10ZGVwLmM6Njc3KQor IEFzc2lnbm1lbnQgb2YgTE9OR0VTVCB0byBpbnQ6IHJlZ251bSA9IFNQQVJD X0YwX1JFR05VTSArIGVsZW1lbnQgKiAyICsgYml0cG9zIC8gMzIKK0xPQyBz cGFyYzY0LXRkZXAuYzo2NzgKICBUZXN0IGV4cHJlc3Npb24gZm9yIGlmIG5v dCBib29sZWFuLCB0eXBlIGludDogc3BhcmM2NF9zdHJ1Y3R1cmVfb3JfdW5p b25fcCh0eXBlKQogTE9DIHNwYXJjNjQtdGRlcC5jOjcyOAorIEFzc2lnbm1l bnQgb2YgTE9OR0VTVCB0byBpbnQ6IHJlZ251bSA9IFNQQVJDNjRfUTBfUkVH TlVNICsgYml0cG9zIC8gMTI4CitMT0Mgc3BhcmM2NC10ZGVwLmM6NzI5CiAg UmV0dXJuIHZhbHVlICh0eXBlIGVudW0gcmVnaXN0ZXJfc3RhdHVzKSBpZ25v cmVkOiByZWdjYWNoZV9jb29rZWRfLi4uCiBMT0Mgc3BhcmM2NC10ZGVwLmM6 NzM1CisgQXNzaWdubWVudCBvZiBMT05HRVNUIHRvIGludDogcmVnbnVtID0g U1BBUkM2NF9EMF9SRUdOVU0gKyBiaXRwb3MgLyA2NAorTE9DIHNwYXJjNjQt dGRlcC5jOjczNgogIFJldHVybiB2YWx1ZSAodHlwZSBlbnVtIHJlZ2lzdGVy X3N0YXR1cykgaWdub3JlZDogcmVnY2FjaGVfY29va2VkXy4uLgogTE9DIHNw YXJjNjQtdGRlcC5jOjc0MworIEFzc2lnbm1lbnQgb2YgTE9OR0VTVCB0byBp bnQ6IHJlZ251bSA9IFNQQVJDX0YwX1JFR05VTSArIGJpdHBvcyAvIDMyCitM T0Mgc3BhcmM2NC10ZGVwLmM6NzQ0CiAgUmV0dXJuIHZhbHVlICh0eXBlIGVu dW0gcmVnaXN0ZXJfc3RhdHVzKSBpZ25vcmVkOiByZWdjYWNoZV9jb29rZWRf Li4uCiBMT0Mgc3BhcmM2NC10ZGVwLmM6ODE2IChzcGFyYzY0LXRkZXAuYzo4 MTUpCi0gRnVuY3Rpb24gd3JpdGVfbWVtb3J5IGV4cGVjdHMgYXJnIDMgdG8g YmUgc3NpemVfdCBnZXRzIGludDogbGVuCisgRnVuY3Rpb24gd3JpdGVfbWVt b3J5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc3NpemVfdCBnZXRzIExPTkdFU1Q6 IGxlbgogTE9DIGJyZWFrcG9pbnQuaDo4MjkKICBGaWxlIHN0YXRpYyBmdW5j dGlvbiBWRUNfYnJlYWtwb2ludF9wX3NhZmVfaW5zZXJ0IGRlY2xhcmVkIGJ1 dCBub3QgdXNlZAogICAgTE9DIGJyZWFrcG9pbnQuaDo4MjkKICBEZWZpbml0 aW9uIG9mIFZFQ19icmVha3BvaW50X3Bfc2FmZV9pbnNlcnQKIExPQyBzcGFy Yy10ZGVwLmM6NDg2Ci0gRnVuY3Rpb24gd3JpdGVfbWVtb3J5IGV4cGVjdHMg YXJnIDMgdG8gYmUgc3NpemVfdCBnZXRzIGludDogbGVuCisgRnVuY3Rpb24g d3JpdGVfbWVtb3J5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc3NpemVfdCBnZXRz IExPTkdFU1Q6IGxlbgogTE9DIHNwYXJjLXRkZXAuYzoxMzc5Ci0gRnVuY3Rp b24gcmVhZF9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdl dHMgVUlOVDogKHR5cGUpLT5sZW5ndGgKKyBGdW5jdGlvbiByZWFkX21lbW9y eSBleHBlY3RzIGFyZyAzIHRvIGJlIHNzaXplX3QgZ2V0cyBVTE9OR0VTVDog KHR5cGUpLT5sZW5ndGgKK0xPQyBzcHUtdGRlcC5jOjMyMworIFZhcmlhYmxl IHByZWZlcnJlZF9zbG90IGluaXRpYWxpemVkIHRvIHR5cGUgTE9OR0VTVCwg ZXhwZWN0cyBpbnQ6IGxlbiA8IDQgPyA0IC0gbGVuIDogMAogc3B1LXRkZXAu YzogKGluIGZ1bmN0aW9uIHNwdV9nZGJhcmNoX2lkKQogc3B1LXRkZXAuYzog KGluIGZ1bmN0aW9uIHNwdV9wb2ludGVyX3RvX2FkZHJlc3MpCiBMT0Mgc3B1 LXRkZXAuYzoxNDc1Ci0gT3BlcmFuZHMgb2YgPD0gaGF2ZSBpbmNvbXBhdGli bGUgdHlwZXMgKFVJTlQsIGludCk6ICh0eXBlKS0+bGVuZ3RoIDw9IChTUFVf QVJHTl9SRUdOVU0gLSBTUFVfQVJHMV9SRUdOVU0gKyAxKSAqIDE2CisgT3Bl cmFuZHMgb2YgPD0gaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKFVMT05HRVNU LCBpbnQpOiAodHlwZSktPmxlbmd0aCA8PSAoU1BVX0FSR05fUkVHTlVNIC0g U1BVX0FSRzFfUkVHTlVNICsgMSkgKiAxNgogTE9DIGJyZWFrcG9pbnQuaDo4 MjkKICBGaWxlIHN0YXRpYyBmdW5jdGlvbiBWRUNfYnJlYWtwb2ludF9wX3Nh ZmVfaW5zZXJ0IGRlY2xhcmVkIGJ1dCBub3QgdXNlZAogICAgTE9DIGJyZWFr cG9pbnQuaDo4MjkKICBEZWZpbml0aW9uIG9mIFZFQ19icmVha3BvaW50X3Bf c2FmZV9pbnNlcnQKIExPQyB0cmFjZXBvaW50LmM6MTQ4MyAodHJhY2Vwb2lu dC5jOjE0ODIpCi0gRnVuY3Rpb24gYWRkX21lbXJhbmdlIGV4cGVjdHMgYXJn IDMgdG8gYmUgYmZkX3NpZ25lZF92bWEgZ2V0cyBVTE9OR0VTVDogYWRkcgor IEZ1bmN0aW9uIGFkZF9tZW1yYW5nZSBleHBlY3RzIGFyZyAzIHRvIGJlIGJm ZF9zaWduZWRfdm1hIGdldHMgQ09SRV9BRERSOiBhZGRyCiBMT0MgdHJhY2Vw b2ludC5jOjI2NjcgKHRyYWNlcG9pbnQuYzoyNjY1KQotIE9wZXJhbmRzIG9m IDwgaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKGludCwgVUlOVCk6IGogPCAo KHN5bSktPnR5cGUpLT5sZW5ndGgKKyBPcGVyYW5kcyBvZiA8IGhhdmUgaW5j b21wYXRpYmxlIHR5cGVzIChMT05HRVNULCBVTE9OR0VTVCk6IGogPCAoKHN5 bSktPnR5cGUpLT5sZW5ndGgKIExPQyB0cmFjZXBvaW50LmM6NDY4NSAodHJh Y2Vwb2ludC5jOjQ2ODApCi0gQXNzaWdubWVudCBvZiB1bnNpZ25lZCBzaG9y dCBpbnQgdG8gaW50OiByLT5sZW5ndGggPSBtbGVuCisgQXNzaWdubWVudCBv ZiB1bnNpZ25lZCBzaG9ydCBpbnQgdG8gTE9OR0VTVDogci0+bGVuZ3RoID0g bWxlbgogTE9DIHY4NTAtdGRlcC5jOjgzNwogIFZhcmlhYmxlIGxlbiBzaGFk b3dzIG91dGVyIGRlY2xhcmF0aW9uCiAgICBMT0Mgdjg1MC10ZGVwLmM6ODEy Ci0gUHJldmlvdXMgZGVmaW5pdGlvbiBvZiBsZW46IGludAorIFByZXZpb3Vz IGRlZmluaXRpb24gb2YgbGVuOiBMT05HRVNUCiBMT0Mgdjg1MC10ZGVwLmM6 ODUxCi0gQXNzaWdubWVudCBvZiBVSU5UIHRvIGludDogbGVuID0gKHZhbHVl X3R5cGUoKmFyZ3MpKS0+bGVuZ3RoCisgQXNzaWdubWVudCBvZiBVTE9OR0VT VCB0byBpbnQ6IGxlbiA9ICh2YWx1ZV90eXBlKCphcmdzKSktPmxlbmd0aAog TE9DIHY4NTAtdGRlcC5jOjkwMCAodjg1MC10ZGVwLmM6OTA4KQorIEZ1bmN0 aW9uIHN0b3JlX3Vuc2lnbmVkX2ludGVnZXIgZXhwZWN0cyBhcmcgMiB0byBi ZSBpbnQgZ2V0cyBMT05HRVNUOiBsZW4KK0xPQyB2ODUwLXRkZXAuYzo5MDgK ICBQYXNzZWQgc3RvcmFnZSBidWYgbm90IGNvbXBsZXRlbHkgZGVmaW5lZCAo KmJ1ZiBpcyB1bmRlZmluZWQpOiByZWdjYWNoZV9yYXdfcmVhZCAoLi4uLCBi dWYpCitMT0Mgdjg1MC10ZGVwLmM6OTI1CisgRnVuY3Rpb24gZXh0cmFjdF91 bnNpZ25lZF9pbnRlZ2VyIGV4cGVjdHMgYXJnIDIgdG8gYmUgaW50IGdldHMg TE9OR0VTVDogbGVuCitMT0Mgdjg1MC10ZGVwLmM6OTI5CisgT3BlcmFuZHMg b2YgPCBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoaW50LCBMT05HRVNUKTog aSA8IGxlbgogTE9DIG1lbXJhbmdlLmg6MzgKICBGaWxlIHN0YXRpYyBmdW5j dGlvbiBWRUNfbWVtX3JhbmdlX3Nfc2FmZV9pbnNlcnQgZGVjbGFyZWQgYnV0 IG5vdCB1c2VkCiAgICBMT0MgbWVtcmFuZ2UuaDozOAogIERlZmluaXRpb24g b2YgVkVDX21lbV9yYW5nZV9zX3NhZmVfaW5zZXJ0CiBMT0MgdmFsYXJpdGgu Yzo3MTMKLSBBc3NpZ25tZW50IG9mIFVJTlQgdG8gaW50OiBpbnZhbDJsZW4g PSAodHlwZTIpLT5sZW5ndGgKKyBBc3NpZ25tZW50IG9mIFVMT05HRVNUIHRv IGludDogaW52YWwybGVuID0gKHR5cGUyKS0+bGVuZ3RoCiBMT0MgdmFsYXJp dGguYzo3NTcKLSBBc3NpZ25tZW50IG9mIFVJTlQgdG8gaW50OiBpbnZhbDFs ZW4gPSAodHlwZTEpLT5sZW5ndGgKKyBBc3NpZ25tZW50IG9mIFVMT05HRVNU IHRvIGludDogaW52YWwxbGVuID0gKHR5cGUxKS0+bGVuZ3RoCiBMT0MgdmFs YXJpdGguYzo3NTgKLSBBc3NpZ25tZW50IG9mIFVJTlQgdG8gaW50OiBpbnZh bDJsZW4gPSAodHlwZTIpLT5sZW5ndGgKKyBBc3NpZ25tZW50IG9mIFVMT05H RVNUIHRvIGludDogaW52YWwybGVuID0gKHR5cGUyKS0+bGVuZ3RoCiBMT0Mg dmFsYXJpdGguYzo4OTUKLSBBc3NpZ25tZW50IG9mIFVJTlQgdG8gaW50OiAq bGVuX3ggPSAodHlwZTEpLT5sZW5ndGgKKyBBc3NpZ25tZW50IG9mIFVMT05H RVNUIHRvIGludDogKmxlbl94ID0gKHR5cGUxKS0+bGVuZ3RoCiBMT0MgdmFs YXJpdGguYzo5MDEKLSBBc3NpZ25tZW50IG9mIFVJTlQgdG8gaW50OiAqbGVu X3ggPSAodHlwZTIpLT5sZW5ndGgKKyBBc3NpZ25tZW50IG9mIFVMT05HRVNU IHRvIGludDogKmxlbl94ID0gKHR5cGUyKS0+bGVuZ3RoCiBMT0MgdmFsYXJp dGguYzo5MTQKLSBBc3NpZ25tZW50IG9mIFVJTlQgdG8gaW50OiAqbGVuX3kg PSAodHlwZTIpLT5sZW5ndGgKKyBBc3NpZ25tZW50IG9mIFVMT05HRVNUIHRv IGludDogKmxlbl95ID0gKHR5cGUyKS0+bGVuZ3RoCiBMT0MgdmFsYXJpdGgu Yzo5MjAKLSBBc3NpZ25tZW50IG9mIFVJTlQgdG8gaW50OiAqbGVuX3kgPSAo dHlwZTEpLT5sZW5ndGgKKyBBc3NpZ25tZW50IG9mIFVMT05HRVNUIHRvIGlu dDogKmxlbl95ID0gKHR5cGUxKS0+bGVuZ3RoCiBMT0MgdmFsYXJpdGguYzo5 NzMKLSBBc3NpZ25tZW50IG9mIFVJTlQgdG8gaW50OiBsZW5fdiA9IChyZXN1 bHRfdHlwZSktPmxlbmd0aAorIEFzc2lnbm1lbnQgb2YgVUxPTkdFU1QgdG8g aW50OiBsZW5fdiA9IChyZXN1bHRfdHlwZSktPmxlbmd0aAogTE9DIHZhbGFy aXRoLmM6MTQxNAotIEFzc2lnbm1lbnQgb2YgVUlOVCB0byBpbnQ6IGVsc2l6 ZSA9IChlbHR5cGUxKS0+bGVuZ3RoCisgQXNzaWdubWVudCBvZiBVTE9OR0VT VCB0byBpbnQ6IGVsc2l6ZSA9IChlbHR5cGUxKS0+bGVuZ3RoCiBMT0MgdmFs YXJpdGguYzoxNDE3Ci0gT3BlcmFuZHMgb2YgIT0gaGF2ZSBpbmNvbXBhdGli bGUgdHlwZXMgKGludCwgVUlOVCk6IGVsc2l6ZSAhPSAoZWx0eXBlMiktPmxl bmd0aAorIE9wZXJhbmRzIG9mICE9IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVz IChpbnQsIFVMT05HRVNUKTogZWxzaXplICE9IChlbHR5cGUyKS0+bGVuZ3Ro CiBMT0MgdmFsYXJpdGguYzoxNDg3Ci0gRnVuY3Rpb24gZGVjaW1hbF9pc196 ZXJvIGV4cGVjdHMgYXJnIDIgdG8gYmUgaW50IGdldHMgVUlOVDogKHR5cGUx KS0+bGVuZ3RoCisgRnVuY3Rpb24gZGVjaW1hbF9pc196ZXJvIGV4cGVjdHMg YXJnIDIgdG8gYmUgaW50IGdldHMgVUxPTkdFU1Q6ICh0eXBlMSktPmxlbmd0 aAorTE9DIHZhbGFyaXRoLmM6MTUxMgorIFZhcmlhYmxlIGxlbiBpbml0aWFs aXplZCB0byB0eXBlIExPTkdFU1QsIGV4cGVjdHMgaW50OiBsZW4xIDwgbGVu MiA/IGxlbjEgOiBsZW4yCiBMT0MgdmFsYXJpdGguYzoxNjI4Ci0gRnVuY3Rp b24gbWVtY21wIGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgVUlO VDogKHR5cGUxKS0+bGVuZ3RoCisgRnVuY3Rpb24gbWVtY21wIGV4cGVjdHMg YXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgVUxPTkdFU1Q6ICh0eXBlMSktPmxl bmd0aAogTE9DIHZhbGFyaXRoLmM6MTcxOAotIEZ1bmN0aW9uIG1lbWNweSBl eHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIFVJTlQ6ICh0eXBlKS0+ bGVuZ3RoCisgRnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUg c2l6ZV90IGdldHMgVUxPTkdFU1Q6ICh0eXBlKS0+bGVuZ3RoCiBMT0MgdmFs YXJpdGguYzoxNzcyCi0gRnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJnIDMg dG8gYmUgc2l6ZV90IGdldHMgVUlOVDogKGVsdHlwZSktPmxlbmd0aAorIEZ1 bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRz IFVMT05HRVNUOiAoZWx0eXBlKS0+bGVuZ3RoCiBMT0MgdmFsYXJpdGguYzox ODA5Ci0gRnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6 ZV90IGdldHMgVUlOVDogKGVsdHlwZSktPmxlbmd0aAorIEZ1bmN0aW9uIG1l bWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIFVMT05HRVNU OiAoZWx0eXBlKS0+bGVuZ3RoCiBMT0MgdGFyZ2V0Lmg6MTAzNAogIEZpbGUg c3RhdGljIGZ1bmN0aW9uIFZFQ19tZW1vcnlfd3JpdGVfcmVxdWVzdF9zX3Nh ZmVfaW5zZXJ0IGRlY2xhcmVkIGJ1dCBub3QgdXNlZAogICAgTE9DIHRhcmdl dC5oOjEwMzQKICBEZWZpbml0aW9uIG9mIFZFQ19tZW1vcnlfd3JpdGVfcmVx dWVzdF9zX3NhZmVfaW5zZXJ0CiBMT0MgdmFsb3BzLmM6NDgwICh2YWxvcHMu Yzo0NzkpCi0gRnVuY3Rpb24gZGVjaW1hbF9jb252ZXJ0IGV4cGVjdHMgYXJn IDIgdG8gYmUgaW50IGdldHMgVUlOVDogKHR5cGUyKS0+bGVuZ3RoCisgRnVu Y3Rpb24gZGVjaW1hbF9jb252ZXJ0IGV4cGVjdHMgYXJnIDIgdG8gYmUgaW50 IGdldHMgVUxPTkdFU1Q6ICh0eXBlMiktPmxlbmd0aAogTE9DIHZhbG9wcy5j OjU2OSAodmFsb3BzLmM6NTY4KQotIEZ1bmN0aW9uIG1lbWNweSBleHBlY3Rz IGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIFVJTlQ6IChlbHR5cGUpLT5sZW5n dGgKKyBGdW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXpl X3QgZ2V0cyBVTE9OR0VTVDogKGVsdHlwZSktPmxlbmd0aAogTE9DIHZhbG9w cy5jOjg4NCAodmFsb3BzLmM6ODgyKQotIEZ1bmN0aW9uIGRlY2ltYWxfZnJv bV9zdHJpbmcgZXhwZWN0cyBhcmcgMiB0byBiZSBpbnQgZ2V0cyBVSU5UOiAo dHlwZSktPmxlbmd0aAorIEZ1bmN0aW9uIGRlY2ltYWxfZnJvbV9zdHJpbmcg ZXhwZWN0cyBhcmcgMiB0byBiZSBpbnQgZ2V0cyBVTE9OR0VTVDogKHR5cGUp LT5sZW5ndGgKIExPQyB2YWxvcHMuYzo5MTAgKHZhbG9wcy5jOjkwOCkKLSBG dW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXplX3QgZ2V0 cyBVSU5UOiAoZWx0eXBlKS0+bGVuZ3RoCisgRnVuY3Rpb24gbWVtY3B5IGV4 cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgVUxPTkdFU1Q6IChlbHR5 cGUpLT5sZW5ndGgKIExPQyB2YWxvcHMuYzo5OTkgKHZhbG9wcy5jOjk5NykK LSBWYXJpYWJsZSBsZW5ndGggaW5pdGlhbGl6ZWQgdG8gdHlwZSBVSU5ULCBl eHBlY3RzIGludDogKHR5cGUpLT5sZW5ndGgKLUxPQyB2YWxvcHMuYzoxMDAw Ci0gRnVuY3Rpb24gdmFsdWVfYml0c192YWxpZCBleHBlY3RzIGFyZyAyIHRv IGJlIGludCBnZXRzIExPTkdFU1Q6IDggKiBvZmZzZXQgKyB2YWx1ZV9iaXRw b3ModmFsKQorIFZhcmlhYmxlIGxlbmd0aCBpbml0aWFsaXplZCB0byB0eXBl IFVMT05HRVNULCBleHBlY3RzIExPTkdFU1Q6ICh0eXBlKS0+bGVuZ3RoCiBM T0MgdmFsb3BzLmM6MTAwNgotIEZ1bmN0aW9uIHVucGFja192YWx1ZV9iaXRz X2FzX2xvbmcgZXhwZWN0cyBhcmcgMyB0byBiZSBpbnQgZ2V0cyBMT05HRVNU OiBvZmZzZXQKLUxPQyB2YWxvcHMuYzoxMDA0CiAgTmV3IGZyZXNoIHN0b3Jh Z2UgKHR5cGUgc3RydWN0IHR5cGUgKikgcGFzc2VkIGFzIGltcGxpY2l0bHkg dGVtcCAobm90IHJlbGVhc2VkKTogdmFsdWVfdHlwZSh2YWwpCiBMT0MgdmFs b3BzLmM6MTAxNSAodmFsb3BzLmM6MTAxMykKKyBGdW5jdGlvbiBzdG9yZV9z aWduZWRfaW50ZWdlciBleHBlY3RzIGFyZyAyIHRvIGJlIGludCBnZXRzIExP TkdFU1Q6IGxlbmd0aAorTE9DIHZhbG9wcy5jOjEwMTUKICBOZXcgZnJlc2gg c3RvcmFnZSAodHlwZSBnZGJfYnl0ZSAqKSBwYXNzZWQgYXMgaW1wbGljaXRs eSB0ZW1wIChub3QgcmVsZWFzZWQpOiB2YWx1ZV9jb250ZW50c19yYXcodmFs KQogTE9DIHZhbG9wcy5jOjEwMjIgKHZhbG9wcy5jOjEwMTkpCi0gTmV3IGZy ZXNoIHN0b3JhZ2UgKHR5cGUgc3RydWN0IHR5cGUgKikgcGFzc2VkIGFzIGlt cGxpY2l0bHkgdGVtcCAobm90IHJlbGVhc2VkKTogdmFsdWVfZW5jbG9zaW5n X3R5cGUodmFsKQorIFZhcmlhYmxlIGxlbmd0aCBpbml0aWFsaXplZCB0byB0 eXBlIFVMT05HRVNULCBleHBlY3RzIExPTkdFU1Q6IChjaGVja190eXBlZGVm KGVuY2xvc2luZ190eXBlKSktPmxlbmd0aAogTE9DIHZhbG9wcy5jOjEwMjQg KHZhbG9wcy5jOjEwMTkpCi0gVmFyaWFibGUgbGVuZ3RoIGluaXRpYWxpemVk IHRvIHR5cGUgVUlOVCwgZXhwZWN0cyBpbnQ6IChjaGVja190eXBlZGVmKHZh bHVlX2VuY2xvc2luZ190eXBlKHZhbCkpKS0+bGVuZ3RoCisgVGVzdCBleHBy ZXNzaW9uIGZvciBpZiBub3QgYm9vbGVhbiwgdHlwZSBMT05HRVNUOiBsZW5n dGgKIExPQyB2YWxvcHMuYzoxMDI2ICh2YWxvcHMuYzoxMDIxKQotIFRlc3Qg ZXhwcmVzc2lvbiBmb3IgaWYgbm90IGJvb2xlYW4sIHR5cGUgaW50OiBsZW5n dGgKLUxPQyB2YWxvcHMuYzoxMDIzCi0gRnVuY3Rpb24gcmVhZF92YWx1ZV9t ZW1vcnkgZXhwZWN0cyBhcmcgNiB0byBiZSBzaXplX3QgZ2V0cyBpbnQ6IGxl bmd0aAorIEZ1bmN0aW9uIHJlYWRfdmFsdWVfbWVtb3J5IGV4cGVjdHMgYXJn IDYgdG8gYmUgc2l6ZV90IGdldHMgTE9OR0VTVDogbGVuZ3RoCiBMT0MgdmFs b3BzLmM6MTAyNyAodmFsb3BzLmM6MTAyOSkKKyBGcmVzaCBzdG9yYWdlIGVu Y2xvc2luZ190eXBlIG5vdCByZWxlYXNlZCBiZWZvcmUgc2NvcGUgZXhpdAor ICAgTE9DIHZhbG9wcy5jOjEwMjEKKyBGcmVzaCBzdG9yYWdlIGVuY2xvc2lu Z190eXBlIGNyZWF0ZWQKK0xPQyB2YWxvcHMuYzoxMDMyCiAgTmV3IGZyZXNo IHN0b3JhZ2UgKHR5cGUgc3RydWN0IHR5cGUgKikgcGFzc2VkIGFzIGltcGxp Y2l0bHkgdGVtcCAobm90IHJlbGVhc2VkKTogdmFsdWVfdHlwZSh2YWwpCiBM T0MgdmFsb3BzLmM6MTI4MyAodmFsb3BzLmM6MTI4MCkKLSBPcGVyYW5kcyBv ZiA8IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChpbnQsIFVJTlQpOiBjaGFu Z2VkX2xlbiA8ICh0eXBlKS0+bGVuZ3RoCisgT3BlcmFuZHMgb2YgPCBoYXZl IGluY29tcGF0aWJsZSB0eXBlcyAoTE9OR0VTVCwgVUxPTkdFU1QpOiBjaGFu Z2VkX2xlbiA8ICh0eXBlKS0+bGVuZ3RoCiBMT0MgdmFsb3BzLmM6MTI4NCAo dmFsb3BzLmM6MTI4MSkKLSBPcGVyYW5kcyBvZiA8PSBoYXZlIGluY29tcGF0 aWJsZSB0eXBlcyAoVUlOVCwgaW50KTogKHR5cGUpLT5sZW5ndGggPD0gKGlu dClzaXplb2YoTE9OR0VTVCkKKyBPcGVyYW5kcyBvZiA8PSBoYXZlIGluY29t cGF0aWJsZSB0eXBlcyAoVUxPTkdFU1QsIGludCk6ICh0eXBlKS0+bGVuZ3Ro IDw9IChpbnQpc2l6ZW9mKExPTkdFU1QpCiBMT0MgdmFsb3BzLmM6MTI5MyAo dmFsb3BzLmM6MTI5MCkKLSBGdW5jdGlvbiByZWFkX21lbW9yeSBleHBlY3Rz IGFyZyAzIHRvIGJlIHNzaXplX3QgZ2V0cyBpbnQ6IGNoYW5nZWRfbGVuCisg RnVuY3Rpb24gcmVhZF9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6 ZV90IGdldHMgTE9OR0VTVDogY2hhbmdlZF9sZW4KIExPQyB2YWxvcHMuYzox MzA1ICh2YWxvcHMuYzoxMzAyKQotIEZ1bmN0aW9uIHdyaXRlX21lbW9yeSBl eHBlY3RzIGFyZyAzIHRvIGJlIHNzaXplX3QgZ2V0cyBpbnQ6IGNoYW5nZWRf bGVuCisgRnVuY3Rpb24gd3JpdGVfbWVtb3J5IGV4cGVjdHMgYXJnIDMgdG8g YmUgc3NpemVfdCBnZXRzIExPTkdFU1Q6IGNoYW5nZWRfbGVuCiBMT0MgdmFs b3BzLmM6MTM1NCAodmFsb3BzLmM6MTM1MSkKLSBGdW5jdGlvbiBnZXRfZnJh bWVfcmVnaXN0ZXJfYnl0ZXMgZXhwZWN0cyBhcmcgMyB0byBiZSBDT1JFX0FE RFIgZ2V0cyBpbnQ6IG9mZnNldAorIEZ1bmN0aW9uIGdldF9mcmFtZV9yZWdp c3Rlcl9ieXRlcyBleHBlY3RzIGFyZyAzIHRvIGJlIENPUkVfQUREUiBnZXRz IExPTkdFU1Q6IG9mZnNldAogTE9DIHZhbG9wcy5jOjEzNjggKHZhbG9wcy5j OjEzNjUpCi0gRnVuY3Rpb24gcHV0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIGV4 cGVjdHMgYXJnIDMgdG8gYmUgQ09SRV9BRERSIGdldHMgaW50OiBvZmZzZXQK KyBGdW5jdGlvbiBwdXRfZnJhbWVfcmVnaXN0ZXJfYnl0ZXMgZXhwZWN0cyBh cmcgMyB0byBiZSBDT1JFX0FERFIgZ2V0cyBMT05HRVNUOiBvZmZzZXQKIExP QyB2YWxvcHMuYzoxMzc0ICh2YWxvcHMuYzoxMzcxKQotIEZ1bmN0aW9uIHB1 dF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyBleHBlY3RzIGFyZyAzIHRvIGJlIENP UkVfQUREUiBnZXRzIGludDogdmFsdWVfb2Zmc2V0KHRvdmFsKQorIEZ1bmN0 aW9uIHB1dF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyBleHBlY3RzIGFyZyAzIHRv IGJlIENPUkVfQUREUiBnZXRzIExPTkdFU1Q6IHZhbHVlX29mZnNldCh0b3Zh bCkKIExPQyB2YWxvcHMuYzoxMzc1ICh2YWxvcHMuYzoxMzcyKQotIEZ1bmN0 aW9uIHB1dF9mcmFtZV9yZWdpc3Rlcl9ieXRlcyBleHBlY3RzIGFyZyA0IHRv IGJlIGludCBnZXRzIFVJTlQ6ICh0eXBlKS0+bGVuZ3RoCisgRnVuY3Rpb24g cHV0X2ZyYW1lX3JlZ2lzdGVyX2J5dGVzIGV4cGVjdHMgYXJnIDQgdG8gYmUg aW50IGdldHMgVUxPTkdFU1Q6ICh0eXBlKS0+bGVuZ3RoCiBMT0MgdmFsb3Bz LmM6MTQ1OSAodmFsb3BzLmM6MTQ1NikKLSBGdW5jdGlvbiBtZW1jcHkgZXhw ZWN0cyBhcmcgMyB0byBiZSBzaXplX3QgZ2V0cyBVSU5UOiAodHlwZSktPmxl bmd0aAorIEZ1bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNp emVfdCBnZXRzIFVMT05HRVNUOiAodHlwZSktPmxlbmd0aAogTE9DIHZhbG9w cy5jOjE0OTMgKHZhbG9wcy5jOjE0OTApCi0gRnVuY3Rpb24gcmVhZF92YWx1 ZV9tZW1vcnkgZXhwZWN0cyBhcmcgNiB0byBiZSBzaXplX3QgZ2V0cyBVSU5U OiAodmFsdWVfZW5jbG9zaW5nX3R5cGUodmFsKSktPmxlbmd0aAorIEZ1bmN0 aW9uIHJlYWRfdmFsdWVfbWVtb3J5IGV4cGVjdHMgYXJnIDYgdG8gYmUgc2l6 ZV90IGdldHMgVUxPTkdFU1Q6ICh2YWx1ZV9lbmNsb3NpbmdfdHlwZSh2YWwp KS0+bGVuZ3RoCiBMT0MgdmFsb3BzLmM6MTgzMiAodmFsb3BzLmM6MTgzMCkK LSBGdW5jdGlvbiB2YWx1ZV9jb250ZW50c19jb3B5IGV4cGVjdHMgYXJnIDUg dG8gYmUgaW50IGdldHMgVUlOVDogdHlwZWxlbmd0aAorIEZ1bmN0aW9uIHZh bHVlX2NvbnRlbnRzX2NvcHkgZXhwZWN0cyBhcmcgMiB0byBiZSBMT05HRVNU IGdldHMgVUxPTkdFU1Q6IGlkeCAqIHR5cGVsZW5ndGgKK0xPQyB2YWxvcHMu YzoxODMzCisgRnVuY3Rpb24gdmFsdWVfY29udGVudHNfY29weSBleHBlY3Rz IGFyZyA1IHRvIGJlIExPTkdFU1QgZ2V0cyBVTE9OR0VTVDogdHlwZWxlbmd0 aAogTE9DIHZhbG9wcy5jOjE4NDIgKHZhbG9wcy5jOjE4MzkpCi0gRnVuY3Rp b24gdmFsdWVfY29udGVudHNfY29weSBleHBlY3RzIGFyZyA1IHRvIGJlIGlu dCBnZXRzIFVJTlQ6IHR5cGVsZW5ndGgKKyBGdW5jdGlvbiB2YWx1ZV9jb250 ZW50c19jb3B5IGV4cGVjdHMgYXJnIDIgdG8gYmUgTE9OR0VTVCBnZXRzIFVM T05HRVNUOiBpZHggKiB0eXBlbGVuZ3RoCitMT0MgdmFsb3BzLmM6MTg0Mgor IEZ1bmN0aW9uIHZhbHVlX2NvbnRlbnRzX2NvcHkgZXhwZWN0cyBhcmcgNSB0 byBiZSBMT05HRVNUIGdldHMgVUxPTkdFU1Q6IHR5cGVsZW5ndGgKIExPQyB2 YWxvcHMuYzoxODUxICh2YWxvcHMuYzoxODUzKQorIFZhcmlhYmxlIGhpZ2hi b3VuZCBpbml0aWFsaXplZCB0byB0eXBlIFVMT05HRVNULCBleHBlY3RzIGlu dDogbGVuIC8gKGNoYXJfdHlwZSktPmxlbmd0aAorTE9DIHZhbG9wcy5jOjE4 NTYKICBGdW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXpl X3QgZ2V0cyBpbnQ6IGxlbgogTE9DIHZhbG9wcy5jOjE4NzQgKHZhbG9wcy5j OjE4NzYpCisgVmFyaWFibGUgaGlnaGJvdW5kIGluaXRpYWxpemVkIHRvIHR5 cGUgVUxPTkdFU1QsIGV4cGVjdHMgaW50OiBsZW4gLyAoY2hhcl90eXBlKS0+ bGVuZ3RoCitMT0MgdmFsb3BzLmM6MTg3OQogIEZ1bmN0aW9uIG1lbWNweSBl eHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIGludDogbGVuCiBMT0Mg dmFsb3BzLmM6MTg5MyAodmFsb3BzLmM6MTg5MCkKLSBGdW5jdGlvbiBtZW1j cHkgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXplX3QgZ2V0cyBVSU5UOiAodHlw ZSktPmxlbmd0aAorIEZ1bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRv IGJlIHNpemVfdCBnZXRzIFVMT05HRVNUOiAodHlwZSktPmxlbmd0aAogTE9D IHZhbG9wcy5jOjIxMzEgKHZhbG9wcy5jOjIxMjgpCi0gT3BlcmFuZHMgb2Yg Pj0gaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKGludCwgVUlOVCk6IGJvZmZz ZXQgPj0gKHZhbHVlX2VuY2xvc2luZ190eXBlKGFyZzEpKS0+bGVuZ3RoCisg T3BlcmFuZHMgb2YgPj0gaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKExPTkdF U1QsIFVMT05HRVNUKTogYm9mZnNldCA+PSAodmFsdWVfZW5jbG9zaW5nX3R5 cGUoYXJnMSkpLT5sZW5ndGgKIExPQyB2YWxvcHMuYzoyMTM5ICh2YWxvcHMu YzoyMTM2KQotIEZ1bmN0aW9uIHRhcmdldF9yZWFkX21lbW9yeSBleHBlY3Rz IGFyZyAzIHRvIGJlIHNzaXplX3QgZ2V0cyBVSU5UOiAoYmFzZXR5cGUpLT5s ZW5ndGgKKyBGdW5jdGlvbiB0YXJnZXRfcmVhZF9tZW1vcnkgZXhwZWN0cyBh cmcgMyB0byBiZSBzc2l6ZV90IGdldHMgVUxPTkdFU1Q6IChiYXNldHlwZSkt Pmxlbmd0aAogTE9DIHZhbG9wcy5jOjIxNzUgKHZhbG9wcy5jOjIxNzEpCisg RnVuY3Rpb24gdXBkYXRlX3NlYXJjaF9yZXN1bHQgZXhwZWN0cyBhcmcgNCB0 byBiZSBpbnQgZ2V0cyBMT05HRVNUOiBib2Zmc2V0CitMT0MgdmFsb3BzLmM6 MjE3NAogIE51bGwgc3RvcmFnZSB2IHBhc3NlZCBhcyBub24tbnVsbCBwYXJh bTogdXBkYXRlX3NlYXJjaF9yZXN1bHQgKC4uLiwgdiwgLi4uKQogICAgTE9D IHZhbG9wcy5jOjIxMDMgKHZhbG9wcy5jOjIxMDApCiAgU3RvcmFnZSB2IGJl Y29tZXMgbnVsbAogTE9DIHZhbG9wcy5jOjIyODcgKHZhbG9wcy5jOjIyODQp Ci0gT3BlcmFuZHMgb2YgPj0gaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKGlu dCwgVUlOVCk6IG9mZnNldCA+PSAodHlwZSktPmxlbmd0aAorIE9wZXJhbmRz IG9mID49IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChMT05HRVNULCBVTE9O R0VTVCk6IG9mZnNldCA+PSAodHlwZSktPmxlbmd0aAogTE9DIHZhbG9wcy5j OjIyODkgKHZhbG9wcy5jOjIyODYpCi0gRnVuY3Rpb24gQ19hbGxvY2EgZXhw ZWN0cyBhcmcgMSB0byBiZSBzaXplX3QgZ2V0cyBVSU5UOiAoYmFzZWNsYXNz KS0+bGVuZ3RoCisgRnVuY3Rpb24gQ19hbGxvY2EgZXhwZWN0cyBhcmcgMSB0 byBiZSBzaXplX3QgZ2V0cyBVTE9OR0VTVDogKGJhc2VjbGFzcyktPmxlbmd0 aAogTE9DIHZhbG9wcy5jOjIyOTMgKHZhbG9wcy5jOjIyOTApCi0gRnVuY3Rp b24gdGFyZ2V0X3JlYWRfbWVtb3J5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc3Np emVfdCBnZXRzIFVJTlQ6IChiYXNlY2xhc3MpLT5sZW5ndGgKKyBGdW5jdGlv biB0YXJnZXRfcmVhZF9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6 ZV90IGdldHMgVUxPTkdFU1Q6IChiYXNlY2xhc3MpLT5sZW5ndGgKIExPQyB2 YWxvcHMuYzozMzU3ICh2YWxvcHMuYzozMzU0KQotIExlZnQgb3BlcmFuZCBv ZiA+PiBtYXkgYmUgbmVnYXRpdmUgKGludCk6ICgoKCh0KS0+bWFpbl90eXBl LT5mbGRzX2JuZHMuZmllbGRzW2ldKS5sb2MuYml0cG9zKSArIDApID4+IDMK KyBMZWZ0IG9wZXJhbmQgb2YgPj4gbWF5IGJlIG5lZ2F0aXZlIChMT05HRVNU KTogKCgoKHQpLT5tYWluX3R5cGUtPmZsZHNfYm5kcy5maWVsZHNbaV0pLmxv Yy5iaXRwb3MpICsgMCkgPj4gMwogTE9DIHZhbG9wcy5jOjM4MjYgKHZhbG9w cy5jOjM4MjIpCi0gRnVuY3Rpb24gdmFsdWVfY29udGVudHNfY29weSBleHBl Y3RzIGFyZyA0IHRvIGJlIGludCBnZXRzIExPTkdFU1Q6IG9mZnNldAotTE9D IHZhbG9wcy5jOjM4MjMKLSBGdW5jdGlvbiB2YWx1ZV9jb250ZW50c19jb3B5 IGV4cGVjdHMgYXJnIDUgdG8gYmUgaW50IGdldHMgVUlOVDogKHNsaWNlX3R5 cGUpLT5sZW5ndGgKLUxPQyB2YWxvcHMuYzozODI4Ci0gRnVuY3Rpb24gc2V0 X3ZhbHVlX29mZnNldCBleHBlY3RzIGFyZyAyIHRvIGJlIGludCBnZXRzIExP TkdFU1Q6IHZhbHVlX29mZnNldChhcnJheSkgKyBvZmZzZXQKKyBGdW5jdGlv biB2YWx1ZV9jb250ZW50c19jb3B5IGV4cGVjdHMgYXJnIDUgdG8gYmUgTE9O R0VTVCBnZXRzIFVMT05HRVNUOiAoc2xpY2VfdHlwZSktPmxlbmd0aAogTE9D IHZhbG9wcy5jOjM4NTUgKHZhbG9wcy5jOjM4NTIpCi0gRnVuY3Rpb24gbWVt Y3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgVUlOVDogKHJl YWxfdHlwZSktPmxlbmd0aAorIEZ1bmN0aW9uIG1lbWNweSBleHBlY3RzIGFy ZyAzIHRvIGJlIHNpemVfdCBnZXRzIFVMT05HRVNUOiAocmVhbF90eXBlKS0+ bGVuZ3RoCiBMT0MgdmFsb3BzLmM6Mzg1NyAodmFsb3BzLmM6Mzg1NCkKLSBG dW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXplX3QgZ2V0 cyBVSU5UOiAocmVhbF90eXBlKS0+bGVuZ3RoCisgRnVuY3Rpb24gbWVtY3B5 IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgVUxPTkdFU1Q6IChy ZWFsX3R5cGUpLT5sZW5ndGgKIExPQyB2YWxvcHMuYzozODc1ICh2YWxvcHMu YzozODcyKQotIEZ1bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRvIGJl IHNpemVfdCBnZXRzIFVJTlQ6ICh2YWxfcmVhbF90eXBlKS0+bGVuZ3RoCisg RnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdl dHMgVUxPTkdFU1Q6ICh2YWxfcmVhbF90eXBlKS0+bGVuZ3RoCiBMT0MgdmFs b3BzLmM6Mzg3OCAodmFsb3BzLmM6Mzg3NSkKLSBGdW5jdGlvbiBtZW1jcHkg ZXhwZWN0cyBhcmcgMyB0byBiZSBzaXplX3QgZ2V0cyBVSU5UOiAodmFsX3Jl YWxfdHlwZSktPmxlbmd0aAorIEZ1bmN0aW9uIG1lbWNweSBleHBlY3RzIGFy ZyAzIHRvIGJlIHNpemVfdCBnZXRzIFVMT05HRVNUOiAodmFsX3JlYWxfdHlw ZSktPmxlbmd0aAogTE9DIG1lbXJhbmdlLmg6MzgKICBGaWxlIHN0YXRpYyBm dW5jdGlvbiBWRUNfbWVtX3JhbmdlX3Nfc2FmZV9pbnNlcnQgZGVjbGFyZWQg YnV0IG5vdCB1c2VkCiAgICBMT0MgbWVtcmFuZ2UuaDozOAogIERlZmluaXRp b24gb2YgVkVDX21lbV9yYW5nZV9zX3NhZmVfaW5zZXJ0CiBMT0MgdmFscHJp bnQuYzo4NDgKLSBPcGVyYW5kcyBvZiA+IGhhdmUgaW5jb21wYXRpYmxlIHR5 cGVzIChVSU5ULCBzaXplX3QpOiAodHlwZSktPmxlbmd0aCA+IHNpemVvZihM T05HRVNUKQorIE9wZXJhbmRzIG9mID4gaGF2ZSBpbmNvbXBhdGlibGUgdHlw ZXMgKFVMT05HRVNULCBzaXplX3QpOiAodHlwZSktPmxlbmd0aCA+IHNpemVv ZihMT05HRVNUKQogTE9DIHZhbHByaW50LmM6MTAyNCAodmFscHJpbnQuYzox MDM1KQorIFZhcmlhYmxlIGxlbiBpbml0aWFsaXplZCB0byB0eXBlIFVMT05H RVNULCBleHBlY3RzIFVJTlQ6ICh0eXBlKS0+bGVuZ3RoCitMT0MgdmFscHJp bnQuYzoxMDM1CiAgVGVzdCBleHByZXNzaW9uIGZvciBpZiBub3QgYm9vbGVh biwgdHlwZSBpbnQ6IGZsb2F0Zm9ybWF0X2lzX25lZ2F0aXZlKGZtdCwgdmFs YWRkcikKIExPQyB2YWxwcmludC5jOjEwOTYgKHZhbHByaW50LmM6MTA5OCkK KyBWYXJpYWJsZSBsZW4gaW5pdGlhbGl6ZWQgdG8gdHlwZSBVTE9OR0VTVCwg ZXhwZWN0cyBVSU5UOiAodHlwZSktPmxlbmd0aAorTE9DIHZhbHByaW50LmM6 MTA5OAogIEZ1bmN0aW9uIGRlY2ltYWxfdG9fc3RyaW5nIGV4cGVjdHMgYXJn IDIgdG8gYmUgaW50IGdldHMgVUlOVDogbGVuCiBMT0MgdmFscHJpbnQuYzox NjA3ICh2YWxwcmludC5jOjE2MTEpCisgT3BlcmFuZHMgb2YgPCBoYXZlIGlu Y29tcGF0aWJsZSB0eXBlcyAoVUlOVCwgVUxPTkdFU1QpOiBpIDwgbGVuCitM T0MgdmFscHJpbnQuYzoxNjExCiAgVGVzdCBleHByZXNzaW9uIGZvciBpZiBu b3QgYm9vbGVhbiwgdHlwZSBpbnQ6IG9wdGlvbnMtPnByZXR0eXByaW50X2Fy cmF5cwogTE9DIHZhbHByaW50LmM6MTYzMSAodmFscHJpbnQuYzoxNjM3KQot IEZ1bmN0aW9uIHZhbHVlX2F2YWlsYWJsZV9jb250ZW50c19lcSBleHBlY3Rz IGFyZyA1IHRvIGJlIGludCBnZXRzIFVJTlQ6IGVsdGxlbgorIE9wZXJhbmRz IG9mIDwgaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKFVJTlQsIFVMT05HRVNU KTogcmVwMSA8IGxlbgorTE9DIHZhbHByaW50LmM6MTYzNworIEZ1bmN0aW9u IHZhbHVlX2F2YWlsYWJsZV9jb250ZW50c19lcSBleHBlY3RzIGFyZyA1IHRv IGJlIExPTkdFU1QgZ2V0cyBVTE9OR0VTVDogZWx0bGVuCitMT0MgdmFscHJp bnQuYzoxNjY2CisgT3BlcmFuZHMgb2YgPCBoYXZlIGluY29tcGF0aWJsZSB0 eXBlcyAoVUlOVCwgVUxPTkdFU1QpOiBpIDwgbGVuCiB2YWxwcmludC5jOiAo aW4gZnVuY3Rpb24gcGFydGlhbF9tZW1vcnlfcmVhZCkKIExPQyB2YWxwcmlu dC5jOjE5NzkKLSBGdW5jdGlvbiBDX2FsbG9jYSBleHBlY3RzIGFyZyAxIHRv IGJlIHNpemVfdCBnZXRzIFVJTlQ6ICh0eXBlKS0+bGVuZ3RoCisgRnVuY3Rp b24gQ19hbGxvY2EgZXhwZWN0cyBhcmcgMSB0byBiZSBzaXplX3QgZ2V0cyBV TE9OR0VTVDogKHR5cGUpLT5sZW5ndGgKIExPQyB2YWxwcmludC5jOjE5ODIK LSBGdW5jdGlvbiBtYWtlX3djaGFyX2l0ZXJhdG9yIGV4cGVjdHMgYXJnIDIg dG8gYmUgc2l6ZV90IGdldHMgVUlOVDogKHR5cGUpLT5sZW5ndGgKKyBGdW5j dGlvbiBtYWtlX3djaGFyX2l0ZXJhdG9yIGV4cGVjdHMgYXJnIDIgdG8gYmUg c2l6ZV90IGdldHMgVUxPTkdFU1Q6ICh0eXBlKS0+bGVuZ3RoCiBMT0MgdmFs cHJpbnQuYzoxOTgzCi0gRnVuY3Rpb24gbWFrZV93Y2hhcl9pdGVyYXRvciBl eHBlY3RzIGFyZyA0IHRvIGJlIHNpemVfdCBnZXRzIFVJTlQ6ICh0eXBlKS0+ bGVuZ3RoCisgRnVuY3Rpb24gbWFrZV93Y2hhcl9pdGVyYXRvciBleHBlY3Rz IGFyZyA0IHRvIGJlIHNpemVfdCBnZXRzIFVMT05HRVNUOiAodHlwZSktPmxl bmd0aAogTE9DIHZhbHByaW50LmM6MjAyMwotIEZ1bmN0aW9uIHByaW50X3dj aGFyIGV4cGVjdHMgYXJnIDQgdG8gYmUgaW50IGdldHMgVUlOVDogKHR5cGUp LT5sZW5ndGgKKyBGdW5jdGlvbiBwcmludF93Y2hhciBleHBlY3RzIGFyZyA0 IHRvIGJlIGludCBnZXRzIFVMT05HRVNUOiAodHlwZSktPmxlbmd0aAogTE9D IHZhbHByaW50LmM6MjAzMAotIEZ1bmN0aW9uIHByaW50X3djaGFyIGV4cGVj dHMgYXJnIDQgdG8gYmUgaW50IGdldHMgVUlOVDogKHR5cGUpLT5sZW5ndGgK KyBGdW5jdGlvbiBwcmludF93Y2hhciBleHBlY3RzIGFyZyA0IHRvIGJlIGlu dCBnZXRzIFVMT05HRVNUOiAodHlwZSktPmxlbmd0aAogTE9DIHZhbHByaW50 LmM6MjA3OQotIE9wZXJhbmRzIG9mID09IGhhdmUgaW5jb21wYXRpYmxlIHR5 cGVzIChVSU5ULCBpbnQpOiBsZW5ndGggPT0gLTEKKyBPcGVyYW5kcyBvZiA9 PSBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAoVUxPTkdFU1QsIGludCk6IGxl bmd0aCA9PSAtMQogTE9DIHZhbHByaW50LmM6MjEwOQotIEZ1bmN0aW9uIG1h a2Vfd2NoYXJfaXRlcmF0b3IgZXhwZWN0cyBhcmcgMiB0byBiZSBzaXplX3Qg Z2V0cyBVSU5UOiBsZW5ndGggKiB3aWR0aAorIEZ1bmN0aW9uIG1ha2Vfd2No YXJfaXRlcmF0b3IgZXhwZWN0cyBhcmcgMiB0byBiZSBzaXplX3QgZ2V0cyBV TE9OR0VTVDogbGVuZ3RoICogd2lkdGgKIExPQyB2YWxwcmludC5jOjIzNjYK LSBGdW5jdGlvbiAgZXhwZWN0cyBhcmcgNCB0byBiZSBVSU5UIGdldHMgaW50 OiBieXRlc19yZWFkIC8gd2lkdGgKKyBGdW5jdGlvbiAgZXhwZWN0cyBhcmcg NCB0byBiZSBVTE9OR0VTVCBnZXRzIGludDogYnl0ZXNfcmVhZCAvIHdpZHRo CiBMT0MgYnJlYWtwb2ludC5oOjgyOQogIEZpbGUgc3RhdGljIGZ1bmN0aW9u IFZFQ19icmVha3BvaW50X3Bfc2FmZV9pbnNlcnQgZGVjbGFyZWQgYnV0IG5v dCB1c2VkCiAgICBMT0MgYnJlYWtwb2ludC5oOjgyOQogIERlZmluaXRpb24g b2YgVkVDX2JyZWFrcG9pbnRfcF9zYWZlX2luc2VydAogTE9DIHZhbHVlLmM6 NDQ5ICh2YWx1ZS5jOjQ0NykKLSBBc3NpZ25tZW50IG9mIFVJTlQgdG8gaW50 OiBpID0gKFZFQ19yYW5nZV9zX2xvd2VyX2JvdW5kKHZhbHVlLT51bmF2YWls YWJsZSwgJm5ld3IsIHJhbmdlX2xlc3N0aGFuLCAiL2hvbWUvc2lkZGhlc2gv c3JjL3Vwc3RyZWFtL2dkYi1zb3VyY2VzL2dkYi5naXQvZ2RiL3ZhbHVlLmMi LCA0NDcpKQorIEFzc2lnbm1lbnQgb2YgVUlOVCB0byBpbnQ6IGkgPSAoVkVD X3JhbmdlX3NfbG93ZXJfYm91bmQodmFsdWUtPnVuYXZhaWxhYmxlLCAmbmV3 ciwgcmFuZ2VfbGVzc3RoYW4sICIvaG9tZS9zaWRkaGVzaC9zcmMvdXBzdHJl YW0vZ2RiLXNvdXJjZXMvZ2RiLmdpdC9nZGIvdmFsdWUuYyIsIDQ0OSkpCiBM T0MgdmFsdWUuYzo1NjggKHZhbHVlLmM6NTY2KQotIEZ1bmN0aW9uIG1lbWNt cCBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIGludDogbGVuZ3Ro CisgRnVuY3Rpb24gbWVtY21wIGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90 IGdldHMgTE9OR0VTVDogbGVuZ3RoCiBMT0MgdmFsdWUuYzo2OTcgKHZhbHVl LmM6Njk1KQotIEZ1bmN0aW9uIHh6YWxsb2MgZXhwZWN0cyBhcmcgMSB0byBi ZSBzaXplX3QgZ2V0cyBVSU5UOiAodmFsLT5lbmNsb3NpbmdfdHlwZSktPmxl bmd0aAorIEZ1bmN0aW9uIHh6YWxsb2MgZXhwZWN0cyBhcmcgMSB0byBiZSBz aXplX3QgZ2V0cyBVTE9OR0VTVDogKHZhbC0+ZW5jbG9zaW5nX3R5cGUpLT5s ZW5ndGgKIHZhbHVlLmM6IChpbiBmdW5jdGlvbiBhbGxvY2F0ZV9yZXBlYXRf dmFsdWUpCiBMT0MgdmFsdWUuYzo5NDkgKHZhbHVlLmM6OTQ2KQotIEZ1bmN0 aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIGlu dDogbGVuZ3RoCisgRnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8g YmUgc2l6ZV90IGdldHMgTE9OR0VTVDogbGVuZ3RoCiBMT0MgdmFsdWUuYzo5 NTYgKHZhbHVlLmM6OTUzKQotIEFzc2lnbm1lbnQgb2YgaW50IHRvIFVMT05H RVNUOiBsID0gKChyLT5vZmZzZXQpID4gKHNyY19vZmZzZXQpID8gKHItPm9m ZnNldCkgOiAoc3JjX29mZnNldCkpCi1MT0MgdmFsdWUuYzo5NTQKLSBBc3Np Z25tZW50IG9mIGludCB0byBVTE9OR0VTVDogaCA9ICgoci0+b2Zmc2V0ICsg ci0+bGVuZ3RoKSA8IChzcmNfb2Zmc2V0ICsgbGVuZ3RoKSA/IChyLT5vZmZz ZXQgKyByLT5sZW5ndGgpIDogKHNyY19vZmZzZXQgKyBsZW5ndGgpKQorIEFz c2lnbm1lbnQgb2YgTE9OR0VTVCB0byBVTE9OR0VTVDogbCA9ICgoci0+b2Zm c2V0KSA+IChzcmNfb2Zmc2V0KSA/IChyLT5vZmZzZXQpIDogKHNyY19vZmZz ZXQpKQogTE9DIHZhbHVlLmM6OTU3ICh2YWx1ZS5jOjk1OCkKLSBGdW5jdGlv biBtYXJrX3ZhbHVlX2J5dGVzX3VuYXZhaWxhYmxlIGV4cGVjdHMgYXJnIDIg dG8gYmUgaW50IGdldHMgVUxPTkdFU1Q6IGRzdF9vZmZzZXQgKyAobCAtIHNy Y19vZmZzZXQpCisgQXNzaWdubWVudCBvZiBMT05HRVNUIHRvIFVMT05HRVNU OiBoID0gKChyLT5vZmZzZXQgKyByLT5sZW5ndGgpIDwgKHNyY19vZmZzZXQg KyBsZW5ndGgpID8gKHItPm9mZnNldCArIHItPmxlbmd0aCkgOiAoc3JjX29m ZnNldCArIGxlbmd0aCkpCiB2YWx1ZS5jOiAoaW4gZnVuY3Rpb24gdmFsdWVf Y29udGVudHNfY29weSkKIExPQyB2YWx1ZS5jOjEwNDQgKHZhbHVlLmM6MTA0 MSkKLSBPcGVyYW5kcyBvZiAhPSBoYXZlIGluY29tcGF0aWJsZSB0eXBlcyAo aW50LCBVSU5UKTogbGVuICE9ICh0eXBlMiktPmxlbmd0aAorIE9wZXJhbmRz IG9mICE9IGhhdmUgaW5jb21wYXRpYmxlIHR5cGVzIChMT05HRVNULCBVTE9O R0VTVCk6IGxlbiAhPSAodHlwZTIpLT5sZW5ndGgKIExPQyB2YWx1ZS5jOjEw NDcgKHZhbHVlLmM6MTA0NCkKLSBGdW5jdGlvbiBtZW1jbXAgZXhwZWN0cyBh cmcgMyB0byBiZSBzaXplX3QgZ2V0cyBpbnQ6IGxlbgorIEZ1bmN0aW9uIG1l bWNtcCBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIExPTkdFU1Q6 IGxlbgogTE9DIHZhbHVlLmM6MTQwMiAodmFsdWUuYzoxMzk5KQotIEZ1bmN0 aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIFVJ TlQ6ICh2YWx1ZV9lbmNsb3NpbmdfdHlwZShhcmcpKS0+bGVuZ3RoCisgRnVu Y3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMg VUxPTkdFU1Q6ICh2YWx1ZV9lbmNsb3NpbmdfdHlwZShhcmcpKS0+bGVuZ3Ro CiBMT0MgdmFsdWUuYzoxNDMwICh2YWx1ZS5jOjE0MjcpCi0gRnVuY3Rpb24g bWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgVUlOVDog KGVuY190eXBlKS0+bGVuZ3RoCisgRnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMg YXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgVUxPTkdFU1Q6IChlbmNfdHlwZSkt Pmxlbmd0aAogTE9DIHZhbHVlLmM6MTkzNCAodmFsdWUuYzoxOTMxKQotIEZ1 bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRz IFVJTlQ6ICh2YWx1ZV90eXBlKG5ld3ZhbCkpLT5sZW5ndGgKKyBGdW5jdGlv biBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXplX3QgZ2V0cyBVTE9O R0VTVDogKHZhbHVlX3R5cGUobmV3dmFsKSktPmxlbmd0aAogTE9DIHZhbHVl LmM6MjQ1NCAodmFsdWUuYzoyNDUxKQotIEFzc2lnbm1lbnQgb2YgVUlOVCB0 byBpbnQ6IGxlbiA9ICh0eXBlKS0+bGVuZ3RoCisgQXNzaWdubWVudCBvZiBV TE9OR0VTVCB0byBpbnQ6IGxlbiA9ICh0eXBlKS0+bGVuZ3RoCiBMT0MgdmFs dWUuYzoyNTc3ICh2YWx1ZS5jOjI1NzQpCi0gRnVuY3Rpb24geHJlYWxsb2Mg ZXhwZWN0cyBhcmcgMiB0byBiZSBzaXplX3QgZ2V0cyBVSU5UOiAobmV3X2Vu Y2xfdHlwZSktPmxlbmd0aAorIEZ1bmN0aW9uIHhyZWFsbG9jIGV4cGVjdHMg YXJnIDIgdG8gYmUgc2l6ZV90IGdldHMgVUxPTkdFU1Q6IChuZXdfZW5jbF90 eXBlKS0+bGVuZ3RoCiBMT0MgdmFsdWUuYzoyNjI0ICh2YWx1ZS5jOjI2MjEp Ci0gT3BlcmFuZHMgb2YgPD0gaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMgKFVJ TlQsIGludCk6ICh0eXBlKS0+bGVuZ3RoIDw9IChpbnQpc2l6ZW9mKExPTkdF U1QpCisgT3BlcmFuZHMgb2YgPD0gaGF2ZSBpbmNvbXBhdGlibGUgdHlwZXMg KFVMT05HRVNULCBpbnQpOiAodHlwZSktPmxlbmd0aCA8PSAoaW50KXNpemVv ZihMT05HRVNUKQorTE9DIHZhbHVlLmM6MjYyNQorIEFzc2lnbm1lbnQgb2Yg TE9OR0VTVCB0byBpbnQ6IHYtPmJpdHBvcyA9IGJpdHBvcyAlIGNvbnRhaW5l cl9iaXRzaXplCitMT0MgdmFsdWUuYzoyNjI3CisgQXNzaWdubWVudCBvZiBM T05HRVNUIHRvIGludDogdi0+Yml0cG9zID0gYml0cG9zICUgOAogTE9DIHZh bHVlLmM6Mjc5MyAodmFsdWUuYzoyNzkyKQotIEFzc2lnbm1lbnQgb2YgVUlO VCB0byBpbnQ6IGJ5dGVzX3JlYWQgPSAoZmllbGRfdHlwZSktPmxlbmd0aAor IEFzc2lnbm1lbnQgb2YgTE9OR0VTVCB0byBpbnQ6IGJ5dGVzX3JlYWQgPSAo KGJpdHBvcyAlIDgpICsgYml0c2l6ZSArIDcpIC8gOAorTE9DIHZhbHVlLmM6 Mjc5NQorIEFzc2lnbm1lbnQgb2YgVUxPTkdFU1QgdG8gaW50OiBieXRlc19y ZWFkID0gKGZpZWxkX3R5cGUpLT5sZW5ndGgKIExPQyB2YWx1ZS5jOjI4MTAK KyBBc3NpZ25tZW50IG9mIExPTkdFU1QgdG8gaW50OiBsc2Jjb3VudCA9IChi eXRlc19yZWFkICogOCAtIGJpdHBvcyAlIDggLSBiaXRzaXplKQorTE9DIHZh bHVlLmM6MjgxMgorIEFzc2lnbm1lbnQgb2YgTE9OR0VTVCB0byBpbnQ6IGxz YmNvdW50ID0gKGJpdHBvcyAlIDgpCitMT0MgdmFsdWUuYzoyODEzCiAgUmln aHQgb3BlcmFuZCBvZiA+Pj0gbWF5IGJlIG5lZ2F0aXZlIChpbnQpOiB2YWwg Pj49IGxzYmNvdW50CiB2YWx1ZS5jOiAoaW4gZnVuY3Rpb24gbW9kaWZ5X2Zp ZWxkKQogTE9DIHZhbHVlLmM6Mjk4NAorIEZ1bmN0aW9uIGV4dHJhY3RfdW5z aWduZWRfaW50ZWdlciBleHBlY3RzIGFyZyAyIHRvIGJlIGludCBnZXRzIExP TkdFU1Q6IGJ5dGVzaXplCitMT0MgdmFsdWUuYzoyOTg3CiAgTmV3IGZyZXNo IHN0b3JhZ2UgKHR5cGUgc3RydWN0IGdkYmFyY2ggKikgcGFzc2VkIGFzIGlt cGxpY2l0bHkgdGVtcCAobm90IHJlbGVhc2VkKTogZ2V0X3R5cGVfYXJjaCh0 eXBlKQogTE9DIHZhbHVlLmM6Mjk5MCAodmFsdWUuYzoyOTg3KQotIFJpZ2h0 IG9wZXJhbmQgb2YgPDwgbWF5IGJlIG5lZ2F0aXZlIChpbnQpOiBtYXNrIDw8 IGJpdHBvcworIFJpZ2h0IG9wZXJhbmQgb2YgPDwgbWF5IGJlIG5lZ2F0aXZl IChMT05HRVNUKTogbWFzayA8PCBiaXRwb3MKIExPQyB2YWx1ZS5jOjI5OTEg KHZhbHVlLmM6Mjk4OCkKLSBSaWdodCBvcGVyYW5kIG9mIDw8IG1heSBiZSBu ZWdhdGl2ZSAoaW50KTogZmllbGR2YWwgPDwgYml0cG9zCisgUmlnaHQgb3Bl cmFuZCBvZiA8PCBtYXkgYmUgbmVnYXRpdmUgKExPTkdFU1QpOiBmaWVsZHZh bCA8PCBiaXRwb3MKK0xPQyB2YWx1ZS5jOjI5OTMKKyBGdW5jdGlvbiBzdG9y ZV91bnNpZ25lZF9pbnRlZ2VyIGV4cGVjdHMgYXJnIDIgdG8gYmUgaW50IGdl dHMgTE9OR0VTVDogYnl0ZXNpemUKIHZhbHVlLmM6IChpbiBmdW5jdGlvbiBw YWNrX2xvbmcpCiBMT0MgdmFsdWUuYzozMDA1ICh2YWx1ZS5jOjMwMDIpCi0g QXNzaWdubWVudCBvZiBVSU5UIHRvIGludDogbGVuID0gKHR5cGUpLT5sZW5n dGgKKyBBc3NpZ25tZW50IG9mIFVMT05HRVNUIHRvIGludDogbGVuID0gKHR5 cGUpLT5sZW5ndGgKIExPQyB2YWx1ZS5jOjMwNDAgKHZhbHVlLmM6MzAzNykK LSBBc3NpZ25tZW50IG9mIFVJTlQgdG8gaW50OiBsZW4gPSAodHlwZSktPmxl bmd0aAorIEFzc2lnbm1lbnQgb2YgVUxPTkdFU1QgdG8gaW50OiBsZW4gPSAo dHlwZSktPmxlbmd0aAogTE9DIHZhbHVlLmM6MzEyMSAodmFsdWUuYzozMTE4 KQotIEZ1bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVf dCBnZXRzIFVJTlQ6ICh0eXBlKS0+bGVuZ3RoCisgRnVuY3Rpb24gbWVtY3B5 IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgVUxPTkdFU1Q6ICh0 eXBlKS0+bGVuZ3RoCiB2YWx1ZS5jOiAoaW4gZnVuY3Rpb24gdmFsdWVfZnJv bV9jb250ZW50cykKIExPQyB2YWx1ZS5jOjMxMzcgKHZhbHVlLmM6MzEzNCkK LSBGdW5jdGlvbiBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXplX3Qg Z2V0cyBVSU5UOiAodHlwZSktPmxlbmd0aAorIEZ1bmN0aW9uIG1lbWNweSBl eHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIFVMT05HRVNUOiAodHlw ZSktPmxlbmd0aAogdmFsdWUuYzogKGluIGZ1bmN0aW9uIHZhbHVlX2Zyb21f ZG91YmxlKQogTE9DIHZhbHVlLmM6MzE2MyAodmFsdWUuYzozMTYwKQotIEZ1 bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRz IFVJTlQ6ICh0eXBlKS0+bGVuZ3RoCisgRnVuY3Rpb24gbWVtY3B5IGV4cGVj dHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdldHMgVUxPTkdFU1Q6ICh0eXBlKS0+ bGVuZ3RoCiB2YWx1ZS5jOiAoaW4gZnVuY3Rpb24gdmFsdWVfZnJvbV9oaXN0 b3J5X3JlZikKIExPQyB2YWx1ZS5jOjc4CiAgRmlsZSBzdGF0aWMgZnVuY3Rp b24gVkVDX3JhbmdlX3Nfc2FmZV9wdXNoIGRlY2xhcmVkIGJ1dCBub3QgdXNl ZAogICAgTE9DIHZhbHVlLmM6NzgKICBEZWZpbml0aW9uIG9mIFZFQ19yYW5n ZV9zX3NhZmVfcHVzaAogTE9DIHZheC10ZGVwLmM6MTMyCi0gRnVuY3Rpb24g d3JpdGVfbWVtb3J5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc3NpemVfdCBnZXRz IGludDogbGVuCisgRnVuY3Rpb24gd3JpdGVfbWVtb3J5IGV4cGVjdHMgYXJn IDMgdG8gYmUgc3NpemVfdCBnZXRzIExPTkdFU1Q6IGxlbgogTE9DIHZheC10 ZGVwLmM6MjI3Ci0gRnVuY3Rpb24gcmVhZF9tZW1vcnkgZXhwZWN0cyBhcmcg MyB0byBiZSBzc2l6ZV90IGdldHMgaW50OiBsZW4KKyBGdW5jdGlvbiByZWFk X21lbW9yeSBleHBlY3RzIGFyZyAzIHRvIGJlIHNzaXplX3QgZ2V0cyBMT05H RVNUOiBsZW4KIExPQyB2YXgtdGRlcC5jOjIzOQotIEZ1bmN0aW9uIG1lbWNw eSBleHBlY3RzIGFyZyAzIHRvIGJlIHNpemVfdCBnZXRzIGludDogbGVuCisg RnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdl dHMgTE9OR0VTVDogbGVuCiBMT0MgdmF4LXRkZXAuYzoyNDQKLSBGdW5jdGlv biBtZW1jcHkgZXhwZWN0cyBhcmcgMyB0byBiZSBzaXplX3QgZ2V0cyBpbnQ6 IGxlbgorIEZ1bmN0aW9uIG1lbWNweSBleHBlY3RzIGFyZyAzIHRvIGJlIHNp emVfdCBnZXRzIExPTkdFU1Q6IGxlbgorTE9DIHhzdG9ybXkxNi10ZGVwLmM6 Mjg3CisgQXNzaWdubWVudCBvZiBMT05HRVNUIHRvIGludDogc2xhY2tsZW4g PSB0eXBlbGVuICYgMQogTE9DIHhzdG9ybXkxNi10ZGVwLmM6Mjg4ICh4c3Rv cm15MTYtdGRlcC5jOjI4NSkKLSBGdW5jdGlvbiBDX2FsbG9jYSBleHBlY3Rz IGFyZyAxIHRvIGJlIHNpemVfdCBnZXRzIGludDogdHlwZWxlbiArIHNsYWNr bGVuCisgRnVuY3Rpb24gQ19hbGxvY2EgZXhwZWN0cyBhcmcgMSB0byBiZSBz aXplX3QgZ2V0cyBMT05HRVNUOiB0eXBlbGVuICsgc2xhY2tsZW4KIExPQyB4 c3Rvcm15MTYtdGRlcC5jOjI4OSAoeHN0b3JteTE2LXRkZXAuYzoyODYpCi0g RnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJnIDMgdG8gYmUgc2l6ZV90IGdl dHMgaW50OiB0eXBlbGVuCisgRnVuY3Rpb24gbWVtY3B5IGV4cGVjdHMgYXJn IDMgdG8gYmUgc2l6ZV90IGdldHMgTE9OR0VTVDogdHlwZWxlbgogTE9DIHhz dG9ybXkxNi10ZGVwLmM6MjkzICh4c3Rvcm15MTYtdGRlcC5jOjI5MCkKLSBG dW5jdGlvbiB3cml0ZV9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6 ZV90IGdldHMgaW50OiB0eXBlbGVuICsgc2xhY2tsZW4KKyBGdW5jdGlvbiB3 cml0ZV9tZW1vcnkgZXhwZWN0cyBhcmcgMyB0byBiZSBzc2l6ZV90IGdldHMg TE9OR0VTVDogdHlwZWxlbiArIHNsYWNrbGVuCiB4c3Rvcm15MTYtdGRlcC5j OiAoaW4gZnVuY3Rpb24geHN0b3JteTE2X2FsbG9jX2ZyYW1lX2NhY2hlKQog TE9DIGJyZWFrcG9pbnQuaDo4MjkKICBGaWxlIHN0YXRpYyBmdW5jdGlvbiBW RUNfYnJlYWtwb2ludF9wX3NhZmVfaW5zZXJ0IGRlY2xhcmVkIGJ1dCBub3Qg dXNlZAogICAgTE9DIGJyZWFrcG9pbnQuaDo4MjkKICBEZWZpbml0aW9uIG9m IFZFQ19icmVha3BvaW50X3Bfc2FmZV9pbnNlcnQKIExPQyB4dGVuc2EtdGRl cC5jOjE2MDEKLSBOZXcgZnJlc2ggc3RvcmFnZSAodHlwZSBjaGFyICopIHBh c3NlZCBhcyBpbXBsaWNpdGx5IHRlbXAgKG5vdCByZWxlYXNlZCk6IGdldHRl eHQoImNhbm5vdCBleHRyYWN0IHJldHVybiB2YWx1ZSBvZiAlZCBieXRlcyBs b25nIikKKyBOZXcgZnJlc2ggc3RvcmFnZSAodHlwZSBjaGFyICopIHBhc3Nl ZCBhcyBpbXBsaWNpdGx5IHRlbXAgKG5vdCByZWxlYXNlZCk6IGdldHRleHQo ImNhbm5vdCBleHRyYWN0IHJldHVybiB2YWx1ZSBvZiAlcyBieXRlcyBsb25n IikKIExPQyB4dGVuc2EtdGRlcC5jOjE2MjEgKHh0ZW5zYS10ZGVwLmM6MTYy NSkKKyBBc3NpZ25tZW50IG9mIExPTkdFU1QgdG8gaW50OiBvZmZzZXQgPSA0 IC0gbGVuCitMT0MgeHRlbnNhLXRkZXAuYzoxNjI2CisgRnVuY3Rpb24gcmVn Y2FjaGVfcmF3X3JlYWRfcGFydCBleHBlY3RzIGFyZyA0IHRvIGJlIGludCBn ZXRzIExPTkdFU1Q6IGxlbgorTE9DIHh0ZW5zYS10ZGVwLmM6MTYyNgogIFJl dHVybiB2YWx1ZSAodHlwZSBlbnVtIHJlZ2lzdGVyX3N0YXR1cykgaWdub3Jl ZDogcmVnY2FjaGVfcmF3X3JlYS4uLgogTE9DIHh0ZW5zYS10ZGVwLmM6MTY1 NyAoeHRlbnNhLXRkZXAuYzoxNjU2KQotIE5ldyBmcmVzaCBzdG9yYWdlICh0 eXBlIGNoYXIgKikgcGFzc2VkIGFzIGltcGxpY2l0bHkgdGVtcCAobm90IHJl bGVhc2VkKTogZ2V0dGV4dCgidW5pbXBsZW1lbnRlZCBmb3IgdGhpcyBsZW5n dGg6ICVkIikKKyBOZXcgZnJlc2ggc3RvcmFnZSAodHlwZSBjaGFyICopIHBh c3NlZCBhcyBpbXBsaWNpdGx5IHRlbXAgKG5vdCByZWxlYXNlZCk6IGdldHRl eHQoInVuaW1wbGVtZW50ZWQgZm9yIHRoaXMgbGVuZ3RoOiAlcyIpCiBMT0Mg eHRlbnNhLXRkZXAuYzoxNjcxICh4dGVuc2EtdGRlcC5jOjE2NzUpCisgQXNz aWdubWVudCBvZiBMT05HRVNUIHRvIGludDogb2Zmc2V0ID0gNCAtIGxlbgor TE9DIHh0ZW5zYS10ZGVwLmM6MTY3NgogIEZ1bmN0aW9uIHJlZ2NhY2hlX3Jh d193cml0ZV9wYXJ0IGV4cGVjdHMgYXJnIDIgdG8gYmUgaW50IGdldHMgVUlO VDogYXJlZwogTE9DIHh0ZW5zYS10ZGVwLmM6MTY3NiAoeHRlbnNhLXRkZXAu YzoxNjc3KQorIEZ1bmN0aW9uIHJlZ2NhY2hlX3Jhd193cml0ZV9wYXJ0IGV4 cGVjdHMgYXJnIDQgdG8gYmUgaW50IGdldHMgTE9OR0VTVDogbGVuCitMT0Mg eHRlbnNhLXRkZXAuYzoxNjc4CiAgRnVuY3Rpb24gcmVnY2FjaGVfcmF3X3dy aXRlIGV4cGVjdHMgYXJnIDIgdG8gYmUgaW50IGdldHMgVUlOVDogYXJlZwog TE9DIHh0ZW5zYS10ZGVwLmM6MTc4NSAoeHRlbnNhLXRkZXAuYzoxNzk1KQor IEZyZXNoIHN0b3JhZ2UgYXJnX3R5cGVfbGVuX3Mgbm90IHJlbGVhc2VkIGJl Zm9yZSBzY29wZSBleGl0CisgICBMT0MgeHRlbnNhLXRkZXAuYzoxNzY3Cisg RnJlc2ggc3RvcmFnZSBhcmdfdHlwZV9sZW5fcyBjcmVhdGVkCitMT0MgeHRl bnNhLXRkZXAuYzoxNzk3CiAgVGVzdCBleHByZXNzaW9uIGZvciBpZiBub3Qg Ym9vbGVhbiwgdHlwZSBpbnQ6IHN0cnVjdF9yZXR1cm4KIExPQyB4dGVuc2Et dGRlcC5jOjE4MjIgKHh0ZW5zYS10ZGVwLmM6MTgyMCkKLSBBc3NpZ25tZW50 IG9mIFVJTlQgdG8gaW50OiBpbmZvLT5hbGlnbiA9IChhcmdfdHlwZSktPmxl bmd0aAorIEFzc2lnbm1lbnQgb2YgVUxPTkdFU1QgdG8gaW50OiBpbmZvLT5h bGlnbiA9IChhcmdfdHlwZSktPmxlbmd0aAogTE9DIHh0ZW5zYS10ZGVwLmM6 MTgzMCAoeHRlbnNhLXRkZXAuYzoxODI4KQotIEFzc2lnbm1lbnQgb2YgVUlO VCB0byBpbnQ6IGluZm8tPmFsaWduID0gKGJ1aWx0aW5fdHlwZShnZGJhcmNo KS0+YnVpbHRpbl9kb3VibGUpLT5sZW5ndGgKKyBBc3NpZ25tZW50IG9mIFVM T05HRVNUIHRvIGludDogaW5mby0+YWxpZ24gPSAoYnVpbHRpbl90eXBlKGdk YmFyY2gpLT5idWlsdGluX2RvdWJsZSktPmxlbmd0aAogTE9DIHh0ZW5zYS10 ZGVwLmM6MTgzMiAoeHRlbnNhLXRkZXAuYzoxODMwKQotIEFzc2lnbm1lbnQg b2YgVUlOVCB0byBpbnQ6IGluZm8tPmFsaWduID0gKGJ1aWx0aW5fdHlwZShn ZGJhcmNoKS0+YnVpbHRpbl9sb25nKS0+bGVuZ3RoCisgQXNzaWdubWVudCBv ZiBVTE9OR0VTVCB0byBpbnQ6IGluZm8tPmFsaWduID0gKGJ1aWx0aW5fdHlw ZShnZGJhcmNoKS0+YnVpbHRpbl9sb25nKS0+bGVuZ3RoCiBMT0MgeHRlbnNh LXRkZXAuYzoxODM3ICh4dGVuc2EtdGRlcC5jOjE4MzUpCi0gQXNzaWdubWVu dCBvZiBVSU5UIHRvIGludDogaW5mby0+YWxpZ24gPSAoYnVpbHRpbl90eXBl KGdkYmFyY2gpLT5idWlsdGluX2xvbmcpLT5sZW5ndGgKKyBBc3NpZ25tZW50 IG9mIFVMT05HRVNUIHRvIGludDogaW5mby0+YWxpZ24gPSAoYnVpbHRpbl90 eXBlKGdkYmFyY2gpLT5idWlsdGluX2xvbmcpLT5sZW5ndGgKK0xPQyB4dGVu c2EtdGRlcC5jOjE4NTYKKyBBc3NpZ25tZW50IG9mIExPTkdFU1QgdG8gaW50 OiBpbmZvLT51LnJlZ25vID0gKGdkYmFyY2hfdGRlcChnZGJhcmNoKS0+Y2Fs bF9hYmkgPT0gQ2FsbEFiaUNhbGwwT25seSA/IChnZGJhcmNoX3RkZXAoZ2Ri YXJjaCktPmEwX2Jhc2UgKyAyKSA6IChnZGJhcmNoX3RkZXAoZ2RiYXJjaCkt PmEwX2Jhc2UgKyA2KSkgKyBzaXplIC8gNAogTE9DIHh0ZW5zYS10ZGVwLmM6 MTg4NiAoeHRlbnNhLXRkZXAuYzoxODk1KQotIEZ1bmN0aW9uIHdyaXRlX21l bW9yeSBleHBlY3RzIGFyZyAzIHRvIGJlIHNzaXplX3QgZ2V0cyBpbnQ6IGlu Zm8tPmxlbmd0aAorIFZhcmlhYmxlIG4gaW5pdGlhbGl6ZWQgdG8gdHlwZSBM T05HRVNULCBleHBlY3RzIGludDogaW5mby0+bGVuZ3RoCitMT0MgeHRlbnNh LXRkZXAuYzoxODk3CisgRnVuY3Rpb24gd3JpdGVfbWVtb3J5IGV4cGVjdHMg YXJnIDMgdG8gYmUgc3NpemVfdCBnZXRzIExPTkdFU1Q6IGluZm8tPmxlbmd0 aAorTE9DIHh0ZW5zYS10ZGVwLmM6MTkwMgorIFZhcmlhYmxlIG4gaW5pdGlh bGl6ZWQgdG8gdHlwZSBMT05HRVNULCBleHBlY3RzIGludDogaW5mby0+bGVu Z3RoCiBMT0MgZHdhcmYyZXhwci5oOjMzNQogIEZpbGUgc3RhdGljIGZ1bmN0 aW9uIGdkYl9za2lwX2xlYjEyOCBkZWNsYXJlZCBidXQgbm90IHVzZWQKICAg IExPQyBkd2FyZjJleHByLmg6MzQyCiAgRGVmaW5pdGlvbiBvZiBnZGJfc2tp cF9sZWIxMjgK --MP_/vs_ML.3dIosvoEW_+4DgbG=--