<?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>223000</bug_id>
          
          <creation_ts>2021-03-09 15:19:42 -0800</creation_ts>
          <short_desc>[iOS] Refactor WKFileUploadPanel to use UniformTypeIdentifiers</short_desc>
          <delta_ts>2021-03-17 13:10:52 -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>Forms</component>
          <version>Other</version>
          <rep_platform>iPhone / iPad</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="Aditya Keerthi">akeerthi</reporter>
          <assigned_to name="Aditya Keerthi">akeerthi</assigned_to>
          <cc>cdumez</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1737792</commentid>
    <comment_count>0</comment_count>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-03-09 15:19:42 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737793</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-09 15:20:02 -0800</bug_when>
    <thetext>&lt;rdar://problem/75237774&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737806</commentid>
    <comment_count>2</comment_count>
      <attachid>422768</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-03-09 15:31:03 -0800</bug_when>
    <thetext>Created attachment 422768
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1737859</commentid>
    <comment_count>3</comment_count>
      <attachid>422778</attachid>
    <who name="Aditya Keerthi">akeerthi</who>
    <bug_when>2021-03-09 16:52:13 -0800</bug_when>
    <thetext>Created attachment 422778
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1740866</commentid>
    <comment_count>4</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-17 13:10:50 -0700</bug_when>
    <thetext>Committed r274581: &lt;https://commits.webkit.org/r274581&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 422778.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422768</attachid>
            <date>2021-03-09 15:31:03 -0800</date>
            <delta_ts>2021-03-09 16:52:10 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223000-20210309183100.patch</filename>
            <type>text/plain</type>
            <size>31273</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczOTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg2MmY0ZWE0NzZmM2Q2NTQy
MWFlMmMwZDRmZTMyNTNmMjQzNDVjMjguLmQyOWMxNjg2MGYzNzA0YmJjZjg4OTNmNGRhOTM5ZWQ4
YjdlMWEyM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMjEtMDMtMDkgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFJlZmFjdG9yIFdL
RmlsZVVwbG9hZFBhbmVsIHRvIHVzZSBVbmlmb3JtVHlwZUlkZW50aWZpZXJzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMwMDAKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzc1MjM3Nzc0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVuaWZvcm0gdHlwZSBpZGVudGlmaWVyIEFQSXMgaW4gTW9iaWxlQ29y
ZVNlcnZpY2VzIHdlcmUgZGVwcmVjYXRlZCBpbgorICAgICAgICBpT1MgMTQuIEluc3RlYWQsIHVz
ZSB0aGUgbmV3IEFQSXMgaW4gdGhlIFVuaWZvcm1UeXBlSWRlbnRpZmllcnMKKyAgICAgICAgZnJh
bWV3b3JrLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBjbGVhbnMgdXAgaW5zdGFuY2VzIG9m
IGNvZGUgZHVwbGljYXRpb24gd2hlbiBjb21wYXJpbmcKKyAgICAgICAgdW5pZm9ybSB0eXBlIGlk
ZW5maWZpZXJzIGFuZCBpbmNyZWFzZXMgdGhlIHRlc3QgY292ZXJhZ2UgZm9yCisgICAgICAgIFdL
RmlsZVVwbG9hZFBhbmVsLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZm9ybXMvaW9zL2ZpbGUtdXBs
b2FkLXBhbmVsLWFjY2VwdC5odG1sCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dl
YlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oOgorCisgICAgICAgIEV4cG9zZSBfZmlsZVBpY2tl
ckFjY2VwdGVkVHlwZUlkZW50aWZpZXJzIHRvIGVuYWJsZSB0ZXN0aW5nIG9mIGFjY2VwdGVkCisg
ICAgICAgIGZpbGUgdHlwZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZp
ZXdUZXN0aW5nSU9TLm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgX2ZpbGVQaWNrZXJBY2NlcHRl
ZFR5cGVJZGVudGlmaWVyc10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmll
d0ludGVyYWN0aW9uLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgZmlsZVBpY2tlckFjY2VwdGVk
VHlwZUlkZW50aWZpZXJzXSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVV
cGxvYWRQYW5lbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2Fk
UGFuZWwubW06CisgICAgICAgIChzZXRDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKToKKworICAg
ICAgICBNb2RpZmllZCB0aGlzIGhlbHBlciBtZXRob2QgdG8gdGFrZSBpbiBhbiBOU1NldCByYXRo
ZXIgdGhhbiBhbiBOU0FycmF5CisgICAgICAgIHRvIGF2b2lkIHVubmVjZXNzYXJ5IGNvbnZlcnNp
b24uIFJlcGxhY2VkIE1vYmlsZUNvcmVTZXJ2aWNlcyBBUEkgdXNhZ2UKKyAgICAgICAgd2l0aCBV
bmlmb3JtVHlwZUlkZW50aWZpZXJzIEFQSS4KKworICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5l
bCBwcmVzZW50V2l0aFBhcmFtZXRlcnM6cmVzdWx0TGlzdGVuZXI6XSk6CisKKyAgICAgICAgRGV0
ZXJtaW5lIHRoZSBhY2NlcHRlZCBVVElzIGFuZCBpbWFnZSBwaWNrZXIgY29uZmlndXJhdGlvbiBv
bmNlIGJlZm9yZQorICAgICAgICBwcmVzZW50YXRpb24gYW5kIHN0b3JlIHRoZW0gaW4gbWVtYmVy
IHZhcmlhYmxlcyB0byByZWR1Y2UgY29kZQorICAgICAgICBkdXBsaWNhdGlvbi4KKworICAgICAg
ICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBjdXJyZW50QXZhaWxhYmxlQWN0aW9uVGl0bGVzXSk6Cisg
ICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIGFjY2VwdGVkVHlwZUlkZW50aWZpZXJzXSk6CisK
KyAgICAgICAgRXhwb3NlIHRoZSBhY2NlcHRlZCB0eXBlIGlkZW50aWZlcnMgYXMgYSBzb3J0ZWQg
YXJyYXkgZm9yIHRlc3RpbmcuCisKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgX21lZGlh
VHlwZXNGb3JQaWNrZXJTb3VyY2VUeXBlOl0pOgorICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5l
bCBfY2FtZXJhQnV0dG9uTGFiZWxdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgY29u
dGV4dE1lbnVJbnRlcmFjdGlvbjpjb25maWd1cmF0aW9uRm9yTWVudUF0TG9jYXRpb246XSk6Cisg
ICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIHNob3dGaWxlUGlja2VyTWVudV0pOgorICAgICAg
ICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBzaG93RG9jdW1lbnRQaWNrZXJNZW51XSk6CisgICAgICAg
ICgtW1dLRmlsZVVwbG9hZFBhbmVsIF91cGxvYWRJdGVtRnJvbU1lZGlhSW5mbzpzdWNjZXNzQmxv
Y2s6ZmFpbHVyZUJsb2NrOl0pOgorCiAyMDIxLTAzLTA4ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVy
dGhpQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSA8c2VsZWN0IG11bHRpcGxlPiBncm91cCBo
ZWFkZXJzIGFyZSBpbGxlZ2libGUgaW4gZGFyayBtb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5n
SU9TLmgKaW5kZXggODkzN2M4NGZjYzJhMDA2NDcwZjJjMmM5YTg3MWE3Zjk5OTVmYTljMy4uMmZk
MDY2ZTVhNzk1MDYzMjY4ZjAwYTU3ZmQyMDM0MGMyMGZhYzdhOSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZv
clRlc3RpbmdJT1MuaApAQCAtNDYsNiArNDYsNyBAQAogLSAodm9pZClrZXlib2FyZEFjY2Vzc29y
eUJhck5leHQ7CiAtICh2b2lkKWtleWJvYXJkQWNjZXNzb3J5QmFyUHJldmlvdXM7CiAtICh2b2lk
KWRpc21pc3NGb3JtQWNjZXNzb3J5VmlldzsKKy0gKE5TQXJyYXk8TlNTdHJpbmcgKj4gKilfZmls
ZVBpY2tlckFjY2VwdGVkVHlwZUlkZW50aWZpZXJzOwogLSAodm9pZClfZGlzbWlzc0ZpbGVQaWNr
ZXI7CiAtICh2b2lkKXNlbGVjdEZvcm1BY2Nlc3NvcnlQaWNrZXJSb3c6KGludClyb3dJbmRleDsK
IC0gKEJPT0wpc2VsZWN0Rm9ybUFjY2Vzc29yeUhhc0NoZWNrZWRJdGVtQXRSb3c6KGxvbmcpcm93
SW5kZXg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2Vi
Vmlld1Rlc3RpbmdJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2Vi
Vmlld1Rlc3RpbmdJT1MubW0KaW5kZXggZWU5OTBlOGU3MGVjZWI2ZjAwYmY3MjNlZWVjNzQ3MTJl
NDBiZWZiYi4uN2JjMDg2OGY1MWQ4OGEzNWYyMWJkODhjNjk2ZTI2MmE3MmRjYWY5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9T
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGlu
Z0lPUy5tbQpAQCAtMTI3LDYgKzEyNywxMSBAQAogICAgIFtfY29udGVudFZpZXcgYWNjZXNzb3J5
RG9uZV07CiB9CiAKKy0gKE5TQXJyYXk8TlNTdHJpbmcgKj4gKilfZmlsZVBpY2tlckFjY2VwdGVk
VHlwZUlkZW50aWZpZXJzCit7CisgICAgcmV0dXJuIFtfY29udGVudFZpZXcgZmlsZVBpY2tlckFj
Y2VwdGVkVHlwZUlkZW50aWZpZXJzXTsKK30KKwogLSAodm9pZClfZGlzbWlzc0ZpbGVQaWNrZXIK
IHsKICAgICBbX2NvbnRlbnRWaWV3IGRpc21pc3NGaWxlUGlja2VyXTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24uaAppbmRl
eCA3MTFkNDBkZjYyMzM1NzU2ZjhiMTQ1NjM0ZTFmNzUxMmI2NzEwMDYwLi4yMmM1ZWRhMjU0Nzgx
N2VmYzE0ZjBlNGRlYzFmOTUyNGZlMzMxODZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCkBAIC02MDgsNiArNjA4
LDcgQEAgRk9SX0VBQ0hfUFJJVkFURV9XS0NPTlRFTlRWSUVXX0FDVElPTihERUNMQVJFX1dLQ09O
VEVOVFZJRVdfQUNUSU9OX0ZPUl9XRUJfVklFVykKIC0gKHZvaWQpX3Nob3dSdW5PcGVuUGFuZWw6
KEFQSTo6T3BlblBhbmVsUGFyYW1ldGVycyopcGFyYW1ldGVycyBmcmFtZUluZm86KGNvbnN0IFdl
YktpdDo6RnJhbWVJbmZvRGF0YSYpZnJhbWVJbmZvIHJlc3VsdExpc3RlbmVyOihXZWJLaXQ6Oldl
Yk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHkqKWxpc3RlbmVyOwogLSAodm9pZClfc2hvd1No
YXJlU2hlZXQ6KGNvbnN0IFdlYkNvcmU6OlNoYXJlRGF0YVdpdGhQYXJzZWRVUkwmKXNoYXJlRGF0
YSBpblJlY3Q6KFdURjo6T3B0aW9uYWw8V2ViQ29yZTo6RmxvYXRSZWN0PilyZWN0IGNvbXBsZXRp
b25IYW5kbGVyOihXVEY6OkNvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpY29tcGxldGlv
bkhhbmRsZXI7CiAtICh2b2lkKV9zaG93Q29udGFjdFBpY2tlcjooY29uc3QgV2ViQ29yZTo6Q29u
dGFjdHNSZXF1ZXN0RGF0YSYpcmVxdWVzdERhdGEgY29tcGxldGlvbkhhbmRsZXI6KFdURjo6Q29t
cGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29udGFjdEluZm8+
PiYmKT4mJiljb21wbGV0aW9uSGFuZGxlcjsKKy0gKE5TQXJyYXk8TlNTdHJpbmcgKj4gKilmaWxl
UGlja2VyQWNjZXB0ZWRUeXBlSWRlbnRpZmllcnM7CiAtICh2b2lkKWRpc21pc3NGaWxlUGlja2Vy
OwogLSAodm9pZClfZGlkSGFuZGxlS2V5RXZlbnQ6KDo6V2ViRXZlbnQgKilldmVudCBldmVudFdh
c0hhbmRsZWQ6KEJPT0wpZXZlbnRXYXNIYW5kbGVkOwogLSAoVmVjdG9yPFdlYktpdDo6T3B0aW9u
SXRlbT4mKSBmb2N1c2VkU2VsZWN0RWxlbWVudE9wdGlvbnM7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA4
N2M2ZDEzOGViZTU2YTYxMDViYTg3Mjk3NTAyOTBkZjhmZTZiMzYyLi43NmU1MmEyZDAxMDcxMDM4
OGI1MWMxMzRkNzlhMDc3NGUxZmQwYTIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTU2OTEsNiArNTY5
MSwxNCBAQCBzdGF0aWMgTlNTdHJpbmcgKmNvbnRlbnRUeXBlRnJvbUZpZWxkTmFtZShXZWJDb3Jl
OjpBdXRvZmlsbEZpZWxkTmFtZSBmaWVsZE5hbWUpCiAgICAgcmV0dXJuIE5POwogfQogCistIChO
U0FycmF5PE5TU3RyaW5nICo+ICopZmlsZVBpY2tlckFjY2VwdGVkVHlwZUlkZW50aWZpZXJzCit7
CisgICAgaWYgKCFfZmlsZVVwbG9hZFBhbmVsKQorICAgICAgICByZXR1cm4gQFtdOworCisgICAg
cmV0dXJuIFtfZmlsZVVwbG9hZFBhbmVsIGFjY2VwdGVkVHlwZUlkZW50aWZpZXJzXTsKK30KKwog
LSAodm9pZClkaXNtaXNzRmlsZVBpY2tlcgogewogICAgIFtfZmlsZVVwbG9hZFBhbmVsIGRpc21p
c3NdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmls
ZVVwbG9hZFBhbmVsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxl
VXBsb2FkUGFuZWwuaAppbmRleCBiMTJiOGUyMzBhMDFiOWRlYjU0ZWI4OWU1NGI3NjcyMzliZDUw
MTYyLi42YTFiOWIwMTlkNGIxMzBiMWQ1ZWEzZjExOGNiYTRhNTI1NDkyYjM5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwu
aApAQCAtNDUsNiArNDUsNyBAQCBjbGFzcyBXZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5
OwogLSAodm9pZClkaXNtaXNzOwogCiAtIChOU0FycmF5PE5TU3RyaW5nICo+ICopY3VycmVudEF2
YWlsYWJsZUFjdGlvblRpdGxlczsKKy0gKE5TQXJyYXk8TlNTdHJpbmcgKj4gKilhY2NlcHRlZFR5
cGVJZGVudGlmaWVyczsKIEBlbmQKIAogQHByb3RvY29sIFdLRmlsZVVwbG9hZFBhbmVsRGVsZWdh
dGUgPE5TT2JqZWN0PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zv
cm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zv
cm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tCmluZGV4IGIxMDFmNGRhNGJiZTdjODVjMDQ2NjYyYmVj
ZWYzOTJlMDBhMTM1MDQuLmQ0NjAxYWM5NzFlNTNjMjVkZDg1ZGVlMzhiNjU2ZDI4ZTdiY2I4OTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxv
YWRQYW5lbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxl
VXBsb2FkUGFuZWwubW0KQEAgLTQxLDE3ICs0MSwyMiBAQAogI2ltcG9ydCAiV2ViSWNvblV0aWxp
dGllcy5oIgogI2ltcG9ydCAiV2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eS5oIgogI2lt
cG9ydCAiV2ViUGFnZVByb3h5LmgiCi0jaW1wb3J0IDxNb2JpbGVDb3JlU2VydmljZXMvTW9iaWxl
Q29yZVNlcnZpY2VzLmg+CiAjaW1wb3J0IDxVSUtpdC9VSURvY3VtZW50UGlja2VyVmlld0NvbnRy
b2xsZXIuaD4KKyNpbXBvcnQgPFVuaWZvcm1UeXBlSWRlbnRpZmllcnMvVW5pZm9ybVR5cGVJZGVu
dGlmaWVycy5oPgogI2ltcG9ydCA8V2ViQ29yZS9Mb2NhbGl6ZWRTdHJpbmdzLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KLSNpbXBvcnQgPFdlYkNvcmUvVVRJVXRpbGl0
aWVzLmg+CisjaW1wb3J0IDx3dGYvT3B0aW9uU2V0Lmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRy
Lmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmlu
Z1ZpZXcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKIAorZW51bSBjbGFzcyBXS0ZpbGVV
cGxvYWRQYW5lbEltYWdlUGlja2VyVHlwZSA6IHVpbnQ4X3QgeworICAgIEltYWdlID0gMSA8PCAw
LAorICAgIFZpZGVvICA9IDEgPDwgMSwKK307CisKIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0JFR0lOCiAKIHN0YXRpYyBpbmxpbmUgVUlJbWFnZVBpY2tlckNvbnRyb2xsZXJDYW1lcmFE
ZXZpY2UgY2FtZXJhRGV2aWNlRm9yTWVkaWFDYXB0dXJlVHlwZShXZWJDb3JlOjpNZWRpYUNhcHR1
cmVUeXBlIG1lZGlhQ2FwdHVyZVR5cGUpCkBAIC01OSwxMCArNjQsMTEgQEAgc3RhdGljIGlubGlu
ZSBVSUltYWdlUGlja2VyQ29udHJvbGxlckNhbWVyYURldmljZSBjYW1lcmFEZXZpY2VGb3JNZWRp
YUNhcHR1cmVUeXAKICAgICByZXR1cm4gbWVkaWFDYXB0dXJlVHlwZSA9PSBXZWJDb3JlOjpNZWRp
YUNhcHR1cmVUeXBlVXNlciA/IFVJSW1hZ2VQaWNrZXJDb250cm9sbGVyQ2FtZXJhRGV2aWNlRnJv
bnQgOiBVSUltYWdlUGlja2VyQ29udHJvbGxlckNhbWVyYURldmljZVJlYXI7CiB9CiAKLXN0YXRp
YyBib29sIGFycmF5Q29udGFpbnNVVElUaGF0Q29uZm9ybXNUbyhOU0FycmF5PE5TU3RyaW5nICo+
ICp0eXBlSWRlbnRpZmllcnMsIENGU3RyaW5nUmVmIGNvbmZvcm1Ub1VUSSkKK3N0YXRpYyBib29s
IHNldENvbnRhaW5zVVRJVGhhdENvbmZvcm1zVG8oTlNTZXQ8TlNTdHJpbmcgKj4gKnR5cGVJZGVu
dGlmaWVycywgVVRUeXBlICpjb25mb3JtVG9VVFR5cGUpCiB7CiAgICAgZm9yIChOU1N0cmluZyAq
dXRpIGluIHR5cGVJZGVudGlmaWVycykgewotICAgICAgICBpZiAoVVRUeXBlQ29uZm9ybXNUbygo
X19icmlkZ2UgQ0ZTdHJpbmdSZWYpdXRpLCBjb25mb3JtVG9VVEkpKQorICAgICAgICBVVFR5cGUg
KnR5cGUgPSBbVVRUeXBlIHR5cGVXaXRoSWRlbnRpZmllcjp1dGldOworICAgICAgICBpZiAoW3R5
cGUgY29uZm9ybXNUb1R5cGU6Y29uZm9ybVRvVVRUeXBlXSkKICAgICAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KICAgICByZXR1cm4gZmFsc2U7CkBAIC0xNjEsNyArMTY3LDggQEAgc3RhdGlj
IGJvb2wgYXJyYXlDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKE5TQXJyYXk8TlNTdHJpbmcgKj4g
KnR5cGVJZGVudGlmaWVycywKIEBpbXBsZW1lbnRhdGlvbiBXS0ZpbGVVcGxvYWRQYW5lbCB7CiAg
ICAgV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4gX3ZpZXc7CiAgICAgUmVmUHRyPFdlYktpdDo6
V2ViT3BlblBhbmVsUmVzdWx0TGlzdGVuZXJQcm94eT4gX2xpc3RlbmVyOwotICAgIFJldGFpblB0
cjxOU0FycmF5PiBfbWltZVR5cGVzOworICAgIFJldGFpblB0cjxOU1NldDxOU1N0cmluZyAqPj4g
X2FjY2VwdGVkVVRJczsKKyAgICBPcHRpb25TZXQ8V0tGaWxlVXBsb2FkUGFuZWxJbWFnZVBpY2tl
clR5cGU+IF9hbGxvd2VkSW1hZ2VQaWNrZXJUeXBlczsKICAgICBDR1BvaW50IF9pbnRlcmFjdGlv
blBvaW50OwogICAgIEJPT0wgX2FsbG93TXVsdGlwbGVGaWxlczsKICAgICBCT09MIF91c2luZ0Nh
bWVyYTsKQEAgLTI1NSw3ICsyNjIsMTUgQEAgc3RhdGljIGJvb2wgYXJyYXlDb250YWluc1VUSVRo
YXRDb25mb3Jtc1RvKE5TQXJyYXk8TlNTdHJpbmcgKj4gKnR5cGVJZGVudGlmaWVycywKICAgICAg
ICAgICAgIFttaW1lVHlwZXMgYWRkT2JqZWN0Om1pbWVUeXBlXTsKICAgICB9CiAKLSAgICBfbWlt
ZVR5cGVzID0gYWRvcHROUyhbbWltZVR5cGVzIGNvcHldKTsKKyAgICBfYWNjZXB0ZWRVVElzID0g
VVRJc0Zvck1JTUVUeXBlcyhtaW1lVHlwZXMpOworICAgIGlmICghW19hY2NlcHRlZFVUSXMgY291
bnRdKQorICAgICAgICBfYWxsb3dlZEltYWdlUGlja2VyVHlwZXMuYWRkKHsgV0tGaWxlVXBsb2Fk
UGFuZWxJbWFnZVBpY2tlclR5cGU6OkltYWdlLCBXS0ZpbGVVcGxvYWRQYW5lbEltYWdlUGlja2Vy
VHlwZTo6VmlkZW8gfSk7CisgICAgZWxzZSB7CisgICAgICAgIGlmIChzZXRDb250YWluc1VUSVRo
YXRDb25mb3Jtc1RvKF9hY2NlcHRlZFVUSXMuZ2V0KCksIFVUVHlwZUltYWdlKSkKKyAgICAgICAg
ICAgIF9hbGxvd2VkSW1hZ2VQaWNrZXJUeXBlcy5hZGQoeyBXS0ZpbGVVcGxvYWRQYW5lbEltYWdl
UGlja2VyVHlwZTo6SW1hZ2UgfSk7CisgICAgICAgIGlmIChzZXRDb250YWluc1VUSVRoYXRDb25m
b3Jtc1RvKF9hY2NlcHRlZFVUSXMuZ2V0KCksIFVUVHlwZU1vdmllKSkKKyAgICAgICAgICAgIF9h
bGxvd2VkSW1hZ2VQaWNrZXJUeXBlcy5hZGQoeyBXS0ZpbGVVcGxvYWRQYW5lbEltYWdlUGlja2Vy
VHlwZTo6VmlkZW8gfSk7CisgICAgfQogCiAgICAgX21lZGlhQ2FwdHVyZVR5cGUgPSBXZWJDb3Jl
OjpNZWRpYUNhcHR1cmVUeXBlTm9uZTsKICNpZiBFTkFCTEUoTUVESUFfQ0FQVFVSRSkKQEAgLTMx
NiwxNiArMzMxLDExIEBAIHN0YXRpYyBib29sIGFycmF5Q29udGFpbnNVVElUaGF0Q29uZm9ybXNU
byhOU0FycmF5PE5TU3RyaW5nICo+ICp0eXBlSWRlbnRpZmllcnMsCiB7CiAgICAgTlNNdXRhYmxl
QXJyYXk8TlNTdHJpbmcgKj4gKmFjdGlvblRpdGxlcyA9IFtOU011dGFibGVBcnJheSBhcnJheV07
CiAKLSAgICBOU0FycmF5ICptZWRpYVR5cGVzID0gVVRJc0Zvck1JTUVUeXBlcyhfbWltZVR5cGVz
LmdldCgpKS5hbGxPYmplY3RzOwotQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4K
LSAgICBCT09MIGFsbG93c0ltYWdlTWVkaWFUeXBlID0gIW1lZGlhVHlwZXMuY291bnQgfHwgYXJy
YXlDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKG1lZGlhVHlwZXMsIGtVVFR5cGVJbWFnZSk7Ci0g
ICAgQk9PTCBhbGxvd3NWaWRlb01lZGlhVHlwZSA9ICFtZWRpYVR5cGVzLmNvdW50IHx8IGFycmF5
Q29udGFpbnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVzLCBrVVRUeXBlTW92aWUpOwotQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECi0gICAgaWYgKGFsbG93c0ltYWdlTWVkaWFU
eXBlIHx8IGFsbG93c1ZpZGVvTWVkaWFUeXBlKSB7CisgICAgaWYgKF9hbGxvd2VkSW1hZ2VQaWNr
ZXJUeXBlcy5jb250YWluc0FueSh7IFdLRmlsZVVwbG9hZFBhbmVsSW1hZ2VQaWNrZXJUeXBlOjpJ
bWFnZSwgV0tGaWxlVXBsb2FkUGFuZWxJbWFnZVBpY2tlclR5cGU6OlZpZGVvIH0pKSB7CiAgICAg
ICAgIFthY3Rpb25UaXRsZXMgYWRkT2JqZWN0OkAiUGhvdG8gTGlicmFyeSJdOwotICAgICAgICBp
ZiAoYWxsb3dzSW1hZ2VNZWRpYVR5cGUgJiYgYWxsb3dzVmlkZW9NZWRpYVR5cGUpCisgICAgICAg
IGlmIChfYWxsb3dlZEltYWdlUGlja2VyVHlwZXMuY29udGFpbnNBbGwoeyBXS0ZpbGVVcGxvYWRQ
YW5lbEltYWdlUGlja2VyVHlwZTo6SW1hZ2UsIFdLRmlsZVVwbG9hZFBhbmVsSW1hZ2VQaWNrZXJU
eXBlOjpWaWRlbyB9KSkKICAgICAgICAgICAgIFthY3Rpb25UaXRsZXMgYWRkT2JqZWN0OkAiVGFr
ZSBQaG90byBvciBWaWRlbyJdOwotICAgICAgICBlbHNlIGlmIChhbGxvd3NWaWRlb01lZGlhVHlw
ZSkKKyAgICAgICAgZWxzZSBpZiAoX2FsbG93ZWRJbWFnZVBpY2tlclR5cGVzLmNvbnRhaW5zKFdL
RmlsZVVwbG9hZFBhbmVsSW1hZ2VQaWNrZXJUeXBlOjpWaWRlbykpCiAgICAgICAgICAgICBbYWN0
aW9uVGl0bGVzIGFkZE9iamVjdDpAIlRha2UgVmlkZW8iXTsKICAgICAgICAgZWxzZQogICAgICAg
ICAgICAgW2FjdGlvblRpdGxlcyBhZGRPYmplY3Q6QCJUYWtlIFBob3RvIl07CkBAIC0zMzQsNDQg
KzM0NCw1MCBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICByZXR1cm4g
YWN0aW9uVGl0bGVzOwogfQogCistIChOU0FycmF5PE5TU3RyaW5nICo+ICopYWNjZXB0ZWRUeXBl
SWRlbnRpZmllcnMKK3sKKyAgICByZXR1cm4gW1tfYWNjZXB0ZWRVVElzIGFsbE9iamVjdHNdIHNv
cnRlZEFycmF5VXNpbmdTZWxlY3RvcjpAc2VsZWN0b3IoY29tcGFyZTopXTsKK30KKwogI3ByYWdt
YSBtYXJrIC0gTWVkaWEgVHlwZXMKIAogc3RhdGljIE5TU2V0PE5TU3RyaW5nICo+ICpVVElzRm9y
TUlNRVR5cGVzKE5TQXJyYXkgKm1pbWVUeXBlcykKIHsKICAgICBOU011dGFibGVTZXQgKm1lZGlh
VHlwZXMgPSBbTlNNdXRhYmxlU2V0IHNldF07CiAgICAgZm9yIChOU1N0cmluZyAqbWltZVR5cGUg
aW4gbWltZVR5cGVzKSB7Ci1BTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
ICAgICBpZiAoW21pbWVUeXBlIGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6QCJpbWFnZS8qIl0gPT0g
TlNPcmRlcmVkU2FtZSkKLSAgICAgICAgICAgIFttZWRpYVR5cGVzIGFkZE9iamVjdDooX19icmlk
Z2UgTlNTdHJpbmcgKilrVVRUeXBlSW1hZ2VdOworICAgICAgICAgICAgW21lZGlhVHlwZXMgYWRk
T2JqZWN0OlVUVHlwZUltYWdlLmlkZW50aWZpZXJdOwogICAgICAgICBlbHNlIGlmIChbbWltZVR5
cGUgY2FzZUluc2Vuc2l0aXZlQ29tcGFyZTpAInZpZGVvLyoiXSA9PSBOU09yZGVyZWRTYW1lKQot
ICAgICAgICAgICAgW21lZGlhVHlwZXMgYWRkT2JqZWN0OihfX2JyaWRnZSBOU1N0cmluZyAqKWtV
VFR5cGVNb3ZpZV07CisgICAgICAgICAgICBbbWVkaWFUeXBlcyBhZGRPYmplY3Q6VVRUeXBlTW92
aWUuaWRlbnRpZmllcl07CiAgICAgICAgIGVsc2UgaWYgKFttaW1lVHlwZSBjYXNlSW5zZW5zaXRp
dmVDb21wYXJlOkAiYXVkaW8vKiJdID09IE5TT3JkZXJlZFNhbWUpCiAgICAgICAgICAgICAvLyBV
SUltYWdlUGlja2VyQ29udHJvbGxlciBkb2Vzbid0IGFsbG93IGF1ZGlvLW9ubHkgcmVjb3JkaW5n
LCBzbyBzaG93IHRoZSB2aWRlbwogICAgICAgICAgICAgLy8gcmVjb3JkZXIgZm9yICJhdWRpby8q
Ii4KLSAgICAgICAgICAgIFttZWRpYVR5cGVzIGFkZE9iamVjdDooX19icmlkZ2UgTlNTdHJpbmcg
KilrVVRUeXBlTW92aWVdOworICAgICAgICAgICAgW21lZGlhVHlwZXMgYWRkT2JqZWN0OlVUVHlw
ZU1vdmllLmlkZW50aWZpZXJdOwogICAgICAgICBlbHNlIHsKLSAgICAgICAgICAgIGF1dG8gdXRp
ID0gV2ViQ29yZTo6VVRJRnJvbU1JTUVUeXBlKG1pbWVUeXBlKTsKLSAgICAgICAgICAgIGlmICgh
dXRpLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICBbbWVkaWFUeXBlcyBhZGRPYmplY3Q6KF9f
YnJpZGdlIE5TU3RyaW5nICopdXRpXTsKKyAgICAgICAgICAgIGF1dG8gdXRpID0gW1VUVHlwZSB0
eXBlV2l0aE1JTUVUeXBlOm1pbWVUeXBlXTsKKyAgICAgICAgICAgIGlmICh1dGkpCisgICAgICAg
ICAgICAgICAgW21lZGlhVHlwZXMgYWRkT2JqZWN0OnV0aS5pZGVudGlmaWVyXTsKICAgICAgICAg
fQotQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECisKICAgICB9CiAgICAgcmV0dXJu
IG1lZGlhVHlwZXM7CiB9CiAKIC0gKE5TQXJyYXk8TlNTdHJpbmcgKj4gKilfbWVkaWFUeXBlc0Zv
clBpY2tlclNvdXJjZVR5cGU6KFVJSW1hZ2VQaWNrZXJDb250cm9sbGVyU291cmNlVHlwZSlzb3Vy
Y2VUeXBlCiB7Ci0gICAgTlNBcnJheTxOU1N0cmluZyAqPiAqYXZhaWxhYmxlTWVkaWFUeXBlcyA9
IFtVSUltYWdlUGlja2VyQ29udHJvbGxlciBhdmFpbGFibGVNZWRpYVR5cGVzRm9yU291cmNlVHlw
ZTpzb3VyY2VUeXBlXTsKLSAgICBOU1NldDxOU1N0cmluZyAqPiAqYWNjZXB0ZWRNZWRpYVR5cGVz
ID0gVVRJc0Zvck1JTUVUeXBlcyhfbWltZVR5cGVzLmdldCgpKTsKLSAgICBpZiAoYWNjZXB0ZWRN
ZWRpYVR5cGVzLmNvdW50KSB7CisgICAgTlNBcnJheTxOU1N0cmluZyAqPiAqYXZhaWxhYmxlTWVk
aWFUeXBlVVRJcyA9IFtVSUltYWdlUGlja2VyQ29udHJvbGxlciBhdmFpbGFibGVNZWRpYVR5cGVz
Rm9yU291cmNlVHlwZTpzb3VyY2VUeXBlXTsKKyAgICBOU1NldDxOU1N0cmluZyAqPiAqYWNjZXB0
ZWRNZWRpYVR5cGVVVElzID0gX2FjY2VwdGVkVVRJcy5nZXQoKTsKKyAgICBpZiAoYWNjZXB0ZWRN
ZWRpYVR5cGVVVElzLmNvdW50KSB7CiAgICAgICAgIE5TTXV0YWJsZUFycmF5PE5TU3RyaW5nICo+
ICptZWRpYVR5cGVzID0gW05TTXV0YWJsZUFycmF5IGFycmF5XTsKLSAgICAgICAgZm9yIChOU1N0
cmluZyAqYXZhaWxhYmxlTWVkaWFUeXBlIGluIGF2YWlsYWJsZU1lZGlhVHlwZXMpIHsKLSAgICAg
ICAgICAgIGlmIChbYWNjZXB0ZWRNZWRpYVR5cGVzIGNvbnRhaW5zT2JqZWN0OmF2YWlsYWJsZU1l
ZGlhVHlwZV0pCi0gICAgICAgICAgICAgICAgW21lZGlhVHlwZXMgYWRkT2JqZWN0OmF2YWlsYWJs
ZU1lZGlhVHlwZV07CisgICAgICAgIGZvciAoTlNTdHJpbmcgKmF2YWlsYWJsZU1lZGlhVHlwZVVU
SSBpbiBhdmFpbGFibGVNZWRpYVR5cGVVVElzKSB7CisgICAgICAgICAgICBpZiAoW2FjY2VwdGVk
TWVkaWFUeXBlVVRJcyBjb250YWluc09iamVjdDphdmFpbGFibGVNZWRpYVR5cGVVVEldKQorICAg
ICAgICAgICAgICAgIFttZWRpYVR5cGVzIGFkZE9iamVjdDphdmFpbGFibGVNZWRpYVR5cGVVVEld
OwogICAgICAgICAgICAgZWxzZSB7Ci0gICAgICAgICAgICAgICAgZm9yIChOU1N0cmluZyAqYWNj
ZXB0ZWRNZWRpYVR5cGUgaW4gYWNjZXB0ZWRNZWRpYVR5cGVzKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGlmIChVVFR5cGVDb25mb3Jtc1RvKChfX2JyaWRnZSBDRlN0cmluZ1JlZilhY2NlcHRlZE1l
ZGlhVHlwZSwgKF9fYnJpZGdlIENGU3RyaW5nUmVmKWF2YWlsYWJsZU1lZGlhVHlwZSkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgICAgIFttZWRpYVR5cGVzIGFkZE9iamVjdDphdmFpbGFibGVNZWRp
YVR5cGVdOworICAgICAgICAgICAgICAgIFVUVHlwZSAqYXZhaWxhYmxlTWVkaWFUeXBlID0gW1VU
VHlwZSB0eXBlV2l0aElkZW50aWZpZXI6YXZhaWxhYmxlTWVkaWFUeXBlVVRJXTsKKyAgICAgICAg
ICAgICAgICBmb3IgKE5TU3RyaW5nICphY2NlcHRlZE1lZGlhVHlwZVVUSSBpbiBhY2NlcHRlZE1l
ZGlhVHlwZVVUSXMpIHsKKyAgICAgICAgICAgICAgICAgICAgVVRUeXBlICphY2NlcHRlZE1lZGlh
VHlwZSA9IFtVVFR5cGUgdHlwZVdpdGhJZGVudGlmaWVyOmFjY2VwdGVkTWVkaWFUeXBlVVRJXTsK
KyAgICAgICAgICAgICAgICAgICAgaWYgKFthY2NlcHRlZE1lZGlhVHlwZSBjb25mb3Jtc1RvVHlw
ZTphdmFpbGFibGVNZWRpYVR5cGVdKSB7CisgICAgICAgICAgICAgICAgICAgICAgICBbbWVkaWFU
eXBlcyBhZGRPYmplY3Q6YXZhaWxhYmxlTWVkaWFUeXBlVVRJXTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgfQpA
QCAtMzg0LDcgKzQwMCw3IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAg
IH0KIAogICAgIC8vIEZhbGxiYWNrIHRvIGV2ZXJ5IHN1cHBvcnRlZCBtZWRpYSB0eXBlIGlmIHRo
ZXJlIGlzIG5vIGZpbHRlci4KLSAgICByZXR1cm4gYXZhaWxhYmxlTWVkaWFUeXBlczsKKyAgICBy
ZXR1cm4gYXZhaWxhYmxlTWVkaWFUeXBlVVRJczsKIH0KIAogI3ByYWdtYSBtYXJrIC0gU291cmNl
IHNlbGVjdGlvbiBtZW51CkBAIC0zOTksMTMgKzQxNSwxNCBAQCBBTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKICAgICByZXR1cm4gV0VCX1VJX1NUUklOR19LRVkoIlBob3RvIExpYnJh
cnkiLCAiUGhvdG8gTGlicmFyeSAoZmlsZSB1cGxvYWQgYWN0aW9uIHNoZWV0KSIsICJGaWxlIFVw
bG9hZCBhbGVydCBzaGVldCBidXR0b24gc3RyaW5nIGZvciBjaG9vc2luZyBhbiBleGlzdGluZyBt
ZWRpYSBpdGVtIGZyb20gdGhlIFBob3RvIExpYnJhcnkiKTsKIH0KIAotLSAoTlNTdHJpbmcgKilf
Y2FtZXJhQnV0dG9uTGFiZWxBbGxvd2luZ1Bob3RvOihCT09MKWFsbG93UGhvdG8gYWxsb3dpbmdW
aWRlbzooQk9PTClhbGxvd1ZpZGVvCistIChOU1N0cmluZyAqKV9jYW1lcmFCdXR0b25MYWJlbAog
ewotICAgIEFTU0VSVChhbGxvd1Bob3RvIHx8IGFsbG93VmlkZW8pOwotICAgIGlmIChhbGxvd1Bo
b3RvICYmIGFsbG93VmlkZW8pCisgICAgQVNTRVJUKF9hbGxvd2VkSW1hZ2VQaWNrZXJUeXBlcy5j
b250YWluc0FueSh7IFdLRmlsZVVwbG9hZFBhbmVsSW1hZ2VQaWNrZXJUeXBlOjpJbWFnZSwgV0tG
aWxlVXBsb2FkUGFuZWxJbWFnZVBpY2tlclR5cGU6OlZpZGVvIH0pKTsKKworICAgIGlmIChfYWxs
b3dlZEltYWdlUGlja2VyVHlwZXMuY29udGFpbnNBbGwoeyBXS0ZpbGVVcGxvYWRQYW5lbEltYWdl
UGlja2VyVHlwZTo6SW1hZ2UsIFdLRmlsZVVwbG9hZFBhbmVsSW1hZ2VQaWNrZXJUeXBlOjpWaWRl
byB9KSkKICAgICAgICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJUYWtlIFBob3RvIG9yIFZp
ZGVvIiwgIlRha2UgUGhvdG8gb3IgVmlkZW8gKGZpbGUgdXBsb2FkIGFjdGlvbiBzaGVldCkiLCAi
RmlsZSBVcGxvYWQgYWxlcnQgc2hlZXQgY2FtZXJhIGJ1dHRvbiBzdHJpbmcgZm9yIHRha2luZyBw
aG90b3Mgb3IgdmlkZW9zIik7CiAKLSAgICBpZiAoYWxsb3dWaWRlbykKKyAgICBpZiAoX2FsbG93
ZWRJbWFnZVBpY2tlclR5cGVzLmNvbnRhaW5zKFdLRmlsZVVwbG9hZFBhbmVsSW1hZ2VQaWNrZXJU
eXBlOjpWaWRlbykpCiAgICAgICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiVGFrZSBWaWRl
byIsICJUYWtlIFZpZGVvIChmaWxlIHVwbG9hZCBhY3Rpb24gc2hlZXQpIiwgIkZpbGUgVXBsb2Fk
IGFsZXJ0IHNoZWV0IGNhbWVyYSBidXR0b24gc3RyaW5nIGZvciB0YWtpbmcgb25seSB2aWRlb3Mi
KTsKIAogICAgIHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiVGFrZSBQaG90byIsICJUYWtlIFBo
b3RvIChmaWxlIHVwbG9hZCBhY3Rpb24gc2hlZXQpIiwgIkZpbGUgVXBsb2FkIGFsZXJ0IHNoZWV0
IGNhbWVyYSBidXR0b24gc3RyaW5nIGZvciB0YWtpbmcgb25seSBwaG90b3MiKTsKQEAgLTQyOSwx
NyArNDQ2LDExIEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgVUlD
b250ZXh0TWVudUFjdGlvblByb3ZpZGVyIGFjdGlvbk1lbnVQcm92aWRlciA9IFtzZWxmLCB3ZWFr
U2VsZiA9IFdlYWtPYmpDUHRyPFdLRmlsZVVwbG9hZFBhbmVsPihzZWxmKV0gKE5TQXJyYXk8VUlN
ZW51RWxlbWVudCAqPiAqKSAtPiBVSU1lbnUgKiB7CiAgICAgICAgIE5TQXJyYXkgKmFjdGlvbnM7
Ci0gICAgICAgIE5TQXJyYXkgKm1lZGlhVHlwZXMgPSBVVElzRm9yTUlNRVR5cGVzKF9taW1lVHlw
ZXMuZ2V0KCkpLmFsbE9iamVjdHM7CiAKLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCi0gICAgICAgIEJPT0wgYWxsb3dzSW1hZ2VNZWRpYVR5cGUgPSAhbWVkaWFUeXBlcy5jb3Vu
dCB8fCBhcnJheUNvbnRhaW5zVVRJVGhhdENvbmZvcm1zVG8obWVkaWFUeXBlcywga1VUVHlwZUlt
YWdlKTsKLSAgICAgICAgQk9PTCBhbGxvd3NWaWRlb01lZGlhVHlwZSA9ICFtZWRpYVR5cGVzLmNv
dW50IHx8IGFycmF5Q29udGFpbnNVVElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVzLCBrVVRUeXBl
TW92aWUpOwotQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIGF1dG8g
c3Ryb25nU2VsZiA9IHdlYWtTZWxmLmdldCgpOwotICAgICAgICAKICAgICAgICAgaWYgKCFzdHJv
bmdTZWxmKQogICAgICAgICAgICAgcmV0dXJuIG5pbDsKLSAgICAgICAgCisKICAgICAgICAgc2Vs
Zi0+X2lzUHJlc2VudGluZ1N1Yk1lbnUgPSBOTzsKICAgICAgICAgVUlBY3Rpb24gKmJyb3dzZUFj
dGlvbiA9IFtVSUFjdGlvbiBhY3Rpb25XaXRoVGl0bGU6W3N0cm9uZ1NlbGYgX2Jyb3dzZUZpbGVz
QnV0dG9uTGFiZWxdIGltYWdlOltVSUltYWdlIHN5c3RlbUltYWdlTmFtZWQ6QCJlbGxpcHNpcyJd
IGlkZW50aWZpZXI6QCJicm93c2UiIGhhbmRsZXI6XihfX2tpbmRvZiBVSUFjdGlvbiAqYWN0aW9u
KSB7CiAgICAgICAgICAgICBzZWxmLT5faXNQcmVzZW50aW5nU3ViTWVudSA9IFlFUzsKQEAgLTQ1
Miw3ICs0NjMsNyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAg
fV07CiAKICAgICAgICAgaWYgKFtVSUltYWdlUGlja2VyQ29udHJvbGxlciBpc1NvdXJjZVR5cGVB
dmFpbGFibGU6VUlJbWFnZVBpY2tlckNvbnRyb2xsZXJTb3VyY2VUeXBlQ2FtZXJhXSkgewotICAg
ICAgICAgICAgTlNTdHJpbmcgKmNhbWVyYVN0cmluZyA9IFtzdHJvbmdTZWxmIF9jYW1lcmFCdXR0
b25MYWJlbEFsbG93aW5nUGhvdG86YWxsb3dzSW1hZ2VNZWRpYVR5cGUgYWxsb3dpbmdWaWRlbzph
bGxvd3NWaWRlb01lZGlhVHlwZV07CisgICAgICAgICAgICBOU1N0cmluZyAqY2FtZXJhU3RyaW5n
ID0gW3N0cm9uZ1NlbGYgX2NhbWVyYUJ1dHRvbkxhYmVsXTsKICAgICAgICAgICAgIFVJQWN0aW9u
ICpjYW1lcmFBY3Rpb24gPSBbVUlBY3Rpb24gYWN0aW9uV2l0aFRpdGxlOmNhbWVyYVN0cmluZyBp
bWFnZTpbVUlJbWFnZSBzeXN0ZW1JbWFnZU5hbWVkOkAiY2FtZXJhLmZpbGwiXSBpZGVudGlmaWVy
OkAiY2FtZXJhIiBoYW5kbGVyOl4oX19raW5kb2YgVUlBY3Rpb24gKmFjdGlvbikgewogICAgICAg
ICAgICAgICAgIF91c2luZ0NhbWVyYSA9IFlFUzsKICAgICAgICAgICAgICAgICBzZWxmLT5faXNQ
cmVzZW50aW5nU3ViTWVudSA9IFlFUzsKQEAgLTQ5OSwxMCArNTEwLDggQEAgQUxMT1dfREVQUkVD
QVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKIC0gKHZvaWQpc2hvd0ZpbGVQaWNrZXJNZW51CiB7Ci0g
ICAgTlNBcnJheSAqbWVkaWFUeXBlcyA9IFVUSXNGb3JNSU1FVHlwZXMoX21pbWVUeXBlcy5nZXQo
KSkuYWxsT2JqZWN0czsKLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCi0gICAg
TlNBcnJheSAqZG9jdW1lbnRUeXBlcyA9IG1lZGlhVHlwZXMuY291bnQgPyBtZWRpYVR5cGVzIDog
QFsoX19icmlkZ2UgTlNTdHJpbmcgKilrVVRUeXBlSXRlbV07Ci1BTExPV19ERVBSRUNBVEVEX0RF
Q0xBUkFUSU9OU19FTkQKKyAgICBOU0FycmF5ICptZWRpYVR5cGVzID0gW19hY2NlcHRlZFVUSXMg
YWxsT2JqZWN0c107CisgICAgTlNBcnJheSAqZG9jdW1lbnRUeXBlcyA9IG1lZGlhVHlwZXMuY291
bnQgPyBtZWRpYVR5cGVzIDogQFsgVVRUeXBlSXRlbS5pZGVudGlmaWVyIF07CiAgICAgCiAgICAg
X2RvY3VtZW50UGlja2VyQ29udHJvbGxlciA9IGFkb3B0TlMoW1tVSURvY3VtZW50UGlja2VyVmll
d0NvbnRyb2xsZXIgYWxsb2NdIGluaXRXaXRoRG9jdW1lbnRUeXBlczpkb2N1bWVudFR5cGVzIGlu
TW9kZTpVSURvY3VtZW50UGlja2VyTW9kZUltcG9ydF0pOwogICAgIFtfZG9jdW1lbnRQaWNrZXJD
b250cm9sbGVyIHNldEFsbG93c011bHRpcGxlU2VsZWN0aW9uOl9hbGxvd011bHRpcGxlRmlsZXNd
OwpAQCAtNTE3LDE5ICs1MjYsMTMgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5E
CiB7CiAgICAgLy8gRklYTUUgNDk5NjE1ODk6IFN1cHBvcnQgcGlja2luZyBtZWRpYSB3aXRoIFVJ
SW1hZ2VQaWNrZXJDb250cm9sbGVyCiAjaWYgSEFWRShVSUNPTlRFWFRNRU5VX0xPQ0FUSU9OKQot
ICAgIE5TQXJyYXkgKm1lZGlhVHlwZXMgPSBVVElzRm9yTUlNRVR5cGVzKF9taW1lVHlwZXMuZ2V0
KCkpLmFsbE9iamVjdHM7Ci1BTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotICAg
IEJPT0wgYWxsb3dzSW1hZ2VNZWRpYVR5cGUgPSAhbWVkaWFUeXBlcy5jb3VudCB8fCBhcnJheUNv
bnRhaW5zVVRJVGhhdENvbmZvcm1zVG8obWVkaWFUeXBlcywga1VUVHlwZUltYWdlKTsKLSAgICBC
T09MIGFsbG93c1ZpZGVvTWVkaWFUeXBlID0gIW1lZGlhVHlwZXMuY291bnQgfHwgYXJyYXlDb250
YWluc1VUSVRoYXRDb25mb3Jtc1RvKG1lZGlhVHlwZXMsIGtVVFR5cGVNb3ZpZSk7Ci1BTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKLSAgICBCT09MIHNob3VsZFByZXNlbnREb2N1bWVu
dE1lbnVWaWV3Q29udHJvbGxlciA9IGFsbG93c0ltYWdlTWVkaWFUeXBlIHx8IGFsbG93c1ZpZGVv
TWVkaWFUeXBlOwotICAgIGlmIChzaG91bGRQcmVzZW50RG9jdW1lbnRNZW51Vmlld0NvbnRyb2xs
ZXIpIHsKKyAgICBpZiAoX2FsbG93ZWRJbWFnZVBpY2tlclR5cGVzLmNvbnRhaW5zQW55KHsgV0tG
aWxlVXBsb2FkUGFuZWxJbWFnZVBpY2tlclR5cGU6OkltYWdlLCBXS0ZpbGVVcGxvYWRQYW5lbElt
YWdlUGlja2VyVHlwZTo6VmlkZW8gfSkpIHsKICAgICAgICAgW3NlbGYgZW5zdXJlQ29udGV4dE1l
bnVJbnRlcmFjdGlvbl07CiAgICAgICAgIFtfZG9jdW1lbnRDb250ZXh0TWVudUludGVyYWN0aW9u
IF9wcmVzZW50TWVudUF0TG9jYXRpb246X2ludGVyYWN0aW9uUG9pbnRdOwogICAgIH0gZWxzZSAv
LyBJbWFnZSBhbmQgVmlkZW8gdHlwZXMgYXJlIG5vdCBhY2NlcHRlZCBzbyBieXBhc3MgdGhlIG1l
bnUgYW5kIG9wZW4gdGhlIGZpbGUgcGlja2VyIGRpcmVjdGx5LgogI2VuZGlmCiAgICAgICAgIFtz
ZWxmIHNob3dGaWxlUGlja2VyTWVudV07Ci0gICAgCisKICAgICAvLyBDbGVhciBvdXQgdGhlIHZp
ZXcgY29udHJvbGxlciB3ZSBqdXN0IHByZXNlbnRlZC4gRG9uJ3Qgc2F2ZSBhIHJlZmVyZW5jZSB0
byB0aGUgVUlEb2N1bWVudFBpY2tlclZpZXdDb250cm9sbGVyIGFzIGl0IGlzIHNlbGYgZGlzbWlz
c2luZy4KICAgICBfcHJlc2VudGF0aW9uVmlld0NvbnRyb2xsZXIgPSBuaWw7CiB9CkBAIC04MTQs
MTEgKzgxNywxMSBAQCBzdGF0aWMgTlNTdHJpbmcgKmRpc3BsYXlTdHJpbmdGb3JEb2N1bWVudHNB
dFVSTHMoTlNBcnJheTxOU1VSTCAqPiAqdXJscykKIAogLSAodm9pZClfdXBsb2FkSXRlbUZyb21N
ZWRpYUluZm86KE5TRGljdGlvbmFyeSAqKWluZm8gc3VjY2Vzc0Jsb2NrOih2b2lkICheKShfV0tG
aWxlVXBsb2FkSXRlbSAqKSlzdWNjZXNzQmxvY2sgZmFpbHVyZUJsb2NrOih2b2lkICheKSh2b2lk
KSlmYWlsdXJlQmxvY2sKIHsKLSAgICBOU1N0cmluZyAqbWVkaWFUeXBlID0gW2luZm8gb2JqZWN0
Rm9yS2V5OlVJSW1hZ2VQaWNrZXJDb250cm9sbGVyTWVkaWFUeXBlXTsKKyAgICBOU1N0cmluZyAq
bWVkaWFUeXBlVVRJID0gW2luZm8gb2JqZWN0Rm9yS2V5OlVJSW1hZ2VQaWNrZXJDb250cm9sbGVy
TWVkaWFUeXBlXTsKKyAgICBVVFR5cGUgKm1lZGlhVHlwZSA9IFtVVFR5cGUgdHlwZVdpdGhJZGVu
dGlmaWVyOm1lZGlhVHlwZVVUSV07CiAKLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JF
R0lOCiAgICAgLy8gRm9yIHZpZGVvcyBmcm9tIHRoZSBleGlzdGluZyBsaWJyYXJ5IG9yIGNhbWVy
YSwgdGhlIG1lZGlhIFVSTCB3aWxsIGdpdmUgdXMgYSBmaWxlIHBhdGguCi0gICAgaWYgKFVUVHlw
ZUNvbmZvcm1zVG8oKENGU3RyaW5nUmVmKW1lZGlhVHlwZSwga1VUVHlwZU1vdmllKSkgeworICAg
IGlmIChbbWVkaWFUeXBlIGNvbmZvcm1zVG9UeXBlOlVUVHlwZU1vdmllXSkgewogICAgICAgICBO
U1VSTCAqbWVkaWFVUkwgPSBbaW5mbyBvYmplY3RGb3JLZXk6VUlJbWFnZVBpY2tlckNvbnRyb2xs
ZXJNZWRpYVVSTF07CiAgICAgICAgIGlmICghW21lZGlhVVJMIGlzRmlsZVVSTF0pIHsKICAgICAg
ICAgICAgIExPR19FUlJPUigiV0tGaWxlVXBsb2FkUGFuZWw6IEV4cGVjdGVkIG1lZGlhIFVSTCB0
byBiZSBhIGZpbGUgcGF0aCwgaXQgd2FzIG5vdCIpOwpAQCAtODMxLDEzICs4MzQsMTIgQEAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIGlmICghVVRUeXBlQ29uZm9ybXNUbygoQ0ZTdHJpbmdSZWYpbWVkaWFUeXBlLCBrVVRU
eXBlSW1hZ2UpKSB7CisgICAgaWYgKCFbbWVkaWFUeXBlIGNvbmZvcm1zVG9UeXBlOlVUVHlwZUlt
YWdlXSkgewogICAgICAgICBMT0dfRVJST1IoIldLRmlsZVVwbG9hZFBhbmVsOiBVbmV4cGVjdGVk
IG1lZGlhIHR5cGUuIEV4cGVjdGVkIGltYWdlIG9yIHZpZGVvLCBnb3Q6ICVAIiwgbWVkaWFUeXBl
KTsKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGZhaWx1cmVCbG9jaygp
OwogICAgICAgICByZXR1cm47CiAgICAgfQotQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogICAgIGlmIChOU1VSTCAqaW1hZ2VVUkwg
PSBpbmZvW1VJSW1hZ2VQaWNrZXJDb250cm9sbGVySW1hZ2VVUkxdKSB7CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZTY1MWNiMGE4NTYyN2I3NTBk
NDNiYzQ5MjA2MThiNGExMzFkNjhmNy4uZTBkOTQ1YTljYTk5NmViNzI1ZTI2YmFjMTRlNGUyODBi
MDUxYjRmMyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTAzLTA5ICBBZGl0eWEgS2VlcnRoaSAgPGFrZWVydGhp
QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBSZWZhY3RvciBXS0ZpbGVVcGxvYWRQYW5lbCB0
byB1c2UgVW5pZm9ybVR5cGVJZGVudGlmaWVycworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIzMDAwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS83NTIz
Nzc3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRlZCBVSVNjcmlwdENvbnRyb2xsZXIgaG9va3MgdG8gcmV0cmlldmUgdGhlIHR5cGUgaWRlbnRp
ZmllcnMgZm9yCisgICAgICAgIGEgcHJlc2VudGVkIGZpbGUgdXBsb2FkIHBhbmVsLgorCisgICAg
ICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRD
b250cm9sbGVyLmlkbDoKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4
dC9VSVNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVy
OjpmaWxlUGlja2VyQWNjZXB0ZWRUeXBlSWRlbnRpZmllcnMpOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5oOgorICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdUUjo6VUlT
Y3JpcHRDb250cm9sbGVySU9TOjpmaWxlUGlja2VyQWNjZXB0ZWRUeXBlSWRlbnRpZmllcnMpOgor
CiAyMDIxLTAzLTA1ICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbd2Via2l0c2NtcHldIFN0YW5kYXJkaXplIHRpbWV6b25lIG9mIG1vY2sgc3ZuIHNlcnZl
cgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmlu
ZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKaW5kZXggMDA1NWU3
ZjhlYzlhOTlmNWYyYTdiZjNiZTY3NjY1MDhjZjI1MjliOC4uODFlZTJhYzkwNTUxOGU1NjdiYjVj
ZDA4ZDU1YWE0ODFjOTlhMGEyYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAorKysgYi9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRy
b2xsZXIuaWRsCkBAIC0yMDMsNiArMjAzLDcgQEAgaW50ZXJmYWNlIFVJU2NyaXB0Q29udHJvbGxl
ciB7CiAgICAgLy8gRXF1aXZhbGVudCBvZiBwcmVzc2luZyB0aGUgRG9uZSBidXR0b24gaW4gdGhl
IGZvcm0gYWNjZXNzb3J5IGJhci4KICAgICB1bmRlZmluZWQgZGlzbWlzc0Zvcm1BY2Nlc3NvcnlW
aWV3KCk7CiAKKyAgICByZWFkb25seSBhdHRyaWJ1dGUgb2JqZWN0IGZpbGVQaWNrZXJBY2NlcHRl
ZFR5cGVJZGVudGlmaWVyczsKICAgICB1bmRlZmluZWQgZGlzbWlzc0ZpbGVQaWNrZXIob2JqZWN0
IGNhbGxiYWNrKTsKIAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcgdGV4dENvbnRl
bnRUeXBlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRl
eHQvVUlTY3JpcHRDb250cm9sbGVyLmggYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0
Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaAppbmRleCAxMDdmYzRiODE5OWM4ODAzYTVjNTJh
N2Q0YzY0YzI2NDQzNWJlNWE0Li4wOTYxY2Q5OTBmNGNlMWIzYjYxMmMyMjhjZTIxMTY1ZDkxZGQ3
MjYxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9V
SVNjcmlwdENvbnRyb2xsZXIuaAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0
Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaApAQCAtMjExLDYgKzIxMSw3IEBAIHB1YmxpYzoK
IAogICAgIC8vIEZvcm0gQ29udHJvbHMKICAgICAKKyAgICB2aXJ0dWFsIEpTT2JqZWN0UmVmIGZp
bGVQaWNrZXJBY2NlcHRlZFR5cGVJZGVudGlmaWVycygpIHsgbm90SW1wbGVtZW50ZWQoKTsgcmV0
dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0ZpbGVQaWNrZXIoSlNWYWx1
ZVJlZikgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIGRpc21pc3NGb3Jt
QWNjZXNzb3J5VmlldygpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogICAgIHZpcnR1YWwgdm9pZCBz
ZWxlY3RGb3JtQWNjZXNzb3J5UGlja2VyUm93KGxvbmcpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVy
SU9TLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1Mu
aAppbmRleCA3YTM2OTBjZDE4MjkwMTJlNzE1MWE1ZjJmZDRhZjBkMTAyNTgxNmMxLi45ODQ4MjA3
ZDE0NmJjOThiNTYzZDgwMzQ3NDhmOTA4NWViOGM1ZDA5IDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MuaAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MuaApAQCAtODAsNiArODAsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgcmF3S2V5VXAoSlNTdHJpbmdSZWYpIG92ZXJyaWRlOwogCiAg
ICAgdm9pZCBkaXNtaXNzRm9ybUFjY2Vzc29yeVZpZXcoKSBvdmVycmlkZTsKKyAgICBKU09iamVj
dFJlZiBmaWxlUGlja2VyQWNjZXB0ZWRUeXBlSWRlbnRpZmllcnMoKSBvdmVycmlkZTsKICAgICB2
b2lkIGRpc21pc3NGaWxlUGlja2VyKEpTVmFsdWVSZWYpIG92ZXJyaWRlOwogICAgIEpTUmV0YWlu
UHRyPEpTU3RyaW5nUmVmPiBzZWxlY3RGb3JtUG9wb3ZlclRpdGxlKCkgY29uc3Qgb3ZlcnJpZGU7
CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHRleHRDb250ZW50VHlwZSgpIGNvbnN0IG92
ZXJyaWRlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRD
b250cm9sbGVySU9TLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250
cm9sbGVySU9TLm1tCmluZGV4IGE4NzRmYjI1NzRjYjI4YmIzMzMwMmZmYTRkMmZiZmQxM2M1YTZi
YTQuLjdjMTBmZmEyZGQyODQzNDJiZDIzNzUwNGNjNzJmN2M2YWIxODhmYjAgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KQEAg
LTU1Myw2ICs1NTMsMTIgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXJJT1M6OmRpc21pc3NGb3Jt
QWNjZXNzb3J5VmlldygpCiAgICAgW3dlYlZpZXcoKSBkaXNtaXNzRm9ybUFjY2Vzc29yeVZpZXdd
OwogfQogCitKU09iamVjdFJlZiBVSVNjcmlwdENvbnRyb2xsZXJJT1M6OmZpbGVQaWNrZXJBY2Nl
cHRlZFR5cGVJZGVudGlmaWVycygpCit7CisgICAgTlNBcnJheSAqYWNjZXB0ZWRUeXBlSWRlbnRp
ZmllcnMgPSBbd2ViVmlldygpIF9maWxlUGlja2VyQWNjZXB0ZWRUeXBlSWRlbnRpZmllcnNdOwor
ICAgIHJldHVybiBKU1ZhbHVlVG9PYmplY3QobV9jb250ZXh0LT5qc0NvbnRleHQoKSwgW0pTVmFs
dWUgdmFsdWVXaXRoT2JqZWN0OmFjY2VwdGVkVHlwZUlkZW50aWZpZXJzIGluQ29udGV4dDpbSlND
b250ZXh0IGNvbnRleHRXaXRoSlNHbG9iYWxDb250ZXh0UmVmOm1fY29udGV4dC0+anNDb250ZXh0
KCldXS5KU1ZhbHVlUmVmLCBudWxscHRyKTsKK30KKwogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXJJ
T1M6OmRpc21pc3NGaWxlUGlja2VyKEpTVmFsdWVSZWYgY2FsbGJhY2spCiB7CiAgICAgVGVzdFJ1
bm5lcldLV2ViVmlldyAqd2ViVmlldyA9IHRoaXMtPndlYlZpZXcoKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA0NjQ3MjQw
NGI0NzQ3OWJlZjA3ODMwYjZiMzY1NWM4MzRjNzc1NzIxLi41YjViNGI3OGViNzBkODg2MjAwOWQz
YTFkNWY3ZGE3YjU3YzlhOTAwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDMtMDkgIEFk
aXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFJlZmFj
dG9yIFdLRmlsZVVwbG9hZFBhbmVsIHRvIHVzZSBVbmlmb3JtVHlwZUlkZW50aWZpZXJzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMwMDAKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzc1MjM3Nzc0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIGEgdGVzdCB0byB2ZXJpZnkgdGhhdCB0aGUgdmFs
dWUgb2YgdGhlIGFjY2VwdCBhdHRyaWJ1dGUgZm9yIGZpbGUKKyAgICAgICAgaW5wdXRzIGlzIG1h
cHBlZCB0byB0aGUgY29ycmVjdCBzZXQgb2YgdHlwZSBpZGVudGlmaWVycy4KKworICAgICAgICAq
IGZhc3QvZm9ybXMvaW9zL2ZpbGUtdXBsb2FkLXBhbmVsLWFjY2VwdC1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW9zL2ZpbGUtdXBsb2FkLXBhbmVsLWFjY2VwdC5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiByZXNvdXJjZXMvdWktaGVscGVyLmpzOgorICAgICAgICAo
d2luZG93LlVJSGVscGVyLmRpc21pc3NGaWxlUGlja2VyKToKKyAgICAgICAgKHdpbmRvdy5VSUhl
bHBlci5maWxlUGlja2VyQWNjZXB0ZWRUeXBlSWRlbnRpZmllcnMpOgorCiAyMDIxLTAzLTA1ICBK
b24gTGVlICA8am9ubGVlQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVUF0gVGVzdCBmYXN0L21l
ZGlhc3RyZWFtL21lZGlhLWVsZW1lbnQtY3VycmVudC10aW1lLmh0bWwgZmFpbHMgd2hlbiBtZWRp
YSBpbiBHUFUgUHJvY2VzcyBpcyBlbmFibGVkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2Zvcm1zL2lvcy9maWxlLXVwbG9hZC1wYW5lbC1hY2NlcHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZmlsZS11cGxvYWQtcGFuZWwtYWNjZXB0LWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42OTgzNThkNzExMTA0NTU1NDVhYTVlODMxYWMxODM5YmNlMDA3MjUzCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZmlsZS11cGxvYWQt
cGFuZWwtYWNjZXB0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDM2IEBACitUZXN0cyB0aGF0IHRo
ZSBhY2NlcHQgYXR0cmlidXRlIGZvciBmaWxlIGlucHV0cyBpcyBtYXBwZWQgdG8gdGhlIGNvcnJl
Y3Qgc2V0IG9mIHR5cGUgaWRlbnRpZmllcnMgb24gaU9TLgorCitPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCisKKworKiBhY2NlcHQgPQorUEFTUyBhcmVBcnJheXNFcXVhbChpdGVtcywgW10pIGlz
IHRydWUKKworKiBhY2NlcHQgPSBpbWFnZS8qCitQQVNTIGFyZUFycmF5c0VxdWFsKGl0ZW1zLCBb
InB1YmxpYy5pbWFnZSJdKSBpcyB0cnVlCisKKyogYWNjZXB0ID0gdmlkZW8vKgorUEFTUyBhcmVB
cnJheXNFcXVhbChpdGVtcywgWyJwdWJsaWMubW92aWUiXSkgaXMgdHJ1ZQorCisqIGFjY2VwdCA9
IGltYWdlLyosIHZpZGVvLyoKK1BBU1MgYXJlQXJyYXlzRXF1YWwoaXRlbXMsIFsicHVibGljLmlt
YWdlIiwgInB1YmxpYy5tb3ZpZSJdKSBpcyB0cnVlCisKKyogYWNjZXB0ID0gLlBORywgLkdJRgor
UEFTUyBhcmVBcnJheXNFcXVhbChpdGVtcywgWyJjb20uY29tcHVzZXJ2ZS5naWYiLCAicHVibGlj
LnBuZyJdKSBpcyB0cnVlCisKKyogYWNjZXB0ID0gLlBORywgLkdJRiwgLk1PVgorUEFTUyBhcmVB
cnJheXNFcXVhbChpdGVtcywgWyJjb20uYXBwbGUucXVpY2t0aW1lLW1vdmllIiwgImNvbS5jb21w
dXNlcnZlLmdpZiIsICJwdWJsaWMucG5nIl0pIGlzIHRydWUKKworKiBhY2NlcHQgPSAuVFhUCitQ
QVNTIGFyZUFycmF5c0VxdWFsKGl0ZW1zLCBbInB1YmxpYy5wbGFpbi10ZXh0Il0pIGlzIHRydWUK
KworKiBhY2NlcHQgPSAuUERGCitQQVNTIGFyZUFycmF5c0VxdWFsKGl0ZW1zLCBbImNvbS5hZG9i
ZS5wZGYiXSkgaXMgdHJ1ZQorCisqIGFjY2VwdCA9IC5QREYsIC5UWFQKK1BBU1MgYXJlQXJyYXlz
RXF1YWwoaXRlbXMsIFsiY29tLmFkb2JlLnBkZiIsICJwdWJsaWMucGxhaW4tdGV4dCJdKSBpcyB0
cnVlCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9maWxlLXVwbG9hZC1wYW5l
bC1hY2NlcHQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2ZpbGUtdXBsb2FkLXBh
bmVsLWFjY2VwdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1YmZlYzM2MGQzMGI2NDJiYWY5ZDJkODY4ZjY5
MjExY2YxMmM1MTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lv
cy9maWxlLXVwbG9hZC1wYW5lbC1hY2NlcHQuaHRtbApAQCAtMCwwICsxLDQ2IEBACis8IURPQ1RZ
UEUgaHRtbD4gPCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyB1c2VGbGV4aWJsZVZpZXdwb3J0PXRy
dWUsIHNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbD1mYWxzZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4K
KzxtZXRhIG5hbWU9InZpZXdwb3J0IiBjb250ZW50PSJ3aWR0aD1kZXZpY2Utd2lkdGgiPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPGlucHV0IGlkPSJmaWxlSW5wdXQiIHR5cGU9ImZpbGUiPgorPHNjcmlwdD4K
KworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK2FzeW5jIGZ1bmN0aW9uIHJ1blRlc3QoYWNjZXB0
LCBleHBlY3RlZElkZW50aWZpZXJzKQoreworICAgIGRlYnVnKCIqIGFjY2VwdCA9ICIgKyBhY2Nl
cHQpOworICAgIGZpbGVJbnB1dC5hY2NlcHQgPSBhY2NlcHQ7CisKKyAgICBhd2FpdCBVSUhlbHBl
ci5hY3RpdmF0ZUVsZW1lbnQoZmlsZUlucHV0KTsKKworICAgIGl0ZW1zID0gYXdhaXQgVUlIZWxw
ZXIuZmlsZVBpY2tlckFjY2VwdGVkVHlwZUlkZW50aWZpZXJzKCk7CisgICAgc2hvdWxkQmVUcnVl
KCJhcmVBcnJheXNFcXVhbChpdGVtcywgIiArIGV4cGVjdGVkSWRlbnRpZmllcnMgKyAiKSIpOwor
CisgICAgZGVidWcoIiIpOworICAgIGF3YWl0IFVJSGVscGVyLmRpc21pc3NGaWxlUGlja2VyKCk7
Cit9CisKK2FkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7CisgICAgZGVzY3Jp
cHRpb24oIlRlc3RzIHRoYXQgdGhlIGFjY2VwdCBhdHRyaWJ1dGUgZm9yIGZpbGUgaW5wdXRzIGlz
IG1hcHBlZCB0byB0aGUgY29ycmVjdCBzZXQgb2YgdHlwZSBpZGVudGlmaWVycyBvbiBpT1MuIik7
CisKKyAgICBhd2FpdCBydW5UZXN0KCIiLCAnW10nKTsKKyAgICBhd2FpdCBydW5UZXN0KCJpbWFn
ZS8qIiwgJ1sicHVibGljLmltYWdlIl0nKTsKKyAgICBhd2FpdCBydW5UZXN0KCJ2aWRlby8qIiwg
J1sicHVibGljLm1vdmllIl0nKTsKKyAgICBhd2FpdCBydW5UZXN0KCJpbWFnZS8qLCB2aWRlby8q
IiwgJ1sicHVibGljLmltYWdlIiwgInB1YmxpYy5tb3ZpZSJdJyk7CisgICAgYXdhaXQgcnVuVGVz
dCgiLlBORywgLkdJRiIsICdbImNvbS5jb21wdXNlcnZlLmdpZiIsICJwdWJsaWMucG5nIl0nKTsK
KyAgICBhd2FpdCBydW5UZXN0KCIuUE5HLCAuR0lGLCAuTU9WIiwgJ1siY29tLmFwcGxlLnF1aWNr
dGltZS1tb3ZpZSIsICJjb20uY29tcHVzZXJ2ZS5naWYiLCAicHVibGljLnBuZyJdJyk7CisgICAg
YXdhaXQgcnVuVGVzdCgiLlRYVCIsICdbInB1YmxpYy5wbGFpbi10ZXh0Il0nKTsKKyAgICBhd2Fp
dCBydW5UZXN0KCIuUERGIiwgJ1siY29tLmFkb2JlLnBkZiJdJyk7CisgICAgYXdhaXQgcnVuVGVz
dCgiLlBERiwgLlRYVCIsICdbImNvbS5hZG9iZS5wZGYiLCAicHVibGljLnBsYWluLXRleHQiXScp
OworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9KTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzIGIvTGF5
b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwppbmRleCAxZWQyZWEzMjgxZmJlYjQ0NzY3
NzI4ZGY5YjAzNzUyNDQwMzhmNzRhLi40MGUxZjYxNGQzZmViY2FmYjVlZjc1NWY2NWNkN2JlNmY5
YzBkODU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCisr
KyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKQEAgLTkxMyw2ICs5MTMsMzEg
QEAgd2luZG93LlVJSGVscGVyID0gY2xhc3MgVUlIZWxwZXIgewogICAgICAgICB9KTsKICAgICB9
CiAKKyAgICBzdGF0aWMgZGlzbWlzc0ZpbGVQaWNrZXIoKQorICAgIHsKKyAgICAgICAgaWYgKCF0
aGlzLmlzV2ViS2l0MigpIHx8ICF0aGlzLmlzSU9TRmFtaWx5KCkpCisgICAgICAgICAgICByZXR1
cm4gUHJvbWlzZS5yZXNvbHZlKCk7CisKKyAgICAgICAgY29uc3Qgc2NyaXB0ID0gYHVpQ29udHJv
bGxlci5kaXNtaXNzRmlsZVBpY2tlcigoKSA9PiB7CisgICAgICAgICAgICB1aUNvbnRyb2xsZXIu
dWlTY3JpcHRDb21wbGV0ZSgpOworICAgICAgICB9KWA7CisgICAgICAgIHJldHVybiBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoc2NyaXB0LCByZXNvbHZlKSk7
CisgICAgfQorCisgICAgc3RhdGljIGZpbGVQaWNrZXJBY2NlcHRlZFR5cGVJZGVudGlmaWVycygp
CisgICAgeworICAgICAgICBpZiAoIXRoaXMuaXNXZWJLaXQyKCkgfHwgIXRoaXMuaXNJT1NGYW1p
bHkoKSkKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTsKKworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICB0ZXN0UnVubmVyLnJ1
blVJU2NyaXB0KGAoKCkgPT4geworICAgICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlw
dENvbXBsZXRlKEpTT04uc3RyaW5naWZ5KHVpQ29udHJvbGxlci5maWxlUGlja2VyQWNjZXB0ZWRU
eXBlSWRlbnRpZmllcnMpKTsKKyAgICAgICAgICAgIH0pKClgLCBqc29uU3RyaW5nID0+IHsKKyAg
ICAgICAgICAgICAgICByZXNvbHZlKEpTT04ucGFyc2UoanNvblN0cmluZykpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0pOworICAgIH0KKwogICAgIHN0YXRpYyBhY3RpdmF0ZURhdGFMaXN0
U3VnZ2VzdGlvbihpbmRleCkgewogICAgICAgICBjb25zdCBzY3JpcHQgPSBgdWlDb250cm9sbGVy
LmFjdGl2YXRlRGF0YUxpc3RTdWdnZXN0aW9uKCR7aW5kZXh9LCAoKSA9PiB7CiAgICAgICAgICAg
ICB1aUNvbnRyb2xsZXIudWlTY3JpcHRDb21wbGV0ZSgiIik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>422778</attachid>
            <date>2021-03-09 16:52:13 -0800</date>
            <delta_ts>2021-03-17 13:10:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-223000-20210309195209.patch</filename>
            <type>text/plain</type>
            <size>32565</size>
            <attacher name="Aditya Keerthi">akeerthi</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczOTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg2MmY0ZWE0NzZmM2Q2NTQy
MWFlMmMwZDRmZTMyNTNmMjQzNDVjMjguLjQ1YWMyYTczZGM3OWJjYWFmNDA1YjU1OWFhYWJmOWI4
NDE0ZTQxY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjEgQEAKKzIwMjEtMDMtMDkgIEFkaXR5YSBL
ZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFJlZmFjdG9yIFdL
RmlsZVVwbG9hZFBhbmVsIHRvIHVzZSBVbmlmb3JtVHlwZUlkZW50aWZpZXJzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjMwMDAKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzc1MjM3Nzc0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFVuaWZvcm0gdHlwZSBpZGVudGlmaWVyIEFQSXMgaW4gTW9iaWxlQ29y
ZVNlcnZpY2VzIHdlcmUgZGVwcmVjYXRlZCBpbgorICAgICAgICBpT1MgMTQuIEluc3RlYWQsIHVz
ZSB0aGUgbmV3IEFQSXMgaW4gdGhlIFVuaWZvcm1UeXBlSWRlbnRpZmllcnMKKyAgICAgICAgZnJh
bWV3b3JrLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyBjbGVhbnMgdXAgaW5zdGFuY2VzIG9m
IGNvZGUgZHVwbGljYXRpb24gd2hlbiBjb21wYXJpbmcKKyAgICAgICAgdW5pZm9ybSB0eXBlIGlk
ZW5maWZpZXJzIGFuZCBpbmNyZWFzZXMgdGhlIHRlc3QgY292ZXJhZ2UgZm9yCisgICAgICAgIFdL
RmlsZVVwbG9hZFBhbmVsLgorCisgICAgICAgIFRlc3Q6IGZhc3QvZm9ybXMvaW9zL2ZpbGUtdXBs
b2FkLXBhbmVsLWFjY2VwdC5odG1sCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9XZWJLaXQu
eGNjb25maWc6CisKKyAgICAgICAgTGluayBVbmlmb3JtVHlwZUlkZW50aWZpZXJzLmZyYW1ld29y
ayBvbiB3YXRjaE9TIGFuZCB0dk9TLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tX
ZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaDoKKworICAgICAgICBFeHBvc2UgX2ZpbGVQaWNr
ZXJBY2NlcHRlZFR5cGVJZGVudGlmaWVycyB0byBlbmFibGUgdGVzdGluZyBvZiBhY2NlcHRlZAor
ICAgICAgICBmaWxlIHR5cGVzLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJW
aWV3VGVzdGluZ0lPUy5tbToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9maWxlUGlja2VyQWNjZXB0
ZWRUeXBlSWRlbnRpZmllcnNdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IGZpbGVQaWNrZXJBY2NlcHRl
ZFR5cGVJZGVudGlmaWVyc10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxl
VXBsb2FkUGFuZWwuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9h
ZFBhbmVsLm1tOgorICAgICAgICAoc2V0Q29udGFpbnNVVElUaGF0Q29uZm9ybXNUbyk6CisKKyAg
ICAgICAgTW9kaWZpZWQgdGhpcyBoZWxwZXIgbWV0aG9kIHRvIHRha2UgaW4gYW4gTlNTZXQgcmF0
aGVyIHRoYW4gYW4gTlNBcnJheQorICAgICAgICB0byBhdm9pZCB1bm5lY2Vzc2FyeSBjb252ZXJz
aW9uLiBSZXBsYWNlZCBNb2JpbGVDb3JlU2VydmljZXMgQVBJIHVzYWdlCisgICAgICAgIHdpdGgg
VW5pZm9ybVR5cGVJZGVudGlmaWVycyBBUEkuCisKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFu
ZWwgcHJlc2VudFdpdGhQYXJhbWV0ZXJzOnJlc3VsdExpc3RlbmVyOl0pOgorCisgICAgICAgIERl
dGVybWluZSB0aGUgYWNjZXB0ZWQgVVRJcyBhbmQgaW1hZ2UgcGlja2VyIGNvbmZpZ3VyYXRpb24g
b25jZSBiZWZvcmUKKyAgICAgICAgcHJlc2VudGF0aW9uIGFuZCBzdG9yZSB0aGVtIGluIG1lbWJl
ciB2YXJpYWJsZXMgdG8gcmVkdWNlIGNvZGUKKyAgICAgICAgZHVwbGljYXRpb24uCisKKyAgICAg
ICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgY3VycmVudEF2YWlsYWJsZUFjdGlvblRpdGxlc10pOgor
ICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBhY2NlcHRlZFR5cGVJZGVudGlmaWVyc10pOgor
CisgICAgICAgIEV4cG9zZSB0aGUgYWNjZXB0ZWQgdHlwZSBpZGVudGlmZXJzIGFzIGEgc29ydGVk
IGFycmF5IGZvciB0ZXN0aW5nLgorCisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIF9tZWRp
YVR5cGVzRm9yUGlja2VyU291cmNlVHlwZTpdKToKKyAgICAgICAgKC1bV0tGaWxlVXBsb2FkUGFu
ZWwgX2NhbWVyYUJ1dHRvbkxhYmVsXSk6CisgICAgICAgICgtW1dLRmlsZVVwbG9hZFBhbmVsIGNv
bnRleHRNZW51SW50ZXJhY3Rpb246Y29uZmlndXJhdGlvbkZvck1lbnVBdExvY2F0aW9uOl0pOgor
ICAgICAgICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBzaG93RmlsZVBpY2tlck1lbnVdKToKKyAgICAg
ICAgKC1bV0tGaWxlVXBsb2FkUGFuZWwgc2hvd0RvY3VtZW50UGlja2VyTWVudV0pOgorICAgICAg
ICAoLVtXS0ZpbGVVcGxvYWRQYW5lbCBfdXBsb2FkSXRlbUZyb21NZWRpYUluZm86c3VjY2Vzc0Js
b2NrOmZhaWx1cmVCbG9jazpdKToKKwogMjAyMS0wMy0wOCAgQWRpdHlhIEtlZXJ0aGkgIDxha2Vl
cnRoaUBhcHBsZS5jb20+CiAKICAgICAgICAgW2lPU10gPHNlbGVjdCBtdWx0aXBsZT4gZ3JvdXAg
aGVhZGVycyBhcmUgaWxsZWdpYmxlIGluIGRhcmsgbW9kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9Db25maWd1cmF0aW9ucy9XZWJLaXQueGNjb25maWcgYi9Tb3VyY2UvV2ViS2l0L0NvbmZp
Z3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwppbmRleCAxMTNmMTAxMTc3MzMyMTI4YTE1NjY1MmQ3
ZjNhNjcwMjk1ZDQxODgyLi42MGY1NDZlMWMxZTg3OGJiMGRkYTQ0ZGQ3YzA3MDliMzFlMzhkZThm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZp
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NvbmZpZ3VyYXRpb25zL1dlYktpdC54Y2NvbmZpZwpAQCAt
MTE2LDYgKzExNiwxMCBAQCBXS19VTklGT1JNX1RZUEVfSURFTlRJRklFUlNfTERGTEFHU19tYWNj
YXRhbHlzdCA9ICQoV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTXwogV0tfVU5JRk9STV9UWVBF
X0lERU5USUZJRVJTX0xERkxBR1NfSU9TX1NJTkNFXzE0ID0gLWZyYW1ld29yayBVbmlmb3JtVHlw
ZUlkZW50aWZpZXJzOwogV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1NfbWFjb3N4
ID0gJChXS19VTklGT1JNX1RZUEVfSURFTlRJRklFUlNfTERGTEFHUyQoV0tfTUFDT1NfMTIwMCkp
OwogV0tfVU5JRk9STV9UWVBFX0lERU5USUZJRVJTX0xERkxBR1NfTUFDT1NfU0lOQ0VfMTIwMCA9
IC1mcmFtZXdvcmsgVW5pZm9ybVR5cGVJZGVudGlmaWVyczsKK1dLX1VOSUZPUk1fVFlQRV9JREVO
VElGSUVSU19MREZMQUdTX3dhdGNob3MgPSAtZnJhbWV3b3JrIFVuaWZvcm1UeXBlSWRlbnRpZmll
cnM7CitXS19VTklGT1JNX1RZUEVfSURFTlRJRklFUlNfTERGTEFHU193YXRjaHNpbXVsYXRvciA9
IC1mcmFtZXdvcmsgVW5pZm9ybVR5cGVJZGVudGlmaWVyczsKK1dLX1VOSUZPUk1fVFlQRV9JREVO
VElGSUVSU19MREZMQUdTX2FwcGxldHZvcyA9IC1mcmFtZXdvcmsgVW5pZm9ybVR5cGVJZGVudGlm
aWVyczsKK1dLX1VOSUZPUk1fVFlQRV9JREVOVElGSUVSU19MREZMQUdTX2FwcGxldHZzaW11bGF0
b3IgPSAtZnJhbWV3b3JrIFVuaWZvcm1UeXBlSWRlbnRpZmllcnM7CiAKIFdLX1VSTF9GT1JNQVRU
SU5HX0xERkxBR1MgPSAkKFdLX1VSTF9GT1JNQVRUSU5HX0xERkxBR1NfJChXS19IQVZFX1VSTF9G
T1JNQVRUSU5HKSk7CiBXS19VUkxfRk9STUFUVElOR19MREZMQUdTX1lFUyA9IC1mcmFtZXdvcmsg
VVJMRm9ybWF0dGluZzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9p
b3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmdJT1MuaAppbmRleCA4OTM3Yzg0
ZmNjMmEwMDY0NzBmMmMyYzlhODcxYTdmOTk5NWZhOWMzLi4yZmQwNjZlNWE3OTUwNjMyNjhmMDBh
NTdmZDIwMzQwYzIwZmFjN2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvaW9zL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nSU9TLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oCkBAIC00
Niw2ICs0Niw3IEBACiAtICh2b2lkKWtleWJvYXJkQWNjZXNzb3J5QmFyTmV4dDsKIC0gKHZvaWQp
a2V5Ym9hcmRBY2Nlc3NvcnlCYXJQcmV2aW91czsKIC0gKHZvaWQpZGlzbWlzc0Zvcm1BY2Nlc3Nv
cnlWaWV3OworLSAoTlNBcnJheTxOU1N0cmluZyAqPiAqKV9maWxlUGlja2VyQWNjZXB0ZWRUeXBl
SWRlbnRpZmllcnM7CiAtICh2b2lkKV9kaXNtaXNzRmlsZVBpY2tlcjsKIC0gKHZvaWQpc2VsZWN0
Rm9ybUFjY2Vzc29yeVBpY2tlclJvdzooaW50KXJvd0luZGV4OwogLSAoQk9PTClzZWxlY3RGb3Jt
QWNjZXNzb3J5SGFzQ2hlY2tlZEl0ZW1BdFJvdzoobG9uZylyb3dJbmRleDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbQpp
bmRleCBlZTk5MGU4ZTcwZWNlYjZmMDBiZjcyM2VlZWM3NDcxMmU0MGJlZmJiLi43YmMwODY4ZjUx
ZDg4YTM1ZjIxYmQ4OGM2OTZlMjYyYTcyZGNhZjk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tCkBAIC0xMjcsNiAr
MTI3LDExIEBACiAgICAgW19jb250ZW50VmlldyBhY2Nlc3NvcnlEb25lXTsKIH0KIAorLSAoTlNB
cnJheTxOU1N0cmluZyAqPiAqKV9maWxlUGlja2VyQWNjZXB0ZWRUeXBlSWRlbnRpZmllcnMKK3sK
KyAgICByZXR1cm4gW19jb250ZW50VmlldyBmaWxlUGlja2VyQWNjZXB0ZWRUeXBlSWRlbnRpZmll
cnNdOworfQorCiAtICh2b2lkKV9kaXNtaXNzRmlsZVBpY2tlcgogewogICAgIFtfY29udGVudFZp
ZXcgZGlzbWlzc0ZpbGVQaWNrZXJdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5oCmluZGV4IDcxMWQ0MGRmNjIzMzU3NTZm
OGIxNDU2MzRlMWY3NTEyYjY3MTAwNjAuLjIyYzVlZGEyNTQ3ODE3ZWZjMTRmMGU0ZGVjMWY5NTI0
ZmUzMzE4NmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLmgKQEAgLTYwOCw2ICs2MDgsNyBAQCBGT1JfRUFDSF9QUklW
QVRFX1dLQ09OVEVOVFZJRVdfQUNUSU9OKERFQ0xBUkVfV0tDT05URU5UVklFV19BQ1RJT05fRk9S
X1dFQl9WSUVXKQogLSAodm9pZClfc2hvd1J1bk9wZW5QYW5lbDooQVBJOjpPcGVuUGFuZWxQYXJh
bWV0ZXJzKilwYXJhbWV0ZXJzIGZyYW1lSW5mbzooY29uc3QgV2ViS2l0OjpGcmFtZUluZm9EYXRh
JilmcmFtZUluZm8gcmVzdWx0TGlzdGVuZXI6KFdlYktpdDo6V2ViT3BlblBhbmVsUmVzdWx0TGlz
dGVuZXJQcm94eSopbGlzdGVuZXI7CiAtICh2b2lkKV9zaG93U2hhcmVTaGVldDooY29uc3QgV2Vi
Q29yZTo6U2hhcmVEYXRhV2l0aFBhcnNlZFVSTCYpc2hhcmVEYXRhIGluUmVjdDooV1RGOjpPcHRp
b25hbDxXZWJDb3JlOjpGbG9hdFJlY3Q+KXJlY3QgY29tcGxldGlvbkhhbmRsZXI6KFdURjo6Q29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiljb21wbGV0aW9uSGFuZGxlcjsKIC0gKHZvaWQp
X3Nob3dDb250YWN0UGlja2VyOihjb25zdCBXZWJDb3JlOjpDb250YWN0c1JlcXVlc3REYXRhJily
ZXF1ZXN0RGF0YSBjb21wbGV0aW9uSGFuZGxlcjooV1RGOjpDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpDb250YWN0SW5mbz4+JiYpPiYmKWNvbXBsZXRpb25I
YW5kbGVyOworLSAoTlNBcnJheTxOU1N0cmluZyAqPiAqKWZpbGVQaWNrZXJBY2NlcHRlZFR5cGVJ
ZGVudGlmaWVyczsKIC0gKHZvaWQpZGlzbWlzc0ZpbGVQaWNrZXI7CiAtICh2b2lkKV9kaWRIYW5k
bGVLZXlFdmVudDooOjpXZWJFdmVudCAqKWV2ZW50IGV2ZW50V2FzSGFuZGxlZDooQk9PTClldmVu
dFdhc0hhbmRsZWQ7CiAtIChWZWN0b3I8V2ViS2l0OjpPcHRpb25JdGVtPiYpIGZvY3VzZWRTZWxl
Y3RFbGVtZW50T3B0aW9uczsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDg3YzZkMTM4ZWJlNTZhNjEwNWJh
ODcyOTc1MDI5MGRmOGZlNmIzNjIuLjc2ZTUyYTJkMDEwNzEwMzg4YjUxYzEzNGQ3OWEwNzc0ZTFm
ZDBhMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRW
aWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNTY5MSw2ICs1NjkxLDE0IEBAIHN0YXRpYyBOU1N0
cmluZyAqY29udGVudFR5cGVGcm9tRmllbGROYW1lKFdlYkNvcmU6OkF1dG9maWxsRmllbGROYW1l
IGZpZWxkTmFtZSkKICAgICByZXR1cm4gTk87CiB9CiAKKy0gKE5TQXJyYXk8TlNTdHJpbmcgKj4g
KilmaWxlUGlja2VyQWNjZXB0ZWRUeXBlSWRlbnRpZmllcnMKK3sKKyAgICBpZiAoIV9maWxlVXBs
b2FkUGFuZWwpCisgICAgICAgIHJldHVybiBAW107CisKKyAgICByZXR1cm4gW19maWxlVXBsb2Fk
UGFuZWwgYWNjZXB0ZWRUeXBlSWRlbnRpZmllcnNdOworfQorCiAtICh2b2lkKWRpc21pc3NGaWxl
UGlja2VyCiB7CiAgICAgW19maWxlVXBsb2FkUGFuZWwgZGlzbWlzc107CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFuZWwuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5oCmluZGV4
IGIxMmI4ZTIzMGEwMWI5ZGViNTRlYjg5ZTU0Yjc2NzIzOWJkNTAxNjIuLjZhMWI5YjAxOWQ0YjEz
MGIxZDVlYTNmMTE4Y2JhNGE1MjU0OTJiMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5oCkBAIC00NSw2ICs0NSw3IEBA
IGNsYXNzIFdlYk9wZW5QYW5lbFJlc3VsdExpc3RlbmVyUHJveHk7CiAtICh2b2lkKWRpc21pc3M7
CiAKIC0gKE5TQXJyYXk8TlNTdHJpbmcgKj4gKiljdXJyZW50QXZhaWxhYmxlQWN0aW9uVGl0bGVz
OworLSAoTlNBcnJheTxOU1N0cmluZyAqPiAqKWFjY2VwdGVkVHlwZUlkZW50aWZpZXJzOwogQGVu
ZAogCiBAcHJvdG9jb2wgV0tGaWxlVXBsb2FkUGFuZWxEZWxlZ2F0ZSA8TlNPYmplY3Q+CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFu
ZWwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvZm9ybXMvV0tGaWxlVXBsb2FkUGFu
ZWwubW0KaW5kZXggYjEwMWY0ZGE0YmJlN2M4NWMwNDY2NjJiZWNlZjM5MmUwMGExMzUwNC4uZDQ2
MDFhYzk3MWU1M2MyNWRkODVkZWUzOGI2NTZkMjhlN2JjYjg5NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL2Zvcm1zL1dLRmlsZVVwbG9hZFBhbmVsLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9mb3Jtcy9XS0ZpbGVVcGxvYWRQYW5lbC5tbQpAQCAt
NDEsMTcgKzQxLDIyIEBACiAjaW1wb3J0ICJXZWJJY29uVXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJX
ZWJPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lclByb3h5LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHku
aCIKLSNpbXBvcnQgPE1vYmlsZUNvcmVTZXJ2aWNlcy9Nb2JpbGVDb3JlU2VydmljZXMuaD4KICNp
bXBvcnQgPFVJS2l0L1VJRG9jdW1lbnRQaWNrZXJWaWV3Q29udHJvbGxlci5oPgorI2ltcG9ydCA8
VW5pZm9ybVR5cGVJZGVudGlmaWVycy9Vbmlmb3JtVHlwZUlkZW50aWZpZXJzLmg+CiAjaW1wb3J0
IDxXZWJDb3JlL0xvY2FsaXplZFN0cmluZ3MuaD4KICNpbXBvcnQgPFdlYkNvcmUvTUlNRVR5cGVS
ZWdpc3RyeS5oPgotI2ltcG9ydCA8V2ViQ29yZS9VVElVdGlsaXRpZXMuaD4KKyNpbXBvcnQgPHd0
Zi9PcHRpb25TZXQuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KICNpbXBvcnQgPHd0Zi9X
ZWFrT2JqQ1B0ci5oPgogI2ltcG9ydCA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogCiB1c2luZyBu
YW1lc3BhY2UgV2ViS2l0OwogCitlbnVtIGNsYXNzIFdLRmlsZVVwbG9hZFBhbmVsSW1hZ2VQaWNr
ZXJUeXBlIDogdWludDhfdCB7CisgICAgSW1hZ2UgPSAxIDw8IDAsCisgICAgVmlkZW8gID0gMSA8
PCAxLAorfTsKKwogQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KIAogc3RhdGlj
IGlubGluZSBVSUltYWdlUGlja2VyQ29udHJvbGxlckNhbWVyYURldmljZSBjYW1lcmFEZXZpY2VG
b3JNZWRpYUNhcHR1cmVUeXBlKFdlYkNvcmU6Ok1lZGlhQ2FwdHVyZVR5cGUgbWVkaWFDYXB0dXJl
VHlwZSkKQEAgLTU5LDEwICs2NCwxMSBAQCBzdGF0aWMgaW5saW5lIFVJSW1hZ2VQaWNrZXJDb250
cm9sbGVyQ2FtZXJhRGV2aWNlIGNhbWVyYURldmljZUZvck1lZGlhQ2FwdHVyZVR5cAogICAgIHJl
dHVybiBtZWRpYUNhcHR1cmVUeXBlID09IFdlYkNvcmU6Ok1lZGlhQ2FwdHVyZVR5cGVVc2VyID8g
VUlJbWFnZVBpY2tlckNvbnRyb2xsZXJDYW1lcmFEZXZpY2VGcm9udCA6IFVJSW1hZ2VQaWNrZXJD
b250cm9sbGVyQ2FtZXJhRGV2aWNlUmVhcjsKIH0KIAotc3RhdGljIGJvb2wgYXJyYXlDb250YWlu
c1VUSVRoYXRDb25mb3Jtc1RvKE5TQXJyYXk8TlNTdHJpbmcgKj4gKnR5cGVJZGVudGlmaWVycywg
Q0ZTdHJpbmdSZWYgY29uZm9ybVRvVVRJKQorc3RhdGljIGJvb2wgc2V0Q29udGFpbnNVVElUaGF0
Q29uZm9ybXNUbyhOU1NldDxOU1N0cmluZyAqPiAqdHlwZUlkZW50aWZpZXJzLCBVVFR5cGUgKmNv
bmZvcm1Ub1VUVHlwZSkKIHsKICAgICBmb3IgKE5TU3RyaW5nICp1dGkgaW4gdHlwZUlkZW50aWZp
ZXJzKSB7Ci0gICAgICAgIGlmIChVVFR5cGVDb25mb3Jtc1RvKChfX2JyaWRnZSBDRlN0cmluZ1Jl
Zil1dGksIGNvbmZvcm1Ub1VUSSkpCisgICAgICAgIFVUVHlwZSAqdHlwZSA9IFtVVFR5cGUgdHlw
ZVdpdGhJZGVudGlmaWVyOnV0aV07CisgICAgICAgIGlmIChbdHlwZSBjb25mb3Jtc1RvVHlwZTpj
b25mb3JtVG9VVFR5cGVdKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogICAgIHJl
dHVybiBmYWxzZTsKQEAgLTE2MSw3ICsxNjcsOCBAQCBzdGF0aWMgYm9vbCBhcnJheUNvbnRhaW5z
VVRJVGhhdENvbmZvcm1zVG8oTlNBcnJheTxOU1N0cmluZyAqPiAqdHlwZUlkZW50aWZpZXJzLAog
QGltcGxlbWVudGF0aW9uIFdLRmlsZVVwbG9hZFBhbmVsIHsKICAgICBXZWFrT2JqQ1B0cjxXS0Nv
bnRlbnRWaWV3PiBfdmlldzsKICAgICBSZWZQdHI8V2ViS2l0OjpXZWJPcGVuUGFuZWxSZXN1bHRM
aXN0ZW5lclByb3h5PiBfbGlzdGVuZXI7Ci0gICAgUmV0YWluUHRyPE5TQXJyYXk+IF9taW1lVHlw
ZXM7CisgICAgUmV0YWluUHRyPE5TU2V0PE5TU3RyaW5nICo+PiBfYWNjZXB0ZWRVVElzOworICAg
IE9wdGlvblNldDxXS0ZpbGVVcGxvYWRQYW5lbEltYWdlUGlja2VyVHlwZT4gX2FsbG93ZWRJbWFn
ZVBpY2tlclR5cGVzOwogICAgIENHUG9pbnQgX2ludGVyYWN0aW9uUG9pbnQ7CiAgICAgQk9PTCBf
YWxsb3dNdWx0aXBsZUZpbGVzOwogICAgIEJPT0wgX3VzaW5nQ2FtZXJhOwpAQCAtMjU1LDcgKzI2
MiwxNSBAQCBzdGF0aWMgYm9vbCBhcnJheUNvbnRhaW5zVVRJVGhhdENvbmZvcm1zVG8oTlNBcnJh
eTxOU1N0cmluZyAqPiAqdHlwZUlkZW50aWZpZXJzLAogICAgICAgICAgICAgW21pbWVUeXBlcyBh
ZGRPYmplY3Q6bWltZVR5cGVdOwogICAgIH0KIAotICAgIF9taW1lVHlwZXMgPSBhZG9wdE5TKFtt
aW1lVHlwZXMgY29weV0pOworICAgIF9hY2NlcHRlZFVUSXMgPSBVVElzRm9yTUlNRVR5cGVzKG1p
bWVUeXBlcyk7CisgICAgaWYgKCFbX2FjY2VwdGVkVVRJcyBjb3VudF0pCisgICAgICAgIF9hbGxv
d2VkSW1hZ2VQaWNrZXJUeXBlcy5hZGQoeyBXS0ZpbGVVcGxvYWRQYW5lbEltYWdlUGlja2VyVHlw
ZTo6SW1hZ2UsIFdLRmlsZVVwbG9hZFBhbmVsSW1hZ2VQaWNrZXJUeXBlOjpWaWRlbyB9KTsKKyAg
ICBlbHNlIHsKKyAgICAgICAgaWYgKHNldENvbnRhaW5zVVRJVGhhdENvbmZvcm1zVG8oX2FjY2Vw
dGVkVVRJcy5nZXQoKSwgVVRUeXBlSW1hZ2UpKQorICAgICAgICAgICAgX2FsbG93ZWRJbWFnZVBp
Y2tlclR5cGVzLmFkZCh7IFdLRmlsZVVwbG9hZFBhbmVsSW1hZ2VQaWNrZXJUeXBlOjpJbWFnZSB9
KTsKKyAgICAgICAgaWYgKHNldENvbnRhaW5zVVRJVGhhdENvbmZvcm1zVG8oX2FjY2VwdGVkVVRJ
cy5nZXQoKSwgVVRUeXBlTW92aWUpKQorICAgICAgICAgICAgX2FsbG93ZWRJbWFnZVBpY2tlclR5
cGVzLmFkZCh7IFdLRmlsZVVwbG9hZFBhbmVsSW1hZ2VQaWNrZXJUeXBlOjpWaWRlbyB9KTsKKyAg
ICB9CiAKICAgICBfbWVkaWFDYXB0dXJlVHlwZSA9IFdlYkNvcmU6Ok1lZGlhQ2FwdHVyZVR5cGVO
b25lOwogI2lmIEVOQUJMRShNRURJQV9DQVBUVVJFKQpAQCAtMzE2LDE2ICszMzEsMTEgQEAgc3Rh
dGljIGJvb2wgYXJyYXlDb250YWluc1VUSVRoYXRDb25mb3Jtc1RvKE5TQXJyYXk8TlNTdHJpbmcg
Kj4gKnR5cGVJZGVudGlmaWVycywKIHsKICAgICBOU011dGFibGVBcnJheTxOU1N0cmluZyAqPiAq
YWN0aW9uVGl0bGVzID0gW05TTXV0YWJsZUFycmF5IGFycmF5XTsKIAotICAgIE5TQXJyYXkgKm1l
ZGlhVHlwZXMgPSBVVElzRm9yTUlNRVR5cGVzKF9taW1lVHlwZXMuZ2V0KCkpLmFsbE9iamVjdHM7
Ci1BTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgotICAgIEJPT0wgYWxsb3dzSW1h
Z2VNZWRpYVR5cGUgPSAhbWVkaWFUeXBlcy5jb3VudCB8fCBhcnJheUNvbnRhaW5zVVRJVGhhdENv
bmZvcm1zVG8obWVkaWFUeXBlcywga1VUVHlwZUltYWdlKTsKLSAgICBCT09MIGFsbG93c1ZpZGVv
TWVkaWFUeXBlID0gIW1lZGlhVHlwZXMuY291bnQgfHwgYXJyYXlDb250YWluc1VUSVRoYXRDb25m
b3Jtc1RvKG1lZGlhVHlwZXMsIGtVVFR5cGVNb3ZpZSk7Ci1BTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19FTkQKLSAgICBpZiAoYWxsb3dzSW1hZ2VNZWRpYVR5cGUgfHwgYWxsb3dzVmlkZW9N
ZWRpYVR5cGUpIHsKKyAgICBpZiAoX2FsbG93ZWRJbWFnZVBpY2tlclR5cGVzLmNvbnRhaW5zQW55
KHsgV0tGaWxlVXBsb2FkUGFuZWxJbWFnZVBpY2tlclR5cGU6OkltYWdlLCBXS0ZpbGVVcGxvYWRQ
YW5lbEltYWdlUGlja2VyVHlwZTo6VmlkZW8gfSkpIHsKICAgICAgICAgW2FjdGlvblRpdGxlcyBh
ZGRPYmplY3Q6QCJQaG90byBMaWJyYXJ5Il07Ci0gICAgICAgIGlmIChhbGxvd3NJbWFnZU1lZGlh
VHlwZSAmJiBhbGxvd3NWaWRlb01lZGlhVHlwZSkKKyAgICAgICAgaWYgKF9hbGxvd2VkSW1hZ2VQ
aWNrZXJUeXBlcy5jb250YWluc0FsbCh7IFdLRmlsZVVwbG9hZFBhbmVsSW1hZ2VQaWNrZXJUeXBl
OjpJbWFnZSwgV0tGaWxlVXBsb2FkUGFuZWxJbWFnZVBpY2tlclR5cGU6OlZpZGVvIH0pKQogICAg
ICAgICAgICAgW2FjdGlvblRpdGxlcyBhZGRPYmplY3Q6QCJUYWtlIFBob3RvIG9yIFZpZGVvIl07
Ci0gICAgICAgIGVsc2UgaWYgKGFsbG93c1ZpZGVvTWVkaWFUeXBlKQorICAgICAgICBlbHNlIGlm
IChfYWxsb3dlZEltYWdlUGlja2VyVHlwZXMuY29udGFpbnMoV0tGaWxlVXBsb2FkUGFuZWxJbWFn
ZVBpY2tlclR5cGU6OlZpZGVvKSkKICAgICAgICAgICAgIFthY3Rpb25UaXRsZXMgYWRkT2JqZWN0
OkAiVGFrZSBWaWRlbyJdOwogICAgICAgICBlbHNlCiAgICAgICAgICAgICBbYWN0aW9uVGl0bGVz
IGFkZE9iamVjdDpAIlRha2UgUGhvdG8iXTsKQEAgLTMzNCw0NCArMzQ0LDUwIEBAIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgIHJldHVybiBhY3Rpb25UaXRsZXM7CiB9CiAK
Ky0gKE5TQXJyYXk8TlNTdHJpbmcgKj4gKilhY2NlcHRlZFR5cGVJZGVudGlmaWVycworeworICAg
IHJldHVybiBbW19hY2NlcHRlZFVUSXMgYWxsT2JqZWN0c10gc29ydGVkQXJyYXlVc2luZ1NlbGVj
dG9yOkBzZWxlY3Rvcihjb21wYXJlOildOworfQorCiAjcHJhZ21hIG1hcmsgLSBNZWRpYSBUeXBl
cwogCiBzdGF0aWMgTlNTZXQ8TlNTdHJpbmcgKj4gKlVUSXNGb3JNSU1FVHlwZXMoTlNBcnJheSAq
bWltZVR5cGVzKQogewogICAgIE5TTXV0YWJsZVNldCAqbWVkaWFUeXBlcyA9IFtOU011dGFibGVT
ZXQgc2V0XTsKICAgICBmb3IgKE5TU3RyaW5nICptaW1lVHlwZSBpbiBtaW1lVHlwZXMpIHsKLUFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIGlmIChbbWltZVR5cGUg
Y2FzZUluc2Vuc2l0aXZlQ29tcGFyZTpAImltYWdlLyoiXSA9PSBOU09yZGVyZWRTYW1lKQotICAg
ICAgICAgICAgW21lZGlhVHlwZXMgYWRkT2JqZWN0OihfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5
cGVJbWFnZV07CisgICAgICAgICAgICBbbWVkaWFUeXBlcyBhZGRPYmplY3Q6VVRUeXBlSW1hZ2Uu
aWRlbnRpZmllcl07CiAgICAgICAgIGVsc2UgaWYgKFttaW1lVHlwZSBjYXNlSW5zZW5zaXRpdmVD
b21wYXJlOkAidmlkZW8vKiJdID09IE5TT3JkZXJlZFNhbWUpCi0gICAgICAgICAgICBbbWVkaWFU
eXBlcyBhZGRPYmplY3Q6KF9fYnJpZGdlIE5TU3RyaW5nICopa1VUVHlwZU1vdmllXTsKKyAgICAg
ICAgICAgIFttZWRpYVR5cGVzIGFkZE9iamVjdDpVVFR5cGVNb3ZpZS5pZGVudGlmaWVyXTsKICAg
ICAgICAgZWxzZSBpZiAoW21pbWVUeXBlIGNhc2VJbnNlbnNpdGl2ZUNvbXBhcmU6QCJhdWRpby8q
Il0gPT0gTlNPcmRlcmVkU2FtZSkKICAgICAgICAgICAgIC8vIFVJSW1hZ2VQaWNrZXJDb250cm9s
bGVyIGRvZXNuJ3QgYWxsb3cgYXVkaW8tb25seSByZWNvcmRpbmcsIHNvIHNob3cgdGhlIHZpZGVv
CiAgICAgICAgICAgICAvLyByZWNvcmRlciBmb3IgImF1ZGlvLyoiLgotICAgICAgICAgICAgW21l
ZGlhVHlwZXMgYWRkT2JqZWN0OihfX2JyaWRnZSBOU1N0cmluZyAqKWtVVFR5cGVNb3ZpZV07Cisg
ICAgICAgICAgICBbbWVkaWFUeXBlcyBhZGRPYmplY3Q6VVRUeXBlTW92aWUuaWRlbnRpZmllcl07
CiAgICAgICAgIGVsc2UgewotICAgICAgICAgICAgYXV0byB1dGkgPSBXZWJDb3JlOjpVVElGcm9t
TUlNRVR5cGUobWltZVR5cGUpOwotICAgICAgICAgICAgaWYgKCF1dGkuaXNFbXB0eSgpKQotICAg
ICAgICAgICAgICAgIFttZWRpYVR5cGVzIGFkZE9iamVjdDooX19icmlkZ2UgTlNTdHJpbmcgKil1
dGldOworICAgICAgICAgICAgYXV0byB1dGkgPSBbVVRUeXBlIHR5cGVXaXRoTUlNRVR5cGU6bWlt
ZVR5cGVdOworICAgICAgICAgICAgaWYgKHV0aSkKKyAgICAgICAgICAgICAgICBbbWVkaWFUeXBl
cyBhZGRPYmplY3Q6dXRpLmlkZW50aWZpZXJdOwogICAgICAgICB9Ci1BTExPV19ERVBSRUNBVEVE
X0RFQ0xBUkFUSU9OU19FTkQKKwogICAgIH0KICAgICByZXR1cm4gbWVkaWFUeXBlczsKIH0KIAog
LSAoTlNBcnJheTxOU1N0cmluZyAqPiAqKV9tZWRpYVR5cGVzRm9yUGlja2VyU291cmNlVHlwZToo
VUlJbWFnZVBpY2tlckNvbnRyb2xsZXJTb3VyY2VUeXBlKXNvdXJjZVR5cGUKIHsKLSAgICBOU0Fy
cmF5PE5TU3RyaW5nICo+ICphdmFpbGFibGVNZWRpYVR5cGVzID0gW1VJSW1hZ2VQaWNrZXJDb250
cm9sbGVyIGF2YWlsYWJsZU1lZGlhVHlwZXNGb3JTb3VyY2VUeXBlOnNvdXJjZVR5cGVdOwotICAg
IE5TU2V0PE5TU3RyaW5nICo+ICphY2NlcHRlZE1lZGlhVHlwZXMgPSBVVElzRm9yTUlNRVR5cGVz
KF9taW1lVHlwZXMuZ2V0KCkpOwotICAgIGlmIChhY2NlcHRlZE1lZGlhVHlwZXMuY291bnQpIHsK
KyAgICBOU0FycmF5PE5TU3RyaW5nICo+ICphdmFpbGFibGVNZWRpYVR5cGVVVElzID0gW1VJSW1h
Z2VQaWNrZXJDb250cm9sbGVyIGF2YWlsYWJsZU1lZGlhVHlwZXNGb3JTb3VyY2VUeXBlOnNvdXJj
ZVR5cGVdOworICAgIE5TU2V0PE5TU3RyaW5nICo+ICphY2NlcHRlZE1lZGlhVHlwZVVUSXMgPSBf
YWNjZXB0ZWRVVElzLmdldCgpOworICAgIGlmIChhY2NlcHRlZE1lZGlhVHlwZVVUSXMuY291bnQp
IHsKICAgICAgICAgTlNNdXRhYmxlQXJyYXk8TlNTdHJpbmcgKj4gKm1lZGlhVHlwZXMgPSBbTlNN
dXRhYmxlQXJyYXkgYXJyYXldOwotICAgICAgICBmb3IgKE5TU3RyaW5nICphdmFpbGFibGVNZWRp
YVR5cGUgaW4gYXZhaWxhYmxlTWVkaWFUeXBlcykgewotICAgICAgICAgICAgaWYgKFthY2NlcHRl
ZE1lZGlhVHlwZXMgY29udGFpbnNPYmplY3Q6YXZhaWxhYmxlTWVkaWFUeXBlXSkKLSAgICAgICAg
ICAgICAgICBbbWVkaWFUeXBlcyBhZGRPYmplY3Q6YXZhaWxhYmxlTWVkaWFUeXBlXTsKKyAgICAg
ICAgZm9yIChOU1N0cmluZyAqYXZhaWxhYmxlTWVkaWFUeXBlVVRJIGluIGF2YWlsYWJsZU1lZGlh
VHlwZVVUSXMpIHsKKyAgICAgICAgICAgIGlmIChbYWNjZXB0ZWRNZWRpYVR5cGVVVElzIGNvbnRh
aW5zT2JqZWN0OmF2YWlsYWJsZU1lZGlhVHlwZVVUSV0pCisgICAgICAgICAgICAgICAgW21lZGlh
VHlwZXMgYWRkT2JqZWN0OmF2YWlsYWJsZU1lZGlhVHlwZVVUSV07CiAgICAgICAgICAgICBlbHNl
IHsKLSAgICAgICAgICAgICAgICBmb3IgKE5TU3RyaW5nICphY2NlcHRlZE1lZGlhVHlwZSBpbiBh
Y2NlcHRlZE1lZGlhVHlwZXMpIHsKLSAgICAgICAgICAgICAgICAgICAgaWYgKFVUVHlwZUNvbmZv
cm1zVG8oKF9fYnJpZGdlIENGU3RyaW5nUmVmKWFjY2VwdGVkTWVkaWFUeXBlLCAoX19icmlkZ2Ug
Q0ZTdHJpbmdSZWYpYXZhaWxhYmxlTWVkaWFUeXBlKSkgewotICAgICAgICAgICAgICAgICAgICAg
ICAgW21lZGlhVHlwZXMgYWRkT2JqZWN0OmF2YWlsYWJsZU1lZGlhVHlwZV07CisgICAgICAgICAg
ICAgICAgVVRUeXBlICphdmFpbGFibGVNZWRpYVR5cGUgPSBbVVRUeXBlIHR5cGVXaXRoSWRlbnRp
ZmllcjphdmFpbGFibGVNZWRpYVR5cGVVVEldOworICAgICAgICAgICAgICAgIGZvciAoTlNTdHJp
bmcgKmFjY2VwdGVkTWVkaWFUeXBlVVRJIGluIGFjY2VwdGVkTWVkaWFUeXBlVVRJcykgeworICAg
ICAgICAgICAgICAgICAgICBVVFR5cGUgKmFjY2VwdGVkTWVkaWFUeXBlID0gW1VUVHlwZSB0eXBl
V2l0aElkZW50aWZpZXI6YWNjZXB0ZWRNZWRpYVR5cGVVVEldOworICAgICAgICAgICAgICAgICAg
ICBpZiAoW2FjY2VwdGVkTWVkaWFUeXBlIGNvbmZvcm1zVG9UeXBlOmF2YWlsYWJsZU1lZGlhVHlw
ZV0pIHsKKyAgICAgICAgICAgICAgICAgICAgICAgIFttZWRpYVR5cGVzIGFkZE9iamVjdDphdmFp
bGFibGVNZWRpYVR5cGVVVEldOwogICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CkBAIC0zODQsNyArNDAwLDcgQEAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgfQogCiAgICAgLy8gRmFsbGJh
Y2sgdG8gZXZlcnkgc3VwcG9ydGVkIG1lZGlhIHR5cGUgaWYgdGhlcmUgaXMgbm8gZmlsdGVyLgot
ICAgIHJldHVybiBhdmFpbGFibGVNZWRpYVR5cGVzOworICAgIHJldHVybiBhdmFpbGFibGVNZWRp
YVR5cGVVVElzOwogfQogCiAjcHJhZ21hIG1hcmsgLSBTb3VyY2Ugc2VsZWN0aW9uIG1lbnUKQEAg
LTM5OSwxMyArNDE1LDE0IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAg
IHJldHVybiBXRUJfVUlfU1RSSU5HX0tFWSgiUGhvdG8gTGlicmFyeSIsICJQaG90byBMaWJyYXJ5
IChmaWxlIHVwbG9hZCBhY3Rpb24gc2hlZXQpIiwgIkZpbGUgVXBsb2FkIGFsZXJ0IHNoZWV0IGJ1
dHRvbiBzdHJpbmcgZm9yIGNob29zaW5nIGFuIGV4aXN0aW5nIG1lZGlhIGl0ZW0gZnJvbSB0aGUg
UGhvdG8gTGlicmFyeSIpOwogfQogCi0tIChOU1N0cmluZyAqKV9jYW1lcmFCdXR0b25MYWJlbEFs
bG93aW5nUGhvdG86KEJPT0wpYWxsb3dQaG90byBhbGxvd2luZ1ZpZGVvOihCT09MKWFsbG93Vmlk
ZW8KKy0gKE5TU3RyaW5nICopX2NhbWVyYUJ1dHRvbkxhYmVsCiB7Ci0gICAgQVNTRVJUKGFsbG93
UGhvdG8gfHwgYWxsb3dWaWRlbyk7Ci0gICAgaWYgKGFsbG93UGhvdG8gJiYgYWxsb3dWaWRlbykK
KyAgICBBU1NFUlQoX2FsbG93ZWRJbWFnZVBpY2tlclR5cGVzLmNvbnRhaW5zQW55KHsgV0tGaWxl
VXBsb2FkUGFuZWxJbWFnZVBpY2tlclR5cGU6OkltYWdlLCBXS0ZpbGVVcGxvYWRQYW5lbEltYWdl
UGlja2VyVHlwZTo6VmlkZW8gfSkpOworCisgICAgaWYgKF9hbGxvd2VkSW1hZ2VQaWNrZXJUeXBl
cy5jb250YWluc0FsbCh7IFdLRmlsZVVwbG9hZFBhbmVsSW1hZ2VQaWNrZXJUeXBlOjpJbWFnZSwg
V0tGaWxlVXBsb2FkUGFuZWxJbWFnZVBpY2tlclR5cGU6OlZpZGVvIH0pKQogICAgICAgICByZXR1
cm4gV0VCX1VJX1NUUklOR19LRVkoIlRha2UgUGhvdG8gb3IgVmlkZW8iLCAiVGFrZSBQaG90byBv
ciBWaWRlbyAoZmlsZSB1cGxvYWQgYWN0aW9uIHNoZWV0KSIsICJGaWxlIFVwbG9hZCBhbGVydCBz
aGVldCBjYW1lcmEgYnV0dG9uIHN0cmluZyBmb3IgdGFraW5nIHBob3RvcyBvciB2aWRlb3MiKTsK
IAotICAgIGlmIChhbGxvd1ZpZGVvKQorICAgIGlmIChfYWxsb3dlZEltYWdlUGlja2VyVHlwZXMu
Y29udGFpbnMoV0tGaWxlVXBsb2FkUGFuZWxJbWFnZVBpY2tlclR5cGU6OlZpZGVvKSkKICAgICAg
ICAgcmV0dXJuIFdFQl9VSV9TVFJJTkdfS0VZKCJUYWtlIFZpZGVvIiwgIlRha2UgVmlkZW8gKGZp
bGUgdXBsb2FkIGFjdGlvbiBzaGVldCkiLCAiRmlsZSBVcGxvYWQgYWxlcnQgc2hlZXQgY2FtZXJh
IGJ1dHRvbiBzdHJpbmcgZm9yIHRha2luZyBvbmx5IHZpZGVvcyIpOwogCiAgICAgcmV0dXJuIFdF
Ql9VSV9TVFJJTkdfS0VZKCJUYWtlIFBob3RvIiwgIlRha2UgUGhvdG8gKGZpbGUgdXBsb2FkIGFj
dGlvbiBzaGVldCkiLCAiRmlsZSBVcGxvYWQgYWxlcnQgc2hlZXQgY2FtZXJhIGJ1dHRvbiBzdHJp
bmcgZm9yIHRha2luZyBvbmx5IHBob3RvcyIpOwpAQCAtNDI5LDE3ICs0NDYsMTEgQEAgQUxMT1df
REVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICBVSUNvbnRleHRNZW51QWN0aW9uUHJv
dmlkZXIgYWN0aW9uTWVudVByb3ZpZGVyID0gW3NlbGYsIHdlYWtTZWxmID0gV2Vha09iakNQdHI8
V0tGaWxlVXBsb2FkUGFuZWw+KHNlbGYpXSAoTlNBcnJheTxVSU1lbnVFbGVtZW50ICo+ICopIC0+
IFVJTWVudSAqIHsKICAgICAgICAgTlNBcnJheSAqYWN0aW9uczsKLSAgICAgICAgTlNBcnJheSAq
bWVkaWFUeXBlcyA9IFVUSXNGb3JNSU1FVHlwZXMoX21pbWVUeXBlcy5nZXQoKSkuYWxsT2JqZWN0
czsKIAotQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KLSAgICAgICAgQk9PTCBh
bGxvd3NJbWFnZU1lZGlhVHlwZSA9ICFtZWRpYVR5cGVzLmNvdW50IHx8IGFycmF5Q29udGFpbnNV
VElUaGF0Q29uZm9ybXNUbyhtZWRpYVR5cGVzLCBrVVRUeXBlSW1hZ2UpOwotICAgICAgICBCT09M
IGFsbG93c1ZpZGVvTWVkaWFUeXBlID0gIW1lZGlhVHlwZXMuY291bnQgfHwgYXJyYXlDb250YWlu
c1VUSVRoYXRDb25mb3Jtc1RvKG1lZGlhVHlwZXMsIGtVVFR5cGVNb3ZpZSk7Ci1BTExPV19ERVBS
RUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgYXV0byBzdHJvbmdTZWxmID0gd2Vha1Nl
bGYuZ2V0KCk7Ci0gICAgICAgIAogICAgICAgICBpZiAoIXN0cm9uZ1NlbGYpCiAgICAgICAgICAg
ICByZXR1cm4gbmlsOwotICAgICAgICAKKwogICAgICAgICBzZWxmLT5faXNQcmVzZW50aW5nU3Vi
TWVudSA9IE5POwogICAgICAgICBVSUFjdGlvbiAqYnJvd3NlQWN0aW9uID0gW1VJQWN0aW9uIGFj
dGlvbldpdGhUaXRsZTpbc3Ryb25nU2VsZiBfYnJvd3NlRmlsZXNCdXR0b25MYWJlbF0gaW1hZ2U6
W1VJSW1hZ2Ugc3lzdGVtSW1hZ2VOYW1lZDpAImVsbGlwc2lzIl0gaWRlbnRpZmllcjpAImJyb3dz
ZSIgaGFuZGxlcjpeKF9fa2luZG9mIFVJQWN0aW9uICphY3Rpb24pIHsKICAgICAgICAgICAgIHNl
bGYtPl9pc1ByZXNlbnRpbmdTdWJNZW51ID0gWUVTOwpAQCAtNDUyLDcgKzQ2Myw3IEBAIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICB9XTsKIAogICAgICAgICBpZiAo
W1VJSW1hZ2VQaWNrZXJDb250cm9sbGVyIGlzU291cmNlVHlwZUF2YWlsYWJsZTpVSUltYWdlUGlj
a2VyQ29udHJvbGxlclNvdXJjZVR5cGVDYW1lcmFdKSB7Ci0gICAgICAgICAgICBOU1N0cmluZyAq
Y2FtZXJhU3RyaW5nID0gW3N0cm9uZ1NlbGYgX2NhbWVyYUJ1dHRvbkxhYmVsQWxsb3dpbmdQaG90
bzphbGxvd3NJbWFnZU1lZGlhVHlwZSBhbGxvd2luZ1ZpZGVvOmFsbG93c1ZpZGVvTWVkaWFUeXBl
XTsKKyAgICAgICAgICAgIE5TU3RyaW5nICpjYW1lcmFTdHJpbmcgPSBbc3Ryb25nU2VsZiBfY2Ft
ZXJhQnV0dG9uTGFiZWxdOwogICAgICAgICAgICAgVUlBY3Rpb24gKmNhbWVyYUFjdGlvbiA9IFtV
SUFjdGlvbiBhY3Rpb25XaXRoVGl0bGU6Y2FtZXJhU3RyaW5nIGltYWdlOltVSUltYWdlIHN5c3Rl
bUltYWdlTmFtZWQ6QCJjYW1lcmEuZmlsbCJdIGlkZW50aWZpZXI6QCJjYW1lcmEiIGhhbmRsZXI6
XihfX2tpbmRvZiBVSUFjdGlvbiAqYWN0aW9uKSB7CiAgICAgICAgICAgICAgICAgX3VzaW5nQ2Ft
ZXJhID0gWUVTOwogICAgICAgICAgICAgICAgIHNlbGYtPl9pc1ByZXNlbnRpbmdTdWJNZW51ID0g
WUVTOwpAQCAtNDk5LDEwICs1MTAsOCBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKIAogLSAodm9pZClzaG93RmlsZVBpY2tlck1lbnUKIHsKLSAgICBOU0FycmF5ICptZWRpYVR5
cGVzID0gVVRJc0Zvck1JTUVUeXBlcyhfbWltZVR5cGVzLmdldCgpKS5hbGxPYmplY3RzOwotQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KLSAgICBOU0FycmF5ICpkb2N1bWVudFR5
cGVzID0gbWVkaWFUeXBlcy5jb3VudCA/IG1lZGlhVHlwZXMgOiBAWyhfX2JyaWRnZSBOU1N0cmlu
ZyAqKWtVVFR5cGVJdGVtXTsKLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAorICAg
IE5TQXJyYXkgKm1lZGlhVHlwZXMgPSBbX2FjY2VwdGVkVVRJcyBhbGxPYmplY3RzXTsKKyAgICBO
U0FycmF5ICpkb2N1bWVudFR5cGVzID0gbWVkaWFUeXBlcy5jb3VudCA/IG1lZGlhVHlwZXMgOiBA
WyBVVFR5cGVJdGVtLmlkZW50aWZpZXIgXTsKICAgICAKICAgICBfZG9jdW1lbnRQaWNrZXJDb250
cm9sbGVyID0gYWRvcHROUyhbW1VJRG9jdW1lbnRQaWNrZXJWaWV3Q29udHJvbGxlciBhbGxvY10g
aW5pdFdpdGhEb2N1bWVudFR5cGVzOmRvY3VtZW50VHlwZXMgaW5Nb2RlOlVJRG9jdW1lbnRQaWNr
ZXJNb2RlSW1wb3J0XSk7CiAgICAgW19kb2N1bWVudFBpY2tlckNvbnRyb2xsZXIgc2V0QWxsb3dz
TXVsdGlwbGVTZWxlY3Rpb246X2FsbG93TXVsdGlwbGVGaWxlc107CkBAIC01MTcsMTkgKzUyNiwx
MyBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIHsKICAgICAvLyBGSVhNRSA0
OTk2MTU4OTogU3VwcG9ydCBwaWNraW5nIG1lZGlhIHdpdGggVUlJbWFnZVBpY2tlckNvbnRyb2xs
ZXIKICNpZiBIQVZFKFVJQ09OVEVYVE1FTlVfTE9DQVRJT04pCi0gICAgTlNBcnJheSAqbWVkaWFU
eXBlcyA9IFVUSXNGb3JNSU1FVHlwZXMoX21pbWVUeXBlcy5nZXQoKSkuYWxsT2JqZWN0czsKLUFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCi0gICAgQk9PTCBhbGxvd3NJbWFnZU1l
ZGlhVHlwZSA9ICFtZWRpYVR5cGVzLmNvdW50IHx8IGFycmF5Q29udGFpbnNVVElUaGF0Q29uZm9y
bXNUbyhtZWRpYVR5cGVzLCBrVVRUeXBlSW1hZ2UpOwotICAgIEJPT0wgYWxsb3dzVmlkZW9NZWRp
YVR5cGUgPSAhbWVkaWFUeXBlcy5jb3VudCB8fCBhcnJheUNvbnRhaW5zVVRJVGhhdENvbmZvcm1z
VG8obWVkaWFUeXBlcywga1VUVHlwZU1vdmllKTsKLUFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJ
T05TX0VORAotICAgIEJPT0wgc2hvdWxkUHJlc2VudERvY3VtZW50TWVudVZpZXdDb250cm9sbGVy
ID0gYWxsb3dzSW1hZ2VNZWRpYVR5cGUgfHwgYWxsb3dzVmlkZW9NZWRpYVR5cGU7Ci0gICAgaWYg
KHNob3VsZFByZXNlbnREb2N1bWVudE1lbnVWaWV3Q29udHJvbGxlcikgeworICAgIGlmIChfYWxs
b3dlZEltYWdlUGlja2VyVHlwZXMuY29udGFpbnNBbnkoeyBXS0ZpbGVVcGxvYWRQYW5lbEltYWdl
UGlja2VyVHlwZTo6SW1hZ2UsIFdLRmlsZVVwbG9hZFBhbmVsSW1hZ2VQaWNrZXJUeXBlOjpWaWRl
byB9KSkgewogICAgICAgICBbc2VsZiBlbnN1cmVDb250ZXh0TWVudUludGVyYWN0aW9uXTsKICAg
ICAgICAgW19kb2N1bWVudENvbnRleHRNZW51SW50ZXJhY3Rpb24gX3ByZXNlbnRNZW51QXRMb2Nh
dGlvbjpfaW50ZXJhY3Rpb25Qb2ludF07CiAgICAgfSBlbHNlIC8vIEltYWdlIGFuZCBWaWRlbyB0
eXBlcyBhcmUgbm90IGFjY2VwdGVkIHNvIGJ5cGFzcyB0aGUgbWVudSBhbmQgb3BlbiB0aGUgZmls
ZSBwaWNrZXIgZGlyZWN0bHkuCiAjZW5kaWYKICAgICAgICAgW3NlbGYgc2hvd0ZpbGVQaWNrZXJN
ZW51XTsKLSAgICAKKwogICAgIC8vIENsZWFyIG91dCB0aGUgdmlldyBjb250cm9sbGVyIHdlIGp1
c3QgcHJlc2VudGVkLiBEb24ndCBzYXZlIGEgcmVmZXJlbmNlIHRvIHRoZSBVSURvY3VtZW50UGlj
a2VyVmlld0NvbnRyb2xsZXIgYXMgaXQgaXMgc2VsZiBkaXNtaXNzaW5nLgogICAgIF9wcmVzZW50
YXRpb25WaWV3Q29udHJvbGxlciA9IG5pbDsKIH0KQEAgLTgxNCwxMSArODE3LDExIEBAIHN0YXRp
YyBOU1N0cmluZyAqZGlzcGxheVN0cmluZ0ZvckRvY3VtZW50c0F0VVJMcyhOU0FycmF5PE5TVVJM
ICo+ICp1cmxzKQogCiAtICh2b2lkKV91cGxvYWRJdGVtRnJvbU1lZGlhSW5mbzooTlNEaWN0aW9u
YXJ5ICopaW5mbyBzdWNjZXNzQmxvY2s6KHZvaWQgKF4pKF9XS0ZpbGVVcGxvYWRJdGVtICopKXN1
Y2Nlc3NCbG9jayBmYWlsdXJlQmxvY2s6KHZvaWQgKF4pKHZvaWQpKWZhaWx1cmVCbG9jawogewot
ICAgIE5TU3RyaW5nICptZWRpYVR5cGUgPSBbaW5mbyBvYmplY3RGb3JLZXk6VUlJbWFnZVBpY2tl
ckNvbnRyb2xsZXJNZWRpYVR5cGVdOworICAgIE5TU3RyaW5nICptZWRpYVR5cGVVVEkgPSBbaW5m
byBvYmplY3RGb3JLZXk6VUlJbWFnZVBpY2tlckNvbnRyb2xsZXJNZWRpYVR5cGVdOworICAgIFVU
VHlwZSAqbWVkaWFUeXBlID0gW1VUVHlwZSB0eXBlV2l0aElkZW50aWZpZXI6bWVkaWFUeXBlVVRJ
XTsKIAotQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAvLyBGb3Igdmlk
ZW9zIGZyb20gdGhlIGV4aXN0aW5nIGxpYnJhcnkgb3IgY2FtZXJhLCB0aGUgbWVkaWEgVVJMIHdp
bGwgZ2l2ZSB1cyBhIGZpbGUgcGF0aC4KLSAgICBpZiAoVVRUeXBlQ29uZm9ybXNUbygoQ0ZTdHJp
bmdSZWYpbWVkaWFUeXBlLCBrVVRUeXBlTW92aWUpKSB7CisgICAgaWYgKFttZWRpYVR5cGUgY29u
Zm9ybXNUb1R5cGU6VVRUeXBlTW92aWVdKSB7CiAgICAgICAgIE5TVVJMICptZWRpYVVSTCA9IFtp
bmZvIG9iamVjdEZvcktleTpVSUltYWdlUGlja2VyQ29udHJvbGxlck1lZGlhVVJMXTsKICAgICAg
ICAgaWYgKCFbbWVkaWFVUkwgaXNGaWxlVVJMXSkgewogICAgICAgICAgICAgTE9HX0VSUk9SKCJX
S0ZpbGVVcGxvYWRQYW5lbDogRXhwZWN0ZWQgbWVkaWEgVVJMIHRvIGJlIGEgZmlsZSBwYXRoLCBp
dCB3YXMgbm90Iik7CkBAIC04MzEsMTMgKzgzNCwxMiBAQCBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgaWYgKCFVVFR5cGVD
b25mb3Jtc1RvKChDRlN0cmluZ1JlZiltZWRpYVR5cGUsIGtVVFR5cGVJbWFnZSkpIHsKKyAgICBp
ZiAoIVttZWRpYVR5cGUgY29uZm9ybXNUb1R5cGU6VVRUeXBlSW1hZ2VdKSB7CiAgICAgICAgIExP
R19FUlJPUigiV0tGaWxlVXBsb2FkUGFuZWw6IFVuZXhwZWN0ZWQgbWVkaWEgdHlwZS4gRXhwZWN0
ZWQgaW1hZ2Ugb3IgdmlkZW8sIGdvdDogJUAiLCBtZWRpYVR5cGUpOwogICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKICAgICAgICAgZmFpbHVyZUJsb2NrKCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9Ci1BTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAgICAgaWYgKE5TVVJMICppbWFnZVVSTCA9IGluZm9bVUlJbWFnZVBpY2tl
ckNvbnRyb2xsZXJJbWFnZVVSTF0pIHsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCBlNjUxY2IwYTg1NjI3Yjc1MGQ0M2JjNDkyMDYxOGI0YTEzMWQ2
OGY3Li5lMGQ5NDVhOWNhOTk2ZWI3MjVlMjZiYWMxNGU0ZTI4MGIwNTFiNGYzIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMjEtMDMtMDkgIEFkaXR5YSBLZWVydGhpICA8YWtlZXJ0aGlAYXBwbGUuY29tPgorCisgICAg
ICAgIFtpT1NdIFJlZmFjdG9yIFdLRmlsZVVwbG9hZFBhbmVsIHRvIHVzZSBVbmlmb3JtVHlwZUlk
ZW50aWZpZXJzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjMwMDAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzc1MjM3Nzc0PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIFVJU2NyaXB0Q29udHJv
bGxlciBob29rcyB0byByZXRyaWV2ZSB0aGUgdHlwZSBpZGVudGlmaWVycyBmb3IKKyAgICAgICAg
YSBwcmVzZW50ZWQgZmlsZSB1cGxvYWQgcGFuZWwuCisKKyAgICAgICAgKiBUZXN0UnVubmVyU2hh
cmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsOgorICAg
ICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxl
ci5oOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmZpbGVQaWNrZXJBY2NlcHRl
ZFR5cGVJZGVudGlmaWVycyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3Jp
cHRDb250cm9sbGVySU9TLmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3Jp
cHRDb250cm9sbGVySU9TLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXJJT1M6
OmZpbGVQaWNrZXJBY2NlcHRlZFR5cGVJZGVudGlmaWVycyk6CisKIDIwMjEtMDMtMDUgIEpvbmF0
aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFt3ZWJraXRzY21weV0g
U3RhbmRhcmRpemUgdGltZXpvbmUgb2YgbW9jayBzdm4gc2VydmVyCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRy
b2xsZXIuaWRsIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGlu
Z3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAppbmRleCAwMDU1ZTdmOGVjOWE5OWY1ZjJhN2JmM2Jl
Njc2NjUwOGNmMjUyOWI4Li44MWVlMmFjOTA1NTE4ZTU2N2JiNWNkMDhkNTVhYTQ4MWM5OWEwYTJj
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5k
aW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKQEAgLTIwMyw2
ICsyMDMsNyBAQCBpbnRlcmZhY2UgVUlTY3JpcHRDb250cm9sbGVyIHsKICAgICAvLyBFcXVpdmFs
ZW50IG9mIHByZXNzaW5nIHRoZSBEb25lIGJ1dHRvbiBpbiB0aGUgZm9ybSBhY2Nlc3NvcnkgYmFy
LgogICAgIHVuZGVmaW5lZCBkaXNtaXNzRm9ybUFjY2Vzc29yeVZpZXcoKTsKIAorICAgIHJlYWRv
bmx5IGF0dHJpYnV0ZSBvYmplY3QgZmlsZVBpY2tlckFjY2VwdGVkVHlwZUlkZW50aWZpZXJzOwog
ICAgIHVuZGVmaW5lZCBkaXNtaXNzRmlsZVBpY2tlcihvYmplY3QgY2FsbGJhY2spOwogCiAgICAg
cmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0ZXh0Q29udGVudFR5cGU7CmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xs
ZXIuaCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29u
dHJvbGxlci5oCmluZGV4IDEwN2ZjNGI4MTk5Yzg4MDNhNWM1MmE3ZDRjNjRjMjY0NDM1YmU1YTQu
LjA5NjFjZDk5MGY0Y2UxYjNiNjEyYzIyOGNlMjExNjVkOTFkZDcyNjEgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5o
CisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29u
dHJvbGxlci5oCkBAIC0yMTEsNiArMjExLDcgQEAgcHVibGljOgogCiAgICAgLy8gRm9ybSBDb250
cm9scwogICAgIAorICAgIHZpcnR1YWwgSlNPYmplY3RSZWYgZmlsZVBpY2tlckFjY2VwdGVkVHlw
ZUlkZW50aWZpZXJzKCkgeyBub3RJbXBsZW1lbnRlZCgpOyByZXR1cm4gbnVsbHB0cjsgfQogICAg
IHZpcnR1YWwgdm9pZCBkaXNtaXNzRmlsZVBpY2tlcihKU1ZhbHVlUmVmKSB7IG5vdEltcGxlbWVu
dGVkKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgZGlzbWlzc0Zvcm1BY2Nlc3NvcnlWaWV3KCkgeyBu
b3RJbXBsZW1lbnRlZCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIHNlbGVjdEZvcm1BY2Nlc3NvcnlQ
aWNrZXJSb3cobG9uZykgeyBub3RJbXBsZW1lbnRlZCgpOyB9CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MuaCBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5oCmluZGV4IDdhMzY5MGNkMTgy
OTAxMmU3MTUxYTVmMmZkNGFmMGQxMDI1ODE2YzEuLjk4NDgyMDdkMTQ2YmM5OGI1NjNkODAzNDc0
OGY5MDg1ZWI4YzVkMDkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJ
U2NyaXB0Q29udHJvbGxlcklPUy5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvaW9zL1VJ
U2NyaXB0Q29udHJvbGxlcklPUy5oCkBAIC04MCw2ICs4MCw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCByYXdLZXlVcChKU1N0cmluZ1JlZikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIGRpc21pc3NGb3Jt
QWNjZXNzb3J5VmlldygpIG92ZXJyaWRlOworICAgIEpTT2JqZWN0UmVmIGZpbGVQaWNrZXJBY2Nl
cHRlZFR5cGVJZGVudGlmaWVycygpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzbWlzc0ZpbGVQaWNr
ZXIoSlNWYWx1ZVJlZikgb3ZlcnJpZGU7CiAgICAgSlNSZXRhaW5QdHI8SlNTdHJpbmdSZWY+IHNl
bGVjdEZvcm1Qb3BvdmVyVGl0bGUoKSBjb25zdCBvdmVycmlkZTsKICAgICBKU1JldGFpblB0cjxK
U1N0cmluZ1JlZj4gdGV4dENvbnRlbnRUeXBlKCkgY29uc3Qgb3ZlcnJpZGU7CmRpZmYgLS1naXQg
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0gYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KaW5kZXgg
YTg3NGZiMjU3NGNiMjhiYjMzMzAyZmZhNGQyZmJmZDEzYzVhNmJhNC4uN2MxMGZmYTJkZDI4NDM0
MmJkMjM3NTA0Y2M3MmY3YzZhYjE4OGZiMCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQpAQCAtNTUzLDYgKzU1MywxMiBAQCB2
b2lkIFVJU2NyaXB0Q29udHJvbGxlcklPUzo6ZGlzbWlzc0Zvcm1BY2Nlc3NvcnlWaWV3KCkKICAg
ICBbd2ViVmlldygpIGRpc21pc3NGb3JtQWNjZXNzb3J5Vmlld107CiB9CiAKK0pTT2JqZWN0UmVm
IFVJU2NyaXB0Q29udHJvbGxlcklPUzo6ZmlsZVBpY2tlckFjY2VwdGVkVHlwZUlkZW50aWZpZXJz
KCkKK3sKKyAgICBOU0FycmF5ICphY2NlcHRlZFR5cGVJZGVudGlmaWVycyA9IFt3ZWJWaWV3KCkg
X2ZpbGVQaWNrZXJBY2NlcHRlZFR5cGVJZGVudGlmaWVyc107CisgICAgcmV0dXJuIEpTVmFsdWVU
b09iamVjdChtX2NvbnRleHQtPmpzQ29udGV4dCgpLCBbSlNWYWx1ZSB2YWx1ZVdpdGhPYmplY3Q6
YWNjZXB0ZWRUeXBlSWRlbnRpZmllcnMgaW5Db250ZXh0OltKU0NvbnRleHQgY29udGV4dFdpdGhK
U0dsb2JhbENvbnRleHRSZWY6bV9jb250ZXh0LT5qc0NvbnRleHQoKV1dLkpTVmFsdWVSZWYsIG51
bGxwdHIpOworfQorCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcklPUzo6ZGlzbWlzc0ZpbGVQaWNr
ZXIoSlNWYWx1ZVJlZiBjYWxsYmFjaykKIHsKICAgICBUZXN0UnVubmVyV0tXZWJWaWV3ICp3ZWJW
aWV3ID0gdGhpcy0+d2ViVmlldygpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQ2NDcyNDA0YjQ3NDc5YmVmMDc4MzBiNmIz
NjU1YzgzNGM3NzU3MjEuLjViNWI0Yjc4ZWI3MGQ4ODYyMDA5ZDNhMWQ1ZjdkYTdiNTdjOWE5MDAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAyMS0wMy0wOSAgQWRpdHlhIEtlZXJ0aGkgIDxha2Vl
cnRoaUBhcHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gUmVmYWN0b3IgV0tGaWxlVXBsb2FkUGFu
ZWwgdG8gdXNlIFVuaWZvcm1UeXBlSWRlbnRpZmllcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMzAwMAorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NzUyMzc3NzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkZWQgYSB0ZXN0IHRvIHZlcmlmeSB0aGF0IHRoZSB2YWx1ZSBvZiB0aGUgYWNjZXB0IGF0
dHJpYnV0ZSBmb3IgZmlsZQorICAgICAgICBpbnB1dHMgaXMgbWFwcGVkIHRvIHRoZSBjb3JyZWN0
IHNldCBvZiB0eXBlIGlkZW50aWZpZXJzLgorCisgICAgICAgICogZmFzdC9mb3Jtcy9pb3MvZmls
ZS11cGxvYWQtcGFuZWwtYWNjZXB0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFz
dC9mb3Jtcy9pb3MvZmlsZS11cGxvYWQtcGFuZWwtYWNjZXB0Lmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHJlc291cmNlcy91aS1oZWxwZXIuanM6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIuZGlz
bWlzc0ZpbGVQaWNrZXIpOgorICAgICAgICAod2luZG93LlVJSGVscGVyLmZpbGVQaWNrZXJBY2Nl
cHRlZFR5cGVJZGVudGlmaWVycyk6CisKIDIwMjEtMDMtMDUgIEpvbiBMZWUgIDxqb25sZWVAYXBw
bGUuY29tPgogCiAgICAgICAgIFtHUFVQXSBUZXN0IGZhc3QvbWVkaWFzdHJlYW0vbWVkaWEtZWxl
bWVudC1jdXJyZW50LXRpbWUuaHRtbCBmYWlscyB3aGVuIG1lZGlhIGluIEdQVSBQcm9jZXNzIGlz
IGVuYWJsZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2ZpbGUtdXBs
b2FkLXBhbmVsLWFjY2VwdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lv
cy9maWxlLXVwbG9hZC1wYW5lbC1hY2NlcHQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY5ODM1
OGQ3MTExMDQ1NTU0NWFhNWU4MzFhYzE4MzliY2UwMDcyNTMKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9maWxlLXVwbG9hZC1wYW5lbC1hY2NlcHQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsMzYgQEAKK1Rlc3RzIHRoYXQgdGhlIGFjY2VwdCBhdHRyaWJ1dGUg
Zm9yIGZpbGUgaW5wdXRzIGlzIG1hcHBlZCB0byB0aGUgY29ycmVjdCBzZXQgb2YgdHlwZSBpZGVu
dGlmaWVycyBvbiBpT1MuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCisqIGFjY2Vw
dCA9CitQQVNTIGFyZUFycmF5c0VxdWFsKGl0ZW1zLCBbXSkgaXMgdHJ1ZQorCisqIGFjY2VwdCA9
IGltYWdlLyoKK1BBU1MgYXJlQXJyYXlzRXF1YWwoaXRlbXMsIFsicHVibGljLmltYWdlIl0pIGlz
IHRydWUKKworKiBhY2NlcHQgPSB2aWRlby8qCitQQVNTIGFyZUFycmF5c0VxdWFsKGl0ZW1zLCBb
InB1YmxpYy5tb3ZpZSJdKSBpcyB0cnVlCisKKyogYWNjZXB0ID0gaW1hZ2UvKiwgdmlkZW8vKgor
UEFTUyBhcmVBcnJheXNFcXVhbChpdGVtcywgWyJwdWJsaWMuaW1hZ2UiLCAicHVibGljLm1vdmll
Il0pIGlzIHRydWUKKworKiBhY2NlcHQgPSAuUE5HLCAuR0lGCitQQVNTIGFyZUFycmF5c0VxdWFs
KGl0ZW1zLCBbImNvbS5jb21wdXNlcnZlLmdpZiIsICJwdWJsaWMucG5nIl0pIGlzIHRydWUKKwor
KiBhY2NlcHQgPSAuUE5HLCAuR0lGLCAuTU9WCitQQVNTIGFyZUFycmF5c0VxdWFsKGl0ZW1zLCBb
ImNvbS5hcHBsZS5xdWlja3RpbWUtbW92aWUiLCAiY29tLmNvbXB1c2VydmUuZ2lmIiwgInB1Ymxp
Yy5wbmciXSkgaXMgdHJ1ZQorCisqIGFjY2VwdCA9IC5UWFQKK1BBU1MgYXJlQXJyYXlzRXF1YWwo
aXRlbXMsIFsicHVibGljLnBsYWluLXRleHQiXSkgaXMgdHJ1ZQorCisqIGFjY2VwdCA9IC5QREYK
K1BBU1MgYXJlQXJyYXlzRXF1YWwoaXRlbXMsIFsiY29tLmFkb2JlLnBkZiJdKSBpcyB0cnVlCisK
KyogYWNjZXB0ID0gLlBERiwgLlRYVAorUEFTUyBhcmVBcnJheXNFcXVhbChpdGVtcywgWyJjb20u
YWRvYmUucGRmIiwgInB1YmxpYy5wbGFpbi10ZXh0Il0pIGlzIHRydWUKKworUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2ZpbGUtdXBsb2FkLXBhbmVsLWFjY2VwdC5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvZmlsZS11cGxvYWQtcGFuZWwtYWNjZXB0Lmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTViZmVjMzYwZDMwYjY0MmJhZjlkMmQ4NjhmNjkyMTFjZjEyYzUxOQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2ZpbGUtdXBsb2FkLXBhbmVs
LWFjY2VwdC5odG1sCkBAIC0wLDAgKzEsNDYgQEAKKzwhRE9DVFlQRSBodG1sPiA8IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1ZSwgc2hvdWxkSGFuZGxlUnVu
T3BlblBhbmVsPWZhbHNlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgbmFtZT0idmlld3Bv
cnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0aCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4v
cmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jl
c291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8aW5wdXQg
aWQ9ImZpbGVJbnB1dCIgdHlwZT0iZmlsZSI+Cis8c2NyaXB0PgorCitqc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdChhY2NlcHQsIGV4cGVjdGVkSWRlbnRpZmll
cnMpCit7CisgICAgZGVidWcoIiogYWNjZXB0ID0gIiArIGFjY2VwdCk7CisgICAgZmlsZUlucHV0
LmFjY2VwdCA9IGFjY2VwdDsKKworICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudChm
aWxlSW5wdXQpOworCisgICAgaXRlbXMgPSBhd2FpdCBVSUhlbHBlci5maWxlUGlja2VyQWNjZXB0
ZWRUeXBlSWRlbnRpZmllcnMoKTsKKyAgICBzaG91bGRCZVRydWUoImFyZUFycmF5c0VxdWFsKGl0
ZW1zLCAiICsgZXhwZWN0ZWRJZGVudGlmaWVycyArICIpIik7CisKKyAgICBkZWJ1ZygiIik7Cisg
ICAgYXdhaXQgVUlIZWxwZXIuZGlzbWlzc0ZpbGVQaWNrZXIoKTsKK30KKworYWRkRXZlbnRMaXN0
ZW5lcigibG9hZCIsIGFzeW5jICgpID0+IHsKKyAgICBkZXNjcmlwdGlvbigiVGVzdHMgdGhhdCB0
aGUgYWNjZXB0IGF0dHJpYnV0ZSBmb3IgZmlsZSBpbnB1dHMgaXMgbWFwcGVkIHRvIHRoZSBjb3Jy
ZWN0IHNldCBvZiB0eXBlIGlkZW50aWZpZXJzIG9uIGlPUy4iKTsKKworICAgIGF3YWl0IHJ1blRl
c3QoIiIsICdbXScpOworICAgIGF3YWl0IHJ1blRlc3QoImltYWdlLyoiLCAnWyJwdWJsaWMuaW1h
Z2UiXScpOworICAgIGF3YWl0IHJ1blRlc3QoInZpZGVvLyoiLCAnWyJwdWJsaWMubW92aWUiXScp
OworICAgIGF3YWl0IHJ1blRlc3QoImltYWdlLyosIHZpZGVvLyoiLCAnWyJwdWJsaWMuaW1hZ2Ui
LCAicHVibGljLm1vdmllIl0nKTsKKyAgICBhd2FpdCBydW5UZXN0KCIuUE5HLCAuR0lGIiwgJ1si
Y29tLmNvbXB1c2VydmUuZ2lmIiwgInB1YmxpYy5wbmciXScpOworICAgIGF3YWl0IHJ1blRlc3Qo
Ii5QTkcsIC5HSUYsIC5NT1YiLCAnWyJjb20uYXBwbGUucXVpY2t0aW1lLW1vdmllIiwgImNvbS5j
b21wdXNlcnZlLmdpZiIsICJwdWJsaWMucG5nIl0nKTsKKyAgICBhd2FpdCBydW5UZXN0KCIuVFhU
IiwgJ1sicHVibGljLnBsYWluLXRleHQiXScpOworICAgIGF3YWl0IHJ1blRlc3QoIi5QREYiLCAn
WyJjb20uYWRvYmUucGRmIl0nKTsKKyAgICBhd2FpdCBydW5UZXN0KCIuUERGLCAuVFhUIiwgJ1si
Y29tLmFkb2JlLnBkZiIsICJwdWJsaWMucGxhaW4tdGV4dCJdJyk7CisKKyAgICBmaW5pc2hKU1Rl
c3QoKTsKK30pOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMv
dWktaGVscGVyLmpzCmluZGV4IDFlZDJlYTMyODFmYmViNDQ3Njc3MjhkZjliMDM3NTI0NDAzOGY3
NGEuLjQwZTFmNjE0ZDNmZWJjYWZiNWVmNzU1ZjY1Y2Q3YmU2ZjljMGQ4NTYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvcmVz
b3VyY2VzL3VpLWhlbHBlci5qcwpAQCAtOTEzLDYgKzkxMywzMSBAQCB3aW5kb3cuVUlIZWxwZXIg
PSBjbGFzcyBVSUhlbHBlciB7CiAgICAgICAgIH0pOwogICAgIH0KIAorICAgIHN0YXRpYyBkaXNt
aXNzRmlsZVBpY2tlcigpCisgICAgeworICAgICAgICBpZiAoIXRoaXMuaXNXZWJLaXQyKCkgfHwg
IXRoaXMuaXNJT1NGYW1pbHkoKSkKKyAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUo
KTsKKworICAgICAgICBjb25zdCBzY3JpcHQgPSBgdWlDb250cm9sbGVyLmRpc21pc3NGaWxlUGlj
a2VyKCgpID0+IHsKKyAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNjcmlwdENvbXBsZXRlKCk7
CisgICAgICAgIH0pYDsKKyAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdGVz
dFJ1bm5lci5ydW5VSVNjcmlwdChzY3JpcHQsIHJlc29sdmUpKTsKKyAgICB9CisKKyAgICBzdGF0
aWMgZmlsZVBpY2tlckFjY2VwdGVkVHlwZUlkZW50aWZpZXJzKCkKKyAgICB7CisgICAgICAgIGlm
ICghdGhpcy5pc1dlYktpdDIoKSB8fCAhdGhpcy5pc0lPU0ZhbWlseSgpKQorICAgICAgICAgICAg
cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpOworCisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShy
ZXNvbHZlID0+IHsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIucnVuVUlTY3JpcHQoYCgoKSA9PiB7
CisgICAgICAgICAgICAgICAgdWlDb250cm9sbGVyLnVpU2NyaXB0Q29tcGxldGUoSlNPTi5zdHJp
bmdpZnkodWlDb250cm9sbGVyLmZpbGVQaWNrZXJBY2NlcHRlZFR5cGVJZGVudGlmaWVycykpOwor
ICAgICAgICAgICAgfSkoKWAsIGpzb25TdHJpbmcgPT4geworICAgICAgICAgICAgICAgIHJlc29s
dmUoSlNPTi5wYXJzZShqc29uU3RyaW5nKSk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgfSk7
CisgICAgfQorCiAgICAgc3RhdGljIGFjdGl2YXRlRGF0YUxpc3RTdWdnZXN0aW9uKGluZGV4KSB7
CiAgICAgICAgIGNvbnN0IHNjcmlwdCA9IGB1aUNvbnRyb2xsZXIuYWN0aXZhdGVEYXRhTGlzdFN1
Z2dlc3Rpb24oJHtpbmRleH0sICgpID0+IHsKICAgICAgICAgICAgIHVpQ29udHJvbGxlci51aVNj
cmlwdENvbXBsZXRlKCIiKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>