<?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>204082</bug_id>
          
          <creation_ts>2019-11-11 13:27:44 -0800</creation_ts>
          <short_desc>Implement GetByVal inline caching for 32-bit JITs</short_desc>
          <delta_ts>2019-12-01 18:55:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</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>
          <dependson>202767</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Caio Lima">ticaiolima</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>guijemont</cc>
    
    <cc>jsc32</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1589305</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-11-11 13:27:44 -0800</bug_when>
    <thetext>In https://bugs.webkit.org/show_bug.cgi?id=202767, I&apos;m going to implement it for 64-bit. It should be easy to make it work on 32-bit JIT too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1591720</commentid>
    <comment_count>1</comment_count>
      <attachid>383912</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2019-11-19 15:09:54 -0800</bug_when>
    <thetext>Created attachment 383912
WIP - Patch

It starts the implementation. It is only supporting Baseline IC generation, however the IC code generated is not working on 32-bits yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592178</commentid>
    <comment_count>2</comment_count>
      <attachid>383995</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2019-11-20 15:34:11 -0800</bug_when>
    <thetext>Created attachment 383995
WIP - Patch

This is implementing GetByVal IC into 32-bits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592179</commentid>
    <comment_count>3</comment_count>
      <attachid>383996</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2019-11-20 15:35:17 -0800</bug_when>
    <thetext>Created attachment 383996
WIP - Patch

Oops, wrong patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1592466</commentid>
    <comment_count>4</comment_count>
      <attachid>384078</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2019-11-21 11:49:33 -0800</bug_when>
    <thetext>Created attachment 384078
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1593395</commentid>
    <comment_count>5</comment_count>
      <attachid>384290</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2019-11-25 04:51:40 -0800</bug_when>
    <thetext>Created attachment 384290
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594365</commentid>
    <comment_count>6</comment_count>
      <attachid>384290</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-11-30 16:36:39 -0800</bug_when>
    <thetext>Comment on attachment 384290
Patch

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

Nice. r=me

&gt; Source/JavaScriptCore/bytecode/StructureStubInfo.h:223
&gt;          GPRReg baseTagGPR;

This isn’t your patch, but I wonder why this is needed. I think all users of StructureStubInfo branch around the base being a cell. But it might be worth looking at to verify and perhaps remove in the future.

&gt; Source/JavaScriptCore/bytecode/StructureStubInfo.h:224
&gt; +        union {

Why not put this in “u”?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594410</commentid>
    <comment_count>7</comment_count>
      <attachid>384290</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2019-12-01 07:16:03 -0800</bug_when>
    <thetext>Comment on attachment 384290
Patch

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

Thank you very much for the review!

&gt;&gt; Source/JavaScriptCore/bytecode/StructureStubInfo.h:223
&gt;&gt;          GPRReg baseTagGPR;
&gt; 
&gt; This isn’t your patch, but I wonder why this is needed. I think all users of StructureStubInfo branch around the base being a cell. But it might be worth looking at to verify and perhaps remove in the future.

I think you are right here. I didn&apos;t check in a lot of places, but I do&apos;t remember a case where this is used, since all `JIT*InlineCacheGenerator` I saw was using `JSValueRegs::payloadOnly`. I created https://bugs.webkit.org/show_bug.cgi?id=204726 to care of it.

&gt;&gt; Source/JavaScriptCore/bytecode/StructureStubInfo.h:224
&gt;&gt; +        union {
&gt; 
&gt; Why not put this in “u”?

&quot;u&quot; is already being used by `thisPayloadGPR` and `propertyPayloadGPR`. If we would like to only have `u`, I think we can use `std::pair` or other structure, but I can&apos;t see how it would improve code quality.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594419</commentid>
    <comment_count>8</comment_count>
      <attachid>384573</attachid>
    <who name="Caio Lima">ticaiolima</who>
    <bug_when>2019-12-01 08:02:58 -0800</bug_when>
    <thetext>Created attachment 384573
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594475</commentid>
    <comment_count>9</comment_count>
      <attachid>384573</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-01 18:54:19 -0800</bug_when>
    <thetext>Comment on attachment 384573
Patch

Clearing flags on attachment: 384573

Committed r252974: &lt;https://trac.webkit.org/changeset/252974&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594476</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-01 18:54:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594477</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-01 18:55:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/57548177&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383912</attachid>
            <date>2019-11-19 15:09:54 -0800</date>
            <delta_ts>2019-11-20 15:34:11 -0800</delta_ts>
            <desc>WIP - Patch</desc>
            <filename>get_by_val_ic.diff</filename>
            <type>text/plain</type>
            <size>11023</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcAppbmRleCA1
YTk2NGQzOWNjMy4uZWY5OTA2ZjcwOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQWNjZXNzQ2FzZS5jcHAKQEAgLTg2OCw3ICs4NjgsNyBAQCB2b2lkIEFjY2Vzc0Nhc2U6
OmdlbmVyYXRlV2l0aEd1YXJkKAogCiAgICAgICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciBh
bGxvY2F0b3Ioc3R1YkluZm8ucGF0Y2gudXNlZFJlZ2lzdGVycyk7CiAgICAgICAgIGFsbG9jYXRv
ci5sb2NrKGJhc2VHUFIpOwotICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1ZVJlZ3MuZ3ByKCkp
OworICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1ZVJlZ3MucGF5bG9hZEdQUigpKTsKICAgICAg
ICAgYWxsb2NhdG9yLmxvY2socHJvcGVydHlHUFIpOwogICAgICAgICBhbGxvY2F0b3IubG9jayhz
Y3JhdGNoR1BSKTsKICAgICAgICAgCkBAIC04OTgsOSArODk4LDkgQEAgdm9pZCBBY2Nlc3NDYXNl
OjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAgICAgICAgaml0LnN1YjMyKHByb3BlcnR5R1BSLCBzY3Jh
dGNoMkdQUik7CiAgICAgICAgIGppdC5uZWczMihzY3JhdGNoMkdQUik7CiAgICAgICAgIGppdC5s
b2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhiYXNlR1BSLCBTY29wZWRBcmd1bWVudHM6Om9m
ZnNldE9mU3RvcmFnZSgpKSwgc2NyYXRjaDNHUFIpOwotICAgICAgICBqaXQubG9hZFZhbHVlKEND
YWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2gzR1BSLCBzY3JhdGNoMkdQUiwgQ0NhbGxIZWxw
ZXJzOjpUaW1lc0VpZ2h0KSwgSlNWYWx1ZVJlZ3Moc2NyYXRjaEdQUikpOworICAgICAgICBqaXQu
bG9hZFZhbHVlKENDYWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2gzR1BSLCBzY3JhdGNoMkdQ
UiwgQ0NhbGxIZWxwZXJzOjpUaW1lc0VpZ2h0KSwgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHNj
cmF0Y2hHUFIpKTsKICAgICAgICAgZmFpbEFuZElnbm9yZS5hcHBlbmQoaml0LmJyYW5jaElmRW1w
dHkoc2NyYXRjaEdQUikpOwotICAgICAgICBqaXQubW92ZShzY3JhdGNoR1BSLCB2YWx1ZVJlZ3Mu
Z3ByKCkpOworICAgICAgICBqaXQubW92ZShzY3JhdGNoR1BSLCB2YWx1ZVJlZ3MucGF5bG9hZEdQ
UigpKTsKIAogICAgICAgICBkb25lLmxpbmsoJmppdCk7CiAKQEAgLTk1Niw3ICs5NTYsNyBAQCB2
b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlV2l0aEd1YXJkKAogCiAgICAgICAgIFNjcmF0Y2hSZWdp
c3RlckFsbG9jYXRvciBhbGxvY2F0b3Ioc3R1YkluZm8ucGF0Y2gudXNlZFJlZ2lzdGVycyk7CiAg
ICAgICAgIGFsbG9jYXRvci5sb2NrKGJhc2VHUFIpOwotICAgICAgICBhbGxvY2F0b3IubG9jayh2
YWx1ZVJlZ3MuZ3ByKCkpOworICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1ZVJlZ3MucGF5bG9h
ZEdQUigpKTsKICAgICAgICAgYWxsb2NhdG9yLmxvY2socHJvcGVydHlHUFIpOwogICAgICAgICBh
bGxvY2F0b3IubG9jayhzY3JhdGNoR1BSKTsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0g
YWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwpAQCAtOTcyLDE4ICs5NzIsMTggQEAgdm9p
ZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAgICAgICAgICAgIHN3aXRjaCAoZWxl
bWVudFNpemUodHlwZSkpIHsKICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICBp
ZiAoSlNDOjppc1NpZ25lZCh0eXBlKSkKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQ4U2ln
bmVkRXh0ZW5kVG8zMihDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoMkdQUiwgc2NyYXRj
aEdQUiwgQ0NhbGxIZWxwZXJzOjpUaW1lc09uZSksIHZhbHVlUmVncy5ncHIoKSk7CisgICAgICAg
ICAgICAgICAgICAgIGppdC5sb2FkOFNpZ25lZEV4dGVuZFRvMzIoQ0NhbGxIZWxwZXJzOjpCYXNl
SW5kZXgoc2NyYXRjaDJHUFIsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VGltZXNPbmUpLCB2
YWx1ZVJlZ3MucGF5bG9hZEdQUigpKTsKICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgICAgIGppdC5sb2FkOChDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoMkdQUiwg
c2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUaW1lc09uZSksIHZhbHVlUmVncy5ncHIoKSk7Cisg
ICAgICAgICAgICAgICAgICAgIGppdC5sb2FkOChDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3Jh
dGNoMkdQUiwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUaW1lc09uZSksIHZhbHVlUmVncy5w
YXlsb2FkR1BSKCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSAy
OgogICAgICAgICAgICAgICAgIGlmIChKU0M6OmlzU2lnbmVkKHR5cGUpKQotICAgICAgICAgICAg
ICAgICAgICBqaXQubG9hZDE2U2lnbmVkRXh0ZW5kVG8zMihDQ2FsbEhlbHBlcnM6OkJhc2VJbmRl
eChzY3JhdGNoMkdQUiwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUaW1lc1R3byksIHZhbHVl
UmVncy5ncHIoKSk7CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkMTZTaWduZWRFeHRlbmRU
bzMyKENDYWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2gyR1BSLCBzY3JhdGNoR1BSLCBDQ2Fs
bEhlbHBlcnM6OlRpbWVzVHdvKSwgdmFsdWVSZWdzLnBheWxvYWRHUFIoKSk7CiAgICAgICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDE2KENDYWxsSGVscGVyczo6
QmFzZUluZGV4KHNjcmF0Y2gyR1BSLCBzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OlRpbWVzVHdv
KSwgdmFsdWVSZWdzLmdwcigpKTsKKyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQxNihDQ2Fs
bEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoMkdQUiwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJz
OjpUaW1lc1R3byksIHZhbHVlUmVncy5wYXlsb2FkR1BSKCkpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgY2FzZSA0OgotICAgICAgICAgICAgICAgIGppdC5sb2FkMzIoQ0Nh
bGxIZWxwZXJzOjpCYXNlSW5kZXgoc2NyYXRjaDJHUFIsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVy
czo6VGltZXNGb3VyKSwgdmFsdWVSZWdzLmdwcigpKTsKKyAgICAgICAgICAgICAgICBqaXQubG9h
ZDMyKENDYWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2gyR1BSLCBzY3JhdGNoR1BSLCBDQ2Fs
bEhlbHBlcnM6OlRpbWVzRm91ciksIHZhbHVlUmVncy5wYXlsb2FkR1BSKCkpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBDUkFT
SCgpOwpAQCAtOTkyLDE2ICs5OTIsMTYgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhH
dWFyZCgKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBkb25lOwogICAgICAgICAgICAg
aWYgKHR5cGUgPT0gVHlwZVVpbnQzMikgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KHN0YXRlLnNjcmF0Y2hGUFIgIT0gSW52YWxpZEZQUlJlZyk7Ci0gICAgICAgICAgICAgICAgYXV0
byBjYW5CZUludCA9IGppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6OkdyZWF0ZXJUaGFuT3JFcXVh
bCwgdmFsdWVSZWdzLmdwcigpLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSk7CisgICAg
ICAgICAgICAgICAgYXV0byBjYW5CZUludCA9IGppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6Okdy
ZWF0ZXJUaGFuT3JFcXVhbCwgdmFsdWVSZWdzLnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoMCkpOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGppdC5j
b252ZXJ0SW50MzJUb0RvdWJsZSh2YWx1ZVJlZ3MuZ3ByKCksIHN0YXRlLnNjcmF0Y2hGUFIpOwor
ICAgICAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0RvdWJsZSh2YWx1ZVJlZ3MucGF5bG9h
ZEdQUigpLCBzdGF0ZS5zY3JhdGNoRlBSKTsKICAgICAgICAgICAgICAgICBqaXQuYWRkRG91Ymxl
KENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKCZDQ2FsbEhlbHBlcnM6OnR3b1RvVGhlMzIp
LCBzdGF0ZS5zY3JhdGNoRlBSKTsKICAgICAgICAgICAgICAgICBqaXQuYm94RG91YmxlKHN0YXRl
LnNjcmF0Y2hGUFIsIHZhbHVlUmVncyk7CiAgICAgICAgICAgICAgICAgZG9uZSA9IGppdC5qdW1w
KCk7CiAgICAgICAgICAgICAgICAgY2FuQmVJbnQubGluaygmaml0KTsKICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgaml0LmJveEludDMyKHZhbHVlUmVncy5ncHIoKSwgdmFsdWVSZWdzKTsK
KyAgICAgICAgICAgIGppdC5ib3hJbnQzMih2YWx1ZVJlZ3MucGF5bG9hZEdQUigpLCB2YWx1ZVJl
Z3MpOwogICAgICAgICAgICAgaWYgKGRvbmUuaXNTZXQoKSkKICAgICAgICAgICAgICAgICBkb25l
LmxpbmsoJmppdCk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0xMDM4LDcgKzEwMzgsNyBAQCB2b2lk
IEFjY2Vzc0Nhc2U6OmdlbmVyYXRlV2l0aEd1YXJkKAogCiAgICAgICAgIFNjcmF0Y2hSZWdpc3Rl
ckFsbG9jYXRvciBhbGxvY2F0b3Ioc3R1YkluZm8ucGF0Y2gudXNlZFJlZ2lzdGVycyk7CiAgICAg
ICAgIGFsbG9jYXRvci5sb2NrKGJhc2VHUFIpOwotICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1
ZVJlZ3MuZ3ByKCkpOworICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1ZVJlZ3MucGF5bG9hZEdQ
UigpKTsKICAgICAgICAgYWxsb2NhdG9yLmxvY2socHJvcGVydHlHUFIpOwogICAgICAgICBhbGxv
Y2F0b3IubG9jayhzY3JhdGNoR1BSKTsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0gYWxs
b2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwpAQCAtMTA2Nyw3ICsxMDY3LDcgQEAgdm9pZCBB
Y2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCgKIAogICAgICAgICBmYWlsQW5kSWdub3JlLmFw
cGVuZChqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpBYm92ZSwgc2NyYXRjaDJHUFIsIENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKG1heFNpbmdsZUNoYXJhY3RlclN0cmluZykpKTsKICAgICAg
ICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHZtLnNtYWxsU3RyaW5ncy5z
aW5nbGVDaGFyYWN0ZXJTdHJpbmdzKCkpLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgaml0LmxvYWRQ
dHIoQ0NhbGxIZWxwZXJzOjpCYXNlSW5kZXgoc2NyYXRjaEdQUiwgc2NyYXRjaDJHUFIsIENDYWxs
SGVscGVyczo6U2NhbGVQdHIsIDApLCB2YWx1ZVJlZ3MuZ3ByKCkpOworICAgICAgICBqaXQubG9h
ZFB0cihDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoR1BSLCBzY3JhdGNoMkdQUiwgQ0Nh
bGxIZWxwZXJzOjpTY2FsZVB0ciwgMCksIHZhbHVlUmVncy5wYXlsb2FkR1BSKCkpOwogICAgICAg
ICBhbGxvY2F0b3IucmVzdG9yZVJldXNlZFJlZ2lzdGVyc0J5UG9wcGluZyhqaXQsIHByZXNlcnZl
ZFN0YXRlKTsKICAgICAgICAgc3RhdGUuc3VjY2VlZCgpOwogCkBAIC0xMDk3LDcgKzEwOTcsNyBA
QCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlV2l0aEd1YXJkKAogCiAgICAgICAgIFNjcmF0Y2hS
ZWdpc3RlckFsbG9jYXRvciBhbGxvY2F0b3Ioc3R1YkluZm8ucGF0Y2gudXNlZFJlZ2lzdGVycyk7
CiAgICAgICAgIGFsbG9jYXRvci5sb2NrKGJhc2VHUFIpOwotICAgICAgICBhbGxvY2F0b3IubG9j
ayh2YWx1ZVJlZ3MuZ3ByKCkpOworICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1ZVJlZ3MucGF5
bG9hZEdQUigpKTsKICAgICAgICAgYWxsb2NhdG9yLmxvY2socHJvcGVydHlHUFIpOwogICAgICAg
ICBhbGxvY2F0b3IubG9jayhzY3JhdGNoR1BSKTsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2gyR1BS
ID0gYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwpAQCAtMTExOCw5ICsxMTE4LDkgQEAg
dm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAgICAgICAgICAgIGlzT3V0T2ZC
b3VuZHMgPSBqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5
R1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgQXJyYXlTdG9yYWdlOjp2ZWN0
b3JMZW5ndGhPZmZzZXQoKSkpOwogCiAgICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9QdHIo
cHJvcGVydHlHUFIsIHNjcmF0Y2gyR1BSKTsKLSAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoQ0Nh
bGxIZWxwZXJzOjpCYXNlSW5kZXgoc2NyYXRjaEdQUiwgc2NyYXRjaDJHUFIsIENDYWxsSGVscGVy
czo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSksIEpTVmFsdWVSZWdz
KHNjcmF0Y2hHUFIpKTsKKyAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoQ0NhbGxIZWxwZXJzOjpC
YXNlSW5kZXgoc2NyYXRjaEdQUiwgc2NyYXRjaDJHUFIsIENDYWxsSGVscGVyczo6VGltZXNFaWdo
dCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSksIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25s
eShzY3JhdGNoR1BSKSk7CiAgICAgICAgICAgICBpc0VtcHR5ID0gaml0LmJyYW5jaElmRW1wdHko
c2NyYXRjaEdQUik7Ci0gICAgICAgICAgICBqaXQubW92ZShzY3JhdGNoR1BSLCB2YWx1ZVJlZ3Mu
Z3ByKCkpOworICAgICAgICAgICAgaml0Lm1vdmUoc2NyYXRjaEdQUiwgdmFsdWVSZWdzLnBheWxv
YWRHUFIoKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBJbmRleGluZ1R5cGUgZXhw
ZWN0ZWRTaGFwZTsKICAgICAgICAgICAgIHN3aXRjaCAobV90eXBlKSB7CkBAIC0xMTUxLDkgKzEx
NTEsOSBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlV2l0aEd1YXJkKAogICAgICAgICAgICAg
ICAgIGlzRW1wdHkgPSBqaXQuYnJhbmNoSWZOYU4oc3RhdGUuc2NyYXRjaEZQUik7CiAgICAgICAg
ICAgICAgICAgaml0LmJveERvdWJsZShzdGF0ZS5zY3JhdGNoRlBSLCB2YWx1ZVJlZ3MpOwogICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKENDYWxsSGVs
cGVyczo6QmFzZUluZGV4KHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSLCBDQ2FsbEhlbHBlcnM6OlRp
bWVzRWlnaHQpLCBKU1ZhbHVlUmVncyhzY3JhdGNoR1BSKSk7CisgICAgICAgICAgICAgICAgaml0
LmxvYWRWYWx1ZShDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoR1BSLCBzY3JhdGNoMkdQ
UiwgQ0NhbGxIZWxwZXJzOjpUaW1lc0VpZ2h0KSwgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHNj
cmF0Y2hHUFIpKTsKICAgICAgICAgICAgICAgICBpc0VtcHR5ID0gaml0LmJyYW5jaElmRW1wdHko
c2NyYXRjaEdQUik7Ci0gICAgICAgICAgICAgICAgaml0Lm1vdmUoc2NyYXRjaEdQUiwgdmFsdWVS
ZWdzLmdwcigpKTsKKyAgICAgICAgICAgICAgICBqaXQubW92ZShzY3JhdGNoR1BSLCB2YWx1ZVJl
Z3MucGF5bG9hZEdQUigpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAppbmRl
eCBkMGQ0ZjA3ZDdiYS4uMTVlMmM4NmUwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcApAQCAtMTQ1LDQ2ICsxNDUsMzkg
QEAgdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVu
dEluc3RydWN0aW9uKQogICAgIGludCBkc3QgPSBieXRlY29kZS5tX2RzdC5vZmZzZXQoKTsKICAg
ICBpbnQgYmFzZSA9IGJ5dGVjb2RlLm1fYmFzZS5vZmZzZXQoKTsKICAgICBpbnQgcHJvcGVydHkg
PSBieXRlY29kZS5tX3Byb3BlcnR5Lm9mZnNldCgpOworICAgIEFycmF5UHJvZmlsZSogcHJvZmls
ZSA9ICZtZXRhZGF0YS5tX2FycmF5UHJvZmlsZTsKKwogICAgIGVtaXRMb2FkMihiYXNlLCByZWdU
MSwgcmVnVDAsIHByb3BlcnR5LCByZWdUMywgcmVnVDIpOwotICAgIGNhbGxPcGVyYXRpb24ob3Bl
cmF0aW9uR2V0QnlWYWwsIGRzdCwgbV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpLCBKU1ZhbHVl
UmVncyhyZWdUMSwgcmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpKTsKKworICAgIGVt
aXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7CisgICAgZW1pdEFycmF5UHJv
ZmlsaW5nU2l0ZVdpdGhDZWxsKHJlZ1QwLCByZWdUNCwgcHJvZmlsZSk7CisKKyAgICBKSVRHZXRC
eVZhbEdlbmVyYXRvciBnZW4oCisgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0
ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6
OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAorICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9h
ZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpLCBKU1ZhbHVlUmVncyhyZWdU
MSwgcmVnVDApKTsKKyAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CisgICAgYWRkU2xv
d0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKKyAgICBtX2dldEJ5VmFscy5hcHBlbmQoZ2VuKTsK
KworICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxv
Y2spKTsKKyAgICBlbWl0U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwogfQogCiB2b2lkIEpJVDo6
ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQogewogICAgIGF1dG8g
Ynl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wR2V0QnlWYWw+KCk7CiAgICAgaW50
IGRzdCA9IGJ5dGVjb2RlLm1fZHN0Lm9mZnNldCgpOwotICAgIGludCBiYXNlID0gYnl0ZWNvZGUu
bV9iYXNlLm9mZnNldCgpOwotICAgIGludCBwcm9wZXJ0eSA9IGJ5dGVjb2RlLm1fcHJvcGVydHku
b2Zmc2V0KCk7Ci0gICAgQnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2J5VmFsQ29tcGlsYXRpb25J
bmZvW21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5ieVZhbEluZm87CisgICAgYXV0byYgbWV0YWRh
dGEgPSBieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayk7CisgICAgQXJyYXlQcm9maWxlKiBw
cm9maWxlID0gJm1ldGFkYXRhLm1fYXJyYXlQcm9maWxlOwogCi0gICAgbGlua1Nsb3dDYXNlSWZO
b3RKU0NlbGwoaXRlciwgYmFzZSk7IC8vIGJhc2UgY2VsbCBjaGVjawotICAgIGxpbmtTbG93Q2Fz
ZShpdGVyKTsgLy8gcHJvcGVydHkgaW50MzIgY2hlY2sKLQotICAgIEp1bXAgbm9uQ2VsbCA9IGp1
bXAoKTsKLSAgICBsaW5rU2xvd0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKLSAgICBK
dW1wIG5vdFN0cmluZyA9IGJyYW5jaElmTm90U3RyaW5nKHJlZ1QwKTsKLSAgICBlbWl0TmFrZWRD
YWxsKENvZGVMb2NhdGlvbkxhYmVsPE5vUHRyVGFnPihtX3ZtLT5nZXRDVElTdHViKHN0cmluZ0dl
dEJ5VmFsR2VuZXJhdG9yKS5yZXRhZ2dlZENvZGU8Tm9QdHJUYWc+KCkpKTsKLSAgICBKdW1wIGZh
aWxlZCA9IGJyYW5jaFRlc3RQdHIoWmVybywgcmVnVDApOwotICAgIGVtaXRTdG9yZUNlbGwoZHN0
LCByZWdUMCk7Ci0gICAgZW1pdEp1bXBTbG93VG9Ib3QoanVtcCgpLCBjdXJyZW50SW5zdHJ1Y3Rp
b24tPnNpemUoKSk7Ci0gICAgZmFpbGVkLmxpbmsodGhpcyk7Ci0gICAgbm90U3RyaW5nLmxpbmso
dGhpcyk7Ci0gICAgbm9uQ2VsbC5saW5rKHRoaXMpOwotCi0gICAgbGlua1Nsb3dDYXNlKGl0ZXIp
OyAvLyB2ZWN0b3IgbGVuZ3RoIGNoZWNrCi0gICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBlbXB0
eSB2YWx1ZQotICAgIAotICAgIExhYmVsIHNsb3dQYXRoID0gbGFiZWwoKTsKLSAgICAKLSAgICBl
bWl0TG9hZChiYXNlLCByZWdUMSwgcmVnVDApOwotICAgIGVtaXRMb2FkKHByb3BlcnR5LCByZWdU
MywgcmVnVDIpOwotICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uR2V0QnlW
YWxPcHRpbWl6ZSwgZHN0LCBtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCksIEpTVmFsdWVSZWdz
KHJlZ1QxLCByZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMiksIGJ5VmFsSW5mbyk7Cisg
ICAgSklUR2V0QnlWYWxHZW5lcmF0b3ImIGdlbiA9IG1fZ2V0QnlWYWxzW21fZ2V0QnlWYWxJbmRl
eF07CisgICAgKyttX2dldEJ5VmFsSW5kZXg7CiAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZv
W21fYnlWYWxJbnN0cnVjdGlvbkluZGV4XS5zbG93UGF0aFRhcmdldCA9IHNsb3dQYXRoOwotICAg
IG1fYnlWYWxDb21waWxhdGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnJldHVybkFk
ZHJlc3MgPSBjYWxsOwotICAgIG1fYnlWYWxJbnN0cnVjdGlvbkluZGV4Kys7CisgICAgbGlua0Fs
bFNsb3dDYXNlcyhpdGVyKTsKIAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUu
bWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICBMYWJlbCBjb2xkUGF0aEJlZ2luID0gbGFiZWwo
KTsKKyAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uV2l0aFByb2ZpbGUoYnl0ZWNvZGUubWV0
YWRhdGEobV9jb2RlQmxvY2spLCBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplLCBkc3QsIFRydXN0
ZWRJbW1QdHIobV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpKSwgZ2VuLnN0dWJJbmZvKCksIHBy
b2ZpbGUsIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdU
MikpOworICAgIGdlbi5yZXBvcnRTbG93UGF0aENhbGwoY29sZFBhdGhCZWdpbiwgY2FsbCk7CiB9
CiAKIHZvaWQgSklUOjplbWl0X29wX3B1dF9ieV92YWxfZGlyZWN0KGNvbnN0IEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383995</attachid>
            <date>2019-11-20 15:34:11 -0800</date>
            <delta_ts>2019-11-20 15:35:17 -0800</delta_ts>
            <desc>WIP - Patch</desc>
            <filename>32-bit-build-fix.diff</filename>
            <type>text/plain</type>
            <size>13060</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcAppbmRleCA0
Mzc0NWU4YTM4Yy4uN2I4MDZlNjgyZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQWNjZXNzQ2FzZS5jcHAKQEAgLTg2OCw3ICs4NjgsNyBAQCB2b2lkIEFjY2Vzc0Nhc2U6
OmdlbmVyYXRlV2l0aEd1YXJkKAogCiAgICAgICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciBh
bGxvY2F0b3Ioc3R1YkluZm8ucGF0Y2gudXNlZFJlZ2lzdGVycyk7CiAgICAgICAgIGFsbG9jYXRv
ci5sb2NrKGJhc2VHUFIpOwotICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1ZVJlZ3MuZ3ByKCkp
OworICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1ZVJlZ3MucGF5bG9hZEdQUigpKTsKICAgICAg
ICAgYWxsb2NhdG9yLmxvY2socHJvcGVydHlHUFIpOwogICAgICAgICBhbGxvY2F0b3IubG9jayhz
Y3JhdGNoR1BSKTsKICAgICAgICAgCkBAIC04OTgsOSArODk4LDkgQEAgdm9pZCBBY2Nlc3NDYXNl
OjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAgICAgICAgaml0LnN1YjMyKHByb3BlcnR5R1BSLCBzY3Jh
dGNoMkdQUik7CiAgICAgICAgIGppdC5uZWczMihzY3JhdGNoMkdQUik7CiAgICAgICAgIGppdC5s
b2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhiYXNlR1BSLCBTY29wZWRBcmd1bWVudHM6Om9m
ZnNldE9mU3RvcmFnZSgpKSwgc2NyYXRjaDNHUFIpOwotICAgICAgICBqaXQubG9hZFZhbHVlKEND
YWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2gzR1BSLCBzY3JhdGNoMkdQUiwgQ0NhbGxIZWxw
ZXJzOjpUaW1lc0VpZ2h0KSwgSlNWYWx1ZVJlZ3Moc2NyYXRjaEdQUikpOworICAgICAgICBqaXQu
bG9hZFZhbHVlKENDYWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2gzR1BSLCBzY3JhdGNoMkdQ
UiwgQ0NhbGxIZWxwZXJzOjpUaW1lc0VpZ2h0KSwgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHNj
cmF0Y2hHUFIpKTsKICAgICAgICAgZmFpbEFuZElnbm9yZS5hcHBlbmQoaml0LmJyYW5jaElmRW1w
dHkoc2NyYXRjaEdQUikpOwotICAgICAgICBqaXQubW92ZShzY3JhdGNoR1BSLCB2YWx1ZVJlZ3Mu
Z3ByKCkpOworICAgICAgICBqaXQubW92ZShzY3JhdGNoR1BSLCB2YWx1ZVJlZ3MucGF5bG9hZEdQ
UigpKTsKIAogICAgICAgICBkb25lLmxpbmsoJmppdCk7CiAKQEAgLTk1Niw3ICs5NTYsNyBAQCB2
b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlV2l0aEd1YXJkKAogCiAgICAgICAgIFNjcmF0Y2hSZWdp
c3RlckFsbG9jYXRvciBhbGxvY2F0b3Ioc3R1YkluZm8ucGF0Y2gudXNlZFJlZ2lzdGVycyk7CiAg
ICAgICAgIGFsbG9jYXRvci5sb2NrKGJhc2VHUFIpOwotICAgICAgICBhbGxvY2F0b3IubG9jayh2
YWx1ZVJlZ3MuZ3ByKCkpOworICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1ZVJlZ3MucGF5bG9h
ZEdQUigpKTsKICAgICAgICAgYWxsb2NhdG9yLmxvY2socHJvcGVydHlHUFIpOwogICAgICAgICBh
bGxvY2F0b3IubG9jayhzY3JhdGNoR1BSKTsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0g
YWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwpAQCAtOTcyLDE4ICs5NzIsMTggQEAgdm9p
ZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAgICAgICAgICAgIHN3aXRjaCAoZWxl
bWVudFNpemUodHlwZSkpIHsKICAgICAgICAgICAgIGNhc2UgMToKICAgICAgICAgICAgICAgICBp
ZiAoSlNDOjppc1NpZ25lZCh0eXBlKSkKLSAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQ4U2ln
bmVkRXh0ZW5kVG8zMihDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoMkdQUiwgc2NyYXRj
aEdQUiwgQ0NhbGxIZWxwZXJzOjpUaW1lc09uZSksIHZhbHVlUmVncy5ncHIoKSk7CisgICAgICAg
ICAgICAgICAgICAgIGppdC5sb2FkOFNpZ25lZEV4dGVuZFRvMzIoQ0NhbGxIZWxwZXJzOjpCYXNl
SW5kZXgoc2NyYXRjaDJHUFIsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVyczo6VGltZXNPbmUpLCB2
YWx1ZVJlZ3MucGF5bG9hZEdQUigpKTsKICAgICAgICAgICAgICAgICBlbHNlCi0gICAgICAgICAg
ICAgICAgICAgIGppdC5sb2FkOChDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoMkdQUiwg
c2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUaW1lc09uZSksIHZhbHVlUmVncy5ncHIoKSk7Cisg
ICAgICAgICAgICAgICAgICAgIGppdC5sb2FkOChDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3Jh
dGNoMkdQUiwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUaW1lc09uZSksIHZhbHVlUmVncy5w
YXlsb2FkR1BSKCkpOwogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgY2FzZSAy
OgogICAgICAgICAgICAgICAgIGlmIChKU0M6OmlzU2lnbmVkKHR5cGUpKQotICAgICAgICAgICAg
ICAgICAgICBqaXQubG9hZDE2U2lnbmVkRXh0ZW5kVG8zMihDQ2FsbEhlbHBlcnM6OkJhc2VJbmRl
eChzY3JhdGNoMkdQUiwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUaW1lc1R3byksIHZhbHVl
UmVncy5ncHIoKSk7CisgICAgICAgICAgICAgICAgICAgIGppdC5sb2FkMTZTaWduZWRFeHRlbmRU
bzMyKENDYWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2gyR1BSLCBzY3JhdGNoR1BSLCBDQ2Fs
bEhlbHBlcnM6OlRpbWVzVHdvKSwgdmFsdWVSZWdzLnBheWxvYWRHUFIoKSk7CiAgICAgICAgICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgICAgICAgICBqaXQubG9hZDE2KENDYWxsSGVscGVyczo6
QmFzZUluZGV4KHNjcmF0Y2gyR1BSLCBzY3JhdGNoR1BSLCBDQ2FsbEhlbHBlcnM6OlRpbWVzVHdv
KSwgdmFsdWVSZWdzLmdwcigpKTsKKyAgICAgICAgICAgICAgICAgICAgaml0LmxvYWQxNihDQ2Fs
bEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoMkdQUiwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJz
OjpUaW1lc1R3byksIHZhbHVlUmVncy5wYXlsb2FkR1BSKCkpOwogICAgICAgICAgICAgICAgIGJy
ZWFrOwogICAgICAgICAgICAgY2FzZSA0OgotICAgICAgICAgICAgICAgIGppdC5sb2FkMzIoQ0Nh
bGxIZWxwZXJzOjpCYXNlSW5kZXgoc2NyYXRjaDJHUFIsIHNjcmF0Y2hHUFIsIENDYWxsSGVscGVy
czo6VGltZXNGb3VyKSwgdmFsdWVSZWdzLmdwcigpKTsKKyAgICAgICAgICAgICAgICBqaXQubG9h
ZDMyKENDYWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2gyR1BSLCBzY3JhdGNoR1BSLCBDQ2Fs
bEhlbHBlcnM6OlRpbWVzRm91ciksIHZhbHVlUmVncy5wYXlsb2FkR1BSKCkpOwogICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICBDUkFT
SCgpOwpAQCAtOTkyLDE2ICs5OTIsMTYgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhH
dWFyZCgKICAgICAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcCBkb25lOwogICAgICAgICAgICAg
aWYgKHR5cGUgPT0gVHlwZVVpbnQzMikgewogICAgICAgICAgICAgICAgIFJFTEVBU0VfQVNTRVJU
KHN0YXRlLnNjcmF0Y2hGUFIgIT0gSW52YWxpZEZQUlJlZyk7Ci0gICAgICAgICAgICAgICAgYXV0
byBjYW5CZUludCA9IGppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6OkdyZWF0ZXJUaGFuT3JFcXVh
bCwgdmFsdWVSZWdzLmdwcigpLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMigwKSk7CisgICAg
ICAgICAgICAgICAgYXV0byBjYW5CZUludCA9IGppdC5icmFuY2gzMihDQ2FsbEhlbHBlcnM6Okdy
ZWF0ZXJUaGFuT3JFcXVhbCwgdmFsdWVSZWdzLnBheWxvYWRHUFIoKSwgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoMCkpOwogICAgICAgICAgICAgICAgIAotICAgICAgICAgICAgICAgIGppdC5j
b252ZXJ0SW50MzJUb0RvdWJsZSh2YWx1ZVJlZ3MuZ3ByKCksIHN0YXRlLnNjcmF0Y2hGUFIpOwor
ICAgICAgICAgICAgICAgIGppdC5jb252ZXJ0SW50MzJUb0RvdWJsZSh2YWx1ZVJlZ3MucGF5bG9h
ZEdQUigpLCBzdGF0ZS5zY3JhdGNoRlBSKTsKICAgICAgICAgICAgICAgICBqaXQuYWRkRG91Ymxl
KENDYWxsSGVscGVyczo6QWJzb2x1dGVBZGRyZXNzKCZDQ2FsbEhlbHBlcnM6OnR3b1RvVGhlMzIp
LCBzdGF0ZS5zY3JhdGNoRlBSKTsKICAgICAgICAgICAgICAgICBqaXQuYm94RG91YmxlKHN0YXRl
LnNjcmF0Y2hGUFIsIHZhbHVlUmVncyk7CiAgICAgICAgICAgICAgICAgZG9uZSA9IGppdC5qdW1w
KCk7CiAgICAgICAgICAgICAgICAgY2FuQmVJbnQubGluaygmaml0KTsKICAgICAgICAgICAgIH0K
IAotICAgICAgICAgICAgaml0LmJveEludDMyKHZhbHVlUmVncy5ncHIoKSwgdmFsdWVSZWdzKTsK
KyAgICAgICAgICAgIGppdC5ib3hJbnQzMih2YWx1ZVJlZ3MucGF5bG9hZEdQUigpLCB2YWx1ZVJl
Z3MpOwogICAgICAgICAgICAgaWYgKGRvbmUuaXNTZXQoKSkKICAgICAgICAgICAgICAgICBkb25l
LmxpbmsoJmppdCk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0xMDM4LDcgKzEwMzgsNyBAQCB2b2lk
IEFjY2Vzc0Nhc2U6OmdlbmVyYXRlV2l0aEd1YXJkKAogCiAgICAgICAgIFNjcmF0Y2hSZWdpc3Rl
ckFsbG9jYXRvciBhbGxvY2F0b3Ioc3R1YkluZm8ucGF0Y2gudXNlZFJlZ2lzdGVycyk7CiAgICAg
ICAgIGFsbG9jYXRvci5sb2NrKGJhc2VHUFIpOwotICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1
ZVJlZ3MuZ3ByKCkpOworICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1ZVJlZ3MucGF5bG9hZEdQ
UigpKTsKICAgICAgICAgYWxsb2NhdG9yLmxvY2socHJvcGVydHlHUFIpOwogICAgICAgICBhbGxv
Y2F0b3IubG9jayhzY3JhdGNoR1BSKTsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0gYWxs
b2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwpAQCAtMTA2Nyw3ICsxMDY3LDcgQEAgdm9pZCBB
Y2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCgKIAogICAgICAgICBmYWlsQW5kSWdub3JlLmFw
cGVuZChqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpBYm92ZSwgc2NyYXRjaDJHUFIsIENDYWxs
SGVscGVyczo6VHJ1c3RlZEltbTMyKG1heFNpbmdsZUNoYXJhY3RlclN0cmluZykpKTsKICAgICAg
ICAgaml0Lm1vdmUoQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tUHRyKHZtLnNtYWxsU3RyaW5ncy5z
aW5nbGVDaGFyYWN0ZXJTdHJpbmdzKCkpLCBzY3JhdGNoR1BSKTsKLSAgICAgICAgaml0LmxvYWRQ
dHIoQ0NhbGxIZWxwZXJzOjpCYXNlSW5kZXgoc2NyYXRjaEdQUiwgc2NyYXRjaDJHUFIsIENDYWxs
SGVscGVyczo6U2NhbGVQdHIsIDApLCB2YWx1ZVJlZ3MuZ3ByKCkpOworICAgICAgICBqaXQubG9h
ZFB0cihDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoR1BSLCBzY3JhdGNoMkdQUiwgQ0Nh
bGxIZWxwZXJzOjpTY2FsZVB0ciwgMCksIHZhbHVlUmVncy5wYXlsb2FkR1BSKCkpOwogICAgICAg
ICBhbGxvY2F0b3IucmVzdG9yZVJldXNlZFJlZ2lzdGVyc0J5UG9wcGluZyhqaXQsIHByZXNlcnZl
ZFN0YXRlKTsKICAgICAgICAgc3RhdGUuc3VjY2VlZCgpOwogCkBAIC0xMDk3LDcgKzEwOTcsNyBA
QCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlV2l0aEd1YXJkKAogCiAgICAgICAgIFNjcmF0Y2hS
ZWdpc3RlckFsbG9jYXRvciBhbGxvY2F0b3Ioc3R1YkluZm8ucGF0Y2gudXNlZFJlZ2lzdGVycyk7
CiAgICAgICAgIGFsbG9jYXRvci5sb2NrKGJhc2VHUFIpOwotICAgICAgICBhbGxvY2F0b3IubG9j
ayh2YWx1ZVJlZ3MuZ3ByKCkpOworICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1ZVJlZ3MucGF5
bG9hZEdQUigpKTsKICAgICAgICAgYWxsb2NhdG9yLmxvY2socHJvcGVydHlHUFIpOwogICAgICAg
ICBhbGxvY2F0b3IubG9jayhzY3JhdGNoR1BSKTsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2gyR1BS
ID0gYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwpAQCAtMTExOCw5ICsxMTE4LDkgQEAg
dm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAgICAgICAgICAgIGlzT3V0T2ZC
b3VuZHMgPSBqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpBYm92ZU9yRXF1YWwsIHByb3BlcnR5
R1BSLCBDQ2FsbEhlbHBlcnM6OkFkZHJlc3Moc2NyYXRjaEdQUiwgQXJyYXlTdG9yYWdlOjp2ZWN0
b3JMZW5ndGhPZmZzZXQoKSkpOwogCiAgICAgICAgICAgICBqaXQuemVyb0V4dGVuZDMyVG9QdHIo
cHJvcGVydHlHUFIsIHNjcmF0Y2gyR1BSKTsKLSAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoQ0Nh
bGxIZWxwZXJzOjpCYXNlSW5kZXgoc2NyYXRjaEdQUiwgc2NyYXRjaDJHUFIsIENDYWxsSGVscGVy
czo6VGltZXNFaWdodCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSksIEpTVmFsdWVSZWdz
KHNjcmF0Y2hHUFIpKTsKKyAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoQ0NhbGxIZWxwZXJzOjpC
YXNlSW5kZXgoc2NyYXRjaEdQUiwgc2NyYXRjaDJHUFIsIENDYWxsSGVscGVyczo6VGltZXNFaWdo
dCwgQXJyYXlTdG9yYWdlOjp2ZWN0b3JPZmZzZXQoKSksIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25s
eShzY3JhdGNoR1BSKSk7CiAgICAgICAgICAgICBpc0VtcHR5ID0gaml0LmJyYW5jaElmRW1wdHko
c2NyYXRjaEdQUik7Ci0gICAgICAgICAgICBqaXQubW92ZShzY3JhdGNoR1BSLCB2YWx1ZVJlZ3Mu
Z3ByKCkpOworICAgICAgICAgICAgaml0Lm1vdmUoc2NyYXRjaEdQUiwgdmFsdWVSZWdzLnBheWxv
YWRHUFIoKSk7CiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBJbmRleGluZ1R5cGUgZXhw
ZWN0ZWRTaGFwZTsKICAgICAgICAgICAgIHN3aXRjaCAobV90eXBlKSB7CkBAIC0xMTUxLDkgKzEx
NTEsOSBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlV2l0aEd1YXJkKAogICAgICAgICAgICAg
ICAgIGlzRW1wdHkgPSBqaXQuYnJhbmNoSWZOYU4oc3RhdGUuc2NyYXRjaEZQUik7CiAgICAgICAg
ICAgICAgICAgaml0LmJveERvdWJsZShzdGF0ZS5zY3JhdGNoRlBSLCB2YWx1ZVJlZ3MpOwogICAg
ICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKENDYWxsSGVs
cGVyczo6QmFzZUluZGV4KHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSLCBDQ2FsbEhlbHBlcnM6OlRp
bWVzRWlnaHQpLCBKU1ZhbHVlUmVncyhzY3JhdGNoR1BSKSk7CisgICAgICAgICAgICAgICAgaml0
LmxvYWRWYWx1ZShDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoR1BSLCBzY3JhdGNoMkdQ
UiwgQ0NhbGxIZWxwZXJzOjpUaW1lc0VpZ2h0KSwgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHNj
cmF0Y2hHUFIpKTsKICAgICAgICAgICAgICAgICBpc0VtcHR5ID0gaml0LmJyYW5jaElmRW1wdHko
c2NyYXRjaEdQUik7Ci0gICAgICAgICAgICAgICAgaml0Lm1vdmUoc2NyYXRjaEdQUiwgdmFsdWVS
ZWdzLmdwcigpKTsKKyAgICAgICAgICAgICAgICBqaXQubW92ZShzY3JhdGNoR1BSLCB2YWx1ZVJl
Z3MucGF5bG9hZEdQUigpKTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklULmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQuY3BwCmluZGV4IGRmZWY0NzQx
MDI4Li5mNmExY2Y1NjFiOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9E
RkdTcGVjdWxhdGl2ZUpJVC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdT
cGVjdWxhdGl2ZUpJVC5jcHAKQEAgLTQ2MTcsMTIgKzQ2MTcsMTIgQEAgdm9pZCBTcGVjdWxhdGl2
ZUpJVDo6Y29tcGlsZUluY09yRGVjKE5vZGUqIG5vZGUpCiAgICAgSlNWYWx1ZU9wZXJhbmQgb3Ax
KHRoaXMsIG5vZGUtPmNoaWxkMSgpKTsKICAgICBKU1ZhbHVlUmVncyBvcDFSZWdzID0gb3AxLmpz
VmFsdWVSZWdzKCk7CiAgICAgZmx1c2hSZWdpc3RlcnMoKTsKLSAgICBHUFJGbHVzaGVkQ2FsbFJl
c3VsdCByZXN1bHQodGhpcyk7Ci0gICAgR1BSUmVnIHJlc3VsdEdQUiA9IHJlc3VsdC5ncHIoKTsK
KyAgICBKU1ZhbHVlUmVnc0ZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKKyAgICBKU1Zh
bHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKICAgICBhdXRvIG9wZXJhdGlvbiA9
IG5vZGUtPm9wKCkgPT0gSW5jID8gb3BlcmF0aW9uSW5jIDogb3BlcmF0aW9uRGVjOwotICAgIGNh
bGxPcGVyYXRpb24ob3BlcmF0aW9uLCByZXN1bHRHUFIsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2lu
dGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdpbi5zZW1hbnRp
YykpLCBvcDFSZWdzKTsKKyAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbiwgcmVzdWx0UmVncywg
VHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RG
b3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIG9wMVJlZ3MpOwogICAgIG1faml0LmV4Y2VwdGlv
bkNoZWNrKCk7Ci0gICAganNWYWx1ZVJlc3VsdChyZXN1bHQuZ3ByKCksIG5vZGUpOworICAgIGpz
VmFsdWVSZXN1bHQocmVzdWx0UmVncywgbm9kZSk7CiB9CiAKIHZvaWQgU3BlY3VsYXRpdmVKSVQ6
OmNvbXBpbGVWYWx1ZU5lZ2F0ZShOb2RlKiBub2RlKQpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRPcGNvZGVzMzJfNjQuY3BwCmluZGV4IGUyNWZlOTY2YzYwLi5hZTViNmFkNTRjYSAx
MDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRPcGNvZGVzMzJfNjQuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUT3Bjb2RlczMyXzY0LmNwcApAQCAt
ODQ0LDYgKzg0NCw3IEBAIHZvaWQgSklUOjplbWl0X29wX3RvX251bWVyaWMoY29uc3QgSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikKICAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudElu
c3RydWN0aW9uLT5hczxPcFRvTnVtZXJpYz4oKTsKICAgICBpbnQgZHN0ID0gYnl0ZWNvZGUubV9k
c3Qub2Zmc2V0KCk7CiAgICAgaW50IHNyYyA9IGJ5dGVjb2RlLm1fb3BlcmFuZC5vZmZzZXQoKTsK
KyAgICBKU1ZhbHVlUmVncyBhcmd1bWVudFZhbHVlUmVncyhyZWdUMSwgcmVnVDApOwogCiAgICAg
ZW1pdExvYWQoc3JjLCByZWdUMSwgcmVnVDApOwogCkBAIC04NTIsNyArODUzLDcgQEAgdm9pZCBK
SVQ6OmVtaXRfb3BfdG9fbnVtZXJpYyhjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0
aW9uKQogICAgIEp1bXAgaXNCaWdJbnQgPSBqdW1wKCk7CiAKICAgICBpc05vdENlbGwubGluayh0
aGlzKTsKLSAgICBhZGRTbG93Q2FzZShicmFuY2hJZk5vdE51bWJlcihyZWdUMSkpOworICAgIGFk
ZFNsb3dDYXNlKGJyYW5jaElmTm90TnVtYmVyKGFyZ3VtZW50VmFsdWVSZWdzLCByZWdUMikpOwog
ICAgIGlzQmlnSW50LmxpbmsodGhpcyk7CiAKICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5
dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAppbmRleCBkMGQ0ZjA3ZDdiYS4u
MTVlMmM4NmUwZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJv
cGVydHlBY2Nlc3MzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQ
cm9wZXJ0eUFjY2VzczMyXzY0LmNwcApAQCAtMTQ1LDQ2ICsxNDUsMzkgQEAgdm9pZCBKSVQ6OmVt
aXRfb3BfZ2V0X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQog
ICAgIGludCBkc3QgPSBieXRlY29kZS5tX2RzdC5vZmZzZXQoKTsKICAgICBpbnQgYmFzZSA9IGJ5
dGVjb2RlLm1fYmFzZS5vZmZzZXQoKTsKICAgICBpbnQgcHJvcGVydHkgPSBieXRlY29kZS5tX3By
b3BlcnR5Lm9mZnNldCgpOworICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9ICZtZXRhZGF0YS5t
X2FycmF5UHJvZmlsZTsKKwogICAgIGVtaXRMb2FkMihiYXNlLCByZWdUMSwgcmVnVDAsIHByb3Bl
cnR5LCByZWdUMywgcmVnVDIpOwotICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uR2V0QnlWYWws
IGRzdCwgbV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVn
VDApLCBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpKTsKKworICAgIGVtaXRKdW1wU2xvd0Nhc2VJ
Zk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7CisgICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhD
ZWxsKHJlZ1QwLCByZWdUNCwgcHJvZmlsZSk7CisKKyAgICBKSVRHZXRCeVZhbEdlbmVyYXRvciBn
ZW4oCisgICAgICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENh
bGxTaXRlSW5kZXgobV9ieXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJs
ZVJlZ2lzdGVycygpLAorICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBK
U1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApKTsKKyAg
ICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CisgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQ
YXRoSnVtcCgpKTsKKyAgICBtX2dldEJ5VmFscy5hcHBlbmQoZ2VuKTsKKworICAgIGVtaXRWYWx1
ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKKyAgICBlbWl0
U3RvcmUoZHN0LCByZWdUMSwgcmVnVDApOwogfQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0
X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xv
d0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVyKQogewogICAgIGF1dG8gYnl0ZWNvZGUgPSBjdXJy
ZW50SW5zdHJ1Y3Rpb24tPmFzPE9wR2V0QnlWYWw+KCk7CiAgICAgaW50IGRzdCA9IGJ5dGVjb2Rl
Lm1fZHN0Lm9mZnNldCgpOwotICAgIGludCBiYXNlID0gYnl0ZWNvZGUubV9iYXNlLm9mZnNldCgp
OwotICAgIGludCBwcm9wZXJ0eSA9IGJ5dGVjb2RlLm1fcHJvcGVydHkub2Zmc2V0KCk7Ci0gICAg
QnlWYWxJbmZvKiBieVZhbEluZm8gPSBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0
cnVjdGlvbkluZGV4XS5ieVZhbEluZm87CisgICAgYXV0byYgbWV0YWRhdGEgPSBieXRlY29kZS5t
ZXRhZGF0YShtX2NvZGVCbG9jayk7CisgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gJm1ldGFk
YXRhLm1fYXJyYXlQcm9maWxlOwogCi0gICAgbGlua1Nsb3dDYXNlSWZOb3RKU0NlbGwoaXRlciwg
YmFzZSk7IC8vIGJhc2UgY2VsbCBjaGVjawotICAgIGxpbmtTbG93Q2FzZShpdGVyKTsgLy8gcHJv
cGVydHkgaW50MzIgY2hlY2sKLQotICAgIEp1bXAgbm9uQ2VsbCA9IGp1bXAoKTsKLSAgICBsaW5r
U2xvd0Nhc2UoaXRlcik7IC8vIGJhc2UgYXJyYXkgY2hlY2sKLSAgICBKdW1wIG5vdFN0cmluZyA9
IGJyYW5jaElmTm90U3RyaW5nKHJlZ1QwKTsKLSAgICBlbWl0TmFrZWRDYWxsKENvZGVMb2NhdGlv
bkxhYmVsPE5vUHRyVGFnPihtX3ZtLT5nZXRDVElTdHViKHN0cmluZ0dldEJ5VmFsR2VuZXJhdG9y
KS5yZXRhZ2dlZENvZGU8Tm9QdHJUYWc+KCkpKTsKLSAgICBKdW1wIGZhaWxlZCA9IGJyYW5jaFRl
c3RQdHIoWmVybywgcmVnVDApOwotICAgIGVtaXRTdG9yZUNlbGwoZHN0LCByZWdUMCk7Ci0gICAg
ZW1pdEp1bXBTbG93VG9Ib3QoanVtcCgpLCBjdXJyZW50SW5zdHJ1Y3Rpb24tPnNpemUoKSk7Ci0g
ICAgZmFpbGVkLmxpbmsodGhpcyk7Ci0gICAgbm90U3RyaW5nLmxpbmsodGhpcyk7Ci0gICAgbm9u
Q2VsbC5saW5rKHRoaXMpOwotCi0gICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyB2ZWN0b3IgbGVu
Z3RoIGNoZWNrCi0gICAgbGlua1Nsb3dDYXNlKGl0ZXIpOyAvLyBlbXB0eSB2YWx1ZQotICAgIAot
ICAgIExhYmVsIHNsb3dQYXRoID0gbGFiZWwoKTsKLSAgICAKLSAgICBlbWl0TG9hZChiYXNlLCBy
ZWdUMSwgcmVnVDApOwotICAgIGVtaXRMb2FkKHByb3BlcnR5LCByZWdUMywgcmVnVDIpOwotICAg
IENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZSwgZHN0
LCBtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCks
IEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMiksIGJ5VmFsSW5mbyk7CisgICAgSklUR2V0QnlWYWxH
ZW5lcmF0b3ImIGdlbiA9IG1fZ2V0QnlWYWxzW21fZ2V0QnlWYWxJbmRleF07CisgICAgKyttX2dl
dEJ5VmFsSW5kZXg7CiAKLSAgICBtX2J5VmFsQ29tcGlsYXRpb25JbmZvW21fYnlWYWxJbnN0cnVj
dGlvbkluZGV4XS5zbG93UGF0aFRhcmdldCA9IHNsb3dQYXRoOwotICAgIG1fYnlWYWxDb21waWxh
dGlvbkluZm9bbV9ieVZhbEluc3RydWN0aW9uSW5kZXhdLnJldHVybkFkZHJlc3MgPSBjYWxsOwot
ICAgIG1fYnlWYWxJbnN0cnVjdGlvbkluZGV4Kys7CisgICAgbGlua0FsbFNsb3dDYXNlcyhpdGVy
KTsKIAotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2Rl
QmxvY2spKTsKKyAgICBMYWJlbCBjb2xkUGF0aEJlZ2luID0gbGFiZWwoKTsKKyAgICBDYWxsIGNh
bGwgPSBjYWxsT3BlcmF0aW9uV2l0aFByb2ZpbGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxv
Y2spLCBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplLCBkc3QsIFRydXN0ZWRJbW1QdHIobV9jb2Rl
QmxvY2stPmdsb2JhbE9iamVjdCgpKSwgZ2VuLnN0dWJJbmZvKCksIHByb2ZpbGUsIEpTVmFsdWVS
ZWdzKHJlZ1QxLCByZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMikpOworICAgIGdlbi5y
ZXBvcnRTbG93UGF0aENhbGwoY29sZFBhdGhCZWdpbiwgY2FsbCk7CiB9CiAKIHZvaWQgSklUOjpl
bWl0X29wX3B1dF9ieV92YWxfZGlyZWN0KGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1
Y3Rpb24pCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>383996</attachid>
            <date>2019-11-20 15:35:17 -0800</date>
            <delta_ts>2019-11-21 11:49:30 -0800</delta_ts>
            <desc>WIP - Patch</desc>
            <filename>get_by_val_32_ic.diff</filename>
            <type>text/plain</type>
            <size>16524</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNw
cCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcAppbmRleCA3
YjgwNmU2ODJmYi4uZGQ2ZGNkZDFmNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvQWNjZXNzQ2FzZS5jcHAKQEAgLTg5OCw5ICs4OTgsMTYgQEAgdm9pZCBBY2Nlc3NDYXNl
OjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAgICAgICAgaml0LnN1YjMyKHByb3BlcnR5R1BSLCBzY3Jh
dGNoMkdQUik7CiAgICAgICAgIGppdC5uZWczMihzY3JhdGNoMkdQUik7CiAgICAgICAgIGppdC5s
b2FkUHRyKENDYWxsSGVscGVyczo6QWRkcmVzcyhiYXNlR1BSLCBTY29wZWRBcmd1bWVudHM6Om9m
ZnNldE9mU3RvcmFnZSgpKSwgc2NyYXRjaDNHUFIpOwotICAgICAgICBqaXQubG9hZFZhbHVlKEND
YWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2gzR1BSLCBzY3JhdGNoMkdQUiwgQ0NhbGxIZWxw
ZXJzOjpUaW1lc0VpZ2h0KSwgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHNjcmF0Y2hHUFIpKTsK
KyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICBqaXQubG9hZFZhbHVlKENDYWxsSGVscGVyczo6
QmFzZUluZGV4KHNjcmF0Y2gzR1BSLCBzY3JhdGNoMkdQUiwgQ0NhbGxIZWxwZXJzOjpUaW1lc0Vp
Z2h0KSwgSlNWYWx1ZVJlZ3Moc2NyYXRjaEdQUikpOwogICAgICAgICBmYWlsQW5kSWdub3JlLmFw
cGVuZChqaXQuYnJhbmNoSWZFbXB0eShzY3JhdGNoR1BSKSk7CiAgICAgICAgIGppdC5tb3ZlKHNj
cmF0Y2hHUFIsIHZhbHVlUmVncy5wYXlsb2FkR1BSKCkpOworI2Vsc2UKKyAgICAgICAgaml0Lmxv
YWRWYWx1ZShDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoM0dQUiwgc2NyYXRjaDJHUFIs
IENDYWxsSGVscGVyczo6VGltZXNFaWdodCksIEpTVmFsdWVSZWdzKHNjcmF0Y2gyR1BSLCBzY3Jh
dGNoR1BSKSk7CisgICAgICAgIGZhaWxBbmRJZ25vcmUuYXBwZW5kKGppdC5icmFuY2hJZkVtcHR5
KHNjcmF0Y2gyR1BSKSk7CisgICAgICAgIGppdC5tb3ZlKHNjcmF0Y2hHUFIsIHZhbHVlUmVncy5w
YXlsb2FkR1BSKCkpOworICAgICAgICBqaXQubW92ZShzY3JhdGNoMkdQUiwgdmFsdWVSZWdzLnRh
Z0dQUigpKTsKKyNlbmRpZgogCiAgICAgICAgIGRvbmUubGluaygmaml0KTsKIApAQCAtMTA2OCw3
ICsxMDc1LDkgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAgICAgICAg
ZmFpbEFuZElnbm9yZS5hcHBlbmQoaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6QWJvdmUsIHNj
cmF0Y2gyR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihtYXhTaW5nbGVDaGFyYWN0ZXJT
dHJpbmcpKSk7CiAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih2
bS5zbWFsbFN0cmluZ3Muc2luZ2xlQ2hhcmFjdGVyU3RyaW5ncygpKSwgc2NyYXRjaEdQUik7CiAg
ICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2hHUFIsIHNj
cmF0Y2gyR1BSLCBDQ2FsbEhlbHBlcnM6OlNjYWxlUHRyLCAwKSwgdmFsdWVSZWdzLnBheWxvYWRH
UFIoKSk7CisgICAgICAgIGppdC5ib3hDZWxsKHZhbHVlUmVncy5wYXlsb2FkR1BSKCksIHZhbHVl
UmVncyk7CiAgICAgICAgIGFsbG9jYXRvci5yZXN0b3JlUmV1c2VkUmVnaXN0ZXJzQnlQb3BwaW5n
KGppdCwgcHJlc2VydmVkU3RhdGUpOworICAgICAgICBhdXRvIGRvbmUgPSBqaXQuanVtcCgpOwog
ICAgICAgICBzdGF0ZS5zdWNjZWVkKCk7CiAKICAgICAgICAgaWYgKGFsbG9jYXRvci5kaWRSZXVz
ZVJlZ2lzdGVycygpKSB7CkBAIC0xMDc4LDYgKzEwODcsNyBAQCB2b2lkIEFjY2Vzc0Nhc2U6Omdl
bmVyYXRlV2l0aEd1YXJkKAogICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHN0YXRlLmZhaWxB
bmRJZ25vcmUuYXBwZW5kKGZhaWxBbmRJZ25vcmUpOwogCisgICAgICAgIGRvbmUubGluaygmaml0
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMTA5NywxMCArMTEwNywxMyBAQCB2b2lk
IEFjY2Vzc0Nhc2U6OmdlbmVyYXRlV2l0aEd1YXJkKAogCiAgICAgICAgIFNjcmF0Y2hSZWdpc3Rl
ckFsbG9jYXRvciBhbGxvY2F0b3Ioc3R1YkluZm8ucGF0Y2gudXNlZFJlZ2lzdGVycyk7CiAgICAg
ICAgIGFsbG9jYXRvci5sb2NrKGJhc2VHUFIpOwotICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1
ZVJlZ3MucGF5bG9hZEdQUigpKTsKKyAgICAgICAgYWxsb2NhdG9yLmxvY2sodmFsdWVSZWdzKTsK
ICAgICAgICAgYWxsb2NhdG9yLmxvY2socHJvcGVydHlHUFIpOwogICAgICAgICBhbGxvY2F0b3Iu
bG9jayhzY3JhdGNoR1BSKTsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0gYWxsb2NhdG9y
LmFsbG9jYXRlU2NyYXRjaEdQUigpOworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgIEdQ
UlJlZyBzY3JhdGNoM0dQUiA9IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKKyNlbmRp
ZgogICAgICAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3I6OlByZXNlcnZlZFN0YXRlIHByZXNl
cnZlZFN0YXRlOwogCiAgICAgICAgIENDYWxsSGVscGVyczo6SnVtcExpc3QgZmFpbEFuZElnbm9y
ZTsKQEAgLTExMTgsOSArMTEzMSwxNiBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlV2l0aEd1
YXJkKAogICAgICAgICAgICAgaXNPdXRPZkJvdW5kcyA9IGppdC5icmFuY2gzMihDQ2FsbEhlbHBl
cnM6OkFib3ZlT3JFcXVhbCwgcHJvcGVydHlHUFIsIENDYWxsSGVscGVyczo6QWRkcmVzcyhzY3Jh
dGNoR1BSLCBBcnJheVN0b3JhZ2U6OnZlY3Rvckxlbmd0aE9mZnNldCgpKSk7CiAKICAgICAgICAg
ICAgIGppdC56ZXJvRXh0ZW5kMzJUb1B0cihwcm9wZXJ0eUdQUiwgc2NyYXRjaDJHUFIpOwotICAg
ICAgICAgICAgaml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoR1BS
LCBzY3JhdGNoMkdQUiwgQ0NhbGxIZWxwZXJzOjpUaW1lc0VpZ2h0LCBBcnJheVN0b3JhZ2U6OnZl
Y3Rvck9mZnNldCgpKSwgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHNjcmF0Y2hHUFIpKTsKKyNp
ZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBlcnM6
OkJhc2VJbmRleChzY3JhdGNoR1BSLCBzY3JhdGNoMkdQUiwgQ0NhbGxIZWxwZXJzOjpUaW1lc0Vp
Z2h0LCBBcnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpKSwgSlNWYWx1ZVJlZ3Moc2NyYXRjaEdQ
UikpOwogICAgICAgICAgICAgaXNFbXB0eSA9IGppdC5icmFuY2hJZkVtcHR5KHNjcmF0Y2hHUFIp
OwogICAgICAgICAgICAgaml0Lm1vdmUoc2NyYXRjaEdQUiwgdmFsdWVSZWdzLnBheWxvYWRHUFIo
KSk7CisjZWxzZQorICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBlcnM6OkJhc2VJ
bmRleChzY3JhdGNoR1BSLCBzY3JhdGNoMkdQUiwgQ0NhbGxIZWxwZXJzOjpUaW1lc0VpZ2h0LCBB
cnJheVN0b3JhZ2U6OnZlY3Rvck9mZnNldCgpKSwgSlNWYWx1ZVJlZ3Moc2NyYXRjaDNHUFIsIHNj
cmF0Y2hHUFIpKTsKKyAgICAgICAgICAgIGlzRW1wdHkgPSBqaXQuYnJhbmNoSWZFbXB0eShzY3Jh
dGNoM0dQUik7CisgICAgICAgICAgICBqaXQubW92ZShzY3JhdGNoR1BSLCB2YWx1ZVJlZ3MucGF5
bG9hZEdQUigpKTsKKyAgICAgICAgICAgIGppdC5tb3ZlKHNjcmF0Y2gzR1BSLCB2YWx1ZVJlZ3Mu
dGFnR1BSKCkpOworI2VuZGlmCiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICBJbmRleGlu
Z1R5cGUgZXhwZWN0ZWRTaGFwZTsKICAgICAgICAgICAgIHN3aXRjaCAobV90eXBlKSB7CkBAIC0x
MTUxLDkgKzExNzEsMTYgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAg
ICAgICAgICAgICAgICBpc0VtcHR5ID0gaml0LmJyYW5jaElmTmFOKHN0YXRlLnNjcmF0Y2hGUFIp
OwogICAgICAgICAgICAgICAgIGppdC5ib3hEb3VibGUoc3RhdGUuc2NyYXRjaEZQUiwgdmFsdWVS
ZWdzKTsKICAgICAgICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1
ZShDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoR1BSLCBzY3JhdGNoMkdQUiwgQ0NhbGxI
ZWxwZXJzOjpUaW1lc0VpZ2h0KSwgSlNWYWx1ZVJlZ3M6OnBheWxvYWRPbmx5KHNjcmF0Y2hHUFIp
KTsKKyNpZiBVU0UoSlNWQUxVRTY0KQorICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoQ0Nh
bGxIZWxwZXJzOjpCYXNlSW5kZXgoc2NyYXRjaEdQUiwgc2NyYXRjaDJHUFIsIENDYWxsSGVscGVy
czo6VGltZXNFaWdodCksIEpTVmFsdWVSZWdzKHNjcmF0Y2hHUFIpKTsKICAgICAgICAgICAgICAg
ICBpc0VtcHR5ID0gaml0LmJyYW5jaElmRW1wdHkoc2NyYXRjaEdQUik7CiAgICAgICAgICAgICAg
ICAgaml0Lm1vdmUoc2NyYXRjaEdQUiwgdmFsdWVSZWdzLnBheWxvYWRHUFIoKSk7CisjZWxzZQor
ICAgICAgICAgICAgICAgIGppdC5sb2FkVmFsdWUoQ0NhbGxIZWxwZXJzOjpCYXNlSW5kZXgoc2Ny
YXRjaEdQUiwgc2NyYXRjaDJHUFIsIENDYWxsSGVscGVyczo6VGltZXNFaWdodCksIEpTVmFsdWVS
ZWdzKHNjcmF0Y2gzR1BSLCBzY3JhdGNoR1BSKSk7CisgICAgICAgICAgICAgICAgaXNFbXB0eSA9
IGppdC5icmFuY2hJZkVtcHR5KHNjcmF0Y2gzR1BSKTsKKyAgICAgICAgICAgICAgICBqaXQubW92
ZShzY3JhdGNoR1BSLCB2YWx1ZVJlZ3MucGF5bG9hZEdQUigpKTsKKyAgICAgICAgICAgICAgICBq
aXQubW92ZShzY3JhdGNoM0dQUiwgdmFsdWVSZWdzLnRhZ0dQUigpKTsKKyNlbmRpZgogICAgICAg
ICAgICAgfQogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCmluZGV4IDJmYjY3MWU5M2FlLi5jMmJiMjA5Y2Rl
MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGlj
QWNjZXNzLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBo
aWNBY2Nlc3MuY3BwCkBAIC00NTIsNiArNDUyLDggQEAgQWNjZXNzR2VuZXJhdGlvblJlc3VsdCBQ
b2x5bW9ycGhpY0FjY2Vzczo6cmVnZW5lcmF0ZSgKICAgICBhbGxvY2F0b3IubG9jayhzdGF0ZS52
YWx1ZVJlZ3MpOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgYWxsb2NhdG9yLmxvY2soc3R1
YkluZm8ucGF0Y2guYmFzZVRhZ0dQUik7CisgICAgaWYgKHN0dWJJbmZvLnBhdGNoLnYudGhpc1Rh
Z0dQUiAhPSBJbnZhbGlkR1BSUmVnKQorICAgICAgICBhbGxvY2F0b3IubG9jayhzdHViSW5mby5w
YXRjaC52LnRoaXNUYWdHUFIpOwogI2VuZGlmCiAKICAgICBzdGF0ZS5zY3JhdGNoR1BSID0gYWxs
b2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwpAQCAtNTIxLDggKzUyMywxMyBAQCBBY2Nlc3NH
ZW5lcmF0aW9uUmVzdWx0IFBvbHltb3JwaGljQWNjZXNzOjpyZWdlbmVyYXRlKAogICAgICAgICAg
ICAgaWYgKG5lZWRzSW50MzJQcm9wZXJ0eUNoZWNrKSB7CiAgICAgICAgICAgICAgICAgQ0NhbGxI
ZWxwZXJzOjpKdW1wIG5vdEludDMyOwogCi0gICAgICAgICAgICAgICAgaWYgKCFzdHViSW5mby5w
cm9wZXJ0eUlzSW50MzIpCisgICAgICAgICAgICAgICAgaWYgKCFzdHViSW5mby5wcm9wZXJ0eUlz
SW50MzIpIHsKKyNpZiBVU0UoSlNWQUxVRTY0KSAKICAgICAgICAgICAgICAgICAgICAgbm90SW50
MzIgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihzdGF0ZS51LnByb3BlcnR5R1BSKTsKKyNlbHNlCisg
ICAgICAgICAgICAgICAgICAgIG5vdEludDMyID0gaml0LmJyYW5jaElmTm90SW50MzIoc3RhdGUu
c3R1YkluZm8tPnBhdGNoLnYucHJvcGVydHlUYWdHUFIpOworI2VuZGlmCisgICAgICAgICAgICAg
ICAgfQogICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IGNhc2VzLnNpemUoKTsgaS0t
OykgewogICAgICAgICAgICAgICAgICAgICBmYWxsVGhyb3VnaC5saW5rKCZqaXQpOwogICAgICAg
ICAgICAgICAgICAgICBmYWxsVGhyb3VnaC5jbGVhcigpOwpAQCAtNTQyLDEyICs1NDksMTkgQEAg
QWNjZXNzR2VuZXJhdGlvblJlc3VsdCBQb2x5bW9ycGhpY0FjY2Vzczo6cmVnZW5lcmF0ZSgKICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgaWYgKG5lZWRzU3RyaW5nUHJvcGVydHlDaGVjaykg
ewotICAgICAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eUdQUiA9IHN0YXRlLnUucHJvcGVydHlH
UFI7CiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBub3RTdHJpbmc7Cisg
ICAgICAgICAgICAgICAgR1BSUmVnIHByb3BlcnR5R1BSID0gc3RhdGUudS5wcm9wZXJ0eUdQUjsK
ICAgICAgICAgICAgICAgICBpZiAoIXN0dWJJbmZvLnByb3BlcnR5SXNTdHJpbmcpIHsKKyNpZiBV
U0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgICAgICAgICBHUFJSZWcgcHJvcGVydHlUYWdH
UFIgPSBzdGF0ZS5zdHViSW5mby0+cGF0Y2gudi5wcm9wZXJ0eVRhZ0dQUjsKKyAgICAgICAgICAg
ICAgICAgICAgbm90U3RyaW5nLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RDZWxsKHByb3BlcnR5VGFn
R1BSKSk7CisjZWxzZQogICAgICAgICAgICAgICAgICAgICBub3RTdHJpbmcuYXBwZW5kKGppdC5i
cmFuY2hJZk5vdENlbGwocHJvcGVydHlHUFIpKTsKKyNlbmRpZgogICAgICAgICAgICAgICAgICAg
ICBub3RTdHJpbmcuYXBwZW5kKGppdC5icmFuY2hJZk5vdFN0cmluZyhwcm9wZXJ0eUdQUikpOwog
ICAgICAgICAgICAgICAgIH0KKworCiAgICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoTWFjcm9B
c3NlbWJsZXI6OkFkZHJlc3MocHJvcGVydHlHUFIsIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkp
LCBzdGF0ZS5zY3JhdGNoR1BSKTsKIAogICAgICAgICAgICAgICAgIHN0YXRlLmZhaWxBbmRSZXBh
dGNoLmFwcGVuZChqaXQuYnJhbmNoSWZSb3BlU3RyaW5nSW1wbChzdGF0ZS5zY3JhdGNoR1BSKSk7
CkBAIC01NzEsNyArNTg1LDEyIEBAIEFjY2Vzc0dlbmVyYXRpb25SZXN1bHQgUG9seW1vcnBoaWNB
Y2Nlc3M6OnJlZ2VuZXJhdGUoCiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlz
dCBub3RTeW1ib2w7CiAgICAgICAgICAgICAgICAgaWYgKCFzdHViSW5mby5wcm9wZXJ0eUlzU3lt
Ym9sKSB7CiAgICAgICAgICAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eUdQUiA9IHN0YXRlLnUu
cHJvcGVydHlHUFI7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICAgICAg
R1BSUmVnIHByb3BlcnR5VGFnR1BSID0gc3RhdGUuc3R1YkluZm8tPnBhdGNoLnYucHJvcGVydHlU
YWdHUFI7CisgICAgICAgICAgICAgICAgICAgIG5vdFN5bWJvbC5hcHBlbmQoaml0LmJyYW5jaElm
Tm90Q2VsbChwcm9wZXJ0eVRhZ0dQUikpOworI2Vsc2UKICAgICAgICAgICAgICAgICAgICAgbm90
U3ltYm9sLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RDZWxsKHByb3BlcnR5R1BSKSk7CisjZW5kaWYK
ICAgICAgICAgICAgICAgICAgICAgbm90U3ltYm9sLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RTeW1i
b2wocHJvcGVydHlHUFIpKTsKICAgICAgICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oIGIvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKaW5kZXggMzRiMzljNmJl
MjMuLjE4NzYyNjVhODQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvU3RydWN0dXJlU3R1YkluZm8uaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNv
ZGUvU3RydWN0dXJlU3R1YkluZm8uaApAQCAtMjE5LDcgKzIxOSwxMCBAQCBwdWJsaWM6CiAjaWYg
VVNFKEpTVkFMVUUzMl82NCkKICAgICAgICAgR1BSUmVnIHZhbHVlVGFnR1BSOwogICAgICAgICBH
UFJSZWcgYmFzZVRhZ0dQUjsKLSAgICAgICAgR1BSUmVnIHRoaXNUYWdHUFI7CisgICAgICAgIHVu
aW9uIHsKKyAgICAgICAgICAgIEdQUlJlZyB0aGlzVGFnR1BSOworICAgICAgICAgICAgR1BSUmVn
IHByb3BlcnR5VGFnR1BSOworICAgICAgICB9IHY7CiAjZW5kaWYKICAgICB9IHBhdGNoOwogCkBA
IC0yNDcsNiArMjUwLDE1IEBAIHB1YmxpYzoKICAgICAgICAgICAgIHBhdGNoLnZhbHVlR1BSKTsK
ICAgICB9CiAKKyAgICBKU1ZhbHVlUmVncyBwcm9wZXJ0eVJlZ3MoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIEpTVmFsdWVSZWdzKAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAg
ICAgICBwYXRjaC52LnByb3BlcnR5VGFnR1BSLAorI2VuZGlmCisgICAgICAgICAgICBwYXRjaC51
LnByb3BlcnR5R1BSKTsKKyAgICB9CisKICAgICBib29sIHRoaXNWYWx1ZUlzSW5UaGlzR1BSKCkg
Y29uc3QgeyByZXR1cm4gYWNjZXNzVHlwZSA9PSBBY2Nlc3NUeXBlOjpHZXRCeUlkV2l0aFRoaXM7
IH0KIAogI2lmICFBU1NFUlRfRElTQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwCmluZGV4IDU3NjI1NDYyY2UxLi41Mzg2
NmY5YmYzNyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxh
dGl2ZUpJVDMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1
bGF0aXZlSklUMzJfNjQuY3BwCkBAIC0yMjYxLDI5ICsyMjYxLDc2IEBAIHZvaWQgU3BlY3VsYXRp
dmVKSVQ6OmNvbXBpbGUoTm9kZSogbm9kZSkKICAgICAgICAgY2FzZSBBcnJheTo6R2VuZXJpYzog
ewogICAgICAgICAgICAgLy8gRklYTUU6IEltcGxlbWVudCBJQyBoZXJlOgogICAgICAgICAgICAg
Ly8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDA4MgotICAgICAg
ICAgICAgaWYgKG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCkudXNlS2luZCgpID09IE9iamVj
dFVzZSkgewotICAgICAgICAgICAgICAgIGlmIChtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEp
LnVzZUtpbmQoKSA9PSBTdHJpbmdVc2UpIHsKLSAgICAgICAgICAgICAgICAgICAgY29tcGlsZUdl
dEJ5VmFsRm9yT2JqZWN0V2l0aFN0cmluZyhub2RlKTsKLSAgICAgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBpZiAobV9ncmFwaC5tX3Nsb3dHZXRCeVZhbC5jb250YWlucyhub2Rl
KSkgeworICAgICAgICAgICAgICAgIGlmIChtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApLnVz
ZUtpbmQoKSA9PSBPYmplY3RVc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fZ3JhcGgu
dmFyQXJnQ2hpbGQobm9kZSwgMSkudXNlS2luZCgpID09IFN0cmluZ1VzZSkgeworICAgICAgICAg
ICAgICAgICAgICAgICAgY29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN0cmluZyhub2RlKTsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgICAgICAgICAgaWYgKG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkudXNl
S2luZCgpID09IFN5bWJvbFVzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29tcGlsZUdl
dEJ5VmFsRm9yT2JqZWN0V2l0aFN5bWJvbChub2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogCi0gICAg
ICAgICAgICAgICAgaWYgKG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkudXNlS2luZCgpID09
IFN5bWJvbFVzZSkgewotICAgICAgICAgICAgICAgICAgICBjb21waWxlR2V0QnlWYWxGb3JPYmpl
Y3RXaXRoU3ltYm9sKG5vZGUpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICB9CisgICAgICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlz
LCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsgLy8gU2F2ZSBhIHJlZ2lzdGVyLCBzcGVj
dWxhdGUgY2VsbC4gV2UnbGwgcHJvYmFibHkgYmUgcmlnaHQuCisgICAgICAgICAgICAgICAgSlNW
YWx1ZU9wZXJhbmQgcHJvcGVydHkodGhpcywgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKSk7
CisgICAgICAgICAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOworICAgICAgICAg
ICAgICAgIEpTVmFsdWVSZWdzIHByb3BlcnR5UmVncyA9IHByb3BlcnR5LmpzVmFsdWVSZWdzKCk7
CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAg
ICAgICAgICAgICAgICBKU1ZhbHVlUmVnc0ZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsK
KyAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsK
KyAgICAgICAgICAgICAgICBjYWxsT3BlcmF0aW9uKG9wZXJhdGlvbkdldEJ5VmFsQ2VsbCwgcmVz
dWx0UmVncywgVHJ1c3RlZEltbVB0cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9i
YWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNlbWFudGljKSksIGJhc2VHUFIsIHByb3BlcnR5UmVn
cyk7CisgICAgICAgICAgICAgICAgbV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKKyAgICAgICAgICAg
ICAgICAKKyAgICAgICAgICAgICAgICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBTcGVj
dWxhdGVDZWxsT3BlcmFuZCBiYXNlKHRoaXMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCkp
OyAvLyBTYXZlIGEgcmVnaXN0ZXIsIHNwZWN1bGF0ZSBjZWxsLiBXZSdsbCBwcm9iYWJseSBiZSBy
aWdodC4KLSAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHByb3BlcnR5KHRoaXMsIG1fZ3JhcGgu
dmFyQXJnQ2hpbGQobm9kZSwgMSkpOwotICAgICAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNl
LmdwcigpOworICAgICAgICAgICAgc3BlY3VsYXRlKG5vZGUsIG1fZ3JhcGgudmFyQXJnQ2hpbGQo
bm9kZSwgMCkpOworICAgICAgICAgICAgc3BlY3VsYXRlKG5vZGUsIG1fZ3JhcGgudmFyQXJnQ2hp
bGQobm9kZSwgMSkpOworCisgICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBiYXNlKHRoaXMsIG1f
Z3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCksIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7Cisg
ICAgICAgICAgICBKU1ZhbHVlT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2dyYXBoLnZhckFyZ0No
aWxkKG5vZGUsIDEpLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICAgICAgR1BS
VGVtcG9yYXJ5IHJlc3VsdFRhZyh0aGlzLCBSZXVzZSwgcHJvcGVydHksIFRhZ1dvcmQpOworICAg
ICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdFBheWxvYWQodGhpcywgUmV1c2UsIHByb3BlcnR5
LCBQYXlsb2FkV29yZCk7CisKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIGJhc2VSZWdzID0gYmFz
ZS5qc1ZhbHVlUmVncygpOwogICAgICAgICAgICAgSlNWYWx1ZVJlZ3MgcHJvcGVydHlSZWdzID0g
cHJvcGVydHkuanNWYWx1ZVJlZ3MoKTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJl
Z3MocmVzdWx0VGFnLmdwcigpLCByZXN1bHRQYXlsb2FkLmdwcigpKTsKKworICAgICAgICAgICAg
Q29kZU9yaWdpbiBjb2RlT3JpZ2luID0gbm9kZS0+b3JpZ2luLnNlbWFudGljOworICAgICAgICAg
ICAgQ2FsbFNpdGVJbmRleCBjYWxsU2l0ZSA9IG1faml0LnJlY29yZENhbGxTaXRlQW5kR2VuZXJh
dGVFeGNlcHRpb25IYW5kbGluZ09TUkV4aXRJZk5lZWRlZChjb2RlT3JpZ2luLCBtX3N0cmVhbS0+
c2l6ZSgpKTsKKyAgICAgICAgICAgIFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMgPSB0aGlzLT51
c2VkUmVnaXN0ZXJzKCk7CisKKyAgICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBzbG93
Q2FzZXM7CisgICAgICAgICAgICBpZiAoIW1fc3RhdGUuZm9yTm9kZShtX2dyYXBoLnZhckFyZ0No
aWxkKG5vZGUsIDApKS5pc1R5cGUoU3BlY0NlbGwpKQorICAgICAgICAgICAgICAgIHNsb3dDYXNl
cy5hcHBlbmQobV9qaXQuYnJhbmNoSWZOb3RDZWxsKGJhc2VSZWdzLnRhZ0dQUigpKSk7CisKKyAg
ICAgICAgICAgIEpJVEdldEJ5VmFsR2VuZXJhdG9yIGdlbigKKyAgICAgICAgICAgICAgICBtX2pp
dC5jb2RlQmxvY2soKSwgY29kZU9yaWdpbiwgY2FsbFNpdGUsIHVzZWRSZWdpc3RlcnMsCisgICAg
ICAgICAgICAgICAgYmFzZVJlZ3MsIHByb3BlcnR5UmVncywgcmVzdWx0UmVncyk7CisKKyAgICAg
ICAgICAgIGlmIChtX3N0YXRlLmZvck5vZGUobV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKSku
aXNUeXBlKFNwZWNTdHJpbmcpKQorICAgICAgICAgICAgICAgIGdlbi5zdHViSW5mbygpLT5wcm9w
ZXJ0eUlzU3RyaW5nID0gdHJ1ZTsKKyAgICAgICAgICAgIGVsc2UgaWYgKG1fc3RhdGUuZm9yTm9k
ZShtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpKS5pc1R5cGUoU3BlY0ludDMyT25seSkpCisg
ICAgICAgICAgICAgICAgZ2VuLnN0dWJJbmZvKCktPnByb3BlcnR5SXNJbnQzMiA9IHRydWU7Cisg
ICAgICAgICAgICBlbHNlIGlmIChtX3N0YXRlLmZvck5vZGUobV9ncmFwaC52YXJBcmdDaGlsZChu
b2RlLCAxKSkuaXNUeXBlKFNwZWNTeW1ib2wpKQorICAgICAgICAgICAgICAgIGdlbi5zdHViSW5m
bygpLT5wcm9wZXJ0eUlzU3ltYm9sID0gdHJ1ZTsKKworICAgICAgICAgICAgZ2VuLmdlbmVyYXRl
RmFzdFBhdGgobV9qaXQpOwogICAgICAgICAgICAgCi0gICAgICAgICAgICBmbHVzaFJlZ2lzdGVy
cygpOwotICAgICAgICAgICAgSlNWYWx1ZVJlZ3NGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhp
cyk7Ci0gICAgICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsK
LSAgICAgICAgICAgIGNhbGxPcGVyYXRpb24ob3BlcmF0aW9uR2V0QnlWYWxDZWxsLCByZXN1bHRS
ZWdzLCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9i
amVjdEZvcihub2RlLT5vcmlnaW4uc2VtYW50aWMpKSwgYmFzZUdQUiwgcHJvcGVydHlSZWdzKTsK
LSAgICAgICAgICAgIG1faml0LmV4Y2VwdGlvbkNoZWNrKCk7CisgICAgICAgICAgICBzbG93Q2Fz
ZXMuYXBwZW5kKGdlbi5zbG93UGF0aEp1bXAoKSk7CisKKyAgICAgICAgICAgIHN0ZDo6dW5pcXVl
X3B0cjxTbG93UGF0aEdlbmVyYXRvcj4gc2xvd1BhdGggPSBzbG93UGF0aENhbGwoCisgICAgICAg
ICAgICAgICAgc2xvd0Nhc2VzLCB0aGlzLCBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplLAorICAg
ICAgICAgICAgICAgIHJlc3VsdFJlZ3MsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3Jh
cGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKGNvZGVPcmlnaW4pKSwgZ2VuLnN0dWJJbmZvKCks
IG51bGxwdHIsIGJhc2VSZWdzLCBwcm9wZXJ0eVJlZ3MpOwogICAgICAgICAgICAgCisgICAgICAg
ICAgICBtX2ppdC5hZGRHZXRCeVZhbChnZW4sIHNsb3dQYXRoLmdldCgpKTsKKyAgICAgICAgICAg
IGFkZFNsb3dQYXRoR2VuZXJhdG9yKFdURk1vdmUoc2xvd1BhdGgpKTsKKwogICAgICAgICAgICAg
anNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAg
ICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNh
Y2hlR2VuZXJhdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2Fj
aGVHZW5lcmF0b3IuY3BwCmluZGV4IGNkNmFhMzE3NjZjLi45OTdhNWVlYzYwNyAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5j
cHAKQEAgLTc4LDcgKzc4LDcgQEAgSklUQnlJZEdlbmVyYXRvcjo6SklUQnlJZEdlbmVyYXRvcigK
ICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgIG1fc3R1YkluZm8tPnBhdGNoLmJhc2VUYWdHUFIg
PSBiYXNlLnRhZ0dQUigpOwogICAgIG1fc3R1YkluZm8tPnBhdGNoLnZhbHVlVGFnR1BSID0gdmFs
dWUudGFnR1BSKCk7Ci0gICAgbV9zdHViSW5mby0+cGF0Y2gudGhpc1RhZ0dQUiA9IEludmFsaWRH
UFJSZWc7CisgICAgbV9zdHViSW5mby0+cGF0Y2gudi50aGlzVGFnR1BSID0gSW52YWxpZEdQUlJl
ZzsKICNlbmRpZgogfQogCkBAIC0xMjQsNyArMTI0LDcgQEAgSklUR2V0QnlJZFdpdGhUaGlzR2Vu
ZXJhdG9yOjpKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3IoCiAKICAgICBtX3N0dWJJbmZvLT5w
YXRjaC51LnRoaXNHUFIgPSB0aGlzUmVncy5wYXlsb2FkR1BSKCk7CiAjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKLSAgICBtX3N0dWJJbmZvLT5wYXRjaC50aGlzVGFnR1BSID0gdGhpc1JlZ3MudGFnR1BS
KCk7CisgICAgbV9zdHViSW5mby0+cGF0Y2gudi50aGlzVGFnR1BSID0gdGhpc1JlZ3MudGFnR1BS
KCk7CiAjZW5kaWYKIH0KIApAQCAtMTkwLDcgKzE5MCw3IEBAIEpJVEluc3RhbmNlT2ZHZW5lcmF0
b3I6OkpJVEluc3RhbmNlT2ZHZW5lcmF0b3IoCiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICBt
X3N0dWJJbmZvLT5wYXRjaC5iYXNlVGFnR1BSID0gSW52YWxpZEdQUlJlZzsKICAgICBtX3N0dWJJ
bmZvLT5wYXRjaC52YWx1ZVRhZ0dQUiA9IEludmFsaWRHUFJSZWc7Ci0gICAgbV9zdHViSW5mby0+
cGF0Y2gudGhpc1RhZ0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgbV9zdHViSW5mby0+cGF0Y2gu
di50aGlzVGFnR1BSID0gSW52YWxpZEdQUlJlZzsKICNlbmRpZgogCiAgICAgbV9zdHViSW5mby0+
cGF0Y2gudXNlZFJlZ2lzdGVycy5jbGVhcihyZXN1bHQpOwpAQCAtMjI5LDYgKzIyOSwxMSBAQCBK
SVRHZXRCeVZhbEdlbmVyYXRvcjo6SklUR2V0QnlWYWxHZW5lcmF0b3IoQ29kZUJsb2NrKiBjb2Rl
QmxvY2ssIENvZGVPcmlnaW4gY29kZQogICAgIG1fc3R1YkluZm8tPnBhdGNoLmJhc2VHUFIgPSBi
YXNlLnBheWxvYWRHUFIoKTsKICAgICBtX3N0dWJJbmZvLT5wYXRjaC51LnByb3BlcnR5R1BSID0g
cHJvcGVydHkucGF5bG9hZEdQUigpOwogICAgIG1fc3R1YkluZm8tPnBhdGNoLnZhbHVlR1BSID0g
cmVzdWx0LnBheWxvYWRHUFIoKTsKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgIG1fc3R1Yklu
Zm8tPnBhdGNoLmJhc2VUYWdHUFIgPSBiYXNlLnRhZ0dQUigpOworICAgIG1fc3R1YkluZm8tPnBh
dGNoLnZhbHVlVGFnR1BSID0gcmVzdWx0LnRhZ0dQUigpOworICAgIG1fc3R1YkluZm8tPnBhdGNo
LnYucHJvcGVydHlUYWdHUFIgPSBwcm9wZXJ0eS50YWdHUFIoKTsKKyNlbmRpZgogfQogCiB2b2lk
IEpJVEdldEJ5VmFsR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRoKE1hY3JvQXNzZW1ibGVyJiBq
aXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNj
ZXNzMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2Vz
czMyXzY0LmNwcAppbmRleCA4MDBkZjg5ZDVlMi4uMTVlMmM4NmUwZjAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcApAQCAt
MTc2LDcgKzE3Niw3IEBAIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKGNvbnN0IElu
c3RydWN0aW9uKiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTCiAgICAgbGlua0FsbFNsb3dD
YXNlcyhpdGVyKTsKIAogICAgIExhYmVsIGNvbGRQYXRoQmVnaW4gPSBsYWJlbCgpOwotICAgIENh
bGwgY2FsbCA9IGNhbGxPcGVyYXRpb25XaXRoUHJvZmlsZShieXRlY29kZS5tZXRhZGF0YShtX2Nv
ZGVCbG9jayksIG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYywgZHN0LCBUcnVzdGVkSW1tUHRyKG1f
Y29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKSksIGdlbi5zdHViSW5mbygpLCBwcm9maWxlLCBKU1Zh
bHVlUmVncyhyZWdUMSwgcmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpKTsKKyAgICBD
YWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uV2l0aFByb2ZpbGUoYnl0ZWNvZGUubWV0YWRhdGEobV9j
b2RlQmxvY2spLCBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplLCBkc3QsIFRydXN0ZWRJbW1QdHIo
bV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpKSwgZ2VuLnN0dWJJbmZvKCksIHByb2ZpbGUsIEpT
VmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMikpOwogICAg
IGdlbi5yZXBvcnRTbG93UGF0aENhbGwoY29sZFBhdGhCZWdpbiwgY2FsbCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384078</attachid>
            <date>2019-11-21 11:49:33 -0800</date>
            <delta_ts>2019-11-25 04:51:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204082-20191121164931.patch</filename>
            <type>text/plain</type>
            <size>23413</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyNzI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA1
Yzc3NjNhYTljMzJkZmU4MTljZDBiZDhjZjM2ZWJjODk2YzlkY2E2Li5iN2Y2MTVmYzNhZGZjYzFm
MjdkZjhiOWE5ODE4ZGViNzU4NGY2MDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAxOS0xMS0yMSAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgSW1wbGVtZW50IEdldEJ5VmFsIGlubGluZSBjYWNoaW5nIGZvciAzMi1iaXQg
SklUcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAy
NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ug
YXJlIGFkZGluZyAzMi1iaXQgc3VwcG9ydCBmb3IgR2V0QnlWYWwgY2FzZXMgYWRkZWQgb24gcjI1
MjY4NC4KKyAgICAgICAgVGhpcyByZXF1aXJlZCBjaGFuZ2VzIG9uIHNvbWUgb2YgdGhlIElDIGNv
ZGUgZ2VuZXJhdGVkIHRvIHByb3Blcmx5CisgICAgICAgIHN1cHBvcnQgSlNWQUxVRTMyXzY0LiBU
aGUgbWFqb3IgZGlmZmVyZW5jZSBmcm9tIEpTVkFMVUU2NCBpcyB0aGUKKyAgICAgICAgdXNhZ2Ug
b2YgdGFnR1BSLgorCisgICAgICAgICogYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHA6CisgICAgICAg
IChKU0M6OkFjY2Vzc0Nhc2U6OmdlbmVyYXRlV2l0aEd1YXJkKToKKyAgICAgICAgKEpTQzo6QWNj
ZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKToKKyAgICAgICAgKiBieXRlY29kZS9HZXR0ZXJTZXR0ZXJB
Y2Nlc3NDYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6R2V0dGVyU2V0dGVyQWNjZXNzQ2FzZTo6ZW1p
dERPTUpJVEdldHRlcik6CisgICAgICAgICogYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3Bw
OgorICAgICAgICAoSlNDOjpQb2x5bW9ycGhpY0FjY2Vzczo6cmVnZW5lcmF0ZSk6CisgICAgICAg
ICogYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaDoKKworICAgICAgICBTaW5jZSBhIGdlbmVy
YXRvciBjYW4ndCBoYXZlIGB0aGlzR1BSYCBhbmQgYHByb3BlcnR5R1BSYCBhdCBzZSBzYW1lIHRp
bWUsCisgICAgICAgIHdlIGNyZWF0ZWQgYSBuZXcgYHVuaW9uYCB0byBzaGFyZSBgdGhpc1RhZ0dQ
UmAgYW5kIGBwcm9wZXJ0eVRhZ0dQUmAsCisgICAgICAgIG1hdGNoaW5nIHRoZSBhcHByb2FjaCB3
ZSBoYXZlIG9uIGBwYXRjaC51YC4KKworICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVTdHViSW5mbzo6
cHJvcGVydHlSZWdzIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU3R1YkluZm86OmJh
c2VSZWdzIGNvbnN0KToKKworICAgICAgICBUbyBzaW1wbGlmeSBzY3JhdGNoIHJlZ2lzdGVyIGFs
bG9jYXRpb24sIHdlIGFkZGVkIGBiYXNlUmVncygpYCBhbmQKKyAgICAgICAgYHByb3BlcnR5UmVn
cygpYCB0byBgU3RydWN0dXJlU3R1YkluZm9gLCBzbyB3ZSBjYW4gZWFzaWx5IHJldHJpdmUKKyAg
ICAgICAgcGF5bG9hZCBhbmQgdGFnIEdQUnMgZm9yIHRob3NlIG9wZXJhbmRzLgorCisgICAgICAg
ICogZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwOgorICAgICAgICAoSlNDOjpERkc6OlNw
ZWN1bGF0aXZlSklUOjpjb21waWxlKToKKyAgICAgICAgKiBqaXQvSklUSW5saW5lQ2FjaGVHZW5l
cmF0b3IuY3BwOgorICAgICAgICAoSlNDOjpKSVRCeUlkR2VuZXJhdG9yOjpKSVRCeUlkR2VuZXJh
dG9yKToKKyAgICAgICAgKEpTQzo6SklUR2V0QnlJZFdpdGhUaGlzR2VuZXJhdG9yOjpKSVRHZXRC
eUlkV2l0aFRoaXNHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpKSVRJbnN0YW5jZU9mR2VuZXJh
dG9yOjpKSVRJbnN0YW5jZU9mR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6SklUR2V0QnlWYWxH
ZW5lcmF0b3I6OkpJVEdldEJ5VmFsR2VuZXJhdG9yKToKKyAgICAgICAgKiBqaXQvSklUUHJvcGVy
dHlBY2Nlc3MzMl82NC5jcHA6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFs
KToKKyAgICAgICAgKEpTQzo6SklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKToKKwogMjAxOS0x
MS0yMCAgWXVzdWtlIFN1enVraSAgPHlzdXp1a2lAYXBwbGUuY29tPgogCiAgICAgICAgIFtKU0Nd
IEV4dGVuZCBNYWNyb0Fzc2VtYmxlckFSTTY0Ojpsb2FkL3N0b3JlIGZvciBkYXRhc2l6ZSA9IDE2
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAKaW5kZXgg
N2I4MDZlNjgyZmIwNWZkNzhmY2JjOTU1M2IyYzExNzExZGExN2M1Zi4uMTA1YWFmM2I2OGI2ZmZk
NTExYjk1YzIxYWU4OGRlOGM0MjBkMjFhMCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9BY2Nlc3NDYXNlLmNwcApAQCAtODY3LDkgKzg2Nyw5IEBAIHZvaWQgQWNjZXNzQ2Fz
ZTo6Z2VuZXJhdGVXaXRoR3VhcmQoCiAgICAgICAgIGZhbGxUaHJvdWdoLmFwcGVuZChqaXQuYnJh
bmNoMzIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoU2NvcGVkQXJndW1lbnRzVHlwZSkpKTsKIAogICAgICAgICBTY3JhdGNoUmVn
aXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9yKHN0dWJJbmZvLnBhdGNoLnVzZWRSZWdpc3RlcnMpOwot
ICAgICAgICBhbGxvY2F0b3IubG9jayhiYXNlR1BSKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2so
dmFsdWVSZWdzLnBheWxvYWRHUFIoKSk7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHByb3BlcnR5
R1BSKTsKKyAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8uYmFzZVJlZ3MoKSk7CisgICAg
ICAgIGFsbG9jYXRvci5sb2NrKHZhbHVlUmVncyk7CisgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0
dWJJbmZvLnByb3BlcnR5UmVncygpKTsKICAgICAgICAgYWxsb2NhdG9yLmxvY2soc2NyYXRjaEdQ
Uik7CiAgICAgICAgIAogICAgICAgICBHUFJSZWcgc2NyYXRjaDJHUFIgPSBhbGxvY2F0b3IuYWxs
b2NhdGVTY3JhdGNoR1BSKCk7CkBAIC04OTgsOSArODk4LDE2IEBAIHZvaWQgQWNjZXNzQ2FzZTo6
Z2VuZXJhdGVXaXRoR3VhcmQoCiAgICAgICAgIGppdC5zdWIzMihwcm9wZXJ0eUdQUiwgc2NyYXRj
aDJHUFIpOwogICAgICAgICBqaXQubmVnMzIoc2NyYXRjaDJHUFIpOwogICAgICAgICBqaXQubG9h
ZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUdQUiwgU2NvcGVkQXJndW1lbnRzOjpvZmZz
ZXRPZlN0b3JhZ2UoKSksIHNjcmF0Y2gzR1BSKTsKLSAgICAgICAgaml0LmxvYWRWYWx1ZShDQ2Fs
bEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoM0dQUiwgc2NyYXRjaDJHUFIsIENDYWxsSGVscGVy
czo6VGltZXNFaWdodCksIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShzY3JhdGNoR1BSKSk7Cisj
aWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgaml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBlcnM6OkJh
c2VJbmRleChzY3JhdGNoM0dQUiwgc2NyYXRjaDJHUFIsIENDYWxsSGVscGVyczo6VGltZXNFaWdo
dCksIEpTVmFsdWVSZWdzKHNjcmF0Y2hHUFIpKTsKICAgICAgICAgZmFpbEFuZElnbm9yZS5hcHBl
bmQoaml0LmJyYW5jaElmRW1wdHkoc2NyYXRjaEdQUikpOwogICAgICAgICBqaXQubW92ZShzY3Jh
dGNoR1BSLCB2YWx1ZVJlZ3MucGF5bG9hZEdQUigpKTsKKyNlbHNlCisgICAgICAgIGppdC5sb2Fk
VmFsdWUoQ0NhbGxIZWxwZXJzOjpCYXNlSW5kZXgoc2NyYXRjaDNHUFIsIHNjcmF0Y2gyR1BSLCBD
Q2FsbEhlbHBlcnM6OlRpbWVzRWlnaHQpLCBKU1ZhbHVlUmVncyhzY3JhdGNoMkdQUiwgc2NyYXRj
aEdQUikpOworICAgICAgICBmYWlsQW5kSWdub3JlLmFwcGVuZChqaXQuYnJhbmNoSWZFbXB0eShz
Y3JhdGNoMkdQUikpOworICAgICAgICBqaXQubW92ZShzY3JhdGNoR1BSLCB2YWx1ZVJlZ3MucGF5
bG9hZEdQUigpKTsKKyAgICAgICAgaml0Lm1vdmUoc2NyYXRjaDJHUFIsIHZhbHVlUmVncy50YWdH
UFIoKSk7CisjZW5kaWYKIAogICAgICAgICBkb25lLmxpbmsoJmppdCk7CiAKQEAgLTk1NSw5ICs5
NjIsOSBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlV2l0aEd1YXJkKAogICAgICAgICBzdGF0
ZS5mYWlsQW5kUmVwYXRjaC5hcHBlbmQoaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6QWJvdmVP
ckVxdWFsLCBwcm9wZXJ0eUdQUiwgc2NyYXRjaEdQUikpOwogCiAgICAgICAgIFNjcmF0Y2hSZWdp
c3RlckFsbG9jYXRvciBhbGxvY2F0b3Ioc3R1YkluZm8ucGF0Y2gudXNlZFJlZ2lzdGVycyk7Ci0g
ICAgICAgIGFsbG9jYXRvci5sb2NrKGJhc2VHUFIpOwotICAgICAgICBhbGxvY2F0b3IubG9jayh2
YWx1ZVJlZ3MucGF5bG9hZEdQUigpKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2socHJvcGVydHlH
UFIpOworICAgICAgICBhbGxvY2F0b3IubG9jayhzdHViSW5mby5iYXNlUmVncygpKTsKKyAgICAg
ICAgYWxsb2NhdG9yLmxvY2sodmFsdWVSZWdzKTsKKyAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1
YkluZm8ucHJvcGVydHlSZWdzKCkpOwogICAgICAgICBhbGxvY2F0b3IubG9jayhzY3JhdGNoR1BS
KTsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0gYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRj
aEdQUigpOwogCkBAIC0xMDM3LDkgKzEwNDQsOSBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRl
V2l0aEd1YXJkKAogICAgICAgICBmYWxsVGhyb3VnaC5hcHBlbmQoaml0LmJyYW5jaElmTm90U3Ry
aW5nKGJhc2VHUFIpKTsKIAogICAgICAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2Nh
dG9yKHN0dWJJbmZvLnBhdGNoLnVzZWRSZWdpc3RlcnMpOwotICAgICAgICBhbGxvY2F0b3IubG9j
ayhiYXNlR1BSKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2sodmFsdWVSZWdzLnBheWxvYWRHUFIo
KSk7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHByb3BlcnR5R1BSKTsKKyAgICAgICAgYWxsb2Nh
dG9yLmxvY2soc3R1YkluZm8uYmFzZVJlZ3MoKSk7CisgICAgICAgIGFsbG9jYXRvci5sb2NrKHZh
bHVlUmVncyk7CisgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLnByb3BlcnR5UmVncygp
KTsKICAgICAgICAgYWxsb2NhdG9yLmxvY2soc2NyYXRjaEdQUik7CiAgICAgICAgIEdQUlJlZyBz
Y3JhdGNoMkdQUiA9IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKIApAQCAtMTA2OCw2
ICsxMDc1LDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAgICAgICAg
ZmFpbEFuZElnbm9yZS5hcHBlbmQoaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6QWJvdmUsIHNj
cmF0Y2gyR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihtYXhTaW5nbGVDaGFyYWN0ZXJT
dHJpbmcpKSk7CiAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih2
bS5zbWFsbFN0cmluZ3Muc2luZ2xlQ2hhcmFjdGVyU3RyaW5ncygpKSwgc2NyYXRjaEdQUik7CiAg
ICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2hHUFIsIHNj
cmF0Y2gyR1BSLCBDQ2FsbEhlbHBlcnM6OlNjYWxlUHRyLCAwKSwgdmFsdWVSZWdzLnBheWxvYWRH
UFIoKSk7CisgICAgICAgIGppdC5ib3hDZWxsKHZhbHVlUmVncy5wYXlsb2FkR1BSKCksIHZhbHVl
UmVncyk7CiAgICAgICAgIGFsbG9jYXRvci5yZXN0b3JlUmV1c2VkUmVnaXN0ZXJzQnlQb3BwaW5n
KGppdCwgcHJlc2VydmVkU3RhdGUpOwogICAgICAgICBzdGF0ZS5zdWNjZWVkKCk7CiAKQEAgLTEw
OTYsMTEgKzExMDQsMTQgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGlzRW1wdHk7CiAKICAgICAgICAgU2NyYXRjaFJlZ2lz
dGVyQWxsb2NhdG9yIGFsbG9jYXRvcihzdHViSW5mby5wYXRjaC51c2VkUmVnaXN0ZXJzKTsKLSAg
ICAgICAgYWxsb2NhdG9yLmxvY2soYmFzZUdQUik7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHZh
bHVlUmVncy5wYXlsb2FkR1BSKCkpOwotICAgICAgICBhbGxvY2F0b3IubG9jayhwcm9wZXJ0eUdQ
Uik7CisgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLmJhc2VSZWdzKCkpOworICAgICAg
ICBhbGxvY2F0b3IubG9jayh2YWx1ZVJlZ3MpOworICAgICAgICBhbGxvY2F0b3IubG9jayhzdHVi
SW5mby5wcm9wZXJ0eVJlZ3MoKSk7CiAgICAgICAgIGFsbG9jYXRvci5sb2NrKHNjcmF0Y2hHUFIp
OwogICAgICAgICBHUFJSZWcgc2NyYXRjaDJHUFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNo
R1BSKCk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgR1BSUmVnIHNjcmF0Y2gzR1BS
ID0gYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOworI2VuZGlmCiAgICAgICAgIFNjcmF0
Y2hSZWdpc3RlckFsbG9jYXRvcjo6UHJlc2VydmVkU3RhdGUgcHJlc2VydmVkU3RhdGU7CiAKICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBmYWlsQW5kSWdub3JlOwpAQCAtMTExOCw5ICsx
MTI5LDE2IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVXaXRoR3VhcmQoCiAgICAgICAgICAg
ICBpc091dE9mQm91bmRzID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6QWJvdmVPckVxdWFs
LCBwcm9wZXJ0eUdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIEFycmF5U3Rv
cmFnZTo6dmVjdG9yTGVuZ3RoT2Zmc2V0KCkpKTsKIAogICAgICAgICAgICAgaml0Lnplcm9FeHRl
bmQzMlRvUHRyKHByb3BlcnR5R1BSLCBzY3JhdGNoMkdQUik7Ci0gICAgICAgICAgICBqaXQubG9h
ZFZhbHVlKENDYWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSLCBD
Q2FsbEhlbHBlcnM6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkpLCBK
U1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkoc2NyYXRjaEdQUikpOworI2lmIFVTRShKU1ZBTFVFNjQp
CisgICAgICAgICAgICBqaXQubG9hZFZhbHVlKENDYWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0
Y2hHUFIsIHNjcmF0Y2gyR1BSLCBDQ2FsbEhlbHBlcnM6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFn
ZTo6dmVjdG9yT2Zmc2V0KCkpLCBKU1ZhbHVlUmVncyhzY3JhdGNoR1BSKSk7CiAgICAgICAgICAg
ICBpc0VtcHR5ID0gaml0LmJyYW5jaElmRW1wdHkoc2NyYXRjaEdQUik7CiAgICAgICAgICAgICBq
aXQubW92ZShzY3JhdGNoR1BSLCB2YWx1ZVJlZ3MucGF5bG9hZEdQUigpKTsKKyNlbHNlCisgICAg
ICAgICAgICBqaXQubG9hZFZhbHVlKENDYWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2hHUFIs
IHNjcmF0Y2gyR1BSLCBDQ2FsbEhlbHBlcnM6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVj
dG9yT2Zmc2V0KCkpLCBKU1ZhbHVlUmVncyhzY3JhdGNoM0dQUiwgc2NyYXRjaEdQUikpOworICAg
ICAgICAgICAgaXNFbXB0eSA9IGppdC5icmFuY2hJZkVtcHR5KHNjcmF0Y2gzR1BSKTsKKyAgICAg
ICAgICAgIGppdC5tb3ZlKHNjcmF0Y2hHUFIsIHZhbHVlUmVncy5wYXlsb2FkR1BSKCkpOworICAg
ICAgICAgICAgaml0Lm1vdmUoc2NyYXRjaDNHUFIsIHZhbHVlUmVncy50YWdHUFIoKSk7CisjZW5k
aWYKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEluZGV4aW5nVHlwZSBleHBlY3RlZFNo
YXBlOwogICAgICAgICAgICAgc3dpdGNoIChtX3R5cGUpIHsKQEAgLTExNTEsOSArMTE2OSwxNiBA
QCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlV2l0aEd1YXJkKAogICAgICAgICAgICAgICAgIGlz
RW1wdHkgPSBqaXQuYnJhbmNoSWZOYU4oc3RhdGUuc2NyYXRjaEZQUik7CiAgICAgICAgICAgICAg
ICAgaml0LmJveERvdWJsZShzdGF0ZS5zY3JhdGNoRlBSLCB2YWx1ZVJlZ3MpOwogICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKENDYWxsSGVscGVyczo6
QmFzZUluZGV4KHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSLCBDQ2FsbEhlbHBlcnM6OlRpbWVzRWln
aHQpLCBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkoc2NyYXRjaEdQUikpOworI2lmIFVTRShKU1ZB
TFVFNjQpCisgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBlcnM6OkJhc2VJ
bmRleChzY3JhdGNoR1BSLCBzY3JhdGNoMkdQUiwgQ0NhbGxIZWxwZXJzOjpUaW1lc0VpZ2h0KSwg
SlNWYWx1ZVJlZ3Moc2NyYXRjaEdQUikpOwogICAgICAgICAgICAgICAgIGlzRW1wdHkgPSBqaXQu
YnJhbmNoSWZFbXB0eShzY3JhdGNoR1BSKTsKICAgICAgICAgICAgICAgICBqaXQubW92ZShzY3Jh
dGNoR1BSLCB2YWx1ZVJlZ3MucGF5bG9hZEdQUigpKTsKKyNlbHNlCisgICAgICAgICAgICAgICAg
aml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoR1BSLCBzY3JhdGNo
MkdQUiwgQ0NhbGxIZWxwZXJzOjpUaW1lc0VpZ2h0KSwgSlNWYWx1ZVJlZ3Moc2NyYXRjaDNHUFIs
IHNjcmF0Y2hHUFIpKTsKKyAgICAgICAgICAgICAgICBpc0VtcHR5ID0gaml0LmJyYW5jaElmRW1w
dHkoc2NyYXRjaDNHUFIpOworICAgICAgICAgICAgICAgIGppdC5tb3ZlKHNjcmF0Y2hHUFIsIHZh
bHVlUmVncy5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgICAgIGppdC5tb3ZlKHNjcmF0Y2gz
R1BSLCB2YWx1ZVJlZ3MudGFnR1BSKCkpOworI2VuZGlmCiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KIApAQCAtMTE5MCw5ICsxMjE1LDkgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhH
dWFyZCgKICAgICAgICAgR1BSUmVnIHZhbHVlR1BSID0gdmFsdWVSZWdzLnBheWxvYWRHUFIoKTsK
ICAgICAgICAgCiAgICAgICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciBhbGxvY2F0b3Ioc3R1
YkluZm8ucGF0Y2gudXNlZFJlZ2lzdGVycyk7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKGJhc2VH
UFIpOwotICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1ZUdQUik7Ci0gICAgICAgIGFsbG9jYXRv
ci5sb2NrKHByb3RvdHlwZUdQUik7CisgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLmJh
c2VSZWdzKCkpOworICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1ZVJlZ3MpOworICAgICAgICBh
bGxvY2F0b3IubG9jayhzdHViSW5mby5wcm9wZXJ0eVJlZ3MoKSk7CiAgICAgICAgIGFsbG9jYXRv
ci5sb2NrKHNjcmF0Y2hHUFIpOwogICAgICAgICAKICAgICAgICAgR1BSUmVnIHNjcmF0Y2gyR1BS
ID0gYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwpAQCAtMTcwMywxMCArMTcyOCw3IEBA
IHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKEFjY2Vzc0dlbmVyYXRpb25TdGF0ZSYgc3Rh
dGUpCiAgICAgICAgIGJvb2wgYWxsb2NhdGluZ0lubGluZSA9IGFsbG9jYXRpbmcgJiYgIXN0cnVj
dHVyZSgpLT5jb3VsZEhhdmVJbmRleGluZ0hlYWRlcigpOwogCiAgICAgICAgIFNjcmF0Y2hSZWdp
c3RlckFsbG9jYXRvciBhbGxvY2F0b3Ioc3R1YkluZm8ucGF0Y2gudXNlZFJlZ2lzdGVycyk7Ci0g
ICAgICAgIGFsbG9jYXRvci5sb2NrKGJhc2VHUFIpOwotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0g
ICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLnBhdGNoLmJhc2VUYWdHUFIpOwotI2VuZGlm
CisgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLmJhc2VSZWdzKCkpOwogICAgICAgICBh
bGxvY2F0b3IubG9jayh2YWx1ZVJlZ3MpOwogICAgICAgICBhbGxvY2F0b3IubG9jayhzY3JhdGNo
R1BSKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldHRl
clNldHRlckFjY2Vzc0Nhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dl
dHRlclNldHRlckFjY2Vzc0Nhc2UuY3BwCmluZGV4IDQ5ZTExN2E1YjZmN2E0YWUzODYzNGE0NjU0
NTY5MzBlMGEwNTYxMzUuLmQxOGE3NjU3MTI3OGQzYjM2YjVlYTQyZDhkYmVmMjQ3NWZiZjJmYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXR0ZXJTZXR0ZXJB
Y2Nlc3NDYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0dGVy
U2V0dGVyQWNjZXNzQ2FzZS5jcHAKQEAgLTEzOSwxMCArMTM5LDcgQEAgdm9pZCBHZXR0ZXJTZXR0
ZXJBY2Nlc3NDYXNlOjplbWl0RE9NSklUR2V0dGVyKEFjY2Vzc0dlbmVyYXRpb25TdGF0ZSYgc3Rh
dGUsIGNvbnMKICAgICBWZWN0b3I8U25pcHBldFBhcmFtczo6VmFsdWU+IHJlZ3M7CiAKICAgICBT
Y3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9yKHN0dWJJbmZvLnBhdGNoLnVzZWRSZWdp
c3RlcnMpOwotICAgIGFsbG9jYXRvci5sb2NrKGJhc2VHUFIpOwotI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCi0gICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8ucGF0Y2guYmFzZVRhZ0dQUik7Ci0jZW5k
aWYKKyAgICBhbGxvY2F0b3IubG9jayhzdHViSW5mby5iYXNlUmVncygpKTsKICAgICBhbGxvY2F0
b3IubG9jayh2YWx1ZVJlZ3MpOwogICAgIGFsbG9jYXRvci5sb2NrKHNjcmF0Y2hHUFIpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nl
c3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNz
LmNwcAppbmRleCAyZmI2NzFlOTNhZWJlMTdlZTI5MWE2Mjc4ODZiOGZjNmJjOGQwNGIwLi5iMDY3
OTEyNDkyZmIyMzY5ZDEzNDRjMTUyYjc1ZWZlMGJjZWI1NDFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAKQEAgLTQ1Miw2
ICs0NTIsOCBAQCBBY2Nlc3NHZW5lcmF0aW9uUmVzdWx0IFBvbHltb3JwaGljQWNjZXNzOjpyZWdl
bmVyYXRlKAogICAgIGFsbG9jYXRvci5sb2NrKHN0YXRlLnZhbHVlUmVncyk7CiAjaWYgVVNFKEpT
VkFMVUUzMl82NCkKICAgICBhbGxvY2F0b3IubG9jayhzdHViSW5mby5wYXRjaC5iYXNlVGFnR1BS
KTsKKyAgICBpZiAoc3R1YkluZm8ucGF0Y2gudi50aGlzVGFnR1BSICE9IEludmFsaWRHUFJSZWcp
CisgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLnBhdGNoLnYudGhpc1RhZ0dQUik7CiAj
ZW5kaWYKIAogICAgIHN0YXRlLnNjcmF0Y2hHUFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNo
R1BSKCk7CkBAIC01MjEsOCArNTIzLDEzIEBAIEFjY2Vzc0dlbmVyYXRpb25SZXN1bHQgUG9seW1v
cnBoaWNBY2Nlc3M6OnJlZ2VuZXJhdGUoCiAgICAgICAgICAgICBpZiAobmVlZHNJbnQzMlByb3Bl
cnR5Q2hlY2spIHsKICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbm90SW50MzI7
CiAKLSAgICAgICAgICAgICAgICBpZiAoIXN0dWJJbmZvLnByb3BlcnR5SXNJbnQzMikKKyAgICAg
ICAgICAgICAgICBpZiAoIXN0dWJJbmZvLnByb3BlcnR5SXNJbnQzMikgeworI2lmIFVTRShKU1ZB
TFVFNjQpIAogICAgICAgICAgICAgICAgICAgICBub3RJbnQzMiA9IGppdC5icmFuY2hJZk5vdElu
dDMyKHN0YXRlLnUucHJvcGVydHlHUFIpOworI2Vsc2UKKyAgICAgICAgICAgICAgICAgICAgbm90
SW50MzIgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihzdGF0ZS5zdHViSW5mby0+cGF0Y2gudi5wcm9w
ZXJ0eVRhZ0dQUik7CisjZW5kaWYKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gY2FzZXMuc2l6ZSgpOyBpLS07KSB7CiAgICAgICAgICAgICAgICAg
ICAgIGZhbGxUaHJvdWdoLmxpbmsoJmppdCk7CiAgICAgICAgICAgICAgICAgICAgIGZhbGxUaHJv
dWdoLmNsZWFyKCk7CkBAIC01NDIsMTIgKzU0OSwxOCBAQCBBY2Nlc3NHZW5lcmF0aW9uUmVzdWx0
IFBvbHltb3JwaGljQWNjZXNzOjpyZWdlbmVyYXRlKAogICAgICAgICAgICAgfQogCiAgICAgICAg
ICAgICBpZiAobmVlZHNTdHJpbmdQcm9wZXJ0eUNoZWNrKSB7Ci0gICAgICAgICAgICAgICAgR1BS
UmVnIHByb3BlcnR5R1BSID0gc3RhdGUudS5wcm9wZXJ0eUdQUjsKICAgICAgICAgICAgICAgICBD
Q2FsbEhlbHBlcnM6Okp1bXBMaXN0IG5vdFN0cmluZzsKKyAgICAgICAgICAgICAgICBHUFJSZWcg
cHJvcGVydHlHUFIgPSBzdGF0ZS51LnByb3BlcnR5R1BSOwogICAgICAgICAgICAgICAgIGlmICgh
c3R1YkluZm8ucHJvcGVydHlJc1N0cmluZykgeworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
ICAgICAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eVRhZ0dQUiA9IHN0YXRlLnN0dWJJbmZvLT5w
YXRjaC52LnByb3BlcnR5VGFnR1BSOworICAgICAgICAgICAgICAgICAgICBub3RTdHJpbmcuYXBw
ZW5kKGppdC5icmFuY2hJZk5vdENlbGwocHJvcGVydHlUYWdHUFIpKTsKKyNlbHNlCiAgICAgICAg
ICAgICAgICAgICAgIG5vdFN0cmluZy5hcHBlbmQoaml0LmJyYW5jaElmTm90Q2VsbChwcm9wZXJ0
eUdQUikpOworI2VuZGlmCiAgICAgICAgICAgICAgICAgICAgIG5vdFN0cmluZy5hcHBlbmQoaml0
LmJyYW5jaElmTm90U3RyaW5nKHByb3BlcnR5R1BSKSk7CiAgICAgICAgICAgICAgICAgfQorCiAg
ICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MocHJvcGVy
dHlHUFIsIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLCBzdGF0ZS5zY3JhdGNoR1BSKTsKIAog
ICAgICAgICAgICAgICAgIHN0YXRlLmZhaWxBbmRSZXBhdGNoLmFwcGVuZChqaXQuYnJhbmNoSWZS
b3BlU3RyaW5nSW1wbChzdGF0ZS5zY3JhdGNoR1BSKSk7CkBAIC01NzEsNyArNTg0LDEyIEBAIEFj
Y2Vzc0dlbmVyYXRpb25SZXN1bHQgUG9seW1vcnBoaWNBY2Nlc3M6OnJlZ2VuZXJhdGUoCiAgICAg
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBub3RTeW1ib2w7CiAgICAgICAgICAg
ICAgICAgaWYgKCFzdHViSW5mby5wcm9wZXJ0eUlzU3ltYm9sKSB7CiAgICAgICAgICAgICAgICAg
ICAgIEdQUlJlZyBwcm9wZXJ0eUdQUiA9IHN0YXRlLnUucHJvcGVydHlHUFI7CisjaWYgVVNFKEpT
VkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICAgICAgR1BSUmVnIHByb3BlcnR5VGFnR1BSID0g
c3RhdGUuc3R1YkluZm8tPnBhdGNoLnYucHJvcGVydHlUYWdHUFI7CisgICAgICAgICAgICAgICAg
ICAgIG5vdFN5bWJvbC5hcHBlbmQoaml0LmJyYW5jaElmTm90Q2VsbChwcm9wZXJ0eVRhZ0dQUikp
OworI2Vsc2UKICAgICAgICAgICAgICAgICAgICAgbm90U3ltYm9sLmFwcGVuZChqaXQuYnJhbmNo
SWZOb3RDZWxsKHByb3BlcnR5R1BSKSk7CisjZW5kaWYKICAgICAgICAgICAgICAgICAgICAgbm90
U3ltYm9sLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RTeW1ib2wocHJvcGVydHlHUFIpKTsKICAgICAg
ICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TdHJ1Y3R1cmVTdHViSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0
cnVjdHVyZVN0dWJJbmZvLmgKaW5kZXggMzRiMzljNmJlMjMzMjAyMTU3NGY2NDM1MWFkMjZlZmI1
OThiNmNhYi4uNzJlNjZlNDgwZDk1ZjIzNjEwOGY4ZWE1MmIxMDI5ODQzNDhkNjQ5MCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgK
QEAgLTIxOSw3ICsyMTksMTAgQEAgcHVibGljOgogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAg
ICAgIEdQUlJlZyB2YWx1ZVRhZ0dQUjsKICAgICAgICAgR1BSUmVnIGJhc2VUYWdHUFI7Ci0gICAg
ICAgIEdQUlJlZyB0aGlzVGFnR1BSOworICAgICAgICB1bmlvbiB7CisgICAgICAgICAgICBHUFJS
ZWcgdGhpc1RhZ0dQUjsKKyAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eVRhZ0dQUjsKKyAgICAg
ICAgfSB2OwogI2VuZGlmCiAgICAgfSBwYXRjaDsKIApAQCAtMjQ3LDYgKzI1MCwyNCBAQCBwdWJs
aWM6CiAgICAgICAgICAgICBwYXRjaC52YWx1ZUdQUik7CiAgICAgfQogCisgICAgSlNWYWx1ZVJl
Z3MgcHJvcGVydHlSZWdzKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBKU1ZhbHVlUmVn
cygKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgcGF0Y2gudi5wcm9wZXJ0eVRh
Z0dQUiwKKyNlbmRpZgorICAgICAgICAgICAgcGF0Y2gudS5wcm9wZXJ0eUdQUik7CisgICAgfQor
CisgICAgSlNWYWx1ZVJlZ3MgYmFzZVJlZ3MoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IEpTVmFsdWVSZWdzKAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICBwYXRjaC5i
YXNlVGFnR1BSLAorI2VuZGlmCisgICAgICAgICAgICBwYXRjaC5iYXNlR1BSKTsKKyAgICB9CisK
ICAgICBib29sIHRoaXNWYWx1ZUlzSW5UaGlzR1BSKCkgY29uc3QgeyByZXR1cm4gYWNjZXNzVHlw
ZSA9PSBBY2Nlc3NUeXBlOjpHZXRCeUlkV2l0aFRoaXM7IH0KIAogI2lmICFBU1NFUlRfRElTQUJM
RUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCmluZGV4IDU3NjI1NDYyY2UxODhiNjczYjM5MzM5ZjhhYmU0YmQ3ZGIzMGZkOTIu
LjUzODY2ZjliZjM3NGJlZGI5ZDIwZjE0ZDcxYjI2Nzc3YzM2Yzc2ZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAt
MjI2MSwyOSArMjI2MSw3NiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5v
ZGUpCiAgICAgICAgIGNhc2UgQXJyYXk6OkdlbmVyaWM6IHsKICAgICAgICAgICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgSUMgaGVyZToKICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQwODIKLSAgICAgICAgICAgIGlmIChtX2dyYXBoLnZhckFy
Z0NoaWxkKG5vZGUsIDApLnVzZUtpbmQoKSA9PSBPYmplY3RVc2UpIHsKLSAgICAgICAgICAgICAg
ICBpZiAobV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKS51c2VLaW5kKCkgPT0gU3RyaW5nVXNl
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbXBpbGVHZXRCeVZhbEZvck9iamVjdFdpdGhTdHJp
bmcobm9kZSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgaWYgKG1f
Z3JhcGgubV9zbG93R2V0QnlWYWwuY29udGFpbnMobm9kZSkpIHsKKyAgICAgICAgICAgICAgICBp
ZiAobV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAwKS51c2VLaW5kKCkgPT0gT2JqZWN0VXNlKSB7
CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpLnVz
ZUtpbmQoKSA9PSBTdHJpbmdVc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVH
ZXRCeVZhbEZvck9iamVjdFdpdGhTdHJpbmcobm9kZSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGlm
IChtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpLnVzZUtpbmQoKSA9PSBTeW1ib2xVc2UpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVHZXRCeVZhbEZvck9iamVjdFdpdGhTeW1i
b2wobm9kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGlmIChtX2dyYXBo
LnZhckFyZ0NoaWxkKG5vZGUsIDEpLnVzZUtpbmQoKSA9PSBTeW1ib2xVc2UpIHsKLSAgICAgICAg
ICAgICAgICAgICAgY29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN5bWJvbChub2RlKTsKLSAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbV9ncmFwaC52YXJBcmdDaGlsZChu
b2RlLCAwKSk7IC8vIFNhdmUgYSByZWdpc3Rlciwgc3BlY3VsYXRlIGNlbGwuIFdlJ2xsIHByb2Jh
Ymx5IGJlIHJpZ2h0LgorICAgICAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHByb3BlcnR5KHRo
aXMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkpOworICAgICAgICAgICAgICAgIEdQUlJl
ZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKKyAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyBwcm9w
ZXJ0eVJlZ3MgPSBwcm9wZXJ0eS5qc1ZhbHVlUmVncygpOworICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgICAgICAgICAgICAgSlNWYWx1ZVJl
Z3NGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhpcyk7CisgICAgICAgICAgICAgICAgSlNWYWx1
ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7CisgICAgICAgICAgICAgICAgY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25HZXRCeVZhbENlbGwsIHJlc3VsdFJlZ3MsIFRydXN0ZWRJbW1QdHI6
OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdp
bi5zZW1hbnRpYykpLCBiYXNlR1BSLCBwcm9wZXJ0eVJlZ3MpOworICAgICAgICAgICAgICAgIG1f
aml0LmV4Y2VwdGlvbkNoZWNrKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
anNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0
aGlzLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsgLy8gU2F2ZSBhIHJlZ2lzdGVyLCBz
cGVjdWxhdGUgY2VsbC4gV2UnbGwgcHJvYmFibHkgYmUgcmlnaHQuCi0gICAgICAgICAgICBKU1Zh
bHVlT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsK
LSAgICAgICAgICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKKyAgICAgICAgICAgIHNw
ZWN1bGF0ZShub2RlLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKKyAgICAgICAgICAg
IHNwZWN1bGF0ZShub2RlLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKKworICAgICAg
ICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlzLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUs
IDApLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICAgICAgSlNWYWx1ZU9wZXJh
bmQgcHJvcGVydHkodGhpcywgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKSwgTWFudWFsT3Bl
cmFuZFNwZWN1bGF0aW9uKTsKKyAgICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHRUYWcodGhp
cywgUmV1c2UsIHByb3BlcnR5LCBUYWdXb3JkKTsKKyAgICAgICAgICAgIEdQUlRlbXBvcmFyeSBy
ZXN1bHRQYXlsb2FkKHRoaXMsIFJldXNlLCBwcm9wZXJ0eSwgUGF5bG9hZFdvcmQpOworCisgICAg
ICAgICAgICBKU1ZhbHVlUmVncyBiYXNlUmVncyA9IGJhc2UuanNWYWx1ZVJlZ3MoKTsKICAgICAg
ICAgICAgIEpTVmFsdWVSZWdzIHByb3BlcnR5UmVncyA9IHByb3BlcnR5LmpzVmFsdWVSZWdzKCk7
CisgICAgICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzKHJlc3VsdFRhZy5ncHIoKSwgcmVz
dWx0UGF5bG9hZC5ncHIoKSk7CisKKyAgICAgICAgICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiA9
IG5vZGUtPm9yaWdpbi5zZW1hbnRpYzsKKyAgICAgICAgICAgIENhbGxTaXRlSW5kZXggY2FsbFNp
dGUgPSBtX2ppdC5yZWNvcmRDYWxsU2l0ZUFuZEdlbmVyYXRlRXhjZXB0aW9uSGFuZGxpbmdPU1JF
eGl0SWZOZWVkZWQoY29kZU9yaWdpbiwgbV9zdHJlYW0tPnNpemUoKSk7CisgICAgICAgICAgICBS
ZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzID0gdGhpcy0+dXNlZFJlZ2lzdGVycygpOworCisgICAg
ICAgICAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOworICAgICAgICAgICAgaWYg
KCFtX3N0YXRlLmZvck5vZGUobV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAwKSkuaXNUeXBlKFNw
ZWNDZWxsKSkKKyAgICAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaElm
Tm90Q2VsbChiYXNlUmVncy50YWdHUFIoKSkpOworCisgICAgICAgICAgICBKSVRHZXRCeVZhbEdl
bmVyYXRvciBnZW4oCisgICAgICAgICAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIGNvZGVPcmln
aW4sIGNhbGxTaXRlLCB1c2VkUmVnaXN0ZXJzLAorICAgICAgICAgICAgICAgIGJhc2VSZWdzLCBw
cm9wZXJ0eVJlZ3MsIHJlc3VsdFJlZ3MpOworCisgICAgICAgICAgICBpZiAobV9zdGF0ZS5mb3JO
b2RlKG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkpLmlzVHlwZShTcGVjU3RyaW5nKSkKKyAg
ICAgICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+cHJvcGVydHlJc1N0cmluZyA9IHRydWU7Cisg
ICAgICAgICAgICBlbHNlIGlmIChtX3N0YXRlLmZvck5vZGUobV9ncmFwaC52YXJBcmdDaGlsZChu
b2RlLCAxKSkuaXNUeXBlKFNwZWNJbnQzMk9ubHkpKQorICAgICAgICAgICAgICAgIGdlbi5zdHVi
SW5mbygpLT5wcm9wZXJ0eUlzSW50MzIgPSB0cnVlOworICAgICAgICAgICAgZWxzZSBpZiAobV9z
dGF0ZS5mb3JOb2RlKG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkpLmlzVHlwZShTcGVjU3lt
Ym9sKSkKKyAgICAgICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+cHJvcGVydHlJc1N5bWJvbCA9
IHRydWU7CisKKyAgICAgICAgICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0KTsKICAgICAg
ICAgICAgIAotICAgICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKLSAgICAgICAgICAgIEpTVmFs
dWVSZWdzRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMpOwotICAgICAgICAgICAgSlNWYWx1
ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7Ci0gICAgICAgICAgICBjYWxsT3BlcmF0
aW9uKG9wZXJhdGlvbkdldEJ5VmFsQ2VsbCwgcmVzdWx0UmVncywgVHJ1c3RlZEltbVB0cjo6d2Vh
a1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNl
bWFudGljKSksIGJhc2VHUFIsIHByb3BlcnR5UmVncyk7Ci0gICAgICAgICAgICBtX2ppdC5leGNl
cHRpb25DaGVjaygpOworICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChnZW4uc2xvd1BhdGhK
dW1wKCkpOworCisgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2xvd1BhdGhHZW5lcmF0b3I+
IHNsb3dQYXRoID0gc2xvd1BhdGhDYWxsKAorICAgICAgICAgICAgICAgIHNsb3dDYXNlcywgdGhp
cywgb3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZSwKKyAgICAgICAgICAgICAgICByZXN1bHRSZWdz
LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVj
dEZvcihjb2RlT3JpZ2luKSksIGdlbi5zdHViSW5mbygpLCBudWxscHRyLCBiYXNlUmVncywgcHJv
cGVydHlSZWdzKTsKICAgICAgICAgICAgIAorICAgICAgICAgICAgbV9qaXQuYWRkR2V0QnlWYWwo
Z2VuLCBzbG93UGF0aC5nZXQoKSk7CisgICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihX
VEZNb3ZlKHNsb3dQYXRoKSk7CisKICAgICAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVn
cywgbm9kZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcAppbmRleCBj
ZDZhYTMxNzY2Y2Q2ODY2ZjBkNWE2ZWMzODA2ZGI4ZDlkNzJkNTJlLi45OTdhNWVlYzYwNzBjYzE5
ZDIwNDIwNzEwNzU3Y2U3ZTkwY2RjYzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcApAQCAtNzgsNyArNzgsNyBAQCBK
SVRCeUlkR2VuZXJhdG9yOjpKSVRCeUlkR2VuZXJhdG9yKAogI2lmIFVTRShKU1ZBTFVFMzJfNjQp
CiAgICAgbV9zdHViSW5mby0+cGF0Y2guYmFzZVRhZ0dQUiA9IGJhc2UudGFnR1BSKCk7CiAgICAg
bV9zdHViSW5mby0+cGF0Y2gudmFsdWVUYWdHUFIgPSB2YWx1ZS50YWdHUFIoKTsKLSAgICBtX3N0
dWJJbmZvLT5wYXRjaC50aGlzVGFnR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICBtX3N0dWJJbmZv
LT5wYXRjaC52LnRoaXNUYWdHUFIgPSBJbnZhbGlkR1BSUmVnOwogI2VuZGlmCiB9CiAKQEAgLTEy
NCw3ICsxMjQsNyBAQCBKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3I6OkpJVEdldEJ5SWRXaXRo
VGhpc0dlbmVyYXRvcigKIAogICAgIG1fc3R1YkluZm8tPnBhdGNoLnUudGhpc0dQUiA9IHRoaXNS
ZWdzLnBheWxvYWRHUFIoKTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgIG1fc3R1YkluZm8t
PnBhdGNoLnRoaXNUYWdHUFIgPSB0aGlzUmVncy50YWdHUFIoKTsKKyAgICBtX3N0dWJJbmZvLT5w
YXRjaC52LnRoaXNUYWdHUFIgPSB0aGlzUmVncy50YWdHUFIoKTsKICNlbmRpZgogfQogCkBAIC0x
OTAsNyArMTkwLDcgQEAgSklUSW5zdGFuY2VPZkdlbmVyYXRvcjo6SklUSW5zdGFuY2VPZkdlbmVy
YXRvcigKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgIG1fc3R1YkluZm8tPnBhdGNoLmJhc2VU
YWdHUFIgPSBJbnZhbGlkR1BSUmVnOwogICAgIG1fc3R1YkluZm8tPnBhdGNoLnZhbHVlVGFnR1BS
ID0gSW52YWxpZEdQUlJlZzsKLSAgICBtX3N0dWJJbmZvLT5wYXRjaC50aGlzVGFnR1BSID0gSW52
YWxpZEdQUlJlZzsKKyAgICBtX3N0dWJJbmZvLT5wYXRjaC52LnRoaXNUYWdHUFIgPSBJbnZhbGlk
R1BSUmVnOwogI2VuZGlmCiAKICAgICBtX3N0dWJJbmZvLT5wYXRjaC51c2VkUmVnaXN0ZXJzLmNs
ZWFyKHJlc3VsdCk7CkBAIC0yMjksNiArMjI5LDExIEBAIEpJVEdldEJ5VmFsR2VuZXJhdG9yOjpK
SVRHZXRCeVZhbEdlbmVyYXRvcihDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZU9yaWdpbiBjb2Rl
CiAgICAgbV9zdHViSW5mby0+cGF0Y2guYmFzZUdQUiA9IGJhc2UucGF5bG9hZEdQUigpOwogICAg
IG1fc3R1YkluZm8tPnBhdGNoLnUucHJvcGVydHlHUFIgPSBwcm9wZXJ0eS5wYXlsb2FkR1BSKCk7
CiAgICAgbV9zdHViSW5mby0+cGF0Y2gudmFsdWVHUFIgPSByZXN1bHQucGF5bG9hZEdQUigpOwor
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgbV9zdHViSW5mby0+cGF0Y2guYmFzZVRhZ0dQUiA9
IGJhc2UudGFnR1BSKCk7CisgICAgbV9zdHViSW5mby0+cGF0Y2gudmFsdWVUYWdHUFIgPSByZXN1
bHQudGFnR1BSKCk7CisgICAgbV9zdHViSW5mby0+cGF0Y2gudi5wcm9wZXJ0eVRhZ0dQUiA9IHBy
b3BlcnR5LnRhZ0dQUigpOworI2VuZGlmCiB9CiAKIHZvaWQgSklUR2V0QnlWYWxHZW5lcmF0b3I6
OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCmluZGV4IDgwMGRm
ODlkNWUyN2Q4OGNiZWM2YmIyMWY4YjRkZDRjYzNkMzkxNDIuLjA0NWU2N2YyMGQ2NGE0Njg1NzM4
ZTE5MjljNWM1NTBkZjVlZGU1NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcApAQCAtMTUzLDcgKzE1Myw3IEBAIHZvaWQg
SklUOjplbWl0X29wX2dldF9ieV92YWwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbikKICAgICBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwocmVnVDAsIHJlZ1Q0LCBw
cm9maWxlKTsKIAogICAgIEpJVEdldEJ5VmFsR2VuZXJhdG9yIGdlbigKLSAgICAgICAgbV9jb2Rl
QmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChtX2J5dGVj
b2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCisgICAg
ICAgIG1fY29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5k
ZXgoQnl0ZWNvZGVJbmRleChiaXR3aXNlX2Nhc3Q8dWludDMyX3Q+KGN1cnJlbnRJbnN0cnVjdGlv
bikpKSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAogICAgICAgICBK
U1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIp
LCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApKTsKICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgq
dGhpcyk7CiAgICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKQEAgLTE3Niw3ICsx
NzYsNyBAQCB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlv
biogY3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8UwogICAgIGxpbmtBbGxTbG93Q2FzZXMoaXRl
cik7CiAKICAgICBMYWJlbCBjb2xkUGF0aEJlZ2luID0gbGFiZWwoKTsKLSAgICBDYWxsIGNhbGwg
PSBjYWxsT3BlcmF0aW9uV2l0aFByb2ZpbGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2sp
LCBvcGVyYXRpb25HZXRCeVZhbEdlbmVyaWMsIGRzdCwgVHJ1c3RlZEltbVB0cihtX2NvZGVCbG9j
ay0+Z2xvYmFsT2JqZWN0KCkpLCBnZW4uc3R1YkluZm8oKSwgcHJvZmlsZSwgSlNWYWx1ZVJlZ3Mo
cmVnVDEsIHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKSk7CisgICAgQ2FsbCBjYWxs
ID0gY2FsbE9wZXJhdGlvbldpdGhQcm9maWxlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2Nr
KSwgb3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZSwgZHN0LCBUcnVzdGVkSW1tUHRyKG1fY29kZUJs
b2NrLT5nbG9iYWxPYmplY3QoKSksIGdlbi5zdHViSW5mbygpLCBwcm9maWxlLCBKU1ZhbHVlUmVn
cyhyZWdUMSwgcmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpKTsKICAgICBnZW4ucmVw
b3J0U2xvd1BhdGhDYWxsKGNvbGRQYXRoQmVnaW4sIGNhbGwpOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384290</attachid>
            <date>2019-11-25 04:51:40 -0800</date>
            <delta_ts>2019-12-01 08:02:56 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204082-20191125095138.patch</filename>
            <type>text/plain</type>
            <size>26019</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyODUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
Y2MxN2E2NWRhMjg3YjBjYzZlMTkzNzhkNzg0ZDFlMzI3OWIyMDUyLi4yNTk2ZDA0OTFmNDY5ODRh
ODc5NjQ4MjM4YTEyOGEwYjU0Mjc0NTljIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAxOS0xMS0yNSAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgSW1wbGVtZW50IEdldEJ5VmFsIGlubGluZSBjYWNoaW5nIGZvciAzMi1iaXQg
SklUcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAy
NzY3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2Ug
YXJlIGFkZGluZyAzMi1iaXQgc3VwcG9ydCBmb3IgR2V0QnlWYWwgY2FzZXMgYWRkZWQgb24gcjI1
MjY4NC4KKyAgICAgICAgVGhpcyByZXF1aXJlcyBjaGFuZ2VzIG9uIHNvbWUgb2YgdGhlIElDIGNv
ZGUgZ2VuZXJhdGVkIHRvIHByb3Blcmx5CisgICAgICAgIHN1cHBvcnQgSlNWQUxVRTMyXzY0LiBU
aGUgbWFqb3IgZGlmZmVyZW5jZSBmcm9tIEpTVkFMVUU2NCBpcyB0aGUKKyAgICAgICAgdXNhZ2Ug
b2YgdGFnR1BSIHRvIGluc3BlY3QgdmFsdWUgdHlwZXMgYW5kIHN0b3JlIHJlc3VsdHMuCisKKyAg
ICAgICAgKiBieXRlY29kZS9BY2Nlc3NDYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2Fz
ZTo6Z2VuZXJhdGVXaXRoR3VhcmQpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpnZW5lcmF0
ZUltcGwpOgorICAgICAgICAqIGJ5dGVjb2RlL0dldHRlclNldHRlckFjY2Vzc0Nhc2UuY3BwOgor
ICAgICAgICAoSlNDOjpHZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlOjplbWl0RE9NSklUR2V0dGVyKToK
KyAgICAgICAgKiBieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6
OlBvbHltb3JwaGljQWNjZXNzOjpyZWdlbmVyYXRlKToKKyAgICAgICAgKiBieXRlY29kZS9TdHJ1
Y3R1cmVTdHViSW5mby5oOgorCisgICAgICAgIFNpbmNlIGEgZ2VuZXJhdG9yIGNhbid0IGhhdmUg
YHRoaXNHUFJgIGFuZCBgcHJvcGVydHlHUFJgIGF0IHNlIHNhbWUgdGltZSwKKyAgICAgICAgd2Ug
Y3JlYXRlZCBhIG5ldyBgdW5pb25gIHRvIHNoYXJlIGB0aGlzVGFnR1BSYCBhbmQgYHByb3BlcnR5
VGFnR1BSYCwKKyAgICAgICAgbWF0Y2hpbmcgdGhlIGFwcHJvYWNoIHdlIGhhdmUgZm9yIGBKSVRJ
bmxpbmVDYWNoZUdlbmVyYXRvcjo6cGF0Y2gudWAuCisKKyAgICAgICAgKEpTQzo6U3RydWN0dXJl
U3R1YkluZm86OnByb3BlcnR5UmVncyBjb25zdCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVN0
dWJJbmZvOjpiYXNlUmVncyBjb25zdCk6CisKKyAgICAgICAgVG8gc2ltcGxpZnkgc2NyYXRjaCBy
ZWdpc3RlciBhbGxvY2F0aW9uLCB3ZSBhZGRlZCBgYmFzZVJlZ3MoKWAgYW5kCisgICAgICAgIGBw
cm9wZXJ0eVJlZ3MoKWAgdG8gYFN0cnVjdHVyZVN0dWJJbmZvYCwgc28gd2UgY2FuIGVhc2lseSBy
ZXRyaXZlCisgICAgICAgIHBheWxvYWQgYW5kIHRhZyBHUFJzIGZvciB0aG9zZSBvcGVyYW5kcywg
a2VlcGluZyB0aGVtIGxvY2tlZC4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMy
XzY0LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6Cisg
ICAgICAgICogaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
SklUQnlJZEdlbmVyYXRvcjo6SklUQnlJZEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkpJVEdl
dEJ5SWRXaXRoVGhpc0dlbmVyYXRvcjo6SklUR2V0QnlJZFdpdGhUaGlzR2VuZXJhdG9yKToKKyAg
ICAgICAgKEpTQzo6SklUSW5zdGFuY2VPZkdlbmVyYXRvcjo6SklUSW5zdGFuY2VPZkdlbmVyYXRv
cik6CisgICAgICAgIChKU0M6OkpJVEdldEJ5VmFsR2VuZXJhdG9yOjpKSVRHZXRCeVZhbEdlbmVy
YXRvcik6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwOgorICAgICAg
ICAoSlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1p
dFNsb3dfb3BfZ2V0X2J5X3ZhbCk6CisKIDIwMTktMTEtMjQgIFl1c3VrZSBTdXp1a2kgIDx5c3V6
dWtpQGFwcGxlLmNvbT4KIAogICAgICAgICBbSlNDXSBJbnRyb2R1Y2UgSXNvSGVhcENlbGxUeXBl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5j
cHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAKaW5kZXgg
NzAyZGViYWExY2EyYjI1N2VjNmRjZGUxZTc3NDJjMzg4YWE5NDM3NS4uODA4MTEyMmQ0MDRjMWNh
Y2UwMTExMWNkMjAzY2ZiMzFlYTFiODVmNCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9i
eXRlY29kZS9BY2Nlc3NDYXNlLmNwcApAQCAtODcxLDkgKzg3MSw5IEBAIHZvaWQgQWNjZXNzQ2Fz
ZTo6Z2VuZXJhdGVXaXRoR3VhcmQoCiAgICAgICAgIGZhbGxUaHJvdWdoLmFwcGVuZChqaXQuYnJh
bmNoMzIoQ0NhbGxIZWxwZXJzOjpOb3RFcXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpU
cnVzdGVkSW1tMzIoU2NvcGVkQXJndW1lbnRzVHlwZSkpKTsKIAogICAgICAgICBTY3JhdGNoUmVn
aXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9yKHN0dWJJbmZvLnBhdGNoLnVzZWRSZWdpc3RlcnMpOwot
ICAgICAgICBhbGxvY2F0b3IubG9jayhiYXNlR1BSKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2so
dmFsdWVSZWdzLnBheWxvYWRHUFIoKSk7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHByb3BlcnR5
R1BSKTsKKyAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8uYmFzZVJlZ3MoKSk7CisgICAg
ICAgIGFsbG9jYXRvci5sb2NrKHZhbHVlUmVncyk7CisgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0
dWJJbmZvLnByb3BlcnR5UmVncygpKTsKICAgICAgICAgYWxsb2NhdG9yLmxvY2soc2NyYXRjaEdQ
Uik7CiAgICAgICAgIAogICAgICAgICBHUFJSZWcgc2NyYXRjaDJHUFIgPSBhbGxvY2F0b3IuYWxs
b2NhdGVTY3JhdGNoR1BSKCk7CkBAIC05MDIsOSArOTAyLDE2IEBAIHZvaWQgQWNjZXNzQ2FzZTo6
Z2VuZXJhdGVXaXRoR3VhcmQoCiAgICAgICAgIGppdC5zdWIzMihwcm9wZXJ0eUdQUiwgc2NyYXRj
aDJHUFIpOwogICAgICAgICBqaXQubmVnMzIoc2NyYXRjaDJHUFIpOwogICAgICAgICBqaXQubG9h
ZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJlc3MoYmFzZUdQUiwgU2NvcGVkQXJndW1lbnRzOjpvZmZz
ZXRPZlN0b3JhZ2UoKSksIHNjcmF0Y2gzR1BSKTsKLSAgICAgICAgaml0LmxvYWRWYWx1ZShDQ2Fs
bEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoM0dQUiwgc2NyYXRjaDJHUFIsIENDYWxsSGVscGVy
czo6VGltZXNFaWdodCksIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShzY3JhdGNoR1BSKSk7Cisj
aWYgVVNFKEpTVkFMVUU2NCkKKyAgICAgICAgaml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBlcnM6OkJh
c2VJbmRleChzY3JhdGNoM0dQUiwgc2NyYXRjaDJHUFIsIENDYWxsSGVscGVyczo6VGltZXNFaWdo
dCksIEpTVmFsdWVSZWdzKHNjcmF0Y2hHUFIpKTsKICAgICAgICAgZmFpbEFuZElnbm9yZS5hcHBl
bmQoaml0LmJyYW5jaElmRW1wdHkoc2NyYXRjaEdQUikpOwogICAgICAgICBqaXQubW92ZShzY3Jh
dGNoR1BSLCB2YWx1ZVJlZ3MucGF5bG9hZEdQUigpKTsKKyNlbHNlCisgICAgICAgIGppdC5sb2Fk
VmFsdWUoQ0NhbGxIZWxwZXJzOjpCYXNlSW5kZXgoc2NyYXRjaDNHUFIsIHNjcmF0Y2gyR1BSLCBD
Q2FsbEhlbHBlcnM6OlRpbWVzRWlnaHQpLCBKU1ZhbHVlUmVncyhzY3JhdGNoMkdQUiwgc2NyYXRj
aEdQUikpOworICAgICAgICBmYWlsQW5kSWdub3JlLmFwcGVuZChqaXQuYnJhbmNoSWZFbXB0eShz
Y3JhdGNoMkdQUikpOworICAgICAgICBqaXQubW92ZShzY3JhdGNoR1BSLCB2YWx1ZVJlZ3MucGF5
bG9hZEdQUigpKTsKKyAgICAgICAgaml0Lm1vdmUoc2NyYXRjaDJHUFIsIHZhbHVlUmVncy50YWdH
UFIoKSk7CisjZW5kaWYKIAogICAgICAgICBkb25lLmxpbmsoJmppdCk7CiAKQEAgLTk1OSw5ICs5
NjYsOSBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlV2l0aEd1YXJkKAogICAgICAgICBzdGF0
ZS5mYWlsQW5kUmVwYXRjaC5hcHBlbmQoaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6QWJvdmVP
ckVxdWFsLCBwcm9wZXJ0eUdQUiwgc2NyYXRjaEdQUikpOwogCiAgICAgICAgIFNjcmF0Y2hSZWdp
c3RlckFsbG9jYXRvciBhbGxvY2F0b3Ioc3R1YkluZm8ucGF0Y2gudXNlZFJlZ2lzdGVycyk7Ci0g
ICAgICAgIGFsbG9jYXRvci5sb2NrKGJhc2VHUFIpOwotICAgICAgICBhbGxvY2F0b3IubG9jayh2
YWx1ZVJlZ3MucGF5bG9hZEdQUigpKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2socHJvcGVydHlH
UFIpOworICAgICAgICBhbGxvY2F0b3IubG9jayhzdHViSW5mby5iYXNlUmVncygpKTsKKyAgICAg
ICAgYWxsb2NhdG9yLmxvY2sodmFsdWVSZWdzKTsKKyAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1
YkluZm8ucHJvcGVydHlSZWdzKCkpOwogICAgICAgICBhbGxvY2F0b3IubG9jayhzY3JhdGNoR1BS
KTsKICAgICAgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0gYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRj
aEdQUigpOwogCkBAIC0xMDQxLDkgKzEwNDgsOSBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRl
V2l0aEd1YXJkKAogICAgICAgICBmYWxsVGhyb3VnaC5hcHBlbmQoaml0LmJyYW5jaElmTm90U3Ry
aW5nKGJhc2VHUFIpKTsKIAogICAgICAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2Nh
dG9yKHN0dWJJbmZvLnBhdGNoLnVzZWRSZWdpc3RlcnMpOwotICAgICAgICBhbGxvY2F0b3IubG9j
ayhiYXNlR1BSKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2sodmFsdWVSZWdzLnBheWxvYWRHUFIo
KSk7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHByb3BlcnR5R1BSKTsKKyAgICAgICAgYWxsb2Nh
dG9yLmxvY2soc3R1YkluZm8uYmFzZVJlZ3MoKSk7CisgICAgICAgIGFsbG9jYXRvci5sb2NrKHZh
bHVlUmVncyk7CisgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLnByb3BlcnR5UmVncygp
KTsKICAgICAgICAgYWxsb2NhdG9yLmxvY2soc2NyYXRjaEdQUik7CiAgICAgICAgIEdQUlJlZyBz
Y3JhdGNoMkdQUiA9IGFsbG9jYXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKIApAQCAtMTA3Miw2
ICsxMDc5LDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAgICAgICAg
ZmFpbEFuZElnbm9yZS5hcHBlbmQoaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6QWJvdmUsIHNj
cmF0Y2gyR1BSLCBDQ2FsbEhlbHBlcnM6OlRydXN0ZWRJbW0zMihtYXhTaW5nbGVDaGFyYWN0ZXJT
dHJpbmcpKSk7CiAgICAgICAgIGppdC5tb3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih2
bS5zbWFsbFN0cmluZ3Muc2luZ2xlQ2hhcmFjdGVyU3RyaW5ncygpKSwgc2NyYXRjaEdQUik7CiAg
ICAgICAgIGppdC5sb2FkUHRyKENDYWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2hHUFIsIHNj
cmF0Y2gyR1BSLCBDQ2FsbEhlbHBlcnM6OlNjYWxlUHRyLCAwKSwgdmFsdWVSZWdzLnBheWxvYWRH
UFIoKSk7CisgICAgICAgIGppdC5ib3hDZWxsKHZhbHVlUmVncy5wYXlsb2FkR1BSKCksIHZhbHVl
UmVncyk7CiAgICAgICAgIGFsbG9jYXRvci5yZXN0b3JlUmV1c2VkUmVnaXN0ZXJzQnlQb3BwaW5n
KGppdCwgcHJlc2VydmVkU3RhdGUpOwogICAgICAgICBzdGF0ZS5zdWNjZWVkKCk7CiAKQEAgLTEx
MDAsMTEgKzExMDgsMTQgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wIGlzRW1wdHk7CiAKICAgICAgICAgU2NyYXRjaFJlZ2lz
dGVyQWxsb2NhdG9yIGFsbG9jYXRvcihzdHViSW5mby5wYXRjaC51c2VkUmVnaXN0ZXJzKTsKLSAg
ICAgICAgYWxsb2NhdG9yLmxvY2soYmFzZUdQUik7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHZh
bHVlUmVncy5wYXlsb2FkR1BSKCkpOwotICAgICAgICBhbGxvY2F0b3IubG9jayhwcm9wZXJ0eUdQ
Uik7CisgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLmJhc2VSZWdzKCkpOworICAgICAg
ICBhbGxvY2F0b3IubG9jayh2YWx1ZVJlZ3MpOworICAgICAgICBhbGxvY2F0b3IubG9jayhzdHVi
SW5mby5wcm9wZXJ0eVJlZ3MoKSk7CiAgICAgICAgIGFsbG9jYXRvci5sb2NrKHNjcmF0Y2hHUFIp
OwogICAgICAgICBHUFJSZWcgc2NyYXRjaDJHUFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNo
R1BSKCk7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgR1BSUmVnIHNjcmF0Y2gzR1BS
ID0gYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOworI2VuZGlmCiAgICAgICAgIFNjcmF0
Y2hSZWdpc3RlckFsbG9jYXRvcjo6UHJlc2VydmVkU3RhdGUgcHJlc2VydmVkU3RhdGU7CiAKICAg
ICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBmYWlsQW5kSWdub3JlOwpAQCAtMTEyMiw5ICsx
MTMzLDE2IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVXaXRoR3VhcmQoCiAgICAgICAgICAg
ICBpc091dE9mQm91bmRzID0gaml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6QWJvdmVPckVxdWFs
LCBwcm9wZXJ0eUdQUiwgQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIEFycmF5U3Rv
cmFnZTo6dmVjdG9yTGVuZ3RoT2Zmc2V0KCkpKTsKIAogICAgICAgICAgICAgaml0Lnplcm9FeHRl
bmQzMlRvUHRyKHByb3BlcnR5R1BSLCBzY3JhdGNoMkdQUik7Ci0gICAgICAgICAgICBqaXQubG9h
ZFZhbHVlKENDYWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSLCBD
Q2FsbEhlbHBlcnM6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkpLCBK
U1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkoc2NyYXRjaEdQUikpOworI2lmIFVTRShKU1ZBTFVFNjQp
CisgICAgICAgICAgICBqaXQubG9hZFZhbHVlKENDYWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0
Y2hHUFIsIHNjcmF0Y2gyR1BSLCBDQ2FsbEhlbHBlcnM6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFn
ZTo6dmVjdG9yT2Zmc2V0KCkpLCBKU1ZhbHVlUmVncyhzY3JhdGNoR1BSKSk7CiAgICAgICAgICAg
ICBpc0VtcHR5ID0gaml0LmJyYW5jaElmRW1wdHkoc2NyYXRjaEdQUik7CiAgICAgICAgICAgICBq
aXQubW92ZShzY3JhdGNoR1BSLCB2YWx1ZVJlZ3MucGF5bG9hZEdQUigpKTsKKyNlbHNlCisgICAg
ICAgICAgICBqaXQubG9hZFZhbHVlKENDYWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2hHUFIs
IHNjcmF0Y2gyR1BSLCBDQ2FsbEhlbHBlcnM6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVj
dG9yT2Zmc2V0KCkpLCBKU1ZhbHVlUmVncyhzY3JhdGNoM0dQUiwgc2NyYXRjaEdQUikpOworICAg
ICAgICAgICAgaXNFbXB0eSA9IGppdC5icmFuY2hJZkVtcHR5KHNjcmF0Y2gzR1BSKTsKKyAgICAg
ICAgICAgIGppdC5tb3ZlKHNjcmF0Y2hHUFIsIHZhbHVlUmVncy5wYXlsb2FkR1BSKCkpOworICAg
ICAgICAgICAgaml0Lm1vdmUoc2NyYXRjaDNHUFIsIHZhbHVlUmVncy50YWdHUFIoKSk7CisjZW5k
aWYKICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgIEluZGV4aW5nVHlwZSBleHBlY3RlZFNo
YXBlOwogICAgICAgICAgICAgc3dpdGNoIChtX3R5cGUpIHsKQEAgLTExNTUsOSArMTE3MywxNiBA
QCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlV2l0aEd1YXJkKAogICAgICAgICAgICAgICAgIGlz
RW1wdHkgPSBqaXQuYnJhbmNoSWZOYU4oc3RhdGUuc2NyYXRjaEZQUik7CiAgICAgICAgICAgICAg
ICAgaml0LmJveERvdWJsZShzdGF0ZS5zY3JhdGNoRlBSLCB2YWx1ZVJlZ3MpOwogICAgICAgICAg
ICAgfSBlbHNlIHsKLSAgICAgICAgICAgICAgICBqaXQubG9hZFZhbHVlKENDYWxsSGVscGVyczo6
QmFzZUluZGV4KHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSLCBDQ2FsbEhlbHBlcnM6OlRpbWVzRWln
aHQpLCBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkoc2NyYXRjaEdQUikpOworI2lmIFVTRShKU1ZB
TFVFNjQpCisgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBlcnM6OkJhc2VJ
bmRleChzY3JhdGNoR1BSLCBzY3JhdGNoMkdQUiwgQ0NhbGxIZWxwZXJzOjpUaW1lc0VpZ2h0KSwg
SlNWYWx1ZVJlZ3Moc2NyYXRjaEdQUikpOwogICAgICAgICAgICAgICAgIGlzRW1wdHkgPSBqaXQu
YnJhbmNoSWZFbXB0eShzY3JhdGNoR1BSKTsKICAgICAgICAgICAgICAgICBqaXQubW92ZShzY3Jh
dGNoR1BSLCB2YWx1ZVJlZ3MucGF5bG9hZEdQUigpKTsKKyNlbHNlCisgICAgICAgICAgICAgICAg
aml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoR1BSLCBzY3JhdGNo
MkdQUiwgQ0NhbGxIZWxwZXJzOjpUaW1lc0VpZ2h0KSwgSlNWYWx1ZVJlZ3Moc2NyYXRjaDNHUFIs
IHNjcmF0Y2hHUFIpKTsKKyAgICAgICAgICAgICAgICBpc0VtcHR5ID0gaml0LmJyYW5jaElmRW1w
dHkoc2NyYXRjaDNHUFIpOworICAgICAgICAgICAgICAgIGppdC5tb3ZlKHNjcmF0Y2hHUFIsIHZh
bHVlUmVncy5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgICAgIGppdC5tb3ZlKHNjcmF0Y2gz
R1BSLCB2YWx1ZVJlZ3MudGFnR1BSKCkpOworI2VuZGlmCiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KIApAQCAtMTE5NCw5ICsxMjE5LDkgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhH
dWFyZCgKICAgICAgICAgR1BSUmVnIHZhbHVlR1BSID0gdmFsdWVSZWdzLnBheWxvYWRHUFIoKTsK
ICAgICAgICAgCiAgICAgICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciBhbGxvY2F0b3Ioc3R1
YkluZm8ucGF0Y2gudXNlZFJlZ2lzdGVycyk7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKGJhc2VH
UFIpOwotICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1ZUdQUik7Ci0gICAgICAgIGFsbG9jYXRv
ci5sb2NrKHByb3RvdHlwZUdQUik7CisgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLmJh
c2VSZWdzKCkpOworICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1ZVJlZ3MpOworICAgICAgICBh
bGxvY2F0b3IubG9jayhzdHViSW5mby5wcm9wZXJ0eVJlZ3MoKSk7CiAgICAgICAgIGFsbG9jYXRv
ci5sb2NrKHNjcmF0Y2hHUFIpOwogICAgICAgICAKICAgICAgICAgR1BSUmVnIHNjcmF0Y2gyR1BS
ID0gYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwpAQCAtMTcwNywxMCArMTczMiw3IEBA
IHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVJbXBsKEFjY2Vzc0dlbmVyYXRpb25TdGF0ZSYgc3Rh
dGUpCiAgICAgICAgIGJvb2wgYWxsb2NhdGluZ0lubGluZSA9IGFsbG9jYXRpbmcgJiYgIXN0cnVj
dHVyZSgpLT5jb3VsZEhhdmVJbmRleGluZ0hlYWRlcigpOwogCiAgICAgICAgIFNjcmF0Y2hSZWdp
c3RlckFsbG9jYXRvciBhbGxvY2F0b3Ioc3R1YkluZm8ucGF0Y2gudXNlZFJlZ2lzdGVycyk7Ci0g
ICAgICAgIGFsbG9jYXRvci5sb2NrKGJhc2VHUFIpOwotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0g
ICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLnBhdGNoLmJhc2VUYWdHUFIpOwotI2VuZGlm
CisgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLmJhc2VSZWdzKCkpOwogICAgICAgICBh
bGxvY2F0b3IubG9jayh2YWx1ZVJlZ3MpOwogICAgICAgICBhbGxvY2F0b3IubG9jayhzY3JhdGNo
R1BSKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldHRl
clNldHRlckFjY2Vzc0Nhc2UuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dl
dHRlclNldHRlckFjY2Vzc0Nhc2UuY3BwCmluZGV4IDQ5ZTExN2E1YjZmN2E0YWUzODYzNGE0NjU0
NTY5MzBlMGEwNTYxMzUuLmQxOGE3NjU3MTI3OGQzYjM2YjVlYTQyZDhkYmVmMjQ3NWZiZjJmYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9HZXR0ZXJTZXR0ZXJB
Y2Nlc3NDYXNlLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0dGVy
U2V0dGVyQWNjZXNzQ2FzZS5jcHAKQEAgLTEzOSwxMCArMTM5LDcgQEAgdm9pZCBHZXR0ZXJTZXR0
ZXJBY2Nlc3NDYXNlOjplbWl0RE9NSklUR2V0dGVyKEFjY2Vzc0dlbmVyYXRpb25TdGF0ZSYgc3Rh
dGUsIGNvbnMKICAgICBWZWN0b3I8U25pcHBldFBhcmFtczo6VmFsdWU+IHJlZ3M7CiAKICAgICBT
Y3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9yKHN0dWJJbmZvLnBhdGNoLnVzZWRSZWdp
c3RlcnMpOwotICAgIGFsbG9jYXRvci5sb2NrKGJhc2VHUFIpOwotI2lmIFVTRShKU1ZBTFVFMzJf
NjQpCi0gICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8ucGF0Y2guYmFzZVRhZ0dQUik7Ci0jZW5k
aWYKKyAgICBhbGxvY2F0b3IubG9jayhzdHViSW5mby5iYXNlUmVncygpKTsKICAgICBhbGxvY2F0
b3IubG9jayh2YWx1ZVJlZ3MpOwogICAgIGFsbG9jYXRvci5sb2NrKHNjcmF0Y2hHUFIpOwogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nl
c3MuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNz
LmNwcAppbmRleCAyZmI2NzFlOTNhZWJlMTdlZTI5MWE2Mjc4ODZiOGZjNmJjOGQwNGIwLi5iMDY3
OTEyNDkyZmIyMzY5ZDEzNDRjMTUyYjc1ZWZlMGJjZWI1NDFmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAKQEAgLTQ1Miw2
ICs0NTIsOCBAQCBBY2Nlc3NHZW5lcmF0aW9uUmVzdWx0IFBvbHltb3JwaGljQWNjZXNzOjpyZWdl
bmVyYXRlKAogICAgIGFsbG9jYXRvci5sb2NrKHN0YXRlLnZhbHVlUmVncyk7CiAjaWYgVVNFKEpT
VkFMVUUzMl82NCkKICAgICBhbGxvY2F0b3IubG9jayhzdHViSW5mby5wYXRjaC5iYXNlVGFnR1BS
KTsKKyAgICBpZiAoc3R1YkluZm8ucGF0Y2gudi50aGlzVGFnR1BSICE9IEludmFsaWRHUFJSZWcp
CisgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLnBhdGNoLnYudGhpc1RhZ0dQUik7CiAj
ZW5kaWYKIAogICAgIHN0YXRlLnNjcmF0Y2hHUFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNo
R1BSKCk7CkBAIC01MjEsOCArNTIzLDEzIEBAIEFjY2Vzc0dlbmVyYXRpb25SZXN1bHQgUG9seW1v
cnBoaWNBY2Nlc3M6OnJlZ2VuZXJhdGUoCiAgICAgICAgICAgICBpZiAobmVlZHNJbnQzMlByb3Bl
cnR5Q2hlY2spIHsKICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbm90SW50MzI7
CiAKLSAgICAgICAgICAgICAgICBpZiAoIXN0dWJJbmZvLnByb3BlcnR5SXNJbnQzMikKKyAgICAg
ICAgICAgICAgICBpZiAoIXN0dWJJbmZvLnByb3BlcnR5SXNJbnQzMikgeworI2lmIFVTRShKU1ZB
TFVFNjQpIAogICAgICAgICAgICAgICAgICAgICBub3RJbnQzMiA9IGppdC5icmFuY2hJZk5vdElu
dDMyKHN0YXRlLnUucHJvcGVydHlHUFIpOworI2Vsc2UKKyAgICAgICAgICAgICAgICAgICAgbm90
SW50MzIgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihzdGF0ZS5zdHViSW5mby0+cGF0Y2gudi5wcm9w
ZXJ0eVRhZ0dQUik7CisjZW5kaWYKKyAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gY2FzZXMuc2l6ZSgpOyBpLS07KSB7CiAgICAgICAgICAgICAgICAg
ICAgIGZhbGxUaHJvdWdoLmxpbmsoJmppdCk7CiAgICAgICAgICAgICAgICAgICAgIGZhbGxUaHJv
dWdoLmNsZWFyKCk7CkBAIC01NDIsMTIgKzU0OSwxOCBAQCBBY2Nlc3NHZW5lcmF0aW9uUmVzdWx0
IFBvbHltb3JwaGljQWNjZXNzOjpyZWdlbmVyYXRlKAogICAgICAgICAgICAgfQogCiAgICAgICAg
ICAgICBpZiAobmVlZHNTdHJpbmdQcm9wZXJ0eUNoZWNrKSB7Ci0gICAgICAgICAgICAgICAgR1BS
UmVnIHByb3BlcnR5R1BSID0gc3RhdGUudS5wcm9wZXJ0eUdQUjsKICAgICAgICAgICAgICAgICBD
Q2FsbEhlbHBlcnM6Okp1bXBMaXN0IG5vdFN0cmluZzsKKyAgICAgICAgICAgICAgICBHUFJSZWcg
cHJvcGVydHlHUFIgPSBzdGF0ZS51LnByb3BlcnR5R1BSOwogICAgICAgICAgICAgICAgIGlmICgh
c3R1YkluZm8ucHJvcGVydHlJc1N0cmluZykgeworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAg
ICAgICAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eVRhZ0dQUiA9IHN0YXRlLnN0dWJJbmZvLT5w
YXRjaC52LnByb3BlcnR5VGFnR1BSOworICAgICAgICAgICAgICAgICAgICBub3RTdHJpbmcuYXBw
ZW5kKGppdC5icmFuY2hJZk5vdENlbGwocHJvcGVydHlUYWdHUFIpKTsKKyNlbHNlCiAgICAgICAg
ICAgICAgICAgICAgIG5vdFN0cmluZy5hcHBlbmQoaml0LmJyYW5jaElmTm90Q2VsbChwcm9wZXJ0
eUdQUikpOworI2VuZGlmCiAgICAgICAgICAgICAgICAgICAgIG5vdFN0cmluZy5hcHBlbmQoaml0
LmJyYW5jaElmTm90U3RyaW5nKHByb3BlcnR5R1BSKSk7CiAgICAgICAgICAgICAgICAgfQorCiAg
ICAgICAgICAgICAgICAgaml0LmxvYWRQdHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MocHJvcGVy
dHlHUFIsIEpTU3RyaW5nOjpvZmZzZXRPZlZhbHVlKCkpLCBzdGF0ZS5zY3JhdGNoR1BSKTsKIAog
ICAgICAgICAgICAgICAgIHN0YXRlLmZhaWxBbmRSZXBhdGNoLmFwcGVuZChqaXQuYnJhbmNoSWZS
b3BlU3RyaW5nSW1wbChzdGF0ZS5zY3JhdGNoR1BSKSk7CkBAIC01NzEsNyArNTg0LDEyIEBAIEFj
Y2Vzc0dlbmVyYXRpb25SZXN1bHQgUG9seW1vcnBoaWNBY2Nlc3M6OnJlZ2VuZXJhdGUoCiAgICAg
ICAgICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1wTGlzdCBub3RTeW1ib2w7CiAgICAgICAgICAg
ICAgICAgaWYgKCFzdHViSW5mby5wcm9wZXJ0eUlzU3ltYm9sKSB7CiAgICAgICAgICAgICAgICAg
ICAgIEdQUlJlZyBwcm9wZXJ0eUdQUiA9IHN0YXRlLnUucHJvcGVydHlHUFI7CisjaWYgVVNFKEpT
VkFMVUUzMl82NCkKKyAgICAgICAgICAgICAgICAgICAgR1BSUmVnIHByb3BlcnR5VGFnR1BSID0g
c3RhdGUuc3R1YkluZm8tPnBhdGNoLnYucHJvcGVydHlUYWdHUFI7CisgICAgICAgICAgICAgICAg
ICAgIG5vdFN5bWJvbC5hcHBlbmQoaml0LmJyYW5jaElmTm90Q2VsbChwcm9wZXJ0eVRhZ0dQUikp
OworI2Vsc2UKICAgICAgICAgICAgICAgICAgICAgbm90U3ltYm9sLmFwcGVuZChqaXQuYnJhbmNo
SWZOb3RDZWxsKHByb3BlcnR5R1BSKSk7CisjZW5kaWYKICAgICAgICAgICAgICAgICAgICAgbm90
U3ltYm9sLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RTeW1ib2wocHJvcGVydHlHUFIpKTsKICAgICAg
ICAgICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9TdHJ1Y3R1cmVTdHViSW5mby5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0
cnVjdHVyZVN0dWJJbmZvLmgKaW5kZXggNTc4ZTU5NzljMzliMTAyYzdhMDIzYWQ5NTg2ZTZiNjlh
MjI4NTZiZC4uNGJjYzVjYzM1NWUxZTMwZGFjMDUxYjJlNzcxN2VlYmJmNDQ0NGFmMCAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgK
KysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgK
QEAgLTIyMSw3ICsyMjEsMTAgQEAgcHVibGljOgogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAg
ICAgIEdQUlJlZyB2YWx1ZVRhZ0dQUjsKICAgICAgICAgR1BSUmVnIGJhc2VUYWdHUFI7Ci0gICAg
ICAgIEdQUlJlZyB0aGlzVGFnR1BSOworICAgICAgICB1bmlvbiB7CisgICAgICAgICAgICBHUFJS
ZWcgdGhpc1RhZ0dQUjsKKyAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eVRhZ0dQUjsKKyAgICAg
ICAgfSB2OwogI2VuZGlmCiAgICAgfSBwYXRjaDsKIApAQCAtMjQ5LDYgKzI1MiwyNCBAQCBwdWJs
aWM6CiAgICAgICAgICAgICBwYXRjaC52YWx1ZUdQUik7CiAgICAgfQogCisgICAgSlNWYWx1ZVJl
Z3MgcHJvcGVydHlSZWdzKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBKU1ZhbHVlUmVn
cygKKyNpZiBVU0UoSlNWQUxVRTMyXzY0KQorICAgICAgICAgICAgcGF0Y2gudi5wcm9wZXJ0eVRh
Z0dQUiwKKyNlbmRpZgorICAgICAgICAgICAgcGF0Y2gudS5wcm9wZXJ0eUdQUik7CisgICAgfQor
CisgICAgSlNWYWx1ZVJlZ3MgYmFzZVJlZ3MoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJu
IEpTVmFsdWVSZWdzKAorI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICBwYXRjaC5i
YXNlVGFnR1BSLAorI2VuZGlmCisgICAgICAgICAgICBwYXRjaC5iYXNlR1BSKTsKKyAgICB9CisK
ICAgICBib29sIHRoaXNWYWx1ZUlzSW5UaGlzR1BSKCkgY29uc3QgeyByZXR1cm4gYWNjZXNzVHlw
ZSA9PSBBY2Nlc3NUeXBlOjpHZXRCeUlkV2l0aFRoaXM7IH0KIAogI2lmICFBU1NFUlRfRElTQUJM
RUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVK
SVQzMl82NC5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklU
MzJfNjQuY3BwCmluZGV4IDU3NjI1NDYyY2UxODhiNjczYjM5MzM5ZjhhYmU0YmQ3ZGIzMGZkOTIu
LjUzODY2ZjliZjM3NGJlZGI5ZDIwZjE0ZDcxYjI2Nzc3YzM2Yzc2ZjkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHU3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKKysrIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcApAQCAt
MjI2MSwyOSArMjI2MSw3NiBAQCB2b2lkIFNwZWN1bGF0aXZlSklUOjpjb21waWxlKE5vZGUqIG5v
ZGUpCiAgICAgICAgIGNhc2UgQXJyYXk6OkdlbmVyaWM6IHsKICAgICAgICAgICAgIC8vIEZJWE1F
OiBJbXBsZW1lbnQgSUMgaGVyZToKICAgICAgICAgICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQwODIKLSAgICAgICAgICAgIGlmIChtX2dyYXBoLnZhckFy
Z0NoaWxkKG5vZGUsIDApLnVzZUtpbmQoKSA9PSBPYmplY3RVc2UpIHsKLSAgICAgICAgICAgICAg
ICBpZiAobV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKS51c2VLaW5kKCkgPT0gU3RyaW5nVXNl
KSB7Ci0gICAgICAgICAgICAgICAgICAgIGNvbXBpbGVHZXRCeVZhbEZvck9iamVjdFdpdGhTdHJp
bmcobm9kZSk7Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgaWYgKG1f
Z3JhcGgubV9zbG93R2V0QnlWYWwuY29udGFpbnMobm9kZSkpIHsKKyAgICAgICAgICAgICAgICBp
ZiAobV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAwKS51c2VLaW5kKCkgPT0gT2JqZWN0VXNlKSB7
CisgICAgICAgICAgICAgICAgICAgIGlmIChtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpLnVz
ZUtpbmQoKSA9PSBTdHJpbmdVc2UpIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVH
ZXRCeVZhbEZvck9iamVjdFdpdGhTdHJpbmcobm9kZSk7CisgICAgICAgICAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgICAgIGlm
IChtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpLnVzZUtpbmQoKSA9PSBTeW1ib2xVc2UpIHsK
KyAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBpbGVHZXRCeVZhbEZvck9iamVjdFdpdGhTeW1i
b2wobm9kZSk7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgICAg
ICAgICAgfQogICAgICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgICAgIGlmIChtX2dyYXBo
LnZhckFyZ0NoaWxkKG5vZGUsIDEpLnVzZUtpbmQoKSA9PSBTeW1ib2xVc2UpIHsKLSAgICAgICAg
ICAgICAgICAgICAgY29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN5bWJvbChub2RlKTsKLSAg
ICAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICAgICAgfQorICAgICAgICAgICAg
ICAgIFNwZWN1bGF0ZUNlbGxPcGVyYW5kIGJhc2UodGhpcywgbV9ncmFwaC52YXJBcmdDaGlsZChu
b2RlLCAwKSk7IC8vIFNhdmUgYSByZWdpc3Rlciwgc3BlY3VsYXRlIGNlbGwuIFdlJ2xsIHByb2Jh
Ymx5IGJlIHJpZ2h0LgorICAgICAgICAgICAgICAgIEpTVmFsdWVPcGVyYW5kIHByb3BlcnR5KHRo
aXMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkpOworICAgICAgICAgICAgICAgIEdQUlJl
ZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKKyAgICAgICAgICAgICAgICBKU1ZhbHVlUmVncyBwcm9w
ZXJ0eVJlZ3MgPSBwcm9wZXJ0eS5qc1ZhbHVlUmVncygpOworICAgICAgICAgICAgICAgIAorICAg
ICAgICAgICAgICAgIGZsdXNoUmVnaXN0ZXJzKCk7CisgICAgICAgICAgICAgICAgSlNWYWx1ZVJl
Z3NGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhpcyk7CisgICAgICAgICAgICAgICAgSlNWYWx1
ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7CisgICAgICAgICAgICAgICAgY2FsbE9w
ZXJhdGlvbihvcGVyYXRpb25HZXRCeVZhbENlbGwsIHJlc3VsdFJlZ3MsIFRydXN0ZWRJbW1QdHI6
OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2JqZWN0Rm9yKG5vZGUtPm9yaWdp
bi5zZW1hbnRpYykpLCBiYXNlR1BSLCBwcm9wZXJ0eVJlZ3MpOworICAgICAgICAgICAgICAgIG1f
aml0LmV4Y2VwdGlvbkNoZWNrKCk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAgICAg
anNWYWx1ZVJlc3VsdChyZXN1bHRSZWdzLCBub2RlKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
ICAgICAgICAgICAgIH0KIAotICAgICAgICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0
aGlzLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsgLy8gU2F2ZSBhIHJlZ2lzdGVyLCBz
cGVjdWxhdGUgY2VsbC4gV2UnbGwgcHJvYmFibHkgYmUgcmlnaHQuCi0gICAgICAgICAgICBKU1Zh
bHVlT3BlcmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsK
LSAgICAgICAgICAgIEdQUlJlZyBiYXNlR1BSID0gYmFzZS5ncHIoKTsKKyAgICAgICAgICAgIHNw
ZWN1bGF0ZShub2RlLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApKTsKKyAgICAgICAgICAg
IHNwZWN1bGF0ZShub2RlLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpKTsKKworICAgICAg
ICAgICAgSlNWYWx1ZU9wZXJhbmQgYmFzZSh0aGlzLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUs
IDApLCBNYW51YWxPcGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICAgICAgSlNWYWx1ZU9wZXJh
bmQgcHJvcGVydHkodGhpcywgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKSwgTWFudWFsT3Bl
cmFuZFNwZWN1bGF0aW9uKTsKKyAgICAgICAgICAgIEdQUlRlbXBvcmFyeSByZXN1bHRUYWcodGhp
cywgUmV1c2UsIHByb3BlcnR5LCBUYWdXb3JkKTsKKyAgICAgICAgICAgIEdQUlRlbXBvcmFyeSBy
ZXN1bHRQYXlsb2FkKHRoaXMsIFJldXNlLCBwcm9wZXJ0eSwgUGF5bG9hZFdvcmQpOworCisgICAg
ICAgICAgICBKU1ZhbHVlUmVncyBiYXNlUmVncyA9IGJhc2UuanNWYWx1ZVJlZ3MoKTsKICAgICAg
ICAgICAgIEpTVmFsdWVSZWdzIHByb3BlcnR5UmVncyA9IHByb3BlcnR5LmpzVmFsdWVSZWdzKCk7
CisgICAgICAgICAgICBKU1ZhbHVlUmVncyByZXN1bHRSZWdzKHJlc3VsdFRhZy5ncHIoKSwgcmVz
dWx0UGF5bG9hZC5ncHIoKSk7CisKKyAgICAgICAgICAgIENvZGVPcmlnaW4gY29kZU9yaWdpbiA9
IG5vZGUtPm9yaWdpbi5zZW1hbnRpYzsKKyAgICAgICAgICAgIENhbGxTaXRlSW5kZXggY2FsbFNp
dGUgPSBtX2ppdC5yZWNvcmRDYWxsU2l0ZUFuZEdlbmVyYXRlRXhjZXB0aW9uSGFuZGxpbmdPU1JF
eGl0SWZOZWVkZWQoY29kZU9yaWdpbiwgbV9zdHJlYW0tPnNpemUoKSk7CisgICAgICAgICAgICBS
ZWdpc3RlclNldCB1c2VkUmVnaXN0ZXJzID0gdGhpcy0+dXNlZFJlZ2lzdGVycygpOworCisgICAg
ICAgICAgICBKSVRDb21waWxlcjo6SnVtcExpc3Qgc2xvd0Nhc2VzOworICAgICAgICAgICAgaWYg
KCFtX3N0YXRlLmZvck5vZGUobV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAwKSkuaXNUeXBlKFNw
ZWNDZWxsKSkKKyAgICAgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKG1faml0LmJyYW5jaElm
Tm90Q2VsbChiYXNlUmVncy50YWdHUFIoKSkpOworCisgICAgICAgICAgICBKSVRHZXRCeVZhbEdl
bmVyYXRvciBnZW4oCisgICAgICAgICAgICAgICAgbV9qaXQuY29kZUJsb2NrKCksIGNvZGVPcmln
aW4sIGNhbGxTaXRlLCB1c2VkUmVnaXN0ZXJzLAorICAgICAgICAgICAgICAgIGJhc2VSZWdzLCBw
cm9wZXJ0eVJlZ3MsIHJlc3VsdFJlZ3MpOworCisgICAgICAgICAgICBpZiAobV9zdGF0ZS5mb3JO
b2RlKG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkpLmlzVHlwZShTcGVjU3RyaW5nKSkKKyAg
ICAgICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+cHJvcGVydHlJc1N0cmluZyA9IHRydWU7Cisg
ICAgICAgICAgICBlbHNlIGlmIChtX3N0YXRlLmZvck5vZGUobV9ncmFwaC52YXJBcmdDaGlsZChu
b2RlLCAxKSkuaXNUeXBlKFNwZWNJbnQzMk9ubHkpKQorICAgICAgICAgICAgICAgIGdlbi5zdHVi
SW5mbygpLT5wcm9wZXJ0eUlzSW50MzIgPSB0cnVlOworICAgICAgICAgICAgZWxzZSBpZiAobV9z
dGF0ZS5mb3JOb2RlKG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkpLmlzVHlwZShTcGVjU3lt
Ym9sKSkKKyAgICAgICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+cHJvcGVydHlJc1N5bWJvbCA9
IHRydWU7CisKKyAgICAgICAgICAgIGdlbi5nZW5lcmF0ZUZhc3RQYXRoKG1faml0KTsKICAgICAg
ICAgICAgIAotICAgICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKLSAgICAgICAgICAgIEpTVmFs
dWVSZWdzRmx1c2hlZENhbGxSZXN1bHQgcmVzdWx0KHRoaXMpOwotICAgICAgICAgICAgSlNWYWx1
ZVJlZ3MgcmVzdWx0UmVncyA9IHJlc3VsdC5yZWdzKCk7Ci0gICAgICAgICAgICBjYWxsT3BlcmF0
aW9uKG9wZXJhdGlvbkdldEJ5VmFsQ2VsbCwgcmVzdWx0UmVncywgVHJ1c3RlZEltbVB0cjo6d2Vh
a1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3JpZ2luLnNl
bWFudGljKSksIGJhc2VHUFIsIHByb3BlcnR5UmVncyk7Ci0gICAgICAgICAgICBtX2ppdC5leGNl
cHRpb25DaGVjaygpOworICAgICAgICAgICAgc2xvd0Nhc2VzLmFwcGVuZChnZW4uc2xvd1BhdGhK
dW1wKCkpOworCisgICAgICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2xvd1BhdGhHZW5lcmF0b3I+
IHNsb3dQYXRoID0gc2xvd1BhdGhDYWxsKAorICAgICAgICAgICAgICAgIHNsb3dDYXNlcywgdGhp
cywgb3BlcmF0aW9uR2V0QnlWYWxPcHRpbWl6ZSwKKyAgICAgICAgICAgICAgICByZXN1bHRSZWdz
LCBUcnVzdGVkSW1tUHRyOjp3ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVj
dEZvcihjb2RlT3JpZ2luKSksIGdlbi5zdHViSW5mbygpLCBudWxscHRyLCBiYXNlUmVncywgcHJv
cGVydHlSZWdzKTsKICAgICAgICAgICAgIAorICAgICAgICAgICAgbV9qaXQuYWRkR2V0QnlWYWwo
Z2VuLCBzbG93UGF0aC5nZXQoKSk7CisgICAgICAgICAgICBhZGRTbG93UGF0aEdlbmVyYXRvcihX
VEZNb3ZlKHNsb3dQYXRoKSk7CisKICAgICAgICAgICAgIGpzVmFsdWVSZXN1bHQocmVzdWx0UmVn
cywgbm9kZSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcAppbmRleCBj
ZDZhYTMxNzY2Y2Q2ODY2ZjBkNWE2ZWMzODA2ZGI4ZDlkNzJkNTJlLi45OTdhNWVlYzYwNzBjYzE5
ZDIwNDIwNzEwNzU3Y2U3ZTkwY2RjYzRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcApAQCAtNzgsNyArNzgsNyBAQCBK
SVRCeUlkR2VuZXJhdG9yOjpKSVRCeUlkR2VuZXJhdG9yKAogI2lmIFVTRShKU1ZBTFVFMzJfNjQp
CiAgICAgbV9zdHViSW5mby0+cGF0Y2guYmFzZVRhZ0dQUiA9IGJhc2UudGFnR1BSKCk7CiAgICAg
bV9zdHViSW5mby0+cGF0Y2gudmFsdWVUYWdHUFIgPSB2YWx1ZS50YWdHUFIoKTsKLSAgICBtX3N0
dWJJbmZvLT5wYXRjaC50aGlzVGFnR1BSID0gSW52YWxpZEdQUlJlZzsKKyAgICBtX3N0dWJJbmZv
LT5wYXRjaC52LnRoaXNUYWdHUFIgPSBJbnZhbGlkR1BSUmVnOwogI2VuZGlmCiB9CiAKQEAgLTEy
NCw3ICsxMjQsNyBAQCBKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3I6OkpJVEdldEJ5SWRXaXRo
VGhpc0dlbmVyYXRvcigKIAogICAgIG1fc3R1YkluZm8tPnBhdGNoLnUudGhpc0dQUiA9IHRoaXNS
ZWdzLnBheWxvYWRHUFIoKTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgIG1fc3R1YkluZm8t
PnBhdGNoLnRoaXNUYWdHUFIgPSB0aGlzUmVncy50YWdHUFIoKTsKKyAgICBtX3N0dWJJbmZvLT5w
YXRjaC52LnRoaXNUYWdHUFIgPSB0aGlzUmVncy50YWdHUFIoKTsKICNlbmRpZgogfQogCkBAIC0x
OTAsNyArMTkwLDcgQEAgSklUSW5zdGFuY2VPZkdlbmVyYXRvcjo6SklUSW5zdGFuY2VPZkdlbmVy
YXRvcigKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQogICAgIG1fc3R1YkluZm8tPnBhdGNoLmJhc2VU
YWdHUFIgPSBJbnZhbGlkR1BSUmVnOwogICAgIG1fc3R1YkluZm8tPnBhdGNoLnZhbHVlVGFnR1BS
ID0gSW52YWxpZEdQUlJlZzsKLSAgICBtX3N0dWJJbmZvLT5wYXRjaC50aGlzVGFnR1BSID0gSW52
YWxpZEdQUlJlZzsKKyAgICBtX3N0dWJJbmZvLT5wYXRjaC52LnRoaXNUYWdHUFIgPSBJbnZhbGlk
R1BSUmVnOwogI2VuZGlmCiAKICAgICBtX3N0dWJJbmZvLT5wYXRjaC51c2VkUmVnaXN0ZXJzLmNs
ZWFyKHJlc3VsdCk7CkBAIC0yMjksNiArMjI5LDExIEBAIEpJVEdldEJ5VmFsR2VuZXJhdG9yOjpK
SVRHZXRCeVZhbEdlbmVyYXRvcihDb2RlQmxvY2sqIGNvZGVCbG9jaywgQ29kZU9yaWdpbiBjb2Rl
CiAgICAgbV9zdHViSW5mby0+cGF0Y2guYmFzZUdQUiA9IGJhc2UucGF5bG9hZEdQUigpOwogICAg
IG1fc3R1YkluZm8tPnBhdGNoLnUucHJvcGVydHlHUFIgPSBwcm9wZXJ0eS5wYXlsb2FkR1BSKCk7
CiAgICAgbV9zdHViSW5mby0+cGF0Y2gudmFsdWVHUFIgPSByZXN1bHQucGF5bG9hZEdQUigpOwor
I2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgbV9zdHViSW5mby0+cGF0Y2guYmFzZVRhZ0dQUiA9
IGJhc2UudGFnR1BSKCk7CisgICAgbV9zdHViSW5mby0+cGF0Y2gudmFsdWVUYWdHUFIgPSByZXN1
bHQudGFnR1BSKCk7CisgICAgbV9zdHViSW5mby0+cGF0Y2gudi5wcm9wZXJ0eVRhZ0dQUiA9IHBy
b3BlcnR5LnRhZ0dQUigpOworI2VuZGlmCiB9CiAKIHZvaWQgSklUR2V0QnlWYWxHZW5lcmF0b3I6
OmdlbmVyYXRlRmFzdFBhdGgoTWFjcm9Bc3NlbWJsZXImIGppdCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAgYi9Tb3VyY2Uv
SmF2YVNjcmlwdENvcmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCmluZGV4IDgwMGRm
ODlkNWUyN2Q4OGNiZWM2YmIyMWY4YjRkZDRjYzNkMzkxNDIuLjg3ZDI2OTliYmE5NWMzNmJlMTNk
Y2FjMGQxZmZjOGE5NDcxMjdiOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9q
aXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcApAQCAtMTM4LDggKzEzOCw2IEBAIHZvaWQg
SklUOjplbWl0X29wX2RlbF9ieV92YWwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJlbnRJbnN0cnVj
dGlvbikKIAogdm9pZCBKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uKQogewotICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgSUMgaGVyZToK
LSAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0MDgyCiAg
ICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BHZXRCeVZhbD4oKTsK
ICAgICBhdXRvJiBtZXRhZGF0YSA9IGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKTsKICAg
ICBpbnQgZHN0ID0gYnl0ZWNvZGUubV9kc3Qub2Zmc2V0KCk7CkBAIC0xNDksMzUgKzE0Nyw0NiBA
QCB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKGNvbnN0IEluc3RydWN0aW9uKiBjdXJyZW50
SW5zdHJ1Y3Rpb24pCiAKICAgICBlbWl0TG9hZDIoYmFzZSwgcmVnVDEsIHJlZ1QwLCBwcm9wZXJ0
eSwgcmVnVDMsIHJlZ1QyKTsKIAotICAgIGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNl
LCByZWdUMSk7Ci0gICAgZW1pdEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKHJlZ1QwLCByZWdU
NCwgcHJvZmlsZSk7Ci0KLSAgICBKSVRHZXRCeVZhbEdlbmVyYXRvciBnZW4oCi0gICAgICAgIG1f
Y29kZUJsb2NrLCBDb2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgobV9i
eXRlY29kZUluZGV4KSwgUmVnaXN0ZXJTZXQ6OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAot
ICAgICAgICBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdU
MywgcmVnVDIpLCBKU1ZhbHVlUmVncyhyZWdUMSwgcmVnVDApKTsKLSAgICBnZW4uZ2VuZXJhdGVG
YXN0UGF0aCgqdGhpcyk7Ci0gICAgYWRkU2xvd0Nhc2UoZ2VuLnNsb3dQYXRoSnVtcCgpKTsKLSAg
ICBtX2dldEJ5VmFscy5hcHBlbmQoZ2VuKTsKLQotICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUo
Ynl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spKTsKLSAgICBlbWl0U3RvcmUoZHN0LCByZWdU
MSwgcmVnVDApOworICAgIGlmIChtZXRhZGF0YS5tX3NlZW5JZGVudGlmaWVycy5jb3VudCgpID4g
T3B0aW9uczo6Z2V0QnlWYWxJQ01heE51bWJlck9mSWRlbnRpZmllcnMoKSkgeworICAgICAgICBh
dXRvIG5vdENlbGwgPSBicmFuY2hJZk5vdENlbGwocmVnVDEpOworICAgICAgICBlbWl0QXJyYXlQ
cm9maWxpbmdTaXRlV2l0aENlbGwocmVnVDAsIHJlZ1Q0LCBwcm9maWxlKTsKKyAgICAgICAgbm90
Q2VsbC5saW5rKHRoaXMpOworICAgICAgICBjYWxsT3BlcmF0aW9uV2l0aFByb2ZpbGUoYnl0ZWNv
ZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCBvcGVyYXRpb25HZXRCeVZhbCwgZHN0LCBUcnVzdGVk
SW1tUHRyKG1fY29kZUJsb2NrLT5nbG9iYWxPYmplY3QoKSksIEpTVmFsdWVSZWdzKHJlZ1QxLCBy
ZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMikpOworICAgIH0gZWxzZSB7CisgICAgICAg
IGVtaXRKdW1wU2xvd0Nhc2VJZk5vdEpTQ2VsbChiYXNlLCByZWdUMSk7CisgICAgICAgIGVtaXRB
cnJheVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChyZWdUMCwgcmVnVDQsIHByb2ZpbGUpOworCisgICAg
ICAgIEpJVEdldEJ5VmFsR2VuZXJhdG9yIGdlbigKKyAgICAgICAgICAgIG1fY29kZUJsb2NrLCBD
b2RlT3JpZ2luKG1fYnl0ZWNvZGVJbmRleCksIENhbGxTaXRlSW5kZXgoQnl0ZWNvZGVJbmRleChi
aXR3aXNlX2Nhc3Q8dWludDMyX3Q+KGN1cnJlbnRJbnN0cnVjdGlvbikpKSwgUmVnaXN0ZXJTZXQ6
OnN0dWJVbmF2YWlsYWJsZVJlZ2lzdGVycygpLAorICAgICAgICAgICAgSlNWYWx1ZVJlZ3M6OnBh
eWxvYWRPbmx5KHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKSwgSlNWYWx1ZVJlZ3Mo
cmVnVDEsIHJlZ1QwKSk7CisgICAgICAgIGlmIChpc09wZXJhbmRDb25zdGFudEludChwcm9wZXJ0
eSkpCisgICAgICAgICAgICBnZW4uc3R1YkluZm8oKS0+cHJvcGVydHlJc0ludDMyID0gdHJ1ZTsK
KyAgICAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgoKnRoaXMpOworICAgICAgICBhZGRTbG93Q2Fz
ZShnZW4uc2xvd1BhdGhKdW1wKCkpOworICAgICAgICBtX2dldEJ5VmFscy5hcHBlbmQoZ2VuKTsK
KworICAgICAgICBlbWl0VmFsdWVQcm9maWxpbmdTaXRlKGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29k
ZUJsb2NrKSk7CisgICAgICAgIGVtaXRTdG9yZShkc3QsIHJlZ1QxLCByZWdUMCk7CisgICAgfQog
fQogCiB2b2lkIEpJVDo6ZW1pdFNsb3dfb3BfZ2V0X2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiog
Y3VycmVudEluc3RydWN0aW9uLCBWZWN0b3I8U2xvd0Nhc2VFbnRyeT46Oml0ZXJhdG9yJiBpdGVy
KQogewotICAgIGF1dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1Y3Rpb24tPmFzPE9wR2V0QnlW
YWw+KCk7Ci0gICAgaW50IGRzdCA9IGJ5dGVjb2RlLm1fZHN0Lm9mZnNldCgpOwotICAgIGF1dG8m
IG1ldGFkYXRhID0gYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spOwotICAgIEFycmF5UHJv
ZmlsZSogcHJvZmlsZSA9ICZtZXRhZGF0YS5tX2FycmF5UHJvZmlsZTsKKyAgICBpZiAoaGFzQW55
U2xvd0Nhc2VzKGl0ZXIpKSB7CisgICAgICAgIGF1dG8gYnl0ZWNvZGUgPSBjdXJyZW50SW5zdHJ1
Y3Rpb24tPmFzPE9wR2V0QnlWYWw+KCk7CisgICAgICAgIGludCBkc3QgPSBieXRlY29kZS5tX2Rz
dC5vZmZzZXQoKTsKKyAgICAgICAgYXV0byYgbWV0YWRhdGEgPSBieXRlY29kZS5tZXRhZGF0YSht
X2NvZGVCbG9jayk7CisgICAgICAgIEFycmF5UHJvZmlsZSogcHJvZmlsZSA9ICZtZXRhZGF0YS5t
X2FycmF5UHJvZmlsZTsKIAotICAgIEpJVEdldEJ5VmFsR2VuZXJhdG9yJiBnZW4gPSBtX2dldEJ5
VmFsc1ttX2dldEJ5VmFsSW5kZXhdOwotICAgICsrbV9nZXRCeVZhbEluZGV4OworICAgICAgICBK
SVRHZXRCeVZhbEdlbmVyYXRvciYgZ2VuID0gbV9nZXRCeVZhbHNbbV9nZXRCeVZhbEluZGV4XTsK
KyAgICAgICAgKyttX2dldEJ5VmFsSW5kZXg7CiAKLSAgICBsaW5rQWxsU2xvd0Nhc2VzKGl0ZXIp
OworICAgICAgICBsaW5rQWxsU2xvd0Nhc2VzKGl0ZXIpOwogCi0gICAgTGFiZWwgY29sZFBhdGhC
ZWdpbiA9IGxhYmVsKCk7Ci0gICAgQ2FsbCBjYWxsID0gY2FsbE9wZXJhdGlvbldpdGhQcm9maWxl
KGJ5dGVjb2RlLm1ldGFkYXRhKG1fY29kZUJsb2NrKSwgb3BlcmF0aW9uR2V0QnlWYWxHZW5lcmlj
LCBkc3QsIFRydXN0ZWRJbW1QdHIobV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpKSwgZ2VuLnN0
dWJJbmZvKCksIHByb2ZpbGUsIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEpTVmFsdWVSZWdz
KHJlZ1QzLCByZWdUMikpOwotICAgIGdlbi5yZXBvcnRTbG93UGF0aENhbGwoY29sZFBhdGhCZWdp
biwgY2FsbCk7CisgICAgICAgIExhYmVsIGNvbGRQYXRoQmVnaW4gPSBsYWJlbCgpOworICAgICAg
ICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uV2l0aFByb2ZpbGUoYnl0ZWNvZGUubWV0YWRhdGEo
bV9jb2RlQmxvY2spLCBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplLCBkc3QsIFRydXN0ZWRJbW1Q
dHIobV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpKSwgZ2VuLnN0dWJJbmZvKCksIHByb2ZpbGUs
IEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCksIEpTVmFsdWVSZWdzKHJlZ1QzLCByZWdUMikpOwor
ICAgICAgICBnZW4ucmVwb3J0U2xvd1BhdGhDYWxsKGNvbGRQYXRoQmVnaW4sIGNhbGwpOworICAg
IH0KIH0KIAogdm9pZCBKSVQ6OmVtaXRfb3BfcHV0X2J5X3ZhbF9kaXJlY3QoY29uc3QgSW5zdHJ1
Y3Rpb24qIGN1cnJlbnRJbnN0cnVjdGlvbikK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384573</attachid>
            <date>2019-12-01 08:02:58 -0800</date>
            <delta_ts>2019-12-01 18:54:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-204082-20191201080257.patch</filename>
            <type>text/plain</type>
            <size>26249</size>
            <attacher name="Caio Lima">ticaiolima</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjUyOTY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCA0
YjJkYzQ3ZmYxOGQ0ZjNhYzliNWMzNTc2OGJiNzFjYjViYzMyOTIzLi4wNTdhZWUzNzQ3NGFkNmRh
ZDQ5ZDFmNWE5ZmM5MjJjMjI5ODIyZWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NiBAQAorMjAxOS0xMi0wMSAgQ2FpbyBMaW1hICA8dGljYWlvbGltYUBnbWFpbC5jb20+
CisKKyAgICAgICAgSW1wbGVtZW50IEdldEJ5VmFsIGlubGluZSBjYWNoaW5nIGZvciAzMi1iaXQg
SklUcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0
MDgyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2FhbSBCYXJhdGkuCisKKyAgICAgICAgV2UgYXJl
IGFkZGluZyAzMi1iaXQgc3VwcG9ydCBmb3IgR2V0QnlWYWwgY2FzZXMgYWRkZWQgb24gcjI1MjY4
NC4KKyAgICAgICAgVGhpcyByZXF1aXJlcyBjaGFuZ2VzIG9uIHNvbWUgb2YgdGhlIElDIGNvZGUg
Z2VuZXJhdGVkIHRvIHByb3Blcmx5CisgICAgICAgIHN1cHBvcnQgSlNWQUxVRTMyXzY0LiBUaGUg
bWFqb3IgZGlmZmVyZW5jZSBmcm9tIEpTVkFMVUU2NCBpcyB0aGUKKyAgICAgICAgdXNhZ2Ugb2Yg
dGFnR1BSIHRvIGluc3BlY3QgdmFsdWUgdHlwZXMgYW5kIHN0b3JlIHJlc3VsdHMuCisKKyAgICAg
ICAgKiBieXRlY29kZS9BY2Nlc3NDYXNlLmNwcDoKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6
Z2VuZXJhdGVXaXRoR3VhcmQpOgorICAgICAgICAoSlNDOjpBY2Nlc3NDYXNlOjpnZW5lcmF0ZUlt
cGwpOgorICAgICAgICAqIGJ5dGVjb2RlL0dldHRlclNldHRlckFjY2Vzc0Nhc2UuY3BwOgorICAg
ICAgICAoSlNDOjpHZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlOjplbWl0RE9NSklUR2V0dGVyKToKKyAg
ICAgICAgKiBieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHA6CisgICAgICAgIChKU0M6OlBv
bHltb3JwaGljQWNjZXNzOjpyZWdlbmVyYXRlKToKKyAgICAgICAgKiBieXRlY29kZS9TdHJ1Y3R1
cmVTdHViSW5mby5oOgorCisgICAgICAgIFNpbmNlIGEgZ2VuZXJhdG9yIGNhbid0IGhhdmUgYHRo
aXNHUFJgIGFuZCBgcHJvcGVydHlHUFJgIGF0IHNlIHNhbWUgdGltZSwKKyAgICAgICAgd2UgY3Jl
YXRlZCBhIG5ldyBgdW5pb25gIHRvIHNoYXJlIGB0aGlzVGFnR1BSYCBhbmQgYHByb3BlcnR5VGFn
R1BSYCwKKyAgICAgICAgbWF0Y2hpbmcgdGhlIGFwcHJvYWNoIHdlIGhhdmUgZm9yIGBKSVRJbmxp
bmVDYWNoZUdlbmVyYXRvcjo6cGF0Y2gudWAuCisKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU3R1
YkluZm86OnByb3BlcnR5UmVncyBjb25zdCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZVN0dWJJ
bmZvOjpiYXNlUmVncyBjb25zdCk6CisKKyAgICAgICAgVG8gc2ltcGxpZnkgc2NyYXRjaCByZWdp
c3RlciBhbGxvY2F0aW9uLCB3ZSBhZGRlZCBgYmFzZVJlZ3MoKWAgYW5kCisgICAgICAgIGBwcm9w
ZXJ0eVJlZ3MoKWAgdG8gYFN0cnVjdHVyZVN0dWJJbmZvYCwgc28gd2UgY2FuIGVhc2lseSByZXRy
aXZlCisgICAgICAgIHBheWxvYWQgYW5kIHRhZyBHUFJzIGZvciB0aG9zZSBvcGVyYW5kcywga2Vl
cGluZyB0aGVtIGxvY2tlZC4KKworICAgICAgICAqIGRmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0
LmNwcDoKKyAgICAgICAgKEpTQzo6REZHOjpTcGVjdWxhdGl2ZUpJVDo6Y29tcGlsZSk6CisgICAg
ICAgICogaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6SklU
QnlJZEdlbmVyYXRvcjo6SklUQnlJZEdlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkpJVEdldEJ5
SWRXaXRoVGhpc0dlbmVyYXRvcjo6SklUR2V0QnlJZFdpdGhUaGlzR2VuZXJhdG9yKToKKyAgICAg
ICAgKEpTQzo6SklUSW5zdGFuY2VPZkdlbmVyYXRvcjo6SklUSW5zdGFuY2VPZkdlbmVyYXRvcik6
CisgICAgICAgIChKU0M6OkpJVEdldEJ5VmFsR2VuZXJhdG9yOjpKSVRHZXRCeVZhbEdlbmVyYXRv
cik6CisgICAgICAgICogaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwOgorICAgICAgICAo
SlNDOjpKSVQ6OmVtaXRfb3BfZ2V0X2J5X3ZhbCk6CisgICAgICAgIChKU0M6OkpJVDo6ZW1pdFNs
b3dfb3BfZ2V0X2J5X3ZhbCk6CisKIDIwMTktMTEtMjkgIEVpa2UgUmF0aGtlICA8ZXJhY2tAcmVk
aGF0LmNvbT4KIAogICAgICAgICBVc2UgZGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBmb3IgSlNWQUxV
RTY0IHdpdGggR0NDIG9uIHVua25vd24gcGxhdGZvcm0uCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHAKaW5kZXggNzAyZGViYWExY2EyYjI1N2VjNmRjZGUx
ZTc3NDJjMzg4YWE5NDM3NS4uODA4MTEyMmQ0MDRjMWNhY2UwMTExMWNkMjAzY2ZiMzFlYTFiODVm
NCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2Uu
Y3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcApA
QCAtODcxLDkgKzg3MSw5IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVXaXRoR3VhcmQoCiAg
ICAgICAgIGZhbGxUaHJvdWdoLmFwcGVuZChqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpOb3RF
cXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoU2NvcGVkQXJndW1l
bnRzVHlwZSkpKTsKIAogICAgICAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9y
KHN0dWJJbmZvLnBhdGNoLnVzZWRSZWdpc3RlcnMpOwotICAgICAgICBhbGxvY2F0b3IubG9jayhi
YXNlR1BSKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2sodmFsdWVSZWdzLnBheWxvYWRHUFIoKSk7
Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHByb3BlcnR5R1BSKTsKKyAgICAgICAgYWxsb2NhdG9y
LmxvY2soc3R1YkluZm8uYmFzZVJlZ3MoKSk7CisgICAgICAgIGFsbG9jYXRvci5sb2NrKHZhbHVl
UmVncyk7CisgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLnByb3BlcnR5UmVncygpKTsK
ICAgICAgICAgYWxsb2NhdG9yLmxvY2soc2NyYXRjaEdQUik7CiAgICAgICAgIAogICAgICAgICBH
UFJSZWcgc2NyYXRjaDJHUFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoR1BSKCk7CkBAIC05
MDIsOSArOTAyLDE2IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVXaXRoR3VhcmQoCiAgICAg
ICAgIGppdC5zdWIzMihwcm9wZXJ0eUdQUiwgc2NyYXRjaDJHUFIpOwogICAgICAgICBqaXQubmVn
MzIoc2NyYXRjaDJHUFIpOwogICAgICAgICBqaXQubG9hZFB0cihDQ2FsbEhlbHBlcnM6OkFkZHJl
c3MoYmFzZUdQUiwgU2NvcGVkQXJndW1lbnRzOjpvZmZzZXRPZlN0b3JhZ2UoKSksIHNjcmF0Y2gz
R1BSKTsKLSAgICAgICAgaml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3Jh
dGNoM0dQUiwgc2NyYXRjaDJHUFIsIENDYWxsSGVscGVyczo6VGltZXNFaWdodCksIEpTVmFsdWVS
ZWdzOjpwYXlsb2FkT25seShzY3JhdGNoR1BSKSk7CisjaWYgVVNFKEpTVkFMVUU2NCkKKyAgICAg
ICAgaml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoM0dQUiwgc2Ny
YXRjaDJHUFIsIENDYWxsSGVscGVyczo6VGltZXNFaWdodCksIEpTVmFsdWVSZWdzKHNjcmF0Y2hH
UFIpKTsKICAgICAgICAgZmFpbEFuZElnbm9yZS5hcHBlbmQoaml0LmJyYW5jaElmRW1wdHkoc2Ny
YXRjaEdQUikpOwogICAgICAgICBqaXQubW92ZShzY3JhdGNoR1BSLCB2YWx1ZVJlZ3MucGF5bG9h
ZEdQUigpKTsKKyNlbHNlCisgICAgICAgIGppdC5sb2FkVmFsdWUoQ0NhbGxIZWxwZXJzOjpCYXNl
SW5kZXgoc2NyYXRjaDNHUFIsIHNjcmF0Y2gyR1BSLCBDQ2FsbEhlbHBlcnM6OlRpbWVzRWlnaHQp
LCBKU1ZhbHVlUmVncyhzY3JhdGNoMkdQUiwgc2NyYXRjaEdQUikpOworICAgICAgICBmYWlsQW5k
SWdub3JlLmFwcGVuZChqaXQuYnJhbmNoSWZFbXB0eShzY3JhdGNoMkdQUikpOworICAgICAgICBq
aXQubW92ZShzY3JhdGNoR1BSLCB2YWx1ZVJlZ3MucGF5bG9hZEdQUigpKTsKKyAgICAgICAgaml0
Lm1vdmUoc2NyYXRjaDJHUFIsIHZhbHVlUmVncy50YWdHUFIoKSk7CisjZW5kaWYKIAogICAgICAg
ICBkb25lLmxpbmsoJmppdCk7CiAKQEAgLTk1OSw5ICs5NjYsOSBAQCB2b2lkIEFjY2Vzc0Nhc2U6
OmdlbmVyYXRlV2l0aEd1YXJkKAogICAgICAgICBzdGF0ZS5mYWlsQW5kUmVwYXRjaC5hcHBlbmQo
aml0LmJyYW5jaDMyKENDYWxsSGVscGVyczo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eUdQUiwgc2Ny
YXRjaEdQUikpOwogCiAgICAgICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciBhbGxvY2F0b3Io
c3R1YkluZm8ucGF0Y2gudXNlZFJlZ2lzdGVycyk7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKGJh
c2VHUFIpOwotICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1ZVJlZ3MucGF5bG9hZEdQUigpKTsK
LSAgICAgICAgYWxsb2NhdG9yLmxvY2socHJvcGVydHlHUFIpOworICAgICAgICBhbGxvY2F0b3Iu
bG9jayhzdHViSW5mby5iYXNlUmVncygpKTsKKyAgICAgICAgYWxsb2NhdG9yLmxvY2sodmFsdWVS
ZWdzKTsKKyAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8ucHJvcGVydHlSZWdzKCkpOwog
ICAgICAgICBhbGxvY2F0b3IubG9jayhzY3JhdGNoR1BSKTsKICAgICAgICAgR1BSUmVnIHNjcmF0
Y2gyR1BSID0gYWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwogCkBAIC0xMDQxLDkgKzEw
NDgsOSBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVyYXRlV2l0aEd1YXJkKAogICAgICAgICBmYWxs
VGhyb3VnaC5hcHBlbmQoaml0LmJyYW5jaElmTm90U3RyaW5nKGJhc2VHUFIpKTsKIAogICAgICAg
ICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9yKHN0dWJJbmZvLnBhdGNoLnVzZWRS
ZWdpc3RlcnMpOwotICAgICAgICBhbGxvY2F0b3IubG9jayhiYXNlR1BSKTsKLSAgICAgICAgYWxs
b2NhdG9yLmxvY2sodmFsdWVSZWdzLnBheWxvYWRHUFIoKSk7Ci0gICAgICAgIGFsbG9jYXRvci5s
b2NrKHByb3BlcnR5R1BSKTsKKyAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8uYmFzZVJl
Z3MoKSk7CisgICAgICAgIGFsbG9jYXRvci5sb2NrKHZhbHVlUmVncyk7CisgICAgICAgIGFsbG9j
YXRvci5sb2NrKHN0dWJJbmZvLnByb3BlcnR5UmVncygpKTsKICAgICAgICAgYWxsb2NhdG9yLmxv
Y2soc2NyYXRjaEdQUik7CiAgICAgICAgIEdQUlJlZyBzY3JhdGNoMkdQUiA9IGFsbG9jYXRvci5h
bGxvY2F0ZVNjcmF0Y2hHUFIoKTsKIApAQCAtMTA3Miw2ICsxMDc5LDcgQEAgdm9pZCBBY2Nlc3ND
YXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAgICAgICAgZmFpbEFuZElnbm9yZS5hcHBlbmQoaml0
LmJyYW5jaDMyKENDYWxsSGVscGVyczo6QWJvdmUsIHNjcmF0Y2gyR1BSLCBDQ2FsbEhlbHBlcnM6
OlRydXN0ZWRJbW0zMihtYXhTaW5nbGVDaGFyYWN0ZXJTdHJpbmcpKSk7CiAgICAgICAgIGppdC5t
b3ZlKENDYWxsSGVscGVyczo6VHJ1c3RlZEltbVB0cih2bS5zbWFsbFN0cmluZ3Muc2luZ2xlQ2hh
cmFjdGVyU3RyaW5ncygpKSwgc2NyYXRjaEdQUik7CiAgICAgICAgIGppdC5sb2FkUHRyKENDYWxs
SGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSLCBDQ2FsbEhlbHBlcnM6
OlNjYWxlUHRyLCAwKSwgdmFsdWVSZWdzLnBheWxvYWRHUFIoKSk7CisgICAgICAgIGppdC5ib3hD
ZWxsKHZhbHVlUmVncy5wYXlsb2FkR1BSKCksIHZhbHVlUmVncyk7CiAgICAgICAgIGFsbG9jYXRv
ci5yZXN0b3JlUmV1c2VkUmVnaXN0ZXJzQnlQb3BwaW5nKGppdCwgcHJlc2VydmVkU3RhdGUpOwog
ICAgICAgICBzdGF0ZS5zdWNjZWVkKCk7CiAKQEAgLTExMDAsMTEgKzExMDgsMTQgQEAgdm9pZCBB
Y2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1w
IGlzRW1wdHk7CiAKICAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yIGFsbG9jYXRvcihz
dHViSW5mby5wYXRjaC51c2VkUmVnaXN0ZXJzKTsKLSAgICAgICAgYWxsb2NhdG9yLmxvY2soYmFz
ZUdQUik7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHZhbHVlUmVncy5wYXlsb2FkR1BSKCkpOwot
ICAgICAgICBhbGxvY2F0b3IubG9jayhwcm9wZXJ0eUdQUik7CisgICAgICAgIGFsbG9jYXRvci5s
b2NrKHN0dWJJbmZvLmJhc2VSZWdzKCkpOworICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1ZVJl
Z3MpOworICAgICAgICBhbGxvY2F0b3IubG9jayhzdHViSW5mby5wcm9wZXJ0eVJlZ3MoKSk7CiAg
ICAgICAgIGFsbG9jYXRvci5sb2NrKHNjcmF0Y2hHUFIpOwogICAgICAgICBHUFJSZWcgc2NyYXRj
aDJHUFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoR1BSKCk7CisjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKKyAgICAgICAgR1BSUmVnIHNjcmF0Y2gzR1BSID0gYWxsb2NhdG9yLmFsbG9jYXRlU2Ny
YXRjaEdQUigpOworI2VuZGlmCiAgICAgICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvcjo6UHJl
c2VydmVkU3RhdGUgcHJlc2VydmVkU3RhdGU7CiAKICAgICAgICAgQ0NhbGxIZWxwZXJzOjpKdW1w
TGlzdCBmYWlsQW5kSWdub3JlOwpAQCAtMTEyMiw5ICsxMTMzLDE2IEBAIHZvaWQgQWNjZXNzQ2Fz
ZTo6Z2VuZXJhdGVXaXRoR3VhcmQoCiAgICAgICAgICAgICBpc091dE9mQm91bmRzID0gaml0LmJy
YW5jaDMyKENDYWxsSGVscGVyczo6QWJvdmVPckVxdWFsLCBwcm9wZXJ0eUdQUiwgQ0NhbGxIZWxw
ZXJzOjpBZGRyZXNzKHNjcmF0Y2hHUFIsIEFycmF5U3RvcmFnZTo6dmVjdG9yTGVuZ3RoT2Zmc2V0
KCkpKTsKIAogICAgICAgICAgICAgaml0Lnplcm9FeHRlbmQzMlRvUHRyKHByb3BlcnR5R1BSLCBz
Y3JhdGNoMkdQUik7Ci0gICAgICAgICAgICBqaXQubG9hZFZhbHVlKENDYWxsSGVscGVyczo6QmFz
ZUluZGV4KHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSLCBDQ2FsbEhlbHBlcnM6OlRpbWVzRWlnaHQs
IEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkpLCBKU1ZhbHVlUmVnczo6cGF5bG9hZE9ubHko
c2NyYXRjaEdQUikpOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgICAgICBqaXQubG9hZFZh
bHVlKENDYWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSLCBDQ2Fs
bEhlbHBlcnM6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkpLCBKU1Zh
bHVlUmVncyhzY3JhdGNoR1BSKSk7CiAgICAgICAgICAgICBpc0VtcHR5ID0gaml0LmJyYW5jaElm
RW1wdHkoc2NyYXRjaEdQUik7CiAgICAgICAgICAgICBqaXQubW92ZShzY3JhdGNoR1BSLCB2YWx1
ZVJlZ3MucGF5bG9hZEdQUigpKTsKKyNlbHNlCisgICAgICAgICAgICBqaXQubG9hZFZhbHVlKEND
YWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2hHUFIsIHNjcmF0Y2gyR1BSLCBDQ2FsbEhlbHBl
cnM6OlRpbWVzRWlnaHQsIEFycmF5U3RvcmFnZTo6dmVjdG9yT2Zmc2V0KCkpLCBKU1ZhbHVlUmVn
cyhzY3JhdGNoM0dQUiwgc2NyYXRjaEdQUikpOworICAgICAgICAgICAgaXNFbXB0eSA9IGppdC5i
cmFuY2hJZkVtcHR5KHNjcmF0Y2gzR1BSKTsKKyAgICAgICAgICAgIGppdC5tb3ZlKHNjcmF0Y2hH
UFIsIHZhbHVlUmVncy5wYXlsb2FkR1BSKCkpOworICAgICAgICAgICAgaml0Lm1vdmUoc2NyYXRj
aDNHUFIsIHZhbHVlUmVncy50YWdHUFIoKSk7CisjZW5kaWYKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIEluZGV4aW5nVHlwZSBleHBlY3RlZFNoYXBlOwogICAgICAgICAgICAgc3dpdGNo
IChtX3R5cGUpIHsKQEAgLTExNTUsOSArMTE3MywxNiBAQCB2b2lkIEFjY2Vzc0Nhc2U6OmdlbmVy
YXRlV2l0aEd1YXJkKAogICAgICAgICAgICAgICAgIGlzRW1wdHkgPSBqaXQuYnJhbmNoSWZOYU4o
c3RhdGUuc2NyYXRjaEZQUik7CiAgICAgICAgICAgICAgICAgaml0LmJveERvdWJsZShzdGF0ZS5z
Y3JhdGNoRlBSLCB2YWx1ZVJlZ3MpOwogICAgICAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAg
ICAgICBqaXQubG9hZFZhbHVlKENDYWxsSGVscGVyczo6QmFzZUluZGV4KHNjcmF0Y2hHUFIsIHNj
cmF0Y2gyR1BSLCBDQ2FsbEhlbHBlcnM6OlRpbWVzRWlnaHQpLCBKU1ZhbHVlUmVnczo6cGF5bG9h
ZE9ubHkoc2NyYXRjaEdQUikpOworI2lmIFVTRShKU1ZBTFVFNjQpCisgICAgICAgICAgICAgICAg
aml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBlcnM6OkJhc2VJbmRleChzY3JhdGNoR1BSLCBzY3JhdGNo
MkdQUiwgQ0NhbGxIZWxwZXJzOjpUaW1lc0VpZ2h0KSwgSlNWYWx1ZVJlZ3Moc2NyYXRjaEdQUikp
OwogICAgICAgICAgICAgICAgIGlzRW1wdHkgPSBqaXQuYnJhbmNoSWZFbXB0eShzY3JhdGNoR1BS
KTsKICAgICAgICAgICAgICAgICBqaXQubW92ZShzY3JhdGNoR1BSLCB2YWx1ZVJlZ3MucGF5bG9h
ZEdQUigpKTsKKyNlbHNlCisgICAgICAgICAgICAgICAgaml0LmxvYWRWYWx1ZShDQ2FsbEhlbHBl
cnM6OkJhc2VJbmRleChzY3JhdGNoR1BSLCBzY3JhdGNoMkdQUiwgQ0NhbGxIZWxwZXJzOjpUaW1l
c0VpZ2h0KSwgSlNWYWx1ZVJlZ3Moc2NyYXRjaDNHUFIsIHNjcmF0Y2hHUFIpKTsKKyAgICAgICAg
ICAgICAgICBpc0VtcHR5ID0gaml0LmJyYW5jaElmRW1wdHkoc2NyYXRjaDNHUFIpOworICAgICAg
ICAgICAgICAgIGppdC5tb3ZlKHNjcmF0Y2hHUFIsIHZhbHVlUmVncy5wYXlsb2FkR1BSKCkpOwor
ICAgICAgICAgICAgICAgIGppdC5tb3ZlKHNjcmF0Y2gzR1BSLCB2YWx1ZVJlZ3MudGFnR1BSKCkp
OworI2VuZGlmCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KIApAQCAtMTE5NCw5ICsxMjE5LDkg
QEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAgICAgICAgR1BSUmVnIHZh
bHVlR1BSID0gdmFsdWVSZWdzLnBheWxvYWRHUFIoKTsKICAgICAgICAgCiAgICAgICAgIFNjcmF0
Y2hSZWdpc3RlckFsbG9jYXRvciBhbGxvY2F0b3Ioc3R1YkluZm8ucGF0Y2gudXNlZFJlZ2lzdGVy
cyk7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKGJhc2VHUFIpOwotICAgICAgICBhbGxvY2F0b3Iu
bG9jayh2YWx1ZUdQUik7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHByb3RvdHlwZUdQUik7Cisg
ICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLmJhc2VSZWdzKCkpOworICAgICAgICBhbGxv
Y2F0b3IubG9jayh2YWx1ZVJlZ3MpOworICAgICAgICBhbGxvY2F0b3IubG9jayhzdHViSW5mby5w
cm9wZXJ0eVJlZ3MoKSk7CiAgICAgICAgIGFsbG9jYXRvci5sb2NrKHNjcmF0Y2hHUFIpOwogICAg
ICAgICAKICAgICAgICAgR1BSUmVnIHNjcmF0Y2gyR1BSID0gYWxsb2NhdG9yLmFsbG9jYXRlU2Ny
YXRjaEdQUigpOwpAQCAtMTcwNywxMCArMTczMiw3IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJh
dGVJbXBsKEFjY2Vzc0dlbmVyYXRpb25TdGF0ZSYgc3RhdGUpCiAgICAgICAgIGJvb2wgYWxsb2Nh
dGluZ0lubGluZSA9IGFsbG9jYXRpbmcgJiYgIXN0cnVjdHVyZSgpLT5jb3VsZEhhdmVJbmRleGlu
Z0hlYWRlcigpOwogCiAgICAgICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciBhbGxvY2F0b3Io
c3R1YkluZm8ucGF0Y2gudXNlZFJlZ2lzdGVycyk7Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKGJh
c2VHUFIpOwotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAgIGFsbG9jYXRvci5sb2NrKHN0
dWJJbmZvLnBhdGNoLmJhc2VUYWdHUFIpOwotI2VuZGlmCisgICAgICAgIGFsbG9jYXRvci5sb2Nr
KHN0dWJJbmZvLmJhc2VSZWdzKCkpOwogICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1ZVJlZ3Mp
OwogICAgICAgICBhbGxvY2F0b3IubG9jayhzY3JhdGNoR1BSKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldHRlclNldHRlckFjY2Vzc0Nhc2UuY3BwIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0dldHRlclNldHRlckFjY2Vzc0Nhc2UuY3Bw
CmluZGV4IDQ5ZTExN2E1YjZmN2E0YWUzODYzNGE0NjU0NTY5MzBlMGEwNTYxMzUuLmQxOGE3NjU3
MTI3OGQzYjM2YjVlYTQyZDhkYmVmMjQ3NWZiZjJmYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ieXRlY29kZS9HZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlLmNwcAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0dGVyU2V0dGVyQWNjZXNzQ2FzZS5jcHAKQEAg
LTEzOSwxMCArMTM5LDcgQEAgdm9pZCBHZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlOjplbWl0RE9NSklU
R2V0dGVyKEFjY2Vzc0dlbmVyYXRpb25TdGF0ZSYgc3RhdGUsIGNvbnMKICAgICBWZWN0b3I8U25p
cHBldFBhcmFtczo6VmFsdWU+IHJlZ3M7CiAKICAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3Ig
YWxsb2NhdG9yKHN0dWJJbmZvLnBhdGNoLnVzZWRSZWdpc3RlcnMpOwotICAgIGFsbG9jYXRvci5s
b2NrKGJhc2VHUFIpOwotI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgYWxsb2NhdG9yLmxvY2so
c3R1YkluZm8ucGF0Y2guYmFzZVRhZ0dQUik7Ci0jZW5kaWYKKyAgICBhbGxvY2F0b3IubG9jayhz
dHViSW5mby5iYXNlUmVncygpKTsKICAgICBhbGxvY2F0b3IubG9jayh2YWx1ZVJlZ3MpOwogICAg
IGFsbG9jYXRvci5sb2NrKHNjcmF0Y2hHUFIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvYnl0ZWNvZGUvUG9seW1vcnBoaWNBY2Nlc3MuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAppbmRleCAyZmI2NzFlOTNhZWJl
MTdlZTI5MWE2Mjc4ODZiOGZjNmJjOGQwNGIwLi5iMDY3OTEyNDkyZmIyMzY5ZDEzNDRjMTUyYjc1
ZWZlMGJjZWI1NDFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
UG9seW1vcnBoaWNBY2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29k
ZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAKQEAgLTQ1Miw2ICs0NTIsOCBAQCBBY2Nlc3NHZW5lcmF0
aW9uUmVzdWx0IFBvbHltb3JwaGljQWNjZXNzOjpyZWdlbmVyYXRlKAogICAgIGFsbG9jYXRvci5s
b2NrKHN0YXRlLnZhbHVlUmVncyk7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICBhbGxvY2F0
b3IubG9jayhzdHViSW5mby5wYXRjaC5iYXNlVGFnR1BSKTsKKyAgICBpZiAoc3R1YkluZm8ucGF0
Y2gudi50aGlzVGFnR1BSICE9IEludmFsaWRHUFJSZWcpCisgICAgICAgIGFsbG9jYXRvci5sb2Nr
KHN0dWJJbmZvLnBhdGNoLnYudGhpc1RhZ0dQUik7CiAjZW5kaWYKIAogICAgIHN0YXRlLnNjcmF0
Y2hHUFIgPSBhbGxvY2F0b3IuYWxsb2NhdGVTY3JhdGNoR1BSKCk7CkBAIC01MjEsOCArNTIzLDEz
IEBAIEFjY2Vzc0dlbmVyYXRpb25SZXN1bHQgUG9seW1vcnBoaWNBY2Nlc3M6OnJlZ2VuZXJhdGUo
CiAgICAgICAgICAgICBpZiAobmVlZHNJbnQzMlByb3BlcnR5Q2hlY2spIHsKICAgICAgICAgICAg
ICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgbm90SW50MzI7CiAKLSAgICAgICAgICAgICAgICBpZiAo
IXN0dWJJbmZvLnByb3BlcnR5SXNJbnQzMikKKyAgICAgICAgICAgICAgICBpZiAoIXN0dWJJbmZv
LnByb3BlcnR5SXNJbnQzMikgeworI2lmIFVTRShKU1ZBTFVFNjQpIAogICAgICAgICAgICAgICAg
ICAgICBub3RJbnQzMiA9IGppdC5icmFuY2hJZk5vdEludDMyKHN0YXRlLnUucHJvcGVydHlHUFIp
OworI2Vsc2UKKyAgICAgICAgICAgICAgICAgICAgbm90SW50MzIgPSBqaXQuYnJhbmNoSWZOb3RJ
bnQzMihzdGF0ZS5zdHViSW5mby0+cGF0Y2gudi5wcm9wZXJ0eVRhZ0dQUik7CisjZW5kaWYKKyAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gY2FzZXMu
c2l6ZSgpOyBpLS07KSB7CiAgICAgICAgICAgICAgICAgICAgIGZhbGxUaHJvdWdoLmxpbmsoJmpp
dCk7CiAgICAgICAgICAgICAgICAgICAgIGZhbGxUaHJvdWdoLmNsZWFyKCk7CkBAIC01NDIsMTIg
KzU0OSwxOCBAQCBBY2Nlc3NHZW5lcmF0aW9uUmVzdWx0IFBvbHltb3JwaGljQWNjZXNzOjpyZWdl
bmVyYXRlKAogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAobmVlZHNTdHJpbmdQcm9w
ZXJ0eUNoZWNrKSB7Ci0gICAgICAgICAgICAgICAgR1BSUmVnIHByb3BlcnR5R1BSID0gc3RhdGUu
dS5wcm9wZXJ0eUdQUjsKICAgICAgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXBMaXN0IG5v
dFN0cmluZzsKKyAgICAgICAgICAgICAgICBHUFJSZWcgcHJvcGVydHlHUFIgPSBzdGF0ZS51LnBy
b3BlcnR5R1BSOwogICAgICAgICAgICAgICAgIGlmICghc3R1YkluZm8ucHJvcGVydHlJc1N0cmlu
ZykgeworI2lmIFVTRShKU1ZBTFVFMzJfNjQpCisgICAgICAgICAgICAgICAgICAgIEdQUlJlZyBw
cm9wZXJ0eVRhZ0dQUiA9IHN0YXRlLnN0dWJJbmZvLT5wYXRjaC52LnByb3BlcnR5VGFnR1BSOwor
ICAgICAgICAgICAgICAgICAgICBub3RTdHJpbmcuYXBwZW5kKGppdC5icmFuY2hJZk5vdENlbGwo
cHJvcGVydHlUYWdHUFIpKTsKKyNlbHNlCiAgICAgICAgICAgICAgICAgICAgIG5vdFN0cmluZy5h
cHBlbmQoaml0LmJyYW5jaElmTm90Q2VsbChwcm9wZXJ0eUdQUikpOworI2VuZGlmCiAgICAgICAg
ICAgICAgICAgICAgIG5vdFN0cmluZy5hcHBlbmQoaml0LmJyYW5jaElmTm90U3RyaW5nKHByb3Bl
cnR5R1BSKSk7CiAgICAgICAgICAgICAgICAgfQorCiAgICAgICAgICAgICAgICAgaml0LmxvYWRQ
dHIoTWFjcm9Bc3NlbWJsZXI6OkFkZHJlc3MocHJvcGVydHlHUFIsIEpTU3RyaW5nOjpvZmZzZXRP
ZlZhbHVlKCkpLCBzdGF0ZS5zY3JhdGNoR1BSKTsKIAogICAgICAgICAgICAgICAgIHN0YXRlLmZh
aWxBbmRSZXBhdGNoLmFwcGVuZChqaXQuYnJhbmNoSWZSb3BlU3RyaW5nSW1wbChzdGF0ZS5zY3Jh
dGNoR1BSKSk7CkBAIC01NzEsNyArNTg0LDEyIEBAIEFjY2Vzc0dlbmVyYXRpb25SZXN1bHQgUG9s
eW1vcnBoaWNBY2Nlc3M6OnJlZ2VuZXJhdGUoCiAgICAgICAgICAgICAgICAgQ0NhbGxIZWxwZXJz
OjpKdW1wTGlzdCBub3RTeW1ib2w7CiAgICAgICAgICAgICAgICAgaWYgKCFzdHViSW5mby5wcm9w
ZXJ0eUlzU3ltYm9sKSB7CiAgICAgICAgICAgICAgICAgICAgIEdQUlJlZyBwcm9wZXJ0eUdQUiA9
IHN0YXRlLnUucHJvcGVydHlHUFI7CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICAgICAgICAg
ICAgICAgICAgR1BSUmVnIHByb3BlcnR5VGFnR1BSID0gc3RhdGUuc3R1YkluZm8tPnBhdGNoLnYu
cHJvcGVydHlUYWdHUFI7CisgICAgICAgICAgICAgICAgICAgIG5vdFN5bWJvbC5hcHBlbmQoaml0
LmJyYW5jaElmTm90Q2VsbChwcm9wZXJ0eVRhZ0dQUikpOworI2Vsc2UKICAgICAgICAgICAgICAg
ICAgICAgbm90U3ltYm9sLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RDZWxsKHByb3BlcnR5R1BSKSk7
CisjZW5kaWYKICAgICAgICAgICAgICAgICAgICAgbm90U3ltYm9sLmFwcGVuZChqaXQuYnJhbmNo
SWZOb3RTeW1ib2wocHJvcGVydHlHUFIpKTsKICAgICAgICAgICAgICAgICB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKaW5kZXgg
NTc4ZTU5NzljMzliMTAyYzdhMDIzYWQ5NTg2ZTZiNjlhMjI4NTZiZC4uNDkwMzJmN2JlMDQ4NTc2
NjUxODVhODJlOTI4OThmODhmNTA1MDA2NSAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL2J5dGVjb2RlL1N0cnVjdHVyZVN0dWJJbmZvLmgKQEAgLTIyMCw4ICsyMjAsMTMgQEAgcHVi
bGljOgogICAgICAgICB9IHU7CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKICAgICAgICAgR1BSUmVn
IHZhbHVlVGFnR1BSOworICAgICAgICAvLyBGSVhNRTogWzMyLWJpdHNdIENoZWNrIGlmIFN0cnVj
dHVyZVN0dWJJbmZvOjpwYXRjaC5iYXNlVGFnR1BSIGlzIHVzZWQgc29tZXdoZXJlLgorICAgICAg
ICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA0NzI2CiAgICAg
ICAgIEdQUlJlZyBiYXNlVGFnR1BSOwotICAgICAgICBHUFJSZWcgdGhpc1RhZ0dQUjsKKyAgICAg
ICAgdW5pb24geworICAgICAgICAgICAgR1BSUmVnIHRoaXNUYWdHUFI7CisgICAgICAgICAgICBH
UFJSZWcgcHJvcGVydHlUYWdHUFI7CisgICAgICAgIH0gdjsKICNlbmRpZgogICAgIH0gcGF0Y2g7
CiAKQEAgLTI0OSw2ICsyNTQsMjQgQEAgcHVibGljOgogICAgICAgICAgICAgcGF0Y2gudmFsdWVH
UFIpOwogICAgIH0KIAorICAgIEpTVmFsdWVSZWdzIHByb3BlcnR5UmVncygpIGNvbnN0CisgICAg
eworICAgICAgICByZXR1cm4gSlNWYWx1ZVJlZ3MoCisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAg
ICAgICAgICAgIHBhdGNoLnYucHJvcGVydHlUYWdHUFIsCisjZW5kaWYKKyAgICAgICAgICAgIHBh
dGNoLnUucHJvcGVydHlHUFIpOworICAgIH0KKworICAgIEpTVmFsdWVSZWdzIGJhc2VSZWdzKCkg
Y29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBKU1ZhbHVlUmVncygKKyNpZiBVU0UoSlNWQUxV
RTMyXzY0KQorICAgICAgICAgICAgcGF0Y2guYmFzZVRhZ0dQUiwKKyNlbmRpZgorICAgICAgICAg
ICAgcGF0Y2guYmFzZUdQUik7CisgICAgfQorCiAgICAgYm9vbCB0aGlzVmFsdWVJc0luVGhpc0dQ
UigpIGNvbnN0IHsgcmV0dXJuIGFjY2Vzc1R5cGUgPT0gQWNjZXNzVHlwZTo6R2V0QnlJZFdpdGhU
aGlzOyB9CiAKICNpZiAhQVNTRVJUX0RJU0FCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvZGZnL0RGR1NwZWN1bGF0aXZlSklUMzJfNjQuY3BwIGIvU291cmNlL0phdmFTY3Jp
cHRDb3JlL2RmZy9ERkdTcGVjdWxhdGl2ZUpJVDMyXzY0LmNwcAppbmRleCA1NzYyNTQ2MmNlMTg4
YjY3M2IzOTMzOWY4YWJlNGJkN2RiMzBmZDkyLi42N2IwZTBiMzcwNGNhNTlhODkwYWM1OWM4NmRi
ZDBkMmEwNTZkYjgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR1Nw
ZWN1bGF0aXZlSklUMzJfNjQuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZH
U3BlY3VsYXRpdmVKSVQzMl82NC5jcHAKQEAgLTIyNTksMzEgKzIyNTksNzYgQEAgdm9pZCBTcGVj
dWxhdGl2ZUpJVDo6Y29tcGlsZShOb2RlKiBub2RlKQogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIH0KICAgICAgICAgY2FzZSBBcnJheTo6R2VuZXJpYzogewotICAgICAgICAgICAgLy8gRklY
TUU6IEltcGxlbWVudCBJQyBoZXJlOgotICAgICAgICAgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDA4MgotICAgICAgICAgICAgaWYgKG1fZ3JhcGgudmFy
QXJnQ2hpbGQobm9kZSwgMCkudXNlS2luZCgpID09IE9iamVjdFVzZSkgewotICAgICAgICAgICAg
ICAgIGlmIChtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpLnVzZUtpbmQoKSA9PSBTdHJpbmdV
c2UpIHsKLSAgICAgICAgICAgICAgICAgICAgY29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN0
cmluZyhub2RlKTsKLSAgICAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBpZiAo
bV9ncmFwaC5tX3Nsb3dHZXRCeVZhbC5jb250YWlucyhub2RlKSkgeworICAgICAgICAgICAgICAg
IGlmIChtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApLnVzZUtpbmQoKSA9PSBPYmplY3RVc2Up
IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSku
dXNlS2luZCgpID09IFN0cmluZ1VzZSkgeworICAgICAgICAgICAgICAgICAgICAgICAgY29tcGls
ZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN0cmluZyhub2RlKTsKKyAgICAgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAgICAg
aWYgKG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkudXNlS2luZCgpID09IFN5bWJvbFVzZSkg
eworICAgICAgICAgICAgICAgICAgICAgICAgY29tcGlsZUdldEJ5VmFsRm9yT2JqZWN0V2l0aFN5
bWJvbChub2RlKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
ICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgaWYgKG1fZ3Jh
cGgudmFyQXJnQ2hpbGQobm9kZSwgMSkudXNlS2luZCgpID09IFN5bWJvbFVzZSkgewotICAgICAg
ICAgICAgICAgICAgICBjb21waWxlR2V0QnlWYWxGb3JPYmplY3RXaXRoU3ltYm9sKG5vZGUpOwot
ICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9CisgICAgICAgICAg
ICAgICAgU3BlY3VsYXRlQ2VsbE9wZXJhbmQgYmFzZSh0aGlzLCBtX2dyYXBoLnZhckFyZ0NoaWxk
KG5vZGUsIDApKTsgLy8gU2F2ZSBhIHJlZ2lzdGVyLCBzcGVjdWxhdGUgY2VsbC4gV2UnbGwgcHJv
YmFibHkgYmUgcmlnaHQuCisgICAgICAgICAgICAgICAgSlNWYWx1ZU9wZXJhbmQgcHJvcGVydHko
dGhpcywgbV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKSk7CisgICAgICAgICAgICAgICAgR1BS
UmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOworICAgICAgICAgICAgICAgIEpTVmFsdWVSZWdzIHBy
b3BlcnR5UmVncyA9IHByb3BlcnR5LmpzVmFsdWVSZWdzKCk7CisgICAgICAgICAgICAgICAgCisg
ICAgICAgICAgICAgICAgZmx1c2hSZWdpc3RlcnMoKTsKKyAgICAgICAgICAgICAgICBKU1ZhbHVl
UmVnc0ZsdXNoZWRDYWxsUmVzdWx0IHJlc3VsdCh0aGlzKTsKKyAgICAgICAgICAgICAgICBKU1Zh
bHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKKyAgICAgICAgICAgICAgICBjYWxs
T3BlcmF0aW9uKG9wZXJhdGlvbkdldEJ5VmFsQ2VsbCwgcmVzdWx0UmVncywgVHJ1c3RlZEltbVB0
cjo6d2Vha1BvaW50ZXIobV9ncmFwaCwgbV9ncmFwaC5nbG9iYWxPYmplY3RGb3Iobm9kZS0+b3Jp
Z2luLnNlbWFudGljKSksIGJhc2VHUFIsIHByb3BlcnR5UmVncyk7CisgICAgICAgICAgICAgICAg
bV9qaXQuZXhjZXB0aW9uQ2hlY2soKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgICAgICAg
ICBqc1ZhbHVlUmVzdWx0KHJlc3VsdFJlZ3MsIG5vZGUpOworICAgICAgICAgICAgICAgIGJyZWFr
OwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBTcGVjdWxhdGVDZWxsT3BlcmFuZCBiYXNl
KHRoaXMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCkpOyAvLyBTYXZlIGEgcmVnaXN0ZXIs
IHNwZWN1bGF0ZSBjZWxsLiBXZSdsbCBwcm9iYWJseSBiZSByaWdodC4KLSAgICAgICAgICAgIEpT
VmFsdWVPcGVyYW5kIHByb3BlcnR5KHRoaXMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkp
OwotICAgICAgICAgICAgR1BSUmVnIGJhc2VHUFIgPSBiYXNlLmdwcigpOworICAgICAgICAgICAg
c3BlY3VsYXRlKG5vZGUsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMCkpOworICAgICAgICAg
ICAgc3BlY3VsYXRlKG5vZGUsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9kZSwgMSkpOworCisgICAg
ICAgICAgICBKU1ZhbHVlT3BlcmFuZCBiYXNlKHRoaXMsIG1fZ3JhcGgudmFyQXJnQ2hpbGQobm9k
ZSwgMCksIE1hbnVhbE9wZXJhbmRTcGVjdWxhdGlvbik7CisgICAgICAgICAgICBKU1ZhbHVlT3Bl
cmFuZCBwcm9wZXJ0eSh0aGlzLCBtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDEpLCBNYW51YWxP
cGVyYW5kU3BlY3VsYXRpb24pOworICAgICAgICAgICAgR1BSVGVtcG9yYXJ5IHJlc3VsdFRhZyh0
aGlzLCBSZXVzZSwgcHJvcGVydHksIFRhZ1dvcmQpOworICAgICAgICAgICAgR1BSVGVtcG9yYXJ5
IHJlc3VsdFBheWxvYWQodGhpcywgUmV1c2UsIHByb3BlcnR5LCBQYXlsb2FkV29yZCk7CisKKyAg
ICAgICAgICAgIEpTVmFsdWVSZWdzIGJhc2VSZWdzID0gYmFzZS5qc1ZhbHVlUmVncygpOwogICAg
ICAgICAgICAgSlNWYWx1ZVJlZ3MgcHJvcGVydHlSZWdzID0gcHJvcGVydHkuanNWYWx1ZVJlZ3Mo
KTsKKyAgICAgICAgICAgIEpTVmFsdWVSZWdzIHJlc3VsdFJlZ3MocmVzdWx0VGFnLmdwcigpLCBy
ZXN1bHRQYXlsb2FkLmdwcigpKTsKKworICAgICAgICAgICAgQ29kZU9yaWdpbiBjb2RlT3JpZ2lu
ID0gbm9kZS0+b3JpZ2luLnNlbWFudGljOworICAgICAgICAgICAgQ2FsbFNpdGVJbmRleCBjYWxs
U2l0ZSA9IG1faml0LnJlY29yZENhbGxTaXRlQW5kR2VuZXJhdGVFeGNlcHRpb25IYW5kbGluZ09T
UkV4aXRJZk5lZWRlZChjb2RlT3JpZ2luLCBtX3N0cmVhbS0+c2l6ZSgpKTsKKyAgICAgICAgICAg
IFJlZ2lzdGVyU2V0IHVzZWRSZWdpc3RlcnMgPSB0aGlzLT51c2VkUmVnaXN0ZXJzKCk7CisKKyAg
ICAgICAgICAgIEpJVENvbXBpbGVyOjpKdW1wTGlzdCBzbG93Q2FzZXM7CisgICAgICAgICAgICBp
ZiAoIW1fc3RhdGUuZm9yTm9kZShtX2dyYXBoLnZhckFyZ0NoaWxkKG5vZGUsIDApKS5pc1R5cGUo
U3BlY0NlbGwpKQorICAgICAgICAgICAgICAgIHNsb3dDYXNlcy5hcHBlbmQobV9qaXQuYnJhbmNo
SWZOb3RDZWxsKGJhc2VSZWdzLnRhZ0dQUigpKSk7CisKKyAgICAgICAgICAgIEpJVEdldEJ5VmFs
R2VuZXJhdG9yIGdlbigKKyAgICAgICAgICAgICAgICBtX2ppdC5jb2RlQmxvY2soKSwgY29kZU9y
aWdpbiwgY2FsbFNpdGUsIHVzZWRSZWdpc3RlcnMsCisgICAgICAgICAgICAgICAgYmFzZVJlZ3Ms
IHByb3BlcnR5UmVncywgcmVzdWx0UmVncyk7CisKKyAgICAgICAgICAgIGlmIChtX3N0YXRlLmZv
ck5vZGUobV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKSkuaXNUeXBlKFNwZWNTdHJpbmcpKQor
ICAgICAgICAgICAgICAgIGdlbi5zdHViSW5mbygpLT5wcm9wZXJ0eUlzU3RyaW5nID0gdHJ1ZTsK
KyAgICAgICAgICAgIGVsc2UgaWYgKG1fc3RhdGUuZm9yTm9kZShtX2dyYXBoLnZhckFyZ0NoaWxk
KG5vZGUsIDEpKS5pc1R5cGUoU3BlY0ludDMyT25seSkpCisgICAgICAgICAgICAgICAgZ2VuLnN0
dWJJbmZvKCktPnByb3BlcnR5SXNJbnQzMiA9IHRydWU7CisgICAgICAgICAgICBlbHNlIGlmICht
X3N0YXRlLmZvck5vZGUobV9ncmFwaC52YXJBcmdDaGlsZChub2RlLCAxKSkuaXNUeXBlKFNwZWNT
eW1ib2wpKQorICAgICAgICAgICAgICAgIGdlbi5zdHViSW5mbygpLT5wcm9wZXJ0eUlzU3ltYm9s
ID0gdHJ1ZTsKKworICAgICAgICAgICAgZ2VuLmdlbmVyYXRlRmFzdFBhdGgobV9qaXQpOwogICAg
ICAgICAgICAgCi0gICAgICAgICAgICBmbHVzaFJlZ2lzdGVycygpOwotICAgICAgICAgICAgSlNW
YWx1ZVJlZ3NGbHVzaGVkQ2FsbFJlc3VsdCByZXN1bHQodGhpcyk7Ci0gICAgICAgICAgICBKU1Zh
bHVlUmVncyByZXN1bHRSZWdzID0gcmVzdWx0LnJlZ3MoKTsKLSAgICAgICAgICAgIGNhbGxPcGVy
YXRpb24ob3BlcmF0aW9uR2V0QnlWYWxDZWxsLCByZXN1bHRSZWdzLCBUcnVzdGVkSW1tUHRyOjp3
ZWFrUG9pbnRlcihtX2dyYXBoLCBtX2dyYXBoLmdsb2JhbE9iamVjdEZvcihub2RlLT5vcmlnaW4u
c2VtYW50aWMpKSwgYmFzZUdQUiwgcHJvcGVydHlSZWdzKTsKLSAgICAgICAgICAgIG1faml0LmV4
Y2VwdGlvbkNoZWNrKCk7CisgICAgICAgICAgICBzbG93Q2FzZXMuYXBwZW5kKGdlbi5zbG93UGF0
aEp1bXAoKSk7CisKKyAgICAgICAgICAgIHN0ZDo6dW5pcXVlX3B0cjxTbG93UGF0aEdlbmVyYXRv
cj4gc2xvd1BhdGggPSBzbG93UGF0aENhbGwoCisgICAgICAgICAgICAgICAgc2xvd0Nhc2VzLCB0
aGlzLCBvcGVyYXRpb25HZXRCeVZhbE9wdGltaXplLAorICAgICAgICAgICAgICAgIHJlc3VsdFJl
Z3MsIFRydXN0ZWRJbW1QdHI6OndlYWtQb2ludGVyKG1fZ3JhcGgsIG1fZ3JhcGguZ2xvYmFsT2Jq
ZWN0Rm9yKGNvZGVPcmlnaW4pKSwgZ2VuLnN0dWJJbmZvKCksIG51bGxwdHIsIGJhc2VSZWdzLCBw
cm9wZXJ0eVJlZ3MpOwogICAgICAgICAgICAgCisgICAgICAgICAgICBtX2ppdC5hZGRHZXRCeVZh
bChnZW4sIHNsb3dQYXRoLmdldCgpKTsKKyAgICAgICAgICAgIGFkZFNsb3dQYXRoR2VuZXJhdG9y
KFdURk1vdmUoc2xvd1BhdGgpKTsKKwogICAgICAgICAgICAganNWYWx1ZVJlc3VsdChyZXN1bHRS
ZWdzLCBub2RlKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcCBiL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwCmluZGV4
IGNkNmFhMzE3NjZjZDY4NjZmMGQ1YTZlYzM4MDZkYjhkOWQ3MmQ1MmUuLjk5N2E1ZWVjNjA3MGNj
MTlkMjA0MjA3MTA3NTdjZTdlOTBjZGNjNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0
Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9qaXQvSklUSW5saW5lQ2FjaGVHZW5lcmF0b3IuY3BwCkBAIC03OCw3ICs3OCw3IEBA
IEpJVEJ5SWRHZW5lcmF0b3I6OkpJVEJ5SWRHZW5lcmF0b3IoCiAjaWYgVVNFKEpTVkFMVUUzMl82
NCkKICAgICBtX3N0dWJJbmZvLT5wYXRjaC5iYXNlVGFnR1BSID0gYmFzZS50YWdHUFIoKTsKICAg
ICBtX3N0dWJJbmZvLT5wYXRjaC52YWx1ZVRhZ0dQUiA9IHZhbHVlLnRhZ0dQUigpOwotICAgIG1f
c3R1YkluZm8tPnBhdGNoLnRoaXNUYWdHUFIgPSBJbnZhbGlkR1BSUmVnOworICAgIG1fc3R1Yklu
Zm8tPnBhdGNoLnYudGhpc1RhZ0dQUiA9IEludmFsaWRHUFJSZWc7CiAjZW5kaWYKIH0KIApAQCAt
MTI0LDcgKzEyNCw3IEBAIEpJVEdldEJ5SWRXaXRoVGhpc0dlbmVyYXRvcjo6SklUR2V0QnlJZFdp
dGhUaGlzR2VuZXJhdG9yKAogCiAgICAgbV9zdHViSW5mby0+cGF0Y2gudS50aGlzR1BSID0gdGhp
c1JlZ3MucGF5bG9hZEdQUigpOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgbV9zdHViSW5m
by0+cGF0Y2gudGhpc1RhZ0dQUiA9IHRoaXNSZWdzLnRhZ0dQUigpOworICAgIG1fc3R1YkluZm8t
PnBhdGNoLnYudGhpc1RhZ0dQUiA9IHRoaXNSZWdzLnRhZ0dQUigpOwogI2VuZGlmCiB9CiAKQEAg
LTE5MCw3ICsxOTAsNyBAQCBKSVRJbnN0YW5jZU9mR2VuZXJhdG9yOjpKSVRJbnN0YW5jZU9mR2Vu
ZXJhdG9yKAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCiAgICAgbV9zdHViSW5mby0+cGF0Y2guYmFz
ZVRhZ0dQUiA9IEludmFsaWRHUFJSZWc7CiAgICAgbV9zdHViSW5mby0+cGF0Y2gudmFsdWVUYWdH
UFIgPSBJbnZhbGlkR1BSUmVnOwotICAgIG1fc3R1YkluZm8tPnBhdGNoLnRoaXNUYWdHUFIgPSBJ
bnZhbGlkR1BSUmVnOworICAgIG1fc3R1YkluZm8tPnBhdGNoLnYudGhpc1RhZ0dQUiA9IEludmFs
aWRHUFJSZWc7CiAjZW5kaWYKIAogICAgIG1fc3R1YkluZm8tPnBhdGNoLnVzZWRSZWdpc3RlcnMu
Y2xlYXIocmVzdWx0KTsKQEAgLTIyOSw2ICsyMjksMTEgQEAgSklUR2V0QnlWYWxHZW5lcmF0b3I6
OkpJVEdldEJ5VmFsR2VuZXJhdG9yKENvZGVCbG9jayogY29kZUJsb2NrLCBDb2RlT3JpZ2luIGNv
ZGUKICAgICBtX3N0dWJJbmZvLT5wYXRjaC5iYXNlR1BSID0gYmFzZS5wYXlsb2FkR1BSKCk7CiAg
ICAgbV9zdHViSW5mby0+cGF0Y2gudS5wcm9wZXJ0eUdQUiA9IHByb3BlcnR5LnBheWxvYWRHUFIo
KTsKICAgICBtX3N0dWJJbmZvLT5wYXRjaC52YWx1ZUdQUiA9IHJlc3VsdC5wYXlsb2FkR1BSKCk7
CisjaWYgVVNFKEpTVkFMVUUzMl82NCkKKyAgICBtX3N0dWJJbmZvLT5wYXRjaC5iYXNlVGFnR1BS
ID0gYmFzZS50YWdHUFIoKTsKKyAgICBtX3N0dWJJbmZvLT5wYXRjaC52YWx1ZVRhZ0dQUiA9IHJl
c3VsdC50YWdHUFIoKTsKKyAgICBtX3N0dWJJbmZvLT5wYXRjaC52LnByb3BlcnR5VGFnR1BSID0g
cHJvcGVydHkudGFnR1BSKCk7CisjZW5kaWYKIH0KIAogdm9pZCBKSVRHZXRCeVZhbEdlbmVyYXRv
cjo6Z2VuZXJhdGVGYXN0UGF0aChNYWNyb0Fzc2VtYmxlciYgaml0KQpkaWZmIC0tZ2l0IGEvU291
cmNlL0phdmFTY3JpcHRDb3JlL2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcCBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9qaXQvSklUUHJvcGVydHlBY2Nlc3MzMl82NC5jcHAKaW5kZXggODAw
ZGY4OWQ1ZTI3ZDg4Y2JlYzZiYjIxZjhiNGRkNGNjM2QzOTE0Mi4uODdkMjY5OWJiYTk1YzM2YmUx
M2RjYWMwZDFmZmM4YTk0NzEyN2I5MyAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2ppdC9KSVRQcm9wZXJ0eUFjY2VzczMyXzY0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvaml0L0pJVFByb3BlcnR5QWNjZXNzMzJfNjQuY3BwCkBAIC0xMzgsOCArMTM4LDYgQEAgdm9p
ZCBKSVQ6OmVtaXRfb3BfZGVsX2J5X3ZhbChjb25zdCBJbnN0cnVjdGlvbiogY3VycmVudEluc3Ry
dWN0aW9uKQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9nZXRfYnlfdmFsKGNvbnN0IEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24pCiB7Ci0gICAgLy8gRklYTUU6IEltcGxlbWVudCBJQyBoZXJl
OgotICAgIC8vIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQwODIK
ICAgICBhdXRvIGJ5dGVjb2RlID0gY3VycmVudEluc3RydWN0aW9uLT5hczxPcEdldEJ5VmFsPigp
OwogICAgIGF1dG8mIG1ldGFkYXRhID0gYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spOwog
ICAgIGludCBkc3QgPSBieXRlY29kZS5tX2RzdC5vZmZzZXQoKTsKQEAgLTE0OSwzNSArMTQ3LDQ2
IEBAIHZvaWQgSklUOjplbWl0X29wX2dldF9ieV92YWwoY29uc3QgSW5zdHJ1Y3Rpb24qIGN1cnJl
bnRJbnN0cnVjdGlvbikKIAogICAgIGVtaXRMb2FkMihiYXNlLCByZWdUMSwgcmVnVDAsIHByb3Bl
cnR5LCByZWdUMywgcmVnVDIpOwogCi0gICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJh
c2UsIHJlZ1QxKTsKLSAgICBlbWl0QXJyYXlQcm9maWxpbmdTaXRlV2l0aENlbGwocmVnVDAsIHJl
Z1Q0LCBwcm9maWxlKTsKLQotICAgIEpJVEdldEJ5VmFsR2VuZXJhdG9yIGdlbigKLSAgICAgICAg
bV9jb2RlQmxvY2ssIENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleCht
X2J5dGVjb2RlSW5kZXgpLCBSZWdpc3RlclNldDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCks
Ci0gICAgICAgIEpTVmFsdWVSZWdzOjpwYXlsb2FkT25seShyZWdUMCksIEpTVmFsdWVSZWdzKHJl
Z1QzLCByZWdUMiksIEpTVmFsdWVSZWdzKHJlZ1QxLCByZWdUMCkpOwotICAgIGdlbi5nZW5lcmF0
ZUZhc3RQYXRoKCp0aGlzKTsKLSAgICBhZGRTbG93Q2FzZShnZW4uc2xvd1BhdGhKdW1wKCkpOwot
ICAgIG1fZ2V0QnlWYWxzLmFwcGVuZChnZW4pOwotCi0gICAgZW1pdFZhbHVlUHJvZmlsaW5nU2l0
ZShieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jaykpOwotICAgIGVtaXRTdG9yZShkc3QsIHJl
Z1QxLCByZWdUMCk7CisgICAgaWYgKG1ldGFkYXRhLm1fc2VlbklkZW50aWZpZXJzLmNvdW50KCkg
PiBPcHRpb25zOjpnZXRCeVZhbElDTWF4TnVtYmVyT2ZJZGVudGlmaWVycygpKSB7CisgICAgICAg
IGF1dG8gbm90Q2VsbCA9IGJyYW5jaElmTm90Q2VsbChyZWdUMSk7CisgICAgICAgIGVtaXRBcnJh
eVByb2ZpbGluZ1NpdGVXaXRoQ2VsbChyZWdUMCwgcmVnVDQsIHByb2ZpbGUpOworICAgICAgICBu
b3RDZWxsLmxpbmsodGhpcyk7CisgICAgICAgIGNhbGxPcGVyYXRpb25XaXRoUHJvZmlsZShieXRl
Y29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayksIG9wZXJhdGlvbkdldEJ5VmFsLCBkc3QsIFRydXN0
ZWRJbW1QdHIobV9jb2RlQmxvY2stPmdsb2JhbE9iamVjdCgpKSwgSlNWYWx1ZVJlZ3MocmVnVDEs
IHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKSk7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgZW1pdEp1bXBTbG93Q2FzZUlmTm90SlNDZWxsKGJhc2UsIHJlZ1QxKTsKKyAgICAgICAgZW1p
dEFycmF5UHJvZmlsaW5nU2l0ZVdpdGhDZWxsKHJlZ1QwLCByZWdUNCwgcHJvZmlsZSk7CisKKyAg
ICAgICAgSklUR2V0QnlWYWxHZW5lcmF0b3IgZ2VuKAorICAgICAgICAgICAgbV9jb2RlQmxvY2ss
IENvZGVPcmlnaW4obV9ieXRlY29kZUluZGV4KSwgQ2FsbFNpdGVJbmRleChCeXRlY29kZUluZGV4
KGJpdHdpc2VfY2FzdDx1aW50MzJfdD4oY3VycmVudEluc3RydWN0aW9uKSkpLCBSZWdpc3RlclNl
dDo6c3R1YlVuYXZhaWxhYmxlUmVnaXN0ZXJzKCksCisgICAgICAgICAgICBKU1ZhbHVlUmVnczo6
cGF5bG9hZE9ubHkocmVnVDApLCBKU1ZhbHVlUmVncyhyZWdUMywgcmVnVDIpLCBKU1ZhbHVlUmVn
cyhyZWdUMSwgcmVnVDApKTsKKyAgICAgICAgaWYgKGlzT3BlcmFuZENvbnN0YW50SW50KHByb3Bl
cnR5KSkKKyAgICAgICAgICAgIGdlbi5zdHViSW5mbygpLT5wcm9wZXJ0eUlzSW50MzIgPSB0cnVl
OworICAgICAgICBnZW4uZ2VuZXJhdGVGYXN0UGF0aCgqdGhpcyk7CisgICAgICAgIGFkZFNsb3dD
YXNlKGdlbi5zbG93UGF0aEp1bXAoKSk7CisgICAgICAgIG1fZ2V0QnlWYWxzLmFwcGVuZChnZW4p
OworCisgICAgICAgIGVtaXRWYWx1ZVByb2ZpbGluZ1NpdGUoYnl0ZWNvZGUubWV0YWRhdGEobV9j
b2RlQmxvY2spKTsKKyAgICAgICAgZW1pdFN0b3JlKGRzdCwgcmVnVDEsIHJlZ1QwKTsKKyAgICB9
CiB9CiAKIHZvaWQgSklUOjplbWl0U2xvd19vcF9nZXRfYnlfdmFsKGNvbnN0IEluc3RydWN0aW9u
KiBjdXJyZW50SW5zdHJ1Y3Rpb24sIFZlY3RvcjxTbG93Q2FzZUVudHJ5Pjo6aXRlcmF0b3ImIGl0
ZXIpCiB7Ci0gICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0cnVjdGlvbi0+YXM8T3BHZXRC
eVZhbD4oKTsKLSAgICBpbnQgZHN0ID0gYnl0ZWNvZGUubV9kc3Qub2Zmc2V0KCk7Ci0gICAgYXV0
byYgbWV0YWRhdGEgPSBieXRlY29kZS5tZXRhZGF0YShtX2NvZGVCbG9jayk7Ci0gICAgQXJyYXlQ
cm9maWxlKiBwcm9maWxlID0gJm1ldGFkYXRhLm1fYXJyYXlQcm9maWxlOworICAgIGlmIChoYXNB
bnlTbG93Q2FzZXMoaXRlcikpIHsKKyAgICAgICAgYXV0byBieXRlY29kZSA9IGN1cnJlbnRJbnN0
cnVjdGlvbi0+YXM8T3BHZXRCeVZhbD4oKTsKKyAgICAgICAgaW50IGRzdCA9IGJ5dGVjb2RlLm1f
ZHN0Lm9mZnNldCgpOworICAgICAgICBhdXRvJiBtZXRhZGF0YSA9IGJ5dGVjb2RlLm1ldGFkYXRh
KG1fY29kZUJsb2NrKTsKKyAgICAgICAgQXJyYXlQcm9maWxlKiBwcm9maWxlID0gJm1ldGFkYXRh
Lm1fYXJyYXlQcm9maWxlOwogCi0gICAgSklUR2V0QnlWYWxHZW5lcmF0b3ImIGdlbiA9IG1fZ2V0
QnlWYWxzW21fZ2V0QnlWYWxJbmRleF07Ci0gICAgKyttX2dldEJ5VmFsSW5kZXg7CisgICAgICAg
IEpJVEdldEJ5VmFsR2VuZXJhdG9yJiBnZW4gPSBtX2dldEJ5VmFsc1ttX2dldEJ5VmFsSW5kZXhd
OworICAgICAgICArK21fZ2V0QnlWYWxJbmRleDsKIAotICAgIGxpbmtBbGxTbG93Q2FzZXMoaXRl
cik7CisgICAgICAgIGxpbmtBbGxTbG93Q2FzZXMoaXRlcik7CiAKLSAgICBMYWJlbCBjb2xkUGF0
aEJlZ2luID0gbGFiZWwoKTsKLSAgICBDYWxsIGNhbGwgPSBjYWxsT3BlcmF0aW9uV2l0aFByb2Zp
bGUoYnl0ZWNvZGUubWV0YWRhdGEobV9jb2RlQmxvY2spLCBvcGVyYXRpb25HZXRCeVZhbEdlbmVy
aWMsIGRzdCwgVHJ1c3RlZEltbVB0cihtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCkpLCBnZW4u
c3R1YkluZm8oKSwgcHJvZmlsZSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgSlNWYWx1ZVJl
Z3MocmVnVDMsIHJlZ1QyKSk7Ci0gICAgZ2VuLnJlcG9ydFNsb3dQYXRoQ2FsbChjb2xkUGF0aEJl
Z2luLCBjYWxsKTsKKyAgICAgICAgTGFiZWwgY29sZFBhdGhCZWdpbiA9IGxhYmVsKCk7CisgICAg
ICAgIENhbGwgY2FsbCA9IGNhbGxPcGVyYXRpb25XaXRoUHJvZmlsZShieXRlY29kZS5tZXRhZGF0
YShtX2NvZGVCbG9jayksIG9wZXJhdGlvbkdldEJ5VmFsT3B0aW1pemUsIGRzdCwgVHJ1c3RlZElt
bVB0cihtX2NvZGVCbG9jay0+Z2xvYmFsT2JqZWN0KCkpLCBnZW4uc3R1YkluZm8oKSwgcHJvZmls
ZSwgSlNWYWx1ZVJlZ3MocmVnVDEsIHJlZ1QwKSwgSlNWYWx1ZVJlZ3MocmVnVDMsIHJlZ1QyKSk7
CisgICAgICAgIGdlbi5yZXBvcnRTbG93UGF0aENhbGwoY29sZFBhdGhCZWdpbiwgY2FsbCk7Cisg
ICAgfQogfQogCiB2b2lkIEpJVDo6ZW1pdF9vcF9wdXRfYnlfdmFsX2RpcmVjdChjb25zdCBJbnN0
cnVjdGlvbiogY3VycmVudEluc3RydWN0aW9uKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>