<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>118872</bug_id>
          
          <creation_ts>2013-07-18 16:40:40 -0700</creation_ts>
          <short_desc>Mac port should run bison as part of ANGLE build process</short_desc>
          <delta_ts>2013-07-24 14:20:27 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>ANGLE</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.8</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mrowe</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>909912</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2013-07-18 16:40:40 -0700</bug_when>
    <thetext>Updating ANGLE is a pain because we have to run an older version of bison before we commit changes to prevent GPLv3 files from being included in WebKit.  If this were part of the build process, we wouldn&apos;t have to worry about this step.

My DerivedSources.make currently runs bison twice, but it works.  I&apos;m not a make expert, which is why my DerivedSources.make looks so simple.  Simplicity is a virtue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909913</commentid>
    <comment_count>1</comment_count>
      <attachid>207033</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2013-07-18 16:42:03 -0700</bug_when>
    <thetext>Created attachment 207033
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909915</commentid>
    <comment_count>2</comment_count>
      <attachid>207035</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2013-07-18 16:57:34 -0700</bug_when>
    <thetext>Created attachment 207035
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909916</commentid>
    <comment_count>3</comment_count>
      <attachid>207035</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-07-18 17:01:16 -0700</bug_when>
    <thetext>Comment on attachment 207035
Patch

Attachment 207035 did not pass efl-ews (efl):
Output: http://webkit-queues.appspot.com/results/1106706</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909917</commentid>
    <comment_count>4</comment_count>
      <attachid>207035</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-07-18 17:02:04 -0700</bug_when>
    <thetext>Comment on attachment 207035
Patch

Attachment 207035 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/1099687</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909918</commentid>
    <comment_count>5</comment_count>
      <attachid>207036</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2013-07-18 17:03:30 -0700</bug_when>
    <thetext>Created attachment 207036
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>909919</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2013-07-18 17:05:26 -0700</bug_when>
    <thetext>It looks like efl is not generating these files as part of the build process, either.  I don&apos;t think anybody (besides Mac after this patch) is generating ExpressionParser.cpp or Tokenizer.cpp.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910036</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2013-07-19 00:59:09 -0700</bug_when>
    <thetext>There&apos;s a ton of duplication in that Makefile. A lot of it could be removed if you transformed it to something like so:

SEARCH_PATH = $(ANGLE)/src/compiler $(ANGLE)/src/compiler/preprocessor

vpath %.l $(SEARCH_PATH)
vpath %.y $(SEARCH_PATH)

FLEX = flex --noline --nounistd
BISON = bison --no-lines --skeleton=yacc.c

all : glslang_lex.cpp glslang_tab.h glslang_tab.cpp ExpressionParser.cpp Tokenizer.cpp

glslang_tab%h glslang_tab%cpp : glslang.y
	$(eval OUTPUT = $(basename $@))
	$(BISON) --defines=$(OUTPUT).h --output=$(OUTPUT).cpp $&lt;

ExpressionParser.cpp : ExpressionParser.y
	$(BISON) --output=$@ $&lt;

glslang_lex.cpp : glslang.l
	$(FLEX) --outfile=$@ $&lt;

Tokenizer.cpp : Tokenizer.l
	$(FLEX) --outfile=$@ $&lt;


Most of the remaining duplication only exists because of the strange naming conventions of the files in question, but I&apos;m guessing that updating those will cause more hassle than it&apos;s worth.


The makefile also needs a license header.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910037</commentid>
    <comment_count>8</comment_count>
      <attachid>207036</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2013-07-19 01:00:48 -0700</bug_when>
    <thetext>Comment on attachment 207036
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=207036&amp;action=review

Marking as r- based on feedback above.

&gt; Source/ThirdParty/ANGLE/ChangeLog:4
&gt; +        ANGLE has 5 files that are generated.  These should generated as part of the build process to make updating easier.
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=118872

The first line here could be more succinct. Something like &quot;Generate derived files in ANGLE at build time rather than when updating from upstream.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910299</commentid>
    <comment_count>9</comment_count>
      <attachid>207139</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2013-07-19 13:15:05 -0700</bug_when>
    <thetext>Created attachment 207139
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910301</commentid>
    <comment_count>10</comment_count>
      <attachid>207140</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2013-07-19 13:28:02 -0700</bug_when>
    <thetext>Created attachment 207140
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910315</commentid>
    <comment_count>11</comment_count>
      <attachid>207140</attachid>
    <who name="Mark Rowe (bdash)">mrowe</who>
    <bug_when>2013-07-19 14:11:44 -0700</bug_when>
    <thetext>Comment on attachment 207140
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=207140&amp;action=review

r=me with the two minor issues.

&gt; Source/ThirdParty/ANGLE/ChangeLog:8
&gt; +        * ANGLE.xcodeproj/project.pbxproj: Made Derived Sources target which calls DerivedSources.make, moved generated files into Derived Sources group.

It&apos;d be good to wrap this line somewhere so it&apos;s not dramatically longer than the rest of the lines in this file.

&gt; Source/ThirdParty/ANGLE/DerivedSources.make:15
&gt; +#     documentation and/or other materials provided with the distribution.
&gt; +# 3.  Neither the name of Apple Computer, Inc. (&quot;Apple&quot;) nor the names of
&gt; +#     its contributors may be used to endorse or promote products derived
&gt; +#     from this software without specific prior written permission.
&gt; +#

This is an old version of an old license we used to use. Take a look at Source/WebCore/LICENSE-APPLE for the current license.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910322</commentid>
    <comment_count>12</comment_count>
      <attachid>207146</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2013-07-19 14:35:40 -0700</bug_when>
    <thetext>Created attachment 207146
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910339</commentid>
    <comment_count>13</comment_count>
      <attachid>207146</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-19 15:06:07 -0700</bug_when>
    <thetext>Comment on attachment 207146
Patch

Clearing flags on attachment: 207146

Committed r152929: &lt;http://trac.webkit.org/changeset/152929&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910340</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-19 15:06:10 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910490</commentid>
    <comment_count>15</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2013-07-20 15:23:25 -0700</bug_when>
    <thetext>Rolled out in https://trac.webkit.org/r152946</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>911163</commentid>
    <comment_count>16</comment_count>
      <attachid>207359</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2013-07-23 16:24:43 -0700</bug_when>
    <thetext>Created attachment 207359
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>911418</commentid>
    <comment_count>17</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2013-07-24 14:20:27 -0700</bug_when>
    <thetext>r153101</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207033</attachid>
            <date>2013-07-18 16:42:03 -0700</date>
            <delta_ts>2013-07-18 16:57:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118872-20130718164202.patch</filename>
            <type>text/plain</type>
            <size>12141</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1Mjg3MikKKysrIFNv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEzIEBACisyMDEzLTA3LTE4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQGFwcGxl
LmNvbT4KKworICAgICAgICBBTkdMRSBoYXMgNSBmaWxlcyB0aGF0IGFyZSBnZW5lcmF0ZWQuICBU
aGVzZSBzaG91bGQgZ2VuZXJhdGVkIGFzIHBhcnQgb2YgdGhlIGJ1aWxkIHByb2Nlc3MgdG8gbWFr
ZSB1cGRhdGluZyBlYXNpZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTg4NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIEFOR0xFLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IE1hZGUgRGVyaXZl
ZCBTb3VyY2VzIHRhcmdldCB3aGljaCBjYWxscyBEZXJpdmVkU291cmNlcy5tYWtlLCBtb3ZlZCBn
ZW5lcmF0ZWQgZmlsZXMgaW50byBEZXJpdmVkIFNvdXJjZXMgZ3JvdXAuCisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZTogQWRkZWQuCisKIDIwMTMtMDctMTggIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZGVkIHByZXZpb3VzbHkgdW5p
bmNsdWRlZCBmaWxlcyBmcm9tIEFOR0xFIHIyNDI2IHdpdGggdGhlc2UgZXhjZXB0aW9uczoKSW5k
ZXg6IFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1RoaXJkUGFydHkvQU5HTEUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKK2FsbDogZ2xzbGFuZ19sZXguY3BwIGdsc2xhbmdf
dGFiLmggZ2xzbGFuZ190YWIuY3BwIEV4cHJlc3Npb25QYXJzZXIuY3BwIFRva2VuaXplci5jcHAK
KworZ2xzbGFuZ19sZXguY3BwOiBBTkdMRS9zcmMvY29tcGlsZXIvZ2xzbGFuZy5sCisJZmxleCAt
LW5vbGluZSAtLW5vdW5pc3RkIC0tb3V0ZmlsZT1nbHNsYW5nX2xleC5jcHAgQU5HTEUvc3JjL2Nv
bXBpbGVyL2dsc2xhbmcubAorCitnbHNsYW5nX3RhYi5oIGdsc2xhbmdfdGFiLmNwcDogQU5HTEUv
c3JjL2NvbXBpbGVyL2dsc2xhbmcueQorCWJpc29uIC0tbm8tbGluZXMgLS1za2VsZXRvbj15YWNj
LmMgLS1kZWZpbmVzPWdsc2xhbmdfdGFiLmggLS1vdXRwdXQ9Z2xzbGFuZ190YWIuY3BwIEFOR0xF
L3NyYy9jb21waWxlci9nbHNsYW5nLnkKKworRXhwcmVzc2lvblBhcnNlci5jcHA6IEFOR0xFL3Ny
Yy9jb21waWxlci9wcmVwcm9jZXNzb3IvRXhwcmVzc2lvblBhcnNlci55CisJYmlzb24gLS1uby1s
aW5lcyAtLXNrZWxldG9uPXlhY2MuYyAtLW91dHB1dD1FeHByZXNzaW9uUGFyc2VyLmNwcCBBTkdM
RS9zcmMvY29tcGlsZXIvcHJlcHJvY2Vzc29yL0V4cHJlc3Npb25QYXJzZXIueQorCitUb2tlbml6
ZXIuY3BwOiBBTkdMRS9zcmMvY29tcGlsZXIvcHJlcHJvY2Vzc29yL1Rva2VuaXplci5sCisJZmxl
eCAtLW5vbGluZSAtLW5vdW5pc3RkIC0tb3V0ZmlsZT1Ub2tlbml6ZXIuY3BwIEFOR0xFL3NyYy9j
b21waWxlci9wcmVwcm9jZXNzb3IvVG9rZW5pemVyLmwKSW5kZXg6IFNvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL0FOR0xFLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvQU5HTEUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMTUyODcwKQorKysgU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQU5HTEUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNiw2ICs2LDIwIEBACiAJb2JqZWN0
VmVyc2lvbiA9IDQ2OwogCW9iamVjdHMgPSB7CiAKKy8qIEJlZ2luIFBCWEFnZ3JlZ2F0ZVRhcmdl
dCBzZWN0aW9uICovCisJCTVDOUQ4MjlCMTc5OEIxQ0QwMDdFMTU4OCAvKiBEZXJpdmVkIFNvdXJj
ZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhBZ2dyZWdhdGVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3Vy
YXRpb25MaXN0ID0gNUM5RDgyOUMxNzk4QjFDRTAwN0UxNTg4IC8qIEJ1aWxkIGNvbmZpZ3VyYXRp
b24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJEZXJpdmVkIFNvdXJjZXMiICovOworCQkJ
YnVpbGRQaGFzZXMgPSAoCisJCQkJNUM5RDgyQTAxNzk4QjFENjAwN0UxNTg4IC8qIFNoZWxsU2Ny
aXB0ICovLAorCQkJKTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCSk7CisJCQluYW1lID0gIkRl
cml2ZWQgU291cmNlcyI7CisJCQlwcm9kdWN0TmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQl9
OworLyogRW5kIFBCWEFnZ3JlZ2F0ZVRhcmdldCBzZWN0aW9uICovCisKIC8qIEJlZ2luIFBCWEJ1
aWxkRmlsZSBzZWN0aW9uICovCiAJCTMxMkJEQjBDMTVGRUNBQzkwMDk3RUJDNyAvKiBBTkdMRS5w
bGlzdCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEy
QkRCMDkxNUZFQzkxRTAwOTdFQkM3IC8qIEFOR0xFLnBsaXN0ICovOyB9OwogCQkzMTJCREIwRTE1
RkVDQUU1MDA5N0VCQzcgLyogQU5HTEUudHh0IGluIENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMTJCREIwQTE1RkVDQTNBMDA5N0VCQzcgLyogQU5HTEUudHh0
ICovOyB9OwpAQCAtMTQsNiArMjgsMTEgQEAKIAkJNDk5NTFDMEExNEI3QUFEODAwNjBFOTZFIC8q
IEJ1aWx0SW5GdW5jdGlvbkVtdWxhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0OTk1MUMwNjE0QjdBQUQ4MDA2MEU5NkUgLyogQnVpbHRJbkZ1bmN0
aW9uRW11bGF0b3IuaCAqLzsgfTsKIAkJNDk5NTFDMEIxNEI3QUFEODAwNjBFOTZFIC8qIERldGVj
dENhbGxEZXB0aC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0OTk1MUMwNzE0QjdBQUQ4MDA2MEU5NkUgLyogRGV0ZWN0Q2FsbERlcHRoLmNwcCAqLzsg
fTsKIAkJNDk5NTFDMEMxNEI3QUFEODAwNjBFOTZFIC8qIERldGVjdENhbGxEZXB0aC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk5NTFDMDgxNEI3QUFE
ODAwNjBFOTZFIC8qIERldGVjdENhbGxEZXB0aC5oICovOyB9OworCQk1QzlEODI5NjE3OThCMUEx
MDA3RTE1ODggLyogRXhwcmVzc2lvblBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzlEODI5MTE3OThCMUExMDA3RTE1ODggLyogRXhwcmVz
c2lvblBhcnNlci5jcHAgKi87IH07CisJCTVDOUQ4Mjk3MTc5OEIxQTEwMDdFMTU4OCAvKiBnbHNs
YW5nX2xleC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA1QzlEODI5MjE3OThCMUExMDA3RTE1ODggLyogZ2xzbGFuZ19sZXguY3BwICovOyB9OworCQk1
QzlEODI5ODE3OThCMUExMDA3RTE1ODggLyogZ2xzbGFuZ190YWIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM5RDgyOTMxNzk4QjFBMTAwN0UxNTg4
IC8qIGdsc2xhbmdfdGFiLmNwcCAqLzsgfTsKKwkJNUM5RDgyOTkxNzk4QjFBMTAwN0UxNTg4IC8q
IGdsc2xhbmdfdGFiLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1QzlEODI5NDE3OThCMUExMDA3RTE1ODggLyogZ2xzbGFuZ190YWIuaCAqLzsgfTsKKwkJ
NUM5RDgyOUExNzk4QjFBMTAwN0UxNTg4IC8qIFRva2VuaXplci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzlEODI5NTE3OThCMUExMDA3RTE1ODgg
LyogVG9rZW5pemVyLmNwcCAqLzsgfTsKIAkJNUNDRUI4QjYxNzkwOEVFQzAwRkQ5NDk2IC8qIGJ1
aWx0aW5fc3ltYm9sX3RhYmxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVDQ0VCOEI0MTc5MDhFM0EwMEZEOTQ5NiAvKiBidWlsdGluX3N5bWJvbF90
YWJsZS5jcHAgKi87IH07CiAJCTkwRDlCMTAyMTJFMTFEQ0IwMDJENDI1NSAvKiBDb21waWxlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MEQ5QjBG
OTEyRTExRENCMDAyRDQyNTUgLyogQ29tcGlsZXIuY3BwICovOyB9OwogCQk5MEQ5QjEwMzEyRTEx
RENCMDAyRDQyNTUgLyogRXh0ZW5zaW9uQmVoYXZpb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwRDlCMEZBMTJFMTFEQ0IwMDJENDI1NSAvKiBFeHRl
bnNpb25CZWhhdmlvci5oICovOyB9OwpAQCAtMTExLDYgKzEzMCwxNiBAQAogCQlGQjM5RDc2RTEy
MDExMEZDMDAwODhFNjkgLyogU2hhZGVyTGFuZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gRkIzOUQyQkYxMjAwRjNFNjAwMDg4RTY5IC8qIFNoYWRlckxh
bmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAvKiBF
bmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIAorLyogQmVnaW4gUEJYQ29udGFpbmVySXRlbVBy
b3h5IHNlY3Rpb24gKi8KKwkJNUM5RDgyQTExNzk4QjFFNjAwN0UxNTg4IC8qIFBCWENvbnRhaW5l
ckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNv
bnRhaW5lclBvcnRhbCA9IEZCMzlEMDcwMTIwMEVEOTIwMDA4OEU2OSAvKiBQcm9qZWN0IG9iamVj
dCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDVDOUQ4
MjlCMTc5OEIxQ0QwMDdFMTU4ODsKKwkJCXJlbW90ZUluZm8gPSAiRGVyaXZlZCBTb3VyY2VzIjsK
KwkJfTsKKy8qIEVuZCBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLworCiAvKiBCZWdp
biBQQlhDb3B5RmlsZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIAkJMzEyQkRCMEIxNUZFQ0FCMDAw
OTdFQkM3IC8qIENvcHlGaWxlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWENvcHlGaWxlc0J1aWxkUGhh
c2U7CkBAIC0xNDMsNiArMTcyLDExIEBACiAJCTQ5OTUxQzA2MTRCN0FBRDgwMDYwRTk2RSAvKiBC
dWlsdEluRnVuY3Rpb25FbXVsYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBCdWlsdEluRnVuY3Rpb25FbXVsYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0OTk1MUMwNzE0QjdBQUQ4MDA2MEU5NkUgLyogRGV0ZWN0Q2FsbERlcHRoLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERldGVjdENhbGxEZXB0aC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5OTUxQzA4MTRCN0FBRDgwMDYwRTk2RSAvKiBEZXRl
Y3RDYWxsRGVwdGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV0ZWN0Q2Fs
bERlcHRoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDOUQ4MjkxMTc5OEIxQTEw
MDdFMTU4OCAvKiBFeHByZXNzaW9uUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgbmFtZSA9IEV4cHJlc3Npb25QYXJzZXIuY3BwOyBwYXRoID0gRXhwcmVzc2lvblBhcnNl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDOUQ4MjkyMTc5OEIxQTEwMDdF
MTU4OCAvKiBnbHNsYW5nX2xleC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5h
bWUgPSBnbHNsYW5nX2xleC5jcHA7IHBhdGggPSBnbHNsYW5nX2xleC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTVDOUQ4MjkzMTc5OEIxQTEwMDdFMTU4OCAvKiBnbHNsYW5nX3Rh
Yi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBnbHNsYW5nX3RhYi5j
cHA7IHBhdGggPSBnbHNsYW5nX3RhYi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTVDOUQ4Mjk0MTc5OEIxQTEwMDdFMTU4OCAvKiBnbHNsYW5nX3RhYi5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IG5hbWUgPSBnbHNsYW5nX3RhYi5oOyBwYXRoID0gZ2xzbGFuZ190YWIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM5RDgyOTUxNzk4QjFBMTAwN0UxNTg4IC8q
IFRva2VuaXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBUb2tl
bml6ZXIuY3BwOyBwYXRoID0gVG9rZW5pemVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNUNDRUI4QjQxNzkwOEUzQTAwRkQ5NDk2IC8qIGJ1aWx0aW5fc3ltYm9sX3RhYmxlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGJ1aWx0aW5fc3ltYm9sX3RhYmxlLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNDRUI4QjUxNzkwOEUzQTAwRkQ5NDk2IC8qIGJ1aWx0aW5f
c3ltYm9sX3RhYmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGJ1aWx0aW5fc3ltYm9sX3RhYmxlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEN0M1OUM1MTIwOEM2OEIwMDFDODczRSAvKiBB
TkdMRS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBBTkdMRS54Y2Nv
bmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTI4OCw2ICszMjIsMTkgQEAKIAkJ
CW5hbWUgPSBtaXNjOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNUM5RDgy
OTAxNzk4QjE3MzAwN0UxNTg4IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBC
WEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNUM5RDgyOTExNzk4QjFBMTAwN0UxNTg4IC8q
IEV4cHJlc3Npb25QYXJzZXIuY3BwICovLAorCQkJCTVDOUQ4MjkyMTc5OEIxQTEwMDdFMTU4OCAv
KiBnbHNsYW5nX2xleC5jcHAgKi8sCisJCQkJNUM5RDgyOTMxNzk4QjFBMTAwN0UxNTg4IC8qIGds
c2xhbmdfdGFiLmNwcCAqLywKKwkJCQk1QzlEODI5NDE3OThCMUExMDA3RTE1ODggLyogZ2xzbGFu
Z190YWIuaCAqLywKKwkJCQk1QzlEODI5NTE3OThCMUExMDA3RTE1ODggLyogVG9rZW5pemVyLmNw
cCAqLywKKwkJCSk7CisJCQluYW1lID0gIkRlcml2ZWQgU291cmNlcyI7CisJCQlwYXRoID0gRGVy
aXZlZFNvdXJjZXMvQU5HTEU7CisJCQlzb3VyY2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOwor
CQl9OwogCQk1RDdDNTlDNDEyMDhDNjhCMDAxQzg3M0UgLyogQ29uZmlndXJhdGlvbnMgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtMzYyLDYgKzQwOSw3IEBA
CiAJCUZCMzlEMDZFMTIwMEVEOTIwMDA4OEU2OSA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJ
Y2hpbGRyZW4gPSAoCisJCQkJNUM5RDgyOTAxNzk4QjE3MzAwN0UxNTg4IC8qIERlcml2ZWQgU291
cmNlcyAqLywKIAkJCQk1RDdDNTlDNDEyMDhDNjhCMDAxQzg3M0UgLyogQ29uZmlndXJhdGlvbnMg
Ki8sCiAJCQkJQTI5QjE1RTkxNjk3OEI3RDAwMTExRDk3IC8qIGluY2x1ZGUgKi8sCiAJCQkJMzEy
QkRCMDcxNUZFQzhFNjAwOTdFQkM3IC8qIG1pc2MgKi8sCkBAIC01NzQsNiArNjIyLDcgQEAKIAkJ
CQk5MEQ5QjExODEyRTExREQ2MDAyRDQyNTUgLyogVmFyaWFibGVJbmZvLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBMjY0RjhDQTE2OTc0RTJBMDA2RkFBNUEgLyogVmFyaWFibGVQYWNrZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTkwRDlCMTFBMTJFMTFERDYwMDJENDI1NSAvKiBWZXJzaW9uR0xTTC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNUM5RDgyOTkxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xhbmdf
dGFiLmggaW4gSGVhZGVycyAqLywKIAkJCSk7CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rw
cm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTU5Myw2ICs2NDIsNyBAQAogCQkJYnVpbGRSdWxlcyA9
ICgKIAkJCSk7CiAJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkJNUM5RDgyQTIxNzk4QjFFNjAwN0Ux
NTg4IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8sCiAJCQkpOwogCQkJbmFtZSA9IEFOR0xFOwog
CQkJcHJvZHVjdE5hbWUgPSBhbmdsZTsKQEAgLTYyMiwxMCArNjcyLDI3IEBACiAJCQlwcm9qZWN0
Um9vdCA9ICIiOwogCQkJdGFyZ2V0cyA9ICgKIAkJCQlGQjM5RDBEMDEyMDBGMEUzMDAwODhFNjkg
LyogQU5HTEUgKi8sCisJCQkJNUM5RDgyOUIxNzk4QjFDRDAwN0UxNTg4IC8qIERlcml2ZWQgU291
cmNlcyAqLywKIAkJCSk7CiAJCX07CiAvKiBFbmQgUEJYUHJvamVjdCBzZWN0aW9uICovCiAKKy8q
IEJlZ2luIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZSBzZWN0aW9uICovCisJCTVDOUQ4MkEwMTc5
OEIxRDYwMDdFMTU4OCAvKiBTaGVsbFNjcmlwdCAqLyA9IHsKKwkJCWlzYSA9IFBCWFNoZWxsU2Ny
aXB0QnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxl
cyA9ICgKKwkJCSk7CisJCQlpbnB1dFBhdGhzID0gKAorCQkJKTsKKwkJCW91dHB1dFBhdGhzID0g
KAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJ
c2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNoZWxsU2NyaXB0ID0gIm1rZGlyIC1wIFwiJHtCVUlM
VF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL0FOR0xFXCJcbmNkIFwiJHtCVUlMVF9QUk9E
VUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL0FOR0xFXCJcblxuL2Jpbi9sbiAtc2ZoIFwiJHtTUkNS
T09UfVwiIC5cbmV4cG9ydCBBTkdMRT1cIkFOR0xFXCJcblxubWFrZSAgLS1uby1idWlsdGluLXJ1
bGVzIC1mIFwiQU5HTEUvRGVyaXZlZFNvdXJjZXMubWFrZVwiIC1qIGAvdXNyL3NiaW4vc3lzY3Rs
IC1uIGh3LmF2YWlsY3B1YCI7CisJCX07CisvKiBFbmQgUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNl
IHNlY3Rpb24gKi8KKwogLyogQmVnaW4gUEJYU291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwog
CQlGQjM5RDBDRTEyMDBGMEUzMDAwODhFNjkgLyogU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBC
WFNvdXJjZXNCdWlsZFBoYXNlOwpAQCAtNjg3LDEyICs3NTQsNDUgQEAKIAkJCQk5MEQ5QjExNzEy
RTExREQ2MDAyRDQyNTUgLyogVmFyaWFibGVJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEy
NjRGOEM5MTY5NzRFMkEwMDZGQUE1QSAvKiBWYXJpYWJsZVBhY2tlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQk5MEQ5QjExOTEyRTExREQ2MDAyRDQyNTUgLyogVmVyc2lvbkdMU0wuY3BwIGluIFNv
dXJjZXMgKi8sCisJCQkJNUM5RDgyOTYxNzk4QjFBMTAwN0UxNTg4IC8qIEV4cHJlc3Npb25QYXJz
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNUM5RDgyOTcxNzk4QjFBMTAwN0UxNTg4IC8qIGds
c2xhbmdfbGV4LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTVDOUQ4Mjk4MTc5OEIxQTEwMDdFMTU4
OCAvKiBnbHNsYW5nX3RhYi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1QzlEODI5QTE3OThCMUEx
MDA3RTE1ODggLyogVG9rZW5pemVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwogLyogRW5kIFBCWFNvdXJj
ZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIAorLyogQmVnaW4gUEJYVGFyZ2V0RGVwZW5kZW5jeSBz
ZWN0aW9uICovCisJCTVDOUQ4MkEyMTc5OEIxRTYwMDdFMTU4OCAvKiBQQlhUYXJnZXREZXBlbmRl
bmN5ICovID0geworCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdldCA9IDVD
OUQ4MjlCMTc5OEIxQ0QwMDdFMTU4OCAvKiBEZXJpdmVkIFNvdXJjZXMgKi87CisJCQl0YXJnZXRQ
cm94eSA9IDVDOUQ4MkExMTc5OEIxRTYwMDdFMTU4OCAvKiBQQlhDb250YWluZXJJdGVtUHJveHkg
Ki87CisJCX07CisvKiBFbmQgUEJYVGFyZ2V0RGVwZW5kZW5jeSBzZWN0aW9uICovCisKIC8qIEJl
Z2luIFhDQnVpbGRDb25maWd1cmF0aW9uIHNlY3Rpb24gKi8KKwkJNUM5RDgyOUQxNzk4QjFDRTAw
N0UxNTg4IC8qIERlYnVnICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJ
CQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7
CisJCQl9OworCQkJbmFtZSA9IERlYnVnOworCQl9OworCQk1QzlEODI5RTE3OThCMUNFMDA3RTE1
ODggLyogUmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJ
YnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOwor
CQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNlOworCQl9OworCQk1QzlEODI5RjE3OThCMUNFMDA3RTE1
ODggLyogUHJvZHVjdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwor
CQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSki
OworCQkJfTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQk1RDdDNTlEQjEyMDhDNkMz
MDAxQzg3M0UgLyogUHJvZHVjdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0
aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDdDNTlDNjEyMDhDNjhCMDAx
Qzg3M0UgLyogQmFzZS54Y2NvbmZpZyAqLzsKQEAgLTczOSw2ICs4MzksMTUgQEAKIC8qIEVuZCBY
Q0J1aWxkQ29uZmlndXJhdGlvbiBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFhDQ29uZmlndXJhdGlv
bkxpc3Qgc2VjdGlvbiAqLworCQk1QzlEODI5QzE3OThCMUNFMDA3RTE1ODggLyogQnVpbGQgY29u
ZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIg
Ki8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0
aW9ucyA9ICgKKwkJCQk1QzlEODI5RDE3OThCMUNFMDA3RTE1ODggLyogRGVidWcgKi8sCisJCQkJ
NUM5RDgyOUUxNzk4QjFDRTAwN0UxNTg4IC8qIFJlbGVhc2UgKi8sCisJCQkJNUM5RDgyOUYxNzk4
QjFDRTAwN0UxNTg4IC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3Vy
YXRpb25Jc1Zpc2libGUgPSAwOworCQl9OwogCQlGQjM5RDA3MzEyMDBFRDkyMDAwODhFNjkgLyog
QnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0ICJBTkdMRSIgKi8gPSB7CiAJ
CQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207035</attachid>
            <date>2013-07-18 16:57:34 -0700</date>
            <delta_ts>2013-07-18 17:03:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118872-20130718165733.patch</filename>
            <type>text/plain</type>
            <size>308561</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1Mjg3MikKKysrIFNv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEzIEBACisyMDEzLTA3LTE4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQGFwcGxl
LmNvbT4KKworICAgICAgICBBTkdMRSBoYXMgNSBmaWxlcyB0aGF0IGFyZSBnZW5lcmF0ZWQuICBU
aGVzZSBzaG91bGQgZ2VuZXJhdGVkIGFzIHBhcnQgb2YgdGhlIGJ1aWxkIHByb2Nlc3MgdG8gbWFr
ZSB1cGRhdGluZyBlYXNpZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTg4NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIEFOR0xFLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IE1hZGUgRGVyaXZl
ZCBTb3VyY2VzIHRhcmdldCB3aGljaCBjYWxscyBEZXJpdmVkU291cmNlcy5tYWtlLCBtb3ZlZCBn
ZW5lcmF0ZWQgZmlsZXMgaW50byBEZXJpdmVkIFNvdXJjZXMgZ3JvdXAuCisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZTogQWRkZWQuCisKIDIwMTMtMDctMTggIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZGVkIHByZXZpb3VzbHkgdW5p
bmNsdWRlZCBmaWxlcyBmcm9tIEFOR0xFIHIyNDI2IHdpdGggdGhlc2UgZXhjZXB0aW9uczoKSW5k
ZXg6IFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1RoaXJkUGFydHkvQU5HTEUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKK2FsbDogZ2xzbGFuZ19sZXguY3BwIGdsc2xhbmdf
dGFiLmggZ2xzbGFuZ190YWIuY3BwIEV4cHJlc3Npb25QYXJzZXIuY3BwIFRva2VuaXplci5jcHAK
KworZ2xzbGFuZ19sZXguY3BwOiBBTkdMRS9zcmMvY29tcGlsZXIvZ2xzbGFuZy5sCisJZmxleCAt
LW5vbGluZSAtLW5vdW5pc3RkIC0tb3V0ZmlsZT1nbHNsYW5nX2xleC5jcHAgQU5HTEUvc3JjL2Nv
bXBpbGVyL2dsc2xhbmcubAorCitnbHNsYW5nX3RhYi5oIGdsc2xhbmdfdGFiLmNwcDogQU5HTEUv
c3JjL2NvbXBpbGVyL2dsc2xhbmcueQorCWJpc29uIC0tbm8tbGluZXMgLS1za2VsZXRvbj15YWNj
LmMgLS1kZWZpbmVzPWdsc2xhbmdfdGFiLmggLS1vdXRwdXQ9Z2xzbGFuZ190YWIuY3BwIEFOR0xF
L3NyYy9jb21waWxlci9nbHNsYW5nLnkKKworRXhwcmVzc2lvblBhcnNlci5jcHA6IEFOR0xFL3Ny
Yy9jb21waWxlci9wcmVwcm9jZXNzb3IvRXhwcmVzc2lvblBhcnNlci55CisJYmlzb24gLS1uby1s
aW5lcyAtLXNrZWxldG9uPXlhY2MuYyAtLW91dHB1dD1FeHByZXNzaW9uUGFyc2VyLmNwcCBBTkdM
RS9zcmMvY29tcGlsZXIvcHJlcHJvY2Vzc29yL0V4cHJlc3Npb25QYXJzZXIueQorCitUb2tlbml6
ZXIuY3BwOiBBTkdMRS9zcmMvY29tcGlsZXIvcHJlcHJvY2Vzc29yL1Rva2VuaXplci5sCisJZmxl
eCAtLW5vbGluZSAtLW5vdW5pc3RkIC0tb3V0ZmlsZT1Ub2tlbml6ZXIuY3BwIEFOR0xFL3NyYy9j
b21waWxlci9wcmVwcm9jZXNzb3IvVG9rZW5pemVyLmwKSW5kZXg6IFNvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL0FOR0xFLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvQU5HTEUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMTUyODcwKQorKysgU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQU5HTEUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNiw2ICs2LDIwIEBACiAJb2JqZWN0
VmVyc2lvbiA9IDQ2OwogCW9iamVjdHMgPSB7CiAKKy8qIEJlZ2luIFBCWEFnZ3JlZ2F0ZVRhcmdl
dCBzZWN0aW9uICovCisJCTVDOUQ4MjlCMTc5OEIxQ0QwMDdFMTU4OCAvKiBEZXJpdmVkIFNvdXJj
ZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhBZ2dyZWdhdGVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3Vy
YXRpb25MaXN0ID0gNUM5RDgyOUMxNzk4QjFDRTAwN0UxNTg4IC8qIEJ1aWxkIGNvbmZpZ3VyYXRp
b24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJEZXJpdmVkIFNvdXJjZXMiICovOworCQkJ
YnVpbGRQaGFzZXMgPSAoCisJCQkJNUM5RDgyQTAxNzk4QjFENjAwN0UxNTg4IC8qIFNoZWxsU2Ny
aXB0ICovLAorCQkJKTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCSk7CisJCQluYW1lID0gIkRl
cml2ZWQgU291cmNlcyI7CisJCQlwcm9kdWN0TmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQl9
OworLyogRW5kIFBCWEFnZ3JlZ2F0ZVRhcmdldCBzZWN0aW9uICovCisKIC8qIEJlZ2luIFBCWEJ1
aWxkRmlsZSBzZWN0aW9uICovCiAJCTMxMkJEQjBDMTVGRUNBQzkwMDk3RUJDNyAvKiBBTkdMRS5w
bGlzdCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEy
QkRCMDkxNUZFQzkxRTAwOTdFQkM3IC8qIEFOR0xFLnBsaXN0ICovOyB9OwogCQkzMTJCREIwRTE1
RkVDQUU1MDA5N0VCQzcgLyogQU5HTEUudHh0IGluIENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMTJCREIwQTE1RkVDQTNBMDA5N0VCQzcgLyogQU5HTEUudHh0
ICovOyB9OwpAQCAtMTQsMTIgKzI4LDE0IEBACiAJCTQ5OTUxQzBBMTRCN0FBRDgwMDYwRTk2RSAv
KiBCdWlsdEluRnVuY3Rpb25FbXVsYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDk5NTFDMDYxNEI3QUFEODAwNjBFOTZFIC8qIEJ1aWx0SW5GdW5j
dGlvbkVtdWxhdG9yLmggKi87IH07CiAJCTQ5OTUxQzBCMTRCN0FBRDgwMDYwRTk2RSAvKiBEZXRl
Y3RDYWxsRGVwdGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDk5NTFDMDcxNEI3QUFEODAwNjBFOTZFIC8qIERldGVjdENhbGxEZXB0aC5jcHAgKi87
IH07CiAJCTQ5OTUxQzBDMTRCN0FBRDgwMDYwRTk2RSAvKiBEZXRlY3RDYWxsRGVwdGguaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5OTUxQzA4MTRCN0FB
RDgwMDYwRTk2RSAvKiBEZXRlY3RDYWxsRGVwdGguaCAqLzsgfTsKKwkJNUM5RDgyOTYxNzk4QjFB
MTAwN0UxNTg4IC8qIEV4cHJlc3Npb25QYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM5RDgyOTExNzk4QjFBMTAwN0UxNTg4IC8qIEV4cHJl
c3Npb25QYXJzZXIuY3BwICovOyB9OworCQk1QzlEODI5NzE3OThCMUExMDA3RTE1ODggLyogZ2xz
bGFuZ19sZXguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUM5RDgyOTIxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xhbmdfbGV4LmNwcCAqLzsgfTsKKwkJ
NUM5RDgyOTgxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xhbmdfdGFiLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDOUQ4MjkzMTc5OEIxQTEwMDdFMTU4
OCAvKiBnbHNsYW5nX3RhYi5jcHAgKi87IH07CisJCTVDOUQ4Mjk5MTc5OEIxQTEwMDdFMTU4OCAv
KiBnbHNsYW5nX3RhYi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNUM5RDgyOTQxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xhbmdfdGFiLmggKi87IH07CisJ
CTVDOUQ4MjlBMTc5OEIxQTEwMDdFMTU4OCAvKiBUb2tlbml6ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM5RDgyOTUxNzk4QjFBMTAwN0UxNTg4
IC8qIFRva2VuaXplci5jcHAgKi87IH07CiAJCTVDQ0VCOEI2MTc5MDhFRUMwMEZEOTQ5NiAvKiBi
dWlsdGluX3N5bWJvbF90YWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1Q0NFQjhCNDE3OTA4RTNBMDBGRDk0OTYgLyogYnVpbHRpbl9zeW1ib2xf
dGFibGUuY3BwICovOyB9OwogCQk5MEQ5QjEwMjEyRTExRENCMDAyRDQyNTUgLyogQ29tcGlsZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTBEOUIw
RjkxMkUxMURDQjAwMkQ0MjU1IC8qIENvbXBpbGVyLmNwcCAqLzsgfTsKIAkJOTBEOUIxMDMxMkUx
MURDQjAwMkQ0MjU1IC8qIEV4dGVuc2lvbkJlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MEQ5QjBGQTEyRTExRENCMDAyRDQyNTUgLyogRXh0
ZW5zaW9uQmVoYXZpb3IuaCAqLzsgfTsKLQkJOTBEOUIxMDQxMkUxMURDQjAwMkQ0MjU1IC8qIGds
c2xhbmdfbGV4LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkwRDlCMEZCMTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nX2xleC5jcHAgKi87IH07Ci0J
CTkwRDlCMTA1MTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nX3RhYi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MEQ5QjBGQzEyRTExRENCMDAyRDQy
NTUgLyogZ2xzbGFuZ190YWIuY3BwICovOyB9OwotCQk5MEQ5QjEwNjEyRTExRENCMDAyRDQyNTUg
LyogZ2xzbGFuZ190YWIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkwRDlCMEZEMTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nX3RhYi5oICovOyB9Owog
CQk5MEQ5QjEwNzEyRTExRENCMDAyRDQyNTUgLyogZ2xzbGFuZy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTBEOUIwRkUxMkUxMURDQjAwMkQ0MjU1IC8q
IGdsc2xhbmcuaCAqLzsgfTsKIAkJOTBEOUIxMDkxMkUxMURDQjAwMkQ0MjU1IC8qIFNlYXJjaFN5
bWJvbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MEQ5QjEwMDEyRTExRENCMDAyRDQyNTUgLyogU2VhcmNoU3ltYm9sLmNwcCAqLzsgfTsKIAkJOTBE
OUIxMEExMkUxMURDQjAwMkQ0MjU1IC8qIFNlYXJjaFN5bWJvbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTBEOUIxMDExMkUxMURDQjAwMkQ0MjU1IC8q
IFNlYXJjaFN5bWJvbC5oICovOyB9OwpAQCAtNDksNyArNjUsNiBAQAogCQlBMjY0RjhBRjE2OTc0
REVEMDA2RkFBNUEgLyogRGlyZWN0aXZlSGFuZGxlckJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEyNjRGODk2MTY5NzRERUQwMDZGQUE1QSAvKiBE
aXJlY3RpdmVIYW5kbGVyQmFzZS5oICovOyB9OwogCQlBMjY0RjhCMDE2OTc0REVEMDA2RkFBNUEg
LyogRGlyZWN0aXZlUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEEyNjRGODk3MTY5NzRERUQwMDZGQUE1QSAvKiBEaXJlY3RpdmVQYXJzZXIu
Y3BwICovOyB9OwogCQlBMjY0RjhCMTE2OTc0REVEMDA2RkFBNUEgLyogRGlyZWN0aXZlUGFyc2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMjY0Rjg5
ODE2OTc0REVEMDA2RkFBNUEgLyogRGlyZWN0aXZlUGFyc2VyLmggKi87IH07Ci0JCUEyNjRGOEIy
MTY5NzRERUQwMDZGQUE1QSAvKiBFeHByZXNzaW9uUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEyNjRGODk5MTY5NzRERUQwMDZGQUE1QSAv
KiBFeHByZXNzaW9uUGFyc2VyLmNwcCAqLzsgfTsKIAkJQTI2NEY4QjMxNjk3NERFRDAwNkZBQTVB
IC8qIEV4cHJlc3Npb25QYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEEyNjRGODlBMTY5NzRERUQwMDZGQUE1QSAvKiBFeHByZXNzaW9uUGFyc2Vy
LmggKi87IH07CiAJCUEyNjRGOEI0MTY5NzRERUQwMDZGQUE1QSAvKiBJbnB1dC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMjY0Rjg5QjE2OTc0REVE
MDA2RkFBNUEgLyogSW5wdXQuY3BwICovOyB9OwogCQlBMjY0RjhCNTE2OTc0REVEMDA2RkFBNUEg
LyogSW5wdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEEyNjRGODlDMTY5NzRERUQwMDZGQUE1QSAvKiBJbnB1dC5oICovOyB9OwpAQCAtNjYsNyArODEs
NiBAQAogCQlBMjY0RjhDMDE2OTc0REVEMDA2RkFBNUEgLyogU291cmNlTG9jYXRpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEyNjRGOEE3MTY5NzRE
RUQwMDZGQUE1QSAvKiBTb3VyY2VMb2NhdGlvbi5oICovOyB9OwogCQlBMjY0RjhDMTE2OTc0REVE
MDA2RkFBNUEgLyogVG9rZW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTI2NEY4QTgxNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuLmNwcCAqLzsgfTsK
IAkJQTI2NEY4QzIxNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMjY0RjhBOTE2OTc0REVEMDA2RkFBNUEgLyog
VG9rZW4uaCAqLzsgfTsKLQkJQTI2NEY4QzMxNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuaXplci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMjY0RjhB
QTE2OTc0REVEMDA2RkFBNUEgLyogVG9rZW5pemVyLmNwcCAqLzsgfTsKIAkJQTI2NEY4QzQxNjk3
NERFRDAwNkZBQTVBIC8qIFRva2VuaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTI2NEY4QUIxNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuaXplci5o
ICovOyB9OwogCQlBMjY0RjhDODE2OTc0RTJBMDA2RkFBNUEgLyogSGFzaE5hbWVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMjY0RjhDNTE2OTc0RTJB
MDA2RkFBNUEgLyogSGFzaE5hbWVzLmggKi87IH07CiAJCUEyNjRGOEM5MTY5NzRFMkEwMDZGQUE1
QSAvKiBWYXJpYWJsZVBhY2tlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMjY0RjhDNjE2OTc0RTJBMDA2RkFBNUEgLyogVmFyaWFibGVQYWNrZXIu
Y3BwICovOyB9OwpAQCAtMTExLDYgKzEyNSwxNiBAQAogCQlGQjM5RDc2RTEyMDExMEZDMDAwODhF
NjkgLyogU2hhZGVyTGFuZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkIzOUQyQkYxMjAwRjNFNjAwMDg4RTY5IC8qIFNoYWRlckxhbmcuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAvKiBFbmQgUEJYQnVpbGRG
aWxlIHNlY3Rpb24gKi8KIAorLyogQmVnaW4gUEJYQ29udGFpbmVySXRlbVByb3h5IHNlY3Rpb24g
Ki8KKwkJNUM5RDgyQTExNzk4QjFFNjAwN0UxNTg4IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAq
LyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRh
bCA9IEZCMzlEMDcwMTIwMEVEOTIwMDA4OEU2OSAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXBy
b3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDVDOUQ4MjlCMTc5OEIxQ0Qw
MDdFMTU4ODsKKwkJCXJlbW90ZUluZm8gPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJfTsKKy8qIEVu
ZCBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLworCiAvKiBCZWdpbiBQQlhDb3B5Rmls
ZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIAkJMzEyQkRCMEIxNUZFQ0FCMDAwOTdFQkM3IC8qIENv
cHlGaWxlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWENvcHlGaWxlc0J1aWxkUGhhc2U7CkBAIC0xNDMs
NiArMTY3LDExIEBACiAJCTQ5OTUxQzA2MTRCN0FBRDgwMDYwRTk2RSAvKiBCdWlsdEluRnVuY3Rp
b25FbXVsYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCdWlsdEluRnVu
Y3Rpb25FbXVsYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTk1MUMwNzE0
QjdBQUQ4MDA2MEU5NkUgLyogRGV0ZWN0Q2FsbERlcHRoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IERldGVjdENhbGxEZXB0aC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ5OTUxQzA4MTRCN0FBRDgwMDYwRTk2RSAvKiBEZXRlY3RDYWxsRGVwdGgu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV0ZWN0Q2FsbERlcHRoLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDOUQ4MjkxMTc5OEIxQTEwMDdFMTU4OCAvKiBF
eHByZXNzaW9uUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEV4cHJlc3Npb25QYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzlE
ODI5MjE3OThCMUExMDA3RTE1ODggLyogZ2xzbGFuZ19sZXguY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gZ2xzbGFuZ19sZXguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1QzlEODI5MzE3OThCMUExMDA3RTE1ODggLyogZ2xzbGFuZ190YWIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gZ2xzbGFuZ190YWIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzlEODI5NDE3OThCMUExMDA3RTE1ODggLyogZ2xz
bGFuZ190YWIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gZ2xzbGFuZ190YWIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM5RDgyOTUxNzk4QjFBMTAwN0UxNTg4
IC8qIFRva2VuaXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBU
b2tlbml6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0NFQjhCNDE3OTA4
RTNBMDBGRDk0OTYgLyogYnVpbHRpbl9zeW1ib2xfdGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gYnVpbHRpbl9zeW1ib2xfdGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1Q0NFQjhCNTE3OTA4RTNBMDBGRDk0OTYgLyogYnVpbHRpbl9zeW1ib2xfdGFibGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gYnVpbHRpbl9zeW1ib2xfdGFibGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNUQ3QzU5QzUxMjA4QzY4QjAwMUM4NzNFIC8qIEFOR0xFLnhjY29uZmlnICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEFOR0xFLnhjY29uZmlnOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTUwLDkgKzE3OSw2IEBACiAJCTVEN0M1OUM3MTIwOEM2OEIwMDFD
ODczRSAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBw
YXRoID0gRGVidWdSZWxlYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MEQ5QjBGOTEyRTExRENCMDAyRDQyNTUgLyogQ29tcGlsZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29tcGlsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MEQ5QjBGQTEyRTExRENCMDAyRDQyNTUgLyogRXh0ZW5zaW9uQmVoYXZpb3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXh0ZW5zaW9uQmVoYXZpb3IuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTBEOUIwRkIxMkUxMURDQjAwMkQ0MjU1IC8q
IGdsc2xhbmdfbGV4LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGds
c2xhbmdfbGV4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTBEOUIwRkMxMkUx
MURDQjAwMkQ0MjU1IC8qIGdsc2xhbmdfdGFiLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IGdsc2xhbmdfdGFiLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJOTBEOUIwRkQxMkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xhbmdfdGFiLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGdsc2xhbmdfdGFiLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkwRDlCMEZFMTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGdsc2xhbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTBEOUIxMDAxMkUxMURDQjAwMkQ0MjU1IC8qIFNlYXJjaFN5bWJvbC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZWFyY2hTeW1ib2wuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MEQ5QjEwMTEyRTExRENCMDAyRDQyNTUgLyogU2Vh
cmNoU3ltYm9sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlYXJjaFN5bWJv
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTgyLDcgKzIwOCw2IEBACiAJCUEy
NjRGODk2MTY5NzRERUQwMDZGQUE1QSAvKiBEaXJlY3RpdmVIYW5kbGVyQmFzZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXJlY3RpdmVIYW5kbGVyQmFzZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0Rjg5NzE2OTc0REVEMDA2RkFBNUEgLyogRGlyZWN0
aXZlUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpcmVj
dGl2ZVBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEyNjRGODk4MTY5
NzRERUQwMDZGQUE1QSAvKiBEaXJlY3RpdmVQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRGlyZWN0aXZlUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUEyNjRGODk5MTY5NzRERUQwMDZGQUE1QSAvKiBFeHByZXNzaW9uUGFyc2VyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4cHJlc3Npb25QYXJzZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0Rjg5QTE2OTc0REVEMDA2RkFBNUEgLyog
RXhwcmVzc2lvblBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeHBy
ZXNzaW9uUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEyNjRGODlCMTY5
NzRERUQwMDZGQUE1QSAvKiBJbnB1dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJbnB1dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEyNjRGODlD
MTY5NzRERUQwMDZGQUE1QSAvKiBJbnB1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJbnB1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk5LDcgKzIyNCw2
IEBACiAJCUEyNjRGOEE3MTY5NzRERUQwMDZGQUE1QSAvKiBTb3VyY2VMb2NhdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VMb2NhdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBMjY0RjhBODE2OTc0REVEMDA2RkFBNUEgLyogVG9rZW4uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVG9rZW4uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0RjhBOTE2OTc0REVEMDA2RkFBNUEgLyogVG9rZW4u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVG9rZW4uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQTI2NEY4QUExNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuaXplci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUb2tlbml6ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0RjhBQjE2OTc0REVEMDA2RkFBNUEgLyog
VG9rZW5pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRva2VuaXplci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0RjhDNTE2OTc0RTJBMDA2RkFBNUEg
LyogSGFzaE5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhhc2hOYW1l
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0RjhDNjE2OTc0RTJBMDA2RkFB
NUEgLyogVmFyaWFibGVQYWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVmFyaWFibGVQYWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
Mjg4LDYgKzMxMiwxOSBAQAogCQkJbmFtZSA9IG1pc2M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwogCQl9OworCQk1QzlEODI5MDE3OThCMTczMDA3RTE1ODggLyogRGVyaXZlZCBTb3VyY2Vz
ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1QzlEODI5
MTE3OThCMUExMDA3RTE1ODggLyogRXhwcmVzc2lvblBhcnNlci5jcHAgKi8sCisJCQkJNUM5RDgy
OTIxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xhbmdfbGV4LmNwcCAqLywKKwkJCQk1QzlEODI5MzE3
OThCMUExMDA3RTE1ODggLyogZ2xzbGFuZ190YWIuY3BwICovLAorCQkJCTVDOUQ4Mjk0MTc5OEIx
QTEwMDdFMTU4OCAvKiBnbHNsYW5nX3RhYi5oICovLAorCQkJCTVDOUQ4Mjk1MTc5OEIxQTEwMDdF
MTU4OCAvKiBUb2tlbml6ZXIuY3BwICovLAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3Vy
Y2VzIjsKKwkJCXBhdGggPSBEZXJpdmVkU291cmNlcy9BTkdMRTsKKwkJCXNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7CisJCX07CiAJCTVEN0M1OUM0MTIwOEM2OEIwMDFDODczRSAvKiBD
b25maWd1cmF0aW9ucyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CkBAIC0zNjIsNiArMzk5LDcgQEAKIAkJRkIzOUQwNkUxMjAwRUQ5MjAwMDg4RTY5ID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1QzlEODI5MDE3OThCMTczMDA3
RTE1ODggLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTVEN0M1OUM0MTIwOEM2OEIwMDFDODcz
RSAvKiBDb25maWd1cmF0aW9ucyAqLywKIAkJCQlBMjlCMTVFOTE2OTc4QjdEMDAxMTFEOTcgLyog
aW5jbHVkZSAqLywKIAkJCQkzMTJCREIwNzE1RkVDOEU2MDA5N0VCQzcgLyogbWlzYyAqLywKQEAg
LTQxNCw5ICs0NTIsNiBAQAogCQkJCUEwQUFCRTJBMTNBRkU4MTAwMEYyRUJEMSAvKiBGb3JMb29w
VW5yb2xsLmNwcCAqLywKIAkJCQlBMEFBQkUyQjEzQUZFODEwMDBGMkVCRDEgLyogRm9yTG9vcFVu
cm9sbC5oICovLAogCQkJCTkwRDlCMEZFMTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nLmggKi8s
Ci0JCQkJOTBEOUIwRkIxMkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xhbmdfbGV4LmNwcCAqLywKLQkJ
CQk5MEQ5QjBGQzEyRTExRENCMDAyRDQyNTUgLyogZ2xzbGFuZ190YWIuY3BwICovLAotCQkJCTkw
RDlCMEZEMTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nX3RhYi5oICovLAogCQkJCUEyNjRGOEM1
MTY5NzRFMkEwMDZGQUE1QSAvKiBIYXNoTmFtZXMuaCAqLywKIAkJCQlGQjM5RDIyQTEyMDBGMzVB
MDAwODhFNjkgLyogSW5mb1NpbmsuY3BwICovLAogCQkJCUZCMzlEMjJCMTIwMEYzNUEwMDA4OEU2
OSAvKiBJbmZvU2luay5oICovLApAQCAtNDkwLDcgKzUyNSw2IEBACiAJCQkJQTI2NEY4OTYxNjk3
NERFRDAwNkZBQTVBIC8qIERpcmVjdGl2ZUhhbmRsZXJCYXNlLmggKi8sCiAJCQkJQTI2NEY4OTcx
Njk3NERFRDAwNkZBQTVBIC8qIERpcmVjdGl2ZVBhcnNlci5jcHAgKi8sCiAJCQkJQTI2NEY4OTgx
Njk3NERFRDAwNkZBQTVBIC8qIERpcmVjdGl2ZVBhcnNlci5oICovLAotCQkJCUEyNjRGODk5MTY5
NzRERUQwMDZGQUE1QSAvKiBFeHByZXNzaW9uUGFyc2VyLmNwcCAqLywKIAkJCQlBMjY0Rjg5QTE2
OTc0REVEMDA2RkFBNUEgLyogRXhwcmVzc2lvblBhcnNlci5oICovLAogCQkJCUEyNjRGODlCMTY5
NzRERUQwMDZGQUE1QSAvKiBJbnB1dC5jcHAgKi8sCiAJCQkJQTI2NEY4OUMxNjk3NERFRDAwNkZB
QTVBIC8qIElucHV0LmggKi8sCkBAIC01MDgsNyArNTQyLDYgQEAKIAkJCQlBMjY0RjhBNzE2OTc0
REVEMDA2RkFBNUEgLyogU291cmNlTG9jYXRpb24uaCAqLywKIAkJCQlBMjY0RjhBODE2OTc0REVE
MDA2RkFBNUEgLyogVG9rZW4uY3BwICovLAogCQkJCUEyNjRGOEE5MTY5NzRERUQwMDZGQUE1QSAv
KiBUb2tlbi5oICovLAotCQkJCUEyNjRGOEFBMTY5NzRERUQwMDZGQUE1QSAvKiBUb2tlbml6ZXIu
Y3BwICovLAogCQkJCUEyNjRGOEFCMTY5NzRERUQwMDZGQUE1QSAvKiBUb2tlbml6ZXIuaCAqLywK
IAkJCSk7CiAJCQlwYXRoID0gcHJlcHJvY2Vzc29yOwpAQCAtNTQ1LDcgKzU3OCw2IEBACiAJCQkJ
OTBEOUIxMDMxMkUxMURDQjAwMkQ0MjU1IC8qIEV4dGVuc2lvbkJlaGF2aW9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBMEFBQkUyRDEzQUZFODEwMDBGMkVCRDEgLyogRm9yTG9vcFVucm9sbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTBEOUIxMDcxMkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xhbmcuaCBp
biBIZWFkZXJzICovLAotCQkJCTkwRDlCMTA2MTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nX3Rh
Yi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTI2NEY4QzgxNjk3NEUyQTAwNkZBQTVBIC8qIEhhc2hO
YW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTI2NEY4QjUxNjk3NERFRDAwNkZBQTVBIC8qIElu
cHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMjY0RjhDRDE2OTc2MkFBMDA2RkFBNUEgLyoga2hy
cGxhdGZvcm0uaCBpbiBIZWFkZXJzICovLApAQCAtNTc0LDYgKzYwNiw3IEBACiAJCQkJOTBEOUIx
MTgxMkUxMURENjAwMkQ0MjU1IC8qIFZhcmlhYmxlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTI2NEY4Q0ExNjk3NEUyQTAwNkZBQTVBIC8qIFZhcmlhYmxlUGFja2VyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5MEQ5QjExQTEyRTExREQ2MDAyRDQyNTUgLyogVmVyc2lvbkdMU0wuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTVDOUQ4Mjk5MTc5OEIxQTEwMDdFMTU4OCAvKiBnbHNsYW5nX3RhYi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CkBAIC01OTMsNiArNjI2LDcgQEAKIAkJCWJ1aWxkUnVsZXMgPSAoCiAJCQkp
OwogCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTVDOUQ4MkEyMTc5OEIxRTYwMDdFMTU4OCAvKiBQ
QlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsKIAkJCW5hbWUgPSBBTkdMRTsKIAkJCXByb2R1
Y3ROYW1lID0gYW5nbGU7CkBAIC02MjIsMTAgKzY1NiwyNyBAQAogCQkJcHJvamVjdFJvb3QgPSAi
IjsKIAkJCXRhcmdldHMgPSAoCiAJCQkJRkIzOUQwRDAxMjAwRjBFMzAwMDg4RTY5IC8qIEFOR0xF
ICovLAorCQkJCTVDOUQ4MjlCMTc5OEIxQ0QwMDdFMTU4OCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8s
CiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFByb2plY3Qgc2VjdGlvbiAqLwogCisvKiBCZWdpbiBQ
QlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2Ugc2VjdGlvbiAqLworCQk1QzlEODJBMDE3OThCMUQ2MDA3
RTE1ODggLyogU2hlbGxTY3JpcHQgKi8gPSB7CisJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxk
UGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJ
CQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJCSk7CisJCQlvdXRwdXRQYXRocyA9ICgKKwkJCSk7
CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJCXNoZWxsUGF0
aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICJta2RpciAtcCBcIiR7QlVJTFRfUFJPRFVD
VFNfRElSfS9EZXJpdmVkU291cmNlcy9BTkdMRVwiXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElS
fS9EZXJpdmVkU291cmNlcy9BTkdMRVwiXG5cbi9iaW4vbG4gLXNmaCBcIiR7U1JDUk9PVH1cIiAu
XG5leHBvcnQgQU5HTEU9XCJBTkdMRVwiXG5cbm1ha2UgIC0tbm8tYnVpbHRpbi1ydWxlcyAtZiBc
IkFOR0xFL0Rlcml2ZWRTb3VyY2VzLm1ha2VcIiAtaiBgL3Vzci9zYmluL3N5c2N0bCAtbiBody5h
dmFpbGNwdWAiOworCQl9OworLyogRW5kIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZSBzZWN0aW9u
ICovCisKIC8qIEJlZ2luIFBCWFNvdXJjZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIAkJRkIzOUQw
Q0UxMjAwRjBFMzAwMDg4RTY5IC8qIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhTb3VyY2Vz
QnVpbGRQaGFzZTsKQEAgLTY0NiwxMCArNjk3LDcgQEAKIAkJCQlBMjY1NjdCRDE1OUMyMUIxMDAz
OTg1MzkgLyogRGlyZWN0aXZlSGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMjY0RjhB
RTE2OTc0REVEMDA2RkFBNUEgLyogRGlyZWN0aXZlSGFuZGxlckJhc2UuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTI2NEY4QjAxNjk3NERFRDAwNkZBQTVBIC8qIERpcmVjdGl2ZVBhcnNlci5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQlBMjY0RjhCMjE2OTc0REVEMDA2RkFBNUEgLyogRXhwcmVzc2lv
blBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMEFBQkUyQzEzQUZFODEwMDBGMkVCRDEg
LyogRm9yTG9vcFVucm9sbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5MEQ5QjEwNDEyRTExRENC
MDAyRDQyNTUgLyogZ2xzbGFuZ19sZXguY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTBEOUIxMDUx
MkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xhbmdfdGFiLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZC
MzlEMjc5MTIwMEYzNUEwMDA4OEU2OSAvKiBJbmZvU2luay5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGQjM5RDI3QjEyMDBGMzVBMDAwODhFNjkgLyogSW5pdGlhbGl6ZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlGQjM5RDI3RDEyMDBGMzVBMDAwODhFNjkgLyogSW5pdGlhbGl6ZURsbC5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTY3OSw3ICs3MjcsNiBAQAogCQkJCUZCMzlEMkE4MTIwMEYzNUEwMDA4
OEU2OSAvKiBTaGFkZXJMYW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZCMzlEMkFBMTIwMEYz
NUEwMDA4OEU2OSAvKiBTeW1ib2xUYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMjY0RjhD
MTE2OTc0REVEMDA2RkFBNUEgLyogVG9rZW4uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTI2NEY4
QzMxNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuaXplci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
MEFBQkU0ODEzQUZFOTYxMDBGMkVCRDEgLyogVHJhbnNsYXRvckVTU0wuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRkIzOUQyQUMxMjAwRjM1QTAwMDg4RTY5IC8qIFRyYW5zbGF0b3JHTFNMLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTkwRDlCMTEzMTJFMTFERDYwMDJENDI1NSAvKiB1dGlsLmNwcCBp
biBTb3VyY2VzICovLApAQCAtNjg3LDEyICs3MzQsNDUgQEAKIAkJCQk5MEQ5QjExNzEyRTExREQ2
MDAyRDQyNTUgLyogVmFyaWFibGVJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEyNjRGOEM5
MTY5NzRFMkEwMDZGQUE1QSAvKiBWYXJpYWJsZVBhY2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk5MEQ5QjExOTEyRTExREQ2MDAyRDQyNTUgLyogVmVyc2lvbkdMU0wuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNUM5RDgyOTYxNzk4QjFBMTAwN0UxNTg4IC8qIEV4cHJlc3Npb25QYXJzZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNUM5RDgyOTcxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xhbmdf
bGV4LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTVDOUQ4Mjk4MTc5OEIxQTEwMDdFMTU4OCAvKiBn
bHNsYW5nX3RhYi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1QzlEODI5QTE3OThCMUExMDA3RTE1
ODggLyogVG9rZW5pemVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwogLyogRW5kIFBCWFNvdXJjZXNCdWls
ZFBoYXNlIHNlY3Rpb24gKi8KIAorLyogQmVnaW4gUEJYVGFyZ2V0RGVwZW5kZW5jeSBzZWN0aW9u
ICovCisJCTVDOUQ4MkEyMTc5OEIxRTYwMDdFMTU4OCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICov
ID0geworCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdldCA9IDVDOUQ4MjlC
MTc5OEIxQ0QwMDdFMTU4OCAvKiBEZXJpdmVkIFNvdXJjZXMgKi87CisJCQl0YXJnZXRQcm94eSA9
IDVDOUQ4MkExMTc5OEIxRTYwMDdFMTU4OCAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CisJ
CX07CisvKiBFbmQgUEJYVGFyZ2V0RGVwZW5kZW5jeSBzZWN0aW9uICovCisKIC8qIEJlZ2luIFhD
QnVpbGRDb25maWd1cmF0aW9uIHNlY3Rpb24gKi8KKwkJNUM5RDgyOUQxNzk4QjFDRTAwN0UxNTg4
IC8qIERlYnVnICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQlidWls
ZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9
OworCQkJbmFtZSA9IERlYnVnOworCQl9OworCQk1QzlEODI5RTE3OThCMUNFMDA3RTE1ODggLyog
UmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYnVpbGRT
ZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsK
KwkJCW5hbWUgPSBSZWxlYXNlOworCQl9OworCQk1QzlEODI5RjE3OThCMUNFMDA3RTE1ODggLyog
UHJvZHVjdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYnVp
bGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJ
fTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQk1RDdDNTlEQjEyMDhDNkMzMDAxQzg3
M0UgLyogUHJvZHVjdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwog
CQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDdDNTlDNjEyMDhDNjhCMDAxQzg3M0Ug
LyogQmFzZS54Y2NvbmZpZyAqLzsKQEAgLTczOSw2ICs4MTksMTYgQEAKIC8qIEVuZCBYQ0J1aWxk
Q29uZmlndXJhdGlvbiBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFhDQ29uZmlndXJhdGlvbkxpc3Qg
c2VjdGlvbiAqLworCQk1QzlEODI5QzE3OThCMUNFMDA3RTE1ODggLyogQnVpbGQgY29uZmlndXJh
dGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi8gPSB7
CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9
ICgKKwkJCQk1QzlEODI5RDE3OThCMUNFMDA3RTE1ODggLyogRGVidWcgKi8sCisJCQkJNUM5RDgy
OUUxNzk4QjFDRTAwN0UxNTg4IC8qIFJlbGVhc2UgKi8sCisJCQkJNUM5RDgyOUYxNzk4QjFDRTAw
N0UxNTg4IC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25J
c1Zpc2libGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsK
KwkJfTsKIAkJRkIzOUQwNzMxMjAwRUQ5MjAwMDg4RTY5IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24g
bGlzdCBmb3IgUEJYUHJvamVjdCAiQU5HTEUiICovID0gewogCQkJaXNhID0gWENDb25maWd1cmF0
aW9uTGlzdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCkluZGV4OiBTb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvZ2xzbGFuZ19sZXguY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci9nbHNsYW5nX2xleC5jcHAJKHJldmlz
aW9uIDE1Mjg3MCkKKysrIFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL3NyYy9jb21waWxlci9nbHNs
YW5nX2xleC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEsMjk0MCArMCwwIEBACi0jbGluZSAxNyAi
Li9nbHNsYW5nLmwiCi0vLwotLy8gQ29weXJpZ2h0IChjKSAyMDEyIFRoZSBBTkdMRSBQcm9qZWN0
IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29k
ZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0vLyBmb3Vu
ZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLy8KLQotLy8gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJh
dGVkIGJ5IGdlbmVyYXRlX3BhcnNlci5zaC4gRE8gTk9UIEVESVQhCi0KLS8vIElnbm9yZSBlcnJv
cnMgaW4gYXV0by1nZW5lcmF0ZWQgY29kZS4KLSNpZiBkZWZpbmVkKF9fR05VQ19fKQotI3ByYWdt
YSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICItV3VudXNlZC1mdW5jdGlvbiIKLSNwcmFnbWEgR0ND
IGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVzZWQtdmFyaWFibGUiCi0jcHJhZ21hIEdDQyBkaWFn
bm9zdGljIGlnbm9yZWQgIi1Xc3dpdGNoLWVudW0iCi0jZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQot
I3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQwNjUpCi0jcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTog
NDE4OSkKLSNwcmFnbWEgd2FybmluZyhkaXNhYmxlOiA0NTA1KQotI3ByYWdtYSB3YXJuaW5nKGRp
c2FibGU6IDQ3MDEpCi0jZW5kaWYKLQotCi0KLSNsaW5lIDI1ICIuL2dsc2xhbmdfbGV4LmNwcCIK
LQotI2RlZmluZSAgWVlfSU5UX0FMSUdORUQgc2hvcnQgaW50Ci0KLS8qIEEgbGV4aWNhbCBzY2Fu
bmVyIGdlbmVyYXRlZCBieSBmbGV4ICovCi0KLSNkZWZpbmUgRkxFWF9TQ0FOTkVSCi0jZGVmaW5l
IFlZX0ZMRVhfTUFKT1JfVkVSU0lPTiAyCi0jZGVmaW5lIFlZX0ZMRVhfTUlOT1JfVkVSU0lPTiA1
Ci0jZGVmaW5lIFlZX0ZMRVhfU1VCTUlOT1JfVkVSU0lPTiAzNQotI2lmIFlZX0ZMRVhfU1VCTUlO
T1JfVkVSU0lPTiA+IDAKLSNkZWZpbmUgRkxFWF9CRVRBCi0jZW5kaWYKLQotLyogRmlyc3QsIHdl
IGRlYWwgd2l0aCAgcGxhdGZvcm0tc3BlY2lmaWMgb3IgY29tcGlsZXItc3BlY2lmaWMgaXNzdWVz
LiAqLwotCi0vKiBiZWdpbiBzdGFuZGFyZCBDIGhlYWRlcnMuICovCi0jaW5jbHVkZSA8c3RkaW8u
aD4KLSNpbmNsdWRlIDxzdHJpbmcuaD4KLSNpbmNsdWRlIDxlcnJuby5oPgotI2luY2x1ZGUgPHN0
ZGxpYi5oPgotCi0vKiBlbmQgc3RhbmRhcmQgQyBoZWFkZXJzLiAqLwotCi0vKiBmbGV4IGludGVn
ZXIgdHlwZSBkZWZpbml0aW9ucyAqLwotCi0jaWZuZGVmIEZMRVhJTlRfSAotI2RlZmluZSBGTEVY
SU5UX0gKLQotLyogQzk5IHN5c3RlbXMgaGF2ZSA8aW50dHlwZXMuaD4uIE5vbi1DOTkgc3lzdGVt
cyBtYXkgb3IgbWF5IG5vdC4gKi8KLQotI2lmIGRlZmluZWQgKF9fU1REQ19WRVJTSU9OX18pICYm
IF9fU1REQ19WRVJTSU9OX18gPj0gMTk5OTAxTAotCi0vKiBDOTkgc2F5cyB0byBkZWZpbmUgX19T
VERDX0xJTUlUX01BQ1JPUyBiZWZvcmUgaW5jbHVkaW5nIHN0ZGludC5oLAotICogaWYgeW91IHdh
bnQgdGhlIGxpbWl0IChtYXgvbWluKSBtYWNyb3MgZm9yIGludCB0eXBlcy4gCi0gKi8KLSNpZm5k
ZWYgX19TVERDX0xJTUlUX01BQ1JPUwotI2RlZmluZSBfX1NURENfTElNSVRfTUFDUk9TIDEKLSNl
bmRpZgotCi0jaW5jbHVkZSA8aW50dHlwZXMuaD4KLXR5cGVkZWYgaW50OF90IGZsZXhfaW50OF90
OwotdHlwZWRlZiB1aW50OF90IGZsZXhfdWludDhfdDsKLXR5cGVkZWYgaW50MTZfdCBmbGV4X2lu
dDE2X3Q7Ci10eXBlZGVmIHVpbnQxNl90IGZsZXhfdWludDE2X3Q7Ci10eXBlZGVmIGludDMyX3Qg
ZmxleF9pbnQzMl90OwotdHlwZWRlZiB1aW50MzJfdCBmbGV4X3VpbnQzMl90OwotdHlwZWRlZiB1
aW50NjRfdCBmbGV4X3VpbnQ2NF90OwotI2Vsc2UKLXR5cGVkZWYgc2lnbmVkIGNoYXIgZmxleF9p
bnQ4X3Q7Ci10eXBlZGVmIHNob3J0IGludCBmbGV4X2ludDE2X3Q7Ci10eXBlZGVmIGludCBmbGV4
X2ludDMyX3Q7Ci10eXBlZGVmIHVuc2lnbmVkIGNoYXIgZmxleF91aW50OF90OyAKLXR5cGVkZWYg
dW5zaWduZWQgc2hvcnQgaW50IGZsZXhfdWludDE2X3Q7Ci10eXBlZGVmIHVuc2lnbmVkIGludCBm
bGV4X3VpbnQzMl90OwotI2VuZGlmIC8qICEgQzk5ICovCi0KLS8qIExpbWl0cyBvZiBpbnRlZ3Jh
bCB0eXBlcy4gKi8KLSNpZm5kZWYgSU5UOF9NSU4KLSNkZWZpbmUgSU5UOF9NSU4gICAgICAgICAg
ICAgICAoLTEyOCkKLSNlbmRpZgotI2lmbmRlZiBJTlQxNl9NSU4KLSNkZWZpbmUgSU5UMTZfTUlO
ICAgICAgICAgICAgICAoLTMyNzY3LTEpCi0jZW5kaWYKLSNpZm5kZWYgSU5UMzJfTUlOCi0jZGVm
aW5lIElOVDMyX01JTiAgICAgICAgICAgICAgKC0yMTQ3NDgzNjQ3LTEpCi0jZW5kaWYKLSNpZm5k
ZWYgSU5UOF9NQVgKLSNkZWZpbmUgSU5UOF9NQVggICAgICAgICAgICAgICAoMTI3KQotI2VuZGlm
Ci0jaWZuZGVmIElOVDE2X01BWAotI2RlZmluZSBJTlQxNl9NQVggICAgICAgICAgICAgICgzMjc2
NykKLSNlbmRpZgotI2lmbmRlZiBJTlQzMl9NQVgKLSNkZWZpbmUgSU5UMzJfTUFYICAgICAgICAg
ICAgICAoMjE0NzQ4MzY0NykKLSNlbmRpZgotI2lmbmRlZiBVSU5UOF9NQVgKLSNkZWZpbmUgVUlO
VDhfTUFYICAgICAgICAgICAgICAoMjU1VSkKLSNlbmRpZgotI2lmbmRlZiBVSU5UMTZfTUFYCi0j
ZGVmaW5lIFVJTlQxNl9NQVggICAgICAgICAgICAgKDY1NTM1VSkKLSNlbmRpZgotI2lmbmRlZiBV
SU5UMzJfTUFYCi0jZGVmaW5lIFVJTlQzMl9NQVggICAgICAgICAgICAgKDQyOTQ5NjcyOTVVKQot
I2VuZGlmCi0KLSNlbmRpZiAvKiAhIEZMRVhJTlRfSCAqLwotCi0jaWZkZWYgX19jcGx1c3BsdXMK
LQotLyogVGhlICJjb25zdCIgc3RvcmFnZS1jbGFzcy1tb2RpZmllciBpcyB2YWxpZC4gKi8KLSNk
ZWZpbmUgWVlfVVNFX0NPTlNUCi0KLSNlbHNlCS8qICEgX19jcGx1c3BsdXMgKi8KLQotLyogQzk5
IHJlcXVpcmVzIF9fU1REQ19fIHRvIGJlIGRlZmluZWQgYXMgMS4gKi8KLSNpZiBkZWZpbmVkIChf
X1NURENfXykKLQotI2RlZmluZSBZWV9VU0VfQ09OU1QKLQotI2VuZGlmCS8qIGRlZmluZWQgKF9f
U1REQ19fKSAqLwotI2VuZGlmCS8qICEgX19jcGx1c3BsdXMgKi8KLQotI2lmZGVmIFlZX1VTRV9D
T05TVAotI2RlZmluZSB5eWNvbnN0IGNvbnN0Ci0jZWxzZQotI2RlZmluZSB5eWNvbnN0Ci0jZW5k
aWYKLQotLyogUmV0dXJuZWQgdXBvbiBlbmQtb2YtZmlsZS4gKi8KLSNkZWZpbmUgWVlfTlVMTCAw
Ci0KLS8qIFByb21vdGVzIGEgcG9zc2libHkgbmVnYXRpdmUsIHBvc3NpYmx5IHNpZ25lZCBjaGFy
IHRvIGFuIHVuc2lnbmVkCi0gKiBpbnRlZ2VyIGZvciB1c2UgYXMgYW4gYXJyYXkgaW5kZXguICBJ
ZiB0aGUgc2lnbmVkIGNoYXIgaXMgbmVnYXRpdmUsCi0gKiB3ZSB3YW50IHRvIGluc3RlYWQgdHJl
YXQgaXQgYXMgYW4gOC1iaXQgdW5zaWduZWQgY2hhciwgaGVuY2UgdGhlCi0gKiBkb3VibGUgY2Fz
dC4KLSAqLwotI2RlZmluZSBZWV9TQ19UT19VSShjKSAoKHVuc2lnbmVkIGludCkgKHVuc2lnbmVk
IGNoYXIpIGMpCi0KLS8qIEFuIG9wYXF1ZSBwb2ludGVyLiAqLwotI2lmbmRlZiBZWV9UWVBFREVG
X1lZX1NDQU5ORVJfVAotI2RlZmluZSBZWV9UWVBFREVGX1lZX1NDQU5ORVJfVAotdHlwZWRlZiB2
b2lkKiB5eXNjYW5fdDsKLSNlbmRpZgotCi0vKiBGb3IgY29udmVuaWVuY2UsIHRoZXNlIHZhcnMg
KHBsdXMgdGhlIGJpc29uIHZhcnMgZmFyIGJlbG93KQotICAgYXJlIG1hY3JvcyBpbiB0aGUgcmVl
bnRyYW50IHNjYW5uZXIuICovCi0jZGVmaW5lIHl5aW4geXlnLT55eWluX3IKLSNkZWZpbmUgeXlv
dXQgeXlnLT55eW91dF9yCi0jZGVmaW5lIHl5ZXh0cmEgeXlnLT55eWV4dHJhX3IKLSNkZWZpbmUg
eXlsZW5nIHl5Zy0+eXlsZW5nX3IKLSNkZWZpbmUgeXl0ZXh0IHl5Zy0+eXl0ZXh0X3IKLSNkZWZp
bmUgeXlsaW5lbm8gKFlZX0NVUlJFTlRfQlVGRkVSX0xWQUxVRS0+eXlfYnNfbGluZW5vKQotI2Rl
ZmluZSB5eWNvbHVtbiAoWVlfQ1VSUkVOVF9CVUZGRVJfTFZBTFVFLT55eV9ic19jb2x1bW4pCi0j
ZGVmaW5lIHl5X2ZsZXhfZGVidWcgeXlnLT55eV9mbGV4X2RlYnVnX3IKLQotLyogRW50ZXIgYSBz
dGFydCBjb25kaXRpb24uICBUaGlzIG1hY3JvIHJlYWxseSBvdWdodCB0byB0YWtlIGEgcGFyYW1l
dGVyLAotICogYnV0IHdlIGRvIGl0IHRoZSBkaXNndXN0aW5nIGNydWZ0eSB3YXkgZm9yY2VkIG9u
IHVzIGJ5IHRoZSAoKS1sZXNzCi0gKiBkZWZpbml0aW9uIG9mIEJFR0lOLgotICovCi0jZGVmaW5l
IEJFR0lOIHl5Zy0+eXlfc3RhcnQgPSAxICsgMiAqCi0KLS8qIFRyYW5zbGF0ZSB0aGUgY3VycmVu
dCBzdGFydCBzdGF0ZSBpbnRvIGEgdmFsdWUgdGhhdCBjYW4gYmUgbGF0ZXIgaGFuZGVkCi0gKiB0
byBCRUdJTiB0byByZXR1cm4gdG8gdGhlIHN0YXRlLiAgVGhlIFlZU1RBVEUgYWxpYXMgaXMgZm9y
IGxleAotICogY29tcGF0aWJpbGl0eS4KLSAqLwotI2RlZmluZSBZWV9TVEFSVCAoKHl5Zy0+eXlf
c3RhcnQgLSAxKSAvIDIpCi0jZGVmaW5lIFlZU1RBVEUgWVlfU1RBUlQKLQotLyogQWN0aW9uIG51
bWJlciBmb3IgRU9GIHJ1bGUgb2YgYSBnaXZlbiBzdGFydCBzdGF0ZS4gKi8KLSNkZWZpbmUgWVlf
U1RBVEVfRU9GKHN0YXRlKSAoWVlfRU5EX09GX0JVRkZFUiArIHN0YXRlICsgMSkKLQotLyogU3Bl
Y2lhbCBhY3Rpb24gbWVhbmluZyAic3RhcnQgcHJvY2Vzc2luZyBhIG5ldyBmaWxlIi4gKi8KLSNk
ZWZpbmUgWVlfTkVXX0ZJTEUgeXlyZXN0YXJ0KHl5aW4gLHl5c2Nhbm5lciApCi0KLSNkZWZpbmUg
WVlfRU5EX09GX0JVRkZFUl9DSEFSIDAKLQotLyogU2l6ZSBvZiBkZWZhdWx0IGlucHV0IGJ1ZmZl
ci4gKi8KLSNpZm5kZWYgWVlfQlVGX1NJWkUKLSNkZWZpbmUgWVlfQlVGX1NJWkUgMTYzODQKLSNl
bmRpZgotCi0vKiBUaGUgc3RhdGUgYnVmIG11c3QgYmUgbGFyZ2UgZW5vdWdoIHRvIGhvbGQgb25l
IHN0YXRlIHBlciBjaGFyYWN0ZXIgaW4gdGhlIG1haW4gYnVmZmVyLgotICovCi0jZGVmaW5lIFlZ
X1NUQVRFX0JVRl9TSVpFICAgKChZWV9CVUZfU0laRSArIDIpICogc2l6ZW9mKHl5X3N0YXRlX3R5
cGUpKQotCi0jaWZuZGVmIFlZX1RZUEVERUZfWVlfQlVGRkVSX1NUQVRFCi0jZGVmaW5lIFlZX1RZ
UEVERUZfWVlfQlVGRkVSX1NUQVRFCi10eXBlZGVmIHN0cnVjdCB5eV9idWZmZXJfc3RhdGUgKllZ
X0JVRkZFUl9TVEFURTsKLSNlbmRpZgotCi0jaWZuZGVmIFlZX1RZUEVERUZfWVlfU0laRV9UCi0j
ZGVmaW5lIFlZX1RZUEVERUZfWVlfU0laRV9UCi10eXBlZGVmIHNpemVfdCB5eV9zaXplX3Q7Ci0j
ZW5kaWYKLQotI2RlZmluZSBFT0JfQUNUX0NPTlRJTlVFX1NDQU4gMAotI2RlZmluZSBFT0JfQUNU
X0VORF9PRl9GSUxFIDEKLSNkZWZpbmUgRU9CX0FDVF9MQVNUX01BVENIIDIKLQotICAgIC8qIE5v
dGU6IFdlIHNwZWNpZmljYWxseSBvbWl0IHRoZSB0ZXN0IGZvciB5eV9ydWxlX2Nhbl9tYXRjaF9l
b2wgYmVjYXVzZSBpdCByZXF1aXJlcwotICAgICAqICAgICAgIGFjY2VzcyB0byB0aGUgbG9jYWwg
dmFyaWFibGUgeXlfYWN0LiBTaW5jZSB5eWxlc3MoKSBpcyBhIG1hY3JvLCBpdCB3b3VsZCBicmVh
awotICAgICAqICAgICAgIGV4aXN0aW5nIHNjYW5uZXJzIHRoYXQgY2FsbCB5eWxlc3MoKSBmcm9t
IE9VVFNJREUgeXlsZXguIAotICAgICAqICAgICAgIE9uZSBvYnZpb3VzIHNvbHV0aW9uIGl0IHRv
IG1ha2UgeXlfYWN0IGEgZ2xvYmFsLiBJIHRyaWVkIHRoYXQsIGFuZCBzYXcKLSAgICAgKiAgICAg
ICBhIDUlIHBlcmZvcm1hbmNlIGhpdCBpbiBhIG5vbi15eWxpbmVubyBzY2FubmVyLCBiZWNhdXNl
IHl5X2FjdCBpcwotICAgICAqICAgICAgIG5vcm1hbGx5IGRlY2xhcmVkIGFzIGEgcmVnaXN0ZXIg
dmFyaWFibGUtLSBzbyBpdCBpcyBub3Qgd29ydGggaXQuCi0gICAgICovCi0gICAgI2RlZmluZSAg
WVlfTEVTU19MSU5FTk8obikgXAotICAgICAgICAgICAgZG8geyBcCi0gICAgICAgICAgICAgICAg
eXlfc2l6ZV90IHl5bDtcCi0gICAgICAgICAgICAgICAgZm9yICggeXlsID0gbjsgeXlsIDwgeXls
ZW5nOyArK3l5bCApXAotICAgICAgICAgICAgICAgICAgICBpZiAoIHl5dGV4dFt5eWxdID09ICdc
bicgKVwKLSAgICAgICAgICAgICAgICAgICAgICAgIC0teXlsaW5lbm87XAotICAgICAgICAgICAg
fXdoaWxlKDApCi0gICAgCi0vKiBSZXR1cm4gYWxsIGJ1dCB0aGUgZmlyc3QgIm4iIG1hdGNoZWQg
Y2hhcmFjdGVycyBiYWNrIHRvIHRoZSBpbnB1dCBzdHJlYW0uICovCi0jZGVmaW5lIHl5bGVzcyhu
KSBcCi0JZG8gXAotCQl7IFwKLQkJLyogVW5kbyBlZmZlY3RzIG9mIHNldHRpbmcgdXAgeXl0ZXh0
LiAqLyBcCi0gICAgICAgIGludCB5eWxlc3NfbWFjcm9fYXJnID0gKG4pOyBcCi0gICAgICAgIFlZ
X0xFU1NfTElORU5PKHl5bGVzc19tYWNyb19hcmcpO1wKLQkJKnl5X2NwID0geXlnLT55eV9ob2xk
X2NoYXI7IFwKLQkJWVlfUkVTVE9SRV9ZWV9NT1JFX09GRlNFVCBcCi0JCXl5Zy0+eXlfY19idWZf
cCA9IHl5X2NwID0geXlfYnAgKyB5eWxlc3NfbWFjcm9fYXJnIC0gWVlfTU9SRV9BREo7IFwKLQkJ
WVlfRE9fQkVGT1JFX0FDVElPTjsgLyogc2V0IHVwIHl5dGV4dCBhZ2FpbiAqLyBcCi0JCX0gXAot
CXdoaWxlICggMCApCi0KLSNkZWZpbmUgdW5wdXQoYykgeXl1bnB1dCggYywgeXlnLT55eXRleHRf
cHRyICwgeXlzY2FubmVyICkKLQotI2lmbmRlZiBZWV9TVFJVQ1RfWVlfQlVGRkVSX1NUQVRFCi0j
ZGVmaW5lIFlZX1NUUlVDVF9ZWV9CVUZGRVJfU1RBVEUKLXN0cnVjdCB5eV9idWZmZXJfc3RhdGUK
LQl7Ci0JRklMRSAqeXlfaW5wdXRfZmlsZTsKLQotCWNoYXIgKnl5X2NoX2J1ZjsJCS8qIGlucHV0
IGJ1ZmZlciAqLwotCWNoYXIgKnl5X2J1Zl9wb3M7CQkvKiBjdXJyZW50IHBvc2l0aW9uIGluIGlu
cHV0IGJ1ZmZlciAqLwotCi0JLyogU2l6ZSBvZiBpbnB1dCBidWZmZXIgaW4gYnl0ZXMsIG5vdCBp
bmNsdWRpbmcgcm9vbSBmb3IgRU9CCi0JICogY2hhcmFjdGVycy4KLQkgKi8KLQl5eV9zaXplX3Qg
eXlfYnVmX3NpemU7Ci0KLQkvKiBOdW1iZXIgb2YgY2hhcmFjdGVycyByZWFkIGludG8geXlfY2hf
YnVmLCBub3QgaW5jbHVkaW5nIEVPQgotCSAqIGNoYXJhY3RlcnMuCi0JICovCi0JeXlfc2l6ZV90
IHl5X25fY2hhcnM7Ci0KLQkvKiBXaGV0aGVyIHdlICJvd24iIHRoZSBidWZmZXIgLSBpLmUuLCB3
ZSBrbm93IHdlIGNyZWF0ZWQgaXQsCi0JICogYW5kIGNhbiByZWFsbG9jKCkgaXQgdG8gZ3JvdyBp
dCwgYW5kIHNob3VsZCBmcmVlKCkgaXQgdG8KLQkgKiBkZWxldGUgaXQuCi0JICovCi0JaW50IHl5
X2lzX291cl9idWZmZXI7Ci0KLQkvKiBXaGV0aGVyIHRoaXMgaXMgYW4gImludGVyYWN0aXZlIiBp
bnB1dCBzb3VyY2U7IGlmIHNvLCBhbmQKLQkgKiBpZiB3ZSdyZSB1c2luZyBzdGRpbyBmb3IgaW5w
dXQsIHRoZW4gd2Ugd2FudCB0byB1c2UgZ2V0YygpCi0JICogaW5zdGVhZCBvZiBmcmVhZCgpLCB0
byBtYWtlIHN1cmUgd2Ugc3RvcCBmZXRjaGluZyBpbnB1dCBhZnRlcgotCSAqIGVhY2ggbmV3bGlu
ZS4KLQkgKi8KLQlpbnQgeXlfaXNfaW50ZXJhY3RpdmU7Ci0KLQkvKiBXaGV0aGVyIHdlJ3JlIGNv
bnNpZGVyZWQgdG8gYmUgYXQgdGhlIGJlZ2lubmluZyBvZiBhIGxpbmUuCi0JICogSWYgc28sICde
JyBydWxlcyB3aWxsIGJlIGFjdGl2ZSBvbiB0aGUgbmV4dCBtYXRjaCwgb3RoZXJ3aXNlCi0JICog
bm90LgotCSAqLwotCWludCB5eV9hdF9ib2w7Ci0KLSAgICBpbnQgeXlfYnNfbGluZW5vOyAvKio8
IFRoZSBsaW5lIGNvdW50LiAqLwotICAgIGludCB5eV9ic19jb2x1bW47IC8qKjwgVGhlIGNvbHVt
biBjb3VudC4gKi8KLSAgICAKLQkvKiBXaGV0aGVyIHRvIHRyeSB0byBmaWxsIHRoZSBpbnB1dCBi
dWZmZXIgd2hlbiB3ZSByZWFjaCB0aGUKLQkgKiBlbmQgb2YgaXQuCi0JICovCi0JaW50IHl5X2Zp
bGxfYnVmZmVyOwotCi0JaW50IHl5X2J1ZmZlcl9zdGF0dXM7Ci0KLSNkZWZpbmUgWVlfQlVGRkVS
X05FVyAwCi0jZGVmaW5lIFlZX0JVRkZFUl9OT1JNQUwgMQotCS8qIFdoZW4gYW4gRU9GJ3MgYmVl
biBzZWVuIGJ1dCB0aGVyZSdzIHN0aWxsIHNvbWUgdGV4dCB0byBwcm9jZXNzCi0JICogdGhlbiB3
ZSBtYXJrIHRoZSBidWZmZXIgYXMgWVlfRU9GX1BFTkRJTkcsIHRvIGluZGljYXRlIHRoYXQgd2UK
LQkgKiBzaG91bGRuJ3QgdHJ5IHJlYWRpbmcgZnJvbSB0aGUgaW5wdXQgc291cmNlIGFueSBtb3Jl
LiAgV2UgbWlnaHQKLQkgKiBzdGlsbCBoYXZlIGEgYnVuY2ggb2YgdG9rZW5zIHRvIG1hdGNoLCB0
aG91Z2gsIGJlY2F1c2Ugb2YKLQkgKiBwb3NzaWJsZSBiYWNraW5nLXVwLgotCSAqCi0JICogV2hl
biB3ZSBhY3R1YWxseSBzZWUgdGhlIEVPRiwgd2UgY2hhbmdlIHRoZSBzdGF0dXMgdG8gIm5ldyIK
LQkgKiAodmlhIHl5cmVzdGFydCgpKSwgc28gdGhhdCB0aGUgdXNlciBjYW4gY29udGludWUgc2Nh
bm5pbmcgYnkKLQkgKiBqdXN0IHBvaW50aW5nIHl5aW4gYXQgYSBuZXcgaW5wdXQgZmlsZS4KLQkg
Ki8KLSNkZWZpbmUgWVlfQlVGRkVSX0VPRl9QRU5ESU5HIDIKLQotCX07Ci0jZW5kaWYgLyogIVlZ
X1NUUlVDVF9ZWV9CVUZGRVJfU1RBVEUgKi8KLQotLyogV2UgcHJvdmlkZSBtYWNyb3MgZm9yIGFj
Y2Vzc2luZyBidWZmZXIgc3RhdGVzIGluIGNhc2UgaW4gdGhlCi0gKiBmdXR1cmUgd2Ugd2FudCB0
byBwdXQgdGhlIGJ1ZmZlciBzdGF0ZXMgaW4gYSBtb3JlIGdlbmVyYWwKLSAqICJzY2FubmVyIHN0
YXRlIi4KLSAqCi0gKiBSZXR1cm5zIHRoZSB0b3Agb2YgdGhlIHN0YWNrLCBvciBOVUxMLgotICov
Ci0jZGVmaW5lIFlZX0NVUlJFTlRfQlVGRkVSICggeXlnLT55eV9idWZmZXJfc3RhY2sgXAotICAg
ICAgICAgICAgICAgICAgICAgICAgICA/IHl5Zy0+eXlfYnVmZmVyX3N0YWNrW3l5Zy0+eXlfYnVm
ZmVyX3N0YWNrX3RvcF0gXAotICAgICAgICAgICAgICAgICAgICAgICAgICA6IE5VTEwpCi0KLS8q
IFNhbWUgYXMgcHJldmlvdXMgbWFjcm8sIGJ1dCB1c2VmdWwgd2hlbiB3ZSBrbm93IHRoYXQgdGhl
IGJ1ZmZlciBzdGFjayBpcyBub3QKLSAqIE5VTEwgb3Igd2hlbiB3ZSBuZWVkIGFuIGx2YWx1ZS4g
Rm9yIGludGVybmFsIHVzZSBvbmx5LgotICovCi0jZGVmaW5lIFlZX0NVUlJFTlRfQlVGRkVSX0xW
QUxVRSB5eWctPnl5X2J1ZmZlcl9zdGFja1t5eWctPnl5X2J1ZmZlcl9zdGFja190b3BdCi0KLXZv
aWQgeXlyZXN0YXJ0IChGSUxFICppbnB1dF9maWxlICx5eXNjYW5fdCB5eXNjYW5uZXIgKTsKLXZv
aWQgeXlfc3dpdGNoX3RvX2J1ZmZlciAoWVlfQlVGRkVSX1NUQVRFIG5ld19idWZmZXIgLHl5c2Nh
bl90IHl5c2Nhbm5lciApOwotWVlfQlVGRkVSX1NUQVRFIHl5X2NyZWF0ZV9idWZmZXIgKEZJTEUg
KmZpbGUsaW50IHNpemUgLHl5c2Nhbl90IHl5c2Nhbm5lciApOwotdm9pZCB5eV9kZWxldGVfYnVm
ZmVyIChZWV9CVUZGRVJfU1RBVEUgYiAseXlzY2FuX3QgeXlzY2FubmVyICk7Ci12b2lkIHl5X2Zs
dXNoX2J1ZmZlciAoWVlfQlVGRkVSX1NUQVRFIGIgLHl5c2Nhbl90IHl5c2Nhbm5lciApOwotdm9p
ZCB5eXB1c2hfYnVmZmVyX3N0YXRlIChZWV9CVUZGRVJfU1RBVEUgbmV3X2J1ZmZlciAseXlzY2Fu
X3QgeXlzY2FubmVyICk7Ci12b2lkIHl5cG9wX2J1ZmZlcl9zdGF0ZSAoeXlzY2FuX3QgeXlzY2Fu
bmVyICk7Ci0KLXN0YXRpYyB2b2lkIHl5ZW5zdXJlX2J1ZmZlcl9zdGFjayAoeXlzY2FuX3QgeXlz
Y2FubmVyICk7Ci1zdGF0aWMgdm9pZCB5eV9sb2FkX2J1ZmZlcl9zdGF0ZSAoeXlzY2FuX3QgeXlz
Y2FubmVyICk7Ci1zdGF0aWMgdm9pZCB5eV9pbml0X2J1ZmZlciAoWVlfQlVGRkVSX1NUQVRFIGIs
RklMRSAqZmlsZSAseXlzY2FuX3QgeXlzY2FubmVyICk7Ci0KLSNkZWZpbmUgWVlfRkxVU0hfQlVG
RkVSIHl5X2ZsdXNoX2J1ZmZlcihZWV9DVVJSRU5UX0JVRkZFUiAseXlzY2FubmVyKQotCi1ZWV9C
VUZGRVJfU1RBVEUgeXlfc2Nhbl9idWZmZXIgKGNoYXIgKmJhc2UseXlfc2l6ZV90IHNpemUgLHl5
c2Nhbl90IHl5c2Nhbm5lciApOwotWVlfQlVGRkVSX1NUQVRFIHl5X3NjYW5fc3RyaW5nICh5eWNv
bnN0IGNoYXIgKnl5X3N0ciAseXlzY2FuX3QgeXlzY2FubmVyICk7Ci1ZWV9CVUZGRVJfU1RBVEUg
eXlfc2Nhbl9ieXRlcyAoeXljb25zdCBjaGFyICpieXRlcyx5eV9zaXplX3QgbGVuICx5eXNjYW5f
dCB5eXNjYW5uZXIgKTsKLQotdm9pZCAqeXlhbGxvYyAoeXlfc2l6ZV90ICx5eXNjYW5fdCB5eXNj
YW5uZXIgKTsKLXZvaWQgKnl5cmVhbGxvYyAodm9pZCAqLHl5X3NpemVfdCAseXlzY2FuX3QgeXlz
Y2FubmVyICk7Ci12b2lkIHl5ZnJlZSAodm9pZCAqICx5eXNjYW5fdCB5eXNjYW5uZXIgKTsKLQot
I2RlZmluZSB5eV9uZXdfYnVmZmVyIHl5X2NyZWF0ZV9idWZmZXIKLQotI2RlZmluZSB5eV9zZXRf
aW50ZXJhY3RpdmUoaXNfaW50ZXJhY3RpdmUpIFwKLQl7IFwKLQlpZiAoICEgWVlfQ1VSUkVOVF9C
VUZGRVIgKXsgXAotICAgICAgICB5eWVuc3VyZV9idWZmZXJfc3RhY2sgKHl5c2Nhbm5lcik7IFwK
LQkJWVlfQ1VSUkVOVF9CVUZGRVJfTFZBTFVFID0gICAgXAotICAgICAgICAgICAgeXlfY3JlYXRl
X2J1ZmZlcih5eWluLFlZX0JVRl9TSVpFICx5eXNjYW5uZXIpOyBcCi0JfSBcCi0JWVlfQ1VSUkVO
VF9CVUZGRVJfTFZBTFVFLT55eV9pc19pbnRlcmFjdGl2ZSA9IGlzX2ludGVyYWN0aXZlOyBcCi0J
fQotCi0jZGVmaW5lIHl5X3NldF9ib2woYXRfYm9sKSBcCi0JeyBcCi0JaWYgKCAhIFlZX0NVUlJF
TlRfQlVGRkVSICl7XAotICAgICAgICB5eWVuc3VyZV9idWZmZXJfc3RhY2sgKHl5c2Nhbm5lcik7
IFwKLQkJWVlfQ1VSUkVOVF9CVUZGRVJfTFZBTFVFID0gICAgXAotICAgICAgICAgICAgeXlfY3Jl
YXRlX2J1ZmZlcih5eWluLFlZX0JVRl9TSVpFICx5eXNjYW5uZXIpOyBcCi0JfSBcCi0JWVlfQ1VS
UkVOVF9CVUZGRVJfTFZBTFVFLT55eV9hdF9ib2wgPSBhdF9ib2w7IFwKLQl9Ci0KLSNkZWZpbmUg
WVlfQVRfQk9MKCkgKFlZX0NVUlJFTlRfQlVGRkVSX0xWQUxVRS0+eXlfYXRfYm9sKQotCi0vKiBC
ZWdpbiB1c2VyIHNlY3QzICovCi0KLSNkZWZpbmUgeXl3cmFwKG4pIDEKLSNkZWZpbmUgWVlfU0tJ
UF9ZWVdSQVAKLQotdHlwZWRlZiB1bnNpZ25lZCBjaGFyIFlZX0NIQVI7Ci0KLXR5cGVkZWYgaW50
IHl5X3N0YXRlX3R5cGU7Ci0KLSNkZWZpbmUgeXl0ZXh0X3B0ciB5eXRleHRfcgotCi1zdGF0aWMg
eXlfc3RhdGVfdHlwZSB5eV9nZXRfcHJldmlvdXNfc3RhdGUgKHl5c2Nhbl90IHl5c2Nhbm5lciAp
Owotc3RhdGljIHl5X3N0YXRlX3R5cGUgeXlfdHJ5X05VTF90cmFucyAoeXlfc3RhdGVfdHlwZSBj
dXJyZW50X3N0YXRlICAseXlzY2FuX3QgeXlzY2FubmVyKTsKLXN0YXRpYyBpbnQgeXlfZ2V0X25l
eHRfYnVmZmVyICh5eXNjYW5fdCB5eXNjYW5uZXIgKTsKLXN0YXRpYyB2b2lkIHl5X2ZhdGFsX2Vy
cm9yICh5eWNvbnN0IGNoYXIgbXNnW10gLHl5c2Nhbl90IHl5c2Nhbm5lciApOwotCi0vKiBEb25l
IGFmdGVyIHRoZSBjdXJyZW50IHBhdHRlcm4gaGFzIGJlZW4gbWF0Y2hlZCBhbmQgYmVmb3JlIHRo
ZQotICogY29ycmVzcG9uZGluZyBhY3Rpb24gLSBzZXRzIHVwIHl5dGV4dC4KLSAqLwotI2RlZmlu
ZSBZWV9ET19CRUZPUkVfQUNUSU9OIFwKLQl5eWctPnl5dGV4dF9wdHIgPSB5eV9icDsgXAotCXl5
bGVuZyA9ICh5eV9zaXplX3QpICh5eV9jcCAtIHl5X2JwKTsgXAotCXl5Zy0+eXlfaG9sZF9jaGFy
ID0gKnl5X2NwOyBcCi0JKnl5X2NwID0gJ1wwJzsgXAotCXl5Zy0+eXlfY19idWZfcCA9IHl5X2Nw
OwotCi0jZGVmaW5lIFlZX05VTV9SVUxFUyAxNDcKLSNkZWZpbmUgWVlfRU5EX09GX0JVRkZFUiAx
NDgKLS8qIFRoaXMgc3RydWN0IGlzIG5vdCB1c2VkIGluIHRoaXMgc2Nhbm5lciwKLSAgIGJ1dCBp
dHMgcHJlc2VuY2UgaXMgbmVjZXNzYXJ5LiAqLwotc3RydWN0IHl5X3RyYW5zX2luZm8KLQl7Ci0J
ZmxleF9pbnQzMl90IHl5X3ZlcmlmeTsKLQlmbGV4X2ludDMyX3QgeXlfbnh0OwotCX07Ci1zdGF0
aWMgeXljb25zdCBmbGV4X2ludDE2X3QgeXlfYWNjZXB0WzQ0M10gPQotICAgIHsgICAwLAotICAg
ICAgICAwLCAgICAwLCAgMTQ4LCAgMTQ2LCAgMTQ1LCAgMTQ1LCAgMTMyLCAgMTM4LCAgMTQzLCAg
MTI3LAotICAgICAgMTI4LCAgMTM2LCAgMTM1LCAgMTI0LCAgMTMzLCAgMTMxLCAgMTM3LCAgIDk2
LCAgIDk2LCAgMTI1LAotICAgICAgMTIxLCAgMTM5LCAgMTI2LCAgMTQwLCAgMTQ0LCAgIDkzLCAg
MTI5LCAgMTMwLCAgMTQyLCAgIDkzLAotICAgICAgIDkzLCAgIDkzLCAgIDkzLCAgIDkzLCAgIDkz
LCAgIDkzLCAgIDkzLCAgIDkzLCAgIDkzLCAgIDkzLAotICAgICAgIDkzLCAgIDkzLCAgIDkzLCAg
IDkzLCAgIDkzLCAgIDkzLCAgIDkzLCAgIDkzLCAgIDkzLCAgMTIyLAotICAgICAgMTQxLCAgMTIz
LCAgMTM0LCAgMTE4LCAgMTA0LCAgMTIzLCAgMTEyLCAgMTA3LCAgMTAyLCAgMTEwLAotICAgICAg
MTAwLCAgMTExLCAgMTAxLCAgIDk5LCAgMTAzLCAgIDk4LCAgIDk1LCAgIDk2LCAgICAwLCAgICAw
LAotICAgICAgMTMwLCAgMTIyLCAgMTI5LCAgMTE5LCAgMTE1LCAgMTE3LCAgMTE2LCAgMTIwLCAg
IDkzLCAgMTA4LAotICAgICAgMTE0LCAgIDkzLCAgIDkzLCAgIDkzLCAgIDkzLCAgIDkzLCAgIDkz
LCAgIDkzLCAgIDkzLCAgIDkzLAotICAgICAgIDkzLCAgIDEyLCAgIDkzLCAgIDkzLCAgIDkzLCAg
IDkzLCAgIDkzLCAgIDkzLCAgIDkzLCAgIDkzLAotCi0gICAgICAgOTMsICAgOTMsICAgOTMsICAg
OTMsICAgOTMsICAgMTUsICAgMTcsICAgOTMsICAgOTMsICAgOTMsCi0gICAgICAgOTMsICAgOTMs
ICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsCi0gICAgICAg
OTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMs
Ci0gICAgICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAxMDksICAxMTMsICAgIDAsICAgOTgsICAg
IDAsICAgIDAsCi0gICAgICAgOTcsICAgOTQsICAxMDUsICAxMDYsICAgNDUsICAgOTMsICAgOTMs
ICAgOTMsICAgOTMsICAgOTMsCi0gICAgICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAg
OTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsCi0gICAgICAgOTMsICAgOTMsICAgOTMsICAgMTMs
ICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsCi0gICAgICAgOTMsICAgOTMsICAg
MjEsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsCi0gICAgICAgOTMs
ICAgMTgsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsCi0g
ICAgICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMs
ICAgOTMsCi0KLSAgICAgICA5MywgICA5MywgICA5MywgICA5MywgICA5MywgICAgMCwgICA5OSwg
ICAgMCwgICA5OCwgICA5MywKLSAgICAgICAyMywgICA5MywgICA5MywgICA5MCwgICA5MywgICA5
MywgICA5MywgICA5MywgICA5MywgICA5MywKLSAgICAgICA5MywgICAxNiwgICA0OCwgICA5Mywg
ICA5MywgICA5MywgICA2NCwgICA5MywgICA5MywgICA1MywKLSAgICAgICA2OCwgICA5MywgICA5
MywgICA5MywgICA5MywgICA5MywgICA5MywgICA5MywgICA5MywgICA2NSwKLSAgICAgICAgNCwg
ICAyOCwgICAyOSwgICAzMCwgICA5MywgICA5MywgICA5MywgICA5MywgICA5MywgICA5MywKLSAg
ICAgICA5MywgICA5MywgICA5MywgICA5MywgICA5MywgICA5MywgICA5MywgICA5MywgICA5Mywg
ICA5MywKLSAgICAgICA1MSwgICAyNCwgICA5MywgICA5MywgICA5MywgICA5MywgICA5MywgICA5
MywgICAzMSwgICAzMiwKLSAgICAgICAzMywgICAyMiwgICA5MywgICA5MywgICA5MywgICAxMCwg
ICAzNywgICAzOCwgICAzOSwgICA0NiwKLSAgICAgICAgNywgICA5MywgICA5MywgICA5MywgICA5
MywgICA3NywgICA3OCwgICA3OSwgICA5MywgICAyNSwKLSAgICAgICA2OSwgICAyMCwgICA4MCwg
ICA4MSwgICA4MiwgICAgMiwgICA3NCwgICA3NSwgICA3NiwgICA5MywKLQotICAgICAgIDE5LCAg
IDcyLCAgIDkzLCAgIDkzLCAgIDM0LCAgIDM1LCAgIDM2LCAgIDkzLCAgIDkzLCAgIDkzLAotICAg
ICAgIDkzLCAgIDkzLCAgIDkzLCAgIDkzLCAgIDkzLCAgIDkzLCAgIDY2LCAgIDkzLCAgIDkzLCAg
IDkzLAotICAgICAgIDkzLCAgIDkzLCAgIDkzLCAgIDkzLCAgIDkzLCAgIDQ3LCAgIDkzLCAgIDky
LCAgIDkzLCAgIDkzLAotICAgICAgIDE0LCAgIDkzLCAgIDkzLCAgIDkzLCAgIDkzLCAgIDY3LCAg
IDYxLCAgIDU2LCAgIDkzLCAgIDkzLAotICAgICAgIDkzLCAgIDkzLCAgIDkzLCAgIDczLCAgIDUy
LCAgIDkzLCAgIDU5LCAgIDI3LCAgIDkzLCAgIDg5LAotICAgICAgIDYwLCAgIDQ0LCAgIDcxLCAg
IDU0LCAgIDkzLCAgIDkzLCAgIDkzLCAgIDkzLCAgIDkzLCAgIDkzLAotICAgICAgIDkzLCAgIDkz
LCAgIDU1LCAgIDI2LCAgIDkzLCAgIDkzLCAgIDkzLCAgICAzLCAgIDkzLCAgIDkzLAotICAgICAg
IDkzLCAgIDkzLCAgIDkzLCAgIDQ5LCAgICA4LCAgIDkzLCAgICA5LCAgIDkzLCAgIDkzLCAgIDEx
LAotICAgICAgIDYyLCAgIDkzLCAgIDkzLCAgIDkzLCAgIDU3LCAgIDkzLCAgIDkzLCAgIDkzLCAg
IDkzLCAgIDkzLAotICAgICAgIDkzLCAgIDUwLCAgIDcwLCAgIDU4LCAgICA2LCAgIDYzLCAgICAx
LCAgIDkxLCAgICA1LCAgIDgzLAotCi0gICAgICAgNDAsICAgODQsICAgOTMsICAgOTMsICAgOTMs
ICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsCi0gICAgICAgOTMsICAgOTMsICAgOTMsICAg
OTMsICAgNDEsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsCi0gICAgICAgOTMsICAgOTMs
ICAgNDMsICAgOTMsICAgODcsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsCi0gICAgICAg
ODUsICAgOTMsICAgODYsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgOTMsICAgNDIs
Ci0gICAgICAgODgsICAgIDAKLSAgICB9IDsKLQotc3RhdGljIHl5Y29uc3QgZmxleF9pbnQzMl90
IHl5X2VjWzI1Nl0gPQotICAgIHsgICAwLAotICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg
ICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAyLCAgICAzLAotICAgICAgICAyLCAgICAyLCAgICAy
LCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLAotICAgICAgICAxLCAg
ICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLAotICAg
ICAgICAxLCAgICAyLCAgICA0LCAgICAxLCAgICAxLCAgICAxLCAgICA1LCAgICA2LCAgICAxLCAg
ICA3LAotICAgICAgICA4LCAgICA5LCAgIDEwLCAgIDExLCAgIDEyLCAgIDEzLCAgIDE0LCAgIDE1
LCAgIDE2LCAgIDE3LAotICAgICAgIDE4LCAgIDE5LCAgIDIwLCAgIDIwLCAgIDIwLCAgIDIxLCAg
IDIxLCAgIDIyLCAgIDIzLCAgIDI0LAotICAgICAgIDI1LCAgIDI2LCAgIDI3LCAgICAxLCAgIDI4
LCAgIDI4LCAgIDI5LCAgIDMwLCAgIDMxLCAgIDI4LAotICAgICAgIDMyLCAgIDMyLCAgIDMyLCAg
IDMyLCAgIDMyLCAgIDMyLCAgIDMyLCAgIDMyLCAgIDMzLCAgIDMyLAotICAgICAgIDMyLCAgIDM0
LCAgIDM1LCAgIDMyLCAgIDMyLCAgIDMyLCAgIDMyLCAgIDM2LCAgIDMyLCAgIDMyLAotICAgICAg
IDM3LCAgICAxLCAgIDM4LCAgIDM5LCAgIDMyLCAgICAxLCAgIDQwLCAgIDQxLCAgIDQyLCAgIDQz
LAotCi0gICAgICAgNDQsICAgNDUsICAgNDYsICAgNDcsICAgNDgsICAgMzIsICAgNDksICAgNTAs
ICAgNTEsICAgNTIsCi0gICAgICAgNTMsICAgNTQsICAgMzIsICAgNTUsICAgNTYsICAgNTcsICAg
NTgsICAgNTksICAgNjAsICAgNjEsCi0gICAgICAgNjIsICAgNjMsICAgNjQsICAgNjUsICAgNjYs
ICAgNjcsICAgIDEsICAgIDEsICAgIDEsICAgIDEsCi0gICAgICAgIDEsICAgIDEsICAgIDEsICAg
IDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsCi0gICAgICAgIDEsICAgIDEs
ICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsCi0gICAgICAg
IDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEs
Ci0gICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAg
IDEsICAgIDEsCi0gICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEs
ICAgIDEsICAgIDEsICAgIDEsCi0gICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAg
IDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsCi0gICAgICAgIDEsICAgIDEsICAgIDEsICAgIDEs
ICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsICAgIDEsCi0KLSAgICAgICAgMSwgICAgMSwg
ICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKLSAgICAgICAg
MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwK
LSAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAg
MSwgICAgMSwKLSAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwg
ICAgMSwgICAgMSwgICAgMSwKLSAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAg
MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKLSAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwg
ICAgMQotICAgIH0gOwotCi1zdGF0aWMgeXljb25zdCBmbGV4X2ludDMyX3QgeXlfbWV0YVs2OF0g
PQotICAgIHsgICAwLAotICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAxLCAg
ICAxLCAgICAxLCAgICAxLCAgICAxLAotICAgICAgICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAy
LCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLAotICAgICAgICAyLCAgICAxLCAgICAxLCAg
ICAxLCAgICAxLCAgICAxLCAgICAxLCAgICAyLCAgICAyLCAgICAyLAotICAgICAgICAyLCAgICAz
LCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAxLCAgICAxLCAgICAxLCAgICAyLAotICAgICAg
ICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAyLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAz
LAotICAgICAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAgICAzLCAg
ICAzLCAgICAzLAotICAgICAgICAzLCAgICAzLCAgICAzLCAgICAxLCAgICAxLCAgICAxLCAgICAx
Ci0gICAgfSA7Ci0KLXN0YXRpYyB5eWNvbnN0IGZsZXhfaW50MTZfdCB5eV9iYXNlWzQ0NV0gPQot
ICAgIHsgICAwLAotICAgICAgICAwLCAgICAwLCAgNTg3LCAgNTg4LCAgNTg4LCAgNTg4LCAgNTYx
LCAgIDQzLCAgIDY0LCAgNTg4LAotICAgICAgNTg4LCAgNTYwLCAgIDYxLCAgNTg4LCAgIDYwLCAg
IDU4LCAgNTU5LCAgIDc3LCAgIDg2LCAgNTU3LAotICAgICAgNTg4LCAgMTA0LCAgNTU3LCAgIDU1
LCAgNTg4LCAgICAwLCAgNTg4LCAgNTg4LCAgIDc1LCAgIDI2LAotICAgICAgIDU3LCAgIDgyLCAg
IDgzLCAgIDczLCAgIDkzLCAgNTI4LCAgIDk3LCAgIDk1LCAgNTI3LCAgIDQ0LAotICAgICAgIDcx
LCAgNTIxLCAgMTA0LCAgNTM0LCAgMTEwLCAgMTE2LCAgIDM1LCAgMTExLCAgNTMwLCAgNTg4LAot
ICAgICAgMTE0LCAgNTg4LCAgNTg4LCAgNTg4LCAgNTg4LCAgNTg4LCAgNTg4LCAgNTg4LCAgNTg4
LCAgNTg4LAotICAgICAgNTg4LCAgNTg4LCAgNTg4LCAgMTY1LCAgNTg4LCAgMTcyLCAgMjAyLCAg
MjExLCAgMjMzLCAgICAwLAotICAgICAgNTg4LCAgNTg4LCAgNTg4LCAgNTUxLCAgNTg4LCAgNTg4
LCAgNTg4LCAgNTUwLCAgICAwLCAgNTg4LAotICAgICAgNTg4LCAgNTIzLCAgNTE2LCAgNTE5LCAg
NTI3LCAgNTI2LCAgNTEzLCAgNTI4LCAgNTE1LCAgNTIxLAotICAgICAgNTA5LCAgNTA2LCAgNTE5
LCAgNTA2LCAgNTAzLCAgNTAzLCAgNTA5LCAgNDk3LCAgMTA4LCAgNTAyLAotCi0gICAgICA1MTIs
ICA0OTgsICA1MDQsICA1MDcsICA1MDgsICAgIDAsICAxNDUsICA1MDcsICAxMTMsICA0OTMsCi0g
ICAgICA1MDYsICA0OTcsICA0OTksICA0ODksICA1MDMsICA1MDAsICA1MDIsICA0ODUsICA0OTAs
ICA0ODcsCi0gICAgICA0NzYsICAxNTcsICA0ODQsICA0ODksICA0ODUsICA0ODcsICA0NzYsICA0
NzksICAxMTgsICA0ODQsCi0gICAgICA0NzYsICA0ODgsICAgNzAsICA0ODEsICA1ODgsICA1ODgs
ICAyNDYsICAyNTMsICAyNzAsICAyMTksCi0gICAgICAyODMsICAgIDAsICA1ODgsICA1ODgsICAg
IDAsICA0NzMsICA0NzcsICA0ODYsICA0ODMsICA0NjcsCi0gICAgICA0NjcsICAxMTksICA0ODIs
ICA0NzksICA0NzksICA0NzcsICA0NzQsICA0NjYsICA0NzIsICA0NTksCi0gICAgICA0NzAsICA0
NTYsICA0NzIsICAgIDAsICA0NjksICA0NTcsICA0NjQsICA0NjEsICA0NjUsICA0NTgsCi0gICAg
ICA0NDcsICA0NDYsICA0NTksICA0NjIsICA0NTksICA0NTQsICA0NDUsICAxODgsICA0NTAsICA0
NTMsCi0gICAgICA0NDQsICA0NDEsICA0NDUsICA0NTEsICA0NDIsICA0MzMsICA0MzYsICA0MzQs
ICA0NDQsICA0MzAsCi0gICAgICA0MjgsICA0NDEsICA0MjcsICA0MjksICA0MjYsICA0MzcsICA0
MzYsICAxMjQsICA0MzEsICA0MjYsCi0KLSAgICAgIDQxNSwgIDI1OCwgIDQzMywgIDQzNSwgIDQy
NCwgIDI5MCwgIDI5NywgIDMwNCwgIDMxMSwgIDQyNSwKLSAgICAgICAgMCwgIDQyMywgIDI3NSwg
ICAgMCwgIDQxNSwgIDQxMywgIDQyMSwgIDQxMCwgIDQyNywgIDQxNiwKLSAgICAgIDMxNiwgICAg
MCwgICAgMCwgIDQxMCwgIDQyMCwgIDQyMCwgICAgMCwgIDQwNSwgIDMxOSwgICAgMCwKLSAgICAg
ICAgMCwgIDQwNywgIDMyMiwgIDQwOCwgIDQwMiwgIDQwMSwgIDQwMiwgIDQwMSwgIDMyNSwgICAg
MCwKLSAgICAgICAgMCwgICAgMCwgICAgMCwgICAgMCwgIDM5NywgIDM5OCwgIDQwMywgIDM5NCwg
IDQwNywgIDQwMiwKLSAgICAgIDQwMSwgIDM5MywgIDM5NywgIDM4OSwgIDM5MiwgIDM5NiwgIDQw
MSwgIDM4NywgIDM5OSwgIDM5MCwKLSAgICAgICAgMCwgICAgMCwgIDM5NiwgIDM4NSwgIDM4NSwg
IDM5MCwgIDM4OSwgIDM4NiwgICAgMCwgICAgMCwKLSAgICAgICAgMCwgICAgMCwgIDM3NiwgIDM4
OCwgIDM5MCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwKLSAgICAgICAgMCwgIDM3OCwg
IDM3OSwgIDM3MywgIDM4MywgICAgMCwgICAgMCwgICAgMCwgIDM3NCwgICAgMCwKLSAgICAgICAg
MCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgICAgMCwgIDM4MSwK
LQotICAgICAgICAwLCAgICAwLCAgMzc5LCAgMzc1LCAgICAwLCAgICAwLCAgICAwLCAgMzcxLCAg
MzY3LCAgMzcyLAotICAgICAgMzYyLCAgMzc1LCAgMzYxLCAgMzc0LCAgMzYzLCAgMzcwLCAgICAw
LCAgMzY4LCAgMzcwLCAgMzU0LAotICAgICAgMzU2LCAgMzYyLCAgMzY4LCAgMzYzLCAgMzUxLCAg
ICAwLCAgMzUzLCAgICAwLCAgMzUyLCAgMzU1LAotICAgICAgICAwLCAgMzQ0LCAgMzQzLCAgMzQz
LCAgMzU2LCAgICAwLCAgMzU4LCAgICAwLCAgMzU3LCAgMzU2LAotICAgICAgMzQxLCAgMzU0LCAg
MzQxLCAgICAwLCAgICAwLCAgMzQ0LCAgICAwLCAgICAwLCAgMzM2LCAgICAwLAotICAgICAgICAw
LCAgICAwLCAgICAwLCAgICAwLCAgMzMzLCAgMzQ0LCAgMzM3LCAgMzQzLCAgMzQwLCAgMzM1LAot
ICAgICAgMzI3LCAgMzM5LCAgICAwLCAgICAwLCAgMzMyLCAgMzM5LCAgMzI4LCAgICAwLCAgMzM3
LCAgMzM0LAotICAgICAgMzI0LCAgMzI5LCAgMzMyLCAgICAwLCAgICAwLCAgMzMyLCAgICAwLCAg
MzMwLCAgMzI5LCAgICAwLAotICAgICAgICAwLCAgMzI4LCAgMzE0LCAgMzI2LCAgICAwLCAgMzE3
LCAgMzM4LCAgMzM3LCAgMzM2LCAgMzA3LAotICAgICAgMzAzLCAgICAwLCAgICAwLCAgICAwLCAg
ICAwLCAgICAwLCAgICAwLCAgICAwLCAgICAwLCAgMzI4LAotCi0gICAgICAxNjYsICAzMjUsICAz
MTYsICAyOTksICAzMDgsICAzMTAsICAzMDYsICAzMDgsICAzMDcsICAzMDYsCi0gICAgICAzMDks
ICAzMDYsICAyNTYsICAyNTMsICAgIDAsICAyMjgsICAyMzgsICAyMjIsICAyMzUsICAyMDMsCi0g
ICAgICAyMDcsICAyMDQsICAyMTIsICAxOTEsICAgIDAsICAyMDEsICAxNjUsICAxNjcsICAxNTMs
ICAxNjEsCi0gICAgICAgIDAsICAxNzAsICAgIDAsICAxNzUsICAxNTEsICAxNDEsICAxMDAsICAx
MTQsICAgNTksICAgIDAsCi0gICAgICAgIDAsICA1ODgsICAzNTksICAxMTMKLSAgICB9IDsKLQot
c3RhdGljIHl5Y29uc3QgZmxleF9pbnQxNl90IHl5X2RlZls0NDVdID0KLSAgICB7ICAgMCwKLSAg
ICAgIDQ0MiwgICAgMSwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0Miwg
IDQ0MiwKLSAgICAgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0
MiwgIDQ0MiwgIDQ0MiwKLSAgICAgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0Mywg
IDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MywKLSAgICAgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0
MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywKLSAgICAgIDQ0MywgIDQ0MywgIDQ0Mywg
IDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MiwKLSAgICAgIDQ0MiwgIDQ0
MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwKLSAgICAg
IDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0
NCwKLSAgICAgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0Miwg
IDQ0MywgIDQ0MiwKLSAgICAgIDQ0MiwgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0
MywgIDQ0MywgIDQ0MywgIDQ0MywKLSAgICAgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0Mywg
IDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywKLQotICAgICAgNDQzLCAgNDQzLCAgNDQzLCAg
NDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLAotICAgICAgNDQzLCAgNDQz
LCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLAotICAgICAg
NDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQz
LAotICAgICAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQyLCAgNDQyLCAgNDQyLCAgNDQyLCAg
NDQyLCAgNDQyLAotICAgICAgNDQyLCAgNDQ0LCAgNDQyLCAgNDQyLCAgNDQzLCAgNDQzLCAgNDQz
LCAgNDQzLCAgNDQzLCAgNDQzLAotICAgICAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAg
NDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLAotICAgICAgNDQzLCAgNDQzLCAgNDQzLCAgNDQz
LCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLAotICAgICAgNDQzLCAgNDQzLCAg
NDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLAotICAgICAgNDQz
LCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLAot
ICAgICAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQz
LCAgNDQzLAotCi0gICAgICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDIsICA0NDIs
ICA0NDIsICA0NDIsICA0NDMsCi0gICAgICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0
NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsCi0gICAgICA0NDMsICA0NDMsICA0NDMsICA0NDMs
ICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsCi0gICAgICA0NDMsICA0NDMsICA0
NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsCi0gICAgICA0NDMs
ICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsCi0g
ICAgICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMs
ICA0NDMsCi0gICAgICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0
NDMsICA0NDMsICA0NDMsCi0gICAgICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMs
ICA0NDMsICA0NDMsICA0NDMsICA0NDMsCi0gICAgICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0
NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsCi0gICAgICA0NDMsICA0NDMsICA0NDMs
ICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsICA0NDMsCi0KLSAgICAgIDQ0Mywg
IDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywKLSAg
ICAgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0Mywg
IDQ0MywKLSAgICAgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0
MywgIDQ0MywgIDQ0MywKLSAgICAgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0Mywg
IDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywKLSAgICAgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0
MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywKLSAgICAgIDQ0MywgIDQ0MywgIDQ0Mywg
IDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywKLSAgICAgIDQ0MywgIDQ0
MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywKLSAgICAg
IDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0
MywKLSAgICAgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0Mywg
IDQ0MywgIDQ0MywKLSAgICAgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0MywgIDQ0
MywgIDQ0MywgIDQ0MywgIDQ0MywKLQotICAgICAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQz
LCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLAotICAgICAgNDQzLCAgNDQzLCAgNDQzLCAg
NDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLAotICAgICAgNDQzLCAgNDQz
LCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLAotICAgICAg
NDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQzLCAgNDQz
LAotICAgICAgNDQzLCAgICAwLCAgNDQyLCAgNDQyCi0gICAgfSA7Ci0KLXN0YXRpYyB5eWNvbnN0
IGZsZXhfaW50MTZfdCB5eV9ueHRbNjU2XSA9Ci0gICAgeyAgIDAsCi0gICAgICAgIDQsICAgIDUs
ICAgIDYsICAgIDcsICAgIDgsICAgIDksICAgMTAsICAgMTEsICAgMTIsICAgMTMsCi0gICAgICAg
MTQsICAgMTUsICAgMTYsICAgMTcsICAgMTgsICAgMTksICAgMTksICAgMTksICAgMTksICAgMTks
Ci0gICAgICAgMTksICAgMjAsICAgMjEsICAgMjIsICAgMjMsICAgMjQsICAgMjUsICAgMjYsICAg
MjYsICAgMjYsCi0gICAgICAgMjYsICAgMjYsICAgMjYsICAgMjYsICAgMjYsICAgMjYsICAgMjcs
ICAgMjgsICAgMjksICAgMzAsCi0gICAgICAgMzEsICAgMzIsICAgMzMsICAgMzQsICAgMzUsICAg
MzYsICAgMzcsICAgMzgsICAgMjYsICAgMzksCi0gICAgICAgNDAsICAgNDEsICAgNDIsICAgNDMs
ICAgNDQsICAgNDUsICAgNDYsICAgNDcsICAgNDgsICAgNDksCi0gICAgICAgMjYsICAgMjYsICAg
MjYsICAgNTAsICAgNTEsICAgNTIsICAgNTMsICAgNTUsICAgNTYsICAgNTcsCi0gICAgICAgNjAs
ICAgNjIsICAgNjQsICAgNjQsICAgNjQsICAgNjQsICAgNjQsICAgNjQsICAgNjQsICAgNzcsCi0g
ICAgICAgNzgsICAgODIsICAgODMsICAxMTAsICAgNjMsICAgNjEsICAxMjksICAxMTEsICAgNTgs
ICAgNjYsCi0gICAgICAxMzAsICAgNjcsICAgNjcsICAgNjcsICAgNjcsICAgNjcsICAgNjcsICAg
NjgsICAgNjYsICAgODAsCi0KLSAgICAgICA2OCwgICA2OCwgICA2OCwgICA2OCwgICA2OCwgICA2
OCwgICA2OCwgICA2OSwgICA3MiwgICA4NCwKLSAgICAgIDExMiwgICA4NSwgICA3MCwgICA4MSwg
IDE0MiwgICA4NiwgICA2OSwgIDIwMywgIDQ0MSwgIDIwNCwKLSAgICAgICA2OSwgICA4NywgICA5
NCwgIDExMywgICA5NSwgICA3MywgICA5MCwgICA3NCwgICA3NSwgICA2OSwKLSAgICAgICA5MSwg
ICA4OCwgICA5NywgICA5NiwgICA4OSwgICA5MiwgIDEwMywgICA3MCwgIDEzNSwgIDEwNiwKLSAg
ICAgICA5OCwgICA5MywgICA5OSwgIDExNSwgIDEwNCwgIDEwMCwgIDEwNywgIDE2MiwgIDQ0MCwg
IDExOSwKLSAgICAgIDEzMSwgIDEwMSwgIDQzOSwgIDEwOCwgIDEzMiwgIDEwNSwgIDEyMCwgIDEy
MSwgIDExNiwgIDEyNSwKLSAgICAgIDE2MywgIDExNywgIDEyNiwgIDEzMywgIDE3NiwgIDE5OCwg
IDEyMiwgIDEyMywgIDI2NCwgIDEyNCwKLSAgICAgIDEyNywgIDQzOCwgIDE3NywgIDE5OSwgIDIx
NiwgIDIxNywgIDI2NSwgIDEyOCwgIDEzNiwgICA2NCwKLSAgICAgICA2NCwgICA2NCwgICA2NCwg
ICA2NCwgICA2NCwgICA2NCwgIDEzOCwgIDEzOCwgIDEzOCwgIDEzOCwKLSAgICAgIDEzOCwgIDEz
OCwgIDEzOCwgIDQzNywgIDE3MCwgIDEzNywgIDE5MCwgIDE3MSwgIDE3MiwgIDQwNiwKLQotICAg
ICAgNDA3LCAgMTczLCAgMTM5LCAgMTc0LCAgMjQyLCAgMjQzLCAgMjQ0LCAgNDM2LCAgMTM3LCAg
NDM1LAotICAgICAgNDM0LCAgMTkxLCAgNDMzLCAgNDMyLCAgIDY2LCAgMTM5LCAgIDY3LCAgIDY3
LCAgIDY3LCAgIDY3LAotICAgICAgIDY3LCAgIDY3LCAgIDY4LCAgIDY2LCAgNDMxLCAgIDY4LCAg
IDY4LCAgIDY4LCAgIDY4LCAgIDY4LAotICAgICAgIDY4LCAgIDY4LCAgIDY5LCAgMTQxLCAgMTQx
LCAgMTQxLCAgMTQxLCAgMTQxLCAgMTQxLCAgMTQxLAotICAgICAgNDMwLCAgIDY5LCAgMTQwLCAg
NDI5LCAgMTQwLCAgIDY5LCAgNDI4LCAgMTQxLCAgMTQxLCAgMTQxLAotICAgICAgMTQxLCAgMTQx
LCAgMTQxLCAgMTQxLCAgIDY5LCAgMjA2LCAgNDI3LCAgMjA2LCAgNDI2LCAgNDI1LAotICAgICAg
MjA3LCAgMjA3LCAgMjA3LCAgMjA3LCAgMjA3LCAgMjA3LCAgMjA3LCAgMTM4LCAgMTM4LCAgMTM4
LAotICAgICAgMTM4LCAgMTM4LCAgMTM4LCAgMTM4LCAgMjY5LCAgMjcwLCAgMjcxLCAgNDI0LCAg
NDIzLCAgMjA4LAotICAgICAgNDIyLCAgMjA4LCAgNDIxLCAgMTM5LCAgMjA5LCAgMjA5LCAgMjA5
LCAgMjA5LCAgMjA5LCAgMjA5LAotICAgICAgMjA5LCAgMjc3LCAgMjc4LCAgMjc5LCAgNDIwLCAg
NDE5LCAgMTM5LCAgMTQxLCAgMTQxLCAgMTQxLAotCi0gICAgICAxNDEsICAxNDEsICAxNDEsICAx
NDEsICAyMDcsICAyMDcsICAyMDcsICAyMDcsICAyMDcsICAyMDcsCi0gICAgICAyMDcsICAyMDcs
ICAyMDcsICAyMDcsICAyMDcsICAyMDcsICAyMDcsICAyMDcsICAyMDksICAyMDksCi0gICAgICAy
MDksICAyMDksICAyMDksICAyMDksICAyMDksICAyMDksICAyMDksICAyMDksICAyMDksICAyMDks
Ci0gICAgICAyMDksICAyMDksICAyODYsICAyODcsICAyODgsICAyOTMsICAyOTQsICAyOTUsICAy
OTcsICAyOTgsCi0gICAgICAyOTksICAzMDUsICAzMDYsICAzMDcsICAzODcsICAzODgsICAzODks
ICA0MTgsICA0MTcsICA0MTYsCi0gICAgICA0MTUsICA0MTQsICA0MTMsICA0MTIsICA0MTEsICA0
MTAsICA0MDksICAzOTAsICA0MDgsICAzOTEsCi0gICAgICAgNzksICAgNzksICA0MDUsICA0MDQs
ICA0MDMsICA0MDIsICA0MDEsICA0MDAsICAzOTksICAzOTgsCi0gICAgICAzOTcsICAzOTYsICAz
OTUsICAzOTQsICAzOTMsICAzOTIsICAzODYsICAzODUsICAzODQsICAzODMsCi0gICAgICAzODIs
ICAzODEsICAzODAsICAzNzksICAzNzgsICAzNzcsICAzNzYsICAzNzUsICAzNzQsICAzNzMsCi0g
ICAgICAzNzIsICAzNzEsICAzNzAsICAzNjksICAzNjgsICAzNjcsICAzNjYsICAzNjUsICAzNjQs
ICAzNjMsCi0KLSAgICAgIDM2MiwgIDM2MSwgIDM2MCwgIDM1OSwgIDM1OCwgIDM1NywgIDM1Niwg
IDM1NSwgIDM1NCwgIDM1MywKLSAgICAgIDM1MiwgIDM1MSwgIDM1MCwgIDM0OSwgIDM0OCwgIDM0
NywgIDM0NiwgIDM0NSwgIDM0NCwgIDM0MywKLSAgICAgIDM0MiwgIDM0MSwgIDM0MCwgIDMzOSwg
IDMzOCwgIDMzNywgIDMzNiwgIDMzNSwgIDMzNCwgIDMzMywKLSAgICAgIDMzMiwgIDMzMSwgIDMz
MCwgIDMyOSwgIDMyOCwgIDMyNywgIDMyNiwgIDMyNSwgIDMyNCwgIDMyMywKLSAgICAgIDMyMiwg
IDMyMSwgIDMyMCwgIDMxOSwgIDMxOCwgIDMxNywgIDMxNiwgIDMxNSwgIDMxNCwgIDMxMywKLSAg
ICAgIDMxMiwgIDMxMSwgIDMxMCwgIDMwOSwgIDMwOCwgIDMwNCwgIDMwMywgIDMwMiwgIDMwMSwg
IDMwMCwKLSAgICAgIDI5NiwgIDI5MiwgIDI5MSwgIDI5MCwgIDI4OSwgIDI4NSwgIDI4NCwgIDI4
MywgIDI4MiwgIDI4MSwKLSAgICAgIDI4MCwgIDI3NiwgIDI3NSwgIDI3NCwgIDI3MywgIDI3Miwg
IDI2OCwgIDI2NywgIDI2NiwgIDI2MywKLSAgICAgIDI2MiwgIDI2MSwgIDI2MCwgIDI1OSwgIDI1
OCwgIDI1NywgIDI1NiwgIDI1NSwgIDI1NCwgIDI1MywKLSAgICAgIDI1MiwgIDI1MSwgIDI1MCwg
IDI0OSwgIDI0OCwgIDI0NywgIDI0NiwgIDI0NSwgIDI0MSwgIDI0MCwKLQotICAgICAgMjM5LCAg
MjM4LCAgMjM3LCAgMjM2LCAgMjM1LCAgMjM0LCAgMjMzLCAgMjMyLCAgMjMxLCAgMjMwLAotICAg
ICAgMjI5LCAgMjI4LCAgMjI3LCAgMjI2LCAgMjI1LCAgMjI0LCAgMjIzLCAgMjIyLCAgMjIxLCAg
MjIwLAotICAgICAgMjE5LCAgMjE4LCAgMjE1LCAgMjE0LCAgMjEzLCAgMjEyLCAgMjExLCAgMjEw
LCAgMjA1LCAgMjAyLAotICAgICAgMjAxLCAgMjAwLCAgMTk3LCAgMTk2LCAgMTk1LCAgMTk0LCAg
MTkzLCAgMTkyLCAgMTg5LCAgMTg4LAotICAgICAgMTg3LCAgMTg2LCAgMTg1LCAgMTg0LCAgMTgz
LCAgMTgyLCAgMTgxLCAgMTgwLCAgMTc5LCAgMTc4LAotICAgICAgMTc1LCAgMTY5LCAgMTY4LCAg
MTY3LCAgMTY2LCAgMTY1LCAgMTY0LCAgMTYxLCAgMTYwLCAgMTU5LAotICAgICAgMTU4LCAgMTU3
LCAgMTU2LCAgMTU1LCAgMTU0LCAgMTUzLCAgMTUyLCAgMTUxLCAgMTUwLCAgMTQ5LAotICAgICAg
MTQ4LCAgMTQ3LCAgMTQ2LCAgMTQ1LCAgMTQ0LCAgMTQzLCAgMTM0LCAgMTE4LCAgMTE0LCAgMTA5
LAotICAgICAgMTAyLCAgIDc2LCAgIDcxLCAgIDY1LCAgIDU5LCAgIDU0LCAgNDQyLCAgICAzLCAg
NDQyLCAgNDQyLAotICAgICAgNDQyLCAgNDQyLCAgNDQyLCAgNDQyLCAgNDQyLCAgNDQyLCAgNDQy
LCAgNDQyLCAgNDQyLCAgNDQyLAotCi0gICAgICA0NDIsICA0NDIsICA0NDIsICA0NDIsICA0NDIs
ICA0NDIsICA0NDIsICA0NDIsICA0NDIsICA0NDIsCi0gICAgICA0NDIsICA0NDIsICA0NDIsICA0
NDIsICA0NDIsICA0NDIsICA0NDIsICA0NDIsICA0NDIsICA0NDIsCi0gICAgICA0NDIsICA0NDIs
ICA0NDIsICA0NDIsICA0NDIsICA0NDIsICA0NDIsICA0NDIsICA0NDIsICA0NDIsCi0gICAgICA0
NDIsICA0NDIsICA0NDIsICA0NDIsICA0NDIsICA0NDIsICA0NDIsICA0NDIsICA0NDIsICA0NDIs
Ci0gICAgICA0NDIsICA0NDIsICA0NDIsICA0NDIsICA0NDIsICA0NDIsICA0NDIsICA0NDIsICA0
NDIsICA0NDIsCi0gICAgICA0NDIsICA0NDIsICA0NDIsICA0NDIsICA0NDIKLSAgICB9IDsKLQot
c3RhdGljIHl5Y29uc3QgZmxleF9pbnQxNl90IHl5X2Noa1s2NTZdID0KLSAgICB7ICAgMCwKLSAg
ICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwg
ICAgMSwKLSAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAg
MSwgICAgMSwgICAgMSwKLSAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwg
ICAgMSwgICAgMSwgICAgMSwgICAgMSwKLSAgICAgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAg
MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKLSAgICAgICAgMSwgICAgMSwgICAgMSwg
ICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKLSAgICAgICAgMSwgICAg
MSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwKLSAgICAg
ICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgMSwgICAgOCwgICAgOCwgICAg
OSwKLSAgICAgICAxMywgICAxNSwgICAxNiwgICAxNiwgICAxNiwgICAxNiwgICAxNiwgICAxNiwg
ICAxNiwgICAyNCwKLSAgICAgICAyNCwgICAzMCwgICAzMCwgICA0MCwgICAxNSwgICAxMywgICA0
NywgICA0MCwgICAgOSwgICAxOCwKLSAgICAgICA0NywgICAxOCwgICAxOCwgICAxOCwgICAxOCwg
ICAxOCwgICAxOCwgICAxOCwgICAxOSwgICAyOSwKLQotICAgICAgIDE5LCAgIDE5LCAgIDE5LCAg
IDE5LCAgIDE5LCAgIDE5LCAgIDE5LCAgIDE4LCAgIDIyLCAgIDMxLAotICAgICAgIDQxLCAgIDMx
LCAgIDE4LCAgIDI5LCAgNDQ0LCAgIDMxLCAgIDE5LCAgMTMzLCAgNDM5LCAgMTMzLAotICAgICAg
IDE4LCAgIDMyLCAgIDM0LCAgIDQxLCAgIDM0LCAgIDIyLCAgIDMzLCAgIDIyLCAgIDIyLCAgIDE5
LAotICAgICAgIDMzLCAgIDMyLCAgIDM1LCAgIDM0LCAgIDMyLCAgIDMzLCAgIDM3LCAgIDE4LCAg
IDUxLCAgIDM4LAotICAgICAgIDM1LCAgIDMzLCAgIDM1LCAgIDQzLCAgIDM3LCAgIDM1LCAgIDM4
LCAgIDk5LCAgNDM4LCAgIDQ1LAotICAgICAgIDQ4LCAgIDM1LCAgNDM3LCAgIDM4LCAgIDQ4LCAg
IDM3LCAgIDQ1LCAgIDQ1LCAgIDQzLCAgIDQ2LAotICAgICAgIDk5LCAgIDQzLCAgIDQ2LCAgIDQ4
LCAgMTA5LCAgMTI5LCAgIDQ1LCAgIDQ1LCAgMTk4LCAgIDQ1LAotICAgICAgIDQ2LCAgNDM2LCAg
MTA5LCAgMTI5LCAgMTUyLCAgMTUyLCAgMTk4LCAgIDQ2LCAgIDUxLCAgIDY0LAotICAgICAgIDY0
LCAgIDY0LCAgIDY0LCAgIDY0LCAgIDY0LCAgIDY0LCAgIDY2LCAgIDY2LCAgIDY2LCAgIDY2LAot
ICAgICAgIDY2LCAgIDY2LCAgIDY2LCAgNDM1LCAgMTA3LCAgIDY0LCAgMTIyLCAgMTA3LCAgMTA3
LCAgNDAxLAotCi0gICAgICA0MDEsICAxMDcsICAgNjYsICAxMDcsICAxNzgsICAxNzgsICAxNzgs
ICA0MzQsICAgNjQsICA0MzIsCi0gICAgICA0MzAsICAxMjIsICA0MjksICA0MjgsICAgNjcsICAg
NjYsICAgNjcsICAgNjcsICAgNjcsICAgNjcsCi0gICAgICAgNjcsICAgNjcsICAgNjcsICAgNjgs
ICA0MjcsICAgNjgsICAgNjgsICAgNjgsICAgNjgsICAgNjgsCi0gICAgICAgNjgsICAgNjgsICAg
NjcsICAxNDAsICAxNDAsICAxNDAsICAxNDAsICAxNDAsICAxNDAsICAxNDAsCi0gICAgICA0MjYs
ICAgNjgsICAgNjksICA0MjQsICAgNjksICAgNjcsICA0MjMsICAgNjksICAgNjksICAgNjksCi0g
ICAgICAgNjksICAgNjksICAgNjksICAgNjksICAgNjgsICAxMzcsICA0MjIsICAxMzcsICA0MjEs
ICA0MjAsCi0gICAgICAxMzcsICAxMzcsICAxMzcsICAxMzcsICAxMzcsICAxMzcsICAxMzcsICAx
MzgsICAxMzgsICAxMzgsCi0gICAgICAxMzgsICAxMzgsICAxMzgsICAxMzgsICAyMDIsICAyMDIs
ICAyMDIsICA0MTksICA0MTgsICAxMzksCi0gICAgICA0MTcsICAxMzksICA0MTYsICAxMzgsICAx
MzksICAxMzksICAxMzksICAxMzksICAxMzksICAxMzksCi0gICAgICAxMzksICAyMTMsICAyMTMs
ICAyMTMsICA0MTQsICA0MTMsICAxMzgsICAxNDEsICAxNDEsICAxNDEsCi0KLSAgICAgIDE0MSwg
IDE0MSwgIDE0MSwgIDE0MSwgIDIwNiwgIDIwNiwgIDIwNiwgIDIwNiwgIDIwNiwgIDIwNiwKLSAg
ICAgIDIwNiwgIDIwNywgIDIwNywgIDIwNywgIDIwNywgIDIwNywgIDIwNywgIDIwNywgIDIwOCwg
IDIwOCwKLSAgICAgIDIwOCwgIDIwOCwgIDIwOCwgIDIwOCwgIDIwOCwgIDIwOSwgIDIwOSwgIDIw
OSwgIDIwOSwgIDIwOSwKLSAgICAgIDIwOSwgIDIwOSwgIDIyMSwgIDIyMSwgIDIyMSwgIDIyOSwg
IDIyOSwgIDIyOSwgIDIzMywgIDIzMywKLSAgICAgIDIzMywgIDIzOSwgIDIzOSwgIDIzOSwgIDM3
MiwgIDM3MiwgIDM3MiwgIDQxMiwgIDQxMSwgIDQxMCwKLSAgICAgIDQwOSwgIDQwOCwgIDQwNywg
IDQwNiwgIDQwNSwgIDQwNCwgIDQwMywgIDM3MiwgIDQwMiwgIDM3MiwKLSAgICAgIDQ0MywgIDQ0
MywgIDQwMCwgIDM5MSwgIDM5MCwgIDM4OSwgIDM4OCwgIDM4NywgIDM4NiwgIDM4NCwKLSAgICAg
IDM4MywgIDM4MiwgIDM3OSwgIDM3OCwgIDM3NiwgIDM3MywgIDM3MSwgIDM3MCwgIDM2OSwgIDM2
NywKLSAgICAgIDM2NiwgIDM2NSwgIDM2MiwgIDM2MSwgIDM2MCwgIDM1OSwgIDM1OCwgIDM1Nywg
IDM1NiwgIDM1NSwKLSAgICAgIDM0OSwgIDM0NiwgIDM0MywgIDM0MiwgIDM0MSwgIDM0MCwgIDMz
OSwgIDMzNywgIDMzNSwgIDMzNCwKLQotICAgICAgMzMzLCAgMzMyLCAgMzMwLCAgMzI5LCAgMzI3
LCAgMzI1LCAgMzI0LCAgMzIzLCAgMzIyLCAgMzIxLAotICAgICAgMzIwLCAgMzE5LCAgMzE4LCAg
MzE2LCAgMzE1LCAgMzE0LCAgMzEzLCAgMzEyLCAgMzExLCAgMzEwLAotICAgICAgMzA5LCAgMzA4
LCAgMzA0LCAgMzAzLCAgMzAwLCAgMjg5LCAgMjg1LCAgMjg0LCAgMjgzLCAgMjgyLAotICAgICAg
Mjc1LCAgMjc0LCAgMjczLCAgMjY4LCAgMjY3LCAgMjY2LCAgMjY1LCAgMjY0LCAgMjYzLCAgMjYw
LAotICAgICAgMjU5LCAgMjU4LCAgMjU3LCAgMjU2LCAgMjU1LCAgMjU0LCAgMjUzLCAgMjUyLCAg
MjUxLCAgMjUwLAotICAgICAgMjQ5LCAgMjQ4LCAgMjQ3LCAgMjQ2LCAgMjQ1LCAgMjM4LCAgMjM3
LCAgMjM2LCAgMjM1LCAgMjM0LAotICAgICAgMjMyLCAgMjI4LCAgMjI2LCAgMjI1LCAgMjI0LCAg
MjIwLCAgMjE5LCAgMjE4LCAgMjE3LCAgMjE2LAotICAgICAgMjE1LCAgMjEyLCAgMjEwLCAgMjA1
LCAgMjA0LCAgMjAzLCAgMjAxLCAgMjAwLCAgMTk5LCAgMTk3LAotICAgICAgMTk2LCAgMTk1LCAg
MTk0LCAgMTkzLCAgMTkyLCAgMTkxLCAgMTkwLCAgMTg5LCAgMTg4LCAgMTg3LAotICAgICAgMTg2
LCAgMTg1LCAgMTg0LCAgMTgzLCAgMTgyLCAgMTgxLCAgMTgwLCAgMTc5LCAgMTc3LCAgMTc2LAot
Ci0gICAgICAxNzUsICAxNzQsICAxNzMsICAxNzIsICAxNzEsICAxNzAsICAxNjksICAxNjgsICAx
NjcsICAxNjYsCi0gICAgICAxNjUsICAxNjMsICAxNjIsICAxNjEsICAxNjAsICAxNTksICAxNTgs
ICAxNTcsICAxNTYsICAxNTUsCi0gICAgICAxNTQsICAxNTMsICAxNTEsICAxNTAsICAxNDksICAx
NDgsICAxNDcsICAxNDYsICAxMzQsICAxMzIsCi0gICAgICAxMzEsICAxMzAsICAxMjgsICAxMjcs
ICAxMjYsICAxMjUsICAxMjQsICAxMjMsICAxMjEsICAxMjAsCi0gICAgICAxMTksICAxMTgsICAx
MTcsICAxMTYsICAxMTUsICAxMTQsICAxMTMsICAxMTIsICAxMTEsICAxMTAsCi0gICAgICAxMDgs
ICAxMDUsICAxMDQsICAxMDMsICAxMDIsICAxMDEsICAxMDAsICAgOTgsICAgOTcsICAgOTYsCi0g
ICAgICAgOTUsICAgOTQsICAgOTMsICAgOTIsICAgOTEsICAgOTAsICAgODksICAgODgsICAgODcs
ICAgODYsCi0gICAgICAgODUsICAgODQsICAgODMsICAgODIsICAgNzgsICAgNzQsICAgNDksICAg
NDQsICAgNDIsICAgMzksCi0gICAgICAgMzYsICAgMjMsICAgMjAsICAgMTcsICAgMTIsICAgIDcs
ICAgIDMsICA0NDIsICA0NDIsICA0NDIsCi0gICAgICA0NDIsICA0NDIsICA0NDIsICA0NDIsICA0
NDIsICA0NDIsICA0NDIsICA0NDIsICA0NDIsICA0NDIsCi0KLSAgICAgIDQ0MiwgIDQ0MiwgIDQ0
MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwKLSAgICAgIDQ0Miwg
IDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwKLSAg
ICAgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0Miwg
IDQ0MiwKLSAgICAgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0
MiwgIDQ0MiwgIDQ0MiwKLSAgICAgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0Miwg
IDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwKLSAgICAgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0MiwgIDQ0
MgotICAgIH0gOwotCi0vKiBUYWJsZSBvZiBib29sZWFucywgdHJ1ZSBpZiBydWxlIGNvdWxkIG1h
dGNoIGVvbC4gKi8KLXN0YXRpYyB5eWNvbnN0IGZsZXhfaW50MzJfdCB5eV9ydWxlX2Nhbl9tYXRj
aF9lb2xbMTQ4XSA9Ci0gICAgeyAgIDAsCi0wLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAg
ICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAw
LCAwLCAwLCAwLCAwLCAwLCAwLCAwLCAKLSAgICAwLCAwLCAwLCAwLCAwLCAxLCAwLCAwLCAgICAg
fTsKLQotLyogVGhlIGludGVudCBiZWhpbmQgdGhpcyBkZWZpbml0aW9uIGlzIHRoYXQgaXQnbGwg
Y2F0Y2gKLSAqIGFueSB1c2VzIG9mIFJFSkVDVCB3aGljaCBmbGV4IG1pc3NlZC4KLSAqLwotI2Rl
ZmluZSBSRUpFQ1QgcmVqZWN0X3VzZWRfYnV0X25vdF9kZXRlY3RlZAotI2RlZmluZSB5eW1vcmUo
KSB5eW1vcmVfdXNlZF9idXRfbm90X2RldGVjdGVkCi0jZGVmaW5lIFlZX01PUkVfQURKIDAKLSNk
ZWZpbmUgWVlfUkVTVE9SRV9ZWV9NT1JFX09GRlNFVAotLyoKLS8vCi0vLyBDb3B5cmlnaHQgKGMp
IDIwMDItMjAxMiBUaGUgQU5HTEUgUHJvamVjdCBBdXRob3JzLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotLy8gVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYSBCU0Qtc3R5bGUg
bGljZW5zZSB0aGF0IGNhbiBiZQotLy8gZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZS4KLS8vCi0K
LVRoaXMgZmlsZSBjb250YWlucyB0aGUgTGV4IHNwZWNpZmljYXRpb24gZm9yIEdMU0wgRVMuCi1C
YXNlZCBvbiBBTlNJIEMgZ3JhbW1hciwgTGV4IHNwZWNpZmljYXRpb246Ci1odHRwOi8vd3d3Lmx5
c2F0b3IubGl1LnNlL2MvQU5TSS1DLWdyYW1tYXItbC5odG1sCi0KLUlGIFlPVSBNT0RJRlkgVEhJ
UyBGSUxFIFlPVSBBTFNPIE5FRUQgVE8gUlVOIGdlbmVyYXRlX3BhcnNlci5zaCwKLVdISUNIIEdF
TkVSQVRFUyBUSEUgR0xTTCBFUyBMRVhFUiAoZ2xzbGFuZ19sZXguY3BwKS4KLSovCi0KLSNpbmNs
dWRlICJjb21waWxlci9nbHNsYW5nLmgiCi0jaW5jbHVkZSAiY29tcGlsZXIvUGFyc2VIZWxwZXIu
aCIKLSNpbmNsdWRlICJjb21waWxlci9wcmVwcm9jZXNzb3IvVG9rZW4uaCIKLSNpbmNsdWRlICJj
b21waWxlci91dGlsLmgiCi0jaW5jbHVkZSAiZ2xzbGFuZ190YWIuaCIKLQotLyogd2luZG93cyBv
bmx5IHByYWdtYSAqLwotI2lmZGVmIF9NU0NfVkVSCi0jcHJhZ21hIHdhcm5pbmcoZGlzYWJsZSA6
IDQxMDIpCi0jZW5kaWYKLQotI2RlZmluZSBZWV9VU0VSX0FDVElPTiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFwKLSAgICB5eWxsb2MtPmZpcnN0X2ZpbGUgPSB5eWxsb2MtPmxhc3Rf
ZmlsZSA9IHl5Y29sdW1uOyBcCi0gICAgeXlsbG9jLT5maXJzdF9saW5lID0geXlsbG9jLT5sYXN0
X2xpbmUgPSB5eWxpbmVubzsKLQotI2RlZmluZSBZWV9JTlBVVChidWYsIHJlc3VsdCwgbWF4X3Np
emUpIFwKLSAgICByZXN1bHQgPSBzdHJpbmdfaW5wdXQoYnVmLCBtYXhfc2l6ZSwgeXlzY2FubmVy
KTsKLQotc3RhdGljIHl5X3NpemVfdCBzdHJpbmdfaW5wdXQoY2hhciogYnVmLCB5eV9zaXplX3Qg
bWF4X3NpemUsIHl5c2Nhbl90IHl5c2Nhbm5lcik7Ci1zdGF0aWMgaW50IGNoZWNrX3R5cGUoeXlz
Y2FuX3QgeXlzY2FubmVyKTsKLXN0YXRpYyBpbnQgcmVzZXJ2ZWRfd29yZCh5eXNjYW5fdCB5eXNj
YW5uZXIpOwotCi0jZGVmaW5lIElOSVRJQUwgMAotCi0jZGVmaW5lIFlZX0VYVFJBX1RZUEUgVFBh
cnNlQ29udGV4dCoKLQotLyogSG9sZHMgdGhlIGVudGlyZSBzdGF0ZSBvZiB0aGUgcmVlbnRyYW50
IHNjYW5uZXIuICovCi1zdHJ1Y3QgeXlndXRzX3QKLSAgICB7Ci0KLSAgICAvKiBVc2VyLWRlZmlu
ZWQuIE5vdCB0b3VjaGVkIGJ5IGZsZXguICovCi0gICAgWVlfRVhUUkFfVFlQRSB5eWV4dHJhX3I7
Ci0KLSAgICAvKiBUaGUgcmVzdCBhcmUgdGhlIHNhbWUgYXMgdGhlIGdsb2JhbHMgZGVjbGFyZWQg
aW4gdGhlIG5vbi1yZWVudHJhbnQgc2Nhbm5lci4gKi8KLSAgICBGSUxFICp5eWluX3IsICp5eW91
dF9yOwotICAgIHNpemVfdCB5eV9idWZmZXJfc3RhY2tfdG9wOyAvKio8IGluZGV4IG9mIHRvcCBv
ZiBzdGFjay4gKi8KLSAgICBzaXplX3QgeXlfYnVmZmVyX3N0YWNrX21heDsgLyoqPCBjYXBhY2l0
eSBvZiBzdGFjay4gKi8KLSAgICBZWV9CVUZGRVJfU1RBVEUgKiB5eV9idWZmZXJfc3RhY2s7IC8q
KjwgU3RhY2sgYXMgYW4gYXJyYXkuICovCi0gICAgY2hhciB5eV9ob2xkX2NoYXI7Ci0gICAgeXlf
c2l6ZV90IHl5X25fY2hhcnM7Ci0gICAgeXlfc2l6ZV90IHl5bGVuZ19yOwotICAgIGNoYXIgKnl5
X2NfYnVmX3A7Ci0gICAgaW50IHl5X2luaXQ7Ci0gICAgaW50IHl5X3N0YXJ0OwotICAgIGludCB5
eV9kaWRfYnVmZmVyX3N3aXRjaF9vbl9lb2Y7Ci0gICAgaW50IHl5X3N0YXJ0X3N0YWNrX3B0cjsK
LSAgICBpbnQgeXlfc3RhcnRfc3RhY2tfZGVwdGg7Ci0gICAgaW50ICp5eV9zdGFydF9zdGFjazsK
LSAgICB5eV9zdGF0ZV90eXBlIHl5X2xhc3RfYWNjZXB0aW5nX3N0YXRlOwotICAgIGNoYXIqIHl5
X2xhc3RfYWNjZXB0aW5nX2Nwb3M7Ci0KLSAgICBpbnQgeXlsaW5lbm9fcjsKLSAgICBpbnQgeXlf
ZmxleF9kZWJ1Z19yOwotCi0gICAgY2hhciAqeXl0ZXh0X3I7Ci0gICAgaW50IHl5X21vcmVfZmxh
ZzsKLSAgICBpbnQgeXlfbW9yZV9sZW47Ci0KLSAgICBZWVNUWVBFICogeXlsdmFsX3I7Ci0KLSAg
ICBZWUxUWVBFICogeXlsbG9jX3I7Ci0KLSAgICB9OyAvKiBlbmQgc3RydWN0IHl5Z3V0c190ICov
Ci0KLXN0YXRpYyBpbnQgeXlfaW5pdF9nbG9iYWxzICh5eXNjYW5fdCB5eXNjYW5uZXIgKTsKLQot
ICAgIC8qIFRoaXMgbXVzdCBnbyBoZXJlIGJlY2F1c2UgWVlTVFlQRSBhbmQgWVlMVFlQRSBhcmUg
aW5jbHVkZWQKLSAgICAgKiBmcm9tIGJpc29uIG91dHB1dCBpbiBzZWN0aW9uIDEuKi8KLSAgICAj
ICAgIGRlZmluZSB5eWx2YWwgeXlnLT55eWx2YWxfcgotICAgIAotICAgICMgICAgZGVmaW5lIHl5
bGxvYyB5eWctPnl5bGxvY19yCi0gICAgCi1pbnQgeXlsZXhfaW5pdCAoeXlzY2FuX3QqIHNjYW5u
ZXIpOwotCi1pbnQgeXlsZXhfaW5pdF9leHRyYSAoWVlfRVhUUkFfVFlQRSB1c2VyX2RlZmluZWQs
eXlzY2FuX3QqIHNjYW5uZXIpOwotCi0vKiBBY2Nlc3NvciBtZXRob2RzIHRvIGdsb2JhbHMuCi0g
ICBUaGVzZSBhcmUgbWFkZSB2aXNpYmxlIHRvIG5vbi1yZWVudHJhbnQgc2Nhbm5lcnMgZm9yIGNv
bnZlbmllbmNlLiAqLwotCi1pbnQgeXlsZXhfZGVzdHJveSAoeXlzY2FuX3QgeXlzY2FubmVyICk7
Ci0KLWludCB5eWdldF9kZWJ1ZyAoeXlzY2FuX3QgeXlzY2FubmVyICk7Ci0KLXZvaWQgeXlzZXRf
ZGVidWcgKGludCBkZWJ1Z19mbGFnICx5eXNjYW5fdCB5eXNjYW5uZXIgKTsKLQotWVlfRVhUUkFf
VFlQRSB5eWdldF9leHRyYSAoeXlzY2FuX3QgeXlzY2FubmVyICk7Ci0KLXZvaWQgeXlzZXRfZXh0
cmEgKFlZX0VYVFJBX1RZUEUgdXNlcl9kZWZpbmVkICx5eXNjYW5fdCB5eXNjYW5uZXIgKTsKLQot
RklMRSAqeXlnZXRfaW4gKHl5c2Nhbl90IHl5c2Nhbm5lciApOwotCi12b2lkIHl5c2V0X2luICAo
RklMRSAqIGluX3N0ciAseXlzY2FuX3QgeXlzY2FubmVyICk7Ci0KLUZJTEUgKnl5Z2V0X291dCAo
eXlzY2FuX3QgeXlzY2FubmVyICk7Ci0KLXZvaWQgeXlzZXRfb3V0ICAoRklMRSAqIG91dF9zdHIg
LHl5c2Nhbl90IHl5c2Nhbm5lciApOwotCi15eV9zaXplX3QgeXlnZXRfbGVuZyAoeXlzY2FuX3Qg
eXlzY2FubmVyICk7Ci0KLWNoYXIgKnl5Z2V0X3RleHQgKHl5c2Nhbl90IHl5c2Nhbm5lciApOwot
Ci1pbnQgeXlnZXRfbGluZW5vICh5eXNjYW5fdCB5eXNjYW5uZXIgKTsKLQotdm9pZCB5eXNldF9s
aW5lbm8gKGludCBsaW5lX251bWJlciAseXlzY2FuX3QgeXlzY2FubmVyICk7Ci0KLVlZU1RZUEUg
KiB5eWdldF9sdmFsICh5eXNjYW5fdCB5eXNjYW5uZXIgKTsKLQotdm9pZCB5eXNldF9sdmFsIChZ
WVNUWVBFICogeXlsdmFsX3BhcmFtICx5eXNjYW5fdCB5eXNjYW5uZXIgKTsKLQotICAgICAgIFlZ
TFRZUEUgKnl5Z2V0X2xsb2MgKHl5c2Nhbl90IHl5c2Nhbm5lciApOwotICAgIAotICAgICAgICB2
b2lkIHl5c2V0X2xsb2MgKFlZTFRZUEUgKiB5eWxsb2NfcGFyYW0gLHl5c2Nhbl90IHl5c2Nhbm5l
ciApOwotICAgIAotLyogTWFjcm9zIGFmdGVyIHRoaXMgcG9pbnQgY2FuIGFsbCBiZSBvdmVycmlk
ZGVuIGJ5IHVzZXIgZGVmaW5pdGlvbnMgaW4KLSAqIHNlY3Rpb24gMS4KLSAqLwotCi0jaWZuZGVm
IFlZX1NLSVBfWVlXUkFQCi0jaWZkZWYgX19jcGx1c3BsdXMKLWV4dGVybiAiQyIgaW50IHl5d3Jh
cCAoeXlzY2FuX3QgeXlzY2FubmVyICk7Ci0jZWxzZQotZXh0ZXJuIGludCB5eXdyYXAgKHl5c2Nh
bl90IHl5c2Nhbm5lciApOwotI2VuZGlmCi0jZW5kaWYKLQotI2lmbmRlZiB5eXRleHRfcHRyCi1z
dGF0aWMgdm9pZCB5eV9mbGV4X3N0cm5jcHkgKGNoYXIgKix5eWNvbnN0IGNoYXIgKixpbnQgLHl5
c2Nhbl90IHl5c2Nhbm5lcik7Ci0jZW5kaWYKLQotI2lmZGVmIFlZX05FRURfU1RSTEVOCi1zdGF0
aWMgaW50IHl5X2ZsZXhfc3RybGVuICh5eWNvbnN0IGNoYXIgKiAseXlzY2FuX3QgeXlzY2FubmVy
KTsKLSNlbmRpZgotCi0jaWZuZGVmIFlZX05PX0lOUFVUCi0KLSNpZmRlZiBfX2NwbHVzcGx1cwot
c3RhdGljIGludCB5eWlucHV0ICh5eXNjYW5fdCB5eXNjYW5uZXIgKTsKLSNlbHNlCi1zdGF0aWMg
aW50IGlucHV0ICh5eXNjYW5fdCB5eXNjYW5uZXIgKTsKLSNlbmRpZgotCi0jZW5kaWYKLQotLyog
QW1vdW50IG9mIHN0dWZmIHRvIHNsdXJwIHVwIHdpdGggZWFjaCByZWFkLiAqLwotI2lmbmRlZiBZ
WV9SRUFEX0JVRl9TSVpFCi0jZGVmaW5lIFlZX1JFQURfQlVGX1NJWkUgODE5MgotI2VuZGlmCi0K
LS8qIENvcHkgd2hhdGV2ZXIgdGhlIGxhc3QgcnVsZSBtYXRjaGVkIHRvIHRoZSBzdGFuZGFyZCBv
dXRwdXQuICovCi0jaWZuZGVmIEVDSE8KLS8qIFRoaXMgdXNlZCB0byBiZSBhbiBmcHV0cygpLCBi
dXQgc2luY2UgdGhlIHN0cmluZyBtaWdodCBjb250YWluIE5VTCdzLAotICogd2Ugbm93IHVzZSBm
d3JpdGUoKS4KLSAqLwotI2RlZmluZSBFQ0hPIGZ3cml0ZSggeXl0ZXh0LCB5eWxlbmcsIDEsIHl5
b3V0ICkKLSNlbmRpZgotCi0vKiBHZXRzIGlucHV0IGFuZCBzdHVmZnMgaXQgaW50byAiYnVmIi4g
IG51bWJlciBvZiBjaGFyYWN0ZXJzIHJlYWQsIG9yIFlZX05VTEwsCi0gKiBpcyByZXR1cm5lZCBp
biAicmVzdWx0Ii4KLSAqLwotI2lmbmRlZiBZWV9JTlBVVAotI2RlZmluZSBZWV9JTlBVVChidWYs
cmVzdWx0LG1heF9zaXplKSBcCi0JaWYgKCBZWV9DVVJSRU5UX0JVRkZFUl9MVkFMVUUtPnl5X2lz
X2ludGVyYWN0aXZlICkgXAotCQl7IFwKLQkJaW50IGMgPSAnKic7IFwKLQkJeXlfc2l6ZV90IG47
IFwKLQkJZm9yICggbiA9IDA7IG4gPCBtYXhfc2l6ZSAmJiBcCi0JCQkgICAgIChjID0gZ2V0Yygg
eXlpbiApKSAhPSBFT0YgJiYgYyAhPSAnXG4nOyArK24gKSBcCi0JCQlidWZbbl0gPSAoY2hhcikg
YzsgXAotCQlpZiAoIGMgPT0gJ1xuJyApIFwKLQkJCWJ1ZltuKytdID0gKGNoYXIpIGM7IFwKLQkJ
aWYgKCBjID09IEVPRiAmJiBmZXJyb3IoIHl5aW4gKSApIFwKLQkJCVlZX0ZBVEFMX0VSUk9SKCAi
aW5wdXQgaW4gZmxleCBzY2FubmVyIGZhaWxlZCIgKTsgXAotCQlyZXN1bHQgPSBuOyBcCi0JCX0g
XAotCWVsc2UgXAotCQl7IFwKLQkJZXJybm89MDsgXAotCQl3aGlsZSAoIChyZXN1bHQgPSBmcmVh
ZChidWYsIDEsIG1heF9zaXplLCB5eWluKSk9PTAgJiYgZmVycm9yKHl5aW4pKSBcCi0JCQl7IFwK
LQkJCWlmKCBlcnJubyAhPSBFSU5UUikgXAotCQkJCXsgXAotCQkJCVlZX0ZBVEFMX0VSUk9SKCAi
aW5wdXQgaW4gZmxleCBzY2FubmVyIGZhaWxlZCIgKTsgXAotCQkJCWJyZWFrOyBcCi0JCQkJfSBc
Ci0JCQllcnJubz0wOyBcCi0JCQljbGVhcmVycih5eWluKTsgXAotCQkJfSBcCi0JCX1cCi1cCi0K
LSNlbmRpZgotCi0vKiBObyBzZW1pLWNvbG9uIGFmdGVyIHJldHVybjsgY29ycmVjdCB1c2FnZSBp
cyB0byB3cml0ZSAieXl0ZXJtaW5hdGUoKTsiIC0KLSAqIHdlIGRvbid0IHdhbnQgYW4gZXh0cmEg
JzsnIGFmdGVyIHRoZSAicmV0dXJuIiBiZWNhdXNlIHRoYXQgd2lsbCBjYXVzZQotICogc29tZSBj
b21waWxlcnMgdG8gY29tcGxhaW4gYWJvdXQgdW5yZWFjaGFibGUgc3RhdGVtZW50cy4KLSAqLwot
I2lmbmRlZiB5eXRlcm1pbmF0ZQotI2RlZmluZSB5eXRlcm1pbmF0ZSgpIHJldHVybiBZWV9OVUxM
Ci0jZW5kaWYKLQotLyogTnVtYmVyIG9mIGVudHJpZXMgYnkgd2hpY2ggc3RhcnQtY29uZGl0aW9u
IHN0YWNrIGdyb3dzLiAqLwotI2lmbmRlZiBZWV9TVEFSVF9TVEFDS19JTkNSCi0jZGVmaW5lIFlZ
X1NUQVJUX1NUQUNLX0lOQ1IgMjUKLSNlbmRpZgotCi0vKiBSZXBvcnQgYSBmYXRhbCBlcnJvci4g
Ki8KLSNpZm5kZWYgWVlfRkFUQUxfRVJST1IKLSNkZWZpbmUgWVlfRkFUQUxfRVJST1IobXNnKSB5
eV9mYXRhbF9lcnJvciggbXNnICwgeXlzY2FubmVyKQotI2VuZGlmCi0KLS8qIGVuZCB0YWJsZXMg
c2VyaWFsaXphdGlvbiBzdHJ1Y3R1cmVzIGFuZCBwcm90b3R5cGVzICovCi0KLS8qIERlZmF1bHQg
ZGVjbGFyYXRpb24gb2YgZ2VuZXJhdGVkIHNjYW5uZXIgLSBhIGRlZmluZSBzbyB0aGUgdXNlciBj
YW4KLSAqIGVhc2lseSBhZGQgcGFyYW1ldGVycy4KLSAqLwotI2lmbmRlZiBZWV9ERUNMCi0jZGVm
aW5lIFlZX0RFQ0xfSVNfT1VSUyAxCi0KLWV4dGVybiBpbnQgeXlsZXggXAotICAgICAgICAgICAg
ICAgKFlZU1RZUEUgKiB5eWx2YWxfcGFyYW0sWVlMVFlQRSAqIHl5bGxvY19wYXJhbSAseXlzY2Fu
X3QgeXlzY2FubmVyKTsKLQotI2RlZmluZSBZWV9ERUNMIGludCB5eWxleCBcCi0gICAgICAgICAg
ICAgICAoWVlTVFlQRSAqIHl5bHZhbF9wYXJhbSwgWVlMVFlQRSAqIHl5bGxvY19wYXJhbSAsIHl5
c2Nhbl90IHl5c2Nhbm5lcikKLSNlbmRpZiAvKiAhWVlfREVDTCAqLwotCi0vKiBDb2RlIGV4ZWN1
dGVkIGF0IHRoZSBiZWdpbm5pbmcgb2YgZWFjaCBydWxlLCBhZnRlciB5eXRleHQgYW5kIHl5bGVu
ZwotICogaGF2ZSBiZWVuIHNldCB1cC4KLSAqLwotI2lmbmRlZiBZWV9VU0VSX0FDVElPTgotI2Rl
ZmluZSBZWV9VU0VSX0FDVElPTgotI2VuZGlmCi0KLS8qIENvZGUgZXhlY3V0ZWQgYXQgdGhlIGVu
ZCBvZiBlYWNoIHJ1bGUuICovCi0jaWZuZGVmIFlZX0JSRUFLCi0jZGVmaW5lIFlZX0JSRUFLIGJy
ZWFrOwotI2VuZGlmCi0KLSNkZWZpbmUgWVlfUlVMRV9TRVRVUCBcCi0JWVlfVVNFUl9BQ1RJT04K
LQotLyoqIFRoZSBtYWluIHNjYW5uZXIgZnVuY3Rpb24gd2hpY2ggZG9lcyBhbGwgdGhlIHdvcmsu
Ci0gKi8KLVlZX0RFQ0wKLXsKLQlyZWdpc3RlciB5eV9zdGF0ZV90eXBlIHl5X2N1cnJlbnRfc3Rh
dGU7Ci0JcmVnaXN0ZXIgY2hhciAqeXlfY3AsICp5eV9icDsKLQlyZWdpc3RlciBpbnQgeXlfYWN0
OwotICAgIHN0cnVjdCB5eWd1dHNfdCAqIHl5ZyA9IChzdHJ1Y3QgeXlndXRzX3QqKXl5c2Nhbm5l
cjsKLQotICAgIHl5bHZhbCA9IHl5bHZhbF9wYXJhbTsKLQotICAgIHl5bGxvYyA9IHl5bGxvY19w
YXJhbTsKLQotCWlmICggIXl5Zy0+eXlfaW5pdCApCi0JCXsKLQkJeXlnLT55eV9pbml0ID0gMTsK
LQotI2lmZGVmIFlZX1VTRVJfSU5JVAotCQlZWV9VU0VSX0lOSVQ7Ci0jZW5kaWYKLQotCQlpZiAo
ICEgeXlnLT55eV9zdGFydCApCi0JCQl5eWctPnl5X3N0YXJ0ID0gMTsJLyogZmlyc3Qgc3RhcnQg
c3RhdGUgKi8KLQotCQlpZiAoICEgeXlpbiApCi0JCQl5eWluID0gc3RkaW47Ci0KLQkJaWYgKCAh
IHl5b3V0ICkKLQkJCXl5b3V0ID0gc3Rkb3V0OwotCi0JCWlmICggISBZWV9DVVJSRU5UX0JVRkZF
UiApIHsKLQkJCXl5ZW5zdXJlX2J1ZmZlcl9zdGFjayAoeXlzY2FubmVyKTsKLQkJCVlZX0NVUlJF
TlRfQlVGRkVSX0xWQUxVRSA9Ci0JCQkJeXlfY3JlYXRlX2J1ZmZlcih5eWluLFlZX0JVRl9TSVpF
ICx5eXNjYW5uZXIpOwotCQl9Ci0KLQkJeXlfbG9hZF9idWZmZXJfc3RhdGUoeXlzY2FubmVyICk7
Ci0JCX0KLQotCXdoaWxlICggMSApCQkvKiBsb29wcyB1bnRpbCBlbmQtb2YtZmlsZSBpcyByZWFj
aGVkICovCi0JCXsKLQkJeXlfY3AgPSB5eWctPnl5X2NfYnVmX3A7Ci0KLQkJLyogU3VwcG9ydCBv
ZiB5eXRleHQuICovCi0JCSp5eV9jcCA9IHl5Zy0+eXlfaG9sZF9jaGFyOwotCi0JCS8qIHl5X2Jw
IHBvaW50cyB0byB0aGUgcG9zaXRpb24gaW4geXlfY2hfYnVmIG9mIHRoZSBzdGFydCBvZgotCQkg
KiB0aGUgY3VycmVudCBydW4uCi0JCSAqLwotCQl5eV9icCA9IHl5X2NwOwotCi0JCXl5X2N1cnJl
bnRfc3RhdGUgPSB5eWctPnl5X3N0YXJ0OwoteXlfbWF0Y2g6Ci0JCWRvCi0JCQl7Ci0JCQlyZWdp
c3RlciBZWV9DSEFSIHl5X2MgPSB5eV9lY1tZWV9TQ19UT19VSSgqeXlfY3ApXTsKLQkJCWlmICgg
eXlfYWNjZXB0W3l5X2N1cnJlbnRfc3RhdGVdICkKLQkJCQl7Ci0JCQkJeXlnLT55eV9sYXN0X2Fj
Y2VwdGluZ19zdGF0ZSA9IHl5X2N1cnJlbnRfc3RhdGU7Ci0JCQkJeXlnLT55eV9sYXN0X2FjY2Vw
dGluZ19jcG9zID0geXlfY3A7Ci0JCQkJfQotCQkJd2hpbGUgKCB5eV9jaGtbeXlfYmFzZVt5eV9j
dXJyZW50X3N0YXRlXSArIHl5X2NdICE9IHl5X2N1cnJlbnRfc3RhdGUgKQotCQkJCXsKLQkJCQl5
eV9jdXJyZW50X3N0YXRlID0gKGludCkgeXlfZGVmW3l5X2N1cnJlbnRfc3RhdGVdOwotCQkJCWlm
ICggeXlfY3VycmVudF9zdGF0ZSA+PSA0NDMgKQotCQkJCQl5eV9jID0geXlfbWV0YVsodW5zaWdu
ZWQgaW50KSB5eV9jXTsKLQkJCQl9Ci0JCQl5eV9jdXJyZW50X3N0YXRlID0geXlfbnh0W3l5X2Jh
c2VbeXlfY3VycmVudF9zdGF0ZV0gKyAodW5zaWduZWQgaW50KSB5eV9jXTsKLQkJCSsreXlfY3A7
Ci0JCQl9Ci0JCXdoaWxlICggeXlfY3VycmVudF9zdGF0ZSAhPSA0NDIgKTsKLQkJeXlfY3AgPSB5
eWctPnl5X2xhc3RfYWNjZXB0aW5nX2Nwb3M7Ci0JCXl5X2N1cnJlbnRfc3RhdGUgPSB5eWctPnl5
X2xhc3RfYWNjZXB0aW5nX3N0YXRlOwotCi15eV9maW5kX2FjdGlvbjoKLQkJeXlfYWN0ID0geXlf
YWNjZXB0W3l5X2N1cnJlbnRfc3RhdGVdOwotCi0JCVlZX0RPX0JFRk9SRV9BQ1RJT047Ci0KLQkJ
aWYgKCB5eV9hY3QgIT0gWVlfRU5EX09GX0JVRkZFUiAmJiB5eV9ydWxlX2Nhbl9tYXRjaF9lb2xb
eXlfYWN0XSApCi0JCQl7Ci0JCQl5eV9zaXplX3QgeXlsOwotCQkJZm9yICggeXlsID0gMDsgeXls
IDwgeXlsZW5nOyArK3l5bCApCi0JCQkJaWYgKCB5eXRleHRbeXlsXSA9PSAnXG4nICkKLQkJCQkJ
ICAgCi0gICAgZG97IHl5bGluZW5vKys7Ci0gICAgICAgIHl5Y29sdW1uPTA7Ci0gICAgfXdoaWxl
KDApCi07Ci0JCQl9Ci0KLWRvX2FjdGlvbjoJLyogVGhpcyBsYWJlbCBpcyB1c2VkIG9ubHkgdG8g
YWNjZXNzIEVPRiBhY3Rpb25zLiAqLwotCi0JCXN3aXRjaCAoIHl5X2FjdCApCi0JeyAvKiBiZWdp
bm5pbmcgb2YgYWN0aW9uIHN3aXRjaCAqLwotCQkJY2FzZSAwOiAvKiBtdXN0IGJhY2sgdXAgKi8K
LQkJCS8qIHVuZG8gdGhlIGVmZmVjdHMgb2YgWVlfRE9fQkVGT1JFX0FDVElPTiAqLwotCQkJKnl5
X2NwID0geXlnLT55eV9ob2xkX2NoYXI7Ci0JCQl5eV9jcCA9IHl5Zy0+eXlfbGFzdF9hY2NlcHRp
bmdfY3BvczsKLQkJCXl5X2N1cnJlbnRfc3RhdGUgPSB5eWctPnl5X2xhc3RfYWNjZXB0aW5nX3N0
YXRlOwotCQkJZ290byB5eV9maW5kX2FjdGlvbjsKLQotY2FzZSAxOgotWVlfUlVMRV9TRVRVUAot
eyByZXR1cm4gSU5WQVJJQU5UOyB9Ci0JWVlfQlJFQUsKLWNhc2UgMjoKLVlZX1JVTEVfU0VUVVAK
LXsgcmV0dXJuIEhJR0hfUFJFQ0lTSU9OOyB9Ci0JWVlfQlJFQUsKLWNhc2UgMzoKLVlZX1JVTEVf
U0VUVVAKLXsgcmV0dXJuIE1FRElVTV9QUkVDSVNJT047IH0KLQlZWV9CUkVBSwotY2FzZSA0Ogot
WVlfUlVMRV9TRVRVUAoteyByZXR1cm4gTE9XX1BSRUNJU0lPTjsgfQotCVlZX0JSRUFLCi1jYXNl
IDU6Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVybiBQUkVDSVNJT047IH0KLQlZWV9CUkVBSwotY2Fz
ZSA2OgotWVlfUlVMRV9TRVRVUAoteyByZXR1cm4gQVRUUklCVVRFOyB9Ci0JWVlfQlJFQUsKLWNh
c2UgNzoKLVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJuIENPTlNUX1FVQUw7IH0KLQlZWV9CUkVBSwot
Y2FzZSA4OgotWVlfUlVMRV9TRVRVUAoteyByZXR1cm4gVU5JRk9STTsgfQotCVlZX0JSRUFLCi1j
YXNlIDk6Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVybiBWQVJZSU5HOyB9Ci0JWVlfQlJFQUsKLWNh
c2UgMTA6Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVybiBCUkVBSzsgfQotCVlZX0JSRUFLCi1jYXNl
IDExOgotWVlfUlVMRV9TRVRVUAoteyByZXR1cm4gQ09OVElOVUU7IH0KLQlZWV9CUkVBSwotY2Fz
ZSAxMjoKLVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJuIERPOyB9Ci0JWVlfQlJFQUsKLWNhc2UgMTM6
Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVybiBGT1I7IH0KLQlZWV9CUkVBSwotY2FzZSAxNDoKLVlZ
X1JVTEVfU0VUVVAKLXsgcmV0dXJuIFdISUxFOyB9Ci0JWVlfQlJFQUsKLWNhc2UgMTU6Ci1ZWV9S
VUxFX1NFVFVQCi17IHJldHVybiBJRjsgfQotCVlZX0JSRUFLCi1jYXNlIDE2OgotWVlfUlVMRV9T
RVRVUAoteyByZXR1cm4gRUxTRTsgfQotCVlZX0JSRUFLCi1jYXNlIDE3OgotWVlfUlVMRV9TRVRV
UAoteyByZXR1cm4gSU5fUVVBTDsgfQotCVlZX0JSRUFLCi1jYXNlIDE4OgotWVlfUlVMRV9TRVRV
UAoteyByZXR1cm4gT1VUX1FVQUw7IH0KLQlZWV9CUkVBSwotY2FzZSAxOToKLVlZX1JVTEVfU0VU
VVAKLXsgcmV0dXJuIElOT1VUX1FVQUw7IH0KLQlZWV9CUkVBSwotY2FzZSAyMDoKLVlZX1JVTEVf
U0VUVVAKLXsgcmV0dXJuIEZMT0FUX1RZUEU7IH0KLQlZWV9CUkVBSwotY2FzZSAyMToKLVlZX1JV
TEVfU0VUVVAKLXsgcmV0dXJuIElOVF9UWVBFOyB9Ci0JWVlfQlJFQUsKLWNhc2UgMjI6Ci1ZWV9S
VUxFX1NFVFVQCi17IHJldHVybiBWT0lEX1RZUEU7IH0KLQlZWV9CUkVBSwotY2FzZSAyMzoKLVlZ
X1JVTEVfU0VUVVAKLXsgcmV0dXJuIEJPT0xfVFlQRTsgfQotCVlZX0JSRUFLCi1jYXNlIDI0Ogot
WVlfUlVMRV9TRVRVUAoteyB5eWx2YWwtPmxleC5iID0gdHJ1ZTsgIHJldHVybiBCT09MQ09OU1RB
TlQ7IH0KLQlZWV9CUkVBSwotY2FzZSAyNToKLVlZX1JVTEVfU0VUVVAKLXsgeXlsdmFsLT5sZXgu
YiA9IGZhbHNlOyByZXR1cm4gQk9PTENPTlNUQU5UOyB9Ci0JWVlfQlJFQUsKLWNhc2UgMjY6Ci1Z
WV9SVUxFX1NFVFVQCi17IHJldHVybiBESVNDQVJEOyB9Ci0JWVlfQlJFQUsKLWNhc2UgMjc6Ci1Z
WV9SVUxFX1NFVFVQCi17IHJldHVybiBSRVRVUk47IH0KLQlZWV9CUkVBSwotY2FzZSAyODoKLVlZ
X1JVTEVfU0VUVVAKLXsgcmV0dXJuIE1BVFJJWDI7IH0KLQlZWV9CUkVBSwotY2FzZSAyOToKLVlZ
X1JVTEVfU0VUVVAKLXsgcmV0dXJuIE1BVFJJWDM7IH0KLQlZWV9CUkVBSwotY2FzZSAzMDoKLVlZ
X1JVTEVfU0VUVVAKLXsgcmV0dXJuIE1BVFJJWDQ7IH0KLQlZWV9CUkVBSwotY2FzZSAzMToKLVlZ
X1JVTEVfU0VUVVAKLXsgcmV0dXJuIFZFQzI7IH0KLQlZWV9CUkVBSwotY2FzZSAzMjoKLVlZX1JV
TEVfU0VUVVAKLXsgcmV0dXJuIFZFQzM7IH0KLQlZWV9CUkVBSwotY2FzZSAzMzoKLVlZX1JVTEVf
U0VUVVAKLXsgcmV0dXJuIFZFQzQ7IH0KLQlZWV9CUkVBSwotY2FzZSAzNDoKLVlZX1JVTEVfU0VU
VVAKLXsgcmV0dXJuIElWRUMyOyB9Ci0JWVlfQlJFQUsKLWNhc2UgMzU6Ci1ZWV9SVUxFX1NFVFVQ
Ci17IHJldHVybiBJVkVDMzsgfQotCVlZX0JSRUFLCi1jYXNlIDM2OgotWVlfUlVMRV9TRVRVUAot
eyByZXR1cm4gSVZFQzQ7IH0KLQlZWV9CUkVBSwotY2FzZSAzNzoKLVlZX1JVTEVfU0VUVVAKLXsg
cmV0dXJuIEJWRUMyOyB9Ci0JWVlfQlJFQUsKLWNhc2UgMzg6Ci1ZWV9SVUxFX1NFVFVQCi17IHJl
dHVybiBCVkVDMzsgfQotCVlZX0JSRUFLCi1jYXNlIDM5OgotWVlfUlVMRV9TRVRVUAoteyByZXR1
cm4gQlZFQzQ7IH0KLQlZWV9CUkVBSwotY2FzZSA0MDoKLVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJu
IFNBTVBMRVIyRDsgfQotCVlZX0JSRUFLCi1jYXNlIDQxOgotWVlfUlVMRV9TRVRVUAoteyByZXR1
cm4gU0FNUExFUkNVQkU7IH0KLQlZWV9CUkVBSwotY2FzZSA0MjoKLVlZX1JVTEVfU0VUVVAKLXsg
cmV0dXJuIFNBTVBMRVJfRVhURVJOQUxfT0VTOyB9Ci0JWVlfQlJFQUsKLWNhc2UgNDM6Ci1ZWV9S
VUxFX1NFVFVQCi17IHJldHVybiBTQU1QTEVSMkRSRUNUOyB9Ci0JWVlfQlJFQUsKLWNhc2UgNDQ6
Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVybiBTVFJVQ1Q7IH0KLQlZWV9CUkVBSwotY2FzZSA0NToK
LVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJuIHJlc2VydmVkX3dvcmQoeXlzY2FubmVyKTsgfQotCVlZ
X0JSRUFLCi1jYXNlIDQ2OgotWVlfUlVMRV9TRVRVUAoteyByZXR1cm4gcmVzZXJ2ZWRfd29yZCh5
eXNjYW5uZXIpOyB9Ci0JWVlfQlJFQUsKLWNhc2UgNDc6Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVy
biByZXNlcnZlZF93b3JkKHl5c2Nhbm5lcik7IH0KLQlZWV9CUkVBSwotY2FzZSA0ODoKLVlZX1JV
TEVfU0VUVVAKLXsgcmV0dXJuIHJlc2VydmVkX3dvcmQoeXlzY2FubmVyKTsgfQotCVlZX0JSRUFL
Ci1jYXNlIDQ5OgotWVlfUlVMRV9TRVRVUAoteyByZXR1cm4gcmVzZXJ2ZWRfd29yZCh5eXNjYW5u
ZXIpOyB9Ci0JWVlfQlJFQUsKLWNhc2UgNTA6Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVybiByZXNl
cnZlZF93b3JkKHl5c2Nhbm5lcik7IH0KLQlZWV9CUkVBSwotY2FzZSA1MToKLVlZX1JVTEVfU0VU
VVAKLXsgcmV0dXJuIHJlc2VydmVkX3dvcmQoeXlzY2FubmVyKTsgfQotCVlZX0JSRUFLCi1jYXNl
IDUyOgotWVlfUlVMRV9TRVRVUAoteyByZXR1cm4gcmVzZXJ2ZWRfd29yZCh5eXNjYW5uZXIpOyB9
Ci0JWVlfQlJFQUsKLWNhc2UgNTM6Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVybiByZXNlcnZlZF93
b3JkKHl5c2Nhbm5lcik7IH0KLQlZWV9CUkVBSwotY2FzZSA1NDoKLVlZX1JVTEVfU0VUVVAKLXsg
cmV0dXJuIHJlc2VydmVkX3dvcmQoeXlzY2FubmVyKTsgfQotCVlZX0JSRUFLCi1jYXNlIDU1Ogot
WVlfUlVMRV9TRVRVUAoteyByZXR1cm4gcmVzZXJ2ZWRfd29yZCh5eXNjYW5uZXIpOyB9Ci0JWVlf
QlJFQUsKLWNhc2UgNTY6Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVybiByZXNlcnZlZF93b3JkKHl5
c2Nhbm5lcik7IH0KLQlZWV9CUkVBSwotY2FzZSA1NzoKLVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJu
IHJlc2VydmVkX3dvcmQoeXlzY2FubmVyKTsgfQotCVlZX0JSRUFLCi1jYXNlIDU4OgotWVlfUlVM
RV9TRVRVUAoteyByZXR1cm4gcmVzZXJ2ZWRfd29yZCh5eXNjYW5uZXIpOyB9Ci0JWVlfQlJFQUsK
LWNhc2UgNTk6Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVybiByZXNlcnZlZF93b3JkKHl5c2Nhbm5l
cik7IH0KLQlZWV9CUkVBSwotY2FzZSA2MDoKLVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJuIHJlc2Vy
dmVkX3dvcmQoeXlzY2FubmVyKTsgfQotCVlZX0JSRUFLCi1jYXNlIDYxOgotWVlfUlVMRV9TRVRV
UAoteyByZXR1cm4gcmVzZXJ2ZWRfd29yZCh5eXNjYW5uZXIpOyB9Ci0JWVlfQlJFQUsKLWNhc2Ug
NjI6Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVybiByZXNlcnZlZF93b3JkKHl5c2Nhbm5lcik7IH0K
LQlZWV9CUkVBSwotY2FzZSA2MzoKLVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJuIHJlc2VydmVkX3dv
cmQoeXlzY2FubmVyKTsgfQotCVlZX0JSRUFLCi1jYXNlIDY0OgotWVlfUlVMRV9TRVRVUAoteyBy
ZXR1cm4gcmVzZXJ2ZWRfd29yZCh5eXNjYW5uZXIpOyB9Ci0JWVlfQlJFQUsKLWNhc2UgNjU6Ci1Z
WV9SVUxFX1NFVFVQCi17IHJldHVybiByZXNlcnZlZF93b3JkKHl5c2Nhbm5lcik7IH0KLQlZWV9C
UkVBSwotY2FzZSA2NjoKLVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJuIHJlc2VydmVkX3dvcmQoeXlz
Y2FubmVyKTsgfQotCVlZX0JSRUFLCi1jYXNlIDY3OgotWVlfUlVMRV9TRVRVUAoteyByZXR1cm4g
cmVzZXJ2ZWRfd29yZCh5eXNjYW5uZXIpOyB9Ci0JWVlfQlJFQUsKLWNhc2UgNjg6Ci1ZWV9SVUxF
X1NFVFVQCi17IHJldHVybiByZXNlcnZlZF93b3JkKHl5c2Nhbm5lcik7IH0KLQlZWV9CUkVBSwot
Y2FzZSA2OToKLVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJuIHJlc2VydmVkX3dvcmQoeXlzY2FubmVy
KTsgfQotCVlZX0JSRUFLCi1jYXNlIDcwOgotWVlfUlVMRV9TRVRVUAoteyByZXR1cm4gcmVzZXJ2
ZWRfd29yZCh5eXNjYW5uZXIpOyB9Ci0JWVlfQlJFQUsKLWNhc2UgNzE6Ci1ZWV9SVUxFX1NFVFVQ
Ci17IHJldHVybiByZXNlcnZlZF93b3JkKHl5c2Nhbm5lcik7IH0KLQlZWV9CUkVBSwotY2FzZSA3
MjoKLVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJuIHJlc2VydmVkX3dvcmQoeXlzY2FubmVyKTsgfQot
CVlZX0JSRUFLCi1jYXNlIDczOgotWVlfUlVMRV9TRVRVUAoteyByZXR1cm4gcmVzZXJ2ZWRfd29y
ZCh5eXNjYW5uZXIpOyB9Ci0JWVlfQlJFQUsKLWNhc2UgNzQ6Ci1ZWV9SVUxFX1NFVFVQCi17IHJl
dHVybiByZXNlcnZlZF93b3JkKHl5c2Nhbm5lcik7IH0KLQlZWV9CUkVBSwotY2FzZSA3NToKLVlZ
X1JVTEVfU0VUVVAKLXsgcmV0dXJuIHJlc2VydmVkX3dvcmQoeXlzY2FubmVyKTsgfQotCVlZX0JS
RUFLCi1jYXNlIDc2OgotWVlfUlVMRV9TRVRVUAoteyByZXR1cm4gcmVzZXJ2ZWRfd29yZCh5eXNj
YW5uZXIpOyB9Ci0JWVlfQlJFQUsKLWNhc2UgNzc6Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVybiBy
ZXNlcnZlZF93b3JkKHl5c2Nhbm5lcik7IH0KLQlZWV9CUkVBSwotY2FzZSA3ODoKLVlZX1JVTEVf
U0VUVVAKLXsgcmV0dXJuIHJlc2VydmVkX3dvcmQoeXlzY2FubmVyKTsgfQotCVlZX0JSRUFLCi1j
YXNlIDc5OgotWVlfUlVMRV9TRVRVUAoteyByZXR1cm4gcmVzZXJ2ZWRfd29yZCh5eXNjYW5uZXIp
OyB9Ci0JWVlfQlJFQUsKLWNhc2UgODA6Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVybiByZXNlcnZl
ZF93b3JkKHl5c2Nhbm5lcik7IH0KLQlZWV9CUkVBSwotY2FzZSA4MToKLVlZX1JVTEVfU0VUVVAK
LXsgcmV0dXJuIHJlc2VydmVkX3dvcmQoeXlzY2FubmVyKTsgfQotCVlZX0JSRUFLCi1jYXNlIDgy
OgotWVlfUlVMRV9TRVRVUAoteyByZXR1cm4gcmVzZXJ2ZWRfd29yZCh5eXNjYW5uZXIpOyB9Ci0J
WVlfQlJFQUsKLWNhc2UgODM6Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVybiByZXNlcnZlZF93b3Jk
KHl5c2Nhbm5lcik7IH0KLQlZWV9CUkVBSwotY2FzZSA4NDoKLVlZX1JVTEVfU0VUVVAKLXsgcmV0
dXJuIHJlc2VydmVkX3dvcmQoeXlzY2FubmVyKTsgfQotCVlZX0JSRUFLCi1jYXNlIDg1OgotWVlf
UlVMRV9TRVRVUAoteyByZXR1cm4gcmVzZXJ2ZWRfd29yZCh5eXNjYW5uZXIpOyB9Ci0JWVlfQlJF
QUsKLWNhc2UgODY6Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVybiByZXNlcnZlZF93b3JkKHl5c2Nh
bm5lcik7IH0KLQlZWV9CUkVBSwotY2FzZSA4NzoKLVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJuIHJl
c2VydmVkX3dvcmQoeXlzY2FubmVyKTsgfQotCVlZX0JSRUFLCi1jYXNlIDg4OgotWVlfUlVMRV9T
RVRVUAoteyByZXR1cm4gcmVzZXJ2ZWRfd29yZCh5eXNjYW5uZXIpOyB9Ci0JWVlfQlJFQUsKLWNh
c2UgODk6Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVybiByZXNlcnZlZF93b3JkKHl5c2Nhbm5lcik7
IH0KLQlZWV9CUkVBSwotY2FzZSA5MDoKLVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJuIHJlc2VydmVk
X3dvcmQoeXlzY2FubmVyKTsgfQotCVlZX0JSRUFLCi1jYXNlIDkxOgotWVlfUlVMRV9TRVRVUAot
eyByZXR1cm4gcmVzZXJ2ZWRfd29yZCh5eXNjYW5uZXIpOyB9Ci0JWVlfQlJFQUsKLWNhc2UgOTI6
Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVybiByZXNlcnZlZF93b3JkKHl5c2Nhbm5lcik7IH0KLQlZ
WV9CUkVBSwotY2FzZSA5MzoKLVlZX1JVTEVfU0VUVVAKLXsKLSAgIHl5bHZhbC0+bGV4LnN0cmlu
ZyA9IE5ld1Bvb2xUU3RyaW5nKHl5dGV4dCk7IAotICAgcmV0dXJuIGNoZWNrX3R5cGUoeXlzY2Fu
bmVyKTsKLX0KLQlZWV9CUkVBSwotY2FzZSA5NDoKLVlZX1JVTEVfU0VUVVAKLXsgeXlsdmFsLT5s
ZXguaSA9IHN0YXRpY19jYXN0PGludD4oc3RydG9sKHl5dGV4dCwgMCwgMCkpOyByZXR1cm4gSU5U
Q09OU1RBTlQ7IH0KLQlZWV9CUkVBSwotY2FzZSA5NToKLVlZX1JVTEVfU0VUVVAKLXsgeXlsdmFs
LT5sZXguaSA9IHN0YXRpY19jYXN0PGludD4oc3RydG9sKHl5dGV4dCwgMCwgMCkpOyByZXR1cm4g
SU5UQ09OU1RBTlQ7IH0KLQlZWV9CUkVBSwotY2FzZSA5NjoKLVlZX1JVTEVfU0VUVVAKLXsgeXls
dmFsLT5sZXguaSA9IHN0YXRpY19jYXN0PGludD4oc3RydG9sKHl5dGV4dCwgMCwgMCkpOyByZXR1
cm4gSU5UQ09OU1RBTlQ7IH0KLQlZWV9CUkVBSwotY2FzZSA5NzoKLVlZX1JVTEVfU0VUVVAKLXsg
eXlsdmFsLT5sZXguZiA9IHN0YXRpY19jYXN0PGZsb2F0PihhdG9mX2RvdCh5eXRleHQpKTsgcmV0
dXJuIEZMT0FUQ09OU1RBTlQ7IH0KLQlZWV9CUkVBSwotY2FzZSA5ODoKLVlZX1JVTEVfU0VUVVAK
LXsgeXlsdmFsLT5sZXguZiA9IHN0YXRpY19jYXN0PGZsb2F0PihhdG9mX2RvdCh5eXRleHQpKTsg
cmV0dXJuIEZMT0FUQ09OU1RBTlQ7IH0KLQlZWV9CUkVBSwotY2FzZSA5OToKLVlZX1JVTEVfU0VU
VVAKLXsgeXlsdmFsLT5sZXguZiA9IHN0YXRpY19jYXN0PGZsb2F0PihhdG9mX2RvdCh5eXRleHQp
KTsgcmV0dXJuIEZMT0FUQ09OU1RBTlQ7IH0KLQlZWV9CUkVBSwotY2FzZSAxMDA6Ci1ZWV9SVUxF
X1NFVFVQCi17IHJldHVybiBBRERfQVNTSUdOOyB9Ci0JWVlfQlJFQUsKLWNhc2UgMTAxOgotWVlf
UlVMRV9TRVRVUAoteyByZXR1cm4gU1VCX0FTU0lHTjsgfQotCVlZX0JSRUFLCi1jYXNlIDEwMjoK
LVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJuIE1VTF9BU1NJR047IH0KLQlZWV9CUkVBSwotY2FzZSAx
MDM6Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVybiBESVZfQVNTSUdOOyB9Ci0JWVlfQlJFQUsKLWNh
c2UgMTA0OgotWVlfUlVMRV9TRVRVUAoteyByZXR1cm4gTU9EX0FTU0lHTjsgfQotCVlZX0JSRUFL
Ci1jYXNlIDEwNToKLVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJuIExFRlRfQVNTSUdOOyB9Ci0JWVlf
QlJFQUsKLWNhc2UgMTA2OgotWVlfUlVMRV9TRVRVUAoteyByZXR1cm4gUklHSFRfQVNTSUdOOyB9
Ci0JWVlfQlJFQUsKLWNhc2UgMTA3OgotWVlfUlVMRV9TRVRVUAoteyByZXR1cm4gQU5EX0FTU0lH
TjsgfQotCVlZX0JSRUFLCi1jYXNlIDEwODoKLVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJuIFhPUl9B
U1NJR047IH0KLQlZWV9CUkVBSwotY2FzZSAxMDk6Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVybiBP
Ul9BU1NJR047IH0KLQlZWV9CUkVBSwotY2FzZSAxMTA6Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVy
biBJTkNfT1A7IH0KLQlZWV9CUkVBSwotY2FzZSAxMTE6Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVy
biBERUNfT1A7IH0KLQlZWV9CUkVBSwotY2FzZSAxMTI6Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVy
biBBTkRfT1A7IH0KLQlZWV9CUkVBSwotY2FzZSAxMTM6Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVy
biBPUl9PUDsgfQotCVlZX0JSRUFLCi1jYXNlIDExNDoKLVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJu
IFhPUl9PUDsgfQotCVlZX0JSRUFLCi1jYXNlIDExNToKLVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJu
IExFX09QOyB9Ci0JWVlfQlJFQUsKLWNhc2UgMTE2OgotWVlfUlVMRV9TRVRVUAoteyByZXR1cm4g
R0VfT1A7IH0KLQlZWV9CUkVBSwotY2FzZSAxMTc6Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVybiBF
UV9PUDsgfQotCVlZX0JSRUFLCi1jYXNlIDExODoKLVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJuIE5F
X09QOyB9Ci0JWVlfQlJFQUsKLWNhc2UgMTE5OgotWVlfUlVMRV9TRVRVUAoteyByZXR1cm4gTEVG
VF9PUDsgfQotCVlZX0JSRUFLCi1jYXNlIDEyMDoKLVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJuIFJJ
R0hUX09QOyB9Ci0JWVlfQlJFQUsKLWNhc2UgMTIxOgotWVlfUlVMRV9TRVRVUAoteyByZXR1cm4g
U0VNSUNPTE9OOyB9Ci0JWVlfQlJFQUsKLWNhc2UgMTIyOgotWVlfUlVMRV9TRVRVUAoteyByZXR1
cm4gTEVGVF9CUkFDRTsgfQotCVlZX0JSRUFLCi1jYXNlIDEyMzoKLVlZX1JVTEVfU0VUVVAKLXsg
cmV0dXJuIFJJR0hUX0JSQUNFOyB9Ci0JWVlfQlJFQUsKLWNhc2UgMTI0OgotWVlfUlVMRV9TRVRV
UAoteyByZXR1cm4gQ09NTUE7IH0KLQlZWV9CUkVBSwotY2FzZSAxMjU6Ci1ZWV9SVUxFX1NFVFVQ
Ci17IHJldHVybiBDT0xPTjsgfQotCVlZX0JSRUFLCi1jYXNlIDEyNjoKLVlZX1JVTEVfU0VUVVAK
LXsgcmV0dXJuIEVRVUFMOyB9Ci0JWVlfQlJFQUsKLWNhc2UgMTI3OgotWVlfUlVMRV9TRVRVUAot
eyByZXR1cm4gTEVGVF9QQVJFTjsgfQotCVlZX0JSRUFLCi1jYXNlIDEyODoKLVlZX1JVTEVfU0VU
VVAKLXsgcmV0dXJuIFJJR0hUX1BBUkVOOyB9Ci0JWVlfQlJFQUsKLWNhc2UgMTI5OgotWVlfUlVM
RV9TRVRVUAoteyByZXR1cm4gTEVGVF9CUkFDS0VUOyB9Ci0JWVlfQlJFQUsKLWNhc2UgMTMwOgot
WVlfUlVMRV9TRVRVUAoteyByZXR1cm4gUklHSFRfQlJBQ0tFVDsgfQotCVlZX0JSRUFLCi1jYXNl
IDEzMToKLVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJuIERPVDsgfQotCVlZX0JSRUFLCi1jYXNlIDEz
MjoKLVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJuIEJBTkc7IH0KLQlZWV9CUkVBSwotY2FzZSAxMzM6
Ci1ZWV9SVUxFX1NFVFVQCi17IHJldHVybiBEQVNIOyB9Ci0JWVlfQlJFQUsKLWNhc2UgMTM0Ogot
WVlfUlVMRV9TRVRVUAoteyByZXR1cm4gVElMREU7IH0KLQlZWV9CUkVBSwotY2FzZSAxMzU6Ci1Z
WV9SVUxFX1NFVFVQCi17IHJldHVybiBQTFVTOyB9Ci0JWVlfQlJFQUsKLWNhc2UgMTM2OgotWVlf
UlVMRV9TRVRVUAoteyByZXR1cm4gU1RBUjsgfQotCVlZX0JSRUFLCi1jYXNlIDEzNzoKLVlZX1JV
TEVfU0VUVVAKLXsgcmV0dXJuIFNMQVNIOyB9Ci0JWVlfQlJFQUsKLWNhc2UgMTM4OgotWVlfUlVM
RV9TRVRVUAoteyByZXR1cm4gUEVSQ0VOVDsgfQotCVlZX0JSRUFLCi1jYXNlIDEzOToKLVlZX1JV
TEVfU0VUVVAKLXsgcmV0dXJuIExFRlRfQU5HTEU7IH0KLQlZWV9CUkVBSwotY2FzZSAxNDA6Ci1Z
WV9SVUxFX1NFVFVQCi17IHJldHVybiBSSUdIVF9BTkdMRTsgfQotCVlZX0JSRUFLCi1jYXNlIDE0
MToKLVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJuIFZFUlRJQ0FMX0JBUjsgfQotCVlZX0JSRUFLCi1j
YXNlIDE0MjoKLVlZX1JVTEVfU0VUVVAKLXsgcmV0dXJuIENBUkVUOyB9Ci0JWVlfQlJFQUsKLWNh
c2UgMTQzOgotWVlfUlVMRV9TRVRVUAoteyByZXR1cm4gQU1QRVJTQU5EOyB9Ci0JWVlfQlJFQUsK
LWNhc2UgMTQ0OgotWVlfUlVMRV9TRVRVUAoteyByZXR1cm4gUVVFU1RJT047IH0KLQlZWV9CUkVB
SwotY2FzZSAxNDU6Ci0vKiBydWxlIDE0NSBjYW4gbWF0Y2ggZW9sICovCi1ZWV9SVUxFX1NFVFVQ
Ci17IH0KLQlZWV9CUkVBSwotY2FzZSBZWV9TVEFURV9FT0YoSU5JVElBTCk6Ci17IHl5dGVybWlu
YXRlKCk7IH0KLQlZWV9CUkVBSwotY2FzZSAxNDY6Ci1ZWV9SVUxFX1NFVFVQCi17IGFzc2VydChm
YWxzZSk7IHJldHVybiAwOyB9Ci0JWVlfQlJFQUsKLWNhc2UgMTQ3OgotWVlfUlVMRV9TRVRVUAot
RUNITzsKLQlZWV9CUkVBSwotCi0JY2FzZSBZWV9FTkRfT0ZfQlVGRkVSOgotCQl7Ci0JCS8qIEFt
b3VudCBvZiB0ZXh0IG1hdGNoZWQgbm90IGluY2x1ZGluZyB0aGUgRU9CIGNoYXIuICovCi0JCWlu
dCB5eV9hbW91bnRfb2ZfbWF0Y2hlZF90ZXh0ID0gKGludCkgKHl5X2NwIC0geXlnLT55eXRleHRf
cHRyKSAtIDE7Ci0KLQkJLyogVW5kbyB0aGUgZWZmZWN0cyBvZiBZWV9ET19CRUZPUkVfQUNUSU9O
LiAqLwotCQkqeXlfY3AgPSB5eWctPnl5X2hvbGRfY2hhcjsKLQkJWVlfUkVTVE9SRV9ZWV9NT1JF
X09GRlNFVAotCi0JCWlmICggWVlfQ1VSUkVOVF9CVUZGRVJfTFZBTFVFLT55eV9idWZmZXJfc3Rh
dHVzID09IFlZX0JVRkZFUl9ORVcgKQotCQkJewotCQkJLyogV2UncmUgc2Nhbm5pbmcgYSBuZXcg
ZmlsZSBvciBpbnB1dCBzb3VyY2UuICBJdCdzCi0JCQkgKiBwb3NzaWJsZSB0aGF0IHRoaXMgaGFw
cGVuZWQgYmVjYXVzZSB0aGUgdXNlcgotCQkJICoganVzdCBwb2ludGVkIHl5aW4gYXQgYSBuZXcg
c291cmNlIGFuZCBjYWxsZWQKLQkJCSAqIHl5bGV4KCkuICBJZiBzbywgdGhlbiB3ZSBoYXZlIHRv
IGFzc3VyZQotCQkJICogY29uc2lzdGVuY3kgYmV0d2VlbiBZWV9DVVJSRU5UX0JVRkZFUiBhbmQg
b3VyCi0JCQkgKiBnbG9iYWxzLiAgSGVyZSBpcyB0aGUgcmlnaHQgcGxhY2UgdG8gZG8gc28sIGJl
Y2F1c2UKLQkJCSAqIHRoaXMgaXMgdGhlIGZpcnN0IGFjdGlvbiAob3RoZXIgdGhhbiBwb3NzaWJs
eSBhCi0JCQkgKiBiYWNrLXVwKSB0aGF0IHdpbGwgbWF0Y2ggZm9yIHRoZSBuZXcgaW5wdXQgc291
cmNlLgotCQkJICovCi0JCQl5eWctPnl5X25fY2hhcnMgPSBZWV9DVVJSRU5UX0JVRkZFUl9MVkFM
VUUtPnl5X25fY2hhcnM7Ci0JCQlZWV9DVVJSRU5UX0JVRkZFUl9MVkFMVUUtPnl5X2lucHV0X2Zp
bGUgPSB5eWluOwotCQkJWVlfQ1VSUkVOVF9CVUZGRVJfTFZBTFVFLT55eV9idWZmZXJfc3RhdHVz
ID0gWVlfQlVGRkVSX05PUk1BTDsKLQkJCX0KLQotCQkvKiBOb3RlIHRoYXQgaGVyZSB3ZSB0ZXN0
IGZvciB5eV9jX2J1Zl9wICI8PSIgdG8gdGhlIHBvc2l0aW9uCi0JCSAqIG9mIHRoZSBmaXJzdCBF
T0IgaW4gdGhlIGJ1ZmZlciwgc2luY2UgeXlfY19idWZfcCB3aWxsCi0JCSAqIGFscmVhZHkgaGF2
ZSBiZWVuIGluY3JlbWVudGVkIHBhc3QgdGhlIE5VTCBjaGFyYWN0ZXIKLQkJICogKHNpbmNlIGFs
bCBzdGF0ZXMgbWFrZSB0cmFuc2l0aW9ucyBvbiBFT0IgdG8gdGhlCi0JCSAqIGVuZC1vZi1idWZm
ZXIgc3RhdGUpLiAgQ29udHJhc3QgdGhpcyB3aXRoIHRoZSB0ZXN0Ci0JCSAqIGluIGlucHV0KCku
Ci0JCSAqLwotCQlpZiAoIHl5Zy0+eXlfY19idWZfcCA8PSAmWVlfQ1VSUkVOVF9CVUZGRVJfTFZB
TFVFLT55eV9jaF9idWZbeXlnLT55eV9uX2NoYXJzXSApCi0JCQl7IC8qIFRoaXMgd2FzIHJlYWxs
eSBhIE5VTC4gKi8KLQkJCXl5X3N0YXRlX3R5cGUgeXlfbmV4dF9zdGF0ZTsKLQotCQkJeXlnLT55
eV9jX2J1Zl9wID0geXlnLT55eXRleHRfcHRyICsgeXlfYW1vdW50X29mX21hdGNoZWRfdGV4dDsK
LQotCQkJeXlfY3VycmVudF9zdGF0ZSA9IHl5X2dldF9wcmV2aW91c19zdGF0ZSggeXlzY2FubmVy
ICk7Ci0KLQkJCS8qIE9rYXksIHdlJ3JlIG5vdyBwb3NpdGlvbmVkIHRvIG1ha2UgdGhlIE5VTAot
CQkJICogdHJhbnNpdGlvbi4gIFdlIGNvdWxkbid0IGhhdmUKLQkJCSAqIHl5X2dldF9wcmV2aW91
c19zdGF0ZSgpIGdvIGFoZWFkIGFuZCBkbyBpdAotCQkJICogZm9yIHVzIGJlY2F1c2UgaXQgZG9l
c24ndCBrbm93IGhvdyB0byBkZWFsCi0JCQkgKiB3aXRoIHRoZSBwb3NzaWJpbGl0eSBvZiBqYW1t
aW5nIChhbmQgd2UgZG9uJ3QKLQkJCSAqIHdhbnQgdG8gYnVpbGQgamFtbWluZyBpbnRvIGl0IGJl
Y2F1c2UgdGhlbiBpdAotCQkJICogd2lsbCBydW4gbW9yZSBzbG93bHkpLgotCQkJICovCi0KLQkJ
CXl5X25leHRfc3RhdGUgPSB5eV90cnlfTlVMX3RyYW5zKCB5eV9jdXJyZW50X3N0YXRlICwgeXlz
Y2FubmVyKTsKLQotCQkJeXlfYnAgPSB5eWctPnl5dGV4dF9wdHIgKyBZWV9NT1JFX0FESjsKLQot
CQkJaWYgKCB5eV9uZXh0X3N0YXRlICkKLQkJCQl7Ci0JCQkJLyogQ29uc3VtZSB0aGUgTlVMLiAq
LwotCQkJCXl5X2NwID0gKyt5eWctPnl5X2NfYnVmX3A7Ci0JCQkJeXlfY3VycmVudF9zdGF0ZSA9
IHl5X25leHRfc3RhdGU7Ci0JCQkJZ290byB5eV9tYXRjaDsKLQkJCQl9Ci0KLQkJCWVsc2UKLQkJ
CQl7Ci0JCQkJeXlfY3AgPSB5eWctPnl5X2xhc3RfYWNjZXB0aW5nX2Nwb3M7Ci0JCQkJeXlfY3Vy
cmVudF9zdGF0ZSA9IHl5Zy0+eXlfbGFzdF9hY2NlcHRpbmdfc3RhdGU7Ci0JCQkJZ290byB5eV9m
aW5kX2FjdGlvbjsKLQkJCQl9Ci0JCQl9Ci0KLQkJZWxzZSBzd2l0Y2ggKCB5eV9nZXRfbmV4dF9i
dWZmZXIoIHl5c2Nhbm5lciApICkKLQkJCXsKLQkJCWNhc2UgRU9CX0FDVF9FTkRfT0ZfRklMRToK
LQkJCQl7Ci0JCQkJeXlnLT55eV9kaWRfYnVmZmVyX3N3aXRjaF9vbl9lb2YgPSAwOwotCi0JCQkJ
aWYgKCB5eXdyYXAoeXlzY2FubmVyICkgKQotCQkJCQl7Ci0JCQkJCS8qIE5vdGU6IGJlY2F1c2Ug
d2UndmUgdGFrZW4gY2FyZSBpbgotCQkJCQkgKiB5eV9nZXRfbmV4dF9idWZmZXIoKSB0byBoYXZl
IHNldCB1cAotCQkJCQkgKiB5eXRleHQsIHdlIGNhbiBub3cgc2V0IHVwCi0JCQkJCSAqIHl5X2Nf
YnVmX3Agc28gdGhhdCBpZiBzb21lIHRvdGFsCi0JCQkJCSAqIGhvc2VyIChsaWtlIGZsZXggaXRz
ZWxmKSB3YW50cyB0bwotCQkJCQkgKiBjYWxsIHRoZSBzY2FubmVyIGFmdGVyIHdlIHJldHVybiB0
aGUKLQkJCQkJICogWVlfTlVMTCwgaXQnbGwgc3RpbGwgd29yayAtIGFub3RoZXIKLQkJCQkJICog
WVlfTlVMTCB3aWxsIGdldCByZXR1cm5lZC4KLQkJCQkJICovCi0JCQkJCXl5Zy0+eXlfY19idWZf
cCA9IHl5Zy0+eXl0ZXh0X3B0ciArIFlZX01PUkVfQURKOwotCi0JCQkJCXl5X2FjdCA9IFlZX1NU
QVRFX0VPRihZWV9TVEFSVCk7Ci0JCQkJCWdvdG8gZG9fYWN0aW9uOwotCQkJCQl9Ci0KLQkJCQll
bHNlCi0JCQkJCXsKLQkJCQkJaWYgKCAhIHl5Zy0+eXlfZGlkX2J1ZmZlcl9zd2l0Y2hfb25fZW9m
ICkKLQkJCQkJCVlZX05FV19GSUxFOwotCQkJCQl9Ci0JCQkJYnJlYWs7Ci0JCQkJfQotCi0JCQlj
YXNlIEVPQl9BQ1RfQ09OVElOVUVfU0NBTjoKLQkJCQl5eWctPnl5X2NfYnVmX3AgPQotCQkJCQl5
eWctPnl5dGV4dF9wdHIgKyB5eV9hbW91bnRfb2ZfbWF0Y2hlZF90ZXh0OwotCi0JCQkJeXlfY3Vy
cmVudF9zdGF0ZSA9IHl5X2dldF9wcmV2aW91c19zdGF0ZSggeXlzY2FubmVyICk7Ci0KLQkJCQl5
eV9jcCA9IHl5Zy0+eXlfY19idWZfcDsKLQkJCQl5eV9icCA9IHl5Zy0+eXl0ZXh0X3B0ciArIFlZ
X01PUkVfQURKOwotCQkJCWdvdG8geXlfbWF0Y2g7Ci0KLQkJCWNhc2UgRU9CX0FDVF9MQVNUX01B
VENIOgotCQkJCXl5Zy0+eXlfY19idWZfcCA9Ci0JCQkJJllZX0NVUlJFTlRfQlVGRkVSX0xWQUxV
RS0+eXlfY2hfYnVmW3l5Zy0+eXlfbl9jaGFyc107Ci0KLQkJCQl5eV9jdXJyZW50X3N0YXRlID0g
eXlfZ2V0X3ByZXZpb3VzX3N0YXRlKCB5eXNjYW5uZXIgKTsKLQotCQkJCXl5X2NwID0geXlnLT55
eV9jX2J1Zl9wOwotCQkJCXl5X2JwID0geXlnLT55eXRleHRfcHRyICsgWVlfTU9SRV9BREo7Ci0J
CQkJZ290byB5eV9maW5kX2FjdGlvbjsKLQkJCX0KLQkJYnJlYWs7Ci0JCX0KLQotCWRlZmF1bHQ6
Ci0JCVlZX0ZBVEFMX0VSUk9SKAotCQkJImZhdGFsIGZsZXggc2Nhbm5lciBpbnRlcm5hbCBlcnJv
ci0tbm8gYWN0aW9uIGZvdW5kIiApOwotCX0gLyogZW5kIG9mIGFjdGlvbiBzd2l0Y2ggKi8KLQkJ
fSAvKiBlbmQgb2Ygc2Nhbm5pbmcgb25lIHRva2VuICovCi19IC8qIGVuZCBvZiB5eWxleCAqLwot
Ci0vKiB5eV9nZXRfbmV4dF9idWZmZXIgLSB0cnkgdG8gcmVhZCBpbiBhIG5ldyBidWZmZXIKLSAq
Ci0gKiBSZXR1cm5zIGEgY29kZSByZXByZXNlbnRpbmcgYW4gYWN0aW9uOgotICoJRU9CX0FDVF9M
QVNUX01BVENIIC0KLSAqCUVPQl9BQ1RfQ09OVElOVUVfU0NBTiAtIGNvbnRpbnVlIHNjYW5uaW5n
IGZyb20gY3VycmVudCBwb3NpdGlvbgotICoJRU9CX0FDVF9FTkRfT0ZfRklMRSAtIGVuZCBvZiBm
aWxlCi0gKi8KLXN0YXRpYyBpbnQgeXlfZ2V0X25leHRfYnVmZmVyICh5eXNjYW5fdCB5eXNjYW5u
ZXIpCi17Ci0gICAgc3RydWN0IHl5Z3V0c190ICogeXlnID0gKHN0cnVjdCB5eWd1dHNfdCopeXlz
Y2FubmVyOwotCXJlZ2lzdGVyIGNoYXIgKmRlc3QgPSBZWV9DVVJSRU5UX0JVRkZFUl9MVkFMVUUt
Pnl5X2NoX2J1ZjsKLQlyZWdpc3RlciBjaGFyICpzb3VyY2UgPSB5eWctPnl5dGV4dF9wdHI7Ci0J
cmVnaXN0ZXIgaW50IG51bWJlcl90b19tb3ZlLCBpOwotCWludCByZXRfdmFsOwotCi0JaWYgKCB5
eWctPnl5X2NfYnVmX3AgPiAmWVlfQ1VSUkVOVF9CVUZGRVJfTFZBTFVFLT55eV9jaF9idWZbeXln
LT55eV9uX2NoYXJzICsgMV0gKQotCQlZWV9GQVRBTF9FUlJPUigKLQkJImZhdGFsIGZsZXggc2Nh
bm5lciBpbnRlcm5hbCBlcnJvci0tZW5kIG9mIGJ1ZmZlciBtaXNzZWQiICk7Ci0KLQlpZiAoIFlZ
X0NVUlJFTlRfQlVGRkVSX0xWQUxVRS0+eXlfZmlsbF9idWZmZXIgPT0gMCApCi0JCXsgLyogRG9u
J3QgdHJ5IHRvIGZpbGwgdGhlIGJ1ZmZlciwgc28gdGhpcyBpcyBhbiBFT0YuICovCi0JCWlmICgg
eXlnLT55eV9jX2J1Zl9wIC0geXlnLT55eXRleHRfcHRyIC0gWVlfTU9SRV9BREogPT0gMSApCi0J
CQl7Ci0JCQkvKiBXZSBtYXRjaGVkIGEgc2luZ2xlIGNoYXJhY3RlciwgdGhlIEVPQiwgc28KLQkJ
CSAqIHRyZWF0IHRoaXMgYXMgYSBmaW5hbCBFT0YuCi0JCQkgKi8KLQkJCXJldHVybiBFT0JfQUNU
X0VORF9PRl9GSUxFOwotCQkJfQotCi0JCWVsc2UKLQkJCXsKLQkJCS8qIFdlIG1hdGNoZWQgc29t
ZSB0ZXh0IHByaW9yIHRvIHRoZSBFT0IsIGZpcnN0Ci0JCQkgKiBwcm9jZXNzIGl0LgotCQkJICov
Ci0JCQlyZXR1cm4gRU9CX0FDVF9MQVNUX01BVENIOwotCQkJfQotCQl9Ci0KLQkvKiBUcnkgdG8g
cmVhZCBtb3JlIGRhdGEuICovCi0KLQkvKiBGaXJzdCBtb3ZlIGxhc3QgY2hhcnMgdG8gc3RhcnQg
b2YgYnVmZmVyLiAqLwotCW51bWJlcl90b19tb3ZlID0gKGludCkgKHl5Zy0+eXlfY19idWZfcCAt
IHl5Zy0+eXl0ZXh0X3B0cikgLSAxOwotCi0JZm9yICggaSA9IDA7IGkgPCBudW1iZXJfdG9fbW92
ZTsgKytpICkKLQkJKihkZXN0KyspID0gKihzb3VyY2UrKyk7Ci0KLQlpZiAoIFlZX0NVUlJFTlRf
QlVGRkVSX0xWQUxVRS0+eXlfYnVmZmVyX3N0YXR1cyA9PSBZWV9CVUZGRVJfRU9GX1BFTkRJTkcg
KQotCQkvKiBkb24ndCBkbyB0aGUgcmVhZCwgaXQncyBub3QgZ3VhcmFudGVlZCB0byByZXR1cm4g
YW4gRU9GLAotCQkgKiBqdXN0IGZvcmNlIGFuIEVPRgotCQkgKi8KLQkJWVlfQ1VSUkVOVF9CVUZG
RVJfTFZBTFVFLT55eV9uX2NoYXJzID0geXlnLT55eV9uX2NoYXJzID0gMDsKLQotCWVsc2UKLQkJ
ewotCQkJeXlfc2l6ZV90IG51bV90b19yZWFkID0KLQkJCVlZX0NVUlJFTlRfQlVGRkVSX0xWQUxV
RS0+eXlfYnVmX3NpemUgLSBudW1iZXJfdG9fbW92ZSAtIDE7Ci0KLQkJd2hpbGUgKCBudW1fdG9f
cmVhZCA8PSAwICkKLQkJCXsgLyogTm90IGVub3VnaCByb29tIGluIHRoZSBidWZmZXIgLSBncm93
IGl0LiAqLwotCi0JCQkvKiBqdXN0IGEgc2hvcnRlciBuYW1lIGZvciB0aGUgY3VycmVudCBidWZm
ZXIgKi8KLQkJCVlZX0JVRkZFUl9TVEFURSBiID0gWVlfQ1VSUkVOVF9CVUZGRVI7Ci0KLQkJCWlu
dCB5eV9jX2J1Zl9wX29mZnNldCA9Ci0JCQkJKGludCkgKHl5Zy0+eXlfY19idWZfcCAtIGItPnl5
X2NoX2J1Zik7Ci0KLQkJCWlmICggYi0+eXlfaXNfb3VyX2J1ZmZlciApCi0JCQkJewotCQkJCXl5
X3NpemVfdCBuZXdfc2l6ZSA9IGItPnl5X2J1Zl9zaXplICogMjsKLQotCQkJCWlmICggbmV3X3Np
emUgPD0gMCApCi0JCQkJCWItPnl5X2J1Zl9zaXplICs9IGItPnl5X2J1Zl9zaXplIC8gODsKLQkJ
CQllbHNlCi0JCQkJCWItPnl5X2J1Zl9zaXplICo9IDI7Ci0KLQkJCQliLT55eV9jaF9idWYgPSAo
Y2hhciAqKQotCQkJCQkvKiBJbmNsdWRlIHJvb20gaW4gZm9yIDIgRU9CIGNoYXJzLiAqLwotCQkJ
CQl5eXJlYWxsb2MoKHZvaWQgKikgYi0+eXlfY2hfYnVmLGItPnl5X2J1Zl9zaXplICsgMiAseXlz
Y2FubmVyICk7Ci0JCQkJfQotCQkJZWxzZQotCQkJCS8qIENhbid0IGdyb3cgaXQsIHdlIGRvbid0
IG93biBpdC4gKi8KLQkJCQliLT55eV9jaF9idWYgPSAwOwotCi0JCQlpZiAoICEgYi0+eXlfY2hf
YnVmICkKLQkJCQlZWV9GQVRBTF9FUlJPUigKLQkJCQkiZmF0YWwgZXJyb3IgLSBzY2FubmVyIGlu
cHV0IGJ1ZmZlciBvdmVyZmxvdyIgKTsKLQotCQkJeXlnLT55eV9jX2J1Zl9wID0gJmItPnl5X2No
X2J1Zlt5eV9jX2J1Zl9wX29mZnNldF07Ci0KLQkJCW51bV90b19yZWFkID0gWVlfQ1VSUkVOVF9C
VUZGRVJfTFZBTFVFLT55eV9idWZfc2l6ZSAtCi0JCQkJCQludW1iZXJfdG9fbW92ZSAtIDE7Ci0K
LQkJCX0KLQotCQlpZiAoIG51bV90b19yZWFkID4gWVlfUkVBRF9CVUZfU0laRSApCi0JCQludW1f
dG9fcmVhZCA9IFlZX1JFQURfQlVGX1NJWkU7Ci0KLQkJLyogUmVhZCBpbiBtb3JlIGRhdGEuICov
Ci0JCVlZX0lOUFVUKCAoJllZX0NVUlJFTlRfQlVGRkVSX0xWQUxVRS0+eXlfY2hfYnVmW251bWJl
cl90b19tb3ZlXSksCi0JCQl5eWctPnl5X25fY2hhcnMsIG51bV90b19yZWFkICk7Ci0KLQkJWVlf
Q1VSUkVOVF9CVUZGRVJfTFZBTFVFLT55eV9uX2NoYXJzID0geXlnLT55eV9uX2NoYXJzOwotCQl9
Ci0KLQlpZiAoIHl5Zy0+eXlfbl9jaGFycyA9PSAwICkKLQkJewotCQlpZiAoIG51bWJlcl90b19t
b3ZlID09IFlZX01PUkVfQURKICkKLQkJCXsKLQkJCXJldF92YWwgPSBFT0JfQUNUX0VORF9PRl9G
SUxFOwotCQkJeXlyZXN0YXJ0KHl5aW4gICx5eXNjYW5uZXIpOwotCQkJfQotCi0JCWVsc2UKLQkJ
CXsKLQkJCXJldF92YWwgPSBFT0JfQUNUX0xBU1RfTUFUQ0g7Ci0JCQlZWV9DVVJSRU5UX0JVRkZF
Ul9MVkFMVUUtPnl5X2J1ZmZlcl9zdGF0dXMgPQotCQkJCVlZX0JVRkZFUl9FT0ZfUEVORElORzsK
LQkJCX0KLQkJfQotCi0JZWxzZQotCQlyZXRfdmFsID0gRU9CX0FDVF9DT05USU5VRV9TQ0FOOwot
Ci0JaWYgKCh5eV9zaXplX3QpICh5eWctPnl5X25fY2hhcnMgKyBudW1iZXJfdG9fbW92ZSkgPiBZ
WV9DVVJSRU5UX0JVRkZFUl9MVkFMVUUtPnl5X2J1Zl9zaXplKSB7Ci0JCS8qIEV4dGVuZCB0aGUg
YXJyYXkgYnkgNTAlLCBwbHVzIHRoZSBudW1iZXIgd2UgcmVhbGx5IG5lZWQuICovCi0JCXl5X3Np
emVfdCBuZXdfc2l6ZSA9IHl5Zy0+eXlfbl9jaGFycyArIG51bWJlcl90b19tb3ZlICsgKHl5Zy0+
eXlfbl9jaGFycyA+PiAxKTsKLQkJWVlfQ1VSUkVOVF9CVUZGRVJfTFZBTFVFLT55eV9jaF9idWYg
PSAoY2hhciAqKSB5eXJlYWxsb2MoKHZvaWQgKikgWVlfQ1VSUkVOVF9CVUZGRVJfTFZBTFVFLT55
eV9jaF9idWYsbmV3X3NpemUgLHl5c2Nhbm5lciApOwotCQlpZiAoICEgWVlfQ1VSUkVOVF9CVUZG
RVJfTFZBTFVFLT55eV9jaF9idWYgKQotCQkJWVlfRkFUQUxfRVJST1IoICJvdXQgb2YgZHluYW1p
YyBtZW1vcnkgaW4geXlfZ2V0X25leHRfYnVmZmVyKCkiICk7Ci0JfQotCi0JeXlnLT55eV9uX2No
YXJzICs9IG51bWJlcl90b19tb3ZlOwotCVlZX0NVUlJFTlRfQlVGRkVSX0xWQUxVRS0+eXlfY2hf
YnVmW3l5Zy0+eXlfbl9jaGFyc10gPSBZWV9FTkRfT0ZfQlVGRkVSX0NIQVI7Ci0JWVlfQ1VSUkVO
VF9CVUZGRVJfTFZBTFVFLT55eV9jaF9idWZbeXlnLT55eV9uX2NoYXJzICsgMV0gPSBZWV9FTkRf
T0ZfQlVGRkVSX0NIQVI7Ci0KLQl5eWctPnl5dGV4dF9wdHIgPSAmWVlfQ1VSUkVOVF9CVUZGRVJf
TFZBTFVFLT55eV9jaF9idWZbMF07Ci0KLQlyZXR1cm4gcmV0X3ZhbDsKLX0KLQotLyogeXlfZ2V0
X3ByZXZpb3VzX3N0YXRlIC0gZ2V0IHRoZSBzdGF0ZSBqdXN0IGJlZm9yZSB0aGUgRU9CIGNoYXIg
d2FzIHJlYWNoZWQgKi8KLQotICAgIHN0YXRpYyB5eV9zdGF0ZV90eXBlIHl5X2dldF9wcmV2aW91
c19zdGF0ZSAoeXlzY2FuX3QgeXlzY2FubmVyKQotewotCXJlZ2lzdGVyIHl5X3N0YXRlX3R5cGUg
eXlfY3VycmVudF9zdGF0ZTsKLQlyZWdpc3RlciBjaGFyICp5eV9jcDsKLSAgICBzdHJ1Y3QgeXln
dXRzX3QgKiB5eWcgPSAoc3RydWN0IHl5Z3V0c190Kil5eXNjYW5uZXI7Ci0KLQl5eV9jdXJyZW50
X3N0YXRlID0geXlnLT55eV9zdGFydDsKLQotCWZvciAoIHl5X2NwID0geXlnLT55eXRleHRfcHRy
ICsgWVlfTU9SRV9BREo7IHl5X2NwIDwgeXlnLT55eV9jX2J1Zl9wOyArK3l5X2NwICkKLQkJewot
CQlyZWdpc3RlciBZWV9DSEFSIHl5X2MgPSAoKnl5X2NwID8geXlfZWNbWVlfU0NfVE9fVUkoKnl5
X2NwKV0gOiAxKTsKLQkJaWYgKCB5eV9hY2NlcHRbeXlfY3VycmVudF9zdGF0ZV0gKQotCQkJewot
CQkJeXlnLT55eV9sYXN0X2FjY2VwdGluZ19zdGF0ZSA9IHl5X2N1cnJlbnRfc3RhdGU7Ci0JCQl5
eWctPnl5X2xhc3RfYWNjZXB0aW5nX2Nwb3MgPSB5eV9jcDsKLQkJCX0KLQkJd2hpbGUgKCB5eV9j
aGtbeXlfYmFzZVt5eV9jdXJyZW50X3N0YXRlXSArIHl5X2NdICE9IHl5X2N1cnJlbnRfc3RhdGUg
KQotCQkJewotCQkJeXlfY3VycmVudF9zdGF0ZSA9IChpbnQpIHl5X2RlZlt5eV9jdXJyZW50X3N0
YXRlXTsKLQkJCWlmICggeXlfY3VycmVudF9zdGF0ZSA+PSA0NDMgKQotCQkJCXl5X2MgPSB5eV9t
ZXRhWyh1bnNpZ25lZCBpbnQpIHl5X2NdOwotCQkJfQotCQl5eV9jdXJyZW50X3N0YXRlID0geXlf
bnh0W3l5X2Jhc2VbeXlfY3VycmVudF9zdGF0ZV0gKyAodW5zaWduZWQgaW50KSB5eV9jXTsKLQkJ
fQotCi0JcmV0dXJuIHl5X2N1cnJlbnRfc3RhdGU7Ci19Ci0KLS8qIHl5X3RyeV9OVUxfdHJhbnMg
LSB0cnkgdG8gbWFrZSBhIHRyYW5zaXRpb24gb24gdGhlIE5VTCBjaGFyYWN0ZXIKLSAqCi0gKiBz
eW5vcHNpcwotICoJbmV4dF9zdGF0ZSA9IHl5X3RyeV9OVUxfdHJhbnMoIGN1cnJlbnRfc3RhdGUg
KTsKLSAqLwotICAgIHN0YXRpYyB5eV9zdGF0ZV90eXBlIHl5X3RyeV9OVUxfdHJhbnMgICh5eV9z
dGF0ZV90eXBlIHl5X2N1cnJlbnRfc3RhdGUgLCB5eXNjYW5fdCB5eXNjYW5uZXIpCi17Ci0JcmVn
aXN0ZXIgaW50IHl5X2lzX2phbTsKLSAgICBzdHJ1Y3QgeXlndXRzX3QgKiB5eWcgPSAoc3RydWN0
IHl5Z3V0c190Kil5eXNjYW5uZXI7IC8qIFRoaXMgdmFyIG1heSBiZSB1bnVzZWQgZGVwZW5kaW5n
IHVwb24gb3B0aW9ucy4gKi8KLQlyZWdpc3RlciBjaGFyICp5eV9jcCA9IHl5Zy0+eXlfY19idWZf
cDsKLQotCXJlZ2lzdGVyIFlZX0NIQVIgeXlfYyA9IDE7Ci0JaWYgKCB5eV9hY2NlcHRbeXlfY3Vy
cmVudF9zdGF0ZV0gKQotCQl7Ci0JCXl5Zy0+eXlfbGFzdF9hY2NlcHRpbmdfc3RhdGUgPSB5eV9j
dXJyZW50X3N0YXRlOwotCQl5eWctPnl5X2xhc3RfYWNjZXB0aW5nX2Nwb3MgPSB5eV9jcDsKLQkJ
fQotCXdoaWxlICggeXlfY2hrW3l5X2Jhc2VbeXlfY3VycmVudF9zdGF0ZV0gKyB5eV9jXSAhPSB5
eV9jdXJyZW50X3N0YXRlICkKLQkJewotCQl5eV9jdXJyZW50X3N0YXRlID0gKGludCkgeXlfZGVm
W3l5X2N1cnJlbnRfc3RhdGVdOwotCQlpZiAoIHl5X2N1cnJlbnRfc3RhdGUgPj0gNDQzICkKLQkJ
CXl5X2MgPSB5eV9tZXRhWyh1bnNpZ25lZCBpbnQpIHl5X2NdOwotCQl9Ci0JeXlfY3VycmVudF9z
dGF0ZSA9IHl5X254dFt5eV9iYXNlW3l5X2N1cnJlbnRfc3RhdGVdICsgKHVuc2lnbmVkIGludCkg
eXlfY107Ci0JeXlfaXNfamFtID0gKHl5X2N1cnJlbnRfc3RhdGUgPT0gNDQyKTsKLQotCXJldHVy
biB5eV9pc19qYW0gPyAwIDogeXlfY3VycmVudF9zdGF0ZTsKLX0KLQotI2lmbmRlZiBZWV9OT19J
TlBVVAotI2lmZGVmIF9fY3BsdXNwbHVzCi0gICAgc3RhdGljIGludCB5eWlucHV0ICh5eXNjYW5f
dCB5eXNjYW5uZXIpCi0jZWxzZQotICAgIHN0YXRpYyBpbnQgaW5wdXQgICh5eXNjYW5fdCB5eXNj
YW5uZXIpCi0jZW5kaWYKLQotewotCWludCBjOwotICAgIHN0cnVjdCB5eWd1dHNfdCAqIHl5ZyA9
IChzdHJ1Y3QgeXlndXRzX3QqKXl5c2Nhbm5lcjsKLQotCSp5eWctPnl5X2NfYnVmX3AgPSB5eWct
Pnl5X2hvbGRfY2hhcjsKLQotCWlmICggKnl5Zy0+eXlfY19idWZfcCA9PSBZWV9FTkRfT0ZfQlVG
RkVSX0NIQVIgKQotCQl7Ci0JCS8qIHl5X2NfYnVmX3Agbm93IHBvaW50cyB0byB0aGUgY2hhcmFj
dGVyIHdlIHdhbnQgdG8gcmV0dXJuLgotCQkgKiBJZiB0aGlzIG9jY3VycyAqYmVmb3JlKiB0aGUg
RU9CIGNoYXJhY3RlcnMsIHRoZW4gaXQncyBhCi0JCSAqIHZhbGlkIE5VTDsgaWYgbm90LCB0aGVu
IHdlJ3ZlIGhpdCB0aGUgZW5kIG9mIHRoZSBidWZmZXIuCi0JCSAqLwotCQlpZiAoIHl5Zy0+eXlf
Y19idWZfcCA8ICZZWV9DVVJSRU5UX0JVRkZFUl9MVkFMVUUtPnl5X2NoX2J1Zlt5eWctPnl5X25f
Y2hhcnNdICkKLQkJCS8qIFRoaXMgd2FzIHJlYWxseSBhIE5VTC4gKi8KLQkJCSp5eWctPnl5X2Nf
YnVmX3AgPSAnXDAnOwotCi0JCWVsc2UKLQkJCXsgLyogbmVlZCBtb3JlIGlucHV0ICovCi0JCQl5
eV9zaXplX3Qgb2Zmc2V0ID0geXlnLT55eV9jX2J1Zl9wIC0geXlnLT55eXRleHRfcHRyOwotCQkJ
Kyt5eWctPnl5X2NfYnVmX3A7Ci0KLQkJCXN3aXRjaCAoIHl5X2dldF9uZXh0X2J1ZmZlciggeXlz
Y2FubmVyICkgKQotCQkJCXsKLQkJCQljYXNlIEVPQl9BQ1RfTEFTVF9NQVRDSDoKLQkJCQkJLyog
VGhpcyBoYXBwZW5zIGJlY2F1c2UgeXlfZ19uX2IoKQotCQkJCQkgKiBzZWVzIHRoYXQgd2UndmUg
YWNjdW11bGF0ZWQgYQotCQkJCQkgKiB0b2tlbiBhbmQgZmxhZ3MgdGhhdCB3ZSBuZWVkIHRvCi0J
CQkJCSAqIHRyeSBtYXRjaGluZyB0aGUgdG9rZW4gYmVmb3JlCi0JCQkJCSAqIHByb2NlZWRpbmcu
ICBCdXQgZm9yIGlucHV0KCksCi0JCQkJCSAqIHRoZXJlJ3Mgbm8gbWF0Y2hpbmcgdG8gY29uc2lk
ZXIuCi0JCQkJCSAqIFNvIGNvbnZlcnQgdGhlIEVPQl9BQ1RfTEFTVF9NQVRDSAotCQkJCQkgKiB0
byBFT0JfQUNUX0VORF9PRl9GSUxFLgotCQkJCQkgKi8KLQotCQkJCQkvKiBSZXNldCBidWZmZXIg
c3RhdHVzLiAqLwotCQkJCQl5eXJlc3RhcnQoeXlpbiAseXlzY2FubmVyKTsKLQotCQkJCQkvKkZB
TExUSFJPVUdIKi8KLQotCQkJCWNhc2UgRU9CX0FDVF9FTkRfT0ZfRklMRToKLQkJCQkJewotCQkJ
CQlpZiAoIHl5d3JhcCh5eXNjYW5uZXIgKSApCi0JCQkJCQlyZXR1cm4gMDsKLQotCQkJCQlpZiAo
ICEgeXlnLT55eV9kaWRfYnVmZmVyX3N3aXRjaF9vbl9lb2YgKQotCQkJCQkJWVlfTkVXX0ZJTEU7
Ci0jaWZkZWYgX19jcGx1c3BsdXMKLQkJCQkJcmV0dXJuIHl5aW5wdXQoeXlzY2FubmVyKTsKLSNl
bHNlCi0JCQkJCXJldHVybiBpbnB1dCh5eXNjYW5uZXIpOwotI2VuZGlmCi0JCQkJCX0KLQotCQkJ
CWNhc2UgRU9CX0FDVF9DT05USU5VRV9TQ0FOOgotCQkJCQl5eWctPnl5X2NfYnVmX3AgPSB5eWct
Pnl5dGV4dF9wdHIgKyBvZmZzZXQ7Ci0JCQkJCWJyZWFrOwotCQkJCX0KLQkJCX0KLQkJfQotCi0J
YyA9ICoodW5zaWduZWQgY2hhciAqKSB5eWctPnl5X2NfYnVmX3A7CS8qIGNhc3QgZm9yIDgtYml0
IGNoYXIncyAqLwotCSp5eWctPnl5X2NfYnVmX3AgPSAnXDAnOwkvKiBwcmVzZXJ2ZSB5eXRleHQg
Ki8KLQl5eWctPnl5X2hvbGRfY2hhciA9ICorK3l5Zy0+eXlfY19idWZfcDsKLQotCWlmICggYyA9
PSAnXG4nICkKLQkJICAgCi0gICAgZG97IHl5bGluZW5vKys7Ci0gICAgICAgIHl5Y29sdW1uPTA7
Ci0gICAgfXdoaWxlKDApCi07Ci0KLQlyZXR1cm4gYzsKLX0KLSNlbmRpZgkvKiBpZm5kZWYgWVlf
Tk9fSU5QVVQgKi8KLQotLyoqIEltbWVkaWF0ZWx5IHN3aXRjaCB0byBhIGRpZmZlcmVudCBpbnB1
dCBzdHJlYW0uCi0gKiBAcGFyYW0gaW5wdXRfZmlsZSBBIHJlYWRhYmxlIHN0cmVhbS4KLSAqIEBw
YXJhbSB5eXNjYW5uZXIgVGhlIHNjYW5uZXIgb2JqZWN0LgotICogQG5vdGUgVGhpcyBmdW5jdGlv
biBkb2VzIG5vdCByZXNldCB0aGUgc3RhcnQgY29uZGl0aW9uIHRvIEBjIElOSVRJQUwgLgotICov
Ci0gICAgdm9pZCB5eXJlc3RhcnQgIChGSUxFICogaW5wdXRfZmlsZSAsIHl5c2Nhbl90IHl5c2Nh
bm5lcikKLXsKLSAgICBzdHJ1Y3QgeXlndXRzX3QgKiB5eWcgPSAoc3RydWN0IHl5Z3V0c190Kil5
eXNjYW5uZXI7Ci0KLQlpZiAoICEgWVlfQ1VSUkVOVF9CVUZGRVIgKXsKLSAgICAgICAgeXllbnN1
cmVfYnVmZmVyX3N0YWNrICh5eXNjYW5uZXIpOwotCQlZWV9DVVJSRU5UX0JVRkZFUl9MVkFMVUUg
PQotICAgICAgICAgICAgeXlfY3JlYXRlX2J1ZmZlcih5eWluLFlZX0JVRl9TSVpFICx5eXNjYW5u
ZXIpOwotCX0KLQotCXl5X2luaXRfYnVmZmVyKFlZX0NVUlJFTlRfQlVGRkVSLGlucHV0X2ZpbGUg
LHl5c2Nhbm5lcik7Ci0JeXlfbG9hZF9idWZmZXJfc3RhdGUoeXlzY2FubmVyICk7Ci19Ci0KLS8q
KiBTd2l0Y2ggdG8gYSBkaWZmZXJlbnQgaW5wdXQgYnVmZmVyLgotICogQHBhcmFtIG5ld19idWZm
ZXIgVGhlIG5ldyBpbnB1dCBidWZmZXIuCi0gKiBAcGFyYW0geXlzY2FubmVyIFRoZSBzY2FubmVy
IG9iamVjdC4KLSAqLwotICAgIHZvaWQgeXlfc3dpdGNoX3RvX2J1ZmZlciAgKFlZX0JVRkZFUl9T
VEFURSAgbmV3X2J1ZmZlciAsIHl5c2Nhbl90IHl5c2Nhbm5lcikKLXsKLSAgICBzdHJ1Y3QgeXln
dXRzX3QgKiB5eWcgPSAoc3RydWN0IHl5Z3V0c190Kil5eXNjYW5uZXI7Ci0KLQkvKiBUT0RPLiBX
ZSBzaG91bGQgYmUgYWJsZSB0byByZXBsYWNlIHRoaXMgZW50aXJlIGZ1bmN0aW9uIGJvZHkKLQkg
KiB3aXRoCi0JICoJCXl5cG9wX2J1ZmZlcl9zdGF0ZSgpOwotCSAqCQl5eXB1c2hfYnVmZmVyX3N0
YXRlKG5ld19idWZmZXIpOwotICAgICAqLwotCXl5ZW5zdXJlX2J1ZmZlcl9zdGFjayAoeXlzY2Fu
bmVyKTsKLQlpZiAoIFlZX0NVUlJFTlRfQlVGRkVSID09IG5ld19idWZmZXIgKQotCQlyZXR1cm47
Ci0KLQlpZiAoIFlZX0NVUlJFTlRfQlVGRkVSICkKLQkJewotCQkvKiBGbHVzaCBvdXQgaW5mb3Jt
YXRpb24gZm9yIG9sZCBidWZmZXIuICovCi0JCSp5eWctPnl5X2NfYnVmX3AgPSB5eWctPnl5X2hv
bGRfY2hhcjsKLQkJWVlfQ1VSUkVOVF9CVUZGRVJfTFZBTFVFLT55eV9idWZfcG9zID0geXlnLT55
eV9jX2J1Zl9wOwotCQlZWV9DVVJSRU5UX0JVRkZFUl9MVkFMVUUtPnl5X25fY2hhcnMgPSB5eWct
Pnl5X25fY2hhcnM7Ci0JCX0KLQotCVlZX0NVUlJFTlRfQlVGRkVSX0xWQUxVRSA9IG5ld19idWZm
ZXI7Ci0JeXlfbG9hZF9idWZmZXJfc3RhdGUoeXlzY2FubmVyICk7Ci0KLQkvKiBXZSBkb24ndCBh
Y3R1YWxseSBrbm93IHdoZXRoZXIgd2UgZGlkIHRoaXMgc3dpdGNoIGR1cmluZwotCSAqIEVPRiAo
eXl3cmFwKCkpIHByb2Nlc3NpbmcsIGJ1dCB0aGUgb25seSB0aW1lIHRoaXMgZmxhZwotCSAqIGlz
IGxvb2tlZCBhdCBpcyBhZnRlciB5eXdyYXAoKSBpcyBjYWxsZWQsIHNvIGl0J3Mgc2FmZQotCSAq
IHRvIGdvIGFoZWFkIGFuZCBhbHdheXMgc2V0IGl0LgotCSAqLwotCXl5Zy0+eXlfZGlkX2J1ZmZl
cl9zd2l0Y2hfb25fZW9mID0gMTsKLX0KLQotc3RhdGljIHZvaWQgeXlfbG9hZF9idWZmZXJfc3Rh
dGUgICh5eXNjYW5fdCB5eXNjYW5uZXIpCi17Ci0gICAgc3RydWN0IHl5Z3V0c190ICogeXlnID0g
KHN0cnVjdCB5eWd1dHNfdCopeXlzY2FubmVyOwotCXl5Zy0+eXlfbl9jaGFycyA9IFlZX0NVUlJF
TlRfQlVGRkVSX0xWQUxVRS0+eXlfbl9jaGFyczsKLQl5eWctPnl5dGV4dF9wdHIgPSB5eWctPnl5
X2NfYnVmX3AgPSBZWV9DVVJSRU5UX0JVRkZFUl9MVkFMVUUtPnl5X2J1Zl9wb3M7Ci0JeXlpbiA9
IFlZX0NVUlJFTlRfQlVGRkVSX0xWQUxVRS0+eXlfaW5wdXRfZmlsZTsKLQl5eWctPnl5X2hvbGRf
Y2hhciA9ICp5eWctPnl5X2NfYnVmX3A7Ci19Ci0KLS8qKiBBbGxvY2F0ZSBhbmQgaW5pdGlhbGl6
ZSBhbiBpbnB1dCBidWZmZXIgc3RhdGUuCi0gKiBAcGFyYW0gZmlsZSBBIHJlYWRhYmxlIHN0cmVh
bS4KLSAqIEBwYXJhbSBzaXplIFRoZSBjaGFyYWN0ZXIgYnVmZmVyIHNpemUgaW4gYnl0ZXMuIFdo
ZW4gaW4gZG91YnQsIHVzZSBAYyBZWV9CVUZfU0laRS4KLSAqIEBwYXJhbSB5eXNjYW5uZXIgVGhl
IHNjYW5uZXIgb2JqZWN0LgotICogQHJldHVybiB0aGUgYWxsb2NhdGVkIGJ1ZmZlciBzdGF0ZS4K
LSAqLwotICAgIFlZX0JVRkZFUl9TVEFURSB5eV9jcmVhdGVfYnVmZmVyICAoRklMRSAqIGZpbGUs
IGludCAgc2l6ZSAsIHl5c2Nhbl90IHl5c2Nhbm5lcikKLXsKLQlZWV9CVUZGRVJfU1RBVEUgYjsK
LSAgICAKLQliID0gKFlZX0JVRkZFUl9TVEFURSkgeXlhbGxvYyhzaXplb2YoIHN0cnVjdCB5eV9i
dWZmZXJfc3RhdGUgKSAseXlzY2FubmVyICk7Ci0JaWYgKCAhIGIgKQotCQlZWV9GQVRBTF9FUlJP
UiggIm91dCBvZiBkeW5hbWljIG1lbW9yeSBpbiB5eV9jcmVhdGVfYnVmZmVyKCkiICk7Ci0KLQli
LT55eV9idWZfc2l6ZSA9IHNpemU7Ci0KLQkvKiB5eV9jaF9idWYgaGFzIHRvIGJlIDIgY2hhcmFj
dGVycyBsb25nZXIgdGhhbiB0aGUgc2l6ZSBnaXZlbiBiZWNhdXNlCi0JICogd2UgbmVlZCB0byBw
dXQgaW4gMiBlbmQtb2YtYnVmZmVyIGNoYXJhY3RlcnMuCi0JICovCi0JYi0+eXlfY2hfYnVmID0g
KGNoYXIgKikgeXlhbGxvYyhiLT55eV9idWZfc2l6ZSArIDIgLHl5c2Nhbm5lciApOwotCWlmICgg
ISBiLT55eV9jaF9idWYgKQotCQlZWV9GQVRBTF9FUlJPUiggIm91dCBvZiBkeW5hbWljIG1lbW9y
eSBpbiB5eV9jcmVhdGVfYnVmZmVyKCkiICk7Ci0KLQliLT55eV9pc19vdXJfYnVmZmVyID0gMTsK
LQotCXl5X2luaXRfYnVmZmVyKGIsZmlsZSAseXlzY2FubmVyKTsKLQotCXJldHVybiBiOwotfQot
Ci0vKiogRGVzdHJveSB0aGUgYnVmZmVyLgotICogQHBhcmFtIGIgYSBidWZmZXIgY3JlYXRlZCB3
aXRoIHl5X2NyZWF0ZV9idWZmZXIoKQotICogQHBhcmFtIHl5c2Nhbm5lciBUaGUgc2Nhbm5lciBv
YmplY3QuCi0gKi8KLSAgICB2b2lkIHl5X2RlbGV0ZV9idWZmZXIgKFlZX0JVRkZFUl9TVEFURSAg
YiAsIHl5c2Nhbl90IHl5c2Nhbm5lcikKLXsKLSAgICBzdHJ1Y3QgeXlndXRzX3QgKiB5eWcgPSAo
c3RydWN0IHl5Z3V0c190Kil5eXNjYW5uZXI7Ci0KLQlpZiAoICEgYiApCi0JCXJldHVybjsKLQot
CWlmICggYiA9PSBZWV9DVVJSRU5UX0JVRkZFUiApIC8qIE5vdCBzdXJlIGlmIHdlIHNob3VsZCBw
b3AgaGVyZS4gKi8KLQkJWVlfQ1VSUkVOVF9CVUZGRVJfTFZBTFVFID0gKFlZX0JVRkZFUl9TVEFU
RSkgMDsKLQotCWlmICggYi0+eXlfaXNfb3VyX2J1ZmZlciApCi0JCXl5ZnJlZSgodm9pZCAqKSBi
LT55eV9jaF9idWYgLHl5c2Nhbm5lciApOwotCi0JeXlmcmVlKCh2b2lkICopIGIgLHl5c2Nhbm5l
ciApOwotfQotCi0vKiBJbml0aWFsaXplcyBvciByZWluaXRpYWxpemVzIGEgYnVmZmVyLgotICog
VGhpcyBmdW5jdGlvbiBpcyBzb21ldGltZXMgY2FsbGVkIG1vcmUgdGhhbiBvbmNlIG9uIHRoZSBz
YW1lIGJ1ZmZlciwKLSAqIHN1Y2ggYXMgZHVyaW5nIGEgeXlyZXN0YXJ0KCkgb3IgYXQgRU9GLgot
ICovCi0gICAgc3RhdGljIHZvaWQgeXlfaW5pdF9idWZmZXIgIChZWV9CVUZGRVJfU1RBVEUgIGIs
IEZJTEUgKiBmaWxlICwgeXlzY2FuX3QgeXlzY2FubmVyKQotCi17Ci0JaW50IG9lcnJubyA9IGVy
cm5vOwotICAgIHN0cnVjdCB5eWd1dHNfdCAqIHl5ZyA9IChzdHJ1Y3QgeXlndXRzX3QqKXl5c2Nh
bm5lcjsKLQotCXl5X2ZsdXNoX2J1ZmZlcihiICx5eXNjYW5uZXIpOwotCi0JYi0+eXlfaW5wdXRf
ZmlsZSA9IGZpbGU7Ci0JYi0+eXlfZmlsbF9idWZmZXIgPSAxOwotCi0gICAgLyogSWYgYiBpcyB0
aGUgY3VycmVudCBidWZmZXIsIHRoZW4geXlfaW5pdF9idWZmZXIgd2FzIF9wcm9iYWJseV8KLSAg
ICAgKiBjYWxsZWQgZnJvbSB5eXJlc3RhcnQoKSBvciB0aHJvdWdoIHl5X2dldF9uZXh0X2J1ZmZl
ci4KLSAgICAgKiBJbiB0aGF0IGNhc2UsIHdlIGRvbid0IHdhbnQgdG8gcmVzZXQgdGhlIGxpbmVu
byBvciBjb2x1bW4uCi0gICAgICovCi0gICAgaWYgKGIgIT0gWVlfQ1VSUkVOVF9CVUZGRVIpewot
ICAgICAgICBiLT55eV9ic19saW5lbm8gPSAxOwotICAgICAgICBiLT55eV9ic19jb2x1bW4gPSAw
OwotICAgIH0KLQotICAgICAgICBiLT55eV9pc19pbnRlcmFjdGl2ZSA9IDA7Ci0gICAgCi0JZXJy
bm8gPSBvZXJybm87Ci19Ci0KLS8qKiBEaXNjYXJkIGFsbCBidWZmZXJlZCBjaGFyYWN0ZXJzLiBP
biB0aGUgbmV4dCBzY2FuLCBZWV9JTlBVVCB3aWxsIGJlIGNhbGxlZC4KLSAqIEBwYXJhbSBiIHRo
ZSBidWZmZXIgc3RhdGUgdG8gYmUgZmx1c2hlZCwgdXN1YWxseSBAYyBZWV9DVVJSRU5UX0JVRkZF
Ui4KLSAqIEBwYXJhbSB5eXNjYW5uZXIgVGhlIHNjYW5uZXIgb2JqZWN0LgotICovCi0gICAgdm9p
ZCB5eV9mbHVzaF9idWZmZXIgKFlZX0JVRkZFUl9TVEFURSAgYiAsIHl5c2Nhbl90IHl5c2Nhbm5l
cikKLXsKLSAgICBzdHJ1Y3QgeXlndXRzX3QgKiB5eWcgPSAoc3RydWN0IHl5Z3V0c190Kil5eXNj
YW5uZXI7Ci0JaWYgKCAhIGIgKQotCQlyZXR1cm47Ci0KLQliLT55eV9uX2NoYXJzID0gMDsKLQot
CS8qIFdlIGFsd2F5cyBuZWVkIHR3byBlbmQtb2YtYnVmZmVyIGNoYXJhY3RlcnMuICBUaGUgZmly
c3QgY2F1c2VzCi0JICogYSB0cmFuc2l0aW9uIHRvIHRoZSBlbmQtb2YtYnVmZmVyIHN0YXRlLiAg
VGhlIHNlY29uZCBjYXVzZXMKLQkgKiBhIGphbSBpbiB0aGF0IHN0YXRlLgotCSAqLwotCWItPnl5
X2NoX2J1ZlswXSA9IFlZX0VORF9PRl9CVUZGRVJfQ0hBUjsKLQliLT55eV9jaF9idWZbMV0gPSBZ
WV9FTkRfT0ZfQlVGRkVSX0NIQVI7Ci0KLQliLT55eV9idWZfcG9zID0gJmItPnl5X2NoX2J1Zlsw
XTsKLQotCWItPnl5X2F0X2JvbCA9IDE7Ci0JYi0+eXlfYnVmZmVyX3N0YXR1cyA9IFlZX0JVRkZF
Ul9ORVc7Ci0KLQlpZiAoIGIgPT0gWVlfQ1VSUkVOVF9CVUZGRVIgKQotCQl5eV9sb2FkX2J1ZmZl
cl9zdGF0ZSh5eXNjYW5uZXIgKTsKLX0KLQotLyoqIFB1c2hlcyB0aGUgbmV3IHN0YXRlIG9udG8g
dGhlIHN0YWNrLiBUaGUgbmV3IHN0YXRlIGJlY29tZXMKLSAqICB0aGUgY3VycmVudCBzdGF0ZS4g
VGhpcyBmdW5jdGlvbiB3aWxsIGFsbG9jYXRlIHRoZSBzdGFjawotICogIGlmIG5lY2Vzc2FyeS4K
LSAqICBAcGFyYW0gbmV3X2J1ZmZlciBUaGUgbmV3IHN0YXRlLgotICogIEBwYXJhbSB5eXNjYW5u
ZXIgVGhlIHNjYW5uZXIgb2JqZWN0LgotICovCi12b2lkIHl5cHVzaF9idWZmZXJfc3RhdGUgKFlZ
X0JVRkZFUl9TVEFURSBuZXdfYnVmZmVyICwgeXlzY2FuX3QgeXlzY2FubmVyKQotewotICAgIHN0
cnVjdCB5eWd1dHNfdCAqIHl5ZyA9IChzdHJ1Y3QgeXlndXRzX3QqKXl5c2Nhbm5lcjsKLQlpZiAo
bmV3X2J1ZmZlciA9PSBOVUxMKQotCQlyZXR1cm47Ci0KLQl5eWVuc3VyZV9idWZmZXJfc3RhY2so
eXlzY2FubmVyKTsKLQotCS8qIFRoaXMgYmxvY2sgaXMgY29waWVkIGZyb20geXlfc3dpdGNoX3Rv
X2J1ZmZlci4gKi8KLQlpZiAoIFlZX0NVUlJFTlRfQlVGRkVSICkKLQkJewotCQkvKiBGbHVzaCBv
dXQgaW5mb3JtYXRpb24gZm9yIG9sZCBidWZmZXIuICovCi0JCSp5eWctPnl5X2NfYnVmX3AgPSB5
eWctPnl5X2hvbGRfY2hhcjsKLQkJWVlfQ1VSUkVOVF9CVUZGRVJfTFZBTFVFLT55eV9idWZfcG9z
ID0geXlnLT55eV9jX2J1Zl9wOwotCQlZWV9DVVJSRU5UX0JVRkZFUl9MVkFMVUUtPnl5X25fY2hh
cnMgPSB5eWctPnl5X25fY2hhcnM7Ci0JCX0KLQotCS8qIE9ubHkgcHVzaCBpZiB0b3AgZXhpc3Rz
LiBPdGhlcndpc2UsIHJlcGxhY2UgdG9wLiAqLwotCWlmIChZWV9DVVJSRU5UX0JVRkZFUikKLQkJ
eXlnLT55eV9idWZmZXJfc3RhY2tfdG9wKys7Ci0JWVlfQ1VSUkVOVF9CVUZGRVJfTFZBTFVFID0g
bmV3X2J1ZmZlcjsKLQotCS8qIGNvcGllZCBmcm9tIHl5X3N3aXRjaF90b19idWZmZXIuICovCi0J
eXlfbG9hZF9idWZmZXJfc3RhdGUoeXlzY2FubmVyICk7Ci0JeXlnLT55eV9kaWRfYnVmZmVyX3N3
aXRjaF9vbl9lb2YgPSAxOwotfQotCi0vKiogUmVtb3ZlcyBhbmQgZGVsZXRlcyB0aGUgdG9wIG9m
IHRoZSBzdGFjaywgaWYgcHJlc2VudC4KLSAqICBUaGUgbmV4dCBlbGVtZW50IGJlY29tZXMgdGhl
IG5ldyB0b3AuCi0gKiAgQHBhcmFtIHl5c2Nhbm5lciBUaGUgc2Nhbm5lciBvYmplY3QuCi0gKi8K
LXZvaWQgeXlwb3BfYnVmZmVyX3N0YXRlICh5eXNjYW5fdCB5eXNjYW5uZXIpCi17Ci0gICAgc3Ry
dWN0IHl5Z3V0c190ICogeXlnID0gKHN0cnVjdCB5eWd1dHNfdCopeXlzY2FubmVyOwotCWlmICgh
WVlfQ1VSUkVOVF9CVUZGRVIpCi0JCXJldHVybjsKLQotCXl5X2RlbGV0ZV9idWZmZXIoWVlfQ1VS
UkVOVF9CVUZGRVIgLHl5c2Nhbm5lcik7Ci0JWVlfQ1VSUkVOVF9CVUZGRVJfTFZBTFVFID0gTlVM
TDsKLQlpZiAoeXlnLT55eV9idWZmZXJfc3RhY2tfdG9wID4gMCkKLQkJLS15eWctPnl5X2J1ZmZl
cl9zdGFja190b3A7Ci0KLQlpZiAoWVlfQ1VSUkVOVF9CVUZGRVIpIHsKLQkJeXlfbG9hZF9idWZm
ZXJfc3RhdGUoeXlzY2FubmVyICk7Ci0JCXl5Zy0+eXlfZGlkX2J1ZmZlcl9zd2l0Y2hfb25fZW9m
ID0gMTsKLQl9Ci19Ci0KLS8qIEFsbG9jYXRlcyB0aGUgc3RhY2sgaWYgaXQgZG9lcyBub3QgZXhp
c3QuCi0gKiAgR3VhcmFudGVlcyBzcGFjZSBmb3IgYXQgbGVhc3Qgb25lIHB1c2guCi0gKi8KLXN0
YXRpYyB2b2lkIHl5ZW5zdXJlX2J1ZmZlcl9zdGFjayAoeXlzY2FuX3QgeXlzY2FubmVyKQotewot
CXl5X3NpemVfdCBudW1fdG9fYWxsb2M7Ci0gICAgc3RydWN0IHl5Z3V0c190ICogeXlnID0gKHN0
cnVjdCB5eWd1dHNfdCopeXlzY2FubmVyOwotCi0JaWYgKCF5eWctPnl5X2J1ZmZlcl9zdGFjaykg
ewotCi0JCS8qIEZpcnN0IGFsbG9jYXRpb24gaXMganVzdCBmb3IgMiBlbGVtZW50cywgc2luY2Ug
d2UgZG9uJ3Qga25vdyBpZiB0aGlzCi0JCSAqIHNjYW5uZXIgd2lsbCBldmVuIG5lZWQgYSBzdGFj
ay4gV2UgdXNlIDIgaW5zdGVhZCBvZiAxIHRvIGF2b2lkIGFuCi0JCSAqIGltbWVkaWF0ZSByZWFs
bG9jIG9uIHRoZSBuZXh0IGNhbGwuCi0gICAgICAgICAqLwotCQludW1fdG9fYWxsb2MgPSAxOwot
CQl5eWctPnl5X2J1ZmZlcl9zdGFjayA9IChzdHJ1Y3QgeXlfYnVmZmVyX3N0YXRlKiopeXlhbGxv
YwotCQkJCQkJCQkobnVtX3RvX2FsbG9jICogc2l6ZW9mKHN0cnVjdCB5eV9idWZmZXJfc3RhdGUq
KQotCQkJCQkJCQksIHl5c2Nhbm5lcik7Ci0JCWlmICggISB5eWctPnl5X2J1ZmZlcl9zdGFjayAp
Ci0JCQlZWV9GQVRBTF9FUlJPUiggIm91dCBvZiBkeW5hbWljIG1lbW9yeSBpbiB5eWVuc3VyZV9i
dWZmZXJfc3RhY2soKSIgKTsKLQkJCQkJCQkJICAKLQkJbWVtc2V0KHl5Zy0+eXlfYnVmZmVyX3N0
YWNrLCAwLCBudW1fdG9fYWxsb2MgKiBzaXplb2Yoc3RydWN0IHl5X2J1ZmZlcl9zdGF0ZSopKTsK
LQkJCQkKLQkJeXlnLT55eV9idWZmZXJfc3RhY2tfbWF4ID0gbnVtX3RvX2FsbG9jOwotCQl5eWct
Pnl5X2J1ZmZlcl9zdGFja190b3AgPSAwOwotCQlyZXR1cm47Ci0JfQotCi0JaWYgKHl5Zy0+eXlf
YnVmZmVyX3N0YWNrX3RvcCA+PSAoeXlnLT55eV9idWZmZXJfc3RhY2tfbWF4KSAtIDEpewotCi0J
CS8qIEluY3JlYXNlIHRoZSBidWZmZXIgdG8gcHJlcGFyZSBmb3IgYSBwb3NzaWJsZSBwdXNoLiAq
LwotCQlpbnQgZ3Jvd19zaXplID0gOCAvKiBhcmJpdHJhcnkgZ3JvdyBzaXplICovOwotCi0JCW51
bV90b19hbGxvYyA9IHl5Zy0+eXlfYnVmZmVyX3N0YWNrX21heCArIGdyb3dfc2l6ZTsKLQkJeXln
LT55eV9idWZmZXJfc3RhY2sgPSAoc3RydWN0IHl5X2J1ZmZlcl9zdGF0ZSoqKXl5cmVhbGxvYwot
CQkJCQkJCQkoeXlnLT55eV9idWZmZXJfc3RhY2ssCi0JCQkJCQkJCW51bV90b19hbGxvYyAqIHNp
emVvZihzdHJ1Y3QgeXlfYnVmZmVyX3N0YXRlKikKLQkJCQkJCQkJLCB5eXNjYW5uZXIpOwotCQlp
ZiAoICEgeXlnLT55eV9idWZmZXJfc3RhY2sgKQotCQkJWVlfRkFUQUxfRVJST1IoICJvdXQgb2Yg
ZHluYW1pYyBtZW1vcnkgaW4geXllbnN1cmVfYnVmZmVyX3N0YWNrKCkiICk7Ci0KLQkJLyogemVy
byBvbmx5IHRoZSBuZXcgc2xvdHMuKi8KLQkJbWVtc2V0KHl5Zy0+eXlfYnVmZmVyX3N0YWNrICsg
eXlnLT55eV9idWZmZXJfc3RhY2tfbWF4LCAwLCBncm93X3NpemUgKiBzaXplb2Yoc3RydWN0IHl5
X2J1ZmZlcl9zdGF0ZSopKTsKLQkJeXlnLT55eV9idWZmZXJfc3RhY2tfbWF4ID0gbnVtX3RvX2Fs
bG9jOwotCX0KLX0KLQotLyoqIFNldHVwIHRoZSBpbnB1dCBidWZmZXIgc3RhdGUgdG8gc2NhbiBk
aXJlY3RseSBmcm9tIGEgdXNlci1zcGVjaWZpZWQgY2hhcmFjdGVyIGJ1ZmZlci4KLSAqIEBwYXJh
bSBiYXNlIHRoZSBjaGFyYWN0ZXIgYnVmZmVyCi0gKiBAcGFyYW0gc2l6ZSB0aGUgc2l6ZSBpbiBi
eXRlcyBvZiB0aGUgY2hhcmFjdGVyIGJ1ZmZlcgotICogQHBhcmFtIHl5c2Nhbm5lciBUaGUgc2Nh
bm5lciBvYmplY3QuCi0gKiBAcmV0dXJuIHRoZSBuZXdseSBhbGxvY2F0ZWQgYnVmZmVyIHN0YXRl
IG9iamVjdC4gCi0gKi8KLVlZX0JVRkZFUl9TVEFURSB5eV9zY2FuX2J1ZmZlciAgKGNoYXIgKiBi
YXNlLCB5eV9zaXplX3QgIHNpemUgLCB5eXNjYW5fdCB5eXNjYW5uZXIpCi17Ci0JWVlfQlVGRkVS
X1NUQVRFIGI7Ci0gICAgCi0JaWYgKCBzaXplIDwgMiB8fAotCSAgICAgYmFzZVtzaXplLTJdICE9
IFlZX0VORF9PRl9CVUZGRVJfQ0hBUiB8fAotCSAgICAgYmFzZVtzaXplLTFdICE9IFlZX0VORF9P
Rl9CVUZGRVJfQ0hBUiApCi0JCS8qIFRoZXkgZm9yZ290IHRvIGxlYXZlIHJvb20gZm9yIHRoZSBF
T0Incy4gKi8KLQkJcmV0dXJuIDA7Ci0KLQliID0gKFlZX0JVRkZFUl9TVEFURSkgeXlhbGxvYyhz
aXplb2YoIHN0cnVjdCB5eV9idWZmZXJfc3RhdGUgKSAseXlzY2FubmVyICk7Ci0JaWYgKCAhIGIg
KQotCQlZWV9GQVRBTF9FUlJPUiggIm91dCBvZiBkeW5hbWljIG1lbW9yeSBpbiB5eV9zY2FuX2J1
ZmZlcigpIiApOwotCi0JYi0+eXlfYnVmX3NpemUgPSBzaXplIC0gMjsJLyogIi0gMiIgdG8gdGFr
ZSBjYXJlIG9mIEVPQidzICovCi0JYi0+eXlfYnVmX3BvcyA9IGItPnl5X2NoX2J1ZiA9IGJhc2U7
Ci0JYi0+eXlfaXNfb3VyX2J1ZmZlciA9IDA7Ci0JYi0+eXlfaW5wdXRfZmlsZSA9IDA7Ci0JYi0+
eXlfbl9jaGFycyA9IGItPnl5X2J1Zl9zaXplOwotCWItPnl5X2lzX2ludGVyYWN0aXZlID0gMDsK
LQliLT55eV9hdF9ib2wgPSAxOwotCWItPnl5X2ZpbGxfYnVmZmVyID0gMDsKLQliLT55eV9idWZm
ZXJfc3RhdHVzID0gWVlfQlVGRkVSX05FVzsKLQotCXl5X3N3aXRjaF90b19idWZmZXIoYiAseXlz
Y2FubmVyICk7Ci0KLQlyZXR1cm4gYjsKLX0KLQotLyoqIFNldHVwIHRoZSBpbnB1dCBidWZmZXIg
c3RhdGUgdG8gc2NhbiBhIHN0cmluZy4gVGhlIG5leHQgY2FsbCB0byB5eWxleCgpIHdpbGwKLSAq
IHNjYW4gZnJvbSBhIEBlIGNvcHkgb2YgQGEgc3RyLgotICogQHBhcmFtIHl5c3RyIGEgTlVMLXRl
cm1pbmF0ZWQgc3RyaW5nIHRvIHNjYW4KLSAqIEBwYXJhbSB5eXNjYW5uZXIgVGhlIHNjYW5uZXIg
b2JqZWN0LgotICogQHJldHVybiB0aGUgbmV3bHkgYWxsb2NhdGVkIGJ1ZmZlciBzdGF0ZSBvYmpl
Y3QuCi0gKiBAbm90ZSBJZiB5b3Ugd2FudCB0byBzY2FuIGJ5dGVzIHRoYXQgbWF5IGNvbnRhaW4g
TlVMIHZhbHVlcywgdGhlbiB1c2UKLSAqICAgICAgIHl5X3NjYW5fYnl0ZXMoKSBpbnN0ZWFkLgot
ICovCi1ZWV9CVUZGRVJfU1RBVEUgeXlfc2Nhbl9zdHJpbmcgKHl5Y29uc3QgY2hhciAqIHl5c3Ry
ICwgeXlzY2FuX3QgeXlzY2FubmVyKQotewotICAgIAotCXJldHVybiB5eV9zY2FuX2J5dGVzKHl5
c3RyLHN0cmxlbih5eXN0cikgLHl5c2Nhbm5lcik7Ci19Ci0KLS8qKiBTZXR1cCB0aGUgaW5wdXQg
YnVmZmVyIHN0YXRlIHRvIHNjYW4gdGhlIGdpdmVuIGJ5dGVzLiBUaGUgbmV4dCBjYWxsIHRvIHl5
bGV4KCkgd2lsbAotICogc2NhbiBmcm9tIGEgQGUgY29weSBvZiBAYSBieXRlcy4KLSAqIEBwYXJh
bSBieXRlcyB0aGUgYnl0ZSBidWZmZXIgdG8gc2NhbgotICogQHBhcmFtIGxlbiB0aGUgbnVtYmVy
IG9mIGJ5dGVzIGluIHRoZSBidWZmZXIgcG9pbnRlZCB0byBieSBAYSBieXRlcy4KLSAqIEBwYXJh
bSB5eXNjYW5uZXIgVGhlIHNjYW5uZXIgb2JqZWN0LgotICogQHJldHVybiB0aGUgbmV3bHkgYWxs
b2NhdGVkIGJ1ZmZlciBzdGF0ZSBvYmplY3QuCi0gKi8KLVlZX0JVRkZFUl9TVEFURSB5eV9zY2Fu
X2J5dGVzICAoeXljb25zdCBjaGFyICogeXlieXRlcywgeXlfc2l6ZV90ICBfeXlieXRlc19sZW4g
LCB5eXNjYW5fdCB5eXNjYW5uZXIpCi17Ci0JWVlfQlVGRkVSX1NUQVRFIGI7Ci0JY2hhciAqYnVm
OwotCXl5X3NpemVfdCBuLCBpOwotICAgIAotCS8qIEdldCBtZW1vcnkgZm9yIGZ1bGwgYnVmZmVy
LCBpbmNsdWRpbmcgc3BhY2UgZm9yIHRyYWlsaW5nIEVPQidzLiAqLwotCW4gPSBfeXlieXRlc19s
ZW4gKyAyOwotCWJ1ZiA9IChjaGFyICopIHl5YWxsb2MobiAseXlzY2FubmVyICk7Ci0JaWYgKCAh
IGJ1ZiApCi0JCVlZX0ZBVEFMX0VSUk9SKCAib3V0IG9mIGR5bmFtaWMgbWVtb3J5IGluIHl5X3Nj
YW5fYnl0ZXMoKSIgKTsKLQotCWZvciAoIGkgPSAwOyBpIDwgX3l5Ynl0ZXNfbGVuOyArK2kgKQot
CQlidWZbaV0gPSB5eWJ5dGVzW2ldOwotCi0JYnVmW195eWJ5dGVzX2xlbl0gPSBidWZbX3l5Ynl0
ZXNfbGVuKzFdID0gWVlfRU5EX09GX0JVRkZFUl9DSEFSOwotCi0JYiA9IHl5X3NjYW5fYnVmZmVy
KGJ1ZixuICx5eXNjYW5uZXIpOwotCWlmICggISBiICkKLQkJWVlfRkFUQUxfRVJST1IoICJiYWQg
YnVmZmVyIGluIHl5X3NjYW5fYnl0ZXMoKSIgKTsKLQotCS8qIEl0J3Mgb2theSB0byBncm93IGV0
Yy4gdGhpcyBidWZmZXIsIGFuZCB3ZSBzaG91bGQgdGhyb3cgaXQKLQkgKiBhd2F5IHdoZW4gd2Un
cmUgZG9uZS4KLQkgKi8KLQliLT55eV9pc19vdXJfYnVmZmVyID0gMTsKLQotCXJldHVybiBiOwot
fQotCi0jaWZuZGVmIFlZX0VYSVRfRkFJTFVSRQotI2RlZmluZSBZWV9FWElUX0ZBSUxVUkUgMgot
I2VuZGlmCi0KLXN0YXRpYyB2b2lkIHl5X2ZhdGFsX2Vycm9yICh5eWNvbnN0IGNoYXIqIG1zZyAs
IHl5c2Nhbl90IHl5c2Nhbm5lcikKLXsKLSAgICAJKHZvaWQpIGZwcmludGYoIHN0ZGVyciwgIiVz
XG4iLCBtc2cgKTsKLQlleGl0KCBZWV9FWElUX0ZBSUxVUkUgKTsKLX0KLQotLyogUmVkZWZpbmUg
eXlsZXNzKCkgc28gaXQgd29ya3MgaW4gc2VjdGlvbiAzIGNvZGUuICovCi0KLSN1bmRlZiB5eWxl
c3MKLSNkZWZpbmUgeXlsZXNzKG4pIFwKLQlkbyBcCi0JCXsgXAotCQkvKiBVbmRvIGVmZmVjdHMg
b2Ygc2V0dGluZyB1cCB5eXRleHQuICovIFwKLSAgICAgICAgaW50IHl5bGVzc19tYWNyb19hcmcg
PSAobik7IFwKLSAgICAgICAgWVlfTEVTU19MSU5FTk8oeXlsZXNzX21hY3JvX2FyZyk7XAotCQl5
eXRleHRbeXlsZW5nXSA9IHl5Zy0+eXlfaG9sZF9jaGFyOyBcCi0JCXl5Zy0+eXlfY19idWZfcCA9
IHl5dGV4dCArIHl5bGVzc19tYWNyb19hcmc7IFwKLQkJeXlnLT55eV9ob2xkX2NoYXIgPSAqeXln
LT55eV9jX2J1Zl9wOyBcCi0JCSp5eWctPnl5X2NfYnVmX3AgPSAnXDAnOyBcCi0JCXl5bGVuZyA9
IHl5bGVzc19tYWNyb19hcmc7IFwKLQkJfSBcCi0Jd2hpbGUgKCAwICkKLQotLyogQWNjZXNzb3Ig
IG1ldGhvZHMgKGdldC9zZXQgZnVuY3Rpb25zKSB0byBzdHJ1Y3QgbWVtYmVycy4gKi8KLQotLyoq
IEdldCB0aGUgdXNlci1kZWZpbmVkIGRhdGEgZm9yIHRoaXMgc2Nhbm5lci4KLSAqIEBwYXJhbSB5
eXNjYW5uZXIgVGhlIHNjYW5uZXIgb2JqZWN0LgotICovCi1ZWV9FWFRSQV9UWVBFIHl5Z2V0X2V4
dHJhICAoeXlzY2FuX3QgeXlzY2FubmVyKQotewotICAgIHN0cnVjdCB5eWd1dHNfdCAqIHl5ZyA9
IChzdHJ1Y3QgeXlndXRzX3QqKXl5c2Nhbm5lcjsKLSAgICByZXR1cm4geXlleHRyYTsKLX0KLQot
LyoqIEdldCB0aGUgY3VycmVudCBsaW5lIG51bWJlci4KLSAqIEBwYXJhbSB5eXNjYW5uZXIgVGhl
IHNjYW5uZXIgb2JqZWN0LgotICovCi1pbnQgeXlnZXRfbGluZW5vICAoeXlzY2FuX3QgeXlzY2Fu
bmVyKQotewotICAgIHN0cnVjdCB5eWd1dHNfdCAqIHl5ZyA9IChzdHJ1Y3QgeXlndXRzX3QqKXl5
c2Nhbm5lcjsKLSAgICAKLSAgICAgICAgaWYgKCEgWVlfQ1VSUkVOVF9CVUZGRVIpCi0gICAgICAg
ICAgICByZXR1cm4gMDsKLSAgICAKLSAgICByZXR1cm4geXlsaW5lbm87Ci19Ci0KLS8qKiBHZXQg
dGhlIGN1cnJlbnQgY29sdW1uIG51bWJlci4KLSAqIEBwYXJhbSB5eXNjYW5uZXIgVGhlIHNjYW5u
ZXIgb2JqZWN0LgotICovCi1pbnQgeXlnZXRfY29sdW1uICAoeXlzY2FuX3QgeXlzY2FubmVyKQot
ewotICAgIHN0cnVjdCB5eWd1dHNfdCAqIHl5ZyA9IChzdHJ1Y3QgeXlndXRzX3QqKXl5c2Nhbm5l
cjsKLSAgICAKLSAgICAgICAgaWYgKCEgWVlfQ1VSUkVOVF9CVUZGRVIpCi0gICAgICAgICAgICBy
ZXR1cm4gMDsKLSAgICAKLSAgICByZXR1cm4geXljb2x1bW47Ci19Ci0KLS8qKiBHZXQgdGhlIGlu
cHV0IHN0cmVhbS4KLSAqIEBwYXJhbSB5eXNjYW5uZXIgVGhlIHNjYW5uZXIgb2JqZWN0LgotICov
Ci1GSUxFICp5eWdldF9pbiAgKHl5c2Nhbl90IHl5c2Nhbm5lcikKLXsKLSAgICBzdHJ1Y3QgeXln
dXRzX3QgKiB5eWcgPSAoc3RydWN0IHl5Z3V0c190Kil5eXNjYW5uZXI7Ci0gICAgcmV0dXJuIHl5
aW47Ci19Ci0KLS8qKiBHZXQgdGhlIG91dHB1dCBzdHJlYW0uCi0gKiBAcGFyYW0geXlzY2FubmVy
IFRoZSBzY2FubmVyIG9iamVjdC4KLSAqLwotRklMRSAqeXlnZXRfb3V0ICAoeXlzY2FuX3QgeXlz
Y2FubmVyKQotewotICAgIHN0cnVjdCB5eWd1dHNfdCAqIHl5ZyA9IChzdHJ1Y3QgeXlndXRzX3Qq
KXl5c2Nhbm5lcjsKLSAgICByZXR1cm4geXlvdXQ7Ci19Ci0KLS8qKiBHZXQgdGhlIGxlbmd0aCBv
ZiB0aGUgY3VycmVudCB0b2tlbi4KLSAqIEBwYXJhbSB5eXNjYW5uZXIgVGhlIHNjYW5uZXIgb2Jq
ZWN0LgotICovCi15eV9zaXplX3QgeXlnZXRfbGVuZyAgKHl5c2Nhbl90IHl5c2Nhbm5lcikKLXsK
LSAgICBzdHJ1Y3QgeXlndXRzX3QgKiB5eWcgPSAoc3RydWN0IHl5Z3V0c190Kil5eXNjYW5uZXI7
Ci0gICAgcmV0dXJuIHl5bGVuZzsKLX0KLQotLyoqIEdldCB0aGUgY3VycmVudCB0b2tlbi4KLSAq
IEBwYXJhbSB5eXNjYW5uZXIgVGhlIHNjYW5uZXIgb2JqZWN0LgotICovCi0KLWNoYXIgKnl5Z2V0
X3RleHQgICh5eXNjYW5fdCB5eXNjYW5uZXIpCi17Ci0gICAgc3RydWN0IHl5Z3V0c190ICogeXln
ID0gKHN0cnVjdCB5eWd1dHNfdCopeXlzY2FubmVyOwotICAgIHJldHVybiB5eXRleHQ7Ci19Ci0K
LS8qKiBTZXQgdGhlIHVzZXItZGVmaW5lZCBkYXRhLiBUaGlzIGRhdGEgaXMgbmV2ZXIgdG91Y2hl
ZCBieSB0aGUgc2Nhbm5lci4KLSAqIEBwYXJhbSB1c2VyX2RlZmluZWQgVGhlIGRhdGEgdG8gYmUg
YXNzb2NpYXRlZCB3aXRoIHRoaXMgc2Nhbm5lci4KLSAqIEBwYXJhbSB5eXNjYW5uZXIgVGhlIHNj
YW5uZXIgb2JqZWN0LgotICovCi12b2lkIHl5c2V0X2V4dHJhIChZWV9FWFRSQV9UWVBFICB1c2Vy
X2RlZmluZWQgLCB5eXNjYW5fdCB5eXNjYW5uZXIpCi17Ci0gICAgc3RydWN0IHl5Z3V0c190ICog
eXlnID0gKHN0cnVjdCB5eWd1dHNfdCopeXlzY2FubmVyOwotICAgIHl5ZXh0cmEgPSB1c2VyX2Rl
ZmluZWQgOwotfQotCi0vKiogU2V0IHRoZSBjdXJyZW50IGxpbmUgbnVtYmVyLgotICogQHBhcmFt
IGxpbmVfbnVtYmVyCi0gKiBAcGFyYW0geXlzY2FubmVyIFRoZSBzY2FubmVyIG9iamVjdC4KLSAq
Lwotdm9pZCB5eXNldF9saW5lbm8gKGludCAgbGluZV9udW1iZXIgLCB5eXNjYW5fdCB5eXNjYW5u
ZXIpCi17Ci0gICAgc3RydWN0IHl5Z3V0c190ICogeXlnID0gKHN0cnVjdCB5eWd1dHNfdCopeXlz
Y2FubmVyOwotCi0gICAgICAgIC8qIGxpbmVubyBpcyBvbmx5IHZhbGlkIGlmIGFuIGlucHV0IGJ1
ZmZlciBleGlzdHMuICovCi0gICAgICAgIGlmICghIFlZX0NVUlJFTlRfQlVGRkVSICkKLSAgICAg
ICAgICAgeXlfZmF0YWxfZXJyb3IoICJ5eXNldF9saW5lbm8gY2FsbGVkIHdpdGggbm8gYnVmZmVy
IiAsIHl5c2Nhbm5lcik7IAotICAgIAotICAgIHl5bGluZW5vID0gbGluZV9udW1iZXI7Ci19Ci0K
LS8qKiBTZXQgdGhlIGN1cnJlbnQgY29sdW1uLgotICogQHBhcmFtIGxpbmVfbnVtYmVyCi0gKiBA
cGFyYW0geXlzY2FubmVyIFRoZSBzY2FubmVyIG9iamVjdC4KLSAqLwotdm9pZCB5eXNldF9jb2x1
bW4gKGludCAgY29sdW1uX25vICwgeXlzY2FuX3QgeXlzY2FubmVyKQotewotICAgIHN0cnVjdCB5
eWd1dHNfdCAqIHl5ZyA9IChzdHJ1Y3QgeXlndXRzX3QqKXl5c2Nhbm5lcjsKLQotICAgICAgICAv
KiBjb2x1bW4gaXMgb25seSB2YWxpZCBpZiBhbiBpbnB1dCBidWZmZXIgZXhpc3RzLiAqLwotICAg
ICAgICBpZiAoISBZWV9DVVJSRU5UX0JVRkZFUiApCi0gICAgICAgICAgIHl5X2ZhdGFsX2Vycm9y
KCAieXlzZXRfY29sdW1uIGNhbGxlZCB3aXRoIG5vIGJ1ZmZlciIgLCB5eXNjYW5uZXIpOyAKLSAg
ICAKLSAgICB5eWNvbHVtbiA9IGNvbHVtbl9ubzsKLX0KLQotLyoqIFNldCB0aGUgaW5wdXQgc3Ry
ZWFtLiBUaGlzIGRvZXMgbm90IGRpc2NhcmQgdGhlIGN1cnJlbnQKLSAqIGlucHV0IGJ1ZmZlci4K
LSAqIEBwYXJhbSBpbl9zdHIgQSByZWFkYWJsZSBzdHJlYW0uCi0gKiBAcGFyYW0geXlzY2FubmVy
IFRoZSBzY2FubmVyIG9iamVjdC4KLSAqIEBzZWUgeXlfc3dpdGNoX3RvX2J1ZmZlcgotICovCi12
b2lkIHl5c2V0X2luIChGSUxFICogIGluX3N0ciAsIHl5c2Nhbl90IHl5c2Nhbm5lcikKLXsKLSAg
ICBzdHJ1Y3QgeXlndXRzX3QgKiB5eWcgPSAoc3RydWN0IHl5Z3V0c190Kil5eXNjYW5uZXI7Ci0g
ICAgeXlpbiA9IGluX3N0ciA7Ci19Ci0KLXZvaWQgeXlzZXRfb3V0IChGSUxFICogIG91dF9zdHIg
LCB5eXNjYW5fdCB5eXNjYW5uZXIpCi17Ci0gICAgc3RydWN0IHl5Z3V0c190ICogeXlnID0gKHN0
cnVjdCB5eWd1dHNfdCopeXlzY2FubmVyOwotICAgIHl5b3V0ID0gb3V0X3N0ciA7Ci19Ci0KLWlu
dCB5eWdldF9kZWJ1ZyAgKHl5c2Nhbl90IHl5c2Nhbm5lcikKLXsKLSAgICBzdHJ1Y3QgeXlndXRz
X3QgKiB5eWcgPSAoc3RydWN0IHl5Z3V0c190Kil5eXNjYW5uZXI7Ci0gICAgcmV0dXJuIHl5X2Zs
ZXhfZGVidWc7Ci19Ci0KLXZvaWQgeXlzZXRfZGVidWcgKGludCAgYmRlYnVnICwgeXlzY2FuX3Qg
eXlzY2FubmVyKQotewotICAgIHN0cnVjdCB5eWd1dHNfdCAqIHl5ZyA9IChzdHJ1Y3QgeXlndXRz
X3QqKXl5c2Nhbm5lcjsKLSAgICB5eV9mbGV4X2RlYnVnID0gYmRlYnVnIDsKLX0KLQotLyogQWNj
ZXNzb3IgbWV0aG9kcyBmb3IgeXlsdmFsIGFuZCB5eWxsb2MgKi8KLQotWVlTVFlQRSAqIHl5Z2V0
X2x2YWwgICh5eXNjYW5fdCB5eXNjYW5uZXIpCi17Ci0gICAgc3RydWN0IHl5Z3V0c190ICogeXln
ID0gKHN0cnVjdCB5eWd1dHNfdCopeXlzY2FubmVyOwotICAgIHJldHVybiB5eWx2YWw7Ci19Ci0K
LXZvaWQgeXlzZXRfbHZhbCAoWVlTVFlQRSAqICB5eWx2YWxfcGFyYW0gLCB5eXNjYW5fdCB5eXNj
YW5uZXIpCi17Ci0gICAgc3RydWN0IHl5Z3V0c190ICogeXlnID0gKHN0cnVjdCB5eWd1dHNfdCop
eXlzY2FubmVyOwotICAgIHl5bHZhbCA9IHl5bHZhbF9wYXJhbTsKLX0KLQotWVlMVFlQRSAqeXln
ZXRfbGxvYyAgKHl5c2Nhbl90IHl5c2Nhbm5lcikKLXsKLSAgICBzdHJ1Y3QgeXlndXRzX3QgKiB5
eWcgPSAoc3RydWN0IHl5Z3V0c190Kil5eXNjYW5uZXI7Ci0gICAgcmV0dXJuIHl5bGxvYzsKLX0K
LSAgICAKLXZvaWQgeXlzZXRfbGxvYyAoWVlMVFlQRSAqICB5eWxsb2NfcGFyYW0gLCB5eXNjYW5f
dCB5eXNjYW5uZXIpCi17Ci0gICAgc3RydWN0IHl5Z3V0c190ICogeXlnID0gKHN0cnVjdCB5eWd1
dHNfdCopeXlzY2FubmVyOwotICAgIHl5bGxvYyA9IHl5bGxvY19wYXJhbTsKLX0KLSAgICAKLS8q
IFVzZXItdmlzaWJsZSBBUEkgKi8KLQotLyogeXlsZXhfaW5pdCBpcyBzcGVjaWFsIGJlY2F1c2Ug
aXQgY3JlYXRlcyB0aGUgc2Nhbm5lciBpdHNlbGYsIHNvIGl0IGlzCi0gKiB0aGUgT05MWSByZWVu
dHJhbnQgZnVuY3Rpb24gdGhhdCBkb2Vzbid0IHRha2UgdGhlIHNjYW5uZXIgYXMgdGhlIGxhc3Qg
YXJndW1lbnQuCi0gKiBUaGF0J3Mgd2h5IHdlIGV4cGxpY2l0bHkgaGFuZGxlIHRoZSBkZWNsYXJh
dGlvbiwgaW5zdGVhZCBvZiB1c2luZyBvdXIgbWFjcm9zLgotICovCi0KLWludCB5eWxleF9pbml0
KHl5c2Nhbl90KiBwdHJfeXlfZ2xvYmFscykKLQotewotICAgIGlmIChwdHJfeXlfZ2xvYmFscyA9
PSBOVUxMKXsKLSAgICAgICAgZXJybm8gPSBFSU5WQUw7Ci0gICAgICAgIHJldHVybiAxOwotICAg
IH0KLQotICAgICpwdHJfeXlfZ2xvYmFscyA9ICh5eXNjYW5fdCkgeXlhbGxvYyAoIHNpemVvZigg
c3RydWN0IHl5Z3V0c190ICksIE5VTEwgKTsKLQotICAgIGlmICgqcHRyX3l5X2dsb2JhbHMgPT0g
TlVMTCl7Ci0gICAgICAgIGVycm5vID0gRU5PTUVNOwotICAgICAgICByZXR1cm4gMTsKLSAgICB9
Ci0KLSAgICAvKiBCeSBzZXR0aW5nIHRvIDB4QUEsIHdlIGV4cG9zZSBidWdzIGluIHl5X2luaXRf
Z2xvYmFscy4gTGVhdmUgYXQgMHgwMCBmb3IgcmVsZWFzZXMuICovCi0gICAgbWVtc2V0KCpwdHJf
eXlfZ2xvYmFscywweDAwLHNpemVvZihzdHJ1Y3QgeXlndXRzX3QpKTsKLQotICAgIHJldHVybiB5
eV9pbml0X2dsb2JhbHMgKCAqcHRyX3l5X2dsb2JhbHMgKTsKLX0KLQotLyogeXlsZXhfaW5pdF9l
eHRyYSBoYXMgdGhlIHNhbWUgZnVuY3Rpb25hbGl0eSBhcyB5eWxleF9pbml0LCBidXQgZm9sbG93
cyB0aGUKLSAqIGNvbnZlbnRpb24gb2YgdGFraW5nIHRoZSBzY2FubmVyIGFzIHRoZSBsYXN0IGFy
Z3VtZW50LiBOb3RlIGhvd2V2ZXIsIHRoYXQKLSAqIHRoaXMgaXMgYSAqcG9pbnRlciogdG8gYSBz
Y2FubmVyLCBhcyBpdCB3aWxsIGJlIGFsbG9jYXRlZCBieSB0aGlzIGNhbGwgKGFuZAotICogaXMg
dGhlIHJlYXNvbiwgdG9vLCB3aHkgdGhpcyBmdW5jdGlvbiBhbHNvIG11c3QgaGFuZGxlIGl0cyBv
d24gZGVjbGFyYXRpb24pLgotICogVGhlIHVzZXIgZGVmaW5lZCB2YWx1ZSBpbiB0aGUgZmlyc3Qg
YXJndW1lbnQgd2lsbCBiZSBhdmFpbGFibGUgdG8geXlhbGxvYyBpbgotICogdGhlIHl5ZXh0cmEg
ZmllbGQuCi0gKi8KLQotaW50IHl5bGV4X2luaXRfZXh0cmEoWVlfRVhUUkFfVFlQRSB5eV91c2Vy
X2RlZmluZWQseXlzY2FuX3QqIHB0cl95eV9nbG9iYWxzICkKLQotewotICAgIHN0cnVjdCB5eWd1
dHNfdCBkdW1teV95eWd1dHM7Ci0KLSAgICB5eXNldF9leHRyYSAoeXlfdXNlcl9kZWZpbmVkLCAm
ZHVtbXlfeXlndXRzKTsKLQotICAgIGlmIChwdHJfeXlfZ2xvYmFscyA9PSBOVUxMKXsKLSAgICAg
ICAgZXJybm8gPSBFSU5WQUw7Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KLQkKLSAgICAqcHRy
X3l5X2dsb2JhbHMgPSAoeXlzY2FuX3QpIHl5YWxsb2MgKCBzaXplb2YoIHN0cnVjdCB5eWd1dHNf
dCApLCAmZHVtbXlfeXlndXRzICk7Ci0JCi0gICAgaWYgKCpwdHJfeXlfZ2xvYmFscyA9PSBOVUxM
KXsKLSAgICAgICAgZXJybm8gPSBFTk9NRU07Ci0gICAgICAgIHJldHVybiAxOwotICAgIH0KLSAg
ICAKLSAgICAvKiBCeSBzZXR0aW5nIHRvIDB4QUEsIHdlIGV4cG9zZSBidWdzIGluCi0gICAgeXlf
aW5pdF9nbG9iYWxzLiBMZWF2ZSBhdCAweDAwIGZvciByZWxlYXNlcy4gKi8KLSAgICBtZW1zZXQo
KnB0cl95eV9nbG9iYWxzLDB4MDAsc2l6ZW9mKHN0cnVjdCB5eWd1dHNfdCkpOwotICAgIAotICAg
IHl5c2V0X2V4dHJhICh5eV91c2VyX2RlZmluZWQsICpwdHJfeXlfZ2xvYmFscyk7Ci0gICAgCi0g
ICAgcmV0dXJuIHl5X2luaXRfZ2xvYmFscyAoICpwdHJfeXlfZ2xvYmFscyApOwotfQotCi1zdGF0
aWMgaW50IHl5X2luaXRfZ2xvYmFscyAoeXlzY2FuX3QgeXlzY2FubmVyKQotewotICAgIHN0cnVj
dCB5eWd1dHNfdCAqIHl5ZyA9IChzdHJ1Y3QgeXlndXRzX3QqKXl5c2Nhbm5lcjsKLSAgICAvKiBJ
bml0aWFsaXphdGlvbiBpcyB0aGUgc2FtZSBhcyBmb3IgdGhlIG5vbi1yZWVudHJhbnQgc2Nhbm5l
ci4KLSAgICAgKiBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIHl5bGV4X2Rlc3Ryb3koKSwg
c28gZG9uJ3QgYWxsb2NhdGUgaGVyZS4KLSAgICAgKi8KLQotICAgIHl5Zy0+eXlfYnVmZmVyX3N0
YWNrID0gMDsKLSAgICB5eWctPnl5X2J1ZmZlcl9zdGFja190b3AgPSAwOwotICAgIHl5Zy0+eXlf
YnVmZmVyX3N0YWNrX21heCA9IDA7Ci0gICAgeXlnLT55eV9jX2J1Zl9wID0gKGNoYXIgKikgMDsK
LSAgICB5eWctPnl5X2luaXQgPSAwOwotICAgIHl5Zy0+eXlfc3RhcnQgPSAwOwotCi0gICAgeXln
LT55eV9zdGFydF9zdGFja19wdHIgPSAwOwotICAgIHl5Zy0+eXlfc3RhcnRfc3RhY2tfZGVwdGgg
PSAwOwotICAgIHl5Zy0+eXlfc3RhcnRfc3RhY2sgPSAgTlVMTDsKLQotLyogRGVmaW5lZCBpbiBt
YWluLmMgKi8KLSNpZmRlZiBZWV9TVERJTklUCi0gICAgeXlpbiA9IHN0ZGluOwotICAgIHl5b3V0
ID0gc3Rkb3V0OwotI2Vsc2UKLSAgICB5eWluID0gKEZJTEUgKikgMDsKLSAgICB5eW91dCA9IChG
SUxFICopIDA7Ci0jZW5kaWYKLQotICAgIC8qIEZvciBmdXR1cmUgcmVmZXJlbmNlOiBTZXQgZXJy
bm8gb24gZXJyb3IsIHNpbmNlIHdlIGFyZSBjYWxsZWQgYnkKLSAgICAgKiB5eWxleF9pbml0KCkK
LSAgICAgKi8KLSAgICByZXR1cm4gMDsKLX0KLQotLyogeXlsZXhfZGVzdHJveSBpcyBmb3IgYm90
aCByZWVudHJhbnQgYW5kIG5vbi1yZWVudHJhbnQgc2Nhbm5lcnMuICovCi1pbnQgeXlsZXhfZGVz
dHJveSAgKHl5c2Nhbl90IHl5c2Nhbm5lcikKLXsKLSAgICBzdHJ1Y3QgeXlndXRzX3QgKiB5eWcg
PSAoc3RydWN0IHl5Z3V0c190Kil5eXNjYW5uZXI7Ci0KLSAgICAvKiBQb3AgdGhlIGJ1ZmZlciBz
dGFjaywgZGVzdHJveWluZyBlYWNoIGVsZW1lbnQuICovCi0Jd2hpbGUoWVlfQ1VSUkVOVF9CVUZG
RVIpewotCQl5eV9kZWxldGVfYnVmZmVyKFlZX0NVUlJFTlRfQlVGRkVSICx5eXNjYW5uZXIgKTsK
LQkJWVlfQ1VSUkVOVF9CVUZGRVJfTFZBTFVFID0gTlVMTDsKLQkJeXlwb3BfYnVmZmVyX3N0YXRl
KHl5c2Nhbm5lcik7Ci0JfQotCi0JLyogRGVzdHJveSB0aGUgc3RhY2sgaXRzZWxmLiAqLwotCXl5
ZnJlZSh5eWctPnl5X2J1ZmZlcl9zdGFjayAseXlzY2FubmVyKTsKLQl5eWctPnl5X2J1ZmZlcl9z
dGFjayA9IE5VTEw7Ci0KLSAgICAvKiBEZXN0cm95IHRoZSBzdGFydCBjb25kaXRpb24gc3RhY2su
ICovCi0gICAgICAgIHl5ZnJlZSh5eWctPnl5X3N0YXJ0X3N0YWNrICx5eXNjYW5uZXIgKTsKLSAg
ICAgICAgeXlnLT55eV9zdGFydF9zdGFjayA9IE5VTEw7Ci0KLSAgICAvKiBSZXNldCB0aGUgZ2xv
YmFscy4gVGhpcyBpcyBpbXBvcnRhbnQgaW4gYSBub24tcmVlbnRyYW50IHNjYW5uZXIgc28gdGhl
IG5leHQgdGltZQotICAgICAqIHl5bGV4KCkgaXMgY2FsbGVkLCBpbml0aWFsaXphdGlvbiB3aWxs
IG9jY3VyLiAqLwotICAgIHl5X2luaXRfZ2xvYmFscyggeXlzY2FubmVyKTsKLQotICAgIC8qIERl
c3Ryb3kgdGhlIG1haW4gc3RydWN0IChyZWVudHJhbnQgb25seSkuICovCi0gICAgeXlmcmVlICgg
eXlzY2FubmVyICwgeXlzY2FubmVyICk7Ci0gICAgeXlzY2FubmVyID0gTlVMTDsKLSAgICByZXR1
cm4gMDsKLX0KLQotLyoKLSAqIEludGVybmFsIHV0aWxpdHkgcm91dGluZXMuCi0gKi8KLQotI2lm
bmRlZiB5eXRleHRfcHRyCi1zdGF0aWMgdm9pZCB5eV9mbGV4X3N0cm5jcHkgKGNoYXIqIHMxLCB5
eWNvbnN0IGNoYXIgKiBzMiwgaW50IG4gLCB5eXNjYW5fdCB5eXNjYW5uZXIpCi17Ci0JcmVnaXN0
ZXIgaW50IGk7Ci0JZm9yICggaSA9IDA7IGkgPCBuOyArK2kgKQotCQlzMVtpXSA9IHMyW2ldOwot
fQotI2VuZGlmCi0KLSNpZmRlZiBZWV9ORUVEX1NUUkxFTgotc3RhdGljIGludCB5eV9mbGV4X3N0
cmxlbiAoeXljb25zdCBjaGFyICogcyAsIHl5c2Nhbl90IHl5c2Nhbm5lcikKLXsKLQlyZWdpc3Rl
ciBpbnQgbjsKLQlmb3IgKCBuID0gMDsgc1tuXTsgKytuICkKLQkJOwotCi0JcmV0dXJuIG47Ci19
Ci0jZW5kaWYKLQotdm9pZCAqeXlhbGxvYyAoeXlfc2l6ZV90ICBzaXplICwgeXlzY2FuX3QgeXlz
Y2FubmVyKQotewotCXJldHVybiAodm9pZCAqKSBtYWxsb2MoIHNpemUgKTsKLX0KLQotdm9pZCAq
eXlyZWFsbG9jICAodm9pZCAqIHB0ciwgeXlfc2l6ZV90ICBzaXplICwgeXlzY2FuX3QgeXlzY2Fu
bmVyKQotewotCS8qIFRoZSBjYXN0IHRvIChjaGFyICopIGluIHRoZSBmb2xsb3dpbmcgYWNjb21t
b2RhdGVzIGJvdGgKLQkgKiBpbXBsZW1lbnRhdGlvbnMgdGhhdCB1c2UgY2hhciogZ2VuZXJpYyBw
b2ludGVycywgYW5kIHRob3NlCi0JICogdGhhdCB1c2Ugdm9pZCogZ2VuZXJpYyBwb2ludGVycy4g
IEl0IHdvcmtzIHdpdGggdGhlIGxhdHRlcgotCSAqIGJlY2F1c2UgYm90aCBBTlNJIEMgYW5kIEMr
KyBhbGxvdyBjYXN0bGVzcyBhc3NpZ25tZW50IGZyb20KLQkgKiBhbnkgcG9pbnRlciB0eXBlIHRv
IHZvaWQqLCBhbmQgZGVhbCB3aXRoIGFyZ3VtZW50IGNvbnZlcnNpb25zCi0JICogYXMgdGhvdWdo
IGRvaW5nIGFuIGFzc2lnbm1lbnQuCi0JICovCi0JcmV0dXJuICh2b2lkICopIHJlYWxsb2MoIChj
aGFyICopIHB0ciwgc2l6ZSApOwotfQotCi12b2lkIHl5ZnJlZSAodm9pZCAqIHB0ciAsIHl5c2Nh
bl90IHl5c2Nhbm5lcikKLXsKLQlmcmVlKCAoY2hhciAqKSBwdHIgKTsJLyogc2VlIHl5cmVhbGxv
YygpIGZvciAoY2hhciAqKSBjYXN0ICovCi19Ci0KLSNkZWZpbmUgWVlUQUJMRVNfTkFNRSAieXl0
YWJsZXMiCi0KLXl5X3NpemVfdCBzdHJpbmdfaW5wdXQoY2hhciogYnVmLCB5eV9zaXplX3QgbWF4
X3NpemUsIHl5c2Nhbl90IHl5c2Nhbm5lcikgewotICAgIHBwOjpUb2tlbiB0b2tlbjsKLSAgICB5
eWdldF9leHRyYSh5eXNjYW5uZXIpLT5wcmVwcm9jZXNzb3IubGV4KCZ0b2tlbik7Ci0gICAgeXlf
c2l6ZV90IGxlbiA9IHRva2VuLnR5cGUgPT0gcHA6OlRva2VuOjpMQVNUID8gMCA6IHRva2VuLnRl
eHQuc2l6ZSgpOwotICAgIGlmIChsZW4gPCBtYXhfc2l6ZSkKLSAgICAgICAgbWVtY3B5KGJ1Ziwg
dG9rZW4udGV4dC5jX3N0cigpLCBsZW4pOwotICAgIHl5c2V0X2NvbHVtbih0b2tlbi5sb2NhdGlv
bi5maWxlLHl5c2Nhbm5lcik7Ci0gICAgeXlzZXRfbGluZW5vKHRva2VuLmxvY2F0aW9uLmxpbmUs
eXlzY2FubmVyKTsKLQotICAgIGlmIChsZW4gPj0gbWF4X3NpemUpCi0gICAgICAgIFlZX0ZBVEFM
X0VSUk9SKCJJbnB1dCBidWZmZXIgb3ZlcmZsb3ciKTsKLSAgICBlbHNlIGlmIChsZW4gPiAwKQot
ICAgICAgICBidWZbbGVuKytdID0gJyAnOwotICAgIHJldHVybiBsZW47Ci19Ci0KLWludCBjaGVj
a190eXBlKHl5c2Nhbl90IHl5c2Nhbm5lcikgewotICAgIHN0cnVjdCB5eWd1dHNfdCogeXlnID0g
KHN0cnVjdCB5eWd1dHNfdCopIHl5c2Nhbm5lcjsKLSAgICAKLSAgICBpbnQgdG9rZW4gPSBJREVO
VElGSUVSOwotICAgIFRTeW1ib2wqIHN5bWJvbCA9IHl5ZXh0cmEtPnN5bWJvbFRhYmxlLmZpbmQo
eXl0ZXh0KTsKLSAgICBpZiAoc3ltYm9sICYmIHN5bWJvbC0+aXNWYXJpYWJsZSgpKSB7Ci0gICAg
ICAgIFRWYXJpYWJsZSogdmFyaWFibGUgPSBzdGF0aWNfY2FzdDxUVmFyaWFibGUqPihzeW1ib2wp
OwotICAgICAgICBpZiAodmFyaWFibGUtPmlzVXNlclR5cGUoKSkKLSAgICAgICAgICAgIHRva2Vu
ID0gVFlQRV9OQU1FOwotICAgIH0KLSAgICB5eWx2YWwtPmxleC5zeW1ib2wgPSBzeW1ib2w7Ci0g
ICAgcmV0dXJuIHRva2VuOwotfQotCi1pbnQgcmVzZXJ2ZWRfd29yZCh5eXNjYW5fdCB5eXNjYW5u
ZXIpIHsKLSAgICBzdHJ1Y3QgeXlndXRzX3QqIHl5ZyA9IChzdHJ1Y3QgeXlndXRzX3QqKSB5eXNj
YW5uZXI7Ci0KLSAgICB5eWV4dHJhLT5lcnJvcigqeXlsbG9jLCAiSWxsZWdhbCB1c2Ugb2YgcmVz
ZXJ2ZWQgd29yZCIsIHl5dGV4dCwgIiIpOwotICAgIHl5ZXh0cmEtPnJlY292ZXIoKTsKLSAgICBy
ZXR1cm4gMDsKLX0KLQotaW50IGdsc2xhbmdfaW5pdGlhbGl6ZShUUGFyc2VDb250ZXh0KiBjb250
ZXh0KSB7Ci0gICAgeXlzY2FuX3Qgc2Nhbm5lciA9IE5VTEw7Ci0gICAgaWYgKHl5bGV4X2luaXRf
ZXh0cmEoY29udGV4dCwmc2Nhbm5lcikpCi0gICAgICAgIHJldHVybiAxOwotCi0gICAgY29udGV4
dC0+c2Nhbm5lciA9IHNjYW5uZXI7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLWludCBnbHNsYW5nX2Zp
bmFsaXplKFRQYXJzZUNvbnRleHQqIGNvbnRleHQpIHsKLSAgICB5eXNjYW5fdCBzY2FubmVyID0g
Y29udGV4dC0+c2Nhbm5lcjsKLSAgICBpZiAoc2Nhbm5lciA9PSBOVUxMKSByZXR1cm4gMDsKLSAg
ICAKLSAgICBjb250ZXh0LT5zY2FubmVyID0gTlVMTDsKLSAgICB5eWxleF9kZXN0cm95KHNjYW5u
ZXIpOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KLWludCBnbHNsYW5nX3NjYW4oc2l6ZV90IGNvdW50
LCBjb25zdCBjaGFyKiBjb25zdCBzdHJpbmdbXSwgY29uc3QgaW50IGxlbmd0aFtdLAotICAgICAg
ICAgICAgICAgICBUUGFyc2VDb250ZXh0KiBjb250ZXh0KSB7Ci0gICAgeXlyZXN0YXJ0KE5VTEws
Y29udGV4dC0+c2Nhbm5lcik7Ci0gICAgeXlzZXRfY29sdW1uKDAsY29udGV4dC0+c2Nhbm5lcik7
Ci0gICAgeXlzZXRfbGluZW5vKDEsY29udGV4dC0+c2Nhbm5lcik7Ci0KLSAgICAvLyBJbml0aWFs
aXplIHByZXByb2Nlc3Nvci4KLSAgICBpZiAoIWNvbnRleHQtPnByZXByb2Nlc3Nvci5pbml0KGNv
dW50LCBzdHJpbmcsIGxlbmd0aCkpCi0gICAgICAgIHJldHVybiAxOwotCi0gICAgLy8gRGVmaW5l
IGV4dGVuc2lvbiBtYWNyb3MuCi0gICAgY29uc3QgVEV4dGVuc2lvbkJlaGF2aW9yJiBleHRCZWhh
dmlvciA9IGNvbnRleHQtPmV4dGVuc2lvbkJlaGF2aW9yKCk7Ci0gICAgZm9yIChURXh0ZW5zaW9u
QmVoYXZpb3I6OmNvbnN0X2l0ZXJhdG9yIGl0ZXIgPSBleHRCZWhhdmlvci5iZWdpbigpOwotICAg
ICAgICAgaXRlciAhPSBleHRCZWhhdmlvci5lbmQoKTsgKytpdGVyKSB7Ci0gICAgICAgIGNvbnRl
eHQtPnByZXByb2Nlc3Nvci5wcmVkZWZpbmVNYWNybyhpdGVyLT5maXJzdC5jX3N0cigpLCAxKTsK
LSAgICB9Ci0gICAgaWYgKGNvbnRleHQtPmZyYWdtZW50UHJlY2lzaW9uSGlnaCkKLSAgICAgICAg
Y29udGV4dC0+cHJlcHJvY2Vzc29yLnByZWRlZmluZU1hY3JvKCJHTF9GUkFHTUVOVF9QUkVDSVNJ
T05fSElHSCIsIDEpOwotCi0gICAgcmV0dXJuIDA7Ci19Ci0KSW5kZXg6IFNvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL3NyYy9jb21waWxlci9nbHNsYW5nX3RhYi5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL2dsc2xhbmdfdGFiLmNwcAkocmV2aXNp
b24gMTUyODcwKQorKysgU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL2dsc2xh
bmdfdGFiLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMSw0ODg3ICswLDAgQEAKLS8qIEEgQmlzb24g
cGFyc2VyLCBtYWRlIGJ5IEdOVSBCaXNvbiAyLjMuICAqLwotCi0vKiBTa2VsZXRvbiBpbXBsZW1l
bnRhdGlvbiBmb3IgQmlzb24ncyBZYWNjLWxpa2UgcGFyc2VycyBpbiBDCi0KLSAgIENvcHlyaWdo
dCAoQykgMTk4NCwgMTk4OSwgMTk5MCwgMjAwMCwgMjAwMSwgMjAwMiwgMjAwMywgMjAwNCwgMjAw
NSwgMjAwNgotICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0KLSAgIFRoaXMgcHJv
Z3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgbW9k
aWZ5Ci0gICBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieQotICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0
aGVyIHZlcnNpb24gMiwgb3IgKGF0IHlvdXIgb3B0aW9uKQotICAgYW55IGxhdGVyIHZlcnNpb24u
Ci0KLSAgIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4g
dGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKLSAgIEdOVSBHZW5lcmFsIFB1YmxpYyBM
aWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh
IGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICBhbG9uZyB3aXRoIHRo
aXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQotICAgRm91bmRh
dGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAgIEJvc3Rvbiwg
TUEgMDIxMTAtMTMwMSwgVVNBLiAgKi8KLQotLyogQXMgYSBzcGVjaWFsIGV4Y2VwdGlvbiwgeW91
IG1heSBjcmVhdGUgYSBsYXJnZXIgd29yayB0aGF0IGNvbnRhaW5zCi0gICBwYXJ0IG9yIGFsbCBv
ZiB0aGUgQmlzb24gcGFyc2VyIHNrZWxldG9uIGFuZCBkaXN0cmlidXRlIHRoYXQgd29yawotICAg
dW5kZXIgdGVybXMgb2YgeW91ciBjaG9pY2UsIHNvIGxvbmcgYXMgdGhhdCB3b3JrIGlzbid0IGl0
c2VsZiBhCi0gICBwYXJzZXIgZ2VuZXJhdG9yIHVzaW5nIHRoZSBza2VsZXRvbiBvciBhIG1vZGlm
aWVkIHZlcnNpb24gdGhlcmVvZgotICAgYXMgYSBwYXJzZXIgc2tlbGV0b24uICBBbHRlcm5hdGl2
ZWx5LCBpZiB5b3UgbW9kaWZ5IG9yIHJlZGlzdHJpYnV0ZQotICAgdGhlIHBhcnNlciBza2VsZXRv
biBpdHNlbGYsIHlvdSBtYXkgKGF0IHlvdXIgb3B0aW9uKSByZW1vdmUgdGhpcwotICAgc3BlY2lh
bCBleGNlcHRpb24sIHdoaWNoIHdpbGwgY2F1c2UgdGhlIHNrZWxldG9uIGFuZCB0aGUgcmVzdWx0
aW5nCi0gICBCaXNvbiBvdXRwdXQgZmlsZXMgdG8gYmUgbGljZW5zZWQgdW5kZXIgdGhlIEdOVSBH
ZW5lcmFsIFB1YmxpYwotICAgTGljZW5zZSB3aXRob3V0IHRoaXMgc3BlY2lhbCBleGNlcHRpb24u
Ci0KLSAgIFRoaXMgc3BlY2lhbCBleGNlcHRpb24gd2FzIGFkZGVkIGJ5IHRoZSBGcmVlIFNvZnR3
YXJlIEZvdW5kYXRpb24gaW4KLSAgIHZlcnNpb24gMi4yIG9mIEJpc29uLiAgKi8KLQotLyogQyBM
QUxSKDEpIHBhcnNlciBza2VsZXRvbiB3cml0dGVuIGJ5IFJpY2hhcmQgU3RhbGxtYW4sIGJ5Ci0g
ICBzaW1wbGlmeWluZyB0aGUgb3JpZ2luYWwgc28tY2FsbGVkICJzZW1hbnRpYyIgcGFyc2VyLiAg
Ki8KLQotLyogQWxsIHN5bWJvbHMgZGVmaW5lZCBiZWxvdyBzaG91bGQgYmVnaW4gd2l0aCB5eSBv
ciBZWSwgdG8gYXZvaWQKLSAgIGluZnJpbmdpbmcgb24gdXNlciBuYW1lIHNwYWNlLiAgVGhpcyBz
aG91bGQgYmUgZG9uZSBldmVuIGZvciBsb2NhbAotICAgdmFyaWFibGVzLCBhcyB0aGV5IG1pZ2h0
IG90aGVyd2lzZSBiZSBleHBhbmRlZCBieSB1c2VyIG1hY3Jvcy4KLSAgIFRoZXJlIGFyZSBzb21l
IHVuYXZvaWRhYmxlIGV4Y2VwdGlvbnMgd2l0aGluIGluY2x1ZGUgZmlsZXMgdG8KLSAgIGRlZmlu
ZSBuZWNlc3NhcnkgbGlicmFyeSBzeW1ib2xzOyB0aGV5IGFyZSBub3RlZCAiSU5GUklOR0VTIE9O
Ci0gICBVU0VSIE5BTUUgU1BBQ0UiIGJlbG93LiAgKi8KLQotLyogSWRlbnRpZnkgQmlzb24gb3V0
cHV0LiAgKi8KLSNkZWZpbmUgWVlCSVNPTiAxCi0KLS8qIEJpc29uIHZlcnNpb24uICAqLwotI2Rl
ZmluZSBZWUJJU09OX1ZFUlNJT04gIjIuMyIKLQotLyogU2tlbGV0b24gbmFtZS4gICovCi0jZGVm
aW5lIFlZU0tFTEVUT05fTkFNRSAieWFjYy5jIgotCi0vKiBQdXJlIHBhcnNlcnMuICAqLwotI2Rl
ZmluZSBZWVBVUkUgMQotCi0vKiBVc2luZyBsb2NhdGlvbnMuICAqLwotI2RlZmluZSBZWUxTUF9O
RUVERUQgMQotCi0KLQotLyogVG9rZW5zLiAgKi8KLSNpZm5kZWYgWVlUT0tFTlRZUEUKLSMgZGVm
aW5lIFlZVE9LRU5UWVBFCi0gICAvKiBQdXQgdGhlIHRva2VucyBpbnRvIHRoZSBzeW1ib2wgdGFi
bGUsIHNvIHRoYXQgR0RCIGFuZCBvdGhlciBkZWJ1Z2dlcnMKLSAgICAgIGtub3cgYWJvdXQgdGhl
bS4gICovCi0gICBlbnVtIHl5dG9rZW50eXBlIHsKLSAgICAgSU5WQVJJQU5UID0gMjU4LAotICAg
ICBISUdIX1BSRUNJU0lPTiA9IDI1OSwKLSAgICAgTUVESVVNX1BSRUNJU0lPTiA9IDI2MCwKLSAg
ICAgTE9XX1BSRUNJU0lPTiA9IDI2MSwKLSAgICAgUFJFQ0lTSU9OID0gMjYyLAotICAgICBBVFRS
SUJVVEUgPSAyNjMsCi0gICAgIENPTlNUX1FVQUwgPSAyNjQsCi0gICAgIEJPT0xfVFlQRSA9IDI2
NSwKLSAgICAgRkxPQVRfVFlQRSA9IDI2NiwKLSAgICAgSU5UX1RZUEUgPSAyNjcsCi0gICAgIEJS
RUFLID0gMjY4LAotICAgICBDT05USU5VRSA9IDI2OSwKLSAgICAgRE8gPSAyNzAsCi0gICAgIEVM
U0UgPSAyNzEsCi0gICAgIEZPUiA9IDI3MiwKLSAgICAgSUYgPSAyNzMsCi0gICAgIERJU0NBUkQg
PSAyNzQsCi0gICAgIFJFVFVSTiA9IDI3NSwKLSAgICAgQlZFQzIgPSAyNzYsCi0gICAgIEJWRUMz
ID0gMjc3LAotICAgICBCVkVDNCA9IDI3OCwKLSAgICAgSVZFQzIgPSAyNzksCi0gICAgIElWRUMz
ID0gMjgwLAotICAgICBJVkVDNCA9IDI4MSwKLSAgICAgVkVDMiA9IDI4MiwKLSAgICAgVkVDMyA9
IDI4MywKLSAgICAgVkVDNCA9IDI4NCwKLSAgICAgTUFUUklYMiA9IDI4NSwKLSAgICAgTUFUUklY
MyA9IDI4NiwKLSAgICAgTUFUUklYNCA9IDI4NywKLSAgICAgSU5fUVVBTCA9IDI4OCwKLSAgICAg
T1VUX1FVQUwgPSAyODksCi0gICAgIElOT1VUX1FVQUwgPSAyOTAsCi0gICAgIFVOSUZPUk0gPSAy
OTEsCi0gICAgIFZBUllJTkcgPSAyOTIsCi0gICAgIFNUUlVDVCA9IDI5MywKLSAgICAgVk9JRF9U
WVBFID0gMjk0LAotICAgICBXSElMRSA9IDI5NSwKLSAgICAgU0FNUExFUjJEID0gMjk2LAotICAg
ICBTQU1QTEVSQ1VCRSA9IDI5NywKLSAgICAgU0FNUExFUl9FWFRFUk5BTF9PRVMgPSAyOTgsCi0g
ICAgIFNBTVBMRVIyRFJFQ1QgPSAyOTksCi0gICAgIElERU5USUZJRVIgPSAzMDAsCi0gICAgIFRZ
UEVfTkFNRSA9IDMwMSwKLSAgICAgRkxPQVRDT05TVEFOVCA9IDMwMiwKLSAgICAgSU5UQ09OU1RB
TlQgPSAzMDMsCi0gICAgIEJPT0xDT05TVEFOVCA9IDMwNCwKLSAgICAgTEVGVF9PUCA9IDMwNSwK
LSAgICAgUklHSFRfT1AgPSAzMDYsCi0gICAgIElOQ19PUCA9IDMwNywKLSAgICAgREVDX09QID0g
MzA4LAotICAgICBMRV9PUCA9IDMwOSwKLSAgICAgR0VfT1AgPSAzMTAsCi0gICAgIEVRX09QID0g
MzExLAotICAgICBORV9PUCA9IDMxMiwKLSAgICAgQU5EX09QID0gMzEzLAotICAgICBPUl9PUCA9
IDMxNCwKLSAgICAgWE9SX09QID0gMzE1LAotICAgICBNVUxfQVNTSUdOID0gMzE2LAotICAgICBE
SVZfQVNTSUdOID0gMzE3LAotICAgICBBRERfQVNTSUdOID0gMzE4LAotICAgICBNT0RfQVNTSUdO
ID0gMzE5LAotICAgICBMRUZUX0FTU0lHTiA9IDMyMCwKLSAgICAgUklHSFRfQVNTSUdOID0gMzIx
LAotICAgICBBTkRfQVNTSUdOID0gMzIyLAotICAgICBYT1JfQVNTSUdOID0gMzIzLAotICAgICBP
Ul9BU1NJR04gPSAzMjQsCi0gICAgIFNVQl9BU1NJR04gPSAzMjUsCi0gICAgIExFRlRfUEFSRU4g
PSAzMjYsCi0gICAgIFJJR0hUX1BBUkVOID0gMzI3LAotICAgICBMRUZUX0JSQUNLRVQgPSAzMjgs
Ci0gICAgIFJJR0hUX0JSQUNLRVQgPSAzMjksCi0gICAgIExFRlRfQlJBQ0UgPSAzMzAsCi0gICAg
IFJJR0hUX0JSQUNFID0gMzMxLAotICAgICBET1QgPSAzMzIsCi0gICAgIENPTU1BID0gMzMzLAot
ICAgICBDT0xPTiA9IDMzNCwKLSAgICAgRVFVQUwgPSAzMzUsCi0gICAgIFNFTUlDT0xPTiA9IDMz
NiwKLSAgICAgQkFORyA9IDMzNywKLSAgICAgREFTSCA9IDMzOCwKLSAgICAgVElMREUgPSAzMzks
Ci0gICAgIFBMVVMgPSAzNDAsCi0gICAgIFNUQVIgPSAzNDEsCi0gICAgIFNMQVNIID0gMzQyLAot
ICAgICBQRVJDRU5UID0gMzQzLAotICAgICBMRUZUX0FOR0xFID0gMzQ0LAotICAgICBSSUdIVF9B
TkdMRSA9IDM0NSwKLSAgICAgVkVSVElDQUxfQkFSID0gMzQ2LAotICAgICBDQVJFVCA9IDM0NywK
LSAgICAgQU1QRVJTQU5EID0gMzQ4LAotICAgICBRVUVTVElPTiA9IDM0OQotICAgfTsKLSNlbmRp
ZgotLyogVG9rZW5zLiAgKi8KLSNkZWZpbmUgSU5WQVJJQU5UIDI1OAotI2RlZmluZSBISUdIX1BS
RUNJU0lPTiAyNTkKLSNkZWZpbmUgTUVESVVNX1BSRUNJU0lPTiAyNjAKLSNkZWZpbmUgTE9XX1BS
RUNJU0lPTiAyNjEKLSNkZWZpbmUgUFJFQ0lTSU9OIDI2MgotI2RlZmluZSBBVFRSSUJVVEUgMjYz
Ci0jZGVmaW5lIENPTlNUX1FVQUwgMjY0Ci0jZGVmaW5lIEJPT0xfVFlQRSAyNjUKLSNkZWZpbmUg
RkxPQVRfVFlQRSAyNjYKLSNkZWZpbmUgSU5UX1RZUEUgMjY3Ci0jZGVmaW5lIEJSRUFLIDI2OAot
I2RlZmluZSBDT05USU5VRSAyNjkKLSNkZWZpbmUgRE8gMjcwCi0jZGVmaW5lIEVMU0UgMjcxCi0j
ZGVmaW5lIEZPUiAyNzIKLSNkZWZpbmUgSUYgMjczCi0jZGVmaW5lIERJU0NBUkQgMjc0Ci0jZGVm
aW5lIFJFVFVSTiAyNzUKLSNkZWZpbmUgQlZFQzIgMjc2Ci0jZGVmaW5lIEJWRUMzIDI3NwotI2Rl
ZmluZSBCVkVDNCAyNzgKLSNkZWZpbmUgSVZFQzIgMjc5Ci0jZGVmaW5lIElWRUMzIDI4MAotI2Rl
ZmluZSBJVkVDNCAyODEKLSNkZWZpbmUgVkVDMiAyODIKLSNkZWZpbmUgVkVDMyAyODMKLSNkZWZp
bmUgVkVDNCAyODQKLSNkZWZpbmUgTUFUUklYMiAyODUKLSNkZWZpbmUgTUFUUklYMyAyODYKLSNk
ZWZpbmUgTUFUUklYNCAyODcKLSNkZWZpbmUgSU5fUVVBTCAyODgKLSNkZWZpbmUgT1VUX1FVQUwg
Mjg5Ci0jZGVmaW5lIElOT1VUX1FVQUwgMjkwCi0jZGVmaW5lIFVOSUZPUk0gMjkxCi0jZGVmaW5l
IFZBUllJTkcgMjkyCi0jZGVmaW5lIFNUUlVDVCAyOTMKLSNkZWZpbmUgVk9JRF9UWVBFIDI5NAot
I2RlZmluZSBXSElMRSAyOTUKLSNkZWZpbmUgU0FNUExFUjJEIDI5NgotI2RlZmluZSBTQU1QTEVS
Q1VCRSAyOTcKLSNkZWZpbmUgU0FNUExFUl9FWFRFUk5BTF9PRVMgMjk4Ci0jZGVmaW5lIFNBTVBM
RVIyRFJFQ1QgMjk5Ci0jZGVmaW5lIElERU5USUZJRVIgMzAwCi0jZGVmaW5lIFRZUEVfTkFNRSAz
MDEKLSNkZWZpbmUgRkxPQVRDT05TVEFOVCAzMDIKLSNkZWZpbmUgSU5UQ09OU1RBTlQgMzAzCi0j
ZGVmaW5lIEJPT0xDT05TVEFOVCAzMDQKLSNkZWZpbmUgTEVGVF9PUCAzMDUKLSNkZWZpbmUgUklH
SFRfT1AgMzA2Ci0jZGVmaW5lIElOQ19PUCAzMDcKLSNkZWZpbmUgREVDX09QIDMwOAotI2RlZmlu
ZSBMRV9PUCAzMDkKLSNkZWZpbmUgR0VfT1AgMzEwCi0jZGVmaW5lIEVRX09QIDMxMQotI2RlZmlu
ZSBORV9PUCAzMTIKLSNkZWZpbmUgQU5EX09QIDMxMwotI2RlZmluZSBPUl9PUCAzMTQKLSNkZWZp
bmUgWE9SX09QIDMxNQotI2RlZmluZSBNVUxfQVNTSUdOIDMxNgotI2RlZmluZSBESVZfQVNTSUdO
IDMxNwotI2RlZmluZSBBRERfQVNTSUdOIDMxOAotI2RlZmluZSBNT0RfQVNTSUdOIDMxOQotI2Rl
ZmluZSBMRUZUX0FTU0lHTiAzMjAKLSNkZWZpbmUgUklHSFRfQVNTSUdOIDMyMQotI2RlZmluZSBB
TkRfQVNTSUdOIDMyMgotI2RlZmluZSBYT1JfQVNTSUdOIDMyMwotI2RlZmluZSBPUl9BU1NJR04g
MzI0Ci0jZGVmaW5lIFNVQl9BU1NJR04gMzI1Ci0jZGVmaW5lIExFRlRfUEFSRU4gMzI2Ci0jZGVm
aW5lIFJJR0hUX1BBUkVOIDMyNwotI2RlZmluZSBMRUZUX0JSQUNLRVQgMzI4Ci0jZGVmaW5lIFJJ
R0hUX0JSQUNLRVQgMzI5Ci0jZGVmaW5lIExFRlRfQlJBQ0UgMzMwCi0jZGVmaW5lIFJJR0hUX0JS
QUNFIDMzMQotI2RlZmluZSBET1QgMzMyCi0jZGVmaW5lIENPTU1BIDMzMwotI2RlZmluZSBDT0xP
TiAzMzQKLSNkZWZpbmUgRVFVQUwgMzM1Ci0jZGVmaW5lIFNFTUlDT0xPTiAzMzYKLSNkZWZpbmUg
QkFORyAzMzcKLSNkZWZpbmUgREFTSCAzMzgKLSNkZWZpbmUgVElMREUgMzM5Ci0jZGVmaW5lIFBM
VVMgMzQwCi0jZGVmaW5lIFNUQVIgMzQxCi0jZGVmaW5lIFNMQVNIIDM0MgotI2RlZmluZSBQRVJD
RU5UIDM0MwotI2RlZmluZSBMRUZUX0FOR0xFIDM0NAotI2RlZmluZSBSSUdIVF9BTkdMRSAzNDUK
LSNkZWZpbmUgVkVSVElDQUxfQkFSIDM0NgotI2RlZmluZSBDQVJFVCAzNDcKLSNkZWZpbmUgQU1Q
RVJTQU5EIDM0OAotI2RlZmluZSBRVUVTVElPTiAzNDkKLQotCi0KLQotLyogQ29weSB0aGUgZmly
c3QgcGFydCBvZiB1c2VyIGRlY2xhcmF0aW9ucy4gICovCi0KLQotLy8KLS8vIENvcHlyaWdodCAo
YykgMjAwMi0yMDEwIFRoZSBBTkdMRSBQcm9qZWN0IEF1dGhvcnMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0vLyBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhIEJTRC1zdHls
ZSBsaWNlbnNlIHRoYXQgY2FuIGJlCi0vLyBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlLgotLy8K
LQotLy8gVGhpcyBmaWxlIGlzIGF1dG8tZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlX3BhcnNlci5zaC4g
RE8gTk9UIEVESVQhCi0KLS8vIElnbm9yZSBlcnJvcnMgaW4gYXV0by1nZW5lcmF0ZWQgY29kZS4K
LSNpZiBkZWZpbmVkKF9fR05VQ19fKQotI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V3VudXNlZC1mdW5jdGlvbiIKLSNwcmFnbWEgR0NDIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bnVz
ZWQtdmFyaWFibGUiCi0jcHJhZ21hIEdDQyBkaWFnbm9zdGljIGlnbm9yZWQgIi1Xc3dpdGNoLWVu
dW0iCi0jZWxpZiBkZWZpbmVkKF9NU0NfVkVSKQotI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQw
NjUpCi0jcHJhZ21hIHdhcm5pbmcoZGlzYWJsZTogNDE4OSkKLSNwcmFnbWEgd2FybmluZyhkaXNh
YmxlOiA0NTA1KQotI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQ3MDEpCi0jZW5kaWYKLQotI2lu
Y2x1ZGUgImNvbXBpbGVyL1N5bWJvbFRhYmxlLmgiCi0jaW5jbHVkZSAiY29tcGlsZXIvUGFyc2VI
ZWxwZXIuaCIKLSNpbmNsdWRlICJHTFNMQU5HL1NoYWRlckxhbmcuaCIKLQotI2RlZmluZSBZWUVO
QUJMRV9OTFMgMAotCi0jZGVmaW5lIFlZTEVYX1BBUkFNIGNvbnRleHQtPnNjYW5uZXIKLQotCi0v
KiBFbmFibGluZyB0cmFjZXMuICAqLwotI2lmbmRlZiBZWURFQlVHCi0jIGRlZmluZSBZWURFQlVH
IDAKLSNlbmRpZgotCi0vKiBFbmFibGluZyB2ZXJib3NlIGVycm9yIG1lc3NhZ2VzLiAgKi8KLSNp
ZmRlZiBZWUVSUk9SX1ZFUkJPU0UKLSMgdW5kZWYgWVlFUlJPUl9WRVJCT1NFCi0jIGRlZmluZSBZ
WUVSUk9SX1ZFUkJPU0UgMQotI2Vsc2UKLSMgZGVmaW5lIFlZRVJST1JfVkVSQk9TRSAwCi0jZW5k
aWYKLQotLyogRW5hYmxpbmcgdGhlIHRva2VuIHRhYmxlLiAgKi8KLSNpZm5kZWYgWVlUT0tFTl9U
QUJMRQotIyBkZWZpbmUgWVlUT0tFTl9UQUJMRSAwCi0jZW5kaWYKLQotI2lmICEgZGVmaW5lZCBZ
WVNUWVBFICYmICEgZGVmaW5lZCBZWVNUWVBFX0lTX0RFQ0xBUkVECi10eXBlZGVmIHVuaW9uIFlZ
U1RZUEUKLQotewotI2RlZmluZSBZWUxUWVBFIFRTb3VyY2VMb2MKLSNkZWZpbmUgWVlMVFlQRV9J
U19ERUNMQVJFRCAxCi0gICAgc3RydWN0IHsKLSAgICAgICAgdW5pb24gewotICAgICAgICAgICAg
VFN0cmluZyAqc3RyaW5nOwotICAgICAgICAgICAgZmxvYXQgZjsKLSAgICAgICAgICAgIGludCBp
OwotICAgICAgICAgICAgYm9vbCBiOwotICAgICAgICB9OwotICAgICAgICBUU3ltYm9sKiBzeW1i
b2w7Ci0gICAgfSBsZXg7Ci0gICAgc3RydWN0IHsKLSAgICAgICAgVE9wZXJhdG9yIG9wOwotICAg
ICAgICB1bmlvbiB7Ci0gICAgICAgICAgICBUSW50ZXJtTm9kZSogaW50ZXJtTm9kZTsKLSAgICAg
ICAgICAgIFRJbnRlcm1Ob2RlUGFpciBub2RlUGFpcjsKLSAgICAgICAgICAgIFRJbnRlcm1UeXBl
ZCogaW50ZXJtVHlwZWROb2RlOwotICAgICAgICAgICAgVEludGVybUFnZ3JlZ2F0ZSogaW50ZXJt
QWdncmVnYXRlOwotICAgICAgICB9OwotICAgICAgICB1bmlvbiB7Ci0gICAgICAgICAgICBUUHVi
bGljVHlwZSB0eXBlOwotICAgICAgICAgICAgVFByZWNpc2lvbiBwcmVjaXNpb247Ci0gICAgICAg
ICAgICBUUXVhbGlmaWVyIHF1YWxpZmllcjsKLSAgICAgICAgICAgIFRGdW5jdGlvbiogZnVuY3Rp
b247Ci0gICAgICAgICAgICBUUGFyYW1ldGVyIHBhcmFtOwotICAgICAgICAgICAgVEZpZWxkKiBm
aWVsZDsKLSAgICAgICAgICAgIFRGaWVsZExpc3QqIGZpZWxkTGlzdDsKLSAgICAgICAgfTsKLSAg
ICB9IGludGVybTsKLX0KLS8qIExpbmUgMTkzIG9mIHlhY2MuYy4gICovCi0KLQlZWVNUWVBFOwot
IyBkZWZpbmUgeXlzdHlwZSBZWVNUWVBFIC8qIG9ic29sZXNjZW50OyB3aWxsIGJlIHdpdGhkcmF3
biAqLwotIyBkZWZpbmUgWVlTVFlQRV9JU19ERUNMQVJFRCAxCi0jIGRlZmluZSBZWVNUWVBFX0lT
X1RSSVZJQUwgMQotI2VuZGlmCi0KLSNpZiAhIGRlZmluZWQgWVlMVFlQRSAmJiAhIGRlZmluZWQg
WVlMVFlQRV9JU19ERUNMQVJFRAotdHlwZWRlZiBzdHJ1Y3QgWVlMVFlQRQotewotICBpbnQgZmly
c3RfbGluZTsKLSAgaW50IGZpcnN0X2NvbHVtbjsKLSAgaW50IGxhc3RfbGluZTsKLSAgaW50IGxh
c3RfY29sdW1uOwotfSBZWUxUWVBFOwotIyBkZWZpbmUgeXlsdHlwZSBZWUxUWVBFIC8qIG9ic29s
ZXNjZW50OyB3aWxsIGJlIHdpdGhkcmF3biAqLwotIyBkZWZpbmUgWVlMVFlQRV9JU19ERUNMQVJF
RCAxCi0jIGRlZmluZSBZWUxUWVBFX0lTX1RSSVZJQUwgMQotI2VuZGlmCi0KLQotLyogQ29weSB0
aGUgc2Vjb25kIHBhcnQgb2YgdXNlciBkZWNsYXJhdGlvbnMuICAqLwotCi0KLWV4dGVybiBpbnQg
eXlsZXgoWVlTVFlQRSogeXlsdmFsLCBZWUxUWVBFKiB5eWxsb2MsIHZvaWQqIHl5c2Nhbm5lcik7
Ci1zdGF0aWMgdm9pZCB5eWVycm9yKFlZTFRZUEUqIHl5bGxvYywgVFBhcnNlQ29udGV4dCogY29u
dGV4dCwgY29uc3QgY2hhciogcmVhc29uKTsKLQotI2RlZmluZSBZWUxMT0NfREVGQVVMVChDdXJy
ZW50LCBSaHMsIE4pICAgICAgICAgICAgICAgICAgICAgIFwKLSAgZG8geyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICBpZiAoWVlJ
RChOKSkgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAg
ICAoQ3VycmVudCkuZmlyc3RfZmlsZSA9IFlZUkhTTE9DKFJocywgMSkuZmlyc3RfZmlsZTsgIFwK
LSAgICAgICAgKEN1cnJlbnQpLmZpcnN0X2xpbmUgPSBZWVJIU0xPQyhSaHMsIDEpLmZpcnN0X2xp
bmU7ICBcCi0gICAgICAgIChDdXJyZW50KS5sYXN0X2ZpbGUgPSBZWVJIU0xPQyhSaHMsIE4pLmxh
c3RfZmlsZTsgICAgXAotICAgICAgICAoQ3VycmVudCkubGFzdF9saW5lID0gWVlSSFNMT0MoUmhz
LCBOKS5sYXN0X2xpbmU7ICAgIFwKLSAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0gICAgICBlbHNlIHsgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAotICAgICAgICAoQ3VycmVudCkuZmly
c3RfZmlsZSA9IFlZUkhTTE9DKFJocywgMCkubGFzdF9maWxlOyAgIFwKLSAgICAgICAgKEN1cnJl
bnQpLmZpcnN0X2xpbmUgPSBZWVJIU0xPQyhSaHMsIDApLmxhc3RfbGluZTsgICBcCi0gICAgICAg
IChDdXJyZW50KS5sYXN0X2ZpbGUgPSBZWVJIU0xPQyhSaHMsIDApLmxhc3RfZmlsZTsgICAgXAot
ICAgICAgICAoQ3VycmVudCkubGFzdF9saW5lID0gWVlSSFNMT0MoUmhzLCAwKS5sYXN0X2xpbmU7
ICAgIFwKLSAgICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBcCi0gIH0gd2hpbGUgKDApCi0KLSNkZWZpbmUgVkVSVEVYX09OTFkoUywgTCkg
eyAgXAotICAgIGlmIChjb250ZXh0LT5zaGFkZXJUeXBlICE9IFNIX1ZFUlRFWF9TSEFERVIpIHsg
IFwKLSAgICAgICAgY29udGV4dC0+ZXJyb3IoTCwgIiBzdXBwb3J0ZWQgaW4gdmVydGV4IHNoYWRl
cnMgb25seSAiLCBTKTsgIFwKLSAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOyAgXAotICAgIH0g
IFwKLX0KLQotI2RlZmluZSBGUkFHX09OTFkoUywgTCkgeyAgXAotICAgIGlmIChjb250ZXh0LT5z
aGFkZXJUeXBlICE9IFNIX0ZSQUdNRU5UX1NIQURFUikgeyAgXAotICAgICAgICBjb250ZXh0LT5l
cnJvcihMLCAiIHN1cHBvcnRlZCBpbiBmcmFnbWVudCBzaGFkZXJzIG9ubHkgIiwgUyk7ICBcCi0g
ICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsgIFwKLSAgICB9ICBcCi19Ci0KLQotLyogTGluZSAy
MTYgb2YgeWFjYy5jLiAgKi8KLQotCi0jaWZkZWYgc2hvcnQKLSMgdW5kZWYgc2hvcnQKLSNlbmRp
ZgotCi0jaWZkZWYgWVlUWVBFX1VJTlQ4Ci10eXBlZGVmIFlZVFlQRV9VSU5UOCB5eXR5cGVfdWlu
dDg7Ci0jZWxzZQotdHlwZWRlZiB1bnNpZ25lZCBjaGFyIHl5dHlwZV91aW50ODsKLSNlbmRpZgot
Ci0jaWZkZWYgWVlUWVBFX0lOVDgKLXR5cGVkZWYgWVlUWVBFX0lOVDggeXl0eXBlX2ludDg7Ci0j
ZWxpZiAoZGVmaW5lZCBfX1NURENfXyB8fCBkZWZpbmVkIF9fQzk5X19GVU5DX18gXAotICAgICB8
fCBkZWZpbmVkIF9fY3BsdXNwbHVzIHx8IGRlZmluZWQgX01TQ19WRVIpCi10eXBlZGVmIHNpZ25l
ZCBjaGFyIHl5dHlwZV9pbnQ4OwotI2Vsc2UKLXR5cGVkZWYgc2hvcnQgaW50IHl5dHlwZV9pbnQ4
OwotI2VuZGlmCi0KLSNpZmRlZiBZWVRZUEVfVUlOVDE2Ci10eXBlZGVmIFlZVFlQRV9VSU5UMTYg
eXl0eXBlX3VpbnQxNjsKLSNlbHNlCi10eXBlZGVmIHVuc2lnbmVkIHNob3J0IGludCB5eXR5cGVf
dWludDE2OwotI2VuZGlmCi0KLSNpZmRlZiBZWVRZUEVfSU5UMTYKLXR5cGVkZWYgWVlUWVBFX0lO
VDE2IHl5dHlwZV9pbnQxNjsKLSNlbHNlCi10eXBlZGVmIHNob3J0IGludCB5eXR5cGVfaW50MTY7
Ci0jZW5kaWYKLQotI2lmbmRlZiBZWVNJWkVfVAotIyBpZmRlZiBfX1NJWkVfVFlQRV9fCi0jICBk
ZWZpbmUgWVlTSVpFX1QgX19TSVpFX1RZUEVfXwotIyBlbGlmIGRlZmluZWQgc2l6ZV90Ci0jICBk
ZWZpbmUgWVlTSVpFX1Qgc2l6ZV90Ci0jIGVsaWYgISBkZWZpbmVkIFlZU0laRV9UICYmIChkZWZp
bmVkIF9fU1REQ19fIHx8IGRlZmluZWQgX19DOTlfX0ZVTkNfXyBcCi0gICAgIHx8IGRlZmluZWQg
X19jcGx1c3BsdXMgfHwgZGVmaW5lZCBfTVNDX1ZFUikKLSMgIGluY2x1ZGUgPHN0ZGRlZi5oPiAv
KiBJTkZSSU5HRVMgT04gVVNFUiBOQU1FIFNQQUNFICovCi0jICBkZWZpbmUgWVlTSVpFX1Qgc2l6
ZV90Ci0jIGVsc2UKLSMgIGRlZmluZSBZWVNJWkVfVCB1bnNpZ25lZCBpbnQKLSMgZW5kaWYKLSNl
bmRpZgotCi0jZGVmaW5lIFlZU0laRV9NQVhJTVVNICgoWVlTSVpFX1QpIC0xKQotCi0jaWZuZGVm
IFlZXwotIyBpZiBkZWZpbmVkIFlZRU5BQkxFX05MUyAmJiBZWUVOQUJMRV9OTFMKLSMgIGlmIEVO
QUJMRV9OTFMKLSMgICBpbmNsdWRlIDxsaWJpbnRsLmg+IC8qIElORlJJTkdFUyBPTiBVU0VSIE5B
TUUgU1BBQ0UgKi8KLSMgICBkZWZpbmUgWVlfKG1zZ2lkKSBkZ2V0dGV4dCAoImJpc29uLXJ1bnRp
bWUiLCBtc2dpZCkKLSMgIGVuZGlmCi0jIGVuZGlmCi0jIGlmbmRlZiBZWV8KLSMgIGRlZmluZSBZ
WV8obXNnaWQpIG1zZ2lkCi0jIGVuZGlmCi0jZW5kaWYKLQotLyogU3VwcHJlc3MgdW51c2VkLXZh
cmlhYmxlIHdhcm5pbmdzIGJ5ICJ1c2luZyIgRS4gICovCi0jaWYgISBkZWZpbmVkIGxpbnQgfHwg
ZGVmaW5lZCBfX0dOVUNfXwotIyBkZWZpbmUgWVlVU0UoZSkgKCh2b2lkKSAoZSkpCi0jZWxzZQot
IyBkZWZpbmUgWVlVU0UoZSkgLyogZW1wdHkgKi8KLSNlbmRpZgotCi0vKiBJZGVudGl0eSBmdW5j
dGlvbiwgdXNlZCB0byBzdXBwcmVzcyB3YXJuaW5ncyBhYm91dCBjb25zdGFudCBjb25kaXRpb25z
LiAgKi8KLSNpZm5kZWYgbGludAotIyBkZWZpbmUgWVlJRChuKSAobikKLSNlbHNlCi0jaWYgKGRl
ZmluZWQgX19TVERDX18gfHwgZGVmaW5lZCBfX0M5OV9fRlVOQ19fIFwKLSAgICAgfHwgZGVmaW5l
ZCBfX2NwbHVzcGx1cyB8fCBkZWZpbmVkIF9NU0NfVkVSKQotc3RhdGljIGludAotWVlJRCAoaW50
IGkpCi0jZWxzZQotc3RhdGljIGludAotWVlJRCAoaSkKLSAgICBpbnQgaTsKLSNlbmRpZgotewot
ICByZXR1cm4gaTsKLX0KLSNlbmRpZgotCi0jaWYgISBkZWZpbmVkIHl5b3ZlcmZsb3cgfHwgWVlF
UlJPUl9WRVJCT1NFCi0KLS8qIFRoZSBwYXJzZXIgaW52b2tlcyBhbGxvY2Egb3IgbWFsbG9jOyBk
ZWZpbmUgdGhlIG5lY2Vzc2FyeSBzeW1ib2xzLiAgKi8KLQotIyBpZmRlZiBZWVNUQUNLX1VTRV9B
TExPQ0EKLSMgIGlmIFlZU1RBQ0tfVVNFX0FMTE9DQQotIyAgIGlmZGVmIF9fR05VQ19fCi0jICAg
IGRlZmluZSBZWVNUQUNLX0FMTE9DIF9fYnVpbHRpbl9hbGxvY2EKLSMgICBlbGlmIGRlZmluZWQg
X19CVUlMVElOX1ZBX0FSR19JTkNSCi0jICAgIGluY2x1ZGUgPGFsbG9jYS5oPiAvKiBJTkZSSU5H
RVMgT04gVVNFUiBOQU1FIFNQQUNFICovCi0jICAgZWxpZiBkZWZpbmVkIF9BSVgKLSMgICAgZGVm
aW5lIFlZU1RBQ0tfQUxMT0MgX19hbGxvY2EKLSMgICBlbGlmIGRlZmluZWQgX01TQ19WRVIKLSMg
ICAgaW5jbHVkZSA8bWFsbG9jLmg+IC8qIElORlJJTkdFUyBPTiBVU0VSIE5BTUUgU1BBQ0UgKi8K
LSMgICAgZGVmaW5lIGFsbG9jYSBfYWxsb2NhCi0jICAgZWxzZQotIyAgICBkZWZpbmUgWVlTVEFD
S19BTExPQyBhbGxvY2EKLSMgICAgaWYgISBkZWZpbmVkIF9BTExPQ0FfSCAmJiAhIGRlZmluZWQg
X1NURExJQl9IICYmIChkZWZpbmVkIF9fU1REQ19fIHx8IGRlZmluZWQgX19DOTlfX0ZVTkNfXyBc
Ci0gICAgIHx8IGRlZmluZWQgX19jcGx1c3BsdXMgfHwgZGVmaW5lZCBfTVNDX1ZFUikKLSMgICAg
IGluY2x1ZGUgPHN0ZGxpYi5oPiAvKiBJTkZSSU5HRVMgT04gVVNFUiBOQU1FIFNQQUNFICovCi0j
ICAgICBpZm5kZWYgX1NURExJQl9ICi0jICAgICAgZGVmaW5lIF9TVERMSUJfSCAxCi0jICAgICBl
bmRpZgotIyAgICBlbmRpZgotIyAgIGVuZGlmCi0jICBlbmRpZgotIyBlbmRpZgotCi0jIGlmZGVm
IFlZU1RBQ0tfQUxMT0MKLSAgIC8qIFBhY2lmeSBHQ0MncyBgZW1wdHkgaWYtYm9keScgd2Fybmlu
Zy4gICovCi0jICBkZWZpbmUgWVlTVEFDS19GUkVFKFB0cikgZG8geyAvKiBlbXB0eSAqLzsgfSB3
aGlsZSAoWVlJRCAoMCkpCi0jICBpZm5kZWYgWVlTVEFDS19BTExPQ19NQVhJTVVNCi0gICAgLyog
VGhlIE9TIG1pZ2h0IGd1YXJhbnRlZSBvbmx5IG9uZSBndWFyZCBwYWdlIGF0IHRoZSBib3R0b20g
b2YgdGhlIHN0YWNrLAotICAgICAgIGFuZCBhIHBhZ2Ugc2l6ZSBjYW4gYmUgYXMgc21hbGwgYXMg
NDA5NiBieXRlcy4gIFNvIHdlIGNhbm5vdCBzYWZlbHkKLSAgICAgICBpbnZva2UgYWxsb2NhIChO
KSBpZiBOIGV4Y2VlZHMgNDA5Ni4gIFVzZSBhIHNsaWdodGx5IHNtYWxsZXIgbnVtYmVyCi0gICAg
ICAgdG8gYWxsb3cgZm9yIGEgZmV3IGNvbXBpbGVyLWFsbG9jYXRlZCB0ZW1wb3Jhcnkgc3RhY2sg
c2xvdHMuICAqLwotIyAgIGRlZmluZSBZWVNUQUNLX0FMTE9DX01BWElNVU0gNDAzMiAvKiByZWFz
b25hYmxlIGNpcmNhIDIwMDYgKi8KLSMgIGVuZGlmCi0jIGVsc2UKLSMgIGRlZmluZSBZWVNUQUNL
X0FMTE9DIFlZTUFMTE9DCi0jICBkZWZpbmUgWVlTVEFDS19GUkVFIFlZRlJFRQotIyAgaWZuZGVm
IFlZU1RBQ0tfQUxMT0NfTUFYSU1VTQotIyAgIGRlZmluZSBZWVNUQUNLX0FMTE9DX01BWElNVU0g
WVlTSVpFX01BWElNVU0KLSMgIGVuZGlmCi0jICBpZiAoZGVmaW5lZCBfX2NwbHVzcGx1cyAmJiAh
IGRlZmluZWQgX1NURExJQl9IIFwKLSAgICAgICAmJiAhICgoZGVmaW5lZCBZWU1BTExPQyB8fCBk
ZWZpbmVkIG1hbGxvYykgXAotCSAgICAgJiYgKGRlZmluZWQgWVlGUkVFIHx8IGRlZmluZWQgZnJl
ZSkpKQotIyAgIGluY2x1ZGUgPHN0ZGxpYi5oPiAvKiBJTkZSSU5HRVMgT04gVVNFUiBOQU1FIFNQ
QUNFICovCi0jICAgaWZuZGVmIF9TVERMSUJfSAotIyAgICBkZWZpbmUgX1NURExJQl9IIDEKLSMg
ICBlbmRpZgotIyAgZW5kaWYKLSMgIGlmbmRlZiBZWU1BTExPQwotIyAgIGRlZmluZSBZWU1BTExP
QyBtYWxsb2MKLSMgICBpZiAhIGRlZmluZWQgbWFsbG9jICYmICEgZGVmaW5lZCBfU1RETElCX0gg
JiYgKGRlZmluZWQgX19TVERDX18gfHwgZGVmaW5lZCBfX0M5OV9fRlVOQ19fIFwKLSAgICAgfHwg
ZGVmaW5lZCBfX2NwbHVzcGx1cyB8fCBkZWZpbmVkIF9NU0NfVkVSKQotdm9pZCAqbWFsbG9jIChZ
WVNJWkVfVCk7IC8qIElORlJJTkdFUyBPTiBVU0VSIE5BTUUgU1BBQ0UgKi8KLSMgICBlbmRpZgot
IyAgZW5kaWYKLSMgIGlmbmRlZiBZWUZSRUUKLSMgICBkZWZpbmUgWVlGUkVFIGZyZWUKLSMgICBp
ZiAhIGRlZmluZWQgZnJlZSAmJiAhIGRlZmluZWQgX1NURExJQl9IICYmIChkZWZpbmVkIF9fU1RE
Q19fIHx8IGRlZmluZWQgX19DOTlfX0ZVTkNfXyBcCi0gICAgIHx8IGRlZmluZWQgX19jcGx1c3Bs
dXMgfHwgZGVmaW5lZCBfTVNDX1ZFUikKLXZvaWQgZnJlZSAodm9pZCAqKTsgLyogSU5GUklOR0VT
IE9OIFVTRVIgTkFNRSBTUEFDRSAqLwotIyAgIGVuZGlmCi0jICBlbmRpZgotIyBlbmRpZgotI2Vu
ZGlmIC8qICEgZGVmaW5lZCB5eW92ZXJmbG93IHx8IFlZRVJST1JfVkVSQk9TRSAqLwotCi0KLSNp
ZiAoISBkZWZpbmVkIHl5b3ZlcmZsb3cgXAotICAgICAmJiAoISBkZWZpbmVkIF9fY3BsdXNwbHVz
IFwKLQkgfHwgKGRlZmluZWQgWVlMVFlQRV9JU19UUklWSUFMICYmIFlZTFRZUEVfSVNfVFJJVklB
TCBcCi0JICAgICAmJiBkZWZpbmVkIFlZU1RZUEVfSVNfVFJJVklBTCAmJiBZWVNUWVBFX0lTX1RS
SVZJQUwpKSkKLQotLyogQSB0eXBlIHRoYXQgaXMgcHJvcGVybHkgYWxpZ25lZCBmb3IgYW55IHN0
YWNrIG1lbWJlci4gICovCi11bmlvbiB5eWFsbG9jCi17Ci0gIHl5dHlwZV9pbnQxNiB5eXNzOwot
ICBZWVNUWVBFIHl5dnM7Ci0gICAgWVlMVFlQRSB5eWxzOwotfTsKLQotLyogVGhlIHNpemUgb2Yg
dGhlIG1heGltdW0gZ2FwIGJldHdlZW4gb25lIGFsaWduZWQgc3RhY2sgYW5kIHRoZSBuZXh0LiAg
Ki8KLSMgZGVmaW5lIFlZU1RBQ0tfR0FQX01BWElNVU0gKHNpemVvZiAodW5pb24geXlhbGxvYykg
LSAxKQotCi0vKiBUaGUgc2l6ZSBvZiBhbiBhcnJheSBsYXJnZSB0byBlbm91Z2ggdG8gaG9sZCBh
bGwgc3RhY2tzLCBlYWNoIHdpdGgKLSAgIE4gZWxlbWVudHMuICAqLwotIyBkZWZpbmUgWVlTVEFD
S19CWVRFUyhOKSBcCi0gICAgICgoTikgKiAoc2l6ZW9mICh5eXR5cGVfaW50MTYpICsgc2l6ZW9m
IChZWVNUWVBFKSArIHNpemVvZiAoWVlMVFlQRSkpIFwKLSAgICAgICsgMiAqIFlZU1RBQ0tfR0FQ
X01BWElNVU0pCi0KLS8qIENvcHkgQ09VTlQgb2JqZWN0cyBmcm9tIEZST00gdG8gVE8uICBUaGUg
c291cmNlIGFuZCBkZXN0aW5hdGlvbiBkbwotICAgbm90IG92ZXJsYXAuICAqLwotIyBpZm5kZWYg
WVlDT1BZCi0jICBpZiBkZWZpbmVkIF9fR05VQ19fICYmIDEgPCBfX0dOVUNfXwotIyAgIGRlZmlu
ZSBZWUNPUFkoVG8sIEZyb20sIENvdW50KSBcCi0gICAgICBfX2J1aWx0aW5fbWVtY3B5IChUbywg
RnJvbSwgKENvdW50KSAqIHNpemVvZiAoKihGcm9tKSkpCi0jICBlbHNlCi0jICAgZGVmaW5lIFlZ
Q09QWShUbywgRnJvbSwgQ291bnQpCQlcCi0gICAgICBkbwkJCQkJXAotCXsJCQkJCVwKLQkgIFlZ
U0laRV9UIHl5aTsJCQkJXAotCSAgZm9yICh5eWkgPSAwOyB5eWkgPCAoQ291bnQpOyB5eWkrKykJ
XAotCSAgICAoVG8pW3l5aV0gPSAoRnJvbSlbeXlpXTsJCVwKLQl9CQkJCQlcCi0gICAgICB3aGls
ZSAoWVlJRCAoMCkpCi0jICBlbmRpZgotIyBlbmRpZgotCi0vKiBSZWxvY2F0ZSBTVEFDSyBmcm9t
IGl0cyBvbGQgbG9jYXRpb24gdG8gdGhlIG5ldyBvbmUuICBUaGUKLSAgIGxvY2FsIHZhcmlhYmxl
cyBZWVNJWkUgYW5kIFlZU1RBQ0tTSVpFIGdpdmUgdGhlIG9sZCBhbmQgbmV3IG51bWJlciBvZgot
ICAgZWxlbWVudHMgaW4gdGhlIHN0YWNrLCBhbmQgWVlQVFIgZ2l2ZXMgdGhlIG5ldyBsb2NhdGlv
biBvZiB0aGUKLSAgIHN0YWNrLiAgQWR2YW5jZSBZWVBUUiB0byBhIHByb3Blcmx5IGFsaWduZWQg
bG9jYXRpb24gZm9yIHRoZSBuZXh0Ci0gICBzdGFjay4gICovCi0jIGRlZmluZSBZWVNUQUNLX1JF
TE9DQVRFKFN0YWNrKQkJCQkJXAotICAgIGRvCQkJCQkJCQkJXAotICAgICAgewkJCQkJCQkJCVwK
LQlZWVNJWkVfVCB5eW5ld2J5dGVzOwkJCQkJCVwKLQlZWUNPUFkgKCZ5eXB0ci0+U3RhY2ssIFN0
YWNrLCB5eXNpemUpOwkJCQlcCi0JU3RhY2sgPSAmeXlwdHItPlN0YWNrOwkJCQkJCVwKLQl5eW5l
d2J5dGVzID0geXlzdGFja3NpemUgKiBzaXplb2YgKCpTdGFjaykgKyBZWVNUQUNLX0dBUF9NQVhJ
TVVNOyBcCi0JeXlwdHIgKz0geXluZXdieXRlcyAvIHNpemVvZiAoKnl5cHRyKTsJCQkJXAotICAg
ICAgfQkJCQkJCQkJCVwKLSAgICB3aGlsZSAoWVlJRCAoMCkpCi0KLSNlbmRpZgotCi0vKiBZWUZJ
TkFMIC0tIFN0YXRlIG51bWJlciBvZiB0aGUgdGVybWluYXRpb24gc3RhdGUuICAqLwotI2RlZmlu
ZSBZWUZJTkFMICA3NAotLyogWVlMQVNUIC0tIExhc3QgaW5kZXggaW4gWVlUQUJMRS4gICovCi0j
ZGVmaW5lIFlZTEFTVCAgIDE0OTAKLQotLyogWVlOVE9LRU5TIC0tIE51bWJlciBvZiB0ZXJtaW5h
bHMuICAqLwotI2RlZmluZSBZWU5UT0tFTlMgIDk1Ci0vKiBZWU5OVFMgLS0gTnVtYmVyIG9mIG5v
bnRlcm1pbmFscy4gICovCi0jZGVmaW5lIFlZTk5UUyAgODQKLS8qIFlZTlJVTEVTIC0tIE51bWJl
ciBvZiBydWxlcy4gICovCi0jZGVmaW5lIFlZTlJVTEVTICAyMDIKLS8qIFlZTlJVTEVTIC0tIE51
bWJlciBvZiBzdGF0ZXMuICAqLwotI2RlZmluZSBZWU5TVEFURVMgIDMwNwotCi0vKiBZWVRSQU5T
TEFURShZWUxFWCkgLS0gQmlzb24gc3ltYm9sIG51bWJlciBjb3JyZXNwb25kaW5nIHRvIFlZTEVY
LiAgKi8KLSNkZWZpbmUgWVlVTkRFRlRPSyAgMgotI2RlZmluZSBZWU1BWFVUT0sgICAzNDkKLQot
I2RlZmluZSBZWVRSQU5TTEFURShZWVgpCQkJCQkJXAotICAoKHVuc2lnbmVkIGludCkgKFlZWCkg
PD0gWVlNQVhVVE9LID8geXl0cmFuc2xhdGVbWVlYXSA6IFlZVU5ERUZUT0spCi0KLS8qIFlZVFJB
TlNMQVRFW1lZTEVYXSAtLSBCaXNvbiBzeW1ib2wgbnVtYmVyIGNvcnJlc3BvbmRpbmcgdG8gWVlM
RVguICAqLwotc3RhdGljIGNvbnN0IHl5dHlwZV91aW50OCB5eXRyYW5zbGF0ZVtdID0KLXsKLSAg
ICAgICAwLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwg
ICAgIDIsICAgICAyLAotICAgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAg
MiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsCi0gICAgICAgMiwgICAgIDIsICAgICAyLCAg
ICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwKLSAgICAgICAy
LCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIs
ICAgICAyLAotICAgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAg
IDIsICAgICAyLCAgICAgMiwgICAgIDIsCi0gICAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwg
ICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwKLSAgICAgICAyLCAgICAg
MiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAy
LAotICAgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAg
ICAyLCAgICAgMiwgICAgIDIsCi0gICAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIs
ICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwKLSAgICAgICAyLCAgICAgMiwgICAg
IDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLAotICAg
ICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAg
ICAgMiwgICAgIDIsCi0gICAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAy
LCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwKLSAgICAgICAyLCAgICAgMiwgICAgIDIsICAg
ICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLAotICAgICAgIDIs
ICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwg
ICAgIDIsCi0gICAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAg
MiwgICAgIDIsICAgICAyLCAgICAgMiwKLSAgICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAg
ICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLAotICAgICAgIDIsICAgICAy
LCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIs
Ci0gICAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAg
IDIsICAgICAyLCAgICAgMiwKLSAgICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwg
ICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLAotICAgICAgIDIsICAgICAyLCAgICAg
MiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsCi0gICAg
ICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAg
ICAyLCAgICAgMiwKLSAgICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIs
ICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLAotICAgICAgIDIsICAgICAyLCAgICAgMiwgICAg
IDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsCi0gICAgICAgMiwg
ICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAg
ICAgMiwKLSAgICAgICAyLCAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAgICAy
LCAgICAgMiwgICAgIDIsICAgICAyLAotICAgICAgIDIsICAgICAyLCAgICAgMiwgICAgIDIsICAg
ICAyLCAgICAgMiwgICAgIDEsICAgICAyLCAgICAgMywgICAgIDQsCi0gICAgICAgNSwgICAgIDYs
ICAgICA3LCAgICAgOCwgICAgIDksICAgIDEwLCAgICAxMSwgICAgMTIsICAgIDEzLCAgICAxNCwK
LSAgICAgIDE1LCAgICAxNiwgICAgMTcsICAgIDE4LCAgICAxOSwgICAgMjAsICAgIDIxLCAgICAy
MiwgICAgMjMsICAgIDI0LAotICAgICAgMjUsICAgIDI2LCAgICAyNywgICAgMjgsICAgIDI5LCAg
ICAzMCwgICAgMzEsICAgIDMyLCAgICAzMywgICAgMzQsCi0gICAgICAzNSwgICAgMzYsICAgIDM3
LCAgICAzOCwgICAgMzksICAgIDQwLCAgICA0MSwgICAgNDIsICAgIDQzLCAgICA0NCwKLSAgICAg
IDQ1LCAgICA0NiwgICAgNDcsICAgIDQ4LCAgICA0OSwgICAgNTAsICAgIDUxLCAgICA1MiwgICAg
NTMsICAgIDU0LAotICAgICAgNTUsICAgIDU2LCAgICA1NywgICAgNTgsICAgIDU5LCAgICA2MCwg
ICAgNjEsICAgIDYyLCAgICA2MywgICAgNjQsCi0gICAgICA2NSwgICAgNjYsICAgIDY3LCAgICA2
OCwgICAgNjksICAgIDcwLCAgICA3MSwgICAgNzIsICAgIDczLCAgICA3NCwKLSAgICAgIDc1LCAg
ICA3NiwgICAgNzcsICAgIDc4LCAgICA3OSwgICAgODAsICAgIDgxLCAgICA4MiwgICAgODMsICAg
IDg0LAotICAgICAgODUsICAgIDg2LCAgICA4NywgICAgODgsICAgIDg5LCAgICA5MCwgICAgOTEs
ICAgIDkyLCAgICA5MywgICAgOTQKLX07Ci0KLSNpZiBZWURFQlVHCi0vKiBZWVBSSFNbWVlOXSAt
LSBJbmRleCBvZiB0aGUgZmlyc3QgUkhTIHN5bWJvbCBvZiBydWxlIG51bWJlciBZWU4gaW4KLSAg
IFlZUkhTLiAgKi8KLXN0YXRpYyBjb25zdCB5eXR5cGVfdWludDE2IHl5cHJoc1tdID0KLXsKLSAg
ICAgICAwLCAgICAgMCwgICAgIDMsICAgICA1LCAgICAgNywgICAgIDksICAgIDExLCAgICAxMywg
ICAgMTUsICAgIDE3LAotICAgICAgMjEsICAgIDIzLCAgICAyOCwgICAgMzAsICAgIDM0LCAgICAz
NywgICAgNDAsICAgIDQyLCAgICA0NCwgICAgNDYsCi0gICAgICA1MCwgICAgNTMsICAgIDU2LCAg
ICA1OSwgICAgNjEsICAgIDY0LCAgICA2OCwgICAgNzEsICAgIDczLCAgICA3NSwKLSAgICAgIDc3
LCAgICA4MCwgICAgODMsICAgIDg2LCAgICA4OCwgICAgOTAsICAgIDkyLCAgICA5NCwgICAgOTgs
ICAgMTAyLAotICAgICAxMDQsICAgMTA4LCAgIDExMiwgICAxMTQsICAgMTE2LCAgIDEyMCwgICAx
MjQsICAgMTI4LCAgIDEzMiwgICAxMzQsCi0gICAgIDEzOCwgICAxNDIsICAgMTQ0LCAgIDE0Niwg
ICAxNDgsICAgMTUwLCAgIDE1NCwgICAxNTYsICAgMTYwLCAgIDE2MiwKLSAgICAgMTY2LCAgIDE2
OCwgICAxNzQsICAgMTc2LCAgIDE4MCwgICAxODIsICAgMTg0LCAgIDE4NiwgICAxODgsICAgMTkw
LAotICAgICAxOTIsICAgMTk2LCAgIDE5OCwgICAyMDEsICAgMjA0LCAgIDIwOSwgICAyMTIsICAg
MjE0LCAgIDIxNiwgICAyMTksCi0gICAgIDIyMywgICAyMjcsICAgMjMwLCAgIDIzNiwgICAyNDAs
ICAgMjQzLCAgIDI0NywgICAyNTAsICAgMjUxLCAgIDI1MywKLSAgICAgMjU1LCAgIDI1NywgICAy
NTksICAgMjYxLCAgIDI2NSwgICAyNzEsICAgMjc4LCAgIDI4NCwgICAyODYsICAgMjg5LAotICAg
ICAyOTQsICAgMzAwLCAgIDMwNSwgICAzMDgsICAgMzEwLCAgIDMxMywgICAzMTUsICAgMzE3LCAg
IDMxOSwgICAzMjIsCi0gICAgIDMyNCwgICAzMjYsICAgMzI5LCAgIDMzMSwgICAzMzMsICAgMzM1
LCAgIDMzNywgICAzNDIsICAgMzQ0LCAgIDM0NiwKLSAgICAgMzQ4LCAgIDM1MCwgICAzNTIsICAg
MzU0LCAgIDM1NiwgICAzNTgsICAgMzYwLCAgIDM2MiwgICAzNjQsICAgMzY2LAotICAgICAzNjgs
ICAgMzcwLCAgIDM3MiwgICAzNzQsICAgMzc2LCAgIDM3OCwgICAzODAsICAgMzgyLCAgIDM4NCwg
ICAzODYsCi0gICAgIDM4NywgICAzOTQsICAgMzk1LCAgIDQwMSwgICA0MDMsICAgNDA2LCAgIDQx
MCwgICA0MTIsICAgNDE2LCAgIDQxOCwKLSAgICAgNDIzLCAgIDQyNSwgICA0MjcsICAgNDI5LCAg
IDQzMSwgICA0MzMsICAgNDM1LCAgIDQzNywgICA0MzksICAgNDQxLAotICAgICA0NDQsICAgNDQ1
LCAgIDQ0NiwgICA0NTIsICAgNDU0LCAgIDQ1NiwgICA0NTcsICAgNDYwLCAgIDQ2MSwgICA0NjQs
Ci0gICAgIDQ2NywgICA0NzEsICAgNDczLCAgIDQ3NiwgICA0NzgsICAgNDgxLCAgIDQ4NywgICA0
OTEsICAgNDkzLCAgIDQ5NSwKLSAgICAgNTAwLCAgIDUwMSwgICA1MDgsICAgNTA5LCAgIDUxOCwg
ICA1MTksICAgNTI3LCAgIDUyOSwgICA1MzEsICAgNTMzLAotICAgICA1MzQsICAgNTM3LCAgIDU0
MSwgICA1NDQsICAgNTQ3LCAgIDU1MCwgICA1NTQsICAgNTU3LCAgIDU1OSwgICA1NjIsCi0gICAg
IDU2NCwgICA1NjYsICAgNTY3Ci19OwotCi0vKiBZWVJIUyAtLSBBIGAtMSctc2VwYXJhdGVkIGxp
c3Qgb2YgdGhlIHJ1bGVzJyBSSFMuICAqLwotc3RhdGljIGNvbnN0IHl5dHlwZV9pbnQxNiB5eXJo
c1tdID0KLXsKLSAgICAgMTc1LCAgICAgMCwgICAgLTEsICAgIDQ1LCAgICAtMSwgICAgNDYsICAg
IC0xLCAgICA0NSwgICAgLTEsICAgIDk3LAotICAgICAgLTEsICAgIDQ4LCAgICAtMSwgICAgNDcs
ICAgIC0xLCAgICA0OSwgICAgLTEsICAgIDcxLCAgIDEyNCwgICAgNzIsCi0gICAgICAtMSwgICAg
OTgsICAgIC0xLCAgICA5OSwgICAgNzMsICAgMTAwLCAgICA3NCwgICAgLTEsICAgMTAxLCAgICAt
MSwKLSAgICAgIDk5LCAgICA3NywgICAgOTYsICAgIC0xLCAgICA5OSwgICAgNTIsICAgIC0xLCAg
ICA5OSwgICAgNTMsICAgIC0xLAotICAgICAxMjQsICAgIC0xLCAgIDEwMiwgICAgLTEsICAgMTAz
LCAgICAtMSwgICAgOTksICAgIDc3LCAgIDEwMywgICAgLTEsCi0gICAgIDEwNSwgICAgNzIsICAg
IC0xLCAgIDEwNCwgICAgNzIsICAgIC0xLCAgIDEwNiwgICAgMzksICAgIC0xLCAgIDEwNiwKLSAg
ICAgIC0xLCAgIDEwNiwgICAxMjIsICAgIC0xLCAgIDEwNSwgICAgNzgsICAgMTIyLCAgICAtMSwg
ICAxMDcsICAgIDcxLAotICAgICAgLTEsICAgMTQyLCAgICAtMSwgICAgNDUsICAgIC0xLCAgICA5
OSwgICAgLTEsICAgIDUyLCAgIDEwOCwgICAgLTEsCi0gICAgICA1MywgICAxMDgsICAgIC0xLCAg
IDEwOSwgICAxMDgsICAgIC0xLCAgICA4NSwgICAgLTEsICAgIDgzLCAgICAtMSwKLSAgICAgIDgy
LCAgICAtMSwgICAxMDgsICAgIC0xLCAgIDExMCwgICAgODYsICAgMTA4LCAgICAtMSwgICAxMTAs
ICAgIDg3LAotICAgICAxMDgsICAgIC0xLCAgIDExMCwgICAgLTEsICAgMTExLCAgICA4NSwgICAx
MTAsICAgIC0xLCAgIDExMSwgICAgODMsCi0gICAgIDExMCwgICAgLTEsICAgMTExLCAgICAtMSwg
ICAxMTIsICAgIC0xLCAgIDExMywgICAgODksICAgMTEyLCAgICAtMSwKLSAgICAgMTEzLCAgICA5
MCwgICAxMTIsICAgIC0xLCAgIDExMywgICAgNTQsICAgMTEyLCAgICAtMSwgICAxMTMsICAgIDU1
LAotICAgICAxMTIsICAgIC0xLCAgIDExMywgICAgLTEsICAgMTE0LCAgICA1NiwgICAxMTMsICAg
IC0xLCAgIDExNCwgICAgNTcsCi0gICAgIDExMywgICAgLTEsICAgMTE0LCAgICAtMSwgICAxMTUs
ICAgIC0xLCAgIDExNiwgICAgLTEsICAgMTE3LCAgICAtMSwKLSAgICAgMTE4LCAgICA1OCwgICAx
MTcsICAgIC0xLCAgIDExOCwgICAgLTEsICAgMTE5LCAgICA2MCwgICAxMTgsICAgIC0xLAotICAg
ICAxMTksICAgIC0xLCAgIDEyMCwgICAgNTksICAgMTE5LCAgICAtMSwgICAxMjAsICAgIC0xLCAg
IDEyMCwgICAgOTQsCi0gICAgIDEyNCwgICAgNzksICAgMTIyLCAgICAtMSwgICAxMjEsICAgIC0x
LCAgIDEwOCwgICAxMjMsICAgMTIyLCAgICAtMSwKLSAgICAgIDgwLCAgICAtMSwgICAgNjEsICAg
IC0xLCAgICA2MiwgICAgLTEsICAgIDYzLCAgICAtMSwgICAgNzAsICAgIC0xLAotICAgICAxMjIs
ICAgIC0xLCAgIDEyNCwgICAgNzgsICAgMTIyLCAgICAtMSwgICAxMjEsICAgIC0xLCAgIDEyNywg
ICAgODEsCi0gICAgICAtMSwgICAxMzUsICAgIDgxLCAgICAtMSwgICAgIDcsICAgMTQwLCAgIDE0
MSwgICAgODEsICAgIC0xLCAgIDEyOCwKLSAgICAgIDcyLCAgICAtMSwgICAxMzAsICAgIC0xLCAg
IDEyOSwgICAgLTEsICAgMTMwLCAgIDEzMiwgICAgLTEsICAgMTI5LAotICAgICAgNzgsICAgMTMy
LCAgICAtMSwgICAxMzcsICAgIDQ1LCAgICA3MSwgICAgLTEsICAgMTM5LCAgICA5NiwgICAgLTEs
Ci0gICAgIDEzOSwgICAgOTYsICAgIDczLCAgIDEyNSwgICAgNzQsICAgIC0xLCAgIDEzOCwgICAx
MzMsICAgMTMxLCAgICAtMSwKLSAgICAgMTMzLCAgIDEzMSwgICAgLTEsICAgMTM4LCAgIDEzMywg
ICAxMzQsICAgIC0xLCAgIDEzMywgICAxMzQsICAgIC0xLAotICAgICAgLTEsICAgIDMzLCAgICAt
MSwgICAgMzQsICAgIC0xLCAgICAzNSwgICAgLTEsICAgMTM5LCAgICAtMSwgICAxMzYsCi0gICAg
ICAtMSwgICAxMzUsICAgIDc4LCAgICA5NiwgICAgLTEsICAgMTM1LCAgICA3OCwgICAgOTYsICAg
IDczLCAgICA3NCwKLSAgICAgIC0xLCAgIDEzNSwgICAgNzgsICAgIDk2LCAgICA3MywgICAxMjUs
ICAgIDc0LCAgICAtMSwgICAxMzUsICAgIDc4LAotICAgICAgOTYsICAgIDgwLCAgIDE1MCwgICAg
LTEsICAgMTM3LCAgICAtMSwgICAxMzcsICAgIDk2LCAgICAtMSwgICAxMzcsCi0gICAgICA5Niwg
ICAgNzMsICAgIDc0LCAgICAtMSwgICAxMzcsICAgIDk2LCAgICA3MywgICAxMjUsICAgIDc0LCAg
ICAtMSwKLSAgICAgMTM3LCAgICA5NiwgICAgODAsICAgMTUwLCAgICAtMSwgICAgIDMsICAgIDQ1
LCAgICAtMSwgICAxMzksICAgIC0xLAotICAgICAxMzgsICAgMTM5LCAgICAtMSwgICAgIDksICAg
IC0xLCAgICAgOCwgICAgLTEsICAgIDM3LCAgICAtMSwgICAgIDMsCi0gICAgICAzNywgICAgLTEs
ICAgIDM2LCAgICAtMSwgICAxNDEsICAgIC0xLCAgIDE0MCwgICAxNDEsICAgIC0xLCAgICAgNCwK
LSAgICAgIC0xLCAgICAgNSwgICAgLTEsICAgICA2LCAgICAtMSwgICAxNDIsICAgIC0xLCAgIDE0
MiwgICAgNzMsICAgMTI1LAotICAgICAgNzQsICAgIC0xLCAgICAzOSwgICAgLTEsICAgIDExLCAg
ICAtMSwgICAgMTIsICAgIC0xLCAgICAxMCwgICAgLTEsCi0gICAgICAyNywgICAgLTEsICAgIDI4
LCAgICAtMSwgICAgMjksICAgIC0xLCAgICAyMSwgICAgLTEsICAgIDIyLCAgICAtMSwKLSAgICAg
IDIzLCAgICAtMSwgICAgMjQsICAgIC0xLCAgICAyNSwgICAgLTEsICAgIDI2LCAgICAtMSwgICAg
MzAsICAgIC0xLAotICAgICAgMzEsICAgIC0xLCAgICAzMiwgICAgLTEsICAgIDQxLCAgICAtMSwg
ICAgNDIsICAgIC0xLCAgICA0MywgICAgLTEsCi0gICAgICA0NCwgICAgLTEsICAgMTQzLCAgICAt
MSwgICAgNDYsICAgIC0xLCAgICAtMSwgICAgMzgsICAgIDk2LCAgICA3NSwKLSAgICAgMTQ0LCAg
IDE0NiwgICAgNzYsICAgIC0xLCAgICAtMSwgICAgMzgsICAgIDc1LCAgIDE0NSwgICAxNDYsICAg
IDc2LAotICAgICAgLTEsICAgMTQ3LCAgICAtMSwgICAxNDYsICAgMTQ3LCAgICAtMSwgICAxMzks
ICAgMTQ4LCAgICA4MSwgICAgLTEsCi0gICAgIDE0OSwgICAgLTEsICAgMTQ4LCAgICA3OCwgICAx
NDksICAgIC0xLCAgICA5NiwgICAgLTEsICAgIDk2LCAgICA3MywKLSAgICAgMTI1LCAgICA3NCwg
ICAgLTEsICAgMTIyLCAgICAtMSwgICAxMjYsICAgIC0xLCAgIDE1NCwgICAgLTEsICAgMTUzLAot
ICAgICAgLTEsICAgMTUxLCAgICAtMSwgICAxNjMsICAgIC0xLCAgIDE2NCwgICAgLTEsICAgMTY3
LCAgICAtMSwgICAxNzQsCi0gICAgICAtMSwgICAgNzUsICAgIDc2LCAgICAtMSwgICAgLTEsICAg
IC0xLCAgICA3NSwgICAxNTUsICAgMTYyLCAgIDE1NiwKLSAgICAgIDc2LCAgICAtMSwgICAxNjEs
ICAgIC0xLCAgIDE1MywgICAgLTEsICAgIC0xLCAgIDE1OSwgICAxNjEsICAgIC0xLAotICAgICAg
LTEsICAgMTYwLCAgIDE1MywgICAgLTEsICAgIDc1LCAgICA3NiwgICAgLTEsICAgIDc1LCAgIDE2
MiwgICAgNzYsCi0gICAgICAtMSwgICAxNTIsICAgIC0xLCAgIDE2MiwgICAxNTIsICAgIC0xLCAg
ICA4MSwgICAgLTEsICAgMTI0LCAgICA4MSwKLSAgICAgIC0xLCAgICAxOCwgICAgNzEsICAgMTI0
LCAgICA3MiwgICAxNjUsICAgIC0xLCAgIDE1OCwgICAgMTYsICAgMTU4LAotICAgICAgLTEsICAg
MTU4LCAgICAtMSwgICAxMjQsICAgIC0xLCAgIDEzNywgICAgOTYsICAgIDgwLCAgIDE1MCwgICAg
LTEsCi0gICAgICAtMSwgICAgNDAsICAgIDcxLCAgIDE2OCwgICAxNjYsICAgIDcyLCAgIDE1Nywg
ICAgLTEsICAgIC0xLCAgICAxNSwKLSAgICAgMTY5LCAgIDE1OCwgICAgNDAsICAgIDcxLCAgIDEy
NCwgICAgNzIsICAgIDgxLCAgICAtMSwgICAgLTEsICAgIDE3LAotICAgICAgNzEsICAgMTcwLCAg
IDE3MSwgICAxNzMsICAgIDcyLCAgIDE1NywgICAgLTEsICAgMTYzLCAgICAtMSwgICAxNTEsCi0g
ICAgICAtMSwgICAxNjYsICAgIC0xLCAgICAtMSwgICAxNzIsICAgIDgxLCAgICAtMSwgICAxNzIs
ICAgIDgxLCAgIDEyNCwKLSAgICAgIC0xLCAgICAxNCwgICAgODEsICAgIC0xLCAgICAxMywgICAg
ODEsICAgIC0xLCAgICAyMCwgICAgODEsICAgIC0xLAotICAgICAgMjAsICAgMTI0LCAgICA4MSwg
ICAgLTEsICAgIDE5LCAgICA4MSwgICAgLTEsICAgMTc2LCAgICAtMSwgICAxNzUsCi0gICAgIDE3
NiwgICAgLTEsICAgMTc3LCAgICAtMSwgICAxMjYsICAgIC0xLCAgICAtMSwgICAxMjcsICAgMTc4
LCAgIDE2MSwKLSAgICAgIC0xCi19OwotCi0vKiBZWVJMSU5FW1lZTl0gLS0gc291cmNlIGxpbmUg
d2hlcmUgcnVsZSBudW1iZXIgWVlOIHdhcyBkZWZpbmVkLiAgKi8KLXN0YXRpYyBjb25zdCB5eXR5
cGVfdWludDE2IHl5cmxpbmVbXSA9Ci17Ci0gICAgICAgMCwgICAxNzYsICAgMTc2LCAgIDE3Nywg
ICAxODAsICAgMjIzLCAgIDIyNiwgICAyMzksICAgMjQ0LCAgIDI0OSwKLSAgICAgMjU1LCAgIDI1
OCwgICAzMzMsICAgMzM2LCAgIDQzMSwgICA0NDEsICAgNDU0LCAgIDQ2MiwgICA1NjIsICAgNTY1
LAotICAgICA1NzMsICAgNTc2LCAgIDU4MiwgICA1ODYsICAgNTkzLCAgIDU5OSwgICA2MDgsICAg
NjE2LCAgIDY3MSwgICA2ODEsCi0gICAgIDY4NCwgICA2OTQsICAgNzA0LCAgIDcyNSwgICA3MjYs
ICAgNzI3LCAgIDczMiwgICA3MzMsICAgNzQxLCAgIDc1MiwKLSAgICAgNzUzLCAgIDc2MSwgICA3
NzIsICAgNzc2LCAgIDc3NywgICA3ODcsICAgNzk3LCAgIDgwNywgICA4MjAsICAgODIxLAotICAg
ICA4MzEsICAgODQ0LCAgIDg0OCwgICA4NTIsICAgODU2LCAgIDg1NywgICA4NzAsICAgODcxLCAg
IDg4NCwgICA4ODUsCi0gICAgIDg5OCwgICA4OTksICAgOTE2LCAgIDkxNywgICA5MzAsICAgOTMx
LCAgIDkzMiwgICA5MzMsICAgOTM0LCAgIDkzOCwKLSAgICAgOTQxLCAgIDk1MiwgICA5NjAsICAg
OTg3LCAgIDk5MiwgIDEwMDYsICAxMDQzLCAgMTA0NiwgIDEwNTMsICAxMDYxLAotICAgIDEwODIs
ICAxMTAzLCAgMTExMywgIDExNDEsICAxMTQ2LCAgMTE1NiwgIDExNjEsICAxMTcxLCAgMTE3NCwg
IDExNzcsCi0gICAgMTE4MCwgIDExODYsICAxMTkzLCAgMTE5NiwgIDEyMTgsICAxMjM2LCAgMTI2
MCwgIDEyODMsICAxMjg3LCAgMTMwNSwKLSAgICAxMzEzLCAgMTM0NSwgIDEzNjUsICAxMzg2LCAg
MTM5NSwgIDE0MTgsICAxNDIxLCAgMTQyNywgIDE0MzUsICAxNDQzLAotICAgIDE0NTEsICAxNDYx
LCAgMTQ2OCwgIDE0NzEsICAxNDc0LCAgMTQ4MCwgIDE0ODMsICAxNDk4LCAgMTUwMiwgIDE1MDYs
Ci0gICAgMTUxMCwgIDE1MTQsICAxNTE5LCAgMTUyNCwgIDE1MjksICAxNTM0LCAgMTUzOSwgIDE1
NDQsICAxNTQ5LCAgMTU1NCwKLSAgICAxNTU5LCAgMTU2NCwgIDE1NjksICAxNTc0LCAgMTU3OCwg
IDE1ODIsICAxNTkwLCAgMTU5OCwgIDE2MDIsICAxNjE1LAotICAgIDE2MTUsICAxNjI5LCAgMTYy
OSwgIDE2MzgsICAxNjQxLCAgMTY1NywgIDE2OTAsICAxNjk0LCAgMTcwMCwgIDE3MDcsCi0gICAg
MTcyMiwgIDE3MjYsICAxNzMwLCAgMTczMSwgIDE3MzcsICAxNzM4LCAgMTczOSwgIDE3NDAsICAx
NzQxLCAgMTc0NSwKLSAgICAxNzQ2LCAgMTc0NiwgIDE3NDYsICAxNzU2LCAgMTc1NywgIDE3NjEs
ICAxNzYxLCAgMTc2MiwgIDE3NjIsICAxNzY3LAotICAgIDE3NzAsICAxNzgwLCAgMTc4MywgIDE3
ODksICAxNzkwLCAgMTc5NCwgIDE4MDIsICAxODA2LCAgMTgxNiwgIDE4MjEsCi0gICAgMTgzOCwg
IDE4MzgsICAxODQzLCAgMTg0MywgIDE4NTAsICAxODUwLCAgMTg1OCwgIDE4NjEsICAxODY3LCAg
MTg3MCwKLSAgICAxODc2LCAgMTg4MCwgIDE4ODcsICAxODk0LCAgMTkwMSwgIDE5MDgsICAxOTE5
LCAgMTkyOCwgIDE5MzIsICAxOTM5LAotICAgIDE5NDIsICAxOTQ4LCAgMTk0OAotfTsKLSNlbmRp
ZgotCi0jaWYgWVlERUJVRyB8fCBZWUVSUk9SX1ZFUkJPU0UgfHwgWVlUT0tFTl9UQUJMRQotLyog
WVlUTkFNRVtTWU1CT0wtTlVNXSAtLSBTdHJpbmcgbmFtZSBvZiB0aGUgc3ltYm9sIFNZTUJPTC1O
VU0uCi0gICBGaXJzdCwgdGhlIHRlcm1pbmFscywgdGhlbiwgc3RhcnRpbmcgYXQgWVlOVE9LRU5T
LCBub250ZXJtaW5hbHMuICAqLwotc3RhdGljIGNvbnN0IGNoYXIgKmNvbnN0IHl5dG5hbWVbXSA9
Ci17Ci0gICIkZW5kIiwgImVycm9yIiwgIiR1bmRlZmluZWQiLCAiSU5WQVJJQU5UIiwgIkhJR0hf
UFJFQ0lTSU9OIiwKLSAgIk1FRElVTV9QUkVDSVNJT04iLCAiTE9XX1BSRUNJU0lPTiIsICJQUkVD
SVNJT04iLCAiQVRUUklCVVRFIiwKLSAgIkNPTlNUX1FVQUwiLCAiQk9PTF9UWVBFIiwgIkZMT0FU
X1RZUEUiLCAiSU5UX1RZUEUiLCAiQlJFQUsiLCAiQ09OVElOVUUiLAotICAiRE8iLCAiRUxTRSIs
ICJGT1IiLCAiSUYiLCAiRElTQ0FSRCIsICJSRVRVUk4iLCAiQlZFQzIiLCAiQlZFQzMiLAotICAi
QlZFQzQiLCAiSVZFQzIiLCAiSVZFQzMiLCAiSVZFQzQiLCAiVkVDMiIsICJWRUMzIiwgIlZFQzQi
LCAiTUFUUklYMiIsCi0gICJNQVRSSVgzIiwgIk1BVFJJWDQiLCAiSU5fUVVBTCIsICJPVVRfUVVB
TCIsICJJTk9VVF9RVUFMIiwgIlVOSUZPUk0iLAotICAiVkFSWUlORyIsICJTVFJVQ1QiLCAiVk9J
RF9UWVBFIiwgIldISUxFIiwgIlNBTVBMRVIyRCIsICJTQU1QTEVSQ1VCRSIsCi0gICJTQU1QTEVS
X0VYVEVSTkFMX09FUyIsICJTQU1QTEVSMkRSRUNUIiwgIklERU5USUZJRVIiLCAiVFlQRV9OQU1F
IiwKLSAgIkZMT0FUQ09OU1RBTlQiLCAiSU5UQ09OU1RBTlQiLCAiQk9PTENPTlNUQU5UIiwgIkxF
RlRfT1AiLCAiUklHSFRfT1AiLAotICAiSU5DX09QIiwgIkRFQ19PUCIsICJMRV9PUCIsICJHRV9P
UCIsICJFUV9PUCIsICJORV9PUCIsICJBTkRfT1AiLAotICAiT1JfT1AiLCAiWE9SX09QIiwgIk1V
TF9BU1NJR04iLCAiRElWX0FTU0lHTiIsICJBRERfQVNTSUdOIiwKLSAgIk1PRF9BU1NJR04iLCAi
TEVGVF9BU1NJR04iLCAiUklHSFRfQVNTSUdOIiwgIkFORF9BU1NJR04iLCAiWE9SX0FTU0lHTiIs
Ci0gICJPUl9BU1NJR04iLCAiU1VCX0FTU0lHTiIsICJMRUZUX1BBUkVOIiwgIlJJR0hUX1BBUkVO
IiwgIkxFRlRfQlJBQ0tFVCIsCi0gICJSSUdIVF9CUkFDS0VUIiwgIkxFRlRfQlJBQ0UiLCAiUklH
SFRfQlJBQ0UiLCAiRE9UIiwgIkNPTU1BIiwgIkNPTE9OIiwKLSAgIkVRVUFMIiwgIlNFTUlDT0xP
TiIsICJCQU5HIiwgIkRBU0giLCAiVElMREUiLCAiUExVUyIsICJTVEFSIiwgIlNMQVNIIiwKLSAg
IlBFUkNFTlQiLCAiTEVGVF9BTkdMRSIsICJSSUdIVF9BTkdMRSIsICJWRVJUSUNBTF9CQVIiLCAi
Q0FSRVQiLAotICAiQU1QRVJTQU5EIiwgIlFVRVNUSU9OIiwgIiRhY2NlcHQiLCAiaWRlbnRpZmll
ciIsICJ2YXJpYWJsZV9pZGVudGlmaWVyIiwKLSAgInByaW1hcnlfZXhwcmVzc2lvbiIsICJwb3N0
Zml4X2V4cHJlc3Npb24iLCAiaW50ZWdlcl9leHByZXNzaW9uIiwKLSAgImZ1bmN0aW9uX2NhbGwi
LCAiZnVuY3Rpb25fY2FsbF9vcl9tZXRob2QiLCAiZnVuY3Rpb25fY2FsbF9nZW5lcmljIiwKLSAg
ImZ1bmN0aW9uX2NhbGxfaGVhZGVyX25vX3BhcmFtZXRlcnMiLAotICAiZnVuY3Rpb25fY2FsbF9o
ZWFkZXJfd2l0aF9wYXJhbWV0ZXJzIiwgImZ1bmN0aW9uX2NhbGxfaGVhZGVyIiwKLSAgImZ1bmN0
aW9uX2lkZW50aWZpZXIiLCAidW5hcnlfZXhwcmVzc2lvbiIsICJ1bmFyeV9vcGVyYXRvciIsCi0g
ICJtdWx0aXBsaWNhdGl2ZV9leHByZXNzaW9uIiwgImFkZGl0aXZlX2V4cHJlc3Npb24iLCAic2hp
ZnRfZXhwcmVzc2lvbiIsCi0gICJyZWxhdGlvbmFsX2V4cHJlc3Npb24iLCAiZXF1YWxpdHlfZXhw
cmVzc2lvbiIsICJhbmRfZXhwcmVzc2lvbiIsCi0gICJleGNsdXNpdmVfb3JfZXhwcmVzc2lvbiIs
ICJpbmNsdXNpdmVfb3JfZXhwcmVzc2lvbiIsCi0gICJsb2dpY2FsX2FuZF9leHByZXNzaW9uIiwg
ImxvZ2ljYWxfeG9yX2V4cHJlc3Npb24iLAotICAibG9naWNhbF9vcl9leHByZXNzaW9uIiwgImNv
bmRpdGlvbmFsX2V4cHJlc3Npb24iLAotICAiYXNzaWdubWVudF9leHByZXNzaW9uIiwgImFzc2ln
bm1lbnRfb3BlcmF0b3IiLCAiZXhwcmVzc2lvbiIsCi0gICJjb25zdGFudF9leHByZXNzaW9uIiwg
ImRlY2xhcmF0aW9uIiwgImZ1bmN0aW9uX3Byb3RvdHlwZSIsCi0gICJmdW5jdGlvbl9kZWNsYXJh
dG9yIiwgImZ1bmN0aW9uX2hlYWRlcl93aXRoX3BhcmFtZXRlcnMiLAotICAiZnVuY3Rpb25faGVh
ZGVyIiwgInBhcmFtZXRlcl9kZWNsYXJhdG9yIiwgInBhcmFtZXRlcl9kZWNsYXJhdGlvbiIsCi0g
ICJwYXJhbWV0ZXJfcXVhbGlmaWVyIiwgInBhcmFtZXRlcl90eXBlX3NwZWNpZmllciIsCi0gICJp
bml0X2RlY2xhcmF0b3JfbGlzdCIsICJzaW5nbGVfZGVjbGFyYXRpb24iLCAiZnVsbHlfc3BlY2lm
aWVkX3R5cGUiLAotICAidHlwZV9xdWFsaWZpZXIiLCAidHlwZV9zcGVjaWZpZXIiLCAicHJlY2lz
aW9uX3F1YWxpZmllciIsCi0gICJ0eXBlX3NwZWNpZmllcl9ub19wcmVjIiwgInR5cGVfc3BlY2lm
aWVyX25vbmFycmF5IiwgInN0cnVjdF9zcGVjaWZpZXIiLAotICAiQDEiLCAiQDIiLCAic3RydWN0
X2RlY2xhcmF0aW9uX2xpc3QiLCAic3RydWN0X2RlY2xhcmF0aW9uIiwKLSAgInN0cnVjdF9kZWNs
YXJhdG9yX2xpc3QiLCAic3RydWN0X2RlY2xhcmF0b3IiLCAiaW5pdGlhbGl6ZXIiLAotICAiZGVj
bGFyYXRpb25fc3RhdGVtZW50IiwgInN0YXRlbWVudCIsICJzaW1wbGVfc3RhdGVtZW50IiwKLSAg
ImNvbXBvdW5kX3N0YXRlbWVudCIsICJAMyIsICJANCIsICJzdGF0ZW1lbnRfbm9fbmV3X3Njb3Bl
IiwKLSAgInN0YXRlbWVudF93aXRoX3Njb3BlIiwgIkA1IiwgIkA2IiwgImNvbXBvdW5kX3N0YXRl
bWVudF9ub19uZXdfc2NvcGUiLAotICAic3RhdGVtZW50X2xpc3QiLCAiZXhwcmVzc2lvbl9zdGF0
ZW1lbnQiLCAic2VsZWN0aW9uX3N0YXRlbWVudCIsCi0gICJzZWxlY3Rpb25fcmVzdF9zdGF0ZW1l
bnQiLCAiY29uZGl0aW9uIiwgIml0ZXJhdGlvbl9zdGF0ZW1lbnQiLCAiQDciLAotICAiQDgiLCAi
QDkiLCAiZm9yX2luaXRfc3RhdGVtZW50IiwgImNvbmRpdGlvbm9wdCIsICJmb3JfcmVzdF9zdGF0
ZW1lbnQiLAotICAianVtcF9zdGF0ZW1lbnQiLCAidHJhbnNsYXRpb25fdW5pdCIsICJleHRlcm5h
bF9kZWNsYXJhdGlvbiIsCi0gICJmdW5jdGlvbl9kZWZpbml0aW9uIiwgIkAxMCIsIDAKLX07Ci0j
ZW5kaWYKLQotIyBpZmRlZiBZWVBSSU5UCi0vKiBZWVRPS05VTVtZWUxFWC1OVU1dIC0tIEludGVy
bmFsIHRva2VuIG51bWJlciBjb3JyZXNwb25kaW5nIHRvCi0gICB0b2tlbiBZWUxFWC1OVU0uICAq
Lwotc3RhdGljIGNvbnN0IHl5dHlwZV91aW50MTYgeXl0b2tudW1bXSA9Ci17Ci0gICAgICAgMCwg
ICAyNTYsICAgMjU3LCAgIDI1OCwgICAyNTksICAgMjYwLCAgIDI2MSwgICAyNjIsICAgMjYzLCAg
IDI2NCwKLSAgICAgMjY1LCAgIDI2NiwgICAyNjcsICAgMjY4LCAgIDI2OSwgICAyNzAsICAgMjcx
LCAgIDI3MiwgICAyNzMsICAgMjc0LAotICAgICAyNzUsICAgMjc2LCAgIDI3NywgICAyNzgsICAg
Mjc5LCAgIDI4MCwgICAyODEsICAgMjgyLCAgIDI4MywgICAyODQsCi0gICAgIDI4NSwgICAyODYs
ICAgMjg3LCAgIDI4OCwgICAyODksICAgMjkwLCAgIDI5MSwgICAyOTIsICAgMjkzLCAgIDI5NCwK
LSAgICAgMjk1LCAgIDI5NiwgICAyOTcsICAgMjk4LCAgIDI5OSwgICAzMDAsICAgMzAxLCAgIDMw
MiwgICAzMDMsICAgMzA0LAotICAgICAzMDUsICAgMzA2LCAgIDMwNywgICAzMDgsICAgMzA5LCAg
IDMxMCwgICAzMTEsICAgMzEyLCAgIDMxMywgICAzMTQsCi0gICAgIDMxNSwgICAzMTYsICAgMzE3
LCAgIDMxOCwgICAzMTksICAgMzIwLCAgIDMyMSwgICAzMjIsICAgMzIzLCAgIDMyNCwKLSAgICAg
MzI1LCAgIDMyNiwgICAzMjcsICAgMzI4LCAgIDMyOSwgICAzMzAsICAgMzMxLCAgIDMzMiwgICAz
MzMsICAgMzM0LAotICAgICAzMzUsICAgMzM2LCAgIDMzNywgICAzMzgsICAgMzM5LCAgIDM0MCwg
ICAzNDEsICAgMzQyLCAgIDM0MywgICAzNDQsCi0gICAgIDM0NSwgICAzNDYsICAgMzQ3LCAgIDM0
OCwgICAzNDkKLX07Ci0jIGVuZGlmCi0KLS8qIFlZUjFbWVlOXSAtLSBTeW1ib2wgbnVtYmVyIG9m
IHN5bWJvbCB0aGF0IHJ1bGUgWVlOIGRlcml2ZXMuICAqLwotc3RhdGljIGNvbnN0IHl5dHlwZV91
aW50OCB5eXIxW10gPQotewotICAgICAgIDAsICAgIDk1LCAgICA5NiwgICAgOTYsICAgIDk3LCAg
ICA5OCwgICAgOTgsICAgIDk4LCAgICA5OCwgICAgOTgsCi0gICAgICA5OSwgICAgOTksICAgIDk5
LCAgICA5OSwgICAgOTksICAgIDk5LCAgIDEwMCwgICAxMDEsICAgMTAyLCAgIDEwMiwKLSAgICAg
MTAzLCAgIDEwMywgICAxMDQsICAgMTA0LCAgIDEwNSwgICAxMDUsICAgMTA2LCAgIDEwNywgICAx
MDcsICAgMTA4LAotICAgICAxMDgsICAgMTA4LCAgIDEwOCwgICAxMDksICAgMTA5LCAgIDEwOSwg
ICAxMTAsICAgMTEwLCAgIDExMCwgICAxMTEsCi0gICAgIDExMSwgICAxMTEsICAgMTEyLCAgIDEx
MywgICAxMTMsICAgMTEzLCAgIDExMywgICAxMTMsICAgMTE0LCAgIDExNCwKLSAgICAgMTE0LCAg
IDExNSwgICAxMTYsICAgMTE3LCAgIDExOCwgICAxMTgsICAgMTE5LCAgIDExOSwgICAxMjAsICAg
MTIwLAotICAgICAxMjEsICAgMTIxLCAgIDEyMiwgICAxMjIsICAgMTIzLCAgIDEyMywgICAxMjMs
ICAgMTIzLCAgIDEyMywgICAxMjQsCi0gICAgIDEyNCwgICAxMjUsICAgMTI2LCAgIDEyNiwgICAx
MjYsICAgMTI3LCAgIDEyOCwgICAxMjgsICAgMTI5LCAgIDEyOSwKLSAgICAgMTMwLCAgIDEzMSwg
ICAxMzEsICAgMTMyLCAgIDEzMiwgICAxMzIsICAgMTMyLCAgIDEzMywgICAxMzMsICAgMTMzLAot
ICAgICAxMzMsICAgMTM0LCAgIDEzNSwgICAxMzUsICAgMTM1LCAgIDEzNSwgICAxMzUsICAgMTM2
LCAgIDEzNiwgICAxMzYsCi0gICAgIDEzNiwgICAxMzYsICAgMTM2LCAgIDEzNywgICAxMzcsICAg
MTM4LCAgIDEzOCwgICAxMzgsICAgMTM4LCAgIDEzOCwKLSAgICAgMTM5LCAgIDEzOSwgICAxNDAs
ICAgMTQwLCAgIDE0MCwgICAxNDEsICAgMTQxLCAgIDE0MiwgICAxNDIsICAgMTQyLAotICAgICAx
NDIsICAgMTQyLCAgIDE0MiwgICAxNDIsICAgMTQyLCAgIDE0MiwgICAxNDIsICAgMTQyLCAgIDE0
MiwgICAxNDIsCi0gICAgIDE0MiwgICAxNDIsICAgMTQyLCAgIDE0MiwgICAxNDIsICAgMTQyLCAg
IDE0MiwgICAxNDIsICAgMTQyLCAgIDE0NCwKLSAgICAgMTQzLCAgIDE0NSwgICAxNDMsICAgMTQ2
LCAgIDE0NiwgICAxNDcsICAgMTQ4LCAgIDE0OCwgICAxNDksICAgMTQ5LAotICAgICAxNTAsICAg
MTUxLCAgIDE1MiwgICAxNTIsICAgMTUzLCAgIDE1MywgICAxNTMsICAgMTUzLCAgIDE1MywgICAx
NTQsCi0gICAgIDE1NSwgICAxNTYsICAgMTU0LCAgIDE1NywgICAxNTcsICAgMTU5LCAgIDE1OCwg
ICAxNjAsICAgMTU4LCAgIDE2MSwKLSAgICAgMTYxLCAgIDE2MiwgICAxNjIsICAgMTYzLCAgIDE2
MywgICAxNjQsICAgMTY1LCAgIDE2NSwgICAxNjYsICAgMTY2LAotICAgICAxNjgsICAgMTY3LCAg
IDE2OSwgICAxNjcsICAgMTcwLCAgIDE2NywgICAxNzEsICAgMTcxLCAgIDE3MiwgICAxNzIsCi0g
ICAgIDE3MywgICAxNzMsICAgMTc0LCAgIDE3NCwgICAxNzQsICAgMTc0LCAgIDE3NCwgICAxNzUs
ICAgMTc1LCAgIDE3NiwKLSAgICAgMTc2LCAgIDE3OCwgICAxNzcKLX07Ci0KLS8qIFlZUjJbWVlO
XSAtLSBOdW1iZXIgb2Ygc3ltYm9scyBjb21wb3NpbmcgcmlnaHQgaGFuZCBzaWRlIG9mIHJ1bGUg
WVlOLiAgKi8KLXN0YXRpYyBjb25zdCB5eXR5cGVfdWludDggeXlyMltdID0KLXsKLSAgICAgICAw
LCAgICAgMiwgICAgIDEsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMSwgICAgIDEs
ICAgICAzLAotICAgICAgIDEsICAgICA0LCAgICAgMSwgICAgIDMsICAgICAyLCAgICAgMiwgICAg
IDEsICAgICAxLCAgICAgMSwgICAgIDMsCi0gICAgICAgMiwgICAgIDIsICAgICAyLCAgICAgMSwg
ICAgIDIsICAgICAzLCAgICAgMiwgICAgIDEsICAgICAxLCAgICAgMSwKLSAgICAgICAyLCAgICAg
MiwgICAgIDIsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMywgICAgIDMsICAgICAx
LAotICAgICAgIDMsICAgICAzLCAgICAgMSwgICAgIDEsICAgICAzLCAgICAgMywgICAgIDMsICAg
ICAzLCAgICAgMSwgICAgIDMsCi0gICAgICAgMywgICAgIDEsICAgICAxLCAgICAgMSwgICAgIDEs
ICAgICAzLCAgICAgMSwgICAgIDMsICAgICAxLCAgICAgMywKLSAgICAgICAxLCAgICAgNSwgICAg
IDEsICAgICAzLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAxLAotICAg
ICAgIDMsICAgICAxLCAgICAgMiwgICAgIDIsICAgICA0LCAgICAgMiwgICAgIDEsICAgICAxLCAg
ICAgMiwgICAgIDMsCi0gICAgICAgMywgICAgIDIsICAgICA1LCAgICAgMywgICAgIDIsICAgICAz
LCAgICAgMiwgICAgIDAsICAgICAxLCAgICAgMSwKLSAgICAgICAxLCAgICAgMSwgICAgIDEsICAg
ICAzLCAgICAgNSwgICAgIDYsICAgICA1LCAgICAgMSwgICAgIDIsICAgICA0LAotICAgICAgIDUs
ICAgICA0LCAgICAgMiwgICAgIDEsICAgICAyLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMiwg
ICAgIDEsCi0gICAgICAgMSwgICAgIDIsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAg
NCwgICAgIDEsICAgICAxLCAgICAgMSwKLSAgICAgICAxLCAgICAgMSwgICAgIDEsICAgICAxLCAg
ICAgMSwgICAgIDEsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAxLAotICAgICAgIDEsICAgICAx
LCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMSwgICAgIDAs
Ci0gICAgICAgNiwgICAgIDAsICAgICA1LCAgICAgMSwgICAgIDIsICAgICAzLCAgICAgMSwgICAg
IDMsICAgICAxLCAgICAgNCwKLSAgICAgICAxLCAgICAgMSwgICAgIDEsICAgICAxLCAgICAgMSwg
ICAgIDEsICAgICAxLCAgICAgMSwgICAgIDEsICAgICAyLAotICAgICAgIDAsICAgICAwLCAgICAg
NSwgICAgIDEsICAgICAxLCAgICAgMCwgICAgIDIsICAgICAwLCAgICAgMiwgICAgIDIsCi0gICAg
ICAgMywgICAgIDEsICAgICAyLCAgICAgMSwgICAgIDIsICAgICA1LCAgICAgMywgICAgIDEsICAg
ICAxLCAgICAgNCwKLSAgICAgICAwLCAgICAgNiwgICAgIDAsICAgICA4LCAgICAgMCwgICAgIDcs
ICAgICAxLCAgICAgMSwgICAgIDEsICAgICAwLAotICAgICAgIDIsICAgICAzLCAgICAgMiwgICAg
IDIsICAgICAyLCAgICAgMywgICAgIDIsICAgICAxLCAgICAgMiwgICAgIDEsCi0gICAgICAgMSwg
ICAgIDAsICAgICAzCi19OwotCi0vKiBZWURFRkFDVFtTVEFURS1OQU1FXSAtLSBEZWZhdWx0IHJ1
bGUgdG8gcmVkdWNlIHdpdGggaW4gc3RhdGUKLSAgIFNUQVRFLU5VTSB3aGVuIFlZVEFCTEUgZG9l
c24ndCBzcGVjaWZ5IHNvbWV0aGluZyBlbHNlIHRvIGRvLiAgWmVybwotICAgbWVhbnMgdGhlIGRl
ZmF1bHQgaXMgYW4gZXJyb3IuICAqLwotc3RhdGljIGNvbnN0IHl5dHlwZV91aW50OCB5eWRlZmFj
dFtdID0KLXsKLSAgICAgICAwLCAgICAgMCwgICAxMTIsICAgMTEzLCAgIDExNCwgICAgIDAsICAg
MTA2LCAgIDEwNSwgICAxMjAsICAgMTE4LAotICAgICAxMTksICAgMTI0LCAgIDEyNSwgICAxMjYs
ICAgMTI3LCAgIDEyOCwgICAxMjksICAgMTIxLCAgIDEyMiwgICAxMjMsCi0gICAgIDEzMCwgICAx
MzEsICAgMTMyLCAgIDEwOSwgICAxMDcsICAgICAwLCAgIDExNywgICAxMzMsICAgMTM0LCAgIDEz
NSwKLSAgICAgMTM2LCAgIDEzOCwgICAyMDAsICAgMjAxLCAgICAgMCwgICAgNzcsICAgIDg3LCAg
ICAgMCwgICAgOTIsICAgIDk3LAotICAgICAgIDAsICAgMTAzLCAgICAgMCwgICAxMTAsICAgMTE1
LCAgIDEzNywgICAgIDAsICAgMTk3LCAgIDE5OSwgICAxMDgsCi0gICAgIDEwMiwgICAgIDAsICAg
ICAyLCAgICAgMywgICAxNDEsICAgICAwLCAgICA3MiwgICAgIDAsICAgIDc1LCAgICA4NywKLSAg
ICAgICAwLCAgICA4OCwgICAgODksICAgIDkwLCAgICA3OCwgICAgIDAsICAgIDg3LCAgICAgMCwg
ICAgNzMsICAgICAyLAotICAgICAgOTgsICAgMTA0LCAgIDExMSwgICAgIDAsICAgICAxLCAgIDE5
OCwgICAgIDAsICAgICAwLCAgIDEzOSwgICAgIDAsCi0gICAgIDIwMiwgICAgNzksICAgIDg0LCAg
ICA4NiwgICAgOTEsICAgICAwLCAgICA5MywgICAgODAsICAgICAwLCAgICAgMCwKLSAgICAgICA0
LCAgICAgNywgICAgIDYsICAgICA4LCAgICAgMCwgICAgIDAsICAgICAwLCAgICAzNSwgICAgMzQs
ICAgIDMzLAotICAgICAgIDUsICAgIDEwLCAgICAyOSwgICAgMTIsICAgIDE3LCAgICAxOCwgICAg
IDAsICAgICAwLCAgICAyMywgICAgIDAsCi0gICAgICAzNiwgICAgIDAsICAgIDM5LCAgICA0Miwg
ICAgNDMsICAgIDQ4LCAgICA1MSwgICAgNTIsICAgIDUzLCAgICA1NCwKLSAgICAgIDU2LCAgICA1
OCwgICAgNjAsICAgIDcxLCAgICAgMCwgICAgMjcsICAgIDc0LCAgICAgMCwgICAgIDAsICAgMTQz
LAotICAgICAgIDAsICAgICAwLCAgICAgMCwgICAxODIsICAgICAwLCAgICAgMCwgICAgIDAsICAg
ICAwLCAgICAgMCwgICAxNjAsCi0gICAgIDE2OSwgICAxNzMsICAgIDM2LCAgICA2MiwgICAgNjks
ICAgICAwLCAgIDE1MSwgICAgIDAsICAgMTE1LCAgIDE1NCwKLSAgICAgMTcxLCAgIDE1MywgICAx
NTIsICAgICAwLCAgIDE1NSwgICAxNTYsICAgMTU3LCAgIDE1OCwgICAgODEsICAgIDgzLAotICAg
ICAgODUsICAgICAwLCAgICAgMCwgICAgOTksICAgICAwLCAgIDE1MCwgICAxMDEsICAgIDMwLCAg
ICAzMSwgICAgIDAsCi0gICAgICAxNCwgICAgMTUsICAgICAwLCAgICAgMCwgICAgMjEsICAgIDIw
LCAgICAgMCwgICAgMjIsICAgIDI0LCAgICAyNiwKLSAgICAgIDMyLCAgICAgMCwgICAgIDAsICAg
ICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLAotICAgICAgIDAs
ICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgIDExNiwgICAxNDgsICAgICAwLCAgIDE0Niwg
ICAxNDIsCi0gICAgIDE0NCwgICAgIDAsICAgMTkzLCAgIDE5MiwgICAxNjcsICAgMTg0LCAgICAg
MCwgICAxOTYsICAgMTk0LCAgICAgMCwKLSAgICAgMTgwLCAgIDE1OSwgICAgIDAsICAgIDY1LCAg
ICA2NiwgICAgNjcsICAgIDY4LCAgICA2NCwgICAgIDAsICAgICAwLAotICAgICAxNzQsICAgMTcw
LCAgIDE3MiwgICAgIDAsICAgIDk0LCAgICAgMCwgICAgOTYsICAgMTAwLCAgICAgOSwgICAgIDAs
Ci0gICAgICAxNiwgICAgIDIsICAgICAzLCAgICAxMywgICAgMTksICAgIDI1LCAgICAzNywgICAg
MzgsICAgIDQxLCAgICA0MCwKLSAgICAgIDQ2LCAgICA0NywgICAgNDQsICAgIDQ1LCAgICA0OSwg
ICAgNTAsICAgIDU1LCAgICA1NywgICAgNTksICAgICAwLAotICAgICAgIDAsICAgICAwLCAgIDE0
NSwgICAxNDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAxOTUsCi0gICAg
ICAgMCwgICAxNjEsICAgIDYzLCAgICA3MCwgICAgIDAsICAgIDk1LCAgICAxMSwgICAgIDAsICAg
ICAwLCAgIDE0NywKLSAgICAgICAwLCAgIDE2NiwgICAxNjgsICAgMTg3LCAgIDE4NiwgICAxODks
ICAgMTY3LCAgIDE3OCwgICAgIDAsICAgICAwLAotICAgICAgIDAsICAgIDgyLCAgICA2MSwgICAx
NDksICAgICAwLCAgIDE4OCwgICAgIDAsICAgICAwLCAgIDE3NywgICAxNzUsCi0gICAgICAgMCwg
ICAgIDAsICAgMTYyLCAgICAgMCwgICAxOTAsICAgICAwLCAgIDE2NywgICAgIDAsICAgMTY0LCAg
IDE4MSwKLSAgICAgMTYzLCAgICAgMCwgICAxOTEsICAgMTg1LCAgIDE3NiwgICAxNzksICAgMTgz
Ci19OwotCi0vKiBZWURFRkdPVE9bTlRFUk0tTlVNXS4gICovCi1zdGF0aWMgY29uc3QgeXl0eXBl
X2ludDE2IHl5ZGVmZ290b1tdID0KLXsKLSAgICAgIC0xLCAgIDE5NiwgICAxMDAsICAgMTAxLCAg
IDEwMiwgICAyMjksICAgMTAzLCAgIDEwNCwgICAxMDUsICAgMTA2LAotICAgICAxMDcsICAgMTA4
LCAgIDEwOSwgICAxNDIsICAgMTExLCAgIDExMiwgICAxMTMsICAgMTE0LCAgIDExNSwgICAxMTYs
Ci0gICAgIDExNywgICAxMTgsICAgMTE5LCAgIDEyMCwgICAxMjEsICAgMTIyLCAgIDE0MywgICAx
NDQsICAgMjE4LCAgIDE0NSwKLSAgICAgMTI0LCAgIDE0NiwgICAxNDcsICAgIDM0LCAgICAzNSwg
ICAgMzYsICAgIDgyLCAgICA2NCwgICAgNjUsICAgIDgzLAotICAgICAgMzcsICAgIDM4LCAgICAz
OSwgICAgNDAsICAgIDQxLCAgICA0MiwgICAgNDMsICAgMTI1LCAgICA0NSwgICAxMzAsCi0gICAg
ICA3NywgICAxMjgsICAgMTI5LCAgIDE5NywgICAxOTgsICAgMTY2LCAgIDE0OSwgICAxNTAsICAg
MTUxLCAgIDE1MiwKLSAgICAgMjEyLCAgIDI4MCwgICAyOTksICAgMjU0LCAgIDI1NSwgICAyNTYs
ICAgMzAwLCAgIDE1MywgICAxNTQsICAgMTU1LAotICAgICAyODksICAgMjc5LCAgIDE1NiwgICAy
NjAsICAgMjA0LCAgIDI1NywgICAyNzUsICAgMjg2LCAgIDI4NywgICAxNTcsCi0gICAgICA0Niwg
ICAgNDcsICAgIDQ4LCAgICA1NwotfTsKLQotLyogWVlQQUNUW1NUQVRFLU5VTV0gLS0gSW5kZXgg
aW4gWVlUQUJMRSBvZiB0aGUgcG9ydGlvbiBkZXNjcmliaW5nCi0gICBTVEFURS1OVU0uICAqLwot
I2RlZmluZSBZWVBBQ1RfTklORiAtMjYxCi1zdGF0aWMgY29uc3QgeXl0eXBlX2ludDE2IHl5cGFj
dFtdID0KLXsKLSAgICAxMzI3LCAgIC0yMCwgIC0yNjEsICAtMjYxLCAgLTI2MSwgICAxMTMsICAt
MjYxLCAgLTI2MSwgIC0yNjEsICAtMjYxLAotICAgIC0yNjEsICAtMjYxLCAgLTI2MSwgIC0yNjEs
ICAtMjYxLCAgLTI2MSwgIC0yNjEsICAtMjYxLCAgLTI2MSwgIC0yNjEsCi0gICAgLTI2MSwgIC0y
NjEsICAtMjYxLCAgLTI2MSwgIC0yNjEsICAgLTE5LCAgLTI2MSwgIC0yNjEsICAtMjYxLCAgLTI2
MSwKLSAgICAtMjYxLCAgLTI2MSwgIC0yNjEsICAgLTYxLCAgIC00MCwgICAtMjgsICAgIDc1LCAg
ICAtNywgIC0yNjEsICAgIDI0LAotICAgIDEzNzAsICAtMjYxLCAgMTQ0NCwgIC0yNjEsICAgLTEx
LCAgLTI2MSwgIDEyODMsICAtMjYxLCAgLTI2MSwgIC0yNjEsCi0gICAgLTI2MSwgIDE0NDQsICAt
MjYxLCAgLTI2MSwgIC0yNjEsICAgICA2LCAgLTI2MSwgICAgNTQsICAtMjYxLCAgICA4OCwKLSAg
ICAgIDYyLCAgLTI2MSwgIC0yNjEsICAtMjYxLCAgLTI2MSwgIDEzNzAsICAgIDU5LCAgICA5MSwg
IC0yNjEsICAgIDM2LAotICAgICAtNTAsICAtMjYxLCAgLTI2MSwgIDEwNTEsICAtMjYxLCAgLTI2
MSwgICAgNjMsICAxMzcwLCAgLTI2MSwgICAyOTMsCi0gICAgLTI2MSwgIC0yNjEsICAtMjYxLCAg
LTI2MSwgICAgOTEsICAxMzcwLCAgIC0xMiwgIC0yNjEsICAgODU2LCAgMTA1MSwKLSAgICAgIDc3
LCAgLTI2MSwgIC0yNjEsICAtMjYxLCAgMTA1MSwgIDEwNTEsICAxMDUxLCAgLTI2MSwgIC0yNjEs
ICAtMjYxLAotICAgIC0yNjEsICAtMjYxLCAgIC0xNCwgIC0yNjEsICAtMjYxLCAgLTI2MSwgICAg
ODQsICAgLTQ0LCAgMTExNiwgICAgOTUsCi0gICAgLTI2MSwgIDEwNTEsICAgIDUzLCAgICAgMywg
IC0yNjEsICAgLTM2LCAgICA4OSwgIC0yNjEsICAtMjYxLCAgLTI2MSwKLSAgICAgMTA0LCAgIDEw
NywgICAtNDUsICAtMjYxLCAgICA5NiwgIC0yNjEsICAtMjYxLCAgICA5MSwgIDExODQsICAtMjYx
LAotICAgIDEzNzAsICAgIDkyLCAgICA5MywgIC0yNjEsICAgIDk4LCAgIDEwMSwgICAgOTQsICAg
OTIxLCAgIDEwNSwgICAxMDIsCi0gICAgLTI2MSwgIC0yNjEsICAgIDcyLCAgLTI2MSwgIC0yNjEs
ICAgICA5LCAgLTI2MSwgICAtNjEsICAgIDQyLCAgLTI2MSwKLSAgICAtMjYxLCAgLTI2MSwgIC0y
NjEsICAgMzc2LCAgLTI2MSwgIC0yNjEsICAtMjYxLCAgLTI2MSwgICAxMDYsICAtMjYxLAotICAg
IC0yNjEsICAgOTg2LCAgMTA1MSwgIC0yNjEsICAgMTAzLCAgLTI2MSwgIC0yNjEsICAtMjYxLCAg
LTI2MSwgICAtNDEsCi0gICAgLTI2MSwgIC0yNjEsICAxMDUxLCAgMTQwNywgIC0yNjEsICAtMjYx
LCAgMTA1MSwgICAxMTAsICAtMjYxLCAgLTI2MSwKLSAgICAtMjYxLCAgMTA1MSwgIDEwNTEsICAx
MDUxLCAgMTA1MSwgIDEwNTEsICAxMDUxLCAgMTA1MSwgIDEwNTEsICAxMDUxLAotICAgIDEwNTEs
ICAxMDUxLCAgMTA1MSwgIDEwNTEsICAxMDUxLCAgLTI2MSwgICAxMDksICAgIDIzLCAgLTI2MSwg
IC0yNjEsCi0gICAgLTI2MSwgIDEyMjcsICAtMjYxLCAgLTI2MSwgICAxMTEsICAtMjYxLCAgMTA1
MSwgIC0yNjEsICAtMjYxLCAgICAyNSwKLSAgICAtMjYxLCAgLTI2MSwgICA0NTksICAtMjYxLCAg
LTI2MSwgIC0yNjEsICAtMjYxLCAgLTI2MSwgIDEwNTEsICAxMDUxLAotICAgIC0yNjEsICAtMjYx
LCAgLTI2MSwgIDEwNTEsICAtMjYxLCAgIDExNCwgIC0yNjEsICAtMjYxLCAgLTI2MSwgICAxMTUs
Ci0gICAgIDExMiwgICAgNzcsICAgMTE2LCAgLTI2MSwgIC0yNjEsICAtMjYxLCAgLTI2MSwgIC0y
NjEsICAgIDUzLCAgICA1MywKLSAgICAtMjYxLCAgLTI2MSwgIC0yNjEsICAtMjYxLCAgIC0zNiwg
ICAtMzYsICAtMjYxLCAgIDEwNCwgICAxMDcsICAgIDc2LAotICAgIDEwNTEsICAgIDkxLCAgLTI2
MSwgIC0yNjEsICAgMTQ1LCAgICA1NCwgICA2MjUsICAgNzA4LCAgICAtNiwgIC0yNjEsCi0gICAg
IDc5MSwgICA0NTksICAtMjYxLCAgLTI2MSwgICAxMTcsICAtMjYxLCAgLTI2MSwgIDEwNTEsICAg
MTIwLCAgLTI2MSwKLSAgICAgMTI0LCAgLTI2MSwgIC0yNjEsICAtMjYxLCAgLTI2MSwgICA3OTEs
ICAgMTExLCAgIDExMiwgICAgOTEsICAgMTI1LAotICAgICAxMjIsICAtMjYxLCAgLTI2MSwgIC0y
NjEsICAxMDUxLCAgLTI2MSwgICAxMTgsICAgMTI4LCAgIDE4MCwgIC0yNjEsCi0gICAgIDEyNiwg
ICA1NDIsICAtMjYxLCAgICAtNSwgIDEwNTEsICAgNTQyLCAgIDExMSwgIDEwNTEsICAtMjYxLCAg
LTI2MSwKLSAgICAtMjYxLCAgIDEyMywgICAxMTIsICAtMjYxLCAgLTI2MSwgIC0yNjEsICAtMjYx
Ci19OwotCi0vKiBZWVBHT1RPW05URVJNLU5VTV0uICAqLwotc3RhdGljIGNvbnN0IHl5dHlwZV9p
bnQxNiB5eXBnb3RvW10gPQotewotICAgIC0yNjEsICAgLTI0LCAgLTI2MSwgIC0yNjEsICAtMjYx
LCAgLTI2MSwgIC0yNjEsICAtMjYxLCAgICAzNCwgIC0yNjEsCi0gICAgLTI2MSwgIC0yNjEsICAt
MjYxLCAgICAzMiwgIC0yNjEsICAgLTMzLCAgLTI2MSwgICAtMjcsICAgLTI2LCAgLTI2MSwKLSAg
ICAtMjYxLCAgLTI2MSwgICAgMTQsICAgIDE2LCAgICAxOCwgIC0yNjEsICAgLTY2LCAgIC04Nywg
IC0yNjEsICAgLTkyLAotICAgICAtODUsICAgIDExLCAgICAxMiwgIC0yNjEsICAtMjYxLCAgLTI2
MSwgICAxNDEsICAgMTUwLCAgIDE2MSwgICAxNDMsCi0gICAgLTI2MSwgIC0yNjEsICAtMjMxLCAg
ICAgNSwgICAtMzAsICAgMjI0LCAgIC0xOCwgICAgIDAsICAtMjYxLCAgLTI2MSwKLSAgICAtMjYx
LCAgIDEwMCwgIC0xMTksICAtMjYxLCAgIC0xNywgIC0xNTYsICAgLTI1LCAgLTE0NSwgIC0yNDMs
ICAtMjYxLAotICAgIC0yNjEsICAtMjYxLCAgIC02NCwgIC0yNjAsICAtMjYxLCAgLTI2MSwgICAt
NTIsICAgIDIxLCAgIC0yMiwgIC0yNjEsCi0gICAgLTI2MSwgICAtMzksICAtMjYxLCAgLTI2MSwg
IC0yNjEsICAtMjYxLCAgLTI2MSwgIC0yNjEsICAtMjYxLCAgLTI2MSwKLSAgICAtMjYxLCAgIDE5
MSwgIC0yNjEsICAtMjYxCi19OwotCi0vKiBZWVRBQkxFW1lZUEFDVFtTVEFURS1OVU1dXS4gIFdo
YXQgdG8gZG8gaW4gc3RhdGUgU1RBVEUtTlVNLiAgSWYKLSAgIHBvc2l0aXZlLCBzaGlmdCB0aGF0
IHRva2VuLiAgSWYgbmVnYXRpdmUsIHJlZHVjZSB0aGUgcnVsZSB3aGljaAotICAgbnVtYmVyIGlz
IHRoZSBvcHBvc2l0ZS4gIElmIHplcm8sIGRvIHdoYXQgWVlERUZBQ1Qgc2F5cy4KLSAgIElmIFlZ
VEFCTEVfTklORiwgc3ludGF4IGVycm9yLiAgKi8KLSNkZWZpbmUgWVlUQUJMRV9OSU5GIC0xNjYK
LXN0YXRpYyBjb25zdCB5eXR5cGVfaW50MTYgeXl0YWJsZVtdID0KLXsKLSAgICAgIDQ0LCAgICA1
NSwgICAxNjUsICAgMTY0LCAgIDE2OSwgICAgODAsICAgMjI2LCAgIDEyMywgICAyMjIsICAgMjAw
LAotICAgICAgNzEsICAgIDMyLCAgICAzMywgICAyNzIsICAgMTkzLCAgICA3MCwgICAyODgsICAg
IDQ5LCAgIDE4NSwgICAxODYsCi0gICAgICA1NiwgICAxNzgsICAgMTIzLCAgICA4OCwgICAgNzIs
ICAgIDUwLCAgICA1MiwgICAgNTMsICAgMTc1LCAgIDI3OCwKLSAgICAgIDg5LCAgIDIyOCwgICAg
NTgsICAgIDc2LCAgIDE3NiwgICAgODQsICAgMzA0LCAgIDIxOSwgICAxNzAsICAgMTcxLAotICAg
ICAgNDQsICAgIDY2LCAgICA0NCwgICAgODYsICAgMjc4LCAgIDIwOSwgICAgNDQsICAgMTI3LCAg
IDI5OCwgICAxOTQsCi0gICAgICA1OSwgICAgNDQsICAgMjk4LCAgIDE4NywgICAxODgsICAgIDg0
LCAgICA1NCwgICAgMzIsICAgIDMzLCAgIDE3MiwKLSAgICAgMTU4LCAgIDE2MSwgICAgNzMsICAg
MTczLCAgICA2NiwgICAgNDQsICAgMjc2LCAgIDMwMSwgICAxNjIsICAgIDY5LAotICAgICAgNTMs
ICAgIDY3LCAgIDIxOSwgICAyMTksICAgIDY4LCAgIDE2NSwgICAyMjUsICAgIDQ0LCAgICA2MCwg
ICAxNDgsCi0gICAgIDIzMCwgICAgNzgsICAgMjAwLCAgICAgNiwgICAgIDcsICAgIDQ0LCAgIDE4
MywgICAyMTksICAgMTg0LCAgIDIzNSwKLSAgICAgMjIwLCAgICA2MCwgICAgNjEsICAgIDYyLCAg
ICA2MywgICAxMjMsICAgICA2LCAgICAgNywgICAxMjcsICAgIDQ5LAotICAgICAxMjcsICAgMjUx
LCAgIDI0OSwgICAyMTksICAgMjUyLCAgIDExMCwgICAyNTksICAgIDg3LCAgICA2MSwgICAgNjIs
Ci0gICAgICA2MywgICAgMjMsICAgIDI0LCAgIC0yNywgICAyNTgsICAgIDczLCAgIDIyMiwgICAg
IDIsICAgICAzLCAgICAgNCwKLSAgICAgMTEwLCAgICA2MSwgICAgNjIsICAgIDYzLCAgICAyMywg
ICAgMjQsICAgMTY3LCAgIDE2OCwgICAgNDQsICAgIDc5LAotICAgICAgNDQsICAgMjYyLCAgIDI2
MywgICAyMTMsICAgMjE0LCAgIDIxNSwgICAgNTIsICAgIDUzLCAgIDI2NCwgICAxODEsCi0gICAg
IDE4MiwgICAzMDUsICAgMjE2LCAgIDE4MCwgICAxMjYsICAgMTg5LCAgIDE5MCwgICAtNzYsICAg
LTI4LCAgIDIzMywKLSAgICAgMjM4LCAgIDIzOSwgICAyMTcsICAgMTQ4LCAgIDIxOSwgICAyNjcs
ICAgMTc0LCAgIDEyMywgICAyNDAsICAgMjQxLAotICAgICAyNDIsICAgMjQzLCAgIDE5MSwgICAy
NDQsICAgMjQ1LCAgIDI2OCwgICAxNzksICAgMTkyLCAgIDI3NywgICAyMDUsCi0gICAgIDE5NSwg
ICAxMjcsICAgMjA2LCAgIDIwMiwgICAyMDMsICAgMjA3LCAgIDIxMCwgICAyMjcsICAgMjExLCAg
IDIyMywKLSAgICAgMjgyLCAgLTExNywgICAyNTAsICAgMjc3LCAgIDEyMywgICAyNzAsICAtMTY1
LCAgLTEzOCwgICAyNjUsICAgMjY2LAotICAgICAyMTksICAgMjgxLCAgIDI5MywgICAxMTAsICAg
MjgzLCAgIDI4NCwgICAyOTYsICAgMjkxLCAgIDI5MiwgICAyOTQsCi0gICAgIDI5NSwgICAgNDQs
ICAgMzAyLCAgIDI3MSwgICAzMDYsICAgMjQ2LCAgIDI5NywgICAyMzQsICAgMjQ3LCAgICA4MSwK
LSAgICAgMTY1LCAgIDI0OCwgICAxNDgsICAgMjM2LCAgIDIzNywgICAxMTAsICAgMTEwLCAgIDEx
MCwgICAxMTAsICAgMTEwLAotICAgICAxMTAsICAgMTEwLCAgIDExMCwgICAxMTAsICAgMTEwLCAg
IDExMCwgICAxNTksICAgIDg1LCAgIDE2MCwgICAgNTEsCi0gICAgIDIwMSwgICAzMDMsICAgMjcz
LCAgIDI2MSwgICAyNjksICAgMjc0LCAgIDI4NSwgICAgNzUsICAgICAwLCAgICAgMCwKLSAgICAg
ICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAg
IDAsICAgICAwLAotICAgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgMjkwLCAgIDExMCwg
ICAxNDgsICAgMTQ4LCAgICAgMCwgICAgIDAsCi0gICAgIDE0OCwgICAxNDgsICAgICAwLCAgICAg
MCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwKLSAgICAgICAwLCAg
ICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAxNDgsICAgICAwLCAgICAgMCwgICAgIDAsICAg
ICAwLAotICAgICAgIDAsICAgICAwLCAgIDExMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAs
ICAgICAwLCAgICAgMCwgICAgIDAsCi0gICAgICAgMCwgICAxNDgsICAgICAwLCAgICAgMCwgICAg
IDAsICAgMTQ4LCAgICAgMSwgICAgIDIsICAgICAzLCAgICAgNCwKLSAgICAgICA1LCAgICAgNiwg
ICAgIDcsICAgICA4LCAgICAgOSwgICAgMTAsICAgMTMxLCAgIDEzMiwgICAxMzMsICAgICAwLAot
ICAgICAxMzQsICAgMTM1LCAgIDEzNiwgICAxMzcsICAgIDExLCAgICAxMiwgICAgMTMsICAgIDE0
LCAgICAxNSwgICAgMTYsCi0gICAgICAxNywgICAgMTgsICAgIDE5LCAgICAyMCwgICAgMjEsICAg
IDIyLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAyMywKLSAgICAgIDI0LCAgICAyNSwgICAgMjYs
ICAgMTM4LCAgICAyNywgICAgMjgsICAgIDI5LCAgICAzMCwgICAgOTAsICAgIDMxLAotICAgICAg
OTEsICAgIDkyLCAgICA5MywgICAgIDAsICAgICAwLCAgICA5NCwgICAgOTUsICAgICAwLCAgICAg
MCwgICAgIDAsCi0gICAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAg
ICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwKLSAgICAgICAwLCAgICAgMCwgICAgIDAsICAgICAw
LCAgICA5NiwgICAgIDAsICAgICAwLCAgICAgMCwgICAxMzksICAgMTQwLAotICAgICAgIDAsICAg
ICAwLCAgICAgMCwgICAgIDAsICAgMTQxLCAgICA5NywgICAgOTgsICAgICAwLCAgICA5OSwgICAg
IDEsCi0gICAgICAgMiwgICAgIDMsICAgICA0LCAgICAgNSwgICAgIDYsICAgICA3LCAgICAgOCwg
ICAgIDksICAgIDEwLCAgIDEzMSwKLSAgICAgMTMyLCAgIDEzMywgICAgIDAsICAgMTM0LCAgIDEz
NSwgICAxMzYsICAgMTM3LCAgICAxMSwgICAgMTIsICAgIDEzLAotICAgICAgMTQsICAgIDE1LCAg
ICAxNiwgICAgMTcsICAgIDE4LCAgICAxOSwgICAgMjAsICAgIDIxLCAgICAyMiwgICAgIDAsCi0g
ICAgICAgMCwgICAgIDAsICAgIDIzLCAgICAyNCwgICAgMjUsICAgIDI2LCAgIDEzOCwgICAgMjcs
ICAgIDI4LCAgICAyOSwKLSAgICAgIDMwLCAgICA5MCwgICAgMzEsICAgIDkxLCAgICA5MiwgICAg
OTMsICAgICAwLCAgICAgMCwgICAgOTQsICAgIDk1LAotICAgICAgIDAsICAgICAwLCAgICAgMCwg
ICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsCi0gICAgICAg
MCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgOTYsICAgICAw
LCAgICAgMCwKLSAgICAgICAwLCAgIDEzOSwgICAyMjEsICAgICAwLCAgICAgMCwgICAgIDAsICAg
ICAwLCAgIDE0MSwgICAgOTcsICAgIDk4LAotICAgICAgIDAsICAgIDk5LCAgICAgMSwgICAgIDIs
ICAgICAzLCAgICAgNCwgICAgIDUsICAgICA2LCAgICAgNywgICAgIDgsCi0gICAgICAgOSwgICAg
MTAsICAgMTMxLCAgIDEzMiwgICAxMzMsICAgICAwLCAgIDEzNCwgICAxMzUsICAgMTM2LCAgIDEz
NywKLSAgICAgIDExLCAgICAxMiwgICAgMTMsICAgIDE0LCAgICAxNSwgICAgMTYsICAgIDE3LCAg
ICAxOCwgICAgMTksICAgIDIwLAotICAgICAgMjEsICAgIDIyLCAgICAgMCwgICAgIDAsICAgICAw
LCAgICAyMywgICAgMjQsICAgIDI1LCAgICAyNiwgICAxMzgsCi0gICAgICAyNywgICAgMjgsICAg
IDI5LCAgICAzMCwgICAgOTAsICAgIDMxLCAgICA5MSwgICAgOTIsICAgIDkzLCAgICAgMCwKLSAg
ICAgICAwLCAgICA5NCwgICAgOTUsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwg
ICAgIDAsICAgICAwLAotICAgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAg
MCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsCi0gICAgICA5NiwgICAgIDAsICAgICAwLCAg
ICAgMCwgICAxMzksICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwKLSAgICAgMTQx
LCAgICA5NywgICAgOTgsICAgICAwLCAgICA5OSwgICAgIDEsICAgICAyLCAgICAgMywgICAgIDQs
ICAgICA1LAotICAgICAgIDYsICAgICA3LCAgICAgOCwgICAgIDksICAgIDEwLCAgIDEzMSwgICAx
MzIsICAgMTMzLCAgICAgMCwgICAxMzQsCi0gICAgIDEzNSwgICAxMzYsICAgMTM3LCAgICAxMSwg
ICAgMTIsICAgIDEzLCAgICAxNCwgICAgMTUsICAgIDE2LCAgICAxNywKLSAgICAgIDE4LCAgICAx
OSwgICAgMjAsICAgIDIxLCAgICAyMiwgICAgIDAsICAgICAwLCAgICAgMCwgICAgMjMsICAgIDI0
LAotICAgICAgMjUsICAgIDI2LCAgIDEzOCwgICAgMjcsICAgIDI4LCAgICAyOSwgICAgMzAsICAg
IDkwLCAgICAzMSwgICAgOTEsCi0gICAgICA5MiwgICAgOTMsICAgICAwLCAgICAgMCwgICAgOTQs
ICAgIDk1LCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwKLSAgICAgICAwLCAgICAgMCwgICAg
IDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLAotICAg
ICAgIDAsICAgICAwLCAgICAgMCwgICAgOTYsICAgICAwLCAgICAgMCwgICAgIDAsICAgIDc5LCAg
ICAgMCwgICAgIDAsCi0gICAgICAgMCwgICAgIDAsICAgICAwLCAgIDE0MSwgICAgOTcsICAgIDk4
LCAgICAgMCwgICAgOTksICAgICAxLCAgICAgMiwKLSAgICAgICAzLCAgICAgNCwgICAgIDUsICAg
ICA2LCAgICAgNywgICAgIDgsICAgICA5LCAgICAxMCwgICAxMzEsICAgMTMyLAotICAgICAxMzMs
ICAgICAwLCAgIDEzNCwgICAxMzUsICAgMTM2LCAgIDEzNywgICAgMTEsICAgIDEyLCAgICAxMywg
ICAgMTQsCi0gICAgICAxNSwgICAgMTYsICAgIDE3LCAgICAxOCwgICAgMTksICAgIDIwLCAgICAy
MSwgICAgMjIsICAgICAwLCAgICAgMCwKLSAgICAgICAwLCAgICAyMywgICAgMjQsICAgIDI1LCAg
ICAyNiwgICAxMzgsICAgIDI3LCAgICAyOCwgICAgMjksICAgIDMwLAotICAgICAgOTAsICAgIDMx
LCAgICA5MSwgICAgOTIsICAgIDkzLCAgICAgMCwgICAgIDAsICAgIDk0LCAgICA5NSwgICAgIDAs
Ci0gICAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAg
IDAsICAgICAwLCAgICAgMCwKLSAgICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwg
ICAgIDAsICAgIDk2LCAgICAgMCwgICAgIDAsICAgICAwLAotICAgICAgIDAsICAgICAwLCAgICAg
MCwgICAgIDAsICAgICAwLCAgICAgMCwgICAxNDEsICAgIDk3LCAgICA5OCwgICAgIDAsCi0gICAg
ICA5OSwgICAgIDEsICAgICAyLCAgICAgMywgICAgIDQsICAgICA1LCAgICAgNiwgICAgIDcsICAg
ICA4LCAgICAgOSwKLSAgICAgIDEwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAs
ICAgICAwLCAgICAgMCwgICAgIDAsICAgIDExLAotICAgICAgMTIsICAgIDEzLCAgICAxNCwgICAg
MTUsICAgIDE2LCAgICAxNywgICAgMTgsICAgIDE5LCAgICAyMCwgICAgMjEsCi0gICAgICAyMiwg
ICAgIDAsICAgICAwLCAgICAgMCwgICAgMjMsICAgIDI0LCAgICAyNSwgICAgMjYsICAgICAwLCAg
ICAyNywKLSAgICAgIDI4LCAgICAyOSwgICAgMzAsICAgIDkwLCAgICAzMSwgICAgOTEsICAgIDky
LCAgICA5MywgICAgIDAsICAgICAwLAotICAgICAgOTQsICAgIDk1LCAgICAgMCwgICAgIDAsICAg
ICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsCi0gICAgICAgMCwgICAgIDAs
ICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICA5NiwK
LSAgICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAg
MCwgICAgIDAsICAgMTQxLAotICAgICAgOTcsICAgIDk4LCAgICAgMCwgICAgOTksICAgIDYwLCAg
ICAgMiwgICAgIDMsICAgICA0LCAgICAgMCwgICAgIDYsCi0gICAgICAgNywgICAgIDgsICAgICA5
LCAgICAxMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwKLSAgICAg
ICAwLCAgICAgMCwgICAgMTEsICAgIDEyLCAgICAxMywgICAgMTQsICAgIDE1LCAgICAxNiwgICAg
MTcsICAgIDE4LAotICAgICAgMTksICAgIDIwLCAgICAyMSwgICAgMjIsICAgICAwLCAgICAgMCwg
ICAgIDAsICAgIDIzLCAgICAyNCwgICAgMjUsCi0gICAgICAyNiwgICAgIDAsICAgIDI3LCAgICAy
OCwgICAgMjksICAgIDMwLCAgICA5MCwgICAgMzEsICAgIDkxLCAgICA5MiwKLSAgICAgIDkzLCAg
ICAgMCwgICAgIDAsICAgIDk0LCAgICA5NSwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAg
ICAwLAotICAgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAs
ICAgICAwLCAgICAgMCwgICAgIDAsCi0gICAgICAgMCwgICAgIDAsICAgIDk2LCAgICAgMCwgICAg
IDAsICAgICAwLCAgICAgOCwgICAgIDksICAgIDEwLCAgICAgMCwKLSAgICAgICAwLCAgICAgMCwg
ICAgIDAsICAgIDk3LCAgICA5OCwgICAgIDAsICAgIDk5LCAgICAxMSwgICAgMTIsICAgIDEzLAot
ICAgICAgMTQsICAgIDE1LCAgICAxNiwgICAgMTcsICAgIDE4LCAgICAxOSwgICAgMjAsICAgIDIx
LCAgICAyMiwgICAgIDAsCi0gICAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgMjUsICAg
IDI2LCAgICAgMCwgICAgMjcsICAgIDI4LCAgICAyOSwKLSAgICAgIDMwLCAgICA5MCwgICAgMzEs
ICAgIDkxLCAgICA5MiwgICAgOTMsICAgICAwLCAgICAgMCwgICAgOTQsICAgIDk1LAotICAgICAg
IDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAg
MCwgICAgIDAsCi0gICAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAg
ICAgMCwgICAgOTYsICAgICAwLCAgICAgMCwKLSAgICAgMTYzLCAgICAgOCwgICAgIDksICAgIDEw
LCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgOTcsICAgIDk4LAotICAgICAgIDAsICAg
IDk5LCAgICAxMSwgICAgMTIsICAgIDEzLCAgICAxNCwgICAgMTUsICAgIDE2LCAgICAxNywgICAg
MTgsCi0gICAgICAxOSwgICAgMjAsICAgIDIxLCAgICAyMiwgICAgIDAsICAgICAwLCAgICAgMCwg
ICAgIDAsICAgICAwLCAgICAyNSwKLSAgICAgIDI2LCAgICAgMCwgICAgMjcsICAgIDI4LCAgICAy
OSwgICAgMzAsICAgIDkwLCAgICAzMSwgICAgOTEsICAgIDkyLAotICAgICAgOTMsICAgICAwLCAg
ICAgMCwgICAgOTQsICAgIDk1LCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsCi0g
ICAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAs
ICAgICAwLCAgICAgMCwKLSAgICAgICAwLCAgICAgMCwgICAgOTYsICAgICAwLCAgICAgMCwgICAg
IDAsICAgICA4LCAgICAgOSwgICAgMTAsICAgICAwLAotICAgICAgIDAsICAgICAwLCAgIDIwOCwg
ICAgOTcsICAgIDk4LCAgICAgMCwgICAgOTksICAgIDExLCAgICAxMiwgICAgMTMsCi0gICAgICAx
NCwgICAgMTUsICAgIDE2LCAgICAxNywgICAgMTgsICAgIDE5LCAgICAyMCwgICAgMjEsICAgIDIy
LCAgICAgMCwKLSAgICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAyNSwgICAgMjYsICAg
ICAwLCAgICAyNywgICAgMjgsICAgIDI5LAotICAgICAgMzAsICAgIDkwLCAgICAzMSwgICAgOTEs
ICAgIDkyLCAgICA5MywgICAgIDAsICAgICAwLCAgICA5NCwgICAgOTUsCi0gICAgICAgMCwgICAg
IDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAg
MCwKLSAgICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAg
ICA5NiwgICAgIDAsICAgICAwLAotICAgICAyMjQsICAgICA4LCAgICAgOSwgICAgMTAsICAgICAw
LCAgICAgMCwgICAgIDAsICAgICAwLCAgICA5NywgICAgOTgsCi0gICAgICAgMCwgICAgOTksICAg
IDExLCAgICAxMiwgICAgMTMsICAgIDE0LCAgICAxNSwgICAgMTYsICAgIDE3LCAgICAxOCwKLSAg
ICAgIDE5LCAgICAyMCwgICAgMjEsICAgIDIyLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwg
ICAgIDAsICAgIDI1LAotICAgICAgMjYsICAgICAwLCAgICAyNywgICAgMjgsICAgIDI5LCAgICAz
MCwgICAgOTAsICAgIDMxLCAgICA5MSwgICAgOTIsCi0gICAgICA5MywgICAgIDAsICAgICAwLCAg
ICA5NCwgICAgOTUsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwKLSAgICAgICAw
LCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAs
ICAgICAwLAotICAgICAgIDAsICAgICAwLCAgICA5NiwgICAgIDAsICAgICAwLCAgICAgMCwgICAg
IDgsICAgICA5LCAgICAxMCwgICAgIDAsCi0gICAgICAgMCwgICAgIDAsICAgICAwLCAgICA5Nywg
ICAgOTgsICAgICAwLCAgICA5OSwgICAgMTEsICAgIDEyLCAgICAxMywKLSAgICAgIDE0LCAgICAx
NSwgICAgMTYsICAgIDE3LCAgICAxOCwgICAgMTksICAgIDIwLCAgICAyMSwgICAgMjIsICAgICAw
LAotICAgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgIDI1LCAgIDE3NywgICAgIDAsICAg
IDI3LCAgICAyOCwgICAgMjksCi0gICAgICAzMCwgICAgOTAsICAgIDMxLCAgICA5MSwgICAgOTIs
ICAgIDkzLCAgICAgMCwgICAgIDAsICAgIDk0LCAgICA5NSwKLSAgICAgICAwLCAgICAgMCwgICAg
IDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLAotICAg
ICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgIDk2LCAg
ICAgMiwgICAgIDMsCi0gICAgICAgNCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDgsICAgICA5
LCAgICAxMCwgICAgIDAsICAgIDk3LCAgICA5OCwKLSAgICAgICAwLCAgICA5OSwgICAgIDAsICAg
ICAwLCAgICAgMCwgICAgMTEsICAgIDEyLCAgICAxMywgICAgMTQsICAgIDE1LAotICAgICAgMTYs
ICAgIDE3LCAgICAxOCwgICAgMTksICAgIDIwLCAgICAyMSwgICAgMjIsICAgICAwLCAgICAgMCwg
ICAgIDAsCi0gICAgICAgMCwgICAgIDAsICAgIDI1LCAgICAyNiwgICAgIDAsICAgIDI3LCAgICAy
OCwgICAgMjksICAgIDMwLCAgICAgMCwKLSAgICAgIDMxLCAgICAgMiwgICAgIDMsICAgICA0LCAg
ICAgMCwgICAgIDAsICAgICAwLCAgICAgOCwgICAgIDksICAgIDEwLAotICAgICAgIDAsICAgICAw
LCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAxMSwgICAgMTIs
Ci0gICAgICAxMywgICAgMTQsICAgIDE1LCAgICAxNiwgICAgMTcsICAgIDE4LCAgICAxOSwgICAg
MjAsICAgIDIxLCAgICAyMiwKLSAgICAgMTk5LCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwg
ICAgMjUsICAgIDI2LCAgICAgMCwgICAgMjcsICAgIDI4LAotICAgICAgMjksICAgIDMwLCAgICAg
MCwgICAgMzEsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsCi0gICAg
ICAgMCwgICAgIDAsICAgICAwLCAgICA3NCwgICAgIDAsICAgICAwLCAgICAgMSwgICAgIDIsICAg
ICAzLCAgICAgNCwKLSAgICAgICA1LCAgICAgNiwgICAgIDcsICAgICA4LCAgICAgOSwgICAgMTAs
ICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLAotICAgICAgIDAsICAgICAwLCAgICAgMCwgICAy
NTMsICAgIDExLCAgICAxMiwgICAgMTMsICAgIDE0LCAgICAxNSwgICAgMTYsCi0gICAgICAxNywg
ICAgMTgsICAgIDE5LCAgICAyMCwgICAgMjEsICAgIDIyLCAgICAgMCwgICAgIDAsICAgICAwLCAg
ICAyMywKLSAgICAgIDI0LCAgICAyNSwgICAgMjYsICAgICAwLCAgICAyNywgICAgMjgsICAgIDI5
LCAgICAzMCwgICAgIDAsICAgIDMxLAotICAgICAgIDEsICAgICAyLCAgICAgMywgICAgIDQsICAg
ICA1LCAgICAgNiwgICAgIDcsICAgICA4LCAgICAgOSwgICAgMTAsCi0gICAgICAgMCwgICAgIDAs
ICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgIDExLCAgICAxMiwK
LSAgICAgIDEzLCAgICAxNCwgICAgMTUsICAgIDE2LCAgICAxNywgICAgMTgsICAgIDE5LCAgICAy
MCwgICAgMjEsICAgIDIyLAotICAgICAgIDAsICAgICAwLCAgICAgMCwgICAgMjMsICAgIDI0LCAg
ICAyNSwgICAgMjYsICAgICAwLCAgICAyNywgICAgMjgsCi0gICAgICAyOSwgICAgMzAsICAgICAw
LCAgICAzMSwgICAgIDIsICAgICAzLCAgICAgNCwgICAgIDAsICAgICAwLCAgICAgMCwKLSAgICAg
ICA4LCAgICAgOSwgICAgMTAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAg
IDAsICAgICAwLAotICAgICAgIDAsICAgIDExLCAgICAxMiwgICAgMTMsICAgIDE0LCAgICAxNSwg
ICAgMTYsICAgIDE3LCAgICAxOCwgICAgMTksCi0gICAgICAyMCwgICAgMjEsICAgIDIyLCAgICAg
MCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgIDI1LCAgICAyNiwKLSAgICAgICAwLCAg
ICAyNywgICAgMjgsICAgIDI5LCAgICAzMCwgICAgIDAsICAgIDMxLCAgICAgOCwgICAgIDksICAg
IDEwLAotICAgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAs
ICAgICAwLCAgICAxMSwgICAgMTIsCi0gICAgICAxMywgICAgMTQsICAgIDE1LCAgICAxNiwgICAg
MTcsICAgIDE4LCAgICAxOSwgICAgMjAsICAgIDIxLCAgICAyMiwKLSAgICAgICAwLCAgICAgMCwg
ICAgIDAsICAgICAwLCAgICAgMCwgICAgMjUsICAgIDI2LCAgICAgMCwgICAgMjcsICAgIDI4LAot
ICAgICAgMjksICAgIDMwLCAgIDIzMSwgICAyMzIsICAgICA4LCAgICAgOSwgICAgMTAsICAgICAw
LCAgICAgMCwgICAgIDAsCi0gICAgICAgMCwgICAgIDAsICAgICAwLCAgICAgMCwgICAgIDAsICAg
IDExLCAgICAxMiwgICAgMTMsICAgIDE0LCAgICAxNSwKLSAgICAgIDE2LCAgICAxNywgICAgMTgs
ICAgIDE5LCAgICAyMCwgICAgMjEsICAgIDIyLCAgICAgMCwgICAgIDAsICAgICAwLAotICAgICAg
IDAsICAgICAwLCAgICAyNSwgICAgMjYsICAgICAwLCAgICAyNywgICAgMjgsICAgIDI5LCAgICAz
MCwgICAgIDAsCi0gICAgICAzMQotfTsKLQotc3RhdGljIGNvbnN0IHl5dHlwZV9pbnQxNiB5eWNo
ZWNrW10gPQotewotICAgICAgIDAsICAgIDI1LCAgICA4OSwgICAgODgsICAgIDk2LCAgICA1Nywg
ICAxNjIsICAgIDczLCAgIDE1MywgICAxMjgsCi0gICAgICA0MCwgICAgIDAsICAgICAwLCAgIDI1
NiwgICAgNTksICAgIDM5LCAgIDI3NiwgICAgMzcsICAgIDU0LCAgICA1NSwKLSAgICAgIDgxLCAg
IDEwOCwgICAgODgsICAgIDczLCAgICA0MiwgICAgNDUsICAgIDQ1LCAgICA0NiwgICAgNzIsICAg
MjYwLAotICAgICAgODAsICAgIDcyLCAgICA3MiwgICAgNTEsICAgIDc4LCAgICA2NSwgICAyOTYs
ICAgIDc4LCAgICA1MiwgICAgNTMsCi0gICAgICA0MCwgICAgMzYsICAgIDQyLCAgICA2NywgICAy
NzUsICAgMTM3LCAgICA0NiwgICAgNzcsICAgMjkxLCAgICA5NCwKLSAgICAgIDc4LCAgICA1MSwg
ICAyOTUsICAgIDg5LCAgICA5MCwgICAgODUsICAgIDc1LCAgICA0NiwgICAgNDYsICAgIDczLAot
ICAgICAgODQsICAgIDczLCAgICA3MywgICAgNzcsICAgIDU5LCAgICA2NSwgICAgNzIsICAgIDcy
LCAgICA4MCwgICAgNDUsCi0gICAgICA0NiwgICAgNzgsICAgIDc4LCAgICA3OCwgICAgODEsICAg
MTYyLCAgIDE2MSwgICAgNzcsICAgICAzLCAgICA3OSwKLSAgICAgMTcyLCAgICA3NSwgICAyMDEs
ICAgICA4LCAgICAgOSwgICAgODUsICAgIDgzLCAgICA3OCwgICAgODUsICAgMTc2LAotICAgICAg
ODEsICAgICAzLCAgICAzMywgICAgMzQsICAgIDM1LCAgIDE2MSwgICAgIDgsICAgICA5LCAgIDEy
OCwgICAgMzcsCi0gICAgIDEzMCwgICAgNzgsICAgMTk0LCAgICA3OCwgICAgODEsICAgIDczLCAg
ICA4MSwgICAgNzEsICAgIDMzLCAgICAzNCwKLSAgICAgIDM1LCAgICAzNiwgICAgMzcsICAgIDcx
LCAgIDIwNiwgICAgNzMsICAgMjYxLCAgICAgNCwgICAgIDUsICAgICA2LAotICAgICAgODgsICAg
IDMzLCAgICAzNCwgICAgMzUsICAgIDM2LCAgICAzNywgICAgOTQsICAgIDk1LCAgIDEyOCwgICAg
NzUsCi0gICAgIDEzMCwgICAyMTgsICAgMjE5LCAgICA2MSwgICAgNjIsICAgIDYzLCAgICA0NSwg
ICAgNDYsICAgMjIzLCAgICA4NiwKLSAgICAgIDg3LCAgIDI5NywgICAgNzAsICAgMTExLCAgICA4
MSwgICAgNTYsICAgIDU3LCAgICA3MiwgICAgNzEsICAgMTczLAotICAgICAxODMsICAgMTg0LCAg
ICA4MCwgICAxNTMsICAgIDc4LCAgICA3OSwgICAgNzIsICAgMjIzLCAgIDE4NSwgICAxODYsCi0g
ICAgIDE4NywgICAxODgsICAgIDU4LCAgIDE4OSwgICAxOTAsICAgMjUwLCAgICA3MSwgICAgNjAs
ICAgMjYwLCAgICA3MSwKLSAgICAgIDc0LCAgIDIwMSwgICAgNzEsICAgIDgxLCAgICA4MSwgICAg
ODEsICAgIDcxLCAgICA3NCwgICAgNzYsICAgIDczLAotICAgICAyNjcsICAgIDcxLCAgICA3Mywg
ICAyNzUsICAgMjUwLCAgICA0MCwgICAgNzUsICAgIDcxLCAgICA3NCwgICAgNzQsCi0gICAgICA3
OCwgICAgNzQsICAgMjg0LCAgIDE2MSwgICAgNzQsICAgIDcxLCAgICAxNiwgICAgNzIsICAgIDc2
LCAgICA4MSwKLSAgICAgIDcyLCAgIDIwMSwgICAyOTQsICAgMjU1LCAgICA4MSwgICAxOTEsICAg
IDgwLCAgIDE3MywgICAxOTIsICAgIDU5LAotICAgICAyOTcsICAgMTkzLCAgIDIxMiwgICAxODEs
ICAgMTgyLCAgIDE4MywgICAxODQsICAgMTg1LCAgIDE4NiwgICAxODcsCi0gICAgIDE4OCwgICAx
ODksICAgMTkwLCAgIDE5MSwgICAxOTIsICAgMTkzLCAgICA4NSwgICAgNjYsICAgIDg1LCAgICAg
NSwKLSAgICAgMTMwLCAgIDI5NSwgICAyNTcsICAgMjEyLCAgIDI1MSwgICAyNTcsICAgMjc1LCAg
ICA0NiwgICAgLTEsICAgIC0xLAotICAgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0x
LCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsCi0gICAgICAtMSwgICAgLTEsICAg
IC0xLCAgICAtMSwgICAyNzgsICAgMjIzLCAgIDI1NiwgICAyNTcsICAgIC0xLCAgICAtMSwKLSAg
ICAgMjYwLCAgIDI2MSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwg
ICAgLTEsICAgIC0xLAotICAgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgIDI3
NSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsCi0gICAgICAtMSwgICAgLTEsICAgMjUwLCAg
ICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwKLSAgICAgIC0x
LCAgIDI5MSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAyOTUsICAgICAzLCAgICAgNCwgICAgIDUs
ICAgICA2LAotICAgICAgIDcsICAgICA4LCAgICAgOSwgICAgMTAsICAgIDExLCAgICAxMiwgICAg
MTMsICAgIDE0LCAgICAxNSwgICAgLTEsCi0gICAgICAxNywgICAgMTgsICAgIDE5LCAgICAyMCwg
ICAgMjEsICAgIDIyLCAgICAyMywgICAgMjQsICAgIDI1LCAgICAyNiwKLSAgICAgIDI3LCAgICAy
OCwgICAgMjksICAgIDMwLCAgICAzMSwgICAgMzIsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIDM2
LAotICAgICAgMzcsICAgIDM4LCAgICAzOSwgICAgNDAsICAgIDQxLCAgICA0MiwgICAgNDMsICAg
IDQ0LCAgICA0NSwgICAgNDYsCi0gICAgICA0NywgICAgNDgsICAgIDQ5LCAgICAtMSwgICAgLTEs
ICAgIDUyLCAgICA1MywgICAgLTEsICAgIC0xLCAgICAtMSwKLSAgICAgIC0xLCAgICAtMSwgICAg
LTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLAotICAg
ICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIDcxLCAgICAtMSwgICAgLTEsICAgIC0xLCAg
ICA3NSwgICAgNzYsCi0gICAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgODEsICAgIDgy
LCAgICA4MywgICAgLTEsICAgIDg1LCAgICAgMywKLSAgICAgICA0LCAgICAgNSwgICAgIDYsICAg
ICA3LCAgICAgOCwgICAgIDksICAgIDEwLCAgICAxMSwgICAgMTIsICAgIDEzLAotICAgICAgMTQs
ICAgIDE1LCAgICAtMSwgICAgMTcsICAgIDE4LCAgICAxOSwgICAgMjAsICAgIDIxLCAgICAyMiwg
ICAgMjMsCi0gICAgICAyNCwgICAgMjUsICAgIDI2LCAgICAyNywgICAgMjgsICAgIDI5LCAgICAz
MCwgICAgMzEsICAgIDMyLCAgICAtMSwKLSAgICAgIC0xLCAgICAtMSwgICAgMzYsICAgIDM3LCAg
ICAzOCwgICAgMzksICAgIDQwLCAgICA0MSwgICAgNDIsICAgIDQzLAotICAgICAgNDQsICAgIDQ1
LCAgICA0NiwgICAgNDcsICAgIDQ4LCAgICA0OSwgICAgLTEsICAgIC0xLCAgICA1MiwgICAgNTMs
Ci0gICAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAg
LTEsICAgIC0xLCAgICAtMSwKLSAgICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwg
ICAgLTEsICAgIC0xLCAgICA3MSwgICAgLTEsICAgIC0xLAotICAgICAgLTEsICAgIDc1LCAgICA3
NiwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIDgxLCAgICA4MiwgICAgODMsCi0gICAg
ICAtMSwgICAgODUsICAgICAzLCAgICAgNCwgICAgIDUsICAgICA2LCAgICAgNywgICAgIDgsICAg
ICA5LCAgICAxMCwKLSAgICAgIDExLCAgICAxMiwgICAgMTMsICAgIDE0LCAgICAxNSwgICAgLTEs
ICAgIDE3LCAgICAxOCwgICAgMTksICAgIDIwLAotICAgICAgMjEsICAgIDIyLCAgICAyMywgICAg
MjQsICAgIDI1LCAgICAyNiwgICAgMjcsICAgIDI4LCAgICAyOSwgICAgMzAsCi0gICAgICAzMSwg
ICAgMzIsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIDM2LCAgICAzNywgICAgMzgsICAgIDM5LCAg
ICA0MCwKLSAgICAgIDQxLCAgICA0MiwgICAgNDMsICAgIDQ0LCAgICA0NSwgICAgNDYsICAgIDQ3
LCAgICA0OCwgICAgNDksICAgIC0xLAotICAgICAgLTEsICAgIDUyLCAgICA1MywgICAgLTEsICAg
IC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsCi0gICAgICAtMSwgICAgLTEs
ICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwK
LSAgICAgIDcxLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICA3NSwgICAgLTEsICAgIC0xLCAgICAt
MSwgICAgLTEsICAgIC0xLAotICAgICAgODEsICAgIDgyLCAgICA4MywgICAgLTEsICAgIDg1LCAg
ICAgMywgICAgIDQsICAgICA1LCAgICAgNiwgICAgIDcsCi0gICAgICAgOCwgICAgIDksICAgIDEw
LCAgICAxMSwgICAgMTIsICAgIDEzLCAgICAxNCwgICAgMTUsICAgIC0xLCAgICAxNywKLSAgICAg
IDE4LCAgICAxOSwgICAgMjAsICAgIDIxLCAgICAyMiwgICAgMjMsICAgIDI0LCAgICAyNSwgICAg
MjYsICAgIDI3LAotICAgICAgMjgsICAgIDI5LCAgICAzMCwgICAgMzEsICAgIDMyLCAgICAtMSwg
ICAgLTEsICAgIC0xLCAgICAzNiwgICAgMzcsCi0gICAgICAzOCwgICAgMzksICAgIDQwLCAgICA0
MSwgICAgNDIsICAgIDQzLCAgICA0NCwgICAgNDUsICAgIDQ2LCAgICA0NywKLSAgICAgIDQ4LCAg
ICA0OSwgICAgLTEsICAgIC0xLCAgICA1MiwgICAgNTMsICAgIC0xLCAgICAtMSwgICAgLTEsICAg
IC0xLAotICAgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEs
ICAgIC0xLCAgICAtMSwgICAgLTEsCi0gICAgICAtMSwgICAgLTEsICAgIC0xLCAgICA3MSwgICAg
LTEsICAgIC0xLCAgICAtMSwgICAgNzUsICAgIC0xLCAgICAtMSwKLSAgICAgIC0xLCAgICAtMSwg
ICAgLTEsICAgIDgxLCAgICA4MiwgICAgODMsICAgIC0xLCAgICA4NSwgICAgIDMsICAgICA0LAot
ICAgICAgIDUsICAgICA2LCAgICAgNywgICAgIDgsICAgICA5LCAgICAxMCwgICAgMTEsICAgIDEy
LCAgICAxMywgICAgMTQsCi0gICAgICAxNSwgICAgLTEsICAgIDE3LCAgICAxOCwgICAgMTksICAg
IDIwLCAgICAyMSwgICAgMjIsICAgIDIzLCAgICAyNCwKLSAgICAgIDI1LCAgICAyNiwgICAgMjcs
ICAgIDI4LCAgICAyOSwgICAgMzAsICAgIDMxLCAgICAzMiwgICAgLTEsICAgIC0xLAotICAgICAg
LTEsICAgIDM2LCAgICAzNywgICAgMzgsICAgIDM5LCAgICA0MCwgICAgNDEsICAgIDQyLCAgICA0
MywgICAgNDQsCi0gICAgICA0NSwgICAgNDYsICAgIDQ3LCAgICA0OCwgICAgNDksICAgIC0xLCAg
ICAtMSwgICAgNTIsICAgIDUzLCAgICAtMSwKLSAgICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0x
LCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLAotICAgICAgLTEsICAg
IC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgNzEsICAgIC0xLCAgICAtMSwgICAg
LTEsCi0gICAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICA4MSwg
ICAgODIsICAgIDgzLCAgICAtMSwKLSAgICAgIDg1LCAgICAgMywgICAgIDQsICAgICA1LCAgICAg
NiwgICAgIDcsICAgICA4LCAgICAgOSwgICAgMTAsICAgIDExLAotICAgICAgMTIsICAgIC0xLCAg
ICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgMjEsCi0g
ICAgICAyMiwgICAgMjMsICAgIDI0LCAgICAyNSwgICAgMjYsICAgIDI3LCAgICAyOCwgICAgMjks
ICAgIDMwLCAgICAzMSwKLSAgICAgIDMyLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAzNiwgICAg
MzcsICAgIDM4LCAgICAzOSwgICAgLTEsICAgIDQxLAotICAgICAgNDIsICAgIDQzLCAgICA0NCwg
ICAgNDUsICAgIDQ2LCAgICA0NywgICAgNDgsICAgIDQ5LCAgICAtMSwgICAgLTEsCi0gICAgICA1
MiwgICAgNTMsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0x
LCAgICAtMSwKLSAgICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAg
IC0xLCAgICAtMSwgICAgLTEsICAgIDcxLAotICAgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEs
ICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgODEsCi0gICAgICA4MiwgICAg
ODMsICAgIC0xLCAgICA4NSwgICAgIDMsICAgICA0LCAgICAgNSwgICAgIDYsICAgIC0xLCAgICAg
OCwKLSAgICAgICA5LCAgICAxMCwgICAgMTEsICAgIDEyLCAgICAtMSwgICAgLTEsICAgIC0xLCAg
ICAtMSwgICAgLTEsICAgIC0xLAotICAgICAgLTEsICAgIC0xLCAgICAyMSwgICAgMjIsICAgIDIz
LCAgICAyNCwgICAgMjUsICAgIDI2LCAgICAyNywgICAgMjgsCi0gICAgICAyOSwgICAgMzAsICAg
IDMxLCAgICAzMiwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgMzYsICAgIDM3LCAgICAzOCwKLSAg
ICAgIDM5LCAgICAtMSwgICAgNDEsICAgIDQyLCAgICA0MywgICAgNDQsICAgIDQ1LCAgICA0Niwg
ICAgNDcsICAgIDQ4LAotICAgICAgNDksICAgIC0xLCAgICAtMSwgICAgNTIsICAgIDUzLCAgICAt
MSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsCi0gICAgICAtMSwgICAgLTEsICAgIC0xLCAg
ICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwKLSAgICAgIC0x
LCAgICAtMSwgICAgNzEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIDEwLCAgICAxMSwgICAgMTIs
ICAgIC0xLAotICAgICAgLTEsICAgIC0xLCAgICAtMSwgICAgODIsICAgIDgzLCAgICAtMSwgICAg
ODUsICAgIDIxLCAgICAyMiwgICAgMjMsCi0gICAgICAyNCwgICAgMjUsICAgIDI2LCAgICAyNywg
ICAgMjgsICAgIDI5LCAgICAzMCwgICAgMzEsICAgIDMyLCAgICAtMSwKLSAgICAgIC0xLCAgICAt
MSwgICAgLTEsICAgIC0xLCAgICAzOCwgICAgMzksICAgIC0xLCAgICA0MSwgICAgNDIsICAgIDQz
LAotICAgICAgNDQsICAgIDQ1LCAgICA0NiwgICAgNDcsICAgIDQ4LCAgICA0OSwgICAgLTEsICAg
IC0xLCAgICA1MiwgICAgNTMsCi0gICAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEs
ICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwKLSAgICAgIC0xLCAgICAtMSwgICAg
LTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICA3MSwgICAgLTEsICAgIC0xLAotICAg
ICAgNzQsICAgIDEwLCAgICAxMSwgICAgMTIsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAg
ICA4MiwgICAgODMsCi0gICAgICAtMSwgICAgODUsICAgIDIxLCAgICAyMiwgICAgMjMsICAgIDI0
LCAgICAyNSwgICAgMjYsICAgIDI3LCAgICAyOCwKLSAgICAgIDI5LCAgICAzMCwgICAgMzEsICAg
IDMyLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIDM4LAotICAgICAgMzks
ICAgIC0xLCAgICA0MSwgICAgNDIsICAgIDQzLCAgICA0NCwgICAgNDUsICAgIDQ2LCAgICA0Nywg
ICAgNDgsCi0gICAgICA0OSwgICAgLTEsICAgIC0xLCAgICA1MiwgICAgNTMsICAgIC0xLCAgICAt
MSwgICAgLTEsICAgIC0xLCAgICAtMSwKLSAgICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAg
ICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLAotICAgICAgLTEsICAgIC0x
LCAgICA3MSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgMTAsICAgIDExLCAgICAxMiwgICAgLTEs
Ci0gICAgICAtMSwgICAgLTEsICAgIDgxLCAgICA4MiwgICAgODMsICAgIC0xLCAgICA4NSwgICAg
MjEsICAgIDIyLCAgICAyMywKLSAgICAgIDI0LCAgICAyNSwgICAgMjYsICAgIDI3LCAgICAyOCwg
ICAgMjksICAgIDMwLCAgICAzMSwgICAgMzIsICAgIC0xLAotICAgICAgLTEsICAgIC0xLCAgICAt
MSwgICAgLTEsICAgIDM4LCAgICAzOSwgICAgLTEsICAgIDQxLCAgICA0MiwgICAgNDMsCi0gICAg
ICA0NCwgICAgNDUsICAgIDQ2LCAgICA0NywgICAgNDgsICAgIDQ5LCAgICAtMSwgICAgLTEsICAg
IDUyLCAgICA1MywKLSAgICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEs
ICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLAotICAgICAgLTEsICAgIC0xLCAgICAtMSwgICAg
LTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIDcxLCAgICAtMSwgICAgLTEsCi0gICAgICA3NCwg
ICAgMTAsICAgIDExLCAgICAxMiwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIDgyLCAg
ICA4MywKLSAgICAgIC0xLCAgICA4NSwgICAgMjEsICAgIDIyLCAgICAyMywgICAgMjQsICAgIDI1
LCAgICAyNiwgICAgMjcsICAgIDI4LAotICAgICAgMjksICAgIDMwLCAgICAzMSwgICAgMzIsICAg
IC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgMzgsCi0gICAgICAzOSwgICAgLTEs
ICAgIDQxLCAgICA0MiwgICAgNDMsICAgIDQ0LCAgICA0NSwgICAgNDYsICAgIDQ3LCAgICA0OCwK
LSAgICAgIDQ5LCAgICAtMSwgICAgLTEsICAgIDUyLCAgICA1MywgICAgLTEsICAgIC0xLCAgICAt
MSwgICAgLTEsICAgIC0xLAotICAgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAg
ICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsCi0gICAgICAtMSwgICAgLTEsICAgIDcx
LCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAxMCwgICAgMTEsICAgIDEyLCAgICAtMSwKLSAgICAg
IC0xLCAgICAtMSwgICAgLTEsICAgIDgyLCAgICA4MywgICAgLTEsICAgIDg1LCAgICAyMSwgICAg
MjIsICAgIDIzLAotICAgICAgMjQsICAgIDI1LCAgICAyNiwgICAgMjcsICAgIDI4LCAgICAyOSwg
ICAgMzAsICAgIDMxLCAgICAzMiwgICAgLTEsCi0gICAgICAtMSwgICAgLTEsICAgIC0xLCAgICAt
MSwgICAgMzgsICAgIDM5LCAgICAtMSwgICAgNDEsICAgIDQyLCAgICA0MywKLSAgICAgIDQ0LCAg
ICA0NSwgICAgNDYsICAgIDQ3LCAgICA0OCwgICAgNDksICAgIC0xLCAgICAtMSwgICAgNTIsICAg
IDUzLAotICAgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEs
ICAgIC0xLCAgICAtMSwgICAgLTEsCi0gICAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAg
LTEsICAgIC0xLCAgICAtMSwgICAgNzEsICAgICA0LCAgICAgNSwKLSAgICAgICA2LCAgICAtMSwg
ICAgLTEsICAgIC0xLCAgICAxMCwgICAgMTEsICAgIDEyLCAgICAtMSwgICAgODIsICAgIDgzLAot
ICAgICAgLTEsICAgIDg1LCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAyMSwgICAgMjIsICAgIDIz
LCAgICAyNCwgICAgMjUsCi0gICAgICAyNiwgICAgMjcsICAgIDI4LCAgICAyOSwgICAgMzAsICAg
IDMxLCAgICAzMiwgICAgLTEsICAgIC0xLCAgICAtMSwKLSAgICAgIC0xLCAgICAtMSwgICAgMzgs
ICAgIDM5LCAgICAtMSwgICAgNDEsICAgIDQyLCAgICA0MywgICAgNDQsICAgIC0xLAotICAgICAg
NDYsICAgICA0LCAgICAgNSwgICAgIDYsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIDEwLCAgICAx
MSwgICAgMTIsCi0gICAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAg
ICAtMSwgICAgLTEsICAgIDIxLCAgICAyMiwKLSAgICAgIDIzLCAgICAyNCwgICAgMjUsICAgIDI2
LCAgICAyNywgICAgMjgsICAgIDI5LCAgICAzMCwgICAgMzEsICAgIDMyLAotICAgICAgNzYsICAg
IC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAzOCwgICAgMzksICAgIC0xLCAgICA0MSwgICAg
NDIsCi0gICAgICA0MywgICAgNDQsICAgIC0xLCAgICA0NiwgICAgLTEsICAgIC0xLCAgICAtMSwg
ICAgLTEsICAgIC0xLCAgICAtMSwKLSAgICAgIC0xLCAgICAtMSwgICAgLTEsICAgICAwLCAgICAt
MSwgICAgLTEsICAgICAzLCAgICAgNCwgICAgIDUsICAgICA2LAotICAgICAgIDcsICAgICA4LCAg
ICAgOSwgICAgMTAsICAgIDExLCAgICAxMiwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsCi0g
ICAgICAtMSwgICAgLTEsICAgIC0xLCAgICA3NiwgICAgMjEsICAgIDIyLCAgICAyMywgICAgMjQs
ICAgIDI1LCAgICAyNiwKLSAgICAgIDI3LCAgICAyOCwgICAgMjksICAgIDMwLCAgICAzMSwgICAg
MzIsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIDM2LAotICAgICAgMzcsICAgIDM4LCAgICAzOSwg
ICAgLTEsICAgIDQxLCAgICA0MiwgICAgNDMsICAgIDQ0LCAgICAtMSwgICAgNDYsCi0gICAgICAg
MywgICAgIDQsICAgICA1LCAgICAgNiwgICAgIDcsICAgICA4LCAgICAgOSwgICAgMTAsICAgIDEx
LCAgICAxMiwKLSAgICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAg
IC0xLCAgICAtMSwgICAgMjEsICAgIDIyLAotICAgICAgMjMsICAgIDI0LCAgICAyNSwgICAgMjYs
ICAgIDI3LCAgICAyOCwgICAgMjksICAgIDMwLCAgICAzMSwgICAgMzIsCi0gICAgICAtMSwgICAg
LTEsICAgIC0xLCAgICAzNiwgICAgMzcsICAgIDM4LCAgICAzOSwgICAgLTEsICAgIDQxLCAgICA0
MiwKLSAgICAgIDQzLCAgICA0NCwgICAgLTEsICAgIDQ2LCAgICAgNCwgICAgIDUsICAgICA2LCAg
ICAtMSwgICAgLTEsICAgIC0xLAotICAgICAgMTAsICAgIDExLCAgICAxMiwgICAgLTEsICAgIC0x
LCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsCi0gICAgICAtMSwgICAgMjEsICAg
IDIyLCAgICAyMywgICAgMjQsICAgIDI1LCAgICAyNiwgICAgMjcsICAgIDI4LCAgICAyOSwKLSAg
ICAgIDMwLCAgICAzMSwgICAgMzIsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwg
ICAgMzgsICAgIDM5LAotICAgICAgLTEsICAgIDQxLCAgICA0MiwgICAgNDMsICAgIDQ0LCAgICAt
MSwgICAgNDYsICAgIDEwLCAgICAxMSwgICAgMTIsCi0gICAgICAtMSwgICAgLTEsICAgIC0xLCAg
ICAtMSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIDIxLCAgICAyMiwKLSAgICAgIDIz
LCAgICAyNCwgICAgMjUsICAgIDI2LCAgICAyNywgICAgMjgsICAgIDI5LCAgICAzMCwgICAgMzEs
ICAgIDMyLAotICAgICAgLTEsICAgIC0xLCAgICAtMSwgICAgLTEsICAgIC0xLCAgICAzOCwgICAg
MzksICAgIC0xLCAgICA0MSwgICAgNDIsCi0gICAgICA0MywgICAgNDQsICAgIDQ1LCAgICA0Niwg
ICAgMTAsICAgIDExLCAgICAxMiwgICAgLTEsICAgIC0xLCAgICAtMSwKLSAgICAgIC0xLCAgICAt
MSwgICAgLTEsICAgIC0xLCAgICAtMSwgICAgMjEsICAgIDIyLCAgICAyMywgICAgMjQsICAgIDI1
LAotICAgICAgMjYsICAgIDI3LCAgICAyOCwgICAgMjksICAgIDMwLCAgICAzMSwgICAgMzIsICAg
IC0xLCAgICAtMSwgICAgLTEsCi0gICAgICAtMSwgICAgLTEsICAgIDM4LCAgICAzOSwgICAgLTEs
ICAgIDQxLCAgICA0MiwgICAgNDMsICAgIDQ0LCAgICAtMSwKLSAgICAgIDQ2Ci19OwotCi0vKiBZ
WVNUT1NbU1RBVEUtTlVNXSAtLSBUaGUgKGludGVybmFsIG51bWJlciBvZiB0aGUpIGFjY2Vzc2lu
ZwotICAgc3ltYm9sIG9mIHN0YXRlIFNUQVRFLU5VTS4gICovCi1zdGF0aWMgY29uc3QgeXl0eXBl
X3VpbnQ4IHl5c3Rvc1tdID0KLXsKLSAgICAgICAwLCAgICAgMywgICAgIDQsICAgICA1LCAgICAg
NiwgICAgIDcsICAgICA4LCAgICAgOSwgICAgMTAsICAgIDExLAotICAgICAgMTIsICAgIDIxLCAg
ICAyMiwgICAgMjMsICAgIDI0LCAgICAyNSwgICAgMjYsICAgIDI3LCAgICAyOCwgICAgMjksCi0g
ICAgICAzMCwgICAgMzEsICAgIDMyLCAgICAzNiwgICAgMzcsICAgIDM4LCAgICAzOSwgICAgNDEs
ICAgIDQyLCAgICA0MywKLSAgICAgIDQ0LCAgICA0NiwgICAxMjYsICAgMTI3LCAgIDEyOCwgICAx
MjksICAgMTMwLCAgIDEzNSwgICAxMzYsICAgMTM3LAotICAgICAxMzgsICAgMTM5LCAgIDE0MCwg
ICAxNDEsICAgMTQyLCAgIDE0MywgICAxNzUsICAgMTc2LCAgIDE3NywgICAgMzcsCi0gICAgICA0
NSwgICAxNDAsICAgIDQ1LCAgICA0NiwgICAgNzUsICAgIDk2LCAgICA4MSwgICAxNzgsICAgIDcy
LCAgICA3OCwKLSAgICAgICAzLCAgICAzMywgICAgMzQsICAgIDM1LCAgIDEzMiwgICAxMzMsICAg
MTM4LCAgICA3OCwgICAgODEsICAgIDQ1LAotICAgICAgOTYsICAgMTM5LCAgIDE0MSwgICAgNzMs
ICAgICAwLCAgIDE3NiwgICAxNDEsICAgMTQ1LCAgICA3NSwgICAgNzUsCi0gICAgIDE2MSwgICAx
MzIsICAgMTMxLCAgIDEzNCwgICAxMzksICAgMTMzLCAgICA5NiwgICAgNzEsICAgIDczLCAgICA4
MCwKLSAgICAgIDQ1LCAgICA0NywgICAgNDgsICAgIDQ5LCAgICA1MiwgICAgNTMsICAgIDcxLCAg
ICA4MiwgICAgODMsICAgIDg1LAotICAgICAgOTcsICAgIDk4LCAgICA5OSwgICAxMDEsICAgMTAy
LCAgIDEwMywgICAxMDQsICAgMTA1LCAgIDEwNiwgICAxMDcsCi0gICAgIDEwOCwgICAxMDksICAg
MTEwLCAgIDExMSwgICAxMTIsICAgMTEzLCAgIDExNCwgICAxMTUsICAgMTE2LCAgIDExNywKLSAg
ICAgMTE4LCAgIDExOSwgICAxMjAsICAgMTIxLCAgIDEyNSwgICAxNDIsICAgIDgxLCAgIDEzOSwg
ICAxNDYsICAgMTQ3LAotICAgICAxNDQsICAgIDEzLCAgICAxNCwgICAgMTUsICAgIDE3LCAgICAx
OCwgICAgMTksICAgIDIwLCAgICA0MCwgICAgNzUsCi0gICAgICA3NiwgICAgODEsICAgMTA4LCAg
IDEyMSwgICAxMjIsICAgMTI0LCAgIDEyNiwgICAxMjcsICAgMTQyLCAgIDE1MSwKLSAgICAgMTUy
LCAgIDE1MywgICAxNTQsICAgMTYyLCAgIDE2MywgICAxNjQsICAgMTY3LCAgIDE3NCwgICAgOTYs
ICAgMTMxLAotICAgICAxMzQsICAgIDczLCAgICA4MCwgICAgNzQsICAgMTI1LCAgIDEyMiwgICAx
NTAsICAgMTA4LCAgIDEwOCwgICAxMjQsCi0gICAgICA1MiwgICAgNTMsICAgIDczLCAgICA3Nywg
ICAgNzIsICAgIDcyLCAgICA3OCwgICAgMzksICAgMTIyLCAgICA3MSwKLSAgICAgMTA4LCAgICA4
NiwgICAgODcsICAgIDgzLCAgICA4NSwgICAgNTQsICAgIDU1LCAgICA4OSwgICAgOTAsICAgIDU2
LAotICAgICAgNTcsICAgIDU4LCAgICA2MCwgICAgNTksICAgIDk0LCAgICA3NCwgICAgOTYsICAg
MTQ4LCAgIDE0OSwgICAgNzYsCi0gICAgIDE0NywgICAxNDYsICAgIDgxLCAgICA4MSwgICAxNjks
ICAgIDcxLCAgICA3MSwgICAgODEsICAgIDgxLCAgIDEyNCwKLSAgICAgIDcxLCAgICA3NiwgICAx
NTUsICAgIDYxLCAgICA2MiwgICAgNjMsICAgIDcwLCAgICA4MCwgICAxMjMsICAgIDc4LAotICAg
ICAgODEsICAgIDc2LCAgIDE1MiwgICAgNzMsICAgIDc0LCAgIDEyNSwgICAxNTAsICAgIDc0LCAg
ICA3MiwgICAxMDAsCi0gICAgIDEyNCwgICAgNDUsICAgIDQ2LCAgICA5NiwgICAxMDMsICAgMTIy
LCAgIDEwOCwgICAxMDgsICAgMTEwLCAgIDExMCwKLSAgICAgMTEyLCAgIDExMiwgICAxMTIsICAg
MTEyLCAgIDExMywgICAxMTMsICAgMTE3LCAgIDExOCwgICAxMTksICAgMTI0LAotICAgICAgNzMs
ICAgIDc4LCAgICA4MSwgICAgNzYsICAgMTU4LCAgIDE1OSwgICAxNjAsICAgMTcwLCAgIDEyNCwg
ICAgODEsCi0gICAgIDE2OCwgICAxNjIsICAgMTIyLCAgIDEyMiwgICAxMjUsICAgIDc0LCAgICA3
NCwgICAgNzksICAgMTI1LCAgIDE0OSwKLSAgICAgIDQwLCAgIDE2MSwgICAxNTMsICAgMTUxLCAg
IDE2MywgICAxNzEsICAgIDcyLCAgIDEyNCwgICAxMzcsICAgMTY2LAotICAgICAxNTYsICAgIDc0
LCAgIDEyMiwgICAgNzQsICAgIDcxLCAgIDE2NiwgICAxNzIsICAgMTczLCAgIDE1OCwgICAxNjUs
Ci0gICAgICA5NiwgICAgNzIsICAgIDc2LCAgIDEyNCwgICAgODEsICAgIDcyLCAgICAxNiwgICAg
ODAsICAgMTUzLCAgIDE1NywKLSAgICAgMTYxLCAgICA3MiwgICAxMjQsICAgMTU3LCAgIDE1OCwg
ICAxNTAsICAgIDgxCi19OwotCi0jZGVmaW5lIHl5ZXJyb2sJCSh5eWVycnN0YXR1cyA9IDApCi0j
ZGVmaW5lIHl5Y2xlYXJpbgkoeXljaGFyID0gWVlFTVBUWSkKLSNkZWZpbmUgWVlFTVBUWQkJKC0y
KQotI2RlZmluZSBZWUVPRgkJMAotCi0jZGVmaW5lIFlZQUNDRVBUCWdvdG8geXlhY2NlcHRsYWIK
LSNkZWZpbmUgWVlBQk9SVAkJZ290byB5eWFib3J0bGFiCi0jZGVmaW5lIFlZRVJST1IJCWdvdG8g
eXllcnJvcmxhYgotCi0KLS8qIExpa2UgWVlFUlJPUiBleGNlcHQgZG8gY2FsbCB5eWVycm9yLiAg
VGhpcyByZW1haW5zIGhlcmUgdGVtcG9yYXJpbHkKLSAgIHRvIGVhc2UgdGhlIHRyYW5zaXRpb24g
dG8gdGhlIG5ldyBtZWFuaW5nIG9mIFlZRVJST1IsIGZvciBHQ0MuCi0gICBPbmNlIEdDQyB2ZXJz
aW9uIDIgaGFzIHN1cHBsYW50ZWQgdmVyc2lvbiAxLCB0aGlzIGNhbiBnby4gICovCi0KLSNkZWZp
bmUgWVlGQUlMCQlnb3RvIHl5ZXJybGFiCi0KLSNkZWZpbmUgWVlSRUNPVkVSSU5HKCkgICghIXl5
ZXJyc3RhdHVzKQotCi0jZGVmaW5lIFlZQkFDS1VQKFRva2VuLCBWYWx1ZSkJCQkJCVwKLWRvCQkJ
CQkJCQlcCi0gIGlmICh5eWNoYXIgPT0gWVlFTVBUWSAmJiB5eWxlbiA9PSAxKQkJCQlcCi0gICAg
ewkJCQkJCQkJXAotICAgICAgeXljaGFyID0gKFRva2VuKTsJCQkJCQlcCi0gICAgICB5eWx2YWwg
PSAoVmFsdWUpOwkJCQkJCVwKLSAgICAgIHl5dG9rZW4gPSBZWVRSQU5TTEFURSAoeXljaGFyKTsJ
CQkJXAotICAgICAgWVlQT1BTVEFDSyAoMSk7CQkJCQkJXAotICAgICAgZ290byB5eWJhY2t1cDsJ
CQkJCQlcCi0gICAgfQkJCQkJCQkJXAotICBlbHNlCQkJCQkJCQlcCi0gICAgewkJCQkJCQkJXAot
ICAgICAgeXllcnJvciAoJnl5bGxvYywgY29udGV4dCwgWVlfKCJzeW50YXggZXJyb3I6IGNhbm5v
dCBiYWNrIHVwIikpOyBcCi0gICAgICBZWUVSUk9SOwkJCQkJCQlcCi0gICAgfQkJCQkJCQkJXAot
d2hpbGUgKFlZSUQgKDApKQotCi0KLSNkZWZpbmUgWVlURVJST1IJMQotI2RlZmluZSBZWUVSUkNP
REUJMjU2Ci0KLQotLyogWVlMTE9DX0RFRkFVTFQgLS0gU2V0IENVUlJFTlQgdG8gc3BhbiBmcm9t
IFJIU1sxXSB0byBSSFNbTl0uCi0gICBJZiBOIGlzIDAsIHRoZW4gc2V0IENVUlJFTlQgdG8gdGhl
IGVtcHR5IGxvY2F0aW9uIHdoaWNoIGVuZHMKLSAgIHRoZSBwcmV2aW91cyBzeW1ib2w6IFJIU1sw
XSAoYWx3YXlzIGRlZmluZWQpLiAgKi8KLQotI2RlZmluZSBZWVJIU0xPQyhSaHMsIEspICgoUmhz
KVtLXSkKLSNpZm5kZWYgWVlMTE9DX0RFRkFVTFQKLSMgZGVmaW5lIFlZTExPQ19ERUZBVUxUKEN1
cnJlbnQsIFJocywgTikJCQkJXAotICAgIGRvCQkJCQkJCQkJXAotICAgICAgaWYgKFlZSUQgKE4p
KSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCi0J
ewkJCQkJCQkJXAotCSAgKEN1cnJlbnQpLmZpcnN0X2xpbmUgICA9IFlZUkhTTE9DIChSaHMsIDEp
LmZpcnN0X2xpbmU7CVwKLQkgIChDdXJyZW50KS5maXJzdF9jb2x1bW4gPSBZWVJIU0xPQyAoUmhz
LCAxKS5maXJzdF9jb2x1bW47CVwKLQkgIChDdXJyZW50KS5sYXN0X2xpbmUgICAgPSBZWVJIU0xP
QyAoUmhzLCBOKS5sYXN0X2xpbmU7CQlcCi0JICAoQ3VycmVudCkubGFzdF9jb2x1bW4gID0gWVlS
SFNMT0MgKFJocywgTikubGFzdF9jb2x1bW47CVwKLQl9CQkJCQkJCQlcCi0gICAgICBlbHNlCQkJ
CQkJCQlcCi0JewkJCQkJCQkJXAotCSAgKEN1cnJlbnQpLmZpcnN0X2xpbmUgICA9IChDdXJyZW50
KS5sYXN0X2xpbmUgICA9CQlcCi0JICAgIFlZUkhTTE9DIChSaHMsIDApLmxhc3RfbGluZTsJCQkJ
XAotCSAgKEN1cnJlbnQpLmZpcnN0X2NvbHVtbiA9IChDdXJyZW50KS5sYXN0X2NvbHVtbiA9CQlc
Ci0JICAgIFlZUkhTTE9DIChSaHMsIDApLmxhc3RfY29sdW1uOwkJCQlcCi0JfQkJCQkJCQkJXAot
ICAgIHdoaWxlIChZWUlEICgwKSkKLSNlbmRpZgotCi0KLS8qIFlZX0xPQ0FUSU9OX1BSSU5UIC0t
IFByaW50IHRoZSBsb2NhdGlvbiBvbiB0aGUgc3RyZWFtLgotICAgVGhpcyBtYWNybyB3YXMgbm90
IG1hbmRhdGVkIG9yaWdpbmFsbHk6IGRlZmluZSBvbmx5IGlmIHdlIGtub3cKLSAgIHdlIHdvbid0
IGJyZWFrIHVzZXIgY29kZTogd2hlbiB0aGVzZSBhcmUgdGhlIGxvY2F0aW9ucyB3ZSBrbm93LiAg
Ki8KLQotI2lmbmRlZiBZWV9MT0NBVElPTl9QUklOVAotIyBpZiBkZWZpbmVkIFlZTFRZUEVfSVNf
VFJJVklBTCAmJiBZWUxUWVBFX0lTX1RSSVZJQUwKLSMgIGRlZmluZSBZWV9MT0NBVElPTl9QUklO
VChGaWxlLCBMb2MpCQkJXAotICAgICBmcHJpbnRmIChGaWxlLCAiJWQuJWQtJWQuJWQiLAkJCVwK
LQkgICAgICAoTG9jKS5maXJzdF9saW5lLCAoTG9jKS5maXJzdF9jb2x1bW4sCVwKLQkgICAgICAo
TG9jKS5sYXN0X2xpbmUsICAoTG9jKS5sYXN0X2NvbHVtbikKLSMgZWxzZQotIyAgZGVmaW5lIFlZ
X0xPQ0FUSU9OX1BSSU5UKEZpbGUsIExvYykgKCh2b2lkKSAwKQotIyBlbmRpZgotI2VuZGlmCi0K
LQotLyogWVlMRVggLS0gY2FsbGluZyBgeXlsZXgnIHdpdGggdGhlIHJpZ2h0IGFyZ3VtZW50cy4g
ICovCi0KLSNpZmRlZiBZWUxFWF9QQVJBTQotIyBkZWZpbmUgWVlMRVggeXlsZXggKCZ5eWx2YWws
ICZ5eWxsb2MsIFlZTEVYX1BBUkFNKQotI2Vsc2UKLSMgZGVmaW5lIFlZTEVYIHl5bGV4ICgmeXls
dmFsLCAmeXlsbG9jKQotI2VuZGlmCi0KLS8qIEVuYWJsZSBkZWJ1Z2dpbmcgaWYgcmVxdWVzdGVk
LiAgKi8KLSNpZiBZWURFQlVHCi0KLSMgaWZuZGVmIFlZRlBSSU5URgotIyAgaW5jbHVkZSA8c3Rk
aW8uaD4gLyogSU5GUklOR0VTIE9OIFVTRVIgTkFNRSBTUEFDRSAqLwotIyAgZGVmaW5lIFlZRlBS
SU5URiBmcHJpbnRmCi0jIGVuZGlmCi0KLSMgZGVmaW5lIFlZRFBSSU5URihBcmdzKQkJCVwKLWRv
IHsJCQkJCQlcCi0gIGlmICh5eWRlYnVnKQkJCQkJXAotICAgIFlZRlBSSU5URiBBcmdzOwkJCQlc
Ci19IHdoaWxlIChZWUlEICgwKSkKLQotIyBkZWZpbmUgWVlfU1lNQk9MX1BSSU5UKFRpdGxlLCBU
eXBlLCBWYWx1ZSwgTG9jYXRpb24pCQkJICBcCi1kbyB7CQkJCQkJCQkJICBcCi0gIGlmICh5eWRl
YnVnKQkJCQkJCQkJICBcCi0gICAgewkJCQkJCQkJCSAgXAotICAgICAgWVlGUFJJTlRGIChzdGRl
cnIsICIlcyAiLCBUaXRsZSk7CQkJCQkgIFwKLSAgICAgIHl5X3N5bWJvbF9wcmludCAoc3RkZXJy
LAkJCQkJCSAgXAotCQkgIFR5cGUsIFZhbHVlLCBMb2NhdGlvbiwgY29udGV4dCk7IFwKLSAgICAg
IFlZRlBSSU5URiAoc3RkZXJyLCAiXG4iKTsJCQkJCQkgIFwKLSAgICB9CQkJCQkJCQkJICBcCi19
IHdoaWxlIChZWUlEICgwKSkKLQotCi0vKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LgotfCBQcmludCB0aGlzIHN5bWJvbCBvbiBZWU9VVFBVVC4gIHwKLWAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLSovCi0KLS8qQVJHU1VTRUQqLwotI2lmIChkZWZpbmVkIF9fU1REQ19f
IHx8IGRlZmluZWQgX19DOTlfX0ZVTkNfXyBcCi0gICAgIHx8IGRlZmluZWQgX19jcGx1c3BsdXMg
fHwgZGVmaW5lZCBfTVNDX1ZFUikKLXN0YXRpYyB2b2lkCi15eV9zeW1ib2xfdmFsdWVfcHJpbnQg
KEZJTEUgKnl5b3V0cHV0LCBpbnQgeXl0eXBlLCBZWVNUWVBFIGNvbnN0ICogY29uc3QgeXl2YWx1
ZXAsIFlZTFRZUEUgY29uc3QgKiBjb25zdCB5eWxvY2F0aW9ucCwgVFBhcnNlQ29udGV4dCogY29u
dGV4dCkKLSNlbHNlCi1zdGF0aWMgdm9pZAoteXlfc3ltYm9sX3ZhbHVlX3ByaW50ICh5eW91dHB1
dCwgeXl0eXBlLCB5eXZhbHVlcCwgeXlsb2NhdGlvbnAsIGNvbnRleHQpCi0gICAgRklMRSAqeXlv
dXRwdXQ7Ci0gICAgaW50IHl5dHlwZTsKLSAgICBZWVNUWVBFIGNvbnN0ICogY29uc3QgeXl2YWx1
ZXA7Ci0gICAgWVlMVFlQRSBjb25zdCAqIGNvbnN0IHl5bG9jYXRpb25wOwotICAgIFRQYXJzZUNv
bnRleHQqIGNvbnRleHQ7Ci0jZW5kaWYKLXsKLSAgaWYgKCF5eXZhbHVlcCkKLSAgICByZXR1cm47
Ci0gIFlZVVNFICh5eWxvY2F0aW9ucCk7Ci0gIFlZVVNFIChjb250ZXh0KTsKLSMgaWZkZWYgWVlQ
UklOVAotICBpZiAoeXl0eXBlIDwgWVlOVE9LRU5TKQotICAgIFlZUFJJTlQgKHl5b3V0cHV0LCB5
eXRva251bVt5eXR5cGVdLCAqeXl2YWx1ZXApOwotIyBlbHNlCi0gIFlZVVNFICh5eW91dHB1dCk7
Ci0jIGVuZGlmCi0gIHN3aXRjaCAoeXl0eXBlKQotICAgIHsKLSAgICAgIGRlZmF1bHQ6Ci0JYnJl
YWs7Ci0gICAgfQotfQotCi0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0uCi18
IFByaW50IHRoaXMgc3ltYm9sIG9uIFlZT1VUUFVULiAgfAotYC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tKi8KLQotI2lmIChkZWZpbmVkIF9fU1REQ19fIHx8IGRlZmluZWQgX19DOTlf
X0ZVTkNfXyBcCi0gICAgIHx8IGRlZmluZWQgX19jcGx1c3BsdXMgfHwgZGVmaW5lZCBfTVNDX1ZF
UikKLXN0YXRpYyB2b2lkCi15eV9zeW1ib2xfcHJpbnQgKEZJTEUgKnl5b3V0cHV0LCBpbnQgeXl0
eXBlLCBZWVNUWVBFIGNvbnN0ICogY29uc3QgeXl2YWx1ZXAsIFlZTFRZUEUgY29uc3QgKiBjb25z
dCB5eWxvY2F0aW9ucCwgVFBhcnNlQ29udGV4dCogY29udGV4dCkKLSNlbHNlCi1zdGF0aWMgdm9p
ZAoteXlfc3ltYm9sX3ByaW50ICh5eW91dHB1dCwgeXl0eXBlLCB5eXZhbHVlcCwgeXlsb2NhdGlv
bnAsIGNvbnRleHQpCi0gICAgRklMRSAqeXlvdXRwdXQ7Ci0gICAgaW50IHl5dHlwZTsKLSAgICBZ
WVNUWVBFIGNvbnN0ICogY29uc3QgeXl2YWx1ZXA7Ci0gICAgWVlMVFlQRSBjb25zdCAqIGNvbnN0
IHl5bG9jYXRpb25wOwotICAgIFRQYXJzZUNvbnRleHQqIGNvbnRleHQ7Ci0jZW5kaWYKLXsKLSAg
aWYgKHl5dHlwZSA8IFlZTlRPS0VOUykKLSAgICBZWUZQUklOVEYgKHl5b3V0cHV0LCAidG9rZW4g
JXMgKCIsIHl5dG5hbWVbeXl0eXBlXSk7Ci0gIGVsc2UKLSAgICBZWUZQUklOVEYgKHl5b3V0cHV0
LCAibnRlcm0gJXMgKCIsIHl5dG5hbWVbeXl0eXBlXSk7Ci0KLSAgWVlfTE9DQVRJT05fUFJJTlQg
KHl5b3V0cHV0LCAqeXlsb2NhdGlvbnApOwotICBZWUZQUklOVEYgKHl5b3V0cHV0LCAiOiAiKTsK
LSAgeXlfc3ltYm9sX3ZhbHVlX3ByaW50ICh5eW91dHB1dCwgeXl0eXBlLCB5eXZhbHVlcCwgeXls
b2NhdGlvbnAsIGNvbnRleHQpOwotICBZWUZQUklOVEYgKHl5b3V0cHV0LCAiKSIpOwotfQotCi0v
Ki0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS4KLXwgeXlfc3RhY2tfcHJpbnQgLS0gUHJpbnQgdGhlIHN0YXRlIHN0YWNrIGZy
b20gaXRzIEJPVFRPTSB1cCB0byBpdHMgfAotfCBUT1AgKGluY2x1ZGVkKS4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8Ci1gLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLQot
I2lmIChkZWZpbmVkIF9fU1REQ19fIHx8IGRlZmluZWQgX19DOTlfX0ZVTkNfXyBcCi0gICAgIHx8
IGRlZmluZWQgX19jcGx1c3BsdXMgfHwgZGVmaW5lZCBfTVNDX1ZFUikKLXN0YXRpYyB2b2lkCi15
eV9zdGFja19wcmludCAoeXl0eXBlX2ludDE2ICpib3R0b20sIHl5dHlwZV9pbnQxNiAqdG9wKQot
I2Vsc2UKLXN0YXRpYyB2b2lkCi15eV9zdGFja19wcmludCAoYm90dG9tLCB0b3ApCi0gICAgeXl0
eXBlX2ludDE2ICpib3R0b207Ci0gICAgeXl0eXBlX2ludDE2ICp0b3A7Ci0jZW5kaWYKLXsKLSAg
WVlGUFJJTlRGIChzdGRlcnIsICJTdGFjayBub3ciKTsKLSAgZm9yICg7IGJvdHRvbSA8PSB0b3A7
ICsrYm90dG9tKQotICAgIFlZRlBSSU5URiAoc3RkZXJyLCAiICVkIiwgKmJvdHRvbSk7Ci0gIFlZ
RlBSSU5URiAoc3RkZXJyLCAiXG4iKTsKLX0KLQotIyBkZWZpbmUgWVlfU1RBQ0tfUFJJTlQoQm90
dG9tLCBUb3ApCQkJCVwKLWRvIHsJCQkJCQkJCVwKLSAgaWYgKHl5ZGVidWcpCQkJCQkJCVwKLSAg
ICB5eV9zdGFja19wcmludCAoKEJvdHRvbSksIChUb3ApKTsJCQkJXAotfSB3aGlsZSAoWVlJRCAo
MCkpCi0KLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0uCi18IFJlcG9ydCB0aGF0IHRoZSBZWVJVTEUgaXMgZ29pbmcgdG8gYmUgcmVkdWNlZC4gIHwK
LWAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwotCi0j
aWYgKGRlZmluZWQgX19TVERDX18gfHwgZGVmaW5lZCBfX0M5OV9fRlVOQ19fIFwKLSAgICAgfHwg
ZGVmaW5lZCBfX2NwbHVzcGx1cyB8fCBkZWZpbmVkIF9NU0NfVkVSKQotc3RhdGljIHZvaWQKLXl5
X3JlZHVjZV9wcmludCAoWVlTVFlQRSAqeXl2c3AsIFlZTFRZUEUgKnl5bHNwLCBpbnQgeXlydWxl
LCBUUGFyc2VDb250ZXh0KiBjb250ZXh0KQotI2Vsc2UKLXN0YXRpYyB2b2lkCi15eV9yZWR1Y2Vf
cHJpbnQgKHl5dnNwLCB5eWxzcCwgeXlydWxlLCBjb250ZXh0KQotICAgIFlZU1RZUEUgKnl5dnNw
OwotICAgIFlZTFRZUEUgKnl5bHNwOwotICAgIGludCB5eXJ1bGU7Ci0gICAgVFBhcnNlQ29udGV4
dCogY29udGV4dDsKLSNlbmRpZgotewotICBpbnQgeXlucmhzID0geXlyMlt5eXJ1bGVdOwotICBp
bnQgeXlpOwotICB1bnNpZ25lZCBsb25nIGludCB5eWxubyA9IHl5cmxpbmVbeXlydWxlXTsKLSAg
WVlGUFJJTlRGIChzdGRlcnIsICJSZWR1Y2luZyBzdGFjayBieSBydWxlICVkIChsaW5lICVsdSk6
XG4iLAotCSAgICAgeXlydWxlIC0gMSwgeXlsbm8pOwotICAvKiBUaGUgc3ltYm9scyBiZWluZyBy
ZWR1Y2VkLiAgKi8KLSAgZm9yICh5eWkgPSAwOyB5eWkgPCB5eW5yaHM7IHl5aSsrKQotICAgIHsK
LSAgICAgIGZwcmludGYgKHN0ZGVyciwgIiAgICQlZCA9ICIsIHl5aSArIDEpOwotICAgICAgeXlf
c3ltYm9sX3ByaW50IChzdGRlcnIsIHl5cmhzW3l5cHJoc1t5eXJ1bGVdICsgeXlpXSwKLQkJICAg
ICAgICYoeXl2c3BbKHl5aSArIDEpIC0gKHl5bnJocyldKQotCQkgICAgICAgLCAmKHl5bHNwWyh5
eWkgKyAxKSAtICh5eW5yaHMpXSkJCSAgICAgICAsIGNvbnRleHQpOwotICAgICAgZnByaW50ZiAo
c3RkZXJyLCAiXG4iKTsKLSAgICB9Ci19Ci0KLSMgZGVmaW5lIFlZX1JFRFVDRV9QUklOVChSdWxl
KQkJXAotZG8gewkJCQkJXAotICBpZiAoeXlkZWJ1ZykJCQkJXAotICAgIHl5X3JlZHVjZV9wcmlu
dCAoeXl2c3AsIHl5bHNwLCBSdWxlLCBjb250ZXh0KTsgXAotfSB3aGlsZSAoWVlJRCAoMCkpCi0K
LS8qIE5vbnplcm8gbWVhbnMgcHJpbnQgcGFyc2UgdHJhY2UuICBJdCBpcyBsZWZ0IHVuaW5pdGlh
bGl6ZWQgc28gdGhhdAotICAgbXVsdGlwbGUgcGFyc2VycyBjYW4gY29leGlzdC4gICovCi1pbnQg
eXlkZWJ1ZzsKLSNlbHNlIC8qICFZWURFQlVHICovCi0jIGRlZmluZSBZWURQUklOVEYoQXJncykK
LSMgZGVmaW5lIFlZX1NZTUJPTF9QUklOVChUaXRsZSwgVHlwZSwgVmFsdWUsIExvY2F0aW9uKQot
IyBkZWZpbmUgWVlfU1RBQ0tfUFJJTlQoQm90dG9tLCBUb3ApCi0jIGRlZmluZSBZWV9SRURVQ0Vf
UFJJTlQoUnVsZSkKLSNlbmRpZiAvKiAhWVlERUJVRyAqLwotCi0KLS8qIFlZSU5JVERFUFRIIC0t
IGluaXRpYWwgc2l6ZSBvZiB0aGUgcGFyc2VyJ3Mgc3RhY2tzLiAgKi8KLSNpZm5kZWYJWVlJTklU
REVQVEgKLSMgZGVmaW5lIFlZSU5JVERFUFRIIDIwMAotI2VuZGlmCi0KLS8qIFlZTUFYREVQVEgg
LS0gbWF4aW11bSBzaXplIHRoZSBzdGFja3MgY2FuIGdyb3cgdG8gKGVmZmVjdGl2ZSBvbmx5Ci0g
ICBpZiB0aGUgYnVpbHQtaW4gc3RhY2sgZXh0ZW5zaW9uIG1ldGhvZCBpcyB1c2VkKS4KLQotICAg
RG8gbm90IG1ha2UgdGhpcyB2YWx1ZSB0b28gbGFyZ2U7IHRoZSByZXN1bHRzIGFyZSB1bmRlZmlu
ZWQgaWYKLSAgIFlZU1RBQ0tfQUxMT0NfTUFYSU1VTSA8IFlZU1RBQ0tfQllURVMgKFlZTUFYREVQ
VEgpCi0gICBldmFsdWF0ZWQgd2l0aCBpbmZpbml0ZS1wcmVjaXNpb24gaW50ZWdlciBhcml0aG1l
dGljLiAgKi8KLQotI2lmbmRlZiBZWU1BWERFUFRICi0jIGRlZmluZSBZWU1BWERFUFRIIDEwMDAw
Ci0jZW5kaWYKLQotDAotCi0jaWYgWVlFUlJPUl9WRVJCT1NFCi0KLSMgaWZuZGVmIHl5c3RybGVu
Ci0jICBpZiBkZWZpbmVkIF9fR0xJQkNfXyAmJiBkZWZpbmVkIF9TVFJJTkdfSAotIyAgIGRlZmlu
ZSB5eXN0cmxlbiBzdHJsZW4KLSMgIGVsc2UKLS8qIFJldHVybiB0aGUgbGVuZ3RoIG9mIFlZU1RS
LiAgKi8KLSNpZiAoZGVmaW5lZCBfX1NURENfXyB8fCBkZWZpbmVkIF9fQzk5X19GVU5DX18gXAot
ICAgICB8fCBkZWZpbmVkIF9fY3BsdXNwbHVzIHx8IGRlZmluZWQgX01TQ19WRVIpCi1zdGF0aWMg
WVlTSVpFX1QKLXl5c3RybGVuIChjb25zdCBjaGFyICp5eXN0cikKLSNlbHNlCi1zdGF0aWMgWVlT
SVpFX1QKLXl5c3RybGVuICh5eXN0cikKLSAgICBjb25zdCBjaGFyICp5eXN0cjsKLSNlbmRpZgot
ewotICBZWVNJWkVfVCB5eWxlbjsKLSAgZm9yICh5eWxlbiA9IDA7IHl5c3RyW3l5bGVuXTsgeXls
ZW4rKykKLSAgICBjb250aW51ZTsKLSAgcmV0dXJuIHl5bGVuOwotfQotIyAgZW5kaWYKLSMgZW5k
aWYKLQotIyBpZm5kZWYgeXlzdHBjcHkKLSMgIGlmIGRlZmluZWQgX19HTElCQ19fICYmIGRlZmlu
ZWQgX1NUUklOR19IICYmIGRlZmluZWQgX0dOVV9TT1VSQ0UKLSMgICBkZWZpbmUgeXlzdHBjcHkg
c3RwY3B5Ci0jICBlbHNlCi0vKiBDb3B5IFlZU1JDIHRvIFlZREVTVCwgcmV0dXJuaW5nIHRoZSBh
ZGRyZXNzIG9mIHRoZSB0ZXJtaW5hdGluZyAnXDAnIGluCi0gICBZWURFU1QuICAqLwotI2lmIChk
ZWZpbmVkIF9fU1REQ19fIHx8IGRlZmluZWQgX19DOTlfX0ZVTkNfXyBcCi0gICAgIHx8IGRlZmlu
ZWQgX19jcGx1c3BsdXMgfHwgZGVmaW5lZCBfTVNDX1ZFUikKLXN0YXRpYyBjaGFyICoKLXl5c3Rw
Y3B5IChjaGFyICp5eWRlc3QsIGNvbnN0IGNoYXIgKnl5c3JjKQotI2Vsc2UKLXN0YXRpYyBjaGFy
ICoKLXl5c3RwY3B5ICh5eWRlc3QsIHl5c3JjKQotICAgIGNoYXIgKnl5ZGVzdDsKLSAgICBjb25z
dCBjaGFyICp5eXNyYzsKLSNlbmRpZgotewotICBjaGFyICp5eWQgPSB5eWRlc3Q7Ci0gIGNvbnN0
IGNoYXIgKnl5cyA9IHl5c3JjOwotCi0gIHdoaWxlICgoKnl5ZCsrID0gKnl5cysrKSAhPSAnXDAn
KQotICAgIGNvbnRpbnVlOwotCi0gIHJldHVybiB5eWQgLSAxOwotfQotIyAgZW5kaWYKLSMgZW5k
aWYKLQotIyBpZm5kZWYgeXl0bmFtZXJyCi0vKiBDb3B5IHRvIFlZUkVTIHRoZSBjb250ZW50cyBv
ZiBZWVNUUiBhZnRlciBzdHJpcHBpbmcgYXdheSB1bm5lY2Vzc2FyeQotICAgcXVvdGVzIGFuZCBi
YWNrc2xhc2hlcywgc28gdGhhdCBpdCdzIHN1aXRhYmxlIGZvciB5eWVycm9yLiAgVGhlCi0gICBo
ZXVyaXN0aWMgaXMgdGhhdCBkb3VibGUtcXVvdGluZyBpcyB1bm5lY2Vzc2FyeSB1bmxlc3MgdGhl
IHN0cmluZwotICAgY29udGFpbnMgYW4gYXBvc3Ryb3BoZSwgYSBjb21tYSwgb3IgYmFja3NsYXNo
IChvdGhlciB0aGFuCi0gICBiYWNrc2xhc2gtYmFja3NsYXNoKS4gIFlZU1RSIGlzIHRha2VuIGZy
b20geXl0bmFtZS4gIElmIFlZUkVTIGlzCi0gICBudWxsLCBkbyBub3QgY29weTsgaW5zdGVhZCwg
cmV0dXJuIHRoZSBsZW5ndGggb2Ygd2hhdCB0aGUgcmVzdWx0Ci0gICB3b3VsZCBoYXZlIGJlZW4u
ICAqLwotc3RhdGljIFlZU0laRV9UCi15eXRuYW1lcnIgKGNoYXIgKnl5cmVzLCBjb25zdCBjaGFy
ICp5eXN0cikKLXsKLSAgaWYgKCp5eXN0ciA9PSAnIicpCi0gICAgewotICAgICAgWVlTSVpFX1Qg
eXluID0gMDsKLSAgICAgIGNoYXIgY29uc3QgKnl5cCA9IHl5c3RyOwotCi0gICAgICBmb3IgKDs7
KQotCXN3aXRjaCAoKisreXlwKQotCSAgewotCSAgY2FzZSAnXCcnOgotCSAgY2FzZSAnLCc6Ci0J
ICAgIGdvdG8gZG9fbm90X3N0cmlwX3F1b3RlczsKLQotCSAgY2FzZSAnXFwnOgotCSAgICBpZiAo
KisreXlwICE9ICdcXCcpCi0JICAgICAgZ290byBkb19ub3Rfc3RyaXBfcXVvdGVzOwotCSAgICAv
KiBGYWxsIHRocm91Z2guICAqLwotCSAgZGVmYXVsdDoKLQkgICAgaWYgKHl5cmVzKQotCSAgICAg
IHl5cmVzW3l5bl0gPSAqeXlwOwotCSAgICB5eW4rKzsKLQkgICAgYnJlYWs7Ci0KLQkgIGNhc2Ug
JyInOgotCSAgICBpZiAoeXlyZXMpCi0JICAgICAgeXlyZXNbeXluXSA9ICdcMCc7Ci0JICAgIHJl
dHVybiB5eW47Ci0JICB9Ci0gICAgZG9fbm90X3N0cmlwX3F1b3RlczogOwotICAgIH0KLQotICBp
ZiAoISB5eXJlcykKLSAgICByZXR1cm4geXlzdHJsZW4gKHl5c3RyKTsKLQotICByZXR1cm4geXlz
dHBjcHkgKHl5cmVzLCB5eXN0cikgLSB5eXJlczsKLX0KLSMgZW5kaWYKLQotLyogQ29weSBpbnRv
IFlZUkVTVUxUIGFuIGVycm9yIG1lc3NhZ2UgYWJvdXQgdGhlIHVuZXhwZWN0ZWQgdG9rZW4KLSAg
IFlZQ0hBUiB3aGlsZSBpbiBzdGF0ZSBZWVNUQVRFLiAgUmV0dXJuIHRoZSBudW1iZXIgb2YgYnl0
ZXMgY29waWVkLAotICAgaW5jbHVkaW5nIHRoZSB0ZXJtaW5hdGluZyBudWxsIGJ5dGUuICBJZiBZ
WVJFU1VMVCBpcyBudWxsLCBkbyBub3QKLSAgIGNvcHkgYW55dGhpbmc7IGp1c3QgcmV0dXJuIHRo
ZSBudW1iZXIgb2YgYnl0ZXMgdGhhdCB3b3VsZCBiZQotICAgY29waWVkLiAgQXMgYSBzcGVjaWFs
IGNhc2UsIHJldHVybiAwIGlmIGFuIG9yZGluYXJ5ICJzeW50YXggZXJyb3IiCi0gICBtZXNzYWdl
IHdpbGwgZG8uICBSZXR1cm4gWVlTSVpFX01BWElNVU0gaWYgb3ZlcmZsb3cgb2NjdXJzIGR1cmlu
ZwotICAgc2l6ZSBjYWxjdWxhdGlvbi4gICovCi1zdGF0aWMgWVlTSVpFX1QKLXl5c3ludGF4X2Vy
cm9yIChjaGFyICp5eXJlc3VsdCwgaW50IHl5c3RhdGUsIGludCB5eWNoYXIpCi17Ci0gIGludCB5
eW4gPSB5eXBhY3RbeXlzdGF0ZV07Ci0KLSAgaWYgKCEgKFlZUEFDVF9OSU5GIDwgeXluICYmIHl5
biA8PSBZWUxBU1QpKQotICAgIHJldHVybiAwOwotICBlbHNlCi0gICAgewotICAgICAgaW50IHl5
dHlwZSA9IFlZVFJBTlNMQVRFICh5eWNoYXIpOwotICAgICAgWVlTSVpFX1QgeXlzaXplMCA9IHl5
dG5hbWVyciAoMCwgeXl0bmFtZVt5eXR5cGVdKTsKLSAgICAgIFlZU0laRV9UIHl5c2l6ZSA9IHl5
c2l6ZTA7Ci0gICAgICBZWVNJWkVfVCB5eXNpemUxOwotICAgICAgaW50IHl5c2l6ZV9vdmVyZmxv
dyA9IDA7Ci0gICAgICBlbnVtIHsgWVlFUlJPUl9WRVJCT1NFX0FSR1NfTUFYSU1VTSA9IDUgfTsK
LSAgICAgIGNoYXIgY29uc3QgKnl5YXJnW1lZRVJST1JfVkVSQk9TRV9BUkdTX01BWElNVU1dOwot
ICAgICAgaW50IHl5eDsKLQotIyBpZiAwCi0gICAgICAvKiBUaGlzIGlzIHNvIHhnZXR0ZXh0IHNl
ZXMgdGhlIHRyYW5zbGF0YWJsZSBmb3JtYXRzIHRoYXQgYXJlCi0JIGNvbnN0cnVjdGVkIG9uIHRo
ZSBmbHkuICAqLwotICAgICAgWVlfKCJzeW50YXggZXJyb3IsIHVuZXhwZWN0ZWQgJXMiKTsKLSAg
ICAgIFlZXygic3ludGF4IGVycm9yLCB1bmV4cGVjdGVkICVzLCBleHBlY3RpbmcgJXMiKTsKLSAg
ICAgIFlZXygic3ludGF4IGVycm9yLCB1bmV4cGVjdGVkICVzLCBleHBlY3RpbmcgJXMgb3IgJXMi
KTsKLSAgICAgIFlZXygic3ludGF4IGVycm9yLCB1bmV4cGVjdGVkICVzLCBleHBlY3RpbmcgJXMg
b3IgJXMgb3IgJXMiKTsKLSAgICAgIFlZXygic3ludGF4IGVycm9yLCB1bmV4cGVjdGVkICVzLCBl
eHBlY3RpbmcgJXMgb3IgJXMgb3IgJXMgb3IgJXMiKTsKLSMgZW5kaWYKLSAgICAgIGNoYXIgKnl5
Zm10OwotICAgICAgY2hhciBjb25zdCAqeXlmOwotICAgICAgc3RhdGljIGNoYXIgY29uc3QgeXl1
bmV4cGVjdGVkW10gPSAic3ludGF4IGVycm9yLCB1bmV4cGVjdGVkICVzIjsKLSAgICAgIHN0YXRp
YyBjaGFyIGNvbnN0IHl5ZXhwZWN0aW5nW10gPSAiLCBleHBlY3RpbmcgJXMiOwotICAgICAgc3Rh
dGljIGNoYXIgY29uc3QgeXlvcltdID0gIiBvciAlcyI7Ci0gICAgICBjaGFyIHl5Zm9ybWF0W3Np
emVvZiB5eXVuZXhwZWN0ZWQKLQkJICAgICsgc2l6ZW9mIHl5ZXhwZWN0aW5nIC0gMQotCQkgICAg
KyAoKFlZRVJST1JfVkVSQk9TRV9BUkdTX01BWElNVU0gLSAyKQotCQkgICAgICAgKiAoc2l6ZW9m
IHl5b3IgLSAxKSldOwotICAgICAgY2hhciBjb25zdCAqeXlwcmVmaXggPSB5eWV4cGVjdGluZzsK
LQotICAgICAgLyogU3RhcnQgWVlYIGF0IC1ZWU4gaWYgbmVnYXRpdmUgdG8gYXZvaWQgbmVnYXRp
dmUgaW5kZXhlcyBpbgotCSBZWUNIRUNLLiAgKi8KLSAgICAgIGludCB5eXhiZWdpbiA9IHl5biA8
IDAgPyAteXluIDogMDsKLQotICAgICAgLyogU3RheSB3aXRoaW4gYm91bmRzIG9mIGJvdGggeXlj
aGVjayBhbmQgeXl0bmFtZS4gICovCi0gICAgICBpbnQgeXljaGVja2xpbSA9IFlZTEFTVCAtIHl5
biArIDE7Ci0gICAgICBpbnQgeXl4ZW5kID0geXljaGVja2xpbSA8IFlZTlRPS0VOUyA/IHl5Y2hl
Y2tsaW0gOiBZWU5UT0tFTlM7Ci0gICAgICBpbnQgeXljb3VudCA9IDE7Ci0KLSAgICAgIHl5YXJn
WzBdID0geXl0bmFtZVt5eXR5cGVdOwotICAgICAgeXlmbXQgPSB5eXN0cGNweSAoeXlmb3JtYXQs
IHl5dW5leHBlY3RlZCk7Ci0KLSAgICAgIGZvciAoeXl4ID0geXl4YmVnaW47IHl5eCA8IHl5eGVu
ZDsgKyt5eXgpCi0JaWYgKHl5Y2hlY2tbeXl4ICsgeXluXSA9PSB5eXggJiYgeXl4ICE9IFlZVEVS
Uk9SKQotCSAgewotCSAgICBpZiAoeXljb3VudCA9PSBZWUVSUk9SX1ZFUkJPU0VfQVJHU19NQVhJ
TVVNKQotCSAgICAgIHsKLQkJeXljb3VudCA9IDE7Ci0JCXl5c2l6ZSA9IHl5c2l6ZTA7Ci0JCXl5
Zm9ybWF0W3NpemVvZiB5eXVuZXhwZWN0ZWQgLSAxXSA9ICdcMCc7Ci0JCWJyZWFrOwotCSAgICAg
IH0KLQkgICAgeXlhcmdbeXljb3VudCsrXSA9IHl5dG5hbWVbeXl4XTsKLQkgICAgeXlzaXplMSA9
IHl5c2l6ZSArIHl5dG5hbWVyciAoMCwgeXl0bmFtZVt5eXhdKTsKLQkgICAgeXlzaXplX292ZXJm
bG93IHw9ICh5eXNpemUxIDwgeXlzaXplKTsKLQkgICAgeXlzaXplID0geXlzaXplMTsKLQkgICAg
eXlmbXQgPSB5eXN0cGNweSAoeXlmbXQsIHl5cHJlZml4KTsKLQkgICAgeXlwcmVmaXggPSB5eW9y
OwotCSAgfQotCi0gICAgICB5eWYgPSBZWV8oeXlmb3JtYXQpOwotICAgICAgeXlzaXplMSA9IHl5
c2l6ZSArIHl5c3RybGVuICh5eWYpOwotICAgICAgeXlzaXplX292ZXJmbG93IHw9ICh5eXNpemUx
IDwgeXlzaXplKTsKLSAgICAgIHl5c2l6ZSA9IHl5c2l6ZTE7Ci0KLSAgICAgIGlmICh5eXNpemVf
b3ZlcmZsb3cpCi0JcmV0dXJuIFlZU0laRV9NQVhJTVVNOwotCi0gICAgICBpZiAoeXlyZXN1bHQp
Ci0JewotCSAgLyogQXZvaWQgc3ByaW50ZiwgYXMgdGhhdCBpbmZyaW5nZXMgb24gdGhlIHVzZXIn
cyBuYW1lIHNwYWNlLgotCSAgICAgRG9uJ3QgaGF2ZSB1bmRlZmluZWQgYmVoYXZpb3IgZXZlbiBp
ZiB0aGUgdHJhbnNsYXRpb24KLQkgICAgIHByb2R1Y2VkIGEgc3RyaW5nIHdpdGggdGhlIHdyb25n
IG51bWJlciBvZiAiJXMicy4gICovCi0JICBjaGFyICp5eXAgPSB5eXJlc3VsdDsKLQkgIGludCB5
eWkgPSAwOwotCSAgd2hpbGUgKCgqeXlwID0gKnl5ZikgIT0gJ1wwJykKLQkgICAgewotCSAgICAg
IGlmICgqeXlwID09ICclJyAmJiB5eWZbMV0gPT0gJ3MnICYmIHl5aSA8IHl5Y291bnQpCi0JCXsK
LQkJICB5eXAgKz0geXl0bmFtZXJyICh5eXAsIHl5YXJnW3l5aSsrXSk7Ci0JCSAgeXlmICs9IDI7
Ci0JCX0KLQkgICAgICBlbHNlCi0JCXsKLQkJICB5eXArKzsKLQkJICB5eWYrKzsKLQkJfQotCSAg
ICB9Ci0JfQotICAgICAgcmV0dXJuIHl5c2l6ZTsKLSAgICB9Ci19Ci0jZW5kaWYgLyogWVlFUlJP
Ul9WRVJCT1NFICovCi0MCi0KLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0uCi18IFJlbGVhc2UgdGhlIG1lbW9yeSBhc3NvY2lhdGVkIHRvIHRoaXMgc3lt
Ym9sLiAgfAotYC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ki8KLQotLypBUkdTVVNFRCovCi0jaWYgKGRlZmluZWQgX19TVERDX18gfHwgZGVmaW5lZCBfX0M5
OV9fRlVOQ19fIFwKLSAgICAgfHwgZGVmaW5lZCBfX2NwbHVzcGx1cyB8fCBkZWZpbmVkIF9NU0Nf
VkVSKQotc3RhdGljIHZvaWQKLXl5ZGVzdHJ1Y3QgKGNvbnN0IGNoYXIgKnl5bXNnLCBpbnQgeXl0
eXBlLCBZWVNUWVBFICp5eXZhbHVlcCwgWVlMVFlQRSAqeXlsb2NhdGlvbnAsIFRQYXJzZUNvbnRl
eHQqIGNvbnRleHQpCi0jZWxzZQotc3RhdGljIHZvaWQKLXl5ZGVzdHJ1Y3QgKHl5bXNnLCB5eXR5
cGUsIHl5dmFsdWVwLCB5eWxvY2F0aW9ucCwgY29udGV4dCkKLSAgICBjb25zdCBjaGFyICp5eW1z
ZzsKLSAgICBpbnQgeXl0eXBlOwotICAgIFlZU1RZUEUgKnl5dmFsdWVwOwotICAgIFlZTFRZUEUg
Knl5bG9jYXRpb25wOwotICAgIFRQYXJzZUNvbnRleHQqIGNvbnRleHQ7Ci0jZW5kaWYKLXsKLSAg
WVlVU0UgKHl5dmFsdWVwKTsKLSAgWVlVU0UgKHl5bG9jYXRpb25wKTsKLSAgWVlVU0UgKGNvbnRl
eHQpOwotCi0gIGlmICgheXltc2cpCi0gICAgeXltc2cgPSAiRGVsZXRpbmciOwotICBZWV9TWU1C
T0xfUFJJTlQgKHl5bXNnLCB5eXR5cGUsIHl5dmFsdWVwLCB5eWxvY2F0aW9ucCk7Ci0KLSAgc3dp
dGNoICh5eXR5cGUpCi0gICAgewotCi0gICAgICBkZWZhdWx0OgotCWJyZWFrOwotICAgIH0KLX0K
LQwKLQotLyogUHJldmVudCB3YXJuaW5ncyBmcm9tIC1XbWlzc2luZy1wcm90b3R5cGVzLiAgKi8K
LQotI2lmZGVmIFlZUEFSU0VfUEFSQU0KLSNpZiBkZWZpbmVkIF9fU1REQ19fIHx8IGRlZmluZWQg
X19jcGx1c3BsdXMKLWludCB5eXBhcnNlICh2b2lkICpZWVBBUlNFX1BBUkFNKTsKLSNlbHNlCi1p
bnQgeXlwYXJzZSAoKTsKLSNlbmRpZgotI2Vsc2UgLyogISBZWVBBUlNFX1BBUkFNICovCi0jaWYg
ZGVmaW5lZCBfX1NURENfXyB8fCBkZWZpbmVkIF9fY3BsdXNwbHVzCi1pbnQgeXlwYXJzZSAoVFBh
cnNlQ29udGV4dCogY29udGV4dCk7Ci0jZWxzZQotaW50IHl5cGFyc2UgKCk7Ci0jZW5kaWYKLSNl
bmRpZiAvKiAhIFlZUEFSU0VfUEFSQU0gKi8KLQotCi0KLQotCi0KLS8qLS0tLS0tLS0tLS4KLXwg
eXlwYXJzZS4gIHwKLWAtLS0tLS0tLS0tKi8KLQotI2lmZGVmIFlZUEFSU0VfUEFSQU0KLSNpZiAo
ZGVmaW5lZCBfX1NURENfXyB8fCBkZWZpbmVkIF9fQzk5X19GVU5DX18gXAotICAgICB8fCBkZWZp
bmVkIF9fY3BsdXNwbHVzIHx8IGRlZmluZWQgX01TQ19WRVIpCi1pbnQKLXl5cGFyc2UgKHZvaWQg
KllZUEFSU0VfUEFSQU0pCi0jZWxzZQotaW50Ci15eXBhcnNlIChZWVBBUlNFX1BBUkFNKQotICAg
IHZvaWQgKllZUEFSU0VfUEFSQU07Ci0jZW5kaWYKLSNlbHNlIC8qICEgWVlQQVJTRV9QQVJBTSAq
LwotI2lmIChkZWZpbmVkIF9fU1REQ19fIHx8IGRlZmluZWQgX19DOTlfX0ZVTkNfXyBcCi0gICAg
IHx8IGRlZmluZWQgX19jcGx1c3BsdXMgfHwgZGVmaW5lZCBfTVNDX1ZFUikKLWludAoteXlwYXJz
ZSAoVFBhcnNlQ29udGV4dCogY29udGV4dCkKLSNlbHNlCi1pbnQKLXl5cGFyc2UgKGNvbnRleHQp
Ci0gICAgVFBhcnNlQ29udGV4dCogY29udGV4dDsKLSNlbmRpZgotI2VuZGlmCi17Ci0gIC8qIFRo
ZSBsb29rLWFoZWFkIHN5bWJvbC4gICovCi1pbnQgeXljaGFyOwotCi0vKiBUaGUgc2VtYW50aWMg
dmFsdWUgb2YgdGhlIGxvb2stYWhlYWQgc3ltYm9sLiAgKi8KLVlZU1RZUEUgeXlsdmFsOwotCi0v
KiBOdW1iZXIgb2Ygc3ludGF4IGVycm9ycyBzbyBmYXIuICAqLwotaW50IHl5bmVycnM7Ci0vKiBM
b2NhdGlvbiBkYXRhIGZvciB0aGUgbG9vay1haGVhZCBzeW1ib2wuICAqLwotWVlMVFlQRSB5eWxs
b2M7Ci0KLSAgaW50IHl5c3RhdGU7Ci0gIGludCB5eW47Ci0gIGludCB5eXJlc3VsdDsKLSAgLyog
TnVtYmVyIG9mIHRva2VucyB0byBzaGlmdCBiZWZvcmUgZXJyb3IgbWVzc2FnZXMgZW5hYmxlZC4g
ICovCi0gIGludCB5eWVycnN0YXR1czsKLSAgLyogTG9vay1haGVhZCB0b2tlbiBhcyBhbiBpbnRl
cm5hbCAodHJhbnNsYXRlZCkgdG9rZW4gbnVtYmVyLiAgKi8KLSAgaW50IHl5dG9rZW4gPSAwOwot
I2lmIFlZRVJST1JfVkVSQk9TRQotICAvKiBCdWZmZXIgZm9yIGVycm9yIG1lc3NhZ2VzLCBhbmQg
aXRzIGFsbG9jYXRlZCBzaXplLiAgKi8KLSAgY2hhciB5eW1zZ2J1ZlsxMjhdOwotICBjaGFyICp5
eW1zZyA9IHl5bXNnYnVmOwotICBZWVNJWkVfVCB5eW1zZ19hbGxvYyA9IHNpemVvZiB5eW1zZ2J1
ZjsKLSNlbmRpZgotCi0gIC8qIFRocmVlIHN0YWNrcyBhbmQgdGhlaXIgdG9vbHM6Ci0gICAgIGB5
eXNzJzogcmVsYXRlZCB0byBzdGF0ZXMsCi0gICAgIGB5eXZzJzogcmVsYXRlZCB0byBzZW1hbnRp
YyB2YWx1ZXMsCi0gICAgIGB5eWxzJzogcmVsYXRlZCB0byBsb2NhdGlvbnMuCi0KLSAgICAgUmVm
ZXIgdG8gdGhlIHN0YWNrcyB0aHJ1IHNlcGFyYXRlIHBvaW50ZXJzLCB0byBhbGxvdyB5eW92ZXJm
bG93Ci0gICAgIHRvIHJlYWxsb2NhdGUgdGhlbSBlbHNld2hlcmUuICAqLwotCi0gIC8qIFRoZSBz
dGF0ZSBzdGFjay4gICovCi0gIHl5dHlwZV9pbnQxNiB5eXNzYVtZWUlOSVRERVBUSF07Ci0gIHl5
dHlwZV9pbnQxNiAqeXlzcyA9IHl5c3NhOwotICB5eXR5cGVfaW50MTYgKnl5c3NwOwotCi0gIC8q
IFRoZSBzZW1hbnRpYyB2YWx1ZSBzdGFjay4gICovCi0gIFlZU1RZUEUgeXl2c2FbWVlJTklUREVQ
VEhdOwotICBZWVNUWVBFICp5eXZzID0geXl2c2E7Ci0gIFlZU1RZUEUgKnl5dnNwOwotCi0gIC8q
IFRoZSBsb2NhdGlvbiBzdGFjay4gICovCi0gIFlZTFRZUEUgeXlsc2FbWVlJTklUREVQVEhdOwot
ICBZWUxUWVBFICp5eWxzID0geXlsc2E7Ci0gIFlZTFRZUEUgKnl5bHNwOwotICAvKiBUaGUgbG9j
YXRpb25zIHdoZXJlIHRoZSBlcnJvciBzdGFydGVkIGFuZCBlbmRlZC4gICovCi0gIFlZTFRZUEUg
eXllcnJvcl9yYW5nZVsyXTsKLQotI2RlZmluZSBZWVBPUFNUQUNLKE4pICAgKHl5dnNwIC09IChO
KSwgeXlzc3AgLT0gKE4pLCB5eWxzcCAtPSAoTikpCi0KLSAgWVlTSVpFX1QgeXlzdGFja3NpemUg
PSBZWUlOSVRERVBUSDsKLQotICAvKiBUaGUgdmFyaWFibGVzIHVzZWQgdG8gcmV0dXJuIHNlbWFu
dGljIHZhbHVlIGFuZCBsb2NhdGlvbiBmcm9tIHRoZQotICAgICBhY3Rpb24gcm91dGluZXMuICAq
LwotICBZWVNUWVBFIHl5dmFsOwotICBZWUxUWVBFIHl5bG9jOwotCi0gIC8qIFRoZSBudW1iZXIg
b2Ygc3ltYm9scyBvbiB0aGUgUkhTIG9mIHRoZSByZWR1Y2VkIHJ1bGUuCi0gICAgIEtlZXAgdG8g
emVybyB3aGVuIG5vIHN5bWJvbCBzaG91bGQgYmUgcG9wcGVkLiAgKi8KLSAgaW50IHl5bGVuID0g
MDsKLQotICBZWURQUklOVEYgKChzdGRlcnIsICJTdGFydGluZyBwYXJzZVxuIikpOwotCi0gIHl5
c3RhdGUgPSAwOwotICB5eWVycnN0YXR1cyA9IDA7Ci0gIHl5bmVycnMgPSAwOwotICB5eWNoYXIg
PSBZWUVNUFRZOwkJLyogQ2F1c2UgYSB0b2tlbiB0byBiZSByZWFkLiAgKi8KLQotICAvKiBJbml0
aWFsaXplIHN0YWNrIHBvaW50ZXJzLgotICAgICBXYXN0ZSBvbmUgZWxlbWVudCBvZiB2YWx1ZSBh
bmQgbG9jYXRpb24gc3RhY2sKLSAgICAgc28gdGhhdCB0aGV5IHN0YXkgb24gdGhlIHNhbWUgbGV2
ZWwgYXMgdGhlIHN0YXRlIHN0YWNrLgotICAgICBUaGUgd2FzdGVkIGVsZW1lbnRzIGFyZSBuZXZl
ciBpbml0aWFsaXplZC4gICovCi0KLSAgeXlzc3AgPSB5eXNzOwotICB5eXZzcCA9IHl5dnM7Ci0g
IHl5bHNwID0geXlsczsKLSNpZiBkZWZpbmVkIFlZTFRZUEVfSVNfVFJJVklBTCAmJiBZWUxUWVBF
X0lTX1RSSVZJQUwKLSAgLyogSW5pdGlhbGl6ZSB0aGUgZGVmYXVsdCBsb2NhdGlvbiBiZWZvcmUg
cGFyc2luZyBzdGFydHMuICAqLwotICB5eWxsb2MuZmlyc3RfbGluZSAgID0geXlsbG9jLmxhc3Rf
bGluZSAgID0gMTsKLSAgeXlsbG9jLmZpcnN0X2NvbHVtbiA9IHl5bGxvYy5sYXN0X2NvbHVtbiA9
IDA7Ci0jZW5kaWYKLQotICBnb3RvIHl5c2V0c3RhdGU7Ci0KLS8qLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLgotfCB5eW5ld3N0YXRl
IC0tIFB1c2ggYSBuZXcgc3RhdGUsIHdoaWNoIGlzIGZvdW5kIGluIHl5c3RhdGUuICB8Ci1gLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
Ki8KLSB5eW5ld3N0YXRlOgotICAvKiBJbiBhbGwgY2FzZXMsIHdoZW4geW91IGdldCBoZXJlLCB0
aGUgdmFsdWUgYW5kIGxvY2F0aW9uIHN0YWNrcwotICAgICBoYXZlIGp1c3QgYmVlbiBwdXNoZWQu
ICBTbyBwdXNoaW5nIGEgc3RhdGUgaGVyZSBldmVucyB0aGUgc3RhY2tzLiAgKi8KLSAgeXlzc3Ar
KzsKLQotIHl5c2V0c3RhdGU6Ci0gICp5eXNzcCA9IHl5c3RhdGU7Ci0KLSAgaWYgKHl5c3MgKyB5
eXN0YWNrc2l6ZSAtIDEgPD0geXlzc3ApCi0gICAgewotICAgICAgLyogR2V0IHRoZSBjdXJyZW50
IHVzZWQgc2l6ZSBvZiB0aGUgdGhyZWUgc3RhY2tzLCBpbiBlbGVtZW50cy4gICovCi0gICAgICBZ
WVNJWkVfVCB5eXNpemUgPSB5eXNzcCAtIHl5c3MgKyAxOwotCi0jaWZkZWYgeXlvdmVyZmxvdwot
ICAgICAgewotCS8qIEdpdmUgdXNlciBhIGNoYW5jZSB0byByZWFsbG9jYXRlIHRoZSBzdGFjay4g
IFVzZSBjb3BpZXMgb2YKLQkgICB0aGVzZSBzbyB0aGF0IHRoZSAmJ3MgZG9uJ3QgZm9yY2UgdGhl
IHJlYWwgb25lcyBpbnRvCi0JICAgbWVtb3J5LiAgKi8KLQlZWVNUWVBFICp5eXZzMSA9IHl5dnM7
Ci0JeXl0eXBlX2ludDE2ICp5eXNzMSA9IHl5c3M7Ci0JWVlMVFlQRSAqeXlsczEgPSB5eWxzOwot
Ci0JLyogRWFjaCBzdGFjayBwb2ludGVyIGFkZHJlc3MgaXMgZm9sbG93ZWQgYnkgdGhlIHNpemUg
b2YgdGhlCi0JICAgZGF0YSBpbiB1c2UgaW4gdGhhdCBzdGFjaywgaW4gYnl0ZXMuICBUaGlzIHVz
ZWQgdG8gYmUgYQotCSAgIGNvbmRpdGlvbmFsIGFyb3VuZCBqdXN0IHRoZSB0d28gZXh0cmEgYXJn
cywgYnV0IHRoYXQgbWlnaHQKLQkgICBiZSB1bmRlZmluZWQgaWYgeXlvdmVyZmxvdyBpcyBhIG1h
Y3JvLiAgKi8KLQl5eW92ZXJmbG93IChZWV8oIm1lbW9yeSBleGhhdXN0ZWQiKSwKLQkJICAgICZ5
eXNzMSwgeXlzaXplICogc2l6ZW9mICgqeXlzc3ApLAotCQkgICAgJnl5dnMxLCB5eXNpemUgKiBz
aXplb2YgKCp5eXZzcCksCi0JCSAgICAmeXlsczEsIHl5c2l6ZSAqIHNpemVvZiAoKnl5bHNwKSwK
LQkJICAgICZ5eXN0YWNrc2l6ZSk7Ci0JeXlscyA9IHl5bHMxOwotCXl5c3MgPSB5eXNzMTsKLQl5
eXZzID0geXl2czE7Ci0gICAgICB9Ci0jZWxzZSAvKiBubyB5eW92ZXJmbG93ICovCi0jIGlmbmRl
ZiBZWVNUQUNLX1JFTE9DQVRFCi0gICAgICBnb3RvIHl5ZXhoYXVzdGVkbGFiOwotIyBlbHNlCi0g
ICAgICAvKiBFeHRlbmQgdGhlIHN0YWNrIG91ciBvd24gd2F5LiAgKi8KLSAgICAgIGlmIChZWU1B
WERFUFRIIDw9IHl5c3RhY2tzaXplKQotCWdvdG8geXlleGhhdXN0ZWRsYWI7Ci0gICAgICB5eXN0
YWNrc2l6ZSAqPSAyOwotICAgICAgaWYgKFlZTUFYREVQVEggPCB5eXN0YWNrc2l6ZSkKLQl5eXN0
YWNrc2l6ZSA9IFlZTUFYREVQVEg7Ci0KLSAgICAgIHsKLQl5eXR5cGVfaW50MTYgKnl5c3MxID0g
eXlzczsKLQl1bmlvbiB5eWFsbG9jICp5eXB0ciA9Ci0JICAodW5pb24geXlhbGxvYyAqKSBZWVNU
QUNLX0FMTE9DIChZWVNUQUNLX0JZVEVTICh5eXN0YWNrc2l6ZSkpOwotCWlmICghIHl5cHRyKQot
CSAgZ290byB5eWV4aGF1c3RlZGxhYjsKLQlZWVNUQUNLX1JFTE9DQVRFICh5eXNzKTsKLQlZWVNU
QUNLX1JFTE9DQVRFICh5eXZzKTsKLQlZWVNUQUNLX1JFTE9DQVRFICh5eWxzKTsKLSMgIHVuZGVm
IFlZU1RBQ0tfUkVMT0NBVEUKLQlpZiAoeXlzczEgIT0geXlzc2EpCi0JICBZWVNUQUNLX0ZSRUUg
KHl5c3MxKTsKLSAgICAgIH0KLSMgZW5kaWYKLSNlbmRpZiAvKiBubyB5eW92ZXJmbG93ICovCi0K
LSAgICAgIHl5c3NwID0geXlzcyArIHl5c2l6ZSAtIDE7Ci0gICAgICB5eXZzcCA9IHl5dnMgKyB5
eXNpemUgLSAxOwotICAgICAgeXlsc3AgPSB5eWxzICsgeXlzaXplIC0gMTsKLQotICAgICAgWVlE
UFJJTlRGICgoc3RkZXJyLCAiU3RhY2sgc2l6ZSBpbmNyZWFzZWQgdG8gJWx1XG4iLAotCQkgICh1
bnNpZ25lZCBsb25nIGludCkgeXlzdGFja3NpemUpKTsKLQotICAgICAgaWYgKHl5c3MgKyB5eXN0
YWNrc2l6ZSAtIDEgPD0geXlzc3ApCi0JWVlBQk9SVDsKLSAgICB9Ci0KLSAgWVlEUFJJTlRGICgo
c3RkZXJyLCAiRW50ZXJpbmcgc3RhdGUgJWRcbiIsIHl5c3RhdGUpKTsKLQotICBnb3RvIHl5YmFj
a3VwOwotCi0vKi0tLS0tLS0tLS0tLgotfCB5eWJhY2t1cC4gIHwKLWAtLS0tLS0tLS0tLSovCi15
eWJhY2t1cDoKLQotICAvKiBEbyBhcHByb3ByaWF0ZSBwcm9jZXNzaW5nIGdpdmVuIHRoZSBjdXJy
ZW50IHN0YXRlLiAgUmVhZCBhCi0gICAgIGxvb2stYWhlYWQgdG9rZW4gaWYgd2UgbmVlZCBvbmUg
YW5kIGRvbid0IGFscmVhZHkgaGF2ZSBvbmUuICAqLwotCi0gIC8qIEZpcnN0IHRyeSB0byBkZWNp
ZGUgd2hhdCB0byBkbyB3aXRob3V0IHJlZmVyZW5jZSB0byBsb29rLWFoZWFkIHRva2VuLiAgKi8K
LSAgeXluID0geXlwYWN0W3l5c3RhdGVdOwotICBpZiAoeXluID09IFlZUEFDVF9OSU5GKQotICAg
IGdvdG8geXlkZWZhdWx0OwotCi0gIC8qIE5vdCBrbm93biA9PiBnZXQgYSBsb29rLWFoZWFkIHRv
a2VuIGlmIGRvbid0IGFscmVhZHkgaGF2ZSBvbmUuICAqLwotCi0gIC8qIFlZQ0hBUiBpcyBlaXRo
ZXIgWVlFTVBUWSBvciBZWUVPRiBvciBhIHZhbGlkIGxvb2stYWhlYWQgc3ltYm9sLiAgKi8KLSAg
aWYgKHl5Y2hhciA9PSBZWUVNUFRZKQotICAgIHsKLSAgICAgIFlZRFBSSU5URiAoKHN0ZGVyciwg
IlJlYWRpbmcgYSB0b2tlbjogIikpOwotICAgICAgeXljaGFyID0gWVlMRVg7Ci0gICAgfQotCi0g
IGlmICh5eWNoYXIgPD0gWVlFT0YpCi0gICAgewotICAgICAgeXljaGFyID0geXl0b2tlbiA9IFlZ
RU9GOwotICAgICAgWVlEUFJJTlRGICgoc3RkZXJyLCAiTm93IGF0IGVuZCBvZiBpbnB1dC5cbiIp
KTsKLSAgICB9Ci0gIGVsc2UKLSAgICB7Ci0gICAgICB5eXRva2VuID0gWVlUUkFOU0xBVEUgKHl5
Y2hhcik7Ci0gICAgICBZWV9TWU1CT0xfUFJJTlQgKCJOZXh0IHRva2VuIGlzIiwgeXl0b2tlbiwg
Jnl5bHZhbCwgJnl5bGxvYyk7Ci0gICAgfQotCi0gIC8qIElmIHRoZSBwcm9wZXIgYWN0aW9uIG9u
IHNlZWluZyB0b2tlbiBZWVRPS0VOIGlzIHRvIHJlZHVjZSBvciB0bwotICAgICBkZXRlY3QgYW4g
ZXJyb3IsIHRha2UgdGhhdCBhY3Rpb24uICAqLwotICB5eW4gKz0geXl0b2tlbjsKLSAgaWYgKHl5
biA8IDAgfHwgWVlMQVNUIDwgeXluIHx8IHl5Y2hlY2tbeXluXSAhPSB5eXRva2VuKQotICAgIGdv
dG8geXlkZWZhdWx0OwotICB5eW4gPSB5eXRhYmxlW3l5bl07Ci0gIGlmICh5eW4gPD0gMCkKLSAg
ICB7Ci0gICAgICBpZiAoeXluID09IDAgfHwgeXluID09IFlZVEFCTEVfTklORikKLQlnb3RvIHl5
ZXJybGFiOwotICAgICAgeXluID0gLXl5bjsKLSAgICAgIGdvdG8geXlyZWR1Y2U7Ci0gICAgfQot
Ci0gIGlmICh5eW4gPT0gWVlGSU5BTCkKLSAgICBZWUFDQ0VQVDsKLQotICAvKiBDb3VudCB0b2tl
bnMgc2hpZnRlZCBzaW5jZSBlcnJvcjsgYWZ0ZXIgdGhyZWUsIHR1cm4gb2ZmIGVycm9yCi0gICAg
IHN0YXR1cy4gICovCi0gIGlmICh5eWVycnN0YXR1cykKLSAgICB5eWVycnN0YXR1cy0tOwotCi0g
IC8qIFNoaWZ0IHRoZSBsb29rLWFoZWFkIHRva2VuLiAgKi8KLSAgWVlfU1lNQk9MX1BSSU5UICgi
U2hpZnRpbmciLCB5eXRva2VuLCAmeXlsdmFsLCAmeXlsbG9jKTsKLQotICAvKiBEaXNjYXJkIHRo
ZSBzaGlmdGVkIHRva2VuIHVubGVzcyBpdCBpcyBlb2YuICAqLwotICBpZiAoeXljaGFyICE9IFlZ
RU9GKQotICAgIHl5Y2hhciA9IFlZRU1QVFk7Ci0KLSAgeXlzdGF0ZSA9IHl5bjsKLSAgKisreXl2
c3AgPSB5eWx2YWw7Ci0gICorK3l5bHNwID0geXlsbG9jOwotICBnb3RvIHl5bmV3c3RhdGU7Ci0K
LQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS4KLXwgeXlkZWZhdWx0IC0tIGRvIHRoZSBkZWZhdWx0IGFjdGlvbiBmb3IgdGhlIGN1
cnJlbnQgc3RhdGUuICB8Ci1gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoteXlkZWZhdWx0OgotICB5eW4gPSB5eWRlZmFjdFt5eXN0
YXRlXTsKLSAgaWYgKHl5biA9PSAwKQotICAgIGdvdG8geXllcnJsYWI7Ci0gIGdvdG8geXlyZWR1
Y2U7Ci0KLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS4KLXwgeXlyZWR1Y2UgLS0g
RG8gYSByZWR1Y3Rpb24uICB8Ci1gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0qLwoteXly
ZWR1Y2U6Ci0gIC8qIHl5biBpcyB0aGUgbnVtYmVyIG9mIGEgcnVsZSB0byByZWR1Y2Ugd2l0aC4g
ICovCi0gIHl5bGVuID0geXlyMlt5eW5dOwotCi0gIC8qIElmIFlZTEVOIGlzIG5vbnplcm8sIGlt
cGxlbWVudCB0aGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgYWN0aW9uOgotICAgICBgJCQgPSAkMScu
Ci0KLSAgICAgT3RoZXJ3aXNlLCB0aGUgZm9sbG93aW5nIGxpbmUgc2V0cyBZWVZBTCB0byBnYXJi
YWdlLgotICAgICBUaGlzIGJlaGF2aW9yIGlzIHVuZG9jdW1lbnRlZCBhbmQgQmlzb24KLSAgICAg
dXNlcnMgc2hvdWxkIG5vdCByZWx5IHVwb24gaXQuICBBc3NpZ25pbmcgdG8gWVlWQUwKLSAgICAg
dW5jb25kaXRpb25hbGx5IG1ha2VzIHRoZSBwYXJzZXIgYSBiaXQgc21hbGxlciwgYW5kIGl0IGF2
b2lkcyBhCi0gICAgIEdDQyB3YXJuaW5nIHRoYXQgWVlWQUwgbWF5IGJlIHVzZWQgdW5pbml0aWFs
aXplZC4gICovCi0gIHl5dmFsID0geXl2c3BbMS15eWxlbl07Ci0KLSAgLyogRGVmYXVsdCBsb2Nh
dGlvbi4gICovCi0gIFlZTExPQ19ERUZBVUxUICh5eWxvYywgKHl5bHNwIC0geXlsZW4pLCB5eWxl
bik7Ci0gIFlZX1JFRFVDRV9QUklOVCAoeXluKTsKLSAgc3dpdGNoICh5eW4pCi0gICAgewotICAg
ICAgICBjYXNlIDQ6Ci0KLSAgICB7Ci0gICAgICAgIC8vIFRoZSBzeW1ib2wgdGFibGUgc2VhcmNo
IHdhcyBkb25lIGluIHRoZSBsZXhpY2FsIHBoYXNlCi0gICAgICAgIGNvbnN0IFRTeW1ib2wqIHN5
bWJvbCA9ICh5eXZzcFsoMSkgLSAoMSldLmxleCkuc3ltYm9sOwotICAgICAgICBjb25zdCBUVmFy
aWFibGUqIHZhcmlhYmxlOwotICAgICAgICBpZiAoc3ltYm9sID09IDApIHsKLSAgICAgICAgICAg
IGNvbnRleHQtPmVycm9yKCh5eWxzcFsoMSkgLSAoMSldKSwgInVuZGVjbGFyZWQgaWRlbnRpZmll
ciIsICh5eXZzcFsoMSkgLSAoMSldLmxleCkuc3RyaW5nLT5jX3N0cigpKTsKLSAgICAgICAgICAg
IGNvbnRleHQtPnJlY292ZXIoKTsKLSAgICAgICAgICAgIFRUeXBlIHR5cGUoRWJ0RmxvYXQsIEVi
cFVuZGVmaW5lZCk7Ci0gICAgICAgICAgICBUVmFyaWFibGUqIGZha2VWYXJpYWJsZSA9IG5ldyBU
VmFyaWFibGUoKHl5dnNwWygxKSAtICgxKV0ubGV4KS5zdHJpbmcsIHR5cGUpOwotICAgICAgICAg
ICAgY29udGV4dC0+c3ltYm9sVGFibGUuaW5zZXJ0KCpmYWtlVmFyaWFibGUpOwotICAgICAgICAg
ICAgdmFyaWFibGUgPSBmYWtlVmFyaWFibGU7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAvLyBUaGlzIGlkZW50aWZpZXIgY2FuIG9ubHkgYmUgYSB2YXJpYWJsZSB0eXBlIHN5bWJvbAot
ICAgICAgICAgICAgaWYgKCEgc3ltYm9sLT5pc1ZhcmlhYmxlKCkpIHsKLSAgICAgICAgICAgICAg
ICBjb250ZXh0LT5lcnJvcigoeXlsc3BbKDEpIC0gKDEpXSksICJ2YXJpYWJsZSBleHBlY3RlZCIs
ICh5eXZzcFsoMSkgLSAoMSldLmxleCkuc3RyaW5nLT5jX3N0cigpKTsKLSAgICAgICAgICAgICAg
ICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIHZhcmlh
YmxlID0gc3RhdGljX2Nhc3Q8Y29uc3QgVFZhcmlhYmxlKj4oc3ltYm9sKTsKLQotICAgICAgICAg
ICAgaWYgKGNvbnRleHQtPmlzVmFyaWFibGVCdWlsdEluKHZhcmlhYmxlKSAmJiAKLSAgICAgICAg
ICAgICAgICAhdmFyaWFibGUtPmdldEV4dGVuc2lvbigpLmVtcHR5KCkgJiYKLSAgICAgICAgICAg
ICAgICBjb250ZXh0LT5leHRlbnNpb25FcnJvckNoZWNrKCh5eWxzcFsoMSkgLSAoMSldKSwgdmFy
aWFibGUtPmdldEV4dGVuc2lvbigpKSkgewotICAgICAgICAgICAgICAgIGNvbnRleHQtPnJlY292
ZXIoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIC8vIGRvbid0IGRlbGV0
ZSAkMS5zdHJpbmcsIGl0J3MgdXNlZCBieSBlcnJvciByZWNvdmVyeSwgYW5kIHRoZSBwb29sCi0g
ICAgICAgIC8vIHBvcCB3aWxsIHJlY2xhaW0gdGhlIG1lbW9yeQotCi0gICAgICAgIGlmICh2YXJp
YWJsZS0+Z2V0VHlwZSgpLmdldFF1YWxpZmllcigpID09IEV2cUNvbnN0ICkgewotICAgICAgICAg
ICAgQ29uc3RhbnRVbmlvbiogY29uc3RBcnJheSA9IHZhcmlhYmxlLT5nZXRDb25zdFBvaW50ZXIo
KTsKLSAgICAgICAgICAgIFRUeXBlIHQodmFyaWFibGUtPmdldFR5cGUoKSk7Ci0gICAgICAgICAg
ICAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSBjb250ZXh0LT5pbnRlcm1lZGlhdGUu
YWRkQ29uc3RhbnRVbmlvbihjb25zdEFycmF5LCB0LCAoeXlsc3BbKDEpIC0gKDEpXSkpOwotICAg
ICAgICB9IGVsc2UKLSAgICAgICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSA9
IGNvbnRleHQtPmludGVybWVkaWF0ZS5hZGRTeW1ib2wodmFyaWFibGUtPmdldFVuaXF1ZUlkKCks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFi
bGUtPmdldE5hbWUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB2YXJpYWJsZS0+Z2V0VHlwZSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICh5eWxzcFsoMSkgLSAoMSldKSk7Ci0gICAgO30KLSAgICBi
cmVhazsKLQotICBjYXNlIDU6Ci0KLSAgICB7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJt
VHlwZWROb2RlKSA9ICh5eXZzcFsoMSkgLSAoMSldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpOwot
ICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSA2OgotCi0gICAgewotICAgICAgICAvLwotICAg
ICAgICAvLyBJTlRfVFlQRSBpcyBvbmx5IDE2LWJpdCBwbHVzIHNpZ24gYml0IGZvciB2ZXJ0ZXgv
ZnJhZ21lbnQgc2hhZGVycywKLSAgICAgICAgLy8gY2hlY2sgZm9yIG92ZXJmbG93IGZvciBjb25z
dGFudHMKLSAgICAgICAgLy8KLSAgICAgICAgaWYgKGFicygoeXl2c3BbKDEpIC0gKDEpXS5sZXgp
LmkpID49ICgxIDw8IDE2KSkgewotICAgICAgICAgICAgY29udGV4dC0+ZXJyb3IoKHl5bHNwWygx
KSAtICgxKV0pLCAiIGludGVnZXIgY29uc3RhbnQgb3ZlcmZsb3ciLCAiIik7Ci0gICAgICAgICAg
ICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0gICAgICAgIH0KLSAgICAgICAgQ29uc3RhbnRVbmlvbiAq
dW5pb25BcnJheSA9IG5ldyBDb25zdGFudFVuaW9uWzFdOwotICAgICAgICB1bmlvbkFycmF5LT5z
ZXRJQ29uc3QoKHl5dnNwWygxKSAtICgxKV0ubGV4KS5pKTsKLSAgICAgICAgKHl5dmFsLmludGVy
bS5pbnRlcm1UeXBlZE5vZGUpID0gY29udGV4dC0+aW50ZXJtZWRpYXRlLmFkZENvbnN0YW50VW5p
b24odW5pb25BcnJheSwgVFR5cGUoRWJ0SW50LCBFYnBVbmRlZmluZWQsIEV2cUNvbnN0KSwgKHl5
bHNwWygxKSAtICgxKV0pKTsKLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgNzoKLQotICAg
IHsKLSAgICAgICAgQ29uc3RhbnRVbmlvbiAqdW5pb25BcnJheSA9IG5ldyBDb25zdGFudFVuaW9u
WzFdOwotICAgICAgICB1bmlvbkFycmF5LT5zZXRGQ29uc3QoKHl5dnNwWygxKSAtICgxKV0ubGV4
KS5mKTsKLSAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpID0gY29udGV4dC0+
aW50ZXJtZWRpYXRlLmFkZENvbnN0YW50VW5pb24odW5pb25BcnJheSwgVFR5cGUoRWJ0RmxvYXQs
IEVicFVuZGVmaW5lZCwgRXZxQ29uc3QpLCAoeXlsc3BbKDEpIC0gKDEpXSkpOwotICAgIDt9Ci0g
ICAgYnJlYWs7Ci0KLSAgY2FzZSA4OgotCi0gICAgewotICAgICAgICBDb25zdGFudFVuaW9uICp1
bmlvbkFycmF5ID0gbmV3IENvbnN0YW50VW5pb25bMV07Ci0gICAgICAgIHVuaW9uQXJyYXktPnNl
dEJDb25zdCgoeXl2c3BbKDEpIC0gKDEpXS5sZXgpLmIpOwotICAgICAgICAoeXl2YWwuaW50ZXJt
LmludGVybVR5cGVkTm9kZSkgPSBjb250ZXh0LT5pbnRlcm1lZGlhdGUuYWRkQ29uc3RhbnRVbmlv
bih1bmlvbkFycmF5LCBUVHlwZShFYnRCb29sLCBFYnBVbmRlZmluZWQsIEV2cUNvbnN0KSwgKHl5
bHNwWygxKSAtICgxKV0pKTsKLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgOToKLQotICAg
IHsKLSAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpID0gKHl5dnNwWygyKSAt
ICgzKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSk7Ci0gICAgO30KLSAgICBicmVhazsKLQotICBj
YXNlIDEwOgotCi0gICAgewotICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkg
PSAoeXl2c3BbKDEpIC0gKDEpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKTsKLSAgICA7fQotICAg
IGJyZWFrOwotCi0gIGNhc2UgMTE6Ci0KLSAgICB7Ci0gICAgICAgIGlmICghKHl5dnNwWygxKSAt
ICg0KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmlzQXJyYXkoKSAmJiAhKHl5dnNwWygxKSAt
ICg0KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmlzTWF0cml4KCkgJiYgISh5eXZzcFsoMSkg
LSAoNCldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5pc1ZlY3RvcigpKSB7Ci0gICAgICAgICAg
ICBpZiAoKHl5dnNwWygxKSAtICg0KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldEFzU3lt
Ym9sTm9kZSgpKQotICAgICAgICAgICAgICAgIGNvbnRleHQtPmVycm9yKCh5eWxzcFsoMikgLSAo
NCldKSwgIiBsZWZ0IG9mICdbJyBpcyBub3Qgb2YgdHlwZSBhcnJheSwgbWF0cml4LCBvciB2ZWN0
b3IgIiwgKHl5dnNwWygxKSAtICg0KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldEFzU3lt
Ym9sTm9kZSgpLT5nZXRTeW1ib2woKS5jX3N0cigpKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICBjb250ZXh0LT5lcnJvcigoeXlsc3BbKDIpIC0gKDQpXSksICIgbGVmdCBvZiAn
WycgaXMgbm90IG9mIHR5cGUgYXJyYXksIG1hdHJpeCwgb3IgdmVjdG9yICIsICJleHByZXNzaW9u
Iik7Ci0gICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0gICAgICAgIH0KLSAgICAgICAg
aWYgKCh5eXZzcFsoMykgLSAoNCldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5nZXRRdWFsaWZp
ZXIoKSA9PSBFdnFDb25zdCkgewotICAgICAgICAgICAgaW50IGluZGV4ID0gKHl5dnNwWygzKSAt
ICg0KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldEFzQ29uc3RhbnRVbmlvbigpLT5nZXRJ
Q29uc3QoMCk7Ci0gICAgICAgICAgICBpZiAoaW5kZXggPCAwKSB7Ci0gICAgICAgICAgICAgICAg
c3RkOjpzdHJpbmdzdHJlYW0gaW5mb1N0cmVhbTsKLSAgICAgICAgICAgICAgICBpbmZvU3RyZWFt
IDw8IGluZGV4OwotICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIGluZm8gPSBpbmZvU3RyZWFt
LnN0cigpOwotICAgICAgICAgICAgICAgIGNvbnRleHQtPmVycm9yKCh5eWxzcFsoMykgLSAoNCld
KSwgIm5lZ2F0aXZlIGluZGV4IiwgaW5mby5jX3N0cigpKTsKLSAgICAgICAgICAgICAgICBjb250
ZXh0LT5yZWNvdmVyKCk7Ci0gICAgICAgICAgICAgICAgaW5kZXggPSAwOwotICAgICAgICAgICAg
fQotICAgICAgICAgICAgaWYgKCh5eXZzcFsoMSkgLSAoNCldLmludGVybS5pbnRlcm1UeXBlZE5v
ZGUpLT5nZXRUeXBlKCkuZ2V0UXVhbGlmaWVyKCkgPT0gRXZxQ29uc3QpIHsKLSAgICAgICAgICAg
ICAgICBpZiAoKHl5dnNwWygxKSAtICg0KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmlzQXJy
YXkoKSkgeyAvLyBjb25zdGFudCBmb2xkaW5nIGZvciBhcnJheXMKLSAgICAgICAgICAgICAgICAg
ICAgKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpID0gY29udGV4dC0+YWRkQ29uc3RBcnJh
eU5vZGUoaW5kZXgsICh5eXZzcFsoMSkgLSAoNCldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLCAo
eXlsc3BbKDIpIC0gKDQpXSkpOwotICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoKHl5dnNwWygx
KSAtICg0KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmlzVmVjdG9yKCkpIHsgIC8vIGNvbnN0
YW50IGZvbGRpbmcgZm9yIHZlY3RvcnMKLSAgICAgICAgICAgICAgICAgICAgVFZlY3RvckZpZWxk
cyBmaWVsZHM7Ci0gICAgICAgICAgICAgICAgICAgIGZpZWxkcy5udW0gPSAxOwotICAgICAgICAg
ICAgICAgICAgICBmaWVsZHMub2Zmc2V0c1swXSA9IGluZGV4OyAvLyBuZWVkIHRvIGRvIGl0IHRo
aXMgd2F5IGJlY2F1c2Ugdi54eSBzZW5kcyBmaWVsZHMgaW50ZWdlciBhcnJheQotICAgICAgICAg
ICAgICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSBjb250ZXh0LT5hZGRD
b25zdFZlY3Rvck5vZGUoZmllbGRzLCAoeXl2c3BbKDEpIC0gKDQpXS5pbnRlcm0uaW50ZXJtVHlw
ZWROb2RlKSwgKHl5bHNwWygyKSAtICg0KV0pKTsKLSAgICAgICAgICAgICAgICB9IGVsc2UgaWYg
KCh5eXZzcFsoMSkgLSAoNCldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5pc01hdHJpeCgpKSB7
IC8vIGNvbnN0YW50IGZvbGRpbmcgZm9yIG1hdHJpY2VzCi0gICAgICAgICAgICAgICAgICAgICh5
eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSA9IGNvbnRleHQtPmFkZENvbnN0TWF0cml4Tm9k
ZShpbmRleCwgKHl5dnNwWygxKSAtICg0KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSksICh5eWxz
cFsoMikgLSAoNCldKSk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICBpZiAoKHl5dnNwWygxKSAtICg0KV0uaW50ZXJtLmludGVybVR5cGVk
Tm9kZSktPmlzQXJyYXkoKSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoaW5kZXggPj0gKHl5
dnNwWygxKSAtICg0KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldFR5cGUoKS5nZXRBcnJh
eVNpemUoKSkgewotICAgICAgICAgICAgICAgICAgICAgICAgc3RkOjpzdHJpbmdzdHJlYW0gZXh0
cmFJbmZvU3RyZWFtOwotICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFJbmZvU3RyZWFtIDw8
ICJhcnJheSBpbmRleCBvdXQgb2YgcmFuZ2UgJyIgPDwgaW5kZXggPDwgIiciOwotICAgICAgICAg
ICAgICAgICAgICAgICAgc3RkOjpzdHJpbmcgZXh0cmFJbmZvID0gZXh0cmFJbmZvU3RyZWFtLnN0
cigpOwotICAgICAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+ZXJyb3IoKHl5bHNwWygyKSAt
ICg0KV0pLCAiIiwgIlsiLCBleHRyYUluZm8uY19zdHIoKSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBpbmRleCA9
ICh5eXZzcFsoMSkgLSAoNCldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5nZXRUeXBlKCkuZ2V0
QXJyYXlTaXplKCkgLSAxOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
fSBlbHNlIGlmICgoKHl5dnNwWygxKSAtICg0KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmlz
VmVjdG9yKCkgfHwgKHl5dnNwWygxKSAtICg0KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmlz
TWF0cml4KCkpICYmICh5eXZzcFsoMSkgLSAoNCldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5n
ZXRUeXBlKCkuZ2V0Tm9taW5hbFNpemUoKSA8PSBpbmRleCkgewotICAgICAgICAgICAgICAgICAg
ICBzdGQ6OnN0cmluZ3N0cmVhbSBleHRyYUluZm9TdHJlYW07Ci0gICAgICAgICAgICAgICAgICAg
IGV4dHJhSW5mb1N0cmVhbSA8PCAiZmllbGQgc2VsZWN0aW9uIG91dCBvZiByYW5nZSAnIiA8PCBp
bmRleCA8PCAiJyI7Ci0gICAgICAgICAgICAgICAgICAgIHN0ZDo6c3RyaW5nIGV4dHJhSW5mbyA9
IGV4dHJhSW5mb1N0cmVhbS5zdHIoKTsKLSAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+ZXJy
b3IoKHl5bHNwWygyKSAtICg0KV0pLCAiIiwgIlsiLCBleHRyYUluZm8uY19zdHIoKSk7Ci0gICAg
ICAgICAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLSAgICAgICAgICAgICAgICAgICAg
aW5kZXggPSAgKHl5dnNwWygxKSAtICg0KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldFR5
cGUoKS5nZXROb21pbmFsU2l6ZSgpIC0gMTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAg
ICAgICAgKHl5dnNwWygzKSAtICg0KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldEFzQ29u
c3RhbnRVbmlvbigpLT5nZXRVbmlvbkFycmF5UG9pbnRlcigpLT5zZXRJQ29uc3QoaW5kZXgpOwot
ICAgICAgICAgICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSA9IGNvbnRleHQt
PmludGVybWVkaWF0ZS5hZGRJbmRleChFT3BJbmRleERpcmVjdCwgKHl5dnNwWygxKSAtICg0KV0u
aW50ZXJtLmludGVybVR5cGVkTm9kZSksICh5eXZzcFsoMykgLSAoNCldLmludGVybS5pbnRlcm1U
eXBlZE5vZGUpLCAoeXlsc3BbKDIpIC0gKDQpXSkpOwotICAgICAgICAgICAgfQotICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpID0gY29u
dGV4dC0+aW50ZXJtZWRpYXRlLmFkZEluZGV4KEVPcEluZGV4SW5kaXJlY3QsICh5eXZzcFsoMSkg
LSAoNCldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLCAoeXl2c3BbKDMpIC0gKDQpXS5pbnRlcm0u
aW50ZXJtVHlwZWROb2RlKSwgKHl5bHNwWygyKSAtICg0KV0pKTsKLSAgICAgICAgfQotICAgICAg
ICBpZiAoKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpID09IDApIHsKLSAgICAgICAgICAg
IENvbnN0YW50VW5pb24gKnVuaW9uQXJyYXkgPSBuZXcgQ29uc3RhbnRVbmlvblsxXTsKLSAgICAg
ICAgICAgIHVuaW9uQXJyYXktPnNldEZDb25zdCgwLjBmKTsKLSAgICAgICAgICAgICh5eXZhbC5p
bnRlcm0uaW50ZXJtVHlwZWROb2RlKSA9IGNvbnRleHQtPmludGVybWVkaWF0ZS5hZGRDb25zdGFu
dFVuaW9uKHVuaW9uQXJyYXksIFRUeXBlKEVidEZsb2F0LCBFYnBIaWdoLCBFdnFDb25zdCksICh5
eWxzcFsoMikgLSAoNCldKSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoKHl5dnNwWygxKSAtICg0KV0u
aW50ZXJtLmludGVybVR5cGVkTm9kZSktPmlzQXJyYXkoKSkgewotICAgICAgICAgICAgaWYgKCh5
eXZzcFsoMSkgLSAoNCldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5nZXRUeXBlKCkuZ2V0U3Ry
dWN0KCkpCi0gICAgICAgICAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5z
ZXRUeXBlKFRUeXBlKCh5eXZzcFsoMSkgLSAoNCldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5n
ZXRUeXBlKCkuZ2V0U3RydWN0KCkpKTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSktPnNldFR5cGUoVFR5cGUoKHl5dnNwWygx
KSAtICg0KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldEJhc2ljVHlwZSgpLCAoeXl2c3Bb
KDEpIC0gKDQpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKS0+Z2V0UHJlY2lzaW9uKCksIEV2cVRl
bXBvcmFyeSwgKHl5dnNwWygxKSAtICg0KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldE5v
bWluYWxTaXplKCksICh5eXZzcFsoMSkgLSAoNCldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5p
c01hdHJpeCgpKSk7Ci0KLSAgICAgICAgICAgIGlmICgoeXl2c3BbKDEpIC0gKDQpXS5pbnRlcm0u
aW50ZXJtVHlwZWROb2RlKS0+Z2V0VHlwZSgpLmdldFF1YWxpZmllcigpID09IEV2cUNvbnN0KQot
ICAgICAgICAgICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKS0+Z2V0VHlwZVBv
aW50ZXIoKS0+c2V0UXVhbGlmaWVyKEV2cUNvbnN0KTsKLSAgICAgICAgfSBlbHNlIGlmICgoeXl2
c3BbKDEpIC0gKDQpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKS0+aXNNYXRyaXgoKSkgewotICAg
ICAgICAgICAgVFF1YWxpZmllciBxdWFsaWZpZXIgPSAoeXl2c3BbKDEpIC0gKDQpXS5pbnRlcm0u
aW50ZXJtVHlwZWROb2RlKS0+Z2V0VHlwZSgpLmdldFF1YWxpZmllcigpID09IEV2cUNvbnN0ID8g
RXZxQ29uc3QgOiBFdnFUZW1wb3Jhcnk7Ci0gICAgICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVy
bVR5cGVkTm9kZSktPnNldFR5cGUoVFR5cGUoKHl5dnNwWygxKSAtICg0KV0uaW50ZXJtLmludGVy
bVR5cGVkTm9kZSktPmdldEJhc2ljVHlwZSgpLCAoeXl2c3BbKDEpIC0gKDQpXS5pbnRlcm0uaW50
ZXJtVHlwZWROb2RlKS0+Z2V0UHJlY2lzaW9uKCksIHF1YWxpZmllciwgKHl5dnNwWygxKSAtICg0
KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldE5vbWluYWxTaXplKCkpKTsKLSAgICAgICAg
fSBlbHNlIGlmICgoeXl2c3BbKDEpIC0gKDQpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKS0+aXNW
ZWN0b3IoKSkgewotICAgICAgICAgICAgVFF1YWxpZmllciBxdWFsaWZpZXIgPSAoeXl2c3BbKDEp
IC0gKDQpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKS0+Z2V0VHlwZSgpLmdldFF1YWxpZmllcigp
ID09IEV2cUNvbnN0ID8gRXZxQ29uc3QgOiBFdnFUZW1wb3Jhcnk7Ci0gICAgICAgICAgICAoeXl2
YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSktPnNldFR5cGUoVFR5cGUoKHl5dnNwWygxKSAtICg0
KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldEJhc2ljVHlwZSgpLCAoeXl2c3BbKDEpIC0g
KDQpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKS0+Z2V0UHJlY2lzaW9uKCksIHF1YWxpZmllcikp
OwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1UeXBl
ZE5vZGUpLT5zZXRUeXBlKCh5eXZzcFsoMSkgLSAoNCldLmludGVybS5pbnRlcm1UeXBlZE5vZGUp
LT5nZXRUeXBlKCkpOwotICAgICAgICB9Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDEy
OgotCi0gICAgewotICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSAoeXl2
c3BbKDEpIC0gKDEpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKTsKLSAgICA7fQotICAgIGJyZWFr
OwotCi0gIGNhc2UgMTM6Ci0KLSAgICB7Ci0gICAgICAgIGlmICgoeXl2c3BbKDEpIC0gKDMpXS5p
bnRlcm0uaW50ZXJtVHlwZWROb2RlKS0+aXNBcnJheSgpKSB7Ci0gICAgICAgICAgICBjb250ZXh0
LT5lcnJvcigoeXlsc3BbKDMpIC0gKDMpXSksICJjYW5ub3QgYXBwbHkgZG90IG9wZXJhdG9yIHRv
IGFuIGFycmF5IiwgIi4iKTsKLSAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLSAgICAg
ICAgfQotCi0gICAgICAgIGlmICgoeXl2c3BbKDEpIC0gKDMpXS5pbnRlcm0uaW50ZXJtVHlwZWRO
b2RlKS0+aXNWZWN0b3IoKSkgewotICAgICAgICAgICAgVFZlY3RvckZpZWxkcyBmaWVsZHM7Ci0g
ICAgICAgICAgICBpZiAoISBjb250ZXh0LT5wYXJzZVZlY3RvckZpZWxkcygqKHl5dnNwWygzKSAt
ICgzKV0ubGV4KS5zdHJpbmcsICh5eXZzcFsoMSkgLSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5v
ZGUpLT5nZXROb21pbmFsU2l6ZSgpLCBmaWVsZHMsICh5eWxzcFsoMykgLSAoMyldKSkpIHsKLSAg
ICAgICAgICAgICAgICBmaWVsZHMubnVtID0gMTsKLSAgICAgICAgICAgICAgICBmaWVsZHMub2Zm
c2V0c1swXSA9IDA7Ci0gICAgICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAg
ICAgICAgfQotCi0gICAgICAgICAgICBpZiAoKHl5dnNwWygxKSAtICgzKV0uaW50ZXJtLmludGVy
bVR5cGVkTm9kZSktPmdldFR5cGUoKS5nZXRRdWFsaWZpZXIoKSA9PSBFdnFDb25zdCkgeyAvLyBj
b25zdGFudCBmb2xkaW5nIGZvciB2ZWN0b3IgZmllbGRzCi0gICAgICAgICAgICAgICAgKHl5dmFs
LmludGVybS5pbnRlcm1UeXBlZE5vZGUpID0gY29udGV4dC0+YWRkQ29uc3RWZWN0b3JOb2RlKGZp
ZWxkcywgKHl5dnNwWygxKSAtICgzKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSksICh5eWxzcFso
MykgLSAoMyldKSk7Ci0gICAgICAgICAgICAgICAgaWYgKCh5eXZhbC5pbnRlcm0uaW50ZXJtVHlw
ZWROb2RlKSA9PSAwKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsK
LSAgICAgICAgICAgICAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpID0gKHl5
dnNwWygxKSAtICgzKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSk7Ci0gICAgICAgICAgICAgICAg
fQotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAgICAgICAgKHl5dmFsLmludGVy
bS5pbnRlcm1UeXBlZE5vZGUpLT5zZXRUeXBlKFRUeXBlKCh5eXZzcFsoMSkgLSAoMyldLmludGVy
bS5pbnRlcm1UeXBlZE5vZGUpLT5nZXRCYXNpY1R5cGUoKSwgKHl5dnNwWygxKSAtICgzKV0uaW50
ZXJtLmludGVybVR5cGVkTm9kZSktPmdldFByZWNpc2lvbigpLCBFdnFDb25zdCwgKGludCkgKCoo
eXl2c3BbKDMpIC0gKDMpXS5sZXgpLnN0cmluZykuc2l6ZSgpKSk7Ci0gICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgIFRTdHJpbmcgdmVjdG9yU3RyaW5nID0gKih5eXZzcFsoMykg
LSAoMyldLmxleCkuc3RyaW5nOwotICAgICAgICAgICAgICAgIFRJbnRlcm1UeXBlZCogaW5kZXgg
PSBjb250ZXh0LT5pbnRlcm1lZGlhdGUuYWRkU3dpenpsZShmaWVsZHMsICh5eWxzcFsoMykgLSAo
MyldKSk7Ci0gICAgICAgICAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpID0g
Y29udGV4dC0+aW50ZXJtZWRpYXRlLmFkZEluZGV4KEVPcFZlY3RvclN3aXp6bGUsICh5eXZzcFso
MSkgLSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLCBpbmRleCwgKHl5bHNwWygyKSAtICgz
KV0pKTsKLSAgICAgICAgICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSktPnNl
dFR5cGUoVFR5cGUoKHl5dnNwWygxKSAtICgzKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdl
dEJhc2ljVHlwZSgpLCAoeXl2c3BbKDEpIC0gKDMpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKS0+
Z2V0UHJlY2lzaW9uKCksIEV2cVRlbXBvcmFyeSwgKGludCkgdmVjdG9yU3RyaW5nLnNpemUoKSkp
OwotICAgICAgICAgICAgfQotICAgICAgICB9IGVsc2UgaWYgKCh5eXZzcFsoMSkgLSAoMyldLmlu
dGVybS5pbnRlcm1UeXBlZE5vZGUpLT5pc01hdHJpeCgpKSB7Ci0gICAgICAgICAgICBUTWF0cml4
RmllbGRzIGZpZWxkczsKLSAgICAgICAgICAgIGlmICghIGNvbnRleHQtPnBhcnNlTWF0cml4Rmll
bGRzKCooeXl2c3BbKDMpIC0gKDMpXS5sZXgpLnN0cmluZywgKHl5dnNwWygxKSAtICgzKV0uaW50
ZXJtLmludGVybVR5cGVkTm9kZSktPmdldE5vbWluYWxTaXplKCksIGZpZWxkcywgKHl5bHNwWygz
KSAtICgzKV0pKSkgewotICAgICAgICAgICAgICAgIGZpZWxkcy53aG9sZVJvdyA9IGZhbHNlOwot
ICAgICAgICAgICAgICAgIGZpZWxkcy53aG9sZUNvbCA9IGZhbHNlOwotICAgICAgICAgICAgICAg
IGZpZWxkcy5yb3cgPSAwOwotICAgICAgICAgICAgICAgIGZpZWxkcy5jb2wgPSAwOwotICAgICAg
ICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAg
ICAgaWYgKGZpZWxkcy53aG9sZVJvdyB8fCBmaWVsZHMud2hvbGVDb2wpIHsKLSAgICAgICAgICAg
ICAgICBjb250ZXh0LT5lcnJvcigoeXlsc3BbKDIpIC0gKDMpXSksICIgbm9uLXNjYWxhciBmaWVs
ZHMgbm90IGltcGxlbWVudGVkIHlldCIsICIuIik7Ci0gICAgICAgICAgICAgICAgY29udGV4dC0+
cmVjb3ZlcigpOwotICAgICAgICAgICAgICAgIENvbnN0YW50VW5pb24gKnVuaW9uQXJyYXkgPSBu
ZXcgQ29uc3RhbnRVbmlvblsxXTsKLSAgICAgICAgICAgICAgICB1bmlvbkFycmF5LT5zZXRJQ29u
c3QoMCk7Ci0gICAgICAgICAgICAgICAgVEludGVybVR5cGVkKiBpbmRleCA9IGNvbnRleHQtPmlu
dGVybWVkaWF0ZS5hZGRDb25zdGFudFVuaW9uKHVuaW9uQXJyYXksIFRUeXBlKEVidEludCwgRWJw
VW5kZWZpbmVkLCBFdnFDb25zdCksICh5eWxzcFsoMykgLSAoMyldKSk7Ci0gICAgICAgICAgICAg
ICAgKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpID0gY29udGV4dC0+aW50ZXJtZWRpYXRl
LmFkZEluZGV4KEVPcEluZGV4RGlyZWN0LCAoeXl2c3BbKDEpIC0gKDMpXS5pbnRlcm0uaW50ZXJt
VHlwZWROb2RlKSwgaW5kZXgsICh5eWxzcFsoMikgLSAoMyldKSk7Ci0gICAgICAgICAgICAgICAg
KHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5zZXRUeXBlKFRUeXBlKCh5eXZzcFsoMSkg
LSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5nZXRCYXNpY1R5cGUoKSwgKHl5dnNwWygx
KSAtICgzKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldFByZWNpc2lvbigpLEV2cVRlbXBv
cmFyeSwgKHl5dnNwWygxKSAtICgzKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldE5vbWlu
YWxTaXplKCkpKTsKLSAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgQ29uc3Rh
bnRVbmlvbiAqdW5pb25BcnJheSA9IG5ldyBDb25zdGFudFVuaW9uWzFdOwotICAgICAgICAgICAg
ICAgIHVuaW9uQXJyYXktPnNldElDb25zdChmaWVsZHMuY29sICogKHl5dnNwWygxKSAtICgzKV0u
aW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldE5vbWluYWxTaXplKCkgKyBmaWVsZHMucm93KTsK
LSAgICAgICAgICAgICAgICBUSW50ZXJtVHlwZWQqIGluZGV4ID0gY29udGV4dC0+aW50ZXJtZWRp
YXRlLmFkZENvbnN0YW50VW5pb24odW5pb25BcnJheSwgVFR5cGUoRWJ0SW50LCBFYnBVbmRlZmlu
ZWQsIEV2cUNvbnN0KSwgKHl5bHNwWygzKSAtICgzKV0pKTsKLSAgICAgICAgICAgICAgICAoeXl2
YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSBjb250ZXh0LT5pbnRlcm1lZGlhdGUuYWRkSW5k
ZXgoRU9wSW5kZXhEaXJlY3QsICh5eXZzcFsoMSkgLSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5v
ZGUpLCBpbmRleCwgKHl5bHNwWygyKSAtICgzKV0pKTsKLSAgICAgICAgICAgICAgICAoeXl2YWwu
aW50ZXJtLmludGVybVR5cGVkTm9kZSktPnNldFR5cGUoVFR5cGUoKHl5dnNwWygxKSAtICgzKV0u
aW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldEJhc2ljVHlwZSgpLCAoeXl2c3BbKDEpIC0gKDMp
XS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKS0+Z2V0UHJlY2lzaW9uKCkpKTsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfSBlbHNlIGlmICgoeXl2c3BbKDEpIC0gKDMpXS5pbnRlcm0uaW50ZXJtVHlw
ZWROb2RlKS0+Z2V0QmFzaWNUeXBlKCkgPT0gRWJ0U3RydWN0KSB7Ci0gICAgICAgICAgICBib29s
IGZpZWxkRm91bmQgPSBmYWxzZTsKLSAgICAgICAgICAgIGNvbnN0IFRGaWVsZExpc3QmIGZpZWxk
cyA9ICh5eXZzcFsoMSkgLSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5nZXRUeXBlKCku
Z2V0U3RydWN0KCktPmZpZWxkcygpOwotICAgICAgICAgICAgdW5zaWduZWQgaW50IGk7Ci0gICAg
ICAgICAgICBmb3IgKGkgPSAwOyBpIDwgZmllbGRzLnNpemUoKTsgKytpKSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKGZpZWxkc1tpXS0+bmFtZSgpID09ICooeXl2c3BbKDMpIC0gKDMpXS5sZXgpLnN0
cmluZykgewotICAgICAgICAgICAgICAgICAgICBmaWVsZEZvdW5kID0gdHJ1ZTsKLSAgICAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAg
ICAgICAgICAgaWYgKGZpZWxkRm91bmQpIHsKLSAgICAgICAgICAgICAgICBpZiAoKHl5dnNwWygx
KSAtICgzKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldFR5cGUoKS5nZXRRdWFsaWZpZXIo
KSA9PSBFdnFDb25zdCkgewotICAgICAgICAgICAgICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVy
bVR5cGVkTm9kZSkgPSBjb250ZXh0LT5hZGRDb25zdFN0cnVjdCgqKHl5dnNwWygzKSAtICgzKV0u
bGV4KS5zdHJpbmcsICh5eXZzcFsoMSkgLSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLCAo
eXlsc3BbKDIpIC0gKDMpXSkpOwotICAgICAgICAgICAgICAgICAgICBpZiAoKHl5dmFsLmludGVy
bS5pbnRlcm1UeXBlZE5vZGUpID09IDApIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRl
eHQtPnJlY292ZXIoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICh5eXZhbC5pbnRlcm0uaW50
ZXJtVHlwZWROb2RlKSA9ICh5eXZzcFsoMSkgLSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5vZGUp
OwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIGVsc2UgewotICAg
ICAgICAgICAgICAgICAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5zZXRU
eXBlKCpmaWVsZHNbaV0tPnR5cGUoKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLyBjaGFu
Z2UgdGhlIHF1YWxpZmllciBvZiB0aGUgcmV0dXJuIHR5cGUsIG5vdCBvZiB0aGUgc3RydWN0dXJl
IGZpZWxkCi0gICAgICAgICAgICAgICAgICAgICAgICAvLyBhcyB0aGUgc3RydWN0dXJlIGRlZmlu
aXRpb24gaXMgc2hhcmVkIGJldHdlZW4gdmFyaW91cyBzdHJ1Y3R1cmVzLgotICAgICAgICAgICAg
ICAgICAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5nZXRUeXBlUG9pbnRl
cigpLT5zZXRRdWFsaWZpZXIoRXZxQ29uc3QpOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAgICAgQ29uc3RhbnRVbmlvbiAq
dW5pb25BcnJheSA9IG5ldyBDb25zdGFudFVuaW9uWzFdOwotICAgICAgICAgICAgICAgICAgICB1
bmlvbkFycmF5LT5zZXRJQ29uc3QoaSk7Ci0gICAgICAgICAgICAgICAgICAgIFRJbnRlcm1UeXBl
ZCogaW5kZXggPSBjb250ZXh0LT5pbnRlcm1lZGlhdGUuYWRkQ29uc3RhbnRVbmlvbih1bmlvbkFy
cmF5LCAqZmllbGRzW2ldLT50eXBlKCksICh5eWxzcFsoMykgLSAoMyldKSk7Ci0gICAgICAgICAg
ICAgICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSA9IGNvbnRleHQtPmludGVy
bWVkaWF0ZS5hZGRJbmRleChFT3BJbmRleERpcmVjdFN0cnVjdCwgKHl5dnNwWygxKSAtICgzKV0u
aW50ZXJtLmludGVybVR5cGVkTm9kZSksIGluZGV4LCAoeXlsc3BbKDIpIC0gKDMpXSkpOwotICAg
ICAgICAgICAgICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSktPnNldFR5cGUo
KmZpZWxkc1tpXS0+dHlwZSgpKTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9IGVs
c2UgewotICAgICAgICAgICAgICAgIGNvbnRleHQtPmVycm9yKCh5eWxzcFsoMikgLSAoMyldKSwg
IiBubyBzdWNoIGZpZWxkIGluIHN0cnVjdHVyZSIsICh5eXZzcFsoMykgLSAoMyldLmxleCkuc3Ry
aW5nLT5jX3N0cigpKTsKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0gICAg
ICAgICAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpID0gKHl5dnNwWygxKSAt
ICgzKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBjb250ZXh0LT5lcnJvcigoeXlsc3BbKDIpIC0gKDMpXSksICIg
ZmllbGQgc2VsZWN0aW9uIHJlcXVpcmVzIHN0cnVjdHVyZSwgdmVjdG9yLCBvciBtYXRyaXggb24g
bGVmdCBoYW5kIHNpZGUiLCAoeXl2c3BbKDMpIC0gKDMpXS5sZXgpLnN0cmluZy0+Y19zdHIoKSk7
Ci0gICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0gICAgICAgICAgICAoeXl2YWwuaW50
ZXJtLmludGVybVR5cGVkTm9kZSkgPSAoeXl2c3BbKDEpIC0gKDMpXS5pbnRlcm0uaW50ZXJtVHlw
ZWROb2RlKTsKLSAgICAgICAgfQotICAgICAgICAvLyBkb24ndCBkZWxldGUgJDMuc3RyaW5nLCBp
dCdzIGZyb20gdGhlIHBvb2wKLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMTQ6Ci0KLSAg
ICB7Ci0gICAgICAgIGlmIChjb250ZXh0LT5sVmFsdWVFcnJvckNoZWNrKCh5eWxzcFsoMikgLSAo
MildKSwgIisrIiwgKHl5dnNwWygxKSAtICgyKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSkpKQot
ICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAgICAoeXl2YWwuaW50ZXJtLmlu
dGVybVR5cGVkTm9kZSkgPSBjb250ZXh0LT5pbnRlcm1lZGlhdGUuYWRkVW5hcnlNYXRoKEVPcFBv
c3RJbmNyZW1lbnQsICh5eXZzcFsoMSkgLSAoMildLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLCAo
eXlsc3BbKDIpIC0gKDIpXSksIGNvbnRleHQtPnN5bWJvbFRhYmxlKTsKLSAgICAgICAgaWYgKCh5
eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSA9PSAwKSB7Ci0gICAgICAgICAgICBjb250ZXh0
LT51bmFyeU9wRXJyb3IoKHl5bHNwWygyKSAtICgyKV0pLCAiKysiLCAoeXl2c3BbKDEpIC0gKDIp
XS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKS0+Z2V0Q29tcGxldGVTdHJpbmcoKSk7Ci0gICAgICAg
ICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0gICAgICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVy
bVR5cGVkTm9kZSkgPSAoeXl2c3BbKDEpIC0gKDIpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKTsK
LSAgICAgICAgfQotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxNToKLQotICAgIHsKLSAg
ICAgICAgaWYgKGNvbnRleHQtPmxWYWx1ZUVycm9yQ2hlY2soKHl5bHNwWygyKSAtICgyKV0pLCAi
LS0iLCAoeXl2c3BbKDEpIC0gKDIpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSkpCi0gICAgICAg
ICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlw
ZWROb2RlKSA9IGNvbnRleHQtPmludGVybWVkaWF0ZS5hZGRVbmFyeU1hdGgoRU9wUG9zdERlY3Jl
bWVudCwgKHl5dnNwWygxKSAtICgyKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSksICh5eWxzcFso
MikgLSAoMildKSwgY29udGV4dC0+c3ltYm9sVGFibGUpOwotICAgICAgICBpZiAoKHl5dmFsLmlu
dGVybS5pbnRlcm1UeXBlZE5vZGUpID09IDApIHsKLSAgICAgICAgICAgIGNvbnRleHQtPnVuYXJ5
T3BFcnJvcigoeXlsc3BbKDIpIC0gKDIpXSksICItLSIsICh5eXZzcFsoMSkgLSAoMildLmludGVy
bS5pbnRlcm1UeXBlZE5vZGUpLT5nZXRDb21wbGV0ZVN0cmluZygpKTsKLSAgICAgICAgICAgIGNv
bnRleHQtPnJlY292ZXIoKTsKLSAgICAgICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWRO
b2RlKSA9ICh5eXZzcFsoMSkgLSAoMildLmludGVybS5pbnRlcm1UeXBlZE5vZGUpOwotICAgICAg
ICB9Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDE2OgotCi0gICAgewotICAgICAgICBp
ZiAoY29udGV4dC0+aW50ZWdlckVycm9yQ2hlY2soKHl5dnNwWygxKSAtICgxKV0uaW50ZXJtLmlu
dGVybVR5cGVkTm9kZSksICJbXSIpKQotICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwot
ICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSAoeXl2c3BbKDEpIC0gKDEp
XS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKTsKLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2Ug
MTc6Ci0KLSAgICB7Ci0gICAgICAgIFRGdW5jdGlvbiogZm5DYWxsID0gKHl5dnNwWygxKSAtICgx
KV0uaW50ZXJtKS5mdW5jdGlvbjsKLSAgICAgICAgVE9wZXJhdG9yIG9wID0gZm5DYWxsLT5nZXRC
dWlsdEluT3AoKTsKLQotICAgICAgICBpZiAob3AgIT0gRU9wTnVsbCkKLSAgICAgICAgewotICAg
ICAgICAgICAgLy8KLSAgICAgICAgICAgIC8vIFRoZW4gdGhpcyBzaG91bGQgYmUgYSBjb25zdHJ1
Y3Rvci4KLSAgICAgICAgICAgIC8vIERvbid0IGdvIHRocm91Z2ggdGhlIHN5bWJvbCB0YWJsZSBm
b3IgY29uc3RydWN0b3JzLgotICAgICAgICAgICAgLy8gVGhlaXIgcGFyYW1ldGVycyB3aWxsIGJl
IHZlcmlmaWVkIGFsZ29yaXRobWljYWxseS4KLSAgICAgICAgICAgIC8vCi0gICAgICAgICAgICBU
VHlwZSB0eXBlKEVidFZvaWQsIEVicFVuZGVmaW5lZCk7ICAvLyB1c2UgdGhpcyB0byBnZXQgdGhl
IHR5cGUgYmFjawotICAgICAgICAgICAgaWYgKGNvbnRleHQtPmNvbnN0cnVjdG9yRXJyb3JDaGVj
aygoeXlsc3BbKDEpIC0gKDEpXSksICh5eXZzcFsoMSkgLSAoMSldLmludGVybSkuaW50ZXJtTm9k
ZSwgKmZuQ2FsbCwgb3AsICZ0eXBlKSkgewotICAgICAgICAgICAgICAgICh5eXZhbC5pbnRlcm0u
aW50ZXJtVHlwZWROb2RlKSA9IDA7Ci0gICAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAg
ICAgIC8vCi0gICAgICAgICAgICAgICAgLy8gSXQncyBhIGNvbnN0cnVjdG9yLCBvZiB0eXBlICd0
eXBlJy4KLSAgICAgICAgICAgICAgICAvLwotICAgICAgICAgICAgICAgICh5eXZhbC5pbnRlcm0u
aW50ZXJtVHlwZWROb2RlKSA9IGNvbnRleHQtPmFkZENvbnN0cnVjdG9yKCh5eXZzcFsoMSkgLSAo
MSldLmludGVybSkuaW50ZXJtTm9kZSwgJnR5cGUsIG9wLCBmbkNhbGwsICh5eWxzcFsoMSkgLSAo
MSldKSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICgoeXl2YWwuaW50ZXJtLmlu
dGVybVR5cGVkTm9kZSkgPT0gMCkgewotICAgICAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIo
KTsKLSAgICAgICAgICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSBjb250
ZXh0LT5pbnRlcm1lZGlhdGUuc2V0QWdncmVnYXRlT3BlcmF0b3IoMCwgb3AsICh5eWxzcFsoMSkg
LSAoMSldKSk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVy
bVR5cGVkTm9kZSktPnNldFR5cGUodHlwZSk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAg
ICAvLwotICAgICAgICAgICAgLy8gTm90IGEgY29uc3RydWN0b3IuICBGaW5kIGl0IGluIHRoZSBz
eW1ib2wgdGFibGUuCi0gICAgICAgICAgICAvLwotICAgICAgICAgICAgY29uc3QgVEZ1bmN0aW9u
KiBmbkNhbmRpZGF0ZTsKLSAgICAgICAgICAgIGJvb2wgYnVpbHRJbjsKLSAgICAgICAgICAgIGZu
Q2FuZGlkYXRlID0gY29udGV4dC0+ZmluZEZ1bmN0aW9uKCh5eWxzcFsoMSkgLSAoMSldKSwgZm5D
YWxsLCAmYnVpbHRJbik7Ci0gICAgICAgICAgICBpZiAoZm5DYW5kaWRhdGUpIHsKLSAgICAgICAg
ICAgICAgICAvLwotICAgICAgICAgICAgICAgIC8vIEEgZGVjbGFyZWQgZnVuY3Rpb24uCi0gICAg
ICAgICAgICAgICAgLy8KLSAgICAgICAgICAgICAgICBpZiAoYnVpbHRJbiAmJiAhZm5DYW5kaWRh
dGUtPmdldEV4dGVuc2lvbigpLmVtcHR5KCkgJiYKLSAgICAgICAgICAgICAgICAgICAgY29udGV4
dC0+ZXh0ZW5zaW9uRXJyb3JDaGVjaygoeXlsc3BbKDEpIC0gKDEpXSksIGZuQ2FuZGlkYXRlLT5n
ZXRFeHRlbnNpb24oKSkpIHsKLSAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+cmVjb3Zlcigp
OwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBvcCA9IGZuQ2FuZGlkYXRlLT5n
ZXRCdWlsdEluT3AoKTsKLSAgICAgICAgICAgICAgICBpZiAoYnVpbHRJbiAmJiBvcCAhPSBFT3BO
dWxsKSB7Ci0gICAgICAgICAgICAgICAgICAgIC8vCi0gICAgICAgICAgICAgICAgICAgIC8vIEEg
ZnVuY3Rpb24gY2FsbCBtYXBwZWQgdG8gYSBidWlsdC1pbiBvcGVyYXRpb24uCi0gICAgICAgICAg
ICAgICAgICAgIC8vCi0gICAgICAgICAgICAgICAgICAgIGlmIChmbkNhbmRpZGF0ZS0+Z2V0UGFy
YW1Db3VudCgpID09IDEpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIC8vCi0gICAgICAgICAg
ICAgICAgICAgICAgICAvLyBUcmVhdCBpdCBsaWtlIGEgYnVpbHQtaW4gdW5hcnkgb3BlcmF0b3Iu
Ci0gICAgICAgICAgICAgICAgICAgICAgICAvLwotICAgICAgICAgICAgICAgICAgICAgICAgKHl5
dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpID0gY29udGV4dC0+aW50ZXJtZWRpYXRlLmFkZFVu
YXJ5TWF0aChvcCwgKHl5dnNwWygxKSAtICgxKV0uaW50ZXJtKS5pbnRlcm1Ob2RlLCAoeXlsc3Bb
KDEpIC0gKDEpXSksIGNvbnRleHQtPnN5bWJvbFRhYmxlKTsKLSAgICAgICAgICAgICAgICAgICAg
ICAgIGlmICgoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPT0gMCkgIHsKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZ3N0cmVhbSBleHRyYUluZm9TdHJlYW07Ci0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgZXh0cmFJbmZvU3RyZWFtIDw8ICJidWlsdCBpbiB1
bmFyeSBvcGVyYXRvciBmdW5jdGlvbi4gIFR5cGU6ICIgPDwgc3RhdGljX2Nhc3Q8VEludGVybVR5
cGVkKj4oKHl5dnNwWygxKSAtICgxKV0uaW50ZXJtKS5pbnRlcm1Ob2RlKS0+Z2V0Q29tcGxldGVT
dHJpbmcoKTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGQ6OnN0cmluZyBleHRyYUlu
Zm8gPSBleHRyYUluZm9TdHJlYW0uc3RyKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29udGV4dC0+ZXJyb3IoKHl5dnNwWygxKSAtICgxKV0uaW50ZXJtKS5pbnRlcm1Ob2RlLT5nZXRM
aW5lKCksICIgd3Jvbmcgb3BlcmFuZCB0eXBlIiwgIkludGVybmFsIEVycm9yIiwgZXh0cmFJbmZv
LmNfc3RyKCkpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAgIFlZRVJST1I7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAg
ICAgICAgICAgICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSBjb250ZXh0
LT5pbnRlcm1lZGlhdGUuc2V0QWdncmVnYXRlT3BlcmF0b3IoKHl5dnNwWygxKSAtICgxKV0uaW50
ZXJtKS5pbnRlcm1BZ2dyZWdhdGUsIG9wLCAoeXlsc3BbKDEpIC0gKDEpXSkpOwotICAgICAgICAg
ICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICAg
ICAgLy8gVGhpcyBpcyBhIHJlYWwgZnVuY3Rpb24gY2FsbAotCi0gICAgICAgICAgICAgICAgICAg
ICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSA9IGNvbnRleHQtPmludGVybWVkaWF0ZS5z
ZXRBZ2dyZWdhdGVPcGVyYXRvcigoeXl2c3BbKDEpIC0gKDEpXS5pbnRlcm0pLmludGVybUFnZ3Jl
Z2F0ZSwgRU9wRnVuY3Rpb25DYWxsLCAoeXlsc3BbKDEpIC0gKDEpXSkpOwotICAgICAgICAgICAg
ICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSktPnNldFR5cGUoZm5DYW5kaWRh
dGUtPmdldFJldHVyblR5cGUoKSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgLy8gdGhpcyBpcyBo
b3cgd2Uga25vdyB3aGV0aGVyIHRoZSBnaXZlbiBmdW5jdGlvbiBpcyBhIGJ1aWx0SW4gZnVuY3Rp
b24gb3IgYSB1c2VyIGRlZmluZWQgZnVuY3Rpb24KLSAgICAgICAgICAgICAgICAgICAgLy8gaWYg
YnVpbHRJbiA9PSBmYWxzZSwgaXQncyBhIHVzZXJEZWZpbmVkIC0+IGNvdWxkIGJlIGFuIG92ZXJs
b2FkZWQgYnVpbHRJbiBmdW5jdGlvbiBhbHNvCi0gICAgICAgICAgICAgICAgICAgIC8vIGlmIGJ1
aWx0SW4gPT0gdHJ1ZSwgaXQncyBkZWZpbml0ZWx5IGEgYnVpbHRJbiBmdW5jdGlvbiB3aXRoIEVP
cE51bGwKLSAgICAgICAgICAgICAgICAgICAgaWYgKCFidWlsdEluKQotICAgICAgICAgICAgICAg
ICAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5nZXRBc0FnZ3JlZ2F0ZSgp
LT5zZXRVc2VyRGVmaW5lZCgpOwotICAgICAgICAgICAgICAgICAgICAoeXl2YWwuaW50ZXJtLmlu
dGVybVR5cGVkTm9kZSktPmdldEFzQWdncmVnYXRlKCktPnNldE5hbWUoZm5DYW5kaWRhdGUtPmdl
dE1hbmdsZWROYW1lKCkpOwotCi0gICAgICAgICAgICAgICAgICAgIFRRdWFsaWZpZXIgcXVhbDsK
LSAgICAgICAgICAgICAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmbkNhbmRpZGF0ZS0+
Z2V0UGFyYW1Db3VudCgpOyArK2kpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIHF1YWwgPSBm
bkNhbmRpZGF0ZS0+Z2V0UGFyYW0oaSkudHlwZS0+Z2V0UXVhbGlmaWVyKCk7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICBpZiAocXVhbCA9PSBFdnFPdXQgfHwgcXVhbCA9PSBFdnFJbk91dCkgewot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb250ZXh0LT5sVmFsdWVFcnJvckNoZWNr
KCh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKS0+Z2V0TGluZSgpLCAiYXNzaWduIiwgKHl5
dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5nZXRBc0FnZ3JlZ2F0ZSgpLT5nZXRTZXF1ZW5j
ZSgpW2ldLT5nZXRBc1R5cGVkKCkpKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IGNvbnRleHQtPmVycm9yKCh5eXZzcFsoMSkgLSAoMSldLmludGVybSkuaW50ZXJtTm9kZS0+Z2V0
TGluZSgpLCAiQ29uc3RhbnQgdmFsdWUgY2Fubm90IGJlIHBhc3NlZCBmb3IgJ291dCcgb3IgJ2lu
b3V0JyBwYXJhbWV0ZXJzLiIsICJFcnJvciIpOwotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgfQot
ICAgICAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgfQotICAgICAgICAgICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2Rl
KS0+c2V0VHlwZShmbkNhbmRpZGF0ZS0+Z2V0UmV0dXJuVHlwZSgpKTsKLSAgICAgICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICAgICAgLy8gZXJyb3IgbWVzc2FnZSB3YXMgcHV0IG91dCBieSBQ
YUZpbmRGdW5jdGlvbigpCi0gICAgICAgICAgICAgICAgLy8gUHV0IG9uIGEgZHVtbXkgbm9kZSBm
b3IgZXJyb3IgcmVjb3ZlcnkKLSAgICAgICAgICAgICAgICBDb25zdGFudFVuaW9uICp1bmlvbkFy
cmF5ID0gbmV3IENvbnN0YW50VW5pb25bMV07Ci0gICAgICAgICAgICAgICAgdW5pb25BcnJheS0+
c2V0RkNvbnN0KDAuMGYpOwotICAgICAgICAgICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlw
ZWROb2RlKSA9IGNvbnRleHQtPmludGVybWVkaWF0ZS5hZGRDb25zdGFudFVuaW9uKHVuaW9uQXJy
YXksIFRUeXBlKEVidEZsb2F0LCBFYnBVbmRlZmluZWQsIEV2cUNvbnN0KSwgKHl5bHNwWygxKSAt
ICgxKV0pKTsKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0gICAgICAgICAg
ICB9Ci0gICAgICAgIH0KLSAgICAgICAgZGVsZXRlIGZuQ2FsbDsKLSAgICA7fQotICAgIGJyZWFr
OwotCi0gIGNhc2UgMTg6Ci0KLSAgICB7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0pID0gKHl5dnNw
WygxKSAtICgxKV0uaW50ZXJtKTsKLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMTk6Ci0K
LSAgICB7Ci0gICAgICAgIGNvbnRleHQtPmVycm9yKCh5eWxzcFsoMykgLSAoMyldKSwgIm1ldGhv
ZHMgYXJlIG5vdCBzdXBwb3J0ZWQiLCAiIik7Ci0gICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsK
LSAgICAgICAgKHl5dmFsLmludGVybSkgPSAoeXl2c3BbKDMpIC0gKDMpXS5pbnRlcm0pOwotICAg
IDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAyMDoKLQotICAgIHsKLSAgICAgICAgKHl5dmFsLmlu
dGVybSkgPSAoeXl2c3BbKDEpIC0gKDIpXS5pbnRlcm0pOwotICAgIDt9Ci0gICAgYnJlYWs7Ci0K
LSAgY2FzZSAyMToKLQotICAgIHsKLSAgICAgICAgKHl5dmFsLmludGVybSkgPSAoeXl2c3BbKDEp
IC0gKDIpXS5pbnRlcm0pOwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAyMjoKLQotICAg
IHsKLSAgICAgICAgKHl5dmFsLmludGVybSkuZnVuY3Rpb24gPSAoeXl2c3BbKDEpIC0gKDIpXS5p
bnRlcm0uZnVuY3Rpb24pOwotICAgICAgICAoeXl2YWwuaW50ZXJtKS5pbnRlcm1Ob2RlID0gMDsK
LSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMjM6Ci0KLSAgICB7Ci0gICAgICAgICh5eXZh
bC5pbnRlcm0pLmZ1bmN0aW9uID0gKHl5dnNwWygxKSAtICgxKV0uaW50ZXJtLmZ1bmN0aW9uKTsK
LSAgICAgICAgKHl5dmFsLmludGVybSkuaW50ZXJtTm9kZSA9IDA7Ci0gICAgO30KLSAgICBicmVh
azsKLQotICBjYXNlIDI0OgotCi0gICAgewotICAgICAgICBUUGFyYW1ldGVyIHBhcmFtID0geyAw
LCBuZXcgVFR5cGUoKHl5dnNwWygyKSAtICgyKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdl
dFR5cGUoKSkgfTsKLSAgICAgICAgKHl5dnNwWygxKSAtICgyKV0uaW50ZXJtLmZ1bmN0aW9uKS0+
YWRkUGFyYW1ldGVyKHBhcmFtKTsKLSAgICAgICAgKHl5dmFsLmludGVybSkuZnVuY3Rpb24gPSAo
eXl2c3BbKDEpIC0gKDIpXS5pbnRlcm0uZnVuY3Rpb24pOwotICAgICAgICAoeXl2YWwuaW50ZXJt
KS5pbnRlcm1Ob2RlID0gKHl5dnNwWygyKSAtICgyKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSk7
Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDI1OgotCi0gICAgewotICAgICAgICBUUGFy
YW1ldGVyIHBhcmFtID0geyAwLCBuZXcgVFR5cGUoKHl5dnNwWygzKSAtICgzKV0uaW50ZXJtLmlu
dGVybVR5cGVkTm9kZSktPmdldFR5cGUoKSkgfTsKLSAgICAgICAgKHl5dnNwWygxKSAtICgzKV0u
aW50ZXJtKS5mdW5jdGlvbi0+YWRkUGFyYW1ldGVyKHBhcmFtKTsKLSAgICAgICAgKHl5dmFsLmlu
dGVybSkuZnVuY3Rpb24gPSAoeXl2c3BbKDEpIC0gKDMpXS5pbnRlcm0pLmZ1bmN0aW9uOwotICAg
ICAgICAoeXl2YWwuaW50ZXJtKS5pbnRlcm1Ob2RlID0gY29udGV4dC0+aW50ZXJtZWRpYXRlLmdy
b3dBZ2dyZWdhdGUoKHl5dnNwWygxKSAtICgzKV0uaW50ZXJtKS5pbnRlcm1Ob2RlLCAoeXl2c3Bb
KDMpIC0gKDMpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSwgKHl5bHNwWygyKSAtICgzKV0pKTsK
LSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMjY6Ci0KLSAgICB7Ci0gICAgICAgICh5eXZh
bC5pbnRlcm0uZnVuY3Rpb24pID0gKHl5dnNwWygxKSAtICgyKV0uaW50ZXJtLmZ1bmN0aW9uKTsK
LSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMjc6Ci0KLSAgICB7Ci0gICAgICAgIC8vCi0g
ICAgICAgIC8vIENvbnN0cnVjdG9yCi0gICAgICAgIC8vCi0gICAgICAgIFRPcGVyYXRvciBvcCA9
IEVPcE51bGw7Ci0gICAgICAgIGlmICgoeXl2c3BbKDEpIC0gKDEpXS5pbnRlcm0udHlwZSkudXNl
ckRlZikgewotICAgICAgICAgICAgb3AgPSBFT3BDb25zdHJ1Y3RTdHJ1Y3Q7Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBzd2l0Y2ggKCh5eXZzcFsoMSkgLSAoMSldLmludGVybS50eXBl
KS50eXBlKSB7Ci0gICAgICAgICAgICBjYXNlIEVidEZsb2F0OgotICAgICAgICAgICAgICAgIGlm
ICgoeXl2c3BbKDEpIC0gKDEpXS5pbnRlcm0udHlwZSkubWF0cml4KSB7Ci0gICAgICAgICAgICAg
ICAgICAgIHN3aXRjaCgoeXl2c3BbKDEpIC0gKDEpXS5pbnRlcm0udHlwZSkuc2l6ZSkgewotICAg
ICAgICAgICAgICAgICAgICBjYXNlIDI6IG9wID0gRU9wQ29uc3RydWN0TWF0MjsgIGJyZWFrOwot
ICAgICAgICAgICAgICAgICAgICBjYXNlIDM6IG9wID0gRU9wQ29uc3RydWN0TWF0MzsgIGJyZWFr
OwotICAgICAgICAgICAgICAgICAgICBjYXNlIDQ6IG9wID0gRU9wQ29uc3RydWN0TWF0NDsgIGJy
ZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgICAgICAgICAgc3dpdGNoKCh5eXZzcFsoMSkgLSAoMSldLmludGVybS50eXBlKS5z
aXplKSB7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgMTogb3AgPSBFT3BDb25zdHJ1Y3RGbG9h
dDsgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgMjogb3AgPSBFT3BDb25zdHJ1Y3RW
ZWMyOyAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgMzogb3AgPSBFT3BDb25zdHJ1
Y3RWZWMzOyAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIGNhc2UgNDogb3AgPSBFT3BDb25z
dHJ1Y3RWZWM0OyAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIEVidEludDoKLSAg
ICAgICAgICAgICAgICBzd2l0Y2goKHl5dnNwWygxKSAtICgxKV0uaW50ZXJtLnR5cGUpLnNpemUp
IHsKLSAgICAgICAgICAgICAgICBjYXNlIDE6IG9wID0gRU9wQ29uc3RydWN0SW50OyAgIGJyZWFr
OwotICAgICAgICAgICAgICAgIGNhc2UgMjogb3AgPSBFT3BDb25zdHJ1Y3RJVmVjMjsgYnJlYWs7
Ci0gICAgICAgICAgICAgICAgY2FzZSAzOiBvcCA9IEVPcENvbnN0cnVjdElWZWMzOyBicmVhazsK
LSAgICAgICAgICAgICAgICBjYXNlIDQ6IG9wID0gRU9wQ29uc3RydWN0SVZlYzQ7IGJyZWFrOwot
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIGNh
c2UgRWJ0Qm9vbDoKLSAgICAgICAgICAgICAgICBzd2l0Y2goKHl5dnNwWygxKSAtICgxKV0uaW50
ZXJtLnR5cGUpLnNpemUpIHsKLSAgICAgICAgICAgICAgICBjYXNlIDE6IG9wID0gRU9wQ29uc3Ry
dWN0Qm9vbDsgIGJyZWFrOwotICAgICAgICAgICAgICAgIGNhc2UgMjogb3AgPSBFT3BDb25zdHJ1
Y3RCVmVjMjsgYnJlYWs7Ci0gICAgICAgICAgICAgICAgY2FzZSAzOiBvcCA9IEVPcENvbnN0cnVj
dEJWZWMzOyBicmVhazsKLSAgICAgICAgICAgICAgICBjYXNlIDQ6IG9wID0gRU9wQ29uc3RydWN0
QlZlYzQ7IGJyZWFrOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBicmVhazsK
LSAgICAgICAgICAgIGRlZmF1bHQ6IGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICAgICAg
aWYgKG9wID09IEVPcE51bGwpIHsKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5lcnJvcigoeXls
c3BbKDEpIC0gKDEpXSksICJjYW5ub3QgY29uc3RydWN0IHRoaXMgdHlwZSIsIGdldEJhc2ljU3Ry
aW5nKCh5eXZzcFsoMSkgLSAoMSldLmludGVybS50eXBlKS50eXBlKSk7Ci0gICAgICAgICAgICAg
ICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAgICAgICAgICAgICh5eXZzcFsoMSkgLSAoMSld
LmludGVybS50eXBlKS50eXBlID0gRWJ0RmxvYXQ7Ci0gICAgICAgICAgICAgICAgb3AgPSBFT3BD
b25zdHJ1Y3RGbG9hdDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBUU3RyaW5n
IHRlbXBTdHJpbmc7Ci0gICAgICAgIFRUeXBlIHR5cGUoKHl5dnNwWygxKSAtICgxKV0uaW50ZXJt
LnR5cGUpKTsKLSAgICAgICAgVEZ1bmN0aW9uICpmdW5jdGlvbiA9IG5ldyBURnVuY3Rpb24oJnRl
bXBTdHJpbmcsIHR5cGUsIG9wKTsKLSAgICAgICAgKHl5dmFsLmludGVybS5mdW5jdGlvbikgPSBm
dW5jdGlvbjsKLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMjg6Ci0KLSAgICB7Ci0gICAg
ICAgIGlmIChjb250ZXh0LT5yZXNlcnZlZEVycm9yQ2hlY2soKHl5bHNwWygxKSAtICgxKV0pLCAq
KHl5dnNwWygxKSAtICgxKV0ubGV4KS5zdHJpbmcpKQotICAgICAgICAgICAgY29udGV4dC0+cmVj
b3ZlcigpOwotICAgICAgICBUVHlwZSB0eXBlKEVidFZvaWQsIEVicFVuZGVmaW5lZCk7Ci0gICAg
ICAgIFRGdW5jdGlvbiAqZnVuY3Rpb24gPSBuZXcgVEZ1bmN0aW9uKCh5eXZzcFsoMSkgLSAoMSld
LmxleCkuc3RyaW5nLCB0eXBlKTsKLSAgICAgICAgKHl5dmFsLmludGVybS5mdW5jdGlvbikgPSBm
dW5jdGlvbjsKLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMjk6Ci0KLSAgICB7Ci0gICAg
ICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSA9ICh5eXZzcFsoMSkgLSAoMSldLmlu
dGVybS5pbnRlcm1UeXBlZE5vZGUpOwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAzMDoK
LQotICAgIHsKLSAgICAgICAgaWYgKGNvbnRleHQtPmxWYWx1ZUVycm9yQ2hlY2soKHl5bHNwWygx
KSAtICgyKV0pLCAiKysiLCAoeXl2c3BbKDIpIC0gKDIpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2Rl
KSkpCi0gICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0gICAgICAgICh5eXZhbC5pbnRl
cm0uaW50ZXJtVHlwZWROb2RlKSA9IGNvbnRleHQtPmludGVybWVkaWF0ZS5hZGRVbmFyeU1hdGgo
RU9wUHJlSW5jcmVtZW50LCAoeXl2c3BbKDIpIC0gKDIpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2Rl
KSwgKHl5bHNwWygxKSAtICgyKV0pLCBjb250ZXh0LT5zeW1ib2xUYWJsZSk7Ci0gICAgICAgIGlm
ICgoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPT0gMCkgewotICAgICAgICAgICAgY29u
dGV4dC0+dW5hcnlPcEVycm9yKCh5eWxzcFsoMSkgLSAoMildKSwgIisrIiwgKHl5dnNwWygyKSAt
ICgyKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldENvbXBsZXRlU3RyaW5nKCkpOwotICAg
ICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAgICAgICAgKHl5dmFsLmludGVybS5p
bnRlcm1UeXBlZE5vZGUpID0gKHl5dnNwWygyKSAtICgyKV0uaW50ZXJtLmludGVybVR5cGVkTm9k
ZSk7Ci0gICAgICAgIH0KLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMzE6Ci0KLSAgICB7
Ci0gICAgICAgIGlmIChjb250ZXh0LT5sVmFsdWVFcnJvckNoZWNrKCh5eWxzcFsoMSkgLSAoMild
KSwgIi0tIiwgKHl5dnNwWygyKSAtICgyKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSkpKQotICAg
ICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVy
bVR5cGVkTm9kZSkgPSBjb250ZXh0LT5pbnRlcm1lZGlhdGUuYWRkVW5hcnlNYXRoKEVPcFByZURl
Y3JlbWVudCwgKHl5dnNwWygyKSAtICgyKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSksICh5eWxz
cFsoMSkgLSAoMildKSwgY29udGV4dC0+c3ltYm9sVGFibGUpOwotICAgICAgICBpZiAoKHl5dmFs
LmludGVybS5pbnRlcm1UeXBlZE5vZGUpID09IDApIHsKLSAgICAgICAgICAgIGNvbnRleHQtPnVu
YXJ5T3BFcnJvcigoeXlsc3BbKDEpIC0gKDIpXSksICItLSIsICh5eXZzcFsoMikgLSAoMildLmlu
dGVybS5pbnRlcm1UeXBlZE5vZGUpLT5nZXRDb21wbGV0ZVN0cmluZygpKTsKLSAgICAgICAgICAg
IGNvbnRleHQtPnJlY292ZXIoKTsKLSAgICAgICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlw
ZWROb2RlKSA9ICh5eXZzcFsoMikgLSAoMildLmludGVybS5pbnRlcm1UeXBlZE5vZGUpOwotICAg
ICAgICB9Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDMyOgotCi0gICAgewotICAgICAg
ICBpZiAoKHl5dnNwWygxKSAtICgyKV0uaW50ZXJtKS5vcCAhPSBFT3BOdWxsKSB7Ci0gICAgICAg
ICAgICAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSBjb250ZXh0LT5pbnRlcm1lZGlh
dGUuYWRkVW5hcnlNYXRoKCh5eXZzcFsoMSkgLSAoMildLmludGVybSkub3AsICh5eXZzcFsoMikg
LSAoMildLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLCAoeXlsc3BbKDEpIC0gKDIpXSksIGNvbnRl
eHQtPnN5bWJvbFRhYmxlKTsKLSAgICAgICAgICAgIGlmICgoeXl2YWwuaW50ZXJtLmludGVybVR5
cGVkTm9kZSkgPT0gMCkgewotICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIqIGVycm9yT3AgPSAi
IjsKLSAgICAgICAgICAgICAgICBzd2l0Y2goKHl5dnNwWygxKSAtICgyKV0uaW50ZXJtKS5vcCkg
ewotICAgICAgICAgICAgICAgIGNhc2UgRU9wTmVnYXRpdmU6ICAgZXJyb3JPcCA9ICItIjsgYnJl
YWs7Ci0gICAgICAgICAgICAgICAgY2FzZSBFT3BMb2dpY2FsTm90OiBlcnJvck9wID0gIiEiOyBi
cmVhazsKLSAgICAgICAgICAgICAgICBkZWZhdWx0OiBicmVhazsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgY29udGV4dC0+dW5hcnlPcEVycm9yKCh5eWxzcFsoMSkgLSAoMild
KSwgZXJyb3JPcCwgKHl5dnNwWygyKSAtICgyKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdl
dENvbXBsZXRlU3RyaW5nKCkpOwotICAgICAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsK
LSAgICAgICAgICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSAoeXl2c3Bb
KDIpIC0gKDIpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKTsKLSAgICAgICAgICAgIH0KLSAgICAg
ICAgfSBlbHNlCi0gICAgICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSAo
eXl2c3BbKDIpIC0gKDIpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKTsKLSAgICA7fQotICAgIGJy
ZWFrOwotCi0gIGNhc2UgMzM6Ci0KLSAgICB7ICh5eXZhbC5pbnRlcm0pLm9wID0gRU9wTnVsbDsg
O30KLSAgICBicmVhazsKLQotICBjYXNlIDM0OgotCi0gICAgeyAoeXl2YWwuaW50ZXJtKS5vcCA9
IEVPcE5lZ2F0aXZlOyA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMzU6Ci0KLSAgICB7ICh5eXZh
bC5pbnRlcm0pLm9wID0gRU9wTG9naWNhbE5vdDsgO30KLSAgICBicmVhazsKLQotICBjYXNlIDM2
OgotCi0gICAgeyAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSAoeXl2c3BbKDEpIC0g
KDEpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKTsgO30KLSAgICBicmVhazsKLQotICBjYXNlIDM3
OgotCi0gICAgewotICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSBjb250
ZXh0LT5pbnRlcm1lZGlhdGUuYWRkQmluYXJ5TWF0aChFT3BNdWwsICh5eXZzcFsoMSkgLSAoMyld
LmludGVybS5pbnRlcm1UeXBlZE5vZGUpLCAoeXl2c3BbKDMpIC0gKDMpXS5pbnRlcm0uaW50ZXJt
VHlwZWROb2RlKSwgKHl5bHNwWygyKSAtICgzKV0pLCBjb250ZXh0LT5zeW1ib2xUYWJsZSk7Ci0g
ICAgICAgIGlmICgoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPT0gMCkgewotICAgICAg
ICAgICAgY29udGV4dC0+YmluYXJ5T3BFcnJvcigoeXlsc3BbKDIpIC0gKDMpXSksICIqIiwgKHl5
dnNwWygxKSAtICgzKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldENvbXBsZXRlU3RyaW5n
KCksICh5eXZzcFsoMykgLSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5nZXRDb21wbGV0
ZVN0cmluZygpKTsKLSAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLSAgICAgICAgICAg
ICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSA9ICh5eXZzcFsoMSkgLSAoMyldLmludGVy
bS5pbnRlcm1UeXBlZE5vZGUpOwotICAgICAgICB9Ci0gICAgO30KLSAgICBicmVhazsKLQotICBj
YXNlIDM4OgotCi0gICAgewotICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkg
PSBjb250ZXh0LT5pbnRlcm1lZGlhdGUuYWRkQmluYXJ5TWF0aChFT3BEaXYsICh5eXZzcFsoMSkg
LSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLCAoeXl2c3BbKDMpIC0gKDMpXS5pbnRlcm0u
aW50ZXJtVHlwZWROb2RlKSwgKHl5bHNwWygyKSAtICgzKV0pLCBjb250ZXh0LT5zeW1ib2xUYWJs
ZSk7Ci0gICAgICAgIGlmICgoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPT0gMCkgewot
ICAgICAgICAgICAgY29udGV4dC0+YmluYXJ5T3BFcnJvcigoeXlsc3BbKDIpIC0gKDMpXSksICIv
IiwgKHl5dnNwWygxKSAtICgzKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldENvbXBsZXRl
U3RyaW5nKCksICh5eXZzcFsoMykgLSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5nZXRD
b21wbGV0ZVN0cmluZygpKTsKLSAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLSAgICAg
ICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSA9ICh5eXZzcFsoMSkgLSAoMyld
LmludGVybS5pbnRlcm1UeXBlZE5vZGUpOwotICAgICAgICB9Ci0gICAgO30KLSAgICBicmVhazsK
LQotICBjYXNlIDM5OgotCi0gICAgeyAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSAo
eXl2c3BbKDEpIC0gKDEpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKTsgO30KLSAgICBicmVhazsK
LQotICBjYXNlIDQwOgotCi0gICAgewotICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVk
Tm9kZSkgPSBjb250ZXh0LT5pbnRlcm1lZGlhdGUuYWRkQmluYXJ5TWF0aChFT3BBZGQsICh5eXZz
cFsoMSkgLSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLCAoeXl2c3BbKDMpIC0gKDMpXS5p
bnRlcm0uaW50ZXJtVHlwZWROb2RlKSwgKHl5bHNwWygyKSAtICgzKV0pLCBjb250ZXh0LT5zeW1i
b2xUYWJsZSk7Ci0gICAgICAgIGlmICgoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPT0g
MCkgewotICAgICAgICAgICAgY29udGV4dC0+YmluYXJ5T3BFcnJvcigoeXlsc3BbKDIpIC0gKDMp
XSksICIrIiwgKHl5dnNwWygxKSAtICgzKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldENv
bXBsZXRlU3RyaW5nKCksICh5eXZzcFsoMykgLSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5vZGUp
LT5nZXRDb21wbGV0ZVN0cmluZygpKTsKLSAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsK
LSAgICAgICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSA9ICh5eXZzcFsoMSkg
LSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpOwotICAgICAgICB9Ci0gICAgO30KLSAgICBi
cmVhazsKLQotICBjYXNlIDQxOgotCi0gICAgewotICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVy
bVR5cGVkTm9kZSkgPSBjb250ZXh0LT5pbnRlcm1lZGlhdGUuYWRkQmluYXJ5TWF0aChFT3BTdWIs
ICh5eXZzcFsoMSkgLSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLCAoeXl2c3BbKDMpIC0g
KDMpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSwgKHl5bHNwWygyKSAtICgzKV0pLCBjb250ZXh0
LT5zeW1ib2xUYWJsZSk7Ci0gICAgICAgIGlmICgoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9k
ZSkgPT0gMCkgewotICAgICAgICAgICAgY29udGV4dC0+YmluYXJ5T3BFcnJvcigoeXlsc3BbKDIp
IC0gKDMpXSksICItIiwgKHl5dnNwWygxKSAtICgzKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSkt
PmdldENvbXBsZXRlU3RyaW5nKCksICh5eXZzcFsoMykgLSAoMyldLmludGVybS5pbnRlcm1UeXBl
ZE5vZGUpLT5nZXRDb21wbGV0ZVN0cmluZygpKTsKLSAgICAgICAgICAgIGNvbnRleHQtPnJlY292
ZXIoKTsKLSAgICAgICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSA9ICh5eXZz
cFsoMSkgLSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpOwotICAgICAgICB9Ci0gICAgO30K
LSAgICBicmVhazsKLQotICBjYXNlIDQyOgotCi0gICAgeyAoeXl2YWwuaW50ZXJtLmludGVybVR5
cGVkTm9kZSkgPSAoeXl2c3BbKDEpIC0gKDEpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKTsgO30K
LSAgICBicmVhazsKLQotICBjYXNlIDQzOgotCi0gICAgeyAoeXl2YWwuaW50ZXJtLmludGVybVR5
cGVkTm9kZSkgPSAoeXl2c3BbKDEpIC0gKDEpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKTsgO30K
LSAgICBicmVhazsKLQotICBjYXNlIDQ0OgotCi0gICAgewotICAgICAgICAoeXl2YWwuaW50ZXJt
LmludGVybVR5cGVkTm9kZSkgPSBjb250ZXh0LT5pbnRlcm1lZGlhdGUuYWRkQmluYXJ5TWF0aChF
T3BMZXNzVGhhbiwgKHl5dnNwWygxKSAtICgzKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSksICh5
eXZzcFsoMykgLSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLCAoeXlsc3BbKDIpIC0gKDMp
XSksIGNvbnRleHQtPnN5bWJvbFRhYmxlKTsKLSAgICAgICAgaWYgKCh5eXZhbC5pbnRlcm0uaW50
ZXJtVHlwZWROb2RlKSA9PSAwKSB7Ci0gICAgICAgICAgICBjb250ZXh0LT5iaW5hcnlPcEVycm9y
KCh5eWxzcFsoMikgLSAoMyldKSwgIjwiLCAoeXl2c3BbKDEpIC0gKDMpXS5pbnRlcm0uaW50ZXJt
VHlwZWROb2RlKS0+Z2V0Q29tcGxldGVTdHJpbmcoKSwgKHl5dnNwWygzKSAtICgzKV0uaW50ZXJt
LmludGVybVR5cGVkTm9kZSktPmdldENvbXBsZXRlU3RyaW5nKCkpOwotICAgICAgICAgICAgY29u
dGV4dC0+cmVjb3ZlcigpOwotICAgICAgICAgICAgQ29uc3RhbnRVbmlvbiAqdW5pb25BcnJheSA9
IG5ldyBDb25zdGFudFVuaW9uWzFdOwotICAgICAgICAgICAgdW5pb25BcnJheS0+c2V0QkNvbnN0
KGZhbHNlKTsKLSAgICAgICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSA9IGNv
bnRleHQtPmludGVybWVkaWF0ZS5hZGRDb25zdGFudFVuaW9uKHVuaW9uQXJyYXksIFRUeXBlKEVi
dEJvb2wsIEVicFVuZGVmaW5lZCwgRXZxQ29uc3QpLCAoeXlsc3BbKDIpIC0gKDMpXSkpOwotICAg
ICAgICB9Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDQ1OgotCi0gICAgewotICAgICAg
ICAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSBjb250ZXh0LT5pbnRlcm1lZGlhdGUu
YWRkQmluYXJ5TWF0aChFT3BHcmVhdGVyVGhhbiwgKHl5dnNwWygxKSAtICgzKV0uaW50ZXJtLmlu
dGVybVR5cGVkTm9kZSksICh5eXZzcFsoMykgLSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5vZGUp
LCAoeXlsc3BbKDIpIC0gKDMpXSksIGNvbnRleHQtPnN5bWJvbFRhYmxlKTsKLSAgICAgICAgaWYg
KCh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSA9PSAwKSB7Ci0gICAgICAgICAgICBjb250
ZXh0LT5iaW5hcnlPcEVycm9yKCh5eWxzcFsoMikgLSAoMyldKSwgIj4iLCAoeXl2c3BbKDEpIC0g
KDMpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKS0+Z2V0Q29tcGxldGVTdHJpbmcoKSwgKHl5dnNw
WygzKSAtICgzKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldENvbXBsZXRlU3RyaW5nKCkp
OwotICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAgICAgICAgQ29uc3RhbnRV
bmlvbiAqdW5pb25BcnJheSA9IG5ldyBDb25zdGFudFVuaW9uWzFdOwotICAgICAgICAgICAgdW5p
b25BcnJheS0+c2V0QkNvbnN0KGZhbHNlKTsKLSAgICAgICAgICAgICh5eXZhbC5pbnRlcm0uaW50
ZXJtVHlwZWROb2RlKSA9IGNvbnRleHQtPmludGVybWVkaWF0ZS5hZGRDb25zdGFudFVuaW9uKHVu
aW9uQXJyYXksIFRUeXBlKEVidEJvb2wsIEVicFVuZGVmaW5lZCwgRXZxQ29uc3QpLCAoeXlsc3Bb
KDIpIC0gKDMpXSkpOwotICAgICAgICB9Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDQ2
OgotCi0gICAgewotICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSBjb250
ZXh0LT5pbnRlcm1lZGlhdGUuYWRkQmluYXJ5TWF0aChFT3BMZXNzVGhhbkVxdWFsLCAoeXl2c3Bb
KDEpIC0gKDMpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSwgKHl5dnNwWygzKSAtICgzKV0uaW50
ZXJtLmludGVybVR5cGVkTm9kZSksICh5eWxzcFsoMikgLSAoMyldKSwgY29udGV4dC0+c3ltYm9s
VGFibGUpOwotICAgICAgICBpZiAoKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpID09IDAp
IHsKLSAgICAgICAgICAgIGNvbnRleHQtPmJpbmFyeU9wRXJyb3IoKHl5bHNwWygyKSAtICgzKV0p
LCAiPD0iLCAoeXl2c3BbKDEpIC0gKDMpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKS0+Z2V0Q29t
cGxldGVTdHJpbmcoKSwgKHl5dnNwWygzKSAtICgzKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSkt
PmdldENvbXBsZXRlU3RyaW5nKCkpOwotICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwot
ICAgICAgICAgICAgQ29uc3RhbnRVbmlvbiAqdW5pb25BcnJheSA9IG5ldyBDb25zdGFudFVuaW9u
WzFdOwotICAgICAgICAgICAgdW5pb25BcnJheS0+c2V0QkNvbnN0KGZhbHNlKTsKLSAgICAgICAg
ICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSA9IGNvbnRleHQtPmludGVybWVkaWF0
ZS5hZGRDb25zdGFudFVuaW9uKHVuaW9uQXJyYXksIFRUeXBlKEVidEJvb2wsIEVicFVuZGVmaW5l
ZCwgRXZxQ29uc3QpLCAoeXlsc3BbKDIpIC0gKDMpXSkpOwotICAgICAgICB9Ci0gICAgO30KLSAg
ICBicmVhazsKLQotICBjYXNlIDQ3OgotCi0gICAgewotICAgICAgICAoeXl2YWwuaW50ZXJtLmlu
dGVybVR5cGVkTm9kZSkgPSBjb250ZXh0LT5pbnRlcm1lZGlhdGUuYWRkQmluYXJ5TWF0aChFT3BH
cmVhdGVyVGhhbkVxdWFsLCAoeXl2c3BbKDEpIC0gKDMpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2Rl
KSwgKHl5dnNwWygzKSAtICgzKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSksICh5eWxzcFsoMikg
LSAoMyldKSwgY29udGV4dC0+c3ltYm9sVGFibGUpOwotICAgICAgICBpZiAoKHl5dmFsLmludGVy
bS5pbnRlcm1UeXBlZE5vZGUpID09IDApIHsKLSAgICAgICAgICAgIGNvbnRleHQtPmJpbmFyeU9w
RXJyb3IoKHl5bHNwWygyKSAtICgzKV0pLCAiPj0iLCAoeXl2c3BbKDEpIC0gKDMpXS5pbnRlcm0u
aW50ZXJtVHlwZWROb2RlKS0+Z2V0Q29tcGxldGVTdHJpbmcoKSwgKHl5dnNwWygzKSAtICgzKV0u
aW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldENvbXBsZXRlU3RyaW5nKCkpOwotICAgICAgICAg
ICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAgICAgICAgQ29uc3RhbnRVbmlvbiAqdW5pb25B
cnJheSA9IG5ldyBDb25zdGFudFVuaW9uWzFdOwotICAgICAgICAgICAgdW5pb25BcnJheS0+c2V0
QkNvbnN0KGZhbHNlKTsKLSAgICAgICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2Rl
KSA9IGNvbnRleHQtPmludGVybWVkaWF0ZS5hZGRDb25zdGFudFVuaW9uKHVuaW9uQXJyYXksIFRU
eXBlKEVidEJvb2wsIEVicFVuZGVmaW5lZCwgRXZxQ29uc3QpLCAoeXlsc3BbKDIpIC0gKDMpXSkp
OwotICAgICAgICB9Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDQ4OgotCi0gICAgeyAo
eXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSAoeXl2c3BbKDEpIC0gKDEpXS5pbnRlcm0u
aW50ZXJtVHlwZWROb2RlKTsgO30KLSAgICBicmVhazsKLQotICBjYXNlIDQ5OgotCi0gICAgewot
ICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSBjb250ZXh0LT5pbnRlcm1l
ZGlhdGUuYWRkQmluYXJ5TWF0aChFT3BFcXVhbCwgKHl5dnNwWygxKSAtICgzKV0uaW50ZXJtLmlu
dGVybVR5cGVkTm9kZSksICh5eXZzcFsoMykgLSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5vZGUp
LCAoeXlsc3BbKDIpIC0gKDMpXSksIGNvbnRleHQtPnN5bWJvbFRhYmxlKTsKLSAgICAgICAgaWYg
KCh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSA9PSAwKSB7Ci0gICAgICAgICAgICBjb250
ZXh0LT5iaW5hcnlPcEVycm9yKCh5eWxzcFsoMikgLSAoMyldKSwgIj09IiwgKHl5dnNwWygxKSAt
ICgzKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldENvbXBsZXRlU3RyaW5nKCksICh5eXZz
cFsoMykgLSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5nZXRDb21wbGV0ZVN0cmluZygp
KTsKLSAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLSAgICAgICAgICAgIENvbnN0YW50
VW5pb24gKnVuaW9uQXJyYXkgPSBuZXcgQ29uc3RhbnRVbmlvblsxXTsKLSAgICAgICAgICAgIHVu
aW9uQXJyYXktPnNldEJDb25zdChmYWxzZSk7Ci0gICAgICAgICAgICAoeXl2YWwuaW50ZXJtLmlu
dGVybVR5cGVkTm9kZSkgPSBjb250ZXh0LT5pbnRlcm1lZGlhdGUuYWRkQ29uc3RhbnRVbmlvbih1
bmlvbkFycmF5LCBUVHlwZShFYnRCb29sLCBFYnBVbmRlZmluZWQsIEV2cUNvbnN0KSwgKHl5bHNw
WygyKSAtICgzKV0pKTsKLSAgICAgICAgfQotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSA1
MDoKLQotICAgIHsKLSAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpID0gY29u
dGV4dC0+aW50ZXJtZWRpYXRlLmFkZEJpbmFyeU1hdGgoRU9wTm90RXF1YWwsICh5eXZzcFsoMSkg
LSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLCAoeXl2c3BbKDMpIC0gKDMpXS5pbnRlcm0u
aW50ZXJtVHlwZWROb2RlKSwgKHl5bHNwWygyKSAtICgzKV0pLCBjb250ZXh0LT5zeW1ib2xUYWJs
ZSk7Ci0gICAgICAgIGlmICgoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPT0gMCkgewot
ICAgICAgICAgICAgY29udGV4dC0+YmluYXJ5T3BFcnJvcigoeXlsc3BbKDIpIC0gKDMpXSksICIh
PSIsICh5eXZzcFsoMSkgLSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5nZXRDb21wbGV0
ZVN0cmluZygpLCAoeXl2c3BbKDMpIC0gKDMpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKS0+Z2V0
Q29tcGxldGVTdHJpbmcoKSk7Ci0gICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0gICAg
ICAgICAgICBDb25zdGFudFVuaW9uICp1bmlvbkFycmF5ID0gbmV3IENvbnN0YW50VW5pb25bMV07
Ci0gICAgICAgICAgICB1bmlvbkFycmF5LT5zZXRCQ29uc3QoZmFsc2UpOwotICAgICAgICAgICAg
KHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpID0gY29udGV4dC0+aW50ZXJtZWRpYXRlLmFk
ZENvbnN0YW50VW5pb24odW5pb25BcnJheSwgVFR5cGUoRWJ0Qm9vbCwgRWJwVW5kZWZpbmVkLCBF
dnFDb25zdCksICh5eWxzcFsoMikgLSAoMyldKSk7Ci0gICAgICAgIH0KLSAgICA7fQotICAgIGJy
ZWFrOwotCi0gIGNhc2UgNTE6Ci0KLSAgICB7ICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2Rl
KSA9ICh5eXZzcFsoMSkgLSAoMSldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpOyA7fQotICAgIGJy
ZWFrOwotCi0gIGNhc2UgNTI6Ci0KLSAgICB7ICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2Rl
KSA9ICh5eXZzcFsoMSkgLSAoMSldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpOyA7fQotICAgIGJy
ZWFrOwotCi0gIGNhc2UgNTM6Ci0KLSAgICB7ICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2Rl
KSA9ICh5eXZzcFsoMSkgLSAoMSldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpOyA7fQotICAgIGJy
ZWFrOwotCi0gIGNhc2UgNTQ6Ci0KLSAgICB7ICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2Rl
KSA9ICh5eXZzcFsoMSkgLSAoMSldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpOyA7fQotICAgIGJy
ZWFrOwotCi0gIGNhc2UgNTU6Ci0KLSAgICB7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJt
VHlwZWROb2RlKSA9IGNvbnRleHQtPmludGVybWVkaWF0ZS5hZGRCaW5hcnlNYXRoKEVPcExvZ2lj
YWxBbmQsICh5eXZzcFsoMSkgLSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLCAoeXl2c3Bb
KDMpIC0gKDMpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSwgKHl5bHNwWygyKSAtICgzKV0pLCBj
b250ZXh0LT5zeW1ib2xUYWJsZSk7Ci0gICAgICAgIGlmICgoeXl2YWwuaW50ZXJtLmludGVybVR5
cGVkTm9kZSkgPT0gMCkgewotICAgICAgICAgICAgY29udGV4dC0+YmluYXJ5T3BFcnJvcigoeXls
c3BbKDIpIC0gKDMpXSksICImJiIsICh5eXZzcFsoMSkgLSAoMyldLmludGVybS5pbnRlcm1UeXBl
ZE5vZGUpLT5nZXRDb21wbGV0ZVN0cmluZygpLCAoeXl2c3BbKDMpIC0gKDMpXS5pbnRlcm0uaW50
ZXJtVHlwZWROb2RlKS0+Z2V0Q29tcGxldGVTdHJpbmcoKSk7Ci0gICAgICAgICAgICBjb250ZXh0
LT5yZWNvdmVyKCk7Ci0gICAgICAgICAgICBDb25zdGFudFVuaW9uICp1bmlvbkFycmF5ID0gbmV3
IENvbnN0YW50VW5pb25bMV07Ci0gICAgICAgICAgICB1bmlvbkFycmF5LT5zZXRCQ29uc3QoZmFs
c2UpOwotICAgICAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpID0gY29udGV4
dC0+aW50ZXJtZWRpYXRlLmFkZENvbnN0YW50VW5pb24odW5pb25BcnJheSwgVFR5cGUoRWJ0Qm9v
bCwgRWJwVW5kZWZpbmVkLCBFdnFDb25zdCksICh5eWxzcFsoMikgLSAoMyldKSk7Ci0gICAgICAg
IH0KLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgNTY6Ci0KLSAgICB7ICh5eXZhbC5pbnRl
cm0uaW50ZXJtVHlwZWROb2RlKSA9ICh5eXZzcFsoMSkgLSAoMSldLmludGVybS5pbnRlcm1UeXBl
ZE5vZGUpOyA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgNTc6Ci0KLSAgICB7Ci0gICAgICAgICh5
eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSA9IGNvbnRleHQtPmludGVybWVkaWF0ZS5hZGRC
aW5hcnlNYXRoKEVPcExvZ2ljYWxYb3IsICh5eXZzcFsoMSkgLSAoMyldLmludGVybS5pbnRlcm1U
eXBlZE5vZGUpLCAoeXl2c3BbKDMpIC0gKDMpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSwgKHl5
bHNwWygyKSAtICgzKV0pLCBjb250ZXh0LT5zeW1ib2xUYWJsZSk7Ci0gICAgICAgIGlmICgoeXl2
YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPT0gMCkgewotICAgICAgICAgICAgY29udGV4dC0+
YmluYXJ5T3BFcnJvcigoeXlsc3BbKDIpIC0gKDMpXSksICJeXiIsICh5eXZzcFsoMSkgLSAoMyld
LmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5nZXRDb21wbGV0ZVN0cmluZygpLCAoeXl2c3BbKDMp
IC0gKDMpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKS0+Z2V0Q29tcGxldGVTdHJpbmcoKSk7Ci0g
ICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0gICAgICAgICAgICBDb25zdGFudFVuaW9u
ICp1bmlvbkFycmF5ID0gbmV3IENvbnN0YW50VW5pb25bMV07Ci0gICAgICAgICAgICB1bmlvbkFy
cmF5LT5zZXRCQ29uc3QoZmFsc2UpOwotICAgICAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1U
eXBlZE5vZGUpID0gY29udGV4dC0+aW50ZXJtZWRpYXRlLmFkZENvbnN0YW50VW5pb24odW5pb25B
cnJheSwgVFR5cGUoRWJ0Qm9vbCwgRWJwVW5kZWZpbmVkLCBFdnFDb25zdCksICh5eWxzcFsoMikg
LSAoMyldKSk7Ci0gICAgICAgIH0KLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgNTg6Ci0K
LSAgICB7ICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSA9ICh5eXZzcFsoMSkgLSAoMSld
LmludGVybS5pbnRlcm1UeXBlZE5vZGUpOyA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgNTk6Ci0K
LSAgICB7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSA9IGNvbnRleHQt
PmludGVybWVkaWF0ZS5hZGRCaW5hcnlNYXRoKEVPcExvZ2ljYWxPciwgKHl5dnNwWygxKSAtICgz
KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSksICh5eXZzcFsoMykgLSAoMyldLmludGVybS5pbnRl
cm1UeXBlZE5vZGUpLCAoeXlsc3BbKDIpIC0gKDMpXSksIGNvbnRleHQtPnN5bWJvbFRhYmxlKTsK
LSAgICAgICAgaWYgKCh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSA9PSAwKSB7Ci0gICAg
ICAgICAgICBjb250ZXh0LT5iaW5hcnlPcEVycm9yKCh5eWxzcFsoMikgLSAoMyldKSwgInx8Iiwg
KHl5dnNwWygxKSAtICgzKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldENvbXBsZXRlU3Ry
aW5nKCksICh5eXZzcFsoMykgLSAoMyldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5nZXRDb21w
bGV0ZVN0cmluZygpKTsKLSAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLSAgICAgICAg
ICAgIENvbnN0YW50VW5pb24gKnVuaW9uQXJyYXkgPSBuZXcgQ29uc3RhbnRVbmlvblsxXTsKLSAg
ICAgICAgICAgIHVuaW9uQXJyYXktPnNldEJDb25zdChmYWxzZSk7Ci0gICAgICAgICAgICAoeXl2
YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSBjb250ZXh0LT5pbnRlcm1lZGlhdGUuYWRkQ29u
c3RhbnRVbmlvbih1bmlvbkFycmF5LCBUVHlwZShFYnRCb29sLCBFYnBVbmRlZmluZWQsIEV2cUNv
bnN0KSwgKHl5bHNwWygyKSAtICgzKV0pKTsKLSAgICAgICAgfQotICAgIDt9Ci0gICAgYnJlYWs7
Ci0KLSAgY2FzZSA2MDoKLQotICAgIHsgKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpID0g
KHl5dnNwWygxKSAtICgxKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSk7IDt9Ci0gICAgYnJlYWs7
Ci0KLSAgY2FzZSA2MToKLQotICAgIHsKLSAgICAgICBpZiAoY29udGV4dC0+Ym9vbEVycm9yQ2hl
Y2soKHl5bHNwWygyKSAtICg1KV0pLCAoeXl2c3BbKDEpIC0gKDUpXS5pbnRlcm0uaW50ZXJtVHlw
ZWROb2RlKSkpCi0gICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0KLSAgICAgICAgKHl5
dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpID0gY29udGV4dC0+aW50ZXJtZWRpYXRlLmFkZFNl
bGVjdGlvbigoeXl2c3BbKDEpIC0gKDUpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSwgKHl5dnNw
WygzKSAtICg1KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSksICh5eXZzcFsoNSkgLSAoNSldLmlu
dGVybS5pbnRlcm1UeXBlZE5vZGUpLCAoeXlsc3BbKDIpIC0gKDUpXSkpOwotICAgICAgICBpZiAo
KHl5dnNwWygzKSAtICg1KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSktPmdldFR5cGUoKSAhPSAo
eXl2c3BbKDUpIC0gKDUpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKS0+Z2V0VHlwZSgpKQotICAg
ICAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpID0gMDsKLQotICAgICAgICBp
ZiAoKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpID09IDApIHsKLSAgICAgICAgICAgIGNv
bnRleHQtPmJpbmFyeU9wRXJyb3IoKHl5bHNwWygyKSAtICg1KV0pLCAiOiIsICh5eXZzcFsoMykg
LSAoNSldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLT5nZXRDb21wbGV0ZVN0cmluZygpLCAoeXl2
c3BbKDUpIC0gKDUpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKS0+Z2V0Q29tcGxldGVTdHJpbmco
KSk7Ci0gICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0gICAgICAgICAgICAoeXl2YWwu
aW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSAoeXl2c3BbKDUpIC0gKDUpXS5pbnRlcm0uaW50ZXJt
VHlwZWROb2RlKTsKLSAgICAgICAgfQotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSA2MjoK
LQotICAgIHsgKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpID0gKHl5dnNwWygxKSAtICgx
KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSk7IDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSA2MzoK
LQotICAgIHsKLSAgICAgICAgaWYgKGNvbnRleHQtPmxWYWx1ZUVycm9yQ2hlY2soKHl5bHNwWygy
KSAtICgzKV0pLCAiYXNzaWduIiwgKHl5dnNwWygxKSAtICgzKV0uaW50ZXJtLmludGVybVR5cGVk
Tm9kZSkpKQotICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAgICAoeXl2YWwu
aW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSBjb250ZXh0LT5pbnRlcm1lZGlhdGUuYWRkQXNzaWdu
KCh5eXZzcFsoMikgLSAoMyldLmludGVybSkub3AsICh5eXZzcFsoMSkgLSAoMyldLmludGVybS5p
bnRlcm1UeXBlZE5vZGUpLCAoeXl2c3BbKDMpIC0gKDMpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2Rl
KSwgKHl5bHNwWygyKSAtICgzKV0pKTsKLSAgICAgICAgaWYgKCh5eXZhbC5pbnRlcm0uaW50ZXJt
VHlwZWROb2RlKSA9PSAwKSB7Ci0gICAgICAgICAgICBjb250ZXh0LT5hc3NpZ25FcnJvcigoeXls
c3BbKDIpIC0gKDMpXSksICJhc3NpZ24iLCAoeXl2c3BbKDEpIC0gKDMpXS5pbnRlcm0uaW50ZXJt
VHlwZWROb2RlKS0+Z2V0Q29tcGxldGVTdHJpbmcoKSwgKHl5dnNwWygzKSAtICgzKV0uaW50ZXJt
LmludGVybVR5cGVkTm9kZSktPmdldENvbXBsZXRlU3RyaW5nKCkpOwotICAgICAgICAgICAgY29u
dGV4dC0+cmVjb3ZlcigpOwotICAgICAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5v
ZGUpID0gKHl5dnNwWygxKSAtICgzKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSk7Ci0gICAgICAg
IH0KLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgNjQ6Ci0KLSAgICB7ICh5eXZhbC5pbnRl
cm0pLm9wID0gRU9wQXNzaWduOyA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgNjU6Ci0KLSAgICB7
ICh5eXZhbC5pbnRlcm0pLm9wID0gRU9wTXVsQXNzaWduOyA7fQotICAgIGJyZWFrOwotCi0gIGNh
c2UgNjY6Ci0KLSAgICB7ICh5eXZhbC5pbnRlcm0pLm9wID0gRU9wRGl2QXNzaWduOyA7fQotICAg
IGJyZWFrOwotCi0gIGNhc2UgNjc6Ci0KLSAgICB7ICh5eXZhbC5pbnRlcm0pLm9wID0gRU9wQWRk
QXNzaWduOyA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgNjg6Ci0KLSAgICB7ICh5eXZhbC5pbnRl
cm0pLm9wID0gRU9wU3ViQXNzaWduOyA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgNjk6Ci0KLSAg
ICB7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSA9ICh5eXZzcFsoMSkg
LSAoMSldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpOwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAg
Y2FzZSA3MDoKLQotICAgIHsKLSAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUp
ID0gY29udGV4dC0+aW50ZXJtZWRpYXRlLmFkZENvbW1hKCh5eXZzcFsoMSkgLSAoMyldLmludGVy
bS5pbnRlcm1UeXBlZE5vZGUpLCAoeXl2c3BbKDMpIC0gKDMpXS5pbnRlcm0uaW50ZXJtVHlwZWRO
b2RlKSwgKHl5bHNwWygyKSAtICgzKV0pKTsKLSAgICAgICAgaWYgKCh5eXZhbC5pbnRlcm0uaW50
ZXJtVHlwZWROb2RlKSA9PSAwKSB7Ci0gICAgICAgICAgICBjb250ZXh0LT5iaW5hcnlPcEVycm9y
KCh5eWxzcFsoMikgLSAoMyldKSwgIiwiLCAoeXl2c3BbKDEpIC0gKDMpXS5pbnRlcm0uaW50ZXJt
VHlwZWROb2RlKS0+Z2V0Q29tcGxldGVTdHJpbmcoKSwgKHl5dnNwWygzKSAtICgzKV0uaW50ZXJt
LmludGVybVR5cGVkTm9kZSktPmdldENvbXBsZXRlU3RyaW5nKCkpOwotICAgICAgICAgICAgY29u
dGV4dC0+cmVjb3ZlcigpOwotICAgICAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5v
ZGUpID0gKHl5dnNwWygzKSAtICgzKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSk7Ci0gICAgICAg
IH0KLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgNzE6Ci0KLSAgICB7Ci0gICAgICAgIGlm
IChjb250ZXh0LT5jb25zdEVycm9yQ2hlY2soKHl5dnNwWygxKSAtICgxKV0uaW50ZXJtLmludGVy
bVR5cGVkTm9kZSkpKQotICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAgICAo
eXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSAoeXl2c3BbKDEpIC0gKDEpXS5pbnRlcm0u
aW50ZXJtVHlwZWROb2RlKTsKLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgNzI6Ci0KLSAg
ICB7Ci0gICAgICAgIFRGdW5jdGlvbiAmZnVuY3Rpb24gPSAqKCh5eXZzcFsoMSkgLSAoMildLmlu
dGVybSkuZnVuY3Rpb24pOwotICAgICAgICAKLSAgICAgICAgVEludGVybUFnZ3JlZ2F0ZSAqcHJv
dG90eXBlID0gbmV3IFRJbnRlcm1BZ2dyZWdhdGU7Ci0gICAgICAgIHByb3RvdHlwZS0+c2V0VHlw
ZShmdW5jdGlvbi5nZXRSZXR1cm5UeXBlKCkpOwotICAgICAgICBwcm90b3R5cGUtPnNldE5hbWUo
ZnVuY3Rpb24uZ2V0TmFtZSgpKTsKLSAgICAgICAgCi0gICAgICAgIGZvciAoc2l6ZV90IGkgPSAw
OyBpIDwgZnVuY3Rpb24uZ2V0UGFyYW1Db3VudCgpOyBpKyspCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGNvbnN0IFRQYXJhbWV0ZXIgJnBhcmFtID0gZnVuY3Rpb24uZ2V0UGFyYW0oaSk7Ci0gICAg
ICAgICAgICBpZiAocGFyYW0ubmFtZSAhPSAwKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIFRWYXJpYWJsZSB2YXJpYWJsZShwYXJhbS5uYW1lLCAqcGFyYW0udHlwZSk7Ci0gICAgICAg
ICAgICAgICAgCi0gICAgICAgICAgICAgICAgcHJvdG90eXBlID0gY29udGV4dC0+aW50ZXJtZWRp
YXRlLmdyb3dBZ2dyZWdhdGUocHJvdG90eXBlLCBjb250ZXh0LT5pbnRlcm1lZGlhdGUuYWRkU3lt
Ym9sKHZhcmlhYmxlLmdldFVuaXF1ZUlkKCksIHZhcmlhYmxlLmdldE5hbWUoKSwgdmFyaWFibGUu
Z2V0VHlwZSgpLCAoeXlsc3BbKDEpIC0gKDIpXSkpLCAoeXlsc3BbKDEpIC0gKDIpXSkpOwotICAg
ICAgICAgICAgfQotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIHByb3RvdHlwZSA9IGNvbnRleHQtPmludGVybWVkaWF0ZS5ncm93QWdncmVnYXRlKHByb3Rv
dHlwZSwgY29udGV4dC0+aW50ZXJtZWRpYXRlLmFkZFN5bWJvbCgwLCAiIiwgKnBhcmFtLnR5cGUs
ICh5eWxzcFsoMSkgLSAoMildKSksICh5eWxzcFsoMSkgLSAoMildKSk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHByb3RvdHlwZS0+c2V0T3AoRU9wUHJvdG90
eXBlKTsKLSAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1Ob2RlKSA9IHByb3RvdHlwZTsKLQot
ICAgICAgICBjb250ZXh0LT5zeW1ib2xUYWJsZS5wb3AoKTsKLSAgICA7fQotICAgIGJyZWFrOwot
Ci0gIGNhc2UgNzM6Ci0KLSAgICB7Ci0gICAgICAgIGlmICgoeXl2c3BbKDEpIC0gKDIpXS5pbnRl
cm0pLmludGVybUFnZ3JlZ2F0ZSkKLSAgICAgICAgICAgICh5eXZzcFsoMSkgLSAoMildLmludGVy
bSkuaW50ZXJtQWdncmVnYXRlLT5zZXRPcChFT3BEZWNsYXJhdGlvbik7Ci0gICAgICAgICh5eXZh
bC5pbnRlcm0uaW50ZXJtTm9kZSkgPSAoeXl2c3BbKDEpIC0gKDIpXS5pbnRlcm0pLmludGVybUFn
Z3JlZ2F0ZTsKLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgNzQ6Ci0KLSAgICB7Ci0gICAg
ICAgIGlmICgoKHl5dnNwWygyKSAtICg0KV0uaW50ZXJtLnByZWNpc2lvbikgPT0gRWJwSGlnaCkg
JiYgKGNvbnRleHQtPnNoYWRlclR5cGUgPT0gU0hfRlJBR01FTlRfU0hBREVSKSAmJiAhY29udGV4
dC0+ZnJhZ21lbnRQcmVjaXNpb25IaWdoKSB7Ci0gICAgICAgICAgICBjb250ZXh0LT5lcnJvcigo
eXlsc3BbKDEpIC0gKDQpXSksICJwcmVjaXNpb24gaXMgbm90IHN1cHBvcnRlZCBpbiBmcmFnbWVu
dCBzaGFkZXIiLCAiaGlnaHAiKTsKLSAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLSAg
ICAgICAgfQotICAgICAgICBpZiAoIWNvbnRleHQtPnN5bWJvbFRhYmxlLnNldERlZmF1bHRQcmVj
aXNpb24oICh5eXZzcFsoMykgLSAoNCldLmludGVybS50eXBlKSwgKHl5dnNwWygyKSAtICg0KV0u
aW50ZXJtLnByZWNpc2lvbikgKSkgewotICAgICAgICAgICAgY29udGV4dC0+ZXJyb3IoKHl5bHNw
WygxKSAtICg0KV0pLCAiaWxsZWdhbCB0eXBlIGFyZ3VtZW50IGZvciBkZWZhdWx0IHByZWNpc2lv
biBxdWFsaWZpZXIiLCBnZXRCYXNpY1N0cmluZygoeXl2c3BbKDMpIC0gKDQpXS5pbnRlcm0udHlw
ZSkudHlwZSkpOwotICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAgICB9Ci0g
ICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtTm9kZSkgPSAwOwotICAgIDt9Ci0gICAgYnJlYWs7
Ci0KLSAgY2FzZSA3NToKLQotICAgIHsKLSAgICAgICAgLy8KLSAgICAgICAgLy8gTXVsdGlwbGUg
ZGVjbGFyYXRpb25zIG9mIHRoZSBzYW1lIGZ1bmN0aW9uIGFyZSBhbGxvd2VkLgotICAgICAgICAv
LwotICAgICAgICAvLyBJZiB0aGlzIGlzIGEgZGVmaW5pdGlvbiwgdGhlIGRlZmluaXRpb24gcHJv
ZHVjdGlvbiBjb2RlIHdpbGwgY2hlY2sgZm9yIHJlZGVmaW5pdGlvbnMKLSAgICAgICAgLy8gKHdl
IGRvbid0IGtub3cgYXQgdGhpcyBwb2ludCBpZiBpdCdzIGEgZGVmaW5pdGlvbiBvciBub3QpLgot
ICAgICAgICAvLwotICAgICAgICAvLyBSZWRlY2xhcmF0aW9ucyBhcmUgYWxsb3dlZC4gIEJ1dCwg
cmV0dXJuIHR5cGVzIGFuZCBwYXJhbWV0ZXIgcXVhbGlmaWVycyBtdXN0IG1hdGNoLgotICAgICAg
ICAvLwotICAgICAgICBURnVuY3Rpb24qIHByZXZEZWMgPSBzdGF0aWNfY2FzdDxURnVuY3Rpb24q
Pihjb250ZXh0LT5zeW1ib2xUYWJsZS5maW5kKCh5eXZzcFsoMSkgLSAoMildLmludGVybS5mdW5j
dGlvbiktPmdldE1hbmdsZWROYW1lKCkpKTsKLSAgICAgICAgaWYgKHByZXZEZWMpIHsKLSAgICAg
ICAgICAgIGlmIChwcmV2RGVjLT5nZXRSZXR1cm5UeXBlKCkgIT0gKHl5dnNwWygxKSAtICgyKV0u
aW50ZXJtLmZ1bmN0aW9uKS0+Z2V0UmV0dXJuVHlwZSgpKSB7Ci0gICAgICAgICAgICAgICAgY29u
dGV4dC0+ZXJyb3IoKHl5bHNwWygyKSAtICgyKV0pLCAib3ZlcmxvYWRlZCBmdW5jdGlvbnMgbXVz
dCBoYXZlIHRoZSBzYW1lIHJldHVybiB0eXBlIiwgKHl5dnNwWygxKSAtICgyKV0uaW50ZXJtLmZ1
bmN0aW9uKS0+Z2V0UmV0dXJuVHlwZSgpLmdldEJhc2ljU3RyaW5nKCkpOwotICAgICAgICAgICAg
ICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGZvciAo
c2l6ZV90IGkgPSAwOyBpIDwgcHJldkRlYy0+Z2V0UGFyYW1Db3VudCgpOyArK2kpIHsKLSAgICAg
ICAgICAgICAgICBpZiAocHJldkRlYy0+Z2V0UGFyYW0oaSkudHlwZS0+Z2V0UXVhbGlmaWVyKCkg
IT0gKHl5dnNwWygxKSAtICgyKV0uaW50ZXJtLmZ1bmN0aW9uKS0+Z2V0UGFyYW0oaSkudHlwZS0+
Z2V0UXVhbGlmaWVyKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+ZXJyb3IoKHl5
bHNwWygyKSAtICgyKV0pLCAib3ZlcmxvYWRlZCBmdW5jdGlvbnMgbXVzdCBoYXZlIHRoZSBzYW1l
IHBhcmFtZXRlciBxdWFsaWZpZXJzIiwgKHl5dnNwWygxKSAtICgyKV0uaW50ZXJtLmZ1bmN0aW9u
KS0+Z2V0UGFyYW0oaSkudHlwZS0+Z2V0UXVhbGlmaWVyU3RyaW5nKCkpOwotICAgICAgICAgICAg
ICAgICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLy8KLSAgICAgICAgLy8gSWYgdGhpcyBpcyBhIHJl
ZGVjbGFyYXRpb24sIGl0IGNvdWxkIGFsc28gYmUgYSBkZWZpbml0aW9uLAotICAgICAgICAvLyBp
biB3aGljaCBjYXNlLCB3ZSB3YW50IHRvIHVzZSB0aGUgdmFyaWFibGUgbmFtZXMgZnJvbSB0aGlz
IG9uZSwgYW5kIG5vdCB0aGUgb25lIHRoYXQncwotICAgICAgICAvLyBiZWluZyByZWRlY2xhcmVk
LiAgU28sIHBhc3MgYmFjayB1cCB0aGlzIGRlY2xhcmF0aW9uLCBub3QgdGhlIG9uZSBpbiB0aGUg
c3ltYm9sIHRhYmxlLgotICAgICAgICAvLwotICAgICAgICAoeXl2YWwuaW50ZXJtKS5mdW5jdGlv
biA9ICh5eXZzcFsoMSkgLSAoMildLmludGVybS5mdW5jdGlvbik7Ci0KLSAgICAgICAgLy8gV2Un
cmUgYXQgdGhlIGlubmVyIHNjb3BlIGxldmVsIG9mIHRoZSBmdW5jdGlvbidzIGFyZ3VtZW50cyBh
bmQgYm9keSBzdGF0ZW1lbnQuCi0gICAgICAgIC8vIEFkZCB0aGUgZnVuY3Rpb24gcHJvdG90eXBl
IHRvIHRoZSBzdXJyb3VuZGluZyBzY29wZSBpbnN0ZWFkLgotICAgICAgICBjb250ZXh0LT5zeW1i
b2xUYWJsZS5nZXRPdXRlckxldmVsKCktPmluc2VydCgqKHl5dmFsLmludGVybSkuZnVuY3Rpb24p
OwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSA3NjoKLQotICAgIHsKLSAgICAgICAgKHl5
dmFsLmludGVybS5mdW5jdGlvbikgPSAoeXl2c3BbKDEpIC0gKDEpXS5pbnRlcm0uZnVuY3Rpb24p
OwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSA3NzoKLQotICAgIHsKLSAgICAgICAgKHl5
dmFsLmludGVybS5mdW5jdGlvbikgPSAoeXl2c3BbKDEpIC0gKDEpXS5pbnRlcm0uZnVuY3Rpb24p
OwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSA3ODoKLQotICAgIHsKLSAgICAgICAgLy8g
QWRkIHRoZSBwYXJhbWV0ZXIKLSAgICAgICAgKHl5dmFsLmludGVybS5mdW5jdGlvbikgPSAoeXl2
c3BbKDEpIC0gKDIpXS5pbnRlcm0uZnVuY3Rpb24pOwotICAgICAgICBpZiAoKHl5dnNwWygyKSAt
ICgyKV0uaW50ZXJtKS5wYXJhbS50eXBlLT5nZXRCYXNpY1R5cGUoKSAhPSBFYnRWb2lkKQotICAg
ICAgICAgICAgKHl5dnNwWygxKSAtICgyKV0uaW50ZXJtLmZ1bmN0aW9uKS0+YWRkUGFyYW1ldGVy
KCh5eXZzcFsoMikgLSAoMildLmludGVybSkucGFyYW0pOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBkZWxldGUgKHl5dnNwWygyKSAtICgyKV0uaW50ZXJtKS5wYXJhbS50eXBlOwotICAgIDt9
Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSA3OToKLQotICAgIHsKLSAgICAgICAgLy8KLSAgICAgICAg
Ly8gT25seSBmaXJzdCBwYXJhbWV0ZXIgb2Ygb25lLXBhcmFtZXRlciBmdW5jdGlvbnMgY2FuIGJl
IHZvaWQKLSAgICAgICAgLy8gVGhlIGNoZWNrIGZvciBuYW1lZCBwYXJhbWV0ZXJzIG5vdCBiZWlu
ZyB2b2lkIGlzIGRvbmUgaW4gcGFyYW1ldGVyX2RlY2xhcmF0b3IKLSAgICAgICAgLy8KLSAgICAg
ICAgaWYgKCh5eXZzcFsoMykgLSAoMyldLmludGVybSkucGFyYW0udHlwZS0+Z2V0QmFzaWNUeXBl
KCkgPT0gRWJ0Vm9pZCkgewotICAgICAgICAgICAgLy8KLSAgICAgICAgICAgIC8vIFRoaXMgcGFy
YW1ldGVyID4gZmlyc3QgaXMgdm9pZAotICAgICAgICAgICAgLy8KLSAgICAgICAgICAgIGNvbnRl
eHQtPmVycm9yKCh5eWxzcFsoMikgLSAoMyldKSwgImNhbm5vdCBiZSBhbiBhcmd1bWVudCB0eXBl
IGV4Y2VwdCBmb3IgJyh2b2lkKSciLCAidm9pZCIpOwotICAgICAgICAgICAgY29udGV4dC0+cmVj
b3ZlcigpOwotICAgICAgICAgICAgZGVsZXRlICh5eXZzcFsoMykgLSAoMyldLmludGVybSkucGFy
YW0udHlwZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIC8vIEFkZCB0aGUgcGFyYW1l
dGVyCi0gICAgICAgICAgICAoeXl2YWwuaW50ZXJtLmZ1bmN0aW9uKSA9ICh5eXZzcFsoMSkgLSAo
MyldLmludGVybS5mdW5jdGlvbik7Ci0gICAgICAgICAgICAoeXl2c3BbKDEpIC0gKDMpXS5pbnRl
cm0uZnVuY3Rpb24pLT5hZGRQYXJhbWV0ZXIoKHl5dnNwWygzKSAtICgzKV0uaW50ZXJtKS5wYXJh
bSk7Ci0gICAgICAgIH0KLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgODA6Ci0KLSAgICB7
Ci0gICAgICAgIGlmICgoeXl2c3BbKDEpIC0gKDMpXS5pbnRlcm0udHlwZSkucXVhbGlmaWVyICE9
IEV2cUdsb2JhbCAmJiAoeXl2c3BbKDEpIC0gKDMpXS5pbnRlcm0udHlwZSkucXVhbGlmaWVyICE9
IEV2cVRlbXBvcmFyeSkgewotICAgICAgICAgICAgY29udGV4dC0+ZXJyb3IoKHl5bHNwWygyKSAt
ICgzKV0pLCAibm8gcXVhbGlmaWVycyBhbGxvd2VkIGZvciBmdW5jdGlvbiByZXR1cm4iLCBnZXRR
dWFsaWZpZXJTdHJpbmcoKHl5dnNwWygxKSAtICgzKV0uaW50ZXJtLnR5cGUpLnF1YWxpZmllcikp
OwotICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAgICB9Ci0gICAgICAgIC8v
IG1ha2Ugc3VyZSBhIHNhbXBsZXIgaXMgbm90IGludm9sdmVkIGFzIHdlbGwuLi4KLSAgICAgICAg
aWYgKGNvbnRleHQtPnN0cnVjdFF1YWxpZmllckVycm9yQ2hlY2soKHl5bHNwWygyKSAtICgzKV0p
LCAoeXl2c3BbKDEpIC0gKDMpXS5pbnRlcm0udHlwZSkpKQotICAgICAgICAgICAgY29udGV4dC0+
cmVjb3ZlcigpOwotCi0gICAgICAgIC8vIEFkZCB0aGUgZnVuY3Rpb24gYXMgYSBwcm90b3R5cGUg
YWZ0ZXIgcGFyc2luZyBpdCAod2UgZG8gbm90IHN1cHBvcnQgcmVjdXJzaW9uKQotICAgICAgICBU
RnVuY3Rpb24gKmZ1bmN0aW9uOwotICAgICAgICBUVHlwZSB0eXBlKCh5eXZzcFsoMSkgLSAoMyld
LmludGVybS50eXBlKSk7Ci0gICAgICAgIGZ1bmN0aW9uID0gbmV3IFRGdW5jdGlvbigoeXl2c3Bb
KDIpIC0gKDMpXS5sZXgpLnN0cmluZywgdHlwZSk7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0uZnVu
Y3Rpb24pID0gZnVuY3Rpb247Ci0gICAgICAgIAotICAgICAgICBjb250ZXh0LT5zeW1ib2xUYWJs
ZS5wdXNoKCk7Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDgxOgotCi0gICAgewotICAg
ICAgICBpZiAoKHl5dnNwWygxKSAtICgyKV0uaW50ZXJtLnR5cGUpLnR5cGUgPT0gRWJ0Vm9pZCkg
ewotICAgICAgICAgICAgY29udGV4dC0+ZXJyb3IoKHl5bHNwWygyKSAtICgyKV0pLCAiaWxsZWdh
bCB1c2Ugb2YgdHlwZSAndm9pZCciLCAoeXl2c3BbKDIpIC0gKDIpXS5sZXgpLnN0cmluZy0+Y19z
dHIoKSk7Ci0gICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0gICAgICAgIH0KLSAgICAg
ICAgaWYgKGNvbnRleHQtPnJlc2VydmVkRXJyb3JDaGVjaygoeXlsc3BbKDIpIC0gKDIpXSksICoo
eXl2c3BbKDIpIC0gKDIpXS5sZXgpLnN0cmluZykpCi0gICAgICAgICAgICBjb250ZXh0LT5yZWNv
dmVyKCk7Ci0gICAgICAgIFRQYXJhbWV0ZXIgcGFyYW0gPSB7KHl5dnNwWygyKSAtICgyKV0ubGV4
KS5zdHJpbmcsIG5ldyBUVHlwZSgoeXl2c3BbKDEpIC0gKDIpXS5pbnRlcm0udHlwZSkpfTsKLSAg
ICAgICAgKHl5dmFsLmludGVybSkucGFyYW0gPSBwYXJhbTsKLSAgICA7fQotICAgIGJyZWFrOwot
Ci0gIGNhc2UgODI6Ci0KLSAgICB7Ci0gICAgICAgIC8vIENoZWNrIHRoYXQgd2UgY2FuIG1ha2Ug
YW4gYXJyYXkgb3V0IG9mIHRoaXMgdHlwZQotICAgICAgICBpZiAoY29udGV4dC0+YXJyYXlUeXBl
RXJyb3JDaGVjaygoeXlsc3BbKDMpIC0gKDUpXSksICh5eXZzcFsoMSkgLSAoNSldLmludGVybS50
eXBlKSkpCi0gICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0KLSAgICAgICAgaWYgKGNv
bnRleHQtPnJlc2VydmVkRXJyb3JDaGVjaygoeXlsc3BbKDIpIC0gKDUpXSksICooeXl2c3BbKDIp
IC0gKDUpXS5sZXgpLnN0cmluZykpCi0gICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0K
LSAgICAgICAgaW50IHNpemU7Ci0gICAgICAgIGlmIChjb250ZXh0LT5hcnJheVNpemVFcnJvckNo
ZWNrKCh5eWxzcFsoMykgLSAoNSldKSwgKHl5dnNwWyg0KSAtICg1KV0uaW50ZXJtLmludGVybVR5
cGVkTm9kZSksIHNpemUpKQotICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAg
ICAoeXl2c3BbKDEpIC0gKDUpXS5pbnRlcm0udHlwZSkuc2V0QXJyYXkodHJ1ZSwgc2l6ZSk7Ci0K
LSAgICAgICAgVFR5cGUqIHR5cGUgPSBuZXcgVFR5cGUoKHl5dnNwWygxKSAtICg1KV0uaW50ZXJt
LnR5cGUpKTsKLSAgICAgICAgVFBhcmFtZXRlciBwYXJhbSA9IHsgKHl5dnNwWygyKSAtICg1KV0u
bGV4KS5zdHJpbmcsIHR5cGUgfTsKLSAgICAgICAgKHl5dmFsLmludGVybSkucGFyYW0gPSBwYXJh
bTsKLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgODM6Ci0KLSAgICB7Ci0gICAgICAgICh5
eXZhbC5pbnRlcm0pID0gKHl5dnNwWygzKSAtICgzKV0uaW50ZXJtKTsKLSAgICAgICAgaWYgKGNv
bnRleHQtPnBhcmFtRXJyb3JDaGVjaygoeXlsc3BbKDMpIC0gKDMpXSksICh5eXZzcFsoMSkgLSAo
MyldLmludGVybS50eXBlKS5xdWFsaWZpZXIsICh5eXZzcFsoMikgLSAoMyldLmludGVybS5xdWFs
aWZpZXIpLCAoeXl2YWwuaW50ZXJtKS5wYXJhbS50eXBlKSkKLSAgICAgICAgICAgIGNvbnRleHQt
PnJlY292ZXIoKTsKLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgODQ6Ci0KLSAgICB7Ci0g
ICAgICAgICh5eXZhbC5pbnRlcm0pID0gKHl5dnNwWygyKSAtICgyKV0uaW50ZXJtKTsKLSAgICAg
ICAgaWYgKGNvbnRleHQtPnBhcmFtZXRlclNhbXBsZXJFcnJvckNoZWNrKCh5eWxzcFsoMikgLSAo
MildKSwgKHl5dnNwWygxKSAtICgyKV0uaW50ZXJtLnF1YWxpZmllciksICooeXl2c3BbKDIpIC0g
KDIpXS5pbnRlcm0pLnBhcmFtLnR5cGUpKQotICAgICAgICAgICAgY29udGV4dC0+cmVjb3Zlcigp
OwotICAgICAgICBpZiAoY29udGV4dC0+cGFyYW1FcnJvckNoZWNrKCh5eWxzcFsoMikgLSAoMild
KSwgRXZxVGVtcG9yYXJ5LCAoeXl2c3BbKDEpIC0gKDIpXS5pbnRlcm0ucXVhbGlmaWVyKSwgKHl5
dmFsLmludGVybSkucGFyYW0udHlwZSkpCi0gICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVyKCk7
Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDg1OgotCi0gICAgewotICAgICAgICAoeXl2
YWwuaW50ZXJtKSA9ICh5eXZzcFsoMykgLSAoMyldLmludGVybSk7Ci0gICAgICAgIGlmIChjb250
ZXh0LT5wYXJhbUVycm9yQ2hlY2soKHl5bHNwWygzKSAtICgzKV0pLCAoeXl2c3BbKDEpIC0gKDMp
XS5pbnRlcm0udHlwZSkucXVhbGlmaWVyLCAoeXl2c3BbKDIpIC0gKDMpXS5pbnRlcm0ucXVhbGlm
aWVyKSwgKHl5dmFsLmludGVybSkucGFyYW0udHlwZSkpCi0gICAgICAgICAgICBjb250ZXh0LT5y
ZWNvdmVyKCk7Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDg2OgotCi0gICAgewotICAg
ICAgICAoeXl2YWwuaW50ZXJtKSA9ICh5eXZzcFsoMikgLSAoMildLmludGVybSk7Ci0gICAgICAg
IGlmIChjb250ZXh0LT5wYXJhbWV0ZXJTYW1wbGVyRXJyb3JDaGVjaygoeXlsc3BbKDIpIC0gKDIp
XSksICh5eXZzcFsoMSkgLSAoMildLmludGVybS5xdWFsaWZpZXIpLCAqKHl5dnNwWygyKSAtICgy
KV0uaW50ZXJtKS5wYXJhbS50eXBlKSkKLSAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsK
LSAgICAgICAgaWYgKGNvbnRleHQtPnBhcmFtRXJyb3JDaGVjaygoeXlsc3BbKDIpIC0gKDIpXSks
IEV2cVRlbXBvcmFyeSwgKHl5dnNwWygxKSAtICgyKV0uaW50ZXJtLnF1YWxpZmllciksICh5eXZh
bC5pbnRlcm0pLnBhcmFtLnR5cGUpKQotICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwot
ICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSA4NzoKLQotICAgIHsKLSAgICAgICAgKHl5dmFs
LmludGVybS5xdWFsaWZpZXIpID0gRXZxSW47Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNl
IDg4OgotCi0gICAgewotICAgICAgICAoeXl2YWwuaW50ZXJtLnF1YWxpZmllcikgPSBFdnFJbjsK
LSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgODk6Ci0KLSAgICB7Ci0gICAgICAgICh5eXZh
bC5pbnRlcm0ucXVhbGlmaWVyKSA9IEV2cU91dDsKLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNh
c2UgOTA6Ci0KLSAgICB7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0ucXVhbGlmaWVyKSA9IEV2cUlu
T3V0OwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSA5MToKLQotICAgIHsKLSAgICAgICAg
VFBhcmFtZXRlciBwYXJhbSA9IHsgMCwgbmV3IFRUeXBlKCh5eXZzcFsoMSkgLSAoMSldLmludGVy
bS50eXBlKSkgfTsKLSAgICAgICAgKHl5dmFsLmludGVybSkucGFyYW0gPSBwYXJhbTsKLSAgICA7
fQotICAgIGJyZWFrOwotCi0gIGNhc2UgOTI6Ci0KLSAgICB7Ci0gICAgICAgICh5eXZhbC5pbnRl
cm0pID0gKHl5dnNwWygxKSAtICgxKV0uaW50ZXJtKTsKLSAgICA7fQotICAgIGJyZWFrOwotCi0g
IGNhc2UgOTM6Ci0KLSAgICB7Ci0gICAgICAgIGlmICgoeXl2c3BbKDEpIC0gKDMpXS5pbnRlcm0p
LnR5cGUudHlwZSA9PSBFYnRJbnZhcmlhbnQgJiYgISh5eXZzcFsoMykgLSAoMyldLmxleCkuc3lt
Ym9sKQotICAgICAgICB7Ci0gICAgICAgICAgICBjb250ZXh0LT5lcnJvcigoeXlsc3BbKDMpIC0g
KDMpXSksICJ1bmRlY2xhcmVkIGlkZW50aWZpZXIgZGVjbGFyZWQgYXMgaW52YXJpYW50IiwgKHl5
dnNwWygzKSAtICgzKV0ubGV4KS5zdHJpbmctPmNfc3RyKCkpOwotICAgICAgICAgICAgY29udGV4
dC0+cmVjb3ZlcigpOwotICAgICAgICB9Ci0KLSAgICAgICAgVEludGVybVN5bWJvbCogc3ltYm9s
ID0gY29udGV4dC0+aW50ZXJtZWRpYXRlLmFkZFN5bWJvbCgwLCAqKHl5dnNwWygzKSAtICgzKV0u
bGV4KS5zdHJpbmcsIFRUeXBlKCh5eXZzcFsoMSkgLSAoMyldLmludGVybSkudHlwZSksICh5eWxz
cFsoMykgLSAoMyldKSk7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0pLmludGVybUFnZ3JlZ2F0ZSA9
IGNvbnRleHQtPmludGVybWVkaWF0ZS5ncm93QWdncmVnYXRlKCh5eXZzcFsoMSkgLSAoMyldLmlu
dGVybSkuaW50ZXJtTm9kZSwgc3ltYm9sLCAoeXlsc3BbKDMpIC0gKDMpXSkpOwotICAgICAgICAK
LSAgICAgICAgaWYgKGNvbnRleHQtPnN0cnVjdFF1YWxpZmllckVycm9yQ2hlY2soKHl5bHNwWygz
KSAtICgzKV0pLCAoeXl2YWwuaW50ZXJtKS50eXBlKSkKLSAgICAgICAgICAgIGNvbnRleHQtPnJl
Y292ZXIoKTsKLQotICAgICAgICBpZiAoY29udGV4dC0+bm9uSW5pdENvbnN0RXJyb3JDaGVjaygo
eXlsc3BbKDMpIC0gKDMpXSksICooeXl2c3BbKDMpIC0gKDMpXS5sZXgpLnN0cmluZywgKHl5dmFs
LmludGVybSkudHlwZSwgZmFsc2UpKQotICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwot
Ci0gICAgICAgIFRWYXJpYWJsZSogdmFyaWFibGUgPSAwOwotICAgICAgICBpZiAoY29udGV4dC0+
bm9uSW5pdEVycm9yQ2hlY2soKHl5bHNwWygzKSAtICgzKV0pLCAqKHl5dnNwWygzKSAtICgzKV0u
bGV4KS5zdHJpbmcsICh5eXZhbC5pbnRlcm0pLnR5cGUsIHZhcmlhYmxlKSkKLSAgICAgICAgICAg
IGNvbnRleHQtPnJlY292ZXIoKTsKLSAgICAgICAgaWYgKHN5bWJvbCAmJiB2YXJpYWJsZSkKLSAg
ICAgICAgICAgIHN5bWJvbC0+c2V0SWQodmFyaWFibGUtPmdldFVuaXF1ZUlkKCkpOwotICAgIDt9
Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSA5NDoKLQotICAgIHsKLSAgICAgICAgaWYgKGNvbnRleHQt
PnN0cnVjdFF1YWxpZmllckVycm9yQ2hlY2soKHl5bHNwWygzKSAtICg1KV0pLCAoeXl2c3BbKDEp
IC0gKDUpXS5pbnRlcm0pLnR5cGUpKQotICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwot
Ci0gICAgICAgIGlmIChjb250ZXh0LT5ub25Jbml0Q29uc3RFcnJvckNoZWNrKCh5eWxzcFsoMykg
LSAoNSldKSwgKih5eXZzcFsoMykgLSAoNSldLmxleCkuc3RyaW5nLCAoeXl2c3BbKDEpIC0gKDUp
XS5pbnRlcm0pLnR5cGUsIHRydWUpKQotICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwot
Ci0gICAgICAgICh5eXZhbC5pbnRlcm0pID0gKHl5dnNwWygxKSAtICg1KV0uaW50ZXJtKTsKLQot
ICAgICAgICBpZiAoY29udGV4dC0+YXJyYXlUeXBlRXJyb3JDaGVjaygoeXlsc3BbKDQpIC0gKDUp
XSksICh5eXZzcFsoMSkgLSAoNSldLmludGVybSkudHlwZSkgfHwgY29udGV4dC0+YXJyYXlRdWFs
aWZpZXJFcnJvckNoZWNrKCh5eWxzcFsoNCkgLSAoNSldKSwgKHl5dnNwWygxKSAtICg1KV0uaW50
ZXJtKS50eXBlKSkKLSAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLSAgICAgICAgZWxz
ZSB7Ci0gICAgICAgICAgICAoeXl2c3BbKDEpIC0gKDUpXS5pbnRlcm0pLnR5cGUuc2V0QXJyYXko
dHJ1ZSk7Ci0gICAgICAgICAgICBUVmFyaWFibGUqIHZhcmlhYmxlOwotICAgICAgICAgICAgaWYg
KGNvbnRleHQtPmFycmF5RXJyb3JDaGVjaygoeXlsc3BbKDQpIC0gKDUpXSksICooeXl2c3BbKDMp
IC0gKDUpXS5sZXgpLnN0cmluZywgKHl5dnNwWygxKSAtICg1KV0uaW50ZXJtKS50eXBlLCB2YXJp
YWJsZSkpCi0gICAgICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAgICB9Ci0g
ICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDk1OgotCi0gICAgewotICAgICAgICBpZiAoY29u
dGV4dC0+c3RydWN0UXVhbGlmaWVyRXJyb3JDaGVjaygoeXlsc3BbKDMpIC0gKDYpXSksICh5eXZz
cFsoMSkgLSAoNildLmludGVybSkudHlwZSkpCi0gICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVy
KCk7Ci0KLSAgICAgICAgaWYgKGNvbnRleHQtPm5vbkluaXRDb25zdEVycm9yQ2hlY2soKHl5bHNw
WygzKSAtICg2KV0pLCAqKHl5dnNwWygzKSAtICg2KV0ubGV4KS5zdHJpbmcsICh5eXZzcFsoMSkg
LSAoNildLmludGVybSkudHlwZSwgdHJ1ZSkpCi0gICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVy
KCk7Ci0KLSAgICAgICAgKHl5dmFsLmludGVybSkgPSAoeXl2c3BbKDEpIC0gKDYpXS5pbnRlcm0p
OwotCi0gICAgICAgIGlmIChjb250ZXh0LT5hcnJheVR5cGVFcnJvckNoZWNrKCh5eWxzcFsoNCkg
LSAoNildKSwgKHl5dnNwWygxKSAtICg2KV0uaW50ZXJtKS50eXBlKSB8fCBjb250ZXh0LT5hcnJh
eVF1YWxpZmllckVycm9yQ2hlY2soKHl5bHNwWyg0KSAtICg2KV0pLCAoeXl2c3BbKDEpIC0gKDYp
XS5pbnRlcm0pLnR5cGUpKQotICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAg
ICBlbHNlIHsKLSAgICAgICAgICAgIGludCBzaXplOwotICAgICAgICAgICAgaWYgKGNvbnRleHQt
PmFycmF5U2l6ZUVycm9yQ2hlY2soKHl5bHNwWyg0KSAtICg2KV0pLCAoeXl2c3BbKDUpIC0gKDYp
XS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSwgc2l6ZSkpCi0gICAgICAgICAgICAgICAgY29udGV4
dC0+cmVjb3ZlcigpOwotICAgICAgICAgICAgKHl5dnNwWygxKSAtICg2KV0uaW50ZXJtKS50eXBl
LnNldEFycmF5KHRydWUsIHNpemUpOwotICAgICAgICAgICAgVFZhcmlhYmxlKiB2YXJpYWJsZSA9
IDA7Ci0gICAgICAgICAgICBpZiAoY29udGV4dC0+YXJyYXlFcnJvckNoZWNrKCh5eWxzcFsoNCkg
LSAoNildKSwgKih5eXZzcFsoMykgLSAoNildLmxleCkuc3RyaW5nLCAoeXl2c3BbKDEpIC0gKDYp
XS5pbnRlcm0pLnR5cGUsIHZhcmlhYmxlKSkKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5yZWNv
dmVyKCk7Ci0gICAgICAgICAgICBUVHlwZSB0eXBlID0gVFR5cGUoKHl5dnNwWygxKSAtICg2KV0u
aW50ZXJtKS50eXBlKTsKLSAgICAgICAgICAgIHR5cGUuc2V0QXJyYXlTaXplKHNpemUpOwotICAg
ICAgICAgICAgKHl5dmFsLmludGVybSkuaW50ZXJtQWdncmVnYXRlID0gY29udGV4dC0+aW50ZXJt
ZWRpYXRlLmdyb3dBZ2dyZWdhdGUoKHl5dnNwWygxKSAtICg2KV0uaW50ZXJtKS5pbnRlcm1Ob2Rl
LCBjb250ZXh0LT5pbnRlcm1lZGlhdGUuYWRkU3ltYm9sKHZhcmlhYmxlID8gdmFyaWFibGUtPmdl
dFVuaXF1ZUlkKCkgOiAwLCAqKHl5dnNwWygzKSAtICg2KV0ubGV4KS5zdHJpbmcsIHR5cGUsICh5
eWxzcFsoMykgLSAoNildKSksICh5eWxzcFsoMykgLSAoNildKSk7Ci0gICAgICAgIH0KLSAgICA7
fQotICAgIGJyZWFrOwotCi0gIGNhc2UgOTY6Ci0KLSAgICB7Ci0gICAgICAgIGlmIChjb250ZXh0
LT5zdHJ1Y3RRdWFsaWZpZXJFcnJvckNoZWNrKCh5eWxzcFsoMykgLSAoNSldKSwgKHl5dnNwWygx
KSAtICg1KV0uaW50ZXJtKS50eXBlKSkKLSAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsK
LQotICAgICAgICAoeXl2YWwuaW50ZXJtKSA9ICh5eXZzcFsoMSkgLSAoNSldLmludGVybSk7Ci0K
LSAgICAgICAgVEludGVybU5vZGUqIGludGVybU5vZGU7Ci0gICAgICAgIGlmICghY29udGV4dC0+
ZXhlY3V0ZUluaXRpYWxpemVyKCh5eWxzcFsoMykgLSAoNSldKSwgKih5eXZzcFsoMykgLSAoNSld
LmxleCkuc3RyaW5nLCAoeXl2c3BbKDEpIC0gKDUpXS5pbnRlcm0pLnR5cGUsICh5eXZzcFsoNSkg
LSAoNSldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLCBpbnRlcm1Ob2RlKSkgewotICAgICAgICAg
ICAgLy8KLSAgICAgICAgICAgIC8vIGJ1aWxkIHRoZSBpbnRlcm1lZGlhdGUgcmVwcmVzZW50YXRp
b24KLSAgICAgICAgICAgIC8vCi0gICAgICAgICAgICBpZiAoaW50ZXJtTm9kZSkKLSAgICAgICAg
KHl5dmFsLmludGVybSkuaW50ZXJtQWdncmVnYXRlID0gY29udGV4dC0+aW50ZXJtZWRpYXRlLmdy
b3dBZ2dyZWdhdGUoKHl5dnNwWygxKSAtICg1KV0uaW50ZXJtKS5pbnRlcm1Ob2RlLCBpbnRlcm1O
b2RlLCAoeXlsc3BbKDQpIC0gKDUpXSkpOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAg
ICAgICh5eXZhbC5pbnRlcm0pLmludGVybUFnZ3JlZ2F0ZSA9ICh5eXZzcFsoMSkgLSAoNSldLmlu
dGVybSkuaW50ZXJtQWdncmVnYXRlOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgY29u
dGV4dC0+cmVjb3ZlcigpOwotICAgICAgICAgICAgKHl5dmFsLmludGVybSkuaW50ZXJtQWdncmVn
YXRlID0gMDsKLSAgICAgICAgfQotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSA5NzoKLQot
ICAgIHsKLSAgICAgICAgKHl5dmFsLmludGVybSkudHlwZSA9ICh5eXZzcFsoMSkgLSAoMSldLmlu
dGVybS50eXBlKTsKLSAgICAgICAgKHl5dmFsLmludGVybSkuaW50ZXJtQWdncmVnYXRlID0gY29u
dGV4dC0+aW50ZXJtZWRpYXRlLm1ha2VBZ2dyZWdhdGUoY29udGV4dC0+aW50ZXJtZWRpYXRlLmFk
ZFN5bWJvbCgwLCAiIiwgVFR5cGUoKHl5dnNwWygxKSAtICgxKV0uaW50ZXJtLnR5cGUpKSwgKHl5
bHNwWygxKSAtICgxKV0pKSwgKHl5bHNwWygxKSAtICgxKV0pKTsKLSAgICA7fQotICAgIGJyZWFr
OwotCi0gIGNhc2UgOTg6Ci0KLSAgICB7Ci0gICAgICAgIFRJbnRlcm1TeW1ib2wqIHN5bWJvbCA9
IGNvbnRleHQtPmludGVybWVkaWF0ZS5hZGRTeW1ib2woMCwgKih5eXZzcFsoMikgLSAoMildLmxl
eCkuc3RyaW5nLCBUVHlwZSgoeXl2c3BbKDEpIC0gKDIpXS5pbnRlcm0udHlwZSkpLCAoeXlsc3Bb
KDIpIC0gKDIpXSkpOwotICAgICAgICAoeXl2YWwuaW50ZXJtKS5pbnRlcm1BZ2dyZWdhdGUgPSBj
b250ZXh0LT5pbnRlcm1lZGlhdGUubWFrZUFnZ3JlZ2F0ZShzeW1ib2wsICh5eWxzcFsoMikgLSAo
MildKSk7Ci0gICAgICAgIAotICAgICAgICBpZiAoY29udGV4dC0+c3RydWN0UXVhbGlmaWVyRXJy
b3JDaGVjaygoeXlsc3BbKDIpIC0gKDIpXSksICh5eXZhbC5pbnRlcm0pLnR5cGUpKQotICAgICAg
ICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotCi0gICAgICAgIGlmIChjb250ZXh0LT5ub25Jbml0
Q29uc3RFcnJvckNoZWNrKCh5eWxzcFsoMikgLSAoMildKSwgKih5eXZzcFsoMikgLSAoMildLmxl
eCkuc3RyaW5nLCAoeXl2YWwuaW50ZXJtKS50eXBlLCBmYWxzZSkpCi0gICAgICAgICAgICBjb250
ZXh0LT5yZWNvdmVyKCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgICh5eXZhbC5pbnRlcm0p
LnR5cGUgPSAoeXl2c3BbKDEpIC0gKDIpXS5pbnRlcm0udHlwZSk7Ci0KLSAgICAgICAgVFZhcmlh
YmxlKiB2YXJpYWJsZSA9IDA7Ci0gICAgICAgIGlmIChjb250ZXh0LT5ub25Jbml0RXJyb3JDaGVj
aygoeXlsc3BbKDIpIC0gKDIpXSksICooeXl2c3BbKDIpIC0gKDIpXS5sZXgpLnN0cmluZywgKHl5
dmFsLmludGVybSkudHlwZSwgdmFyaWFibGUpKQotICAgICAgICAgICAgY29udGV4dC0+cmVjb3Zl
cigpOwotICAgICAgICBpZiAodmFyaWFibGUgJiYgc3ltYm9sKQotICAgICAgICAgICAgc3ltYm9s
LT5zZXRJZCh2YXJpYWJsZS0+Z2V0VW5pcXVlSWQoKSk7Ci0gICAgO30KLSAgICBicmVhazsKLQot
ICBjYXNlIDk5OgotCi0gICAgewotICAgICAgICBjb250ZXh0LT5lcnJvcigoeXlsc3BbKDIpIC0g
KDQpXSksICJ1bnNpemVkIGFycmF5IGRlY2xhcmF0aW9ucyBub3Qgc3VwcG9ydGVkIiwgKHl5dnNw
WygyKSAtICg0KV0ubGV4KS5zdHJpbmctPmNfc3RyKCkpOwotICAgICAgICBjb250ZXh0LT5yZWNv
dmVyKCk7Ci0KLSAgICAgICAgVEludGVybVN5bWJvbCogc3ltYm9sID0gY29udGV4dC0+aW50ZXJt
ZWRpYXRlLmFkZFN5bWJvbCgwLCAqKHl5dnNwWygyKSAtICg0KV0ubGV4KS5zdHJpbmcsIFRUeXBl
KCh5eXZzcFsoMSkgLSAoNCldLmludGVybS50eXBlKSksICh5eWxzcFsoMikgLSAoNCldKSk7Ci0g
ICAgICAgICh5eXZhbC5pbnRlcm0pLmludGVybUFnZ3JlZ2F0ZSA9IGNvbnRleHQtPmludGVybWVk
aWF0ZS5tYWtlQWdncmVnYXRlKHN5bWJvbCwgKHl5bHNwWygyKSAtICg0KV0pKTsKLSAgICAgICAg
KHl5dmFsLmludGVybSkudHlwZSA9ICh5eXZzcFsoMSkgLSAoNCldLmludGVybS50eXBlKTsKLSAg
ICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMTAwOgotCi0gICAgewotICAgICAgICBUVHlwZSB0
eXBlID0gVFR5cGUoKHl5dnNwWygxKSAtICg1KV0uaW50ZXJtLnR5cGUpKTsKLSAgICAgICAgaW50
IHNpemU7Ci0gICAgICAgIGlmIChjb250ZXh0LT5hcnJheVNpemVFcnJvckNoZWNrKCh5eWxzcFso
MikgLSAoNSldKSwgKHl5dnNwWyg0KSAtICg1KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSksIHNp
emUpKQotICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAgICB0eXBlLnNldEFy
cmF5U2l6ZShzaXplKTsKLSAgICAgICAgVEludGVybVN5bWJvbCogc3ltYm9sID0gY29udGV4dC0+
aW50ZXJtZWRpYXRlLmFkZFN5bWJvbCgwLCAqKHl5dnNwWygyKSAtICg1KV0ubGV4KS5zdHJpbmcs
IHR5cGUsICh5eWxzcFsoMikgLSAoNSldKSk7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0pLmludGVy
bUFnZ3JlZ2F0ZSA9IGNvbnRleHQtPmludGVybWVkaWF0ZS5tYWtlQWdncmVnYXRlKHN5bWJvbCwg
KHl5bHNwWygyKSAtICg1KV0pKTsKLSAgICAgICAgCi0gICAgICAgIGlmIChjb250ZXh0LT5zdHJ1
Y3RRdWFsaWZpZXJFcnJvckNoZWNrKCh5eWxzcFsoMikgLSAoNSldKSwgKHl5dnNwWygxKSAtICg1
KV0uaW50ZXJtLnR5cGUpKSkKLSAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLQotICAg
ICAgICBpZiAoY29udGV4dC0+bm9uSW5pdENvbnN0RXJyb3JDaGVjaygoeXlsc3BbKDIpIC0gKDUp
XSksICooeXl2c3BbKDIpIC0gKDUpXS5sZXgpLnN0cmluZywgKHl5dnNwWygxKSAtICg1KV0uaW50
ZXJtLnR5cGUpLCB0cnVlKSkKLSAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLQotICAg
ICAgICAoeXl2YWwuaW50ZXJtKS50eXBlID0gKHl5dnNwWygxKSAtICg1KV0uaW50ZXJtLnR5cGUp
OwotCi0gICAgICAgIGlmIChjb250ZXh0LT5hcnJheVR5cGVFcnJvckNoZWNrKCh5eWxzcFsoMykg
LSAoNSldKSwgKHl5dnNwWygxKSAtICg1KV0uaW50ZXJtLnR5cGUpKSB8fCBjb250ZXh0LT5hcnJh
eVF1YWxpZmllckVycm9yQ2hlY2soKHl5bHNwWygzKSAtICg1KV0pLCAoeXl2c3BbKDEpIC0gKDUp
XS5pbnRlcm0udHlwZSkpKQotICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAg
ICBlbHNlIHsKLSAgICAgICAgICAgIGludCBzaXplOwotICAgICAgICAgICAgaWYgKGNvbnRleHQt
PmFycmF5U2l6ZUVycm9yQ2hlY2soKHl5bHNwWygzKSAtICg1KV0pLCAoeXl2c3BbKDQpIC0gKDUp
XS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSwgc2l6ZSkpCi0gICAgICAgICAgICAgICAgY29udGV4
dC0+cmVjb3ZlcigpOwotCi0gICAgICAgICAgICAoeXl2c3BbKDEpIC0gKDUpXS5pbnRlcm0udHlw
ZSkuc2V0QXJyYXkodHJ1ZSwgc2l6ZSk7Ci0gICAgICAgICAgICBUVmFyaWFibGUqIHZhcmlhYmxl
ID0gMDsKLSAgICAgICAgICAgIGlmIChjb250ZXh0LT5hcnJheUVycm9yQ2hlY2soKHl5bHNwWygz
KSAtICg1KV0pLCAqKHl5dnNwWygyKSAtICg1KV0ubGV4KS5zdHJpbmcsICh5eXZzcFsoMSkgLSAo
NSldLmludGVybS50eXBlKSwgdmFyaWFibGUpKQotICAgICAgICAgICAgICAgIGNvbnRleHQtPnJl
Y292ZXIoKTsKLSAgICAgICAgICAgIGlmICh2YXJpYWJsZSAmJiBzeW1ib2wpCi0gICAgICAgICAg
ICAgICAgc3ltYm9sLT5zZXRJZCh2YXJpYWJsZS0+Z2V0VW5pcXVlSWQoKSk7Ci0gICAgICAgIH0K
LSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMTAxOgotCi0gICAgewotICAgICAgICBpZiAo
Y29udGV4dC0+c3RydWN0UXVhbGlmaWVyRXJyb3JDaGVjaygoeXlsc3BbKDIpIC0gKDQpXSksICh5
eXZzcFsoMSkgLSAoNCldLmludGVybS50eXBlKSkpCi0gICAgICAgICAgICBjb250ZXh0LT5yZWNv
dmVyKCk7Ci0KLSAgICAgICAgKHl5dmFsLmludGVybSkudHlwZSA9ICh5eXZzcFsoMSkgLSAoNCld
LmludGVybS50eXBlKTsKLQotICAgICAgICBUSW50ZXJtTm9kZSogaW50ZXJtTm9kZTsKLSAgICAg
ICAgaWYgKCFjb250ZXh0LT5leGVjdXRlSW5pdGlhbGl6ZXIoKHl5bHNwWygyKSAtICg0KV0pLCAq
KHl5dnNwWygyKSAtICg0KV0ubGV4KS5zdHJpbmcsICh5eXZzcFsoMSkgLSAoNCldLmludGVybS50
eXBlKSwgKHl5dnNwWyg0KSAtICg0KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSksIGludGVybU5v
ZGUpKSB7Ci0gICAgICAgIC8vCi0gICAgICAgIC8vIEJ1aWxkIGludGVybWVkaWF0ZSByZXByZXNl
bnRhdGlvbgotICAgICAgICAvLwotICAgICAgICAgICAgaWYoaW50ZXJtTm9kZSkKLSAgICAgICAg
ICAgICAgICAoeXl2YWwuaW50ZXJtKS5pbnRlcm1BZ2dyZWdhdGUgPSBjb250ZXh0LT5pbnRlcm1l
ZGlhdGUubWFrZUFnZ3JlZ2F0ZShpbnRlcm1Ob2RlLCAoeXlsc3BbKDMpIC0gKDQpXSkpOwotICAg
ICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgICh5eXZhbC5pbnRlcm0pLmludGVybUFnZ3Jl
Z2F0ZSA9IDA7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVy
KCk7Ci0gICAgICAgICAgICAoeXl2YWwuaW50ZXJtKS5pbnRlcm1BZ2dyZWdhdGUgPSAwOwotICAg
ICAgICB9Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDEwMjoKLQotICAgIHsKLSAgICAg
ICAgVkVSVEVYX09OTFkoImludmFyaWFudCBkZWNsYXJhdGlvbiIsICh5eWxzcFsoMSkgLSAoMild
KSk7Ci0gICAgICAgIGlmIChjb250ZXh0LT5nbG9iYWxFcnJvckNoZWNrKCh5eWxzcFsoMSkgLSAo
MildKSwgY29udGV4dC0+c3ltYm9sVGFibGUuYXRHbG9iYWxMZXZlbCgpLCAiaW52YXJpYW50IHZh
cnlpbmciKSkKLSAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLSAgICAgICAgKHl5dmFs
LmludGVybSkudHlwZS5zZXRCYXNpYyhFYnRJbnZhcmlhbnQsIEV2cUludmFyaWFudFZhcnlpbmdP
dXQsICh5eWxzcFsoMikgLSAoMildKSk7Ci0gICAgICAgIGlmICghKHl5dnNwWygyKSAtICgyKV0u
bGV4KS5zeW1ib2wpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGNvbnRleHQtPmVycm9yKCh5eWxz
cFsoMikgLSAoMildKSwgInVuZGVjbGFyZWQgaWRlbnRpZmllciBkZWNsYXJlZCBhcyBpbnZhcmlh
bnQiLCAoeXl2c3BbKDIpIC0gKDIpXS5sZXgpLnN0cmluZy0+Y19zdHIoKSk7Ci0gICAgICAgICAg
ICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0gICAgICAgICAgICAKLSAgICAgICAgICAgICh5eXZhbC5p
bnRlcm0pLmludGVybUFnZ3JlZ2F0ZSA9IDA7Ci0gICAgICAgIH0KLSAgICAgICAgZWxzZQotICAg
ICAgICB7Ci0gICAgICAgICAgICBUSW50ZXJtU3ltYm9sICpzeW1ib2wgPSBjb250ZXh0LT5pbnRl
cm1lZGlhdGUuYWRkU3ltYm9sKDAsICooeXl2c3BbKDIpIC0gKDIpXS5sZXgpLnN0cmluZywgVFR5
cGUoKHl5dmFsLmludGVybSkudHlwZSksICh5eWxzcFsoMikgLSAoMildKSk7Ci0gICAgICAgICAg
ICAoeXl2YWwuaW50ZXJtKS5pbnRlcm1BZ2dyZWdhdGUgPSBjb250ZXh0LT5pbnRlcm1lZGlhdGUu
bWFrZUFnZ3JlZ2F0ZShzeW1ib2wsICh5eWxzcFsoMikgLSAoMildKSk7Ci0gICAgICAgIH0KLSAg
ICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMTAzOgotCi0gICAgewotICAgICAgICAoeXl2YWwu
aW50ZXJtLnR5cGUpID0gKHl5dnNwWygxKSAtICgxKV0uaW50ZXJtLnR5cGUpOwotCi0gICAgICAg
IGlmICgoeXl2c3BbKDEpIC0gKDEpXS5pbnRlcm0udHlwZSkuYXJyYXkpIHsKLSAgICAgICAgICAg
IGNvbnRleHQtPmVycm9yKCh5eWxzcFsoMSkgLSAoMSldKSwgIm5vdCBzdXBwb3J0ZWQiLCAiZmly
c3QtY2xhc3MgYXJyYXkiKTsKLSAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLSAgICAg
ICAgICAgICh5eXZzcFsoMSkgLSAoMSldLmludGVybS50eXBlKS5zZXRBcnJheShmYWxzZSk7Ci0g
ICAgICAgIH0KLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMTA0OgotCi0gICAgewotICAg
ICAgICBpZiAoKHl5dnNwWygyKSAtICgyKV0uaW50ZXJtLnR5cGUpLmFycmF5KSB7Ci0gICAgICAg
ICAgICBjb250ZXh0LT5lcnJvcigoeXlsc3BbKDIpIC0gKDIpXSksICJub3Qgc3VwcG9ydGVkIiwg
ImZpcnN0LWNsYXNzIGFycmF5Iik7Ci0gICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0g
ICAgICAgICAgICAoeXl2c3BbKDIpIC0gKDIpXS5pbnRlcm0udHlwZSkuc2V0QXJyYXkoZmFsc2Up
OwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCh5eXZzcFsoMSkgLSAoMildLmludGVybS50eXBl
KS5xdWFsaWZpZXIgPT0gRXZxQXR0cmlidXRlICYmCi0gICAgICAgICAgICAoKHl5dnNwWygyKSAt
ICgyKV0uaW50ZXJtLnR5cGUpLnR5cGUgPT0gRWJ0Qm9vbCB8fCAoeXl2c3BbKDIpIC0gKDIpXS5p
bnRlcm0udHlwZSkudHlwZSA9PSBFYnRJbnQpKSB7Ci0gICAgICAgICAgICBjb250ZXh0LT5lcnJv
cigoeXlsc3BbKDIpIC0gKDIpXSksICJjYW5ub3QgYmUgYm9vbCBvciBpbnQiLCBnZXRRdWFsaWZp
ZXJTdHJpbmcoKHl5dnNwWygxKSAtICgyKV0uaW50ZXJtLnR5cGUpLnF1YWxpZmllcikpOwotICAg
ICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAgICB9Ci0gICAgICAgIGlmICgoKHl5
dnNwWygxKSAtICgyKV0uaW50ZXJtLnR5cGUpLnF1YWxpZmllciA9PSBFdnFWYXJ5aW5nSW4gfHwg
KHl5dnNwWygxKSAtICgyKV0uaW50ZXJtLnR5cGUpLnF1YWxpZmllciA9PSBFdnFWYXJ5aW5nT3V0
KSAmJgotICAgICAgICAgICAgKCh5eXZzcFsoMikgLSAoMildLmludGVybS50eXBlKS50eXBlID09
IEVidEJvb2wgfHwgKHl5dnNwWygyKSAtICgyKV0uaW50ZXJtLnR5cGUpLnR5cGUgPT0gRWJ0SW50
KSkgewotICAgICAgICAgICAgY29udGV4dC0+ZXJyb3IoKHl5bHNwWygyKSAtICgyKV0pLCAiY2Fu
bm90IGJlIGJvb2wgb3IgaW50IiwgZ2V0UXVhbGlmaWVyU3RyaW5nKCh5eXZzcFsoMSkgLSAoMild
LmludGVybS50eXBlKS5xdWFsaWZpZXIpKTsKLSAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIo
KTsKLSAgICAgICAgfQotICAgICAgICAoeXl2YWwuaW50ZXJtLnR5cGUpID0gKHl5dnNwWygyKSAt
ICgyKV0uaW50ZXJtLnR5cGUpOwotICAgICAgICAoeXl2YWwuaW50ZXJtLnR5cGUpLnF1YWxpZmll
ciA9ICh5eXZzcFsoMSkgLSAoMildLmludGVybS50eXBlKS5xdWFsaWZpZXI7Ci0gICAgO30KLSAg
ICBicmVhazsKLQotICBjYXNlIDEwNToKLQotICAgIHsKLSAgICAgICAgKHl5dmFsLmludGVybS50
eXBlKS5zZXRCYXNpYyhFYnRWb2lkLCBFdnFDb25zdCwgKHl5bHNwWygxKSAtICgxKV0pKTsKLSAg
ICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMTA2OgotCi0gICAgewotICAgICAgICBWRVJURVhf
T05MWSgiYXR0cmlidXRlIiwgKHl5bHNwWygxKSAtICgxKV0pKTsKLSAgICAgICAgaWYgKGNvbnRl
eHQtPmdsb2JhbEVycm9yQ2hlY2soKHl5bHNwWygxKSAtICgxKV0pLCBjb250ZXh0LT5zeW1ib2xU
YWJsZS5hdEdsb2JhbExldmVsKCksICJhdHRyaWJ1dGUiKSkKLSAgICAgICAgICAgIGNvbnRleHQt
PnJlY292ZXIoKTsKLSAgICAgICAgKHl5dmFsLmludGVybS50eXBlKS5zZXRCYXNpYyhFYnRWb2lk
LCBFdnFBdHRyaWJ1dGUsICh5eWxzcFsoMSkgLSAoMSldKSk7Ci0gICAgO30KLSAgICBicmVhazsK
LQotICBjYXNlIDEwNzoKLQotICAgIHsKLSAgICAgICAgaWYgKGNvbnRleHQtPmdsb2JhbEVycm9y
Q2hlY2soKHl5bHNwWygxKSAtICgxKV0pLCBjb250ZXh0LT5zeW1ib2xUYWJsZS5hdEdsb2JhbExl
dmVsKCksICJ2YXJ5aW5nIikpCi0gICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0gICAg
ICAgIGlmIChjb250ZXh0LT5zaGFkZXJUeXBlID09IFNIX1ZFUlRFWF9TSEFERVIpCi0gICAgICAg
ICAgICAoeXl2YWwuaW50ZXJtLnR5cGUpLnNldEJhc2ljKEVidFZvaWQsIEV2cVZhcnlpbmdPdXQs
ICh5eWxzcFsoMSkgLSAoMSldKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgICh5eXZhbC5p
bnRlcm0udHlwZSkuc2V0QmFzaWMoRWJ0Vm9pZCwgRXZxVmFyeWluZ0luLCAoeXlsc3BbKDEpIC0g
KDEpXSkpOwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxMDg6Ci0KLSAgICB7Ci0gICAg
ICAgIGlmIChjb250ZXh0LT5nbG9iYWxFcnJvckNoZWNrKCh5eWxzcFsoMSkgLSAoMildKSwgY29u
dGV4dC0+c3ltYm9sVGFibGUuYXRHbG9iYWxMZXZlbCgpLCAiaW52YXJpYW50IHZhcnlpbmciKSkK
LSAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLSAgICAgICAgaWYgKGNvbnRleHQtPnNo
YWRlclR5cGUgPT0gU0hfVkVSVEVYX1NIQURFUikKLSAgICAgICAgICAgICh5eXZhbC5pbnRlcm0u
dHlwZSkuc2V0QmFzaWMoRWJ0Vm9pZCwgRXZxSW52YXJpYW50VmFyeWluZ091dCwgKHl5bHNwWygx
KSAtICgyKV0pKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgKHl5dmFsLmludGVybS50eXBl
KS5zZXRCYXNpYyhFYnRWb2lkLCBFdnFJbnZhcmlhbnRWYXJ5aW5nSW4sICh5eWxzcFsoMSkgLSAo
MildKSk7Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDEwOToKLQotICAgIHsKLSAgICAg
ICAgaWYgKGNvbnRleHQtPmdsb2JhbEVycm9yQ2hlY2soKHl5bHNwWygxKSAtICgxKV0pLCBjb250
ZXh0LT5zeW1ib2xUYWJsZS5hdEdsb2JhbExldmVsKCksICJ1bmlmb3JtIikpCi0gICAgICAgICAg
ICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0udHlwZSkuc2V0QmFz
aWMoRWJ0Vm9pZCwgRXZxVW5pZm9ybSwgKHl5bHNwWygxKSAtICgxKV0pKTsKLSAgICA7fQotICAg
IGJyZWFrOwotCi0gIGNhc2UgMTEwOgotCi0gICAgewotICAgICAgICAoeXl2YWwuaW50ZXJtLnR5
cGUpID0gKHl5dnNwWygxKSAtICgxKV0uaW50ZXJtLnR5cGUpOwotCi0gICAgICAgIGlmICgoeXl2
YWwuaW50ZXJtLnR5cGUpLnByZWNpc2lvbiA9PSBFYnBVbmRlZmluZWQpIHsKLSAgICAgICAgICAg
ICh5eXZhbC5pbnRlcm0udHlwZSkucHJlY2lzaW9uID0gY29udGV4dC0+c3ltYm9sVGFibGUuZ2V0
RGVmYXVsdFByZWNpc2lvbigoeXl2c3BbKDEpIC0gKDEpXS5pbnRlcm0udHlwZSkudHlwZSk7Ci0g
ICAgICAgICAgICBpZiAoY29udGV4dC0+cHJlY2lzaW9uRXJyb3JDaGVjaygoeXlsc3BbKDEpIC0g
KDEpXSksICh5eXZhbC5pbnRlcm0udHlwZSkucHJlY2lzaW9uLCAoeXl2c3BbKDEpIC0gKDEpXS5p
bnRlcm0udHlwZSkudHlwZSkpIHsKLSAgICAgICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVyKCk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2Ug
MTExOgotCi0gICAgewotICAgICAgICAoeXl2YWwuaW50ZXJtLnR5cGUpID0gKHl5dnNwWygyKSAt
ICgyKV0uaW50ZXJtLnR5cGUpOwotICAgICAgICAoeXl2YWwuaW50ZXJtLnR5cGUpLnByZWNpc2lv
biA9ICh5eXZzcFsoMSkgLSAoMildLmludGVybS5wcmVjaXNpb24pOwotICAgIDt9Ci0gICAgYnJl
YWs7Ci0KLSAgY2FzZSAxMTI6Ci0KLSAgICB7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0ucHJlY2lz
aW9uKSA9IEVicEhpZ2g7Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDExMzoKLQotICAg
IHsKLSAgICAgICAgKHl5dmFsLmludGVybS5wcmVjaXNpb24pID0gRWJwTWVkaXVtOwotICAgIDt9
Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxMTQ6Ci0KLSAgICB7Ci0gICAgICAgICh5eXZhbC5pbnRl
cm0ucHJlY2lzaW9uKSA9IEVicExvdzsKLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMTE1
OgotCi0gICAgewotICAgICAgICAoeXl2YWwuaW50ZXJtLnR5cGUpID0gKHl5dnNwWygxKSAtICgx
KV0uaW50ZXJtLnR5cGUpOwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxMTY6Ci0KLSAg
ICB7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0udHlwZSkgPSAoeXl2c3BbKDEpIC0gKDQpXS5pbnRl
cm0udHlwZSk7Ci0KLSAgICAgICAgaWYgKGNvbnRleHQtPmFycmF5VHlwZUVycm9yQ2hlY2soKHl5
bHNwWygyKSAtICg0KV0pLCAoeXl2c3BbKDEpIC0gKDQpXS5pbnRlcm0udHlwZSkpKQotICAgICAg
ICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGlu
dCBzaXplOwotICAgICAgICAgICAgaWYgKGNvbnRleHQtPmFycmF5U2l6ZUVycm9yQ2hlY2soKHl5
bHNwWygyKSAtICg0KV0pLCAoeXl2c3BbKDMpIC0gKDQpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2Rl
KSwgc2l6ZSkpCi0gICAgICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAgICAg
ICAgKHl5dmFsLmludGVybS50eXBlKS5zZXRBcnJheSh0cnVlLCBzaXplKTsKLSAgICAgICAgfQot
ICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxMTc6Ci0KLSAgICB7Ci0gICAgICAgIFRRdWFs
aWZpZXIgcXVhbCA9IGNvbnRleHQtPnN5bWJvbFRhYmxlLmF0R2xvYmFsTGV2ZWwoKSA/IEV2cUds
b2JhbCA6IEV2cVRlbXBvcmFyeTsKLSAgICAgICAgKHl5dmFsLmludGVybS50eXBlKS5zZXRCYXNp
YyhFYnRWb2lkLCBxdWFsLCAoeXlsc3BbKDEpIC0gKDEpXSkpOwotICAgIDt9Ci0gICAgYnJlYWs7
Ci0KLSAgY2FzZSAxMTg6Ci0KLSAgICB7Ci0gICAgICAgIFRRdWFsaWZpZXIgcXVhbCA9IGNvbnRl
eHQtPnN5bWJvbFRhYmxlLmF0R2xvYmFsTGV2ZWwoKSA/IEV2cUdsb2JhbCA6IEV2cVRlbXBvcmFy
eTsKLSAgICAgICAgKHl5dmFsLmludGVybS50eXBlKS5zZXRCYXNpYyhFYnRGbG9hdCwgcXVhbCwg
KHl5bHNwWygxKSAtICgxKV0pKTsKLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMTE5Ogot
Ci0gICAgewotICAgICAgICBUUXVhbGlmaWVyIHF1YWwgPSBjb250ZXh0LT5zeW1ib2xUYWJsZS5h
dEdsb2JhbExldmVsKCkgPyBFdnFHbG9iYWwgOiBFdnFUZW1wb3Jhcnk7Ci0gICAgICAgICh5eXZh
bC5pbnRlcm0udHlwZSkuc2V0QmFzaWMoRWJ0SW50LCBxdWFsLCAoeXlsc3BbKDEpIC0gKDEpXSkp
OwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxMjA6Ci0KLSAgICB7Ci0gICAgICAgIFRR
dWFsaWZpZXIgcXVhbCA9IGNvbnRleHQtPnN5bWJvbFRhYmxlLmF0R2xvYmFsTGV2ZWwoKSA/IEV2
cUdsb2JhbCA6IEV2cVRlbXBvcmFyeTsKLSAgICAgICAgKHl5dmFsLmludGVybS50eXBlKS5zZXRC
YXNpYyhFYnRCb29sLCBxdWFsLCAoeXlsc3BbKDEpIC0gKDEpXSkpOwotICAgIDt9Ci0gICAgYnJl
YWs7Ci0KLSAgY2FzZSAxMjE6Ci0KLSAgICB7Ci0gICAgICAgIFRRdWFsaWZpZXIgcXVhbCA9IGNv
bnRleHQtPnN5bWJvbFRhYmxlLmF0R2xvYmFsTGV2ZWwoKSA/IEV2cUdsb2JhbCA6IEV2cVRlbXBv
cmFyeTsKLSAgICAgICAgKHl5dmFsLmludGVybS50eXBlKS5zZXRCYXNpYyhFYnRGbG9hdCwgcXVh
bCwgKHl5bHNwWygxKSAtICgxKV0pKTsKLSAgICAgICAgKHl5dmFsLmludGVybS50eXBlKS5zZXRB
Z2dyZWdhdGUoMik7Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDEyMjoKLQotICAgIHsK
LSAgICAgICAgVFF1YWxpZmllciBxdWFsID0gY29udGV4dC0+c3ltYm9sVGFibGUuYXRHbG9iYWxM
ZXZlbCgpID8gRXZxR2xvYmFsIDogRXZxVGVtcG9yYXJ5OwotICAgICAgICAoeXl2YWwuaW50ZXJt
LnR5cGUpLnNldEJhc2ljKEVidEZsb2F0LCBxdWFsLCAoeXlsc3BbKDEpIC0gKDEpXSkpOwotICAg
ICAgICAoeXl2YWwuaW50ZXJtLnR5cGUpLnNldEFnZ3JlZ2F0ZSgzKTsKLSAgICA7fQotICAgIGJy
ZWFrOwotCi0gIGNhc2UgMTIzOgotCi0gICAgewotICAgICAgICBUUXVhbGlmaWVyIHF1YWwgPSBj
b250ZXh0LT5zeW1ib2xUYWJsZS5hdEdsb2JhbExldmVsKCkgPyBFdnFHbG9iYWwgOiBFdnFUZW1w
b3Jhcnk7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0udHlwZSkuc2V0QmFzaWMoRWJ0RmxvYXQsIHF1
YWwsICh5eWxzcFsoMSkgLSAoMSldKSk7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0udHlwZSkuc2V0
QWdncmVnYXRlKDQpOwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxMjQ6Ci0KLSAgICB7
Ci0gICAgICAgIFRRdWFsaWZpZXIgcXVhbCA9IGNvbnRleHQtPnN5bWJvbFRhYmxlLmF0R2xvYmFs
TGV2ZWwoKSA/IEV2cUdsb2JhbCA6IEV2cVRlbXBvcmFyeTsKLSAgICAgICAgKHl5dmFsLmludGVy
bS50eXBlKS5zZXRCYXNpYyhFYnRCb29sLCBxdWFsLCAoeXlsc3BbKDEpIC0gKDEpXSkpOwotICAg
ICAgICAoeXl2YWwuaW50ZXJtLnR5cGUpLnNldEFnZ3JlZ2F0ZSgyKTsKLSAgICA7fQotICAgIGJy
ZWFrOwotCi0gIGNhc2UgMTI1OgotCi0gICAgewotICAgICAgICBUUXVhbGlmaWVyIHF1YWwgPSBj
b250ZXh0LT5zeW1ib2xUYWJsZS5hdEdsb2JhbExldmVsKCkgPyBFdnFHbG9iYWwgOiBFdnFUZW1w
b3Jhcnk7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0udHlwZSkuc2V0QmFzaWMoRWJ0Qm9vbCwgcXVh
bCwgKHl5bHNwWygxKSAtICgxKV0pKTsKLSAgICAgICAgKHl5dmFsLmludGVybS50eXBlKS5zZXRB
Z2dyZWdhdGUoMyk7Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDEyNjoKLQotICAgIHsK
LSAgICAgICAgVFF1YWxpZmllciBxdWFsID0gY29udGV4dC0+c3ltYm9sVGFibGUuYXRHbG9iYWxM
ZXZlbCgpID8gRXZxR2xvYmFsIDogRXZxVGVtcG9yYXJ5OwotICAgICAgICAoeXl2YWwuaW50ZXJt
LnR5cGUpLnNldEJhc2ljKEVidEJvb2wsIHF1YWwsICh5eWxzcFsoMSkgLSAoMSldKSk7Ci0gICAg
ICAgICh5eXZhbC5pbnRlcm0udHlwZSkuc2V0QWdncmVnYXRlKDQpOwotICAgIDt9Ci0gICAgYnJl
YWs7Ci0KLSAgY2FzZSAxMjc6Ci0KLSAgICB7Ci0gICAgICAgIFRRdWFsaWZpZXIgcXVhbCA9IGNv
bnRleHQtPnN5bWJvbFRhYmxlLmF0R2xvYmFsTGV2ZWwoKSA/IEV2cUdsb2JhbCA6IEV2cVRlbXBv
cmFyeTsKLSAgICAgICAgKHl5dmFsLmludGVybS50eXBlKS5zZXRCYXNpYyhFYnRJbnQsIHF1YWws
ICh5eWxzcFsoMSkgLSAoMSldKSk7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0udHlwZSkuc2V0QWdn
cmVnYXRlKDIpOwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxMjg6Ci0KLSAgICB7Ci0g
ICAgICAgIFRRdWFsaWZpZXIgcXVhbCA9IGNvbnRleHQtPnN5bWJvbFRhYmxlLmF0R2xvYmFsTGV2
ZWwoKSA/IEV2cUdsb2JhbCA6IEV2cVRlbXBvcmFyeTsKLSAgICAgICAgKHl5dmFsLmludGVybS50
eXBlKS5zZXRCYXNpYyhFYnRJbnQsIHF1YWwsICh5eWxzcFsoMSkgLSAoMSldKSk7Ci0gICAgICAg
ICh5eXZhbC5pbnRlcm0udHlwZSkuc2V0QWdncmVnYXRlKDMpOwotICAgIDt9Ci0gICAgYnJlYWs7
Ci0KLSAgY2FzZSAxMjk6Ci0KLSAgICB7Ci0gICAgICAgIFRRdWFsaWZpZXIgcXVhbCA9IGNvbnRl
eHQtPnN5bWJvbFRhYmxlLmF0R2xvYmFsTGV2ZWwoKSA/IEV2cUdsb2JhbCA6IEV2cVRlbXBvcmFy
eTsKLSAgICAgICAgKHl5dmFsLmludGVybS50eXBlKS5zZXRCYXNpYyhFYnRJbnQsIHF1YWwsICh5
eWxzcFsoMSkgLSAoMSldKSk7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0udHlwZSkuc2V0QWdncmVn
YXRlKDQpOwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxMzA6Ci0KLSAgICB7Ci0gICAg
ICAgIFRRdWFsaWZpZXIgcXVhbCA9IGNvbnRleHQtPnN5bWJvbFRhYmxlLmF0R2xvYmFsTGV2ZWwo
KSA/IEV2cUdsb2JhbCA6IEV2cVRlbXBvcmFyeTsKLSAgICAgICAgKHl5dmFsLmludGVybS50eXBl
KS5zZXRCYXNpYyhFYnRGbG9hdCwgcXVhbCwgKHl5bHNwWygxKSAtICgxKV0pKTsKLSAgICAgICAg
KHl5dmFsLmludGVybS50eXBlKS5zZXRBZ2dyZWdhdGUoMiwgdHJ1ZSk7Ci0gICAgO30KLSAgICBi
cmVhazsKLQotICBjYXNlIDEzMToKLQotICAgIHsKLSAgICAgICAgVFF1YWxpZmllciBxdWFsID0g
Y29udGV4dC0+c3ltYm9sVGFibGUuYXRHbG9iYWxMZXZlbCgpID8gRXZxR2xvYmFsIDogRXZxVGVt
cG9yYXJ5OwotICAgICAgICAoeXl2YWwuaW50ZXJtLnR5cGUpLnNldEJhc2ljKEVidEZsb2F0LCBx
dWFsLCAoeXlsc3BbKDEpIC0gKDEpXSkpOwotICAgICAgICAoeXl2YWwuaW50ZXJtLnR5cGUpLnNl
dEFnZ3JlZ2F0ZSgzLCB0cnVlKTsKLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMTMyOgot
Ci0gICAgewotICAgICAgICBUUXVhbGlmaWVyIHF1YWwgPSBjb250ZXh0LT5zeW1ib2xUYWJsZS5h
dEdsb2JhbExldmVsKCkgPyBFdnFHbG9iYWwgOiBFdnFUZW1wb3Jhcnk7Ci0gICAgICAgICh5eXZh
bC5pbnRlcm0udHlwZSkuc2V0QmFzaWMoRWJ0RmxvYXQsIHF1YWwsICh5eWxzcFsoMSkgLSAoMSld
KSk7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0udHlwZSkuc2V0QWdncmVnYXRlKDQsIHRydWUpOwot
ICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxMzM6Ci0KLSAgICB7Ci0gICAgICAgIFRRdWFs
aWZpZXIgcXVhbCA9IGNvbnRleHQtPnN5bWJvbFRhYmxlLmF0R2xvYmFsTGV2ZWwoKSA/IEV2cUds
b2JhbCA6IEV2cVRlbXBvcmFyeTsKLSAgICAgICAgKHl5dmFsLmludGVybS50eXBlKS5zZXRCYXNp
YyhFYnRTYW1wbGVyMkQsIHF1YWwsICh5eWxzcFsoMSkgLSAoMSldKSk7Ci0gICAgO30KLSAgICBi
cmVhazsKLQotICBjYXNlIDEzNDoKLQotICAgIHsKLSAgICAgICAgVFF1YWxpZmllciBxdWFsID0g
Y29udGV4dC0+c3ltYm9sVGFibGUuYXRHbG9iYWxMZXZlbCgpID8gRXZxR2xvYmFsIDogRXZxVGVt
cG9yYXJ5OwotICAgICAgICAoeXl2YWwuaW50ZXJtLnR5cGUpLnNldEJhc2ljKEVidFNhbXBsZXJD
dWJlLCBxdWFsLCAoeXlsc3BbKDEpIC0gKDEpXSkpOwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAg
Y2FzZSAxMzU6Ci0KLSAgICB7Ci0gICAgICAgIGlmICghY29udGV4dC0+c3VwcG9ydHNFeHRlbnNp
b24oIkdMX09FU19FR0xfaW1hZ2VfZXh0ZXJuYWwiKSkgewotICAgICAgICAgICAgY29udGV4dC0+
ZXJyb3IoKHl5bHNwWygxKSAtICgxKV0pLCAidW5zdXBwb3J0ZWQgdHlwZSIsICJzYW1wbGVyRXh0
ZXJuYWxPRVMiKTsKLSAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLSAgICAgICAgfQot
ICAgICAgICBUUXVhbGlmaWVyIHF1YWwgPSBjb250ZXh0LT5zeW1ib2xUYWJsZS5hdEdsb2JhbExl
dmVsKCkgPyBFdnFHbG9iYWwgOiBFdnFUZW1wb3Jhcnk7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0u
dHlwZSkuc2V0QmFzaWMoRWJ0U2FtcGxlckV4dGVybmFsT0VTLCBxdWFsLCAoeXlsc3BbKDEpIC0g
KDEpXSkpOwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxMzY6Ci0KLSAgICB7Ci0gICAg
ICAgIGlmICghY29udGV4dC0+c3VwcG9ydHNFeHRlbnNpb24oIkdMX0FSQl90ZXh0dXJlX3JlY3Rh
bmdsZSIpKSB7Ci0gICAgICAgICAgICBjb250ZXh0LT5lcnJvcigoeXlsc3BbKDEpIC0gKDEpXSks
ICJ1bnN1cHBvcnRlZCB0eXBlIiwgInNhbXBsZXIyRFJlY3QiKTsKLSAgICAgICAgICAgIGNvbnRl
eHQtPnJlY292ZXIoKTsKLSAgICAgICAgfQotICAgICAgICBUUXVhbGlmaWVyIHF1YWwgPSBjb250
ZXh0LT5zeW1ib2xUYWJsZS5hdEdsb2JhbExldmVsKCkgPyBFdnFHbG9iYWwgOiBFdnFUZW1wb3Jh
cnk7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0udHlwZSkuc2V0QmFzaWMoRWJ0U2FtcGxlcjJEUmVj
dCwgcXVhbCwgKHl5bHNwWygxKSAtICgxKV0pKTsKLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNh
c2UgMTM3OgotCi0gICAgewotICAgICAgICAoeXl2YWwuaW50ZXJtLnR5cGUpID0gKHl5dnNwWygx
KSAtICgxKV0uaW50ZXJtLnR5cGUpOwotICAgICAgICAoeXl2YWwuaW50ZXJtLnR5cGUpLnF1YWxp
ZmllciA9IGNvbnRleHQtPnN5bWJvbFRhYmxlLmF0R2xvYmFsTGV2ZWwoKSA/IEV2cUdsb2JhbCA6
IEV2cVRlbXBvcmFyeTsKLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMTM4OgotCi0gICAg
ewotICAgICAgICAvLwotICAgICAgICAvLyBUaGlzIGlzIGZvciB1c2VyIGRlZmluZWQgdHlwZSBu
YW1lcy4gIFRoZSBsZXhpY2FsIHBoYXNlIGxvb2tlZCB1cCB0aGUKLSAgICAgICAgLy8gdHlwZS4K
LSAgICAgICAgLy8KLSAgICAgICAgVFR5cGUmIHN0cnVjdHVyZSA9IHN0YXRpY19jYXN0PFRWYXJp
YWJsZSo+KCh5eXZzcFsoMSkgLSAoMSldLmxleCkuc3ltYm9sKS0+Z2V0VHlwZSgpOwotICAgICAg
ICBUUXVhbGlmaWVyIHF1YWwgPSBjb250ZXh0LT5zeW1ib2xUYWJsZS5hdEdsb2JhbExldmVsKCkg
PyBFdnFHbG9iYWwgOiBFdnFUZW1wb3Jhcnk7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0udHlwZSku
c2V0QmFzaWMoRWJ0U3RydWN0LCBxdWFsLCAoeXlsc3BbKDEpIC0gKDEpXSkpOwotICAgICAgICAo
eXl2YWwuaW50ZXJtLnR5cGUpLnVzZXJEZWYgPSAmc3RydWN0dXJlOwotICAgIDt9Ci0gICAgYnJl
YWs7Ci0KLSAgY2FzZSAxMzk6Ci0KLSAgICB7IGlmIChjb250ZXh0LT5lbnRlclN0cnVjdERlY2xh
cmF0aW9uKCh5eWxzcFsoMikgLSAoMyldKSwgKih5eXZzcFsoMikgLSAoMyldLmxleCkuc3RyaW5n
KSkgY29udGV4dC0+cmVjb3ZlcigpOyA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMTQwOgotCi0g
ICAgewotICAgICAgICBpZiAoY29udGV4dC0+cmVzZXJ2ZWRFcnJvckNoZWNrKCh5eWxzcFsoMikg
LSAoNildKSwgKih5eXZzcFsoMikgLSAoNildLmxleCkuc3RyaW5nKSkKLSAgICAgICAgICAgIGNv
bnRleHQtPnJlY292ZXIoKTsKLQotICAgICAgICBUVHlwZSogc3RydWN0dXJlID0gbmV3IFRUeXBl
KG5ldyBUU3RydWN0dXJlKCh5eXZzcFsoMikgLSAoNildLmxleCkuc3RyaW5nLCAoeXl2c3BbKDUp
IC0gKDYpXS5pbnRlcm0uZmllbGRMaXN0KSkpOwotICAgICAgICBUVmFyaWFibGUqIHVzZXJUeXBl
RGVmID0gbmV3IFRWYXJpYWJsZSgoeXl2c3BbKDIpIC0gKDYpXS5sZXgpLnN0cmluZywgKnN0cnVj
dHVyZSwgdHJ1ZSk7Ci0gICAgICAgIGlmICghIGNvbnRleHQtPnN5bWJvbFRhYmxlLmluc2VydCgq
dXNlclR5cGVEZWYpKSB7Ci0gICAgICAgICAgICBjb250ZXh0LT5lcnJvcigoeXlsc3BbKDIpIC0g
KDYpXSksICJyZWRlZmluaXRpb24iLCAoeXl2c3BbKDIpIC0gKDYpXS5sZXgpLnN0cmluZy0+Y19z
dHIoKSwgInN0cnVjdCIpOwotICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAg
ICB9Ci0gICAgICAgICh5eXZhbC5pbnRlcm0udHlwZSkuc2V0QmFzaWMoRWJ0U3RydWN0LCBFdnFU
ZW1wb3JhcnksICh5eWxzcFsoMSkgLSAoNildKSk7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0udHlw
ZSkudXNlckRlZiA9IHN0cnVjdHVyZTsKLSAgICAgICAgY29udGV4dC0+ZXhpdFN0cnVjdERlY2xh
cmF0aW9uKCk7Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDE0MToKLQotICAgIHsgaWYg
KGNvbnRleHQtPmVudGVyU3RydWN0RGVjbGFyYXRpb24oKHl5bHNwWygyKSAtICgyKV0pLCAqKHl5
dnNwWygyKSAtICgyKV0ubGV4KS5zdHJpbmcpKSBjb250ZXh0LT5yZWNvdmVyKCk7IDt9Ci0gICAg
YnJlYWs7Ci0KLSAgY2FzZSAxNDI6Ci0KLSAgICB7Ci0gICAgICAgIFRUeXBlKiBzdHJ1Y3R1cmUg
PSBuZXcgVFR5cGUobmV3IFRTdHJ1Y3R1cmUoTmV3UG9vbFRTdHJpbmcoIiIpLCAoeXl2c3BbKDQp
IC0gKDUpXS5pbnRlcm0uZmllbGRMaXN0KSkpOwotICAgICAgICAoeXl2YWwuaW50ZXJtLnR5cGUp
LnNldEJhc2ljKEVidFN0cnVjdCwgRXZxVGVtcG9yYXJ5LCAoeXlsc3BbKDEpIC0gKDUpXSkpOwot
ICAgICAgICAoeXl2YWwuaW50ZXJtLnR5cGUpLnVzZXJEZWYgPSBzdHJ1Y3R1cmU7Ci0gICAgICAg
IGNvbnRleHQtPmV4aXRTdHJ1Y3REZWNsYXJhdGlvbigpOwotICAgIDt9Ci0gICAgYnJlYWs7Ci0K
LSAgY2FzZSAxNDM6Ci0KLSAgICB7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0uZmllbGRMaXN0KSA9
ICh5eXZzcFsoMSkgLSAoMSldLmludGVybS5maWVsZExpc3QpOwotICAgIDt9Ci0gICAgYnJlYWs7
Ci0KLSAgY2FzZSAxNDQ6Ci0KLSAgICB7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0uZmllbGRMaXN0
KSA9ICh5eXZzcFsoMSkgLSAoMildLmludGVybS5maWVsZExpc3QpOwotICAgICAgICBmb3IgKHNp
emVfdCBpID0gMDsgaSA8ICh5eXZzcFsoMikgLSAoMildLmludGVybS5maWVsZExpc3QpLT5zaXpl
KCk7ICsraSkgewotICAgICAgICAgICAgVEZpZWxkKiBmaWVsZCA9ICgqKHl5dnNwWygyKSAtICgy
KV0uaW50ZXJtLmZpZWxkTGlzdCkpW2ldOwotICAgICAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7
IGogPCAoeXl2YWwuaW50ZXJtLmZpZWxkTGlzdCktPnNpemUoKTsgKytqKSB7Ci0gICAgICAgICAg
ICAgICAgaWYgKCgqKHl5dmFsLmludGVybS5maWVsZExpc3QpKVtqXS0+bmFtZSgpID09IGZpZWxk
LT5uYW1lKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgY29udGV4dC0+ZXJyb3IoKHl5bHNwWygy
KSAtICgyKV0pLCAiZHVwbGljYXRlIGZpZWxkIG5hbWUgaW4gc3RydWN0dXJlOiIsICJzdHJ1Y3Qi
LCBmaWVsZC0+bmFtZSgpLmNfc3RyKCkpOwotICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5y
ZWNvdmVyKCk7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgICAgICAgICAg
KHl5dmFsLmludGVybS5maWVsZExpc3QpLT5wdXNoX2JhY2soZmllbGQpOwotICAgICAgICB9Ci0g
ICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDE0NToKLQotICAgIHsKLSAgICAgICAgKHl5dmFs
LmludGVybS5maWVsZExpc3QpID0gKHl5dnNwWygyKSAtICgzKV0uaW50ZXJtLmZpZWxkTGlzdCk7
Ci0KLSAgICAgICAgaWYgKGNvbnRleHQtPnZvaWRFcnJvckNoZWNrKCh5eWxzcFsoMSkgLSAoMyld
KSwgKCooeXl2c3BbKDIpIC0gKDMpXS5pbnRlcm0uZmllbGRMaXN0KSlbMF0tPm5hbWUoKSwgKHl5
dnNwWygxKSAtICgzKV0uaW50ZXJtLnR5cGUpKSkgewotICAgICAgICAgICAgY29udGV4dC0+cmVj
b3ZlcigpOwotICAgICAgICB9Ci0gICAgICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwg
KHl5dmFsLmludGVybS5maWVsZExpc3QpLT5zaXplKCk7ICsraSkgewotICAgICAgICAgICAgLy8K
LSAgICAgICAgICAgIC8vIENhcmVmdWwgbm90IHRvIHJlcGxhY2UgYWxyZWFkeSBrbm93biBhc3Bl
Y3RzIG9mIHR5cGUsIGxpa2UgYXJyYXktbmVzcwotICAgICAgICAgICAgLy8KLSAgICAgICAgICAg
IFRUeXBlKiB0eXBlID0gKCooeXl2YWwuaW50ZXJtLmZpZWxkTGlzdCkpW2ldLT50eXBlKCk7Ci0g
ICAgICAgICAgICB0eXBlLT5zZXRCYXNpY1R5cGUoKHl5dnNwWygxKSAtICgzKV0uaW50ZXJtLnR5
cGUpLnR5cGUpOwotICAgICAgICAgICAgdHlwZS0+c2V0Tm9taW5hbFNpemUoKHl5dnNwWygxKSAt
ICgzKV0uaW50ZXJtLnR5cGUpLnNpemUpOwotICAgICAgICAgICAgdHlwZS0+c2V0TWF0cml4KCh5
eXZzcFsoMSkgLSAoMyldLmludGVybS50eXBlKS5tYXRyaXgpOwotICAgICAgICAgICAgdHlwZS0+
c2V0UHJlY2lzaW9uKCh5eXZzcFsoMSkgLSAoMyldLmludGVybS50eXBlKS5wcmVjaXNpb24pOwot
Ci0gICAgICAgICAgICAvLyBkb24ndCBhbGxvdyBhcnJheXMgb2YgYXJyYXlzCi0gICAgICAgICAg
ICBpZiAodHlwZS0+aXNBcnJheSgpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKGNvbnRleHQtPmFy
cmF5VHlwZUVycm9yQ2hlY2soKHl5bHNwWygxKSAtICgzKV0pLCAoeXl2c3BbKDEpIC0gKDMpXS5p
bnRlcm0udHlwZSkpKQotICAgICAgICAgICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0g
ICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoKHl5dnNwWygxKSAtICgzKV0uaW50ZXJtLnR5
cGUpLmFycmF5KQotICAgICAgICAgICAgICAgIHR5cGUtPnNldEFycmF5U2l6ZSgoeXl2c3BbKDEp
IC0gKDMpXS5pbnRlcm0udHlwZSkuYXJyYXlTaXplKTsKLSAgICAgICAgICAgIGlmICgoeXl2c3Bb
KDEpIC0gKDMpXS5pbnRlcm0udHlwZSkudXNlckRlZikKLSAgICAgICAgICAgICAgICB0eXBlLT5z
ZXRTdHJ1Y3QoKHl5dnNwWygxKSAtICgzKV0uaW50ZXJtLnR5cGUpLnVzZXJEZWYtPmdldFN0cnVj
dCgpKTsKLQotICAgICAgICAgICAgaWYgKGNvbnRleHQtPnN0cnVjdE5lc3RpbmdFcnJvckNoZWNr
KCh5eWxzcFsoMSkgLSAoMyldKSwgKigqKHl5dmFsLmludGVybS5maWVsZExpc3QpKVtpXSkpCi0g
ICAgICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAgICB9Ci0gICAgO30KLSAg
ICBicmVhazsKLQotICBjYXNlIDE0NjoKLQotICAgIHsKLSAgICAgICAgKHl5dmFsLmludGVybS5m
aWVsZExpc3QpID0gTmV3UG9vbFRGaWVsZExpc3QoKTsKLSAgICAgICAgKHl5dmFsLmludGVybS5m
aWVsZExpc3QpLT5wdXNoX2JhY2soKHl5dnNwWygxKSAtICgxKV0uaW50ZXJtLmZpZWxkKSk7Ci0g
ICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDE0NzoKLQotICAgIHsKLSAgICAgICAgKHl5dmFs
LmludGVybS5maWVsZExpc3QpLT5wdXNoX2JhY2soKHl5dnNwWygzKSAtICgzKV0uaW50ZXJtLmZp
ZWxkKSk7Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDE0ODoKLQotICAgIHsKLSAgICAg
ICAgaWYgKGNvbnRleHQtPnJlc2VydmVkRXJyb3JDaGVjaygoeXlsc3BbKDEpIC0gKDEpXSksICoo
eXl2c3BbKDEpIC0gKDEpXS5sZXgpLnN0cmluZykpCi0gICAgICAgICAgICBjb250ZXh0LT5yZWNv
dmVyKCk7Ci0KLSAgICAgICAgVFR5cGUqIHR5cGUgPSBuZXcgVFR5cGUoRWJ0Vm9pZCwgRWJwVW5k
ZWZpbmVkKTsKLSAgICAgICAgKHl5dmFsLmludGVybS5maWVsZCkgPSBuZXcgVEZpZWxkKHR5cGUs
ICh5eXZzcFsoMSkgLSAoMSldLmxleCkuc3RyaW5nKTsKLSAgICA7fQotICAgIGJyZWFrOwotCi0g
IGNhc2UgMTQ5OgotCi0gICAgewotICAgICAgICBpZiAoY29udGV4dC0+cmVzZXJ2ZWRFcnJvckNo
ZWNrKCh5eWxzcFsoMSkgLSAoNCldKSwgKih5eXZzcFsoMSkgLSAoNCldLmxleCkuc3RyaW5nKSkK
LSAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLQotICAgICAgICBUVHlwZSogdHlwZSA9
IG5ldyBUVHlwZShFYnRWb2lkLCBFYnBVbmRlZmluZWQpOwotICAgICAgICBpbnQgc2l6ZSA9IDA7
Ci0gICAgICAgIGlmIChjb250ZXh0LT5hcnJheVNpemVFcnJvckNoZWNrKCh5eWxzcFsoMykgLSAo
NCldKSwgKHl5dnNwWygzKSAtICg0KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSksIHNpemUpKQot
ICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAgICB0eXBlLT5zZXRBcnJheVNp
emUoc2l6ZSk7Ci0KLSAgICAgICAgKHl5dmFsLmludGVybS5maWVsZCkgPSBuZXcgVEZpZWxkKHR5
cGUsICh5eXZzcFsoMSkgLSAoNCldLmxleCkuc3RyaW5nKTsKLSAgICA7fQotICAgIGJyZWFrOwot
Ci0gIGNhc2UgMTUwOgotCi0gICAgeyAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSAo
eXl2c3BbKDEpIC0gKDEpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKTsgO30KLSAgICBicmVhazsK
LQotICBjYXNlIDE1MToKLQotICAgIHsgKHl5dmFsLmludGVybS5pbnRlcm1Ob2RlKSA9ICh5eXZz
cFsoMSkgLSAoMSldLmludGVybS5pbnRlcm1Ob2RlKTsgO30KLSAgICBicmVhazsKLQotICBjYXNl
IDE1MjoKLQotICAgIHsgKHl5dmFsLmludGVybS5pbnRlcm1Ob2RlKSA9ICh5eXZzcFsoMSkgLSAo
MSldLmludGVybS5pbnRlcm1BZ2dyZWdhdGUpOyA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMTUz
OgotCi0gICAgeyAoeXl2YWwuaW50ZXJtLmludGVybU5vZGUpID0gKHl5dnNwWygxKSAtICgxKV0u
aW50ZXJtLmludGVybU5vZGUpOyA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMTU0OgotCi0gICAg
eyAoeXl2YWwuaW50ZXJtLmludGVybU5vZGUpID0gKHl5dnNwWygxKSAtICgxKV0uaW50ZXJtLmlu
dGVybU5vZGUpOyA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMTU1OgotCi0gICAgeyAoeXl2YWwu
aW50ZXJtLmludGVybU5vZGUpID0gKHl5dnNwWygxKSAtICgxKV0uaW50ZXJtLmludGVybU5vZGUp
OyA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMTU2OgotCi0gICAgeyAoeXl2YWwuaW50ZXJtLmlu
dGVybU5vZGUpID0gKHl5dnNwWygxKSAtICgxKV0uaW50ZXJtLmludGVybU5vZGUpOyA7fQotICAg
IGJyZWFrOwotCi0gIGNhc2UgMTU3OgotCi0gICAgeyAoeXl2YWwuaW50ZXJtLmludGVybU5vZGUp
ID0gKHl5dnNwWygxKSAtICgxKV0uaW50ZXJtLmludGVybU5vZGUpOyA7fQotICAgIGJyZWFrOwot
Ci0gIGNhc2UgMTU4OgotCi0gICAgeyAoeXl2YWwuaW50ZXJtLmludGVybU5vZGUpID0gKHl5dnNw
WygxKSAtICgxKV0uaW50ZXJtLmludGVybU5vZGUpOyA7fQotICAgIGJyZWFrOwotCi0gIGNhc2Ug
MTU5OgotCi0gICAgeyAoeXl2YWwuaW50ZXJtLmludGVybUFnZ3JlZ2F0ZSkgPSAwOyA7fQotICAg
IGJyZWFrOwotCi0gIGNhc2UgMTYwOgotCi0gICAgeyBjb250ZXh0LT5zeW1ib2xUYWJsZS5wdXNo
KCk7IDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxNjE6Ci0KLSAgICB7IGNvbnRleHQtPnN5bWJv
bFRhYmxlLnBvcCgpOyA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMTYyOgotCi0gICAgewotICAg
ICAgICBpZiAoKHl5dnNwWygzKSAtICg1KV0uaW50ZXJtLmludGVybUFnZ3JlZ2F0ZSkgIT0gMCkg
ewotICAgICAgICAgICAgKHl5dnNwWygzKSAtICg1KV0uaW50ZXJtLmludGVybUFnZ3JlZ2F0ZSkt
PnNldE9wKEVPcFNlcXVlbmNlKTsKLSAgICAgICAgICAgICh5eXZzcFsoMykgLSAoNSldLmludGVy
bS5pbnRlcm1BZ2dyZWdhdGUpLT5zZXRMaW5lKCh5eWxvYykpOwotICAgICAgICB9Ci0gICAgICAg
ICh5eXZhbC5pbnRlcm0uaW50ZXJtQWdncmVnYXRlKSA9ICh5eXZzcFsoMykgLSAoNSldLmludGVy
bS5pbnRlcm1BZ2dyZWdhdGUpOwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxNjM6Ci0K
LSAgICB7ICh5eXZhbC5pbnRlcm0uaW50ZXJtTm9kZSkgPSAoeXl2c3BbKDEpIC0gKDEpXS5pbnRl
cm0uaW50ZXJtTm9kZSk7IDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxNjQ6Ci0KLSAgICB7ICh5
eXZhbC5pbnRlcm0uaW50ZXJtTm9kZSkgPSAoeXl2c3BbKDEpIC0gKDEpXS5pbnRlcm0uaW50ZXJt
Tm9kZSk7IDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxNjU6Ci0KLSAgICB7IGNvbnRleHQtPnN5
bWJvbFRhYmxlLnB1c2goKTsgO30KLSAgICBicmVhazsKLQotICBjYXNlIDE2NjoKLQotICAgIHsg
Y29udGV4dC0+c3ltYm9sVGFibGUucG9wKCk7ICh5eXZhbC5pbnRlcm0uaW50ZXJtTm9kZSkgPSAo
eXl2c3BbKDIpIC0gKDIpXS5pbnRlcm0uaW50ZXJtTm9kZSk7IDt9Ci0gICAgYnJlYWs7Ci0KLSAg
Y2FzZSAxNjc6Ci0KLSAgICB7IGNvbnRleHQtPnN5bWJvbFRhYmxlLnB1c2goKTsgO30KLSAgICBi
cmVhazsKLQotICBjYXNlIDE2ODoKLQotICAgIHsgY29udGV4dC0+c3ltYm9sVGFibGUucG9wKCk7
ICh5eXZhbC5pbnRlcm0uaW50ZXJtTm9kZSkgPSAoeXl2c3BbKDIpIC0gKDIpXS5pbnRlcm0uaW50
ZXJtTm9kZSk7IDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxNjk6Ci0KLSAgICB7Ci0gICAgICAg
ICh5eXZhbC5pbnRlcm0uaW50ZXJtTm9kZSkgPSAwOwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAg
Y2FzZSAxNzA6Ci0KLSAgICB7Ci0gICAgICAgIGlmICgoeXl2c3BbKDIpIC0gKDMpXS5pbnRlcm0u
aW50ZXJtQWdncmVnYXRlKSkgewotICAgICAgICAgICAgKHl5dnNwWygyKSAtICgzKV0uaW50ZXJt
LmludGVybUFnZ3JlZ2F0ZSktPnNldE9wKEVPcFNlcXVlbmNlKTsKLSAgICAgICAgICAgICh5eXZz
cFsoMikgLSAoMyldLmludGVybS5pbnRlcm1BZ2dyZWdhdGUpLT5zZXRMaW5lKCh5eWxvYykpOwot
ICAgICAgICB9Ci0gICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtTm9kZSkgPSAoeXl2c3BbKDIp
IC0gKDMpXS5pbnRlcm0uaW50ZXJtQWdncmVnYXRlKTsKLSAgICA7fQotICAgIGJyZWFrOwotCi0g
IGNhc2UgMTcxOgotCi0gICAgewotICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVybUFnZ3JlZ2F0
ZSkgPSBjb250ZXh0LT5pbnRlcm1lZGlhdGUubWFrZUFnZ3JlZ2F0ZSgoeXl2c3BbKDEpIC0gKDEp
XS5pbnRlcm0uaW50ZXJtTm9kZSksICh5eWxvYykpOwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAg
Y2FzZSAxNzI6Ci0KLSAgICB7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtQWdncmVnYXRl
KSA9IGNvbnRleHQtPmludGVybWVkaWF0ZS5ncm93QWdncmVnYXRlKCh5eXZzcFsoMSkgLSAoMild
LmludGVybS5pbnRlcm1BZ2dyZWdhdGUpLCAoeXl2c3BbKDIpIC0gKDIpXS5pbnRlcm0uaW50ZXJt
Tm9kZSksICh5eWxvYykpOwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxNzM6Ci0KLSAg
ICB7ICh5eXZhbC5pbnRlcm0uaW50ZXJtTm9kZSkgPSAwOyA7fQotICAgIGJyZWFrOwotCi0gIGNh
c2UgMTc0OgotCi0gICAgeyAoeXl2YWwuaW50ZXJtLmludGVybU5vZGUpID0gc3RhdGljX2Nhc3Q8
VEludGVybU5vZGUqPigoeXl2c3BbKDEpIC0gKDIpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSk7
IDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxNzU6Ci0KLSAgICB7Ci0gICAgICAgIGlmIChjb250
ZXh0LT5ib29sRXJyb3JDaGVjaygoeXlsc3BbKDEpIC0gKDUpXSksICh5eXZzcFsoMykgLSAoNSld
LmludGVybS5pbnRlcm1UeXBlZE5vZGUpKSkKLSAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIo
KTsKLSAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1Ob2RlKSA9IGNvbnRleHQtPmludGVybWVk
aWF0ZS5hZGRTZWxlY3Rpb24oKHl5dnNwWygzKSAtICg1KV0uaW50ZXJtLmludGVybVR5cGVkTm9k
ZSksICh5eXZzcFsoNSkgLSAoNSldLmludGVybS5ub2RlUGFpciksICh5eWxzcFsoMSkgLSAoNSld
KSk7Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDE3NjoKLQotICAgIHsKLSAgICAgICAg
KHl5dmFsLmludGVybS5ub2RlUGFpcikubm9kZTEgPSAoeXl2c3BbKDEpIC0gKDMpXS5pbnRlcm0u
aW50ZXJtTm9kZSk7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0ubm9kZVBhaXIpLm5vZGUyID0gKHl5
dnNwWygzKSAtICgzKV0uaW50ZXJtLmludGVybU5vZGUpOwotICAgIDt9Ci0gICAgYnJlYWs7Ci0K
LSAgY2FzZSAxNzc6Ci0KLSAgICB7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0ubm9kZVBhaXIpLm5v
ZGUxID0gKHl5dnNwWygxKSAtICgxKV0uaW50ZXJtLmludGVybU5vZGUpOwotICAgICAgICAoeXl2
YWwuaW50ZXJtLm5vZGVQYWlyKS5ub2RlMiA9IDA7Ci0gICAgO30KLSAgICBicmVhazsKLQotICBj
YXNlIDE3ODoKLQotICAgIHsKLSAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUp
ID0gKHl5dnNwWygxKSAtICgxKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSk7Ci0gICAgICAgIGlm
IChjb250ZXh0LT5ib29sRXJyb3JDaGVjaygoeXl2c3BbKDEpIC0gKDEpXS5pbnRlcm0uaW50ZXJt
VHlwZWROb2RlKS0+Z2V0TGluZSgpLCAoeXl2c3BbKDEpIC0gKDEpXS5pbnRlcm0uaW50ZXJtVHlw
ZWROb2RlKSkpCi0gICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0gICAgO30KLSAgICBi
cmVhazsKLQotICBjYXNlIDE3OToKLQotICAgIHsKLSAgICAgICAgVEludGVybU5vZGUqIGludGVy
bU5vZGU7Ci0gICAgICAgIGlmIChjb250ZXh0LT5zdHJ1Y3RRdWFsaWZpZXJFcnJvckNoZWNrKCh5
eWxzcFsoMikgLSAoNCldKSwgKHl5dnNwWygxKSAtICg0KV0uaW50ZXJtLnR5cGUpKSkKLSAgICAg
ICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLSAgICAgICAgaWYgKGNvbnRleHQtPmJvb2xFcnJv
ckNoZWNrKCh5eWxzcFsoMikgLSAoNCldKSwgKHl5dnNwWygxKSAtICg0KV0uaW50ZXJtLnR5cGUp
KSkKLSAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLQotICAgICAgICBpZiAoIWNvbnRl
eHQtPmV4ZWN1dGVJbml0aWFsaXplcigoeXlsc3BbKDIpIC0gKDQpXSksICooeXl2c3BbKDIpIC0g
KDQpXS5sZXgpLnN0cmluZywgKHl5dnNwWygxKSAtICg0KV0uaW50ZXJtLnR5cGUpLCAoeXl2c3Bb
KDQpIC0gKDQpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKSwgaW50ZXJtTm9kZSkpCi0gICAgICAg
ICAgICAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9kZSkgPSAoeXl2c3BbKDQpIC0gKDQpXS5p
bnRlcm0uaW50ZXJtVHlwZWROb2RlKTsKLSAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICBjb250
ZXh0LT5yZWNvdmVyKCk7Ci0gICAgICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVybVR5cGVkTm9k
ZSkgPSAwOwotICAgICAgICB9Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDE4MDoKLQot
ICAgIHsgY29udGV4dC0+c3ltYm9sVGFibGUucHVzaCgpOyArK2NvbnRleHQtPmxvb3BOZXN0aW5n
TGV2ZWw7IDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxODE6Ci0KLSAgICB7Ci0gICAgICAgIGNv
bnRleHQtPnN5bWJvbFRhYmxlLnBvcCgpOwotICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVybU5v
ZGUpID0gY29udGV4dC0+aW50ZXJtZWRpYXRlLmFkZExvb3AoRUxvb3BXaGlsZSwgMCwgKHl5dnNw
Wyg0KSAtICg2KV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSksIDAsICh5eXZzcFsoNikgLSAoNild
LmludGVybS5pbnRlcm1Ob2RlKSwgKHl5bHNwWygxKSAtICg2KV0pKTsKLSAgICAgICAgLS1jb250
ZXh0LT5sb29wTmVzdGluZ0xldmVsOwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxODI6
Ci0KLSAgICB7ICsrY29udGV4dC0+bG9vcE5lc3RpbmdMZXZlbDsgO30KLSAgICBicmVhazsKLQot
ICBjYXNlIDE4MzoKLQotICAgIHsKLSAgICAgICAgaWYgKGNvbnRleHQtPmJvb2xFcnJvckNoZWNr
KCh5eWxzcFsoOCkgLSAoOCldKSwgKHl5dnNwWyg2KSAtICg4KV0uaW50ZXJtLmludGVybVR5cGVk
Tm9kZSkpKQotICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotCi0gICAgICAgICh5eXZh
bC5pbnRlcm0uaW50ZXJtTm9kZSkgPSBjb250ZXh0LT5pbnRlcm1lZGlhdGUuYWRkTG9vcChFTG9v
cERvV2hpbGUsIDAsICh5eXZzcFsoNikgLSAoOCldLmludGVybS5pbnRlcm1UeXBlZE5vZGUpLCAw
LCAoeXl2c3BbKDMpIC0gKDgpXS5pbnRlcm0uaW50ZXJtTm9kZSksICh5eWxzcFsoNCkgLSAoOCld
KSk7Ci0gICAgICAgIC0tY29udGV4dC0+bG9vcE5lc3RpbmdMZXZlbDsKLSAgICA7fQotICAgIGJy
ZWFrOwotCi0gIGNhc2UgMTg0OgotCi0gICAgeyBjb250ZXh0LT5zeW1ib2xUYWJsZS5wdXNoKCk7
ICsrY29udGV4dC0+bG9vcE5lc3RpbmdMZXZlbDsgO30KLSAgICBicmVhazsKLQotICBjYXNlIDE4
NToKLQotICAgIHsKLSAgICAgICAgY29udGV4dC0+c3ltYm9sVGFibGUucG9wKCk7Ci0gICAgICAg
ICh5eXZhbC5pbnRlcm0uaW50ZXJtTm9kZSkgPSBjb250ZXh0LT5pbnRlcm1lZGlhdGUuYWRkTG9v
cChFTG9vcEZvciwgKHl5dnNwWyg0KSAtICg3KV0uaW50ZXJtLmludGVybU5vZGUpLCByZWludGVy
cHJldF9jYXN0PFRJbnRlcm1UeXBlZCo+KCh5eXZzcFsoNSkgLSAoNyldLmludGVybS5ub2RlUGFp
cikubm9kZTEpLCByZWludGVycHJldF9jYXN0PFRJbnRlcm1UeXBlZCo+KCh5eXZzcFsoNSkgLSAo
NyldLmludGVybS5ub2RlUGFpcikubm9kZTIpLCAoeXl2c3BbKDcpIC0gKDcpXS5pbnRlcm0uaW50
ZXJtTm9kZSksICh5eWxzcFsoMSkgLSAoNyldKSk7Ci0gICAgICAgIC0tY29udGV4dC0+bG9vcE5l
c3RpbmdMZXZlbDsKLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMTg2OgotCi0gICAgewot
ICAgICAgICAoeXl2YWwuaW50ZXJtLmludGVybU5vZGUpID0gKHl5dnNwWygxKSAtICgxKV0uaW50
ZXJtLmludGVybU5vZGUpOwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxODc6Ci0KLSAg
ICB7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtTm9kZSkgPSAoeXl2c3BbKDEpIC0gKDEp
XS5pbnRlcm0uaW50ZXJtTm9kZSk7Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDE4ODoK
LQotICAgIHsKLSAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1UeXBlZE5vZGUpID0gKHl5dnNw
WygxKSAtICgxKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSk7Ci0gICAgO30KLSAgICBicmVhazsK
LQotICBjYXNlIDE4OToKLQotICAgIHsKLSAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1UeXBl
ZE5vZGUpID0gMDsKLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMTkwOgotCi0gICAgewot
ICAgICAgICAoeXl2YWwuaW50ZXJtLm5vZGVQYWlyKS5ub2RlMSA9ICh5eXZzcFsoMSkgLSAoMild
LmludGVybS5pbnRlcm1UeXBlZE5vZGUpOwotICAgICAgICAoeXl2YWwuaW50ZXJtLm5vZGVQYWly
KS5ub2RlMiA9IDA7Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDE5MToKLQotICAgIHsK
LSAgICAgICAgKHl5dmFsLmludGVybS5ub2RlUGFpcikubm9kZTEgPSAoeXl2c3BbKDEpIC0gKDMp
XS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKTsKLSAgICAgICAgKHl5dmFsLmludGVybS5ub2RlUGFp
cikubm9kZTIgPSAoeXl2c3BbKDMpIC0gKDMpXS5pbnRlcm0uaW50ZXJtVHlwZWROb2RlKTsKLSAg
ICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMTkyOgotCi0gICAgewotICAgICAgICBpZiAoY29u
dGV4dC0+bG9vcE5lc3RpbmdMZXZlbCA8PSAwKSB7Ci0gICAgICAgICAgICBjb250ZXh0LT5lcnJv
cigoeXlsc3BbKDEpIC0gKDIpXSksICJjb250aW51ZSBzdGF0ZW1lbnQgb25seSBhbGxvd2VkIGlu
IGxvb3BzIiwgIiIpOwotICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAgICB9
Ci0gICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtTm9kZSkgPSBjb250ZXh0LT5pbnRlcm1lZGlh
dGUuYWRkQnJhbmNoKEVPcENvbnRpbnVlLCAoeXlsc3BbKDEpIC0gKDIpXSkpOwotICAgIDt9Ci0g
ICAgYnJlYWs7Ci0KLSAgY2FzZSAxOTM6Ci0KLSAgICB7Ci0gICAgICAgIGlmIChjb250ZXh0LT5s
b29wTmVzdGluZ0xldmVsIDw9IDApIHsKLSAgICAgICAgICAgIGNvbnRleHQtPmVycm9yKCh5eWxz
cFsoMSkgLSAoMildKSwgImJyZWFrIHN0YXRlbWVudCBvbmx5IGFsbG93ZWQgaW4gbG9vcHMiLCAi
Iik7Ci0gICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0gICAgICAgIH0KLSAgICAgICAg
KHl5dmFsLmludGVybS5pbnRlcm1Ob2RlKSA9IGNvbnRleHQtPmludGVybWVkaWF0ZS5hZGRCcmFu
Y2goRU9wQnJlYWssICh5eWxzcFsoMSkgLSAoMildKSk7Ci0gICAgO30KLSAgICBicmVhazsKLQot
ICBjYXNlIDE5NDoKLQotICAgIHsKLSAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1Ob2RlKSA9
IGNvbnRleHQtPmludGVybWVkaWF0ZS5hZGRCcmFuY2goRU9wUmV0dXJuLCAoeXlsc3BbKDEpIC0g
KDIpXSkpOwotICAgICAgICBpZiAoY29udGV4dC0+Y3VycmVudEZ1bmN0aW9uVHlwZS0+Z2V0QmFz
aWNUeXBlKCkgIT0gRWJ0Vm9pZCkgewotICAgICAgICAgICAgY29udGV4dC0+ZXJyb3IoKHl5bHNw
WygxKSAtICgyKV0pLCAibm9uLXZvaWQgZnVuY3Rpb24gbXVzdCByZXR1cm4gYSB2YWx1ZSIsICJy
ZXR1cm4iKTsKLSAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLSAgICAgICAgfQotICAg
IDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxOTU6Ci0KLSAgICB7Ci0gICAgICAgICh5eXZhbC5p
bnRlcm0uaW50ZXJtTm9kZSkgPSBjb250ZXh0LT5pbnRlcm1lZGlhdGUuYWRkQnJhbmNoKEVPcFJl
dHVybiwgKHl5dnNwWygyKSAtICgzKV0uaW50ZXJtLmludGVybVR5cGVkTm9kZSksICh5eWxzcFso
MSkgLSAoMyldKSk7Ci0gICAgICAgIGNvbnRleHQtPmZ1bmN0aW9uUmV0dXJuc1ZhbHVlID0gdHJ1
ZTsKLSAgICAgICAgaWYgKGNvbnRleHQtPmN1cnJlbnRGdW5jdGlvblR5cGUtPmdldEJhc2ljVHlw
ZSgpID09IEVidFZvaWQpIHsKLSAgICAgICAgICAgIGNvbnRleHQtPmVycm9yKCh5eWxzcFsoMSkg
LSAoMyldKSwgInZvaWQgZnVuY3Rpb24gY2Fubm90IHJldHVybiBhIHZhbHVlIiwgInJldHVybiIp
OwotICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAgICB9IGVsc2UgaWYgKCoo
Y29udGV4dC0+Y3VycmVudEZ1bmN0aW9uVHlwZSkgIT0gKHl5dnNwWygyKSAtICgzKV0uaW50ZXJt
LmludGVybVR5cGVkTm9kZSktPmdldFR5cGUoKSkgewotICAgICAgICAgICAgY29udGV4dC0+ZXJy
b3IoKHl5bHNwWygxKSAtICgzKV0pLCAiZnVuY3Rpb24gcmV0dXJuIGlzIG5vdCBtYXRjaGluZyB0
eXBlOiIsICJyZXR1cm4iKTsKLSAgICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLSAgICAg
ICAgfQotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAxOTY6Ci0KLSAgICB7Ci0gICAgICAg
IEZSQUdfT05MWSgiZGlzY2FyZCIsICh5eWxzcFsoMSkgLSAoMildKSk7Ci0gICAgICAgICh5eXZh
bC5pbnRlcm0uaW50ZXJtTm9kZSkgPSBjb250ZXh0LT5pbnRlcm1lZGlhdGUuYWRkQnJhbmNoKEVP
cEtpbGwsICh5eWxzcFsoMSkgLSAoMildKSk7Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNl
IDE5NzoKLQotICAgIHsKLSAgICAgICAgKHl5dmFsLmludGVybS5pbnRlcm1Ob2RlKSA9ICh5eXZz
cFsoMSkgLSAoMSldLmludGVybS5pbnRlcm1Ob2RlKTsKLSAgICAgICAgY29udGV4dC0+dHJlZVJv
b3QgPSAoeXl2YWwuaW50ZXJtLmludGVybU5vZGUpOwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAg
Y2FzZSAxOTg6Ci0KLSAgICB7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtTm9kZSkgPSBj
b250ZXh0LT5pbnRlcm1lZGlhdGUuZ3Jvd0FnZ3JlZ2F0ZSgoeXl2c3BbKDEpIC0gKDIpXS5pbnRl
cm0uaW50ZXJtTm9kZSksICh5eXZzcFsoMikgLSAoMildLmludGVybS5pbnRlcm1Ob2RlKSwgKHl5
bG9jKSk7Ci0gICAgICAgIGNvbnRleHQtPnRyZWVSb290ID0gKHl5dmFsLmludGVybS5pbnRlcm1O
b2RlKTsKLSAgICA7fQotICAgIGJyZWFrOwotCi0gIGNhc2UgMTk5OgotCi0gICAgewotICAgICAg
ICAoeXl2YWwuaW50ZXJtLmludGVybU5vZGUpID0gKHl5dnNwWygxKSAtICgxKV0uaW50ZXJtLmlu
dGVybU5vZGUpOwotICAgIDt9Ci0gICAgYnJlYWs7Ci0KLSAgY2FzZSAyMDA6Ci0KLSAgICB7Ci0g
ICAgICAgICh5eXZhbC5pbnRlcm0uaW50ZXJtTm9kZSkgPSAoeXl2c3BbKDEpIC0gKDEpXS5pbnRl
cm0uaW50ZXJtTm9kZSk7Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDIwMToKLQotICAg
IHsKLSAgICAgICAgVEZ1bmN0aW9uKiBmdW5jdGlvbiA9ICh5eXZzcFsoMSkgLSAoMSldLmludGVy
bSkuZnVuY3Rpb247Ci0gICAgICAgIAotICAgICAgICBjb25zdCBUU3ltYm9sICpidWlsdEluID0g
Y29udGV4dC0+c3ltYm9sVGFibGUuZmluZEJ1aWx0SW4oZnVuY3Rpb24tPmdldE1hbmdsZWROYW1l
KCkpOwotICAgICAgICAKLSAgICAgICAgaWYgKGJ1aWx0SW4pCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGNvbnRleHQtPmVycm9yKCh5eWxzcFsoMSkgLSAoMSldKSwgImJ1aWx0LWluIGZ1bmN0aW9u
cyBjYW5ub3QgYmUgcmVkZWZpbmVkIiwgZnVuY3Rpb24tPmdldE5hbWUoKS5jX3N0cigpKTsKLSAg
ICAgICAgICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLSAgICAgICAgfQotICAgICAgICAKLSAgICAg
ICAgVEZ1bmN0aW9uKiBwcmV2RGVjID0gc3RhdGljX2Nhc3Q8VEZ1bmN0aW9uKj4oY29udGV4dC0+
c3ltYm9sVGFibGUuZmluZChmdW5jdGlvbi0+Z2V0TWFuZ2xlZE5hbWUoKSkpOwotICAgICAgICAv
LwotICAgICAgICAvLyBOb3RlOiAgJ3ByZXZEZWMnIGNvdWxkIGJlICdmdW5jdGlvbicgaWYgdGhp
cyBpcyB0aGUgZmlyc3QgdGltZSB3ZSd2ZSBzZWVuIGZ1bmN0aW9uCi0gICAgICAgIC8vIGFzIGl0
IHdvdWxkIGhhdmUganVzdCBiZWVuIHB1dCBpbiB0aGUgc3ltYm9sIHRhYmxlLiAgT3RoZXJ3aXNl
LCB3ZSdyZSBsb29raW5nIHVwCi0gICAgICAgIC8vIGFuIGVhcmxpZXIgb2NjdXJhbmNlLgotICAg
ICAgICAvLwotICAgICAgICBpZiAocHJldkRlYy0+aXNEZWZpbmVkKCkpIHsKLSAgICAgICAgICAg
IC8vCi0gICAgICAgICAgICAvLyBUaGVuIHRoaXMgZnVuY3Rpb24gYWxyZWFkeSBoYXMgYSBib2R5
LgotICAgICAgICAgICAgLy8KLSAgICAgICAgICAgIGNvbnRleHQtPmVycm9yKCh5eWxzcFsoMSkg
LSAoMSldKSwgImZ1bmN0aW9uIGFscmVhZHkgaGFzIGEgYm9keSIsIGZ1bmN0aW9uLT5nZXROYW1l
KCkuY19zdHIoKSk7Ci0gICAgICAgICAgICBjb250ZXh0LT5yZWNvdmVyKCk7Ci0gICAgICAgIH0K
LSAgICAgICAgcHJldkRlYy0+c2V0RGVmaW5lZCgpOwotCi0gICAgICAgIC8vCi0gICAgICAgIC8v
IFJhaXNlIGVycm9yIG1lc3NhZ2UgaWYgbWFpbiBmdW5jdGlvbiB0YWtlcyBhbnkgcGFyYW1ldGVy
cyBvciByZXR1cm4gYW55dGhpbmcgb3RoZXIgdGhhbiB2b2lkCi0gICAgICAgIC8vCi0gICAgICAg
IGlmIChmdW5jdGlvbi0+Z2V0TmFtZSgpID09ICJtYWluIikgewotICAgICAgICAgICAgaWYgKGZ1
bmN0aW9uLT5nZXRQYXJhbUNvdW50KCkgPiAwKSB7Ci0gICAgICAgICAgICAgICAgY29udGV4dC0+
ZXJyb3IoKHl5bHNwWygxKSAtICgxKV0pLCAiZnVuY3Rpb24gY2Fubm90IHRha2UgYW55IHBhcmFt
ZXRlcihzKSIsIGZ1bmN0aW9uLT5nZXROYW1lKCkuY19zdHIoKSk7Ci0gICAgICAgICAgICAgICAg
Y29udGV4dC0+cmVjb3ZlcigpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKGZ1bmN0
aW9uLT5nZXRSZXR1cm5UeXBlKCkuZ2V0QmFzaWNUeXBlKCkgIT0gRWJ0Vm9pZCkgewotICAgICAg
ICAgICAgICAgIGNvbnRleHQtPmVycm9yKCh5eWxzcFsoMSkgLSAoMSldKSwgIiIsIGZ1bmN0aW9u
LT5nZXRSZXR1cm5UeXBlKCkuZ2V0QmFzaWNTdHJpbmcoKSwgIm1haW4gZnVuY3Rpb24gY2Fubm90
IHJldHVybiBhIHZhbHVlIik7Ci0gICAgICAgICAgICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9Ci0KLSAgICAgICAgLy8KLSAgICAgICAgLy8gUmVtZW1i
ZXIgdGhlIHJldHVybiB0eXBlIGZvciBsYXRlciBjaGVja2luZyBmb3IgUkVUVVJOIHN0YXRlbWVu
dHMuCi0gICAgICAgIC8vCi0gICAgICAgIGNvbnRleHQtPmN1cnJlbnRGdW5jdGlvblR5cGUgPSAm
KHByZXZEZWMtPmdldFJldHVyblR5cGUoKSk7Ci0gICAgICAgIGNvbnRleHQtPmZ1bmN0aW9uUmV0
dXJuc1ZhbHVlID0gZmFsc2U7Ci0KLSAgICAgICAgLy8KLSAgICAgICAgLy8gSW5zZXJ0IHBhcmFt
ZXRlcnMgaW50byB0aGUgc3ltYm9sIHRhYmxlLgotICAgICAgICAvLyBJZiB0aGUgcGFyYW1ldGVy
IGhhcyBubyBuYW1lLCBpdCdzIG5vdCBhbiBlcnJvciwganVzdCBkb24ndCBpbnNlcnQgaXQKLSAg
ICAgICAgLy8gKGNvdWxkIGJlIHVzZWQgZm9yIHVudXNlZCBhcmdzKS4KLSAgICAgICAgLy8KLSAg
ICAgICAgLy8gQWxzbywgYWNjdW11bGF0ZSB0aGUgbGlzdCBvZiBwYXJhbWV0ZXJzIGludG8gdGhl
IEhJTCwgc28gbG93ZXIgbGV2ZWwgY29kZQotICAgICAgICAvLyBrbm93cyB3aGVyZSB0byBmaW5k
IHBhcmFtZXRlcnMuCi0gICAgICAgIC8vCi0gICAgICAgIFRJbnRlcm1BZ2dyZWdhdGUqIHBhcmFt
Tm9kZXMgPSBuZXcgVEludGVybUFnZ3JlZ2F0ZTsKLSAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBmdW5jdGlvbi0+Z2V0UGFyYW1Db3VudCgpOyBpKyspIHsKLSAgICAgICAgICAgIGNvbnN0
IFRQYXJhbWV0ZXImIHBhcmFtID0gZnVuY3Rpb24tPmdldFBhcmFtKGkpOwotICAgICAgICAgICAg
aWYgKHBhcmFtLm5hbWUgIT0gMCkgewotICAgICAgICAgICAgICAgIFRWYXJpYWJsZSAqdmFyaWFi
bGUgPSBuZXcgVFZhcmlhYmxlKHBhcmFtLm5hbWUsICpwYXJhbS50eXBlKTsKLSAgICAgICAgICAg
ICAgICAvLwotICAgICAgICAgICAgICAgIC8vIEluc2VydCB0aGUgcGFyYW1ldGVycyB3aXRoIG5h
bWUgaW4gdGhlIHN5bWJvbCB0YWJsZS4KLSAgICAgICAgICAgICAgICAvLwotICAgICAgICAgICAg
ICAgIGlmICghIGNvbnRleHQtPnN5bWJvbFRhYmxlLmluc2VydCgqdmFyaWFibGUpKSB7Ci0gICAg
ICAgICAgICAgICAgICAgIGNvbnRleHQtPmVycm9yKCh5eWxzcFsoMSkgLSAoMSldKSwgInJlZGVm
aW5pdGlvbiIsIHZhcmlhYmxlLT5nZXROYW1lKCkuY19zdHIoKSk7Ci0gICAgICAgICAgICAgICAg
ICAgIGNvbnRleHQtPnJlY292ZXIoKTsKLSAgICAgICAgICAgICAgICAgICAgZGVsZXRlIHZhcmlh
YmxlOwotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIC8vCi0gICAgICAgICAg
ICAgICAgLy8gQWRkIHRoZSBwYXJhbWV0ZXIgdG8gdGhlIEhJTAotICAgICAgICAgICAgICAgIC8v
Ci0gICAgICAgICAgICAgICAgcGFyYW1Ob2RlcyA9IGNvbnRleHQtPmludGVybWVkaWF0ZS5ncm93
QWdncmVnYXRlKAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBwYXJhbU5vZGVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb250ZXh0LT5pbnRlcm1lZGlhdGUuYWRkU3ltYm9sKHZhcmlhYmxlLT5nZXRVbmlxdWVJ
ZCgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhYmxlLT5nZXROYW1lKCksCi0gICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgdmFyaWFibGUtPmdldFR5cGUoKSwKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoeXlsc3BbKDEpIC0gKDEpXSkpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoeXlsc3BbKDEpIC0gKDEpXSkpOwotICAgICAgICAgICAgfSBlbHNlIHsK
LSAgICAgICAgICAgICAgICBwYXJhbU5vZGVzID0gY29udGV4dC0+aW50ZXJtZWRpYXRlLmdyb3dB
Z2dyZWdhdGUocGFyYW1Ob2RlcywgY29udGV4dC0+aW50ZXJtZWRpYXRlLmFkZFN5bWJvbCgwLCAi
IiwgKnBhcmFtLnR5cGUsICh5eWxzcFsoMSkgLSAoMSldKSksICh5eWxzcFsoMSkgLSAoMSldKSk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgY29udGV4dC0+aW50ZXJtZWRpYXRl
LnNldEFnZ3JlZ2F0ZU9wZXJhdG9yKHBhcmFtTm9kZXMsIEVPcFBhcmFtZXRlcnMsICh5eWxzcFso
MSkgLSAoMSldKSk7Ci0gICAgICAgICh5eXZzcFsoMSkgLSAoMSldLmludGVybSkuaW50ZXJtQWdn
cmVnYXRlID0gcGFyYW1Ob2RlczsKLSAgICAgICAgY29udGV4dC0+bG9vcE5lc3RpbmdMZXZlbCA9
IDA7Ci0gICAgO30KLSAgICBicmVhazsKLQotICBjYXNlIDIwMjoKLQotICAgIHsKLSAgICAgICAg
Ly8/PyBDaGVjayB0aGF0IGFsbCBwYXRocyByZXR1cm4gYSB2YWx1ZSBpZiByZXR1cm4gdHlwZSAh
PSB2b2lkID8KLSAgICAgICAgLy8gICBNYXkgYmUgYmVzdCBkb25lIGFzIHBvc3QgcHJvY2VzcyBw
aGFzZSBvbiBpbnRlcm1lZGlhdGUgY29kZQotICAgICAgICBpZiAoY29udGV4dC0+Y3VycmVudEZ1
bmN0aW9uVHlwZS0+Z2V0QmFzaWNUeXBlKCkgIT0gRWJ0Vm9pZCAmJiAhIGNvbnRleHQtPmZ1bmN0
aW9uUmV0dXJuc1ZhbHVlKSB7Ci0gICAgICAgICAgICBjb250ZXh0LT5lcnJvcigoeXlsc3BbKDEp
IC0gKDMpXSksICJmdW5jdGlvbiBkb2VzIG5vdCByZXR1cm4gYSB2YWx1ZToiLCAiIiwgKHl5dnNw
WygxKSAtICgzKV0uaW50ZXJtKS5mdW5jdGlvbi0+Z2V0TmFtZSgpLmNfc3RyKCkpOwotICAgICAg
ICAgICAgY29udGV4dC0+cmVjb3ZlcigpOwotICAgICAgICB9Ci0gICAgICAgIAotICAgICAgICAo
eXl2YWwuaW50ZXJtLmludGVybU5vZGUpID0gY29udGV4dC0+aW50ZXJtZWRpYXRlLmdyb3dBZ2dy
ZWdhdGUoKHl5dnNwWygxKSAtICgzKV0uaW50ZXJtKS5pbnRlcm1BZ2dyZWdhdGUsICh5eXZzcFso
MykgLSAoMyldLmludGVybS5pbnRlcm1Ob2RlKSwgKHl5bG9jKSk7Ci0gICAgICAgIGNvbnRleHQt
PmludGVybWVkaWF0ZS5zZXRBZ2dyZWdhdGVPcGVyYXRvcigoeXl2YWwuaW50ZXJtLmludGVybU5v
ZGUpLCBFT3BGdW5jdGlvbiwgKHl5bHNwWygxKSAtICgzKV0pKTsKLSAgICAgICAgKHl5dmFsLmlu
dGVybS5pbnRlcm1Ob2RlKS0+Z2V0QXNBZ2dyZWdhdGUoKS0+c2V0TmFtZSgoeXl2c3BbKDEpIC0g
KDMpXS5pbnRlcm0pLmZ1bmN0aW9uLT5nZXRNYW5nbGVkTmFtZSgpLmNfc3RyKCkpOwotICAgICAg
ICAoeXl2YWwuaW50ZXJtLmludGVybU5vZGUpLT5nZXRBc0FnZ3JlZ2F0ZSgpLT5zZXRUeXBlKCh5
eXZzcFsoMSkgLSAoMyldLmludGVybSkuZnVuY3Rpb24tPmdldFJldHVyblR5cGUoKSk7Ci0KLSAg
ICAgICAgLy8gc3RvcmUgdGhlIHByYWdtYSBpbmZvcm1hdGlvbiBmb3IgZGVidWcgYW5kIG9wdGlt
aXplIGFuZCBvdGhlciB2ZW5kb3Igc3BlY2lmaWMKLSAgICAgICAgLy8gaW5mb3JtYXRpb24uIFRo
aXMgaW5mb3JtYXRpb24gY2FuIGJlIHF1ZXJpZWQgZnJvbSB0aGUgcGFyc2UgdHJlZQotICAgICAg
ICAoeXl2YWwuaW50ZXJtLmludGVybU5vZGUpLT5nZXRBc0FnZ3JlZ2F0ZSgpLT5zZXRPcHRpbWl6
ZShjb250ZXh0LT5wcmFnbWEoKS5vcHRpbWl6ZSk7Ci0gICAgICAgICh5eXZhbC5pbnRlcm0uaW50
ZXJtTm9kZSktPmdldEFzQWdncmVnYXRlKCktPnNldERlYnVnKGNvbnRleHQtPnByYWdtYSgpLmRl
YnVnKTsKLQotICAgICAgICBjb250ZXh0LT5zeW1ib2xUYWJsZS5wb3AoKTsKLSAgICA7fQotICAg
IGJyZWFrOwotCi0KLS8qIExpbmUgMTI2NyBvZiB5YWNjLmMuICAqLwotCi0gICAgICBkZWZhdWx0
OiBicmVhazsKLSAgICB9Ci0gIFlZX1NZTUJPTF9QUklOVCAoIi0+ICQkID0iLCB5eXIxW3l5bl0s
ICZ5eXZhbCwgJnl5bG9jKTsKLQotICBZWVBPUFNUQUNLICh5eWxlbik7Ci0gIHl5bGVuID0gMDsK
LSAgWVlfU1RBQ0tfUFJJTlQgKHl5c3MsIHl5c3NwKTsKLQotICAqKyt5eXZzcCA9IHl5dmFsOwot
ICAqKyt5eWxzcCA9IHl5bG9jOwotCi0gIC8qIE5vdyBgc2hpZnQnIHRoZSByZXN1bHQgb2YgdGhl
IHJlZHVjdGlvbi4gIERldGVybWluZSB3aGF0IHN0YXRlCi0gICAgIHRoYXQgZ29lcyB0bywgYmFz
ZWQgb24gdGhlIHN0YXRlIHdlIHBvcHBlZCBiYWNrIHRvIGFuZCB0aGUgcnVsZQotICAgICBudW1i
ZXIgcmVkdWNlZCBieS4gICovCi0KLSAgeXluID0geXlyMVt5eW5dOwotCi0gIHl5c3RhdGUgPSB5
eXBnb3RvW3l5biAtIFlZTlRPS0VOU10gKyAqeXlzc3A7Ci0gIGlmICgwIDw9IHl5c3RhdGUgJiYg
eXlzdGF0ZSA8PSBZWUxBU1QgJiYgeXljaGVja1t5eXN0YXRlXSA9PSAqeXlzc3ApCi0gICAgeXlz
dGF0ZSA9IHl5dGFibGVbeXlzdGF0ZV07Ci0gIGVsc2UKLSAgICB5eXN0YXRlID0geXlkZWZnb3Rv
W3l5biAtIFlZTlRPS0VOU107Ci0KLSAgZ290byB5eW5ld3N0YXRlOwotCi0KLS8qLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLgotfCB5eWVycmxhYiAtLSBoZXJlIG9uIGRldGVj
dGluZyBlcnJvciB8Ci1gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLXl5
ZXJybGFiOgotICAvKiBJZiBub3QgYWxyZWFkeSByZWNvdmVyaW5nIGZyb20gYW4gZXJyb3IsIHJl
cG9ydCB0aGlzIGVycm9yLiAgKi8KLSAgaWYgKCF5eWVycnN0YXR1cykKLSAgICB7Ci0gICAgICAr
K3l5bmVycnM7Ci0jaWYgISBZWUVSUk9SX1ZFUkJPU0UKLSAgICAgIHl5ZXJyb3IgKCZ5eWxsb2Ms
IGNvbnRleHQsIFlZXygic3ludGF4IGVycm9yIikpOwotI2Vsc2UKLSAgICAgIHsKLQlZWVNJWkVf
VCB5eXNpemUgPSB5eXN5bnRheF9lcnJvciAoMCwgeXlzdGF0ZSwgeXljaGFyKTsKLQlpZiAoeXlt
c2dfYWxsb2MgPCB5eXNpemUgJiYgeXltc2dfYWxsb2MgPCBZWVNUQUNLX0FMTE9DX01BWElNVU0p
Ci0JICB7Ci0JICAgIFlZU0laRV9UIHl5YWxsb2MgPSAyICogeXlzaXplOwotCSAgICBpZiAoISAo
eXlzaXplIDw9IHl5YWxsb2MgJiYgeXlhbGxvYyA8PSBZWVNUQUNLX0FMTE9DX01BWElNVU0pKQot
CSAgICAgIHl5YWxsb2MgPSBZWVNUQUNLX0FMTE9DX01BWElNVU07Ci0JICAgIGlmICh5eW1zZyAh
PSB5eW1zZ2J1ZikKLQkgICAgICBZWVNUQUNLX0ZSRUUgKHl5bXNnKTsKLQkgICAgeXltc2cgPSAo
Y2hhciAqKSBZWVNUQUNLX0FMTE9DICh5eWFsbG9jKTsKLQkgICAgaWYgKHl5bXNnKQotCSAgICAg
IHl5bXNnX2FsbG9jID0geXlhbGxvYzsKLQkgICAgZWxzZQotCSAgICAgIHsKLQkJeXltc2cgPSB5
eW1zZ2J1ZjsKLQkJeXltc2dfYWxsb2MgPSBzaXplb2YgeXltc2didWY7Ci0JICAgICAgfQotCSAg
fQotCi0JaWYgKDAgPCB5eXNpemUgJiYgeXlzaXplIDw9IHl5bXNnX2FsbG9jKQotCSAgewotCSAg
ICAodm9pZCkgeXlzeW50YXhfZXJyb3IgKHl5bXNnLCB5eXN0YXRlLCB5eWNoYXIpOwotCSAgICB5
eWVycm9yICgmeXlsbG9jLCBjb250ZXh0LCB5eW1zZyk7Ci0JICB9Ci0JZWxzZQotCSAgewotCSAg
ICB5eWVycm9yICgmeXlsbG9jLCBjb250ZXh0LCBZWV8oInN5bnRheCBlcnJvciIpKTsKLQkgICAg
aWYgKHl5c2l6ZSAhPSAwKQotCSAgICAgIGdvdG8geXlleGhhdXN0ZWRsYWI7Ci0JICB9Ci0gICAg
ICB9Ci0jZW5kaWYKLSAgICB9Ci0KLSAgeXllcnJvcl9yYW5nZVswXSA9IHl5bGxvYzsKLQotICBp
ZiAoeXllcnJzdGF0dXMgPT0gMykKLSAgICB7Ci0gICAgICAvKiBJZiBqdXN0IHRyaWVkIGFuZCBm
YWlsZWQgdG8gcmV1c2UgbG9vay1haGVhZCB0b2tlbiBhZnRlciBhbgotCSBlcnJvciwgZGlzY2Fy
ZCBpdC4gICovCi0KLSAgICAgIGlmICh5eWNoYXIgPD0gWVlFT0YpCi0JewotCSAgLyogUmV0dXJu
IGZhaWx1cmUgaWYgYXQgZW5kIG9mIGlucHV0LiAgKi8KLQkgIGlmICh5eWNoYXIgPT0gWVlFT0Yp
Ci0JICAgIFlZQUJPUlQ7Ci0JfQotICAgICAgZWxzZQotCXsKLQkgIHl5ZGVzdHJ1Y3QgKCJFcnJv
cjogZGlzY2FyZGluZyIsCi0JCSAgICAgIHl5dG9rZW4sICZ5eWx2YWwsICZ5eWxsb2MsIGNvbnRl
eHQpOwotCSAgeXljaGFyID0gWVlFTVBUWTsKLQl9Ci0gICAgfQotCi0gIC8qIEVsc2Ugd2lsbCB0
cnkgdG8gcmV1c2UgbG9vay1haGVhZCB0b2tlbiBhZnRlciBzaGlmdGluZyB0aGUgZXJyb3IKLSAg
ICAgdG9rZW4uICAqLwotICBnb3RvIHl5ZXJybGFiMTsKLQotCi0vKi0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS4KLXwgeXllcnJvcmxhYiAtLSBlcnJv
ciByYWlzZWQgZXhwbGljaXRseSBieSBZWUVSUk9SLiAgfAotYC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSovCi15eWVycm9ybGFiOgotCi0gIC8qIFBh
Y2lmeSBjb21waWxlcnMgbGlrZSBHQ0Mgd2hlbiB0aGUgdXNlciBjb2RlIG5ldmVyIGludm9rZXMK
LSAgICAgWVlFUlJPUiBhbmQgdGhlIGxhYmVsIHl5ZXJyb3JsYWIgdGhlcmVmb3JlIG5ldmVyIGFw
cGVhcnMgaW4gdXNlcgotICAgICBjb2RlLiAgKi8KLSAgaWYgKC8qQ09OU1RDT05EKi8gMCkKLSAg
ICAgZ290byB5eWVycm9ybGFiOwotCi0gIHl5ZXJyb3JfcmFuZ2VbMF0gPSB5eWxzcFsxLXl5bGVu
XTsKLSAgLyogRG8gbm90IHJlY2xhaW0gdGhlIHN5bWJvbHMgb2YgdGhlIHJ1bGUgd2hpY2ggYWN0
aW9uIHRyaWdnZXJlZAotICAgICB0aGlzIFlZRVJST1IuICAqLwotICBZWVBPUFNUQUNLICh5eWxl
bik7Ci0gIHl5bGVuID0gMDsKLSAgWVlfU1RBQ0tfUFJJTlQgKHl5c3MsIHl5c3NwKTsKLSAgeXlz
dGF0ZSA9ICp5eXNzcDsKLSAgZ290byB5eWVycmxhYjE7Ci0KLQotLyotLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLgotfCB5eWVycmxh
YjEgLS0gY29tbW9uIGNvZGUgZm9yIGJvdGggc3ludGF4IGVycm9yIGFuZCBZWUVSUk9SLiAgfAot
YC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0qLwoteXllcnJsYWIxOgotICB5eWVycnN0YXR1cyA9IDM7CS8qIEVhY2ggcmVhbCB0b2tl
biBzaGlmdGVkIGRlY3JlbWVudHMgdGhpcy4gICovCi0KLSAgZm9yICg7OykKLSAgICB7Ci0gICAg
ICB5eW4gPSB5eXBhY3RbeXlzdGF0ZV07Ci0gICAgICBpZiAoeXluICE9IFlZUEFDVF9OSU5GKQot
CXsKLQkgIHl5biArPSBZWVRFUlJPUjsKLQkgIGlmICgwIDw9IHl5biAmJiB5eW4gPD0gWVlMQVNU
ICYmIHl5Y2hlY2tbeXluXSA9PSBZWVRFUlJPUikKLQkgICAgewotCSAgICAgIHl5biA9IHl5dGFi
bGVbeXluXTsKLQkgICAgICBpZiAoMCA8IHl5bikKLQkJYnJlYWs7Ci0JICAgIH0KLQl9Ci0KLSAg
ICAgIC8qIFBvcCB0aGUgY3VycmVudCBzdGF0ZSBiZWNhdXNlIGl0IGNhbm5vdCBoYW5kbGUgdGhl
IGVycm9yIHRva2VuLiAgKi8KLSAgICAgIGlmICh5eXNzcCA9PSB5eXNzKQotCVlZQUJPUlQ7Ci0K
LSAgICAgIHl5ZXJyb3JfcmFuZ2VbMF0gPSAqeXlsc3A7Ci0gICAgICB5eWRlc3RydWN0ICgiRXJy
b3I6IHBvcHBpbmciLAotCQkgIHl5c3Rvc1t5eXN0YXRlXSwgeXl2c3AsIHl5bHNwLCBjb250ZXh0
KTsKLSAgICAgIFlZUE9QU1RBQ0sgKDEpOwotICAgICAgeXlzdGF0ZSA9ICp5eXNzcDsKLSAgICAg
IFlZX1NUQUNLX1BSSU5UICh5eXNzLCB5eXNzcCk7Ci0gICAgfQotCi0gIGlmICh5eW4gPT0gWVlG
SU5BTCkKLSAgICBZWUFDQ0VQVDsKLQotICAqKyt5eXZzcCA9IHl5bHZhbDsKLQotICB5eWVycm9y
X3JhbmdlWzFdID0geXlsbG9jOwotICAvKiBVc2luZyBZWUxMT0MgaXMgdGVtcHRpbmcsIGJ1dCB3
b3VsZCBjaGFuZ2UgdGhlIGxvY2F0aW9uIG9mCi0gICAgIHRoZSBsb29rLWFoZWFkLiAgWVlMT0Mg
aXMgYXZhaWxhYmxlIHRob3VnaC4gICovCi0gIFlZTExPQ19ERUZBVUxUICh5eWxvYywgKHl5ZXJy
b3JfcmFuZ2UgLSAxKSwgMik7Ci0gICorK3l5bHNwID0geXlsb2M7Ci0KLSAgLyogU2hpZnQgdGhl
IGVycm9yIHRva2VuLiAgKi8KLSAgWVlfU1lNQk9MX1BSSU5UICgiU2hpZnRpbmciLCB5eXN0b3Nb
eXluXSwgeXl2c3AsIHl5bHNwKTsKLQotICB5eXN0YXRlID0geXluOwotICBnb3RvIHl5bmV3c3Rh
dGU7Ci0KLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLgotfCB5eWFj
Y2VwdGxhYiAtLSBZWUFDQ0VQVCBjb21lcyBoZXJlLiAgfAotYC0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0qLwoteXlhY2NlcHRsYWI6Ci0gIHl5cmVzdWx0ID0gMDsKLSAgZ290
byB5eXJldHVybjsKLQotLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS4KLXwg
eXlhYm9ydGxhYiAtLSBZWUFCT1JUIGNvbWVzIGhlcmUuICB8Ci1gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0qLwoteXlhYm9ydGxhYjoKLSAgeXlyZXN1bHQgPSAxOwotICBnb3Rv
IHl5cmV0dXJuOwotCi0jaWZuZGVmIHl5b3ZlcmZsb3cKLS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS4KLXwgeXlleGhhdXN0ZWRsYWIgLS0gbWVtb3J5
IGV4aGF1c3Rpb24gY29tZXMgaGVyZS4gIHwKLWAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tKi8KLXl5ZXhoYXVzdGVkbGFiOgotICB5eWVycm9yICgmeXls
bG9jLCBjb250ZXh0LCBZWV8oIm1lbW9yeSBleGhhdXN0ZWQiKSk7Ci0gIHl5cmVzdWx0ID0gMjsK
LSAgLyogRmFsbCB0aHJvdWdoLiAgKi8KLSNlbmRpZgotCi15eXJldHVybjoKLSAgaWYgKHl5Y2hh
ciAhPSBZWUVPRiAmJiB5eWNoYXIgIT0gWVlFTVBUWSkKLSAgICAgeXlkZXN0cnVjdCAoIkNsZWFu
dXA6IGRpc2NhcmRpbmcgbG9va2FoZWFkIiwKLQkJIHl5dG9rZW4sICZ5eWx2YWwsICZ5eWxsb2Ms
IGNvbnRleHQpOwotICAvKiBEbyBub3QgcmVjbGFpbSB0aGUgc3ltYm9scyBvZiB0aGUgcnVsZSB3
aGljaCBhY3Rpb24gdHJpZ2dlcmVkCi0gICAgIHRoaXMgWVlBQk9SVCBvciBZWUFDQ0VQVC4gICov
Ci0gIFlZUE9QU1RBQ0sgKHl5bGVuKTsKLSAgWVlfU1RBQ0tfUFJJTlQgKHl5c3MsIHl5c3NwKTsK
LSAgd2hpbGUgKHl5c3NwICE9IHl5c3MpCi0gICAgewotICAgICAgeXlkZXN0cnVjdCAoIkNsZWFu
dXA6IHBvcHBpbmciLAotCQkgIHl5c3Rvc1sqeXlzc3BdLCB5eXZzcCwgeXlsc3AsIGNvbnRleHQp
OwotICAgICAgWVlQT1BTVEFDSyAoMSk7Ci0gICAgfQotI2lmbmRlZiB5eW92ZXJmbG93Ci0gIGlm
ICh5eXNzICE9IHl5c3NhKQotICAgIFlZU1RBQ0tfRlJFRSAoeXlzcyk7Ci0jZW5kaWYKLSNpZiBZ
WUVSUk9SX1ZFUkJPU0UKLSAgaWYgKHl5bXNnICE9IHl5bXNnYnVmKQotICAgIFlZU1RBQ0tfRlJF
RSAoeXltc2cpOwotI2VuZGlmCi0gIC8qIE1ha2Ugc3VyZSBZWUlEIGlzIHVzZWQuICAqLwotICBy
ZXR1cm4gWVlJRCAoeXlyZXN1bHQpOwotfQotCi0KLQotCi0KLXZvaWQgeXllcnJvcihZWUxUWVBF
KiB5eWxsb2MsIFRQYXJzZUNvbnRleHQqIGNvbnRleHQsIGNvbnN0IGNoYXIqIHJlYXNvbikgewot
ICAgIGNvbnRleHQtPmVycm9yKCp5eWxsb2MsIHJlYXNvbiwgIiIpOwotICAgIGNvbnRleHQtPnJl
Y292ZXIoKTsKLX0KLQotaW50IGdsc2xhbmdfcGFyc2UoVFBhcnNlQ29udGV4dCogY29udGV4dCkg
ewotICAgIHJldHVybiB5eXBhcnNlKGNvbnRleHQpOwotfQotCkluZGV4OiBTb3VyY2UvVGhpcmRQ
YXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvZ2xzbGFuZ190YWIuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvVGhpcmRQYXJ0eS9BTkdMRS9zcmMvY29tcGlsZXIvZ2xzbGFuZ190YWIuaAkocmV2aXNpb24g
MTUyODcwKQorKysgU291cmNlL1RoaXJkUGFydHkvQU5HTEUvc3JjL2NvbXBpbGVyL2dsc2xhbmdf
dGFiLmgJKHdvcmtpbmcgY29weSkKQEAgLTEsMjkwICswLDAgQEAKLS8qIEEgQmlzb24gcGFyc2Vy
LCBtYWRlIGJ5IEdOVSBCaXNvbiAyLjMuICAqLwotCi0vKiBTa2VsZXRvbiBpbnRlcmZhY2UgZm9y
IEJpc29uJ3MgWWFjYy1saWtlIHBhcnNlcnMgaW4gQwotCi0gICBDb3B5cmlnaHQgKEMpIDE5ODQs
IDE5ODksIDE5OTAsIDIwMDAsIDIwMDEsIDIwMDIsIDIwMDMsIDIwMDQsIDIwMDUsIDIwMDYKLSAg
IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotCi0gICBUaGlzIHByb2dyYW0gaXMgZnJl
ZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQotICAgaXQg
dW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJs
aXNoZWQgYnkKLSAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9u
IDIsIG9yIChhdCB5b3VyIG9wdGlvbikKLSAgIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICBUaGlz
IHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKLSAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCi0gICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlCi0gICBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgotCi0gICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRo
ZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07
IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKLSAgIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gICBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4gICovCi0KLS8qIEFzIGEgc3BlY2lhbCBleGNlcHRpb24sIHlvdSBtYXkgY3JlYXRl
IGEgbGFyZ2VyIHdvcmsgdGhhdCBjb250YWlucwotICAgcGFydCBvciBhbGwgb2YgdGhlIEJpc29u
IHBhcnNlciBza2VsZXRvbiBhbmQgZGlzdHJpYnV0ZSB0aGF0IHdvcmsKLSAgIHVuZGVyIHRlcm1z
IG9mIHlvdXIgY2hvaWNlLCBzbyBsb25nIGFzIHRoYXQgd29yayBpc24ndCBpdHNlbGYgYQotICAg
cGFyc2VyIGdlbmVyYXRvciB1c2luZyB0aGUgc2tlbGV0b24gb3IgYSBtb2RpZmllZCB2ZXJzaW9u
IHRoZXJlb2YKLSAgIGFzIGEgcGFyc2VyIHNrZWxldG9uLiAgQWx0ZXJuYXRpdmVseSwgaWYgeW91
IG1vZGlmeSBvciByZWRpc3RyaWJ1dGUKLSAgIHRoZSBwYXJzZXIgc2tlbGV0b24gaXRzZWxmLCB5
b3UgbWF5IChhdCB5b3VyIG9wdGlvbikgcmVtb3ZlIHRoaXMKLSAgIHNwZWNpYWwgZXhjZXB0aW9u
LCB3aGljaCB3aWxsIGNhdXNlIHRoZSBza2VsZXRvbiBhbmQgdGhlIHJlc3VsdGluZwotICAgQmlz
b24gb3V0cHV0IGZpbGVzIHRvIGJlIGxpY2Vuc2VkIHVuZGVyIHRoZSBHTlUgR2VuZXJhbCBQdWJs
aWMKLSAgIExpY2Vuc2Ugd2l0aG91dCB0aGlzIHNwZWNpYWwgZXhjZXB0aW9uLgotCi0gICBUaGlz
IHNwZWNpYWwgZXhjZXB0aW9uIHdhcyBhZGRlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uIGluCi0gICB2ZXJzaW9uIDIuMiBvZiBCaXNvbi4gICovCi0KLS8qIFRva2Vucy4gICovCi0j
aWZuZGVmIFlZVE9LRU5UWVBFCi0jIGRlZmluZSBZWVRPS0VOVFlQRQotICAgLyogUHV0IHRoZSB0
b2tlbnMgaW50byB0aGUgc3ltYm9sIHRhYmxlLCBzbyB0aGF0IEdEQiBhbmQgb3RoZXIgZGVidWdn
ZXJzCi0gICAgICBrbm93IGFib3V0IHRoZW0uICAqLwotICAgZW51bSB5eXRva2VudHlwZSB7Ci0g
ICAgIElOVkFSSUFOVCA9IDI1OCwKLSAgICAgSElHSF9QUkVDSVNJT04gPSAyNTksCi0gICAgIE1F
RElVTV9QUkVDSVNJT04gPSAyNjAsCi0gICAgIExPV19QUkVDSVNJT04gPSAyNjEsCi0gICAgIFBS
RUNJU0lPTiA9IDI2MiwKLSAgICAgQVRUUklCVVRFID0gMjYzLAotICAgICBDT05TVF9RVUFMID0g
MjY0LAotICAgICBCT09MX1RZUEUgPSAyNjUsCi0gICAgIEZMT0FUX1RZUEUgPSAyNjYsCi0gICAg
IElOVF9UWVBFID0gMjY3LAotICAgICBCUkVBSyA9IDI2OCwKLSAgICAgQ09OVElOVUUgPSAyNjks
Ci0gICAgIERPID0gMjcwLAotICAgICBFTFNFID0gMjcxLAotICAgICBGT1IgPSAyNzIsCi0gICAg
IElGID0gMjczLAotICAgICBESVNDQVJEID0gMjc0LAotICAgICBSRVRVUk4gPSAyNzUsCi0gICAg
IEJWRUMyID0gMjc2LAotICAgICBCVkVDMyA9IDI3NywKLSAgICAgQlZFQzQgPSAyNzgsCi0gICAg
IElWRUMyID0gMjc5LAotICAgICBJVkVDMyA9IDI4MCwKLSAgICAgSVZFQzQgPSAyODEsCi0gICAg
IFZFQzIgPSAyODIsCi0gICAgIFZFQzMgPSAyODMsCi0gICAgIFZFQzQgPSAyODQsCi0gICAgIE1B
VFJJWDIgPSAyODUsCi0gICAgIE1BVFJJWDMgPSAyODYsCi0gICAgIE1BVFJJWDQgPSAyODcsCi0g
ICAgIElOX1FVQUwgPSAyODgsCi0gICAgIE9VVF9RVUFMID0gMjg5LAotICAgICBJTk9VVF9RVUFM
ID0gMjkwLAotICAgICBVTklGT1JNID0gMjkxLAotICAgICBWQVJZSU5HID0gMjkyLAotICAgICBT
VFJVQ1QgPSAyOTMsCi0gICAgIFZPSURfVFlQRSA9IDI5NCwKLSAgICAgV0hJTEUgPSAyOTUsCi0g
ICAgIFNBTVBMRVIyRCA9IDI5NiwKLSAgICAgU0FNUExFUkNVQkUgPSAyOTcsCi0gICAgIFNBTVBM
RVJfRVhURVJOQUxfT0VTID0gMjk4LAotICAgICBTQU1QTEVSMkRSRUNUID0gMjk5LAotICAgICBJ
REVOVElGSUVSID0gMzAwLAotICAgICBUWVBFX05BTUUgPSAzMDEsCi0gICAgIEZMT0FUQ09OU1RB
TlQgPSAzMDIsCi0gICAgIElOVENPTlNUQU5UID0gMzAzLAotICAgICBCT09MQ09OU1RBTlQgPSAz
MDQsCi0gICAgIExFRlRfT1AgPSAzMDUsCi0gICAgIFJJR0hUX09QID0gMzA2LAotICAgICBJTkNf
T1AgPSAzMDcsCi0gICAgIERFQ19PUCA9IDMwOCwKLSAgICAgTEVfT1AgPSAzMDksCi0gICAgIEdF
X09QID0gMzEwLAotICAgICBFUV9PUCA9IDMxMSwKLSAgICAgTkVfT1AgPSAzMTIsCi0gICAgIEFO
RF9PUCA9IDMxMywKLSAgICAgT1JfT1AgPSAzMTQsCi0gICAgIFhPUl9PUCA9IDMxNSwKLSAgICAg
TVVMX0FTU0lHTiA9IDMxNiwKLSAgICAgRElWX0FTU0lHTiA9IDMxNywKLSAgICAgQUREX0FTU0lH
TiA9IDMxOCwKLSAgICAgTU9EX0FTU0lHTiA9IDMxOSwKLSAgICAgTEVGVF9BU1NJR04gPSAzMjAs
Ci0gICAgIFJJR0hUX0FTU0lHTiA9IDMyMSwKLSAgICAgQU5EX0FTU0lHTiA9IDMyMiwKLSAgICAg
WE9SX0FTU0lHTiA9IDMyMywKLSAgICAgT1JfQVNTSUdOID0gMzI0LAotICAgICBTVUJfQVNTSUdO
ID0gMzI1LAotICAgICBMRUZUX1BBUkVOID0gMzI2LAotICAgICBSSUdIVF9QQVJFTiA9IDMyNywK
LSAgICAgTEVGVF9CUkFDS0VUID0gMzI4LAotICAgICBSSUdIVF9CUkFDS0VUID0gMzI5LAotICAg
ICBMRUZUX0JSQUNFID0gMzMwLAotICAgICBSSUdIVF9CUkFDRSA9IDMzMSwKLSAgICAgRE9UID0g
MzMyLAotICAgICBDT01NQSA9IDMzMywKLSAgICAgQ09MT04gPSAzMzQsCi0gICAgIEVRVUFMID0g
MzM1LAotICAgICBTRU1JQ09MT04gPSAzMzYsCi0gICAgIEJBTkcgPSAzMzcsCi0gICAgIERBU0gg
PSAzMzgsCi0gICAgIFRJTERFID0gMzM5LAotICAgICBQTFVTID0gMzQwLAotICAgICBTVEFSID0g
MzQxLAotICAgICBTTEFTSCA9IDM0MiwKLSAgICAgUEVSQ0VOVCA9IDM0MywKLSAgICAgTEVGVF9B
TkdMRSA9IDM0NCwKLSAgICAgUklHSFRfQU5HTEUgPSAzNDUsCi0gICAgIFZFUlRJQ0FMX0JBUiA9
IDM0NiwKLSAgICAgQ0FSRVQgPSAzNDcsCi0gICAgIEFNUEVSU0FORCA9IDM0OCwKLSAgICAgUVVF
U1RJT04gPSAzNDkKLSAgIH07Ci0jZW5kaWYKLS8qIFRva2Vucy4gICovCi0jZGVmaW5lIElOVkFS
SUFOVCAyNTgKLSNkZWZpbmUgSElHSF9QUkVDSVNJT04gMjU5Ci0jZGVmaW5lIE1FRElVTV9QUkVD
SVNJT04gMjYwCi0jZGVmaW5lIExPV19QUkVDSVNJT04gMjYxCi0jZGVmaW5lIFBSRUNJU0lPTiAy
NjIKLSNkZWZpbmUgQVRUUklCVVRFIDI2MwotI2RlZmluZSBDT05TVF9RVUFMIDI2NAotI2RlZmlu
ZSBCT09MX1RZUEUgMjY1Ci0jZGVmaW5lIEZMT0FUX1RZUEUgMjY2Ci0jZGVmaW5lIElOVF9UWVBF
IDI2NwotI2RlZmluZSBCUkVBSyAyNjgKLSNkZWZpbmUgQ09OVElOVUUgMjY5Ci0jZGVmaW5lIERP
IDI3MAotI2RlZmluZSBFTFNFIDI3MQotI2RlZmluZSBGT1IgMjcyCi0jZGVmaW5lIElGIDI3Mwot
I2RlZmluZSBESVNDQVJEIDI3NAotI2RlZmluZSBSRVRVUk4gMjc1Ci0jZGVmaW5lIEJWRUMyIDI3
NgotI2RlZmluZSBCVkVDMyAyNzcKLSNkZWZpbmUgQlZFQzQgMjc4Ci0jZGVmaW5lIElWRUMyIDI3
OQotI2RlZmluZSBJVkVDMyAyODAKLSNkZWZpbmUgSVZFQzQgMjgxCi0jZGVmaW5lIFZFQzIgMjgy
Ci0jZGVmaW5lIFZFQzMgMjgzCi0jZGVmaW5lIFZFQzQgMjg0Ci0jZGVmaW5lIE1BVFJJWDIgMjg1
Ci0jZGVmaW5lIE1BVFJJWDMgMjg2Ci0jZGVmaW5lIE1BVFJJWDQgMjg3Ci0jZGVmaW5lIElOX1FV
QUwgMjg4Ci0jZGVmaW5lIE9VVF9RVUFMIDI4OQotI2RlZmluZSBJTk9VVF9RVUFMIDI5MAotI2Rl
ZmluZSBVTklGT1JNIDI5MQotI2RlZmluZSBWQVJZSU5HIDI5MgotI2RlZmluZSBTVFJVQ1QgMjkz
Ci0jZGVmaW5lIFZPSURfVFlQRSAyOTQKLSNkZWZpbmUgV0hJTEUgMjk1Ci0jZGVmaW5lIFNBTVBM
RVIyRCAyOTYKLSNkZWZpbmUgU0FNUExFUkNVQkUgMjk3Ci0jZGVmaW5lIFNBTVBMRVJfRVhURVJO
QUxfT0VTIDI5OAotI2RlZmluZSBTQU1QTEVSMkRSRUNUIDI5OQotI2RlZmluZSBJREVOVElGSUVS
IDMwMAotI2RlZmluZSBUWVBFX05BTUUgMzAxCi0jZGVmaW5lIEZMT0FUQ09OU1RBTlQgMzAyCi0j
ZGVmaW5lIElOVENPTlNUQU5UIDMwMwotI2RlZmluZSBCT09MQ09OU1RBTlQgMzA0Ci0jZGVmaW5l
IExFRlRfT1AgMzA1Ci0jZGVmaW5lIFJJR0hUX09QIDMwNgotI2RlZmluZSBJTkNfT1AgMzA3Ci0j
ZGVmaW5lIERFQ19PUCAzMDgKLSNkZWZpbmUgTEVfT1AgMzA5Ci0jZGVmaW5lIEdFX09QIDMxMAot
I2RlZmluZSBFUV9PUCAzMTEKLSNkZWZpbmUgTkVfT1AgMzEyCi0jZGVmaW5lIEFORF9PUCAzMTMK
LSNkZWZpbmUgT1JfT1AgMzE0Ci0jZGVmaW5lIFhPUl9PUCAzMTUKLSNkZWZpbmUgTVVMX0FTU0lH
TiAzMTYKLSNkZWZpbmUgRElWX0FTU0lHTiAzMTcKLSNkZWZpbmUgQUREX0FTU0lHTiAzMTgKLSNk
ZWZpbmUgTU9EX0FTU0lHTiAzMTkKLSNkZWZpbmUgTEVGVF9BU1NJR04gMzIwCi0jZGVmaW5lIFJJ
R0hUX0FTU0lHTiAzMjEKLSNkZWZpbmUgQU5EX0FTU0lHTiAzMjIKLSNkZWZpbmUgWE9SX0FTU0lH
TiAzMjMKLSNkZWZpbmUgT1JfQVNTSUdOIDMyNAotI2RlZmluZSBTVUJfQVNTSUdOIDMyNQotI2Rl
ZmluZSBMRUZUX1BBUkVOIDMyNgotI2RlZmluZSBSSUdIVF9QQVJFTiAzMjcKLSNkZWZpbmUgTEVG
VF9CUkFDS0VUIDMyOAotI2RlZmluZSBSSUdIVF9CUkFDS0VUIDMyOQotI2RlZmluZSBMRUZUX0JS
QUNFIDMzMAotI2RlZmluZSBSSUdIVF9CUkFDRSAzMzEKLSNkZWZpbmUgRE9UIDMzMgotI2RlZmlu
ZSBDT01NQSAzMzMKLSNkZWZpbmUgQ09MT04gMzM0Ci0jZGVmaW5lIEVRVUFMIDMzNQotI2RlZmlu
ZSBTRU1JQ09MT04gMzM2Ci0jZGVmaW5lIEJBTkcgMzM3Ci0jZGVmaW5lIERBU0ggMzM4Ci0jZGVm
aW5lIFRJTERFIDMzOQotI2RlZmluZSBQTFVTIDM0MAotI2RlZmluZSBTVEFSIDM0MQotI2RlZmlu
ZSBTTEFTSCAzNDIKLSNkZWZpbmUgUEVSQ0VOVCAzNDMKLSNkZWZpbmUgTEVGVF9BTkdMRSAzNDQK
LSNkZWZpbmUgUklHSFRfQU5HTEUgMzQ1Ci0jZGVmaW5lIFZFUlRJQ0FMX0JBUiAzNDYKLSNkZWZp
bmUgQ0FSRVQgMzQ3Ci0jZGVmaW5lIEFNUEVSU0FORCAzNDgKLSNkZWZpbmUgUVVFU1RJT04gMzQ5
Ci0KLQotCi0KLSNpZiAhIGRlZmluZWQgWVlTVFlQRSAmJiAhIGRlZmluZWQgWVlTVFlQRV9JU19E
RUNMQVJFRAotdHlwZWRlZiB1bmlvbiBZWVNUWVBFCi0KLXsKLSNkZWZpbmUgWVlMVFlQRSBUU291
cmNlTG9jCi0jZGVmaW5lIFlZTFRZUEVfSVNfREVDTEFSRUQgMQotICAgIHN0cnVjdCB7Ci0gICAg
ICAgIHVuaW9uIHsKLSAgICAgICAgICAgIFRTdHJpbmcgKnN0cmluZzsKLSAgICAgICAgICAgIGZs
b2F0IGY7Ci0gICAgICAgICAgICBpbnQgaTsKLSAgICAgICAgICAgIGJvb2wgYjsKLSAgICAgICAg
fTsKLSAgICAgICAgVFN5bWJvbCogc3ltYm9sOwotICAgIH0gbGV4OwotICAgIHN0cnVjdCB7Ci0g
ICAgICAgIFRPcGVyYXRvciBvcDsKLSAgICAgICAgdW5pb24gewotICAgICAgICAgICAgVEludGVy
bU5vZGUqIGludGVybU5vZGU7Ci0gICAgICAgICAgICBUSW50ZXJtTm9kZVBhaXIgbm9kZVBhaXI7
Ci0gICAgICAgICAgICBUSW50ZXJtVHlwZWQqIGludGVybVR5cGVkTm9kZTsKLSAgICAgICAgICAg
IFRJbnRlcm1BZ2dyZWdhdGUqIGludGVybUFnZ3JlZ2F0ZTsKLSAgICAgICAgfTsKLSAgICAgICAg
dW5pb24gewotICAgICAgICAgICAgVFB1YmxpY1R5cGUgdHlwZTsKLSAgICAgICAgICAgIFRQcmVj
aXNpb24gcHJlY2lzaW9uOwotICAgICAgICAgICAgVFF1YWxpZmllciBxdWFsaWZpZXI7Ci0gICAg
ICAgICAgICBURnVuY3Rpb24qIGZ1bmN0aW9uOwotICAgICAgICAgICAgVFBhcmFtZXRlciBwYXJh
bTsKLSAgICAgICAgICAgIFRGaWVsZCogZmllbGQ7Ci0gICAgICAgICAgICBURmllbGRMaXN0KiBm
aWVsZExpc3Q7Ci0gICAgICAgIH07Ci0gICAgfSBpbnRlcm07Ci19Ci0vKiBMaW5lIDE1Mjkgb2Yg
eWFjYy5jLiAgKi8KLQotCVlZU1RZUEU7Ci0jIGRlZmluZSB5eXN0eXBlIFlZU1RZUEUgLyogb2Jz
b2xlc2NlbnQ7IHdpbGwgYmUgd2l0aGRyYXduICovCi0jIGRlZmluZSBZWVNUWVBFX0lTX0RFQ0xB
UkVEIDEKLSMgZGVmaW5lIFlZU1RZUEVfSVNfVFJJVklBTCAxCi0jZW5kaWYKLQotCi0KLSNpZiAh
IGRlZmluZWQgWVlMVFlQRSAmJiAhIGRlZmluZWQgWVlMVFlQRV9JU19ERUNMQVJFRAotdHlwZWRl
ZiBzdHJ1Y3QgWVlMVFlQRQotewotICBpbnQgZmlyc3RfbGluZTsKLSAgaW50IGZpcnN0X2NvbHVt
bjsKLSAgaW50IGxhc3RfbGluZTsKLSAgaW50IGxhc3RfY29sdW1uOwotfSBZWUxUWVBFOwotIyBk
ZWZpbmUgeXlsdHlwZSBZWUxUWVBFIC8qIG9ic29sZXNjZW50OyB3aWxsIGJlIHdpdGhkcmF3biAq
LwotIyBkZWZpbmUgWVlMVFlQRV9JU19ERUNMQVJFRCAxCi0jIGRlZmluZSBZWUxUWVBFX0lTX1RS
SVZJQUwgMQotI2VuZGlmCi0KLQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207036</attachid>
            <date>2013-07-18 17:03:30 -0700</date>
            <delta_ts>2013-07-19 13:15:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118872-20130718170329.patch</filename>
            <type>text/plain</type>
            <size>21982</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1Mjg3MikKKysrIFNv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEzIEBACisyMDEzLTA3LTE4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQGFwcGxl
LmNvbT4KKworICAgICAgICBBTkdMRSBoYXMgNSBmaWxlcyB0aGF0IGFyZSBnZW5lcmF0ZWQuICBU
aGVzZSBzaG91bGQgZ2VuZXJhdGVkIGFzIHBhcnQgb2YgdGhlIGJ1aWxkIHByb2Nlc3MgdG8gbWFr
ZSB1cGRhdGluZyBlYXNpZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xMTg4NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIEFOR0xFLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IE1hZGUgRGVyaXZl
ZCBTb3VyY2VzIHRhcmdldCB3aGljaCBjYWxscyBEZXJpdmVkU291cmNlcy5tYWtlLCBtb3ZlZCBn
ZW5lcmF0ZWQgZmlsZXMgaW50byBEZXJpdmVkIFNvdXJjZXMgZ3JvdXAuCisgICAgICAgICogRGVy
aXZlZFNvdXJjZXMubWFrZTogQWRkZWQuCisKIDIwMTMtMDctMTggIEFsZXggQ2hyaXN0ZW5zZW4g
IDxhY2hyaXN0ZW5zZW5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZGVkIHByZXZpb3VzbHkgdW5p
bmNsdWRlZCBmaWxlcyBmcm9tIEFOR0xFIHIyNDI2IHdpdGggdGhlc2UgZXhjZXB0aW9uczoKSW5k
ZXg6IFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1RoaXJkUGFydHkvQU5HTEUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNp
b24gMCkKKysrIFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJl
dmlzaW9uIDApCkBAIC0wLDAgKzEsMTMgQEAKK2FsbDogZ2xzbGFuZ19sZXguY3BwIGdsc2xhbmdf
dGFiLmggZ2xzbGFuZ190YWIuY3BwIEV4cHJlc3Npb25QYXJzZXIuY3BwIFRva2VuaXplci5jcHAK
KworZ2xzbGFuZ19sZXguY3BwOiBBTkdMRS9zcmMvY29tcGlsZXIvZ2xzbGFuZy5sCisJZmxleCAt
LW5vbGluZSAtLW5vdW5pc3RkIC0tb3V0ZmlsZT1nbHNsYW5nX2xleC5jcHAgQU5HTEUvc3JjL2Nv
bXBpbGVyL2dsc2xhbmcubAorCitnbHNsYW5nX3RhYi5oIGdsc2xhbmdfdGFiLmNwcDogQU5HTEUv
c3JjL2NvbXBpbGVyL2dsc2xhbmcueQorCWJpc29uIC0tbm8tbGluZXMgLS1za2VsZXRvbj15YWNj
LmMgLS1kZWZpbmVzPWdsc2xhbmdfdGFiLmggLS1vdXRwdXQ9Z2xzbGFuZ190YWIuY3BwIEFOR0xF
L3NyYy9jb21waWxlci9nbHNsYW5nLnkKKworRXhwcmVzc2lvblBhcnNlci5jcHA6IEFOR0xFL3Ny
Yy9jb21waWxlci9wcmVwcm9jZXNzb3IvRXhwcmVzc2lvblBhcnNlci55CisJYmlzb24gLS1uby1s
aW5lcyAtLXNrZWxldG9uPXlhY2MuYyAtLW91dHB1dD1FeHByZXNzaW9uUGFyc2VyLmNwcCBBTkdM
RS9zcmMvY29tcGlsZXIvcHJlcHJvY2Vzc29yL0V4cHJlc3Npb25QYXJzZXIueQorCitUb2tlbml6
ZXIuY3BwOiBBTkdMRS9zcmMvY29tcGlsZXIvcHJlcHJvY2Vzc29yL1Rva2VuaXplci5sCisJZmxl
eCAtLW5vbGluZSAtLW5vdW5pc3RkIC0tb3V0ZmlsZT1Ub2tlbml6ZXIuY3BwIEFOR0xFL3NyYy9j
b21waWxlci9wcmVwcm9jZXNzb3IvVG9rZW5pemVyLmwKSW5kZXg6IFNvdXJjZS9UaGlyZFBhcnR5
L0FOR0xFL0FOR0xFLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1RoaXJkUGFydHkvQU5HTEUvQU5HTEUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2
aXNpb24gMTUyODcwKQorKysgU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQU5HTEUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNiw2ICs2LDIwIEBACiAJb2JqZWN0
VmVyc2lvbiA9IDQ2OwogCW9iamVjdHMgPSB7CiAKKy8qIEJlZ2luIFBCWEFnZ3JlZ2F0ZVRhcmdl
dCBzZWN0aW9uICovCisJCTVDOUQ4MjlCMTc5OEIxQ0QwMDdFMTU4OCAvKiBEZXJpdmVkIFNvdXJj
ZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhBZ2dyZWdhdGVUYXJnZXQ7CisJCQlidWlsZENvbmZpZ3Vy
YXRpb25MaXN0ID0gNUM5RDgyOUMxNzk4QjFDRTAwN0UxNTg4IC8qIEJ1aWxkIGNvbmZpZ3VyYXRp
b24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJEZXJpdmVkIFNvdXJjZXMiICovOworCQkJ
YnVpbGRQaGFzZXMgPSAoCisJCQkJNUM5RDgyQTAxNzk4QjFENjAwN0UxNTg4IC8qIFNoZWxsU2Ny
aXB0ICovLAorCQkJKTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCSk7CisJCQluYW1lID0gIkRl
cml2ZWQgU291cmNlcyI7CisJCQlwcm9kdWN0TmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQl9
OworLyogRW5kIFBCWEFnZ3JlZ2F0ZVRhcmdldCBzZWN0aW9uICovCisKIC8qIEJlZ2luIFBCWEJ1
aWxkRmlsZSBzZWN0aW9uICovCiAJCTMxMkJEQjBDMTVGRUNBQzkwMDk3RUJDNyAvKiBBTkdMRS5w
bGlzdCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEy
QkRCMDkxNUZFQzkxRTAwOTdFQkM3IC8qIEFOR0xFLnBsaXN0ICovOyB9OwogCQkzMTJCREIwRTE1
RkVDQUU1MDA5N0VCQzcgLyogQU5HTEUudHh0IGluIENvcHlGaWxlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAzMTJCREIwQTE1RkVDQTNBMDA5N0VCQzcgLyogQU5HTEUudHh0
ICovOyB9OwpAQCAtMTQsMTIgKzI4LDE0IEBACiAJCTQ5OTUxQzBBMTRCN0FBRDgwMDYwRTk2RSAv
KiBCdWlsdEluRnVuY3Rpb25FbXVsYXRvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDk5NTFDMDYxNEI3QUFEODAwNjBFOTZFIC8qIEJ1aWx0SW5GdW5j
dGlvbkVtdWxhdG9yLmggKi87IH07CiAJCTQ5OTUxQzBCMTRCN0FBRDgwMDYwRTk2RSAvKiBEZXRl
Y3RDYWxsRGVwdGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDk5NTFDMDcxNEI3QUFEODAwNjBFOTZFIC8qIERldGVjdENhbGxEZXB0aC5jcHAgKi87
IH07CiAJCTQ5OTUxQzBDMTRCN0FBRDgwMDYwRTk2RSAvKiBEZXRlY3RDYWxsRGVwdGguaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5OTUxQzA4MTRCN0FB
RDgwMDYwRTk2RSAvKiBEZXRlY3RDYWxsRGVwdGguaCAqLzsgfTsKKwkJNUM5RDgyOTYxNzk4QjFB
MTAwN0UxNTg4IC8qIEV4cHJlc3Npb25QYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM5RDgyOTExNzk4QjFBMTAwN0UxNTg4IC8qIEV4cHJl
c3Npb25QYXJzZXIuY3BwICovOyB9OworCQk1QzlEODI5NzE3OThCMUExMDA3RTE1ODggLyogZ2xz
bGFuZ19sZXguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUM5RDgyOTIxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xhbmdfbGV4LmNwcCAqLzsgfTsKKwkJ
NUM5RDgyOTgxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xhbmdfdGFiLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDOUQ4MjkzMTc5OEIxQTEwMDdFMTU4
OCAvKiBnbHNsYW5nX3RhYi5jcHAgKi87IH07CisJCTVDOUQ4Mjk5MTc5OEIxQTEwMDdFMTU4OCAv
KiBnbHNsYW5nX3RhYi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNUM5RDgyOTQxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xhbmdfdGFiLmggKi87IH07CisJ
CTVDOUQ4MjlBMTc5OEIxQTEwMDdFMTU4OCAvKiBUb2tlbml6ZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM5RDgyOTUxNzk4QjFBMTAwN0UxNTg4
IC8qIFRva2VuaXplci5jcHAgKi87IH07CiAJCTVDQ0VCOEI2MTc5MDhFRUMwMEZEOTQ5NiAvKiBi
dWlsdGluX3N5bWJvbF90YWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1Q0NFQjhCNDE3OTA4RTNBMDBGRDk0OTYgLyogYnVpbHRpbl9zeW1ib2xf
dGFibGUuY3BwICovOyB9OwogCQk5MEQ5QjEwMjEyRTExRENCMDAyRDQyNTUgLyogQ29tcGlsZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTBEOUIw
RjkxMkUxMURDQjAwMkQ0MjU1IC8qIENvbXBpbGVyLmNwcCAqLzsgfTsKIAkJOTBEOUIxMDMxMkUx
MURDQjAwMkQ0MjU1IC8qIEV4dGVuc2lvbkJlaGF2aW9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MEQ5QjBGQTEyRTExRENCMDAyRDQyNTUgLyogRXh0
ZW5zaW9uQmVoYXZpb3IuaCAqLzsgfTsKLQkJOTBEOUIxMDQxMkUxMURDQjAwMkQ0MjU1IC8qIGds
c2xhbmdfbGV4LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkwRDlCMEZCMTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nX2xleC5jcHAgKi87IH07Ci0J
CTkwRDlCMTA1MTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nX3RhYi5jcHAgaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MEQ5QjBGQzEyRTExRENCMDAyRDQy
NTUgLyogZ2xzbGFuZ190YWIuY3BwICovOyB9OwotCQk5MEQ5QjEwNjEyRTExRENCMDAyRDQyNTUg
LyogZ2xzbGFuZ190YWIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkwRDlCMEZEMTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nX3RhYi5oICovOyB9Owog
CQk5MEQ5QjEwNzEyRTExRENCMDAyRDQyNTUgLyogZ2xzbGFuZy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTBEOUIwRkUxMkUxMURDQjAwMkQ0MjU1IC8q
IGdsc2xhbmcuaCAqLzsgfTsKIAkJOTBEOUIxMDkxMkUxMURDQjAwMkQ0MjU1IC8qIFNlYXJjaFN5
bWJvbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MEQ5QjEwMDEyRTExRENCMDAyRDQyNTUgLyogU2VhcmNoU3ltYm9sLmNwcCAqLzsgfTsKIAkJOTBE
OUIxMEExMkUxMURDQjAwMkQ0MjU1IC8qIFNlYXJjaFN5bWJvbC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTBEOUIxMDExMkUxMURDQjAwMkQ0MjU1IC8q
IFNlYXJjaFN5bWJvbC5oICovOyB9OwpAQCAtNDksNyArNjUsNiBAQAogCQlBMjY0RjhBRjE2OTc0
REVEMDA2RkFBNUEgLyogRGlyZWN0aXZlSGFuZGxlckJhc2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEyNjRGODk2MTY5NzRERUQwMDZGQUE1QSAvKiBE
aXJlY3RpdmVIYW5kbGVyQmFzZS5oICovOyB9OwogCQlBMjY0RjhCMDE2OTc0REVEMDA2RkFBNUEg
LyogRGlyZWN0aXZlUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEEyNjRGODk3MTY5NzRERUQwMDZGQUE1QSAvKiBEaXJlY3RpdmVQYXJzZXIu
Y3BwICovOyB9OwogCQlBMjY0RjhCMTE2OTc0REVEMDA2RkFBNUEgLyogRGlyZWN0aXZlUGFyc2Vy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMjY0Rjg5
ODE2OTc0REVEMDA2RkFBNUEgLyogRGlyZWN0aXZlUGFyc2VyLmggKi87IH07Ci0JCUEyNjRGOEIy
MTY5NzRERUQwMDZGQUE1QSAvKiBFeHByZXNzaW9uUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEyNjRGODk5MTY5NzRERUQwMDZGQUE1QSAv
KiBFeHByZXNzaW9uUGFyc2VyLmNwcCAqLzsgfTsKIAkJQTI2NEY4QjMxNjk3NERFRDAwNkZBQTVB
IC8qIEV4cHJlc3Npb25QYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEEyNjRGODlBMTY5NzRERUQwMDZGQUE1QSAvKiBFeHByZXNzaW9uUGFyc2Vy
LmggKi87IH07CiAJCUEyNjRGOEI0MTY5NzRERUQwMDZGQUE1QSAvKiBJbnB1dC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMjY0Rjg5QjE2OTc0REVE
MDA2RkFBNUEgLyogSW5wdXQuY3BwICovOyB9OwogCQlBMjY0RjhCNTE2OTc0REVEMDA2RkFBNUEg
LyogSW5wdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEEyNjRGODlDMTY5NzRERUQwMDZGQUE1QSAvKiBJbnB1dC5oICovOyB9OwpAQCAtNjYsNyArODEs
NiBAQAogCQlBMjY0RjhDMDE2OTc0REVEMDA2RkFBNUEgLyogU291cmNlTG9jYXRpb24uaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEyNjRGOEE3MTY5NzRE
RUQwMDZGQUE1QSAvKiBTb3VyY2VMb2NhdGlvbi5oICovOyB9OwogCQlBMjY0RjhDMTE2OTc0REVE
MDA2RkFBNUEgLyogVG9rZW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTI2NEY4QTgxNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuLmNwcCAqLzsgfTsK
IAkJQTI2NEY4QzIxNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMjY0RjhBOTE2OTc0REVEMDA2RkFBNUEgLyog
VG9rZW4uaCAqLzsgfTsKLQkJQTI2NEY4QzMxNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuaXplci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMjY0RjhB
QTE2OTc0REVEMDA2RkFBNUEgLyogVG9rZW5pemVyLmNwcCAqLzsgfTsKIAkJQTI2NEY4QzQxNjk3
NERFRDAwNkZBQTVBIC8qIFRva2VuaXplci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQTI2NEY4QUIxNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuaXplci5o
ICovOyB9OwogCQlBMjY0RjhDODE2OTc0RTJBMDA2RkFBNUEgLyogSGFzaE5hbWVzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMjY0RjhDNTE2OTc0RTJB
MDA2RkFBNUEgLyogSGFzaE5hbWVzLmggKi87IH07CiAJCUEyNjRGOEM5MTY5NzRFMkEwMDZGQUE1
QSAvKiBWYXJpYWJsZVBhY2tlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBBMjY0RjhDNjE2OTc0RTJBMDA2RkFBNUEgLyogVmFyaWFibGVQYWNrZXIu
Y3BwICovOyB9OwpAQCAtMTExLDYgKzEyNSwxNiBAQAogCQlGQjM5RDc2RTEyMDExMEZDMDAwODhF
NjkgLyogU2hhZGVyTGFuZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gRkIzOUQyQkYxMjAwRjNFNjAwMDg4RTY5IC8qIFNoYWRlckxhbmcuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAvKiBFbmQgUEJYQnVpbGRG
aWxlIHNlY3Rpb24gKi8KIAorLyogQmVnaW4gUEJYQ29udGFpbmVySXRlbVByb3h5IHNlY3Rpb24g
Ki8KKwkJNUM5RDgyQTExNzk4QjFFNjAwN0UxNTg4IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAq
LyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJCWNvbnRhaW5lclBvcnRh
bCA9IEZCMzlEMDcwMTIwMEVEOTIwMDA4OEU2OSAvKiBQcm9qZWN0IG9iamVjdCAqLzsKKwkJCXBy
b3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDVDOUQ4MjlCMTc5OEIxQ0Qw
MDdFMTU4ODsKKwkJCXJlbW90ZUluZm8gPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJfTsKKy8qIEVu
ZCBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLworCiAvKiBCZWdpbiBQQlhDb3B5Rmls
ZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIAkJMzEyQkRCMEIxNUZFQ0FCMDAwOTdFQkM3IC8qIENv
cHlGaWxlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWENvcHlGaWxlc0J1aWxkUGhhc2U7CkBAIC0xNDMs
NiArMTY3LDExIEBACiAJCTQ5OTUxQzA2MTRCN0FBRDgwMDYwRTk2RSAvKiBCdWlsdEluRnVuY3Rp
b25FbXVsYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCdWlsdEluRnVu
Y3Rpb25FbXVsYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0OTk1MUMwNzE0
QjdBQUQ4MDA2MEU5NkUgLyogRGV0ZWN0Q2FsbERlcHRoLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IERldGVjdENhbGxEZXB0aC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQ5OTUxQzA4MTRCN0FBRDgwMDYwRTk2RSAvKiBEZXRlY3RDYWxsRGVwdGgu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV0ZWN0Q2FsbERlcHRoLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDOUQ4MjkxMTc5OEIxQTEwMDdFMTU4OCAvKiBF
eHByZXNzaW9uUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEV4cHJlc3Npb25QYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzlE
ODI5MjE3OThCMUExMDA3RTE1ODggLyogZ2xzbGFuZ19sZXguY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gZ2xzbGFuZ19sZXguY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1QzlEODI5MzE3OThCMUExMDA3RTE1ODggLyogZ2xzbGFuZ190YWIuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gZ2xzbGFuZ190YWIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzlEODI5NDE3OThCMUExMDA3RTE1ODggLyogZ2xz
bGFuZ190YWIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gZ2xzbGFuZ190YWIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM5RDgyOTUxNzk4QjFBMTAwN0UxNTg4
IC8qIFRva2VuaXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBU
b2tlbml6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0NFQjhCNDE3OTA4
RTNBMDBGRDk0OTYgLyogYnVpbHRpbl9zeW1ib2xfdGFibGUuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gYnVpbHRpbl9zeW1ib2xfdGFibGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1Q0NFQjhCNTE3OTA4RTNBMDBGRDk0OTYgLyogYnVpbHRpbl9zeW1ib2xfdGFibGUuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gYnVpbHRpbl9zeW1ib2xfdGFibGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNUQ3QzU5QzUxMjA4QzY4QjAwMUM4NzNFIC8qIEFOR0xFLnhjY29uZmlnICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEFOR0xFLnhjY29uZmlnOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMTUwLDkgKzE3OSw2IEBACiAJCTVEN0M1OUM3MTIwOEM2OEIwMDFD
ODczRSAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBw
YXRoID0gRGVidWdSZWxlYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk5MEQ5QjBGOTEyRTExRENCMDAyRDQyNTUgLyogQ29tcGlsZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29tcGlsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5MEQ5QjBGQTEyRTExRENCMDAyRDQyNTUgLyogRXh0ZW5zaW9uQmVoYXZpb3Iu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXh0ZW5zaW9uQmVoYXZpb3IuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTBEOUIwRkIxMkUxMURDQjAwMkQ0MjU1IC8q
IGdsc2xhbmdfbGV4LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGds
c2xhbmdfbGV4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTBEOUIwRkMxMkUx
MURDQjAwMkQ0MjU1IC8qIGdsc2xhbmdfdGFiLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IGdsc2xhbmdfdGFiLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJOTBEOUIwRkQxMkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xhbmdfdGFiLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGdsc2xhbmdfdGFiLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTkwRDlCMEZFMTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGdsc2xhbmcuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTBEOUIxMDAxMkUxMURDQjAwMkQ0MjU1IC8qIFNlYXJjaFN5bWJvbC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZWFyY2hTeW1ib2wuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MEQ5QjEwMTEyRTExRENCMDAyRDQyNTUgLyogU2Vh
cmNoU3ltYm9sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlYXJjaFN5bWJv
bC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTgyLDcgKzIwOCw2IEBACiAJCUEy
NjRGODk2MTY5NzRERUQwMDZGQUE1QSAvKiBEaXJlY3RpdmVIYW5kbGVyQmFzZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXJlY3RpdmVIYW5kbGVyQmFzZS5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0Rjg5NzE2OTc0REVEMDA2RkFBNUEgLyogRGlyZWN0
aXZlUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERpcmVj
dGl2ZVBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEyNjRGODk4MTY5
NzRERUQwMDZGQUE1QSAvKiBEaXJlY3RpdmVQYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRGlyZWN0aXZlUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUEyNjRGODk5MTY5NzRERUQwMDZGQUE1QSAvKiBFeHByZXNzaW9uUGFyc2VyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4cHJlc3Npb25QYXJzZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0Rjg5QTE2OTc0REVEMDA2RkFBNUEgLyog
RXhwcmVzc2lvblBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFeHBy
ZXNzaW9uUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEyNjRGODlCMTY5
NzRERUQwMDZGQUE1QSAvKiBJbnB1dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBJbnB1dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUEyNjRGODlD
MTY5NzRERUQwMDZGQUE1QSAvKiBJbnB1dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBJbnB1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTk5LDcgKzIyNCw2
IEBACiAJCUEyNjRGOEE3MTY5NzRERUQwMDZGQUE1QSAvKiBTb3VyY2VMb2NhdGlvbi5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VMb2NhdGlvbi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlBMjY0RjhBODE2OTc0REVEMDA2RkFBNUEgLyogVG9rZW4uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVG9rZW4uY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0RjhBOTE2OTc0REVEMDA2RkFBNUEgLyogVG9rZW4u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVG9rZW4uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJQTI2NEY4QUExNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuaXplci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUb2tlbml6ZXIuY3BwOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0RjhBQjE2OTc0REVEMDA2RkFBNUEgLyog
VG9rZW5pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRva2VuaXplci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0RjhDNTE2OTc0RTJBMDA2RkFBNUEg
LyogSGFzaE5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhhc2hOYW1l
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0RjhDNjE2OTc0RTJBMDA2RkFB
NUEgLyogVmFyaWFibGVQYWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gVmFyaWFibGVQYWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
Mjg4LDYgKzMxMiwxOSBAQAogCQkJbmFtZSA9IG1pc2M7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwogCQl9OworCQk1QzlEODI5MDE3OThCMTczMDA3RTE1ODggLyogRGVyaXZlZCBTb3VyY2Vz
ICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1QzlEODI5
MTE3OThCMUExMDA3RTE1ODggLyogRXhwcmVzc2lvblBhcnNlci5jcHAgKi8sCisJCQkJNUM5RDgy
OTIxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xhbmdfbGV4LmNwcCAqLywKKwkJCQk1QzlEODI5MzE3
OThCMUExMDA3RTE1ODggLyogZ2xzbGFuZ190YWIuY3BwICovLAorCQkJCTVDOUQ4Mjk0MTc5OEIx
QTEwMDdFMTU4OCAvKiBnbHNsYW5nX3RhYi5oICovLAorCQkJCTVDOUQ4Mjk1MTc5OEIxQTEwMDdF
MTU4OCAvKiBUb2tlbml6ZXIuY3BwICovLAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3Vy
Y2VzIjsKKwkJCXBhdGggPSBEZXJpdmVkU291cmNlcy9BTkdMRTsKKwkJCXNvdXJjZVRyZWUgPSBC
VUlMVF9QUk9EVUNUU19ESVI7CisJCX07CiAJCTVEN0M1OUM0MTIwOEM2OEIwMDFDODczRSAvKiBD
b25maWd1cmF0aW9ucyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAo
CkBAIC0zNjIsNiArMzk5LDcgQEAKIAkJRkIzOUQwNkUxMjAwRUQ5MjAwMDg4RTY5ID0gewogCQkJ
aXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1QzlEODI5MDE3OThCMTczMDA3
RTE1ODggLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTVEN0M1OUM0MTIwOEM2OEIwMDFDODcz
RSAvKiBDb25maWd1cmF0aW9ucyAqLywKIAkJCQlBMjlCMTVFOTE2OTc4QjdEMDAxMTFEOTcgLyog
aW5jbHVkZSAqLywKIAkJCQkzMTJCREIwNzE1RkVDOEU2MDA5N0VCQzcgLyogbWlzYyAqLywKQEAg
LTQxNCw5ICs0NTIsNiBAQAogCQkJCUEwQUFCRTJBMTNBRkU4MTAwMEYyRUJEMSAvKiBGb3JMb29w
VW5yb2xsLmNwcCAqLywKIAkJCQlBMEFBQkUyQjEzQUZFODEwMDBGMkVCRDEgLyogRm9yTG9vcFVu
cm9sbC5oICovLAogCQkJCTkwRDlCMEZFMTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nLmggKi8s
Ci0JCQkJOTBEOUIwRkIxMkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xhbmdfbGV4LmNwcCAqLywKLQkJ
CQk5MEQ5QjBGQzEyRTExRENCMDAyRDQyNTUgLyogZ2xzbGFuZ190YWIuY3BwICovLAotCQkJCTkw
RDlCMEZEMTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nX3RhYi5oICovLAogCQkJCUEyNjRGOEM1
MTY5NzRFMkEwMDZGQUE1QSAvKiBIYXNoTmFtZXMuaCAqLywKIAkJCQlGQjM5RDIyQTEyMDBGMzVB
MDAwODhFNjkgLyogSW5mb1NpbmsuY3BwICovLAogCQkJCUZCMzlEMjJCMTIwMEYzNUEwMDA4OEU2
OSAvKiBJbmZvU2luay5oICovLApAQCAtNDkwLDcgKzUyNSw2IEBACiAJCQkJQTI2NEY4OTYxNjk3
NERFRDAwNkZBQTVBIC8qIERpcmVjdGl2ZUhhbmRsZXJCYXNlLmggKi8sCiAJCQkJQTI2NEY4OTcx
Njk3NERFRDAwNkZBQTVBIC8qIERpcmVjdGl2ZVBhcnNlci5jcHAgKi8sCiAJCQkJQTI2NEY4OTgx
Njk3NERFRDAwNkZBQTVBIC8qIERpcmVjdGl2ZVBhcnNlci5oICovLAotCQkJCUEyNjRGODk5MTY5
NzRERUQwMDZGQUE1QSAvKiBFeHByZXNzaW9uUGFyc2VyLmNwcCAqLywKIAkJCQlBMjY0Rjg5QTE2
OTc0REVEMDA2RkFBNUEgLyogRXhwcmVzc2lvblBhcnNlci5oICovLAogCQkJCUEyNjRGODlCMTY5
NzRERUQwMDZGQUE1QSAvKiBJbnB1dC5jcHAgKi8sCiAJCQkJQTI2NEY4OUMxNjk3NERFRDAwNkZB
QTVBIC8qIElucHV0LmggKi8sCkBAIC01MDgsNyArNTQyLDYgQEAKIAkJCQlBMjY0RjhBNzE2OTc0
REVEMDA2RkFBNUEgLyogU291cmNlTG9jYXRpb24uaCAqLywKIAkJCQlBMjY0RjhBODE2OTc0REVE
MDA2RkFBNUEgLyogVG9rZW4uY3BwICovLAogCQkJCUEyNjRGOEE5MTY5NzRERUQwMDZGQUE1QSAv
KiBUb2tlbi5oICovLAotCQkJCUEyNjRGOEFBMTY5NzRERUQwMDZGQUE1QSAvKiBUb2tlbml6ZXIu
Y3BwICovLAogCQkJCUEyNjRGOEFCMTY5NzRERUQwMDZGQUE1QSAvKiBUb2tlbml6ZXIuaCAqLywK
IAkJCSk7CiAJCQlwYXRoID0gcHJlcHJvY2Vzc29yOwpAQCAtNTQ1LDcgKzU3OCw2IEBACiAJCQkJ
OTBEOUIxMDMxMkUxMURDQjAwMkQ0MjU1IC8qIEV4dGVuc2lvbkJlaGF2aW9yLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBMEFBQkUyRDEzQUZFODEwMDBGMkVCRDEgLyogRm9yTG9vcFVucm9sbC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTBEOUIxMDcxMkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xhbmcuaCBp
biBIZWFkZXJzICovLAotCQkJCTkwRDlCMTA2MTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nX3Rh
Yi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTI2NEY4QzgxNjk3NEUyQTAwNkZBQTVBIC8qIEhhc2hO
YW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTI2NEY4QjUxNjk3NERFRDAwNkZBQTVBIC8qIElu
cHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMjY0RjhDRDE2OTc2MkFBMDA2RkFBNUEgLyoga2hy
cGxhdGZvcm0uaCBpbiBIZWFkZXJzICovLApAQCAtNTc0LDYgKzYwNiw3IEBACiAJCQkJOTBEOUIx
MTgxMkUxMURENjAwMkQ0MjU1IC8qIFZhcmlhYmxlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QTI2NEY4Q0ExNjk3NEUyQTAwNkZBQTVBIC8qIFZhcmlhYmxlUGFja2VyLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5MEQ5QjExQTEyRTExREQ2MDAyRDQyNTUgLyogVmVyc2lvbkdMU0wuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTVDOUQ4Mjk5MTc5OEIxQTEwMDdFMTU4OCAvKiBnbHNsYW5nX3RhYi5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CkBAIC01OTMsNiArNjI2LDcgQEAKIAkJCWJ1aWxkUnVsZXMgPSAoCiAJCQkp
OwogCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTVDOUQ4MkEyMTc5OEIxRTYwMDdFMTU4OCAvKiBQ
QlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsKIAkJCW5hbWUgPSBBTkdMRTsKIAkJCXByb2R1
Y3ROYW1lID0gYW5nbGU7CkBAIC02MjIsMTAgKzY1NiwyNyBAQAogCQkJcHJvamVjdFJvb3QgPSAi
IjsKIAkJCXRhcmdldHMgPSAoCiAJCQkJRkIzOUQwRDAxMjAwRjBFMzAwMDg4RTY5IC8qIEFOR0xF
ICovLAorCQkJCTVDOUQ4MjlCMTc5OEIxQ0QwMDdFMTU4OCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8s
CiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFByb2plY3Qgc2VjdGlvbiAqLwogCisvKiBCZWdpbiBQ
QlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2Ugc2VjdGlvbiAqLworCQk1QzlEODJBMDE3OThCMUQ2MDA3
RTE1ODggLyogU2hlbGxTY3JpcHQgKi8gPSB7CisJCQlpc2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxk
UGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJ
CQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJCSk7CisJCQlvdXRwdXRQYXRocyA9ICgKKwkJCSk7
CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKKwkJCXNoZWxsUGF0
aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICJta2RpciAtcCBcIiR7QlVJTFRfUFJPRFVD
VFNfRElSfS9EZXJpdmVkU291cmNlcy9BTkdMRVwiXG5jZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElS
fS9EZXJpdmVkU291cmNlcy9BTkdMRVwiXG5cbi9iaW4vbG4gLXNmaCBcIiR7U1JDUk9PVH1cIiAu
XG5leHBvcnQgQU5HTEU9XCJBTkdMRVwiXG5cbm1ha2UgIC0tbm8tYnVpbHRpbi1ydWxlcyAtZiBc
IkFOR0xFL0Rlcml2ZWRTb3VyY2VzLm1ha2VcIiAtaiBgL3Vzci9zYmluL3N5c2N0bCAtbiBody5h
dmFpbGNwdWAiOworCQl9OworLyogRW5kIFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZSBzZWN0aW9u
ICovCisKIC8qIEJlZ2luIFBCWFNvdXJjZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIAkJRkIzOUQw
Q0UxMjAwRjBFMzAwMDg4RTY5IC8qIFNvdXJjZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhTb3VyY2Vz
QnVpbGRQaGFzZTsKQEAgLTY0NiwxMCArNjk3LDcgQEAKIAkJCQlBMjY1NjdCRDE1OUMyMUIxMDAz
OTg1MzkgLyogRGlyZWN0aXZlSGFuZGxlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMjY0RjhB
RTE2OTc0REVEMDA2RkFBNUEgLyogRGlyZWN0aXZlSGFuZGxlckJhc2UuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTI2NEY4QjAxNjk3NERFRDAwNkZBQTVBIC8qIERpcmVjdGl2ZVBhcnNlci5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQlBMjY0RjhCMjE2OTc0REVEMDA2RkFBNUEgLyogRXhwcmVzc2lv
blBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMEFBQkUyQzEzQUZFODEwMDBGMkVCRDEg
LyogRm9yTG9vcFVucm9sbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5MEQ5QjEwNDEyRTExRENC
MDAyRDQyNTUgLyogZ2xzbGFuZ19sZXguY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTBEOUIxMDUx
MkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xhbmdfdGFiLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZC
MzlEMjc5MTIwMEYzNUEwMDA4OEU2OSAvKiBJbmZvU2luay5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlGQjM5RDI3QjEyMDBGMzVBMDAwODhFNjkgLyogSW5pdGlhbGl6ZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlGQjM5RDI3RDEyMDBGMzVBMDAwODhFNjkgLyogSW5pdGlhbGl6ZURsbC5jcHAgaW4g
U291cmNlcyAqLywKQEAgLTY3OSw3ICs3MjcsNiBAQAogCQkJCUZCMzlEMkE4MTIwMEYzNUEwMDA4
OEU2OSAvKiBTaGFkZXJMYW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZCMzlEMkFBMTIwMEYz
NUEwMDA4OEU2OSAvKiBTeW1ib2xUYWJsZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMjY0RjhD
MTE2OTc0REVEMDA2RkFBNUEgLyogVG9rZW4uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTI2NEY4
QzMxNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuaXplci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
MEFBQkU0ODEzQUZFOTYxMDBGMkVCRDEgLyogVHJhbnNsYXRvckVTU0wuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJRkIzOUQyQUMxMjAwRjM1QTAwMDg4RTY5IC8qIFRyYW5zbGF0b3JHTFNMLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCTkwRDlCMTEzMTJFMTFERDYwMDJENDI1NSAvKiB1dGlsLmNwcCBp
biBTb3VyY2VzICovLApAQCAtNjg3LDEyICs3MzQsNDUgQEAKIAkJCQk5MEQ5QjExNzEyRTExREQ2
MDAyRDQyNTUgLyogVmFyaWFibGVJbmZvLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEyNjRGOEM5
MTY5NzRFMkEwMDZGQUE1QSAvKiBWYXJpYWJsZVBhY2tlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk5MEQ5QjExOTEyRTExREQ2MDAyRDQyNTUgLyogVmVyc2lvbkdMU0wuY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNUM5RDgyOTYxNzk4QjFBMTAwN0UxNTg4IC8qIEV4cHJlc3Npb25QYXJzZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJNUM5RDgyOTcxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xhbmdf
bGV4LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTVDOUQ4Mjk4MTc5OEIxQTEwMDdFMTU4OCAvKiBn
bHNsYW5nX3RhYi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1QzlEODI5QTE3OThCMUExMDA3RTE1
ODggLyogVG9rZW5pemVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JE
ZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwogLyogRW5kIFBCWFNvdXJjZXNCdWls
ZFBoYXNlIHNlY3Rpb24gKi8KIAorLyogQmVnaW4gUEJYVGFyZ2V0RGVwZW5kZW5jeSBzZWN0aW9u
ICovCisJCTVDOUQ4MkEyMTc5OEIxRTYwMDdFMTU4OCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICov
ID0geworCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRhcmdldCA9IDVDOUQ4MjlC
MTc5OEIxQ0QwMDdFMTU4OCAvKiBEZXJpdmVkIFNvdXJjZXMgKi87CisJCQl0YXJnZXRQcm94eSA9
IDVDOUQ4MkExMTc5OEIxRTYwMDdFMTU4OCAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi87CisJ
CX07CisvKiBFbmQgUEJYVGFyZ2V0RGVwZW5kZW5jeSBzZWN0aW9uICovCisKIC8qIEJlZ2luIFhD
QnVpbGRDb25maWd1cmF0aW9uIHNlY3Rpb24gKi8KKwkJNUM5RDgyOUQxNzk4QjFDRTAwN0UxNTg4
IC8qIERlYnVnICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQlidWls
ZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9
OworCQkJbmFtZSA9IERlYnVnOworCQl9OworCQk1QzlEODI5RTE3OThCMUNFMDA3RTE1ODggLyog
UmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYnVpbGRT
ZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsK
KwkJCW5hbWUgPSBSZWxlYXNlOworCQl9OworCQk1QzlEODI5RjE3OThCMUNFMDA3RTE1ODggLyog
UHJvZHVjdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOworCQkJYnVp
bGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJ
fTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQk1RDdDNTlEQjEyMDhDNkMzMDAxQzg3
M0UgLyogUHJvZHVjdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwog
CQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDdDNTlDNjEyMDhDNjhCMDAxQzg3M0Ug
LyogQmFzZS54Y2NvbmZpZyAqLzsKQEAgLTczOSw2ICs4MTksMTYgQEAKIC8qIEVuZCBYQ0J1aWxk
Q29uZmlndXJhdGlvbiBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFhDQ29uZmlndXJhdGlvbkxpc3Qg
c2VjdGlvbiAqLworCQk1QzlEODI5QzE3OThCMUNFMDA3RTE1ODggLyogQnVpbGQgY29uZmlndXJh
dGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi8gPSB7
CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9
ICgKKwkJCQk1QzlEODI5RDE3OThCMUNFMDA3RTE1ODggLyogRGVidWcgKi8sCisJCQkJNUM5RDgy
OUUxNzk4QjFDRTAwN0UxNTg4IC8qIFJlbGVhc2UgKi8sCisJCQkJNUM5RDgyOUYxNzk4QjFDRTAw
N0UxNTg4IC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25J
c1Zpc2libGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsK
KwkJfTsKIAkJRkIzOUQwNzMxMjAwRUQ5MjAwMDg4RTY5IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24g
bGlzdCBmb3IgUEJYUHJvamVjdCAiQU5HTEUiICovID0gewogCQkJaXNhID0gWENDb25maWd1cmF0
aW9uTGlzdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207139</attachid>
            <date>2013-07-19 13:15:05 -0700</date>
            <delta_ts>2013-07-19 13:27:59 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118872-20130719131504.patch</filename>
            <type>text/plain</type>
            <size>21826</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MjkyMikKKysrIFNv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEzIEBACisyMDEzLTA3LTE5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQGFwcGxl
LmNvbT4KKworICAgICAgICBHZW5lcmF0ZSBkZXJpdmVkIGZpbGVzIGluIEFOR0xFIGF0IGJ1aWxk
IHRpbWUgcmF0aGVyIHRoYW4gd2hlbiB1cGRhdGluZyBmcm9tIHVwc3RyZWFtLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4ODcyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBTkdMRS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOiBNYWRlIERlcml2ZWQgU291cmNlcyB0YXJnZXQgd2hpY2ggY2FsbHMg
RGVyaXZlZFNvdXJjZXMubWFrZSwgbW92ZWQgZ2VuZXJhdGVkIGZpbGVzIGludG8gRGVyaXZlZCBT
b3VyY2VzIGdyb3VwLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IEFkZGVkLgorCiAy
MDEzLTA3LTE4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBZGRlZCBwcmV2aW91c2x5IHVuaW5jbHVkZWQgZmlsZXMgZnJvbSBBTkdMRSByMjQy
NiB3aXRoIHRoZXNlIGV4Y2VwdGlvbnM6CkluZGV4OiBTb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9E
ZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjIgQEAK
K1NFQVJDSF9QQVRIID0gJChBTkdMRSkvc3JjL2NvbXBpbGVyICQoQU5HTEUpL3NyYy9jb21waWxl
ci9wcmVwcm9jZXNzb3IKKwordnBhdGggJS5sICQoU0VBUkNIX1BBVEgpCit2cGF0aCAlLnkgJChT
RUFSQ0hfUEFUSCkKKworRkxFWCA9IGZsZXggLS1ub2xpbmUgLS1ub3VuaXN0ZAorQklTT04gPSBi
aXNvbiAtLW5vLWxpbmVzIC0tc2tlbGV0b249eWFjYy5jCisKK2FsbCA6IGdsc2xhbmdfbGV4LmNw
cCBnbHNsYW5nX3RhYi5oIGdsc2xhbmdfdGFiLmNwcCBFeHByZXNzaW9uUGFyc2VyLmNwcCBUb2tl
bml6ZXIuY3BwCisKK2dsc2xhbmdfdGFiJWggZ2xzbGFuZ190YWIlY3BwIDogZ2xzbGFuZy55CisJ
JChldmFsIE9VVFBVVCA9ICQoYmFzZW5hbWUgJEApKQorCSQoQklTT04pIC0tZGVmaW5lcz0kKE9V
VFBVVCkuaCAtLW91dHB1dD0kKE9VVFBVVCkuY3BwICQ8CisKK0V4cHJlc3Npb25QYXJzZXIuY3Bw
IDogRXhwcmVzc2lvblBhcnNlci55CisJJChCSVNPTikgLS1vdXRwdXQ9JEAgJDwKKworZ2xzbGFu
Z19sZXguY3BwIDogZ2xzbGFuZy5sCisJJChGTEVYKSAtLW91dGZpbGU9JEAgJDwKKworVG9rZW5p
emVyLmNwcCA6IFRva2VuaXplci5sCisJJChGTEVYKSAtLW91dGZpbGU9JEAgJDwKSW5kZXg6IFNv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL0FOR0xFLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQU5HTEUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gMTUyOTIyKQorKysgU291cmNlL1RoaXJkUGFydHkvQU5HTEUv
QU5HTEUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtNiw2ICs2
LDIwIEBACiAJb2JqZWN0VmVyc2lvbiA9IDQ2OwogCW9iamVjdHMgPSB7CiAKKy8qIEJlZ2luIFBC
WEFnZ3JlZ2F0ZVRhcmdldCBzZWN0aW9uICovCisJCTVDOUQ4MjlCMTc5OEIxQ0QwMDdFMTU4OCAv
KiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQQlhBZ2dyZWdhdGVUYXJnZXQ7CisJ
CQlidWlsZENvbmZpZ3VyYXRpb25MaXN0ID0gNUM5RDgyOUMxNzk4QjFDRTAwN0UxNTg4IC8qIEJ1
aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJEZXJpdmVkIFNv
dXJjZXMiICovOworCQkJYnVpbGRQaGFzZXMgPSAoCisJCQkJNUM5RDgyQTAxNzk4QjFENjAwN0Ux
NTg4IC8qIFNoZWxsU2NyaXB0ICovLAorCQkJKTsKKwkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCSk7
CisJCQluYW1lID0gIkRlcml2ZWQgU291cmNlcyI7CisJCQlwcm9kdWN0TmFtZSA9ICJEZXJpdmVk
IFNvdXJjZXMiOworCQl9OworLyogRW5kIFBCWEFnZ3JlZ2F0ZVRhcmdldCBzZWN0aW9uICovCisK
IC8qIEJlZ2luIFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAJCTMxMkJEQjBDMTVGRUNBQzkwMDk3
RUJDNyAvKiBBTkdMRS5wbGlzdCBpbiBDb3B5RmlsZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gMzEyQkRCMDkxNUZFQzkxRTAwOTdFQkM3IC8qIEFOR0xFLnBsaXN0ICovOyB9
OwogCQkzMTJCREIwRTE1RkVDQUU1MDA5N0VCQzcgLyogQU5HTEUudHh0IGluIENvcHlGaWxlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTJCREIwQTE1RkVDQTNBMDA5N0VC
QzcgLyogQU5HTEUudHh0ICovOyB9OwpAQCAtMTQsMTIgKzI4LDE0IEBACiAJCTQ5OTUxQzBBMTRC
N0FBRDgwMDYwRTk2RSAvKiBCdWlsdEluRnVuY3Rpb25FbXVsYXRvci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk5NTFDMDYxNEI3QUFEODAwNjBFOTZF
IC8qIEJ1aWx0SW5GdW5jdGlvbkVtdWxhdG9yLmggKi87IH07CiAJCTQ5OTUxQzBCMTRCN0FBRDgw
MDYwRTk2RSAvKiBEZXRlY3RDYWxsRGVwdGguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDk5NTFDMDcxNEI3QUFEODAwNjBFOTZFIC8qIERldGVjdENh
bGxEZXB0aC5jcHAgKi87IH07CiAJCTQ5OTUxQzBDMTRCN0FBRDgwMDYwRTk2RSAvKiBEZXRlY3RD
YWxsRGVwdGguaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQ5OTUxQzA4MTRCN0FBRDgwMDYwRTk2RSAvKiBEZXRlY3RDYWxsRGVwdGguaCAqLzsgfTsKKwkJ
NUM5RDgyOTYxNzk4QjFBMTAwN0UxNTg4IC8qIEV4cHJlc3Npb25QYXJzZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM5RDgyOTExNzk4QjFBMTAw
N0UxNTg4IC8qIEV4cHJlc3Npb25QYXJzZXIuY3BwICovOyB9OworCQk1QzlEODI5NzE3OThCMUEx
MDA3RTE1ODggLyogZ2xzbGFuZ19sZXguY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNUM5RDgyOTIxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xhbmdfbGV4
LmNwcCAqLzsgfTsKKwkJNUM5RDgyOTgxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xhbmdfdGFiLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDOUQ4Mjkz
MTc5OEIxQTEwMDdFMTU4OCAvKiBnbHNsYW5nX3RhYi5jcHAgKi87IH07CisJCTVDOUQ4Mjk5MTc5
OEIxQTEwMDdFMTU4OCAvKiBnbHNsYW5nX3RhYi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNUM5RDgyOTQxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xhbmdf
dGFiLmggKi87IH07CisJCTVDOUQ4MjlBMTc5OEIxQTEwMDdFMTU4OCAvKiBUb2tlbml6ZXIuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM5RDgyOTUx
Nzk4QjFBMTAwN0UxNTg4IC8qIFRva2VuaXplci5jcHAgKi87IH07CiAJCTVDQ0VCOEI2MTc5MDhF
RUMwMEZEOTQ5NiAvKiBidWlsdGluX3N5bWJvbF90YWJsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0NFQjhCNDE3OTA4RTNBMDBGRDk0OTYgLyog
YnVpbHRpbl9zeW1ib2xfdGFibGUuY3BwICovOyB9OwogCQk5MEQ5QjEwMjEyRTExRENCMDAyRDQy
NTUgLyogQ29tcGlsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTBEOUIwRjkxMkUxMURDQjAwMkQ0MjU1IC8qIENvbXBpbGVyLmNwcCAqLzsgfTsK
IAkJOTBEOUIxMDMxMkUxMURDQjAwMkQ0MjU1IC8qIEV4dGVuc2lvbkJlaGF2aW9yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MEQ5QjBGQTEyRTExRENC
MDAyRDQyNTUgLyogRXh0ZW5zaW9uQmVoYXZpb3IuaCAqLzsgfTsKLQkJOTBEOUIxMDQxMkUxMURD
QjAwMkQ0MjU1IC8qIGdsc2xhbmdfbGV4LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDkwRDlCMEZCMTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nX2xl
eC5jcHAgKi87IH07Ci0JCTkwRDlCMTA1MTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nX3RhYi5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MEQ5QjBG
QzEyRTExRENCMDAyRDQyNTUgLyogZ2xzbGFuZ190YWIuY3BwICovOyB9OwotCQk5MEQ5QjEwNjEy
RTExRENCMDAyRDQyNTUgLyogZ2xzbGFuZ190YWIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwRDlCMEZEMTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5n
X3RhYi5oICovOyB9OwogCQk5MEQ5QjEwNzEyRTExRENCMDAyRDQyNTUgLyogZ2xzbGFuZy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTBEOUIwRkUxMkUx
MURDQjAwMkQ0MjU1IC8qIGdsc2xhbmcuaCAqLzsgfTsKIAkJOTBEOUIxMDkxMkUxMURDQjAwMkQ0
MjU1IC8qIFNlYXJjaFN5bWJvbC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MEQ5QjEwMDEyRTExRENCMDAyRDQyNTUgLyogU2VhcmNoU3ltYm9sLmNw
cCAqLzsgfTsKIAkJOTBEOUIxMEExMkUxMURDQjAwMkQ0MjU1IC8qIFNlYXJjaFN5bWJvbC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTBEOUIxMDExMkUx
MURDQjAwMkQ0MjU1IC8qIFNlYXJjaFN5bWJvbC5oICovOyB9OwpAQCAtNDksNyArNjUsNiBAQAog
CQlBMjY0RjhBRjE2OTc0REVEMDA2RkFBNUEgLyogRGlyZWN0aXZlSGFuZGxlckJhc2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEyNjRGODk2MTY5NzRE
RUQwMDZGQUE1QSAvKiBEaXJlY3RpdmVIYW5kbGVyQmFzZS5oICovOyB9OwogCQlBMjY0RjhCMDE2
OTc0REVEMDA2RkFBNUEgLyogRGlyZWN0aXZlUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEyNjRGODk3MTY5NzRERUQwMDZGQUE1QSAvKiBE
aXJlY3RpdmVQYXJzZXIuY3BwICovOyB9OwogCQlBMjY0RjhCMTE2OTc0REVEMDA2RkFBNUEgLyog
RGlyZWN0aXZlUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBMjY0Rjg5ODE2OTc0REVEMDA2RkFBNUEgLyogRGlyZWN0aXZlUGFyc2VyLmggKi87
IH07Ci0JCUEyNjRGOEIyMTY5NzRERUQwMDZGQUE1QSAvKiBFeHByZXNzaW9uUGFyc2VyLmNwcCBp
biBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEyNjRGODk5MTY5
NzRERUQwMDZGQUE1QSAvKiBFeHByZXNzaW9uUGFyc2VyLmNwcCAqLzsgfTsKIAkJQTI2NEY4QjMx
Njk3NERFRDAwNkZBQTVBIC8qIEV4cHJlc3Npb25QYXJzZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEyNjRGODlBMTY5NzRERUQwMDZGQUE1QSAvKiBF
eHByZXNzaW9uUGFyc2VyLmggKi87IH07CiAJCUEyNjRGOEI0MTY5NzRERUQwMDZGQUE1QSAvKiBJ
bnB1dC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
MjY0Rjg5QjE2OTc0REVEMDA2RkFBNUEgLyogSW5wdXQuY3BwICovOyB9OwogCQlBMjY0RjhCNTE2
OTc0REVEMDA2RkFBNUEgLyogSW5wdXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEEyNjRGODlDMTY5NzRERUQwMDZGQUE1QSAvKiBJbnB1dC5oICovOyB9
OwpAQCAtNjYsNyArODEsNiBAQAogCQlBMjY0RjhDMDE2OTc0REVEMDA2RkFBNUEgLyogU291cmNl
TG9jYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEEyNjRGOEE3MTY5NzRERUQwMDZGQUE1QSAvKiBTb3VyY2VMb2NhdGlvbi5oICovOyB9OwogCQlB
MjY0RjhDMTE2OTc0REVEMDA2RkFBNUEgLyogVG9rZW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTI2NEY4QTgxNjk3NERFRDAwNkZBQTVBIC8qIFRv
a2VuLmNwcCAqLzsgfTsKIAkJQTI2NEY4QzIxNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMjY0RjhBOTE2OTc0
REVEMDA2RkFBNUEgLyogVG9rZW4uaCAqLzsgfTsKLQkJQTI2NEY4QzMxNjk3NERFRDAwNkZBQTVB
IC8qIFRva2VuaXplci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBMjY0RjhBQTE2OTc0REVEMDA2RkFBNUEgLyogVG9rZW5pemVyLmNwcCAqLzsgfTsK
IAkJQTI2NEY4QzQxNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuaXplci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTI2NEY4QUIxNjk3NERFRDAwNkZBQTVB
IC8qIFRva2VuaXplci5oICovOyB9OwogCQlBMjY0RjhDODE2OTc0RTJBMDA2RkFBNUEgLyogSGFz
aE5hbWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
MjY0RjhDNTE2OTc0RTJBMDA2RkFBNUEgLyogSGFzaE5hbWVzLmggKi87IH07CiAJCUEyNjRGOEM5
MTY5NzRFMkEwMDZGQUE1QSAvKiBWYXJpYWJsZVBhY2tlci5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMjY0RjhDNjE2OTc0RTJBMDA2RkFBNUEgLyog
VmFyaWFibGVQYWNrZXIuY3BwICovOyB9OwpAQCAtMTExLDYgKzEyNSwxNiBAQAogCQlGQjM5RDc2
RTEyMDExMEZDMDAwODhFNjkgLyogU2hhZGVyTGFuZy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRkIzOUQyQkYxMjAwRjNFNjAwMDg4RTY5IC8qIFNoYWRl
ckxhbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CiAv
KiBFbmQgUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8KIAorLyogQmVnaW4gUEJYQ29udGFpbmVySXRl
bVByb3h5IHNlY3Rpb24gKi8KKwkJNUM5RDgyQTExNzk4QjFFNjAwN0UxNTg4IC8qIFBCWENvbnRh
aW5lckl0ZW1Qcm94eSAqLyA9IHsKKwkJCWlzYSA9IFBCWENvbnRhaW5lckl0ZW1Qcm94eTsKKwkJ
CWNvbnRhaW5lclBvcnRhbCA9IEZCMzlEMDcwMTIwMEVEOTIwMDA4OEU2OSAvKiBQcm9qZWN0IG9i
amVjdCAqLzsKKwkJCXByb3h5VHlwZSA9IDE7CisJCQlyZW1vdGVHbG9iYWxJRFN0cmluZyA9IDVD
OUQ4MjlCMTc5OEIxQ0QwMDdFMTU4ODsKKwkJCXJlbW90ZUluZm8gPSAiRGVyaXZlZCBTb3VyY2Vz
IjsKKwkJfTsKKy8qIEVuZCBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLworCiAvKiBC
ZWdpbiBQQlhDb3B5RmlsZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIAkJMzEyQkRCMEIxNUZFQ0FC
MDAwOTdFQkM3IC8qIENvcHlGaWxlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWENvcHlGaWxlc0J1aWxk
UGhhc2U7CkBAIC0xNDMsNiArMTY3LDExIEBACiAJCTQ5OTUxQzA2MTRCN0FBRDgwMDYwRTk2RSAv
KiBCdWlsdEluRnVuY3Rpb25FbXVsYXRvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBCdWlsdEluRnVuY3Rpb25FbXVsYXRvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0OTk1MUMwNzE0QjdBQUQ4MDA2MEU5NkUgLyogRGV0ZWN0Q2FsbERlcHRoLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IERldGVjdENhbGxEZXB0aC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5OTUxQzA4MTRCN0FBRDgwMDYwRTk2RSAvKiBE
ZXRlY3RDYWxsRGVwdGguaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGV0ZWN0
Q2FsbERlcHRoLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDOUQ4MjkxMTc5OEIx
QTEwMDdFMTU4OCAvKiBFeHByZXNzaW9uUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEV4cHJlc3Npb25QYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1QzlEODI5MjE3OThCMUExMDA3RTE1ODggLyogZ2xzbGFuZ19sZXguY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gZ2xzbGFuZ19sZXguY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzlEODI5MzE3OThCMUExMDA3RTE1ODggLyogZ2xz
bGFuZ190YWIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gZ2xzbGFu
Z190YWIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzlEODI5NDE3OThCMUEx
MDA3RTE1ODggLyogZ2xzbGFuZ190YWIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gZ2xzbGFuZ190YWIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM5RDgyOTUx
Nzk4QjFBMTAwN0UxNTg4IC8qIFRva2VuaXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBUb2tlbml6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk1Q0NFQjhCNDE3OTA4RTNBMDBGRDk0OTYgLyogYnVpbHRpbl9zeW1ib2xfdGFibGUuY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gYnVpbHRpbl9zeW1ib2xfdGFibGUuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1Q0NFQjhCNTE3OTA4RTNBMDBGRDk0OTYgLyogYnVpbHRpbl9zeW1i
b2xfdGFibGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gYnVpbHRpbl9zeW1ib2xfdGFibGUuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUQ3QzU5QzUxMjA4QzY4QjAwMUM4NzNFIC8qIEFOR0xF
LnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEFOR0xFLnhjY29uZmln
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTUwLDkgKzE3OSw2IEBACiAJCTVEN0M1
OUM3MTIwOEM2OEIwMDFDODczRSAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0LnhjY29uZmlnOyBwYXRoID0gRGVidWdSZWxlYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5MEQ5QjBGOTEyRTExRENCMDAyRDQyNTUgLyogQ29tcGlsZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29tcGlsZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MEQ5QjBGQTEyRTExRENCMDAyRDQyNTUgLyogRXh0
ZW5zaW9uQmVoYXZpb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXh0ZW5z
aW9uQmVoYXZpb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTBEOUIwRkIxMkUx
MURDQjAwMkQ0MjU1IC8qIGdsc2xhbmdfbGV4LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IGdsc2xhbmdfbGV4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
LQkJOTBEOUIwRkMxMkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xhbmdfdGFiLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGdsc2xhbmdfdGFiLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKLQkJOTBEOUIwRkQxMkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xhbmdfdGFi
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGdsc2xhbmdfdGFiLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwRDlCMEZFMTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNs
YW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGdsc2xhbmcuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTBEOUIxMDAxMkUxMURDQjAwMkQ0MjU1IC8qIFNlYXJj
aFN5bWJvbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZWFyY2hT
eW1ib2wuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MEQ5QjEwMTEyRTExRENC
MDAyRDQyNTUgLyogU2VhcmNoU3ltYm9sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNlYXJjaFN5bWJvbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTgyLDcg
KzIwOCw2IEBACiAJCUEyNjRGODk2MTY5NzRERUQwMDZGQUE1QSAvKiBEaXJlY3RpdmVIYW5kbGVy
QmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXJlY3RpdmVIYW5kbGVy
QmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0Rjg5NzE2OTc0REVEMDA2
RkFBNUEgLyogRGlyZWN0aXZlUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IERpcmVjdGl2ZVBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUEyNjRGODk4MTY5NzRERUQwMDZGQUE1QSAvKiBEaXJlY3RpdmVQYXJzZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlyZWN0aXZlUGFyc2VyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUEyNjRGODk5MTY5NzRERUQwMDZGQUE1QSAvKiBFeHByZXNzaW9u
UGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4cHJlc3Np
b25QYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0Rjg5QTE2OTc0
REVEMDA2RkFBNUEgLyogRXhwcmVzc2lvblBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBFeHByZXNzaW9uUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUEyNjRGODlCMTY5NzRERUQwMDZGQUE1QSAvKiBJbnB1dC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnB1dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUEyNjRGODlDMTY5NzRERUQwMDZGQUE1QSAvKiBJbnB1dC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBJbnB1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtMTk5LDcgKzIyNCw2IEBACiAJCUEyNjRGOEE3MTY5NzRERUQwMDZGQUE1QSAvKiBTb3VyY2VM
b2NhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VMb2NhdGlv
bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0RjhBODE2OTc0REVEMDA2RkFB
NUEgLyogVG9rZW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVG9r
ZW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0RjhBOTE2OTc0REVEMDA2
RkFBNUEgLyogVG9rZW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVG9rZW4u
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTI2NEY4QUExNjk3NERFRDAwNkZBQTVB
IC8qIFRva2VuaXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBU
b2tlbml6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0RjhBQjE2OTc0
REVEMDA2RkFBNUEgLyogVG9rZW5pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFRva2VuaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0RjhDNTE2
OTc0RTJBMDA2RkFBNUEgLyogSGFzaE5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEhhc2hOYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0RjhD
NjE2OTc0RTJBMDA2RkFBNUEgLyogVmFyaWFibGVQYWNrZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gVmFyaWFibGVQYWNrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjg4LDYgKzMxMiwxOSBAQAogCQkJbmFtZSA9IG1pc2M7CiAJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk1QzlEODI5MDE3OThCMTczMDA3RTE1ODggLyog
RGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9
ICgKKwkJCQk1QzlEODI5MTE3OThCMUExMDA3RTE1ODggLyogRXhwcmVzc2lvblBhcnNlci5jcHAg
Ki8sCisJCQkJNUM5RDgyOTIxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xhbmdfbGV4LmNwcCAqLywK
KwkJCQk1QzlEODI5MzE3OThCMUExMDA3RTE1ODggLyogZ2xzbGFuZ190YWIuY3BwICovLAorCQkJ
CTVDOUQ4Mjk0MTc5OEIxQTEwMDdFMTU4OCAvKiBnbHNsYW5nX3RhYi5oICovLAorCQkJCTVDOUQ4
Mjk1MTc5OEIxQTEwMDdFMTU4OCAvKiBUb2tlbml6ZXIuY3BwICovLAorCQkJKTsKKwkJCW5hbWUg
PSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJCXBhdGggPSBEZXJpdmVkU291cmNlcy9BTkdMRTsKKwkJ
CXNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7CisJCX07CiAJCTVEN0M1OUM0MTIwOEM2
OEIwMDFDODczRSAvKiBDb25maWd1cmF0aW9ucyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCkBAIC0zNjIsNiArMzk5LDcgQEAKIAkJRkIzOUQwNkUxMjAwRUQ5MjAw
MDg4RTY5ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1QzlE
ODI5MDE3OThCMTczMDA3RTE1ODggLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTVEN0M1OUM0
MTIwOEM2OEIwMDFDODczRSAvKiBDb25maWd1cmF0aW9ucyAqLywKIAkJCQlBMjlCMTVFOTE2OTc4
QjdEMDAxMTFEOTcgLyogaW5jbHVkZSAqLywKIAkJCQkzMTJCREIwNzE1RkVDOEU2MDA5N0VCQzcg
LyogbWlzYyAqLywKQEAgLTQxNCw5ICs0NTIsNiBAQAogCQkJCUEwQUFCRTJBMTNBRkU4MTAwMEYy
RUJEMSAvKiBGb3JMb29wVW5yb2xsLmNwcCAqLywKIAkJCQlBMEFBQkUyQjEzQUZFODEwMDBGMkVC
RDEgLyogRm9yTG9vcFVucm9sbC5oICovLAogCQkJCTkwRDlCMEZFMTJFMTFEQ0IwMDJENDI1NSAv
KiBnbHNsYW5nLmggKi8sCi0JCQkJOTBEOUIwRkIxMkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xhbmdf
bGV4LmNwcCAqLywKLQkJCQk5MEQ5QjBGQzEyRTExRENCMDAyRDQyNTUgLyogZ2xzbGFuZ190YWIu
Y3BwICovLAotCQkJCTkwRDlCMEZEMTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nX3RhYi5oICov
LAogCQkJCUEyNjRGOEM1MTY5NzRFMkEwMDZGQUE1QSAvKiBIYXNoTmFtZXMuaCAqLywKIAkJCQlG
QjM5RDIyQTEyMDBGMzVBMDAwODhFNjkgLyogSW5mb1NpbmsuY3BwICovLAogCQkJCUZCMzlEMjJC
MTIwMEYzNUEwMDA4OEU2OSAvKiBJbmZvU2luay5oICovLApAQCAtNDkwLDcgKzUyNSw2IEBACiAJ
CQkJQTI2NEY4OTYxNjk3NERFRDAwNkZBQTVBIC8qIERpcmVjdGl2ZUhhbmRsZXJCYXNlLmggKi8s
CiAJCQkJQTI2NEY4OTcxNjk3NERFRDAwNkZBQTVBIC8qIERpcmVjdGl2ZVBhcnNlci5jcHAgKi8s
CiAJCQkJQTI2NEY4OTgxNjk3NERFRDAwNkZBQTVBIC8qIERpcmVjdGl2ZVBhcnNlci5oICovLAot
CQkJCUEyNjRGODk5MTY5NzRERUQwMDZGQUE1QSAvKiBFeHByZXNzaW9uUGFyc2VyLmNwcCAqLywK
IAkJCQlBMjY0Rjg5QTE2OTc0REVEMDA2RkFBNUEgLyogRXhwcmVzc2lvblBhcnNlci5oICovLAog
CQkJCUEyNjRGODlCMTY5NzRERUQwMDZGQUE1QSAvKiBJbnB1dC5jcHAgKi8sCiAJCQkJQTI2NEY4
OUMxNjk3NERFRDAwNkZBQTVBIC8qIElucHV0LmggKi8sCkBAIC01MDgsNyArNTQyLDYgQEAKIAkJ
CQlBMjY0RjhBNzE2OTc0REVEMDA2RkFBNUEgLyogU291cmNlTG9jYXRpb24uaCAqLywKIAkJCQlB
MjY0RjhBODE2OTc0REVEMDA2RkFBNUEgLyogVG9rZW4uY3BwICovLAogCQkJCUEyNjRGOEE5MTY5
NzRERUQwMDZGQUE1QSAvKiBUb2tlbi5oICovLAotCQkJCUEyNjRGOEFBMTY5NzRERUQwMDZGQUE1
QSAvKiBUb2tlbml6ZXIuY3BwICovLAogCQkJCUEyNjRGOEFCMTY5NzRERUQwMDZGQUE1QSAvKiBU
b2tlbml6ZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gcHJlcHJvY2Vzc29yOwpAQCAtNTQ1LDcg
KzU3OCw2IEBACiAJCQkJOTBEOUIxMDMxMkUxMURDQjAwMkQ0MjU1IC8qIEV4dGVuc2lvbkJlaGF2
aW9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMEFBQkUyRDEzQUZFODEwMDBGMkVCRDEgLyogRm9y
TG9vcFVucm9sbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTBEOUIxMDcxMkUxMURDQjAwMkQ0MjU1
IC8qIGdsc2xhbmcuaCBpbiBIZWFkZXJzICovLAotCQkJCTkwRDlCMTA2MTJFMTFEQ0IwMDJENDI1
NSAvKiBnbHNsYW5nX3RhYi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTI2NEY4QzgxNjk3NEUyQTAw
NkZBQTVBIC8qIEhhc2hOYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTI2NEY4QjUxNjk3NERF
RDAwNkZBQTVBIC8qIElucHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMjY0RjhDRDE2OTc2MkFB
MDA2RkFBNUEgLyoga2hycGxhdGZvcm0uaCBpbiBIZWFkZXJzICovLApAQCAtNTc0LDYgKzYwNiw3
IEBACiAJCQkJOTBEOUIxMTgxMkUxMURENjAwMkQ0MjU1IC8qIFZhcmlhYmxlSW5mby5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTI2NEY4Q0ExNjk3NEUyQTAwNkZBQTVBIC8qIFZhcmlhYmxlUGFja2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MEQ5QjExQTEyRTExREQ2MDAyRDQyNTUgLyogVmVyc2lv
bkdMU0wuaCBpbiBIZWFkZXJzICovLAorCQkJCTVDOUQ4Mjk5MTc5OEIxQTEwMDdFMTU4OCAvKiBn
bHNsYW5nX3RhYi5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC01OTMsNiArNjI2LDcgQEAKIAkJCWJ1aWxk
UnVsZXMgPSAoCiAJCQkpOwogCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTVDOUQ4MkEyMTc5OEIx
RTYwMDdFMTU4OCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsKIAkJCW5hbWUgPSBB
TkdMRTsKIAkJCXByb2R1Y3ROYW1lID0gYW5nbGU7CkBAIC02MjIsMTAgKzY1NiwyNyBAQAogCQkJ
cHJvamVjdFJvb3QgPSAiIjsKIAkJCXRhcmdldHMgPSAoCiAJCQkJRkIzOUQwRDAxMjAwRjBFMzAw
MDg4RTY5IC8qIEFOR0xFICovLAorCQkJCTVDOUQ4MjlCMTc5OEIxQ0QwMDdFMTU4OCAvKiBEZXJp
dmVkIFNvdXJjZXMgKi8sCiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFByb2plY3Qgc2VjdGlvbiAq
LwogCisvKiBCZWdpbiBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2Ugc2VjdGlvbiAqLworCQk1QzlE
ODJBMDE3OThCMUQ2MDA3RTE1ODggLyogU2hlbGxTY3JpcHQgKi8gPSB7CisJCQlpc2EgPSBQQlhT
aGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3NDgzNjQ3Owor
CQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJCSk7CisJCQlvdXRwdXRQ
YXRocyA9ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0g
MDsKKwkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICJta2RpciAtcCBc
IiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9BTkdMRVwiXG5jZCBcIiR7QlVJ
TFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9BTkdMRVwiXG5cbi9iaW4vbG4gLXNmaCBc
IiR7U1JDUk9PVH1cIiAuXG5leHBvcnQgQU5HTEU9XCJBTkdMRVwiXG5cbm1ha2UgIC0tbm8tYnVp
bHRpbi1ydWxlcyAtZiBcIkFOR0xFL0Rlcml2ZWRTb3VyY2VzLm1ha2VcIiAtaiBgL3Vzci9zYmlu
L3N5c2N0bCAtbiBody5hdmFpbGNwdWAiOworCQl9OworLyogRW5kIFBCWFNoZWxsU2NyaXB0QnVp
bGRQaGFzZSBzZWN0aW9uICovCisKIC8qIEJlZ2luIFBCWFNvdXJjZXNCdWlsZFBoYXNlIHNlY3Rp
b24gKi8KIAkJRkIzOUQwQ0UxMjAwRjBFMzAwMDg4RTY5IC8qIFNvdXJjZXMgKi8gPSB7CiAJCQlp
c2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKQEAgLTY0NiwxMCArNjk3LDcgQEAKIAkJCQlBMjY1
NjdCRDE1OUMyMUIxMDAzOTg1MzkgLyogRGlyZWN0aXZlSGFuZGxlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBMjY0RjhBRTE2OTc0REVEMDA2RkFBNUEgLyogRGlyZWN0aXZlSGFuZGxlckJhc2Uu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTI2NEY4QjAxNjk3NERFRDAwNkZBQTVBIC8qIERpcmVj
dGl2ZVBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBMjY0RjhCMjE2OTc0REVEMDA2RkFB
NUEgLyogRXhwcmVzc2lvblBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMEFBQkUyQzEz
QUZFODEwMDBGMkVCRDEgLyogRm9yTG9vcFVucm9sbC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5
MEQ5QjEwNDEyRTExRENCMDAyRDQyNTUgLyogZ2xzbGFuZ19sZXguY3BwIGluIFNvdXJjZXMgKi8s
Ci0JCQkJOTBEOUIxMDUxMkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xhbmdfdGFiLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUZCMzlEMjc5MTIwMEYzNUEwMDA4OEU2OSAvKiBJbmZvU2luay5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlGQjM5RDI3QjEyMDBGMzVBMDAwODhFNjkgLyogSW5pdGlhbGl6ZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlGQjM5RDI3RDEyMDBGMzVBMDAwODhFNjkgLyogSW5pdGlh
bGl6ZURsbC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTY3OSw3ICs3MjcsNiBAQAogCQkJCUZCMzlE
MkE4MTIwMEYzNUEwMDA4OEU2OSAvKiBTaGFkZXJMYW5nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUZCMzlEMkFBMTIwMEYzNUEwMDA4OEU2OSAvKiBTeW1ib2xUYWJsZS5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlBMjY0RjhDMTE2OTc0REVEMDA2RkFBNUEgLyogVG9rZW4uY3BwIGluIFNvdXJjZXMg
Ki8sCi0JCQkJQTI2NEY4QzMxNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuaXplci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQlBMEFBQkU0ODEzQUZFOTYxMDBGMkVCRDEgLyogVHJhbnNsYXRvckVTU0wu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkIzOUQyQUMxMjAwRjM1QTAwMDg4RTY5IC8qIFRyYW5z
bGF0b3JHTFNMLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkwRDlCMTEzMTJFMTFERDYwMDJENDI1
NSAvKiB1dGlsLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjg3LDEyICs3MzQsNDUgQEAKIAkJCQk5
MEQ5QjExNzEyRTExREQ2MDAyRDQyNTUgLyogVmFyaWFibGVJbmZvLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCUEyNjRGOEM5MTY5NzRFMkEwMDZGQUE1QSAvKiBWYXJpYWJsZVBhY2tlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk5MEQ5QjExOTEyRTExREQ2MDAyRDQyNTUgLyogVmVyc2lvbkdMU0wu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNUM5RDgyOTYxNzk4QjFBMTAwN0UxNTg4IC8qIEV4cHJl
c3Npb25QYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNUM5RDgyOTcxNzk4QjFBMTAwN0Ux
NTg4IC8qIGdsc2xhbmdfbGV4LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTVDOUQ4Mjk4MTc5OEIx
QTEwMDdFMTU4OCAvKiBnbHNsYW5nX3RhYi5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1QzlEODI5
QTE3OThCMUExMDA3RTE1ODggLyogVG9rZW5pemVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJKTsK
IAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwogLyogRW5k
IFBCWFNvdXJjZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIAorLyogQmVnaW4gUEJYVGFyZ2V0RGVw
ZW5kZW5jeSBzZWN0aW9uICovCisJCTVDOUQ4MkEyMTc5OEIxRTYwMDdFMTU4OCAvKiBQQlhUYXJn
ZXREZXBlbmRlbmN5ICovID0geworCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5kZW5jeTsKKwkJCXRh
cmdldCA9IDVDOUQ4MjlCMTc5OEIxQ0QwMDdFMTU4OCAvKiBEZXJpdmVkIFNvdXJjZXMgKi87CisJ
CQl0YXJnZXRQcm94eSA9IDVDOUQ4MkExMTc5OEIxRTYwMDdFMTU4OCAvKiBQQlhDb250YWluZXJJ
dGVtUHJveHkgKi87CisJCX07CisvKiBFbmQgUEJYVGFyZ2V0RGVwZW5kZW5jeSBzZWN0aW9uICov
CisKIC8qIEJlZ2luIFhDQnVpbGRDb25maWd1cmF0aW9uIHNlY3Rpb24gKi8KKwkJNUM5RDgyOUQx
Nzk4QjFDRTAwN0UxNTg4IC8qIERlYnVnICovID0geworCQkJaXNhID0gWENCdWlsZENvbmZpZ3Vy
YXRpb247CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdF
VF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IERlYnVnOworCQl9OworCQk1QzlEODI5RTE3OThC
MUNFMDA3RTE1ODggLyogUmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0
aW9uOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRf
TkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNlOworCQl9OworCQk1QzlEODI5RjE3OThC
MUNFMDA3RTE1ODggLyogUHJvZHVjdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1
cmF0aW9uOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJH
RVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQk1RDdDNTlE
QjEyMDhDNkMzMDAxQzg3M0UgLyogUHJvZHVjdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFhDQnVpbGRD
b25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2UgPSA1RDdDNTlDNjEy
MDhDNjhCMDAxQzg3M0UgLyogQmFzZS54Y2NvbmZpZyAqLzsKQEAgLTczOSw2ICs4MTksMTYgQEAK
IC8qIEVuZCBYQ0J1aWxkQ29uZmlndXJhdGlvbiBzZWN0aW9uICovCiAKIC8qIEJlZ2luIFhDQ29u
ZmlndXJhdGlvbkxpc3Qgc2VjdGlvbiAqLworCQk1QzlEODI5QzE3OThCMUNFMDA3RTE1ODggLyog
QnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQg
U291cmNlcyIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OworCQkJYnVpbGRD
b25maWd1cmF0aW9ucyA9ICgKKwkJCQk1QzlEODI5RDE3OThCMUNFMDA3RTE1ODggLyogRGVidWcg
Ki8sCisJCQkJNUM5RDgyOUUxNzk4QjFDRTAwN0UxNTg4IC8qIFJlbGVhc2UgKi8sCisJCQkJNUM5
RDgyOUYxNzk4QjFDRTAwN0UxNTg4IC8qIFByb2R1Y3Rpb24gKi8sCisJCQkpOworCQkJZGVmYXVs
dENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25OYW1l
ID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJRkIzOUQwNzMxMjAwRUQ5MjAwMDg4RTY5IC8qIEJ1aWxk
IGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiQU5HTEUiICovID0gewogCQkJaXNh
ID0gWENDb25maWd1cmF0aW9uTGlzdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlvbnMgPSAoCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207140</attachid>
            <date>2013-07-19 13:28:02 -0700</date>
            <delta_ts>2013-07-19 14:35:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118872-20130719132802.patch</filename>
            <type>text/plain</type>
            <size>23388</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MjkyMikKKysrIFNv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEzIEBACisyMDEzLTA3LTE5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQGFwcGxl
LmNvbT4KKworICAgICAgICBHZW5lcmF0ZSBkZXJpdmVkIGZpbGVzIGluIEFOR0xFIGF0IGJ1aWxk
IHRpbWUgcmF0aGVyIHRoYW4gd2hlbiB1cGRhdGluZyBmcm9tIHVwc3RyZWFtLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4ODcyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBTkdMRS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOiBNYWRlIERlcml2ZWQgU291cmNlcyB0YXJnZXQgd2hpY2ggY2FsbHMg
RGVyaXZlZFNvdXJjZXMubWFrZSwgbW92ZWQgZ2VuZXJhdGVkIGZpbGVzIGludG8gRGVyaXZlZCBT
b3VyY2VzIGdyb3VwLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IEFkZGVkLgorCiAy
MDEzLTA3LTE4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQGFwcGxlLmNvbT4KIAog
ICAgICAgICBBZGRlZCBwcmV2aW91c2x5IHVuaW5jbHVkZWQgZmlsZXMgZnJvbSBBTkdMRSByMjQy
NiB3aXRoIHRoZXNlIGV4Y2VwdGlvbnM6CkluZGV4OiBTb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9E
ZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xF
L0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDggQEAK
KyMgQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMK
KyMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisjIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworIyBhcmUgbWV0OgorIworIyAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMg
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorIyAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBDb21wdXRlciwgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgorIyAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorIyAgICAgZnJvbSB0aGlz
IHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorIwor
IyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBC
RSBMSUFCTEUgRk9SIEFOWQorIyBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworIyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisjIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorIyBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorIyAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKKyMgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworU0VBUkNIX1BBVEggPSAkKEFOR0xFKS9zcmMvY29tcGls
ZXIgJChBTkdMRSkvc3JjL2NvbXBpbGVyL3ByZXByb2Nlc3NvcgorCit2cGF0aCAlLmwgJChTRUFS
Q0hfUEFUSCkKK3ZwYXRoICUueSAkKFNFQVJDSF9QQVRIKQorCitGTEVYID0gZmxleCAtLW5vbGlu
ZSAtLW5vdW5pc3RkCitCSVNPTiA9IGJpc29uIC0tbm8tbGluZXMgLS1za2VsZXRvbj15YWNjLmMK
KworYWxsIDogZ2xzbGFuZ19sZXguY3BwIGdsc2xhbmdfdGFiLmggZ2xzbGFuZ190YWIuY3BwIEV4
cHJlc3Npb25QYXJzZXIuY3BwIFRva2VuaXplci5jcHAKKworZ2xzbGFuZ190YWIlaCBnbHNsYW5n
X3RhYiVjcHAgOiBnbHNsYW5nLnkKKwkkKGV2YWwgT1VUUFVUID0gJChiYXNlbmFtZSAkQCkpCisJ
JChCSVNPTikgLS1kZWZpbmVzPSQoT1VUUFVUKS5oIC0tb3V0cHV0PSQoT1VUUFVUKS5jcHAgJDwK
KworRXhwcmVzc2lvblBhcnNlci5jcHAgOiBFeHByZXNzaW9uUGFyc2VyLnkKKwkkKEJJU09OKSAt
LW91dHB1dD0kQCAkPAorCitnbHNsYW5nX2xleC5jcHAgOiBnbHNsYW5nLmwKKwkkKEZMRVgpIC0t
b3V0ZmlsZT0kQCAkPAorCitUb2tlbml6ZXIuY3BwIDogVG9rZW5pemVyLmwKKwkkKEZMRVgpIC0t
b3V0ZmlsZT0kQCAkPApJbmRleDogU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQU5HTEUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvVGhpcmRQYXJ0eS9BTkdM
RS9BTkdMRS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNTI5MjIpCisrKyBT
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9BTkdMRS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC02LDYgKzYsMjAgQEAKIAlvYmplY3RWZXJzaW9uID0gNDY7CiAJb2Jq
ZWN0cyA9IHsKIAorLyogQmVnaW4gUEJYQWdncmVnYXRlVGFyZ2V0IHNlY3Rpb24gKi8KKwkJNUM5
RDgyOUIxNzk4QjFDRDAwN0UxNTg4IC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9
IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA1QzlEODI5
QzE3OThCMUNFMDA3RTE1ODggLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dy
ZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgKKwkJ
CQk1QzlEODJBMDE3OThCMUQ2MDA3RTE1ODggLyogU2hlbGxTY3JpcHQgKi8sCisJCQkpOworCQkJ
ZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJ
CXByb2R1Y3ROYW1lID0gIkRlcml2ZWQgU291cmNlcyI7CisJCX07CisvKiBFbmQgUEJYQWdncmVn
YXRlVGFyZ2V0IHNlY3Rpb24gKi8KKwogLyogQmVnaW4gUEJYQnVpbGRGaWxlIHNlY3Rpb24gKi8K
IAkJMzEyQkRCMEMxNUZFQ0FDOTAwOTdFQkM3IC8qIEFOR0xFLnBsaXN0IGluIENvcHlGaWxlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTJCREIwOTE1RkVDOTFFMDA5N0VC
QzcgLyogQU5HTEUucGxpc3QgKi87IH07CiAJCTMxMkJEQjBFMTVGRUNBRTUwMDk3RUJDNyAvKiBB
TkdMRS50eHQgaW4gQ29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDMxMkJEQjBBMTVGRUNBM0EwMDk3RUJDNyAvKiBBTkdMRS50eHQgKi87IH07CkBAIC0xNCwxMiAr
MjgsMTQgQEAKIAkJNDk5NTFDMEExNEI3QUFEODAwNjBFOTZFIC8qIEJ1aWx0SW5GdW5jdGlvbkVt
dWxhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
OTk1MUMwNjE0QjdBQUQ4MDA2MEU5NkUgLyogQnVpbHRJbkZ1bmN0aW9uRW11bGF0b3IuaCAqLzsg
fTsKIAkJNDk5NTFDMEIxNEI3QUFEODAwNjBFOTZFIC8qIERldGVjdENhbGxEZXB0aC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTk1MUMwNzE0QjdB
QUQ4MDA2MEU5NkUgLyogRGV0ZWN0Q2FsbERlcHRoLmNwcCAqLzsgfTsKIAkJNDk5NTFDMEMxNEI3
QUFEODAwNjBFOTZFIC8qIERldGVjdENhbGxEZXB0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDk5NTFDMDgxNEI3QUFEODAwNjBFOTZFIC8qIERldGVj
dENhbGxEZXB0aC5oICovOyB9OworCQk1QzlEODI5NjE3OThCMUExMDA3RTE1ODggLyogRXhwcmVz
c2lvblBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1QzlEODI5MTE3OThCMUExMDA3RTE1ODggLyogRXhwcmVzc2lvblBhcnNlci5jcHAgKi87
IH07CisJCTVDOUQ4Mjk3MTc5OEIxQTEwMDdFMTU4OCAvKiBnbHNsYW5nX2xleC5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzlEODI5MjE3OThCMUEx
MDA3RTE1ODggLyogZ2xzbGFuZ19sZXguY3BwICovOyB9OworCQk1QzlEODI5ODE3OThCMUExMDA3
RTE1ODggLyogZ2xzbGFuZ190YWIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNUM5RDgyOTMxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xhbmdfdGFiLmNw
cCAqLzsgfTsKKwkJNUM5RDgyOTkxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xhbmdfdGFiLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzlEODI5NDE3OThC
MUExMDA3RTE1ODggLyogZ2xzbGFuZ190YWIuaCAqLzsgfTsKKwkJNUM5RDgyOUExNzk4QjFBMTAw
N0UxNTg4IC8qIFRva2VuaXplci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1QzlEODI5NTE3OThCMUExMDA3RTE1ODggLyogVG9rZW5pemVyLmNwcCAq
LzsgfTsKIAkJNUNDRUI4QjYxNzkwOEVFQzAwRkQ5NDk2IC8qIGJ1aWx0aW5fc3ltYm9sX3RhYmxl
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDQ0VC
OEI0MTc5MDhFM0EwMEZEOTQ5NiAvKiBidWlsdGluX3N5bWJvbF90YWJsZS5jcHAgKi87IH07CiAJ
CTkwRDlCMTAyMTJFMTFEQ0IwMDJENDI1NSAvKiBDb21waWxlci5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MEQ5QjBGOTEyRTExRENCMDAyRDQyNTUg
LyogQ29tcGlsZXIuY3BwICovOyB9OwogCQk5MEQ5QjEwMzEyRTExRENCMDAyRDQyNTUgLyogRXh0
ZW5zaW9uQmVoYXZpb3IuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkwRDlCMEZBMTJFMTFEQ0IwMDJENDI1NSAvKiBFeHRlbnNpb25CZWhhdmlvci5oICov
OyB9OwotCQk5MEQ5QjEwNDEyRTExRENCMDAyRDQyNTUgLyogZ2xzbGFuZ19sZXguY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTBEOUIwRkIxMkUxMURD
QjAwMkQ0MjU1IC8qIGdsc2xhbmdfbGV4LmNwcCAqLzsgfTsKLQkJOTBEOUIxMDUxMkUxMURDQjAw
MkQ0MjU1IC8qIGdsc2xhbmdfdGFiLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkwRDlCMEZDMTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nX3RhYi5j
cHAgKi87IH07Ci0JCTkwRDlCMTA2MTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nX3RhYi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTBEOUIwRkQxMkUx
MURDQjAwMkQ0MjU1IC8qIGdsc2xhbmdfdGFiLmggKi87IH07CiAJCTkwRDlCMTA3MTJFMTFEQ0Iw
MDJENDI1NSAvKiBnbHNsYW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MEQ5QjBGRTEyRTExRENCMDAyRDQyNTUgLyogZ2xzbGFuZy5oICovOyB9Owog
CQk5MEQ5QjEwOTEyRTExRENCMDAyRDQyNTUgLyogU2VhcmNoU3ltYm9sLmNwcCBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwRDlCMTAwMTJFMTFEQ0IwMDJE
NDI1NSAvKiBTZWFyY2hTeW1ib2wuY3BwICovOyB9OwogCQk5MEQ5QjEwQTEyRTExRENCMDAyRDQy
NTUgLyogU2VhcmNoU3ltYm9sLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5MEQ5QjEwMTEyRTExRENCMDAyRDQyNTUgLyogU2VhcmNoU3ltYm9sLmggKi87
IH07CkBAIC00OSw3ICs2NSw2IEBACiAJCUEyNjRGOEFGMTY5NzRERUQwMDZGQUE1QSAvKiBEaXJl
Y3RpdmVIYW5kbGVyQmFzZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQTI2NEY4OTYxNjk3NERFRDAwNkZBQTVBIC8qIERpcmVjdGl2ZUhhbmRsZXJCYXNl
LmggKi87IH07CiAJCUEyNjRGOEIwMTY5NzRERUQwMDZGQUE1QSAvKiBEaXJlY3RpdmVQYXJzZXIu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTI2NEY4
OTcxNjk3NERFRDAwNkZBQTVBIC8qIERpcmVjdGl2ZVBhcnNlci5jcHAgKi87IH07CiAJCUEyNjRG
OEIxMTY5NzRERUQwMDZGQUE1QSAvKiBEaXJlY3RpdmVQYXJzZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEyNjRGODk4MTY5NzRERUQwMDZGQUE1QSAv
KiBEaXJlY3RpdmVQYXJzZXIuaCAqLzsgfTsKLQkJQTI2NEY4QjIxNjk3NERFRDAwNkZBQTVBIC8q
IEV4cHJlc3Npb25QYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQTI2NEY4OTkxNjk3NERFRDAwNkZBQTVBIC8qIEV4cHJlc3Npb25QYXJzZXIu
Y3BwICovOyB9OwogCQlBMjY0RjhCMzE2OTc0REVEMDA2RkFBNUEgLyogRXhwcmVzc2lvblBhcnNl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTI2NEY4
OUExNjk3NERFRDAwNkZBQTVBIC8qIEV4cHJlc3Npb25QYXJzZXIuaCAqLzsgfTsKIAkJQTI2NEY4
QjQxNjk3NERFRDAwNkZBQTVBIC8qIElucHV0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEyNjRGODlCMTY5NzRERUQwMDZGQUE1QSAvKiBJbnB1dC5j
cHAgKi87IH07CiAJCUEyNjRGOEI1MTY5NzRERUQwMDZGQUE1QSAvKiBJbnB1dC5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTI2NEY4OUMxNjk3NERFRDAw
NkZBQTVBIC8qIElucHV0LmggKi87IH07CkBAIC02Niw3ICs4MSw2IEBACiAJCUEyNjRGOEMwMTY5
NzRERUQwMDZGQUE1QSAvKiBTb3VyY2VMb2NhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTI2NEY4QTcxNjk3NERFRDAwNkZBQTVBIC8qIFNvdXJj
ZUxvY2F0aW9uLmggKi87IH07CiAJCUEyNjRGOEMxMTY5NzRERUQwMDZGQUE1QSAvKiBUb2tlbi5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMjY0RjhB
ODE2OTc0REVEMDA2RkFBNUEgLyogVG9rZW4uY3BwICovOyB9OwogCQlBMjY0RjhDMjE2OTc0REVE
MDA2RkFBNUEgLyogVG9rZW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEEyNjRGOEE5MTY5NzRERUQwMDZGQUE1QSAvKiBUb2tlbi5oICovOyB9OwotCQlB
MjY0RjhDMzE2OTc0REVEMDA2RkFBNUEgLyogVG9rZW5pemVyLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEyNjRGOEFBMTY5NzRERUQwMDZGQUE1QSAv
KiBUb2tlbml6ZXIuY3BwICovOyB9OwogCQlBMjY0RjhDNDE2OTc0REVEMDA2RkFBNUEgLyogVG9r
ZW5pemVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBB
MjY0RjhBQjE2OTc0REVEMDA2RkFBNUEgLyogVG9rZW5pemVyLmggKi87IH07CiAJCUEyNjRGOEM4
MTY5NzRFMkEwMDZGQUE1QSAvKiBIYXNoTmFtZXMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEyNjRGOEM1MTY5NzRFMkEwMDZGQUE1QSAvKiBIYXNoTmFt
ZXMuaCAqLzsgfTsKIAkJQTI2NEY4QzkxNjk3NEUyQTAwNkZBQTVBIC8qIFZhcmlhYmxlUGFja2Vy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEyNjRG
OEM2MTY5NzRFMkEwMDZGQUE1QSAvKiBWYXJpYWJsZVBhY2tlci5jcHAgKi87IH07CkBAIC0xMTEs
NiArMTI1LDE2IEBACiAJCUZCMzlENzZFMTIwMTEwRkMwMDA4OEU2OSAvKiBTaGFkZXJMYW5nLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBGQjM5RDJCRjEy
MDBGM0U2MDAwODhFNjkgLyogU2hhZGVyTGFuZy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFB1YmxpYywgKTsgfTsgfTsKIC8qIEVuZCBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCisv
KiBCZWdpbiBQQlhDb250YWluZXJJdGVtUHJveHkgc2VjdGlvbiAqLworCQk1QzlEODJBMTE3OThC
MUU2MDA3RTE1ODggLyogUEJYQ29udGFpbmVySXRlbVByb3h5ICovID0geworCQkJaXNhID0gUEJY
Q29udGFpbmVySXRlbVByb3h5OworCQkJY29udGFpbmVyUG9ydGFsID0gRkIzOUQwNzAxMjAwRUQ5
MjAwMDg4RTY5IC8qIFByb2plY3Qgb2JqZWN0ICovOworCQkJcHJveHlUeXBlID0gMTsKKwkJCXJl
bW90ZUdsb2JhbElEU3RyaW5nID0gNUM5RDgyOUIxNzk4QjFDRDAwN0UxNTg4OworCQkJcmVtb3Rl
SW5mbyA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQl9OworLyogRW5kIFBCWENvbnRhaW5lckl0ZW1Q
cm94eSBzZWN0aW9uICovCisKIC8qIEJlZ2luIFBCWENvcHlGaWxlc0J1aWxkUGhhc2Ugc2VjdGlv
biAqLwogCQkzMTJCREIwQjE1RkVDQUIwMDA5N0VCQzcgLyogQ29weUZpbGVzICovID0gewogCQkJ
aXNhID0gUEJYQ29weUZpbGVzQnVpbGRQaGFzZTsKQEAgLTE0Myw2ICsxNjcsMTEgQEAKIAkJNDk5
NTFDMDYxNEI3QUFEODAwNjBFOTZFIC8qIEJ1aWx0SW5GdW5jdGlvbkVtdWxhdG9yLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJ1aWx0SW5GdW5jdGlvbkVtdWxhdG9yLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQ5OTUxQzA3MTRCN0FBRDgwMDYwRTk2RSAvKiBE
ZXRlY3RDYWxsRGVwdGguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RGV0ZWN0Q2FsbERlcHRoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDk5NTFD
MDgxNEI3QUFEODAwNjBFOTZFIC8qIERldGVjdENhbGxEZXB0aC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBEZXRlY3RDYWxsRGVwdGguaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNUM5RDgyOTExNzk4QjFBMTAwN0UxNTg4IC8qIEV4cHJlc3Npb25QYXJzZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRXhwcmVzc2lvblBhcnNlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDOUQ4MjkyMTc5OEIxQTEwMDdFMTU4
OCAvKiBnbHNsYW5nX2xleC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBnbHNsYW5nX2xleC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDOUQ4Mjkz
MTc5OEIxQTEwMDdFMTU4OCAvKiBnbHNsYW5nX3RhYi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBnbHNsYW5nX3RhYi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCTVDOUQ4Mjk0MTc5OEIxQTEwMDdFMTU4OCAvKiBnbHNsYW5nX3RhYi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBnbHNsYW5nX3RhYi5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1QzlEODI5NTE3OThCMUExMDA3RTE1ODggLyogVG9rZW5pemVyLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRva2VuaXplci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQ0VCOEI0MTc5MDhFM0EwMEZEOTQ5NiAvKiBidWls
dGluX3N5bWJvbF90YWJsZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBidWlsdGluX3N5bWJvbF90
YWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQ0VCOEI1MTc5MDhFM0Ew
MEZEOTQ5NiAvKiBidWlsdGluX3N5bWJvbF90YWJsZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBidWlsdGlu
X3N5bWJvbF90YWJsZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDdDNTlDNTEy
MDhDNjhCMDAxQzg3M0UgLyogQU5HTEUueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmln
OyBwYXRoID0gQU5HTEUueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0x
NTAsOSArMTc5LDYgQEAKIAkJNUQ3QzU5QzcxMjA4QzY4QjAwMUM4NzNFIC8qIERlYnVnUmVsZWFz
ZS54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBEZWJ1Z1JlbGVhc2Uu
eGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwRDlCMEY5MTJFMTFEQ0Iw
MDJENDI1NSAvKiBDb21waWxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBDb21waWxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwRDlCMEZB
MTJFMTFEQ0IwMDJENDI1NSAvKiBFeHRlbnNpb25CZWhhdmlvci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFeHRlbnNpb25CZWhhdmlvci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwotCQk5MEQ5QjBGQjEyRTExRENCMDAyRDQyNTUgLyogZ2xzbGFuZ19sZXguY3BwICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gZ2xzbGFuZ19sZXguY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5MEQ5QjBGQzEyRTExRENCMDAyRDQyNTUgLyogZ2xz
bGFuZ190YWIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gZ2xzbGFu
Z190YWIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5MEQ5QjBGRDEyRTExRENC
MDAyRDQyNTUgLyogZ2xzbGFuZ190YWIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gZ2xzbGFuZ190YWIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTBEOUIwRkUx
MkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xhbmcuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gZ2xzbGFuZy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MEQ5QjEwMDEy
RTExRENCMDAyRDQyNTUgLyogU2VhcmNoU3ltYm9sLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFNlYXJjaFN5bWJvbC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkwRDlCMTAxMTJFMTFEQ0IwMDJENDI1NSAvKiBTZWFyY2hTeW1ib2wuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VhcmNoU3ltYm9sLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CkBAIC0xODIsNyArMjA4LDYgQEAKIAkJQTI2NEY4OTYxNjk3NERFRDAwNkZB
QTVBIC8qIERpcmVjdGl2ZUhhbmRsZXJCYXNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IERpcmVjdGl2ZUhhbmRsZXJCYXNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUEyNjRGODk3MTY5NzRERUQwMDZGQUE1QSAvKiBEaXJlY3RpdmVQYXJzZXIuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRGlyZWN0aXZlUGFyc2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTI2NEY4OTgxNjk3NERFRDAwNkZBQTVBIC8qIERp
cmVjdGl2ZVBhcnNlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXJlY3Rp
dmVQYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTI2NEY4OTkxNjk3NERF
RDAwNkZBQTVBIC8qIEV4cHJlc3Npb25QYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gRXhwcmVzc2lvblBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUEyNjRGODlBMTY5NzRERUQwMDZGQUE1QSAvKiBFeHByZXNzaW9uUGFyc2VyLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4cHJlc3Npb25QYXJzZXIuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTI2NEY4OUIxNjk3NERFRDAwNkZBQTVBIC8qIElu
cHV0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IElucHV0LmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTI2NEY4OUMxNjk3NERFRDAwNkZBQTVBIC8q
IElucHV0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IElucHV0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTksNyArMjI0LDYgQEAKIAkJQTI2NEY4QTcxNjk3
NERFRDAwNkZBQTVBIC8qIFNvdXJjZUxvY2F0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNvdXJjZUxvY2F0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUEyNjRGOEE4MTY5NzRERUQwMDZGQUE1QSAvKiBUb2tlbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBUb2tlbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUEyNjRGOEE5MTY5NzRERUQwMDZGQUE1QSAvKiBUb2tlbi5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBUb2tlbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlB
MjY0RjhBQTE2OTc0REVEMDA2RkFBNUEgLyogVG9rZW5pemVyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRva2VuaXplci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUEyNjRGOEFCMTY5NzRERUQwMDZGQUE1QSAvKiBUb2tlbml6ZXIuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVG9rZW5pemVyLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUEyNjRGOEM1MTY5NzRFMkEwMDZGQUE1QSAvKiBIYXNoTmFtZXMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSGFzaE5hbWVzLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUEyNjRGOEM2MTY5NzRFMkEwMDZGQUE1QSAvKiBWYXJpYWJsZVBhY2tl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBWYXJpYWJsZVBhY2tl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yODgsNiArMzEyLDE5IEBACiAJ
CQluYW1lID0gbWlzYzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTVDOUQ4
MjkwMTc5OEIxNzMwMDdFMTU4OCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8gPSB7CisJCQlpc2EgPSBQ
QlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTVDOUQ4MjkxMTc5OEIxQTEwMDdFMTU4OCAv
KiBFeHByZXNzaW9uUGFyc2VyLmNwcCAqLywKKwkJCQk1QzlEODI5MjE3OThCMUExMDA3RTE1ODgg
LyogZ2xzbGFuZ19sZXguY3BwICovLAorCQkJCTVDOUQ4MjkzMTc5OEIxQTEwMDdFMTU4OCAvKiBn
bHNsYW5nX3RhYi5jcHAgKi8sCisJCQkJNUM5RDgyOTQxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xh
bmdfdGFiLmggKi8sCisJCQkJNUM5RDgyOTUxNzk4QjFBMTAwN0UxNTg4IC8qIFRva2VuaXplci5j
cHAgKi8sCisJCQkpOworCQkJbmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQkJcGF0aCA9IERl
cml2ZWRTb3VyY2VzL0FOR0xFOworCQkJc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsK
KwkJfTsKIAkJNUQ3QzU5QzQxMjA4QzY4QjAwMUM4NzNFIC8qIENvbmZpZ3VyYXRpb25zICovID0g
ewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTM2Miw2ICszOTksNyBA
QAogCQlGQjM5RDA2RTEyMDBFRDkyMDAwODhFNjkgPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKAorCQkJCTVDOUQ4MjkwMTc5OEIxNzMwMDdFMTU4OCAvKiBEZXJpdmVkIFNv
dXJjZXMgKi8sCiAJCQkJNUQ3QzU5QzQxMjA4QzY4QjAwMUM4NzNFIC8qIENvbmZpZ3VyYXRpb25z
ICovLAogCQkJCUEyOUIxNUU5MTY5NzhCN0QwMDExMUQ5NyAvKiBpbmNsdWRlICovLAogCQkJCTMx
MkJEQjA3MTVGRUM4RTYwMDk3RUJDNyAvKiBtaXNjICovLApAQCAtNDE0LDkgKzQ1Miw2IEBACiAJ
CQkJQTBBQUJFMkExM0FGRTgxMDAwRjJFQkQxIC8qIEZvckxvb3BVbnJvbGwuY3BwICovLAogCQkJ
CUEwQUFCRTJCMTNBRkU4MTAwMEYyRUJEMSAvKiBGb3JMb29wVW5yb2xsLmggKi8sCiAJCQkJOTBE
OUIwRkUxMkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xhbmcuaCAqLywKLQkJCQk5MEQ5QjBGQjEyRTEx
RENCMDAyRDQyNTUgLyogZ2xzbGFuZ19sZXguY3BwICovLAotCQkJCTkwRDlCMEZDMTJFMTFEQ0Iw
MDJENDI1NSAvKiBnbHNsYW5nX3RhYi5jcHAgKi8sCi0JCQkJOTBEOUIwRkQxMkUxMURDQjAwMkQ0
MjU1IC8qIGdsc2xhbmdfdGFiLmggKi8sCiAJCQkJQTI2NEY4QzUxNjk3NEUyQTAwNkZBQTVBIC8q
IEhhc2hOYW1lcy5oICovLAogCQkJCUZCMzlEMjJBMTIwMEYzNUEwMDA4OEU2OSAvKiBJbmZvU2lu
ay5jcHAgKi8sCiAJCQkJRkIzOUQyMkIxMjAwRjM1QTAwMDg4RTY5IC8qIEluZm9TaW5rLmggKi8s
CkBAIC00OTAsNyArNTI1LDYgQEAKIAkJCQlBMjY0Rjg5NjE2OTc0REVEMDA2RkFBNUEgLyogRGly
ZWN0aXZlSGFuZGxlckJhc2UuaCAqLywKIAkJCQlBMjY0Rjg5NzE2OTc0REVEMDA2RkFBNUEgLyog
RGlyZWN0aXZlUGFyc2VyLmNwcCAqLywKIAkJCQlBMjY0Rjg5ODE2OTc0REVEMDA2RkFBNUEgLyog
RGlyZWN0aXZlUGFyc2VyLmggKi8sCi0JCQkJQTI2NEY4OTkxNjk3NERFRDAwNkZBQTVBIC8qIEV4
cHJlc3Npb25QYXJzZXIuY3BwICovLAogCQkJCUEyNjRGODlBMTY5NzRERUQwMDZGQUE1QSAvKiBF
eHByZXNzaW9uUGFyc2VyLmggKi8sCiAJCQkJQTI2NEY4OUIxNjk3NERFRDAwNkZBQTVBIC8qIElu
cHV0LmNwcCAqLywKIAkJCQlBMjY0Rjg5QzE2OTc0REVEMDA2RkFBNUEgLyogSW5wdXQuaCAqLywK
QEAgLTUwOCw3ICs1NDIsNiBAQAogCQkJCUEyNjRGOEE3MTY5NzRERUQwMDZGQUE1QSAvKiBTb3Vy
Y2VMb2NhdGlvbi5oICovLAogCQkJCUEyNjRGOEE4MTY5NzRERUQwMDZGQUE1QSAvKiBUb2tlbi5j
cHAgKi8sCiAJCQkJQTI2NEY4QTkxNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuLmggKi8sCi0JCQkJ
QTI2NEY4QUExNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuaXplci5jcHAgKi8sCiAJCQkJQTI2NEY4
QUIxNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuaXplci5oICovLAogCQkJKTsKIAkJCXBhdGggPSBw
cmVwcm9jZXNzb3I7CkBAIC01NDUsNyArNTc4LDYgQEAKIAkJCQk5MEQ5QjEwMzEyRTExRENCMDAy
RDQyNTUgLyogRXh0ZW5zaW9uQmVoYXZpb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCUEwQUFCRTJE
MTNBRkU4MTAwMEYyRUJEMSAvKiBGb3JMb29wVW5yb2xsLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MEQ5QjEwNzEyRTExRENCMDAyRDQyNTUgLyogZ2xzbGFuZy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJ
OTBEOUIxMDYxMkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xhbmdfdGFiLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBMjY0RjhDODE2OTc0RTJBMDA2RkFBNUEgLyogSGFzaE5hbWVzLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBMjY0RjhCNTE2OTc0REVEMDA2RkFBNUEgLyogSW5wdXQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUEyNjRGOENEMTY5NzYyQUEwMDZGQUE1QSAvKiBraHJwbGF0Zm9ybS5oIGluIEhlYWRl
cnMgKi8sCkBAIC01NzQsNiArNjA2LDcgQEAKIAkJCQk5MEQ5QjExODEyRTExREQ2MDAyRDQyNTUg
LyogVmFyaWFibGVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMjY0RjhDQTE2OTc0RTJBMDA2
RkFBNUEgLyogVmFyaWFibGVQYWNrZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkwRDlCMTFBMTJF
MTFERDYwMDJENDI1NSAvKiBWZXJzaW9uR0xTTC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNUM5RDgy
OTkxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xhbmdfdGFiLmggaW4gSGVhZGVycyAqLywKIAkJCSk7
CiAJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKQEAgLTU5
Myw2ICs2MjYsNyBAQAogCQkJYnVpbGRSdWxlcyA9ICgKIAkJCSk7CiAJCQlkZXBlbmRlbmNpZXMg
PSAoCisJCQkJNUM5RDgyQTIxNzk4QjFFNjAwN0UxNTg4IC8qIFBCWFRhcmdldERlcGVuZGVuY3kg
Ki8sCiAJCQkpOwogCQkJbmFtZSA9IEFOR0xFOwogCQkJcHJvZHVjdE5hbWUgPSBhbmdsZTsKQEAg
LTYyMiwxMCArNjU2LDI3IEBACiAJCQlwcm9qZWN0Um9vdCA9ICIiOwogCQkJdGFyZ2V0cyA9ICgK
IAkJCQlGQjM5RDBEMDEyMDBGMEUzMDAwODhFNjkgLyogQU5HTEUgKi8sCisJCQkJNUM5RDgyOUIx
Nzk4QjFDRDAwN0UxNTg4IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCSk7CiAJCX07CiAvKiBF
bmQgUEJYUHJvamVjdCBzZWN0aW9uICovCiAKKy8qIEJlZ2luIFBCWFNoZWxsU2NyaXB0QnVpbGRQ
aGFzZSBzZWN0aW9uICovCisJCTVDOUQ4MkEwMTc5OEIxRDYwMDdFMTU4OCAvKiBTaGVsbFNjcmlw
dCAqLyA9IHsKKwkJCWlzYSA9IFBCWFNoZWxsU2NyaXB0QnVpbGRQaGFzZTsKKwkJCWJ1aWxkQWN0
aW9uTWFzayA9IDIxNDc0ODM2NDc7CisJCQlmaWxlcyA9ICgKKwkJCSk7CisJCQlpbnB1dFBhdGhz
ID0gKAorCQkJKTsKKwkJCW91dHB1dFBhdGhzID0gKAorCQkJKTsKKwkJCXJ1bk9ubHlGb3JEZXBs
b3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOworCQkJc2hlbGxQYXRoID0gL2Jpbi9zaDsKKwkJCXNo
ZWxsU2NyaXB0ID0gIm1rZGlyIC1wIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3Vy
Y2VzL0FOR0xFXCJcbmNkIFwiJHtCVUlMVF9QUk9EVUNUU19ESVJ9L0Rlcml2ZWRTb3VyY2VzL0FO
R0xFXCJcblxuL2Jpbi9sbiAtc2ZoIFwiJHtTUkNST09UfVwiIC5cbmV4cG9ydCBBTkdMRT1cIkFO
R0xFXCJcblxubWFrZSAgLS1uby1idWlsdGluLXJ1bGVzIC1mIFwiQU5HTEUvRGVyaXZlZFNvdXJj
ZXMubWFrZVwiIC1qIGAvdXNyL3NiaW4vc3lzY3RsIC1uIGh3LmF2YWlsY3B1YCI7CisJCX07Cisv
KiBFbmQgUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlIHNlY3Rpb24gKi8KKwogLyogQmVnaW4gUEJY
U291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwogCQlGQjM5RDBDRTEyMDBGMEUzMDAwODhFNjkg
LyogU291cmNlcyAqLyA9IHsKIAkJCWlzYSA9IFBCWFNvdXJjZXNCdWlsZFBoYXNlOwpAQCAtNjQ2
LDEwICs2OTcsNyBAQAogCQkJCUEyNjU2N0JEMTU5QzIxQjEwMDM5ODUzOSAvKiBEaXJlY3RpdmVI
YW5kbGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEyNjRGOEFFMTY5NzRERUQwMDZGQUE1QSAv
KiBEaXJlY3RpdmVIYW5kbGVyQmFzZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBMjY0RjhCMDE2
OTc0REVEMDA2RkFBNUEgLyogRGlyZWN0aXZlUGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CUEyNjRGOEIyMTY5NzRERUQwMDZGQUE1QSAvKiBFeHByZXNzaW9uUGFyc2VyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCUEwQUFCRTJDMTNBRkU4MTAwMEYyRUJEMSAvKiBGb3JMb29wVW5yb2xsLmNw
cCBpbiBTb3VyY2VzICovLAotCQkJCTkwRDlCMTA0MTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5n
X2xleC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5MEQ5QjEwNTEyRTExRENCMDAyRDQyNTUgLyog
Z2xzbGFuZ190YWIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkIzOUQyNzkxMjAwRjM1QTAwMDg4
RTY5IC8qIEluZm9TaW5rLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZCMzlEMjdCMTIwMEYzNUEw
MDA4OEU2OSAvKiBJbml0aWFsaXplLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUZCMzlEMjdEMTIw
MEYzNUEwMDA4OEU2OSAvKiBJbml0aWFsaXplRGxsLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjc5
LDcgKzcyNyw2IEBACiAJCQkJRkIzOUQyQTgxMjAwRjM1QTAwMDg4RTY5IC8qIFNoYWRlckxhbmcu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkIzOUQyQUExMjAwRjM1QTAwMDg4RTY5IC8qIFN5bWJv
bFRhYmxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEyNjRGOEMxMTY5NzRERUQwMDZGQUE1QSAv
KiBUb2tlbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBMjY0RjhDMzE2OTc0REVEMDA2RkFBNUEg
LyogVG9rZW5pemVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUEwQUFCRTQ4MTNBRkU5NjEwMEYy
RUJEMSAvKiBUcmFuc2xhdG9yRVNTTC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQjM5RDJBQzEy
MDBGMzVBMDAwODhFNjkgLyogVHJhbnNsYXRvckdMU0wuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
OTBEOUIxMTMxMkUxMURENjAwMkQ0MjU1IC8qIHV0aWwuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC02
ODcsMTIgKzczNCw0NSBAQAogCQkJCTkwRDlCMTE3MTJFMTFERDYwMDJENDI1NSAvKiBWYXJpYWJs
ZUluZm8uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTI2NEY4QzkxNjk3NEUyQTAwNkZBQTVBIC8q
IFZhcmlhYmxlUGFja2VyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkwRDlCMTE5MTJFMTFERDYw
MDJENDI1NSAvKiBWZXJzaW9uR0xTTC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1QzlEODI5NjE3
OThCMUExMDA3RTE1ODggLyogRXhwcmVzc2lvblBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKKwkJ
CQk1QzlEODI5NzE3OThCMUExMDA3RTE1ODggLyogZ2xzbGFuZ19sZXguY3BwIGluIFNvdXJjZXMg
Ki8sCisJCQkJNUM5RDgyOTgxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xhbmdfdGFiLmNwcCBpbiBT
b3VyY2VzICovLAorCQkJCTVDOUQ4MjlBMTc5OEIxQTEwMDdFMTU4OCAvKiBUb2tlbml6ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vz
c2luZyA9IDA7CiAJCX07CiAvKiBFbmQgUEJYU291cmNlc0J1aWxkUGhhc2Ugc2VjdGlvbiAqLwog
CisvKiBCZWdpbiBQQlhUYXJnZXREZXBlbmRlbmN5IHNlY3Rpb24gKi8KKwkJNUM5RDgyQTIxNzk4
QjFFNjAwN0UxNTg4IC8qIFBCWFRhcmdldERlcGVuZGVuY3kgKi8gPSB7CisJCQlpc2EgPSBQQlhU
YXJnZXREZXBlbmRlbmN5OworCQkJdGFyZ2V0ID0gNUM5RDgyOUIxNzk4QjFDRDAwN0UxNTg4IC8q
IERlcml2ZWQgU291cmNlcyAqLzsKKwkJCXRhcmdldFByb3h5ID0gNUM5RDgyQTExNzk4QjFFNjAw
N0UxNTg4IC8qIFBCWENvbnRhaW5lckl0ZW1Qcm94eSAqLzsKKwkJfTsKKy8qIEVuZCBQQlhUYXJn
ZXREZXBlbmRlbmN5IHNlY3Rpb24gKi8KKwogLyogQmVnaW4gWENCdWlsZENvbmZpZ3VyYXRpb24g
c2VjdGlvbiAqLworCQk1QzlEODI5RDE3OThCMUNFMDA3RTE1ODggLyogRGVidWcgKi8gPSB7CisJ
CQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJ
UFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUpIjsKKwkJCX07CisJCQluYW1lID0gRGVidWc7
CisJCX07CisJCTVDOUQ4MjlFMTc5OEIxQ0UwMDdFMTU4OCAvKiBSZWxlYXNlICovID0geworCQkJ
aXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBS
T0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFJlbGVhc2U7
CisJCX07CisJCTVDOUQ4MjlGMTc5OEIxQ0UwMDdFMTU4OCAvKiBQcm9kdWN0aW9uICovID0gewor
CQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CisJCQlidWlsZFNldHRpbmdzID0geworCQkJ
CVBST0RVQ1RfTkFNRSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IFByb2R1
Y3Rpb247CisJCX07CiAJCTVEN0M1OURCMTIwOEM2QzMwMDFDODczRSAvKiBQcm9kdWN0aW9uICov
ID0gewogCQkJaXNhID0gWENCdWlsZENvbmZpZ3VyYXRpb247CiAJCQliYXNlQ29uZmlndXJhdGlv
blJlZmVyZW5jZSA9IDVEN0M1OUM2MTIwOEM2OEIwMDFDODczRSAvKiBCYXNlLnhjY29uZmlnICov
OwpAQCAtNzM5LDYgKzgxOSwxNiBAQAogLyogRW5kIFhDQnVpbGRDb25maWd1cmF0aW9uIHNlY3Rp
b24gKi8KIAogLyogQmVnaW4gWENDb25maWd1cmF0aW9uTGlzdCBzZWN0aW9uICovCisJCTVDOUQ4
MjlDMTc5OEIxQ0UwMDdFMTU4OCAvKiBCdWlsZCBjb25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFn
Z3JlZ2F0ZVRhcmdldCAiRGVyaXZlZCBTb3VyY2VzIiAqLyA9IHsKKwkJCWlzYSA9IFhDQ29uZmln
dXJhdGlvbkxpc3Q7CisJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAorCQkJCTVDOUQ4MjlEMTc5
OEIxQ0UwMDdFMTU4OCAvKiBEZWJ1ZyAqLywKKwkJCQk1QzlEODI5RTE3OThCMUNFMDA3RTE1ODgg
LyogUmVsZWFzZSAqLywKKwkJCQk1QzlEODI5RjE3OThCMUNFMDA3RTE1ODggLyogUHJvZHVjdGlv
biAqLywKKwkJCSk7CisJCQlkZWZhdWx0Q29uZmlndXJhdGlvbklzVmlzaWJsZSA9IDA7CisJCQlk
ZWZhdWx0Q29uZmlndXJhdGlvbk5hbWUgPSBQcm9kdWN0aW9uOworCQl9OwogCQlGQjM5RDA3MzEy
MDBFRDkyMDAwODhFNjkgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhQcm9qZWN0
ICJBTkdMRSIgKi8gPSB7CiAJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0OwogCQkJYnVpbGRD
b25maWd1cmF0aW9ucyA9ICgK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207146</attachid>
            <date>2013-07-19 14:35:40 -0700</date>
            <delta_ts>2013-07-23 16:24:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118872-20130719143539.patch</filename>
            <type>text/plain</type>
            <size>23189</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MjkyNSkKKysrIFNv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE0IEBACisyMDEzLTA3LTE5ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQGFwcGxl
LmNvbT4KKworICAgICAgICBHZW5lcmF0ZSBkZXJpdmVkIGZpbGVzIGluIEFOR0xFIGF0IGJ1aWxk
IHRpbWUgcmF0aGVyIHRoYW4gd2hlbiB1cGRhdGluZyBmcm9tIHVwc3RyZWFtLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4ODcyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBTkdMRS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOiBNYWRlIERlcml2ZWQgU291cmNlcyB0YXJnZXQgd2hpY2ggY2FsbHMg
RGVyaXZlZFNvdXJjZXMubWFrZSwKKyAgICAgICAgbW92ZWQgZ2VuZXJhdGVkIGZpbGVzIGludG8g
RGVyaXZlZCBTb3VyY2VzIGdyb3VwLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IEFk
ZGVkLgorCiAyMDEzLTA3LTE4ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGRlZCBwcmV2aW91c2x5IHVuaW5jbHVkZWQgZmlsZXMgZnJvbSBB
TkdMRSByMjQyNiB3aXRoIHRoZXNlIGV4Y2VwdGlvbnM6CkluZGV4OiBTb3VyY2UvVGhpcmRQYXJ0
eS9BTkdMRS9EZXJpdmVkU291cmNlcy5tYWtlCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9UaGlyZFBh
cnR5L0FOR0xFL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDApCisrKyBTb3VyY2UvVGhp
cmRQYXJ0eS9BTkdMRS9EZXJpdmVkU291cmNlcy5tYWtlCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAg
KzEsNDQgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyMgCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyMgCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
CisjIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitTRUFS
Q0hfUEFUSCA9ICQoQU5HTEUpL3NyYy9jb21waWxlciAkKEFOR0xFKS9zcmMvY29tcGlsZXIvcHJl
cHJvY2Vzc29yCisKK3ZwYXRoICUubCAkKFNFQVJDSF9QQVRIKQordnBhdGggJS55ICQoU0VBUkNI
X1BBVEgpCisKK0ZMRVggPSBmbGV4IC0tbm9saW5lIC0tbm91bmlzdGQKK0JJU09OID0gYmlzb24g
LS1uby1saW5lcyAtLXNrZWxldG9uPXlhY2MuYworCithbGwgOiBnbHNsYW5nX2xleC5jcHAgZ2xz
bGFuZ190YWIuaCBnbHNsYW5nX3RhYi5jcHAgRXhwcmVzc2lvblBhcnNlci5jcHAgVG9rZW5pemVy
LmNwcAorCitnbHNsYW5nX3RhYiVoIGdsc2xhbmdfdGFiJWNwcCA6IGdsc2xhbmcueQorCSQoZXZh
bCBPVVRQVVQgPSAkKGJhc2VuYW1lICRAKSkKKwkkKEJJU09OKSAtLWRlZmluZXM9JChPVVRQVVQp
LmggLS1vdXRwdXQ9JChPVVRQVVQpLmNwcCAkPAorCitFeHByZXNzaW9uUGFyc2VyLmNwcCA6IEV4
cHJlc3Npb25QYXJzZXIueQorCSQoQklTT04pIC0tb3V0cHV0PSRAICQ8CisKK2dsc2xhbmdfbGV4
LmNwcCA6IGdsc2xhbmcubAorCSQoRkxFWCkgLS1vdXRmaWxlPSRAICQ8CisKK1Rva2VuaXplci5j
cHAgOiBUb2tlbml6ZXIubAorCSQoRkxFWCkgLS1vdXRmaWxlPSRAICQ8CkluZGV4OiBTb3VyY2Uv
VGhpcmRQYXJ0eS9BTkdMRS9BTkdMRS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0FOR0xFLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oJKHJldmlzaW9uIDE1MjkyNSkKKysrIFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0FOR0xF
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTYsNiArNiwyMCBA
QAogCW9iamVjdFZlcnNpb24gPSA0NjsKIAlvYmplY3RzID0gewogCisvKiBCZWdpbiBQQlhBZ2dy
ZWdhdGVUYXJnZXQgc2VjdGlvbiAqLworCQk1QzlEODI5QjE3OThCMUNEMDA3RTE1ODggLyogRGVy
aXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYQWdncmVnYXRlVGFyZ2V0OworCQkJYnVp
bGRDb25maWd1cmF0aW9uTGlzdCA9IDVDOUQ4MjlDMTc5OEIxQ0UwMDdFMTU4OCAvKiBCdWlsZCBj
b25maWd1cmF0aW9uIGxpc3QgZm9yIFBCWEFnZ3JlZ2F0ZVRhcmdldCAiRGVyaXZlZCBTb3VyY2Vz
IiAqLzsKKwkJCWJ1aWxkUGhhc2VzID0gKAorCQkJCTVDOUQ4MkEwMTc5OEIxRDYwMDdFMTU4OCAv
KiBTaGVsbFNjcmlwdCAqLywKKwkJCSk7CisJCQlkZXBlbmRlbmNpZXMgPSAoCisJCQkpOworCQkJ
bmFtZSA9ICJEZXJpdmVkIFNvdXJjZXMiOworCQkJcHJvZHVjdE5hbWUgPSAiRGVyaXZlZCBTb3Vy
Y2VzIjsKKwkJfTsKKy8qIEVuZCBQQlhBZ2dyZWdhdGVUYXJnZXQgc2VjdGlvbiAqLworCiAvKiBC
ZWdpbiBQQlhCdWlsZEZpbGUgc2VjdGlvbiAqLwogCQkzMTJCREIwQzE1RkVDQUM5MDA5N0VCQzcg
LyogQU5HTEUucGxpc3QgaW4gQ29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDMxMkJEQjA5MTVGRUM5MUUwMDk3RUJDNyAvKiBBTkdMRS5wbGlzdCAqLzsgfTsKIAkJ
MzEyQkRCMEUxNUZFQ0FFNTAwOTdFQkM3IC8qIEFOR0xFLnR4dCBpbiBDb3B5RmlsZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMzEyQkRCMEExNUZFQ0EzQTAwOTdFQkM3IC8q
IEFOR0xFLnR4dCAqLzsgfTsKQEAgLTE0LDEyICsyOCwxNCBAQAogCQk0OTk1MUMwQTE0QjdBQUQ4
MDA2MEU5NkUgLyogQnVpbHRJbkZ1bmN0aW9uRW11bGF0b3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ5OTUxQzA2MTRCN0FBRDgwMDYwRTk2RSAvKiBC
dWlsdEluRnVuY3Rpb25FbXVsYXRvci5oICovOyB9OwogCQk0OTk1MUMwQjE0QjdBQUQ4MDA2MEU5
NkUgLyogRGV0ZWN0Q2FsbERlcHRoLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQ5OTUxQzA3MTRCN0FBRDgwMDYwRTk2RSAvKiBEZXRlY3RDYWxsRGVw
dGguY3BwICovOyB9OwogCQk0OTk1MUMwQzE0QjdBQUQ4MDA2MEU5NkUgLyogRGV0ZWN0Q2FsbERl
cHRoLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0OTk1
MUMwODE0QjdBQUQ4MDA2MEU5NkUgLyogRGV0ZWN0Q2FsbERlcHRoLmggKi87IH07CisJCTVDOUQ4
Mjk2MTc5OEIxQTEwMDdFMTU4OCAvKiBFeHByZXNzaW9uUGFyc2VyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDOUQ4MjkxMTc5OEIxQTEwMDdFMTU4
OCAvKiBFeHByZXNzaW9uUGFyc2VyLmNwcCAqLzsgfTsKKwkJNUM5RDgyOTcxNzk4QjFBMTAwN0Ux
NTg4IC8qIGdsc2xhbmdfbGV4LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDVDOUQ4MjkyMTc5OEIxQTEwMDdFMTU4OCAvKiBnbHNsYW5nX2xleC5jcHAg
Ki87IH07CisJCTVDOUQ4Mjk4MTc5OEIxQTEwMDdFMTU4OCAvKiBnbHNsYW5nX3RhYi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzlEODI5MzE3OThC
MUExMDA3RTE1ODggLyogZ2xzbGFuZ190YWIuY3BwICovOyB9OworCQk1QzlEODI5OTE3OThCMUEx
MDA3RTE1ODggLyogZ2xzbGFuZ190YWIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDVDOUQ4Mjk0MTc5OEIxQTEwMDdFMTU4OCAvKiBnbHNsYW5nX3RhYi5o
ICovOyB9OworCQk1QzlEODI5QTE3OThCMUExMDA3RTE1ODggLyogVG9rZW5pemVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDOUQ4Mjk1MTc5OEIx
QTEwMDdFMTU4OCAvKiBUb2tlbml6ZXIuY3BwICovOyB9OwogCQk1Q0NFQjhCNjE3OTA4RUVDMDBG
RDk0OTYgLyogYnVpbHRpbl9zeW1ib2xfdGFibGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNDRUI4QjQxNzkwOEUzQTAwRkQ5NDk2IC8qIGJ1aWx0
aW5fc3ltYm9sX3RhYmxlLmNwcCAqLzsgfTsKIAkJOTBEOUIxMDIxMkUxMURDQjAwMkQ0MjU1IC8q
IENvbXBpbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDkwRDlCMEY5MTJFMTFEQ0IwMDJENDI1NSAvKiBDb21waWxlci5jcHAgKi87IH07CiAJCTkw
RDlCMTAzMTJFMTFEQ0IwMDJENDI1NSAvKiBFeHRlbnNpb25CZWhhdmlvci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTBEOUIwRkExMkUxMURDQjAwMkQ0
MjU1IC8qIEV4dGVuc2lvbkJlaGF2aW9yLmggKi87IH07Ci0JCTkwRDlCMTA0MTJFMTFEQ0IwMDJE
NDI1NSAvKiBnbHNsYW5nX2xleC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MEQ5QjBGQjEyRTExRENCMDAyRDQyNTUgLyogZ2xzbGFuZ19sZXguY3Bw
ICovOyB9OwotCQk5MEQ5QjEwNTEyRTExRENCMDAyRDQyNTUgLyogZ2xzbGFuZ190YWIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTBEOUIwRkMxMkUx
MURDQjAwMkQ0MjU1IC8qIGdsc2xhbmdfdGFiLmNwcCAqLzsgfTsKLQkJOTBEOUIxMDYxMkUxMURD
QjAwMkQ0MjU1IC8qIGdsc2xhbmdfdGFiLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5MEQ5QjBGRDEyRTExRENCMDAyRDQyNTUgLyogZ2xzbGFuZ190YWIu
aCAqLzsgfTsKIAkJOTBEOUIxMDcxMkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xhbmcuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwRDlCMEZFMTJFMTFEQ0Iw
MDJENDI1NSAvKiBnbHNsYW5nLmggKi87IH07CiAJCTkwRDlCMTA5MTJFMTFEQ0IwMDJENDI1NSAv
KiBTZWFyY2hTeW1ib2wuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gOTBEOUIxMDAxMkUxMURDQjAwMkQ0MjU1IC8qIFNlYXJjaFN5bWJvbC5jcHAgKi87
IH07CiAJCTkwRDlCMTBBMTJFMTFEQ0IwMDJENDI1NSAvKiBTZWFyY2hTeW1ib2wuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwRDlCMTAxMTJFMTFEQ0Iw
MDJENDI1NSAvKiBTZWFyY2hTeW1ib2wuaCAqLzsgfTsKQEAgLTQ5LDcgKzY1LDYgQEAKIAkJQTI2
NEY4QUYxNjk3NERFRDAwNkZBQTVBIC8qIERpcmVjdGl2ZUhhbmRsZXJCYXNlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMjY0Rjg5NjE2OTc0REVEMDA2
RkFBNUEgLyogRGlyZWN0aXZlSGFuZGxlckJhc2UuaCAqLzsgfTsKIAkJQTI2NEY4QjAxNjk3NERF
RDAwNkZBQTVBIC8qIERpcmVjdGl2ZVBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMjY0Rjg5NzE2OTc0REVEMDA2RkFBNUEgLyogRGlyZWN0
aXZlUGFyc2VyLmNwcCAqLzsgfTsKIAkJQTI2NEY4QjExNjk3NERFRDAwNkZBQTVBIC8qIERpcmVj
dGl2ZVBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTI2NEY4OTgxNjk3NERFRDAwNkZBQTVBIC8qIERpcmVjdGl2ZVBhcnNlci5oICovOyB9Owot
CQlBMjY0RjhCMjE2OTc0REVEMDA2RkFBNUEgLyogRXhwcmVzc2lvblBhcnNlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMjY0Rjg5OTE2OTc0REVE
MDA2RkFBNUEgLyogRXhwcmVzc2lvblBhcnNlci5jcHAgKi87IH07CiAJCUEyNjRGOEIzMTY5NzRE
RUQwMDZGQUE1QSAvKiBFeHByZXNzaW9uUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMjY0Rjg5QTE2OTc0REVEMDA2RkFBNUEgLyogRXhwcmVz
c2lvblBhcnNlci5oICovOyB9OwogCQlBMjY0RjhCNDE2OTc0REVEMDA2RkFBNUEgLyogSW5wdXQu
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTI2NEY4
OUIxNjk3NERFRDAwNkZBQTVBIC8qIElucHV0LmNwcCAqLzsgfTsKIAkJQTI2NEY4QjUxNjk3NERF
RDAwNkZBQTVBIC8qIElucHV0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBBMjY0Rjg5QzE2OTc0REVEMDA2RkFBNUEgLyogSW5wdXQuaCAqLzsgfTsKQEAg
LTY2LDcgKzgxLDYgQEAKIAkJQTI2NEY4QzAxNjk3NERFRDAwNkZBQTVBIC8qIFNvdXJjZUxvY2F0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMjY0
RjhBNzE2OTc0REVEMDA2RkFBNUEgLyogU291cmNlTG9jYXRpb24uaCAqLzsgfTsKIAkJQTI2NEY4
QzExNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEyNjRGOEE4MTY5NzRERUQwMDZGQUE1QSAvKiBUb2tlbi5j
cHAgKi87IH07CiAJCUEyNjRGOEMyMTY5NzRERUQwMDZGQUE1QSAvKiBUb2tlbi5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTI2NEY4QTkxNjk3NERFRDAw
NkZBQTVBIC8qIFRva2VuLmggKi87IH07Ci0JCUEyNjRGOEMzMTY5NzRERUQwMDZGQUE1QSAvKiBU
b2tlbml6ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQTI2NEY4QUExNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuaXplci5jcHAgKi87IH07CiAJCUEy
NjRGOEM0MTY5NzRERUQwMDZGQUE1QSAvKiBUb2tlbml6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEEyNjRGOEFCMTY5NzRERUQwMDZGQUE1QSAvKiBU
b2tlbml6ZXIuaCAqLzsgfTsKIAkJQTI2NEY4QzgxNjk3NEUyQTAwNkZBQTVBIC8qIEhhc2hOYW1l
cy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTI2NEY4
QzUxNjk3NEUyQTAwNkZBQTVBIC8qIEhhc2hOYW1lcy5oICovOyB9OwogCQlBMjY0RjhDOTE2OTc0
RTJBMDA2RkFBNUEgLyogVmFyaWFibGVQYWNrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTI2NEY4QzYxNjk3NEUyQTAwNkZBQTVBIC8qIFZhcmlh
YmxlUGFja2VyLmNwcCAqLzsgfTsKQEAgLTExMSw2ICsxMjUsMTYgQEAKIAkJRkIzOUQ3NkUxMjAx
MTBGQzAwMDg4RTY5IC8qIFNoYWRlckxhbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEZCMzlEMkJGMTIwMEYzRTYwMDA4OEU2OSAvKiBTaGFkZXJMYW5n
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogLyogRW5k
IFBCWEJ1aWxkRmlsZSBzZWN0aW9uICovCiAKKy8qIEJlZ2luIFBCWENvbnRhaW5lckl0ZW1Qcm94
eSBzZWN0aW9uICovCisJCTVDOUQ4MkExMTc5OEIxRTYwMDdFMTU4OCAvKiBQQlhDb250YWluZXJJ
dGVtUHJveHkgKi8gPSB7CisJCQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CisJCQljb250
YWluZXJQb3J0YWwgPSBGQjM5RDA3MDEyMDBFRDkyMDAwODhFNjkgLyogUHJvamVjdCBvYmplY3Qg
Ki87CisJCQlwcm94eVR5cGUgPSAxOworCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA1QzlEODI5
QjE3OThCMUNEMDA3RTE1ODg7CisJCQlyZW1vdGVJbmZvID0gIkRlcml2ZWQgU291cmNlcyI7CisJ
CX07CisvKiBFbmQgUEJYQ29udGFpbmVySXRlbVByb3h5IHNlY3Rpb24gKi8KKwogLyogQmVnaW4g
UEJYQ29weUZpbGVzQnVpbGRQaGFzZSBzZWN0aW9uICovCiAJCTMxMkJEQjBCMTVGRUNBQjAwMDk3
RUJDNyAvKiBDb3B5RmlsZXMgKi8gPSB7CiAJCQlpc2EgPSBQQlhDb3B5RmlsZXNCdWlsZFBoYXNl
OwpAQCAtMTQzLDYgKzE2NywxMSBAQAogCQk0OTk1MUMwNjE0QjdBQUQ4MDA2MEU5NkUgLyogQnVp
bHRJbkZ1bmN0aW9uRW11bGF0b3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
QnVpbHRJbkZ1bmN0aW9uRW11bGF0b3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDk5NTFDMDcxNEI3QUFEODAwNjBFOTZFIC8qIERldGVjdENhbGxEZXB0aC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEZXRlY3RDYWxsRGVwdGguY3BwOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk0OTk1MUMwODE0QjdBQUQ4MDA2MEU5NkUgLyogRGV0ZWN0
Q2FsbERlcHRoLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERldGVjdENhbGxE
ZXB0aC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1QzlEODI5MTE3OThCMUExMDA3
RTE1ODggLyogRXhwcmVzc2lvblBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5j
cHA7IHBhdGggPSBFeHByZXNzaW9uUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNUM5RDgyOTIxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xhbmdfbGV4LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGdsc2xhbmdfbGV4LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM5RDgyOTMxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xhbmdf
dGFiLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGdsc2xhbmdfdGFi
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUM5RDgyOTQxNzk4QjFBMTAwN0Ux
NTg4IC8qIGdsc2xhbmdfdGFiLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGds
c2xhbmdfdGFiLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDOUQ4Mjk1MTc5OEIx
QTEwMDdFMTU4OCAvKiBUb2tlbml6ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gVG9rZW5pemVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUND
RUI4QjQxNzkwOEUzQTAwRkQ5NDk2IC8qIGJ1aWx0aW5fc3ltYm9sX3RhYmxlLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IGJ1aWx0aW5fc3ltYm9sX3RhYmxlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNUNDRUI4QjUxNzkwOEUzQTAwRkQ5NDk2IC8qIGJ1aWx0aW5fc3ltYm9sX3Rh
YmxlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGJ1aWx0aW5fc3ltYm9sX3RhYmxlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTVEN0M1OUM1MTIwOEM2OEIwMDFDODczRSAvKiBBTkdMRS54Y2Nv
bmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBBTkdMRS54Y2NvbmZpZzsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1MCw5ICsxNzksNiBAQAogCQk1RDdDNTlDNzEy
MDhDNjhCMDAxQzg3M0UgLyogRGVidWdSZWxlYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54
Y2NvbmZpZzsgcGF0aCA9IERlYnVnUmVsZWFzZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJOTBEOUIwRjkxMkUxMURDQjAwMkQ0MjU1IC8qIENvbXBpbGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENvbXBpbGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTBEOUIwRkExMkUxMURDQjAwMkQ0MjU1IC8qIEV4dGVuc2lv
bkJlaGF2aW9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEV4dGVuc2lvbkJl
aGF2aW9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkwRDlCMEZCMTJFMTFEQ0Iw
MDJENDI1NSAvKiBnbHNsYW5nX2xleC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBnbHNsYW5nX2xleC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTkw
RDlCMEZDMTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nX3RhYi5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBnbHNsYW5nX3RhYi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07Ci0JCTkwRDlCMEZEMTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nX3RhYi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBnbHNsYW5nX3RhYi5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk5MEQ5QjBGRTEyRTExRENCMDAyRDQyNTUgLyogZ2xzbGFuZy5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBnbHNsYW5nLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTkwRDlCMTAwMTJFMTFEQ0IwMDJENDI1NSAvKiBTZWFyY2hTeW1i
b2wuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VhcmNoU3ltYm9s
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTBEOUIxMDExMkUxMURDQjAwMkQ0
MjU1IC8qIFNlYXJjaFN5bWJvbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
ZWFyY2hTeW1ib2wuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4Miw3ICsyMDgs
NiBAQAogCQlBMjY0Rjg5NjE2OTc0REVEMDA2RkFBNUEgLyogRGlyZWN0aXZlSGFuZGxlckJhc2Uu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlyZWN0aXZlSGFuZGxlckJhc2Uu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTI2NEY4OTcxNjk3NERFRDAwNkZBQTVB
IC8qIERpcmVjdGl2ZVBhcnNlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBEaXJlY3RpdmVQYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
MjY0Rjg5ODE2OTc0REVEMDA2RkFBNUEgLyogRGlyZWN0aXZlUGFyc2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERpcmVjdGl2ZVBhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwotCQlBMjY0Rjg5OTE2OTc0REVEMDA2RkFBNUEgLyogRXhwcmVzc2lvblBhcnNl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBFeHByZXNzaW9uUGFy
c2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTI2NEY4OUExNjk3NERFRDAw
NkZBQTVBIC8qIEV4cHJlc3Npb25QYXJzZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRXhwcmVzc2lvblBhcnNlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
MjY0Rjg5QjE2OTc0REVEMDA2RkFBNUEgLyogSW5wdXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gSW5wdXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlBMjY0Rjg5QzE2OTc0REVEMDA2RkFBNUEgLyogSW5wdXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW5wdXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE5
OSw3ICsyMjQsNiBAQAogCQlBMjY0RjhBNzE2OTc0REVEMDA2RkFBNUEgLyogU291cmNlTG9jYXRp
b24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU291cmNlTG9jYXRpb24uaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTI2NEY4QTgxNjk3NERFRDAwNkZBQTVBIC8q
IFRva2VuLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRva2VuLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTI2NEY4QTkxNjk3NERFRDAwNkZBQTVB
IC8qIFRva2VuLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFRva2VuLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUEyNjRGOEFBMTY5NzRERUQwMDZGQUE1QSAvKiBU
b2tlbml6ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVG9rZW5p
emVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTI2NEY4QUIxNjk3NERFRDAw
NkZBQTVBIC8qIFRva2VuaXplci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBU
b2tlbml6ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTI2NEY4QzUxNjk3NEUy
QTAwNkZBQTVBIC8qIEhhc2hOYW1lcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBIYXNoTmFtZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQTI2NEY4QzYxNjk3
NEUyQTAwNkZBQTVBIC8qIFZhcmlhYmxlUGFja2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IFZhcmlhYmxlUGFja2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKQEAgLTI4OCw2ICszMTIsMTkgQEAKIAkJCW5hbWUgPSBtaXNjOwogCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNUM5RDgyOTAxNzk4QjE3MzAwN0UxNTg4IC8qIERlcml2
ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJ
CQkJNUM5RDgyOTExNzk4QjFBMTAwN0UxNTg4IC8qIEV4cHJlc3Npb25QYXJzZXIuY3BwICovLAor
CQkJCTVDOUQ4MjkyMTc5OEIxQTEwMDdFMTU4OCAvKiBnbHNsYW5nX2xleC5jcHAgKi8sCisJCQkJ
NUM5RDgyOTMxNzk4QjFBMTAwN0UxNTg4IC8qIGdsc2xhbmdfdGFiLmNwcCAqLywKKwkJCQk1QzlE
ODI5NDE3OThCMUExMDA3RTE1ODggLyogZ2xzbGFuZ190YWIuaCAqLywKKwkJCQk1QzlEODI5NTE3
OThCMUExMDA3RTE1ODggLyogVG9rZW5pemVyLmNwcCAqLywKKwkJCSk7CisJCQluYW1lID0gIkRl
cml2ZWQgU291cmNlcyI7CisJCQlwYXRoID0gRGVyaXZlZFNvdXJjZXMvQU5HTEU7CisJCQlzb3Vy
Y2VUcmVlID0gQlVJTFRfUFJPRFVDVFNfRElSOworCQl9OwogCQk1RDdDNTlDNDEyMDhDNjhCMDAx
Qzg3M0UgLyogQ29uZmlndXJhdGlvbnMgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKApAQCAtMzYyLDYgKzM5OSw3IEBACiAJCUZCMzlEMDZFMTIwMEVEOTIwMDA4OEU2
OSA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCisJCQkJNUM5RDgyOTAx
Nzk4QjE3MzAwN0UxNTg4IC8qIERlcml2ZWQgU291cmNlcyAqLywKIAkJCQk1RDdDNTlDNDEyMDhD
NjhCMDAxQzg3M0UgLyogQ29uZmlndXJhdGlvbnMgKi8sCiAJCQkJQTI5QjE1RTkxNjk3OEI3RDAw
MTExRDk3IC8qIGluY2x1ZGUgKi8sCiAJCQkJMzEyQkRCMDcxNUZFQzhFNjAwOTdFQkM3IC8qIG1p
c2MgKi8sCkBAIC00MTQsOSArNDUyLDYgQEAKIAkJCQlBMEFBQkUyQTEzQUZFODEwMDBGMkVCRDEg
LyogRm9yTG9vcFVucm9sbC5jcHAgKi8sCiAJCQkJQTBBQUJFMkIxM0FGRTgxMDAwRjJFQkQxIC8q
IEZvckxvb3BVbnJvbGwuaCAqLywKIAkJCQk5MEQ5QjBGRTEyRTExRENCMDAyRDQyNTUgLyogZ2xz
bGFuZy5oICovLAotCQkJCTkwRDlCMEZCMTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nX2xleC5j
cHAgKi8sCi0JCQkJOTBEOUIwRkMxMkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xhbmdfdGFiLmNwcCAq
LywKLQkJCQk5MEQ5QjBGRDEyRTExRENCMDAyRDQyNTUgLyogZ2xzbGFuZ190YWIuaCAqLywKIAkJ
CQlBMjY0RjhDNTE2OTc0RTJBMDA2RkFBNUEgLyogSGFzaE5hbWVzLmggKi8sCiAJCQkJRkIzOUQy
MkExMjAwRjM1QTAwMDg4RTY5IC8qIEluZm9TaW5rLmNwcCAqLywKIAkJCQlGQjM5RDIyQjEyMDBG
MzVBMDAwODhFNjkgLyogSW5mb1NpbmsuaCAqLywKQEAgLTQ5MCw3ICs1MjUsNiBAQAogCQkJCUEy
NjRGODk2MTY5NzRERUQwMDZGQUE1QSAvKiBEaXJlY3RpdmVIYW5kbGVyQmFzZS5oICovLAogCQkJ
CUEyNjRGODk3MTY5NzRERUQwMDZGQUE1QSAvKiBEaXJlY3RpdmVQYXJzZXIuY3BwICovLAogCQkJ
CUEyNjRGODk4MTY5NzRERUQwMDZGQUE1QSAvKiBEaXJlY3RpdmVQYXJzZXIuaCAqLywKLQkJCQlB
MjY0Rjg5OTE2OTc0REVEMDA2RkFBNUEgLyogRXhwcmVzc2lvblBhcnNlci5jcHAgKi8sCiAJCQkJ
QTI2NEY4OUExNjk3NERFRDAwNkZBQTVBIC8qIEV4cHJlc3Npb25QYXJzZXIuaCAqLywKIAkJCQlB
MjY0Rjg5QjE2OTc0REVEMDA2RkFBNUEgLyogSW5wdXQuY3BwICovLAogCQkJCUEyNjRGODlDMTY5
NzRERUQwMDZGQUE1QSAvKiBJbnB1dC5oICovLApAQCAtNTA4LDcgKzU0Miw2IEBACiAJCQkJQTI2
NEY4QTcxNjk3NERFRDAwNkZBQTVBIC8qIFNvdXJjZUxvY2F0aW9uLmggKi8sCiAJCQkJQTI2NEY4
QTgxNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuLmNwcCAqLywKIAkJCQlBMjY0RjhBOTE2OTc0REVE
MDA2RkFBNUEgLyogVG9rZW4uaCAqLywKLQkJCQlBMjY0RjhBQTE2OTc0REVEMDA2RkFBNUEgLyog
VG9rZW5pemVyLmNwcCAqLywKIAkJCQlBMjY0RjhBQjE2OTc0REVEMDA2RkFBNUEgLyogVG9rZW5p
emVyLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9IHByZXByb2Nlc3NvcjsKQEAgLTU0NSw3ICs1Nzgs
NiBAQAogCQkJCTkwRDlCMTAzMTJFMTFEQ0IwMDJENDI1NSAvKiBFeHRlbnNpb25CZWhhdmlvci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTBBQUJFMkQxM0FGRTgxMDAwRjJFQkQxIC8qIEZvckxvb3BV
bnJvbGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTkwRDlCMTA3MTJFMTFEQ0IwMDJENDI1NSAvKiBn
bHNsYW5nLmggaW4gSGVhZGVycyAqLywKLQkJCQk5MEQ5QjEwNjEyRTExRENCMDAyRDQyNTUgLyog
Z2xzbGFuZ190YWIuaCBpbiBIZWFkZXJzICovLAogCQkJCUEyNjRGOEM4MTY5NzRFMkEwMDZGQUE1
QSAvKiBIYXNoTmFtZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUEyNjRGOEI1MTY5NzRERUQwMDZG
QUE1QSAvKiBJbnB1dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTI2NEY4Q0QxNjk3NjJBQTAwNkZB
QTVBIC8qIGtocnBsYXRmb3JtLmggaW4gSGVhZGVycyAqLywKQEAgLTU3NCw2ICs2MDYsNyBAQAog
CQkJCTkwRDlCMTE4MTJFMTFERDYwMDJENDI1NSAvKiBWYXJpYWJsZUluZm8uaCBpbiBIZWFkZXJz
ICovLAogCQkJCUEyNjRGOENBMTY5NzRFMkEwMDZGQUE1QSAvKiBWYXJpYWJsZVBhY2tlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJOTBEOUIxMUExMkUxMURENjAwMkQ0MjU1IC8qIFZlcnNpb25HTFNM
LmggaW4gSGVhZGVycyAqLywKKwkJCQk1QzlEODI5OTE3OThCMUExMDA3RTE1ODggLyogZ2xzbGFu
Z190YWIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9z
dHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtNTkzLDYgKzYyNiw3IEBACiAJCQlidWlsZFJ1bGVz
ID0gKAogCQkJKTsKIAkJCWRlcGVuZGVuY2llcyA9ICgKKwkJCQk1QzlEODJBMjE3OThCMUU2MDA3
RTE1ODggLyogUEJYVGFyZ2V0RGVwZW5kZW5jeSAqLywKIAkJCSk7CiAJCQluYW1lID0gQU5HTEU7
CiAJCQlwcm9kdWN0TmFtZSA9IGFuZ2xlOwpAQCAtNjIyLDEwICs2NTYsMjcgQEAKIAkJCXByb2pl
Y3RSb290ID0gIiI7CiAJCQl0YXJnZXRzID0gKAogCQkJCUZCMzlEMEQwMTIwMEYwRTMwMDA4OEU2
OSAvKiBBTkdMRSAqLywKKwkJCQk1QzlEODI5QjE3OThCMUNEMDA3RTE1ODggLyogRGVyaXZlZCBT
b3VyY2VzICovLAogCQkJKTsKIAkJfTsKIC8qIEVuZCBQQlhQcm9qZWN0IHNlY3Rpb24gKi8KIAor
LyogQmVnaW4gUEJYU2hlbGxTY3JpcHRCdWlsZFBoYXNlIHNlY3Rpb24gKi8KKwkJNUM5RDgyQTAx
Nzk4QjFENjAwN0UxNTg4IC8qIFNoZWxsU2NyaXB0ICovID0geworCQkJaXNhID0gUEJYU2hlbGxT
Y3JpcHRCdWlsZFBoYXNlOworCQkJYnVpbGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKKwkJCWZp
bGVzID0gKAorCQkJKTsKKwkJCWlucHV0UGF0aHMgPSAoCisJCQkpOworCQkJb3V0cHV0UGF0aHMg
PSAoCisJCQkpOworCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CisJ
CQlzaGVsbFBhdGggPSAvYmluL3NoOworCQkJc2hlbGxTY3JpcHQgPSAibWtkaXIgLXAgXCIke0JV
SUxUX1BST0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvQU5HTEVcIlxuY2QgXCIke0JVSUxUX1BS
T0RVQ1RTX0RJUn0vRGVyaXZlZFNvdXJjZXMvQU5HTEVcIlxuXG4vYmluL2xuIC1zZmggXCIke1NS
Q1JPT1R9XCIgLlxuZXhwb3J0IEFOR0xFPVwiQU5HTEVcIlxuXG5tYWtlICAtLW5vLWJ1aWx0aW4t
cnVsZXMgLWYgXCJBTkdMRS9EZXJpdmVkU291cmNlcy5tYWtlXCIgLWogYC91c3Ivc2Jpbi9zeXNj
dGwgLW4gaHcuYXZhaWxjcHVgIjsKKwkJfTsKKy8qIEVuZCBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhh
c2Ugc2VjdGlvbiAqLworCiAvKiBCZWdpbiBQQlhTb3VyY2VzQnVpbGRQaGFzZSBzZWN0aW9uICov
CiAJCUZCMzlEMENFMTIwMEYwRTMwMDA4OEU2OSAvKiBTb3VyY2VzICovID0gewogCQkJaXNhID0g
UEJYU291cmNlc0J1aWxkUGhhc2U7CkBAIC02NDYsMTAgKzY5Nyw3IEBACiAJCQkJQTI2NTY3QkQx
NTlDMjFCMTAwMzk4NTM5IC8qIERpcmVjdGl2ZUhhbmRsZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTI2NEY4QUUxNjk3NERFRDAwNkZBQTVBIC8qIERpcmVjdGl2ZUhhbmRsZXJCYXNlLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUEyNjRGOEIwMTY5NzRERUQwMDZGQUE1QSAvKiBEaXJlY3RpdmVQ
YXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQTI2NEY4QjIxNjk3NERFRDAwNkZBQTVBIC8q
IEV4cHJlc3Npb25QYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTBBQUJFMkMxM0FGRTgx
MDAwRjJFQkQxIC8qIEZvckxvb3BVbnJvbGwuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTBEOUIx
MDQxMkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xhbmdfbGV4LmNwcCBpbiBTb3VyY2VzICovLAotCQkJ
CTkwRDlCMTA1MTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nX3RhYi5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlGQjM5RDI3OTEyMDBGMzVBMDAwODhFNjkgLyogSW5mb1NpbmsuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJRkIzOUQyN0IxMjAwRjM1QTAwMDg4RTY5IC8qIEluaXRpYWxpemUuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJRkIzOUQyN0QxMjAwRjM1QTAwMDg4RTY5IC8qIEluaXRpYWxpemVE
bGwuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC02NzksNyArNzI3LDYgQEAKIAkJCQlGQjM5RDJBODEy
MDBGMzVBMDAwODhFNjkgLyogU2hhZGVyTGFuZy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQjM5
RDJBQTEyMDBGMzVBMDAwODhFNjkgLyogU3ltYm9sVGFibGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTI2NEY4QzExNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuLmNwcCBpbiBTb3VyY2VzICovLAot
CQkJCUEyNjRGOEMzMTY5NzRERUQwMDZGQUE1QSAvKiBUb2tlbml6ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQTBBQUJFNDgxM0FGRTk2MTAwRjJFQkQxIC8qIFRyYW5zbGF0b3JFU1NMLmNwcCBp
biBTb3VyY2VzICovLAogCQkJCUZCMzlEMkFDMTIwMEYzNUEwMDA4OEU2OSAvKiBUcmFuc2xhdG9y
R0xTTC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5MEQ5QjExMzEyRTExREQ2MDAyRDQyNTUgLyog
dXRpbC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTY4NywxMiArNzM0LDQ1IEBACiAJCQkJOTBEOUIx
MTcxMkUxMURENjAwMkQ0MjU1IC8qIFZhcmlhYmxlSW5mby5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQlBMjY0RjhDOTE2OTc0RTJBMDA2RkFBNUEgLyogVmFyaWFibGVQYWNrZXIuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJOTBEOUIxMTkxMkUxMURENjAwMkQ0MjU1IC8qIFZlcnNpb25HTFNMLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTVDOUQ4Mjk2MTc5OEIxQTEwMDdFMTU4OCAvKiBFeHByZXNzaW9u
UGFyc2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTVDOUQ4Mjk3MTc5OEIxQTEwMDdFMTU4OCAv
KiBnbHNsYW5nX2xleC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1QzlEODI5ODE3OThCMUExMDA3
RTE1ODggLyogZ2xzbGFuZ190YWIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNUM5RDgyOUExNzk4
QjFBMTAwN0UxNTg4IC8qIFRva2VuaXplci5jcHAgaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKIAkJfTsKIC8qIEVuZCBQQlhT
b3VyY2VzQnVpbGRQaGFzZSBzZWN0aW9uICovCiAKKy8qIEJlZ2luIFBCWFRhcmdldERlcGVuZGVu
Y3kgc2VjdGlvbiAqLworCQk1QzlEODJBMjE3OThCMUU2MDA3RTE1ODggLyogUEJYVGFyZ2V0RGVw
ZW5kZW5jeSAqLyA9IHsKKwkJCWlzYSA9IFBCWFRhcmdldERlcGVuZGVuY3k7CisJCQl0YXJnZXQg
PSA1QzlEODI5QjE3OThCMUNEMDA3RTE1ODggLyogRGVyaXZlZCBTb3VyY2VzICovOworCQkJdGFy
Z2V0UHJveHkgPSA1QzlEODJBMTE3OThCMUU2MDA3RTE1ODggLyogUEJYQ29udGFpbmVySXRlbVBy
b3h5ICovOworCQl9OworLyogRW5kIFBCWFRhcmdldERlcGVuZGVuY3kgc2VjdGlvbiAqLworCiAv
KiBCZWdpbiBYQ0J1aWxkQ29uZmlndXJhdGlvbiBzZWN0aW9uICovCisJCTVDOUQ4MjlEMTc5OEIx
Q0UwMDdFMTU4OCAvKiBEZWJ1ZyAqLyA9IHsKKwkJCWlzYSA9IFhDQnVpbGRDb25maWd1cmF0aW9u
OworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUgPSAiJChUQVJHRVRfTkFN
RSkiOworCQkJfTsKKwkJCW5hbWUgPSBEZWJ1ZzsKKwkJfTsKKwkJNUM5RDgyOUUxNzk4QjFDRTAw
N0UxNTg4IC8qIFJlbGVhc2UgKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlvbjsK
KwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05BTUUp
IjsKKwkJCX07CisJCQluYW1lID0gUmVsZWFzZTsKKwkJfTsKKwkJNUM5RDgyOUYxNzk4QjFDRTAw
N0UxNTg4IC8qIFByb2R1Y3Rpb24gKi8gPSB7CisJCQlpc2EgPSBYQ0J1aWxkQ29uZmlndXJhdGlv
bjsKKwkJCWJ1aWxkU2V0dGluZ3MgPSB7CisJCQkJUFJPRFVDVF9OQU1FID0gIiQoVEFSR0VUX05B
TUUpIjsKKwkJCX07CisJCQluYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJNUQ3QzU5REIxMjA4
QzZDMzAwMUM4NzNFIC8qIFByb2R1Y3Rpb24gKi8gPSB7CiAJCQlpc2EgPSBYQ0J1aWxkQ29uZmln
dXJhdGlvbjsKIAkJCWJhc2VDb25maWd1cmF0aW9uUmVmZXJlbmNlID0gNUQ3QzU5QzYxMjA4QzY4
QjAwMUM4NzNFIC8qIEJhc2UueGNjb25maWcgKi87CkBAIC03MzksNiArODE5LDE2IEBACiAvKiBF
bmQgWENCdWlsZENvbmZpZ3VyYXRpb24gc2VjdGlvbiAqLwogCiAvKiBCZWdpbiBYQ0NvbmZpZ3Vy
YXRpb25MaXN0IHNlY3Rpb24gKi8KKwkJNUM5RDgyOUMxNzk4QjFDRTAwN0UxNTg4IC8qIEJ1aWxk
IGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYQWdncmVnYXRlVGFyZ2V0ICJEZXJpdmVkIFNvdXJj
ZXMiICovID0geworCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKKwkJCWJ1aWxkQ29uZmln
dXJhdGlvbnMgPSAoCisJCQkJNUM5RDgyOUQxNzk4QjFDRTAwN0UxNTg4IC8qIERlYnVnICovLAor
CQkJCTVDOUQ4MjlFMTc5OEIxQ0UwMDdFMTU4OCAvKiBSZWxlYXNlICovLAorCQkJCTVDOUQ4MjlG
MTc5OEIxQ0UwMDdFMTU4OCAvKiBQcm9kdWN0aW9uICovLAorCQkJKTsKKwkJCWRlZmF1bHRDb25m
aWd1cmF0aW9uSXNWaXNpYmxlID0gMDsKKwkJCWRlZmF1bHRDb25maWd1cmF0aW9uTmFtZSA9IFBy
b2R1Y3Rpb247CisJCX07CiAJCUZCMzlEMDczMTIwMEVEOTIwMDA4OEU2OSAvKiBCdWlsZCBjb25m
aWd1cmF0aW9uIGxpc3QgZm9yIFBCWFByb2plY3QgIkFOR0xFIiAqLyA9IHsKIAkJCWlzYSA9IFhD
Q29uZmlndXJhdGlvbkxpc3Q7CiAJCQlidWlsZENvbmZpZ3VyYXRpb25zID0gKAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207359</attachid>
            <date>2013-07-23 16:24:43 -0700</date>
            <delta_ts>2013-07-24 14:20:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118872-20130723162442.patch</filename>
            <type>text/plain</type>
            <size>22978</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MzA2NikKKysrIFNv
dXJjZS9UaGlyZFBhcnR5L0FOR0xFL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE0IEBACisyMDEzLTA3LTIzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQGFwcGxl
LmNvbT4KKworICAgICAgICBHZW5lcmF0ZSBkZXJpdmVkIGZpbGVzIGluIEFOR0xFIGF0IGJ1aWxk
IHRpbWUgcmF0aGVyIHRoYW4gd2hlbiB1cGRhdGluZyBmcm9tIHVwc3RyZWFtLgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE4ODcyCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBBTkdMRS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOiBNYWRlIERlcml2ZWQgU291cmNlcyB0YXJnZXQgd2hpY2ggY2FsbHMg
RGVyaXZlZFNvdXJjZXMubWFrZSwKKyAgICAgICAgbW92ZWQgZ2VuZXJhdGVkIGZpbGVzIGludG8g
RGVyaXZlZCBTb3VyY2VzIGdyb3VwLgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6IEFk
ZGVkLgorCiAyMDEzLTA3LTIzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQGFwcGxl
LmNvbT4KIAogICAgICAgICBVcGRhdGVkIEFOR0xFIHRvIGxhdGVzdCBnaXQgY29tbWl0ICgwNDcz
NzNhYTNlYjQwOGJlNjJiZTUyYWRlODQwZmE1ZjExZTcyMzM3KS4KSW5kZXg6IFNvdXJjZS9UaGly
ZFBhcnR5L0FOR0xFL0Rlcml2ZWRTb3VyY2VzLm1ha2UKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1Ro
aXJkUGFydHkvQU5HTEUvRGVyaXZlZFNvdXJjZXMubWFrZQkocmV2aXNpb24gMCkKKysrIFNvdXJj
ZS9UaGlyZFBhcnR5L0FOR0xFL0Rlcml2ZWRTb3VyY2VzLm1ha2UJKHJldmlzaW9uIDApCkBAIC0w
LDAgKzEsNDQgQEAKKyMgQ29weXJpZ2h0IChDKSAyMDEzIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyMgCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAg
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyMgCisjIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorIyBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisjIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisjIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisjIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyMgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OCisjIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisjIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCitT
RUFSQ0hfUEFUSCA9ICQoQU5HTEUpL3NyYy9jb21waWxlciAkKEFOR0xFKS9zcmMvY29tcGlsZXIv
cHJlcHJvY2Vzc29yCisKK3ZwYXRoICUubCAkKFNFQVJDSF9QQVRIKQordnBhdGggJS55ICQoU0VB
UkNIX1BBVEgpCisKK0ZMRVggPSBmbGV4IC0tbm9saW5lIC0tbm91bmlzdGQKK0JJU09OID0gYmlz
b24gLS1uby1saW5lcyAtLXNrZWxldG9uPXlhY2MuYworCithbGwgOiBnbHNsYW5nX2xleC5jcHAg
Z2xzbGFuZ190YWIuaCBnbHNsYW5nX3RhYi5jcHAgRXhwcmVzc2lvblBhcnNlci5jcHAgVG9rZW5p
emVyLmNwcAorCitnbHNsYW5nX3RhYiVoIGdsc2xhbmdfdGFiJWNwcCA6IGdsc2xhbmcueQorCSQo
ZXZhbCBPVVRQVVQgPSAkKGJhc2VuYW1lICRAKSkKKwkkKEJJU09OKSAtLWRlZmluZXM9JChPVVRQ
VVQpLmggLS1vdXRwdXQ9JChPVVRQVVQpLmNwcCAkPAorCitFeHByZXNzaW9uUGFyc2VyLmNwcCA6
IEV4cHJlc3Npb25QYXJzZXIueQorCSQoQklTT04pIC0tb3V0cHV0PSRAICQ8CisKK2dsc2xhbmdf
bGV4LmNwcCA6IGdsc2xhbmcubAorCSQoRkxFWCkgLS1vdXRmaWxlPSRAICQ8CisKK1Rva2VuaXpl
ci5jcHAgOiBUb2tlbml6ZXIubAorCSQoRkxFWCkgLS1vdXRmaWxlPSRAICQ8ClwgTm8gbmV3bGlu
ZSBhdCBlbmQgb2YgZmlsZQpJbmRleDogU291cmNlL1RoaXJkUGFydHkvQU5HTEUvQU5HTEUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvVGhpcmRQYXJ0eS9B
TkdMRS9BTkdMRS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAxNTMwNjYpCisr
KyBTb3VyY2UvVGhpcmRQYXJ0eS9BTkdMRS9BTkdMRS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CSh3b3JraW5nIGNvcHkpCkBAIC02LDYgKzYsMjAgQEAKIAlvYmplY3RWZXJzaW9uID0gNDY7CiAJ
b2JqZWN0cyA9IHsKIAorLyogQmVnaW4gUEJYQWdncmVnYXRlVGFyZ2V0IHNlY3Rpb24gKi8KKwkJ
NUNCMTNGRDYxNzlGNDRDODAwMUY4NTFEIC8qIERlcml2ZWQgU291cmNlcyAqLyA9IHsKKwkJCWlz
YSA9IFBCWEFnZ3JlZ2F0ZVRhcmdldDsKKwkJCWJ1aWxkQ29uZmlndXJhdGlvbkxpc3QgPSA1Q0Ix
M0ZENzE3OUY0NEM4MDAxRjg1MUQgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhB
Z2dyZWdhdGVUYXJnZXQgIkRlcml2ZWQgU291cmNlcyIgKi87CisJCQlidWlsZFBoYXNlcyA9ICgK
KwkJCQk1Q0IxM0ZERDE3OUY0NEYzMDAxRjg1MUQgLyogU2hlbGxTY3JpcHQgKi8sCisJCQkpOwor
CQkJZGVwZW5kZW5jaWVzID0gKAorCQkJKTsKKwkJCW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsK
KwkJCXByb2R1Y3ROYW1lID0gIkRlcml2ZWQgU291cmNlcyI7CisJCX07CisvKiBFbmQgUEJYQWdn
cmVnYXRlVGFyZ2V0IHNlY3Rpb24gKi8KKwogLyogQmVnaW4gUEJYQnVpbGRGaWxlIHNlY3Rpb24g
Ki8KIAkJMzEyQkRCMEMxNUZFQ0FDOTAwOTdFQkM3IC8qIEFOR0xFLnBsaXN0IGluIENvcHlGaWxl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAzMTJCREIwOTE1RkVDOTFFMDA5
N0VCQzcgLyogQU5HTEUucGxpc3QgKi87IH07CiAJCTMxMkJEQjBFMTVGRUNBRTUwMDk3RUJDNyAv
KiBBTkdMRS50eHQgaW4gQ29weUZpbGVzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDMxMkJEQjBBMTVGRUNBM0EwMDk3RUJDNyAvKiBBTkdMRS50eHQgKi87IH07CkBAIC0xNCwx
MSArMjgsMTMgQEAKIAkJNDk5NTFDMEExNEI3QUFEODAwNjBFOTZFIC8qIEJ1aWx0SW5GdW5jdGlv
bkVtdWxhdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0OTk1MUMwNjE0QjdBQUQ4MDA2MEU5NkUgLyogQnVpbHRJbkZ1bmN0aW9uRW11bGF0b3IuaCAq
LzsgfTsKIAkJNUNCMTNGRDQxNzlEQjNGRDAwMUY4NTFEIC8qIERldGVjdENhbGxEZXB0aC5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0IxM0ZEMjE3
OURCM0ZEMDAxRjg1MUQgLyogRGV0ZWN0Q2FsbERlcHRoLmNwcCAqLzsgfTsKIAkJNUNCMTNGRDUx
NzlEQjNGRDAwMUY4NTFEIC8qIERldGVjdENhbGxEZXB0aC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNCMTNGRDMxNzlEQjNGRDAwMUY4NTFEIC8qIERl
dGVjdENhbGxEZXB0aC5oICovOyB9OworCQk1Q0IxM0ZFNDE3OUY0NjU4MDAxRjg1MUQgLyogRXhw
cmVzc2lvblBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1Q0IxM0ZERjE3OUY0NjU4MDAxRjg1MUQgLyogRXhwcmVzc2lvblBhcnNlci5jcHAg
Ki87IH07CisJCTVDQjEzRkU1MTc5RjQ2NTgwMDFGODUxRCAvKiBnbHNsYW5nX2xleC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0IxM0ZFMDE3OUY0
NjU4MDAxRjg1MUQgLyogZ2xzbGFuZ19sZXguY3BwICovOyB9OworCQk1Q0IxM0ZFNjE3OUY0NjU4
MDAxRjg1MUQgLyogZ2xzbGFuZ190YWIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNUNCMTNGRTExNzlGNDY1ODAwMUY4NTFEIC8qIGdsc2xhbmdfdGFi
LmNwcCAqLzsgfTsKKwkJNUNCMTNGRTcxNzlGNDY1ODAwMUY4NTFEIC8qIGdsc2xhbmdfdGFiLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0IxM0ZFMjE3
OUY0NjU4MDAxRjg1MUQgLyogZ2xzbGFuZ190YWIuaCAqLzsgfTsKKwkJNUNCMTNGRTgxNzlGNDY1
ODAwMUY4NTFEIC8qIFRva2VuaXplci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1Q0IxM0ZFMzE3OUY0NjU4MDAxRjg1MUQgLyogVG9rZW5pemVyLmNw
cCAqLzsgfTsKIAkJOTBEOUIxMDIxMkUxMURDQjAwMkQ0MjU1IC8qIENvbXBpbGVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwRDlCMEY5MTJFMTFE
Q0IwMDJENDI1NSAvKiBDb21waWxlci5jcHAgKi87IH07CiAJCTkwRDlCMTAzMTJFMTFEQ0IwMDJE
NDI1NSAvKiBFeHRlbnNpb25CZWhhdmlvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTBEOUIwRkExMkUxMURDQjAwMkQ0MjU1IC8qIEV4dGVuc2lvbkJl
aGF2aW9yLmggKi87IH07Ci0JCTkwRDlCMTA0MTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nX2xl
eC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MEQ5
QjBGQjEyRTExRENCMDAyRDQyNTUgLyogZ2xzbGFuZ19sZXguY3BwICovOyB9OwotCQk5MEQ5QjEw
NTEyRTExRENCMDAyRDQyNTUgLyogZ2xzbGFuZ190YWIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTBEOUIwRkMxMkUxMURDQjAwMkQ0MjU1IC8qIGds
c2xhbmdfdGFiLmNwcCAqLzsgfTsKLQkJOTBEOUIxMDYxMkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xh
bmdfdGFiLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MEQ5QjBGRDEyRTExRENCMDAyRDQyNTUgLyogZ2xzbGFuZ190YWIuaCAqLzsgfTsKIAkJOTBEOUIx
MDcxMkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xhbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwRDlCMEZFMTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5n
LmggKi87IH07CiAJCTkwRDlCMTA5MTJFMTFEQ0IwMDJENDI1NSAvKiBTZWFyY2hTeW1ib2wuY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTBEOUIxMDAx
MkUxMURDQjAwMkQ0MjU1IC8qIFNlYXJjaFN5bWJvbC5jcHAgKi87IH07CiAJCTkwRDlCMTBBMTJF
MTFEQ0IwMDJENDI1NSAvKiBTZWFyY2hTeW1ib2wuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkwRDlCMTAxMTJFMTFEQ0IwMDJENDI1NSAvKiBTZWFyY2hT
eW1ib2wuaCAqLzsgfTsKQEAgLTQ4LDcgKzY0LDYgQEAKIAkJQTI2NEY4QUYxNjk3NERFRDAwNkZB
QTVBIC8qIERpcmVjdGl2ZUhhbmRsZXJCYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBBMjY0Rjg5NjE2OTc0REVEMDA2RkFBNUEgLyogRGlyZWN0aXZl
SGFuZGxlckJhc2UuaCAqLzsgfTsKIAkJQTI2NEY4QjAxNjk3NERFRDAwNkZBQTVBIC8qIERpcmVj
dGl2ZVBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBMjY0Rjg5NzE2OTc0REVEMDA2RkFBNUEgLyogRGlyZWN0aXZlUGFyc2VyLmNwcCAqLzsg
fTsKIAkJQTI2NEY4QjExNjk3NERFRDAwNkZBQTVBIC8qIERpcmVjdGl2ZVBhcnNlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTI2NEY4OTgxNjk3NERF
RDAwNkZBQTVBIC8qIERpcmVjdGl2ZVBhcnNlci5oICovOyB9OwotCQlBMjY0RjhCMjE2OTc0REVE
MDA2RkFBNUEgLyogRXhwcmVzc2lvblBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMjY0Rjg5OTE2OTc0REVEMDA2RkFBNUEgLyogRXhwcmVz
c2lvblBhcnNlci5jcHAgKi87IH07CiAJCUEyNjRGOEIzMTY5NzRERUQwMDZGQUE1QSAvKiBFeHBy
ZXNzaW9uUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSBBMjY0Rjg5QTE2OTc0REVEMDA2RkFBNUEgLyogRXhwcmVzc2lvblBhcnNlci5oICovOyB9
OwogCQlBMjY0RjhCNDE2OTc0REVEMDA2RkFBNUEgLyogSW5wdXQuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTI2NEY4OUIxNjk3NERFRDAwNkZBQTVB
IC8qIElucHV0LmNwcCAqLzsgfTsKIAkJQTI2NEY4QjUxNjk3NERFRDAwNkZBQTVBIC8qIElucHV0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMjY0Rjg5
QzE2OTc0REVEMDA2RkFBNUEgLyogSW5wdXQuaCAqLzsgfTsKQEAgLTY1LDcgKzgwLDYgQEAKIAkJ
QTI2NEY4QzAxNjk3NERFRDAwNkZBQTVBIC8qIFNvdXJjZUxvY2F0aW9uLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBBMjY0RjhBNzE2OTc0REVEMDA2RkFB
NUEgLyogU291cmNlTG9jYXRpb24uaCAqLzsgfTsKIAkJQTI2NEY4QzExNjk3NERFRDAwNkZBQTVB
IC8qIFRva2VuLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEEyNjRGOEE4MTY5NzRERUQwMDZGQUE1QSAvKiBUb2tlbi5jcHAgKi87IH07CiAJCUEyNjRG
OEMyMTY5NzRERUQwMDZGQUE1QSAvKiBUb2tlbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gQTI2NEY4QTkxNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuLmgg
Ki87IH07Ci0JCUEyNjRGOEMzMTY5NzRERUQwMDZGQUE1QSAvKiBUb2tlbml6ZXIuY3BwIGluIFNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTI2NEY4QUExNjk3NERF
RDAwNkZBQTVBIC8qIFRva2VuaXplci5jcHAgKi87IH07CiAJCUEyNjRGOEM0MTY5NzRERUQwMDZG
QUE1QSAvKiBUb2tlbml6ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEEyNjRGOEFCMTY5NzRERUQwMDZGQUE1QSAvKiBUb2tlbml6ZXIuaCAqLzsgfTsK
IAkJQTI2NEY4QzgxNjk3NEUyQTAwNkZBQTVBIC8qIEhhc2hOYW1lcy5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTI2NEY4QzUxNjk3NEUyQTAwNkZBQTVB
IC8qIEhhc2hOYW1lcy5oICovOyB9OwogCQlBMjY0RjhDOTE2OTc0RTJBMDA2RkFBNUEgLyogVmFy
aWFibGVQYWNrZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQTI2NEY4QzYxNjk3NEUyQTAwNkZBQTVBIC8qIFZhcmlhYmxlUGFja2VyLmNwcCAqLzsg
fTsKQEAgLTExMCw2ICsxMjQsMTYgQEAKIAkJRkIzOUQ3NkUxMjAxMTBGQzAwMDg4RTY5IC8qIFNo
YWRlckxhbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEZCMzlEMkJGMTIwMEYzRTYwMDA4OEU2OSAvKiBTaGFkZXJMYW5nLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHVibGljLCApOyB9OyB9OwogLyogRW5kIFBCWEJ1aWxkRmlsZSBzZWN0
aW9uICovCiAKKy8qIEJlZ2luIFBCWENvbnRhaW5lckl0ZW1Qcm94eSBzZWN0aW9uICovCisJCTVD
QjEzRkRCMTc5RjQ0RUUwMDFGODUxRCAvKiBQQlhDb250YWluZXJJdGVtUHJveHkgKi8gPSB7CisJ
CQlpc2EgPSBQQlhDb250YWluZXJJdGVtUHJveHk7CisJCQljb250YWluZXJQb3J0YWwgPSBGQjM5
RDA3MDEyMDBFRDkyMDAwODhFNjkgLyogUHJvamVjdCBvYmplY3QgKi87CisJCQlwcm94eVR5cGUg
PSAxOworCQkJcmVtb3RlR2xvYmFsSURTdHJpbmcgPSA1Q0IxM0ZENjE3OUY0NEM4MDAxRjg1MUQ7
CisJCQlyZW1vdGVJbmZvID0gIkRlcml2ZWQgU291cmNlcyI7CisJCX07CisvKiBFbmQgUEJYQ29u
dGFpbmVySXRlbVByb3h5IHNlY3Rpb24gKi8KKwogLyogQmVnaW4gUEJYQ29weUZpbGVzQnVpbGRQ
aGFzZSBzZWN0aW9uICovCiAJCTMxMkJEQjBCMTVGRUNBQjAwMDk3RUJDNyAvKiBDb3B5RmlsZXMg
Ki8gPSB7CiAJCQlpc2EgPSBQQlhDb3B5RmlsZXNCdWlsZFBoYXNlOwpAQCAtMTQyLDE0ICsxNjYs
MTYgQEAKIAkJNDk5NTFDMDYxNEI3QUFEODAwNjBFOTZFIC8qIEJ1aWx0SW5GdW5jdGlvbkVtdWxh
dG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEJ1aWx0SW5GdW5jdGlvbkVt
dWxhdG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDQjEzRkQyMTc5REIzRkQw
MDFGODUxRCAvKiBEZXRlY3RDYWxsRGVwdGguY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gRGV0ZWN0Q2FsbERlcHRoLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJNUNCMTNGRDMxNzlEQjNGRDAwMUY4NTFEIC8qIERldGVjdENhbGxEZXB0aC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEZXRlY3RDYWxsRGVwdGguaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUNCMTNGREYxNzlGNDY1ODAwMUY4NTFEIC8qIEV4cHJlc3Np
b25QYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gRXhwcmVz
c2lvblBhcnNlci5jcHA7IHBhdGggPSBFeHByZXNzaW9uUGFyc2VyLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNUNCMTNGRTAxNzlGNDY1ODAwMUY4NTFEIC8qIGdsc2xhbmdfbGV4
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IGdsc2xhbmdfbGV4LmNw
cDsgcGF0aCA9IGdsc2xhbmdfbGV4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NUNCMTNGRTExNzlGNDY1ODAwMUY4NTFEIC8qIGdsc2xhbmdfdGFiLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IGdsc2xhbmdfdGFiLmNwcDsgcGF0aCA9IGdsc2xhbmdf
dGFiLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUNCMTNGRTIxNzlGNDY1ODAw
MUY4NTFEIC8qIGdsc2xhbmdfdGFiLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IGdsc2xhbmdfdGFiLmg7IHBhdGggPSBnbHNsYW5nX3RhYi5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1Q0IxM0ZFMzE3OUY0NjU4MDAxRjg1MUQgLyogVG9rZW5pemVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFRva2VuaXplci5jcHA7IHBhdGggPSBU
b2tlbml6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1RDdDNTlDNTEyMDhD
NjhCMDAxQzg3M0UgLyogQU5HTEUueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBw
YXRoID0gQU5HTEUueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEN0M1
OUM2MTIwOEM2OEIwMDFDODczRSAvKiBCYXNlLnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2Nv
bmZpZzsgcGF0aCA9IEJhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVEN0M1OUM3MTIwOEM2OEIwMDFDODczRSAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gRGVidWdSZWxlYXNlLnhjY29uZmlnOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQk5MEQ5QjBGOTEyRTExRENCMDAyRDQyNTUgLyogQ29tcGls
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ29tcGlsZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MEQ5QjBGQTEyRTExRENCMDAyRDQyNTUg
LyogRXh0ZW5zaW9uQmVoYXZpb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RXh0ZW5zaW9uQmVoYXZpb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTBEOUIw
RkIxMkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xhbmdfbGV4LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IGdsc2xhbmdfbGV4LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKLQkJOTBEOUIwRkMxMkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xhbmdfdGFiLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IGdsc2xhbmdfdGFiLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTBEOUIwRkQxMkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xh
bmdfdGFiLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGdsc2xhbmdfdGFiLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkwRDlCMEZFMTJFMTFEQ0IwMDJENDI1NSAv
KiBnbHNsYW5nLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IGdsc2xhbmcuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTBEOUIxMDAxMkUxMURDQjAwMkQ0MjU1IC8q
IFNlYXJjaFN5bWJvbC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBT
ZWFyY2hTeW1ib2wuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MEQ5QjEwMTEy
RTExRENCMDAyRDQyNTUgLyogU2VhcmNoU3ltYm9sLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFNlYXJjaFN5bWJvbC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MTc5LDcgKzIwNSw2IEBACiAJCUEyNjRGODk2MTY5NzRERUQwMDZGQUE1QSAvKiBEaXJlY3RpdmVI
YW5kbGVyQmFzZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXJlY3RpdmVI
YW5kbGVyQmFzZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0Rjg5NzE2OTc0
REVEMDA2RkFBNUEgLyogRGlyZWN0aXZlUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IERpcmVjdGl2ZVBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUEyNjRGODk4MTY5NzRERUQwMDZGQUE1QSAvKiBEaXJlY3RpdmVQYXJzZXIuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlyZWN0aXZlUGFyc2VyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUEyNjRGODk5MTY5NzRERUQwMDZGQUE1QSAvKiBFeHBy
ZXNzaW9uUGFyc2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEV4
cHJlc3Npb25QYXJzZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0Rjg5
QTE2OTc0REVEMDA2RkFBNUEgLyogRXhwcmVzc2lvblBhcnNlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBFeHByZXNzaW9uUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUEyNjRGODlCMTY5NzRERUQwMDZGQUE1QSAvKiBJbnB1dC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbnB1dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUEyNjRGODlDMTY5NzRERUQwMDZGQUE1QSAvKiBJbnB1dC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbnB1dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMTk2LDcgKzIyMSw2IEBACiAJCUEyNjRGOEE3MTY5NzRERUQwMDZGQUE1QSAvKiBT
b3VyY2VMb2NhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTb3VyY2VM
b2NhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0RjhBODE2OTc0REVE
MDA2RkFBNUEgLyogVG9rZW4uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gVG9rZW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0RjhBOTE2OTc0
REVEMDA2RkFBNUEgLyogVG9rZW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
VG9rZW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQTI2NEY4QUExNjk3NERFRDAw
NkZBQTVBIC8qIFRva2VuaXplci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBUb2tlbml6ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0RjhB
QjE2OTc0REVEMDA2RkFBNUEgLyogVG9rZW5pemVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFRva2VuaXplci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBMjY0
RjhDNTE2OTc0RTJBMDA2RkFBNUEgLyogSGFzaE5hbWVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEhhc2hOYW1lcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlB
MjY0RjhDNjE2OTc0RTJBMDA2RkFBNUEgLyogVmFyaWFibGVQYWNrZXIuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gVmFyaWFibGVQYWNrZXIuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjg1LDYgKzMwOSwxOSBAQAogCQkJbmFtZSA9IG1pc2M7CiAJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk1Q0IxM0ZERTE3OUY0NTdCMDAxRjg1
MUQgLyogRGVyaXZlZCBTb3VyY2VzICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQljaGls
ZHJlbiA9ICgKKwkJCQk1Q0IxM0ZERjE3OUY0NjU4MDAxRjg1MUQgLyogRXhwcmVzc2lvblBhcnNl
ci5jcHAgKi8sCisJCQkJNUNCMTNGRTAxNzlGNDY1ODAwMUY4NTFEIC8qIGdsc2xhbmdfbGV4LmNw
cCAqLywKKwkJCQk1Q0IxM0ZFMTE3OUY0NjU4MDAxRjg1MUQgLyogZ2xzbGFuZ190YWIuY3BwICov
LAorCQkJCTVDQjEzRkUyMTc5RjQ2NTgwMDFGODUxRCAvKiBnbHNsYW5nX3RhYi5oICovLAorCQkJ
CTVDQjEzRkUzMTc5RjQ2NTgwMDFGODUxRCAvKiBUb2tlbml6ZXIuY3BwICovLAorCQkJKTsKKwkJ
CW5hbWUgPSAiRGVyaXZlZCBTb3VyY2VzIjsKKwkJCXBhdGggPSBEZXJpdmVkU291cmNlcy9BTkdM
RTsKKwkJCXNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7CisJCX07CiAJCTVEN0M1OUM0
MTIwOEM2OEIwMDFDODczRSAvKiBDb25maWd1cmF0aW9ucyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCkBAIC0zNTksNiArMzk2LDcgQEAKIAkJRkIzOUQwNkUxMjAw
RUQ5MjAwMDg4RTY5ID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJ
CQk1Q0IxM0ZERTE3OUY0NTdCMDAxRjg1MUQgLyogRGVyaXZlZCBTb3VyY2VzICovLAogCQkJCTVE
N0M1OUM0MTIwOEM2OEIwMDFDODczRSAvKiBDb25maWd1cmF0aW9ucyAqLywKIAkJCQlBMjlCMTVF
OTE2OTc4QjdEMDAxMTFEOTcgLyogaW5jbHVkZSAqLywKIAkJCQkzMTJCREIwNzE1RkVDOEU2MDA5
N0VCQzcgLyogbWlzYyAqLywKQEAgLTQwOSw5ICs0NDcsNiBAQAogCQkJCUEwQUFCRTJBMTNBRkU4
MTAwMEYyRUJEMSAvKiBGb3JMb29wVW5yb2xsLmNwcCAqLywKIAkJCQlBMEFBQkUyQjEzQUZFODEw
MDBGMkVCRDEgLyogRm9yTG9vcFVucm9sbC5oICovLAogCQkJCTkwRDlCMEZFMTJFMTFEQ0IwMDJE
NDI1NSAvKiBnbHNsYW5nLmggKi8sCi0JCQkJOTBEOUIwRkIxMkUxMURDQjAwMkQ0MjU1IC8qIGds
c2xhbmdfbGV4LmNwcCAqLywKLQkJCQk5MEQ5QjBGQzEyRTExRENCMDAyRDQyNTUgLyogZ2xzbGFu
Z190YWIuY3BwICovLAotCQkJCTkwRDlCMEZEMTJFMTFEQ0IwMDJENDI1NSAvKiBnbHNsYW5nX3Rh
Yi5oICovLAogCQkJCUEyNjRGOEM1MTY5NzRFMkEwMDZGQUE1QSAvKiBIYXNoTmFtZXMuaCAqLywK
IAkJCQlGQjM5RDIyQTEyMDBGMzVBMDAwODhFNjkgLyogSW5mb1NpbmsuY3BwICovLAogCQkJCUZC
MzlEMjJCMTIwMEYzNUEwMDA4OEU2OSAvKiBJbmZvU2luay5oICovLApAQCAtNDg1LDcgKzUyMCw2
IEBACiAJCQkJQTI2NEY4OTYxNjk3NERFRDAwNkZBQTVBIC8qIERpcmVjdGl2ZUhhbmRsZXJCYXNl
LmggKi8sCiAJCQkJQTI2NEY4OTcxNjk3NERFRDAwNkZBQTVBIC8qIERpcmVjdGl2ZVBhcnNlci5j
cHAgKi8sCiAJCQkJQTI2NEY4OTgxNjk3NERFRDAwNkZBQTVBIC8qIERpcmVjdGl2ZVBhcnNlci5o
ICovLAotCQkJCUEyNjRGODk5MTY5NzRERUQwMDZGQUE1QSAvKiBFeHByZXNzaW9uUGFyc2VyLmNw
cCAqLywKIAkJCQlBMjY0Rjg5QTE2OTc0REVEMDA2RkFBNUEgLyogRXhwcmVzc2lvblBhcnNlci5o
ICovLAogCQkJCUEyNjRGODlCMTY5NzRERUQwMDZGQUE1QSAvKiBJbnB1dC5jcHAgKi8sCiAJCQkJ
QTI2NEY4OUMxNjk3NERFRDAwNkZBQTVBIC8qIElucHV0LmggKi8sCkBAIC01MDMsNyArNTM3LDYg
QEAKIAkJCQlBMjY0RjhBNzE2OTc0REVEMDA2RkFBNUEgLyogU291cmNlTG9jYXRpb24uaCAqLywK
IAkJCQlBMjY0RjhBODE2OTc0REVEMDA2RkFBNUEgLyogVG9rZW4uY3BwICovLAogCQkJCUEyNjRG
OEE5MTY5NzRERUQwMDZGQUE1QSAvKiBUb2tlbi5oICovLAotCQkJCUEyNjRGOEFBMTY5NzRERUQw
MDZGQUE1QSAvKiBUb2tlbml6ZXIuY3BwICovLAogCQkJCUEyNjRGOEFCMTY5NzRERUQwMDZGQUE1
QSAvKiBUb2tlbml6ZXIuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gcHJlcHJvY2Vzc29yOwpAQCAt
NTM5LDcgKzU3Miw2IEBACiAJCQkJOTBEOUIxMDMxMkUxMURDQjAwMkQ0MjU1IC8qIEV4dGVuc2lv
bkJlaGF2aW9yLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMEFBQkUyRDEzQUZFODEwMDBGMkVCRDEg
LyogRm9yTG9vcFVucm9sbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTBEOUIxMDcxMkUxMURDQjAw
MkQ0MjU1IC8qIGdsc2xhbmcuaCBpbiBIZWFkZXJzICovLAotCQkJCTkwRDlCMTA2MTJFMTFEQ0Iw
MDJENDI1NSAvKiBnbHNsYW5nX3RhYi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTI2NEY4QzgxNjk3
NEUyQTAwNkZBQTVBIC8qIEhhc2hOYW1lcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTI2NEY4QjUx
Njk3NERFRDAwNkZBQTVBIC8qIElucHV0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBMjY0RjhDRDE2
OTc2MkFBMDA2RkFBNUEgLyoga2hycGxhdGZvcm0uaCBpbiBIZWFkZXJzICovLApAQCAtNTY5LDYg
KzYwMSw3IEBACiAJCQkJQTI2NEY4Q0ExNjk3NEUyQTAwNkZBQTVBIC8qIFZhcmlhYmxlUGFja2Vy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MEQ5QjExQTEyRTExREQ2MDAyRDQyNTUgLyogVmVyc2lv
bkdMU0wuaCBpbiBIZWFkZXJzICovLAogCQkJCTVDQjEzRkQ1MTc5REIzRkQwMDFGODUxRCAvKiBE
ZXRlY3RDYWxsRGVwdGguaCBpbiBIZWFkZXJzICovLAorCQkJCTVDQjEzRkU3MTc5RjQ2NTgwMDFG
ODUxRCAvKiBnbHNsYW5nX3RhYi5oIGluIEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZv
ckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CkBAIC01ODgsNiArNjIxLDcgQEAK
IAkJCWJ1aWxkUnVsZXMgPSAoCiAJCQkpOwogCQkJZGVwZW5kZW5jaWVzID0gKAorCQkJCTVDQjEz
RkRDMTc5RjQ0RUUwMDFGODUxRCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovLAogCQkJKTsKIAkJ
CW5hbWUgPSBBTkdMRTsKIAkJCXByb2R1Y3ROYW1lID0gYW5nbGU7CkBAIC02MTcsMTAgKzY1MSwy
NyBAQAogCQkJcHJvamVjdFJvb3QgPSAiIjsKIAkJCXRhcmdldHMgPSAoCiAJCQkJRkIzOUQwRDAx
MjAwRjBFMzAwMDg4RTY5IC8qIEFOR0xFICovLAorCQkJCTVDQjEzRkQ2MTc5RjQ0QzgwMDFGODUx
RCAvKiBEZXJpdmVkIFNvdXJjZXMgKi8sCiAJCQkpOwogCQl9OwogLyogRW5kIFBCWFByb2plY3Qg
c2VjdGlvbiAqLwogCisvKiBCZWdpbiBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2Ugc2VjdGlvbiAq
LworCQk1Q0IxM0ZERDE3OUY0NEYzMDAxRjg1MUQgLyogU2hlbGxTY3JpcHQgKi8gPSB7CisJCQlp
c2EgPSBQQlhTaGVsbFNjcmlwdEJ1aWxkUGhhc2U7CisJCQlidWlsZEFjdGlvbk1hc2sgPSAyMTQ3
NDgzNjQ3OworCQkJZmlsZXMgPSAoCisJCQkpOworCQkJaW5wdXRQYXRocyA9ICgKKwkJCSk7CisJ
CQlvdXRwdXRQYXRocyA9ICgKKwkJCSk7CisJCQlydW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9j
ZXNzaW5nID0gMDsKKwkJCXNoZWxsUGF0aCA9IC9iaW4vc2g7CisJCQlzaGVsbFNjcmlwdCA9ICJt
a2RpciAtcCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9BTkdMRVwiXG5j
ZCBcIiR7QlVJTFRfUFJPRFVDVFNfRElSfS9EZXJpdmVkU291cmNlcy9BTkdMRVwiXG5cbi9iaW4v
bG4gLXNmaCBcIiR7U1JDUk9PVH1cIiAuXG5leHBvcnQgQU5HTEU9XCJBTkdMRVwiXG5cbm1ha2Ug
IC0tbm8tYnVpbHRpbi1ydWxlcyAtZiBcIkFOR0xFL0Rlcml2ZWRTb3VyY2VzLm1ha2VcIiAtaiBg
L3Vzci9zYmluL3N5c2N0bCAtbiBody5hdmFpbGNwdWAiOworCQl9OworLyogRW5kIFBCWFNoZWxs
U2NyaXB0QnVpbGRQaGFzZSBzZWN0aW9uICovCisKIC8qIEJlZ2luIFBCWFNvdXJjZXNCdWlsZFBo
YXNlIHNlY3Rpb24gKi8KIAkJRkIzOUQwQ0UxMjAwRjBFMzAwMDg4RTY5IC8qIFNvdXJjZXMgKi8g
PSB7CiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKQEAgLTY0MCwxMCArNjkxLDcgQEAK
IAkJCQlBMjY1NjdCRDE1OUMyMUIxMDAzOTg1MzkgLyogRGlyZWN0aXZlSGFuZGxlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBMjY0RjhBRTE2OTc0REVEMDA2RkFBNUEgLyogRGlyZWN0aXZlSGFu
ZGxlckJhc2UuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTI2NEY4QjAxNjk3NERFRDAwNkZBQTVB
IC8qIERpcmVjdGl2ZVBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlBMjY0RjhCMjE2OTc0
REVEMDA2RkFBNUEgLyogRXhwcmVzc2lvblBhcnNlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
MEFBQkUyQzEzQUZFODEwMDBGMkVCRDEgLyogRm9yTG9vcFVucm9sbC5jcHAgaW4gU291cmNlcyAq
LywKLQkJCQk5MEQ5QjEwNDEyRTExRENCMDAyRDQyNTUgLyogZ2xzbGFuZ19sZXguY3BwIGluIFNv
dXJjZXMgKi8sCi0JCQkJOTBEOUIxMDUxMkUxMURDQjAwMkQ0MjU1IC8qIGdsc2xhbmdfdGFiLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCUZCMzlEMjc5MTIwMEYzNUEwMDA4OEU2OSAvKiBJbmZvU2lu
ay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQjM5RDI3QjEyMDBGMzVBMDAwODhFNjkgLyogSW5p
dGlhbGl6ZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlGQjM5RDI3RDEyMDBGMzVBMDAwODhFNjkg
LyogSW5pdGlhbGl6ZURsbC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTY3Miw3ICs3MjAsNiBAQAog
CQkJCUZCMzlEMkE4MTIwMEYzNUEwMDA4OEU2OSAvKiBTaGFkZXJMYW5nLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUZCMzlEMkFBMTIwMEYzNUEwMDA4OEU2OSAvKiBTeW1ib2xUYWJsZS5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQlBMjY0RjhDMTE2OTc0REVEMDA2RkFBNUEgLyogVG9rZW4uY3BwIGlu
IFNvdXJjZXMgKi8sCi0JCQkJQTI2NEY4QzMxNjk3NERFRDAwNkZBQTVBIC8qIFRva2VuaXplci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBMEFBQkU0ODEzQUZFOTYxMDBGMkVCRDEgLyogVHJhbnNs
YXRvckVTU0wuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRkIzOUQyQUMxMjAwRjM1QTAwMDg4RTY5
IC8qIFRyYW5zbGF0b3JHTFNMLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTkwRDlCMTEzMTJFMTFE
RDYwMDJENDI1NSAvKiB1dGlsLmNwcCBpbiBTb3VyY2VzICovLApAQCAtNjgxLDEyICs3MjgsNDUg
QEAKIAkJCQlBMjY0RjhDOTE2OTc0RTJBMDA2RkFBNUEgLyogVmFyaWFibGVQYWNrZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJOTBEOUIxMTkxMkUxMURENjAwMkQ0MjU1IC8qIFZlcnNpb25HTFNM
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDQjEzRkQ0MTc5REIzRkQwMDFGODUxRCAvKiBEZXRl
Y3RDYWxsRGVwdGguY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNUNCMTNGRTQxNzlGNDY1ODAwMUY4
NTFEIC8qIEV4cHJlc3Npb25QYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNUNCMTNGRTUx
NzlGNDY1ODAwMUY4NTFEIC8qIGdsc2xhbmdfbGV4LmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTVD
QjEzRkU2MTc5RjQ2NTgwMDFGODUxRCAvKiBnbHNsYW5nX3RhYi5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk1Q0IxM0ZFODE3OUY0NjU4MDAxRjg1MUQgLyogVG9rZW5pemVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwog
CQl9OwogLyogRW5kIFBCWFNvdXJjZXNCdWlsZFBoYXNlIHNlY3Rpb24gKi8KIAorLyogQmVnaW4g
UEJYVGFyZ2V0RGVwZW5kZW5jeSBzZWN0aW9uICovCisJCTVDQjEzRkRDMTc5RjQ0RUUwMDFGODUx
RCAvKiBQQlhUYXJnZXREZXBlbmRlbmN5ICovID0geworCQkJaXNhID0gUEJYVGFyZ2V0RGVwZW5k
ZW5jeTsKKwkJCXRhcmdldCA9IDVDQjEzRkQ2MTc5RjQ0QzgwMDFGODUxRCAvKiBEZXJpdmVkIFNv
dXJjZXMgKi87CisJCQl0YXJnZXRQcm94eSA9IDVDQjEzRkRCMTc5RjQ0RUUwMDFGODUxRCAvKiBQ
QlhDb250YWluZXJJdGVtUHJveHkgKi87CisJCX07CisvKiBFbmQgUEJYVGFyZ2V0RGVwZW5kZW5j
eSBzZWN0aW9uICovCisKIC8qIEJlZ2luIFhDQnVpbGRDb25maWd1cmF0aW9uIHNlY3Rpb24gKi8K
KwkJNUNCMTNGRDgxNzlGNDRDODAwMUY4NTFEIC8qIERlYnVnICovID0geworCQkJaXNhID0gWENC
dWlsZENvbmZpZ3VyYXRpb247CisJCQlidWlsZFNldHRpbmdzID0geworCQkJCVBST0RVQ1RfTkFN
RSA9ICIkKFRBUkdFVF9OQU1FKSI7CisJCQl9OworCQkJbmFtZSA9IERlYnVnOworCQl9OworCQk1
Q0IxM0ZEOTE3OUY0NEM4MDAxRjg1MUQgLyogUmVsZWFzZSAqLyA9IHsKKwkJCWlzYSA9IFhDQnVp
bGRDb25maWd1cmF0aW9uOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05BTUUg
PSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBSZWxlYXNlOworCQl9OworCQk1
Q0IxM0ZEQTE3OUY0NEM4MDAxRjg1MUQgLyogUHJvZHVjdGlvbiAqLyA9IHsKKwkJCWlzYSA9IFhD
QnVpbGRDb25maWd1cmF0aW9uOworCQkJYnVpbGRTZXR0aW5ncyA9IHsKKwkJCQlQUk9EVUNUX05B
TUUgPSAiJChUQVJHRVRfTkFNRSkiOworCQkJfTsKKwkJCW5hbWUgPSBQcm9kdWN0aW9uOworCQl9
OwogCQk1RDdDNTlEQjEyMDhDNkMzMDAxQzg3M0UgLyogUHJvZHVjdGlvbiAqLyA9IHsKIAkJCWlz
YSA9IFhDQnVpbGRDb25maWd1cmF0aW9uOwogCQkJYmFzZUNvbmZpZ3VyYXRpb25SZWZlcmVuY2Ug
PSA1RDdDNTlDNjEyMDhDNjhCMDAxQzg3M0UgLyogQmFzZS54Y2NvbmZpZyAqLzsKQEAgLTczMyw2
ICs4MTMsMTYgQEAKIC8qIEVuZCBYQ0J1aWxkQ29uZmlndXJhdGlvbiBzZWN0aW9uICovCiAKIC8q
IEJlZ2luIFhDQ29uZmlndXJhdGlvbkxpc3Qgc2VjdGlvbiAqLworCQk1Q0IxM0ZENzE3OUY0NEM4
MDAxRjg1MUQgLyogQnVpbGQgY29uZmlndXJhdGlvbiBsaXN0IGZvciBQQlhBZ2dyZWdhdGVUYXJn
ZXQgIkRlcml2ZWQgU291cmNlcyIgKi8gPSB7CisJCQlpc2EgPSBYQ0NvbmZpZ3VyYXRpb25MaXN0
OworCQkJYnVpbGRDb25maWd1cmF0aW9ucyA9ICgKKwkJCQk1Q0IxM0ZEODE3OUY0NEM4MDAxRjg1
MUQgLyogRGVidWcgKi8sCisJCQkJNUNCMTNGRDkxNzlGNDRDODAwMUY4NTFEIC8qIFJlbGVhc2Ug
Ki8sCisJCQkJNUNCMTNGREExNzlGNDRDODAwMUY4NTFEIC8qIFByb2R1Y3Rpb24gKi8sCisJCQkp
OworCQkJZGVmYXVsdENvbmZpZ3VyYXRpb25Jc1Zpc2libGUgPSAwOworCQkJZGVmYXVsdENvbmZp
Z3VyYXRpb25OYW1lID0gUHJvZHVjdGlvbjsKKwkJfTsKIAkJRkIzOUQwNzMxMjAwRUQ5MjAwMDg4
RTY5IC8qIEJ1aWxkIGNvbmZpZ3VyYXRpb24gbGlzdCBmb3IgUEJYUHJvamVjdCAiQU5HTEUiICov
ID0gewogCQkJaXNhID0gWENDb25maWd1cmF0aW9uTGlzdDsKIAkJCWJ1aWxkQ29uZmlndXJhdGlv
bnMgPSAoCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>