<?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>189986</bug_id>
          
          <creation_ts>2018-09-25 21:39:51 -0700</creation_ts>
          <short_desc>[WHLSL] Pointers should have automatically-generated equality checks</short_desc>
          <delta_ts>2018-10-13 14:51:18 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>189202</blocked>
    
    <blocked>189210</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fpizlo</cc>
    
    <cc>rmorisset</cc>
    
    <cc>tdenney</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1463507</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-25 21:39:51 -0700</bug_when>
    <thetext>[WHLSL] Pointers should have automatically-generated equality checks</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463508</commentid>
    <comment_count>1</comment_count>
      <attachid>350845</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-25 21:46:08 -0700</bug_when>
    <thetext>Created attachment 350845
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463510</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-09-25 21:48:31 -0700</bug_when>
    <thetext>Attachment 350845 did not pass style-queue:


ERROR: Tools/WebGPUShadingLanguageRI/Metal/WHLSL Tests/WHLSL Tests.xcodeproj/project.pbxproj:787:  developmentRegion is not English.  [xcodeproj/settings] [5]
Total errors found: 1 in 14 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463518</commentid>
    <comment_count>3</comment_count>
      <attachid>350847</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-09-25 22:11:33 -0700</bug_when>
    <thetext>Created attachment 350847
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1463519</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-09-25 22:14:29 -0700</bug_when>
    <thetext>Attachment 350847 did not pass style-queue:


ERROR: Tools/WebGPUShadingLanguageRI/Metal/WHLSL Tests/WHLSL Tests.xcodeproj/project.pbxproj:787:  developmentRegion is not English.  [xcodeproj/settings] [5]
Total errors found: 1 in 15 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1464644</commentid>
    <comment_count>5</comment_count>
      <attachid>350847</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-28 17:48:41 -0700</bug_when>
    <thetext>Comment on attachment 350847
Patch

Clearing flags on attachment: 350847

Committed r236628: &lt;https://trac.webkit.org/changeset/236628&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1464645</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-09-28 17:48:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1464647</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-09-28 17:49:21 -0700</bug_when>
    <thetext>&lt;rdar://problem/44880171&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468799</commentid>
    <comment_count>8</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-10-13 14:23:03 -0700</bug_when>
    <thetext>Migrated to https://api.github.com/repos/gpuweb/WHLSL/issues/22</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468842</commentid>
    <comment_count>9</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-10-13 14:51:18 -0700</bug_when>
    <thetext>https://github.com/gpuweb/WHLSL/issues/22</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350845</attachid>
            <date>2018-09-25 21:46:08 -0700</date>
            <delta_ts>2018-09-25 22:11:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189986-20180925214607.patch</filename>
            <type>text/plain</type>
            <size>85679</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NDc2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTIyZDA0YmExNmZlYzM3ZWZkZGJmNTAwMWQzODc4OGEx
ZWEwYThiNC4uOTg3MzFhMzEyMTg4NWJkM2VmZjQwMzgzMzliZGY0MGE1MDVkNDBlZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU1
IEBACisyMDE4LTA5LTI1ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CisKKyAgICAgICAgW1dITFNMXSBQb2ludGVycyBzaG91bGQgaGF2ZSBhdXRvbWF0aWNhbGx5LWdl
bmVyYXRlZCBlcXVhbGl0eSBjaGVja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4OTk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEMgYWxsb3dzIGZvciBwb2ludGVyIGVxdWFsaXR5LCBhbmQgd2UgbmVl
ZCBpdCBzbyBwZW9wbGUgY2FuIGRvIG51bGwgY2hlY2tzLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
YWxzbyBkb2VzIHNvbWUgZ2VuZXJhbCBjbGVhbnVwLgorCisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvQWxsLmpzOiBFdmVyeXRoaW5nIHRoZSBsYXRlIGNoZWNrZXIgZG9lcyBpcyBu
byBsb25nZXIgbmVjZXNzYXJ5LgorICAgICAgICBUaGUgbGFzdCB0aGluZyBpdCB3YXMgZG9pbmcg
d2FzIG1ha2luZyBzdXJlIHRoYXQgb25seSBwcmltaXRpdmUgdHlwZXMgYXJlIGluIHJlc291cmNl
cywgYnV0CisgICAgICAgIGl0J3MgdG90YWxseSByZWFzb25hYmxlIHRvIHB1dCBzdHJ1Y3RzIGFu
ZCBhcnJheXMgaW4gcmVzb3VyY2VzLCBzbyBJIHJlbW92ZWQgdGhpcyBwYXNzLiBXZQorICAgICAg
ICBzdGlsbCBoYXZlIHRvIGFkZCBhIGNoZWNrIHRvIG1ha2Ugc3VyZSByZXNvdXJjZXMgY2FuJ3Qg
bGl2ZSB3aXRoaW4gcmVzb3VyY2VzLCBidXQgSSBleHBlY3QKKyAgICAgICAgdGhhdCB3aWxsIGJl
IGRvbmUgaW4gdGhlIHNhbWUgcGxhY2UgdGhhdCBzZW1hbnRpY3MgYXJlIGNoZWNrZWQuCisgICAg
ICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsb2NhdGVBdEVudHJ5UG9pbnRzLmpzOgor
ICAgICAgICAoYWxsb2NhdGVBdEVudHJ5UG9pbnRzLnVwZGF0ZUZ1bmN0aW9uLlVwZGF0ZUZ1bmN0
aW9ucy5wcm90b3R5cGUuX2FkZFZhcmlhYmxlRGVjbGFyYXRpb24pOgorICAgICAgICBOYW1lIHRo
ZSBnbG9iYWwgc3RydWN0IGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuCisgICAgICAgICogV2ViR1BV
U2hhZGluZ0xhbmd1YWdlUkkvQ2FsbEV4cHJlc3Npb24uanM6IAorICAgICAgICAoQ2FsbEV4cHJl
c3Npb24ucHJvdG90eXBlLl9yZXNvbHZlQnlJbnN0YW50aWF0aW9uKTogQ2xlYW51cAorICAgICAg
ICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBlLl9yZXNvbHZlV2l0aE9wZXJhdG9yQW5kZXJJbmRl
eGVyKTogRGl0dG8KKyAgICAgICAgKENhbGxFeHByZXNzaW9uLnByb3RvdHlwZS5fcmVzb2x2ZVdp
dGhPcGVyYXRvckxlbmd0aCk6IERpdHRvCisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5
cGUuX3Jlc29sdmVXaXRoUmVmZXJlbmNlQ29tcGFyYXRvcik6IEFkZCBzdXBwb3J0IHRvIGF1dG9t
YXRpY2FsbHkKKyAgICAgICAgZ2VuZXJhdGUgcG9pbnRlciBlcXVhbGl0eSBOYXRpdmVGdW5jcy4K
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FUHRyLmpzOiBJbXBsZW1lbnQgcG9p
bnRlciBlcXVhbGl0eSBpbiB0aGUgaW50ZXJwcmV0ZXIuCisgICAgICAgICogV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTGF0ZUNoZWNrZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTGF5b3V0QnVmZmVycy5qczogUmVuYW1lZCBmcm9tIFRvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL0xhdGVDaGVja0FuZExheW91dEJ1ZmZlcnMuanMuCisgICAgICAg
IChsYXlvdXRCdWZmZXJzKToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRh
bC9XSExTTCBUZXN0cy9XSExTTCBUZXN0cy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmMuanM6CisgICAgICAgICog
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvT3BlcmF0b3JBcnJheVJlZkxlbmd0aC5qczoKKyAgICAg
ICAgKE9wZXJhdG9yQXJyYXlSZWZMZW5ndGgucHJvdG90eXBlLmluc3RhbnRpYXRlSW1wbGVtZW50
YXRpb24pOgorICAgICAgICAoT3BlcmF0b3JBcnJheVJlZkxlbmd0aCk6CisgICAgICAgICogV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFyZS5qczoKKyAgICAgICAgKGxldC5wcmVwYXJlKToK
KyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sOgorICAgICAgICAq
IFdlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9UZXN0LmpzOgorICAgICAgICAodGVzdHMudGVybmFyeUV4cHJlc3Npb24p
OgorICAgICAgICAodGVzdHMuYnJlYWspOiBTcGVlZCB1cCB0ZXN0aW5nIHRpbWUKKyAgICAgICAg
KHRlc3RzLmRvV2hpbGUpOiBEaXR0bworICAgICAgICAodGVzdHMuZm9yTG9vcCk6IERpdHRvCisg
ICAgICAgICh0ZXN0cy5hdG9taWNzKTogRGl0dG8KKyAgICAgICAgKHRlc3RzLmF0b21pY3NOdWxs
KTogRGl0dG8KKyAgICAgICAgKHRlc3RzLnBvaW50ZXJFcXVhbGl0eSk6IFRlc3QgcG9pbnRlciBl
cXVhbGl0eQorICAgICAgICAodGVzdHMuc3RhbmRhcmRMaWJyYXJ5RGV2aWNlUG9pbnRlcnMpOgor
ICAgICAgICAodGVzdHMuZGV2aWNlUHRyUHRyKTogRGVsZXRlZC4KKyAgICAgICAgKHRlc3RzLnRo
cmVhZGdyb3VwUHRyUHRyKTogRGVsZXRlZC4KKyAgICAgICAgKHRlc3RzLmNvbnN0YW50UHRyUHRy
KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1s
OgorCiAyMDE4LTA5LTI1ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgog
CiAgICAgICAgIFtNZWRpYVN0cmVhbV0gVXBkYXRlIGNvbnN0cmFpbnRzIHN1cHBvcnRlZCBieSBn
ZXREaXNwbGF5TWVkaWEKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0FsbC5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwppbmRleCA3MDM5
MjUyZjIwODMzYWE2ODFiMDZiYWI1NTY3OTI1OWRiOTFjNjgzLi5iYTY1Y2M1ZDU1MWRkZWRlMDE4
ZWJmZDM1ZmIwMzNhNTBkYzI5MzYyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFu
Z3VhZ2VSSS9BbGwuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpz
CkBAIC0xMDgsOCArMTA4LDcgQEAgbG9hZCgiSW5saW5lci5qcyIpOwogbG9hZCgiSW50TGl0ZXJh
bC5qcyIpOwogbG9hZCgiSW50TGl0ZXJhbFR5cGUuanMiKTsKIGxvYWQoIkludHJpbnNpY3MuanMi
KTsKLWxvYWQoIkxhdGVDaGVja0FuZExheW91dEJ1ZmZlcnMuanMiKTsKLWxvYWQoIkxhdGVDaGVj
a2VyLmpzIik7Citsb2FkKCJMYXlvdXRCdWZmZXJzLmpzIik7CiBsb2FkKCJMZXhlci5qcyIpOwog
bG9hZCgiTGV4ZXJUb2tlbi5qcyIpOwogbG9hZCgiTGl0ZXJhbFR5cGVDaGVja2VyLmpzIik7CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGxvY2F0ZUF0RW50cnlQ
b2ludHMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGxvY2F0ZUF0RW50cnlQ
b2ludHMuanMKaW5kZXggYjg3NDdlNjM4ODFmZjRjZWE2YzBiZTMzZDAwOGUyNGRhZGE4YzZmMS4u
MmNkZTUzZmYwMGRjZWQ4Mjg4MjlmOTkxMjc0NTk5ZTQxNGI1ODI4YyAxMDA2NDQKLS0tIGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsb2NhdGVBdEVudHJ5UG9pbnRzLmpzCisrKyBi
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbG9jYXRlQXRFbnRyeVBvaW50cy5qcwpA
QCAtMTQyLDcgKzE0Miw3IEBAIGZ1bmN0aW9uIGFsbG9jYXRlQXRFbnRyeVBvaW50cyhwcm9ncmFt
KQogCiAgICAgICAgICAgICBfYWRkVmFyaWFibGVEZWNsYXJhdGlvbigpCiAgICAgICAgICAgICB7
Ci0gICAgICAgICAgICAgICAgdGhpcy5fdmFyaWFibGVEZWNsID0gbmV3IFZhcmlhYmxlRGVjbChm
dW5jLm9yaWdpbiwgbnVsbCwgZ2xvYmFsU3RydWN0VHlwZVJlZiwgbnVsbCk7CisgICAgICAgICAg
ICAgICAgdGhpcy5fdmFyaWFibGVEZWNsID0gbmV3IFZhcmlhYmxlRGVjbChmdW5jLm9yaWdpbiwg
Imdsb2JhbCBzdHJ1Y3QiLCBnbG9iYWxTdHJ1Y3RUeXBlUmVmLCBudWxsKTsKICAgICAgICAgICAg
ICAgICB0aGlzLm1ha2VHbG9iYWxTdHJ1Y3RWYXJpYWJsZVJlZiA9ICgpID0+IG5ldyBNYWtlUHRy
RXhwcmVzc2lvbihmdW5jLm9yaWdpbiwgVmFyaWFibGVSZWYud3JhcCh0aGlzLl92YXJpYWJsZURl
Y2wpKTsKICAgICAgICAgICAgICAgICBmdW5jLmJvZHkuc3RhdGVtZW50cy51bnNoaWZ0KHRoaXMu
X3ZhcmlhYmxlRGVjbCk7CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9DYWxsRXhwcmVzc2lvbi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL0NhbGxFeHByZXNzaW9uLmpzCmluZGV4IGI0YzBkYTc4NzczMGExYjM4ODEwYzhi
NTk0MzE3ODQ5MDlkZGIzZTAuLjA0YmUyZGE2NmQ3OGI5ZjhhZWVlZTliNTYzYjA4MjQzZTEyYTEy
M2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNz
aW9uLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNzaW9u
LmpzCkBAIC0xMDIsNiArMTAyLDExIEBAIGNsYXNzIENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhw
cmVzc2lvbiB7CiAgICAgICAgICAgICBmdW5jID0gdGhpcy5fcmVzb2x2ZVdpdGhPcGVyYXRvckFu
ZGVySW5kZXhlcihwcm9ncmFtKTsKICAgICAgICAgZWxzZSBpZiAodGhpcy5uYW1lID09ICJvcGVy
YXRvci5sZW5ndGgiKQogICAgICAgICAgICAgZnVuYyA9IHRoaXMuX3Jlc29sdmVXaXRoT3BlcmF0
b3JMZW5ndGgocHJvZ3JhbSk7CisgICAgICAgIGVsc2UgaWYgKHRoaXMubmFtZSA9PSAib3BlcmF0
b3I9PSIgJiYgdGhpcy5hcmd1bWVudFR5cGVzLmxlbmd0aCA9PSAyCisgICAgICAgICAgICAmJiAo
dGhpcy5hcmd1bWVudFR5cGVzWzBdIGluc3RhbmNlb2YgTnVsbFR5cGUgfHwgdGhpcy5hcmd1bWVu
dFR5cGVzWzBdIGluc3RhbmNlb2YgUmVmZXJlbmNlVHlwZSkKKyAgICAgICAgICAgICYmICh0aGlz
LmFyZ3VtZW50VHlwZXNbMV0gaW5zdGFuY2VvZiBOdWxsVHlwZSB8fCB0aGlzLmFyZ3VtZW50VHlw
ZXNbMV0gaW5zdGFuY2VvZiBSZWZlcmVuY2VUeXBlKQorICAgICAgICAgICAgJiYgdGhpcy5hcmd1
bWVudFR5cGVzWzBdLmVxdWFscyh0aGlzLmFyZ3VtZW50VHlwZXNbMV0pKQorICAgICAgICAgICAg
ICAgIGZ1bmMgPSB0aGlzLl9yZXNvbHZlV2l0aFJlZmVyZW5jZUNvbXBhcmF0b3IocHJvZ3JhbSk7
CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIHJldHVybiBudWxsOwogCkBAIC0xMTksMTcgKzEy
NCwxNyBAQCBjbGFzcyBDYWxsRXhwcmVzc2lvbiBleHRlbmRzIEV4cHJlc3Npb24gewogICAgICAg
ICBjb25zdCBhZGRyZXNzU3BhY2UgPSBhcnJheVJlZlR5cGUuYWRkcmVzc1NwYWNlOwogCiAgICAg
ICAgIC8vIFRoZSBsYXRlciBjaGVja0xpdGVyYWxUeXBlcyBzdGFnZSB3aWxsIHZlcmlmeSB0aGF0
IHRoZSBsaXRlcmFsIGNhbiBiZSByZXByZXNlbnRlZCBhcyBhIHVpbnQuCi0gICAgICAgIGNvbnN0
IHVpbnRUeXBlID0gVHlwZVJlZi53cmFwKHByb2dyYW0udHlwZXMuZ2V0KCJ1aW50IikpOworICAg
ICAgICBjb25zdCB1aW50VHlwZSA9IFR5cGVSZWYud3JhcChwcm9ncmFtLmludHJpbnNpY3MudWlu
dCk7CiAgICAgICAgIGluZGV4VHlwZS50eXBlID0gdWludFR5cGU7CiAKICAgICAgICAgY29uc3Qg
ZWxlbWVudFR5cGUgPSB0aGlzLmFyZ3VtZW50VHlwZXNbMF0uZWxlbWVudFR5cGU7Ci0gICAgICAg
IHRoaXMucmVzdWx0VHlwZSA9IHRoaXMuX3JldHVyblR5cGUgPSBUeXBlUmVmLndyYXAobmV3IFB0
clR5cGUodGhpcy5vcmlnaW4sIGFkZHJlc3NTcGFjZSwgVHlwZVJlZi53cmFwKGVsZW1lbnRUeXBl
KSkpCisgICAgICAgIHRoaXMucmVzdWx0VHlwZSA9IFR5cGVSZWYud3JhcChuZXcgUHRyVHlwZSh0
aGlzLm9yaWdpbiwgYWRkcmVzc1NwYWNlLCBUeXBlUmVmLndyYXAoZWxlbWVudFR5cGUpKSkKIAot
ICAgICAgICBsZXQgYXJyYXlSZWZBY2Nlc3NvciA9IG5ldyBPcGVyYXRvckFuZGVySW5kZXhlcih0
aGlzLnJldHVyblR5cGUudG9TdHJpbmcoKSwgYWRkcmVzc1NwYWNlKTsKKyAgICAgICAgbGV0IGFy
cmF5UmVmQWNjZXNzb3IgPSBuZXcgT3BlcmF0b3JBbmRlckluZGV4ZXIodGhpcy5yZXN1bHRUeXBl
LnRvU3RyaW5nKCksIGFkZHJlc3NTcGFjZSk7CiAgICAgICAgIGNvbnN0IGZ1bmMgPSBuZXcgTmF0
aXZlRnVuYyh0aGlzLm9yaWdpbiwgIm9wZXJhdG9yJltdIiwgdGhpcy5yZXN1bHRUeXBlLCBbCiAg
ICAgICAgICAgICBuZXcgRnVuY1BhcmFtZXRlcih0aGlzLm9yaWdpbiwgbnVsbCwgYXJyYXlSZWZU
eXBlKSwKICAgICAgICAgICAgIG5ldyBGdW5jUGFyYW1ldGVyKHRoaXMub3JpZ2luLCBudWxsLCB1
aW50VHlwZSkKLSAgICAgICAgXSwgZmFsc2UpOworICAgICAgICBdKTsKIAogICAgICAgICBhcnJh
eVJlZkFjY2Vzc29yLmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYyk7CiAKQEAgLTEzOCwx
NCArMTQzLDE0IEBAIGNsYXNzIENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7CiAK
ICAgICBfcmVzb2x2ZVdpdGhPcGVyYXRvckxlbmd0aChwcm9ncmFtKQogICAgIHsKLSAgICAgICAg
dGhpcy5yZXN1bHRUeXBlID0gdGhpcy5fcmV0dXJuVHlwZSA9IFR5cGVSZWYud3JhcChwcm9ncmFt
LnR5cGVzLmdldCgidWludCIpKTsKKyAgICAgICAgdGhpcy5yZXN1bHRUeXBlID0gVHlwZVJlZi53
cmFwKHByb2dyYW0uaW50cmluc2ljcy51aW50KTsKIAogICAgICAgICBpZiAodGhpcy5hcmd1bWVu
dFR5cGVzWzBdLmlzQXJyYXkpIHsKICAgICAgICAgICAgIGNvbnN0IGFycmF5VHlwZSA9IHRoaXMu
YXJndW1lbnRUeXBlc1swXTsKICAgICAgICAgICAgIGNvbnN0IGZ1bmMgPSBuZXcgTmF0aXZlRnVu
Yyh0aGlzLm9yaWdpbiwgIm9wZXJhdG9yLmxlbmd0aCIsIHRoaXMucmVzdWx0VHlwZSwgWwogICAg
ICAgICAgICAgICAgIG5ldyBGdW5jUGFyYW1ldGVyKHRoaXMub3JpZ2luLCBudWxsLCBhcnJheVR5
cGUpCi0gICAgICAgICAgICBdLCBmYWxzZSk7Ci0gICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0
aW9uID0gKGFyZ3MsIG5vZGUpID0+IEVQdHIuYm94KGFycmF5VHlwZS5udW1FbGVtZW50c1ZhbHVl
KTsKKyAgICAgICAgICAgIF0pOworICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChh
cmdzKSA9PiBFUHRyLmJveChhcnJheVR5cGUubnVtRWxlbWVudHNWYWx1ZSk7CiAgICAgICAgICAg
ICByZXR1cm4gZnVuYzsKICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmFyZ3VtZW50VHlwZXNbMF0u
aXNBcnJheVJlZikgewogICAgICAgICAgICAgY29uc3QgYXJyYXlSZWZUeXBlID0gdGhpcy5hcmd1
bWVudFR5cGVzWzBdOwpAQCAtMTUzLDEyICsxNTgsMzggQEAgY2xhc3MgQ2FsbEV4cHJlc3Npb24g
ZXh0ZW5kcyBFeHByZXNzaW9uIHsKICAgICAgICAgICAgIGNvbnN0IG9wZXJhdG9yTGVuZ3RoID0g
bmV3IE9wZXJhdG9yQXJyYXlSZWZMZW5ndGgoYXJyYXlSZWZUeXBlLnRvU3RyaW5nKCksIGFkZHJl
c3NTcGFjZSk7CiAgICAgICAgICAgICBjb25zdCBmdW5jID0gbmV3IE5hdGl2ZUZ1bmModGhpcy5v
cmlnaW4sICJvcGVyYXRvci5sZW5ndGgiLCB0aGlzLnJlc3VsdFR5cGUsIFsKICAgICAgICAgICAg
ICAgICBuZXcgRnVuY1BhcmFtZXRlcih0aGlzLm9yaWdpbiwgbnVsbCwgYXJyYXlSZWZUeXBlKQot
ICAgICAgICAgICAgXSwgZmFsc2UpOworICAgICAgICAgICAgXSk7CiAgICAgICAgICAgICBvcGVy
YXRvckxlbmd0aC5pbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpOwogICAgICAgICAgICAg
cmV0dXJuIGZ1bmM7CiAgICAgICAgIH0gZWxzZQogICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBl
RXJyb3IodGhpcy5vcmlnaW4ub3JpZ2luU3RyaW5nLCBgRXhwZWN0ZWQgJHt0aGlzLmFyZ3VtZW50
VHlwZXNbMF19IHRvIGJlIGFycmF5L2FycmF5IHJlZiB0eXBlIGZvciBvcGVyYXRvci5sZW5ndGhg
KTsKICAgICB9CisKKyAgICBfcmVzb2x2ZVdpdGhSZWZlcmVuY2VDb21wYXJhdG9yKHByb2dyYW0p
CisgICAgeworICAgICAgICBsZXQgYXJndW1lbnRUeXBlID0gdGhpcy5hcmd1bWVudFR5cGVzWzBd
OworICAgICAgICBpZiAoYXJndW1lbnRUeXBlIGluc3RhbmNlb2YgTnVsbFR5cGUpCisgICAgICAg
ICAgICBhcmd1bWVudFR5cGUgPSB0aGlzLmFyZ3VtZW50VHlwZXNbMV07CisgICAgICAgIGlmIChh
cmd1bWVudFR5cGUgaW5zdGFuY2VvZiBOdWxsVHlwZSkgeworICAgICAgICAgICAgLy8gV2UgZW5j
b3VudGVyZWQgIm51bGwgPT0gbnVsbCIuCisgICAgICAgICAgICAvLyBUaGUgdHlwZSBpc24ndCBv
YnNlcnZhYmxlLCBzbyB3ZSBjYW4gcGljayB3aGF0ZXZlciB3ZSB3YW50LgorICAgICAgICAgICAg
Ly8gRklYTUU6IFRoaXMgY2FuIHByb2JhYmx5IGJlIGdlbmVyYWxpemVkLCB1c2luZyB0aGUgInBy
ZWZlcnJlZCB0eXBlIiBpbmZyYXN0cnVjdHVyZSB1c2VkIGJ5IGdlbmVyaWMgbGl0ZXJhbHMKKyAg
ICAgICAgICAgIGFyZ3VtZW50VHlwZSA9IG5ldyBQdHJUeXBlKHRoaXMub3JpZ2luLCAidGhyZWFk
IiwgcHJvZ3JhbS5pbnRyaW5zaWNzLmludCk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5yZXN1
bHRUeXBlID0gVHlwZVJlZi53cmFwKHByb2dyYW0uaW50cmluc2ljcy5ib29sKTsKKyAgICAgICAg
Y29uc3QgZnVuYyA9IG5ldyBOYXRpdmVGdW5jKHRoaXMub3JpZ2luLCAib3BlcmF0b3I9PSIsIHRo
aXMucmVzdWx0VHlwZSwgWworICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIodGhpcy5vcmln
aW4sIG51bGwsIGFyZ3VtZW50VHlwZSksCisgICAgICAgICAgICBuZXcgRnVuY1BhcmFtZXRlcih0
aGlzLm9yaWdpbiwgbnVsbCwgYXJndW1lbnRUeXBlKQorICAgICAgICBdKTsKKyAgICAgICAgZnVu
Yy5pbXBsZW1lbnRhdGlvbiA9IChbbGhzLCByaHNdKSA9PiB7CisgICAgICAgICAgICBsZXQgbGVm
dCA9IGxocy5sb2FkVmFsdWUoKTsKKyAgICAgICAgICAgIGxldCByaWdodCA9IHJocy5sb2FkVmFs
dWUoKTsKKyAgICAgICAgICAgIGlmIChsZWZ0ICYmIHJpZ2h0KQorICAgICAgICAgICAgICAgIHJl
dHVybiBFUHRyLmJveChsZWZ0LmVxdWFscyhyaWdodCkpOworICAgICAgICAgICAgcmV0dXJuIEVQ
dHIuYm94KGxlZnQgPT0gcmlnaHQpOworICAgICAgICB9OworICAgICAgICByZXR1cm4gZnVuYzsK
KyAgICB9CiAgICAgCiAgICAgcmVzb2x2ZVRvT3ZlcmxvYWQob3ZlcmxvYWQpCiAgICAgewpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRVB0ci5qcyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL0VQdHIuanMKaW5kZXggZTI1ODI2YzZhYzQzNmEwNzk3Njcy
MWY4ZGFjODY4OWJlNjVjZmM5OC4uZWY1YjViNDliOTY2NjI1ZGY2MDVkY2E4YmNlYmZiMDFmNzMw
NWE5NiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRVB0ci5qcwor
KysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FUHRyLmpzCkBAIC03OSw2ICs3OSwx
MSBAQCBjbGFzcyBFUHRyIHsKICAgICAgICAgZm9yIChsZXQgaSA9IHNpemU7IGktLTspCiAgICAg
ICAgICAgICB0aGlzLnNldChpLCBvdGhlci5nZXQoaSkpOwogICAgIH0KKworICAgIGVxdWFscyhv
dGhlcikKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLmJ1ZmZlciA9PSBvdGhlci5idWZmZXIg
JiYgdGhpcy5vZmZzZXQgPT0gb3RoZXIub2Zmc2V0OworICAgIH0KICAgICAKICAgICB0b1N0cmlu
ZygpCiAgICAgewpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTGF0
ZUNoZWNrQW5kTGF5b3V0QnVmZmVycy5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0xhdGVDaGVja0FuZExheW91dEJ1ZmZlcnMuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IGY1YjM1YmI4MGUxNGQxNmUyNjAzMWE3MGFmMWM5YzM4NmIwNWM2NDEuLjAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvTGF0ZUNoZWNrQW5kTGF5b3V0QnVmZmVycy5qcworKysgL2Rldi9udWxsCkBAIC0x
LDM3ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwot
InVzZSBzdHJpY3QiOwotCi1mdW5jdGlvbiBsYXRlQ2hlY2tBbmRMYXlvdXRCdWZmZXJzKHByb2dy
YW0pCi17Ci0gICAgZm9yIChsZXQgZnVuY0xpc3Qgb2YgcHJvZ3JhbS5mdW5jdGlvbnMudmFsdWVz
KCkpIHsKLSAgICAgICAgZm9yIChsZXQgZnVuYyBvZiBmdW5jTGlzdCkgewotICAgICAgICAgICAg
aWYgKGZ1bmMuaXNOYXRpdmUpCi0gICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAg
ICBmdW5jLnZpc2l0KG5ldyBMYXRlQ2hlY2tlcigpKTsKLSAgICAgICAgICAgIGZ1bmMudmlzaXQo
bmV3IEVCdWZmZXJCdWlsZGVyKCkpOwotICAgICAgICB9Ci0gICAgfQotfQpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L0xhdGVDaGVja2VyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTGF0ZUNoZWNr
ZXIuanMKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3ZmQzMmMzYTg0ZDYzZTZkY2M1
ZjM3YzdjZTQyMzdlZDI3NDM3MmUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTGF0ZUNoZWNrZXIuanMK
KysrIC9kZXYvbnVsbApAQCAtMSwzNyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwg
T1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
LSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAq
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuIAotICovCi0idXNlIHN0cmljdCI7Ci0KLWNsYXNzIExhdGVDaGVja2VyIGV4
dGVuZHMgVmlzaXRvciB7Ci0gICAgdmlzaXRSZWZlcmVuY2VUeXBlKG5vZGUpCi0gICAgewotICAg
ICAgICBpZiAobm9kZS5hZGRyZXNzU3BhY2UgPT0gInRocmVhZCIpCi0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIAotICAgICAgICBpZiAoIW5vZGUuZWxlbWVudFR5cGUuaXNQcmltaXRpdmUp
Ci0gICAgICAgICAgICB0aHJvdyBuZXcgV1R5cGVFcnJvcihub2RlLm9yaWdpbi5vcmlnaW5TdHJp
bmcsICJJbGxlZ2FsIHBvaW50ZXIgdG8gbm9uLXByaW1pdGl2ZSB0eXBlOiAiICsgbm9kZSk7Ci0g
ICAgfQotfQotCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9MYXlv
dXRCdWZmZXJzLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTGF5b3V0QnVmZmVy
cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zNzcxOGQ0MmVjODI2ZTZlYmRhNGUyZTA0Zjc3ZTgyZWRkYzg3NzNk
Ci0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTGF5b3V0
QnVmZmVycy5qcwpAQCAtMCwwICsxLDM2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
VEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1Ig
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKyJ1c2Ugc3RyaWN0IjsKKworZnVuY3Rpb24gbGF5b3V0QnVmZmVycyhw
cm9ncmFtKQoreworICAgIGZvciAobGV0IGZ1bmNMaXN0IG9mIHByb2dyYW0uZnVuY3Rpb25zLnZh
bHVlcygpKSB7CisgICAgICAgIGZvciAobGV0IGZ1bmMgb2YgZnVuY0xpc3QpIHsKKyAgICAgICAg
ICAgIGlmIChmdW5jLmlzTmF0aXZlKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgZnVuYy52aXNpdChuZXcgRUJ1ZmZlckJ1aWxkZXIoKSk7CisgICAgICAgIH0KKyAgICB9
Cit9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExT
TCBUZXN0cy9XSExTTCBUZXN0cy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvV2Vi
R1BVU2hhZGluZ0xhbmd1YWdlUkkvTWV0YWwvV0hMU0wgVGVzdHMvV0hMU0wgVGVzdHMueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAwZjg0N2FlOTY3YTZjZmVkMWM2NTY2MGQ4Yzc3YTc1
YTZjNThlNzgwLi45ZWY4YWUwMTVhODFlZDlhNjViMGM5NTUzNWFhM2YwZDI4Y2M5ZWI3IDEwMDY0
NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9X
SExTTCBUZXN0cy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCQorKysgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9XSExTTCBUZXN0cy54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCQpAQCAtODMsNyArODMsNiBAQAogCQlFOTJEMTE1QTIwRjcwNjBFMDBE
Nzc2QjIgLyogSW50TGl0ZXJhbC5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTkyRDBGRTQyMEY1NkRERDAwRDc3NkIyIC8qIEludExpdGVyYWwuanMg
Ki87IH07CiAJCUU5MkQxMTVCMjBGNzA2MEUwMEQ3NzZCMiAvKiBJbnRMaXRlcmFsVHlwZS5qcyBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDBGRTUy
MEY1NkRERDAwRDc3NkIyIC8qIEludExpdGVyYWxUeXBlLmpzICovOyB9OwogCQlFOTJEMTE1QzIw
RjcwNjBFMDBENzc2QjIgLyogSW50cmluc2ljcy5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDBGRTcyMEY1NkRERDAwRDc3NkIyIC8qIEludHJp
bnNpY3MuanMgKi87IH07Ci0JCUU5MkQxMTVEMjBGNzA2MEUwMEQ3NzZCMiAvKiBMYXRlQ2hlY2tl
ci5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTlG
Q0VCNjQyMEY1NkRBNTAwOUIzNjI5IC8qIExhdGVDaGVja2VyLmpzICovOyB9OwogCQlFOTJEMTE1
RTIwRjcwNjBFMDBENzc2QjIgLyogTGV4ZXIuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQwRkYxMjBGNTZERUMwMEQ3NzZCMiAvKiBMZXhlci5q
cyAqLzsgfTsKIAkJRTkyRDExNUYyMEY3MDYwRTAwRDc3NkIyIC8qIExleGVyVG9rZW4uanMgaW4g
UmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5MkQwRkYwMjBG
NTZERUIwMEQ3NzZCMiAvKiBMZXhlclRva2VuLmpzICovOyB9OwogCQlFOTJEMTE2MDIwRjcwNjBF
MDBENzc2QjIgLyogTGl0ZXJhbFR5cGVDaGVja2VyLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMEZGMjIwRjU2REVDMDBENzc2QjIgLyogTGl0
ZXJhbFR5cGVDaGVja2VyLmpzICovOyB9OwpAQCAtMTg2LDcgKzE4NSw3IEBACiAJCUU5RDdDQjk4
MjE0QjgyNDIwMEYxQzkxOCAvKiBNU0xCYWNrZW5kLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOUQ3Q0I5NTIxNEI4MjQyMDBGMUM5MTggLyogTVNM
QmFja2VuZC5qcyAqLzsgfTsKIAkJRTlEN0NCOTkyMTRCODI0MjAwRjFDOTE4IC8qIE1TTENvbnN0
ZXhwckVtaXR0ZXIuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU5RDdDQjk2MjE0QjgyNDIwMEYxQzkxOCAvKiBNU0xDb25zdGV4cHJFbWl0dGVyLmpz
ICovOyB9OwogCQlFOUQ3Q0JBMDIxNEI4MkI4MDBGMUM5MTggLyogVGV4dHVyZS5qcyBpbiBSZXNv
dXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTlEN0NCOUEyMTRCODJC
NzAwRjFDOTE4IC8qIFRleHR1cmUuanMgKi87IH07Ci0JCUU5RDdDQkExMjE0QjgyQjgwMEYxQzkx
OCAvKiBMYXRlQ2hlY2tBbmRMYXlvdXRCdWZmZXJzLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOUQ3Q0I5QjIxNEI4MkI3MDBGMUM5MTggLyogTGF0
ZUNoZWNrQW5kTGF5b3V0QnVmZmVycy5qcyAqLzsgfTsKKwkJRTlEN0NCQTEyMTRCODJCODAwRjFD
OTE4IC8qIExheW91dEJ1ZmZlcnMuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEU5RDdDQjlCMjE0QjgyQjcwMEYxQzkxOCAvKiBMYXlvdXRCdWZmZXJz
LmpzICovOyB9OwogCQlFOUQ3Q0JBMjIxNEI4MkI4MDBGMUM5MTggLyogQ2FzdHMuanMgaW4gUmVz
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5RDdDQjlDMjE0Qjgy
QjcwMEYxQzkxOCAvKiBDYXN0cy5qcyAqLzsgfTsKIAkJRTlEN0NCQTMyMTRCODJCODAwRjFDOTE4
IC8qIFNhbXBsZXIuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEU5RDdDQjlEMjE0QjgyQjgwMEYxQzkxOCAvKiBTYW1wbGVyLmpzICovOyB9OwogCQlF
OUQ3Q0JBNDIxNEI4MkI4MDBGMUM5MTggLyogVGV4dHVyZU9wZXJhdGlvbnMuanMgaW4gUmVzb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5RDdDQjlFMjE0QjgyQjgw
MEYxQzkxOCAvKiBUZXh0dXJlT3BlcmF0aW9ucy5qcyAqLzsgfTsKQEAgLTQwNSw3ICs0MDQsNyBA
QAogCQlFOUQ3Q0I5NTIxNEI4MjQyMDBGMUM5MTggLyogTVNMQmFja2VuZC5qcyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IE1TTEJhY2tlbmQuanM7IHBhdGggPSAuLi8u
Li9NU0xCYWNrZW5kLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFOUQ3Q0I5NjIx
NEI4MjQyMDBGMUM5MTggLyogTVNMQ29uc3RleHByRW1pdHRlci5qcyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IE1TTENvbnN0ZXhwckVtaXR0ZXIuanM7IHBhdGggPSAu
Li8uLi9NU0xDb25zdGV4cHJFbWl0dGVyLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlFOUQ3Q0I5QTIxNEI4MkI3MDBGMUM5MTggLyogVGV4dHVyZS5qcyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFRleHR1cmUuanM7IHBhdGggPSAuLi8uLi8uLi9UZXh0
dXJlLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlFOUQ3Q0I5QjIxNEI4MkI3MDBG
MUM5MTggLyogTGF0ZUNoZWNrQW5kTGF5b3V0QnVmZmVycy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuamF2YXNjcmlwdDsgbmFtZSA9IExhdGVDaGVja0FuZExheW91dEJ1ZmZlcnMuanM7IHBhdGgg
PSAuLi8uLi8uLi9MYXRlQ2hlY2tBbmRMYXlvdXRCdWZmZXJzLmpzOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFOUQ3Q0I5QjIxNEI4MkI3MDBGMUM5MTggLyogTGF5b3V0QnVmZmVycy5q
cyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IExheW91dEJ1ZmZlcnMu
anM7IHBhdGggPSAuLi8uLi8uLi9MYXlvdXRCdWZmZXJzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFOUQ3Q0I5QzIxNEI4MkI3MDBGMUM5MTggLyogQ2FzdHMuanMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBDYXN0cy5qczsgcGF0aCA9IC4uLy4uLy4u
L0Nhc3RzLmpzOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFOUQ3Q0I5RDIxNEI4MkI4
MDBGMUM5MTggLyogU2FtcGxlci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsg
bmFtZSA9IFNhbXBsZXIuanM7IHBhdGggPSAuLi8uLi8uLi9TYW1wbGVyLmpzOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFOUQ3Q0I5RTIxNEI4MkI4MDBGMUM5MTggLyogVGV4dHVyZU9w
ZXJhdGlvbnMuanMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBUZXh0
dXJlT3BlcmF0aW9ucy5qczsgcGF0aCA9IC4uLy4uLy4uL1RleHR1cmVPcGVyYXRpb25zLmpzOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNDE2LDcgKzQxNSw2IEBACiAJCUU5RkNFQjVB
MjBGNTZEOTMwMDlCMzYyOSAvKiBGb3JMb29wLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZh
c2NyaXB0OyBuYW1lID0gRm9yTG9vcC5qczsgcGF0aCA9IC4uLy4uLy4uL0Zvckxvb3AuanM7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU5RkNFQjVCMjBGNTZEOTMwMDlCMzYyOSAvKiBG
aWVsZC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IEZpZWxkLmpz
OyBwYXRoID0gLi4vLi4vLi4vRmllbGQuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CUU5RkNFQjYzMjBGNTZEQTQwMDlCMzYyOSAvKiBJbmRleEV4cHJlc3Npb24uanMgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFz
Y3JpcHQ7IG5hbWUgPSBJbmRleEV4cHJlc3Npb24uanM7IHBhdGggPSAuLi8uLi8uLi9JbmRleEV4
cHJlc3Npb24uanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUU5RkNFQjY0MjBGNTZE
QTUwMDlCMzYyOSAvKiBMYXRlQ2hlY2tlci5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IExhdGVD
aGVja2VyLmpzOyBwYXRoID0gLi4vLi4vLi4vTGF0ZUNoZWNrZXIuanM7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUU5RkNFQjY1MjBGNTZEQTUwMDlCMzYyOSAvKiBJbmZlclR5cGVzRm9y
Q2FsbC5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IEluZmVyVHlwZXNGb3JDYWxsLmpzOyBwYXRo
ID0gLi4vLi4vLi4vSW5mZXJUeXBlc0ZvckNhbGwuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUU5RkNFQjY2MjBGNTZEQTUwMDlCMzYyOSAvKiBJbmxpbmUuanMgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3Jp
cHQ7IG5hbWUgPSBJbmxpbmUuanM7IHBhdGggPSAuLi8uLi8uLi9JbmxpbmUuanM7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAvKiBFbmQgUEJYRmlsZVJlZmVyZW5jZSBzZWN0aW9uICovCkBA
IC02MjgsOCArNjI2LDcgQEAKIAkJCQlFOTJEMEZFNDIwRjU2REREMDBENzc2QjIgLyogSW50TGl0
ZXJhbC5qcyAqLywKIAkJCQlFOTJEMEZFNTIwRjU2REREMDBENzc2QjIgLyogSW50TGl0ZXJhbFR5
cGUuanMgKi8sCiAJCQkJRTkyRDBGRTcyMEY1NkRERDAwRDc3NkIyIC8qIEludHJpbnNpY3MuanMg
Ki8sCi0JCQkJRTlEN0NCOUIyMTRCODJCNzAwRjFDOTE4IC8qIExhdGVDaGVja0FuZExheW91dEJ1
ZmZlcnMuanMgKi8sCi0JCQkJRTlGQ0VCNjQyMEY1NkRBNTAwOUIzNjI5IC8qIExhdGVDaGVja2Vy
LmpzICovLAorCQkJCUU5RDdDQjlCMjE0QjgyQjcwMEYxQzkxOCAvKiBMYXlvdXRCdWZmZXJzLmpz
ICovLAogCQkJCUU5MkQwRkYxMjBGNTZERUMwMEQ3NzZCMiAvKiBMZXhlci5qcyAqLywKIAkJCQlF
OTJEMEZGMDIwRjU2REVCMDBENzc2QjIgLyogTGV4ZXJUb2tlbi5qcyAqLywKIAkJCQlFOTJEMEZG
MjIwRjU2REVDMDBENzc2QjIgLyogTGl0ZXJhbFR5cGVDaGVja2VyLmpzICovLApAQCAtODg1LDgg
Kzg4Miw3IEBACiAJCQkJRTkyRDExNUIyMEY3MDYwRTAwRDc3NkIyIC8qIEludExpdGVyYWxUeXBl
LmpzIGluIFJlc291cmNlcyAqLywKIAkJCQlFOTJEMTE1QzIwRjcwNjBFMDBENzc2QjIgLyogSW50
cmluc2ljcy5qcyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRTkwNkIwNDYyMTEzOUI3NzAwQUQxQzVF
IC8qIEp1bGlhLndobHNsIGluIFJlc291cmNlcyAqLywKLQkJCQlFOUQ3Q0JBMTIxNEI4MkI4MDBG
MUM5MTggLyogTGF0ZUNoZWNrQW5kTGF5b3V0QnVmZmVycy5qcyBpbiBSZXNvdXJjZXMgKi8sCi0J
CQkJRTkyRDExNUQyMEY3MDYwRTAwRDc3NkIyIC8qIExhdGVDaGVja2VyLmpzIGluIFJlc291cmNl
cyAqLywKKwkJCQlFOUQ3Q0JBMTIxNEI4MkI4MDBGMUM5MTggLyogTGF5b3V0QnVmZmVycy5qcyBp
biBSZXNvdXJjZXMgKi8sCiAJCQkJRTkyRDExNUUyMEY3MDYwRTAwRDc3NkIyIC8qIExleGVyLmpz
IGluIFJlc291cmNlcyAqLywKIAkJCQlFOTJEMTE1RjIwRjcwNjBFMDBENzc2QjIgLyogTGV4ZXJU
b2tlbi5qcyBpbiBSZXNvdXJjZXMgKi8sCiAJCQkJRTkyRDExNjAyMEY3MDYwRTAwRDc3NkIyIC8q
IExpdGVyYWxUeXBlQ2hlY2tlci5qcyBpbiBSZXNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpzIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvTmF0aXZlRnVuYy5qcwppbmRleCBiYmYwMjg1MWIzNzkwZjdlMjc1MjYx
MDE5Mzk0NzkxOWRmNTk3YWU1Li5lZjY5ZWJlZGRhN2RkNmJhMDA0ZjlhZTVlZDZmNWM3ZjI2YTVi
YzdhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5j
LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmMuanMKQEAg
LTI1LDcgKzI1LDcgQEAKICJ1c2Ugc3RyaWN0IjsKIAogY2xhc3MgTmF0aXZlRnVuYyBleHRlbmRz
IEZ1bmMgewotICAgIGNvbnN0cnVjdG9yKG9yaWdpbiwgbmFtZSwgcmV0dXJuVHlwZSwgcGFyYW1l
dGVycywgaXNDYXN0LCBzdGFnZSA9IG51bGwpCisgICAgY29uc3RydWN0b3Iob3JpZ2luLCBuYW1l
LCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzLCBpc0Nhc3QgPSBmYWxzZSwgc3RhZ2UgPSBudWxsKQog
ICAgIHsKICAgICAgICAgc3VwZXIob3JpZ2luLCBuYW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJz
LCBpc0Nhc3QpOwogICAgICAgICB0aGlzLl9zdGFnZSA9IHN0YWdlOwpkaWZmIC0tZ2l0IGEvVG9v
bHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvT3BlcmF0b3JBcnJheVJlZkxlbmd0aC5qcyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL09wZXJhdG9yQXJyYXlSZWZMZW5ndGguanMKaW5k
ZXggNjNlZGQ3OWQ2ZGUyMWEwMmE2ZmZhNmY0MTMwZGU5Y2MzNTRjMWE3Zi4uNzkwNjJjMjUxMDVl
NjgwYjAzMzA5NDAwN2IxNjZlNGM3NmI5MDBkMyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvT3BlcmF0b3JBcnJheVJlZkxlbmd0aC5qcworKysgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9PcGVyYXRvckFycmF5UmVmTGVuZ3RoLmpzCkBAIC00MSw3ICs0
MSw3IEBAIGNsYXNzIE9wZXJhdG9yQXJyYXlSZWZMZW5ndGggewogCiAgICAgaW5zdGFudGlhdGVJ
bXBsZW1lbnRhdGlvbihmdW5jKQogICAgIHsKLSAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9
IChbcmVmXSwgbm9kZSkgPT4geworICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtyZWZd
KSA9PiB7CiAgICAgICAgICAgICByZWYgPSByZWYubG9hZFZhbHVlKCk7CiAgICAgICAgICAgICBp
ZiAoIXJlZikKICAgICAgICAgICAgICAgICByZXR1cm4gRVB0ci5ib3goMCk7CkBAIC00OSw0ICs0
OSw0IEBAIGNsYXNzIE9wZXJhdG9yQXJyYXlSZWZMZW5ndGggewogICAgICAgICB9OwogICAgICAg
ICBmdW5jLmltcGxlbWVudGF0aW9uRGF0YSA9IHRoaXM7CiAgICAgfQotfQpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL1ByZXBhcmUuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QcmVwYXJlLmpz
CmluZGV4IGMxMTU4Y2Y3YWVhYTUxMWU1MzY0N2ZlNWU5ZGEwZTc2ZjdiNzUyZDYuLmQ3OGY5NzRm
ODdlNjRmODhkZTZmYTFjOGYwMWVlZGRmMWY4YzE5NWYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvUHJlcGFyZS5qcwpAQCAtMzIsMTMgKzMyLDEzIEBAIGxldCBwcmVwYXJlID0gKCgp
ID0+IHsKICAgICAgICAgICAgIGxldCBmaXJzdExpbmVPZlN0YW5kYXJkTGlicmFyeSA9IDI4OyAv
LyBTZWUgU3RhbmRhcmRMaWJyYXJ5LmpzLgogICAgICAgICAgICAgcGFyc2Uoc3RhbmRhcmRQcm9n
cmFtLCAiL2ludGVybmFsL3N0ZGxpYiIsICJuYXRpdmUiLCBmaXJzdExpbmVPZlN0YW5kYXJkTGli
cmFyeSAtIDEsIHN0YW5kYXJkTGlicmFyeSk7CiAgICAgICAgIH0KLSAgICAgICAgCisKICAgICAg
ICAgbGV0IHByb2dyYW0gPSBjbG9uZVByb2dyYW0oc3RhbmRhcmRQcm9ncmFtKTsKICAgICAgICAg
aWYgKGFyZ3VtZW50cy5sZW5ndGgpIHsKICAgICAgICAgICAgIHBhcnNlKHByb2dyYW0sIG9yaWdp
biwgInVzZXIiLCBsaW5lTnVtYmVyT2Zmc2V0LCB0ZXh0KTsKICAgICAgICAgICAgIHByb2dyYW0g
PSBwcm9ncmFtV2l0aFVubmVjZXNzYXJ5VGhpbmdzUmVtb3ZlZChwcm9ncmFtKTsKICAgICAgICAg
fQotICAgICAgICAKKwogICAgICAgICBmb2xkQ29uc3RleHBycyhwcm9ncmFtKTsKIAogICAgICAg
ICBsZXQgbmFtZVJlc29sdmVyID0gY3JlYXRlTmFtZVJlc29sdmVyKHByb2dyYW0pOwpAQCAtNjks
NyArNjksNyBAQCBsZXQgcHJlcGFyZSA9ICgoKSA9PiB7CiAgICAgICAgIGZpbmRIaWdoWm9tYmll
cyhwcm9ncmFtKTsKICAgICAgICAgYWxsb2NhdGVBdEVudHJ5UG9pbnRzKHByb2dyYW0pOwogICAg
ICAgICBwcm9ncmFtLnZpc2l0KG5ldyBTdHJ1Y3RMYXlvdXRCdWlsZGVyKCkpOwotICAgICAgICBs
YXRlQ2hlY2tBbmRMYXlvdXRCdWZmZXJzKHByb2dyYW0pOworICAgICAgICBsYXlvdXRCdWZmZXJz
KHByb2dyYW0pOwogICAgICAgICBjaGVja05hdGl2ZUZ1bmNTdGFnZXMocHJvZ3JhbSk7CiAgICAg
ICAgIGlmIChzaG91bGRJbmxpbmUpCiAgICAgICAgICAgICBpbmxpbmUocHJvZ3JhbSk7CmRpZmYg
LS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sIGIvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbAppbmRleCA2ZjZkNmMwMGRhNWUzNDYw
NGM4ODRhN2E1YmExMDViOTk5MGUzYzM0Li5jYTQ1MGY3NmU0ODMxMWUwZDY3NWNkYmJlYzZiYmZi
NGE1MTQ2YTI5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElS
Vi5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKQEAg
LTkxLDggKzkxLDcgQEAgdGQgewogICAgIDxzY3JpcHQgc3JjPSJJbnRMaXRlcmFsLmpzIj48L3Nj
cmlwdD4KICAgICA8c2NyaXB0IHNyYz0iSW50TGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgogICAg
IDxzY3JpcHQgc3JjPSJJbnRyaW5zaWNzLmpzIj48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0i
TGF0ZUNoZWNrQW5kTGF5b3V0QnVmZmVycy5qcyI+PC9zY3JpcHQ+Ci0gICAgPHNjcmlwdCBzcmM9
IkxhdGVDaGVja2VyLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iTGF5b3V0QnVmZmVy
cy5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkxleGVyLmpzIj48L3NjcmlwdD4KICAg
ICA8c2NyaXB0IHNyYz0iTGV4ZXJUb2tlbi5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9
IkxpdGVyYWxUeXBlQ2hlY2tlci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0Lmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9UZXN0Lmh0bWwKaW5kZXggY2QzYmRhMGMwYjgzMmJmMDdiYzIzMDY4ZGRiZTk5YTExNGY4
M2FiOC4uYTIwMzE1MmU4ZDZkNDVkNzk1NDkwN2FjM2RiNTE5ODYzYjFhNGVjZSAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5odG1sCisrKyBiL1Rvb2xzL1dl
YkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbApAQCAtODUsOCArODUsNyBAQAogPHNjcmlw
dCBzcmM9IkludExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkludExpdGVyYWxU
eXBlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbnRyaW5zaWNzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSJMYXRlQ2hlY2tlci5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iTGF0
ZUNoZWNrQW5kTGF5b3V0QnVmZmVycy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iTGF5b3V0
QnVmZmVycy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTGV4ZXIuanMiPjwvc2NyaXB0Pgog
PHNjcmlwdCBzcmM9IkxleGVyVG9rZW4uanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkxpdGVy
YWxUeXBlQ2hlY2tlci5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9UZXN0LmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVz
dC5qcwppbmRleCA2NTliNDMyOWM4ODI4ZDI3NjVhYmMwYzYzODliY2IzNjVlMjM3ZWNkLi4zM2Fh
NDI1N2RjYzFkYzEyZTAzYTVlMWYxYzMyMTFiN2MwMmJhY2ZkIDEwMDY0NAotLS0gYS9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1Rlc3QuanMKQEAgLTM0MywyNCArMzQzLDI0IEBAIHRlc3RzLnRlcm5hcnlFeHBy
ZXNzaW9uID0gZnVuY3Rpb24oKSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIHJldHVybiB4IDwg
MyA/IDQgOiA1OwogICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50IGJheihpbnQgeCkKKyAgICAg
ICAgdGVzdCBpbnQgYmFyKGludCB4KQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4geCA8
IDEwID8gMTEgOiB4IDwgMTIgPyAxNCA6IDE1OwogICAgICAgICB9Ci0gICAgICAgIHRlc3QgaW50
IHF1dXgoaW50IHgpCisgICAgICAgIHRlc3QgaW50IGJheihpbnQgeCkKICAgICAgICAgewogICAg
ICAgICAgICAgcmV0dXJuIDMgPCA0ID8geCA6IDU7CiAgICAgICAgIH0KICAgICBgKTsKICAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDc2NyldKSwgNSk7CiAgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAyKV0pLCA0KTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJheiIsIFttYWtlSW50KHByb2dyYW0sIDgp
XSksIDExKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJh
eiIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDExKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJheiIsIFttYWtlSW50KHByb2dyYW0sIDEwKV0pLCAxNCk7
Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBbbWFr
ZUludChwcm9ncmFtLCAxMSldKSwgMTQpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiYmF6IiwgW21ha2VJbnQocHJvZ3JhbSwgMTIpXSksIDE1KTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJheiIsIFttYWtlSW50KHBy
b2dyYW0sIDEzKV0pLCAxNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJxdXV4IiwgW21ha2VJbnQocHJvZ3JhbSwgMTQpXSksIDE0KTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFttYWtlSW50KHByb2dyYW0s
IDgpXSksIDExKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImJhciIsIFttYWtlSW50KHByb2dyYW0sIDkpXSksIDExKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFttYWtlSW50KHByb2dyYW0sIDEwKV0pLCAx
NCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBb
bWFrZUludChwcm9ncmFtLCAxMSldKSwgMTQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW21ha2VJbnQocHJvZ3JhbSwgMTIpXSksIDE1KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFttYWtlSW50
KHByb2dyYW0sIDEzKV0pLCAxNSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJiYXoiLCBbbWFrZUludChwcm9ncmFtLCAxNCldKSwgMTQpOwogICAgIGNoZWNr
RmFpbCgKICAgICAgICAgKCkgPT4gZG9QcmVwKGAKICAgICAgICAgICAgIGludCBmb28oKQpAQCAt
MTM4NCw3ICsxMzg0LDcgQEAgdGVzdHMuaW50T3ZlcmxvYWRSZXNvbHV0aW9uUmV2ZXJzZU9yZGVy
ID0gZnVuY3Rpb24oKQogdGVzdHMuYnJlYWsgPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dy
YW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHgpCisgICAgICAgIHRlc3Qg
aW50IGZvbzEoaW50IHgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CiAg
ICAgICAgICAgICAgICAgeCA9IHggKiAyOwpAQCAtMTM5MywxMSArMTM5Myw3IEBAIHRlc3RzLmJy
ZWFrID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIHg7CiAg
ICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDgpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMTAp
XSksIDIwKTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGlu
dCB4KQorICAgICAgICB0ZXN0IGludCBmb28yKGludCB4KQogICAgICAgICB7CiAgICAgICAgICAg
ICB3aGlsZSAodHJ1ZSkgewogICAgICAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CkBAIC0xNDA5
LDExICsxNDA1LDM4IEBAIHRlc3RzLmJyZWFrID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIHg7Ci0KKyAgICAgICAg
fQorICAgICAgICB0ZXN0IGludCBmb28zKGludCB4KQorICAgICAgICB7CisgICAgICAgICAgICB3
aGlsZSAodHJ1ZSkgeworICAgICAgICAgICAgICAgIGlmICh4ID09IDcpIHsKKyAgICAgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHggPSB4
ICsgMTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB4OworICAgICAgICB9Cisg
ICAgICAgIHRlc3QgaW50IGZvbzQoaW50IHgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHdoaWxl
ICh0cnVlKSB7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICByZXR1cm4geDsKKyAgICAgICAgfQorICAgICAgICB0ZXN0IGludCBmb281KCkKKyAgICAg
ICAgeworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4g
NzsKKyAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwg
Nyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCAxMCldKSwgMTkpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDgpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFttYWtlSW50
KHByb2dyYW0sIDEwKV0pLCAyMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yIiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgNyk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW21ha2VJbnQocHJvZ3Jh
bSwgMTApXSksIDE5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMiLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbbWFrZUludChwcm9ncmFtLCAxKV0p
LCAxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUi
LCBbXSksIDcpOwogICAgIGNoZWNrRmFpbCgKICAgICAgICAgKCkgPT4gZG9QcmVwKGAKICAgICAg
ICAgICAgIGludCBmb28oaW50IHgpCkBAIC0xNDM3LDM4ICsxNDYwLDYgQEAgdGVzdHMuYnJlYWsg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICB9CiAgICAgICAgIGApLAogICAgICAgICAoZSkgPT4g
ZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAg
ICAgICAgdGVzdCBpbnQgZm9vKGludCB4KQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAg
IHdoaWxlICh0cnVlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmICh4ID09IDcpIHsKLSAgICAg
ICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgICAgICAgICB9Ci0gICAgICAg
ICAgICAgICAgICAgIHggPSB4ICsgMTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAg
ICAgcmV0dXJuIHg7Ci0gICAgICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA3
KTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgICAgIHRlc3QgaW50IGZvbyhpbnQg
eCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB3aGlsZSAodHJ1ZSkgewotICAgICAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAg
cmV0dXJuIHg7Ci0gICAgICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCAxKTsK
LSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgICAgIHRlc3QgaW50IGZvbygpCi0gICAg
ICAgICAgICB7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgICAgICAg
ICAgICAgcmV0dXJuIDc7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgfQotICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10p
LCA3KTsKICAgICBjaGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAg
ICB0ZXN0IGludCBmb28oaW50IHgpCkBAIC0xNTEzLDcgKzE1MDQsNyBAQCB0ZXN0cy5jb250aW51
ZSA9IGZ1bmN0aW9uKCkKIHRlc3RzLmRvV2hpbGUgPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHBy
b2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHgpCisgICAgICAgIHRl
c3QgaW50IGZvbzEoaW50IHgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGludCB5ID0gNzsKICAg
ICAgICAgICAgIGRvIHsKQEAgLTE1MjIsMTEgKzE1MTMsNyBAQCB0ZXN0cy5kb1doaWxlID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgfSB3aGlsZSAoeCA8IDEwKTsKICAgICAgICAgICAgIHJldHVy
biB5OwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA4KTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDExKV0pLCA4KTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQg
Zm9vKGludCB4KQorICAgICAgICB0ZXN0IGludCBmb28yKGludCB4KQogICAgICAgICB7CiAgICAg
ICAgICAgICBpbnQgeSA9IDc7CiAgICAgICAgICAgICBkbyB7CkBAIC0xNTM1LDEwICsxNTIyLDcg
QEAgdGVzdHMuZG9XaGlsZSA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIH0gd2hpbGUgKHkgPT0g
Nyk7CiAgICAgICAgICAgICByZXR1cm4geTsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgOCk7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZv
byhpbnQgeCkKKyAgICAgICAgdGVzdCBpbnQgZm9vMyhpbnQgeCkKICAgICAgICAgewogICAgICAg
ICAgICAgaW50IHN1bSA9IDA7CiAgICAgICAgICAgICBkbyB7CkBAIC0xNTUyLDEzICsxNTM2LDE2
IEBAIHRlc3RzLmRvV2hpbGUgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gc3VtOwog
ICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA5KV0pLCAxOSk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW21ha2VJbnQocHJvZ3JhbSwg
MSldKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28xIiwgW21ha2VJbnQocHJvZ3JhbSwgMTEpXSksIDgpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDgp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtt
YWtlSW50KHByb2dyYW0sIDkpXSksIDE5KTsKIH0KIAogdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9u
KCkKIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhp
bnQgeCkKKyAgICAgICAgdGVzdCBpbnQgZm9vMShpbnQgeCkKICAgICAgICAgewogICAgICAgICAg
ICAgaW50IHN1bSA9IDA7CiAgICAgICAgICAgICBpbnQgaTsKQEAgLTE1NjcsMTIgKzE1NTQsNyBA
QCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgfQogICAgICAgICAgICAg
cmV0dXJuIHN1bTsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBwcm9ncmFt
ID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB4KQorICAgICAgICB0ZXN0IGlu
dCBmb28yKGludCB4KQogICAgICAgICB7CiAgICAgICAgICAgICBpbnQgc3VtID0gMDsKICAgICAg
ICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgeDsgaSA9IGkgKyAxKSB7CkBAIC0xNTgwLDEyICsx
NTYyLDcgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIHJldHVybiBzdW07CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSks
IDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7Ci0gICAg
cHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhpbnQgeCkKKyAgICAgICAg
dGVzdCBpbnQgZm9vMyhpbnQgeCkKICAgICAgICAgewogICAgICAgICAgICAgaW50IHN1bSA9IDA7
CiAgICAgICAgICAgICBpbnQgaSA9IDEwMDsKQEAgLTE1OTQsMTIgKzE1NzEsNyBAQCB0ZXN0cy5m
b3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIHN1
bTsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBwcm9ncmFtID0gZG9QcmVw
KGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB4KQorICAgICAgICB0ZXN0IGludCBmb280KGlu
dCB4KQogICAgICAgICB7CiAgICAgICAgICAgICBpbnQgc3VtID0gMDsKICAgICAgICAgICAgIGZv
ciAoaW50IGkgPSAwOyBpIDwgeDsgaSA9IGkgKyAxKSB7CkBAIC0xNjA5LDEzICsxNTgxLDcgQEAg
dGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJl
dHVybiBzdW07CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA2KTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYp
XSksIDExKTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGlu
dCB4KQorICAgICAgICB0ZXN0IGludCBmb281KGludCB4KQogICAgICAgICB7CiAgICAgICAgICAg
ICBpbnQgc3VtID0gMDsKICAgICAgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgeDsgaSA9IGkg
KyAxKSB7CkBAIC0xNjI1LDE0ICsxNTkxLDcgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAgIH0KLSAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA1KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxMCk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0p
LCAxMCk7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhpbnQg
eCkKKyAgICAgICAgdGVzdCBpbnQgZm9vNihpbnQgeCkKICAgICAgICAgewogICAgICAgICAgICAg
aW50IHN1bSA9IDA7CiAgICAgICAgICAgICBmb3IgKGludCBpID0gMDsgOyBpID0gaSArIDEpIHsK
QEAgLTE2NDIsMTQgKzE2MDEsNyBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAg
ICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQotICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgMyldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUp
XSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDE1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDIxKTsK
LSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB4KQorICAg
ICAgICB0ZXN0IGludCBmb283KGludCB4KQogICAgICAgICB7CiAgICAgICAgICAgICBpbnQgc3Vt
ID0gMDsKICAgICAgICAgICAgIGludCBpID0gMDsKQEAgLTE2NjAsMTQgKzE2MTIsNyBAQCB0ZXN0
cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJu
IHN1bTsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSks
IDE1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDcpXSksIDIxKTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAg
ICAgICAgdGVzdCBpbnQgZm9vKGludCB4KQorICAgICAgICB0ZXN0IGludCBmb284KGludCB4KQog
ICAgICAgICB7CiAgICAgICAgICAgICBpbnQgc3VtID0gMDsKICAgICAgICAgICAgIGludCBpID0g
MDsKQEAgLTE2NzksMTIgKzE2MjQsNjIgQEAgdGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAgIH0KKyAgICAgICAg
dGVzdCBpbnQgZm9vOShpbnQgeCkKKyAgICAgICAgeworICAgICAgICAgICAgZm9yICggOyA7ICkg
eworICAgICAgICAgICAgICAgIHJldHVybiA3OworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgICAgIHRlc3QgaW50IGZvbzEwKGludCB4KQorICAgICAgICB7CisgICAgICAgICAgICBmb3Ig
KCA7IHRydWU7ICkgeworICAgICAgICAgICAgICAgIHJldHVybiA3OworICAgICAgICAgICAgfQor
ICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQp
XSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTUpOwot
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNyldKSwgMjEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMSIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFttYWtlSW50KHByb2dy
YW0sIDQpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMSIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbbWFrZUludChwcm9ncmFtLCAzKV0p
LCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIi
LCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7Cisg
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW21ha2VJ
bnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28zIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW21ha2VJbnQocHJvZ3Jh
bSwgNSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vNCIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFttYWtlSW50KHByb2dyYW0sIDQpXSks
IDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIs
IFttYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDExKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbbWFrZUlu
dChwcm9ncmFtLCAzKV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzUiLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbbWFrZUludChwcm9ncmFt
LCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb281IiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTApOworICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFttYWtlSW50KHByb2dyYW0sIDcpXSks
IDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYi
LCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbbWFrZUlu
dChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb282IiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTUpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFttYWtlSW50KHByb2dy
YW0sIDcpXSksIDIxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzciLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbbWFrZUludChwcm9ncmFtLCA0KV0p
LCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzci
LCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb283IiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTUpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFttYWtl
SW50KHByb2dyYW0sIDcpXSksIDIxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzgiLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbbWFrZUludChwcm9n
cmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzgiLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW21ha2VJbnQocHJvZ3JhbSwgNild
KSwgMTUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OCIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDIxKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA3KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbbWFr
ZUludChwcm9ncmFtLCA0KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzkiLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA3KTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbbWFrZUludChwcm9n
cmFtLCA2KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzkiLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW21ha2VJbnQocHJvZ3JhbSwgMyld
KSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28x
MCIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCA3KTsK
KyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW21h
a2VJbnQocHJvZ3JhbSwgNildKSwgNyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMCIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDcpOwogICAgIGNo
ZWNrRmFpbCgKICAgICAgICAgKCkgPT4gZG9QcmVwKGAKICAgICAgICAgICAgIHZvaWQgZm9vKGlu
dCB4KQpAQCAtMTY5NiwxOSArMTY5MSw2IEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICB9CiAgICAgICAgIGApLAogICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdU
eXBlRXJyb3IpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28o
aW50IHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvciAoIDsgOyApIHsKLSAgICAgICAgICAg
ICAgICByZXR1cm4gNzsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgMyldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSks
IDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNildKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCA3KTsKICAgICBj
aGVja0ZhaWwoCiAgICAgICAgICgpID0+IGRvUHJlcChgCiAgICAgICAgICAgICBpbnQgZm9vKGlu
dCB4KQpAQCAtMTcxOSwxOSArMTcwMSw2IEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigpCiAg
ICAgICAgICAgICB9CiAgICAgICAgIGApLAogICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9mIFdU
eXBlRXJyb3IpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28o
aW50IHgpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGZvciAoIDsgdHJ1ZTsgKSB7Ci0gICAgICAg
ICAgICAgICAgcmV0dXJuIDc7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDMpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNyk7Ci0gICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1
KV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgNyk7CiB9
CiAKIHRlc3RzLnByZWZpeFBsdXNQbHVzID0gZnVuY3Rpb24oKQpAQCAtNTgyOCw0MiArNTc5Nyw2
IEBAIHRlc3RzLmluZGV4QW5kZXJXaXRoQXJyYXlSZWYgPSBmdW5jdGlvbigpCiAgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDEzKTsKIH0KIAot
dGVzdHMuZGV2aWNlUHRyUHRyID0gZnVuY3Rpb24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAg
ICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHZvaWQgZm9vKCkKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBkZXZpY2UgaW50KiogcDsKLSAgICAgICAgICAgIH0KLSAgICAgICAg
YCksCi0gICAgICAgIGUgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IgJiYgZS5tZXNzYWdlLmlu
ZGV4T2YoIklsbGVnYWwgcG9pbnRlciB0byBub24tcHJpbWl0aXZlIHR5cGU6IGludCogZGV2aWNl
KiBkZXZpY2UiKSAhPSAtMSk7Ci19Ci0KLXRlc3RzLnRocmVhZGdyb3VwUHRyUHRyID0gZnVuY3Rp
b24oKQotewotICAgIGNoZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAg
ICAgIHZvaWQgZm9vKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB0aHJlYWRncm91
cCBpbnQqKiBwOwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGlu
c3RhbmNlb2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiSWxsZWdhbCBwb2ludGVy
IHRvIG5vbi1wcmltaXRpdmUgdHlwZTogaW50KiB0aHJlYWRncm91cCogdGhyZWFkZ3JvdXAiKSAh
PSAtMSk7Ci19Ci0KLXRlc3RzLmNvbnN0YW50UHRyUHRyID0gZnVuY3Rpb24oKQotewotICAgIGNo
ZWNrRmFpbCgKLSAgICAgICAgKCkgPT4gZG9QcmVwKGAKLSAgICAgICAgICAgIHZvaWQgZm9vKCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBjb25zdGFudCBpbnQqKiBwOwotICAgICAg
ICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJv
ciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiSWxsZWdhbCBwb2ludGVyIHRvIG5vbi1wcmltaXRpdmUg
dHlwZTogaW50KiBjb25zdGFudCogY29uc3RhbnQiKSAhPSAtMSk7Ci19Ci0KIHRlc3RzLmFuZFJl
dHVybmVkQXJyYXlSZWYgPSBmdW5jdGlvbigpCiB7CiAgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAo
YApAQCAtNjA1NiwzNjQgKzU5ODksMjQ4IEBAIHRlc3RzLmNhc3RzID0gZnVuY3Rpb24oKQogdGVz
dHMuYXRvbWljcyA9IGZ1bmN0aW9uKCkKIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0g
ICAgICAgIHRlc3QgaW50IGZvbyhpbnQgeikgeworICAgICAgICB0ZXN0IGludCBmb28xKGludCB6
KSB7CiAgICAgICAgICAgICBhdG9taWNfaW50IHg7CiAgICAgICAgICAgICBpbnQgcmVzdWx0Owog
ICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJngsIHosICZyZXN1bHQpOwogICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMCk7
Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhpbnQgeikgewor
ICAgICAgICB0ZXN0IGludCBmb28yKGludCB6KSB7CiAgICAgICAgICAgICBhdG9taWNfaW50IHg7
CiAgICAgICAgICAgICBpbnQgcmVzdWx0OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJngs
IHosICZyZXN1bHQpOwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJngsIHosICZyZXN1bHQp
OwogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgIGApOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgNildKSwgNik7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50
IGZvbyhpbnQgeikgeworICAgICAgICB0ZXN0IGludCBmb28zKGludCB6KSB7CiAgICAgICAgICAg
ICBhdG9taWNfaW50IHg7CiAgICAgICAgICAgICBpbnQgcmVzdWx0OwogICAgICAgICAgICAgSW50
ZXJsb2NrZWRBZGQoJngsIHosICZyZXN1bHQpOwogICAgICAgICAgICAgcmV0dXJuIGludCh4KTsK
ICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgNik7Ci0gICAgcHJvZ3JhbSA9
IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhpbnQgeikgeworICAgICAgICB0ZXN0IGlu
dCBmb280KGludCB6KSB7CiAgICAgICAgICAgICBhdG9taWNfaW50IHg7CiAgICAgICAgICAgICBp
bnQgcmVzdWx0OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJngsIHosICZyZXN1bHQpOwog
ICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJngsIHosICZyZXN1bHQpOwogICAgICAgICAgICAg
cmV0dXJuIGludCh4KTsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTIp
OwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IHVpbnQgZm9vKHVpbnQgeikg
eworICAgICAgICB0ZXN0IHVpbnQgZm9vNSh1aW50IHopIHsKICAgICAgICAgICAgIGF0b21pY191
aW50IHg7CiAgICAgICAgICAgICB1aW50IHJlc3VsdDsKICAgICAgICAgICAgIEludGVybG9ja2Vk
QWRkKCZ4LCB6LCAmcmVzdWx0KTsKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAg
IH0KLSAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNildKSwgMCk7Ci0gICAgcHJvZ3JhbSA9IGRvUHJl
cChgCi0gICAgICAgIHRlc3QgdWludCBmb28odWludCB6KSB7CisgICAgICAgIHRlc3QgdWludCBm
b282KHVpbnQgeikgewogICAgICAgICAgICAgYXRvbWljX3VpbnQgeDsKICAgICAgICAgICAgIHVp
bnQgcmVzdWx0OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJngsIHosICZyZXN1bHQpOwog
ICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJngsIHosICZyZXN1bHQpOwogICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA2KV0pLCA2
KTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCB1aW50IGZvbyh1aW50IHop
IHsKKyAgICAgICAgdGVzdCB1aW50IGZvbzcodWludCB6KSB7CiAgICAgICAgICAgICBhdG9taWNf
dWludCB4OwogICAgICAgICAgICAgdWludCByZXN1bHQ7CiAgICAgICAgICAgICBJbnRlcmxvY2tl
ZEFkZCgmeCwgeiwgJnJlc3VsdCk7CiAgICAgICAgICAgICByZXR1cm4gdWludCh4KTsKICAgICAg
ICAgfQotICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA2KV0pLCA2KTsKLSAgICBwcm9ncmFtID0gZG9Q
cmVwKGAKLSAgICAgICAgdGVzdCB1aW50IGZvbyh1aW50IHopIHsKKyAgICAgICAgdGVzdCB1aW50
IGZvbzgodWludCB6KSB7CiAgICAgICAgICAgICBhdG9taWNfdWludCB4OwogICAgICAgICAgICAg
dWludCByZXN1bHQ7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeCwgeiwgJnJlc3VsdCk7
CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeCwgeiwgJnJlc3VsdCk7CiAgICAgICAgICAg
ICByZXR1cm4gdWludCh4KTsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrVWludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA2KV0p
LCAxMik7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgdWludCBmb28odWlu
dCB4LCB1aW50IHkpIHsKKyAgICAgICAgdGVzdCB1aW50IGZvbzkodWludCB4LCB1aW50IHkpIHsK
ICAgICAgICAgICAgIGF0b21pY191aW50IHo7CiAgICAgICAgICAgICB1aW50IHJlc3VsdDsKICAg
ICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCAmcmVzdWx0KTsKICAgICAgICAgICAgIElu
dGVybG9ja2VkQW5kKCZ6LCB5LCAmcmVzdWx0KTsKICAgICAgICAgICAgIHJldHVybiB1aW50KHop
OwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFt
LCA1KV0pLCAxKTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCB1aW50IGZv
byh1aW50IHgsIHVpbnQgeSkgeworICAgICAgICB0ZXN0IHVpbnQgZm9vMTAodWludCB4LCB1aW50
IHkpIHsKICAgICAgICAgICAgIGF0b21pY191aW50IHo7CiAgICAgICAgICAgICB1aW50IHJlc3Vs
dDsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCAmcmVzdWx0KTsKICAgICAgICAg
ICAgIEludGVybG9ja2VkQW5kKCZ6LCB5LCAmcmVzdWx0KTsKICAgICAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHBy
b2dyYW0sIDUpXSksIDMpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGlu
dCBmb28oaW50IHgsIGludCB5KSB7CisgICAgICAgIHRlc3QgaW50IGZvbzExKGludCB4LCBpbnQg
eSkgewogICAgICAgICAgICAgYXRvbWljX2ludCB6OwogICAgICAgICAgICAgaW50IHJlc3VsdDsK
ICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCAmcmVzdWx0KTsKICAgICAgICAgICAg
IEludGVybG9ja2VkQW5kKCZ6LCB5LCAmcmVzdWx0KTsKICAgICAgICAgICAgIHJldHVybiBpbnQo
eik7CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0s
IDUpXSksIDEpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28o
aW50IHgsIGludCB5KSB7CisgICAgICAgIHRlc3QgaW50IGZvbzEyKGludCB4LCBpbnQgeSkgewog
ICAgICAgICAgICAgYXRvbWljX2ludCB6OwogICAgICAgICAgICAgaW50IHJlc3VsdDsKICAgICAg
ICAgICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCAmcmVzdWx0KTsKICAgICAgICAgICAgIEludGVy
bG9ja2VkQW5kKCZ6LCB5LCAmcmVzdWx0KTsKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAg
ICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDUpXSks
IDMpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IHVpbnQgZm9vKHVpbnQg
eCwgdWludCB5KSB7CisgICAgICAgIHRlc3QgdWludCBmb28xMyh1aW50IHgsIHVpbnQgeSkgewog
ICAgICAgICAgICAgYXRvbWljX3VpbnQgejsKICAgICAgICAgICAgIHVpbnQgcmVzdWx0OwogICAg
ICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsICZyZXN1bHQpOwogICAgICAgICAgICAgSW50
ZXJsb2NrZWRFeGNoYW5nZSgmeiwgeSwgJnJlc3VsdCk7CiAgICAgICAgICAgICByZXR1cm4gdWlu
dCh6KTsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJv
Z3JhbSwgNSldKSwgNSk7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgdWlu
dCBmb28odWludCB4LCB1aW50IHkpIHsKKyAgICAgICAgdGVzdCB1aW50IGZvbzE0KHVpbnQgeCwg
dWludCB5KSB7CiAgICAgICAgICAgICBhdG9taWNfdWludCB6OwogICAgICAgICAgICAgdWludCBy
ZXN1bHQ7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeiwgeCwgJnJlc3VsdCk7CiAgICAg
ICAgICAgICBJbnRlcmxvY2tlZEV4Y2hhbmdlKCZ6LCB5LCAmcmVzdWx0KTsKICAgICAgICAgICAg
IHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1h
a2VVaW50KHByb2dyYW0sIDUpXSksIDMpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAg
ICB0ZXN0IGludCBmb28oaW50IHgsIGludCB5KSB7CisgICAgICAgIHRlc3QgaW50IGZvbzE1KGlu
dCB4LCBpbnQgeSkgewogICAgICAgICAgICAgYXRvbWljX2ludCB6OwogICAgICAgICAgICAgaW50
IHJlc3VsdDsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCAmcmVzdWx0KTsKICAg
ICAgICAgICAgIEludGVybG9ja2VkRXhjaGFuZ2UoJnosIHksICZyZXN1bHQpOwogICAgICAgICAg
ICAgcmV0dXJuIGludCh6KTsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1h
a2VJbnQocHJvZ3JhbSwgNSldKSwgNSk7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAg
IHRlc3QgaW50IGZvbyhpbnQgeCwgaW50IHkpIHsKKyAgICAgICAgdGVzdCBpbnQgZm9vMTYoaW50
IHgsIGludCB5KSB7CiAgICAgICAgICAgICBhdG9taWNfaW50IHo7CiAgICAgICAgICAgICBpbnQg
cmVzdWx0OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsICZyZXN1bHQpOwogICAg
ICAgICAgICAgSW50ZXJsb2NrZWRFeGNoYW5nZSgmeiwgeSwgJnJlc3VsdCk7CiAgICAgICAgICAg
ICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKSwgbWFr
ZUludChwcm9ncmFtLCA1KV0pLCAzKTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAg
dGVzdCB1aW50IGZvbyh1aW50IHgsIHVpbnQgeSkgeworICAgICAgICB0ZXN0IHVpbnQgZm9vMTco
dWludCB4LCB1aW50IHkpIHsKICAgICAgICAgICAgIGF0b21pY191aW50IHo7CiAgICAgICAgICAg
ICB1aW50IHJlc3VsdDsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCAmcmVzdWx0
KTsKICAgICAgICAgICAgIEludGVybG9ja2VkTWF4KCZ6LCB5LCAmcmVzdWx0KTsKICAgICAgICAg
ICAgIHJldHVybiB1aW50KHopOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDMp
LCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCA1KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50
KHByb2dyYW0sIDMpXSksIDUpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0
IHVpbnQgZm9vKHVpbnQgeCwgdWludCB5KSB7CisgICAgICAgIHRlc3QgdWludCBmb28xOCh1aW50
IHgsIHVpbnQgeSkgewogICAgICAgICAgICAgYXRvbWljX3VpbnQgejsKICAgICAgICAgICAgIHVp
bnQgcmVzdWx0OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsICZyZXN1bHQpOwog
ICAgICAgICAgICAgSW50ZXJsb2NrZWRNYXgoJnosIHksICZyZXN1bHQpOwogICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgNSldKSwgMyk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9n
cmFtLCAzKV0pLCA1KTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQg
Zm9vKGludCB4LCBpbnQgeSkgeworICAgICAgICB0ZXN0IGludCBmb28xOShpbnQgeCwgaW50IHkp
IHsKICAgICAgICAgICAgIGF0b21pY19pbnQgejsKICAgICAgICAgICAgIGludCByZXN1bHQ7CiAg
ICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeiwgeCwgJnJlc3VsdCk7CiAgICAgICAgICAgICBJ
bnRlcmxvY2tlZE1heCgmeiwgeSwgJnJlc3VsdCk7CiAgICAgICAgICAgICByZXR1cm4gaW50KHop
OwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA1
KV0pLCA1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDUpOwotICAg
IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHgsIGludCB5KSB7
CisgICAgICAgIHRlc3QgaW50IGZvbzIwKGludCB4LCBpbnQgeSkgewogICAgICAgICAgICAgYXRv
bWljX2ludCB6OwogICAgICAgICAgICAgaW50IHJlc3VsdDsKICAgICAgICAgICAgIEludGVybG9j
a2VkQWRkKCZ6LCB4LCAmcmVzdWx0KTsKICAgICAgICAgICAgIEludGVybG9ja2VkTWF4KCZ6LCB5
LCAmcmVzdWx0KTsKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KLSAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDMpOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgNSk7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChg
Ci0gICAgICAgIHRlc3QgdWludCBmb28odWludCB4LCB1aW50IHkpIHsKKyAgICAgICAgdGVzdCB1
aW50IGZvbzIxKHVpbnQgeCwgdWludCB5KSB7CiAgICAgICAgICAgICBhdG9taWNfdWludCB6Owog
ICAgICAgICAgICAgdWludCByZXN1bHQ7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeiwg
eCwgJnJlc3VsdCk7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZE1pbigmeiwgeSwgJnJlc3VsdCk7
CiAgICAgICAgICAgICByZXR1cm4gdWludCh6KTsKICAgICAgICAgfQotICAgIGApOwotICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChw
cm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMyk7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDUp
LCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAg
ICAgICAgdGVzdCB1aW50IGZvbyh1aW50IHgsIHVpbnQgeSkgeworICAgICAgICB0ZXN0IHVpbnQg
Zm9vMjIodWludCB4LCB1aW50IHkpIHsKICAgICAgICAgICAgIGF0b21pY191aW50IHo7CiAgICAg
ICAgICAgICB1aW50IHJlc3VsdDsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCAm
cmVzdWx0KTsKICAgICAgICAgICAgIEludGVybG9ja2VkTWluKCZ6LCB5LCAmcmVzdWx0KTsKICAg
ICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3Jh
bSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDMpOwotICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA1KSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMyldKSwgNSk7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAg
IHRlc3QgaW50IGZvbyhpbnQgeCwgaW50IHkpIHsKKyAgICAgICAgdGVzdCBpbnQgZm9vMjMoaW50
IHgsIGludCB5KSB7CiAgICAgICAgICAgICBhdG9taWNfaW50IHo7CiAgICAgICAgICAgICBpbnQg
cmVzdWx0OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsICZyZXN1bHQpOwogICAg
ICAgICAgICAgSW50ZXJsb2NrZWRNaW4oJnosIHksICZyZXN1bHQpOwogICAgICAgICAgICAgcmV0
dXJuIGludCh6KTsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQo
cHJvZ3JhbSwgNSldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAzKV0p
LCAzKTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB4
LCBpbnQgeSkgeworICAgICAgICB0ZXN0IGludCBmb28yNChpbnQgeCwgaW50IHkpIHsKICAgICAg
ICAgICAgIGF0b21pY19pbnQgejsKICAgICAgICAgICAgIGludCByZXN1bHQ7CiAgICAgICAgICAg
ICBJbnRlcmxvY2tlZEFkZCgmeiwgeCwgJnJlc3VsdCk7CiAgICAgICAgICAgICBJbnRlcmxvY2tl
ZE1pbigmeiwgeSwgJnJlc3VsdCk7CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAg
ICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAzKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDUpOwotICAgIHByb2dyYW0g
PSBkb1ByZXAoYAotICAgICAgICB0ZXN0IHVpbnQgZm9vKHVpbnQgeCwgdWludCB5KSB7CisgICAg
ICAgIHRlc3QgdWludCBmb28yNSh1aW50IHgsIHVpbnQgeSkgewogICAgICAgICAgICAgYXRvbWlj
X3VpbnQgejsKICAgICAgICAgICAgIHVpbnQgcmVzdWx0OwogICAgICAgICAgICAgSW50ZXJsb2Nr
ZWRBZGQoJnosIHgsICZyZXN1bHQpOwogICAgICAgICAgICAgSW50ZXJsb2NrZWRPcigmeiwgeSwg
JnJlc3VsdCk7CiAgICAgICAgICAgICByZXR1cm4gdWludCh6KTsKICAgICAgICAgfQotICAgIGAp
OwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgNyk7Ci0gICAgcHJv
Z3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgdWludCBmb28odWludCB4LCB1aW50IHkpIHsK
KyAgICAgICAgdGVzdCB1aW50IGZvbzI2KHVpbnQgeCwgdWludCB5KSB7CiAgICAgICAgICAgICBh
dG9taWNfdWludCB6OwogICAgICAgICAgICAgdWludCByZXN1bHQ7CiAgICAgICAgICAgICBJbnRl
cmxvY2tlZEFkZCgmeiwgeCwgJnJlc3VsdCk7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZE9yKCZ6
LCB5LCAmcmVzdWx0KTsKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KLSAg
ICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDMpOwotICAg
IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHgsIGludCB5KSB7
CisgICAgICAgIHRlc3QgaW50IGZvbzI3KGludCB4LCBpbnQgeSkgewogICAgICAgICAgICAgYXRv
bWljX2ludCB6OwogICAgICAgICAgICAgaW50IHJlc3VsdDsKICAgICAgICAgICAgIEludGVybG9j
a2VkQWRkKCZ6LCB4LCAmcmVzdWx0KTsKICAgICAgICAgICAgIEludGVybG9ja2VkT3IoJnosIHks
ICZyZXN1bHQpOwogICAgICAgICAgICAgcmV0dXJuIGludCh6KTsKICAgICAgICAgfQotICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgNyk7Ci0gICAgcHJvZ3Jh
bSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhpbnQgeCwgaW50IHkpIHsKKyAgICAg
ICAgdGVzdCBpbnQgZm9vMjgoaW50IHgsIGludCB5KSB7CiAgICAgICAgICAgICBhdG9taWNfaW50
IHo7CiAgICAgICAgICAgICBpbnQgcmVzdWx0OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQo
JnosIHgsICZyZXN1bHQpOwogICAgICAgICAgICAgSW50ZXJsb2NrZWRPcigmeiwgeSwgJnJlc3Vs
dCk7CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAzKTsKLSAgICBwcm9ncmFtID0gZG9Q
cmVwKGAKLSAgICAgICAgdGVzdCB1aW50IGZvbyh1aW50IHgsIHVpbnQgeSkgeworICAgICAgICB0
ZXN0IHVpbnQgZm9vMjkodWludCB4LCB1aW50IHkpIHsKICAgICAgICAgICAgIGF0b21pY191aW50
IHo7CiAgICAgICAgICAgICB1aW50IHJlc3VsdDsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRk
KCZ6LCB4LCAmcmVzdWx0KTsKICAgICAgICAgICAgIEludGVybG9ja2VkWG9yKCZ6LCB5LCAmcmVz
dWx0KTsKICAgICAgICAgICAgIHJldHVybiB1aW50KHopOwogICAgICAgICB9Ci0gICAgYCk7Ci0g
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VV
aW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCA2KTsKLSAgICBwcm9ncmFt
ID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCB1aW50IGZvbyh1aW50IHgsIHVpbnQgeSkgeworICAg
ICAgICB0ZXN0IHVpbnQgZm9vMzAodWludCB4LCB1aW50IHkpIHsKICAgICAgICAgICAgIGF0b21p
Y191aW50IHo7CiAgICAgICAgICAgICB1aW50IHJlc3VsdDsKICAgICAgICAgICAgIEludGVybG9j
a2VkQWRkKCZ6LCB4LCAmcmVzdWx0KTsKICAgICAgICAgICAgIEludGVybG9ja2VkWG9yKCZ6LCB5
LCAmcmVzdWx0KTsKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KLSAgICBg
KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDMpOwotICAgIHBy
b2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHgsIGludCB5KSB7Cisg
ICAgICAgIHRlc3QgaW50IGZvbzMxKGludCB4LCBpbnQgeSkgewogICAgICAgICAgICAgYXRvbWlj
X2ludCB6OwogICAgICAgICAgICAgaW50IHJlc3VsdDsKICAgICAgICAgICAgIEludGVybG9ja2Vk
QWRkKCZ6LCB4LCAmcmVzdWx0KTsKICAgICAgICAgICAgIEludGVybG9ja2VkWG9yKCZ6LCB5LCAm
cmVzdWx0KTsKICAgICAgICAgICAgIHJldHVybiBpbnQoeik7CiAgICAgICAgIH0KLSAgICBgKTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOwotICAgIHByb2dyYW0g
PSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHgsIGludCB5KSB7CisgICAgICAg
IHRlc3QgaW50IGZvbzMyKGludCB4LCBpbnQgeSkgewogICAgICAgICAgICAgYXRvbWljX2ludCB6
OwogICAgICAgICAgICAgaW50IHJlc3VsdDsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6
LCB4LCAmcmVzdWx0KTsKICAgICAgICAgICAgIEludGVybG9ja2VkWG9yKCZ6LCB5LCAmcmVzdWx0
KTsKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDMpOwotICAgIHByb2dyYW0gPSBkb1By
ZXAoYAotICAgICAgICB0ZXN0IHVpbnQgZm9vKHVpbnQgeCwgdWludCB5LCB1aW50IHopIHsKKyAg
ICAgICAgdGVzdCB1aW50IGZvbzMzKHVpbnQgeCwgdWludCB5LCB1aW50IHopIHsKICAgICAgICAg
ICAgIGF0b21pY191aW50IHc7CiAgICAgICAgICAgICB1aW50IHJlc3VsdDsKICAgICAgICAgICAg
IEludGVybG9ja2VkQWRkKCZ3LCB4LCAmcmVzdWx0KTsKICAgICAgICAgICAgIEludGVybG9ja2Vk
Q29tcGFyZUV4Y2hhbmdlKCZ3LCB5LCB6LCAmcmVzdWx0KTsKICAgICAgICAgICAgIHJldHVybiB1
aW50KHcpOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChw
cm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgNSk7Ci0gICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDMp
LCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMyk7Ci0gICAg
cHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgdWludCBmb28odWludCB4LCB1aW50IHks
IHVpbnQgeikgeworICAgICAgICB0ZXN0IHVpbnQgZm9vMzQodWludCB4LCB1aW50IHksIHVpbnQg
eikgewogICAgICAgICAgICAgYXRvbWljX3VpbnQgdzsKICAgICAgICAgICAgIHVpbnQgcmVzdWx0
OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJncsIHgsICZyZXN1bHQpOwogICAgICAgICAg
ICAgSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UoJncsIHksIHosICZyZXN1bHQpOwogICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAz
KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDMpOwotICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWlu
dChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDUp
XSksIDMpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50
IHgsIGludCB5LCBpbnQgeikgeworICAgICAgICB0ZXN0IGludCBmb28zNShpbnQgeCwgaW50IHks
IGludCB6KSB7CiAgICAgICAgICAgICBhdG9taWNfaW50IHc7CiAgICAgICAgICAgICBpbnQgcmVz
dWx0OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJncsIHgsICZyZXN1bHQpOwogICAgICAg
ICAgICAgSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UoJncsIHksIHosICZyZXN1bHQpOwogICAg
ICAgICAgICAgcmV0dXJuIGludCh3KTsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
MyksIG1ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgNSk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAz
KTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB4LCBp
bnQgeSwgaW50IHopIHsKKyAgICAgICAgdGVzdCBpbnQgZm9vMzYoaW50IHgsIGludCB5LCBpbnQg
eikgewogICAgICAgICAgICAgYXRvbWljX2ludCB3OwogICAgICAgICAgICAgaW50IHJlc3VsdDsK
ICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ3LCB4LCAmcmVzdWx0KTsKQEAgLTY0MjEsMzIy
ICs2MjM4LDI4NiBAQCB0ZXN0cy5hdG9taWNzID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICAgICAgfQogICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQo
cHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKSwg
bWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAzKTsKKyAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbbWFrZUludChwcm9n
cmFtLCA2KV0pLCAwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzIiLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbbWFrZUludChwcm9ncmFtLCA2KV0p
LCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQi
LCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFttYWtlVWludChwcm9ncmFtLCA2KV0pLCAwKTsK
KyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW21h
a2VVaW50KHByb2dyYW0sIDYpXSksIDYpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbbWFrZVVpbnQocHJvZ3JhbSwgNildKSwgNik7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFttYWtlVWlu
dChwcm9ncmFtLCA2KV0pLCAxMik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vOSIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgNSldKSwgMSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTAiLCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSks
IDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEi
LCBbbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAxKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW21ha2VJbnQo
cHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMyk7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbbWFrZVVpbnQocHJvZ3JhbSwg
MyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDUpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0IiwgW21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtl
VWludChwcm9ncmFtLCA1KV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE1IiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3Jh
bSwgNSldKSwgNSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xNiIsIFttYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDMp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3Iiwg
W21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCA1KTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFttYWtlVWlu
dChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgNSk7CisgICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTgiLCBbbWFrZVVpbnQocHJvZ3Jh
bSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW21ha2VVaW50KHByb2dyYW0sIDUpLCBt
YWtlVWludChwcm9ncmFtLCAzKV0pLCA1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJv
Z3JhbSwgNSldKSwgNSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xOSIsIFttYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDMpXSks
IDUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjAi
LCBbbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAzKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW21ha2VJbnQo
cHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgNSk7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEiLCBbbWFrZVVpbnQocHJvZ3JhbSwg
MyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIxIiwgW21ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtl
VWludChwcm9ncmFtLCAzKV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28yMiIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJv
Z3JhbSwgNSldKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjIiLCBbbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDMp
XSksIDUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MjMiLCBbbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAzKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNCIsIFttYWtlSW50KHByb2dyYW0s
IDMpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjQiLCBbbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUlu
dChwcm9ncmFtLCAzKV0pLCA1KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28yNSIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3Jh
bSwgNSldKSwgNyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjYiLCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSks
IDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjci
LCBbbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCA3KTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI4IiwgW21ha2VJbnQo
cHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMyk7CisgICAgY2hlY2tVaW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjkiLCBbbWFrZVVpbnQocHJvZ3JhbSwg
MyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDYpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMwIiwgW21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtl
VWludChwcm9ncmFtLCA1KV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzMxIiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3Jh
bSwgNSldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28zMiIsIFttYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDMp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMzIiwg
W21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJv
Z3JhbSwgNSldKSwgNSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzMiLCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDQp
LCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNCIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVp
bnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDMpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM0IiwgW21ha2VVaW50KHByb2dy
YW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMyk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNSIsIFtt
YWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0s
IDUpXSksIDUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMzUiLCBbbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFrZUlu
dChwcm9ncmFtLCA1KV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzM2IiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwg
MyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNiIsIFttYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50
KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDMpOwogfQogCiB0ZXN0cy5hdG9t
aWNzTnVsbCA9IGZ1bmN0aW9uKCkKIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAg
ICAgIHRlc3QgaW50IGZvbyhpbnQgeikgeworICAgICAgICB0ZXN0IGludCBmb28xKGludCB6KSB7
CiAgICAgICAgICAgICBhdG9taWNfaW50IHg7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgm
eCwgeiwgbnVsbCk7CiAgICAgICAgICAgICByZXR1cm4gaW50KHgpOwogICAgICAgICB9Ci0gICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA2KV0pLCA2KTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAg
ICAgdGVzdCBpbnQgZm9vKGludCB6KSB7CisgICAgICAgIHRlc3QgaW50IGZvbzIoaW50IHopIHsK
ICAgICAgICAgICAgIGF0b21pY19pbnQgeDsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ4
LCB6LCBudWxsKTsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ4LCB6LCBudWxsKTsKICAg
ICAgICAgICAgIHJldHVybiBpbnQoeCk7CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDYpXSksIDEyKTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCB1aW50IGZv
byh1aW50IHopIHsKKyAgICAgICAgdGVzdCB1aW50IGZvbzModWludCB6KSB7CiAgICAgICAgICAg
ICBhdG9taWNfdWludCB4OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJngsIHosIG51bGwp
OwogICAgICAgICAgICAgcmV0dXJuIHVpbnQoeCk7CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQo
cHJvZ3JhbSwgNildKSwgNik7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3Qg
dWludCBmb28odWludCB6KSB7CisgICAgICAgIHRlc3QgdWludCBmb280KHVpbnQgeikgewogICAg
ICAgICAgICAgYXRvbWljX3VpbnQgeDsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ4LCB6
LCBudWxsKTsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ4LCB6LCBudWxsKTsKICAgICAg
ICAgICAgIHJldHVybiB1aW50KHgpOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0s
IDYpXSksIDEyKTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCB1aW50IGZv
byh1aW50IHgsIHVpbnQgeSkgeworICAgICAgICB0ZXN0IHVpbnQgZm9vNSh1aW50IHgsIHVpbnQg
eSkgewogICAgICAgICAgICAgYXRvbWljX3VpbnQgejsKICAgICAgICAgICAgIEludGVybG9ja2Vk
QWRkKCZ6LCB4LCBudWxsKTsKICAgICAgICAgICAgIEludGVybG9ja2VkQW5kKCZ6LCB5LCBudWxs
KTsKICAgICAgICAgICAgIHJldHVybiB1aW50KHopOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50
KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAxKTsKLSAgICBwcm9ncmFtID0g
ZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB4LCBpbnQgeSkgeworICAgICAgICB0
ZXN0IGludCBmb282KGludCB4LCBpbnQgeSkgewogICAgICAgICAgICAgYXRvbWljX2ludCB6Owog
ICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsIG51bGwpOwogICAgICAgICAgICAgSW50
ZXJsb2NrZWRBbmQoJnosIHksIG51bGwpOwogICAgICAgICAgICAgcmV0dXJuIGludCh6KTsKICAg
ICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwg
MSk7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgdWludCBmb28odWludCB4
LCB1aW50IHkpIHsKKyAgICAgICAgdGVzdCB1aW50IGZvbzcodWludCB4LCB1aW50IHkpIHsKICAg
ICAgICAgICAgIGF0b21pY191aW50IHo7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeiwg
eCwgbnVsbCk7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEV4Y2hhbmdlKCZ6LCB5LCBudWxsKTsK
ICAgICAgICAgICAgIHJldHVybiB1aW50KHopOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHBy
b2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCA1KTsKLSAgICBwcm9ncmFtID0gZG9Q
cmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB4LCBpbnQgeSkgeworICAgICAgICB0ZXN0
IGludCBmb284KGludCB4LCBpbnQgeSkgewogICAgICAgICAgICAgYXRvbWljX2ludCB6OwogICAg
ICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsIG51bGwpOwogICAgICAgICAgICAgSW50ZXJs
b2NrZWRFeGNoYW5nZSgmeiwgeSwgbnVsbCk7CiAgICAgICAgICAgICByZXR1cm4gaW50KHopOwog
ICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA1KV0p
LCA1KTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCB1aW50IGZvbyh1aW50
IHgsIHVpbnQgeSkgeworICAgICAgICB0ZXN0IHVpbnQgZm9vOSh1aW50IHgsIHVpbnQgeSkgewog
ICAgICAgICAgICAgYXRvbWljX3VpbnQgejsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6
LCB4LCBudWxsKTsKICAgICAgICAgICAgIEludGVybG9ja2VkTWF4KCZ6LCB5LCBudWxsKTsKICAg
ICAgICAgICAgIHJldHVybiB1aW50KHopOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dy
YW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCA1KTsKLSAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1h
a2VVaW50KHByb2dyYW0sIDMpXSksIDUpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAg
ICB0ZXN0IGludCBmb28oaW50IHgsIGludCB5KSB7CisgICAgICAgIHRlc3QgaW50IGZvbzEwKGlu
dCB4LCBpbnQgeSkgewogICAgICAgICAgICAgYXRvbWljX2ludCB6OwogICAgICAgICAgICAgSW50
ZXJsb2NrZWRBZGQoJnosIHgsIG51bGwpOwogICAgICAgICAgICAgSW50ZXJsb2NrZWRNYXgoJnos
IHksIG51bGwpOwogICAgICAgICAgICAgcmV0dXJuIGludCh6KTsKICAgICAgICAgfQotICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgNSk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA1KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCA1KTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAK
LSAgICAgICAgdGVzdCB1aW50IGZvbyh1aW50IHgsIHVpbnQgeSkgeworICAgICAgICB0ZXN0IHVp
bnQgZm9vMTEodWludCB4LCB1aW50IHkpIHsKICAgICAgICAgICAgIGF0b21pY191aW50IHo7CiAg
ICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeiwgeCwgbnVsbCk7CiAgICAgICAgICAgICBJbnRl
cmxvY2tlZE1pbigmeiwgeSwgbnVsbCk7CiAgICAgICAgICAgICByZXR1cm4gdWludCh6KTsKICAg
ICAgICAgfQotICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSld
KSwgMyk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAzKTsKLSAg
ICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB4LCBpbnQgeSkg
eworICAgICAgICB0ZXN0IGludCBmb28xMihpbnQgeCwgaW50IHkpIHsKICAgICAgICAgICAgIGF0
b21pY19pbnQgejsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCBudWxsKTsKICAg
ICAgICAgICAgIEludGVybG9ja2VkTWluKCZ6LCB5LCBudWxsKTsKICAgICAgICAgICAgIHJldHVy
biBpbnQoeik7CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHBy
b2dyYW0sIDUpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwg
Myk7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgdWludCBmb28odWludCB4
LCB1aW50IHkpIHsKKyAgICAgICAgdGVzdCB1aW50IGZvbzEzKHVpbnQgeCwgdWludCB5KSB7CiAg
ICAgICAgICAgICBhdG9taWNfdWludCB6OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnos
IHgsIG51bGwpOwogICAgICAgICAgICAgSW50ZXJsb2NrZWRPcigmeiwgeSwgbnVsbCk7CiAgICAg
ICAgICAgICByZXR1cm4gdWludCh6KTsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFt
LCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgNyk7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChg
Ci0gICAgICAgIHRlc3QgaW50IGZvbyhpbnQgeCwgaW50IHkpIHsKKyAgICAgICAgdGVzdCBpbnQg
Zm9vMTQoaW50IHgsIGludCB5KSB7CiAgICAgICAgICAgICBhdG9taWNfaW50IHo7CiAgICAgICAg
ICAgICBJbnRlcmxvY2tlZEFkZCgmeiwgeCwgbnVsbCk7CiAgICAgICAgICAgICBJbnRlcmxvY2tl
ZE9yKCZ6LCB5LCBudWxsKTsKICAgICAgICAgICAgIHJldHVybiBpbnQoeik7CiAgICAgICAgIH0K
LSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDcpOwotICAg
IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IHVpbnQgZm9vKHVpbnQgeCwgdWludCB5
KSB7CisgICAgICAgIHRlc3QgdWludCBmb28xNSh1aW50IHgsIHVpbnQgeSkgewogICAgICAgICAg
ICAgYXRvbWljX3VpbnQgejsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCBudWxs
KTsKICAgICAgICAgICAgIEludGVybG9ja2VkWG9yKCZ6LCB5LCBudWxsKTsKICAgICAgICAgICAg
IHJldHVybiB1aW50KHopOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDMpLCBt
YWtlVWludChwcm9ncmFtLCA1KV0pLCA2KTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAg
ICAgdGVzdCBpbnQgZm9vKGludCB4LCBpbnQgeSkgeworICAgICAgICB0ZXN0IGludCBmb28xNihp
bnQgeCwgaW50IHkpIHsKICAgICAgICAgICAgIGF0b21pY19pbnQgejsKICAgICAgICAgICAgIElu
dGVybG9ja2VkQWRkKCZ6LCB4LCBudWxsKTsKICAgICAgICAgICAgIEludGVybG9ja2VkWG9yKCZ6
LCB5LCBudWxsKTsKICAgICAgICAgICAgIHJldHVybiBpbnQoeik7CiAgICAgICAgIH0KLSAgICBg
KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDYpOwotICAgIHByb2dy
YW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IHVpbnQgZm9vKHVpbnQgeCwgdWludCB5LCB1aW50
IHopIHsKKyAgICAgICAgdGVzdCB1aW50IGZvbzE3KHVpbnQgeCwgdWludCB5LCB1aW50IHopIHsK
ICAgICAgICAgICAgIGF0b21pY191aW50IHc7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgm
dywgeCwgbnVsbCk7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZSgmdywg
eSwgeiwgbnVsbCk7CiAgICAgICAgICAgICByZXR1cm4gdWludCh3KTsKICAgICAgICAgfQotICAg
IGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHBy
b2dyYW0sIDUpXSksIDUpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNCks
IG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDMpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAg
ICAgICB0ZXN0IGludCBmb28oaW50IHgsIGludCB5LCBpbnQgeikgeworICAgICAgICB0ZXN0IGlu
dCBmb28xOChpbnQgeCwgaW50IHksIGludCB6KSB7CiAgICAgICAgICAgICBhdG9taWNfaW50IHc7
CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmdywgeCwgbnVsbCk7CiAgICAgICAgICAgICBJ
bnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZSgmdywgeSwgeiwgbnVsbCk7CiAgICAgICAgICAgICBy
ZXR1cm4gaW50KHcpOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUlu
dChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCA1KTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMp
LCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDMpOwotCi0gICAg
cHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbygpIHsKKyAgICAgICAgdGVz
dCBpbnQgZm9vMTkoKSB7CiAgICAgICAgICAgICB0aHJlYWQgYXRvbWljX2ludCogeCA9IG51bGw7
CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCh4LCAxLCBudWxsKTsKICAgICAgICAgICAgIHJl
dHVybiAxOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tUcmFwKHByb2dyYW0sICgpID0+
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCBjaGVja0ludCk7Ci0KLSAgICBwcm9n
cmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKCkgeworICAgICAgICB0ZXN0IGlu
dCBmb28yMCgpIHsKICAgICAgICAgICAgIHRocmVhZCBhdG9taWNfdWludCogeCA9IG51bGw7CiAg
ICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCh4LCAxLCBudWxsKTsKICAgICAgICAgICAgIHJldHVy
biAxOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tUcmFwKHByb2dyYW0sICgpID0+IGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCBjaGVja0ludCk7Ci0KLSAgICBwcm9ncmFt
ID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKCkgeworICAgICAgICB0ZXN0IGludCBm
b28yMSgpIHsKICAgICAgICAgICAgIHRocmVhZCBhdG9taWNfaW50KiB4ID0gbnVsbDsKICAgICAg
ICAgICAgIEludGVybG9ja2VkQW5kKHgsIDEsIG51bGwpOwogICAgICAgICAgICAgcmV0dXJuIDE7
CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja1RyYXAocHJvZ3JhbSwgKCkgPT4gY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIGNoZWNrSW50KTsKLQotICAgIHByb2dyYW0gPSBk
b1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oKSB7CisgICAgICAgIHRlc3QgaW50IGZvbzIy
KCkgewogICAgICAgICAgICAgdGhyZWFkIGF0b21pY191aW50KiB4ID0gbnVsbDsKICAgICAgICAg
ICAgIEludGVybG9ja2VkQW5kKHgsIDEsIG51bGwpOwogICAgICAgICAgICAgcmV0dXJuIDE7CiAg
ICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja1RyYXAocHJvZ3JhbSwgKCkgPT4gY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbXSksIGNoZWNrSW50KTsKLQotICAgIHByb2dyYW0gPSBkb1By
ZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oKSB7CisgICAgICAgIHRlc3QgaW50IGZvbzIzKCkg
ewogICAgICAgICAgICAgdGhyZWFkIGF0b21pY19pbnQqIHggPSBudWxsOwogICAgICAgICAgICAg
SW50ZXJsb2NrZWRFeGNoYW5nZSh4LCAxLCBudWxsKTsKICAgICAgICAgICAgIHJldHVybiAxOwog
ICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tUcmFwKHByb2dyYW0sICgpID0+IGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCBjaGVja0ludCk7Ci0KLSAgICBwcm9ncmFtID0gZG9Q
cmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKCkgeworICAgICAgICB0ZXN0IGludCBmb28yNCgp
IHsKICAgICAgICAgICAgIHRocmVhZCBhdG9taWNfdWludCogeCA9IG51bGw7CiAgICAgICAgICAg
ICBJbnRlcmxvY2tlZEV4Y2hhbmdlKHgsIDEsIG51bGwpOwogICAgICAgICAgICAgcmV0dXJuIDE7
CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja1RyYXAocHJvZ3JhbSwgKCkgPT4gY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIGNoZWNrSW50KTsKLQotICAgIHByb2dyYW0gPSBk
b1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oKSB7CisgICAgICAgIHRlc3QgaW50IGZvbzI1
KCkgewogICAgICAgICAgICAgdGhyZWFkIGF0b21pY19pbnQqIHggPSBudWxsOwogICAgICAgICAg
ICAgSW50ZXJsb2NrZWRNYXgoeCwgMSwgbnVsbCk7CiAgICAgICAgICAgICByZXR1cm4gMTsKICAg
ICAgICAgfQotICAgIGApOwotICAgIGNoZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgY2hlY2tJbnQpOwotCi0gICAgcHJvZ3JhbSA9IGRvUHJl
cChgCi0gICAgICAgIHRlc3QgaW50IGZvbygpIHsKKyAgICAgICAgdGVzdCBpbnQgZm9vMjYoKSB7
CiAgICAgICAgICAgICB0aHJlYWQgYXRvbWljX3VpbnQqIHggPSBudWxsOwogICAgICAgICAgICAg
SW50ZXJsb2NrZWRNYXgoeCwgMSwgbnVsbCk7CiAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAg
ICAgfQotICAgIGApOwotICAgIGNoZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdKSwgY2hlY2tJbnQpOwotCi0gICAgcHJvZ3JhbSA9IGRvUHJlcChg
Ci0gICAgICAgIHRlc3QgaW50IGZvbygpIHsKKyAgICAgICAgdGVzdCBpbnQgZm9vMjcoKSB7CiAg
ICAgICAgICAgICB0aHJlYWQgYXRvbWljX2ludCogeCA9IG51bGw7CiAgICAgICAgICAgICBJbnRl
cmxvY2tlZE1pbih4LCAxLCBudWxsKTsKICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICB9
Ci0gICAgYCk7Ci0gICAgY2hlY2tUcmFwKHByb2dyYW0sICgpID0+IGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW10pLCBjaGVja0ludCk7Ci0KLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAg
ICAgICAgdGVzdCBpbnQgZm9vKCkgeworICAgICAgICB0ZXN0IGludCBmb28yOCgpIHsKICAgICAg
ICAgICAgIHRocmVhZCBhdG9taWNfdWludCogeCA9IG51bGw7CiAgICAgICAgICAgICBJbnRlcmxv
Y2tlZE1pbih4LCAxLCBudWxsKTsKICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICB9Ci0g
ICAgYCk7Ci0gICAgY2hlY2tUcmFwKHByb2dyYW0sICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW10pLCBjaGVja0ludCk7Ci0KLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAg
ICAgdGVzdCBpbnQgZm9vKCkgeworICAgICAgICB0ZXN0IGludCBmb28yOSgpIHsKICAgICAgICAg
ICAgIHRocmVhZCBhdG9taWNfaW50KiB4ID0gbnVsbDsKICAgICAgICAgICAgIEludGVybG9ja2Vk
T3IoeCwgMSwgbnVsbCk7CiAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQotICAgIGAp
OwotICAgIGNoZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdKSwgY2hlY2tJbnQpOwotCi0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRl
c3QgaW50IGZvbygpIHsKKyAgICAgICAgdGVzdCBpbnQgZm9vMzAoKSB7CiAgICAgICAgICAgICB0
aHJlYWQgYXRvbWljX3VpbnQqIHggPSBudWxsOwogICAgICAgICAgICAgSW50ZXJsb2NrZWRPcih4
LCAxLCBudWxsKTsKICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICB9Ci0gICAgYCk7Ci0g
ICAgY2hlY2tUcmFwKHByb2dyYW0sICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W10pLCBjaGVja0ludCk7Ci0KLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBp
bnQgZm9vKCkgeworICAgICAgICB0ZXN0IGludCBmb28zMSgpIHsKICAgICAgICAgICAgIHRocmVh
ZCBhdG9taWNfaW50KiB4ID0gbnVsbDsKICAgICAgICAgICAgIEludGVybG9ja2VkWG9yKHgsIDEs
IG51bGwpOwogICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBj
aGVja1RyYXAocHJvZ3JhbSwgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSks
IGNoZWNrSW50KTsKLQotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBm
b28oKSB7CisgICAgICAgIHRlc3QgaW50IGZvbzMyKCkgewogICAgICAgICAgICAgdGhyZWFkIGF0
b21pY191aW50KiB4ID0gbnVsbDsKICAgICAgICAgICAgIEludGVybG9ja2VkWG9yKHgsIDEsIG51
bGwpOwogICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVj
a1RyYXAocHJvZ3JhbSwgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIGNo
ZWNrSW50KTsKLQotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28o
KSB7CisgICAgICAgIHRlc3QgaW50IGZvbzMzKCkgewogICAgICAgICAgICAgdGhyZWFkIGF0b21p
Y19pbnQqIHggPSBudWxsOwogICAgICAgICAgICAgSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2Uo
eCwgMSwgMiwgbnVsbCk7CiAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQotICAgIGAp
OwotICAgIGNoZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFtdKSwgY2hlY2tJbnQpOwotCi0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRl
c3QgaW50IGZvbygpIHsKKyAgICAgICAgdGVzdCBpbnQgZm9vMzQoKSB7CiAgICAgICAgICAgICB0
aHJlYWQgYXRvbWljX3VpbnQqIHggPSBudWxsOwogICAgICAgICAgICAgSW50ZXJsb2NrZWRDb21w
YXJlRXhjaGFuZ2UoeCwgMSwgMiwgbnVsbCk7CiAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAg
ICAgfQogICAgIGApOwotICAgIGNoZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFtdKSwgY2hlY2tJbnQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDYpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFttYWtl
SW50KHByb2dyYW0sIDYpXSksIDEyKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zIiwgW21ha2VVaW50KHByb2dyYW0sIDYpXSksIDYpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzQiLCBbbWFrZVVpbnQo
cHJvZ3JhbSwgNildKSwgMTIpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzUiLCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0s
IDUpXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNiIsIFttYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDEpOwor
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbbWFr
ZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDUpOworICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFttYWtlSW50KHByb2dy
YW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDUpOworICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1h
a2VVaW50KHByb2dyYW0sIDUpXSksIDUpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzkiLCBbbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHBy
b2dyYW0sIDMpXSksIDUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTAiLCBbbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA1KV0p
LCA1KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEw
IiwgW21ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgNSk7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbbWFrZVVp
bnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDMpOworICAgIGNoZWNrVWlu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzExIiwgW21ha2VVaW50KHByb2dy
YW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1h
a2VJbnQocHJvZ3JhbSwgNSldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMiIsIFttYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dy
YW0sIDMpXSksIDMpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEzIiwgW21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA1KV0p
LCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE0
IiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgNyk7CisgICAg
Y2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbbWFrZVVp
bnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDYpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTYiLCBbbWFrZUludChwcm9ncmFt
LCAzKSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCA2KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNyIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDUpOworICAgIGNoZWNr
VWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3IiwgW21ha2VVaW50KHBy
b2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwg
Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIs
IFttYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dy
YW0sIDUpXSksIDUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTgiLCBbbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA0KSwgbWFr
ZUludChwcm9ncmFtLCA1KV0pLCAzKTsKKyAgICBjaGVja1RyYXAocHJvZ3JhbSwgKCkgPT4gY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOSIsIFtdKSwgY2hlY2tJbnQpOworICAgIGNoZWNrVHJh
cChwcm9ncmFtLCAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIwIiwgW10pLCBjaGVj
a0ludCk7CisgICAgY2hlY2tUcmFwKHByb2dyYW0sICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMjEiLCBbXSksIGNoZWNrSW50KTsKKyAgICBjaGVja1RyYXAocHJvZ3JhbSwgKCkgPT4g
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFtdKSwgY2hlY2tJbnQpOworICAgIGNoZWNr
VHJhcChwcm9ncmFtLCAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIzIiwgW10pLCBj
aGVja0ludCk7CisgICAgY2hlY2tUcmFwKHByb2dyYW0sICgpID0+IGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMjQiLCBbXSksIGNoZWNrSW50KTsKKyAgICBjaGVja1RyYXAocHJvZ3JhbSwgKCkg
PT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNSIsIFtdKSwgY2hlY2tJbnQpOworICAgIGNo
ZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI2IiwgW10p
LCBjaGVja0ludCk7CisgICAgY2hlY2tUcmFwKHByb2dyYW0sICgpID0+IGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjciLCBbXSksIGNoZWNrSW50KTsKKyAgICBjaGVja1RyYXAocHJvZ3JhbSwg
KCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yOCIsIFtdKSwgY2hlY2tJbnQpOworICAg
IGNoZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI5Iiwg
W10pLCBjaGVja0ludCk7CisgICAgY2hlY2tUcmFwKHByb2dyYW0sICgpID0+IGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMzAiLCBbXSksIGNoZWNrSW50KTsKKyAgICBjaGVja1RyYXAocHJvZ3Jh
bSwgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMSIsIFtdKSwgY2hlY2tJbnQpOwor
ICAgIGNoZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMy
IiwgW10pLCBjaGVja0ludCk7CisgICAgY2hlY2tUcmFwKHByb2dyYW0sICgpID0+IGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMzMiLCBbXSksIGNoZWNrSW50KTsKKyAgICBjaGVja1RyYXAocHJv
Z3JhbSwgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNCIsIFtdKSwgY2hlY2tJbnQp
OwogfQogCiB0ZXN0cy5zZWxmQ2FzdHMgPSBmdW5jdGlvbigpCkBAIC05MDg4LDYgKzg4NjksMTM3
IEBAIHRlc3RzLnRleHR1cmVHYXRoZXIgPSBmdW5jdGlvbigpIHsKICAgICAvLyBGSVhNRTogR2F0
aGVyIG90aGVyIGNvbXBvbmVudHMKIH0KIAordGVzdHMucG9pbnRlckVxdWFsaXR5ID0gZnVuY3Rp
b24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICB0ZXN0IGJvb2wgZm9v
MSgpIHsKKyAgICAgICAgICAgIGludCB4OworICAgICAgICAgICAgdGhyZWFkIGludCogeSA9ICZ4
OworICAgICAgICAgICAgdGhyZWFkIGludCogeiA9ICZ4OworICAgICAgICAgICAgcmV0dXJuIHkg
PT0gejsKKyAgICAgICAgfQorICAgICAgICB0ZXN0IGJvb2wgZm9vMigpIHsKKyAgICAgICAgICAg
IGludCB4OworICAgICAgICAgICAgdGhyZWFkIGludCogeiA9ICZ4OworICAgICAgICAgICAgcmV0
dXJuICZ4ID09IHo7CisgICAgICAgIH0KKyAgICAgICAgdGVzdCBib29sIGZvbzMoKSB7CisgICAg
ICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgIHRocmVhZCBpbnQqIHkgPSAmeDsKKyAgICAgICAg
ICAgIHJldHVybiB5ID09ICZ4OworICAgICAgICB9CisgICAgICAgIHRlc3QgYm9vbCBmb280KCkg
eworICAgICAgICAgICAgaW50IHg7CisgICAgICAgICAgICByZXR1cm4gJnggPT0gJng7CisgICAg
ICAgIH0KKyAgICAgICAgdGVzdCBib29sIGZvbzUoKSB7CisgICAgICAgICAgICBpbnQgeDsKKyAg
ICAgICAgICAgIHJldHVybiAmeCAhPSAmeDsKKyAgICAgICAgfQorICAgICAgICB0ZXN0IGJvb2wg
Zm9vNigpIHsKKyAgICAgICAgICAgIGludCB4ID0gNzsKKyAgICAgICAgICAgIGludCB5ID0gNzsK
KyAgICAgICAgICAgIHJldHVybiAmeCA9PSAmeTsKKyAgICAgICAgfQorICAgICAgICB0ZXN0IGJv
b2wgZm9vNygpIHsKKyAgICAgICAgICAgIHJldHVybiBudWxsID09IG51bGw7CisgICAgICAgIH0K
KyAgICAgICAgdGVzdCBib29sIGZvbzgoKSB7CisgICAgICAgICAgICBpbnQgeDsKKyAgICAgICAg
ICAgIHRocmVhZCBpbnQqIHkgPSAmeDsKKyAgICAgICAgICAgIHRocmVhZCBpbnQqIHogPSAmeDsK
KyAgICAgICAgICAgIHJldHVybiAmeSA9PSAmejsKKyAgICAgICAgfQorICAgICAgICB0ZXN0IGJv
b2wgZm9vOSgpIHsKKyAgICAgICAgICAgIGludCB4OworICAgICAgICAgICAgdGhyZWFkIGludCog
eSA9ICZ4OworICAgICAgICAgICAgcmV0dXJuICZ5ID09ICZ5OworICAgICAgICB9CisgICAgICAg
IHRlc3QgYm9vbCBmb28xMCgpIHsKKyAgICAgICAgICAgIHRocmVhZCBpbnQqIHk7CisgICAgICAg
ICAgICByZXR1cm4gbnVsbCA9PSB5OworICAgICAgICB9CisgICAgICAgIHRlc3QgYm9vbCBmb28x
MSgpIHsKKyAgICAgICAgICAgIHRocmVhZCBpbnQqIHk7CisgICAgICAgICAgICByZXR1cm4geSA9
PSBudWxsOworICAgICAgICB9CisgICAgICAgIHRlc3QgYm9vbCBmb28xMigpIHsKKyAgICAgICAg
ICAgIGludCB4OworICAgICAgICAgICAgdGhyZWFkIGludCogeSA9ICZ4OworICAgICAgICAgICAg
cmV0dXJuIG51bGwgPT0geTsKKyAgICAgICAgfQorICAgICAgICB0ZXN0IGJvb2wgZm9vMTMoKSB7
CisgICAgICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgIHRocmVhZCBpbnQqIHkgPSAmeDsKKyAg
ICAgICAgICAgIHJldHVybiB5ID09IG51bGw7CisgICAgICAgIH0KKyAgICBgKTsKKyAgICBjaGVj
a0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW10pLCB0cnVlKTsK
KyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW10p
LCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28zIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb280IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb281IiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNr
Qm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBbXSksIHRydWUpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzgiLCBbXSks
IGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b285IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTEiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW10pLCBmYWxzZSk7CisgICAgY2hl
Y2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbXSksIGZhbHNl
KTsKKyAgICBjaGVja0ZhaWwoCisgICAgICAgICgpID0+IGRvUHJlcChgCisgICAgICAgICAgICB2
b2lkIGZvbygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IHg7CisgICAgICAg
ICAgICAgICAgZmxvYXQgeTsKKyAgICAgICAgICAgICAgICBib29sIHogPSAoJnggPT0gJnkpOwor
ICAgICAgICAgICAgfQorICAgICAgICBgKSwKKyAgICAgICAgKGUpID0+IGUgaW5zdGFuY2VvZiBX
VHlwZUVycm9yKTsKKyAgICBjaGVja0ZhaWwoCisgICAgICAgICgpID0+IGRvUHJlcChgCisgICAg
ICAgICAgICB2b2lkIGZvbygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgaW50IHg7
CisgICAgICAgICAgICAgICAgdGhyZWFkIGludCogeSA9ICZ4OworICAgICAgICAgICAgICAgIGJv
b2wgeiA9ICgmeCA9PSAmeSk7CisgICAgICAgICAgICB9CisgICAgICAgIGApLAorICAgICAgICAo
ZSkgPT4gZSBpbnN0YW5jZW9mIFdUeXBlRXJyb3IpOworfQorCit0ZXN0cy5zdGFuZGFyZExpYnJh
cnlEZXZpY2VQb2ludGVycyA9IGZ1bmN0aW9uKCkgeworICAgIGxldCBwcm9ncmFtID0gZG9QcmVw
KGAKKyAgICAgICAgdGVzdCBmbG9hdCBmb28xKCkgeworICAgICAgICAgICAgZmxvYXQgczsKKyAg
ICAgICAgICAgIGZsb2F0IGM7CisgICAgICAgICAgICBzaW5jb3MoMCwgJnMsICZjKTsKKyAgICAg
ICAgICAgIHJldHVybiBjOworICAgICAgICB9CisgICAgICAgIHRlc3QgZmxvYXQgZm9vMigpIHsK
KyAgICAgICAgICAgIGZsb2F0IHM7CisgICAgICAgICAgICBmbG9hdCBjOworICAgICAgICAgICAg
c2luY29zKDAsICZzLCAmYyk7CisgICAgICAgICAgICByZXR1cm4gczsKKyAgICAgICAgfQorICAg
ICAgICB0ZXN0IGZsb2F0IGZvbzMoKSB7CisgICAgICAgICAgICB0aHJlYWQgZmxvYXQqIHMgPSBu
dWxsOworICAgICAgICAgICAgZmxvYXQgYzsKKyAgICAgICAgICAgIHNpbmNvcygwLCBzLCAmYyk7
CisgICAgICAgICAgICByZXR1cm4gYzsKKyAgICAgICAgfQorICAgICAgICB0ZXN0IGZsb2F0IGZv
bzQoKSB7CisgICAgICAgICAgICBmbG9hdCBzOworICAgICAgICAgICAgdGhyZWFkIGZsb2F0KiBj
ID0gbnVsbDsKKyAgICAgICAgICAgIHNpbmNvcygwLCAmcywgYyk7CisgICAgICAgICAgICByZXR1
cm4gczsKKyAgICAgICAgfQorICAgIGApOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW10pLCAxKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdKSwgMCk7CisgICAgY2hlY2tGbG9hdChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbXSksIDEpOworICAgIGNoZWNr
RmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW10pLCAwKTsKK30K
IAogdGVzdHMuY29tbWVudFBhcnNpbmcgPSBmdW5jdGlvbigpIHsKICAgICBsZXQgcHJvZ3JhbSA9
IGRvUHJlcChgCmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRl
eC5odG1sIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbAppbmRleCBi
MzU1NjI0NWNhMmI1NDFkYTFkY2JjOWIzYmJlNzM1Y2FiOTE4YzRhLi5lOGQ4MzU4ZGZmOTY5NmYy
ZGJkZTQyZjVkNjEzN2ExNTljMTkzZDQyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9pbmRleC5odG1sCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJ
L2luZGV4Lmh0bWwKQEAgLTg1LDggKzg1LDcgQEAKIDxzY3JpcHQgc3JjPSJJbnRMaXRlcmFsLmpz
Ij48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbnRMaXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CiA8
c2NyaXB0IHNyYz0iSW50cmluc2ljcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iTGF0ZUNo
ZWNrQW5kTGF5b3V0QnVmZmVycy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iTGF0ZUNoZWNr
ZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IkxheW91dEJ1ZmZlcnMuanMiPjwvc2NyaXB0
PgogPHNjcmlwdCBzcmM9IkxleGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJMZXhlclRv
a2VuLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJMaXRlcmFsVHlwZUNoZWNrZXIuanMiPjwv
c2NyaXB0Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>350847</attachid>
            <date>2018-09-25 22:11:33 -0700</date>
            <delta_ts>2018-09-28 17:48:41 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-189986-20180925221132.patch</filename>
            <type>text/plain</type>
            <size>91525</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM2NDc2CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOTIyZDA0YmExNmZlYzM3ZWZkZGJmNTAwMWQzODc4OGEx
ZWEwYThiNC4uMjIxNDkyZGIyZjQwYmEzMWRkZGJiYmQ5ZDUxNmU2NmRiZTRkNmY2YyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3
IEBACisyMDE4LTA5LTI1ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+
CisKKyAgICAgICAgW1dITFNMXSBQb2ludGVycyBzaG91bGQgaGF2ZSBhdXRvbWF0aWNhbGx5LWdl
bmVyYXRlZCBlcXVhbGl0eSBjaGVja3MKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE4OTk4NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEMgYWxsb3dzIGZvciBwb2ludGVyIGVxdWFsaXR5LCBhbmQgd2UgbmVl
ZCBpdCBzbyBwZW9wbGUgY2FuIGRvIG51bGwgY2hlY2tzLgorICAgICAgICBUaGlzIGlzIGdlbmVy
YXRlZCB0aGUgc2FtZSB3YXkgYWxsIG91ciBvdGhlciBOYXRpdmVGdW5jcyBhcmUgZ2VuZXJhdGVk
IC0gYnkgQ2hlY2tlcgorICAgICAgICBjcmVhdGluZyBOYXRpdmVGdW5jcyBpbnNpZGUgQ2FsbEV4
cHJlc3Npb24ucmVzb2x2ZSgpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBkb2VzIHNvbWUg
Z2VuZXJhbCBjbGVhbnVwLgorCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxs
LmpzOiBFdmVyeXRoaW5nIHRoZSBsYXRlIGNoZWNrZXIgZG9lcyBpcyBubyBsb25nZXIgbmVjZXNz
YXJ5LgorICAgICAgICBUaGUgbGFzdCB0aGluZyBpdCB3YXMgZG9pbmcgd2FzIG1ha2luZyBzdXJl
IHRoYXQgb25seSBwcmltaXRpdmUgdHlwZXMgYXJlIGluIHJlc291cmNlcywgYnV0CisgICAgICAg
IGl0J3MgdG90YWxseSByZWFzb25hYmxlIHRvIHB1dCBzdHJ1Y3RzIGFuZCBhcnJheXMgaW4gcmVz
b3VyY2VzLCBzbyBJIHJlbW92ZWQgdGhpcyBwYXNzLiBXZQorICAgICAgICBzdGlsbCBoYXZlIHRv
IGFkZCBhIGNoZWNrIHRvIG1ha2Ugc3VyZSByZXNvdXJjZXMgY2FuJ3QgbGl2ZSB3aXRoaW4gcmVz
b3VyY2VzLCBidXQgSSBleHBlY3QKKyAgICAgICAgdGhhdCB3aWxsIGJlIGRvbmUgaW4gdGhlIHNh
bWUgcGxhY2UgdGhhdCBzZW1hbnRpY3MgYXJlIGNoZWNrZWQuCisgICAgICAgICogV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvQWxsb2NhdGVBdEVudHJ5UG9pbnRzLmpzOgorICAgICAgICAoYWxsb2Nh
dGVBdEVudHJ5UG9pbnRzLnVwZGF0ZUZ1bmN0aW9uLlVwZGF0ZUZ1bmN0aW9ucy5wcm90b3R5cGUu
X2FkZFZhcmlhYmxlRGVjbGFyYXRpb24pOgorICAgICAgICBOYW1lIHRoZSBnbG9iYWwgc3RydWN0
IGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdl
UkkvQ2FsbEV4cHJlc3Npb24uanM6IAorICAgICAgICAoQ2FsbEV4cHJlc3Npb24ucHJvdG90eXBl
Ll9yZXNvbHZlQnlJbnN0YW50aWF0aW9uKTogQ2xlYW51cAorICAgICAgICAoQ2FsbEV4cHJlc3Np
b24ucHJvdG90eXBlLl9yZXNvbHZlV2l0aE9wZXJhdG9yQW5kZXJJbmRleGVyKTogRGl0dG8KKyAg
ICAgICAgKENhbGxFeHByZXNzaW9uLnByb3RvdHlwZS5fcmVzb2x2ZVdpdGhPcGVyYXRvckxlbmd0
aCk6IERpdHRvCisgICAgICAgIChDYWxsRXhwcmVzc2lvbi5wcm90b3R5cGUuX3Jlc29sdmVXaXRo
UmVmZXJlbmNlQ29tcGFyYXRvcik6IEFkZCBzdXBwb3J0IHRvIGF1dG9tYXRpY2FsbHkKKyAgICAg
ICAgZ2VuZXJhdGUgcG9pbnRlciBlcXVhbGl0eSBOYXRpdmVGdW5jcy4KKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9FUHRyLmpzOiBJbXBsZW1lbnQgcG9pbnRlciBlcXVhbGl0eSBp
biB0aGUgaW50ZXJwcmV0ZXIuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTGF0
ZUNoZWNrZXIuanM6IFJlbW92ZWQuCisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
TGF5b3V0QnVmZmVycy5qczogUmVuYW1lZCBmcm9tIFRvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFn
ZVJJL0xhdGVDaGVja0FuZExheW91dEJ1ZmZlcnMuanMuCisgICAgICAgIChsYXlvdXRCdWZmZXJz
KToKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9XSExTTCBUZXN0cy9X
SExTTCBUZXN0cy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmMuanM6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xh
bmd1YWdlUkkvT3BlcmF0b3JBcnJheVJlZkxlbmd0aC5qczoKKyAgICAgICAgKE9wZXJhdG9yQXJy
YXlSZWZMZW5ndGgucHJvdG90eXBlLmluc3RhbnRpYXRlSW1wbGVtZW50YXRpb24pOgorICAgICAg
ICAoT3BlcmF0b3JBcnJheVJlZkxlbmd0aCk6CisgICAgICAgICogV2ViR1BVU2hhZGluZ0xhbmd1
YWdlUkkvUHJlcGFyZS5qczoKKyAgICAgICAgKGxldC5wcmVwYXJlKToKKyAgICAgICAgKiBXZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElSVi5odG1sOgorICAgICAgICAqIFdlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1Rlc3QuaHRtbDoKKyAgICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9U
ZXN0LmpzOgorICAgICAgICAodGVzdHMudGVybmFyeUV4cHJlc3Npb24pOgorICAgICAgICAodGVz
dHMuYnJlYWspOiBTcGVlZCB1cCB0ZXN0aW5nIHRpbWUKKyAgICAgICAgKHRlc3RzLmRvV2hpbGUp
OiBEaXR0bworICAgICAgICAodGVzdHMuZm9yTG9vcCk6IERpdHRvCisgICAgICAgICh0ZXN0cy5h
dG9taWNzKTogRGl0dG8KKyAgICAgICAgKHRlc3RzLmF0b21pY3NOdWxsKTogRGl0dG8KKyAgICAg
ICAgKHRlc3RzLnBvaW50ZXJFcXVhbGl0eSk6IFRlc3QgcG9pbnRlciBlcXVhbGl0eQorICAgICAg
ICAodGVzdHMuc3RhbmRhcmRMaWJyYXJ5RGV2aWNlUG9pbnRlcnMpOgorICAgICAgICAodGVzdHMu
ZGV2aWNlUHRyUHRyKTogRGVsZXRlZC4KKyAgICAgICAgKHRlc3RzLnRocmVhZGdyb3VwUHRyUHRy
KTogRGVsZXRlZC4KKyAgICAgICAgKHRlc3RzLmNvbnN0YW50UHRyUHRyKTogRGVsZXRlZC4KKyAg
ICAgICAgKiBXZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sOgorCiAyMDE4LTA5LTI1
ICBFcmljIENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgogCiAgICAgICAgIFtNZWRp
YVN0cmVhbV0gVXBkYXRlIGNvbnN0cmFpbnRzIHN1cHBvcnRlZCBieSBnZXREaXNwbGF5TWVkaWEK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcyBiL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0FsbC5qcwppbmRleCA3MDM5MjUyZjIwODMzYWE2ODFi
MDZiYWI1NTY3OTI1OWRiOTFjNjgzLi5iYTY1Y2M1ZDU1MWRkZWRlMDE4ZWJmZDM1ZmIwMzNhNTBk
YzI5MzYyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGwuanMK
KysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvQWxsLmpzCkBAIC0xMDgsOCArMTA4
LDcgQEAgbG9hZCgiSW5saW5lci5qcyIpOwogbG9hZCgiSW50TGl0ZXJhbC5qcyIpOwogbG9hZCgi
SW50TGl0ZXJhbFR5cGUuanMiKTsKIGxvYWQoIkludHJpbnNpY3MuanMiKTsKLWxvYWQoIkxhdGVD
aGVja0FuZExheW91dEJ1ZmZlcnMuanMiKTsKLWxvYWQoIkxhdGVDaGVja2VyLmpzIik7Citsb2Fk
KCJMYXlvdXRCdWZmZXJzLmpzIik7CiBsb2FkKCJMZXhlci5qcyIpOwogbG9hZCgiTGV4ZXJUb2tl
bi5qcyIpOwogbG9hZCgiTGl0ZXJhbFR5cGVDaGVja2VyLmpzIik7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGxvY2F0ZUF0RW50cnlQb2ludHMuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9BbGxvY2F0ZUF0RW50cnlQb2ludHMuanMKaW5kZXgg
Yjg3NDdlNjM4ODFmZjRjZWE2YzBiZTMzZDAwOGUyNGRhZGE4YzZmMS4uMmNkZTUzZmYwMGRjZWQ4
Mjg4MjlmOTkxMjc0NTk5ZTQxNGI1ODI4YyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvQWxsb2NhdGVBdEVudHJ5UG9pbnRzLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNo
YWRpbmdMYW5ndWFnZVJJL0FsbG9jYXRlQXRFbnRyeVBvaW50cy5qcwpAQCAtMTQyLDcgKzE0Miw3
IEBAIGZ1bmN0aW9uIGFsbG9jYXRlQXRFbnRyeVBvaW50cyhwcm9ncmFtKQogCiAgICAgICAgICAg
ICBfYWRkVmFyaWFibGVEZWNsYXJhdGlvbigpCiAgICAgICAgICAgICB7Ci0gICAgICAgICAgICAg
ICAgdGhpcy5fdmFyaWFibGVEZWNsID0gbmV3IFZhcmlhYmxlRGVjbChmdW5jLm9yaWdpbiwgbnVs
bCwgZ2xvYmFsU3RydWN0VHlwZVJlZiwgbnVsbCk7CisgICAgICAgICAgICAgICAgdGhpcy5fdmFy
aWFibGVEZWNsID0gbmV3IFZhcmlhYmxlRGVjbChmdW5jLm9yaWdpbiwgImdsb2JhbCBzdHJ1Y3Qi
LCBnbG9iYWxTdHJ1Y3RUeXBlUmVmLCBudWxsKTsKICAgICAgICAgICAgICAgICB0aGlzLm1ha2VH
bG9iYWxTdHJ1Y3RWYXJpYWJsZVJlZiA9ICgpID0+IG5ldyBNYWtlUHRyRXhwcmVzc2lvbihmdW5j
Lm9yaWdpbiwgVmFyaWFibGVSZWYud3JhcCh0aGlzLl92YXJpYWJsZURlY2wpKTsKICAgICAgICAg
ICAgICAgICBmdW5jLmJvZHkuc3RhdGVtZW50cy51bnNoaWZ0KHRoaXMuX3ZhcmlhYmxlRGVjbCk7
CiAgICAgICAgICAgICB9CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VS
SS9DYWxsRXhwcmVzc2lvbi5qcyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxF
eHByZXNzaW9uLmpzCmluZGV4IGI0YzBkYTc4NzczMGExYjM4ODEwYzhiNTk0MzE3ODQ5MDlkZGIz
ZTAuLjA0YmUyZGE2NmQ3OGI5ZjhhZWVlZTliNTYzYjA4MjQzZTEyYTEyM2EgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNzaW9uLmpzCisrKyBiL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0NhbGxFeHByZXNzaW9uLmpzCkBAIC0xMDIsNiAr
MTAyLDExIEBAIGNsYXNzIENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7CiAgICAg
ICAgICAgICBmdW5jID0gdGhpcy5fcmVzb2x2ZVdpdGhPcGVyYXRvckFuZGVySW5kZXhlcihwcm9n
cmFtKTsKICAgICAgICAgZWxzZSBpZiAodGhpcy5uYW1lID09ICJvcGVyYXRvci5sZW5ndGgiKQog
ICAgICAgICAgICAgZnVuYyA9IHRoaXMuX3Jlc29sdmVXaXRoT3BlcmF0b3JMZW5ndGgocHJvZ3Jh
bSk7CisgICAgICAgIGVsc2UgaWYgKHRoaXMubmFtZSA9PSAib3BlcmF0b3I9PSIgJiYgdGhpcy5h
cmd1bWVudFR5cGVzLmxlbmd0aCA9PSAyCisgICAgICAgICAgICAmJiAodGhpcy5hcmd1bWVudFR5
cGVzWzBdIGluc3RhbmNlb2YgTnVsbFR5cGUgfHwgdGhpcy5hcmd1bWVudFR5cGVzWzBdIGluc3Rh
bmNlb2YgUmVmZXJlbmNlVHlwZSkKKyAgICAgICAgICAgICYmICh0aGlzLmFyZ3VtZW50VHlwZXNb
MV0gaW5zdGFuY2VvZiBOdWxsVHlwZSB8fCB0aGlzLmFyZ3VtZW50VHlwZXNbMV0gaW5zdGFuY2Vv
ZiBSZWZlcmVuY2VUeXBlKQorICAgICAgICAgICAgJiYgdGhpcy5hcmd1bWVudFR5cGVzWzBdLmVx
dWFscyh0aGlzLmFyZ3VtZW50VHlwZXNbMV0pKQorICAgICAgICAgICAgICAgIGZ1bmMgPSB0aGlz
Ll9yZXNvbHZlV2l0aFJlZmVyZW5jZUNvbXBhcmF0b3IocHJvZ3JhbSk7CiAgICAgICAgIGVsc2UK
ICAgICAgICAgICAgIHJldHVybiBudWxsOwogCkBAIC0xMTksMTcgKzEyNCwxNyBAQCBjbGFzcyBD
YWxsRXhwcmVzc2lvbiBleHRlbmRzIEV4cHJlc3Npb24gewogICAgICAgICBjb25zdCBhZGRyZXNz
U3BhY2UgPSBhcnJheVJlZlR5cGUuYWRkcmVzc1NwYWNlOwogCiAgICAgICAgIC8vIFRoZSBsYXRl
ciBjaGVja0xpdGVyYWxUeXBlcyBzdGFnZSB3aWxsIHZlcmlmeSB0aGF0IHRoZSBsaXRlcmFsIGNh
biBiZSByZXByZXNlbnRlZCBhcyBhIHVpbnQuCi0gICAgICAgIGNvbnN0IHVpbnRUeXBlID0gVHlw
ZVJlZi53cmFwKHByb2dyYW0udHlwZXMuZ2V0KCJ1aW50IikpOworICAgICAgICBjb25zdCB1aW50
VHlwZSA9IFR5cGVSZWYud3JhcChwcm9ncmFtLmludHJpbnNpY3MudWludCk7CiAgICAgICAgIGlu
ZGV4VHlwZS50eXBlID0gdWludFR5cGU7CiAKICAgICAgICAgY29uc3QgZWxlbWVudFR5cGUgPSB0
aGlzLmFyZ3VtZW50VHlwZXNbMF0uZWxlbWVudFR5cGU7Ci0gICAgICAgIHRoaXMucmVzdWx0VHlw
ZSA9IHRoaXMuX3JldHVyblR5cGUgPSBUeXBlUmVmLndyYXAobmV3IFB0clR5cGUodGhpcy5vcmln
aW4sIGFkZHJlc3NTcGFjZSwgVHlwZVJlZi53cmFwKGVsZW1lbnRUeXBlKSkpCisgICAgICAgIHRo
aXMucmVzdWx0VHlwZSA9IFR5cGVSZWYud3JhcChuZXcgUHRyVHlwZSh0aGlzLm9yaWdpbiwgYWRk
cmVzc1NwYWNlLCBUeXBlUmVmLndyYXAoZWxlbWVudFR5cGUpKSkKIAotICAgICAgICBsZXQgYXJy
YXlSZWZBY2Nlc3NvciA9IG5ldyBPcGVyYXRvckFuZGVySW5kZXhlcih0aGlzLnJldHVyblR5cGUu
dG9TdHJpbmcoKSwgYWRkcmVzc1NwYWNlKTsKKyAgICAgICAgbGV0IGFycmF5UmVmQWNjZXNzb3Ig
PSBuZXcgT3BlcmF0b3JBbmRlckluZGV4ZXIodGhpcy5yZXN1bHRUeXBlLnRvU3RyaW5nKCksIGFk
ZHJlc3NTcGFjZSk7CiAgICAgICAgIGNvbnN0IGZ1bmMgPSBuZXcgTmF0aXZlRnVuYyh0aGlzLm9y
aWdpbiwgIm9wZXJhdG9yJltdIiwgdGhpcy5yZXN1bHRUeXBlLCBbCiAgICAgICAgICAgICBuZXcg
RnVuY1BhcmFtZXRlcih0aGlzLm9yaWdpbiwgbnVsbCwgYXJyYXlSZWZUeXBlKSwKICAgICAgICAg
ICAgIG5ldyBGdW5jUGFyYW1ldGVyKHRoaXMub3JpZ2luLCBudWxsLCB1aW50VHlwZSkKLSAgICAg
ICAgXSwgZmFsc2UpOworICAgICAgICBdKTsKIAogICAgICAgICBhcnJheVJlZkFjY2Vzc29yLmlu
c3RhbnRpYXRlSW1wbGVtZW50YXRpb24oZnVuYyk7CiAKQEAgLTEzOCwxNCArMTQzLDE0IEBAIGNs
YXNzIENhbGxFeHByZXNzaW9uIGV4dGVuZHMgRXhwcmVzc2lvbiB7CiAKICAgICBfcmVzb2x2ZVdp
dGhPcGVyYXRvckxlbmd0aChwcm9ncmFtKQogICAgIHsKLSAgICAgICAgdGhpcy5yZXN1bHRUeXBl
ID0gdGhpcy5fcmV0dXJuVHlwZSA9IFR5cGVSZWYud3JhcChwcm9ncmFtLnR5cGVzLmdldCgidWlu
dCIpKTsKKyAgICAgICAgdGhpcy5yZXN1bHRUeXBlID0gVHlwZVJlZi53cmFwKHByb2dyYW0uaW50
cmluc2ljcy51aW50KTsKIAogICAgICAgICBpZiAodGhpcy5hcmd1bWVudFR5cGVzWzBdLmlzQXJy
YXkpIHsKICAgICAgICAgICAgIGNvbnN0IGFycmF5VHlwZSA9IHRoaXMuYXJndW1lbnRUeXBlc1sw
XTsKICAgICAgICAgICAgIGNvbnN0IGZ1bmMgPSBuZXcgTmF0aXZlRnVuYyh0aGlzLm9yaWdpbiwg
Im9wZXJhdG9yLmxlbmd0aCIsIHRoaXMucmVzdWx0VHlwZSwgWwogICAgICAgICAgICAgICAgIG5l
dyBGdW5jUGFyYW1ldGVyKHRoaXMub3JpZ2luLCBudWxsLCBhcnJheVR5cGUpCi0gICAgICAgICAg
ICBdLCBmYWxzZSk7Ci0gICAgICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKGFyZ3MsIG5v
ZGUpID0+IEVQdHIuYm94KGFycmF5VHlwZS5udW1FbGVtZW50c1ZhbHVlKTsKKyAgICAgICAgICAg
IF0pOworICAgICAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlvbiA9IChhcmdzKSA9PiBFUHRyLmJv
eChhcnJheVR5cGUubnVtRWxlbWVudHNWYWx1ZSk7CiAgICAgICAgICAgICByZXR1cm4gZnVuYzsK
ICAgICAgICAgfSBlbHNlIGlmICh0aGlzLmFyZ3VtZW50VHlwZXNbMF0uaXNBcnJheVJlZikgewog
ICAgICAgICAgICAgY29uc3QgYXJyYXlSZWZUeXBlID0gdGhpcy5hcmd1bWVudFR5cGVzWzBdOwpA
QCAtMTUzLDEyICsxNTgsMzggQEAgY2xhc3MgQ2FsbEV4cHJlc3Npb24gZXh0ZW5kcyBFeHByZXNz
aW9uIHsKICAgICAgICAgICAgIGNvbnN0IG9wZXJhdG9yTGVuZ3RoID0gbmV3IE9wZXJhdG9yQXJy
YXlSZWZMZW5ndGgoYXJyYXlSZWZUeXBlLnRvU3RyaW5nKCksIGFkZHJlc3NTcGFjZSk7CiAgICAg
ICAgICAgICBjb25zdCBmdW5jID0gbmV3IE5hdGl2ZUZ1bmModGhpcy5vcmlnaW4sICJvcGVyYXRv
ci5sZW5ndGgiLCB0aGlzLnJlc3VsdFR5cGUsIFsKICAgICAgICAgICAgICAgICBuZXcgRnVuY1Bh
cmFtZXRlcih0aGlzLm9yaWdpbiwgbnVsbCwgYXJyYXlSZWZUeXBlKQotICAgICAgICAgICAgXSwg
ZmFsc2UpOworICAgICAgICAgICAgXSk7CiAgICAgICAgICAgICBvcGVyYXRvckxlbmd0aC5pbnN0
YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpOwogICAgICAgICAgICAgcmV0dXJuIGZ1bmM7CiAg
ICAgICAgIH0gZWxzZQogICAgICAgICAgICAgdGhyb3cgbmV3IFdUeXBlRXJyb3IodGhpcy5vcmln
aW4ub3JpZ2luU3RyaW5nLCBgRXhwZWN0ZWQgJHt0aGlzLmFyZ3VtZW50VHlwZXNbMF19IHRvIGJl
IGFycmF5L2FycmF5IHJlZiB0eXBlIGZvciBvcGVyYXRvci5sZW5ndGhgKTsKICAgICB9CisKKyAg
ICBfcmVzb2x2ZVdpdGhSZWZlcmVuY2VDb21wYXJhdG9yKHByb2dyYW0pCisgICAgeworICAgICAg
ICBsZXQgYXJndW1lbnRUeXBlID0gdGhpcy5hcmd1bWVudFR5cGVzWzBdOworICAgICAgICBpZiAo
YXJndW1lbnRUeXBlIGluc3RhbmNlb2YgTnVsbFR5cGUpCisgICAgICAgICAgICBhcmd1bWVudFR5
cGUgPSB0aGlzLmFyZ3VtZW50VHlwZXNbMV07CisgICAgICAgIGlmIChhcmd1bWVudFR5cGUgaW5z
dGFuY2VvZiBOdWxsVHlwZSkgeworICAgICAgICAgICAgLy8gV2UgZW5jb3VudGVyZWQgIm51bGwg
PT0gbnVsbCIuCisgICAgICAgICAgICAvLyBUaGUgdHlwZSBpc24ndCBvYnNlcnZhYmxlLCBzbyB3
ZSBjYW4gcGljayB3aGF0ZXZlciB3ZSB3YW50LgorICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMg
Y2FuIHByb2JhYmx5IGJlIGdlbmVyYWxpemVkLCB1c2luZyB0aGUgInByZWZlcnJlZCB0eXBlIiBp
bmZyYXN0cnVjdHVyZSB1c2VkIGJ5IGdlbmVyaWMgbGl0ZXJhbHMKKyAgICAgICAgICAgIGFyZ3Vt
ZW50VHlwZSA9IG5ldyBQdHJUeXBlKHRoaXMub3JpZ2luLCAidGhyZWFkIiwgcHJvZ3JhbS5pbnRy
aW5zaWNzLmludCk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5yZXN1bHRUeXBlID0gVHlwZVJl
Zi53cmFwKHByb2dyYW0uaW50cmluc2ljcy5ib29sKTsKKyAgICAgICAgY29uc3QgZnVuYyA9IG5l
dyBOYXRpdmVGdW5jKHRoaXMub3JpZ2luLCAib3BlcmF0b3I9PSIsIHRoaXMucmVzdWx0VHlwZSwg
WworICAgICAgICAgICAgbmV3IEZ1bmNQYXJhbWV0ZXIodGhpcy5vcmlnaW4sIG51bGwsIGFyZ3Vt
ZW50VHlwZSksCisgICAgICAgICAgICBuZXcgRnVuY1BhcmFtZXRlcih0aGlzLm9yaWdpbiwgbnVs
bCwgYXJndW1lbnRUeXBlKQorICAgICAgICBdKTsKKyAgICAgICAgZnVuYy5pbXBsZW1lbnRhdGlv
biA9IChbbGhzLCByaHNdKSA9PiB7CisgICAgICAgICAgICBsZXQgbGVmdCA9IGxocy5sb2FkVmFs
dWUoKTsKKyAgICAgICAgICAgIGxldCByaWdodCA9IHJocy5sb2FkVmFsdWUoKTsKKyAgICAgICAg
ICAgIGlmIChsZWZ0ICYmIHJpZ2h0KQorICAgICAgICAgICAgICAgIHJldHVybiBFUHRyLmJveChs
ZWZ0LmVxdWFscyhyaWdodCkpOworICAgICAgICAgICAgcmV0dXJuIEVQdHIuYm94KGxlZnQgPT0g
cmlnaHQpOworICAgICAgICB9OworICAgICAgICByZXR1cm4gZnVuYzsKKyAgICB9CiAgICAgCiAg
ICAgcmVzb2x2ZVRvT3ZlcmxvYWQob3ZlcmxvYWQpCiAgICAgewpkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRUFycmF5UmVmLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvRUFycmF5UmVmLmpzCmluZGV4IDExNzNiMTc1YjExNjE0Zjk3ZDc3Y2ZiNmNl
MjViNmU5OWU0YjVjYmMuLjkxMmRlZjc3NTgwODFmOWVlODc4NDI5ZmVhMmI0OTY3YTFmZTY3NTIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0VBcnJheVJlZi5qcwor
KysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9FQXJyYXlSZWYuanMKQEAgLTMzLDYg
KzMzLDExIEBAIGNsYXNzIEVBcnJheVJlZiB7CiAgICAgCiAgICAgZ2V0IHB0cigpIHsgcmV0dXJu
IHRoaXMuX3B0cjsgfQogICAgIGdldCBsZW5ndGgoKSB7IHJldHVybiB0aGlzLl9sZW5ndGg7IH0K
KworICAgIGVxdWFscyhvdGhlcikKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLnB0ci5lcXVh
bHMob3RoZXIucHRyKSAmJiB0aGlzLmxlbmd0aCA9PSBvdGhlci5sZW5ndGg7CisgICAgfQogICAg
IAogICAgIHRvU3RyaW5nKCkKICAgICB7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5n
TGFuZ3VhZ2VSSS9FUHRyLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvRVB0ci5q
cwppbmRleCBlMjU4MjZjNmFjNDM2YTA3OTc2NzIxZjhkYWM4Njg5YmU2NWNmYzk4Li5lZjViNWI0
OWI5NjY2MjVkZjYwNWRjYThiY2ViZmIwMWY3MzA1YTk2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9FUHRyLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5n
dWFnZVJJL0VQdHIuanMKQEAgLTc5LDYgKzc5LDExIEBAIGNsYXNzIEVQdHIgewogICAgICAgICBm
b3IgKGxldCBpID0gc2l6ZTsgaS0tOykKICAgICAgICAgICAgIHRoaXMuc2V0KGksIG90aGVyLmdl
dChpKSk7CiAgICAgfQorCisgICAgZXF1YWxzKG90aGVyKQorICAgIHsKKyAgICAgICAgcmV0dXJu
IHRoaXMuYnVmZmVyID09IG90aGVyLmJ1ZmZlciAmJiB0aGlzLm9mZnNldCA9PSBvdGhlci5vZmZz
ZXQ7CisgICAgfQogICAgIAogICAgIHRvU3RyaW5nKCkKICAgICB7CmRpZmYgLS1naXQgYS9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9MYXRlQ2hlY2tBbmRMYXlvdXRCdWZmZXJzLmpzIGIv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTGF0ZUNoZWNrQW5kTGF5b3V0QnVmZmVycy5q
cwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZjViMzViYjgwZTE0ZDE2ZTI2MDMxYTcw
YWYxYzljMzg2YjA1YzY0MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9MYXRlQ2hlY2tBbmRMYXlvdXRC
dWZmZXJzLmpzCisrKyAvZGV2L251bGwKQEAgLTEsMzcgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQg
QU5ZCi0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBF
WEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0idXNlIHN0cmljdCI7Ci0KLWZ1bmN0aW9uIGxh
dGVDaGVja0FuZExheW91dEJ1ZmZlcnMocHJvZ3JhbSkKLXsKLSAgICBmb3IgKGxldCBmdW5jTGlz
dCBvZiBwcm9ncmFtLmZ1bmN0aW9ucy52YWx1ZXMoKSkgewotICAgICAgICBmb3IgKGxldCBmdW5j
IG9mIGZ1bmNMaXN0KSB7Ci0gICAgICAgICAgICBpZiAoZnVuYy5pc05hdGl2ZSkKLSAgICAgICAg
ICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgIGZ1bmMudmlzaXQobmV3IExhdGVDaGVja2Vy
KCkpOwotICAgICAgICAgICAgZnVuYy52aXNpdChuZXcgRUJ1ZmZlckJ1aWxkZXIoKSk7Ci0gICAg
ICAgIH0KLSAgICB9Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvTGF0ZUNoZWNrZXIuanMgYi9Ub29scy9XZWJH
UFVTaGFkaW5nTGFuZ3VhZ2VSSS9MYXRlQ2hlY2tlci5qcwpkZWxldGVkIGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggNDdmZDMyYzNhODRkNjNlNmRjYzVmMzdjN2NlNDIzN2VkMjc0MzcyZS4uMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9MYXRlQ2hlY2tlci5qcworKysgL2Rldi9udWxsCkBAIC0xLDM3ICswLDAg
QEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBgYEFTIElTJycgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAq
IENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLAotICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
Ci0gKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKLSAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLSJ1c2Ugc3Ry
aWN0IjsKLQotY2xhc3MgTGF0ZUNoZWNrZXIgZXh0ZW5kcyBWaXNpdG9yIHsKLSAgICB2aXNpdFJl
ZmVyZW5jZVR5cGUobm9kZSkKLSAgICB7Ci0gICAgICAgIGlmIChub2RlLmFkZHJlc3NTcGFjZSA9
PSAidGhyZWFkIikKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgCi0gICAgICAgIGlmICgh
bm9kZS5lbGVtZW50VHlwZS5pc1ByaW1pdGl2ZSkKLSAgICAgICAgICAgIHRocm93IG5ldyBXVHlw
ZUVycm9yKG5vZGUub3JpZ2luLm9yaWdpblN0cmluZywgIklsbGVnYWwgcG9pbnRlciB0byBub24t
cHJpbWl0aXZlIHR5cGU6ICIgKyBub2RlKTsKLSAgICB9Ci19Ci0KZGlmZiAtLWdpdCBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL0xheW91dEJ1ZmZlcnMuanMgYi9Ub29scy9XZWJHUFVT
aGFkaW5nTGFuZ3VhZ2VSSS9MYXlvdXRCdWZmZXJzLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM3NzE4ZDQyZWM4
MjZlNmViZGE0ZTJlMDRmNzdlODJlZGRjODc3M2QKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9X
ZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9MYXlvdXRCdWZmZXJzLmpzCkBAIC0wLDAgKzEsMzYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKKyAqIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLAorICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworInVzZSBzdHJpY3Qi
OworCitmdW5jdGlvbiBsYXlvdXRCdWZmZXJzKHByb2dyYW0pCit7CisgICAgZm9yIChsZXQgZnVu
Y0xpc3Qgb2YgcHJvZ3JhbS5mdW5jdGlvbnMudmFsdWVzKCkpIHsKKyAgICAgICAgZm9yIChsZXQg
ZnVuYyBvZiBmdW5jTGlzdCkgeworICAgICAgICAgICAgaWYgKGZ1bmMuaXNOYXRpdmUpCisgICAg
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICBmdW5jLnZpc2l0KG5ldyBFQnVmZmVy
QnVpbGRlcigpKTsKKyAgICAgICAgfQorICAgIH0KK30KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL1dITFNMIFRlc3RzLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9NZXRhbC9X
SExTTCBUZXN0cy9XSExTTCBUZXN0cy54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBm
ODQ3YWU5NjdhNmNmZWQxYzY1NjYwZDhjNzdhNzVhNmM1OGU3ODAuLjllZjhhZTAxNWE4MWVkOWE2
NWIwYzk1NTM1YWEzZjBkMjhjYzllYjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL01ldGFsL1dITFNMIFRlc3RzL1dITFNMIFRlc3RzLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oJCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL01ldGFsL1dITFNM
IFRlc3RzL1dITFNMIFRlc3RzLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJCkBAIC04Myw3ICs4
Myw2IEBACiAJCUU5MkQxMTVBMjBGNzA2MEUwMEQ3NzZCMiAvKiBJbnRMaXRlcmFsLmpzIGluIFJl
c291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMEZFNDIwRjU2
REREMDBENzc2QjIgLyogSW50TGl0ZXJhbC5qcyAqLzsgfTsKIAkJRTkyRDExNUIyMEY3MDYwRTAw
RDc3NkIyIC8qIEludExpdGVyYWxUeXBlLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJEMEZFNTIwRjU2REREMDBENzc2QjIgLyogSW50TGl0ZXJh
bFR5cGUuanMgKi87IH07CiAJCUU5MkQxMTVDMjBGNzA2MEUwMEQ3NzZCMiAvKiBJbnRyaW5zaWNz
LmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOTJE
MEZFNzIwRjU2REREMDBENzc2QjIgLyogSW50cmluc2ljcy5qcyAqLzsgfTsKLQkJRTkyRDExNUQy
MEY3MDYwRTAwRDc3NkIyIC8qIExhdGVDaGVja2VyLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBFOUZDRUI2NDIwRjU2REE1MDA5QjM2MjkgLyogTGF0
ZUNoZWNrZXIuanMgKi87IH07CiAJCUU5MkQxMTVFMjBGNzA2MEUwMEQ3NzZCMiAvKiBMZXhlci5q
cyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTkyRDBG
RjEyMEY1NkRFQzAwRDc3NkIyIC8qIExleGVyLmpzICovOyB9OwogCQlFOTJEMTE1RjIwRjcwNjBF
MDBENzc2QjIgLyogTGV4ZXJUb2tlbi5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gRTkyRDBGRjAyMEY1NkRFQjAwRDc3NkIyIC8qIExleGVyVG9rZW4u
anMgKi87IH07CiAJCUU5MkQxMTYwMjBGNzA2MEUwMEQ3NzZCMiAvKiBMaXRlcmFsVHlwZUNoZWNr
ZXIuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5
MkQwRkYyMjBGNTZERUMwMEQ3NzZCMiAvKiBMaXRlcmFsVHlwZUNoZWNrZXIuanMgKi87IH07CkBA
IC0xODYsNyArMTg1LDcgQEAKIAkJRTlEN0NCOTgyMTRCODI0MjAwRjFDOTE4IC8qIE1TTEJhY2tl
bmQuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5
RDdDQjk1MjE0QjgyNDIwMEYxQzkxOCAvKiBNU0xCYWNrZW5kLmpzICovOyB9OwogCQlFOUQ3Q0I5
OTIxNEI4MjQyMDBGMUM5MTggLyogTVNMQ29uc3RleHByRW1pdHRlci5qcyBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTlEN0NCOTYyMTRCODI0MjAwRjFD
OTE4IC8qIE1TTENvbnN0ZXhwckVtaXR0ZXIuanMgKi87IH07CiAJCUU5RDdDQkEwMjE0QjgyQjgw
MEYxQzkxOCAvKiBUZXh0dXJlLmpzIGluIFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBFOUQ3Q0I5QTIxNEI4MkI3MDBGMUM5MTggLyogVGV4dHVyZS5qcyAqLzsg
fTsKLQkJRTlEN0NCQTEyMTRCODJCODAwRjFDOTE4IC8qIExhdGVDaGVja0FuZExheW91dEJ1ZmZl
cnMuanMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEU5
RDdDQjlCMjE0QjgyQjcwMEYxQzkxOCAvKiBMYXRlQ2hlY2tBbmRMYXlvdXRCdWZmZXJzLmpzICov
OyB9OworCQlFOUQ3Q0JBMTIxNEI4MkI4MDBGMUM5MTggLyogTGF5b3V0QnVmZmVycy5qcyBpbiBS
ZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTlEN0NCOUIyMTRC
ODJCNzAwRjFDOTE4IC8qIExheW91dEJ1ZmZlcnMuanMgKi87IH07CiAJCUU5RDdDQkEyMjE0Qjgy
QjgwMEYxQzkxOCAvKiBDYXN0cy5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gRTlEN0NCOUMyMTRCODJCNzAwRjFDOTE4IC8qIENhc3RzLmpzICovOyB9
OwogCQlFOUQ3Q0JBMzIxNEI4MkI4MDBGMUM5MTggLyogU2FtcGxlci5qcyBpbiBSZXNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gRTlEN0NCOUQyMTRCODJCODAwRjFD
OTE4IC8qIFNhbXBsZXIuanMgKi87IH07CiAJCUU5RDdDQkE0MjE0QjgyQjgwMEYxQzkxOCAvKiBU
ZXh0dXJlT3BlcmF0aW9ucy5qcyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gRTlEN0NCOUUyMTRCODJCODAwRjFDOTE4IC8qIFRleHR1cmVPcGVyYXRpb25z
LmpzICovOyB9OwpAQCAtNDA1LDcgKzQwNCw3IEBACiAJCUU5RDdDQjk1MjE0QjgyNDIwMEYxQzkx
OCAvKiBNU0xCYWNrZW5kLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1l
ID0gTVNMQmFja2VuZC5qczsgcGF0aCA9IC4uLy4uL01TTEJhY2tlbmQuanM7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUU5RDdDQjk2MjE0QjgyNDIwMEYxQzkxOCAvKiBNU0xDb25zdGV4
cHJFbWl0dGVyLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gTVNM
Q29uc3RleHByRW1pdHRlci5qczsgcGF0aCA9IC4uLy4uL01TTENvbnN0ZXhwckVtaXR0ZXIuanM7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU5RDdDQjlBMjE0QjgyQjcwMEYxQzkxOCAv
KiBUZXh0dXJlLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gVGV4
dHVyZS5qczsgcGF0aCA9IC4uLy4uLy4uL1RleHR1cmUuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07Ci0JCUU5RDdDQjlCMjE0QjgyQjcwMEYxQzkxOCAvKiBMYXRlQ2hlY2tBbmRMYXlvdXRC
dWZmZXJzLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gTGF0ZUNo
ZWNrQW5kTGF5b3V0QnVmZmVycy5qczsgcGF0aCA9IC4uLy4uLy4uL0xhdGVDaGVja0FuZExheW91
dEJ1ZmZlcnMuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUU5RDdDQjlCMjE0Qjgy
QjcwMEYxQzkxOCAvKiBMYXlvdXRCdWZmZXJzLmpzICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZh
c2NyaXB0OyBuYW1lID0gTGF5b3V0QnVmZmVycy5qczsgcGF0aCA9IC4uLy4uLy4uL0xheW91dEJ1
ZmZlcnMuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU5RDdDQjlDMjE0QjgyQjcw
MEYxQzkxOCAvKiBDYXN0cy5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFt
ZSA9IENhc3RzLmpzOyBwYXRoID0gLi4vLi4vLi4vQ2FzdHMuanM7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCUU5RDdDQjlEMjE0QjgyQjgwMEYxQzkxOCAvKiBTYW1wbGVyLmpzICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1lID0gU2FtcGxlci5qczsgcGF0aCA9IC4u
Ly4uLy4uL1NhbXBsZXIuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUU5RDdDQjlF
MjE0QjgyQjgwMEYxQzkxOCAvKiBUZXh0dXJlT3BlcmF0aW9ucy5qcyAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IFRleHR1cmVPcGVyYXRpb25zLmpzOyBwYXRoID0gLi4v
Li4vLi4vVGV4dHVyZU9wZXJhdGlvbnMuanM7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC00MTYsNyArNDE1LDYgQEAKIAkJRTlGQ0VCNUEyMEY1NkQ5MzAwOUIzNjI5IC8qIEZvckxvb3Au
anMgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmphdmFzY3JpcHQ7IG5hbWUgPSBGb3JMb29wLmpzOyBw
YXRoID0gLi4vLi4vLi4vRm9yTG9vcC5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
RTlGQ0VCNUIyMEY1NkQ5MzAwOUIzNjI5IC8qIEZpZWxkLmpzICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5qYXZhc2NyaXB0OyBuYW1lID0gRmllbGQuanM7IHBhdGggPSAuLi8uLi8uLi9GaWVsZC5qczsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTlGQ0VCNjMyMEY1NkRBNDAwOUIzNjI5IC8q
IEluZGV4RXhwcmVzc2lvbi5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IEluZGV4RXhwcmVzc2lv
bi5qczsgcGF0aCA9IC4uLy4uLy4uL0luZGV4RXhwcmVzc2lvbi5qczsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJRTlGQ0VCNjQyMEY1NkRBNTAwOUIzNjI5IC8qIExhdGVDaGVja2VyLmpz
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5qYXZhc2NyaXB0OyBuYW1lID0gTGF0ZUNoZWNrZXIuanM7IHBhdGggPSAuLi8uLi8uLi9M
YXRlQ2hlY2tlci5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTlGQ0VCNjUyMEY1
NkRBNTAwOUIzNjI5IC8qIEluZmVyVHlwZXNGb3JDYWxsLmpzICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5qYXZhc2NyaXB0OyBuYW1l
ID0gSW5mZXJUeXBlc0ZvckNhbGwuanM7IHBhdGggPSAuLi8uLi8uLi9JbmZlclR5cGVzRm9yQ2Fs
bC5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTlGQ0VCNjYyMEY1NkRBNTAwOUIz
NjI5IC8qIElubGluZS5qcyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuamF2YXNjcmlwdDsgbmFtZSA9IElubGluZS5qczsgcGF0aCA9
IC4uLy4uLy4uL0lubGluZS5qczsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIC8qIEVuZCBQ
QlhGaWxlUmVmZXJlbmNlIHNlY3Rpb24gKi8KQEAgLTYyOCw4ICs2MjYsNyBAQAogCQkJCUU5MkQw
RkU0MjBGNTZEREQwMEQ3NzZCMiAvKiBJbnRMaXRlcmFsLmpzICovLAogCQkJCUU5MkQwRkU1MjBG
NTZEREQwMEQ3NzZCMiAvKiBJbnRMaXRlcmFsVHlwZS5qcyAqLywKIAkJCQlFOTJEMEZFNzIwRjU2
REREMDBENzc2QjIgLyogSW50cmluc2ljcy5qcyAqLywKLQkJCQlFOUQ3Q0I5QjIxNEI4MkI3MDBG
MUM5MTggLyogTGF0ZUNoZWNrQW5kTGF5b3V0QnVmZmVycy5qcyAqLywKLQkJCQlFOUZDRUI2NDIw
RjU2REE1MDA5QjM2MjkgLyogTGF0ZUNoZWNrZXIuanMgKi8sCisJCQkJRTlEN0NCOUIyMTRCODJC
NzAwRjFDOTE4IC8qIExheW91dEJ1ZmZlcnMuanMgKi8sCiAJCQkJRTkyRDBGRjEyMEY1NkRFQzAw
RDc3NkIyIC8qIExleGVyLmpzICovLAogCQkJCUU5MkQwRkYwMjBGNTZERUIwMEQ3NzZCMiAvKiBM
ZXhlclRva2VuLmpzICovLAogCQkJCUU5MkQwRkYyMjBGNTZERUMwMEQ3NzZCMiAvKiBMaXRlcmFs
VHlwZUNoZWNrZXIuanMgKi8sCkBAIC04ODUsOCArODgyLDcgQEAKIAkJCQlFOTJEMTE1QjIwRjcw
NjBFMDBENzc2QjIgLyogSW50TGl0ZXJhbFR5cGUuanMgaW4gUmVzb3VyY2VzICovLAogCQkJCUU5
MkQxMTVDMjBGNzA2MEUwMEQ3NzZCMiAvKiBJbnRyaW5zaWNzLmpzIGluIFJlc291cmNlcyAqLywK
IAkJCQlFOTA2QjA0NjIxMTM5Qjc3MDBBRDFDNUUgLyogSnVsaWEud2hsc2wgaW4gUmVzb3VyY2Vz
ICovLAotCQkJCUU5RDdDQkExMjE0QjgyQjgwMEYxQzkxOCAvKiBMYXRlQ2hlY2tBbmRMYXlvdXRC
dWZmZXJzLmpzIGluIFJlc291cmNlcyAqLywKLQkJCQlFOTJEMTE1RDIwRjcwNjBFMDBENzc2QjIg
LyogTGF0ZUNoZWNrZXIuanMgaW4gUmVzb3VyY2VzICovLAorCQkJCUU5RDdDQkExMjE0QjgyQjgw
MEYxQzkxOCAvKiBMYXlvdXRCdWZmZXJzLmpzIGluIFJlc291cmNlcyAqLywKIAkJCQlFOTJEMTE1
RTIwRjcwNjBFMDBENzc2QjIgLyogTGV4ZXIuanMgaW4gUmVzb3VyY2VzICovLAogCQkJCUU5MkQx
MTVGMjBGNzA2MEUwMEQ3NzZCMiAvKiBMZXhlclRva2VuLmpzIGluIFJlc291cmNlcyAqLywKIAkJ
CQlFOTJEMTE2MDIwRjcwNjBFMDBENzc2QjIgLyogTGl0ZXJhbFR5cGVDaGVja2VyLmpzIGluIFJl
c291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL05h
dGl2ZUZ1bmMuanMgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9OYXRpdmVGdW5jLmpz
CmluZGV4IGJiZjAyODUxYjM3OTBmN2UyNzUyNjEwMTkzOTQ3OTE5ZGY1OTdhZTUuLmVmNjllYmVk
ZGE3ZGQ2YmEwMDRmOWFlNWVkNmY1YzdmMjZhNWJjN2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL05hdGl2ZUZ1bmMuanMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGlu
Z0xhbmd1YWdlUkkvTmF0aXZlRnVuYy5qcwpAQCAtMjUsNyArMjUsNyBAQAogInVzZSBzdHJpY3Qi
OwogCiBjbGFzcyBOYXRpdmVGdW5jIGV4dGVuZHMgRnVuYyB7Ci0gICAgY29uc3RydWN0b3Iob3Jp
Z2luLCBuYW1lLCByZXR1cm5UeXBlLCBwYXJhbWV0ZXJzLCBpc0Nhc3QsIHN0YWdlID0gbnVsbCkK
KyAgICBjb25zdHJ1Y3RvcihvcmlnaW4sIG5hbWUsIHJldHVyblR5cGUsIHBhcmFtZXRlcnMsIGlz
Q2FzdCA9IGZhbHNlLCBzdGFnZSA9IG51bGwpCiAgICAgewogICAgICAgICBzdXBlcihvcmlnaW4s
IG5hbWUsIHJldHVyblR5cGUsIHBhcmFtZXRlcnMsIGlzQ2FzdCk7CiAgICAgICAgIHRoaXMuX3N0
YWdlID0gc3RhZ2U7CmRpZmYgLS1naXQgYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9P
cGVyYXRvckFycmF5UmVmTGVuZ3RoLmpzIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkv
T3BlcmF0b3JBcnJheVJlZkxlbmd0aC5qcwppbmRleCA2M2VkZDc5ZDZkZTIxYTAyYTZmZmE2ZjQx
MzBkZTljYzM1NGMxYTdmLi43OTA2MmMyNTEwNWU2ODBiMDMzMDk0MDA3YjE2NmU0Yzc2YjkwMGQz
IDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9PcGVyYXRvckFycmF5
UmVmTGVuZ3RoLmpzCisrKyBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL09wZXJhdG9y
QXJyYXlSZWZMZW5ndGguanMKQEAgLTQxLDcgKzQxLDcgQEAgY2xhc3MgT3BlcmF0b3JBcnJheVJl
Zkxlbmd0aCB7CiAKICAgICBpbnN0YW50aWF0ZUltcGxlbWVudGF0aW9uKGZ1bmMpCiAgICAgewot
ICAgICAgICBmdW5jLmltcGxlbWVudGF0aW9uID0gKFtyZWZdLCBub2RlKSA9PiB7CisgICAgICAg
IGZ1bmMuaW1wbGVtZW50YXRpb24gPSAoW3JlZl0pID0+IHsKICAgICAgICAgICAgIHJlZiA9IHJl
Zi5sb2FkVmFsdWUoKTsKICAgICAgICAgICAgIGlmICghcmVmKQogICAgICAgICAgICAgICAgIHJl
dHVybiBFUHRyLmJveCgwKTsKQEAgLTQ5LDQgKzQ5LDQgQEAgY2xhc3MgT3BlcmF0b3JBcnJheVJl
Zkxlbmd0aCB7CiAgICAgICAgIH07CiAgICAgICAgIGZ1bmMuaW1wbGVtZW50YXRpb25EYXRhID0g
dGhpczsKICAgICB9Ci19ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorfQpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFyZS5qcyBiL1Rvb2xzL1dlYkdQ
VVNoYWRpbmdMYW5ndWFnZVJJL1ByZXBhcmUuanMKaW5kZXggYzExNThjZjdhZWFhNTExZTUzNjQ3
ZmU1ZTlkYTBlNzZmN2I3NTJkNi4uZDc4Zjk3NGY4N2U2NGY4OGRlNmZhMWM4ZjAxZWVkZGYxZjhj
MTk1ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvUHJlcGFyZS5q
cworKysgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9QcmVwYXJlLmpzCkBAIC0zMiwx
MyArMzIsMTMgQEAgbGV0IHByZXBhcmUgPSAoKCkgPT4gewogICAgICAgICAgICAgbGV0IGZpcnN0
TGluZU9mU3RhbmRhcmRMaWJyYXJ5ID0gMjg7IC8vIFNlZSBTdGFuZGFyZExpYnJhcnkuanMuCiAg
ICAgICAgICAgICBwYXJzZShzdGFuZGFyZFByb2dyYW0sICIvaW50ZXJuYWwvc3RkbGliIiwgIm5h
dGl2ZSIsIGZpcnN0TGluZU9mU3RhbmRhcmRMaWJyYXJ5IC0gMSwgc3RhbmRhcmRMaWJyYXJ5KTsK
ICAgICAgICAgfQotICAgICAgICAKKwogICAgICAgICBsZXQgcHJvZ3JhbSA9IGNsb25lUHJvZ3Jh
bShzdGFuZGFyZFByb2dyYW0pOwogICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCkgewogICAg
ICAgICAgICAgcGFyc2UocHJvZ3JhbSwgb3JpZ2luLCAidXNlciIsIGxpbmVOdW1iZXJPZmZzZXQs
IHRleHQpOwogICAgICAgICAgICAgcHJvZ3JhbSA9IHByb2dyYW1XaXRoVW5uZWNlc3NhcnlUaGlu
Z3NSZW1vdmVkKHByb2dyYW0pOwogICAgICAgICB9Ci0gICAgICAgIAorCiAgICAgICAgIGZvbGRD
b25zdGV4cHJzKHByb2dyYW0pOwogCiAgICAgICAgIGxldCBuYW1lUmVzb2x2ZXIgPSBjcmVhdGVO
YW1lUmVzb2x2ZXIocHJvZ3JhbSk7CkBAIC02OSw3ICs2OSw3IEBAIGxldCBwcmVwYXJlID0gKCgp
ID0+IHsKICAgICAgICAgZmluZEhpZ2hab21iaWVzKHByb2dyYW0pOwogICAgICAgICBhbGxvY2F0
ZUF0RW50cnlQb2ludHMocHJvZ3JhbSk7CiAgICAgICAgIHByb2dyYW0udmlzaXQobmV3IFN0cnVj
dExheW91dEJ1aWxkZXIoKSk7Ci0gICAgICAgIGxhdGVDaGVja0FuZExheW91dEJ1ZmZlcnMocHJv
Z3JhbSk7CisgICAgICAgIGxheW91dEJ1ZmZlcnMocHJvZ3JhbSk7CiAgICAgICAgIGNoZWNrTmF0
aXZlRnVuY1N0YWdlcyhwcm9ncmFtKTsKICAgICAgICAgaWYgKHNob3VsZElubGluZSkKICAgICAg
ICAgICAgIGlubGluZShwcm9ncmFtKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdM
YW5ndWFnZVJJL1NQSVJWLmh0bWwgYi9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9TUElS
Vi5odG1sCmluZGV4IDZmNmQ2YzAwZGE1ZTM0NjA0Yzg4NGE3YTViYTEwNWI5OTkwZTNjMzQuLmNh
NDUwZjc2ZTQ4MzExZTBkNjc1Y2RiYmVjNmJiZmI0YTUxNDZhMjkgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1NQSVJWLmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hh
ZGluZ0xhbmd1YWdlUkkvU1BJUlYuaHRtbApAQCAtOTEsOCArOTEsNyBAQCB0ZCB7CiAgICAgPHNj
cmlwdCBzcmM9IkludExpdGVyYWwuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJJbnRM
aXRlcmFsVHlwZS5qcyI+PC9zY3JpcHQ+CiAgICAgPHNjcmlwdCBzcmM9IkludHJpbnNpY3MuanMi
Pjwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSJMYXRlQ2hlY2tBbmRMYXlvdXRCdWZmZXJzLmpz
Ij48L3NjcmlwdD4KLSAgICA8c2NyaXB0IHNyYz0iTGF0ZUNoZWNrZXIuanMiPjwvc2NyaXB0Pgor
ICAgIDxzY3JpcHQgc3JjPSJMYXlvdXRCdWZmZXJzLmpzIj48L3NjcmlwdD4KICAgICA8c2NyaXB0
IHNyYz0iTGV4ZXIuanMiPjwvc2NyaXB0PgogICAgIDxzY3JpcHQgc3JjPSJMZXhlclRva2VuLmpz
Ij48L3NjcmlwdD4KICAgICA8c2NyaXB0IHNyYz0iTGl0ZXJhbFR5cGVDaGVja2VyLmpzIj48L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRt
bCBiL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuaHRtbAppbmRleCBjZDNiZGEw
YzBiODMyYmYwN2JjMjMwNjhkZGJlOTlhMTE0ZjgzYWI4Li5hMjAzMTUyZThkNmQ0NWQ3OTU0OTA3
YWMzZGI1MTk4NjNiMWE0ZWNlIDEwMDY0NAotLS0gYS9Ub29scy9XZWJHUFVTaGFkaW5nTGFuZ3Vh
Z2VSSS9UZXN0Lmh0bWwKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5o
dG1sCkBAIC04NSw4ICs4NSw3IEBACiA8c2NyaXB0IHNyYz0iSW50TGl0ZXJhbC5qcyI+PC9zY3Jp
cHQ+CiA8c2NyaXB0IHNyYz0iSW50TGl0ZXJhbFR5cGUuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBz
cmM9IkludHJpbnNpY3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9IkxhdGVDaGVja2VyLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJMYXRlQ2hlY2tBbmRMYXlvdXRCdWZmZXJzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJMYXlvdXRCdWZmZXJzLmpzIj48L3NjcmlwdD4KIDxzY3Jp
cHQgc3JjPSJMZXhlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTGV4ZXJUb2tlbi5qcyI+
PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTGl0ZXJhbFR5cGVDaGVja2VyLmpzIj48L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3QuanMgYi9Ub29s
cy9XZWJHUFVTaGFkaW5nTGFuZ3VhZ2VSSS9UZXN0LmpzCmluZGV4IDY1OWI0MzI5Yzg4MjhkMjc2
NWFiYzBjNjM4OWJjYjM2NWUyMzdlY2QuLmUxMTgzMzNlODAzNTA4Yjg0YTJhZmY4ODIyOGRhYTM2
YWI4ODdjNWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL1Rlc3Qu
anMKKysrIGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvVGVzdC5qcwpAQCAtMzQzLDI0
ICszNDMsMjQgQEAgdGVzdHMudGVybmFyeUV4cHJlc3Npb24gPSBmdW5jdGlvbigpIHsKICAgICAg
ICAgewogICAgICAgICAgICAgcmV0dXJuIHggPCAzID8gNCA6IDU7CiAgICAgICAgIH0KLSAgICAg
ICAgdGVzdCBpbnQgYmF6KGludCB4KQorICAgICAgICB0ZXN0IGludCBiYXIoaW50IHgpCiAgICAg
ICAgIHsKICAgICAgICAgICAgIHJldHVybiB4IDwgMTAgPyAxMSA6IHggPCAxMiA/IDE0IDogMTU7
CiAgICAgICAgIH0KLSAgICAgICAgdGVzdCBpbnQgcXV1eChpbnQgeCkKKyAgICAgICAgdGVzdCBp
bnQgYmF6KGludCB4KQogICAgICAgICB7CiAgICAgICAgICAgICByZXR1cm4gMyA8IDQgPyB4IDog
NTsKICAgICAgICAgfQogICAgIGApOwogICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNzY3KV0pLCA1KTsKICAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDIpXSksIDQpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiYmF6IiwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgMTEpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmF6IiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwg
MTEpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmF6Iiwg
W21ha2VJbnQocHJvZ3JhbSwgMTApXSksIDE0KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImJheiIsIFttYWtlSW50KHByb2dyYW0sIDExKV0pLCAxNCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXoiLCBbbWFrZUlu
dChwcm9ncmFtLCAxMildKSwgMTUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiYmF6IiwgW21ha2VJbnQocHJvZ3JhbSwgMTMpXSksIDE1KTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgInF1dXgiLCBbbWFrZUludChwcm9n
cmFtLCAxNCldKSwgMTQpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiYmFyIiwgW21ha2VJbnQocHJvZ3JhbSwgOCldKSwgMTEpOworICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFyIiwgW21ha2VJbnQocHJvZ3JhbSwgOSld
KSwgMTEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiYmFy
IiwgW21ha2VJbnQocHJvZ3JhbSwgMTApXSksIDE0KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJhciIsIFttYWtlSW50KHByb2dyYW0sIDExKV0pLCAxNCk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJiYXIiLCBbbWFr
ZUludChwcm9ncmFtLCAxMildKSwgMTUpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiYmFyIiwgW21ha2VJbnQocHJvZ3JhbSwgMTMpXSksIDE1KTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImJheiIsIFttYWtlSW50KHBy
b2dyYW0sIDE0KV0pLCAxNCk7CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1ByZXAo
YAogICAgICAgICAgICAgaW50IGZvbygpCkBAIC0xMzg0LDcgKzEzODQsNyBAQCB0ZXN0cy5pbnRP
dmVybG9hZFJlc29sdXRpb25SZXZlcnNlT3JkZXIgPSBmdW5jdGlvbigpCiB0ZXN0cy5icmVhayA9
IGZ1bmN0aW9uKCkKIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3Qg
aW50IGZvbyhpbnQgeCkKKyAgICAgICAgdGVzdCBpbnQgZm9vMShpbnQgeCkKICAgICAgICAgewog
ICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgICAgICAgICB4ID0geCAqIDI7CkBA
IC0xMzkzLDExICsxMzkzLDcgQEAgdGVzdHMuYnJlYWsgPSBmdW5jdGlvbigpCiAgICAgICAgICAg
ICB9CiAgICAgICAgICAgICByZXR1cm4geDsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgMSldKSwgOCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxMCldKSwgMjApOwotICAgIHByb2dyYW0gPSBkb1By
ZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHgpCisgICAgICAgIHRlc3QgaW50IGZvbzIo
aW50IHgpCiAgICAgICAgIHsKICAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CiAgICAgICAgICAg
ICAgICAgd2hpbGUgKHRydWUpIHsKQEAgLTE0MDksMTEgKzE0MDUsMzggQEAgdGVzdHMuYnJlYWsg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICByZXR1cm4geDsKLQorICAgICAgICB9CisgICAgICAgIHRlc3QgaW50IGZvbzMoaW50
IHgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAgICAgICAg
ICAgaWYgKHggPT0gNykgeworICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
ICAgICB9CisgICAgICAgICAgICAgICAgeCA9IHggKyAxOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgcmV0dXJuIHg7CisgICAgICAgIH0KKyAgICAgICAgdGVzdCBpbnQgZm9vNChpbnQgeCkK
KyAgICAgICAgeworICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiB4OworICAgICAgICB9Cisg
ICAgICAgIHRlc3QgaW50IGZvbzUoKQorICAgICAgICB7CisgICAgICAgICAgICB3aGlsZSAodHJ1
ZSkgeworICAgICAgICAgICAgICAgIHJldHVybiA3OworICAgICAgICAgICAgfQogICAgICAgICB9
CiAgICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDEwKV0pLCAxOSk7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW21h
a2VJbnQocHJvZ3JhbSwgMSldKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xIiwgW21ha2VJbnQocHJvZ3JhbSwgMTApXSksIDIwKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIiLCBbbWFrZUludChw
cm9ncmFtLCAxKV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzIiLCBbbWFrZUludChwcm9ncmFtLCAxMCldKSwgMTkpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFttYWtlSW50KHByb2dyYW0s
IDEpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNCIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFtdKSwgNyk7CiAgICAgY2hlY2tGYWlsKAog
ICAgICAgICAoKSA9PiBkb1ByZXAoYAogICAgICAgICAgICAgaW50IGZvbyhpbnQgeCkKQEAgLTE0
MzcsMzggKzE0NjAsNiBAQCB0ZXN0cy5icmVhayA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIH0K
ICAgICAgICAgYCksCiAgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0g
ICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgICAgICB0ZXN0IGludCBmb28oaW50IHgpCi0g
ICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgd2hpbGUgKHRydWUpIHsKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKHggPT0gNykgewotICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgeCA9IHggKyAxOwotICAg
ICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm4geDsKLSAgICAgICAgICAgIH0K
LSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDEpXSksIDcpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAot
ICAgICAgICAgICAgdGVzdCBpbnQgZm9vKGludCB4KQotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIHdoaWxlICh0cnVlKSB7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICByZXR1cm4geDsKLSAgICAgICAgICAgIH0KLSAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDEpXSksIDEpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAg
ICAgICAgICAgdGVzdCBpbnQgZm9vKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICB3
aGlsZSAodHJ1ZSkgewotICAgICAgICAgICAgICAgICAgICByZXR1cm4gNzsKLSAgICAgICAgICAg
ICAgICB9Ci0gICAgICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIDcpOwogICAgIGNoZWNrRmFpbCgKICAgICAg
ICAgKCkgPT4gZG9QcmVwKGAKICAgICAgICAgICAgIHRlc3QgaW50IGZvbyhpbnQgeCkKQEAgLTE1
MTMsNyArMTUwNCw3IEBAIHRlc3RzLmNvbnRpbnVlID0gZnVuY3Rpb24oKQogdGVzdHMuZG9XaGls
ZSA9IGZ1bmN0aW9uKCkKIHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRl
c3QgaW50IGZvbyhpbnQgeCkKKyAgICAgICAgdGVzdCBpbnQgZm9vMShpbnQgeCkKICAgICAgICAg
ewogICAgICAgICAgICAgaW50IHkgPSA3OwogICAgICAgICAgICAgZG8gewpAQCAtMTUyMiwxMSAr
MTUxMyw3IEBAIHRlc3RzLmRvV2hpbGUgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICB9IHdoaWxl
ICh4IDwgMTApOwogICAgICAgICAgICAgcmV0dXJuIHk7CiAgICAgICAgIH0KLSAgICBgKTsKLSAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50
KHByb2dyYW0sIDEpXSksIDgpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMTEpXSksIDgpOwotICAgIHByb2dyYW0g
PSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHgpCisgICAgICAgIHRlc3QgaW50
IGZvbzIoaW50IHgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGludCB5ID0gNzsKICAgICAgICAg
ICAgIGRvIHsKQEAgLTE1MzUsMTAgKzE1MjIsNyBAQCB0ZXN0cy5kb1doaWxlID0gZnVuY3Rpb24o
KQogICAgICAgICAgICAgfSB3aGlsZSAoeSA9PSA3KTsKICAgICAgICAgICAgIHJldHVybiB5Owog
ICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA4KTsKLSAgICBwcm9ncmFtID0g
ZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB4KQorICAgICAgICB0ZXN0IGludCBm
b28zKGludCB4KQogICAgICAgICB7CiAgICAgICAgICAgICBpbnQgc3VtID0gMDsKICAgICAgICAg
ICAgIGRvIHsKQEAgLTE1NTIsMTMgKzE1MzYsMTYgQEAgdGVzdHMuZG9XaGlsZSA9IGZ1bmN0aW9u
KCkKICAgICAgICAgICAgIHJldHVybiBzdW07CiAgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDkpXSksIDE5KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzEiLCBbbWFrZUludChwcm9ncmFtLCAxKV0pLCA4KTsKKyAgICBjaGVja0ludChwcm9n
cmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBbbWFrZUludChwcm9ncmFtLCAxMSld
KSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28y
IiwgW21ha2VJbnQocHJvZ3JhbSwgMSldKSwgOCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zIiwgW21ha2VJbnQocHJvZ3JhbSwgOSldKSwgMTkpOwog
fQogCiB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogewogICAgIGxldCBwcm9ncmFtID0gZG9Q
cmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB4KQorICAgICAgICB0ZXN0IGludCBmb28x
KGludCB4KQogICAgICAgICB7CiAgICAgICAgICAgICBpbnQgc3VtID0gMDsKICAgICAgICAgICAg
IGludCBpOwpAQCAtMTU2NywxMiArMTU1NCw3IEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigp
CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gc3VtOwogICAgICAgICB9Ci0gICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJv
Z3JhbSwgNSldKSwgMTApOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGlu
dCBmb28oaW50IHgpCisgICAgICAgIHRlc3QgaW50IGZvbzIoaW50IHgpCiAgICAgICAgIHsKICAg
ICAgICAgICAgIGludCBzdW0gPSAwOwogICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB4
OyBpID0gaSArIDEpIHsKQEAgLTE1ODAsMTIgKzE1NjIsNyBAQCB0ZXN0cy5mb3JMb29wID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAg
fQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAg
dGVzdCBpbnQgZm9vKGludCB4KQorICAgICAgICB0ZXN0IGludCBmb28zKGludCB4KQogICAgICAg
ICB7CiAgICAgICAgICAgICBpbnQgc3VtID0gMDsKICAgICAgICAgICAgIGludCBpID0gMTAwOwpA
QCAtMTU5NCwxMiArMTU3MSw3IEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigpCiAgICAgICAg
ICAgICB9CiAgICAgICAgICAgICByZXR1cm4gc3VtOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChw
cm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSld
KSwgMTApOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50
IHgpCisgICAgICAgIHRlc3QgaW50IGZvbzQoaW50IHgpCiAgICAgICAgIHsKICAgICAgICAgICAg
IGludCBzdW0gPSAwOwogICAgICAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCB4OyBpID0gaSAr
IDEpIHsKQEAgLTE2MDksMTMgKzE1ODEsNyBAQCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQog
ICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0dXJuIHN1bTsKICAgICAgICAgfQotICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDUpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTEpOwotICAgIHByb2dyYW0gPSBkb1By
ZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHgpCisgICAgICAgIHRlc3QgaW50IGZvbzUo
aW50IHgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGludCBzdW0gPSAwOwogICAgICAgICAgICAg
Zm9yIChpbnQgaSA9IDA7IGkgPCB4OyBpID0gaSArIDEpIHsKQEAgLTE2MjUsMTQgKzE1OTEsNyBA
QCB0ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgfQogICAgICAgICAgICAg
cmV0dXJuIHN1bTsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCA0KV0pLCA2KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDYpXSksIDEwKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDcpXSksIDEwKTsKLSAgICBwcm9ncmFtID0gZG9QcmVw
KGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB4KQorICAgICAgICB0ZXN0IGludCBmb282KGlu
dCB4KQogICAgICAgICB7CiAgICAgICAgICAgICBpbnQgc3VtID0gMDsKICAgICAgICAgICAgIGZv
ciAoaW50IGkgPSAwOyA7IGkgPSBpICsgMSkgewpAQCAtMTY0MiwxNCArMTYwMSw3IEBAIHRlc3Rz
LmZvckxvb3AgPSBmdW5jdGlvbigpCiAgICAgICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4g
c3VtOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwg
MTUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwg
W21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMjEpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAg
ICAgICB0ZXN0IGludCBmb28oaW50IHgpCisgICAgICAgIHRlc3QgaW50IGZvbzcoaW50IHgpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIGludCBzdW0gPSAwOwogICAgICAgICAgICAgaW50IGkgPSAw
OwpAQCAtMTY2MCwxNCArMTYxMiw3IEBAIHRlc3RzLmZvckxvb3AgPSBmdW5jdGlvbigpCiAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICByZXR1cm4gc3VtOwogICAgICAgICB9Ci0gICAgYCk7Ci0g
ICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUlu
dChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOwotICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwg
NSldKSwgMTApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTUpOwotICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMjEp
OwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHgpCisg
ICAgICAgIHRlc3QgaW50IGZvbzgoaW50IHgpCiAgICAgICAgIHsKICAgICAgICAgICAgIGludCBz
dW0gPSAwOwogICAgICAgICAgICAgaW50IGkgPSAwOwpAQCAtMTY3OSwxMiArMTYyNCw2MiBAQCB0
ZXN0cy5mb3JMb29wID0gZnVuY3Rpb24oKQogICAgICAgICAgICAgfQogICAgICAgICAgICAgcmV0
dXJuIHN1bTsKICAgICAgICAgfQorICAgICAgICB0ZXN0IGludCBmb285KGludCB4KQorICAgICAg
ICB7CisgICAgICAgICAgICBmb3IgKCA7IDsgKSB7CisgICAgICAgICAgICAgICAgcmV0dXJuIDc7
CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgdGVzdCBpbnQgZm9vMTAoaW50IHgp
CisgICAgICAgIHsKKyAgICAgICAgICAgIGZvciAoIDsgdHJ1ZTsgKSB7CisgICAgICAgICAgICAg
ICAgcmV0dXJuIDc7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICBgKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDMpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7Ci0gICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAx
MCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA3KV0pLCAyMSk7CisgICAg
Y2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW21ha2VJbnQo
cHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwgW21ha2VJbnQocHJvZ3JhbSwg
NSldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMiIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtt
YWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbbWFrZUludChw
cm9ncmFtLCA0KV0pLCA2KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzMiLCBbbWFrZUludChwcm9ncmFtLCA1KV0pLCAxMCk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW21ha2VJbnQocHJvZ3JhbSwg
MyldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b280IiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNik7
CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb280IiwgW21h
a2VJbnQocHJvZ3JhbSwgNildKSwgMTEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNSIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFttYWtlSW50KHBy
b2dyYW0sIDQpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vNSIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzUiLCBbbWFrZUludChwcm9ncmFtLCA2
KV0pLCAxMCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b281IiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMTApOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFttYWtlSW50KHByb2dyYW0sIDMpXSksIDMp
OworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNiIsIFtt
YWtlSW50KHByb2dyYW0sIDQpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vNiIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEwKTsKKyAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbbWFrZUludChw
cm9ncmFtLCA2KV0pLCAxNSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb282IiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMjEpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFttYWtlSW50KHByb2dyYW0s
IDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vNyIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDEw
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzciLCBb
bWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb283IiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwgMjEpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFttYWtlSW50
KHByb2dyYW0sIDMpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vOCIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDYpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOCIsIFttYWtlSW50KHByb2dyYW0s
IDUpXSksIDEwKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzgiLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxNSk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW21ha2VJbnQocHJvZ3JhbSwgNyldKSwg
MjEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIs
IFttYWtlSW50KHByb2dyYW0sIDMpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFttYWtlSW50KHByb2dyYW0sIDQpXSksIDcpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFttYWtlSW50
KHByb2dyYW0sIDUpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vOSIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDcpOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFttYWtlSW50KHByb2dyYW0s
IDcpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMTAiLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA3KTsKKyAgICBjaGVja0ludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW21ha2VJbnQocHJvZ3JhbSwgNCldKSwg
Nyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIs
IFttYWtlSW50KHByb2dyYW0sIDUpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA3KTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEwIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNyldKSwgNyk7CiAgICAgY2hlY2tGYWlsKAogICAgICAgICAoKSA9PiBkb1By
ZXAoYAogICAgICAgICAgICAgdm9pZCBmb28oaW50IHgpCkBAIC0xNjk2LDE5ICsxNjkxLDYgQEAg
dGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIH0KICAgICAgICAgYCksCiAg
ICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgcHJvZ3JhbSA9IGRv
UHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhpbnQgeCkKLSAgICAgICAgewotICAgICAgICAg
ICAgZm9yICggOyA7ICkgewotICAgICAgICAgICAgICAgIHJldHVybiA3OwotICAgICAgICAgICAg
fQotICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKV0pLCA3KTsKLSAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0s
IDQpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSldKSwgNyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA3KTsK
LSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
SW50KHByb2dyYW0sIDcpXSksIDcpOwogICAgIGNoZWNrRmFpbCgKICAgICAgICAgKCkgPT4gZG9Q
cmVwKGAKICAgICAgICAgICAgIGludCBmb28oaW50IHgpCkBAIC0xNzE5LDE5ICsxNzAxLDYgQEAg
dGVzdHMuZm9yTG9vcCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIH0KICAgICAgICAgYCksCiAg
ICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7Ci0gICAgcHJvZ3JhbSA9IGRv
UHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhpbnQgeCkKLSAgICAgICAgewotICAgICAgICAg
ICAgZm9yICggOyB0cnVlOyApIHsKLSAgICAgICAgICAgICAgICByZXR1cm4gNzsKLSAgICAgICAg
ICAgIH0KLSAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyldKSwgNyk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA0KV0pLCA3KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpXSksIDcpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwg
Nyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCA3KV0pLCA3KTsKIH0KIAogdGVzdHMucHJlZml4UGx1c1BsdXMgPSBm
dW5jdGlvbigpCkBAIC01ODI4LDQyICs1Nzk3LDYgQEAgdGVzdHMuaW5kZXhBbmRlcldpdGhBcnJh
eVJlZiA9IGZ1bmN0aW9uKCkKICAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFtdKSwgMTMpOwogfQogCi10ZXN0cy5kZXZpY2VQdHJQdHIgPSBmdW5jdGlv
bigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAg
ICAgdm9pZCBmb28oKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGRldmljZSBpbnQq
KiBwOwotICAgICAgICAgICAgfQotICAgICAgICBgKSwKLSAgICAgICAgZSA9PiBlIGluc3RhbmNl
b2YgV1R5cGVFcnJvciAmJiBlLm1lc3NhZ2UuaW5kZXhPZigiSWxsZWdhbCBwb2ludGVyIHRvIG5v
bi1wcmltaXRpdmUgdHlwZTogaW50KiBkZXZpY2UqIGRldmljZSIpICE9IC0xKTsKLX0KLQotdGVz
dHMudGhyZWFkZ3JvdXBQdHJQdHIgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAg
ICAgICAoKSA9PiBkb1ByZXAoYAotICAgICAgICAgICAgdm9pZCBmb28oKQotICAgICAgICAgICAg
ewotICAgICAgICAgICAgICAgIHRocmVhZGdyb3VwIGludCoqIHA7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgIGApLAotICAgICAgICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVz
c2FnZS5pbmRleE9mKCJJbGxlZ2FsIHBvaW50ZXIgdG8gbm9uLXByaW1pdGl2ZSB0eXBlOiBpbnQq
IHRocmVhZGdyb3VwKiB0aHJlYWRncm91cCIpICE9IC0xKTsKLX0KLQotdGVzdHMuY29uc3RhbnRQ
dHJQdHIgPSBmdW5jdGlvbigpCi17Ci0gICAgY2hlY2tGYWlsKAotICAgICAgICAoKSA9PiBkb1By
ZXAoYAotICAgICAgICAgICAgdm9pZCBmb28oKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIGNvbnN0YW50IGludCoqIHA7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIGApLAotICAgICAg
ICBlID0+IGUgaW5zdGFuY2VvZiBXVHlwZUVycm9yICYmIGUubWVzc2FnZS5pbmRleE9mKCJJbGxl
Z2FsIHBvaW50ZXIgdG8gbm9uLXByaW1pdGl2ZSB0eXBlOiBpbnQqIGNvbnN0YW50KiBjb25zdGFu
dCIpICE9IC0xKTsKLX0KLQogdGVzdHMuYW5kUmV0dXJuZWRBcnJheVJlZiA9IGZ1bmN0aW9uKCkK
IHsKICAgICBsZXQgcHJvZ3JhbSA9IGRvUHJlcChgCkBAIC02MDU2LDM2NCArNTk4OSwyNDggQEAg
dGVzdHMuY2FzdHMgPSBmdW5jdGlvbigpCiB0ZXN0cy5hdG9taWNzID0gZnVuY3Rpb24oKQogewog
ICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB6KSB7
CisgICAgICAgIHRlc3QgaW50IGZvbzEoaW50IHopIHsKICAgICAgICAgICAgIGF0b21pY19pbnQg
eDsKICAgICAgICAgICAgIGludCByZXN1bHQ7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgm
eCwgeiwgJnJlc3VsdCk7CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9Ci0g
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAwKTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAg
ICAgICAgdGVzdCBpbnQgZm9vKGludCB6KSB7CisgICAgICAgIHRlc3QgaW50IGZvbzIoaW50IHop
IHsKICAgICAgICAgICAgIGF0b21pY19pbnQgeDsKICAgICAgICAgICAgIGludCByZXN1bHQ7CiAg
ICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeCwgeiwgJnJlc3VsdCk7CiAgICAgICAgICAgICBJ
bnRlcmxvY2tlZEFkZCgmeCwgeiwgJnJlc3VsdCk7CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0
OwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCA2KTsKLSAgICBwcm9ncmFt
ID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB6KSB7CisgICAgICAgIHRlc3Qg
aW50IGZvbzMoaW50IHopIHsKICAgICAgICAgICAgIGF0b21pY19pbnQgeDsKICAgICAgICAgICAg
IGludCByZXN1bHQ7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeCwgeiwgJnJlc3VsdCk7
CiAgICAgICAgICAgICByZXR1cm4gaW50KHgpOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hl
Y2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9n
cmFtLCA2KV0pLCA2KTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQg
Zm9vKGludCB6KSB7CisgICAgICAgIHRlc3QgaW50IGZvbzQoaW50IHopIHsKICAgICAgICAgICAg
IGF0b21pY19pbnQgeDsKICAgICAgICAgICAgIGludCByZXN1bHQ7CiAgICAgICAgICAgICBJbnRl
cmxvY2tlZEFkZCgmeCwgeiwgJnJlc3VsdCk7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgm
eCwgeiwgJnJlc3VsdCk7CiAgICAgICAgICAgICByZXR1cm4gaW50KHgpOwogICAgICAgICB9Ci0g
ICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbbWFrZUludChwcm9ncmFtLCA2KV0pLCAxMik7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0g
ICAgICAgIHRlc3QgdWludCBmb28odWludCB6KSB7CisgICAgICAgIHRlc3QgdWludCBmb281KHVp
bnQgeikgewogICAgICAgICAgICAgYXRvbWljX3VpbnQgeDsKICAgICAgICAgICAgIHVpbnQgcmVz
dWx0OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJngsIHosICZyZXN1bHQpOwogICAgICAg
ICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrVWludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA2
KV0pLCAwKTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCB1aW50IGZvbyh1
aW50IHopIHsKKyAgICAgICAgdGVzdCB1aW50IGZvbzYodWludCB6KSB7CiAgICAgICAgICAgICBh
dG9taWNfdWludCB4OwogICAgICAgICAgICAgdWludCByZXN1bHQ7CiAgICAgICAgICAgICBJbnRl
cmxvY2tlZEFkZCgmeCwgeiwgJnJlc3VsdCk7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgm
eCwgeiwgJnJlc3VsdCk7CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9Ci0g
ICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VVaW50KHByb2dyYW0sIDYpXSksIDYpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAot
ICAgICAgICB0ZXN0IHVpbnQgZm9vKHVpbnQgeikgeworICAgICAgICB0ZXN0IHVpbnQgZm9vNyh1
aW50IHopIHsKICAgICAgICAgICAgIGF0b21pY191aW50IHg7CiAgICAgICAgICAgICB1aW50IHJl
c3VsdDsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ4LCB6LCAmcmVzdWx0KTsKICAgICAg
ICAgICAgIHJldHVybiB1aW50KHgpOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0s
IDYpXSksIDYpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IHVpbnQgZm9v
KHVpbnQgeikgeworICAgICAgICB0ZXN0IHVpbnQgZm9vOCh1aW50IHopIHsKICAgICAgICAgICAg
IGF0b21pY191aW50IHg7CiAgICAgICAgICAgICB1aW50IHJlc3VsdDsKICAgICAgICAgICAgIElu
dGVybG9ja2VkQWRkKCZ4LCB6LCAmcmVzdWx0KTsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRk
KCZ4LCB6LCAmcmVzdWx0KTsKICAgICAgICAgICAgIHJldHVybiB1aW50KHgpOwogICAgICAgICB9
Ci0gICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDYpXSksIDEyKTsKLSAgICBwcm9ncmFtID0gZG9QcmVw
KGAKLSAgICAgICAgdGVzdCB1aW50IGZvbyh1aW50IHgsIHVpbnQgeSkgeworICAgICAgICB0ZXN0
IHVpbnQgZm9vOSh1aW50IHgsIHVpbnQgeSkgewogICAgICAgICAgICAgYXRvbWljX3VpbnQgejsK
ICAgICAgICAgICAgIHVpbnQgcmVzdWx0OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnos
IHgsICZyZXN1bHQpOwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBbmQoJnosIHksICZyZXN1bHQp
OwogICAgICAgICAgICAgcmV0dXJuIHVpbnQoeik7CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQo
cHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDEpOwotICAgIHByb2dyYW0gPSBk
b1ByZXAoYAotICAgICAgICB0ZXN0IHVpbnQgZm9vKHVpbnQgeCwgdWludCB5KSB7CisgICAgICAg
IHRlc3QgdWludCBmb28xMCh1aW50IHgsIHVpbnQgeSkgewogICAgICAgICAgICAgYXRvbWljX3Vp
bnQgejsKICAgICAgICAgICAgIHVpbnQgcmVzdWx0OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRB
ZGQoJnosIHgsICZyZXN1bHQpOwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBbmQoJnosIHksICZy
ZXN1bHQpOwogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgIGApOwot
ICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtl
VWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMyk7Ci0gICAgcHJvZ3Jh
bSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhpbnQgeCwgaW50IHkpIHsKKyAgICAg
ICAgdGVzdCBpbnQgZm9vMTEoaW50IHgsIGludCB5KSB7CiAgICAgICAgICAgICBhdG9taWNfaW50
IHo7CiAgICAgICAgICAgICBpbnQgcmVzdWx0OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQo
JnosIHgsICZyZXN1bHQpOwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBbmQoJnosIHksICZyZXN1
bHQpOwogICAgICAgICAgICAgcmV0dXJuIGludCh6KTsKICAgICAgICAgfQotICAgIGApOwotICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQo
cHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMSk7Ci0gICAgcHJvZ3JhbSA9IGRv
UHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhpbnQgeCwgaW50IHkpIHsKKyAgICAgICAgdGVz
dCBpbnQgZm9vMTIoaW50IHgsIGludCB5KSB7CiAgICAgICAgICAgICBhdG9taWNfaW50IHo7CiAg
ICAgICAgICAgICBpbnQgcmVzdWx0OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgs
ICZyZXN1bHQpOwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBbmQoJnosIHksICZyZXN1bHQpOwog
ICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNr
SW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3Jh
bSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMyk7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChg
Ci0gICAgICAgIHRlc3QgdWludCBmb28odWludCB4LCB1aW50IHkpIHsKKyAgICAgICAgdGVzdCB1
aW50IGZvbzEzKHVpbnQgeCwgdWludCB5KSB7CiAgICAgICAgICAgICBhdG9taWNfdWludCB6Owog
ICAgICAgICAgICAgdWludCByZXN1bHQ7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeiwg
eCwgJnJlc3VsdCk7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEV4Y2hhbmdlKCZ6LCB5LCAmcmVz
dWx0KTsKICAgICAgICAgICAgIHJldHVybiB1aW50KHopOwogICAgICAgICB9Ci0gICAgYCk7Ci0g
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VV
aW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCA1KTsKLSAgICBwcm9ncmFt
ID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCB1aW50IGZvbyh1aW50IHgsIHVpbnQgeSkgeworICAg
ICAgICB0ZXN0IHVpbnQgZm9vMTQodWludCB4LCB1aW50IHkpIHsKICAgICAgICAgICAgIGF0b21p
Y191aW50IHo7CiAgICAgICAgICAgICB1aW50IHJlc3VsdDsKICAgICAgICAgICAgIEludGVybG9j
a2VkQWRkKCZ6LCB4LCAmcmVzdWx0KTsKICAgICAgICAgICAgIEludGVybG9ja2VkRXhjaGFuZ2Uo
JnosIHksICZyZXN1bHQpOwogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQot
ICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMyk7Ci0g
ICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhpbnQgeCwgaW50IHkp
IHsKKyAgICAgICAgdGVzdCBpbnQgZm9vMTUoaW50IHgsIGludCB5KSB7CiAgICAgICAgICAgICBh
dG9taWNfaW50IHo7CiAgICAgICAgICAgICBpbnQgcmVzdWx0OwogICAgICAgICAgICAgSW50ZXJs
b2NrZWRBZGQoJnosIHgsICZyZXN1bHQpOwogICAgICAgICAgICAgSW50ZXJsb2NrZWRFeGNoYW5n
ZSgmeiwgeSwgJnJlc3VsdCk7CiAgICAgICAgICAgICByZXR1cm4gaW50KHopOwogICAgICAgICB9
Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCA1KTsKLSAg
ICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB4LCBpbnQgeSkg
eworICAgICAgICB0ZXN0IGludCBmb28xNihpbnQgeCwgaW50IHkpIHsKICAgICAgICAgICAgIGF0
b21pY19pbnQgejsKICAgICAgICAgICAgIGludCByZXN1bHQ7CiAgICAgICAgICAgICBJbnRlcmxv
Y2tlZEFkZCgmeiwgeCwgJnJlc3VsdCk7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEV4Y2hhbmdl
KCZ6LCB5LCAmcmVzdWx0KTsKICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0K
LSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDMpOwotICAg
IHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IHVpbnQgZm9vKHVpbnQgeCwgdWludCB5
KSB7CisgICAgICAgIHRlc3QgdWludCBmb28xNyh1aW50IHgsIHVpbnQgeSkgewogICAgICAgICAg
ICAgYXRvbWljX3VpbnQgejsKICAgICAgICAgICAgIHVpbnQgcmVzdWx0OwogICAgICAgICAgICAg
SW50ZXJsb2NrZWRBZGQoJnosIHgsICZyZXN1bHQpOwogICAgICAgICAgICAgSW50ZXJsb2NrZWRN
YXgoJnosIHksICZyZXN1bHQpOwogICAgICAgICAgICAgcmV0dXJuIHVpbnQoeik7CiAgICAgICAg
IH0KLSAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDUp
OwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtt
YWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgNSk7Ci0gICAgcHJv
Z3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgdWludCBmb28odWludCB4LCB1aW50IHkpIHsK
KyAgICAgICAgdGVzdCB1aW50IGZvbzE4KHVpbnQgeCwgdWludCB5KSB7CiAgICAgICAgICAgICBh
dG9taWNfdWludCB6OwogICAgICAgICAgICAgdWludCByZXN1bHQ7CiAgICAgICAgICAgICBJbnRl
cmxvY2tlZEFkZCgmeiwgeCwgJnJlc3VsdCk7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZE1heCgm
eiwgeSwgJnJlc3VsdCk7CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9Ci0g
ICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAzKTsKLSAg
ICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVp
bnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDUpOwotICAgIHByb2dyYW0g
PSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHgsIGludCB5KSB7CisgICAgICAg
IHRlc3QgaW50IGZvbzE5KGludCB4LCBpbnQgeSkgewogICAgICAgICAgICAgYXRvbWljX2ludCB6
OwogICAgICAgICAgICAgaW50IHJlc3VsdDsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6
LCB4LCAmcmVzdWx0KTsKICAgICAgICAgICAgIEludGVybG9ja2VkTWF4KCZ6LCB5LCAmcmVzdWx0
KTsKICAgICAgICAgICAgIHJldHVybiBpbnQoeik7CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBj
aGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHBy
b2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDUpOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSksIG1h
a2VJbnQocHJvZ3JhbSwgMyldKSwgNSk7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAg
IHRlc3QgaW50IGZvbyhpbnQgeCwgaW50IHkpIHsKKyAgICAgICAgdGVzdCBpbnQgZm9vMjAoaW50
IHgsIGludCB5KSB7CiAgICAgICAgICAgICBhdG9taWNfaW50IHo7CiAgICAgICAgICAgICBpbnQg
cmVzdWx0OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsICZyZXN1bHQpOwogICAg
ICAgICAgICAgSW50ZXJsb2NrZWRNYXgoJnosIHksICZyZXN1bHQpOwogICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQo
cHJvZ3JhbSwgNSldKSwgMyk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFtLCAzKV0p
LCA1KTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCB1aW50IGZvbyh1aW50
IHgsIHVpbnQgeSkgeworICAgICAgICB0ZXN0IHVpbnQgZm9vMjEodWludCB4LCB1aW50IHkpIHsK
ICAgICAgICAgICAgIGF0b21pY191aW50IHo7CiAgICAgICAgICAgICB1aW50IHJlc3VsdDsKICAg
ICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCAmcmVzdWx0KTsKICAgICAgICAgICAgIElu
dGVybG9ja2VkTWluKCZ6LCB5LCAmcmVzdWx0KTsKICAgICAgICAgICAgIHJldHVybiB1aW50KHop
OwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFt
LCA1KV0pLCAzKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDMp
OwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IHVpbnQgZm9vKHVpbnQgeCwg
dWludCB5KSB7CisgICAgICAgIHRlc3QgdWludCBmb28yMih1aW50IHgsIHVpbnQgeSkgewogICAg
ICAgICAgICAgYXRvbWljX3VpbnQgejsKICAgICAgICAgICAgIHVpbnQgcmVzdWx0OwogICAgICAg
ICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsICZyZXN1bHQpOwogICAgICAgICAgICAgSW50ZXJs
b2NrZWRNaW4oJnosIHksICZyZXN1bHQpOwogICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAg
ICAgICAgfQotICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSld
KSwgMyk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
IiwgW21ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9ncmFtLCAzKV0pLCA1KTsKLSAg
ICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB4LCBpbnQgeSkg
eworICAgICAgICB0ZXN0IGludCBmb28yMyhpbnQgeCwgaW50IHkpIHsKICAgICAgICAgICAgIGF0
b21pY19pbnQgejsKICAgICAgICAgICAgIGludCByZXN1bHQ7CiAgICAgICAgICAgICBJbnRlcmxv
Y2tlZEFkZCgmeiwgeCwgJnJlc3VsdCk7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZE1pbigmeiwg
eSwgJnJlc3VsdCk7CiAgICAgICAgICAgICByZXR1cm4gaW50KHopOwogICAgICAgICB9Ci0gICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAzKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIHByb2dyYW0gPSBkb1ByZXAo
YAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHgsIGludCB5KSB7CisgICAgICAgIHRlc3QgaW50
IGZvbzI0KGludCB4LCBpbnQgeSkgewogICAgICAgICAgICAgYXRvbWljX2ludCB6OwogICAgICAg
ICAgICAgaW50IHJlc3VsdDsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCAmcmVz
dWx0KTsKICAgICAgICAgICAgIEludGVybG9ja2VkTWluKCZ6LCB5LCAmcmVzdWx0KTsKICAgICAg
ICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMp
LCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDMpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJv
Z3JhbSwgMyldKSwgNSk7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgdWlu
dCBmb28odWludCB4LCB1aW50IHkpIHsKKyAgICAgICAgdGVzdCB1aW50IGZvbzI1KHVpbnQgeCwg
dWludCB5KSB7CiAgICAgICAgICAgICBhdG9taWNfdWludCB6OwogICAgICAgICAgICAgdWludCBy
ZXN1bHQ7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeiwgeCwgJnJlc3VsdCk7CiAgICAg
ICAgICAgICBJbnRlcmxvY2tlZE9yKCZ6LCB5LCAmcmVzdWx0KTsKICAgICAgICAgICAgIHJldHVy
biB1aW50KHopOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWlu
dChwcm9ncmFtLCA1KV0pLCA3KTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVz
dCB1aW50IGZvbyh1aW50IHgsIHVpbnQgeSkgeworICAgICAgICB0ZXN0IHVpbnQgZm9vMjYodWlu
dCB4LCB1aW50IHkpIHsKICAgICAgICAgICAgIGF0b21pY191aW50IHo7CiAgICAgICAgICAgICB1
aW50IHJlc3VsdDsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCAmcmVzdWx0KTsK
ICAgICAgICAgICAgIEludGVybG9ja2VkT3IoJnosIHksICZyZXN1bHQpOwogICAgICAgICAgICAg
cmV0dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFt
LCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgNSldKSwgMyk7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAg
IHRlc3QgaW50IGZvbyhpbnQgeCwgaW50IHkpIHsKKyAgICAgICAgdGVzdCBpbnQgZm9vMjcoaW50
IHgsIGludCB5KSB7CiAgICAgICAgICAgICBhdG9taWNfaW50IHo7CiAgICAgICAgICAgICBpbnQg
cmVzdWx0OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsICZyZXN1bHQpOwogICAg
ICAgICAgICAgSW50ZXJsb2NrZWRPcigmeiwgeSwgJnJlc3VsdCk7CiAgICAgICAgICAgICByZXR1
cm4gaW50KHopOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChw
cm9ncmFtLCA1KV0pLCA3KTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBp
bnQgZm9vKGludCB4LCBpbnQgeSkgeworICAgICAgICB0ZXN0IGludCBmb28yOChpbnQgeCwgaW50
IHkpIHsKICAgICAgICAgICAgIGF0b21pY19pbnQgejsKICAgICAgICAgICAgIGludCByZXN1bHQ7
CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeiwgeCwgJnJlc3VsdCk7CiAgICAgICAgICAg
ICBJbnRlcmxvY2tlZE9yKCZ6LCB5LCAmcmVzdWx0KTsKICAgICAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0s
IDUpXSksIDMpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IHVpbnQgZm9v
KHVpbnQgeCwgdWludCB5KSB7CisgICAgICAgIHRlc3QgdWludCBmb28yOSh1aW50IHgsIHVpbnQg
eSkgewogICAgICAgICAgICAgYXRvbWljX3VpbnQgejsKICAgICAgICAgICAgIHVpbnQgcmVzdWx0
OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsICZyZXN1bHQpOwogICAgICAgICAg
ICAgSW50ZXJsb2NrZWRYb3IoJnosIHksICZyZXN1bHQpOwogICAgICAgICAgICAgcmV0dXJuIHVp
bnQoeik7CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHBy
b2dyYW0sIDUpXSksIDYpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IHVp
bnQgZm9vKHVpbnQgeCwgdWludCB5KSB7CisgICAgICAgIHRlc3QgdWludCBmb28zMCh1aW50IHgs
IHVpbnQgeSkgewogICAgICAgICAgICAgYXRvbWljX3VpbnQgejsKICAgICAgICAgICAgIHVpbnQg
cmVzdWx0OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsICZyZXN1bHQpOwogICAg
ICAgICAgICAgSW50ZXJsb2NrZWRYb3IoJnosIHksICZyZXN1bHQpOwogICAgICAgICAgICAgcmV0
dXJuIHJlc3VsdDsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVp
bnQocHJvZ3JhbSwgNSldKSwgMyk7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRl
c3QgaW50IGZvbyhpbnQgeCwgaW50IHkpIHsKKyAgICAgICAgdGVzdCBpbnQgZm9vMzEoaW50IHgs
IGludCB5KSB7CiAgICAgICAgICAgICBhdG9taWNfaW50IHo7CiAgICAgICAgICAgICBpbnQgcmVz
dWx0OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsICZyZXN1bHQpOwogICAgICAg
ICAgICAgSW50ZXJsb2NrZWRYb3IoJnosIHksICZyZXN1bHQpOwogICAgICAgICAgICAgcmV0dXJu
IGludCh6KTsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJv
Z3JhbSwgNSldKSwgNik7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50
IGZvbyhpbnQgeCwgaW50IHkpIHsKKyAgICAgICAgdGVzdCBpbnQgZm9vMzIoaW50IHgsIGludCB5
KSB7CiAgICAgICAgICAgICBhdG9taWNfaW50IHo7CiAgICAgICAgICAgICBpbnQgcmVzdWx0Owog
ICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsICZyZXN1bHQpOwogICAgICAgICAgICAg
SW50ZXJsb2NrZWRYb3IoJnosIHksICZyZXN1bHQpOwogICAgICAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwg
NSldKSwgMyk7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgdWludCBmb28o
dWludCB4LCB1aW50IHksIHVpbnQgeikgeworICAgICAgICB0ZXN0IHVpbnQgZm9vMzModWludCB4
LCB1aW50IHksIHVpbnQgeikgewogICAgICAgICAgICAgYXRvbWljX3VpbnQgdzsKICAgICAgICAg
ICAgIHVpbnQgcmVzdWx0OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJncsIHgsICZyZXN1
bHQpOwogICAgICAgICAgICAgSW50ZXJsb2NrZWRDb21wYXJlRXhjaGFuZ2UoJncsIHksIHosICZy
ZXN1bHQpOwogICAgICAgICAgICAgcmV0dXJuIHVpbnQodyk7CiAgICAgICAgIH0KLSAgICBgKTsK
LSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFr
ZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFt
LCA1KV0pLCA1KTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDQpLCBtYWtl
VWludChwcm9ncmFtLCA1KV0pLCAzKTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAg
dGVzdCB1aW50IGZvbyh1aW50IHgsIHVpbnQgeSwgdWludCB6KSB7CisgICAgICAgIHRlc3QgdWlu
dCBmb28zNCh1aW50IHgsIHVpbnQgeSwgdWludCB6KSB7CiAgICAgICAgICAgICBhdG9taWNfdWlu
dCB3OwogICAgICAgICAgICAgdWludCByZXN1bHQ7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEFk
ZCgmdywgeCwgJnJlc3VsdCk7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5n
ZSgmdywgeSwgeiwgJnJlc3VsdCk7CiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAg
ICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFr
ZVVpbnQocHJvZ3JhbSwgNSldKSwgMyk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9n
cmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMyk7Ci0gICAgcHJvZ3JhbSA9IGRvUHJl
cChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhpbnQgeCwgaW50IHksIGludCB6KSB7CisgICAgICAg
IHRlc3QgaW50IGZvbzM1KGludCB4LCBpbnQgeSwgaW50IHopIHsKICAgICAgICAgICAgIGF0b21p
Y19pbnQgdzsKICAgICAgICAgICAgIGludCByZXN1bHQ7CiAgICAgICAgICAgICBJbnRlcmxvY2tl
ZEFkZCgmdywgeCwgJnJlc3VsdCk7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZENvbXBhcmVFeGNo
YW5nZSgmdywgeSwgeiwgJnJlc3VsdCk7CiAgICAgICAgICAgICByZXR1cm4gaW50KHcpOwogICAg
ICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFr
ZUludChwcm9ncmFtLCA1KV0pLCA1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0s
IDQpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDMpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAot
ICAgICAgICB0ZXN0IGludCBmb28oaW50IHgsIGludCB5LCBpbnQgeikgeworICAgICAgICB0ZXN0
IGludCBmb28zNihpbnQgeCwgaW50IHksIGludCB6KSB7CiAgICAgICAgICAgICBhdG9taWNfaW50
IHc7CiAgICAgICAgICAgICBpbnQgcmVzdWx0OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQo
JncsIHgsICZyZXN1bHQpOwpAQCAtNjQyMSwzMjIgKzYyMzgsMjg2IEBAIHRlc3RzLmF0b21pY3Mg
PSBmdW5jdGlvbigpCiAgICAgICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgICAgICB9CiAgICAg
YCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
bWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFt
LCA1KV0pLCAzKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50
KHByb2dyYW0sIDUpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMSIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDApOworICAgIGNoZWNrSW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFttYWtlSW50KHByb2dyYW0s
IDYpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDYpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDEy
KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb281Iiwg
W21ha2VVaW50KHByb2dyYW0sIDYpXSksIDApOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzYiLCBbbWFrZVVpbnQocHJvZ3JhbSwgNildKSwgNik7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFttYWtl
VWludChwcm9ncmFtLCA2KV0pLCA2KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb284IiwgW21ha2VVaW50KHByb2dyYW0sIDYpXSksIDEyKTsKKyAgICBj
aGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb285IiwgW21ha2VVaW50
KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAxKTsKKyAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFttYWtlVWludChwcm9ncmFt
LCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMSIsIFttYWtlSW50KHByb2dyYW0sIDMpLCBtYWtl
SW50KHByb2dyYW0sIDUpXSksIDEpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMTIiLCBbbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFt
LCA1KV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28xMyIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwg
NSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQi
LCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDMpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTUiLCBbbWFrZUlu
dChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCA1KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE2IiwgW21ha2VJbnQocHJvZ3JhbSwg
MyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTciLCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VV
aW50KHByb2dyYW0sIDUpXSksIDUpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE3IiwgW21ha2VVaW50KHByb2dyYW0sIDUpLCBtYWtlVWludChwcm9n
cmFtLCAzKV0pLCA1KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xOCIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSld
KSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTgiLCBbbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDUpOwor
ICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbbWFr
ZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCA1KTsKKyAgICBjaGVja0lu
dChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5IiwgW21ha2VJbnQocHJvZ3Jh
bSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgNSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMCIsIFttYWtlSW50KHByb2dyYW0sIDMpLCBtYWtl
SW50KHByb2dyYW0sIDUpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjAiLCBbbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9ncmFt
LCAzKV0pLCA1KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yMSIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwg
Myk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjEi
LCBbbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDMpXSksIDMpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW21ha2VV
aW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAzKTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMiIsIFttYWtlVWludChwcm9n
cmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgNSk7CisgICAgY2hlY2tJbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMyIsIFttYWtlSW50KHByb2dyYW0sIDMpLCBt
YWtlSW50KHByb2dyYW0sIDUpXSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbbWFrZUludChwcm9ncmFtLCA1KSwgbWFrZUludChwcm9n
cmFtLCAzKV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzI0IiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwg
Myk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNCIs
IFttYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDMpXSksIDUpOworICAgIGNo
ZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI1IiwgW21ha2VVaW50
KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCA3KTsKKyAgICBjaGVja1VpbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNiIsIFttYWtlVWludChwcm9ncmFt
LCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMyk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwg
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNyIsIFttYWtlSW50KHByb2dyYW0sIDMpLCBtYWtl
SW50KHByb2dyYW0sIDUpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjgiLCBbbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFt
LCA1KV0pLCAzKTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0s
ICJmb28yOSIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwg
Nik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzAi
LCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDMpOworICAg
IGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbbWFrZUlu
dChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCA2KTsKKyAgICBjaGVja0ludChw
cm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMyIiwgW21ha2VJbnQocHJvZ3JhbSwg
MyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzMiLCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VV
aW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCA1KTsKKyAgICBjaGVja1Vp
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMyIsIFttYWtlVWludChwcm9n
cmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNCksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDMp
OworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM0Iiwg
W21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJv
Z3JhbSwgNSldKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMzQiLCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDQp
LCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM1IiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQo
cHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgNSk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNSIsIFttYWtlSW50KHByb2dyYW0sIDMp
LCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDMpOworICAgIGNo
ZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzYiLCBbbWFrZUludChw
cm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAz
KTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzM2Iiwg
W21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJbnQocHJvZ3Jh
bSwgNSldKSwgMyk7CiB9CiAKIHRlc3RzLmF0b21pY3NOdWxsID0gZnVuY3Rpb24oKQogewogICAg
IGxldCBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB6KSB7Cisg
ICAgICAgIHRlc3QgaW50IGZvbzEoaW50IHopIHsKICAgICAgICAgICAgIGF0b21pY19pbnQgeDsK
ICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ4LCB6LCBudWxsKTsKICAgICAgICAgICAgIHJl
dHVybiBpbnQoeCk7CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDYpXSksIDYpOwot
ICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHopIHsKKyAg
ICAgICAgdGVzdCBpbnQgZm9vMihpbnQgeikgewogICAgICAgICAgICAgYXRvbWljX2ludCB4Owog
ICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJngsIHosIG51bGwpOwogICAgICAgICAgICAgSW50
ZXJsb2NrZWRBZGQoJngsIHosIG51bGwpOwogICAgICAgICAgICAgcmV0dXJuIGludCh4KTsKICAg
ICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTIpOwotICAgIHByb2dyYW0gPSBk
b1ByZXAoYAotICAgICAgICB0ZXN0IHVpbnQgZm9vKHVpbnQgeikgeworICAgICAgICB0ZXN0IHVp
bnQgZm9vMyh1aW50IHopIHsKICAgICAgICAgICAgIGF0b21pY191aW50IHg7CiAgICAgICAgICAg
ICBJbnRlcmxvY2tlZEFkZCgmeCwgeiwgbnVsbCk7CiAgICAgICAgICAgICByZXR1cm4gdWludCh4
KTsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbyIsIFttYWtlVWludChwcm9ncmFtLCA2KV0pLCA2KTsKLSAgICBwcm9n
cmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCB1aW50IGZvbyh1aW50IHopIHsKKyAgICAgICAg
dGVzdCB1aW50IGZvbzQodWludCB6KSB7CiAgICAgICAgICAgICBhdG9taWNfdWludCB4OwogICAg
ICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJngsIHosIG51bGwpOwogICAgICAgICAgICAgSW50ZXJs
b2NrZWRBZGQoJngsIHosIG51bGwpOwogICAgICAgICAgICAgcmV0dXJuIHVpbnQoeCk7CiAgICAg
ICAgIH0KLSAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNildKSwgMTIpOwotICAgIHByb2dyYW0gPSBk
b1ByZXAoYAotICAgICAgICB0ZXN0IHVpbnQgZm9vKHVpbnQgeCwgdWludCB5KSB7CisgICAgICAg
IHRlc3QgdWludCBmb281KHVpbnQgeCwgdWludCB5KSB7CiAgICAgICAgICAgICBhdG9taWNfdWlu
dCB6OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsIG51bGwpOwogICAgICAgICAg
ICAgSW50ZXJsb2NrZWRBbmQoJnosIHksIG51bGwpOwogICAgICAgICAgICAgcmV0dXJuIHVpbnQo
eik7CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dy
YW0sIDUpXSksIDEpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBm
b28oaW50IHgsIGludCB5KSB7CisgICAgICAgIHRlc3QgaW50IGZvbzYoaW50IHgsIGludCB5KSB7
CiAgICAgICAgICAgICBhdG9taWNfaW50IHo7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgm
eiwgeCwgbnVsbCk7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEFuZCgmeiwgeSwgbnVsbCk7CiAg
ICAgICAgICAgICByZXR1cm4gaW50KHopOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCAzKSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAxKTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAK
LSAgICAgICAgdGVzdCB1aW50IGZvbyh1aW50IHgsIHVpbnQgeSkgeworICAgICAgICB0ZXN0IHVp
bnQgZm9vNyh1aW50IHgsIHVpbnQgeSkgewogICAgICAgICAgICAgYXRvbWljX3VpbnQgejsKICAg
ICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCBudWxsKTsKICAgICAgICAgICAgIEludGVy
bG9ja2VkRXhjaGFuZ2UoJnosIHksIG51bGwpOwogICAgICAgICAgICAgcmV0dXJuIHVpbnQoeik7
CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9u
KHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0s
IDUpXSksIDUpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28o
aW50IHgsIGludCB5KSB7CisgICAgICAgIHRlc3QgaW50IGZvbzgoaW50IHgsIGludCB5KSB7CiAg
ICAgICAgICAgICBhdG9taWNfaW50IHo7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeiwg
eCwgbnVsbCk7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEV4Y2hhbmdlKCZ6LCB5LCBudWxsKTsK
ICAgICAgICAgICAgIHJldHVybiBpbnQoeik7CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVj
a0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dy
YW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDUpOwotICAgIHByb2dyYW0gPSBkb1ByZXAo
YAotICAgICAgICB0ZXN0IHVpbnQgZm9vKHVpbnQgeCwgdWludCB5KSB7CisgICAgICAgIHRlc3Qg
dWludCBmb285KHVpbnQgeCwgdWludCB5KSB7CiAgICAgICAgICAgICBhdG9taWNfdWludCB6Owog
ICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsIG51bGwpOwogICAgICAgICAgICAgSW50
ZXJsb2NrZWRNYXgoJnosIHksIG51bGwpOwogICAgICAgICAgICAgcmV0dXJuIHVpbnQoeik7CiAg
ICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDUp
XSksIDUpOwotICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
byIsIFttYWtlVWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgNSk7Ci0g
ICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhpbnQgeCwgaW50IHkp
IHsKKyAgICAgICAgdGVzdCBpbnQgZm9vMTAoaW50IHgsIGludCB5KSB7CiAgICAgICAgICAgICBh
dG9taWNfaW50IHo7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeiwgeCwgbnVsbCk7CiAg
ICAgICAgICAgICBJbnRlcmxvY2tlZE1heCgmeiwgeSwgbnVsbCk7CiAgICAgICAgICAgICByZXR1
cm4gaW50KHopOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tJbnQocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChw
cm9ncmFtLCA1KV0pLCA1KTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbyIsIFttYWtlSW50KHByb2dyYW0sIDUpLCBtYWtlSW50KHByb2dyYW0sIDMpXSks
IDUpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IHVpbnQgZm9vKHVpbnQg
eCwgdWludCB5KSB7CisgICAgICAgIHRlc3QgdWludCBmb28xMSh1aW50IHgsIHVpbnQgeSkgewog
ICAgICAgICAgICAgYXRvbWljX3VpbnQgejsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6
LCB4LCBudWxsKTsKICAgICAgICAgICAgIEludGVybG9ja2VkTWluKCZ6LCB5LCBudWxsKTsKICAg
ICAgICAgICAgIHJldHVybiB1aW50KHopOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dy
YW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAzKTsKLSAgICBjaGVja1VpbnQocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1h
a2VVaW50KHByb2dyYW0sIDMpXSksIDMpOwotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAg
ICB0ZXN0IGludCBmb28oaW50IHgsIGludCB5KSB7CisgICAgICAgIHRlc3QgaW50IGZvbzEyKGlu
dCB4LCBpbnQgeSkgewogICAgICAgICAgICAgYXRvbWljX2ludCB6OwogICAgICAgICAgICAgSW50
ZXJsb2NrZWRBZGQoJnosIHgsIG51bGwpOwogICAgICAgICAgICAgSW50ZXJsb2NrZWRNaW4oJnos
IHksIG51bGwpOwogICAgICAgICAgICAgcmV0dXJuIGludCh6KTsKICAgICAgICAgfQotICAgIGAp
OwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21h
a2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMyk7Ci0gICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbbWFrZUludChwcm9ncmFt
LCA1KSwgbWFrZUludChwcm9ncmFtLCAzKV0pLCAzKTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAK
LSAgICAgICAgdGVzdCB1aW50IGZvbyh1aW50IHgsIHVpbnQgeSkgeworICAgICAgICB0ZXN0IHVp
bnQgZm9vMTModWludCB4LCB1aW50IHkpIHsKICAgICAgICAgICAgIGF0b21pY191aW50IHo7CiAg
ICAgICAgICAgICBJbnRlcmxvY2tlZEFkZCgmeiwgeCwgbnVsbCk7CiAgICAgICAgICAgICBJbnRl
cmxvY2tlZE9yKCZ6LCB5LCBudWxsKTsKICAgICAgICAgICAgIHJldHVybiB1aW50KHopOwogICAg
ICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA1KV0p
LCA3KTsKLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKGludCB4
LCBpbnQgeSkgeworICAgICAgICB0ZXN0IGludCBmb28xNChpbnQgeCwgaW50IHkpIHsKICAgICAg
ICAgICAgIGF0b21pY19pbnQgejsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ6LCB4LCBu
dWxsKTsKICAgICAgICAgICAgIEludGVybG9ja2VkT3IoJnosIHksIG51bGwpOwogICAgICAgICAg
ICAgcmV0dXJuIGludCh6KTsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1h
a2VJbnQocHJvZ3JhbSwgNSldKSwgNyk7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAg
IHRlc3QgdWludCBmb28odWludCB4LCB1aW50IHkpIHsKKyAgICAgICAgdGVzdCB1aW50IGZvbzE1
KHVpbnQgeCwgdWludCB5KSB7CiAgICAgICAgICAgICBhdG9taWNfdWludCB6OwogICAgICAgICAg
ICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsIG51bGwpOwogICAgICAgICAgICAgSW50ZXJsb2NrZWRY
b3IoJnosIHksIG51bGwpOwogICAgICAgICAgICAgcmV0dXJuIHVpbnQoeik7CiAgICAgICAgIH0K
LSAgICBgKTsKLSAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28iLCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDYpOwot
ICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oaW50IHgsIGludCB5
KSB7CisgICAgICAgIHRlc3QgaW50IGZvbzE2KGludCB4LCBpbnQgeSkgewogICAgICAgICAgICAg
YXRvbWljX2ludCB6OwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBZGQoJnosIHgsIG51bGwpOwog
ICAgICAgICAgICAgSW50ZXJsb2NrZWRYb3IoJnosIHksIG51bGwpOwogICAgICAgICAgICAgcmV0
dXJuIGludCh6KTsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQo
cHJvZ3JhbSwgNSldKSwgNik7Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3Qg
dWludCBmb28odWludCB4LCB1aW50IHksIHVpbnQgeikgeworICAgICAgICB0ZXN0IHVpbnQgZm9v
MTcodWludCB4LCB1aW50IHksIHVpbnQgeikgewogICAgICAgICAgICAgYXRvbWljX3VpbnQgdzsK
ICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKCZ3LCB4LCBudWxsKTsKICAgICAgICAgICAgIElu
dGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlKCZ3LCB5LCB6LCBudWxsKTsKICAgICAgICAgICAgIHJl
dHVybiB1aW50KHcpOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tVaW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtl
VWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgNSk7Ci0gICAgY2hlY2tV
aW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW21ha2VVaW50KHByb2dy
YW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCA0KSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMyk7
Ci0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbyhpbnQgeCwgaW50
IHksIGludCB6KSB7CisgICAgICAgIHRlc3QgaW50IGZvbzE4KGludCB4LCBpbnQgeSwgaW50IHop
IHsKICAgICAgICAgICAgIGF0b21pY19pbnQgdzsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRk
KCZ3LCB4LCBudWxsKTsKICAgICAgICAgICAgIEludGVybG9ja2VkQ29tcGFyZUV4Y2hhbmdlKCZ3
LCB5LCB6LCBudWxsKTsKICAgICAgICAgICAgIHJldHVybiBpbnQodyk7CiAgICAgICAgIH0KLSAg
ICBgKTsKLSAgICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIs
IFttYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dy
YW0sIDUpXSksIDUpOwotICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vIiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgNCksIG1ha2VJ
bnQocHJvZ3JhbSwgNSldKSwgMyk7Ci0KLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAg
dGVzdCBpbnQgZm9vKCkgeworICAgICAgICB0ZXN0IGludCBmb28xOSgpIHsKICAgICAgICAgICAg
IHRocmVhZCBhdG9taWNfaW50KiB4ID0gbnVsbDsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRk
KHgsIDEsIG51bGwpOwogICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0KLSAgICBgKTsK
LSAgICBjaGVja1RyYXAocHJvZ3JhbSwgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28i
LCBbXSksIGNoZWNrSW50KTsKLQotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0
IGludCBmb28oKSB7CisgICAgICAgIHRlc3QgaW50IGZvbzIwKCkgewogICAgICAgICAgICAgdGhy
ZWFkIGF0b21pY191aW50KiB4ID0gbnVsbDsKICAgICAgICAgICAgIEludGVybG9ja2VkQWRkKHgs
IDEsIG51bGwpOwogICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0KLSAgICBgKTsKLSAg
ICBjaGVja1RyYXAocHJvZ3JhbSwgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBb
XSksIGNoZWNrSW50KTsKLQotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGlu
dCBmb28oKSB7CisgICAgICAgIHRlc3QgaW50IGZvbzIxKCkgewogICAgICAgICAgICAgdGhyZWFk
IGF0b21pY19pbnQqIHggPSBudWxsOwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBbmQoeCwgMSwg
bnVsbCk7CiAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQotICAgIGApOwotICAgIGNo
ZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwg
Y2hlY2tJbnQpOwotCi0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZv
bygpIHsKKyAgICAgICAgdGVzdCBpbnQgZm9vMjIoKSB7CiAgICAgICAgICAgICB0aHJlYWQgYXRv
bWljX3VpbnQqIHggPSBudWxsOwogICAgICAgICAgICAgSW50ZXJsb2NrZWRBbmQoeCwgMSwgbnVs
bCk7CiAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNr
VHJhcChwcm9ncmFtLCAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgY2hl
Y2tJbnQpOwotCi0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbygp
IHsKKyAgICAgICAgdGVzdCBpbnQgZm9vMjMoKSB7CiAgICAgICAgICAgICB0aHJlYWQgYXRvbWlj
X2ludCogeCA9IG51bGw7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZEV4Y2hhbmdlKHgsIDEsIG51
bGwpOwogICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVj
a1RyYXAocHJvZ3JhbSwgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIGNo
ZWNrSW50KTsKLQotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28o
KSB7CisgICAgICAgIHRlc3QgaW50IGZvbzI0KCkgewogICAgICAgICAgICAgdGhyZWFkIGF0b21p
Y191aW50KiB4ID0gbnVsbDsKICAgICAgICAgICAgIEludGVybG9ja2VkRXhjaGFuZ2UoeCwgMSwg
bnVsbCk7CiAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQotICAgIGApOwotICAgIGNo
ZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwg
Y2hlY2tJbnQpOwotCi0gICAgcHJvZ3JhbSA9IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZv
bygpIHsKKyAgICAgICAgdGVzdCBpbnQgZm9vMjUoKSB7CiAgICAgICAgICAgICB0aHJlYWQgYXRv
bWljX2ludCogeCA9IG51bGw7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZE1heCh4LCAxLCBudWxs
KTsKICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tU
cmFwKHByb2dyYW0sICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCBjaGVj
a0ludCk7Ci0KLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKCkg
eworICAgICAgICB0ZXN0IGludCBmb28yNigpIHsKICAgICAgICAgICAgIHRocmVhZCBhdG9taWNf
dWludCogeCA9IG51bGw7CiAgICAgICAgICAgICBJbnRlcmxvY2tlZE1heCh4LCAxLCBudWxsKTsK
ICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tUcmFw
KHByb2dyYW0sICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCBjaGVja0lu
dCk7Ci0KLSAgICBwcm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKCkgewor
ICAgICAgICB0ZXN0IGludCBmb28yNygpIHsKICAgICAgICAgICAgIHRocmVhZCBhdG9taWNfaW50
KiB4ID0gbnVsbDsKICAgICAgICAgICAgIEludGVybG9ja2VkTWluKHgsIDEsIG51bGwpOwogICAg
ICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja1RyYXAocHJv
Z3JhbSwgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIGNoZWNrSW50KTsK
LQotICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oKSB7CisgICAg
ICAgIHRlc3QgaW50IGZvbzI4KCkgewogICAgICAgICAgICAgdGhyZWFkIGF0b21pY191aW50KiB4
ID0gbnVsbDsKICAgICAgICAgICAgIEludGVybG9ja2VkTWluKHgsIDEsIG51bGwpOwogICAgICAg
ICAgICAgcmV0dXJuIDE7CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja1RyYXAocHJvZ3Jh
bSwgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIGNoZWNrSW50KTsKLQot
ICAgIHByb2dyYW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oKSB7CisgICAgICAg
IHRlc3QgaW50IGZvbzI5KCkgewogICAgICAgICAgICAgdGhyZWFkIGF0b21pY19pbnQqIHggPSBu
dWxsOwogICAgICAgICAgICAgSW50ZXJsb2NrZWRPcih4LCAxLCBudWxsKTsKICAgICAgICAgICAg
IHJldHVybiAxOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tUcmFwKHByb2dyYW0sICgp
ID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCBjaGVja0ludCk7Ci0KLSAgICBw
cm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKCkgeworICAgICAgICB0ZXN0
IGludCBmb28zMCgpIHsKICAgICAgICAgICAgIHRocmVhZCBhdG9taWNfdWludCogeCA9IG51bGw7
CiAgICAgICAgICAgICBJbnRlcmxvY2tlZE9yKHgsIDEsIG51bGwpOwogICAgICAgICAgICAgcmV0
dXJuIDE7CiAgICAgICAgIH0KLSAgICBgKTsKLSAgICBjaGVja1RyYXAocHJvZ3JhbSwgKCkgPT4g
Y2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28iLCBbXSksIGNoZWNrSW50KTsKLQotICAgIHByb2dy
YW0gPSBkb1ByZXAoYAotICAgICAgICB0ZXN0IGludCBmb28oKSB7CisgICAgICAgIHRlc3QgaW50
IGZvbzMxKCkgewogICAgICAgICAgICAgdGhyZWFkIGF0b21pY19pbnQqIHggPSBudWxsOwogICAg
ICAgICAgICAgSW50ZXJsb2NrZWRYb3IoeCwgMSwgbnVsbCk7CiAgICAgICAgICAgICByZXR1cm4g
MTsKICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgY2hlY2tJbnQpOwotCi0gICAgcHJvZ3JhbSA9
IGRvUHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbygpIHsKKyAgICAgICAgdGVzdCBpbnQgZm9v
MzIoKSB7CiAgICAgICAgICAgICB0aHJlYWQgYXRvbWljX3VpbnQqIHggPSBudWxsOwogICAgICAg
ICAgICAgSW50ZXJsb2NrZWRYb3IoeCwgMSwgbnVsbCk7CiAgICAgICAgICAgICByZXR1cm4gMTsK
ICAgICAgICAgfQotICAgIGApOwotICAgIGNoZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBjYWxsRnVu
Y3Rpb24ocHJvZ3JhbSwgImZvbyIsIFtdKSwgY2hlY2tJbnQpOwotCi0gICAgcHJvZ3JhbSA9IGRv
UHJlcChgCi0gICAgICAgIHRlc3QgaW50IGZvbygpIHsKKyAgICAgICAgdGVzdCBpbnQgZm9vMzMo
KSB7CiAgICAgICAgICAgICB0aHJlYWQgYXRvbWljX2ludCogeCA9IG51bGw7CiAgICAgICAgICAg
ICBJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZSh4LCAxLCAyLCBudWxsKTsKICAgICAgICAgICAg
IHJldHVybiAxOwogICAgICAgICB9Ci0gICAgYCk7Ci0gICAgY2hlY2tUcmFwKHByb2dyYW0sICgp
ID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCBjaGVja0ludCk7Ci0KLSAgICBw
cm9ncmFtID0gZG9QcmVwKGAKLSAgICAgICAgdGVzdCBpbnQgZm9vKCkgeworICAgICAgICB0ZXN0
IGludCBmb28zNCgpIHsKICAgICAgICAgICAgIHRocmVhZCBhdG9taWNfdWludCogeCA9IG51bGw7
CiAgICAgICAgICAgICBJbnRlcmxvY2tlZENvbXBhcmVFeGNoYW5nZSh4LCAxLCAyLCBudWxsKTsK
ICAgICAgICAgICAgIHJldHVybiAxOwogICAgICAgICB9CiAgICAgYCk7Ci0gICAgY2hlY2tUcmFw
KHByb2dyYW0sICgpID0+IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vIiwgW10pLCBjaGVja0lu
dCk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xIiwg
W21ha2VJbnQocHJvZ3JhbSwgNildKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb28yIiwgW21ha2VJbnQocHJvZ3JhbSwgNildKSwgMTIpOworICAg
IGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMiLCBbbWFrZVVp
bnQocHJvZ3JhbSwgNildKSwgNik7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vNCIsIFttYWtlVWludChwcm9ncmFtLCA2KV0pLCAxMik7CisgICAgY2hl
Y2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNSIsIFttYWtlVWludChw
cm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgMSk7CisgICAgY2hlY2tJbnQocHJv
Z3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb282IiwgW21ha2VJbnQocHJvZ3JhbSwgMyks
IG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgMSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vNyIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgNSldKSwgNSk7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb284IiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgNSld
KSwgNSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
OSIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJvZ3JhbSwgNSldKSwgNSk7Cisg
ICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFttYWtl
VWludChwcm9ncmFtLCA1KSwgbWFrZVVpbnQocHJvZ3JhbSwgMyldKSwgNSk7CisgICAgY2hlY2tJ
bnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xMCIsIFttYWtlSW50KHByb2dy
YW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDUpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbbWFrZUludChwcm9ncmFtLCA1KSwgbWFr
ZUludChwcm9ncmFtLCAzKV0pLCA1KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xMSIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJv
Z3JhbSwgNSldKSwgMyk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMTEiLCBbbWFrZVVpbnQocHJvZ3JhbSwgNSksIG1ha2VVaW50KHByb2dyYW0sIDMp
XSksIDMpOworICAgIGNoZWNrSW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
MTIiLCBbbWFrZUludChwcm9ncmFtLCAzKSwgbWFrZUludChwcm9ncmFtLCA1KV0pLCAzKTsKKyAg
ICBjaGVja0ludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEyIiwgW21ha2VJ
bnQocHJvZ3JhbSwgNSksIG1ha2VJbnQocHJvZ3JhbSwgMyldKSwgMyk7CisgICAgY2hlY2tVaW50
KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTMiLCBbbWFrZVVpbnQocHJvZ3Jh
bSwgMyksIG1ha2VVaW50KHByb2dyYW0sIDUpXSksIDcpOworICAgIGNoZWNrSW50KHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbbWFrZUludChwcm9ncmFtLCAzKSwgbWFr
ZUludChwcm9ncmFtLCA1KV0pLCA3KTsKKyAgICBjaGVja1VpbnQocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28xNSIsIFttYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQocHJv
Z3JhbSwgNSldKSwgNik7CisgICAgY2hlY2tJbnQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dy
YW0sICJmb28xNiIsIFttYWtlSW50KHByb2dyYW0sIDMpLCBtYWtlSW50KHByb2dyYW0sIDUpXSks
IDYpOworICAgIGNoZWNrVWludChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE3
IiwgW21ha2VVaW50KHByb2dyYW0sIDMpLCBtYWtlVWludChwcm9ncmFtLCAzKSwgbWFrZVVpbnQo
cHJvZ3JhbSwgNSldKSwgNSk7CisgICAgY2hlY2tVaW50KHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMTciLCBbbWFrZVVpbnQocHJvZ3JhbSwgMyksIG1ha2VVaW50KHByb2dyYW0s
IDQpLCBtYWtlVWludChwcm9ncmFtLCA1KV0pLCAzKTsKKyAgICBjaGVja0ludChwcm9ncmFtLCBj
YWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE4IiwgW21ha2VJbnQocHJvZ3JhbSwgMyksIG1ha2VJ
bnQocHJvZ3JhbSwgMyksIG1ha2VJbnQocHJvZ3JhbSwgNSldKSwgNSk7CisgICAgY2hlY2tJbnQo
cHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xOCIsIFttYWtlSW50KHByb2dyYW0s
IDMpLCBtYWtlSW50KHByb2dyYW0sIDQpLCBtYWtlSW50KHByb2dyYW0sIDUpXSksIDMpOworICAg
IGNoZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE5Iiwg
W10pLCBjaGVja0ludCk7CisgICAgY2hlY2tUcmFwKHByb2dyYW0sICgpID0+IGNhbGxGdW5jdGlv
bihwcm9ncmFtLCAiZm9vMjAiLCBbXSksIGNoZWNrSW50KTsKKyAgICBjaGVja1RyYXAocHJvZ3Jh
bSwgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtdKSwgY2hlY2tJbnQpOwor
ICAgIGNoZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIy
IiwgW10pLCBjaGVja0ludCk7CisgICAgY2hlY2tUcmFwKHByb2dyYW0sICgpID0+IGNhbGxGdW5j
dGlvbihwcm9ncmFtLCAiZm9vMjMiLCBbXSksIGNoZWNrSW50KTsKKyAgICBjaGVja1RyYXAocHJv
Z3JhbSwgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNCIsIFtdKSwgY2hlY2tJbnQp
OworICAgIGNoZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzI1IiwgW10pLCBjaGVja0ludCk7CisgICAgY2hlY2tUcmFwKHByb2dyYW0sICgpID0+IGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMjYiLCBbXSksIGNoZWNrSW50KTsKKyAgICBjaGVja1RyYXAo
cHJvZ3JhbSwgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNyIsIFtdKSwgY2hlY2tJ
bnQpOworICAgIGNoZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwg
ImZvbzI4IiwgW10pLCBjaGVja0ludCk7CisgICAgY2hlY2tUcmFwKHByb2dyYW0sICgpID0+IGNh
bGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjkiLCBbXSksIGNoZWNrSW50KTsKKyAgICBjaGVja1Ry
YXAocHJvZ3JhbSwgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMCIsIFtdKSwgY2hl
Y2tJbnQpOworICAgIGNoZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzMxIiwgW10pLCBjaGVja0ludCk7CisgICAgY2hlY2tUcmFwKHByb2dyYW0sICgpID0+
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzIiLCBbXSksIGNoZWNrSW50KTsKKyAgICBjaGVj
a1RyYXAocHJvZ3JhbSwgKCkgPT4gY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMyIsIFtdKSwg
Y2hlY2tJbnQpOworICAgIGNoZWNrVHJhcChwcm9ncmFtLCAoKSA9PiBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzM0IiwgW10pLCBjaGVja0ludCk7CiB9CiAKIHRlc3RzLnNlbGZDYXN0cyA9IGZ1
bmN0aW9uKCkKQEAgLTkwODgsNiArODg2OSwzMDMgQEAgdGVzdHMudGV4dHVyZUdhdGhlciA9IGZ1
bmN0aW9uKCkgewogICAgIC8vIEZJWE1FOiBHYXRoZXIgb3RoZXIgY29tcG9uZW50cwogfQogCit0
ZXN0cy5yZWZlcmVuY2VFcXVhbGl0eSA9IGZ1bmN0aW9uKCkgeworICAgIGxldCBwcm9ncmFtID0g
ZG9QcmVwKGAKKyAgICAgICAgdGVzdCBib29sIGZvbzEoKSB7CisgICAgICAgICAgICBpbnQgeDsK
KyAgICAgICAgICAgIHRocmVhZCBpbnQqIHkgPSAmeDsKKyAgICAgICAgICAgIHRocmVhZCBpbnQq
IHogPSAmeDsKKyAgICAgICAgICAgIHJldHVybiB5ID09IHo7CisgICAgICAgIH0KKyAgICAgICAg
dGVzdCBib29sIGZvbzIoKSB7CisgICAgICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgIHRocmVh
ZCBpbnQqIHogPSAmeDsKKyAgICAgICAgICAgIHJldHVybiAmeCA9PSB6OworICAgICAgICB9Cisg
ICAgICAgIHRlc3QgYm9vbCBmb28zKCkgeworICAgICAgICAgICAgaW50IHg7CisgICAgICAgICAg
ICB0aHJlYWQgaW50KiB5ID0gJng7CisgICAgICAgICAgICByZXR1cm4geSA9PSAmeDsKKyAgICAg
ICAgfQorICAgICAgICB0ZXN0IGJvb2wgZm9vNCgpIHsKKyAgICAgICAgICAgIGludCB4OworICAg
ICAgICAgICAgcmV0dXJuICZ4ID09ICZ4OworICAgICAgICB9CisgICAgICAgIHRlc3QgYm9vbCBm
b281KCkgeworICAgICAgICAgICAgaW50IHg7CisgICAgICAgICAgICByZXR1cm4gJnggIT0gJng7
CisgICAgICAgIH0KKyAgICAgICAgdGVzdCBib29sIGZvbzYoKSB7CisgICAgICAgICAgICBpbnQg
eCA9IDc7CisgICAgICAgICAgICBpbnQgeSA9IDc7CisgICAgICAgICAgICByZXR1cm4gJnggPT0g
Jnk7CisgICAgICAgIH0KKyAgICAgICAgdGVzdCBib29sIGZvbzcoKSB7CisgICAgICAgICAgICBy
ZXR1cm4gbnVsbCA9PSBudWxsOworICAgICAgICB9CisgICAgICAgIHRlc3QgYm9vbCBmb284KCkg
eworICAgICAgICAgICAgaW50IHg7CisgICAgICAgICAgICB0aHJlYWQgaW50KiB5ID0gJng7Cisg
ICAgICAgICAgICB0aHJlYWQgaW50KiB6ID0gJng7CisgICAgICAgICAgICByZXR1cm4gJnkgPT0g
Jno7CisgICAgICAgIH0KKyAgICAgICAgdGVzdCBib29sIGZvbzkoKSB7CisgICAgICAgICAgICBp
bnQgeDsKKyAgICAgICAgICAgIHRocmVhZCBpbnQqIHkgPSAmeDsKKyAgICAgICAgICAgIHJldHVy
biAmeSA9PSAmeTsKKyAgICAgICAgfQorICAgICAgICB0ZXN0IGJvb2wgZm9vMTAoKSB7CisgICAg
ICAgICAgICB0aHJlYWQgaW50KiB5OworICAgICAgICAgICAgcmV0dXJuIG51bGwgPT0geTsKKyAg
ICAgICAgfQorICAgICAgICB0ZXN0IGJvb2wgZm9vMTEoKSB7CisgICAgICAgICAgICB0aHJlYWQg
aW50KiB5OworICAgICAgICAgICAgcmV0dXJuIHkgPT0gbnVsbDsKKyAgICAgICAgfQorICAgICAg
ICB0ZXN0IGJvb2wgZm9vMTIoKSB7CisgICAgICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgIHRo
cmVhZCBpbnQqIHkgPSAmeDsKKyAgICAgICAgICAgIHJldHVybiBudWxsID09IHk7CisgICAgICAg
IH0KKyAgICAgICAgdGVzdCBib29sIGZvbzEzKCkgeworICAgICAgICAgICAgaW50IHg7CisgICAg
ICAgICAgICB0aHJlYWQgaW50KiB5ID0gJng7CisgICAgICAgICAgICByZXR1cm4geSA9PSBudWxs
OworICAgICAgICB9CisgICAgICAgIHRlc3QgYm9vbCBmb28xNCgpIHsKKyAgICAgICAgICAgIGlu
dCB4OworICAgICAgICAgICAgdGhyZWFkIGludFtdIHkgPSBAeDsKKyAgICAgICAgICAgIHRocmVh
ZCBpbnRbXSB6ID0gQHg7CisgICAgICAgICAgICByZXR1cm4geSA9PSB6OworICAgICAgICB9Cisg
ICAgICAgIHRlc3QgYm9vbCBmb28xNSgpIHsKKyAgICAgICAgICAgIGludCB4OworICAgICAgICAg
ICAgdGhyZWFkIGludFtdIHogPSBAeDsKKyAgICAgICAgICAgIHJldHVybiBAeCA9PSB6OworICAg
ICAgICB9CisgICAgICAgIHRlc3QgYm9vbCBmb28xNigpIHsKKyAgICAgICAgICAgIGludCB4Owor
ICAgICAgICAgICAgdGhyZWFkIGludFtdIHkgPSBAeDsKKyAgICAgICAgICAgIHJldHVybiB5ID09
IEB4OworICAgICAgICB9CisgICAgICAgIHRlc3QgYm9vbCBmb28xNygpIHsKKyAgICAgICAgICAg
IGludCB4OworICAgICAgICAgICAgcmV0dXJuIEB4ID09IEB4OworICAgICAgICB9CisgICAgICAg
IHRlc3QgYm9vbCBmb28xOCgpIHsKKyAgICAgICAgICAgIGludCB4OworICAgICAgICAgICAgcmV0
dXJuIEB4ICE9IEB4OworICAgICAgICB9CisgICAgICAgIHRlc3QgYm9vbCBmb28xOSgpIHsKKyAg
ICAgICAgICAgIGludCB4ID0gNzsKKyAgICAgICAgICAgIGludCB5ID0gNzsKKyAgICAgICAgICAg
IHJldHVybiBAeCA9PSBAeTsKKyAgICAgICAgfQorICAgICAgICB0ZXN0IGJvb2wgZm9vMjEoKSB7
CisgICAgICAgICAgICBpbnQgeDsKKyAgICAgICAgICAgIHRocmVhZCBpbnRbXSB5ID0gQHg7Cisg
ICAgICAgICAgICB0aHJlYWQgaW50W10geiA9IEB4OworICAgICAgICAgICAgcmV0dXJuIEB5ID09
IEB6OworICAgICAgICB9CisgICAgICAgIHRlc3QgYm9vbCBmb28yMigpIHsKKyAgICAgICAgICAg
IGludCB4OworICAgICAgICAgICAgdGhyZWFkIGludFtdIHkgPSBAeDsKKyAgICAgICAgICAgIHJl
dHVybiBAeSA9PSBAeTsKKyAgICAgICAgfQorICAgICAgICB0ZXN0IGJvb2wgZm9vMjMoKSB7Cisg
ICAgICAgICAgICB0aHJlYWQgaW50W10geTsKKyAgICAgICAgICAgIHJldHVybiBudWxsID09IHk7
CisgICAgICAgIH0KKyAgICAgICAgdGVzdCBib29sIGZvbzI0KCkgeworICAgICAgICAgICAgdGhy
ZWFkIGludFtdIHk7CisgICAgICAgICAgICByZXR1cm4geSA9PSBudWxsOworICAgICAgICB9Cisg
ICAgICAgIHRlc3QgYm9vbCBmb28yNSgpIHsKKyAgICAgICAgICAgIGludCB4OworICAgICAgICAg
ICAgdGhyZWFkIGludFtdIHkgPSBAeDsKKyAgICAgICAgICAgIHJldHVybiBudWxsID09IHk7Cisg
ICAgICAgIH0KKyAgICAgICAgdGVzdCBib29sIGZvbzI2KCkgeworICAgICAgICAgICAgaW50IHg7
CisgICAgICAgICAgICB0aHJlYWQgaW50W10geSA9IEB4OworICAgICAgICAgICAgcmV0dXJuIHkg
PT0gbnVsbDsKKyAgICAgICAgfQorICAgICAgICB0ZXN0IGJvb2wgZm9vMjcoKSB7CisgICAgICAg
ICAgICBpbnRbM10geDsKKyAgICAgICAgICAgIHRocmVhZCBpbnRbXSB5ID0gQHg7CisgICAgICAg
ICAgICB0aHJlYWQgaW50W10geiA9IEB4OworICAgICAgICAgICAgcmV0dXJuIHkgPT0gejsKKyAg
ICAgICAgfQorICAgICAgICB0ZXN0IGJvb2wgZm9vMjgoKSB7CisgICAgICAgICAgICBpbnRbM10g
eDsKKyAgICAgICAgICAgIHRocmVhZCBpbnRbXSB6ID0gQHg7CisgICAgICAgICAgICByZXR1cm4g
QHggPT0gejsKKyAgICAgICAgfQorICAgICAgICB0ZXN0IGJvb2wgZm9vMjkoKSB7CisgICAgICAg
ICAgICBpbnRbM10geDsKKyAgICAgICAgICAgIHRocmVhZCBpbnRbXSB5ID0gQHg7CisgICAgICAg
ICAgICByZXR1cm4geSA9PSBAeDsKKyAgICAgICAgfQorICAgICAgICB0ZXN0IGJvb2wgZm9vMzAo
KSB7CisgICAgICAgICAgICBpbnRbM10geDsKKyAgICAgICAgICAgIHJldHVybiBAeCA9PSBAeDsK
KyAgICAgICAgfQorICAgICAgICB0ZXN0IGJvb2wgZm9vMzEoKSB7CisgICAgICAgICAgICBpbnRb
M10geDsKKyAgICAgICAgICAgIHJldHVybiBAeCAhPSBAeDsKKyAgICAgICAgfQorICAgICAgICB0
ZXN0IGJvb2wgZm9vMzIoKSB7CisgICAgICAgICAgICBpbnRbM10geDsKKyAgICAgICAgICAgIHhb
MF0gPSA3OworICAgICAgICAgICAgeFsxXSA9IDg7CisgICAgICAgICAgICB4WzJdID0gOTsKKyAg
ICAgICAgICAgIGludFszXSB5OworICAgICAgICAgICAgeVswXSA9IDc7CisgICAgICAgICAgICB5
WzFdID0gODsKKyAgICAgICAgICAgIHlbMl0gPSA5OworICAgICAgICAgICAgcmV0dXJuIEB4ID09
IEB5OworICAgICAgICB9CisgICAgICAgIHRlc3QgYm9vbCBmb28zMygpIHsKKyAgICAgICAgICAg
IGludFszXSB4OworICAgICAgICAgICAgdGhyZWFkIGludFtdIHkgPSBAeDsKKyAgICAgICAgICAg
IHRocmVhZCBpbnRbXSB6ID0gQHg7CisgICAgICAgICAgICByZXR1cm4gQHkgPT0gQHo7CisgICAg
ICAgIH0KKyAgICAgICAgdGVzdCBib29sIGZvbzM0KCkgeworICAgICAgICAgICAgaW50WzNdIHg7
CisgICAgICAgICAgICB0aHJlYWQgaW50W10geSA9IEB4OworICAgICAgICAgICAgcmV0dXJuIEB5
ID09IEB5OworICAgICAgICB9CisgICAgICAgIHRlc3QgYm9vbCBmb28zNSgpIHsKKyAgICAgICAg
ICAgIHRocmVhZCBpbnRbXSB5OworICAgICAgICAgICAgcmV0dXJuIG51bGwgPT0geTsKKyAgICAg
ICAgfQorICAgICAgICB0ZXN0IGJvb2wgZm9vMzYoKSB7CisgICAgICAgICAgICB0aHJlYWQgaW50
W10geTsKKyAgICAgICAgICAgIHJldHVybiB5ID09IG51bGw7CisgICAgICAgIH0KKyAgICAgICAg
dGVzdCBib29sIGZvbzM3KCkgeworICAgICAgICAgICAgaW50WzNdIHg7CisgICAgICAgICAgICB0
aHJlYWQgaW50W10geSA9IEB4OworICAgICAgICAgICAgcmV0dXJuIG51bGwgPT0geTsKKyAgICAg
ICAgfQorICAgICAgICB0ZXN0IGJvb2wgZm9vMzgoKSB7CisgICAgICAgICAgICBpbnRbM10geDsK
KyAgICAgICAgICAgIHRocmVhZCBpbnRbXSB5ID0gQHg7CisgICAgICAgICAgICByZXR1cm4geSA9
PSBudWxsOworICAgICAgICB9CisgICAgYCk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxG
dW5jdGlvbihwcm9ncmFtLCAiZm9vMSIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dy
YW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMiIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMyIsIFtdKSwgdHJ1ZSk7Cisg
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vNCIsIFtdKSwg
dHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9v
NSIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJv
Z3JhbSwgImZvbzYiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1
bmN0aW9uKHByb2dyYW0sICJmb283IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3Jh
bSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb284IiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tC
b29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vOSIsIFtdKSwgdHJ1ZSk7Cisg
ICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTAiLCBbXSks
IHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZv
bzExIiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHBy
b2dyYW0sICJmb28xMiIsIFtdKSwgZmFsc2UpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEzIiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTQiLCBbXSksIHRydWUpOworICAgIGNo
ZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzE1IiwgW10pLCB0cnVl
KTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28xNiIs
IFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFt
LCAiZm9vMTciLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzE4IiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMTkiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yMSIsIFtdKSwgZmFsc2UpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzIyIiwgW10p
LCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yMyIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihw
cm9ncmFtLCAiZm9vMjQiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxs
RnVuY3Rpb24ocHJvZ3JhbSwgImZvbzI1IiwgW10pLCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjYiLCBbXSksIGZhbHNlKTsKKyAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28yNyIsIFtdKSwgdHJ1
ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMjgi
LCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3Jh
bSwgImZvbzI5IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0
aW9uKHByb2dyYW0sICJmb28zMCIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0s
IGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzEiLCBbXSksIGZhbHNlKTsKKyAgICBjaGVja0Jv
b2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zMiIsIFtdKSwgZmFsc2UpOwor
ICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzMzIiwgW10p
LCBmYWxzZSk7CisgICAgY2hlY2tCb29sKHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAi
Zm9vMzQiLCBbXSksIHRydWUpOworICAgIGNoZWNrQm9vbChwcm9ncmFtLCBjYWxsRnVuY3Rpb24o
cHJvZ3JhbSwgImZvbzM1IiwgW10pLCB0cnVlKTsKKyAgICBjaGVja0Jvb2wocHJvZ3JhbSwgY2Fs
bEZ1bmN0aW9uKHByb2dyYW0sICJmb28zNiIsIFtdKSwgdHJ1ZSk7CisgICAgY2hlY2tCb29sKHBy
b2dyYW0sIGNhbGxGdW5jdGlvbihwcm9ncmFtLCAiZm9vMzciLCBbXSksIGZhbHNlKTsKKyAgICBj
aGVja0Jvb2wocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJmb28zOCIsIFtdKSwgZmFs
c2UpOworICAgIGNoZWNrRmFpbCgKKyAgICAgICAgKCkgPT4gZG9QcmVwKGAKKyAgICAgICAgICAg
IHZvaWQgZm9vKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQgeDsKKyAgICAg
ICAgICAgICAgICBmbG9hdCB5OworICAgICAgICAgICAgICAgIGJvb2wgeiA9ICgmeCA9PSAmeSk7
CisgICAgICAgICAgICB9CisgICAgICAgIGApLAorICAgICAgICAoZSkgPT4gZSBpbnN0YW5jZW9m
IFdUeXBlRXJyb3IpOworICAgIGNoZWNrRmFpbCgKKyAgICAgICAgKCkgPT4gZG9QcmVwKGAKKyAg
ICAgICAgICAgIHZvaWQgZm9vKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBpbnQg
eDsKKyAgICAgICAgICAgICAgICB0aHJlYWQgaW50KiB5ID0gJng7CisgICAgICAgICAgICAgICAg
Ym9vbCB6ID0gKCZ4ID09ICZ5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgYCksCisgICAgICAg
IChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7CisgICAgY2hlY2tGYWlsKAorICAgICAg
ICAoKSA9PiBkb1ByZXAoYAorICAgICAgICAgICAgdm9pZCBmb28oKQorICAgICAgICAgICAgewor
ICAgICAgICAgICAgICAgIGludCB4OworICAgICAgICAgICAgICAgIGZsb2F0IHk7CisgICAgICAg
ICAgICAgICAgYm9vbCB6ID0gKEB4ID09IEB5KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgYCks
CisgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVFcnJvcik7CisgICAgY2hlY2tGYWls
KAorICAgICAgICAoKSA9PiBkb1ByZXAoYAorICAgICAgICAgICAgdm9pZCBmb28oKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIGludCB4OworICAgICAgICAgICAgICAgIHRocmVhZCBp
bnRbXSB5ID0gQHg7CisgICAgICAgICAgICAgICAgYm9vbCB6ID0gKEB4ID09IEB5KTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgYCksCisgICAgICAgIChlKSA9PiBlIGluc3RhbmNlb2YgV1R5cGVF
cnJvcik7Cit9CisKK3Rlc3RzLnN0YW5kYXJkTGlicmFyeURldmljZVBvaW50ZXJzID0gZnVuY3Rp
b24oKSB7CisgICAgbGV0IHByb2dyYW0gPSBkb1ByZXAoYAorICAgICAgICB0ZXN0IGZsb2F0IGZv
bzEoKSB7CisgICAgICAgICAgICBmbG9hdCBzOworICAgICAgICAgICAgZmxvYXQgYzsKKyAgICAg
ICAgICAgIHNpbmNvcygwLCAmcywgJmMpOworICAgICAgICAgICAgcmV0dXJuIGM7CisgICAgICAg
IH0KKyAgICAgICAgdGVzdCBmbG9hdCBmb28yKCkgeworICAgICAgICAgICAgZmxvYXQgczsKKyAg
ICAgICAgICAgIGZsb2F0IGM7CisgICAgICAgICAgICBzaW5jb3MoMCwgJnMsICZjKTsKKyAgICAg
ICAgICAgIHJldHVybiBzOworICAgICAgICB9CisgICAgICAgIHRlc3QgZmxvYXQgZm9vMygpIHsK
KyAgICAgICAgICAgIHRocmVhZCBmbG9hdCogcyA9IG51bGw7CisgICAgICAgICAgICBmbG9hdCBj
OworICAgICAgICAgICAgc2luY29zKDAsIHMsICZjKTsKKyAgICAgICAgICAgIHJldHVybiBjOwor
ICAgICAgICB9CisgICAgICAgIHRlc3QgZmxvYXQgZm9vNCgpIHsKKyAgICAgICAgICAgIGZsb2F0
IHM7CisgICAgICAgICAgICB0aHJlYWQgZmxvYXQqIGMgPSBudWxsOworICAgICAgICAgICAgc2lu
Y29zKDAsICZzLCBjKTsKKyAgICAgICAgICAgIHJldHVybiBzOworICAgICAgICB9CisgICAgYCk7
CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rpb24ocHJvZ3JhbSwgImZvbzEiLCBb
XSksIDEpOworICAgIGNoZWNrRmxvYXQocHJvZ3JhbSwgY2FsbEZ1bmN0aW9uKHByb2dyYW0sICJm
b28yIiwgW10pLCAwKTsKKyAgICBjaGVja0Zsb2F0KHByb2dyYW0sIGNhbGxGdW5jdGlvbihwcm9n
cmFtLCAiZm9vMyIsIFtdKSwgMSk7CisgICAgY2hlY2tGbG9hdChwcm9ncmFtLCBjYWxsRnVuY3Rp
b24ocHJvZ3JhbSwgImZvbzQiLCBbXSksIDApOworfQogCiB0ZXN0cy5jb21tZW50UGFyc2luZyA9
IGZ1bmN0aW9uKCkgewogICAgIGxldCBwcm9ncmFtID0gZG9QcmVwKGAKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwgYi9Ub29scy9XZWJHUFVTaGFk
aW5nTGFuZ3VhZ2VSSS9pbmRleC5odG1sCmluZGV4IGIzNTU2MjQ1Y2EyYjU0MWRhMWRjYmM5YjNi
YmU3MzVjYWI5MThjNGEuLmU4ZDgzNThkZmY5Njk2ZjJkYmRlNDJmNWQ2MTM3YTE1OWMxOTNkNDIg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYkdQVVNoYWRpbmdMYW5ndWFnZVJJL2luZGV4Lmh0bWwKKysr
IGIvVG9vbHMvV2ViR1BVU2hhZGluZ0xhbmd1YWdlUkkvaW5kZXguaHRtbApAQCAtODUsOCArODUs
NyBAQAogPHNjcmlwdCBzcmM9IkludExpdGVyYWwuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9
IkludExpdGVyYWxUeXBlLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJJbnRyaW5zaWNzLmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJMYXRlQ2hlY2tBbmRMYXlvdXRCdWZmZXJzLmpzIj48
L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJMYXRlQ2hlY2tlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0iTGF5b3V0QnVmZmVycy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iTGV4ZXIuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9IkxleGVyVG9rZW4uanMiPjwvc2NyaXB0PgogPHNjcmlw
dCBzcmM9IkxpdGVyYWxUeXBlQ2hlY2tlci5qcyI+PC9zY3JpcHQ+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>