<?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>233377</bug_id>
          
          <creation_ts>2021-11-19 11:39:10 -0800</creation_ts>
          <short_desc>Dispatch all AccessibilityUIElement parameterized attribute requests to the AX thread for isolated tree mode.</short_desc>
          <delta_ts>2021-11-21 10:35:28 -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>Accessibility</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andres Gonzalez">andresg_22</reporter>
          <assigned_to name="Andres Gonzalez">andresg_22</assigned_to>
          <cc>andresg_22</cc>
    
    <cc>cfleizach</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1816954</commentid>
    <comment_count>0</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-11-19 11:39:10 -0800</bug_when>
    <thetext>Dispatch all AccessibilityUIElement parameterized attribute requests to the AX thread for isolated tree mode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816955</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-19 11:39:32 -0800</bug_when>
    <thetext>&lt;rdar://problem/85613334&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816961</commentid>
    <comment_count>2</comment_count>
      <attachid>444843</attachid>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2021-11-19 12:02:49 -0800</bug_when>
    <thetext>Created attachment 444843
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817201</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-21 10:35:27 -0800</bug_when>
    <thetext>Committed r286102 (244489@main): &lt;https://commits.webkit.org/244489@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 444843.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444843</attachid>
            <date>2021-11-19 12:02:49 -0800</date>
            <delta_ts>2021-11-21 10:35:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233377-20211119150248.patch</filename>
            <type>text/plain</type>
            <size>42160</size>
            <attacher name="Andres Gonzalez">andresg_22</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1OTM4CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggODNmMWY2OWUzNWQ4ZDVmMjg3Y2UxNWNkMzA0NzQwNzg0
ZWE1MGUxNS4uNmE0NGJjOTUwNTBlODdiNDg2ZjE4Y2RjMmI2OTU5MzViMDgzYzFjMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4
IEBACisyMDIxLTExLTE5ICBBbmRyZXMgR29uemFsZXogIDxhbmRyZXNnXzIyQGFwcGxlLmNvbT4K
KworICAgICAgICBEaXNwYXRjaCBhbGwgQWNjZXNzaWJpbGl0eVVJRWxlbWVudCBwYXJhbWV0ZXJp
emVkIGF0dHJpYnV0ZSByZXF1ZXN0cyB0byB0aGUgQVggdGhyZWFkIGZvciBpc29sYXRlZCB0cmVl
IG1vZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzMzNzcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg1NjEzMzM0PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRvIHNpbXVsYXRlIEFUIGNsaWVudCBy
ZXF1ZXN0cyBpbiBpc29sYXRlZCB0cmVlIG1vZGUsIGFsbCBwYXJhbWV0ZXJpemVkCisgICAgICAg
IGF0dHJpYnV0ZSByZXF1ZXN0cyBzaG91bGQgYmUgZGlzcGF0Y2hlZCB0byB0aGUgQVggdGhyZWFk
LgorICAgICAgICBUaGlzIHBhdGNoIGFkZHMgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmli
dXRlVmFsdWVGb3JQYXJhbWV0ZXIgdGhhdAorICAgICAgICBkb2VzIHRoZSBhcHByb3ByaWF0ZSBk
aXNwYXRjaCB0byB0aGUgQVggdGhyZWFkLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50Lmg6CisgICAgICAgICogV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvQWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5t
bToKKyAgICAgICAgKFdUUjo6YXR0cmlidXRlVmFsdWUpOgorICAgICAgICAoV1RSOjpBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVWYWx1ZSBjb25zdCk6CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZVZhbHVlRm9yUGFyYW1ldGVyIGNvbnN0KToK
KyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGluZUZvckluZGV4KToKKyAg
ICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmFuZ2VGb3JMaW5lKToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmFuZ2VGb3JQb3NpdGlvbik6CisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmJvdW5kc0ZvclJhbmdlKToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RyaW5nRm9yUmFuZ2UpOgorICAgICAg
ICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nRm9yUmFuZ2Up
OgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5n
UmFuZ2VJc01pc3NwZWxsZWQpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojp1aUVsZW1lbnRDb3VudEZvclNlYXJjaFByZWRpY2F0ZSk6CisgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEZvclNlYXJjaFByZWRpY2F0ZSk6CisgICAgICAg
IChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbGVjdFRleHRXaXRoQ3JpdGVyaWEpOgor
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzZWFyY2hUZXh0V2l0aENyaXRl
cmlhKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2VsbEZvckNvbHVt
bkFuZFJvdyk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmxpbmVUZXh0
TWFya2VyUmFuZ2VGb3JUZXh0TWFya2VyKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJ
RWxlbWVudDo6bGluZUluZGV4Rm9yVGV4dE1hcmtlciBjb25zdCk6CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om1pc3NwZWxsaW5nVGV4dE1hcmtlclJhbmdlKToKKyAgICAg
ICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlclJhbmdlRm9yRWxlbWVu
dCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJSYW5n
ZUxlbmd0aCk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXZpb3Vz
VGV4dE1hcmtlcik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5leHRU
ZXh0TWFya2VyKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RyaW5n
Rm9yVGV4dE1hcmtlclJhbmdlKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVu
dDo6dGV4dE1hcmtlclJhbmdlRm9yTWFya2Vycyk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJSYW5nZUZvclJhbmdlKToKKyAgICAgICAgKFdUUjo6QWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6cmVzZXRTZWxlY3RlZFRleHRNYXJrZXJSYW5nZSk6CisgICAg
ICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0YXJ0VGV4dE1hcmtlckZvclRleHRN
YXJrZXJSYW5nZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmVuZFRl
eHRNYXJrZXJGb3JUZXh0TWFya2VyUmFuZ2UpOgorICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjplbmRUZXh0TWFya2VyRm9yQm91bmRzKToKKyAgICAgICAgKFdUUjo6QWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6c3RhcnRUZXh0TWFya2VyRm9yQm91bmRzKToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlckZvclBvaW50KToKKyAgICAgICAg
KFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWNjZXNzaWJpbGl0eUVsZW1lbnRGb3JUZXh0
TWFya2VyKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRl
ZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZSk6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2VXaXRoT3B0aW9ucyk6
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdG
b3JUZXh0TWFya2VyUmFuZ2VDb250YWluc0F0dHJpYnV0ZSk6CisgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OmluZGV4Rm9yVGV4dE1hcmtlcik6CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVGV4dE1hcmtlclZhbGlkKToKKyAgICAgICAgKFdUUjo6
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlckZvckluZGV4KToKKyAgICAgICAgKFdU
Ujo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGVmdFdvcmRUZXh0TWFya2VyUmFuZ2VGb3JUZXh0
TWFya2VyKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmlnaHRXb3Jk
VGV4dE1hcmtlclJhbmdlRm9yVGV4dE1hcmtlcik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnByZXZpb3VzV29yZFN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXIpOgor
ICAgICAgICAoV1RSOjpBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpuZXh0V29yZEVuZFRleHRNYXJr
ZXJGb3JUZXh0TWFya2VyKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
cGFyYWdyYXBoVGV4dE1hcmtlclJhbmdlRm9yVGV4dE1hcmtlcik6CisgICAgICAgIChXVFI6OkFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXZpb3VzUGFyYWdyYXBoU3RhcnRUZXh0TWFya2VyRm9y
VGV4dE1hcmtlcik6CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5leHRQ
YXJhZ3JhcGhFbmRUZXh0TWFya2VyRm9yVGV4dE1hcmtlcik6CisgICAgICAgIChXVFI6OkFjY2Vz
c2liaWxpdHlVSUVsZW1lbnQ6OnNlbnRlbmNlVGV4dE1hcmtlclJhbmdlRm9yVGV4dE1hcmtlcik6
CisgICAgICAgIChXVFI6OkFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnByZXZpb3VzU2VudGVuY2VT
dGFydFRleHRNYXJrZXJGb3JUZXh0TWFya2VyKToKKyAgICAgICAgKFdUUjo6QWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6bmV4dFNlbnRlbmNlRW5kVGV4dE1hcmtlckZvclRleHRNYXJrZXIpOgorICAg
ICAgICAoV1RSOjpfY29udmVydE1hdGhNdWx0aXNjcmlwdFBhaXJzVG9TdHJpbmcpOgorCiAyMDIx
LTExLTE3ICBaaXhpbmcgTGl1ICA8bGl1c2h1eXUwMTFAZ21haWwuY29tPgogCiAgICAgICAgIFtH
VEtdW1dQRV0gU3VwcG9ydCBnZXR0aW5nIGFuZCBzZXR0aW5nIEhUVFAgaGVhZGVycyBpbiBjdXN0
b20gVVJJIHNjaGVtZSBoYW5kbGVycwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9JbmplY3RlZEJ1bmRsZS9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50LmggYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAppbmRleCA1
MmE1MTJjYTk2ZTk1N2Q1YjNiMDllNmNhMGZjZWFjOThjNTc1ZDFkLi45YzhkYTMwNmU3ZTUxNmUx
OTQzNDExNjBkYWQwNDRlMzE2Yzc1NTJhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaAorKysgYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnQuaApA
QCAtNjQsNyArNjQsNiBAQCBjbGFzcyBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50IDogcHVibGljIEpT
V3JhcHBhYmxlIHsKICNpZiBQTEFURk9STShDT0NPQSkKICAgICAvLyBIZWxwZXIgZnVuY3Rpb25z
IHRoYXQgZGlzcGF0Y2ggdGhlIGNvcnJlc3BvbmRpbmcgQWNjZXNzaWJpbGl0eU9iamVjdFdyYXBw
ZXIgbWV0aG9kIHRvIHRoZSBBWCBzZWNvbmRhcnkgdGhyZWFkIHdoZW4gYXBwcm9wcmlhdGUuCiAg
ICAgZnJpZW5kIFJldGFpblB0cjxOU0FycmF5PiBzdXBwb3J0ZWRBdHRyaWJ1dGVzKGlkKTsKLSAg
ICBmcmllbmQgUmV0YWluUHRyPGlkPiBhdHRyaWJ1dGVWYWx1ZShpZCwgTlNTdHJpbmcgKik7CiAg
ICAgZnJpZW5kIHZvaWQgc2V0QXR0cmlidXRlVmFsdWUoaWQsIE5TU3RyaW5nICosIGlkLCBib29s
IHN5bmNocm9ub3VzKTsKICNlbmRpZgogCkBAIC0xMzMsNiArMTMyLDcgQEAgcHVibGljOgogICAg
IFJlZlB0cjxBY2Nlc3NpYmlsaXR5VUlFbGVtZW50PiB1aUVsZW1lbnRBdHRyaWJ1dGVWYWx1ZShK
U1N0cmluZ1JlZiBhdHRyaWJ1dGUpIGNvbnN0OwogICAgIGJvb2wgYm9vbEF0dHJpYnV0ZVZhbHVl
KEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSk7CiAjaWYgUExBVEZPUk0oTUFDKQorICAgIFJldGFpblB0
cjxpZD4gYXR0cmlidXRlVmFsdWUoTlNTdHJpbmcgKikgY29uc3Q7CiAgICAgdm9pZCBhdHRyaWJ1
dGVWYWx1ZUFzeW5jKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSwgSlNWYWx1ZVJlZiBjYWxsYmFjayk7
CiAjZWxzZQogICAgIHZvaWQgYXR0cmlidXRlVmFsdWVBc3luYyhKU1N0cmluZ1JlZiBhdHRyaWJ1
dGUsIEpTVmFsdWVSZWYgY2FsbGJhY2spIHsgfQpAQCAtNDAxLDcgKzQwMSw3IEBAIHByaXZhdGU6
CiAgICAgQWNjZXNzaWJpbGl0eVVJRWxlbWVudChjb25zdCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Jik7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgUmV0YWluUHRyPGlkPiBhdHRyaWJ1dGVWYWx1
ZShOU1N0cmluZyAqKSBjb25zdDsKKyAgICBSZXRhaW5QdHI8aWQ+IGF0dHJpYnV0ZVZhbHVlRm9y
UGFyYW1ldGVyKE5TU3RyaW5nICosIGlkKSBjb25zdDsKICAgICBOU1N0cmluZyAqZGVzY3JpcHRp
b25PZlZhbHVlKGlkIHZhbHVlT2JqZWN0KSBjb25zdDsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21hYy9BY2Nlc3NpYmlsaXR5VUlF
bGVtZW50TWFjLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMv
QWNjZXNzaWJpbGl0eVVJRWxlbWVudE1hYy5tbQppbmRleCA1NTM2OWVkMDc1NzlhNmQ4YTA1ZDVl
NzlkODVlYjdiYWMwZmRiNmM4Li5hZWE0YzMzMzUxMjNhZDllMjZkYjhjNThkYWVkMTQ5MjA5Nzcx
MDIyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL21h
Yy9BY2Nlc3NpYmlsaXR5VUlFbGVtZW50TWFjLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0FjY2Vzc2liaWxpdHlVSUVsZW1lbnRNYWMubW0KQEAgLTEz
OSwzMSArMTM5LDIzIEBAIFJldGFpblB0cjxOU0FycmF5PiBzdXBwb3J0ZWRBdHRyaWJ1dGVzKGlk
IGVsZW1lbnQpCiAgICAgcmV0dXJuIGF0dHJpYnV0ZXM7CiB9CiAKLVJldGFpblB0cjxpZD4gYXR0
cmlidXRlVmFsdWUoaWQgZWxlbWVudCwgTlNTdHJpbmcgKmF0dHJpYnV0ZSkKK3N0YXRpYyBpZCBh
dHRyaWJ1dGVWYWx1ZShpZCBlbGVtZW50LCBOU1N0cmluZyAqYXR0cmlidXRlKQogewotICAgIFJl
dGFpblB0cjxpZD4gdmFsdWU7Ci0KLSAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBB
Y2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzX2NvbnRyb2xsZXItPmV4ZWN1dGVPbkFYVGhyZWFkQW5k
V2FpdChbJmVsZW1lbnQsICZhdHRyaWJ1dGUsICZ2YWx1ZV0gewotICAgICAgICAvLyBUaGUgZ2l2
ZW4gYGVsZW1lbnRgIG1heSBub3QgcmVzcG9uZCB0byBgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZh
bHVlYCwgc28gZmlyc3QgY2hlY2sgdG8gc2VlIGlmIGl0IHJlc3BvbmRzIHRvIHRoZSBhdHRyaWJ1
dGUtc3BlY2lmaWMgc2VsZWN0b3IuCi0gICAgICAgIGlmIChbYXR0cmlidXRlIGlzRXF1YWw6TlNB
Y2Nlc3NpYmlsaXR5Q2hpbGRyZW5BdHRyaWJ1dGVdICYmIFtlbGVtZW50IHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoYWNjZXNzaWJpbGl0eUNoaWxkcmVuKV0pCi0gICAgICAgICAgICB2YWx1
ZSA9IFtlbGVtZW50IGFjY2Vzc2liaWxpdHlDaGlsZHJlbl07Ci0gICAgICAgIGVsc2UgaWYgKFth
dHRyaWJ1dGUgaXNFcXVhbDpOU0FjY2Vzc2liaWxpdHlEZXNjcmlwdGlvbkF0dHJpYnV0ZV0gJiYg
W2VsZW1lbnQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhY2Nlc3NpYmlsaXR5TGFiZWwp
XSkKLSAgICAgICAgICAgIHZhbHVlID0gW2VsZW1lbnQgYWNjZXNzaWJpbGl0eUxhYmVsXTsKLSAg
ICAgICAgZWxzZSBpZiAoW2F0dHJpYnV0ZSBpc0VxdWFsOk5TQWNjZXNzaWJpbGl0eVBhcmVudEF0
dHJpYnV0ZV0gJiYgW2VsZW1lbnQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhY2Nlc3Np
YmlsaXR5UGFyZW50KV0pCi0gICAgICAgICAgICB2YWx1ZSA9IFtlbGVtZW50IGFjY2Vzc2liaWxp
dHlQYXJlbnRdOwotICAgICAgICBlbHNlIGlmIChbYXR0cmlidXRlIGlzRXF1YWw6TlNBY2Nlc3Np
YmlsaXR5Um9sZUF0dHJpYnV0ZV0gJiYgW2VsZW1lbnQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3RvcihhY2Nlc3NpYmlsaXR5Um9sZSldKQotICAgICAgICAgICAgdmFsdWUgPSBbZWxlbWVudCBh
Y2Nlc3NpYmlsaXR5Um9sZV07Ci0gICAgICAgIGVsc2UgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbDpO
U0FjY2Vzc2liaWxpdHlWYWx1ZUF0dHJpYnV0ZV0gJiYgW2VsZW1lbnQgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3RvcihhY2Nlc3NpYmlsaXR5VmFsdWUpXSkKLSAgICAgICAgICAgIHZhbHVlID0g
W2VsZW1lbnQgYWNjZXNzaWJpbGl0eVZhbHVlXTsKLSAgICAgICAgZWxzZSBpZiAoW2F0dHJpYnV0
ZSBpc0VxdWFsOk5TQWNjZXNzaWJpbGl0eUZvY3VzZWRVSUVsZW1lbnRBdHRyaWJ1dGVdICYmIFtl
bGVtZW50IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoYWNjZXNzaWJpbGl0eUZvY3VzZWRV
SUVsZW1lbnQpXSkKLSAgICAgICAgICAgIHZhbHVlID0gW2VsZW1lbnQgYWNjZXNzaWJpbGl0eUZv
Y3VzZWRVSUVsZW1lbnRdOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICB2YWx1ZSA9IFtlbGVt
ZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTphdHRyaWJ1dGVdOwotICAgIH0pOwotICAg
IEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKKyAgICAvLyBUaGUgZ2l2ZW4gYGVsZW1lbnRgIG1heSBu
b3QgcmVzcG9uZCB0byBgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlYCwgc28gZmlyc3QgY2hl
Y2sgdG8gc2VlIGlmIGl0IHJlc3BvbmRzIHRvIHRoZSBhdHRyaWJ1dGUtc3BlY2lmaWMgc2VsZWN0
b3IuCisgICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbDpOU0FjY2Vzc2liaWxpdHlDaGlsZHJlbkF0
dHJpYnV0ZV0gJiYgW2VsZW1lbnQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhY2Nlc3Np
YmlsaXR5Q2hpbGRyZW4pXSkKKyAgICAgICAgcmV0dXJuIFtlbGVtZW50IGFjY2Vzc2liaWxpdHlD
aGlsZHJlbl07CisgICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbDpOU0FjY2Vzc2liaWxpdHlEZXNj
cmlwdGlvbkF0dHJpYnV0ZV0gJiYgW2VsZW1lbnQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihhY2Nlc3NpYmlsaXR5TGFiZWwpXSkKKyAgICAgICAgcmV0dXJuIFtlbGVtZW50IGFjY2Vzc2li
aWxpdHlMYWJlbF07CisgICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbDpOU0FjY2Vzc2liaWxpdHlQ
YXJlbnRBdHRyaWJ1dGVdICYmIFtlbGVtZW50IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
YWNjZXNzaWJpbGl0eVBhcmVudCldKQorICAgICAgICByZXR1cm4gW2VsZW1lbnQgYWNjZXNzaWJp
bGl0eVBhcmVudF07CisgICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbDpOU0FjY2Vzc2liaWxpdHlS
b2xlQXR0cmlidXRlXSAmJiBbZWxlbWVudCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGFj
Y2Vzc2liaWxpdHlSb2xlKV0pCisgICAgICAgIHJldHVybiBbZWxlbWVudCBhY2Nlc3NpYmlsaXR5
Um9sZV07CisgICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbDpOU0FjY2Vzc2liaWxpdHlWYWx1ZUF0
dHJpYnV0ZV0gJiYgW2VsZW1lbnQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihhY2Nlc3Np
YmlsaXR5VmFsdWUpXSkKKyAgICAgICAgcmV0dXJuIFtlbGVtZW50IGFjY2Vzc2liaWxpdHlWYWx1
ZV07CisgICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbDpOU0FjY2Vzc2liaWxpdHlGb2N1c2VkVUlF
bGVtZW50QXR0cmlidXRlXSAmJiBbZWxlbWVudCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KGFjY2Vzc2liaWxpdHlGb2N1c2VkVUlFbGVtZW50KV0pCisgICAgICAgIHJldHVybiBbZWxlbWVu
dCBhY2Nlc3NpYmlsaXR5Rm9jdXNlZFVJRWxlbWVudF07CiAKLSAgICByZXR1cm4gdmFsdWU7Cisg
ICAgcmV0dXJuIFtlbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTphdHRyaWJ1dGVd
OwogfQogCiB2b2lkIHNldEF0dHJpYnV0ZVZhbHVlKGlkIGVsZW1lbnQsIE5TU3RyaW5nKiBhdHRy
aWJ1dGUsIGlkIHZhbHVlLCBib29sIHN5bmNocm9ub3VzID0gZmFsc2UpCkBAIC0zMTUsOSArMzA3
LDMwIEBAIHN0YXRpYyBOU0RpY3Rpb25hcnkgKm1pc3NwZWxsaW5nU2VhcmNoUGFyYW1ldGVyaXpl
ZEF0dHJpYnV0ZUZvckNyaXRlcmlhKEFjY2Vzc2liCiAgICAgcmV0dXJuIHBhcmFtZXRlcnM7CiB9
CiAKLWlubGluZSBSZXRhaW5QdHI8aWQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0
ZVZhbHVlKE5TU3RyaW5nICphdHRyaWJ1dGVOYW1lKSBjb25zdAorUmV0YWluUHRyPGlkPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVWYWx1ZShOU1N0cmluZyAqYXR0cmlidXRlTmFt
ZSkgY29uc3QKK3sKKyAgICBSZXRhaW5QdHI8aWQ+IHZhbHVlOworCisgICAgQkVHSU5fQVhfT0JK
Q19FWENFUFRJT05TCisgICAgc19jb250cm9sbGVyLT5leGVjdXRlT25BWFRocmVhZEFuZFdhaXQo
W3RoaXMsICZhdHRyaWJ1dGVOYW1lLCAmdmFsdWVdIHsKKyAgICAgICAgdmFsdWUgPSBXVFI6OmF0
dHJpYnV0ZVZhbHVlKG1fZWxlbWVudC5nZXQoKSwgYXR0cmlidXRlTmFtZSk7CisgICAgfSk7Cisg
ICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUworCisgICAgcmV0dXJuIHZhbHVlOworfQorCitSZXRh
aW5QdHI8aWQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZVZhbHVlRm9yUGFyYW1l
dGVyKE5TU3RyaW5nICphdHRyaWJ1dGVOYW1lLCBpZCBwYXJhbWV0ZXIpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIFdUUjo6YXR0cmlidXRlVmFsdWUobV9lbGVtZW50LmdldCgpLCBhdHRyaWJ1dGVOYW1l
KTsKKyAgICBSZXRhaW5QdHI8aWQ+IHZhbHVlOworCisgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJ
T05TCisgICAgc19jb250cm9sbGVyLT5leGVjdXRlT25BWFRocmVhZEFuZFdhaXQoW3RoaXMsICZh
dHRyaWJ1dGVOYW1lLCAmcGFyYW1ldGVyLCAmdmFsdWVdIHsKKyAgICAgICAgdmFsdWUgPSBbbV9l
bGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTphdHRyaWJ1dGVOYW1lIGZvclBhcmFt
ZXRlcjpwYXJhbWV0ZXJdOworICAgIH0pOworICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKKwor
ICAgIHJldHVybiB2YWx1ZTsKIH0KIAogSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ6OmRvbUlkZW50aWZpZXIoKSBjb25zdApAQCAtMTEzMSw3ICsxMTQ0LDcg
QEAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmFyaWFE
cm9wRWZmZWN0cygpIGNvbnN0CiBpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6bGluZUZvcklu
ZGV4KGludCBpbmRleCkKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCB2
YWx1ZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJp
bGl0eUxpbmVGb3JJbmRleFBhcmFtZXRlcml6ZWRBdHRyaWJ1dGUgZm9yUGFyYW1ldGVyOkAoaW5k
ZXgpXTsKKyAgICBhdXRvIHZhbHVlID0gYXR0cmlidXRlVmFsdWVGb3JQYXJhbWV0ZXIoTlNBY2Nl
c3NpYmlsaXR5TGluZUZvckluZGV4UGFyYW1ldGVyaXplZEF0dHJpYnV0ZSwgQChpbmRleCkpOwog
ICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpbTlNOdW1iZXIgY2xhc3NdXSkKICAgICAgICAg
cmV0dXJuIFsoTlNOdW1iZXIgKil2YWx1ZSBpbnRWYWx1ZV07IAogICAgIEVORF9BWF9PQkpDX0VY
Q0VQVElPTlMKQEAgLTExNDIsMTggKzExNTUsMTggQEAgaW50IEFjY2Vzc2liaWxpdHlVSUVsZW1l
bnQ6OmxpbmVGb3JJbmRleChpbnQgaW5kZXgpCiBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6cmFuZ2VGb3JMaW5lKGludCBsaW5lKQogewogICAgIEJFR0lO
X0FYX09CSkNfRVhDRVBUSU9OUwotICAgIGlkIHZhbHVlID0gW21fZWxlbWVudCBhY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nlc3NpYmlsaXR5UmFuZ2VGb3JMaW5lUGFyYW1ldGVyaXpl
ZEF0dHJpYnV0ZSBmb3JQYXJhbWV0ZXI6QChsaW5lKV07CisgICAgYXV0byB2YWx1ZSA9IGF0dHJp
YnV0ZVZhbHVlRm9yUGFyYW1ldGVyKE5TQWNjZXNzaWJpbGl0eVJhbmdlRm9yTGluZVBhcmFtZXRl
cml6ZWRBdHRyaWJ1dGUsIEAobGluZSkpOwogICAgIGlmIChbdmFsdWUgaXNLaW5kT2ZDbGFzczpb
TlNWYWx1ZSBjbGFzc11dKQogICAgICAgICByZXR1cm4gW05TU3RyaW5nRnJvbVJhbmdlKFt2YWx1
ZSByYW5nZVZhbHVlXSkgY3JlYXRlSlNTdHJpbmdSZWZdOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQ
VElPTlMKLSAgICAKKwogICAgIHJldHVybiBudWxscHRyOwogfQogCiBKU1JldGFpblB0cjxKU1N0
cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmFuZ2VGb3JQb3NpdGlvbihpbnQgeCwg
aW50IHkpCiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgaWQgdmFsdWUgPSBb
bV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2liaWxpdHlSYW5n
ZUZvclBvc2l0aW9uUGFyYW1ldGVyaXplZEF0dHJpYnV0ZSBmb3JQYXJhbWV0ZXI6W05TVmFsdWUg
dmFsdWVXaXRoUG9pbnQ6TlNNYWtlUG9pbnQoeCwgeSldXTsKKyAgICBhdXRvIHZhbHVlID0gYXR0
cmlidXRlVmFsdWVGb3JQYXJhbWV0ZXIoTlNBY2Nlc3NpYmlsaXR5UmFuZ2VGb3JQb3NpdGlvblBh
cmFtZXRlcml6ZWRBdHRyaWJ1dGUsIFtOU1ZhbHVlIHZhbHVlV2l0aFBvaW50Ok5TTWFrZVBvaW50
KHgsIHkpXSk7CiAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU1ZhbHVlIGNsYXNzXV0p
CiAgICAgICAgIHJldHVybiBbTlNTdHJpbmdGcm9tUmFuZ2UoW3ZhbHVlIHJhbmdlVmFsdWVdKSBj
cmVhdGVKU1N0cmluZ1JlZl07CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwpAQCAtMTE2NSwx
NiArMTE3OCwxNiBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6Ym91bmRzRm9yUmFuZ2UodW5zaWduZWQgbG9jYXRpbwogewogICAgIE5TUmFuZ2UgcmFu
Z2UgPSBOU01ha2VSYW5nZShsb2NhdGlvbiwgbGVuZ3RoKTsKICAgICBCRUdJTl9BWF9PQkpDX0VY
Q0VQVElPTlMKLSAgICBpZCB2YWx1ZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0
ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eUJvdW5kc0ZvclJhbmdlUGFyYW1ldGVyaXplZEF0dHJpYnV0
ZSBmb3JQYXJhbWV0ZXI6W05TVmFsdWUgdmFsdWVXaXRoUmFuZ2U6cmFuZ2VdXTsKKyAgICBhdXRv
IHZhbHVlID0gYXR0cmlidXRlVmFsdWVGb3JQYXJhbWV0ZXIoTlNBY2Nlc3NpYmlsaXR5Qm91bmRz
Rm9yUmFuZ2VQYXJhbWV0ZXJpemVkQXR0cmlidXRlLCBbTlNWYWx1ZSB2YWx1ZVdpdGhSYW5nZTpy
YW5nZV0pOwogICAgIE5TUmVjdCByZWN0ID0gTlNNYWtlUmVjdCgwLDAsMCwwKTsKICAgICBpZiAo
W3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05TVmFsdWUgY2xhc3NdXSkKICAgICAgICAgcmVjdCA9IFt2
YWx1ZSByZWN0VmFsdWVdOyAKLSAgICAKKwogICAgIC8vIGRvbid0IHJldHVybiBwb3NpdGlvbiBp
bmZvcm1hdGlvbiBiZWNhdXNlIGl0IGlzIHBsYXRmb3JtIGRlcGVuZGVudAogICAgIE5TTXV0YWJs
ZVN0cmluZyogYm91bmRzRGVzY3JpcHRpb24gPSBbTlNNdXRhYmxlU3RyaW5nIHN0cmluZ1dpdGhG
b3JtYXQ6QCJ7eyVmLCAlZn0sIHslZiwgJWZ9fSIsLTEuMGYsLTEuMGYscmVjdC5zaXplLndpZHRo
LHJlY3Quc2l6ZS5oZWlnaHRdOwogICAgIHJldHVybiBbYm91bmRzRGVzY3JpcHRpb24gY3JlYXRl
SlNTdHJpbmdSZWZdOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICAKKwogICAgIHJl
dHVybiBudWxscHRyOwogfQogCkBAIC0xMTgyLDEwICsxMTk1LDEwIEBAIEpTUmV0YWluUHRyPEpT
U3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpzdHJpbmdGb3JSYW5nZSh1bnNpZ25l
ZCBsb2NhdGlvCiB7CiAgICAgTlNSYW5nZSByYW5nZSA9IE5TTWFrZVJhbmdlKGxvY2F0aW9uLCBs
ZW5ndGgpOwogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIGlkIHN0cmluZyA9IFtt
X2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eVN0cmlu
Z0ZvclJhbmdlUGFyYW1ldGVyaXplZEF0dHJpYnV0ZSBmb3JQYXJhbWV0ZXI6W05TVmFsdWUgdmFs
dWVXaXRoUmFuZ2U6cmFuZ2VdXTsKKyAgICBhdXRvIHN0cmluZyA9IGF0dHJpYnV0ZVZhbHVlRm9y
UGFyYW1ldGVyKE5TQWNjZXNzaWJpbGl0eVN0cmluZ0ZvclJhbmdlUGFyYW1ldGVyaXplZEF0dHJp
YnV0ZSwgW05TVmFsdWUgdmFsdWVXaXRoUmFuZ2U6cmFuZ2VdKTsKICAgICBpZiAoIVtzdHJpbmcg
aXNLaW5kT2ZDbGFzczpbTlNTdHJpbmcgY2xhc3NdXSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgCisKICAgICByZXR1cm4gW3N0cmluZyBjcmVhdGVKU1N0cmluZ1JlZl07CiAgICAgRU5E
X0FYX09CSkNfRVhDRVBUSU9OUwogICAgIApAQCAtMTE5NiwxNCArMTIwOSwxNCBAQCBKU1JldGFp
blB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmlu
Z0ZvclJhbmdlKHVuc2lnbgogewogICAgIE5TUmFuZ2UgcmFuZ2UgPSBOU01ha2VSYW5nZShsb2Nh
dGlvbiwgbGVuZ3RoKTsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBOU0F0dHJp
YnV0ZWRTdHJpbmcqIHN0cmluZyA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZh
bHVlOk5TQWNjZXNzaWJpbGl0eUF0dHJpYnV0ZWRTdHJpbmdGb3JSYW5nZVBhcmFtZXRlcml6ZWRB
dHRyaWJ1dGUgZm9yUGFyYW1ldGVyOltOU1ZhbHVlIHZhbHVlV2l0aFJhbmdlOnJhbmdlXV07Cisg
ICAgYXV0byBzdHJpbmcgPSBhdHRyaWJ1dGVWYWx1ZUZvclBhcmFtZXRlcihOU0FjY2Vzc2liaWxp
dHlBdHRyaWJ1dGVkU3RyaW5nRm9yUmFuZ2VQYXJhbWV0ZXJpemVkQXR0cmlidXRlLCBbTlNWYWx1
ZSB2YWx1ZVdpdGhSYW5nZTpyYW5nZV0pOwogICAgIGlmICghW3N0cmluZyBpc0tpbmRPZkNsYXNz
OltOU0F0dHJpYnV0ZWRTdHJpbmcgY2xhc3NdXSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgCisKICAgICBOU1N0cmluZyogc3RyaW5nV2l0aEF0dHJzID0gW3N0cmluZyBkZXNjcmlwdGlv
bl07CiAgICAgcmV0dXJuIFtzdHJpbmdXaXRoQXR0cnMgY3JlYXRlSlNTdHJpbmdSZWZdOwogICAg
IEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICAKKwogICAgIHJldHVybiBudWxscHRyOwogfQog
CkBAIC0xMjExLDcgKzEyMjQsNyBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJp
YnV0ZWRTdHJpbmdSYW5nZUlzTWlzc3BlbGxlZCh1bnNpZ25lZCBsb2NhdGlvbgogewogICAgIE5T
UmFuZ2UgcmFuZ2UgPSBOU01ha2VSYW5nZShsb2NhdGlvbiwgbGVuZ3RoKTsKICAgICBCRUdJTl9B
WF9PQkpDX0VYQ0VQVElPTlMKLSAgICBOU0F0dHJpYnV0ZWRTdHJpbmcqIHN0cmluZyA9IFttX2Vs
ZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOk5TQWNjZXNzaWJpbGl0eUF0dHJpYnV0
ZWRTdHJpbmdGb3JSYW5nZVBhcmFtZXRlcml6ZWRBdHRyaWJ1dGUgZm9yUGFyYW1ldGVyOltOU1Zh
bHVlIHZhbHVlV2l0aFJhbmdlOnJhbmdlXV07CisgICAgYXV0byBzdHJpbmcgPSBhdHRyaWJ1dGVW
YWx1ZUZvclBhcmFtZXRlcihOU0FjY2Vzc2liaWxpdHlBdHRyaWJ1dGVkU3RyaW5nRm9yUmFuZ2VQ
YXJhbWV0ZXJpemVkQXR0cmlidXRlLCBbTlNWYWx1ZSB2YWx1ZVdpdGhSYW5nZTpyYW5nZV0pOwog
ICAgIGlmICghW3N0cmluZyBpc0tpbmRPZkNsYXNzOltOU0F0dHJpYnV0ZWRTdHJpbmcgY2xhc3Nd
XSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCkBAIC0xMjIzLDcgKzEyMzYsNyBAQCBib29sIEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmF0dHJpYnV0ZWRTdHJpbmdSYW5nZUlzTWlzc3BlbGxlZCh1
bnNpZ25lZCBsb2NhdGlvbgogI2VuZGlmCiAgICAgcmV0dXJuIG1pc3NwZWxsZWQ7CiAgICAgRU5E
X0FYX09CSkNfRVhDRVBUSU9OUwotICAgIAorCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCkBAIC0x
MjMxLDcgKzEyNDQsNyBAQCB1bnNpZ25lZCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp1aUVsZW1l
bnRDb3VudEZvclNlYXJjaFByZWRpY2F0ZShKU0NvbnRleHRSZWYgYwogewogICAgIEJFR0lOX0FY
X09CSkNfRVhDRVBUSU9OUwogICAgIE5TRGljdGlvbmFyeSAqcGFyYW1ldGVyaXplZEF0dHJpYnV0
ZSA9IHNlYXJjaFByZWRpY2F0ZVBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVGb3JTZWFyY2hDcml0ZXJp
YShjb250ZXh0LCBzdGFydEVsZW1lbnQsIGlzRGlyZWN0aW9uTmV4dCwgVUlOVF9NQVgsIHNlYXJj
aEtleSwgc2VhcmNoVGV4dCwgdmlzaWJsZU9ubHksIGltbWVkaWF0ZURlc2NlbmRhbnRzT25seSk7
Ci0gICAgaWQgdmFsdWUgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpA
IkFYVUlFbGVtZW50Q291bnRGb3JTZWFyY2hQcmVkaWNhdGUiIGZvclBhcmFtZXRlcjpwYXJhbWV0
ZXJpemVkQXR0cmlidXRlXTsKKyAgICBhdXRvIHZhbHVlID0gYXR0cmlidXRlVmFsdWVGb3JQYXJh
bWV0ZXIoQCJBWFVJRWxlbWVudENvdW50Rm9yU2VhcmNoUHJlZGljYXRlIiwgcGFyYW1ldGVyaXpl
ZEF0dHJpYnV0ZSk7CiAgICAgaWYgKFt2YWx1ZSBpc0tpbmRPZkNsYXNzOltOU051bWJlciBjbGFz
c11dKQogICAgICAgICByZXR1cm4gW3ZhbHVlIHVuc2lnbmVkSW50VmFsdWVdOwogICAgIEVORF9B
WF9PQkpDX0VYQ0VQVElPTlMKQEAgLTEyNDMsMTMgKzEyNTYsMTMgQEAgUmVmUHRyPEFjY2Vzc2li
aWxpdHlVSUVsZW1lbnQ+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnVpRWxlbWVudEZvclNlYXJj
aFByZWRpY2EKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKICAgICBOU0RpY3Rpb25h
cnkgKnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGUgPSBzZWFyY2hQcmVkaWNhdGVQYXJhbWV0ZXJpemVk
QXR0cmlidXRlRm9yU2VhcmNoQ3JpdGVyaWEoY29udGV4dCwgc3RhcnRFbGVtZW50LCBpc0RpcmVj
dGlvbk5leHQsIDEsIHNlYXJjaEtleSwgc2VhcmNoVGV4dCwgdmlzaWJsZU9ubHksIGltbWVkaWF0
ZURlc2NlbmRhbnRzT25seSk7Ci0gICAgaWQgc2VhcmNoUmVzdWx0cyA9IFttX2VsZW1lbnQgYWNj
ZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhVSUVsZW1lbnRzRm9yU2VhcmNoUHJlZGljYXRl
IiBmb3JQYXJhbWV0ZXI6cGFyYW1ldGVyaXplZEF0dHJpYnV0ZV07CisgICAgYXV0byBzZWFyY2hS
ZXN1bHRzID0gYXR0cmlidXRlVmFsdWVGb3JQYXJhbWV0ZXIoQCJBWFVJRWxlbWVudHNGb3JTZWFy
Y2hQcmVkaWNhdGUiLCBwYXJhbWV0ZXJpemVkQXR0cmlidXRlKTsKICAgICBpZiAoW3NlYXJjaFJl
c3VsdHMgaXNLaW5kT2ZDbGFzczpbTlNBcnJheSBjbGFzc11dKSB7CiAgICAgICAgIGlmIChpZCBs
YXN0UmVzdWx0ID0gW3NlYXJjaFJlc3VsdHMgbGFzdE9iamVjdF0pCiAgICAgICAgICAgICByZXR1
cm4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y3JlYXRlKGxhc3RSZXN1bHQpOwogICAgIH0KICAg
ICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCi0gICAgCisKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
IApAQCAtMTI1NywxMSArMTI3MCw4IEBAIEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3Np
YmlsaXR5VUlFbGVtZW50OjpzZWxlY3RUZXh0V2l0aENyaXRlcmlhKEpTQ29udGV4CiB7CiAgICAg
QkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCiAgICAgTlNEaWN0aW9uYXJ5ICpwYXJhbWV0ZXJpemVk
QXR0cmlidXRlID0gc2VsZWN0VGV4dFBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVGb3JDcml0ZXJpYShj
b250ZXh0LCBhbWJpZ3VpdHlSZXNvbHV0aW9uLCBzZWFyY2hTdHJpbmdzLCByZXBsYWNlbWVudFN0
cmluZywgYWN0aXZpdHkpOwotICAgIFJldGFpblB0cjxpZD4gcmVzdWx0OwotICAgIHNfY29udHJv
bGxlci0+ZXhlY3V0ZU9uQVhUaHJlYWRBbmRXYWl0KFsmcGFyYW1ldGVyaXplZEF0dHJpYnV0ZSwg
JnJlc3VsdCwgdGhpc10gewotICAgICAgICByZXN1bHQgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxp
dHlBdHRyaWJ1dGVWYWx1ZTpAIkFYU2VsZWN0VGV4dFdpdGhDcml0ZXJpYSIgZm9yUGFyYW1ldGVy
OnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVdOwotICAgIH0pOwotICAgIGlmIChbcmVzdWx0LmdldCgp
IGlzS2luZE9mQ2xhc3M6W05TU3RyaW5nIGNsYXNzXV0pCisgICAgYXV0byByZXN1bHQgPSBhdHRy
aWJ1dGVWYWx1ZUZvclBhcmFtZXRlcihAIkFYU2VsZWN0VGV4dFdpdGhDcml0ZXJpYSIsIHBhcmFt
ZXRlcml6ZWRBdHRyaWJ1dGUpOworICAgIGlmIChbcmVzdWx0IGlzS2luZE9mQ2xhc3M6W05TU3Ry
aW5nIGNsYXNzXV0pCiAgICAgICAgIHJldHVybiBbcmVzdWx0LmdldCgpIGNyZWF0ZUpTU3RyaW5n
UmVmXTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiAKQEAgLTEyNzMsOSArMTI4Myw5IEBA
IEpTVmFsdWVSZWYgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c2VhcmNoVGV4dFdpdGhDcml0ZXJp
YShKU0NvbnRleHRSZWYgY29udGV4dCwKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMK
ICAgICBOU0RpY3Rpb25hcnkgKnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGUgPSBzZWFyY2hUZXh0UGFy
YW1ldGVyaXplZEF0dHJpYnV0ZUZvckNyaXRlcmlhKGNvbnRleHQsIHNlYXJjaFN0cmluZ3MsIHN0
YXJ0RnJvbSwgZGlyZWN0aW9uKTsKLSAgICBpZCByZXN1bHQgPSBbbV9lbGVtZW50IGFjY2Vzc2li
aWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYU2VhcmNoVGV4dFdpdGhDcml0ZXJpYSIgZm9yUGFyYW1l
dGVyOnBhcmFtZXRlcml6ZWRBdHRyaWJ1dGVdOworICAgIGF1dG8gcmVzdWx0ID0gYXR0cmlidXRl
VmFsdWVGb3JQYXJhbWV0ZXIoQCJBWFNlYXJjaFRleHRXaXRoQ3JpdGVyaWEiLCBwYXJhbWV0ZXJp
emVkQXR0cmlidXRlKTsKICAgICBpZiAoW3Jlc3VsdCBpc0tpbmRPZkNsYXNzOltOU0FycmF5IGNs
YXNzXV0pCi0gICAgICAgIHJldHVybiBtYWtlSlNBcnJheShtYWtlVmVjdG9yPFJlZlB0cjxBY2Nl
c3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPj4ocmVzdWx0KSk7CisgICAgICAgIHJldHVybiBtYWtl
SlNBcnJheShtYWtlVmVjdG9yPFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPj4o
cmVzdWx0LmdldCgpKSk7CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogCiAgICAgcmV0dXJu
IG51bGxwdHI7CkBAIC0xNDE0LDggKzE0MjQsOCBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxl
bWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6Y2VsbEZvckNvbHVtbkFuZFJvdyh1bnNpZwog
ewogICAgIE5TQXJyYXkgKmNvbFJvd0FycmF5ID0gQFtAKGNvbCksIEAocm93KV07CiAgICAgQkVH
SU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgaWYgKGlkIGNlbGwgPSBbbV9lbGVtZW50IGFjY2Vz
c2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYQ2VsbEZvckNvbHVtbkFuZFJvdyIgZm9yUGFyYW1l
dGVyOmNvbFJvd0FycmF5XSkKLSAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6
OmNyZWF0ZShjZWxsKTsKKyAgICBpZiAoYXV0byBjZWxsID0gYXR0cmlidXRlVmFsdWVGb3JQYXJh
bWV0ZXIoQCJBWENlbGxGb3JDb2x1bW5BbmRSb3ciLCBjb2xSb3dBcnJheSkpCisgICAgICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUoY2VsbC5nZXQoKSk7CiAgICAgRU5E
X0FYX09CSkNfRVhDRVBUSU9OUyAgICAKIAogICAgIHJldHVybiBudWxscHRyOwpAQCAtMTg1MCwx
MCArMTg2MCwxMCBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNz
aWJpbGl0eVVJRWxlbWVudDo6bGluZVRleHRNYXJrZXJSYW5nZQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIGlkIHRleHRNYXJrZXJS
YW5nZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhMaW5lVGV4
dE1hcmtlclJhbmdlRm9yVGV4dE1hcmtlciIgZm9yUGFyYW1ldGVyOnRleHRNYXJrZXItPnBsYXRm
b3JtVGV4dE1hcmtlcigpXTsKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5n
ZTo6Y3JlYXRlKHRleHRNYXJrZXJSYW5nZSk7CisgICAgYXV0byB0ZXh0TWFya2VyUmFuZ2UgPSBh
dHRyaWJ1dGVWYWx1ZUZvclBhcmFtZXRlcihAIkFYTGluZVRleHRNYXJrZXJSYW5nZUZvclRleHRN
YXJrZXIiLCB0ZXh0TWFya2VyLT5wbGF0Zm9ybVRleHRNYXJrZXIoKSk7CisgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U6OmNyZWF0ZSh0ZXh0TWFya2VyUmFuZ2UuZ2V0KCkp
OwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICAKKwogICAgIHJldHVybiBudWxscHRy
OwogfQogCkBAIC0xODYzLDcgKzE4NzMsNyBAQCBpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
bGluZUluZGV4Rm9yVGV4dE1hcmtlcihBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlciogbWFyawogICAg
ICAgICByZXR1cm4gLTE7CiAKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICByZXR1
cm4gW1ttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhMaW5lRm9yVGV4
dE1hcmtlciIgZm9yUGFyYW1ldGVyOm1hcmtlci0+cGxhdGZvcm1UZXh0TWFya2VyKCldIGludFZh
bHVlXTsKKyAgICByZXR1cm4gW2F0dHJpYnV0ZVZhbHVlRm9yUGFyYW1ldGVyKEAiQVhMaW5lRm9y
VGV4dE1hcmtlciIsIG1hcmtlci0+cGxhdGZvcm1UZXh0TWFya2VyKCkpIGludFZhbHVlXTsKICAg
ICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCiAKICAgICByZXR1cm4gLTE7CkBAIC0xODczLDggKzE4
ODMsOCBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6bWlzc3BlbGxpbmdUZXh0TWFyawogewogICAgIEJFR0lOX0FYX09CSkNfRVhD
RVBUSU9OUwogICAgIE5TRGljdGlvbmFyeSAqcGFyYW1ldGVycyA9IG1pc3NwZWxsaW5nU2VhcmNo
UGFyYW1ldGVyaXplZEF0dHJpYnV0ZUZvckNyaXRlcmlhKHN0YXJ0LCBmb3J3YXJkKTsKLSAgICBp
ZCB0ZXh0TWFya2VyUmFuZ2UgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1
ZTpAIkFYTWlzc3BlbGxpbmdUZXh0TWFya2VyUmFuZ2UiIGZvclBhcmFtZXRlcjpwYXJhbWV0ZXJz
XTsKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZTo6Y3JlYXRlKHRleHRN
YXJrZXJSYW5nZSk7CisgICAgYXV0byB0ZXh0TWFya2VyUmFuZ2UgPSBhdHRyaWJ1dGVWYWx1ZUZv
clBhcmFtZXRlcihAIkFYTWlzc3BlbGxpbmdUZXh0TWFya2VyUmFuZ2UiLCBwYXJhbWV0ZXJzKTsK
KyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZTo6Y3JlYXRlKHRleHRNYXJr
ZXJSYW5nZS5nZXQoKSk7CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogCiAgICAgcmV0dXJu
IG51bGxwdHI7CkBAIC0xODgzLDEwICsxODkzLDEwIEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4
dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjptaXNzcGVsbGluZ1RleHRNYXJr
CiBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6dGV4dE1hcmtlclJhbmdlRm9yRWxlbWVudChBY2Nlc3NpYmlsaXR5VUlFbGVtZW50KiBl
bGVtZW50KQogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIGlkIHRleHRNYXJr
ZXJSYW5nZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhUZXh0
TWFya2VyUmFuZ2VGb3JVSUVsZW1lbnQiIGZvclBhcmFtZXRlcjplbGVtZW50LT5wbGF0Zm9ybVVJ
RWxlbWVudCgpXTsKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZTo6Y3Jl
YXRlKHRleHRNYXJrZXJSYW5nZSk7CisgICAgYXV0byB0ZXh0TWFya2VyUmFuZ2UgPSBhdHRyaWJ1
dGVWYWx1ZUZvclBhcmFtZXRlcihAIkFYVGV4dE1hcmtlclJhbmdlRm9yVUlFbGVtZW50IiwgZWxl
bWVudC0+cGxhdGZvcm1VSUVsZW1lbnQoKSk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VyUmFuZ2U6OmNyZWF0ZSh0ZXh0TWFya2VyUmFuZ2UuZ2V0KCkpOwogICAgIEVORF9BWF9P
QkpDX0VYQ0VQVElPTlMKLSAgICAKKwogICAgIHJldHVybiBudWxscHRyOwogfQogCkBAIC0xODk2
LDEwICsxOTA2LDEwIEBAIGludCBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFu
Z2VMZW5ndGgoQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZSoKICAgICAgICAgcmV0dXJuIDA7
CiAKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBOU051bWJlciogbGVuZ3RoVmFs
dWUgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYTGVuZ3RoRm9y
VGV4dE1hcmtlclJhbmdlIiBmb3JQYXJhbWV0ZXI6cmFuZ2UtPnBsYXRmb3JtVGV4dE1hcmtlclJh
bmdlKCldOworICAgIGF1dG8gbGVuZ3RoVmFsdWUgPSBhdHRyaWJ1dGVWYWx1ZUZvclBhcmFtZXRl
cihAIkFYTGVuZ3RoRm9yVGV4dE1hcmtlclJhbmdlIiwgcmFuZ2UtPnBsYXRmb3JtVGV4dE1hcmtl
clJhbmdlKCkpOwogICAgIHJldHVybiBbbGVuZ3RoVmFsdWUgaW50VmFsdWVdOwogICAgIEVORF9B
WF9PQkpDX0VYQ0VQVElPTlMKLSAgICAKKwogICAgIHJldHVybiAwOwogfQogCkBAIC0xOTA5LDEw
ICsxOTE5LDEwIEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0
eVVJRWxlbWVudDo6cHJldmlvdXNUZXh0TWFya2VyKEFjY2VzCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgaWQgcHJldmlvdXNNYXJr
ZXIgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYUHJldmlvdXNU
ZXh0TWFya2VyRm9yVGV4dE1hcmtlciIgZm9yUGFyYW1ldGVyOnRleHRNYXJrZXItPnBsYXRmb3Jt
VGV4dE1hcmtlcigpXTsKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXI6OmNyZWF0
ZShwcmV2aW91c01hcmtlcik7CisgICAgYXV0byBwcmV2aW91c01hcmtlciA9IGF0dHJpYnV0ZVZh
bHVlRm9yUGFyYW1ldGVyKEAiQVhQcmV2aW91c1RleHRNYXJrZXJGb3JUZXh0TWFya2VyIiwgdGV4
dE1hcmtlci0+cGxhdGZvcm1UZXh0TWFya2VyKCkpOworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5
VGV4dE1hcmtlcjo6Y3JlYXRlKHByZXZpb3VzTWFya2VyLmdldCgpKTsKICAgICBFTkRfQVhfT0JK
Q19FWENFUFRJT05TCi0gICAgCisKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIApAQCAtMTkyMiwx
MCArMTkzMiwxMCBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6Om5leHRUZXh0TWFya2VyKEFjY2Vzc2liaQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIGlkIG5leHRNYXJrZXIg
PSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYTmV4dFRleHRNYXJr
ZXJGb3JUZXh0TWFya2VyIiBmb3JQYXJhbWV0ZXI6dGV4dE1hcmtlci0+cGxhdGZvcm1UZXh0TWFy
a2VyKCldOwotICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcjo6Y3JlYXRlKG5leHRN
YXJrZXIpOworICAgIGF1dG8gbmV4dE1hcmtlciA9IGF0dHJpYnV0ZVZhbHVlRm9yUGFyYW1ldGVy
KEAiQVhOZXh0VGV4dE1hcmtlckZvclRleHRNYXJrZXIiLCB0ZXh0TWFya2VyLT5wbGF0Zm9ybVRl
eHRNYXJrZXIoKSk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyOjpjcmVhdGUo
bmV4dE1hcmtlci5nZXQoKSk7CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIAorCiAg
ICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKQEAgLTE5MzUsMTAgKzE5NDUsMTAgQEAgSlNSZXRhaW5Q
dHI8SlNTdHJpbmdSZWY+IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnN0cmluZ0ZvclRleHRNYXJr
ZXJSYW5nZShBY2Nlc3MKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICBCRUdJTl9BWF9P
QkpDX0VYQ0VQVElPTlMKLSAgICBpZCB0ZXh0U3RyaW5nID0gW21fZWxlbWVudCBhY2Nlc3NpYmls
aXR5QXR0cmlidXRlVmFsdWU6QCJBWFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZSIgZm9yUGFyYW1l
dGVyOm1hcmtlclJhbmdlLT5wbGF0Zm9ybVRleHRNYXJrZXJSYW5nZSgpXTsKKyAgICBhdXRvIHRl
eHRTdHJpbmcgPSBhdHRyaWJ1dGVWYWx1ZUZvclBhcmFtZXRlcihAIkFYU3RyaW5nRm9yVGV4dE1h
cmtlclJhbmdlIiwgbWFya2VyUmFuZ2UtPnBsYXRmb3JtVGV4dE1hcmtlclJhbmdlKCkpOwogICAg
IHJldHVybiBbdGV4dFN0cmluZyBjcmVhdGVKU1N0cmluZ1JlZl07CiAgICAgRU5EX0FYX09CSkNf
RVhDRVBUSU9OUwotICAgIAorCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKQEAgLTE5NTIsOCAr
MTk2Miw4IEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nlc3NpYmls
aXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyUmFuZ2VGb3JNCiB7CiAgICAgQkVHSU5fQVhfT0JKQ19F
WENFUFRJT05TCiAgICAgTlNBcnJheSAqdGV4dE1hcmtlcnMgPSBAW3N0YXJ0TWFya2VyLT5wbGF0
Zm9ybVRleHRNYXJrZXIoKSwgZW5kTWFya2VyLT5wbGF0Zm9ybVRleHRNYXJrZXIoKV07Ci0gICAg
aWQgdGV4dE1hcmtlclJhbmdlID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFs
dWU6QCJBWFRleHRNYXJrZXJSYW5nZUZvclRleHRNYXJrZXJzIiBmb3JQYXJhbWV0ZXI6dGV4dE1h
cmtlcnNdOwotICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlOjpjcmVhdGUo
dGV4dE1hcmtlclJhbmdlKTsKKyAgICBhdXRvIHRleHRNYXJrZXJSYW5nZSA9IGF0dHJpYnV0ZVZh
bHVlRm9yUGFyYW1ldGVyKEAiQVhUZXh0TWFya2VyUmFuZ2VGb3JUZXh0TWFya2VycyIsIHRleHRN
YXJrZXJzKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXJSYW5nZTo6Y3JlYXRl
KHRleHRNYXJrZXJSYW5nZS5nZXQoKSk7CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwogCiAg
ICAgcmV0dXJuIG51bGxwdHI7CkBAIC0xOTYyLDggKzE5NzIsOCBAQCBSZWZQdHI8QWNjZXNzaWJp
bGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6dGV4dE1hcmtlclJh
bmdlRm9yTQogUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnRleHRNYXJrZXJSYW5nZUZvclJhbmdlKHVuc2lnbmVkIGxvY2F0aW9uLCB1
bnNpZ25lZCBsZW5ndGgpCiB7CiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgcmV0
dXJuIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U6OmNyZWF0ZShbbV9lbGVtZW50IGFjY2Vz
c2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYVGV4dE1hcmtlclJhbmdlRm9yTlNSYW5nZSIKLSAg
ICAgICAgZm9yUGFyYW1ldGVyOltOU1ZhbHVlIHZhbHVlV2l0aFJhbmdlOk5TTWFrZVJhbmdlKGxv
Y2F0aW9uLCBsZW5ndGgpXV0pOworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJh
bmdlOjpjcmVhdGUoYXR0cmlidXRlVmFsdWVGb3JQYXJhbWV0ZXIoQCJBWFRleHRNYXJrZXJSYW5n
ZUZvck5TUmFuZ2UiLAorICAgICAgICBbTlNWYWx1ZSB2YWx1ZVdpdGhSYW5nZTpOU01ha2VSYW5n
ZShsb2NhdGlvbiwgbGVuZ3RoKV0pLmdldCgpKTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05T
CiAKICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTE5ODYsMTEgKzE5OTYsMTEgQEAgdm9pZCBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpyZXNldFNlbGVjdGVkVGV4dE1hcmtlclJhbmdlKCkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgTlNBcnJheSAqdGV4dE1hcmtlcnMgPSBAW3N0YXJ0LmdldCgpLCBz
dGFydC5nZXQoKV07Ci0gICAgaWQgdGV4dE1hcmtlclJhbmdlID0gW21fZWxlbWVudCBhY2Nlc3Np
YmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWFRleHRNYXJrZXJSYW5nZUZvclVub3JkZXJlZFRleHRN
YXJrZXJzIiBmb3JQYXJhbWV0ZXI6dGV4dE1hcmtlcnNdOworICAgIGF1dG8gdGV4dE1hcmtlclJh
bmdlID0gYXR0cmlidXRlVmFsdWVGb3JQYXJhbWV0ZXIoQCJBWFRleHRNYXJrZXJSYW5nZUZvclVu
b3JkZXJlZFRleHRNYXJrZXJzIiwgdGV4dE1hcmtlcnMpOwogICAgIGlmICghdGV4dE1hcmtlclJh
bmdlKQogICAgICAgICByZXR1cm47CiAKLSAgICBzZXRBdHRyaWJ1dGVWYWx1ZShtX2VsZW1lbnQu
Z2V0KCksIE5TQWNjZXNzaWJpbGl0eVNlbGVjdGVkVGV4dE1hcmtlclJhbmdlQXR0cmlidXRlLCB0
ZXh0TWFya2VyUmFuZ2UsIHRydWUpOworICAgIHNldEF0dHJpYnV0ZVZhbHVlKG1fZWxlbWVudC5n
ZXQoKSwgTlNBY2Nlc3NpYmlsaXR5U2VsZWN0ZWRUZXh0TWFya2VyUmFuZ2VBdHRyaWJ1dGUsIHRl
eHRNYXJrZXJSYW5nZS5nZXQoKSwgdHJ1ZSk7CiB9CiAKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4
dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6c3RhcnRUZXh0TWFya2VyRm9yVGV4dE1h
cmtlclJhbmdlKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2UqIHJhbmdlKQpAQCAtMTk5OSwx
MCArMjAwOSwxMCBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxp
dHlVSUVsZW1lbnQ6OnN0YXJ0VGV4dE1hcmtlckZvclRleHRNYQogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKIAogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIGlkIHRleHRNYXJrZXIg
PSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYU3RhcnRUZXh0TWFy
a2VyRm9yVGV4dE1hcmtlclJhbmdlIiBmb3JQYXJhbWV0ZXI6cmFuZ2UtPnBsYXRmb3JtVGV4dE1h
cmtlclJhbmdlKCldOwotICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcjo6Y3JlYXRl
KHRleHRNYXJrZXIpOworICAgIGF1dG8gdGV4dE1hcmtlciA9IGF0dHJpYnV0ZVZhbHVlRm9yUGFy
YW1ldGVyKEAiQVhTdGFydFRleHRNYXJrZXJGb3JUZXh0TWFya2VyUmFuZ2UiLCByYW5nZS0+cGxh
dGZvcm1UZXh0TWFya2VyUmFuZ2UoKSk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUZXh0TWFy
a2VyOjpjcmVhdGUodGV4dE1hcmtlci5nZXQoKSk7CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9O
UwotICAgIAorCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKQEAgLTIwMTIsMjAgKzIwMjIsMjEg
QEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
OjplbmRUZXh0TWFya2VyRm9yVGV4dE1hcmsKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAg
ICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCB0ZXh0TWFya2VyID0gW21fZWxlbWVu
dCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWEVuZFRleHRNYXJrZXJGb3JUZXh0TWFy
a2VyUmFuZ2UiIGZvclBhcmFtZXRlcjpyYW5nZS0+cGxhdGZvcm1UZXh0TWFya2VyUmFuZ2UoKV07
Ci0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyOjpjcmVhdGUodGV4dE1hcmtlcik7
CisgICAgYXV0byB0ZXh0TWFya2VyID0gYXR0cmlidXRlVmFsdWVGb3JQYXJhbWV0ZXIoQCJBWEVu
ZFRleHRNYXJrZXJGb3JUZXh0TWFya2VyUmFuZ2UiLCByYW5nZS0+cGxhdGZvcm1UZXh0TWFya2Vy
UmFuZ2UoKSk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyOjpjcmVhdGUodGV4
dE1hcmtlci5nZXQoKSk7CiAgICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIAorCiAgICAg
cmV0dXJuIG51bGxwdHI7CiB9CiAKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNj
ZXNzaWJpbGl0eVVJRWxlbWVudDo6ZW5kVGV4dE1hcmtlckZvckJvdW5kcyhpbnQgeCwgaW50IHks
IGludCB3aWR0aCwgaW50IGhlaWdodCkKIHsKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMK
LSAgICBpZCB0ZXh0TWFya2VyID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFs
dWU6TlNBY2Nlc3NpYmlsaXR5RW5kVGV4dE1hcmtlckZvckJvdW5kc1BhcmFtZXRlcml6ZWRBdHRy
aWJ1dGUgZm9yUGFyYW1ldGVyOltOU1ZhbHVlIHZhbHVlV2l0aFJlY3Q6TlNNYWtlUmVjdCh4LCB5
LCB3aWR0aCwgaGVpZ2h0KV1dOwotICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcjo6
Y3JlYXRlKHRleHRNYXJrZXIpOworICAgIGF1dG8gdGV4dE1hcmtlciA9IGF0dHJpYnV0ZVZhbHVl
Rm9yUGFyYW1ldGVyKE5TQWNjZXNzaWJpbGl0eUVuZFRleHRNYXJrZXJGb3JCb3VuZHNQYXJhbWV0
ZXJpemVkQXR0cmlidXRlLAorICAgICAgICBbTlNWYWx1ZSB2YWx1ZVdpdGhSZWN0Ok5TTWFrZVJl
Y3QoeCwgeSwgd2lkdGgsIGhlaWdodCldKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRN
YXJrZXI6OmNyZWF0ZSh0ZXh0TWFya2VyLmdldCgpKTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJ
T05TCi0gICAgCisKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIApAQCAtMjA1MywyMCArMjA2NCwy
MSBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Omluc2VydFRleHQoSlNTdHJpbmdSZWYg
dGV4dCkKIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6c3RhcnRUZXh0TWFya2VyRm9yQm91bmRzKGludCB4LCBpbnQgeSwgaW50IHdpZHRoLCBp
bnQgaGVpZ2h0KQogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIGlkIHRleHRN
YXJrZXIgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpOU0FjY2Vzc2li
aWxpdHlTdGFydFRleHRNYXJrZXJGb3JCb3VuZHNQYXJhbWV0ZXJpemVkQXR0cmlidXRlIGZvclBh
cmFtZXRlcjpbTlNWYWx1ZSB2YWx1ZVdpdGhSZWN0Ok5TTWFrZVJlY3QoeCwgeSwgd2lkdGgsIGhl
aWdodCldXTsKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXI6OmNyZWF0ZSh0ZXh0
TWFya2VyKTsKKyAgICBhdXRvIHRleHRNYXJrZXIgPSBhdHRyaWJ1dGVWYWx1ZUZvclBhcmFtZXRl
cihOU0FjY2Vzc2liaWxpdHlTdGFydFRleHRNYXJrZXJGb3JCb3VuZHNQYXJhbWV0ZXJpemVkQXR0
cmlidXRlLAorICAgICAgICBbTlNWYWx1ZSB2YWx1ZVdpdGhSZWN0Ok5TTWFrZVJlY3QoeCwgeSwg
d2lkdGgsIGhlaWdodCldKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXI6OmNy
ZWF0ZSh0ZXh0TWFya2VyLmdldCgpKTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCi0gICAg
CisKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIAogUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFy
a2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50Ojp0ZXh0TWFya2VyRm9yUG9pbnQoaW50IHgsIGlu
dCB5KQogewogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIGlkIHRleHRNYXJrZXIg
PSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYVGV4dE1hcmtlckZv
clBvc2l0aW9uIiBmb3JQYXJhbWV0ZXI6W05TVmFsdWUgdmFsdWVXaXRoUG9pbnQ6TlNNYWtlUG9p
bnQoeCwgeSldXTsKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXI6OmNyZWF0ZSh0
ZXh0TWFya2VyKTsKKyAgICBhdXRvIHRleHRNYXJrZXIgPSBhdHRyaWJ1dGVWYWx1ZUZvclBhcmFt
ZXRlcihAIkFYVGV4dE1hcmtlckZvclBvc2l0aW9uIiwgW05TVmFsdWUgdmFsdWVXaXRoUG9pbnQ6
TlNNYWtlUG9pbnQoeCwgeSldKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXI6
OmNyZWF0ZSh0ZXh0TWFya2VyLmdldCgpKTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCi0g
ICAgCisKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIApAQCAtMjA3NiwxMSArMjA4OCwxMSBAQCBS
ZWZQdHI8QWNjZXNzaWJpbGl0eVVJRWxlbWVudD4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YWNj
ZXNzaWJpbGl0eUVsZW1lbnRGb3JUZQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIEJF
R0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIGlkIHVpRWxlbWVudCA9IFttX2VsZW1lbnQgYWNj
ZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhVSUVsZW1lbnRGb3JUZXh0TWFya2VyIiBmb3JQ
YXJhbWV0ZXI6bWFya2VyLT5wbGF0Zm9ybVRleHRNYXJrZXIoKV07CisgICAgYXV0byB1aUVsZW1l
bnQgPSBhdHRyaWJ1dGVWYWx1ZUZvclBhcmFtZXRlcihAIkFYVUlFbGVtZW50Rm9yVGV4dE1hcmtl
ciIsIG1hcmtlci0+cGxhdGZvcm1UZXh0TWFya2VyKCkpOwogICAgIGlmICh1aUVsZW1lbnQpCi0g
ICAgICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpjcmVhdGUodWlFbGVtZW50KTsK
KyAgICAgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmNyZWF0ZSh1aUVsZW1lbnQu
Z2V0KCkpOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICAKKwogICAgIHJldHVybiBu
dWxscHRyOwogfQogCkBAIC0yMTA4LDE2ICsyMTIwLDEzIEBAIEpTUmV0YWluUHRyPEpTU3RyaW5n
UmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtl
clJhCiAgICAgaWYgKCFtYXJrZXJSYW5nZSkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAg
ICBOU0F0dHJpYnV0ZWRTdHJpbmcqIHN0cmluZyA9IG5pbDsKLQogICAgIEJFR0lOX0FYX09CSkNf
RVhDRVBUSU9OUwotICAgIHN0cmluZyA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0
ZVZhbHVlOkAiQVhBdHRyaWJ1dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlIiBmb3JQYXJhbWV0
ZXI6bWFya2VyUmFuZ2UtPnBsYXRmb3JtVGV4dE1hcmtlclJhbmdlKCldOworICAgIGF1dG8gc3Ry
aW5nID0gYXR0cmlidXRlVmFsdWVGb3JQYXJhbWV0ZXIoQCJBWEF0dHJpYnV0ZWRTdHJpbmdGb3JU
ZXh0TWFya2VyUmFuZ2UiLCBtYXJrZXJSYW5nZS0+cGxhdGZvcm1UZXh0TWFya2VyUmFuZ2UoKSk7
CisgICAgaWYgKFtzdHJpbmcgaXNLaW5kT2ZDbGFzczpbTlNBdHRyaWJ1dGVkU3RyaW5nIGNsYXNz
XV0pCisgICAgICAgIHJldHVybiBjcmVhdGVKU1N0cmluZ1JlZihzdHJpbmcuZ2V0KCkpOwogICAg
IEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKIAotICAgIGlmICghW3N0cmluZyBpc0tpbmRPZkNsYXNz
OltOU0F0dHJpYnV0ZWRTdHJpbmcgY2xhc3NdXSkKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAg
IHJldHVybiBjcmVhdGVKU1N0cmluZ1JlZihzdHJpbmcpOworICAgIHJldHVybiBuaWw7CiB9CiAK
IEpTUmV0YWluUHRyPEpTU3RyaW5nUmVmPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjphdHRyaWJ1
dGVkU3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlV2l0aE9wdGlvbnMoQWNjZXNzaWJpbGl0eVRleHRN
YXJrZXJSYW5nZSogbWFya2VyUmFuZ2UsIGJvb2wgaW5jbHVkZVNwZWxsQ2hlY2spCkBAIC0yMTI1
LDggKzIxMzQsNiBAQCBKU1JldGFpblB0cjxKU1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6YXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYQogICAgIGlmICghbWFya2VyUmFu
Z2UgfHwgIW1hcmtlclJhbmdlLT5wbGF0Zm9ybVRleHRNYXJrZXJSYW5nZSgpKQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAotICAgIE5TQXR0cmlidXRlZFN0cmluZyogc3RyaW5nID0gbmlsOwot
CiAgICAgaWQgcGFyYW1ldGVyID0gbmlsOwogICAgIGlmIChpbmNsdWRlU3BlbGxDaGVjaykKICAg
ICAgICAgcGFyYW1ldGVyID0gQHsgQCJBWFNwZWxsQ2hlY2siOiBpbmNsdWRlU3BlbGxDaGVjayA/
IEBZRVMgOiBATk8sIEAiQVhUZXh0TWFya2VyUmFuZ2UiOiBtYXJrZXJSYW5nZS0+cGxhdGZvcm1U
ZXh0TWFya2VyUmFuZ2UoKSB9OwpAQCAtMjEzNCwxMyArMjE0MSwxMiBAQCBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmluZ0ZvclRl
eHRNYXJrZXJSYQogICAgICAgICBwYXJhbWV0ZXIgPSBtYXJrZXJSYW5nZS0+cGxhdGZvcm1UZXh0
TWFya2VyUmFuZ2UoKTsKIAogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIHN0cmlu
ZyA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhBdHRyaWJ1dGVk
U3RyaW5nRm9yVGV4dE1hcmtlclJhbmdlV2l0aE9wdGlvbnMiIGZvclBhcmFtZXRlcjpwYXJhbWV0
ZXJdOworICAgIGF1dG8gc3RyaW5nID0gYXR0cmlidXRlVmFsdWVGb3JQYXJhbWV0ZXIoQCJBWEF0
dHJpYnV0ZWRTdHJpbmdGb3JUZXh0TWFya2VyUmFuZ2VXaXRoT3B0aW9ucyIsIHBhcmFtZXRlcik7
CisgICAgaWYgKFtzdHJpbmcgaXNLaW5kT2ZDbGFzczpbTlNBdHRyaWJ1dGVkU3RyaW5nIGNsYXNz
XV0pCisgICAgICAgIHJldHVybiBjcmVhdGVKU1N0cmluZ1JlZihzdHJpbmcuZ2V0KCkpOwogICAg
IEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKIAotICAgIGlmICghW3N0cmluZyBpc0tpbmRPZkNsYXNz
OltOU0F0dHJpYnV0ZWRTdHJpbmcgY2xhc3NdXSkKLSAgICAgICAgcmV0dXJuIG5pbDsKLQotICAg
IHJldHVybiBjcmVhdGVKU1N0cmluZ1JlZihzdHJpbmcpOworICAgIHJldHVybiBuaWw7CiB9CiAK
IGJvb2wgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJr
ZXJSYW5nZUNvbnRhaW5zQXR0cmlidXRlKEpTU3RyaW5nUmVmIGF0dHJpYnV0ZSwgQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXJSYW5nZSogcmFuZ2UpCkBAIC0yMTQ5LDE1ICsyMTU1LDE1IEBAIGJvb2wg
QWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6YXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5n
ZUNvbnRhaW5zQXR0cmlidXRlCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgIEJFR0lOX0FY
X09CSkNfRVhDRVBUSU9OUwotICAgIE5TQXR0cmlidXRlZFN0cmluZyogc3RyaW5nID0gW21fZWxl
bWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWEF0dHJpYnV0ZWRTdHJpbmdGb3JU
ZXh0TWFya2VyUmFuZ2UiIGZvclBhcmFtZXRlcjpyYW5nZS0+cGxhdGZvcm1UZXh0TWFya2VyUmFu
Z2UoKV07CisgICAgYXV0byBzdHJpbmcgPSBhdHRyaWJ1dGVWYWx1ZUZvclBhcmFtZXRlcihAIkFY
QXR0cmlidXRlZFN0cmluZ0ZvclRleHRNYXJrZXJSYW5nZSIsIHJhbmdlLT5wbGF0Zm9ybVRleHRN
YXJrZXJSYW5nZSgpKTsKICAgICBpZiAoIVtzdHJpbmcgaXNLaW5kT2ZDbGFzczpbTlNBdHRyaWJ1
dGVkU3RyaW5nIGNsYXNzXV0pCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAKKwogICAgIE5T
RGljdGlvbmFyeSogYXR0cnMgPSBbc3RyaW5nIGF0dHJpYnV0ZXNBdEluZGV4OjAgZWZmZWN0aXZl
UmFuZ2U6bmlsXTsKICAgICBpZiAoW2F0dHJzIG9iamVjdEZvcktleTpbTlNTdHJpbmcgc3RyaW5n
V2l0aEpTU3RyaW5nUmVmOmF0dHJpYnV0ZV1dKQogICAgICAgICByZXR1cm4gdHJ1ZTsgICAgCiAg
ICAgRU5EX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIAorCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
ICAgIApAQCAtMjE2NywxMCArMjE3MywxMCBAQCBpbnQgQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6
aW5kZXhGb3JUZXh0TWFya2VyKEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyKiBtYXJrZXIpCiAgICAg
ICAgIHJldHVybiAtMTsKIAogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIE5TTnVt
YmVyKiBpbmRleE51bWJlciA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVl
OkAiQVhJbmRleEZvclRleHRNYXJrZXIiIGZvclBhcmFtZXRlcjptYXJrZXItPnBsYXRmb3JtVGV4
dE1hcmtlcigpXTsKKyAgICBhdXRvIGluZGV4TnVtYmVyID0gYXR0cmlidXRlVmFsdWVGb3JQYXJh
bWV0ZXIoQCJBWEluZGV4Rm9yVGV4dE1hcmtlciIsIG1hcmtlci0+cGxhdGZvcm1UZXh0TWFya2Vy
KCkpOwogICAgIHJldHVybiBbaW5kZXhOdW1iZXIgaW50VmFsdWVdOwogICAgIEVORF9BWF9PQkpD
X0VYQ0VQVElPTlMKLSAgICAKKwogICAgIHJldHVybiAtMTsKIH0KIApAQCAtMjE4MCwyMCArMjE4
NiwyMCBAQCBib29sIEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6OmlzVGV4dE1hcmtlclZhbGlkKEFj
Y2Vzc2liaWxpdHlUZXh0TWFya2VyKiB0ZXh0TWFyawogICAgICAgICByZXR1cm4gZmFsc2U7CiAK
ICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBOU051bWJlciogdmFsaWROdW1iZXIg
PSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYVGV4dE1hcmtlcklz
VmFsaWQiIGZvclBhcmFtZXRlcjp0ZXh0TWFya2VyLT5wbGF0Zm9ybVRleHRNYXJrZXIoKV07Ci0g
ICAgcmV0dXJuIFt2YWxpZE51bWJlciBib29sVmFsdWVdOworICAgIGF1dG8gdmFsdWUgPSBhdHRy
aWJ1dGVWYWx1ZUZvclBhcmFtZXRlcihAIkFYVGV4dE1hcmtlcklzVmFsaWQiLCB0ZXh0TWFya2Vy
LT5wbGF0Zm9ybVRleHRNYXJrZXIoKSk7CisgICAgcmV0dXJuIFt2YWx1ZSBib29sVmFsdWVdOwog
ICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICAKKwogICAgIHJldHVybiBmYWxzZTsKIH0K
IAogUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50
Ojp0ZXh0TWFya2VyRm9ySW5kZXgoaW50IHRleHRJbmRleCkKIHsKICAgICBCRUdJTl9BWF9PQkpD
X0VYQ0VQVElPTlMKLSAgICBpZCB0ZXh0TWFya2VyID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5
QXR0cmlidXRlVmFsdWU6QCJBWFRleHRNYXJrZXJGb3JJbmRleCIgZm9yUGFyYW1ldGVyOltOU051
bWJlciBudW1iZXJXaXRoSW50ZWdlcjp0ZXh0SW5kZXhdXTsKLSAgICByZXR1cm4gQWNjZXNzaWJp
bGl0eVRleHRNYXJrZXI6OmNyZWF0ZSh0ZXh0TWFya2VyKTsKKyAgICBhdXRvIHRleHRNYXJrZXIg
PSBhdHRyaWJ1dGVWYWx1ZUZvclBhcmFtZXRlcihAIkFYVGV4dE1hcmtlckZvckluZGV4IiwgW05T
TnVtYmVyIG51bWJlcldpdGhJbnRlZ2VyOnRleHRJbmRleF0pOworICAgIHJldHVybiBBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlcjo6Y3JlYXRlKHRleHRNYXJrZXIuZ2V0KCkpOwogICAgIEVORF9BWF9P
QkpDX0VYQ0VQVElPTlMKLSAgICAKKwogICAgIHJldHVybiBudWxscHRyOwogfQogCkBAIC0yMjIz
LDEwICsyMjI5LDEwIEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlPiBBY2Nl
c3NpYmlsaXR5VUlFbGVtZW50OjpsZWZ0V29yZFRleHRNYXJrZXJSCiAgICAgICAgIHJldHVybiBu
dWxscHRyOwogCiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgaWQgdGV4dE1hcmtl
clJhbmdlID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWExlZnRX
b3JkVGV4dE1hcmtlclJhbmdlRm9yVGV4dE1hcmtlciIgZm9yUGFyYW1ldGVyOnRleHRNYXJrZXIt
PnBsYXRmb3JtVGV4dE1hcmtlcigpXTsKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRNYXJr
ZXJSYW5nZTo6Y3JlYXRlKHRleHRNYXJrZXJSYW5nZSk7CisgICAgYXV0byB0ZXh0TWFya2VyUmFu
Z2UgPSBhdHRyaWJ1dGVWYWx1ZUZvclBhcmFtZXRlcihAIkFYTGVmdFdvcmRUZXh0TWFya2VyUmFu
Z2VGb3JUZXh0TWFya2VyIiwgdGV4dE1hcmtlci0+cGxhdGZvcm1UZXh0TWFya2VyKCkpOworICAg
IHJldHVybiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlOjpjcmVhdGUodGV4dE1hcmtlclJh
bmdlLmdldCgpKTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCi0gICAgCisKICAgICByZXR1
cm4gbnVsbHB0cjsKIH0KIApAQCAtMjIzNiwxMCArMjI0MiwxMCBAQCBSZWZQdHI8QWNjZXNzaWJp
bGl0eVRleHRNYXJrZXJSYW5nZT4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cmlnaHRXb3JkVGV4
dE1hcmtlcgogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAogICAgIEJFR0lOX0FYX09CSkNfRVhD
RVBUSU9OUwotICAgIGlkIHRleHRNYXJrZXJSYW5nZSA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0
eUF0dHJpYnV0ZVZhbHVlOkAiQVhSaWdodFdvcmRUZXh0TWFya2VyUmFuZ2VGb3JUZXh0TWFya2Vy
IiBmb3JQYXJhbWV0ZXI6dGV4dE1hcmtlci0+cGxhdGZvcm1UZXh0TWFya2VyKCldOwotICAgIHJl
dHVybiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlclJhbmdlOjpjcmVhdGUodGV4dE1hcmtlclJhbmdl
KTsKKyAgICBhdXRvIHRleHRNYXJrZXJSYW5nZSA9IGF0dHJpYnV0ZVZhbHVlRm9yUGFyYW1ldGVy
KEAiQVhSaWdodFdvcmRUZXh0TWFya2VyUmFuZ2VGb3JUZXh0TWFya2VyIiwgdGV4dE1hcmtlci0+
cGxhdGZvcm1UZXh0TWFya2VyKCkpOworICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
clJhbmdlOjpjcmVhdGUodGV4dE1hcmtlclJhbmdlLmdldCgpKTsKICAgICBFTkRfQVhfT0JKQ19F
WENFUFRJT05TCi0gICAgCisKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIApAQCAtMjI0OSwxMCAr
MjI1NSwxMCBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+IEFjY2Vzc2liaWxpdHlV
SUVsZW1lbnQ6OnByZXZpb3VzV29yZFN0YXJ0VGV4dE1hcgogICAgICAgICByZXR1cm4gbnVsbHB0
cjsKIAogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIGlkIHByZXZpb3VzV29yZFN0
YXJ0TWFya2VyID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWFBy
ZXZpb3VzV29yZFN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXIiIGZvclBhcmFtZXRlcjp0ZXh0
TWFya2VyLT5wbGF0Zm9ybVRleHRNYXJrZXIoKV07Ci0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlU
ZXh0TWFya2VyOjpjcmVhdGUocHJldmlvdXNXb3JkU3RhcnRNYXJrZXIpOworICAgIGF1dG8gcHJl
dmlvdXNXb3JkU3RhcnRNYXJrZXIgPSBhdHRyaWJ1dGVWYWx1ZUZvclBhcmFtZXRlcihAIkFYUHJl
dmlvdXNXb3JkU3RhcnRUZXh0TWFya2VyRm9yVGV4dE1hcmtlciIsIHRleHRNYXJrZXItPnBsYXRm
b3JtVGV4dE1hcmtlcigpKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXI6OmNy
ZWF0ZShwcmV2aW91c1dvcmRTdGFydE1hcmtlci5nZXQoKSk7CiAgICAgRU5EX0FYX09CSkNfRVhD
RVBUSU9OUwotICAgIAorCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKQEAgLTIyNjIsMTAgKzIy
NjgsMTAgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5VUlF
bGVtZW50OjpuZXh0V29yZEVuZFRleHRNYXJrZXJGb3IKICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCBuZXh0V29yZEVuZE1hcmtl
ciA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhOZXh0V29yZEVu
ZFRleHRNYXJrZXJGb3JUZXh0TWFya2VyIiBmb3JQYXJhbWV0ZXI6dGV4dE1hcmtlci0+cGxhdGZv
cm1UZXh0TWFya2VyKCldOwotICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcjo6Y3Jl
YXRlKG5leHRXb3JkRW5kTWFya2VyKTsKKyAgICBhdXRvIG5leHRXb3JkRW5kTWFya2VyID0gYXR0
cmlidXRlVmFsdWVGb3JQYXJhbWV0ZXIoQCJBWE5leHRXb3JkRW5kVGV4dE1hcmtlckZvclRleHRN
YXJrZXIiLCB0ZXh0TWFya2VyLT5wbGF0Zm9ybVRleHRNYXJrZXIoKSk7CisgICAgcmV0dXJuIEFj
Y2Vzc2liaWxpdHlUZXh0TWFya2VyOjpjcmVhdGUobmV4dFdvcmRFbmRNYXJrZXIuZ2V0KCkpOwog
ICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICAKKwogICAgIHJldHVybiBudWxscHRyOwog
fQogCkBAIC0yMjc1LDEwICsyMjgxLDEwIEBAIFJlZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtl
clJhbmdlPiBBY2Nlc3NpYmlsaXR5VUlFbGVtZW50OjpwYXJhZ3JhcGhUZXh0TWFya2VyCiAgICAg
ICAgIHJldHVybiBudWxscHRyOwogCiAgICAgQkVHSU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAg
aWQgdGV4dE1hcmtlclJhbmdlID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFs
dWU6QCJBWFBhcmFncmFwaFRleHRNYXJrZXJSYW5nZUZvclRleHRNYXJrZXIiIGZvclBhcmFtZXRl
cjp0ZXh0TWFya2VyLT5wbGF0Zm9ybVRleHRNYXJrZXIoKV07Ci0gICAgcmV0dXJuIEFjY2Vzc2li
aWxpdHlUZXh0TWFya2VyUmFuZ2U6OmNyZWF0ZSh0ZXh0TWFya2VyUmFuZ2UpOworICAgIGF1dG8g
dGV4dE1hcmtlclJhbmdlID0gYXR0cmlidXRlVmFsdWVGb3JQYXJhbWV0ZXIoQCJBWFBhcmFncmFw
aFRleHRNYXJrZXJSYW5nZUZvclRleHRNYXJrZXIiLCB0ZXh0TWFya2VyLT5wbGF0Zm9ybVRleHRN
YXJrZXIoKSk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U6OmNyZWF0
ZSh0ZXh0TWFya2VyUmFuZ2UuZ2V0KCkpOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKLSAg
ICAKKwogICAgIHJldHVybiBudWxscHRyOwogfQogCkBAIC0yMjg4LDEwICsyMjk0LDEwIEBAIFJl
ZlB0cjxBY2Nlc3NpYmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJl
dmlvdXNQYXJhZ3JhcGhTdGFydFRlCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgQkVH
SU5fQVhfT0JKQ19FWENFUFRJT05TCi0gICAgaWQgcHJldmlvdXNQYXJhZ3JhcGhTdGFydE1hcmtl
ciA9IFttX2VsZW1lbnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhQcmV2aW91c1Bh
cmFncmFwaFN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXIiIGZvclBhcmFtZXRlcjp0ZXh0TWFy
a2VyLT5wbGF0Zm9ybVRleHRNYXJrZXIoKV07Ci0gICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VyOjpjcmVhdGUocHJldmlvdXNQYXJhZ3JhcGhTdGFydE1hcmtlcik7CisgICAgYXV0byBw
cmV2aW91c1BhcmFncmFwaFN0YXJ0TWFya2VyID0gYXR0cmlidXRlVmFsdWVGb3JQYXJhbWV0ZXIo
QCJBWFByZXZpb3VzUGFyYWdyYXBoU3RhcnRUZXh0TWFya2VyRm9yVGV4dE1hcmtlciIsIHRleHRN
YXJrZXItPnBsYXRmb3JtVGV4dE1hcmtlcigpKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRl
eHRNYXJrZXI6OmNyZWF0ZShwcmV2aW91c1BhcmFncmFwaFN0YXJ0TWFya2VyLmdldCgpKTsKICAg
ICBFTkRfQVhfT0JKQ19FWENFUFRJT05TCi0gICAgCisKICAgICByZXR1cm4gbnVsbHB0cjsKIH0K
IApAQCAtMjMwMSwxMCArMjMwNywxMCBAQCBSZWZQdHI8QWNjZXNzaWJpbGl0eVRleHRNYXJrZXI+
IEFjY2Vzc2liaWxpdHlVSUVsZW1lbnQ6Om5leHRQYXJhZ3JhcGhFbmRUZXh0TWFyawogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKIAogICAgIEJFR0lOX0FYX09CSkNfRVhDRVBUSU9OUwotICAgIGlk
IG5leHRQYXJhZ3JhcGhFbmRNYXJrZXIgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1
dGVWYWx1ZTpAIkFYTmV4dFBhcmFncmFwaEVuZFRleHRNYXJrZXJGb3JUZXh0TWFya2VyIiBmb3JQ
YXJhbWV0ZXI6dGV4dE1hcmtlci0+cGxhdGZvcm1UZXh0TWFya2VyKCldOwotICAgIHJldHVybiBB
Y2Nlc3NpYmlsaXR5VGV4dE1hcmtlcjo6Y3JlYXRlKG5leHRQYXJhZ3JhcGhFbmRNYXJrZXIpOwor
ICAgIGF1dG8gbmV4dFBhcmFncmFwaEVuZE1hcmtlciA9IGF0dHJpYnV0ZVZhbHVlRm9yUGFyYW1l
dGVyKEAiQVhOZXh0UGFyYWdyYXBoRW5kVGV4dE1hcmtlckZvclRleHRNYXJrZXIiLCB0ZXh0TWFy
a2VyLT5wbGF0Zm9ybVRleHRNYXJrZXIoKSk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUZXh0
TWFya2VyOjpjcmVhdGUobmV4dFBhcmFncmFwaEVuZE1hcmtlci5nZXQoKSk7CiAgICAgRU5EX0FY
X09CSkNfRVhDRVBUSU9OUwotICAgIAorCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKQEAgLTIz
MTQsMTAgKzIzMjAsMTAgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U+IEFj
Y2Vzc2liaWxpdHlVSUVsZW1lbnQ6OnNlbnRlbmNlVGV4dE1hcmtlclIKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCB0ZXh0TWFy
a2VyUmFuZ2UgPSBbbV9lbGVtZW50IGFjY2Vzc2liaWxpdHlBdHRyaWJ1dGVWYWx1ZTpAIkFYU2Vu
dGVuY2VUZXh0TWFya2VyUmFuZ2VGb3JUZXh0TWFya2VyIiBmb3JQYXJhbWV0ZXI6dGV4dE1hcmtl
ci0+cGxhdGZvcm1UZXh0TWFya2VyKCldOwotICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VGV4dE1h
cmtlclJhbmdlOjpjcmVhdGUodGV4dE1hcmtlclJhbmdlKTsKKyAgICBhdXRvIHRleHRNYXJrZXJS
YW5nZSA9IGF0dHJpYnV0ZVZhbHVlRm9yUGFyYW1ldGVyKEAiQVhTZW50ZW5jZVRleHRNYXJrZXJS
YW5nZUZvclRleHRNYXJrZXIiLCB0ZXh0TWFya2VyLT5wbGF0Zm9ybVRleHRNYXJrZXIoKSk7Cisg
ICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyUmFuZ2U6OmNyZWF0ZSh0ZXh0TWFya2Vy
UmFuZ2UuZ2V0KCkpOwogICAgIEVORF9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICAKKwogICAgIHJl
dHVybiBudWxscHRyOwogfQogCkBAIC0yMzI3LDEwICsyMzMzLDEwIEBAIFJlZlB0cjxBY2Nlc3Np
YmlsaXR5VGV4dE1hcmtlcj4gQWNjZXNzaWJpbGl0eVVJRWxlbWVudDo6cHJldmlvdXNTZW50ZW5j
ZVN0YXJ0VGV4CiAgICAgICAgIHJldHVybiBudWxscHRyOwogCiAgICAgQkVHSU5fQVhfT0JKQ19F
WENFUFRJT05TCi0gICAgaWQgcHJldmlvdXNQYXJhZ3JhcGhTdGFydE1hcmtlciA9IFttX2VsZW1l
bnQgYWNjZXNzaWJpbGl0eUF0dHJpYnV0ZVZhbHVlOkAiQVhQcmV2aW91c1NlbnRlbmNlU3RhcnRU
ZXh0TWFya2VyRm9yVGV4dE1hcmtlciIgZm9yUGFyYW1ldGVyOnRleHRNYXJrZXItPnBsYXRmb3Jt
VGV4dE1hcmtlcigpXTsKLSAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXI6OmNyZWF0
ZShwcmV2aW91c1BhcmFncmFwaFN0YXJ0TWFya2VyKTsKKyAgICBhdXRvIHByZXZpb3VzUGFyYWdy
YXBoU3RhcnRNYXJrZXIgPSBhdHRyaWJ1dGVWYWx1ZUZvclBhcmFtZXRlcihAIkFYUHJldmlvdXNT
ZW50ZW5jZVN0YXJ0VGV4dE1hcmtlckZvclRleHRNYXJrZXIiLCB0ZXh0TWFya2VyLT5wbGF0Zm9y
bVRleHRNYXJrZXIoKSk7CisgICAgcmV0dXJuIEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyOjpjcmVh
dGUocHJldmlvdXNQYXJhZ3JhcGhTdGFydE1hcmtlci5nZXQoKSk7CiAgICAgRU5EX0FYX09CSkNf
RVhDRVBUSU9OUwotICAgIAorCiAgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKQEAgLTIzNDAsMTAg
KzIzNDYsMTAgQEAgUmVmUHRyPEFjY2Vzc2liaWxpdHlUZXh0TWFya2VyPiBBY2Nlc3NpYmlsaXR5
VUlFbGVtZW50OjpuZXh0U2VudGVuY2VFbmRUZXh0TWFya2UKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKICAgICBCRUdJTl9BWF9PQkpDX0VYQ0VQVElPTlMKLSAgICBpZCBuZXh0UGFyYWdyYXBo
RW5kTWFya2VyID0gW21fZWxlbWVudCBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6QCJBWE5l
eHRTZW50ZW5jZUVuZFRleHRNYXJrZXJGb3JUZXh0TWFya2VyIiBmb3JQYXJhbWV0ZXI6dGV4dE1h
cmtlci0+cGxhdGZvcm1UZXh0TWFya2VyKCldOwotICAgIHJldHVybiBBY2Nlc3NpYmlsaXR5VGV4
dE1hcmtlcjo6Y3JlYXRlKG5leHRQYXJhZ3JhcGhFbmRNYXJrZXIpOworICAgIGF1dG8gbmV4dFBh
cmFncmFwaEVuZE1hcmtlciA9IGF0dHJpYnV0ZVZhbHVlRm9yUGFyYW1ldGVyKEAiQVhOZXh0U2Vu
dGVuY2VFbmRUZXh0TWFya2VyRm9yVGV4dE1hcmtlciIsIHRleHRNYXJrZXItPnBsYXRmb3JtVGV4
dE1hcmtlcigpKTsKKyAgICByZXR1cm4gQWNjZXNzaWJpbGl0eVRleHRNYXJrZXI6OmNyZWF0ZShu
ZXh0UGFyYWdyYXBoRW5kTWFya2VyLmdldCgpKTsKICAgICBFTkRfQVhfT0JKQ19FWENFUFRJT05T
Ci0gICAgCisKICAgICByZXR1cm4gbnVsbHB0cjsKIH0KIApAQCAtMjM1MSw4ICsyMzU3LDExIEBA
IHN0YXRpYyBOU1N0cmluZyAqX2NvbnZlcnRNYXRoTXVsdGlzY3JpcHRQYWlyc1RvU3RyaW5nKE5T
QXJyYXkgKnBhaXJzKQogewogICAgIF9fYmxvY2sgTlNNdXRhYmxlU3RyaW5nICpyZXN1bHQgPSBb
TlNNdXRhYmxlU3RyaW5nIHN0cmluZ107CiAgICAgW3BhaXJzIGVudW1lcmF0ZU9iamVjdHNVc2lu
Z0Jsb2NrOl4oaWQgcGFpciwgTlNVSW50ZWdlciBpbmRleCwgQk9PTCAqc3RvcCkgewotICAgICAg
ICBmb3IgKE5TU3RyaW5nICprZXkgaW4gcGFpcikKLSAgICAgICAgICAgIFtyZXN1bHQgYXBwZW5k
Rm9ybWF0OkAiXHQlbHUuICVAID0gJUBcbiIsICh1bnNpZ25lZCBsb25nKWluZGV4LCBrZXksIFtb
cGFpciBvYmplY3RGb3JLZXk6a2V5XSBhY2Nlc3NpYmlsaXR5QXR0cmlidXRlVmFsdWU6TlNBY2Nl
c3NpYmlsaXR5U3Vicm9sZUF0dHJpYnV0ZV1dOworICAgICAgICBmb3IgKE5TU3RyaW5nICprZXkg
aW4gcGFpcikgeworICAgICAgICAgICAgYXV0byBlbGVtZW50ID0gQWNjZXNzaWJpbGl0eVVJRWxl
bWVudDo6Y3JlYXRlKFtwYWlyIG9iamVjdEZvcktleTprZXldKTsKKyAgICAgICAgICAgIGF1dG8g
c3Vicm9sZSA9IGVsZW1lbnQtPmF0dHJpYnV0ZVZhbHVlKE5TQWNjZXNzaWJpbGl0eVN1YnJvbGVB
dHRyaWJ1dGUpOworICAgICAgICAgICAgW3Jlc3VsdCBhcHBlbmRGb3JtYXQ6QCJcdCVsdS4gJUAg
PSAlQFxuIiwgKHVuc2lnbmVkIGxvbmcpaW5kZXgsIGtleSwgc3Vicm9sZS5nZXQoKV07CisgICAg
ICAgIH0KICAgICB9XTsKIAogICAgIHJldHVybiByZXN1bHQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>