<?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>157426</bug_id>
          
          <creation_ts>2016-05-06 13:09:41 -0700</creation_ts>
          <short_desc>Regions, Shapes and Tracks don&apos;t need runtime features</short_desc>
          <delta_ts>2017-06-23 13:20:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>173784</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Dean Jackson">dino</reporter>
          <assigned_to name="Dean Jackson">dino</assigned_to>
          <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1190734</commentid>
    <comment_count>0</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-05-06 13:09:41 -0700</bug_when>
    <thetext>Regions, Shapes and Tracks don&apos;t need runtime features</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190735</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2016-05-06 13:11:38 -0700</bug_when>
    <thetext>&lt;rdar://problem/26146262&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190742</commentid>
    <comment_count>2</comment_count>
      <attachid>278262</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-05-06 13:22:23 -0700</bug_when>
    <thetext>Created attachment 278262
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1190770</commentid>
    <comment_count>3</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2016-05-06 14:24:49 -0700</bug_when>
    <thetext>Committed r200524: &lt;http://trac.webkit.org/changeset/200524&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>278262</attachid>
            <date>2016-05-06 13:22:23 -0700</date>
            <delta_ts>2016-05-06 13:40:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-157426-20160507062300.patch</filename>
            <type>text/plain</type>
            <size>62783</size>
            <attacher name="Dean Jackson">dino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjAwNTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2MxYzMwNzAxNDU4MTg1
NzdlNjI0ZTJiMzkxNjhlMmIyZTI3MTRhNy4uZjU3NTU0ZGMwMDBjOTZiYzk1N2FiZDVjMzNiNjdh
YjZmYWJiYTkyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDE2LTA1LTA2ICBEZWFu
IEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBSZWdpb25zLCBTaGFwZXMgYW5k
IFRyYWNrcyBkb24ndCBuZWVkIHJ1bnRpbWUgZmVhdHVyZXMKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzQyNgorICAgICAgICA8cmRhcjovL3Byb2Js
ZW0vMjYxNDYyNjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhlIGZvbGxvd2luZyBSdW50aW1lRW5hYmxlZEZlYXR1cmVzIGNhbiBiZSByZW1vdmVk
IHNpbmNlCisgICAgICAgIHdlIGhhdmUgbm8gbmVlZCB0byBkaXNhYmxlIHRoZW0gKHRoZXkgYXJl
IHN0YWJsZSBhbmQgaGF2ZQorICAgICAgICBzaGlwcGVkIGZvciBhIHdoaWxlKToKKyAgICAgICAg
LSBDU1MgUmVnaW9ucworICAgICAgICAtIENTUyBTaGFwZXMKKyAgICAgICAgLSBNZWRpYSB0cmFj
a3MKKworICAgICAgICAqIGJpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpSdW50aW1lRW5h
YmxlZEZlYXR1cmVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9nZW5lcmljL1J1bnRp
bWVFbmFibGVkRmVhdHVyZXMuaDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNldENTU1NoYXBlc0VuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6Y3NzU2hhcGVzRW5hYmxlZCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzZXRDU1NSZWdpb25zRW5hYmxl
ZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpj
c3NSZWdpb25zRW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzZXRDU1NDb21wb3NpdGluZ0VuYWJsZWQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6UnVudGltZUVuYWJsZWRGZWF0dXJlczo6Y3NzQ29tcG9zaXRpbmdFbmFibGVk
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6Ondl
YmtpdFZpZGVvVHJhY2tFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNldFdlYmtpdFZpZGVvVHJhY2tFbmFibGVkKTogRGVsZXRlZC4K
KyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzU2ltcGxl
TGVuZ3RoUHJvcGVydHlJRCk6CisgICAgICAgIChXZWJDb3JlOjppc1ZhbGlkS2V5d29yZFByb3Bl
cnR5QW5kVmFsdWUpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpwYXJzZVZhbHVlKToK
KyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGaWxsUHJvcGVydHkpOgorICAgICAg
ICAoV2ViQ29yZTo6Q1NTUGFyc2VyOjpjcmVhdGVSZWdpb25SdWxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNTU1BhcnNlckNvbnRleHQ6OkNTU1BhcnNlckNvbnRleHQpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6b3BlcmF0b3I9PSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpDU1NQ
YXJzZXI6OnBhcnNlU2hhcGVQcm9wZXJ0eSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpD
U1NQYXJzZXI6OmNzc1JlZ2lvbnNFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkNTU1BhcnNlcjo6Y3NzQ29tcG9zaXRpbmdFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VGbG93VGhyZWFkKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OkNTU1BhcnNlcjo6cGFyc2VSZWdpb25UaHJlYWQpOiBEZWxldGVkLgorICAgICAgICAq
IGNzcy9DU1NQYXJzZXIuaDoKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyTW9kZS5oOgorICAgICAg
ICAqIGRvbS9Eb2N1bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6d2Via2l0
R2V0TmFtZWRGbG93cyk6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6Y3NzUmVnaW9uc0Vu
YWJsZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OmNzc0NvbXBvc2l0
aW5nRW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAg
ICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6dW5yZWdpc3Rl
ck5hbWVkRmxvd0NvbnRlbnRFbGVtZW50KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6Ondl
YmtpdFJlZ2lvbk92ZXJzZXQpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6d2Via2l0R2V0
UmVnaW9uRmxvd1Jhbmdlcyk6IERlbGV0ZWQuCisgICAgICAgICogaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlRGVs
YXllZEFjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwZW5kaW5n
QWN0aW9uVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpw
cmVwYXJlRm9yTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojpsb2Fk
SW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6c2V0UmVhZHlT
dGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpwbGF5YmFja1Byb2dy
ZXNzVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjptZWRp
YVBsYXllclRpbWVDaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OnVzZXJDYW5jZWxsZWRMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6
OnNldFZpZGVvRnVsbHNjcmVlbkxheWVyKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6Omhhc0Nsb3NlZENhcHRpb25zKToKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVs
ZW1lbnQ6OnNldENsb3NlZENhcHRpb25zVmlzaWJsZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
TWVkaWFFbGVtZW50Ojpjb25maWd1cmVUZXh0VHJhY2tEaXNwbGF5KToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbik6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphdWRpb1RyYWNrRW5hYmxlZENoYW5n
ZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6dmlkZW9U
cmFja1NlbGVjdGVkQ2hhbmdlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVk
aWFFbGVtZW50OjptZWRpYVBsYXllckRpZEFkZEF1ZGlvVHJhY2spOiBEZWxldGVkLgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJhY2sp
OiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5
ZXJEaWRBZGRWaWRlb1RyYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRp
YUVsZW1lbnQ6OmFkZEF1ZGlvVHJhY2spOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRN
TE1lZGlhRWxlbWVudDo6YWRkVGV4dFRyYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkhUTUxNZWRpYUVsZW1lbnQ6OmFkZFZpZGVvVHJhY2spOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlQXVkaW9UcmFjayk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpyZW1vdmVUZXh0VHJhY2spOiBEZWxldGVk
LgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVudDo6cmVtb3ZlVmlkZW9UcmFjayk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjphdWRpb1RyYWNr
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJh
Y2tzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnZpZGVv
VHJhY2tzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OmRp
ZEFkZFRleHRUcmFjayk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVt
ZW50OjpkaWRSZW1vdmVUZXh0VHJhY2spOiBEZWxldGVkLgorICAgICAgICAqIGh0bWwvSFRNTFRy
YWNrRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJhY2tFbGVtZW50OjpwYXJz
ZUF0dHJpYnV0ZSk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MVHJhY2tFbGVtZW50OjpzY2hlZHVs
ZUxvYWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTFRyYWNrRWxlbWVudDo6Y2Fu
TG9hZFVSTCk6IERlbGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmNyZWF0ZVJlbmRlck5hbWVk
Rmxvd0ZyYWdtZW50SWZOZWVkZWQpOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OkJhY2t1
cCk6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OnJlc3RvcmVU
byk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbFNldHRpbmdzOjpzZXRDU1NT
aGFwZXNFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGlu
Z3MuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsOgorCiAyMDE2LTA1
LTA1ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICA0IGFuZCA4IGRp
Z2l0IGNvbG9yIGF0dHJpYnV0ZXMgc2hvdWxkIHVzZSB0aGUgY3JhenlwYW50cyBhbGdvcml0aG0s
IG5vdCB0aGUgQ1NTIG9uZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZwppbmRleCBjZTgxYWI5ODQ1YWUzMGIyODU5
MDI3MTg4ZTU5MGVjZTg0NjEzYjcxLi4zNWVjYTFmN2ZlY2Q5YzY5YzA3MGRjNTA0N2JjYzg3YTdk
YmNiMjUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTYtMDUtMDYgIERl
YW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFJlZ2lvbnMsIFNoYXBlcyBh
bmQgVHJhY2tzIGRvbid0IG5lZWQgcnVudGltZSBmZWF0dXJlcworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTU3NDI2CisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS8yNjE0NjI2Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGUgZm9sbG93aW5nIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXMgY2FuIGJlIHJlbW92
ZWQgc2luY2UKKyAgICAgICAgd2UgaGF2ZSBubyBuZWVkIHRvIGRpc2FibGUgdGhlbSAodGhleSBh
cmUgc3RhYmxlIGFuZCBoYXZlCisgICAgICAgIHNoaXBwZWQgZm9yIGEgd2hpbGUpOgorICAgICAg
ICAtIENTUyBSZWdpb25zCisgICAgICAgIC0gQ1NTIFNoYXBlcworICAgICAgICAtIE1lZGlhIHRy
YWNrcworCisgICAgICAgICogV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1ByaXZhdGUuaDoKKyAg
ICAgICAgKiBXZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tOgorICAgICAgICAoK1tXZWJQcmVmZXJl
bmNlcyBpbml0aWFsaXplXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIGNz
c1JlZ2lvbnNFbmFibGVkXSk6IERlbGV0ZWQuCisgICAgICAgICgtW1dlYlByZWZlcmVuY2VzIHNl
dENTU1JlZ2lvbnNFbmFibGVkOl0pOiBEZWxldGVkLgorICAgICAgICAoLVtXZWJQcmVmZXJlbmNl
cyBjc3NDb21wb3NpdGluZ0VuYWJsZWRdKTogRGVsZXRlZC4KKyAgICAgICAgKC1bV2ViUHJlZmVy
ZW5jZXMgc2V0Q1NTQ29tcG9zaXRpbmdFbmFibGVkOl0pOiBEZWxldGVkLgorICAgICAgICAqIFdl
YlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogV2ViVmlldy9XZWJWaWV3
Lm1tOgorICAgICAgICAoLVtXZWJWaWV3IF9wcmVmZXJlbmNlc0NoYW5nZWQ6XSk6IERlbGV0ZWQu
CisKIDIwMTYtMDUtMDIgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAg
ICAgIENTUDogQWRkIHdvcmthcm91bmQgZm9yIFh0cmFNYXRoCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTg0Nzc5
ZDA1ZjA2YTEwODZkYmRhZGIxOTc1NDBiMjU5M2E3YzMyMS4uZmVmYzY5MWVhNzI5NjhkNDQ1ZDc0
NjRmZmNiMjBmZGI3MjZiZmFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE2LTA1
LTA2ICBEZWFuIEphY2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KKworICAgICAgICBSZWdpb25zLCBT
aGFwZXMgYW5kIFRyYWNrcyBkb24ndCBuZWVkIHJ1bnRpbWUgZmVhdHVyZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NzQyNgorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMjYxNDYyNjI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGhlIGZvbGxvd2luZyBSdW50aW1lRW5hYmxlZEZlYXR1cmVzIGNhbiBi
ZSByZW1vdmVkIHNpbmNlCisgICAgICAgIHdlIGhhdmUgbm8gbmVlZCB0byBkaXNhYmxlIHRoZW0g
KHRoZXkgYXJlIHN0YWJsZSBhbmQgaGF2ZQorICAgICAgICBzaGlwcGVkIGZvciBhIHdoaWxlKToK
KyAgICAgICAgLSBDU1MgUmVnaW9ucworICAgICAgICAtIENTUyBTaGFwZXMKKyAgICAgICAgLSBN
ZWRpYSB0cmFja3MKKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25z
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXMuY3BwOgorICAgICAg
ICAoV0tQcmVmZXJlbmNlc1NldENTU1JlZ2lvbnNFbmFibGVkKTogRGVsZXRlZC4KKyAgICAgICAg
KFdLUHJlZmVyZW5jZXNHZXRDU1NSZWdpb25zRW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OkluamVjdGVkQnVuZGxlOjpvdmVycmlkZUJvb2xQcmVmZXJlbmNlRm9yVGVzdFJ1bm5lcik6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpzZXRDU1NSZWdpb25z
RW5hYmxlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OkluamVjdGVkQnVuZGxlOjpzZXRD
U1NDb21wb3NpdGluZ0VuYWJsZWQpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVu
Y2VzKTogRGVsZXRlZC4KKwogMjAxNi0wNS0wNSAgTWFudWVsIFJlZ28gQ2FzYXNub3ZhcyAgPHJl
Z29AaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBSZW1vdmUgInJlZ2lvbiBiYXNlZCBjb2x1
bW5zIiBydW50aW1lIGZlYXR1cmUgcmVtYWluaW5ncwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAKaW5kZXgg
MWI1ZGMxNWQ0YmRmNTRiMTJhOGQxNmVmODgyYjRkYjFhZGMyY2FlYi4uMWI4NTA3OGVmMTA2Yjhk
ODE1NzVmYjg3Zjg3YTMwNDk5YWU5OTY3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvZ2VuZXJpYy9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9nZW5lcmljL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCkBAIC01MCw5
ICs1MCw2IEBAIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OlJ1bnRpbWVFbmFibGVkRmVhdHVyZXMo
KQogICAgICwgbV9pc0RldmljZU1vdGlvbkVuYWJsZWQodHJ1ZSkKICAgICAsIG1faXNEZXZpY2VP
cmllbnRhdGlvbkVuYWJsZWQodHJ1ZSkKICAgICAsIG1faXNMaW5rUHJlbG9hZEVuYWJsZWQoZmFs
c2UpCi0gICAgLCBtX2lzQ1NTU2hhcGVzRW5hYmxlZCh0cnVlKQotICAgICwgbV9pc0NTU1JlZ2lv
bnNFbmFibGVkKGZhbHNlKQotICAgICwgbV9pc0NTU0NvbXBvc2l0aW5nRW5hYmxlZChmYWxzZSkK
ICAgICAsIG1faXNMYW5nQXR0cmlidXRlQXdhcmVGb3JtQ29udHJvbFVJRW5hYmxlZChmYWxzZSkK
ICNpZiBQTEFURk9STShJT1MpCiAgICAgLCBtX2lzUGx1Z2luUmVwbGFjZW1lbnRFbmFibGVkKHRy
dWUpCkBAIC03OCw5ICs3NSw2IEBAIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OlJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXMoKQogI2lmIEVOQUJMRShKQVZBU0NSSVBUX0kxOE5fQVBJKQogICAgICwgbV9p
c0phdmFTY3JpcHRJMThOQVBJRW5hYmxlZChmYWxzZSkKICNlbmRpZgotI2lmIEVOQUJMRShWSURF
T19UUkFDSykKLSAgICAsIG1faXNWaWRlb1RyYWNrRW5hYmxlZCh0cnVlKQotI2VuZGlmCiAjaWYg
RU5BQkxFKElOUFVUX1RZUEVfREFURSkKICAgICAsIG1faXNJbnB1dFR5cGVEYXRlRW5hYmxlZCh0
cnVlKQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9nZW5lcmlj
L1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVy
aWMvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oCmluZGV4IDRkMzZkNjg5MGEzNGRmOWJmNGIwNjlm
Y2RmNTgzNzQzOTk0MDRmNzQuLmEzNWIzMThmNDAxMGRjZjFmZjE5ZDM5MzJlODczOGYzZTdmZTE0
ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2dlbmVyaWMvUnVu
dGltZUVuYWJsZWRGZWF0dXJlcy5oCkBAIC03MiwyNSArNzIsNiBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpbmRleGVkREJXb3JrZXJzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNJbmRleGVkREJX
b3JrZXJzRW5hYmxlZDsgfQogI2VuZGlmCiAKLSNpZiBFTkFCTEUoQ1NTX1NIQVBFUykKLSAgICB2
b2lkIHNldENTU1NoYXBlc0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9pc0NTU1NoYXBlc0Vu
YWJsZWQgPSBpc0VuYWJsZWQ7IH0KLSAgICBib29sIGNzc1NoYXBlc0VuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX2lzQ1NTU2hhcGVzRW5hYmxlZDsgfQotI2Vsc2UKLSAgICB2b2lkIHNldENTU1No
YXBlc0VuYWJsZWQoYm9vbCkgeyB9Ci0gICAgYm9vbCBjc3NTaGFwZXNFbmFibGVkKCkgY29uc3Qg
eyByZXR1cm4gZmFsc2U7IH0KLSNlbmRpZgotCi0jaWYgRU5BQkxFKENTU19SRUdJT05TKQotICAg
IHZvaWQgc2V0Q1NTUmVnaW9uc0VuYWJsZWQoYm9vbCBpc0VuYWJsZWQpIHsgbV9pc0NTU1JlZ2lv
bnNFbmFibGVkID0gaXNFbmFibGVkOyB9Ci0gICAgYm9vbCBjc3NSZWdpb25zRW5hYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIG1faXNDU1NSZWdpb25zRW5hYmxlZDsgfQotI2Vsc2UKLSAgICB2b2lkIHNl
dENTU1JlZ2lvbnNFbmFibGVkKGJvb2wpIHsgfQotICAgIGJvb2wgY3NzUmVnaW9uc0VuYWJsZWQo
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQotI2VuZGlmCi0KLSAgICB2b2lkIHNldENTU0NvbXBv
c2l0aW5nRW5hYmxlZChib29sIGlzRW5hYmxlZCkgeyBtX2lzQ1NTQ29tcG9zaXRpbmdFbmFibGVk
ID0gaXNFbmFibGVkOyB9Ci0gICAgYm9vbCBjc3NDb21wb3NpdGluZ0VuYWJsZWQoKSBjb25zdCB7
IHJldHVybiBtX2lzQ1NTQ29tcG9zaXRpbmdFbmFibGVkOyB9Ci0KICNpZiBFTkFCTEUoRk9OVF9M
T0FEX0VWRU5UUykKICAgICB2b2lkIHNldEZvbnRMb2FkRXZlbnRzRW5hYmxlZChib29sIGlzRW5h
YmxlZCkgeyBtX2lzRm9udExvYWRFdmVudHNFbmFibGVkID0gaXNFbmFibGVkOyB9CiAgICAgYm9v
bCBmb250TG9hZEV2ZW50c0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzRm9udExvYWRFdmVu
dHNFbmFibGVkOyB9CkBAIC0xNTQsMTEgKzEzNSw2IEBAIHB1YmxpYzoKICAgICBib29sIGxlZ2Fj
eUNTU1ZlbmRvclByZWZpeGVzRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNMZWdhY3lDU1NW
ZW5kb3JQcmVmaXhlc0VuYWJsZWQ7IH0KICNlbmRpZgogCi0jaWYgRU5BQkxFKFZJREVPX1RSQUNL
KQotICAgIGJvb2wgd2Via2l0VmlkZW9UcmFja0VuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lz
VmlkZW9UcmFja0VuYWJsZWQ7IH0KLSAgICB2b2lkIHNldFdlYmtpdFZpZGVvVHJhY2tFbmFibGVk
KGJvb2wgaXNFbmFibGVkKSB7IG1faXNWaWRlb1RyYWNrRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQot
I2VuZGlmCi0KICNpZiBFTkFCTEUoSU5QVVRfVFlQRV9EQVRFKQogICAgIGJvb2wgaW5wdXRUeXBl
RGF0ZUVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX2lzSW5wdXRUeXBlRGF0ZUVuYWJsZWQ7IH0K
ICAgICB2b2lkIHNldElucHV0VHlwZURhdGVFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1faXNJ
bnB1dFR5cGVEYXRlRW5hYmxlZCA9IGlzRW5hYmxlZDsgfQpAQCAtMjY1LDkgKzI0MSw2IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2lzRGV2aWNlTW90aW9uRW5hYmxlZDsKICAgICBib29sIG1faXNE
ZXZpY2VPcmllbnRhdGlvbkVuYWJsZWQ7CiAgICAgYm9vbCBtX2lzTGlua1ByZWxvYWRFbmFibGVk
OwotICAgIGJvb2wgbV9pc0NTU1NoYXBlc0VuYWJsZWQ7Ci0gICAgYm9vbCBtX2lzQ1NTUmVnaW9u
c0VuYWJsZWQ7Ci0gICAgYm9vbCBtX2lzQ1NTQ29tcG9zaXRpbmdFbmFibGVkOwogICAgIGJvb2wg
bV9pc0xhbmdBdHRyaWJ1dGVBd2FyZUZvcm1Db250cm9sVUlFbmFibGVkOwogICAgIGJvb2wgbV9p
c1BsdWdpblJlcGxhY2VtZW50RW5hYmxlZDsKICAgICBib29sIG1faXNSZXNvdXJjZVRpbWluZ0Vu
YWJsZWQ7CkBAIC0yOTUsMTAgKzI2OCw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzTGVnYWN5
Q1NTVmVuZG9yUHJlZml4ZXNFbmFibGVkOwogI2VuZGlmCiAKLSNpZiBFTkFCTEUoVklERU9fVFJB
Q0spCi0gICAgYm9vbCBtX2lzVmlkZW9UcmFja0VuYWJsZWQ7Ci0jZW5kaWYKLQogI2lmIEVOQUJM
RShJTlBVVF9UWVBFX0RBVEUpCiAgICAgYm9vbCBtX2lzSW5wdXRUeXBlRGF0ZUVuYWJsZWQ7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuY3BwIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKaW5kZXggZmNiZDM0MGZhMDc5Yjg1Y2UwMDVm
NzQ2MGMzYTg4Nzk2ZGY3ZTdmZS4uMmZlMThmZjBlMWExN2FkMzlkYTA1NzdiYjE3YzhjOTA0Zjk4
ODlkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5jcHAKQEAgLTI0Niw4ICsyNDYsNiBAQCBDU1NQ
YXJzZXJDb250ZXh0OjpDU1NQYXJzZXJDb250ZXh0KENTU1BhcnNlck1vZGUgbW9kZSwgY29uc3Qg
VVJMJiBiYXNlVVJMKQogICAgIDogYmFzZVVSTChiYXNlVVJMKQogICAgICwgbW9kZShtb2RlKQog
ICAgICwgaXNIVE1MRG9jdW1lbnQoZmFsc2UpCi0gICAgLCBpc0NTU1JlZ2lvbnNFbmFibGVkKFJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuY3NzUmVnaW9uc0VuYWJsZWQo
KSkKLSAgICAsIGlzQ1NTQ29tcG9zaXRpbmdFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkuY3NzQ29tcG9zaXRpbmdFbmFibGVkKCkpCiAjaWYgRU5BQkxFKENT
U19HUklEX0xBWU9VVCkKICAgICAsIGNzc0dyaWRMYXlvdXRFbmFibGVkKFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuaXNDU1NHcmlkTGF5b3V0RW5hYmxlZCgpKQogI2Vu
ZGlmCkBAIC0yNjgsOCArMjY2LDYgQEAgQ1NTUGFyc2VyQ29udGV4dDo6Q1NTUGFyc2VyQ29udGV4
dChEb2N1bWVudCYgZG9jdW1lbnQsIGNvbnN0IFVSTCYgYmFzZVVSTCwgY29uc3QKICAgICAsIGNo
YXJzZXQoY2hhcnNldCkKICAgICAsIG1vZGUoZG9jdW1lbnQuaW5RdWlya3NNb2RlKCkgPyBDU1NR
dWlya3NNb2RlIDogQ1NTU3RyaWN0TW9kZSkKICAgICAsIGlzSFRNTERvY3VtZW50KGRvY3VtZW50
LmlzSFRNTERvY3VtZW50KCkpCi0gICAgLCBpc0NTU1JlZ2lvbnNFbmFibGVkKGRvY3VtZW50LmNz
c1JlZ2lvbnNFbmFibGVkKCkpCi0gICAgLCBpc0NTU0NvbXBvc2l0aW5nRW5hYmxlZChkb2N1bWVu
dC5jc3NDb21wb3NpdGluZ0VuYWJsZWQoKSkKICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQog
ICAgICwgY3NzR3JpZExheW91dEVuYWJsZWQoZG9jdW1lbnQuaXNDU1NHcmlkTGF5b3V0RW5hYmxl
ZCgpKQogI2VuZGlmCkBAIC0yOTEsOCArMjg3LDYgQEAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IENT
U1BhcnNlckNvbnRleHQmIGEsIGNvbnN0IENTU1BhcnNlckNvbnRleHQmIGIpCiAgICAgICAgICYm
IGEuY2hhcnNldCA9PSBiLmNoYXJzZXQKICAgICAgICAgJiYgYS5tb2RlID09IGIubW9kZQogICAg
ICAgICAmJiBhLmlzSFRNTERvY3VtZW50ID09IGIuaXNIVE1MRG9jdW1lbnQKLSAgICAgICAgJiYg
YS5pc0NTU1JlZ2lvbnNFbmFibGVkID09IGIuaXNDU1NSZWdpb25zRW5hYmxlZAotICAgICAgICAm
JiBhLmlzQ1NTQ29tcG9zaXRpbmdFbmFibGVkID09IGIuaXNDU1NDb21wb3NpdGluZ0VuYWJsZWQK
ICNpZiBFTkFCTEUoQ1NTX0dSSURfTEFZT1VUKQogICAgICAgICAmJiBhLmNzc0dyaWRMYXlvdXRF
bmFibGVkID09IGIuY3NzR3JpZExheW91dEVuYWJsZWQKICNlbmRpZgpAQCAtNTUyLDEzICs1NDYs
MTEgQEAgc3RhdGljIGlubGluZSBib29sIGlzU2ltcGxlTGVuZ3RoUHJvcGVydHlJRChDU1NQcm9w
ZXJ0eUlEIHByb3BlcnR5SWQsIGJvb2wmIGFjY2UKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0
R3JpZENvbHVtbkdhcDoKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0R3JpZFJvd0dhcDoKICNl
bmRpZgotICAgICAgICBhY2NlcHRzTmVnYXRpdmVOdW1iZXJzID0gZmFsc2U7Ci0gICAgICAgIHJl
dHVybiB0cnVlOwogI2lmIEVOQUJMRShDU1NfU0hBUEVTKQogICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRTaGFwZU1hcmdpbjoKLSAgICAgICAgYWNjZXB0c05lZ2F0aXZlTnVtYmVycyA9IGZhbHNl
OwotICAgICAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS5jc3NTaGFwZXNFbmFibGVkKCk7CiAjZW5kaWYKKyAgICAgICAgYWNjZXB0c05lZ2F0aXZlTnVt
YmVycyA9IGZhbHNlOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICBjYXNlIENTU1Byb3BlcnR5
Qm90dG9tOgogICAgIGNhc2UgQ1NTUHJvcGVydHlDeDoKICAgICBjYXNlIENTU1Byb3BlcnR5Q3k6
CkBAIC04MjEsMTQgKzgxMywxNCBAQCBzdGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZEtleXdvcmRQ
cm9wZXJ0eUFuZFZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcGVydHlJZCwgaW50CiAgICAgICAgIGJy
ZWFrOwogI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCiAgICAgY2FzZSBDU1NQcm9wZXJ0eU1p
eEJsZW5kTW9kZToKLSAgICAgICAgaWYgKHBhcnNlckNvbnRleHQuaXNDU1NDb21wb3NpdGluZ0Vu
YWJsZWQgJiYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1
ZU11bHRpcGx5IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVTY3JlZW4KKyAgICAgICAgaWYgKHZhbHVl
SUQgPT0gQ1NTVmFsdWVOb3JtYWwgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZU11bHRpcGx5IHx8IHZh
bHVlSUQgPT0gQ1NTVmFsdWVTY3JlZW4KICAgICAgICAgICAgIHx8IHZhbHVlSUQgPT0gQ1NTVmFs
dWVPdmVybGF5IHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVEYXJrZW4gfHwgdmFsdWVJRCA9PSBDU1NW
YWx1ZUxpZ2h0ZW4gfHwgIHZhbHVlSUQgPT0gQ1NTVmFsdWVDb2xvckRvZGdlCiAgICAgICAgICAg
ICB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQ29sb3JCdXJuIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVI
YXJkTGlnaHQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVNvZnRMaWdodCB8fCB2YWx1ZUlEID09IENT
U1ZhbHVlRGlmZmVyZW5jZQotICAgICAgICAgICAgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUV4Y2x1
c2lvbiB8fCB2YWx1ZUlEID09IENTU1ZhbHVlUGx1c0RhcmtlciB8fCB2YWx1ZUlEID09IENTU1Zh
bHVlUGx1c0xpZ2h0ZXIpKQorICAgICAgICAgICAgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZUV4Y2x1
c2lvbiB8fCB2YWx1ZUlEID09IENTU1ZhbHVlUGx1c0RhcmtlciB8fCB2YWx1ZUlEID09IENTU1Zh
bHVlUGx1c0xpZ2h0ZXIpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgYnJlYWs7
CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUlzb2xhdGlvbjoKLSAgICAgICAgaWYgKHBhcnNlckNvbnRl
eHQuaXNDU1NDb21wb3NpdGluZ0VuYWJsZWQgJiYgKHZhbHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8
IHZhbHVlSUQgPT0gQ1NTVmFsdWVJc29sYXRlKSkKKyAgICAgICAgaWYgKHZhbHVlSUQgPT0gQ1NT
VmFsdWVBdXRvIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVJc29sYXRlKQogICAgICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgICAgIGJyZWFrOwogI2VuZGlmCkBAIC05MzEsMTUgKzkyMywxNSBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgaXNWYWxpZEtleXdvcmRQcm9wZXJ0eUFuZFZhbHVlKENTU1Byb3Bl
cnR5SUQgcHJvcGVydHlJZCwgaW50CiAjaWYgRU5BQkxFKENTU19SRUdJT05TKQogICAgIGNhc2Ug
Q1NTUHJvcGVydHlXZWJraXRSZWdpb25CcmVha0FmdGVyOgogICAgIGNhc2UgQ1NTUHJvcGVydHlX
ZWJraXRSZWdpb25CcmVha0JlZm9yZToKLSAgICAgICAgaWYgKHBhcnNlckNvbnRleHQuaXNDU1NS
ZWdpb25zRW5hYmxlZCAmJiAodmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG8gfHwgdmFsdWVJRCA9PSBD
U1NWYWx1ZUFsd2F5cyB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQXZvaWQgfHwgdmFsdWVJRCA9PSBD
U1NWYWx1ZUxlZnQgfHwgdmFsdWVJRCA9PSBDU1NWYWx1ZVJpZ2h0KSkKKyAgICAgICAgaWYgKHZh
bHVlSUQgPT0gQ1NTVmFsdWVBdXRvIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVBbHdheXMgfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZUF2b2lkIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVMZWZ0IHx8IHZhbHVl
SUQgPT0gQ1NTVmFsdWVSaWdodCkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICBi
cmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0UmVnaW9uQnJlYWtJbnNpZGU6Ci0gICAg
ICAgIGlmIChwYXJzZXJDb250ZXh0LmlzQ1NTUmVnaW9uc0VuYWJsZWQgJiYgKHZhbHVlSUQgPT0g
Q1NTVmFsdWVBdXRvIHx8IHZhbHVlSUQgPT0gQ1NTVmFsdWVBdm9pZCkpCisgICAgICAgIGlmICh2
YWx1ZUlEID09IENTU1ZhbHVlQXV0byB8fCB2YWx1ZUlEID09IENTU1ZhbHVlQXZvaWQpCiAgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdFJlZ2lvbkZyYWdtZW50OgotICAgICAgICBpZiAocGFyc2VyQ29udGV4dC5pc0NTU1Jl
Z2lvbnNFbmFibGVkICYmICh2YWx1ZUlEID09IENTU1ZhbHVlQXV0byB8fCB2YWx1ZUlEID09IENT
U1ZhbHVlQnJlYWspKQorICAgICAgICBpZiAodmFsdWVJRCA9PSBDU1NWYWx1ZUF1dG8gfHwgdmFs
dWVJRCA9PSBDU1NWYWx1ZUJyZWFrKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAg
IGJyZWFrOwogI2VuZGlmCkBAIC0yNjI0LDEyICsyNjE2LDEwIEBAIGJvb2wgQ1NTUGFyc2VyOjpw
YXJzZVZhbHVlKENTU1Byb3BlcnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKICAgICAgICAg
YnJlYWs7CiAjaWYgRU5BQkxFKENTU19DT01QT1NJVElORykKICAgICBjYXNlIENTU1Byb3BlcnR5
TWl4QmxlbmRNb2RlOgotICAgICAgICBpZiAoY3NzQ29tcG9zaXRpbmdFbmFibGVkKCkpCi0gICAg
ICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CisgICAgICAgIHZhbGlkUHJpbWl0aXZlID0g
dHJ1ZTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBDU1NQcm9wZXJ0eUlzb2xhdGlvbjoKLSAg
ICAgICAgaWYgKGNzc0NvbXBvc2l0aW5nRW5hYmxlZCgpKQotICAgICAgICAgICAgdmFsaWRQcmlt
aXRpdmUgPSB0cnVlOworICAgICAgICB2YWxpZFByaW1pdGl2ZSA9IHRydWU7CiAgICAgICAgIGJy
ZWFrOwogI2VuZGlmCiAgICAgY2FzZSBDU1NQcm9wZXJ0eUZsZXg6IHsKQEAgLTI2ODMsMTIgKzI2
NzMsOCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShDU1NQcm9wZXJ0eUlEIHByb3BJZCwg
Ym9vbCBpbXBvcnRhbnQpCiAgICAgICAgIGJyZWFrOwogI2lmIEVOQUJMRShDU1NfUkVHSU9OUykK
ICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0Rmxvd0ludG86Ci0gICAgICAgIGlmICghY3NzUmVn
aW9uc0VuYWJsZWQoKSkKLSAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgcmV0dXJu
IHBhcnNlRmxvd1RocmVhZChwcm9wSWQsIGltcG9ydGFudCk7CiAgICAgY2FzZSBDU1NQcm9wZXJ0
eVdlYmtpdEZsb3dGcm9tOgotICAgICAgICBpZiAoIWNzc1JlZ2lvbnNFbmFibGVkKCkpCi0gICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIHJldHVybiBwYXJzZVJlZ2lvblRocmVhZChw
cm9wSWQsIGltcG9ydGFudCk7CiAjZW5kaWYKICAgICBjYXNlIENTU1Byb3BlcnR5VHJhbnNmb3Jt
OgpAQCAtMzE4NiwxMCArMzE3MiwxMCBAQCBib29sIENTU1BhcnNlcjo6cGFyc2VWYWx1ZShDU1NQ
cm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiAgICAgICAgIHBhcnNlZFZhbHVlID0g
cGFyc2VTaGFwZVByb3BlcnR5KHByb3BJZCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NT
UHJvcGVydHlXZWJraXRTaGFwZU1hcmdpbjoKLSAgICAgICAgdmFsaWRQcmltaXRpdmUgPSAoUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5jc3NTaGFwZXNFbmFibGVkKCkg
JiYgIWlkICYmIHZhbGlkYXRlVW5pdCh2YWx1ZVdpdGhDYWxjdWxhdGlvbiwgRkxlbmd0aCB8IEZQ
ZXJjZW50IHwgRk5vbk5lZykpOworICAgICAgICB2YWxpZFByaW1pdGl2ZSA9ICFpZCAmJiB2YWxp
ZGF0ZVVuaXQodmFsdWVXaXRoQ2FsY3VsYXRpb24sIEZMZW5ndGggfCBGUGVyY2VudCB8IEZOb25O
ZWcpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIENTU1Byb3BlcnR5V2Via2l0U2hhcGVJbWFn
ZVRocmVzaG9sZDoKLSAgICAgICAgdmFsaWRQcmltaXRpdmUgPSAoUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5jc3NTaGFwZXNFbmFibGVkKCkgJiYgIWlkICYmIHZhbGlk
YXRlVW5pdCh2YWx1ZVdpdGhDYWxjdWxhdGlvbiwgRk51bWJlcikpOworICAgICAgICB2YWxpZFBy
aW1pdGl2ZSA9ICFpZCAmJiB2YWxpZGF0ZVVuaXQodmFsdWVXaXRoQ2FsY3VsYXRpb24sIEZOdW1i
ZXIpOwogICAgICAgICBicmVhazsKICNlbmRpZgogI2lmIEVOQUJMRShDU1NfSU1BR0VfT1JJRU5U
QVRJT04pCkBAIC00OTc1LDExICs0OTYxLDExIEBAIGJvb2wgQ1NTUGFyc2VyOjpwYXJzZUZpbGxQ
cm9wZXJ0eShDU1NQcm9wZXJ0eUlEIHByb3BJZCwgQ1NTUHJvcGVydHlJRCYgcHJvcElkMSwKICAg
ICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
ICAgICAgICBjYXNlIENTU1Byb3BlcnR5QmFja2dyb3VuZEJsZW5kTW9kZToKLSAgICAgICAgICAg
ICAgICAgICAgaWYgKGNzc0NvbXBvc2l0aW5nRW5hYmxlZCgpICYmIChjdXJyZW50VmFsdWUtPmlk
ID09IENTU1ZhbHVlTm9ybWFsIHx8IGN1cnJlbnRWYWx1ZS0+aWQgPT0gQ1NTVmFsdWVNdWx0aXBs
eQorICAgICAgICAgICAgICAgICAgICBpZiAoY3VycmVudFZhbHVlLT5pZCA9PSBDU1NWYWx1ZU5v
cm1hbCB8fCBjdXJyZW50VmFsdWUtPmlkID09IENTU1ZhbHVlTXVsdGlwbHkKICAgICAgICAgICAg
ICAgICAgICAgICAgIHx8IGN1cnJlbnRWYWx1ZS0+aWQgPT0gQ1NTVmFsdWVTY3JlZW4gfHwgY3Vy
cmVudFZhbHVlLT5pZCA9PSBDU1NWYWx1ZU92ZXJsYXkgfHwgY3VycmVudFZhbHVlLT5pZCA9PSBD
U1NWYWx1ZURhcmtlbgogICAgICAgICAgICAgICAgICAgICAgICAgfHwgY3VycmVudFZhbHVlLT5p
ZCA9PSBDU1NWYWx1ZUxpZ2h0ZW4gfHwgIGN1cnJlbnRWYWx1ZS0+aWQgPT0gQ1NTVmFsdWVDb2xv
ckRvZGdlIHx8IGN1cnJlbnRWYWx1ZS0+aWQgPT0gQ1NTVmFsdWVDb2xvckJ1cm4KICAgICAgICAg
ICAgICAgICAgICAgICAgIHx8IGN1cnJlbnRWYWx1ZS0+aWQgPT0gQ1NTVmFsdWVIYXJkTGlnaHQg
fHwgY3VycmVudFZhbHVlLT5pZCA9PSBDU1NWYWx1ZVNvZnRMaWdodCB8fCBjdXJyZW50VmFsdWUt
PmlkID09IENTU1ZhbHVlRGlmZmVyZW5jZQotICAgICAgICAgICAgICAgICAgICAgICAgfHwgY3Vy
cmVudFZhbHVlLT5pZCA9PSBDU1NWYWx1ZUV4Y2x1c2lvbikpIHsKKyAgICAgICAgICAgICAgICAg
ICAgICAgIHx8IGN1cnJlbnRWYWx1ZS0+aWQgPT0gQ1NTVmFsdWVFeGNsdXNpb24pIHsKICAgICAg
ICAgICAgICAgICAgICAgICAgIGN1cnJWYWx1ZSA9IENTU1ZhbHVlUG9vbDo6c2luZ2xldG9uKCku
Y3JlYXRlSWRlbnRpZmllclZhbHVlKGN1cnJlbnRWYWx1ZS0+aWQpOwogICAgICAgICAgICAgICAg
ICAgICAgICAgbV92YWx1ZUxpc3QtPm5leHQoKTsKICAgICAgICAgICAgICAgICAgICAgfQpAQCAt
Njg3NCw5ICs2ODYwLDYgQEAgUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlQmFzaWNT
aGFwZUFuZE9yQm94KENTU1Byb3BlcnR5SUQgcHJvcElkKQogI2lmIEVOQUJMRShDU1NfU0hBUEVT
KQogUmVmUHRyPENTU1ZhbHVlPiBDU1NQYXJzZXI6OnBhcnNlU2hhcGVQcm9wZXJ0eShDU1NQcm9w
ZXJ0eUlEIHByb3BJZCkKIHsKLSAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkuY3NzU2hhcGVzRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LQogICAgIENTU1BhcnNlclZhbHVlJiB2YWx1ZSA9ICptX3ZhbHVlTGlzdC0+Y3VycmVudCgpOwog
ICAgIENTU1ZhbHVlSUQgdmFsdWVJZCA9IHZhbHVlLmlkOwogCkBAIC0xMDI2NywxNiArMTAyNTAs
NiBAQCBzdGF0aWMgYm9vbCB2YWxpZEZsb3dOYW1lKGNvbnN0IFN0cmluZyYgZmxvd05hbWUpCiB9
CiAjZW5kaWYKIAotYm9vbCBDU1NQYXJzZXI6OmNzc1JlZ2lvbnNFbmFibGVkKCkgY29uc3QKLXsK
LSAgICByZXR1cm4gbV9jb250ZXh0LmlzQ1NTUmVnaW9uc0VuYWJsZWQ7Ci19Ci0KLWJvb2wgQ1NT
UGFyc2VyOjpjc3NDb21wb3NpdGluZ0VuYWJsZWQoKSBjb25zdAotewotICAgIHJldHVybiBtX2Nv
bnRleHQuaXNDU1NDb21wb3NpdGluZ0VuYWJsZWQ7Ci19Ci0KICNpZiBFTkFCTEUoQ1NTX0dSSURf
TEFZT1VUKQogYm9vbCBDU1NQYXJzZXI6OmlzQ1NTR3JpZExheW91dEVuYWJsZWQoKSBjb25zdAog
ewpAQCAtMTAyOTAsNyArMTAyNjMsNiBAQCBib29sIENTU1BhcnNlcjo6aXNDU1NHcmlkTGF5b3V0
RW5hYmxlZCgpIGNvbnN0CiBib29sIENTU1BhcnNlcjo6cGFyc2VGbG93VGhyZWFkKENTU1Byb3Bl
cnR5SUQgcHJvcElkLCBib29sIGltcG9ydGFudCkKIHsKICAgICBBU1NFUlQocHJvcElkID09IENT
U1Byb3BlcnR5V2Via2l0Rmxvd0ludG8pOwotICAgIEFTU0VSVChjc3NSZWdpb25zRW5hYmxlZCgp
KTsKIAogICAgIGlmIChtX3ZhbHVlTGlzdC0+c2l6ZSgpICE9IDEpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKQEAgLTEwMzIyLDcgKzEwMjk0LDYgQEAgYm9vbCBDU1NQYXJzZXI6OnBhcnNlRmxvd1Ro
cmVhZChDU1NQcm9wZXJ0eUlEIHByb3BJZCwgYm9vbCBpbXBvcnRhbnQpCiBib29sIENTU1BhcnNl
cjo6cGFyc2VSZWdpb25UaHJlYWQoQ1NTUHJvcGVydHlJRCBwcm9wSWQsIGJvb2wgaW1wb3J0YW50
KQogewogICAgIEFTU0VSVChwcm9wSWQgPT0gQ1NTUHJvcGVydHlXZWJraXRGbG93RnJvbSk7Ci0g
ICAgQVNTRVJUKGNzc1JlZ2lvbnNFbmFibGVkKCkpOwogCiAgICAgaWYgKG1fdmFsdWVMaXN0LT5z
aXplKCkgIT0gMSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMTMxOTcsNyArMTMxNjgsNyBA
QCB2b2lkIENTU1BhcnNlcjo6cmVjeWNsZVNlbGVjdG9yVmVjdG9yKHN0ZDo6dW5pcXVlX3B0cjxW
ZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTUwogCiBSZWZQdHI8U3R5bGVSdWxlQmFzZT4gQ1NTUGFy
c2VyOjpjcmVhdGVSZWdpb25SdWxlKFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2Vs
ZWN0b3I+PiogcmVnaW9uU2VsZWN0b3IsIFJ1bGVMaXN0KiBydWxlcykKIHsKLSAgICBpZiAoIWNz
c1JlZ2lvbnNFbmFibGVkKCkgfHwgIXJlZ2lvblNlbGVjdG9yIHx8ICFydWxlcykgeworICAgIGlm
ICghcmVnaW9uU2VsZWN0b3IgfHwgIXJ1bGVzKSB7CiAgICAgICAgIHBvcFJ1bGVEYXRhKCk7CiAg
ICAgICAgIHJldHVybiBudWxscHRyOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXIuaAppbmRleCA4
Mjg2Y2Y3M2UyMGJlNDhhMzgzZjQ1NDdlYWIyNjg4MTIzYzNlMTg4Li5kYzYxODM2MTcyZDk4NDRk
NmEzY2YxYTYwMmJiYmZiNDExNTdiMGJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTUGFyc2VyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlci5oCkBAIC0zNDgs
OCArMzQ4LDYgQEAgcHVibGljOgogICAgIGJvb2wgcGFyc2VGb250RmVhdHVyZVRhZyhDU1NWYWx1
ZUxpc3QmKTsKICAgICBib29sIHBhcnNlRm9udEZlYXR1cmVTZXR0aW5ncyhib29sIGltcG9ydGFu
dCk7CiAKLSAgICBib29sIGNzc1JlZ2lvbnNFbmFibGVkKCkgY29uc3Q7Ci0gICAgYm9vbCBjc3ND
b21wb3NpdGluZ0VuYWJsZWQoKSBjb25zdDsKICAgICBib29sIHBhcnNlRmxvd1RocmVhZChDU1NQ
cm9wZXJ0eUlELCBib29sIGltcG9ydGFudCk7CiAgICAgYm9vbCBwYXJzZVJlZ2lvblRocmVhZChD
U1NQcm9wZXJ0eUlELCBib29sIGltcG9ydGFudCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NQYXJzZXJNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyTW9k
ZS5oCmluZGV4IGFlMDU0YTQ4NTE4NzBkYzU1MDJhN2IzMDNlZTM0MTI5ZjQ4YmM4ZWIuLjExYjBk
MWE2YzBlYWI5ZTM1YTM4YTg4MmViMjU2NTRiOGFjNzQzMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NQYXJzZXJNb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1Bh
cnNlck1vZGUuaApAQCAtNjQsOCArNjQsNiBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIGNoYXJzZXQ7
CiAgICAgQ1NTUGFyc2VyTW9kZSBtb2RlOwogICAgIGJvb2wgaXNIVE1MRG9jdW1lbnQ7Ci0gICAg
Ym9vbCBpc0NTU1JlZ2lvbnNFbmFibGVkOwotICAgIGJvb2wgaXNDU1NDb21wb3NpdGluZ0VuYWJs
ZWQ7CiAjaWYgRU5BQkxFKENTU19HUklEX0xBWU9VVCkKICAgICBib29sIGNzc0dyaWRMYXlvdXRF
bmFibGVkOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBmYTdmNmQwMzJkY2Zi
NmMyYzNiNmQxN2Y5OGIwNzJjMzQwMmE4NjQ4Li4yZTFlYWFhZDk2NjQ5Mzk4ODVlMzViNTFlM2Uy
YmI4MmIwNGYwZjAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTExMjgsMTYgKzExMjgs
NiBAQCBSZWY8RWxlbWVudD4gRG9jdW1lbnQ6OmNyZWF0ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVk
TmFtZSYgbmFtZSwgYm9vbCBjcmVhdGVkQnlQYQogICAgIHJldHVybiBlbGVtZW50LnJlbGVhc2VO
b25OdWxsKCk7CiB9CiAKLWJvb2wgRG9jdW1lbnQ6OmNzc1JlZ2lvbnNFbmFibGVkKCkgY29uc3QK
LXsKLSAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5j
c3NSZWdpb25zRW5hYmxlZCgpOyAKLX0KLQotYm9vbCBEb2N1bWVudDo6Y3NzQ29tcG9zaXRpbmdF
bmFibGVkKCkgY29uc3QKLXsKLSAgICByZXR1cm4gUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS5jc3NDb21wb3NpdGluZ0VuYWJsZWQoKTsKLX0KLQogI2lmIEVOQUJMRShD
U1NfR1JJRF9MQVlPVVQpCiBib29sIERvY3VtZW50Ojppc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkg
Y29uc3QKIHsKQEAgLTExNDYsMTcgKzExMzYsMTUgQEAgYm9vbCBEb2N1bWVudDo6aXNDU1NHcmlk
TGF5b3V0RW5hYmxlZCgpIGNvbnN0CiAjZW5kaWYKIAogI2lmIEVOQUJMRShDU1NfUkVHSU9OUykK
LQogUmVmUHRyPERPTU5hbWVkRmxvd0NvbGxlY3Rpb24+IERvY3VtZW50Ojp3ZWJraXRHZXROYW1l
ZEZsb3dzKCkKIHsKLSAgICBpZiAoIWNzc1JlZ2lvbnNFbmFibGVkKCkgfHwgIXJlbmRlclZpZXco
KSkKKyAgICBpZiAoIXJlbmRlclZpZXcoKSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAg
ICB1cGRhdGVTdHlsZUlmTmVlZGVkKCk7CiAKICAgICByZXR1cm4gbmFtZWRGbG93cygpLmNyZWF0
ZUNTU09NU25hcHNob3QoKTsKIH0KLQogI2VuZGlmCiAKIE5hbWVkRmxvd0NvbGxlY3Rpb24mIERv
Y3VtZW50OjpuYW1lZEZsb3dzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggMWJjYjQ4YmUyNWVi
YWJkOWFjNjhlY2NkNTAxZTY2NTE5MTUxN2UzYi4uMmQzZTg2MmJlMmVhNDI4MDMzODcxZDdjOTk0
NmI0YjJhMDlhNGVkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTM5Miw4ICszOTIsNiBAQCBw
dWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPEVsZW1lbnQ+IGNyZWF0ZUVsZW1lbnRO
Uyhjb25zdCBTdHJpbmcmIG5hbWVzcGFjZVVSSSwgY29uc3QgU3RyaW5nJiBxdWFsaWZpZWROYW1l
LCBFeGNlcHRpb25Db2RlJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmPEVsZW1lbnQ+IGNyZWF0
ZUVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIGJvb2wgY3JlYXRlZEJ5UGFyc2VyKTsKIAot
ICAgIGJvb2wgY3NzUmVnaW9uc0VuYWJsZWQoKSBjb25zdDsKLSAgICBib29sIGNzc0NvbXBvc2l0
aW5nRW5hYmxlZCgpIGNvbnN0OwogI2lmIEVOQUJMRShDU1NfR1JJRF9MQVlPVVQpCiAgICAgYm9v
bCBpc0NTU0dyaWRMYXlvdXRFbmFibGVkKCkgY29uc3Q7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAppbmRleCBjMDQ5ZDY0NDg1ZjZkZjc5YzdiY2YzMTIzNjU2MGI5NzBmZWYyMjVlLi43ZGRj
NThhZDI4M2EyNzdhZTg1NDBhNzlmZDBlMTUyNWJkMjgxYmRlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCkBAIC0xNjE0LDcgKzE2MTQsNyBAQCB2b2lkIEVsZW1lbnQ6OnJlbW92ZWRGcm9tKENvbnRh
aW5lck5vZGUmIGluc2VydGlvblBvaW50KQogCiB2b2lkIEVsZW1lbnQ6OnVucmVnaXN0ZXJOYW1l
ZEZsb3dDb250ZW50RWxlbWVudCgpCiB7Ci0gICAgaWYgKGRvY3VtZW50KCkuY3NzUmVnaW9uc0Vu
YWJsZWQoKSAmJiBpc05hbWVkRmxvd0NvbnRlbnROb2RlKCkgJiYgZG9jdW1lbnQoKS5yZW5kZXJW
aWV3KCkpCisgICAgaWYgKGlzTmFtZWRGbG93Q29udGVudE5vZGUoKSAmJiBkb2N1bWVudCgpLnJl
bmRlclZpZXcoKSkKICAgICAgICAgZG9jdW1lbnQoKS5yZW5kZXJWaWV3KCktPmZsb3dUaHJlYWRD
b250cm9sbGVyKCkudW5yZWdpc3Rlck5hbWVkRmxvd0NvbnRlbnRFbGVtZW50KCp0aGlzKTsKIH0K
IApAQCAtMjkzMCw3ICsyOTMwLDcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBFbGVtZW50Ojp3ZWJr
aXRSZWdpb25PdmVyc2V0KCkgY29uc3QKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEF0b21p
Y1N0cmluZz4gdW5kZWZpbmVkU3RhdGUoInVuZGVmaW5lZCIsIEF0b21pY1N0cmluZzo6Q29uc3Ry
dWN0RnJvbUxpdGVyYWwpOwotICAgIGlmICghZG9jdW1lbnQoKS5jc3NSZWdpb25zRW5hYmxlZCgp
IHx8ICFyZW5kZXJOYW1lZEZsb3dGcmFnbWVudCgpKQorICAgIGlmICghcmVuZGVyTmFtZWRGbG93
RnJhZ21lbnQoKSkKICAgICAgICAgcmV0dXJuIHVuZGVmaW5lZFN0YXRlOwogCiAgICAgc3dpdGNo
IChyZWdpb25PdmVyc2V0U3RhdGUoKSkgewpAQCAtMjk1Nyw5ICsyOTU3LDYgQEAgY29uc3QgQXRv
bWljU3RyaW5nJiBFbGVtZW50Ojp3ZWJraXRSZWdpb25PdmVyc2V0KCkgY29uc3QKIFZlY3RvcjxS
ZWZQdHI8UmFuZ2U+PiBFbGVtZW50Ojp3ZWJraXRHZXRSZWdpb25GbG93UmFuZ2VzKCkgY29uc3QK
IHsKICAgICBWZWN0b3I8UmVmUHRyPFJhbmdlPj4gcmFuZ2VPYmplY3RzOwotICAgIGlmICghZG9j
dW1lbnQoKS5jc3NSZWdpb25zRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gcmFuZ2VPYmplY3Rz
OwotCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMo
KTsKICAgICBpZiAocmVuZGVyZXIoKSAmJiByZW5kZXJlcigpLT5pc1JlbmRlck5hbWVkRmxvd0Zy
YWdtZW50Q29udGFpbmVyKCkpIHsKICAgICAgICAgUmVuZGVyTmFtZWRGbG93RnJhZ21lbnQmIG5h
bWVkRmxvd0ZyYWdtZW50ID0gKmRvd25jYXN0PFJlbmRlckJsb2NrRmxvdz4oKnJlbmRlcmVyKCkp
LnJlbmRlck5hbWVkRmxvd0ZyYWdtZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFF
bGVtZW50LmNwcAppbmRleCBkYTcyMzFlOTVlOTI0NDlhOTdiZGJmOWUzZTdiYThhMTNjMDBjOTYw
Li4xNTg5NDE3NjBiNDUwYzA1N2Y2MjE5ZGYxZDk1NzcxYmM4NzE1MWJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTcyNCw5ICs3MjQsNiBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OmZpbmlzaFBhcnNpbmdDaGlsZHJlbigpCiAgICAgbV9wYXJzaW5nSW5Q
cm9ncmVzcyA9IGZhbHNlOwogICAgIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICBpZiAo
IVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2Via2l0VmlkZW9UcmFj
a0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgaWYgKGRlc2NlbmRhbnRzT2ZUeXBl
PEhUTUxUcmFja0VsZW1lbnQ+KCp0aGlzKS5maXJzdCgpKQogICAgICAgICBzY2hlZHVsZURlbGF5
ZWRBY3Rpb24oQ29uZmlndXJlVGV4dFRyYWNrcyk7CiAjZW5kaWYKQEAgLTg2OSw3ICs4NjYsNyBA
QCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNjaGVkdWxlRGVsYXllZEFjdGlvbihEZWxheWVkQWN0
aW9uVHlwZSBhY3Rpb25UeXBlKQogICAgIH0KIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAg
ICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJraXRWaWRl
b1RyYWNrRW5hYmxlZCgpICYmIChhY3Rpb25UeXBlICYgQ29uZmlndXJlVGV4dFRyYWNrcykpCisg
ICAgaWYgKGFjdGlvblR5cGUgJiBDb25maWd1cmVUZXh0VHJhY2tzKQogICAgICAgICBzZXRGbGFn
cyhtX3BlbmRpbmdBY3Rpb25GbGFncywgQ29uZmlndXJlVGV4dFRyYWNrcyk7CiAjZW5kaWYKIApA
QCAtOTE1LDcgKzkxMiw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGVuZGluZ0FjdGlvblRp
bWVyRmlyZWQoKQogICAgIG1fcGVuZGluZ0FjdGlvbkZsYWdzID0gMDsKIAogI2lmIEVOQUJMRShW
SURFT19UUkFDSykKLSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS53ZWJraXRWaWRlb1RyYWNrRW5hYmxlZCgpICYmIChwZW5kaW5nQWN0aW9ucyAmIENvbmZp
Z3VyZVRleHRUcmFja3MpKQorICAgIGlmIChwZW5kaW5nQWN0aW9ucyAmIENvbmZpZ3VyZVRleHRU
cmFja3MpCiAgICAgICAgIGNvbmZpZ3VyZVRleHRUcmFja3MoKTsKICNlbmRpZgogCkBAIC0xMTA0
LDggKzExMDEsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnByZXBhcmVGb3JMb2FkKCkKIAog
ICAgICAgICB1cGRhdGVNZWRpYUNvbnRyb2xsZXIoKTsKICNpZiBFTkFCTEUoVklERU9fVFJBQ0sp
Ci0gICAgICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndl
YmtpdFZpZGVvVHJhY2tFbmFibGVkKCkpCi0gICAgICAgICAgICB1cGRhdGVBY3RpdmVUZXh0VHJh
Y2tDdWVzKE1lZGlhVGltZTo6emVyb1RpbWUoKSk7CisgICAgICAgIHVwZGF0ZUFjdGl2ZVRleHRU
cmFja0N1ZXMoTWVkaWFUaW1lOjp6ZXJvVGltZSgpKTsKICNlbmRpZgogICAgIH0KIApAQCAtMTE4
MSwxNCArMTE3NywxMiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmxvYWRJbnRlcm5hbCgpCiAK
ICAgICAvLyBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tzQXJlUmVhZHkgd2lsbCBuZWVkICIu
Li4gdGhlIHRleHQgdHJhY2tzIHdob3NlIG1vZGUgd2FzIG5vdCBpbiB0aGUKICAgICAvLyBkaXNh
YmxlZCBzdGF0ZSB3aGVuIHRoZSBlbGVtZW50J3MgcmVzb3VyY2Ugc2VsZWN0aW9uIGFsZ29yaXRo
bSBsYXN0IHN0YXJ0ZWQiLgotICAgIGlmIChSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRG
ZWF0dXJlcygpLndlYmtpdFZpZGVvVHJhY2tFbmFibGVkKCkpIHsKLSAgICAgICAgbV90ZXh0VHJh
Y2tzV2hlblJlc291cmNlU2VsZWN0aW9uQmVnYW4uY2xlYXIoKTsKLSAgICAgICAgaWYgKG1fdGV4
dFRyYWNrcykgewotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fdGV4dFRy
YWNrcy0+bGVuZ3RoKCk7ICsraSkgewotICAgICAgICAgICAgICAgIFRleHRUcmFjayogdHJhY2sg
PSBtX3RleHRUcmFja3MtPml0ZW0oaSk7Ci0gICAgICAgICAgICAgICAgaWYgKHRyYWNrLT5tb2Rl
KCkgIT0gVGV4dFRyYWNrOjpNb2RlOjpEaXNhYmxlZCkKLSAgICAgICAgICAgICAgICAgICAgbV90
ZXh0VHJhY2tzV2hlblJlc291cmNlU2VsZWN0aW9uQmVnYW4uYXBwZW5kKHRyYWNrKTsKLSAgICAg
ICAgICAgIH0KKyAgICBtX3RleHRUcmFja3NXaGVuUmVzb3VyY2VTZWxlY3Rpb25CZWdhbi5jbGVh
cigpOworICAgIGlmIChtX3RleHRUcmFja3MpIHsKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0g
MDsgaSA8IG1fdGV4dFRyYWNrcy0+bGVuZ3RoKCk7ICsraSkgeworICAgICAgICAgICAgVGV4dFRy
YWNrKiB0cmFjayA9IG1fdGV4dFRyYWNrcy0+aXRlbShpKTsKKyAgICAgICAgICAgIGlmICh0cmFj
ay0+bW9kZSgpICE9IFRleHRUcmFjazo6TW9kZTo6RGlzYWJsZWQpCisgICAgICAgICAgICAgICAg
bV90ZXh0VHJhY2tzV2hlblJlc291cmNlU2VsZWN0aW9uQmVnYW4uYXBwZW5kKHRyYWNrKTsKICAg
ICAgICAgfQogICAgIH0KICNlbmRpZgpAQCAtMTcxNiw4ICsxNzEwLDYgQEAgdm9pZCBIVE1MTWVk
aWFFbGVtZW50Ojp0ZXh0VHJhY2tSZWFkeVN0YXRlQ2hhbmdlZChUZXh0VHJhY2sqIHRyYWNrKQog
CiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmF1ZGlvVHJhY2tFbmFibGVkQ2hhbmdlZChBdWRpb1Ry
YWNrKiB0cmFjaykKIHsKLSAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZl
YXR1cmVzKCkud2Via2l0VmlkZW9UcmFja0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwogICAg
IGlmIChtX2F1ZGlvVHJhY2tzICYmIG1fYXVkaW9UcmFja3MtPmNvbnRhaW5zKHRyYWNrKSkKICAg
ICAgICAgbV9hdWRpb1RyYWNrcy0+c2NoZWR1bGVDaGFuZ2VFdmVudCgpOwogfQpAQCAtMTc1OSw4
ICsxNzUxLDYgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tNb2RlQ2hhbmdlZChU
ZXh0VHJhY2sqIHRyYWNrKQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnZpZGVvVHJhY2tTZWxl
Y3RlZENoYW5nZWQoVmlkZW9UcmFjayogdHJhY2spCiB7Ci0gICAgaWYgKCFSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYmtpdFZpZGVvVHJhY2tFbmFibGVkKCkpCi0g
ICAgICAgIHJldHVybjsKICAgICBpZiAobV92aWRlb1RyYWNrcyAmJiBtX3ZpZGVvVHJhY2tzLT5j
b250YWlucyh0cmFjaykpCiAgICAgICAgIG1fdmlkZW9UcmFja3MtPnNjaGVkdWxlQ2hhbmdlRXZl
bnQoKTsKIH0KQEAgLTIxNjYsNyArMjE1Niw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0
UmVhZHlTdGF0ZShNZWRpYVBsYXllcjo6UmVhZHlTdGF0ZSBzdGF0ZSkKICAgICBSZWFkeVN0YXRl
IG5ld1N0YXRlID0gc3RhdGljX2Nhc3Q8UmVhZHlTdGF0ZT4oc3RhdGUpOwogCiAjaWYgRU5BQkxF
KFZJREVPX1RSQUNLKQotICAgIGJvb2wgdHJhY2tzQXJlUmVhZHkgPSAhUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJraXRWaWRlb1RyYWNrRW5hYmxlZCgpIHx8IHRl
eHRUcmFja3NBcmVSZWFkeSgpOworICAgIGJvb2wgdHJhY2tzQXJlUmVhZHkgPSB0ZXh0VHJhY2tz
QXJlUmVhZHkoKTsKIAogICAgIGlmIChuZXdTdGF0ZSA9PSBvbGRTdGF0ZSAmJiBtX3RyYWNrc0Fy
ZVJlYWR5ID09IHRyYWNrc0FyZVJlYWR5KQogICAgICAgICByZXR1cm47CkBAIC0yMjg4LDggKzIy
NzgsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFJlYWR5U3RhdGUoTWVkaWFQbGF5ZXI6
OlJlYWR5U3RhdGUgc3RhdGUpCiAgICAgdXBkYXRlUGxheVN0YXRlKCk7CiAgICAgdXBkYXRlTWVk
aWFDb250cm9sbGVyKCk7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIGlmIChSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYmtpdFZpZGVvVHJhY2tFbmFibGVk
KCkpCi0gICAgICAgIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMoY3VycmVudE1lZGlhVGltZSgp
KTsKKyAgICB1cGRhdGVBY3RpdmVUZXh0VHJhY2tDdWVzKGN1cnJlbnRNZWRpYVRpbWUoKSk7CiAj
ZW5kaWYKIH0KIApAQCAtMzQyOCw4ICszNDE3LDcgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpw
bGF5YmFja1Byb2dyZXNzVGltZXJGaXJlZCgpCiAgICAgICAgIG1lZGlhQ29udHJvbHMoKS0+cGxh
eWJhY2tQcm9ncmVzc2VkKCk7CiAKICNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgaWYgKFJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2Via2l0VmlkZW9UcmFja0Vu
YWJsZWQoKSkKLSAgICAgICAgdXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3VlcyhjdXJyZW50TWVkaWFU
aW1lKCkpOworICAgIHVwZGF0ZUFjdGl2ZVRleHRUcmFja0N1ZXMoY3VycmVudE1lZGlhVGltZSgp
KTsKICNlbmRpZgogCiAjaWYgRU5BQkxFKE1FRElBX1NPVVJDRSkKQEAgLTM0ODksMTcgKzM0Nzcs
MTEgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckRpZEFkZEF1ZGlvVHJhY2so
UGFzc1JlZlB0cjxBdWRpb1RyYWNrUHJpdmF0ZT4KICAgICBpZiAoaXNQbGF5aW5nKCkgJiYgIW1f
bWVkaWFTZXNzaW9uLT5wbGF5YmFja1Blcm1pdHRlZCgqdGhpcykpCiAgICAgICAgIHBhdXNlSW50
ZXJuYWwoKTsKIAotICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS53ZWJraXRWaWRlb1RyYWNrRW5hYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0KICAgICBh
ZGRBdWRpb1RyYWNrKEF1ZGlvVHJhY2s6OmNyZWF0ZSh0aGlzLCBwcnBUcmFjaykpOwogfQogCiB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyRGlkQWRkVGV4dFRyYWNrKFBhc3NSZWZQ
dHI8SW5iYW5kVGV4dFRyYWNrUHJpdmF0ZT4gcHJwVHJhY2spCiB7Ci0gICAgaWYgKCFSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYmtpdFZpZGVvVHJhY2tFbmFibGVk
KCkpCi0gICAgICAgIHJldHVybjsKLSAgICAKICAgICAvLyA0LjguMTAuMTIuMiBTb3VyY2luZyBp
bi1iYW5kIHRleHQgdHJhY2tzCiAgICAgLy8gMS4gQXNzb2NpYXRlIHRoZSByZWxldmFudCBkYXRh
IHdpdGggYSBuZXcgdGV4dCB0cmFjayBhbmQgaXRzIGNvcnJlc3BvbmRpbmcgbmV3IFRleHRUcmFj
ayBvYmplY3QuCiAgICAgUmVmUHRyPEluYmFuZFRleHRUcmFjaz4gdGV4dFRyYWNrID0gSW5iYW5k
VGV4dFRyYWNrOjpjcmVhdGUoQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0
KCksIHRoaXMsIHBycFRyYWNrKTsKQEAgLTM1MzMsOSArMzUxNSw2IEBAIHZvaWQgSFRNTE1lZGlh
RWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRBZGRUZXh0VHJhY2soUGFzc1JlZlB0cjxJbmJhbmRUZXh0
VHJhY2tQcml2CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJEaWRBZGRWaWRl
b1RyYWNrKFBhc3NSZWZQdHI8VmlkZW9UcmFja1ByaXZhdGU+IHBycFRyYWNrKQogewotICAgIGlm
ICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJraXRWaWRlb1Ry
YWNrRW5hYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0KICAgICBhZGRWaWRlb1RyYWNrKFZpZGVv
VHJhY2s6OmNyZWF0ZSh0aGlzLCBwcnBUcmFjaykpOwogfQogCkBAIC0zNTYyLDE3ICszNTQxLDEx
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y2xvc2VDYXB0aW9uVHJhY2tzQ2hhbmdlZCgpCiAK
IHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6YWRkQXVkaW9UcmFjayhQYXNzUmVmUHRyPEF1ZGlvVHJh
Y2s+IHRyYWNrKQogewotICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS53ZWJraXRWaWRlb1RyYWNrRW5hYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0KICAg
ICBhdWRpb1RyYWNrcygpLT5hcHBlbmQodHJhY2spOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1l
bnQ6OmFkZFRleHRUcmFjayhQYXNzUmVmUHRyPFRleHRUcmFjaz4gdHJhY2spCiB7Ci0gICAgaWYg
KCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYmtpdFZpZGVvVHJh
Y2tFbmFibGVkKCkpCi0gICAgICAgIHJldHVybjsKLQogICAgIGlmICghbV9yZXF1aXJlQ2FwdGlv
blByZWZlcmVuY2VzQ2hhbmdlZENhbGxiYWNrcykgewogICAgICAgICBtX3JlcXVpcmVDYXB0aW9u
UHJlZmVyZW5jZXNDaGFuZ2VkQ2FsbGJhY2tzID0gdHJ1ZTsKICAgICAgICAgRG9jdW1lbnQmIGRv
Y3VtZW50ID0gdGhpcy0+ZG9jdW1lbnQoKTsKQEAgLTM1ODgsMjUgKzM1NjEsMTYgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjphZGRUZXh0VHJhY2soUGFzc1JlZlB0cjxUZXh0VHJhY2s+IHRyYWNr
KQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmFkZFZpZGVvVHJhY2soUGFzc1JlZlB0cjxWaWRl
b1RyYWNrPiB0cmFjaykKIHsKLSAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkud2Via2l0VmlkZW9UcmFja0VuYWJsZWQoKSkKLSAgICAgICAgcmV0dXJuOwot
CiAgICAgdmlkZW9UcmFja3MoKS0+YXBwZW5kKHRyYWNrKTsKIH0KIAogdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjpyZW1vdmVBdWRpb1RyYWNrKEF1ZGlvVHJhY2sqIHRyYWNrKQogewotICAgIGlmICgh
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJraXRWaWRlb1RyYWNr
RW5hYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0KICAgICBtX2F1ZGlvVHJhY2tzLT5yZW1vdmUo
dHJhY2spOwogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnJlbW92ZVRleHRUcmFjayhUZXh0
VHJhY2sqIHRyYWNrLCBib29sIHNjaGVkdWxlRXZlbnQpCiB7Ci0gICAgaWYgKCFSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYmtpdFZpZGVvVHJhY2tFbmFibGVkKCkp
Ci0gICAgICAgIHJldHVybjsKLQogICAgIFRyYWNrRGlzcGxheVVwZGF0ZVNjb3BlIHNjb3BlKHRo
aXMpOwogICAgIGlmIChUZXh0VHJhY2tDdWVMaXN0KiBjdWVzID0gdHJhY2stPmN1ZXMoKSkKICAg
ICAgICAgdGV4dFRyYWNrUmVtb3ZlQ3Vlcyh0cmFjaywgY3Vlcyk7CkBAIC0zNjE5LDkgKzM1ODMs
NiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnJlbW92ZVRleHRUcmFjayhUZXh0VHJhY2sqIHRy
YWNrLCBib29sIHNjaGVkdWxlRXZlbnQpCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cmVtb3Zl
VmlkZW9UcmFjayhWaWRlb1RyYWNrKiB0cmFjaykKIHsKLSAgICBpZiAoIVJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2Via2l0VmlkZW9UcmFja0VuYWJsZWQoKSkKLSAg
ICAgICAgcmV0dXJuOwotCiAgICAgbV92aWRlb1RyYWNrcy0+cmVtb3ZlKHRyYWNrKTsKIH0KIApA
QCAtMzY0Niw5ICszNjA3LDYgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50Ojpmb3JnZXRSZXNvdXJj
ZVNwZWNpZmljVHJhY2tzKCkKIAogUGFzc1JlZlB0cjxUZXh0VHJhY2s+IEhUTUxNZWRpYUVsZW1l
bnQ6OmFkZFRleHRUcmFjayhjb25zdCBTdHJpbmcmIGtpbmQsIGNvbnN0IFN0cmluZyYgbGFiZWws
IGNvbnN0IFN0cmluZyYgbGFuZ3VhZ2UsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewotICAgIGlmICgh
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJraXRWaWRlb1RyYWNr
RW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gMDsKLQogICAgIC8vIDQuOC4xMC4xMi40IFRleHQg
dHJhY2sgQVBJCiAgICAgLy8gVGhlIGFkZFRleHRUcmFjayhraW5kLCBsYWJlbCwgbGFuZ3VhZ2Up
IG1ldGhvZCBvZiBtZWRpYSBlbGVtZW50cywgd2hlbiBpbnZva2VkLCBtdXN0IHJ1biB0aGUgZm9s
bG93aW5nIHN0ZXBzOgogCkBAIC0zNjgzLDkgKzM2NDEsNiBAQCBQYXNzUmVmUHRyPFRleHRUcmFj
az4gSFRNTE1lZGlhRWxlbWVudDo6YWRkVGV4dFRyYWNrKGNvbnN0IFN0cmluZyYga2luZCwgY29u
c3QgUwogCiBBdWRpb1RyYWNrTGlzdCogSFRNTE1lZGlhRWxlbWVudDo6YXVkaW9UcmFja3MoKQog
ewotICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJr
aXRWaWRlb1RyYWNrRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gMDsKLQogICAgIGlmICghbV9h
dWRpb1RyYWNrcykKICAgICAgICAgbV9hdWRpb1RyYWNrcyA9IEF1ZGlvVHJhY2tMaXN0OjpjcmVh
dGUodGhpcywgQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogCkBA
IC0zNjk0LDkgKzM2NDksNiBAQCBBdWRpb1RyYWNrTGlzdCogSFRNTE1lZGlhRWxlbWVudDo6YXVk
aW9UcmFja3MoKQogCiBUZXh0VHJhY2tMaXN0KiBIVE1MTWVkaWFFbGVtZW50Ojp0ZXh0VHJhY2tz
KCkgCiB7Ci0gICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygp
LndlYmtpdFZpZGVvVHJhY2tFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiAwOwotCiAgICAgaWYg
KCFtX3RleHRUcmFja3MpCiAgICAgICAgIG1fdGV4dFRyYWNrcyA9IFRleHRUcmFja0xpc3Q6OmNy
ZWF0ZSh0aGlzLCBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSk7CiAK
QEAgLTM3MDUsOSArMzY1Nyw2IEBAIFRleHRUcmFja0xpc3QqIEhUTUxNZWRpYUVsZW1lbnQ6OnRl
eHRUcmFja3MoKQogCiBWaWRlb1RyYWNrTGlzdCogSFRNTE1lZGlhRWxlbWVudDo6dmlkZW9UcmFj
a3MoKQogewotICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS53ZWJraXRWaWRlb1RyYWNrRW5hYmxlZCgpKQotICAgICAgICByZXR1cm4gMDsKLQogICAgIGlm
ICghbV92aWRlb1RyYWNrcykKICAgICAgICAgbV92aWRlb1RyYWNrcyA9IFZpZGVvVHJhY2tMaXN0
OjpjcmVhdGUodGhpcywgQWN0aXZlRE9NT2JqZWN0OjpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkp
OwogCkBAIC0zNzE4LDkgKzM2NjcsNiBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OmRpZEFkZFRl
eHRUcmFjayhIVE1MVHJhY2tFbGVtZW50KiB0cmFja0VsZW1lbnQpCiB7CiAgICAgQVNTRVJUKHRy
YWNrRWxlbWVudC0+aGFzVGFnTmFtZSh0cmFja1RhZykpOwogCi0gICAgaWYgKCFSdW50aW1lRW5h
YmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYmtpdFZpZGVvVHJhY2tFbmFibGVkKCkp
Ci0gICAgICAgIHJldHVybjsKLQogICAgIC8vIDQuOC4xMC4xMi4zIFNvdXJjaW5nIG91dC1vZi1i
YW5kIHRleHQgdHJhY2tzCiAgICAgLy8gV2hlbiBhIHRyYWNrIGVsZW1lbnQncyBwYXJlbnQgZWxl
bWVudCBjaGFuZ2VzIGFuZCB0aGUgbmV3IHBhcmVudCBpcyBhIG1lZGlhIGVsZW1lbnQsIAogICAg
IC8vIHRoZW4gdGhlIHVzZXIgYWdlbnQgbXVzdCBhZGQgdGhlIHRyYWNrIGVsZW1lbnQncyBjb3Jy
ZXNwb25kaW5nIHRleHQgdHJhY2sgdG8gdGhlIApAQCAtMzc0NCw5ICszNjkwLDYgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjpkaWRSZW1vdmVUZXh0VHJhY2soSFRNTFRyYWNrRWxlbWVudCogdHJh
Y2tFbGVtZW50KQogewogICAgIEFTU0VSVCh0cmFja0VsZW1lbnQtPmhhc1RhZ05hbWUodHJhY2tU
YWcpKTsKIAotICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS53ZWJraXRWaWRlb1RyYWNrRW5hYmxlZCgpKQotICAgICAgICByZXR1cm47Ci0KICNpZiAhTE9H
X0RJU0FCTEVECiAgICAgaWYgKHRyYWNrRWxlbWVudC0+aGFzVGFnTmFtZSh0cmFja1RhZykpIHsK
ICAgICAgICAgVVJMIHVybCA9IHRyYWNrRWxlbWVudC0+Z2V0Tm9uRW1wdHlVUkxBdHRyaWJ1dGUo
c3JjQXR0cik7CkBAIC00MzI0LDggKzQyNjcsNyBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6Om1l
ZGlhUGxheWVyVGltZUNoYW5nZWQoTWVkaWFQbGF5ZXIqKQogICAgIExPRyhNZWRpYSwgIkhUTUxN
ZWRpYUVsZW1lbnQ6Om1lZGlhUGxheWVyVGltZUNoYW5nZWQoJXApIiwgdGhpcyk7CiAKICNpZiBF
TkFCTEUoVklERU9fVFJBQ0spCi0gICAgaWYgKFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkud2Via2l0VmlkZW9UcmFja0VuYWJsZWQoKSkKLSAgICAgICAgdXBkYXRlQWN0
aXZlVGV4dFRyYWNrQ3VlcyhjdXJyZW50TWVkaWFUaW1lKCkpOworICAgIHVwZGF0ZUFjdGl2ZVRl
eHRUcmFja0N1ZXMoY3VycmVudE1lZGlhVGltZSgpKTsKICNlbmRpZgogCiAgICAgYmVnaW5Qcm9j
ZXNzaW5nTWVkaWFQbGF5ZXJDYWxsYmFjaygpOwpAQCAtNDk3MCw4ICs0OTEyLDcgQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50Ojp1c2VyQ2FuY2VsbGVkTG9hZCgpCiAgICAgbV9yZWFkeVN0YXRlID0g
SEFWRV9OT1RISU5HOwogICAgIHVwZGF0ZU1lZGlhQ29udHJvbGxlcigpOwogI2lmIEVOQUJMRShW
SURFT19UUkFDSykKLSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS53ZWJraXRWaWRlb1RyYWNrRW5hYmxlZCgpKQotICAgICAgICB1cGRhdGVBY3RpdmVUZXh0
VHJhY2tDdWVzKE1lZGlhVGltZTo6emVyb1RpbWUoKSk7CisgICAgdXBkYXRlQWN0aXZlVGV4dFRy
YWNrQ3VlcyhNZWRpYVRpbWU6Onplcm9UaW1lKCkpOwogI2VuZGlmCiB9CiAKQEAgLTU0NzIsOCAr
NTQxMyw3IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0VmlkZW9GdWxsc2NyZWVuTGF5ZXIo
UGxhdGZvcm1MYXllciogcGxhdGZvcm1MYXllcikKICAgICBtX3BsYXllci0+c2V0VmlkZW9GdWxs
c2NyZWVuTGF5ZXIocGxhdGZvcm1MYXllcik7CiAgICAgc2V0TmVlZHNTdHlsZVJlY2FsYyhTeW50
aGV0aWNTdHlsZUNoYW5nZSk7CiAjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIGlmIChSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYmtpdFZpZGVvVHJhY2tFbmFi
bGVkKCkpCi0gICAgICAgIHVwZGF0ZVRleHRUcmFja0Rpc3BsYXkoKTsKKyAgICB1cGRhdGVUZXh0
VHJhY2tEaXNwbGF5KCk7CiAjZW5kaWYKIH0KICAgICAKQEAgLTU0OTksNyArNTQzOSw3IEBAIGJv
b2wgSFRNTE1lZGlhRWxlbWVudDo6aGFzQ2xvc2VkQ2FwdGlvbnMoKSBjb25zdAogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICBpZiAoIVJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2Via2l0VmlkZW9UcmFja0VuYWJsZWQo
KSB8fCAhbV90ZXh0VHJhY2tzKQorICAgIGlmICghbV90ZXh0VHJhY2tzKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV90ZXh0VHJhY2tzLT5s
ZW5ndGgoKTsgKytpKSB7CkBAIC01NTUwLDEwICs1NDkwLDggQEAgdm9pZCBIVE1MTWVkaWFFbGVt
ZW50OjpzZXRDbG9zZWRDYXB0aW9uc1Zpc2libGUoYm9vbCBjbG9zZWRDYXB0aW9uVmlzaWJsZSkK
ICAgICBtX3BsYXllci0+c2V0Q2xvc2VkQ2FwdGlvbnNWaXNpYmxlKGNsb3NlZENhcHRpb25WaXNp
YmxlKTsKIAogI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICBpZiAoUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJraXRWaWRlb1RyYWNrRW5hYmxlZCgpKSB7Ci0g
ICAgICAgIG1hcmtDYXB0aW9uQW5kU3VidGl0bGVUcmFja3NBc1VuY29uZmlndXJlZChJbW1lZGlh
dGVseSk7Ci0gICAgICAgIHVwZGF0ZVRleHRUcmFja0Rpc3BsYXkoKTsKLSAgICB9CisgICAgbWFy
a0NhcHRpb25BbmRTdWJ0aXRsZVRyYWNrc0FzVW5jb25maWd1cmVkKEltbWVkaWF0ZWx5KTsKKyAg
ICB1cGRhdGVUZXh0VHJhY2tEaXNwbGF5KCk7CiAjZWxzZQogICAgIGlmIChoYXNNZWRpYUNvbnRy
b2xzKCkpCiAgICAgICAgIG1lZGlhQ29udHJvbHMoKS0+Y2hhbmdlZENsb3NlZENhcHRpb25zVmlz
aWJpbGl0eSgpOwpAQCAtNTgwMCwxMCArNTczOCw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6
Y29uZmlndXJlVGV4dFRyYWNrRGlzcGxheShUZXh0VHJhY2tWaXNpYmlsaXR5Q2hlY2tUeXBlIGNo
CiAKICAgICBtZWRpYUNvbnRyb2xzKCktPmNoYW5nZWRDbG9zZWRDYXB0aW9uc1Zpc2liaWxpdHko
KTsKICAgICAKLSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS53ZWJraXRWaWRlb1RyYWNrRW5hYmxlZCgpKSB7Ci0gICAgICAgIHVwZGF0ZVRleHRUcmFja0Rp
c3BsYXkoKTsKLSAgICAgICAgdXBkYXRlQWN0aXZlVGV4dFRyYWNrQ3VlcyhjdXJyZW50TWVkaWFU
aW1lKCkpOwotICAgIH0KKyAgICB1cGRhdGVUZXh0VHJhY2tEaXNwbGF5KCk7CisgICAgdXBkYXRl
QWN0aXZlVGV4dFRyYWNrQ3VlcyhjdXJyZW50TWVkaWFUaW1lKCkpOwogI2VuZGlmCiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxUcmFja0VsZW1lbnQuY3BwCmluZGV4IGMyMDFhYmUzYmM4NDcy
NjMwNDdhYjJjNWNlNmM5YjZkMWEwYjlkNjUuLjgwOTE2YmQzMDFiMzcyMzEyZjYyYTZlMTUxMjk3
ZDNjZjQ4YjgwNWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTFRyYWNrRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MVHJhY2tFbGVtZW50LmNwcApA
QCAtOTIsMjQgKzkyLDIyIEBAIHZvaWQgSFRNTFRyYWNrRWxlbWVudDo6cmVtb3ZlZEZyb20oQ29u
dGFpbmVyTm9kZSYgaW5zZXJ0aW9uUG9pbnQpCiAKIHZvaWQgSFRNTFRyYWNrRWxlbWVudDo6cGFy
c2VBdHRyaWJ1dGUoY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSwgY29uc3QgQXRvbWljU3RyaW5n
JiB2YWx1ZSkKIHsKLSAgICBpZiAoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVy
ZXMoKS53ZWJraXRWaWRlb1RyYWNrRW5hYmxlZCgpKSB7Ci0gICAgICAgIGlmIChuYW1lID09IHNy
Y0F0dHIpIHsKLSAgICAgICAgICAgIGlmICghdmFsdWUuaXNFbXB0eSgpKQotICAgICAgICAgICAg
ICAgIHNjaGVkdWxlTG9hZCgpOwotICAgICAgICAgICAgZWxzZSBpZiAobV90cmFjaykKLSAgICAg
ICAgICAgICAgICBtX3RyYWNrLT5yZW1vdmVBbGxDdWVzKCk7Ci0KLSAgICAgICAgLy8gNC44LjEw
LjEyLjMgU291cmNpbmcgb3V0LW9mLWJhbmQgdGV4dCB0cmFja3MKLSAgICAgICAgLy8gQXMgdGhl
IGtpbmQsIGxhYmVsLCBhbmQgc3JjbGFuZyBhdHRyaWJ1dGVzIGFyZSBzZXQsIGNoYW5nZWQsIG9y
IHJlbW92ZWQsIHRoZSB0ZXh0IHRyYWNrIG11c3QgdXBkYXRlIGFjY29yZGluZ2x5Li4uCi0gICAg
ICAgIH0gZWxzZSBpZiAobmFtZSA9PSBraW5kQXR0cikKLSAgICAgICAgICAgIGVuc3VyZVRyYWNr
KCkuc2V0S2luZEtleXdvcmRJZ25vcmluZ0FTQ0lJQ2FzZSh2YWx1ZS5zdHJpbmcoKSk7Ci0gICAg
ICAgIGVsc2UgaWYgKG5hbWUgPT0gbGFiZWxBdHRyKQotICAgICAgICAgICAgZW5zdXJlVHJhY2so
KS5zZXRMYWJlbCh2YWx1ZSk7Ci0gICAgICAgIGVsc2UgaWYgKG5hbWUgPT0gc3JjbGFuZ0F0dHIp
Ci0gICAgICAgICAgICBlbnN1cmVUcmFjaygpLnNldExhbmd1YWdlKHZhbHVlKTsKLSAgICAgICAg
ZWxzZSBpZiAobmFtZSA9PSBkZWZhdWx0QXR0cikKLSAgICAgICAgICAgIGVuc3VyZVRyYWNrKCku
c2V0SXNEZWZhdWx0KCF2YWx1ZS5pc051bGwoKSk7Ci0gICAgfQorICAgIGlmIChuYW1lID09IHNy
Y0F0dHIpIHsKKyAgICAgICAgaWYgKCF2YWx1ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBzY2hl
ZHVsZUxvYWQoKTsKKyAgICAgICAgZWxzZSBpZiAobV90cmFjaykKKyAgICAgICAgICAgIG1fdHJh
Y2stPnJlbW92ZUFsbEN1ZXMoKTsKKworICAgIC8vIDQuOC4xMC4xMi4zIFNvdXJjaW5nIG91dC1v
Zi1iYW5kIHRleHQgdHJhY2tzCisgICAgLy8gQXMgdGhlIGtpbmQsIGxhYmVsLCBhbmQgc3JjbGFu
ZyBhdHRyaWJ1dGVzIGFyZSBzZXQsIGNoYW5nZWQsIG9yIHJlbW92ZWQsIHRoZSB0ZXh0IHRyYWNr
IG11c3QgdXBkYXRlIGFjY29yZGluZ2x5Li4uCisgICAgfSBlbHNlIGlmIChuYW1lID09IGtpbmRB
dHRyKQorICAgICAgICBlbnN1cmVUcmFjaygpLnNldEtpbmRLZXl3b3JkSWdub3JpbmdBU0NJSUNh
c2UodmFsdWUuc3RyaW5nKCkpOworICAgIGVsc2UgaWYgKG5hbWUgPT0gbGFiZWxBdHRyKQorICAg
ICAgICBlbnN1cmVUcmFjaygpLnNldExhYmVsKHZhbHVlKTsKKyAgICBlbHNlIGlmIChuYW1lID09
IHNyY2xhbmdBdHRyKQorICAgICAgICBlbnN1cmVUcmFjaygpLnNldExhbmd1YWdlKHZhbHVlKTsK
KyAgICBlbHNlIGlmIChuYW1lID09IGRlZmF1bHRBdHRyKQorICAgICAgICBlbnN1cmVUcmFjaygp
LnNldElzRGVmYXVsdCghdmFsdWUuaXNOdWxsKCkpOwogCiAgICAgSFRNTEVsZW1lbnQ6OnBhcnNl
QXR0cmlidXRlKG5hbWUsIHZhbHVlKTsKIH0KQEAgLTE3MCw5ICsxNjgsNiBAQCB2b2lkIEhUTUxU
cmFja0VsZW1lbnQ6OnNjaGVkdWxlTG9hZCgpCiAgICAgaWYgKG1fbG9hZFRpbWVyLmlzQWN0aXZl
KCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6
c2hhcmVkRmVhdHVyZXMoKS53ZWJraXRWaWRlb1RyYWNrRW5hYmxlZCgpKQotICAgICAgICByZXR1
cm47Ci0KICAgICAvLyAyLiBJZiB0aGUgdGV4dCB0cmFjaydzIHRleHQgdHJhY2sgbW9kZSBpcyBu
b3Qgc2V0IHRvIG9uZSBvZiBoaWRkZW4gb3Igc2hvd2luZywgYWJvcnQgdGhlc2Ugc3RlcHMuCiAg
ICAgaWYgKGVuc3VyZVRyYWNrKCkubW9kZSgpICE9IFRleHRUcmFjazo6TW9kZTo6SGlkZGVuICYm
IGVuc3VyZVRyYWNrKCkubW9kZSgpICE9IFRleHRUcmFjazo6TW9kZTo6U2hvd2luZykKICAgICAg
ICAgcmV0dXJuOwpAQCAtMjA4LDkgKzIwMyw2IEBAIHZvaWQgSFRNTFRyYWNrRWxlbWVudDo6bG9h
ZFRpbWVyRmlyZWQoKQogCiBib29sIEhUTUxUcmFja0VsZW1lbnQ6OmNhbkxvYWRVUkwoY29uc3Qg
VVJMJiB1cmwpCiB7Ci0gICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0
dXJlcygpLndlYmtpdFZpZGVvVHJhY2tFbmFibGVkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQogICAgIEhUTUxNZWRpYUVsZW1lbnQqIHBhcmVudCA9IG1lZGlhRWxlbWVudCgpOwogICAgIGlm
ICghcGFyZW50KQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDYzMDc5MDRlN2Y3OGU5MzhmNGIzMjViOTM2
YTBiOWJmNmY3YjVhYTIuLjZmZGI3OTYwMDcwYmQxZjJlY2U4MjBhNDc2N2ZmN2JjODU3YTgxODkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCkBAIC0z
MTQyLDcgKzMxNDIsNyBAQCBHYXBSZWN0cyBSZW5kZXJCbG9ja0Zsb3c6OmlubGluZVNlbGVjdGlv
bkdhcHMoUmVuZGVyQmxvY2smIHJvb3RCbG9jaywgY29uc3QgTGF5bwogCiB2b2lkIFJlbmRlckJs
b2NrRmxvdzo6Y3JlYXRlUmVuZGVyTmFtZWRGbG93RnJhZ21lbnRJZk5lZWRlZCgpCiB7Ci0gICAg
aWYgKCFkb2N1bWVudCgpLmNzc1JlZ2lvbnNFbmFibGVkKCkgfHwgcmVuZGVyTmFtZWRGbG93RnJh
Z21lbnQoKSB8fCBpc1JlbmRlck5hbWVkRmxvd0ZyYWdtZW50KCkpCisgICAgaWYgKHJlbmRlck5h
bWVkRmxvd0ZyYWdtZW50KCkgfHwgaXNSZW5kZXJOYW1lZEZsb3dGcmFnbWVudCgpKQogICAgICAg
ICByZXR1cm47CiAKICAgICAvLyBGSVhNRTogTXVsdGljb2x1bW4gcmVnaW9ucyBub3QgeWV0IHN1
cHBvcnRlZCAoaHR0cDovL2Rldi53My5vcmcvY3Nzd2cvY3NzLXJlZ2lvbnMvI211bHRpLWNvbHVt
bi1yZWdpb25zKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAK
aW5kZXggNTEyNGZlNzQ1YWZhNTA1YjNlZGQ5YThkMmFkZDMxYmMxZWJmNjAyMi4uMWIxZmRlNjc4
ZTA1MjQ0M2MwNmZlNDAxYmU5N2JjNDhmMzU3OGI1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCkBAIC02Niw4ICs2Niw3IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIEludGVybmFsU2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKFNldHRpbmdzJiBzZXR0
aW5ncykKLSAgICA6IG1fb3JpZ2luYWxDU1NTaGFwZXNFbmFibGVkKFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuY3NzU2hhcGVzRW5hYmxlZCgpKQotICAgICwgbV9vcmln
aW5hbEVkaXRpbmdCZWhhdmlvcihzZXR0aW5ncy5lZGl0aW5nQmVoYXZpb3JUeXBlKCkpCisgICAg
OiBtX29yaWdpbmFsRWRpdGluZ0JlaGF2aW9yKHNldHRpbmdzLmVkaXRpbmdCZWhhdmlvclR5cGUo
KSkKICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgICwgbV9vcmlnaW5hbFRleHRBdXRv
c2l6aW5nRW5hYmxlZChzZXR0aW5ncy50ZXh0QXV0b3NpemluZ0VuYWJsZWQoKSkKICAgICAsIG1f
b3JpZ2luYWxUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZShzZXR0aW5ncy50ZXh0QXV0
b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZSgpKQpAQCAtMTEzLDcgKzExMiw2IEBAIEludGVybmFs
U2V0dGluZ3M6OkJhY2t1cDo6QmFja3VwKFNldHRpbmdzJiBzZXR0aW5ncykKIAogdm9pZCBJbnRl
cm5hbFNldHRpbmdzOjpCYWNrdXA6OnJlc3RvcmVUbyhTZXR0aW5ncyYgc2V0dGluZ3MpCiB7Ci0g
ICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRDU1NTaGFwZXNF
bmFibGVkKG1fb3JpZ2luYWxDU1NTaGFwZXNFbmFibGVkKTsKICAgICBzZXR0aW5ncy5zZXRFZGl0
aW5nQmVoYXZpb3JUeXBlKG1fb3JpZ2luYWxFZGl0aW5nQmVoYXZpb3IpOwogCiAgICAgZm9yIChj
b25zdCBhdXRvJiBzdGFuZGFyZEZvbnQgOiBtX3N0YW5kYXJkRm9udEZhbWlsaWVzKQpAQCAtMzY1
LDEyICszNjMsNiBAQCB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldFRleHRBdXRvc2l6aW5nRm9u
dFNjYWxlRmFjdG9yKGZsb2F0IGZvbnRTY2FsZUZhY3RvciwgRQogI2VuZGlmCiB9CiAKLXZvaWQg
SW50ZXJuYWxTZXR0aW5nczo6c2V0Q1NTU2hhcGVzRW5hYmxlZChib29sIGVuYWJsZWQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQotewotICAgIFVOVVNFRF9QQVJBTShlYyk7Ci0gICAgUnVudGltZUVuYWJs
ZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRDU1NTaGFwZXNFbmFibGVkKGVuYWJsZWQp
OwotfQotCiB2b2lkIEludGVybmFsU2V0dGluZ3M6OnNldENhblN0YXJ0TWVkaWEoYm9vbCBlbmFi
bGVkLCBFeGNlcHRpb25Db2RlJiBlYykKIHsKICAgICBJbnRlcm5hbFNldHRpbmdzR3VhcmRGb3JT
ZXR0aW5ncygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNl
dHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAppbmRl
eCBhNTllNmM4NTI5NmU4N2YwYjBkZGJjZjIyYTM2ZjRmNDg2YjRlNzQ5Li40OWY5NDhkNzYyMGI0
NmEzNDg4NWVmMmY5MTE3ZDE3OWRjODA1YWZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFsU2V0dGluZ3MuaApAQCAtNTMsNyArNTMsNiBAQCBwdWJsaWM6CiAgICAgICAgIGV4cGxp
Y2l0IEJhY2t1cChTZXR0aW5ncyYpOwogICAgICAgICB2b2lkIHJlc3RvcmVUbyhTZXR0aW5ncyYp
OwogCi0gICAgICAgIGJvb2wgbV9vcmlnaW5hbENTU1NoYXBlc0VuYWJsZWQ7CiAgICAgICAgIEVk
aXRpbmdCZWhhdmlvclR5cGUgbV9vcmlnaW5hbEVkaXRpbmdCZWhhdmlvcjsKIAogICAgICAgICAv
LyBJbml0aWFsbHkgZW1wdHksIG9ubHkgdXNlZCBpZiBjaGFuZ2VkIGJ5IGEgdGVzdC4KQEAgLTEz
MSw3ICsxMzAsNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRUZXh0QXV0b3NpemluZ1dpbmRvd1Np
emVPdmVycmlkZShpbnQgd2lkdGgsIGludCBoZWlnaHQsIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2
b2lkIHNldFRleHRBdXRvc2l6aW5nRm9udFNjYWxlRmFjdG9yKGZsb2F0IGZvbnRTY2FsZUZhY3Rv
ciwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0TWVkaWFUeXBlT3ZlcnJpZGUoY29uc3Qg
U3RyaW5nJiBtZWRpYVR5cGUsIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICB2b2lkIHNldENTU1NoYXBl
c0VuYWJsZWQoYm9vbCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0Q2FuU3RhcnRNZWRp
YShib29sLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRXaXJlbGVzc1BsYXliYWNrRGlz
YWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRFZGl0aW5nQmVoYXZpb3IoY29uc3QgU3RyaW5nJiwg
RXhjZXB0aW9uQ29kZSYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbFNldHRpbmdzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5n
cy5pZGwKaW5kZXggODZiNDE0MGE4ZTlmODgxZTQyZWViNDQxNmNiNTUwOTBjZjUzMzdmMC4uM2Ji
NzYzNTAzNGJlMTcwM2RmMTY2NWFmODllNjhmOTMwMmUyZDA0MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCkBAIC00NSw5ICs0NSw2IEBACiAgICAgW1Jh
aXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRUZXh0QXV0b3NpemluZ1dpbmRvd1NpemVPdmVycmlkZShs
b25nIHdpZHRoLCBsb25nIGhlaWdodCk7CiAgICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBzZXRU
ZXh0QXV0b3NpemluZ0ZvbnRTY2FsZUZhY3Rvcih1bnJlc3RyaWN0ZWQgZmxvYXQgZm9udFNjYWxl
RmFjdG9yKTsKIAotICAgIC8vIEZlYXR1cmVzCi0gICAgW1JhaXNlc0V4Y2VwdGlvbl0gdm9pZCBz
ZXRDU1NTaGFwZXNFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7Ci0KICAgICAvLyBNZWRpYQogICAg
IFtSYWlzZXNFeGNlcHRpb25dIHZvaWQgc2V0Q2FuU3RhcnRNZWRpYShib29sZWFuIGVuYWJsZWQp
OwogICAgIFtDb25kaXRpb25hbD1WSURFT19UUkFDSywgUmFpc2VzRXhjZXB0aW9uXSB2b2lkIHNl
dFNob3VsZERpc3BsYXlUcmFja0tpbmQoRE9NU3RyaW5nIGtpbmQsIGJvb2xlYW4gZW5hYmxlZCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlz
UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlS2V5c1By
aXZhdGUuaAppbmRleCAzZDE2ZWRjNDQ1NGQ4NTYzYjQ1ZDZkYjA0NzA3NTdhZDNhNTNhMmIzLi5k
ZWI5ZTUyYWRjYTEwZjFjZmJkYjRiM2QzMTFmYjc3ZmQ5ODM4NWY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VLZXlzUHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZUtleXNQcml2YXRlLmgKQEAgLTEw
Miw4ICsxMDIsNiBAQAogI2RlZmluZSBXZWJLaXREaXNwbGF5TGlzdERyYXdpbmdFbmFibGVkUHJl
ZmVyZW5jZUtleSBAIldlYktpdERpc3BsYXlMaXN0RHJhd2luZ0VuYWJsZWQiCiAjZGVmaW5lIFdl
YktpdENhbnZhc1VzZXNBY2NlbGVyYXRlZERyYXdpbmdQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q2Fu
dmFzVXNlc0FjY2VsZXJhdGVkRHJhd2luZyIKICNkZWZpbmUgV2ViS2l0QWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0QWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQiCi0jZGVmaW5lIFdlYktpdENTU1JlZ2lvbnNFbmFibGVkUHJlZmVyZW5jZUtleSBA
IldlYktpdENTU1JlZ2lvbnNFbmFibGVkIgotI2RlZmluZSBXZWJLaXRDU1NDb21wb3NpdGluZ0Vu
YWJsZWRQcmVmZXJlbmNlS2V5IEAiV2ViS2l0Q1NTQ29tcG9zaXRpbmdFbmFibGVkIgogI2RlZmlu
ZSBXZWJLaXRTaG93RGVidWdCb3JkZXJzUHJlZmVyZW5jZUtleSBAIldlYktpdFNob3dEZWJ1Z0Jv
cmRlcnMiCiAjZGVmaW5lIFdlYktpdFNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVk
UHJlZmVyZW5jZUtleSBAIldlYktpdFNpbXBsZUxpbmVMYXlvdXREZWJ1Z0JvcmRlcnNFbmFibGVk
IgogI2RlZmluZSBXZWJLaXRTaG93UmVwYWludENvdW50ZXJQcmVmZXJlbmNlS2V5IEAiV2ViS2l0
U2hvd1JlcGFpbnRDb3VudGVyIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvV2ViVmll
dy9XZWJQcmVmZXJlbmNlcy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVy
ZW5jZXMubW0KaW5kZXggZWE0NGI4MjU5MWRiNzUwMDM5MTY1MjRkZTQwNTFhNTcxYTY1MDE3NC4u
OTNiYmU5M2VmYmQ3ZjA1ZjM0OGI0ZjA1OWI2YmQ2MzUxODQzZmM2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVmZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzLm1tCkBAIC00OTAsOCArNDkwLDYgQEAgcHVi
bGljOgogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJvb2w6Tk9dLCAgIFdlYktpdEphdmFT
Y3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmRQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIg
bnVtYmVyV2l0aEJvb2w6WUVTXSwgIFdlYktpdFhTU0F1ZGl0b3JFbmFibGVkUHJlZmVyZW5jZUtl
eSwKICAgICAgICAgW05TTnVtYmVyIG51bWJlcldpdGhCb29sOllFU10sICBXZWJLaXRBY2NlbGVy
YXRlZENvbXBvc2l0aW5nRW5hYmxlZFByZWZlcmVuY2VLZXksCi0gICAgICAgIFtOU051bWJlciBu
dW1iZXJXaXRoQm9vbDpZRVNdLCBXZWJLaXRDU1NSZWdpb25zRW5hYmxlZFByZWZlcmVuY2VLZXks
Ci0gICAgICAgIFtOU051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCBXZWJLaXRDU1NDb21wb3Np
dGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAogICAgICAgICBbTlNOdW1iZXIgbnVtYmVyV2l0aEJv
b2w6Tk9dLCAgIFdlYktpdERpc3BsYXlMaXN0RHJhd2luZ0VuYWJsZWRQcmVmZXJlbmNlS2V5LAog
I2lmIFBMQVRGT1JNKElPUykgJiYgIVBMQVRGT1JNKElPU19TSU1VTEFUT1IpCiAgICAgICAgIFtO
U051bWJlciBudW1iZXJXaXRoQm9vbDpZRVNdLCAgV2ViS2l0QWNjZWxlcmF0ZWREcmF3aW5nRW5h
YmxlZFByZWZlcmVuY2VLZXksCkBAIC0xODgwLDI2ICsxODc4LDYgQEAgc3RhdGljIE5TU3RyaW5n
ICpjbGFzc0lCQ3JlYXRvcklEID0gbmlsOwogICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZW5hYmxl
ZCBmb3JLZXk6V2ViS2l0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWRQcmVmZXJlbmNlS2V5
XTsKIH0KIAotLSAoQk9PTCljc3NSZWdpb25zRW5hYmxlZAotewotICAgIHJldHVybiBbc2VsZiBf
Ym9vbFZhbHVlRm9yS2V5OldlYktpdENTU1JlZ2lvbnNFbmFibGVkUHJlZmVyZW5jZUtleV07Ci19
Ci0KLS0gKHZvaWQpc2V0Q1NTUmVnaW9uc0VuYWJsZWQ6KEJPT0wpZW5hYmxlZAotewotICAgIFtz
ZWxmIF9zZXRCb29sVmFsdWU6ZW5hYmxlZCBmb3JLZXk6V2ViS2l0Q1NTUmVnaW9uc0VuYWJsZWRQ
cmVmZXJlbmNlS2V5XTsKLX0KLQotLSAoQk9PTCljc3NDb21wb3NpdGluZ0VuYWJsZWQKLXsKLSAg
ICByZXR1cm4gW3NlbGYgX2Jvb2xWYWx1ZUZvcktleTpXZWJLaXRDU1NDb21wb3NpdGluZ0VuYWJs
ZWRQcmVmZXJlbmNlS2V5XTsKLX0KLQotLSAodm9pZClzZXRDU1NDb21wb3NpdGluZ0VuYWJsZWQ6
KEJPT0wpZW5hYmxlZAotewotICAgIFtzZWxmIF9zZXRCb29sVmFsdWU6ZW5hYmxlZCBmb3JLZXk6
V2ViS2l0Q1NTQ29tcG9zaXRpbmdFbmFibGVkUHJlZmVyZW5jZUtleV07Ci19Ci0KIC0gKEJPT0wp
c2hvd0RlYnVnQm9yZGVycwogewogICAgIHJldHVybiBbc2VsZiBfYm9vbFZhbHVlRm9yS2V5Oldl
YktpdFNob3dEZWJ1Z0JvcmRlcnNQcmVmZXJlbmNlS2V5XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
L21hYy9XZWJWaWV3L1dlYlByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IGU0MTIyYmNhNTdhNWQy
NGJmYjM2N2NhYmRkZThkZjBiOTNlZjQ4ZjEuLjVkZTZhZjc4YTIwNWQ0ZmM0NzcwYjY5OTAwN2U5
ZDFiYzk2OTZhY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcvV2ViUHJl
ZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMvV2ViVmlldy9XZWJQcmVm
ZXJlbmNlc1ByaXZhdGUuaApAQCAtMjEyLDEyICsyMTIsNiBAQCBleHRlcm4gTlNTdHJpbmcgKldl
YlByZWZlcmVuY2VzQ2FjaGVNb2RlbENoYW5nZWRJbnRlcm5hbE5vdGlmaWNhdGlvbjsKIC0gKEJP
T0wpYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ7CiAtICh2b2lkKXNldEFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdFbmFibGVkOihCT09MKWVuYWJsZWQ7CiAKLS0gKEJPT0wpY3NzUmVnaW9uc0Vu
YWJsZWQ7Ci0tICh2b2lkKXNldENTU1JlZ2lvbnNFbmFibGVkOihCT09MKWVuYWJsZWQ7Ci0KLS0g
KEJPT0wpY3NzQ29tcG9zaXRpbmdFbmFibGVkOwotLSAodm9pZClzZXRDU1NDb21wb3NpdGluZ0Vu
YWJsZWQ6KEJPT0wpZW5hYmxlZDsKLQogLSAoQk9PTClzaG93RGVidWdCb3JkZXJzOwogLSAodm9p
ZClzZXRTaG93RGVidWdCb3JkZXJzOihCT09MKXNob3c7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvbWFjL1dlYlZpZXcvV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYlZpZXcv
V2ViVmlldy5tbQppbmRleCBjMzI5ZTRlZGEyODZlMTQyMDhmYTc3MWYzMWVmYzEzZjkxNjMyOTRj
Li40NWMyMDI5NzNjYTQ4YWQ4ZTQwMGE3ODFkYjg5NTNlMjU0OGIxZTJiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L21hYy9XZWJWaWV3L1dlYlZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViVmlldy9XZWJWaWV3Lm1tCkBAIC0yMzEzLDggKzIzMTMsNiBAQCBzdGF0aWMgYm9vbCBu
ZWVkc1NlbGZSZXRhaW5XaGlsZUxvYWRpbmdRdWlyaygpCiAgICAgc2V0dGluZ3Muc2V0RnJhbWVG
bGF0dGVuaW5nRW5hYmxlZChbcHJlZmVyZW5jZXMgaXNGcmFtZUZsYXR0ZW5pbmdFbmFibGVkXSk7
CiAgICAgc2V0dGluZ3Muc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKFtwcmVmZXJlbmNlcyBp
c1NwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZF0pOwogICAgIHNldHRpbmdzLnNldFBhZ2luYXRlRHVy
aW5nTGF5b3V0RW5hYmxlZChbcHJlZmVyZW5jZXMgcGFnaW5hdGVEdXJpbmdMYXlvdXRFbmFibGVk
XSk7Ci0gICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRDU1NS
ZWdpb25zRW5hYmxlZChbcHJlZmVyZW5jZXMgY3NzUmVnaW9uc0VuYWJsZWRdKTsKLSAgICBSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldENTU0NvbXBvc2l0aW5nRW5h
YmxlZChbcHJlZmVyZW5jZXMgY3NzQ29tcG9zaXRpbmdFbmFibGVkXSk7CiAKICAgICBzZXR0aW5n
cy5zZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChbcHJlZmVyZW5jZXMgYXN5bmNo
cm9ub3VzU3BlbGxDaGVja2luZ0VuYWJsZWRdKTsKICAgICBzZXR0aW5ncy5zZXRIeXBlcmxpbmtB
dWRpdGluZ0VuYWJsZWQoW3ByZWZlcmVuY2VzIGh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZF0pOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlv
bnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmluaXRpb25zLmgK
aW5kZXggZWUxMDA4Yzc2NGZmN2QyNjkxMmIzOWMwZjZjM2M4OWI0OTUyNjZmMy4uMDU1NWQxZmFh
MTUwYzFiOWE1MzZmNzc3Njc0MDUyMTBjNTgyNDI3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmaW5pdGlvbnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZpbml0aW9ucy5oCkBAIC0xMzIsOCArMTMyLDYgQEAK
ICAgICBtYWNybyhBY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCwgYWNjZWxlcmF0ZWQyZENhbnZh
c0VuYWJsZWQsIEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwgIiIpIFwKICAgICBtYWNybyhDU1NBbmlt
YXRpb25UcmlnZ2Vyc0VuYWJsZWQsIGNzc0FuaW1hdGlvblRyaWdnZXJzRW5hYmxlZCwgQm9vbCwg
Ym9vbCwgdHJ1ZSwgIiIsICIiKSBcCiAgICAgbWFjcm8oV2ViQW5pbWF0aW9uc0VuYWJsZWQsIHdl
YkFuaW1hdGlvbnNFbmFibGVkLCBCb29sLCBib29sLCBmYWxzZSwgIiIsICIiKSBcCi0gICAgbWFj
cm8oQ1NTUmVnaW9uc0VuYWJsZWQsIGNzc1JlZ2lvbnNFbmFibGVkLCBCb29sLCBib29sLCB0cnVl
LCAiIiwgIiIpIFwKLSAgICBtYWNybyhDU1NDb21wb3NpdGluZ0VuYWJsZWQsIGNzc0NvbXBvc2l0
aW5nRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSwgIiIsICIiKSBcCiAgICAgbWFjcm8oRm9yY2VG
VFBEaXJlY3RvcnlMaXN0aW5ncywgZm9yY2VGVFBEaXJlY3RvcnlMaXN0aW5ncywgQm9vbCwgYm9v
bCwgZmFsc2UsICIiLCAiIikgXAogICAgIG1hY3JvKFRhYnNUb0xpbmtzLCB0YWJzVG9MaW5rcywg
Qm9vbCwgYm9vbCwgREVGQVVMVF9XRUJLSVRfVEFCU1RPTElOS1NfRU5BQkxFRCwgIiIsICIiKSBc
CiAgICAgbWFjcm8oRE5TUHJlZmV0Y2hpbmdFbmFibGVkLCBkbnNQcmVmZXRjaGluZ0VuYWJsZWQs
IEJvb2wsIGJvb2wsIGZhbHNlLCAiIiwgIiIpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCAzMWQ0YjE2ODcyMzdhMjNkZWE3NmVm
NjE0ZTgxNzYwMDZiZmJiMjM1Li43Yjg2OTJhYmQ0YTRjZmVhYTEzMTU4ZDE3OWRiODQ3MzcwMjk5
MDVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJl
bmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5j
ZXMuY3BwCkBAIC01MDgsMTYgKzUwOCw2IEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldFdlYkFuaW1h
dGlvbnNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXNSZWYpCiAgICAgcmV0dXJu
IHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPndlYkFuaW1hdGlvbnNFbmFibGVkKCk7CiB9CiAKLXZv
aWQgV0tQcmVmZXJlbmNlc1NldENTU1JlZ2lvbnNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJl
ZmVyZW5jZXNSZWYsIGJvb2wgZmxhZykKLXsKLSAgICB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5z
ZXRDU1NSZWdpb25zRW5hYmxlZChmbGFnKTsKLX0KLQotYm9vbCBXS1ByZWZlcmVuY2VzR2V0Q1NT
UmVnaW9uc0VuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKLXsKLSAgICBy
ZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+Y3NzUmVnaW9uc0VuYWJsZWQoKTsKLX0KLQog
dm9pZCBXS1ByZWZlcmVuY2VzU2V0TmVlZHNTaXRlU3BlY2lmaWNRdWlya3MoV0tQcmVmZXJlbmNl
c1JlZiBwcmVmZXJlbmNlc1JlZiwgYm9vbCBmbGFnKQogewogICAgIHRvSW1wbChwcmVmZXJlbmNl
c1JlZiktPnNldE5lZWRzU2l0ZVNwZWNpZmljUXVpcmtzKGZsYWcpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNSZWZQcml2YXRlLmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaApp
bmRleCBiNTFjODhmZDFkMjliNjk3ZDJlY2FmMjQ1YWNlODRhOTdkNTU4YTQyLi41ZTA5ZjY2NTU1
MzgzMWJlZDVkOTgwMWY5NzIyNGQwY2NlMjYwNTQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1JlZlByaXZhdGUuaApAQCAtMTE1
LDEwICsxMTUsNiBAQCBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0Q1NTQW5pbWF0aW9u
VHJpZ2dlcnNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYpOwogV0tfRVhQT1JUIHZvaWQgV0tQcmVm
ZXJlbmNlc1NldFdlYkFuaW1hdGlvbnNFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYsIGJvb2wgZmxh
Zyk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0V2ViQW5pbWF0aW9uc0VuYWJsZWQo
V0tQcmVmZXJlbmNlc1JlZik7CiAKLS8vIERlZmF1bHRzIHRvIHRydWUKLVdLX0VYUE9SVCB2b2lk
IFdLUHJlZmVyZW5jZXNTZXRDU1NSZWdpb25zRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmLCBib29s
IGZsYWcpOwotV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldENTU1JlZ2lvbnNFbmFibGVk
KFdLUHJlZmVyZW5jZXNSZWYpOwotCiAvLyBEZWZhdWx0cyB0byBmYWxzZS4KIFdLX0VYUE9SVCB2
b2lkIFdLUHJlZmVyZW5jZXNTZXROZWVkc1NpdGVTcGVjaWZpY1F1aXJrcyhXS1ByZWZlcmVuY2Vz
UmVmLCBib29sKTsKIFdLX0VYUE9SVCBib29sIFdLUHJlZmVyZW5jZXNHZXROZWVkc1NpdGVTcGVj
aWZpY1F1aXJrcyhXS1ByZWZlcmVuY2VzUmVmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXgg
MGNhY2E2MzQzZDBjNDQwYjUxM2E5MDVjMmI3M2EzZGMzMTUxNjE4MC4uNjczZDQ3ZGNkMGUwYmNm
OTIwNTgwMGJiNjAxM2U5OTdjN2M5NjJhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKQEAgLTE4
MywxNiArMTgzLDYgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6b3ZlcnJpZGVCb29sUHJlZmVyZW5j
ZUZvclRlc3RSdW5uZXIoV2ViUGFnZUdyb3VwUHJveHkqIHBhZ2UKICAgICAgICAgUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRXZWJBbmltYXRpb25zRW5hYmxlZChl
bmFibGVkKTsKICNlbmRpZgogCi0jaWYgRU5BQkxFKENTU19SRUdJT05TKQotICAgIGlmIChwcmVm
ZXJlbmNlID09ICJXZWJLaXRDU1NSZWdpb25zRW5hYmxlZCIpCi0gICAgICAgIFJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0Q1NTUmVnaW9uc0VuYWJsZWQoZW5hYmxl
ZCk7Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcpCi0gICAgaWYgKHByZWZl
cmVuY2UgPT0gIldlYktpdENTU0NvbXBvc2l0aW5nRW5hYmxlZCIpCi0gICAgICAgIFJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuc2V0Q1NTQ29tcG9zaXRpbmdFbmFibGVk
KGVuYWJsZWQpOwotI2VuZGlmCi0gICAgCiAjaWYgRU5BQkxFKEZFVENIX0FQSSkKICAgICBpZiAo
cHJlZmVyZW5jZSA9PSAiV2ViS2l0RmV0Y2hBUElFbmFibGVkIikKICAgICAgICAgUnVudGltZUVu
YWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRGZXRjaEFQSUVuYWJsZWQoZW5hYmxl
ZCk7CkBAIC01OTUsMjIgKzU4NSw0IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnNldFdlYkFuaW1h
dGlvbnNFbmFibGVkKGJvb2wgZW5hYmxlZCkKICNlbmRpZgogfQogCi12b2lkIEluamVjdGVkQnVu
ZGxlOjpzZXRDU1NSZWdpb25zRW5hYmxlZChib29sIGVuYWJsZWQpCi17Ci0jaWYgRU5BQkxFKENT
U19SRUdJT05TKQotICAgIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
c2V0Q1NTUmVnaW9uc0VuYWJsZWQoZW5hYmxlZCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShl
bmFibGVkKTsKLSNlbmRpZgotfQotCi12b2lkIEluamVjdGVkQnVuZGxlOjpzZXRDU1NDb21wb3Np
dGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQotewotI2lmIEVOQUJMRShDU1NfQ09NUE9TSVRJTkcp
Ci0gICAgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRDU1NDb21w
b3NpdGluZ0VuYWJsZWQoZW5hYmxlZCk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShlbmFibGVk
KTsKLSNlbmRpZgotfQotCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApp
bmRleCA2MDk1MTJmNTVjNDA3OTkzNDcyZTA5ZmY0ZTU5NjlmODRlY2E3YzAyLi5kZDFjNGE3ODU0
OWZlYzg4NzM2OTRiMGMzYzllMWFhY2NmYThhYjBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCkBAIC0x
NTMsOCArMTUzLDYgQEAgcHVibGljOgogICAgIHZvaWQgc2V0U2VyaWFsTG9hZGluZ0VuYWJsZWQo
Ym9vbCk7CiAgICAgdm9pZCBzZXRDU1NBbmltYXRpb25UcmlnZ2Vyc0VuYWJsZWQoYm9vbCk7CiAg
ICAgdm9pZCBzZXRXZWJBbmltYXRpb25zRW5hYmxlZChib29sKTsKLSAgICB2b2lkIHNldENTU1Jl
Z2lvbnNFbmFibGVkKGJvb2wpOwotICAgIHZvaWQgc2V0Q1NTQ29tcG9zaXRpbmdFbmFibGVkKGJv
b2wpOwogICAgIHZvaWQgZGlzcGF0Y2hQZW5kaW5nTG9hZFJlcXVlc3RzKCk7CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkgJiYgV0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBkZDBjN2RjYTY5OWI1M2VhMzRjNmUyYTBkYWY4
MTVmZjFkYTc3ZTc3Li40MGY1NjAzNDliMjkyYjgxNDQxZTY2ODU0M2JjMjZhMDA4ODBhMDYwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0y
OTE5LDggKzI5MTksNiBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdl
YlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogI2lmIEVOQUJMRShXRUJfQU5JTUFUSU9OUykKICAg
ICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldFdlYkFuaW1hdGlv
bnNFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6d2Vi
QW5pbWF0aW9uc0VuYWJsZWRLZXkoKSkpOwogI2VuZGlmCi0gICAgUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRDU1NSZWdpb25zRW5hYmxlZChzdG9yZS5nZXRCb29s
VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmNzc1JlZ2lvbnNFbmFibGVkS2V5KCkpKTsK
LSAgICBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnNldENTU0NvbXBv
c2l0aW5nRW5hYmxlZChzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6
OmNzc0NvbXBvc2l0aW5nRW5hYmxlZEtleSgpKSk7CiAgICAgc2V0dGluZ3Muc2V0V2ViR0xFbmFi
bGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6d2ViR0xFbmFi
bGVkS2V5KCkpKTsKICAgICBzZXR0aW5ncy5zZXRGb3JjZVNvZnR3YXJlV2ViR0xSZW5kZXJpbmco
c3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5Ojpmb3JjZVNvZnR3YXJl
V2ViR0xSZW5kZXJpbmdLZXkoKSkpOwogICAgIHNldHRpbmdzLnNldEFjY2VsZXJhdGVkMmRDYW52
YXNFbmFibGVkKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6YWNj
ZWxlcmF0ZWQyZENhbnZhc0VuYWJsZWRLZXkoKSkpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdl
TG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGE3ZGYxYmMwZWM4MjU1ODM4YTA4YzNjZDVlMjhk
M2ViMWNjNTQ3MTQuLmQzNzY3OTlmZDgwZjJiNDNjMjRkZGNkODU2MzdhODMzNDllOWYyMTEgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyMSBAQAorMjAxNi0wNS0wNiAgRGVhbiBKYWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAg
ICAgICAgUmVnaW9ucywgU2hhcGVzIGFuZCBUcmFja3MgZG9uJ3QgbmVlZCBydW50aW1lIGZlYXR1
cmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc0
MjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI2MTQ2MjYyPgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBmb2xsb3dpbmcgUnVudGltZUVuYWJs
ZWRGZWF0dXJlcyBjYW4gYmUgcmVtb3ZlZCBzaW5jZQorICAgICAgICB3ZSBoYXZlIG5vIG5lZWQg
dG8gZGlzYWJsZSB0aGVtICh0aGV5IGFyZSBzdGFibGUgYW5kIGhhdmUKKyAgICAgICAgc2hpcHBl
ZCBmb3IgYSB3aGlsZSk6CisgICAgICAgIC0gQ1NTIFJlZ2lvbnMKKyAgICAgICAgLSBDU1MgU2hh
cGVzCisgICAgICAgIC0gTWVkaWEgdHJhY2tzCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9t
YWMvRHVtcFJlbmRlclRyZWUubW06CisgICAgICAgIChyZXNldFdlYlByZWZlcmVuY2VzVG9Db25z
aXN0ZW50VmFsdWVzKTogRGVsZXRlZC4KKwogMjAxNi0wNS0wNCAgQWxleCBDaHJpc3RlbnNlbiAg
PGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIEJsb2NrZWQgcmVkaXJlY3RlZCBt
YWluIHJlc291cmNlIHJlcXVlc3RzIG5lZWQgZGVzY3JpcHRpdmUgZXJyb3JzCmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0gYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KaW5kZXggOWI0MmUzNjk2OTIzNGEwN2Jj
NTJlMmRhM2IyNjQ0YzhmMTdiZjFjZi4uYjNlNjZiMTdmYTlkZWIzM2M4ZmMwYjhmOWE4OTEyOTNj
ZDhkOWYwNCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJU
cmVlLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQpA
QCAtOTY2LDcgKzk2Niw2IEBAIHN0YXRpYyB2b2lkIHJlc2V0V2ViUHJlZmVyZW5jZXNUb0NvbnNp
c3RlbnRWYWx1ZXMoKQogICAgIFtwcmVmZXJlbmNlcyBzZXRDYW52YXNVc2VzQWNjZWxlcmF0ZWRE
cmF3aW5nOllFU107CiAgICAgW3ByZWZlcmVuY2VzIHNldEFjY2VsZXJhdGVkRHJhd2luZ0VuYWJs
ZWQ6dXNlQWNjZWxlcmF0ZWREcmF3aW5nXTsKICNlbmRpZgotICAgIFtwcmVmZXJlbmNlcyBzZXRD
U1NSZWdpb25zRW5hYmxlZDpZRVNdOwogICAgIFtwcmVmZXJlbmNlcyBzZXRVc2VQcmVIVE1MNVBh
cnNlclF1aXJrczpOT107CiAgICAgW3ByZWZlcmVuY2VzIHNldEFzeW5jaHJvbm91c1NwZWxsQ2hl
Y2tpbmdFbmFibGVkOk5PXTsKICNpZiAhUExBVEZPUk0oSU9TKQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNlYWRiNDdhZDAy
OTQ4Y2U4NTk2NzFlMjYzOTg1NTVlNWE4ZDE1ZjIuLmUwYjg2ZmU0YTI0YjUwZmI3M2M0N2U3MzFi
MTQ0Y2IxMDg5ZWJlNmEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAxNi0wNS0wNiAgRGVhbiBK
YWNrc29uICA8ZGlub0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVnaW9ucywgU2hhcGVzIGFuZCBU
cmFja3MgZG9uJ3QgbmVlZCBydW50aW1lIGZlYXR1cmVzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTc0MjYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzI2MTQ2MjYyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFJlbW92ZSB0aGVzZSB0ZXN0cyBzaW5jZSB0aGVpciBydW50aW1lIGZsYWdzIG5vIGxvbmdl
ciBleGlzdC4KKworICAgICAgICAqIGZhc3QvcmVnaW9ucy9jc3MtcmVnaW9ucy1kaXNhYmxlZC1l
eHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9yZWdpb25zL2Nzcy1yZWdpb25z
LWRpc2FibGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9zaGFwZXMvY3NzLXNoYXBl
cy1kaXNhYmxlZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9zaGFwZXMv
Y3NzLXNoYXBlcy1kaXNhYmxlZC5odG1sOiBSZW1vdmVkLgorCiAyMDE2LTA1LTA1ICBEZWFuIEph
Y2tzb24gIDxkaW5vQGFwcGxlLmNvbT4KIAogICAgICAgICA0IGFuZCA4IGRpZ2l0IGNvbG9yIGF0
dHJpYnV0ZXMgc2hvdWxkIHVzZSB0aGUgY3JhenlwYW50cyBhbGdvcml0aG0sIG5vdCB0aGUgQ1NT
IG9uZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9jc3MtcmVnaW9ucy1k
aXNhYmxlZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvY3NzLXJlZ2lv
bnMtZGlzYWJsZWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBl
YWEzNmY1M2I3ZjY3YjFmNzY3ZTY0MzJjYTM2ZGIxZjZjZTNhMDdiLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9j
c3MtcmVnaW9ucy1kaXNhYmxlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyMiAr
MCwwIEBACi1UZXN0IHRoYXQgcGFyc2luZyBvZiBjc3MgcmVnaW9ucyByZWxhdGVkIHByb3BlcnRp
ZXMgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdC4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEg
c2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgot
Ci0KLVBBU1MgdGVzdFdlYktpdEZsb3dJbnRvKCItd2Via2l0LWZsb3ctaW50bzogbm9uZSIpIGlz
ICIiCi1QQVNTIHRlc3RXZWJLaXRGbG93SW50bygiLXdlYmtpdC1mbG93LWludG86IGZpcnN0LWZs
b3ciKSBpcyAiIgotUEFTUyB0ZXN0Q29tcHV0ZWRTdHlsZVdlYktpdEZsb3dJbnRvKCJub25lIikg
aXMgIm5vbmUiCi1QQVNTIHRlc3RDb21wdXRlZFN0eWxlV2ViS2l0Rmxvd0ludG8oImZpcnN0LWZs
b3ciKSBpcyAibm9uZSIKLVBBU1MgdGVzdFdlYktpdEZsb3dGcm9tKCItd2Via2l0LWZsb3ctZnJv
bTogZmlyc3QtZmxvdyIpIGlzICIiCi1QQVNTIHRlc3RXZWJLaXRGbG93RnJvbSgiLXdlYmtpdC1m
bG93LWZyb206IG5vbmUiKSBpcyAiIgotUEFTUyB0ZXN0Q29tcHV0ZWRTdHlsZVdlYktpdEZsb3dG
cm9tKCJmaXJzdC1mbG93IikgaXMgIm5vbmUiCi1QQVNTIHRlc3RDb21wdXRlZFN0eWxlV2ViS2l0
Rmxvd0Zyb20oIm5vbmUiKSBpcyAibm9uZSIKLVBBU1MgdGVzdFdlYktpdFJlZ2lvbkZyYWdtZW50
KCItd2Via2l0LXJlZ2lvbi1mcmFnbWVudDogYXV0byIpIGlzICIiCi1QQVNTIHRlc3RXZWJLaXRS
ZWdpb25GcmFnbWVudCgiLXdlYmtpdC1yZWdpb24tZnJhZ21lbnQ6IGJyZWFrIikgaXMgIiIKLVBB
U1MgdGVzdENvbXB1dGVkU3R5bGVXZWJLaXRSZWdpb25GcmFnbWVudCgiYXV0byIpIGlzICJhdXRv
IgotUEFTUyB0ZXN0Q29tcHV0ZWRTdHlsZVdlYktpdFJlZ2lvbkZyYWdtZW50KCJicmVhayIpIGlz
ICJhdXRvIgotUEFTUyB3ZWJraXRSZWdpb25SdWxlSW5kZXggaXMgLTEKLVBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L3JlZ2lvbnMvY3NzLXJlZ2lvbnMtZGlzYWJsZWQuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy9jc3MtcmVnaW9ucy1kaXNhYmxlZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBjNmQ2Yjk0ZWUwYTFiNTVjNzY4ZTI0ZGQ5MDI1OGRmYjQzYmE4ZGY2Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvcmVnaW9ucy9jc3MtcmVnaW9ucy1kaXNhYmxlZC5odG1sCisrKyAvZGV2L251bGwKQEAg
LTEsMTAgKzAsMCBAQAotPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08c2NyaXB0IHNyYz0ic2NyaXB0
LXRlc3RzL2Nzcy1yZWdpb25zLWRpc2FibGVkLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL2Nzcy1zaGFwZXMtZGlzYWJs
ZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvY3NzLXNoYXBlcy1kaXNh
YmxlZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM1NTY4MTJm
NmI4NjU5ZDVmZGMwNDdhY2I3NTBlM2VmMWNjMjdjN2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9zaGFwZXMvY3NzLXNoYXBl
cy1kaXNhYmxlZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxMyArMCwwIEBACi1U
ZXN0IHRoYXQgcGFyc2luZyBvZiBjc3Mgc2hhcGVzIHJlbGF0ZWQgcHJvcGVydGllcyBjYW4gYmUg
ZGlzYWJsZWQuCi0KLU9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIg
bWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KLQotCi1QQVNTIHRlc3RJbmxp
bmVTdHlsZSgiLXdlYmtpdC1zaGFwZS1tYXJnaW4iLCAiMTBweCIpIGlzICIiCi1QQVNTIHRlc3RD
b21wdXRlZFN0eWxlKCItd2Via2l0LXNoYXBlLW1hcmdpbiIsICIxMHB4IikgaXMgIjBweCIKLVBB
U1MgdGVzdElubGluZVN0eWxlKCItd2Via2l0LXNoYXBlLW91dHNpZGUiLCAiY2lyY2xlKDEwcHgg
YXQgMTBweCAxMHB4KSIpIGlzICIiCi1QQVNTIHRlc3RDb21wdXRlZFN0eWxlKCItd2Via2l0LXNo
YXBlLW91dHNpZGUiLCAiY2lyY2xlKDEwcHggYXQgMTBweCAxMHB4KSIpIGlzICJub25lIgotUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3Qvc2hhcGVzL2Nzcy1zaGFwZXMtZGlzYWJsZWQuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3Qvc2hhcGVzL2Nzcy1zaGFwZXMtZGlzYWJsZWQuaHRtbApkZWxldGVkIGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggZWNjMjdmYjk0ZDZhYTllOGYwMTA1NGIyZWFiNzAzMjBlN2I4
YjRiOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3NoYXBlcy9jc3Mtc2hhcGVzLWRpc2FibGVkLmh0bWwKKysrIC9kZXYvbnVs
bApAQCAtMSwzOCArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci08c2Ny
aXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3Jp
cHQ+Ci0KLWRlc2NyaXB0aW9uKCdUZXN0IHRoYXQgcGFyc2luZyBvZiBjc3Mgc2hhcGVzIHJlbGF0
ZWQgcHJvcGVydGllcyBjYW4gYmUgZGlzYWJsZWQuJyk7Ci0KLWlmICh3aW5kb3cuaW50ZXJuYWxz
KQotICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0dGluZ3Muc2V0Q1NTU2hhcGVzRW5hYmxlZChmYWxz
ZSk7Ci0KLWZ1bmN0aW9uIHRlc3RJbmxpbmVTdHlsZShwcm9wZXJ0eSwgdmFsdWUpIHsKLSAgICB2
YXIgZGl2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7Ci0gICAgZGl2LnNldEF0dHJp
YnV0ZSgic3R5bGUiLCBwcm9wZXJ0eSArICI6ICIgKyB2YWx1ZSk7Ci0gICAgcmV0dXJuIGRpdi5z
dHlsZS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5KTsKLX0KLQotZnVuY3Rpb24gdGVzdENvbXB1
dGVkU3R5bGUocHJvcGVydHksIHZhbHVlKSB7Ci0gICAgdmFyIGRpdiA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoImRpdiIpOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZGl2KTsKLSAg
ICBkaXYuc3R5bGUuc2V0UHJvcGVydHkocHJvcGVydHksIHZhbHVlKTsKLSAgICB2YXIgY29tcHV0
ZWRWYWx1ZSA9IGdldENvbXB1dGVkU3R5bGUoZGl2KS5nZXRQcm9wZXJ0eVZhbHVlKHByb3BlcnR5
KTsKLSAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRpdik7Ci0gICAgcmV0dXJuIGNvbXB1
dGVkVmFsdWU7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RTdHlsZShwcm9wZXJ0eSwgdmFsdWUsIGNvbXB1
dGVkRXhwZWN0ZWQpIHsKLSAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ3Rlc3RJbmxpbmVTdHls
ZSgiJyArIHByb3BlcnR5ICsgJyIsICInICsgdmFsdWUgKyAnIiknLCAnJyk7Ci0gICAgc2hvdWxk
QmVFcXVhbFRvU3RyaW5nKCd0ZXN0Q29tcHV0ZWRTdHlsZSgiJyArIHByb3BlcnR5ICsgJyIsICIn
ICsgdmFsdWUgKyAnIiknLCBjb21wdXRlZEV4cGVjdGVkKTsKLX0KLQotdGVzdFN0eWxlKCItd2Vi
a2l0LXNoYXBlLW1hcmdpbiIsICIxMHB4IiwgIjBweCIpOwotdGVzdFN0eWxlKCItd2Via2l0LXNo
YXBlLW91dHNpZGUiLCAiY2lyY2xlKDEwcHggYXQgMTBweCAxMHB4KSIsICJub25lIik7Ci0KLTwv
c2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgo=
</data>
<flag name="review"
          id="302384"
          type_id="1"
          status="+"
          setter="simon.fraser"
    />
          </attachment>
      

    </bug>

</bugzilla>