<?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>172992</bug_id>
          
          <creation_ts>2017-06-06 09:16:06 -0700</creation_ts>
          <short_desc>[iOS DnD] Add a hook to perform two-step drops in editable content</short_desc>
          <delta_ts>2017-06-10 03:43:01 -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>HTML Editing</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="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>japhet</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>thorton</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1316016</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-06 09:16:06 -0700</bug_when>
    <thetext>Add support for overriding default drops in editable elements with two-step drops. See performsTwoStepPaste: for reference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1316026</commentid>
    <comment_count>1</comment_count>
      <attachid>312080</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-06 09:32:16 -0700</bug_when>
    <thetext>Created attachment 312080
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1316028</commentid>
    <comment_count>2</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-06 09:33:08 -0700</bug_when>
    <thetext>&lt;rdar://problem/32590174&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1316289</commentid>
    <comment_count>3</comment_count>
      <attachid>312132</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-06 15:53:25 -0700</bug_when>
    <thetext>Created attachment 312132
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1316387</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-06 21:29:40 -0700</bug_when>
    <thetext>Can this be tested?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1316390</commentid>
    <comment_count>5</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-06 22:20:21 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #4)
&gt; Can this be tested?

Unfortunately, I&apos;m not sure how to test this. One thing I thought of is also adding injected bundle SPI to WK2 to handle the two-step paste, and then add a TestWebKitAPI test that exercises the codepath in WebCore. This would allow us to test the WebCore change (which is really the meat of what changed). However, this approach would also mean that this new injected bundle SPI would only be used for testing -- at least, until Mail adopts WK2 :). Perhaps it&apos;s not a bad idea to add an injected bundle version of performTwoStepDrop: if we know we&apos;ll need it for WK2 soon anyways.

What do you think?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317152</commentid>
    <comment_count>6</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2017-06-08 18:04:35 -0700</bug_when>
    <thetext>I think you should add the API test you mention, as discussed in person.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317486</commentid>
    <comment_count>7</comment_count>
      <attachid>312454</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-09 10:42:36 -0700</bug_when>
    <thetext>Created attachment 312454
Add WK2 injected bundle support and tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317489</commentid>
    <comment_count>8</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-06-09 10:44:33 -0700</bug_when>
    <thetext>Attachment 312454 did not pass style-queue:


ERROR: Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:663:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 24 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317508</commentid>
    <comment_count>9</comment_count>
      <attachid>312458</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-06-09 11:00:37 -0700</bug_when>
    <thetext>Created attachment 312458
Fix WebKitTestRunner build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317509</commentid>
    <comment_count>10</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-06-09 11:02:49 -0700</bug_when>
    <thetext>Attachment 312458 did not pass style-queue:


ERROR: Source/WebKit2/WebProcess/InjectedBundle/API/mac/WKWebProcessPlugInBrowserContextController.mm:663:  This { should be at the end of the previous line  [whitespace/braces] [4]
Total errors found: 1 in 25 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317591</commentid>
    <comment_count>11</comment_count>
      <attachid>312458</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-09 13:11:03 -0700</bug_when>
    <thetext>Comment on attachment 312458
Fix WebKitTestRunner build.

Clearing flags on attachment: 312458

Committed r218014: &lt;http://trac.webkit.org/changeset/218014&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312080</attachid>
            <date>2017-06-06 09:32:16 -0700</date>
            <delta_ts>2017-06-06 15:53:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172992-20170606093216.patch</filename>
            <type>text/plain</type>
            <size>13777</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3ODE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDVmZWRhMjE3MGVkNzll
NGY3MjExYzhmNGY5ZGMzM2E5NmE0M2VjOS4uN2Y1MWUwMDY1MGU0NzUyZTUwMGQ3MzQ1MTkwMDAx
MDU0YjM5YWEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE3LTA2LTA2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBB
ZGQgYSBob29rIHRvIHBlcmZvcm0gdHdvLXN0ZXAgZHJvcHMgaW4gZWRpdGFibGUgY29udGVudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyOTkyCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjU5MDE3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGhvb2tzIGluIERyYWdDb250cm9sbGVyOjpj
b25jbHVkZUVkaXREcmFnIHRvIGdpdmUgV0sxIGNsaWVudHMgYSBjaGFuY2UgdG8gcGVyZm9ybSBj
dXN0b20gaGFuZGxpbmcgd2hlbgorICAgICAgICBkcm9wcGluZyBpbiBlZGl0YWJsZSBjb250ZW50
LgorCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgICogcGFnZS9E
cmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6Y29u
Y2x1ZGVFZGl0RHJhZyk6CisgICAgICAgICogcGFnZS9FZGl0b3JDbGllbnQuaDoKKwogMjAxNy0w
Ni0wNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZWZhY3RvciAtW1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgdmFsdWVzRm9yUGFzdGVib2FyZFR5
cGU6aW5JdGVtU2V0Ol0gdG8gY2hlY2sgcmVhZGFibGUgdHlwZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvaW9zL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwppbmRl
eCA5MmVjYTI4OTAxOWQ2YmRmYzY2NGJjZWY4OWQ1NzhiNDQwZTVmZTAzLi41Zjk2ZjY2ODBlMDI0
YmZmOGJjMDYzNTVkYTg5ZjkxMWY5N2QyZmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2lv
cy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMTctMDYtMDYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CisKKyAgICAgICAgW2lPUyBEbkRdIEFkZCBhIGhvb2sgdG8gcGVyZm9ybSB0d28tc3RlcCBkcm9w
cyBpbiBlZGl0YWJsZSBjb250ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzI5OTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMyNTkwMTc0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBl
bXB0eSBpbXBsZW1lbnRhdGlvbiBvZiBwZXJmb3JtVHdvU3RlcERyb3AuIFNlZSBXZWJDb3JlIENo
YW5nZUxvZ3MgZm9yIG1vcmUgZGV0YWlsLgorCisgICAgICAgICogRGVmYXVsdERlbGVnYXRlcy9X
ZWJEZWZhdWx0VUlLaXREZWxlZ2F0ZS5tOgorICAgICAgICAoLVtXZWJEZWZhdWx0VUlLaXREZWxl
Z2F0ZSBwZXJmb3JtVHdvU3RlcERyb3A6YXREZXN0aW5hdGlvbjppc01vdmU6XSk6CisgICAgICAg
ICogV2ViVmlldy9XZWJVSUtpdERlbGVnYXRlLmg6CisKIDIwMTctMDUtMTIgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9wIHVzZXMgb2YgUGFzc1JlZlB0ciBp
biBXZWJLaXQvbWFjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYzkzZGFmYTdjZjQ5NGJmM2I0ZTZlNDY3
ZTM0ZDBiM2ZmZDY2NGM5My4uODNjYjk2MzViZDQxNzM5MzgxMjdlNzg2NWRmN2IzYzRiYWZiYmFl
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE3LTA2LTA2ICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBBZGQg
YSBob29rIHRvIHBlcmZvcm0gdHdvLXN0ZXAgZHJvcHMgaW4gZWRpdGFibGUgY29udGVudAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyOTkyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8zMjU5MDE3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGEgbmV3IFNQSSB0byBXZWJVSUtpdERlbGVnYXRl
IHRvIGFsbG93IFdLMSBjbGllbnRzIHRvIG92ZXJyaWRlIGRlZmF1bHQgZHJvcCBiZWhhdmlvci4g
UmV0dXJuaW5nIFlFUyBmcm9tCisgICAgICAgIC1wZXJmb3JtVHdvU3RlcERyb3A6YXREZXN0aW5h
dGlvbjppc01vdmU6IHdpbGwgcHJldmVudCBjb250ZW50IGZyb20gYmVpbmcgaW5zZXJ0ZWQgb24g
ZHJvcCBpbiBXZWJLaXQ7IG90aGVyd2lzZSwKKyAgICAgICAgcmV0dXJuaW5nIE5PIHdpbGwgY29u
dGludWUgd2l0aCBkZWZhdWx0IFdlYktpdCBiZWhhdmlvci4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5tbToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6cGVyZm9ybVR3b1N0ZXBE
cm9wKToKKwogMjAxNy0wNi0wNSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFRyaWVkIHRvIGZpeCB0aGUgYnVpbGQgd2hlbiB0YXJncnRpbmcgbWFjT1MgMTAuMTIg
dXNpbmcgdGhlIG1hY09TIDEwLjEzIGRldmVsb3BlciBiZXRhIFNESy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBj
NzU4YzcyNDIxNzA2YmRhZWNlNGU3MWQ1NjUxZTk1ZjVlOTMyNzQ2Li5lZGNjYmExOGVjMDZiNTVj
NGQxZWQ3ZTY3ZmMyMjdmODQzZjUyODViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTctMDYtMDYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAg
ICAgW2lPUyBEbkRdIEFkZCBhIGhvb2sgdG8gcGVyZm9ybSB0d28tc3RlcCBkcm9wcyBpbiBlZGl0
YWJsZSBjb250ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzI5OTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMyNTkwMTc0PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBlbXB0eSBzdHVi
IGltcGxlbWVudGF0aW9uIG9mIHBlcmZvcm1Ud29TdGVwRHJvcC4gU2VlIFdlYkNvcmUgQ2hhbmdl
TG9nIGZvciBtb3JlIGRldGFpbC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9pb3MvV2ViRWRpdG9yQ2xpZW50SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJFZGl0b3JD
bGllbnQ6OnBlcmZvcm1Ud29TdGVwRHJvcCk6CisKIDIwMTctMDYtMDUgIENocmlzIER1bWV6ICA8
Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiBSdW5Mb29wOjpp
c01haW4oKSBpbiBjb20uYXBwbGUuV2ViS2l0OiBJUEM6OkNvbm5lY3Rpb246OnNlbmRTeW5jTWVz
c2FnZSArIDEyOApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCAxYjE2
OWJkNjM5MjJlODhlYzU2ZTQxYzQyMTQyY2VkNDRlOTA2MDI5Li42MDAwN2U0YzI0NTE1ZmJmZjBm
ZWZmYTlmNGRmYjRhYjkwYjA0MjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
RW1wdHlDbGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRz
LmNwcApAQCAtMjEwLDYgKzIxMCw3IEBAIHByaXZhdGU6CiAgICAgaW50IGdldFBhc3RlYm9hcmRJ
dGVtc0NvdW50KCkgZmluYWwgeyByZXR1cm4gMDsgfQogICAgIFJlZlB0cjxEb2N1bWVudEZyYWdt
ZW50PiBkb2N1bWVudEZyYWdtZW50RnJvbURlbGVnYXRlKGludCkgZmluYWwgeyByZXR1cm4gbnVs
bHB0cjsgfQogICAgIGJvb2wgcGVyZm9ybXNUd29TdGVwUGFzdGUoRG9jdW1lbnRGcmFnbWVudCop
IGZpbmFsIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgYm9vbCBwZXJmb3JtVHdvU3RlcERyb3AoRG9j
dW1lbnRGcmFnbWVudCYsIFJhbmdlJiwgYm9vbCkgZmluYWwgeyByZXR1cm4gZmFsc2U7IH0KICAg
ICBpbnQgcGFzdGVib2FyZENoYW5nZUNvdW50KCkgZmluYWwgeyByZXR1cm4gMDsgfQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggM2JhZWU2MTZlYTI1
M2I2OTFjYzcxZGNiMDQ2ZmI5Y2IxYjQ3YTAxNC4uY2JlMTAzZGNlNDc3MWU4NTVhYTg4NGY3Y2M1
Njk4ZmI4ZTg2YmFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJv
bGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAg
LTU2OSwxOCArNTY5LDIzIEBAIGJvb2wgRHJhZ0NvbnRyb2xsZXI6OmNvbmNsdWRlRWRpdERyYWco
Y29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBS
ZXNvdXJjZUNhY2hlVmFsaWRhdGlvblN1cHByZXNzb3IgdmFsaWRhdGlvblN1cHByZXNzb3IocmFu
Z2UtPm93bmVyRG9jdW1lbnQoKS5jYWNoZWRSZXNvdXJjZUxvYWRlcigpKTsKLSAgICBpZiAoZHJh
Z0lzTW92ZShpbm5lckZyYW1lLT5zZWxlY3Rpb24oKSwgZHJhZ0RhdGEpIHx8IGRyYWdDYXJldC5p
c0NvbnRlbnRSaWNobHlFZGl0YWJsZSgpKSB7CisgICAgYXV0byYgZWRpdG9yID0gaW5uZXJGcmFt
ZS0+ZWRpdG9yKCk7CisgICAgYm9vbCBpc01vdmUgPSBkcmFnSXNNb3ZlKGlubmVyRnJhbWUtPnNl
bGVjdGlvbigpLCBkcmFnRGF0YSk7CisgICAgaWYgKGlzTW92ZSB8fCBkcmFnQ2FyZXQuaXNDb250
ZW50UmljaGx5RWRpdGFibGUoKSkgewogICAgICAgICBib29sIGNob3NlUGxhaW5UZXh0ID0gZmFs
c2U7CiAgICAgICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGRvY3VtZW50
RnJhZ21lbnRGcm9tRHJhZ0RhdGEoZHJhZ0RhdGEsICppbm5lckZyYW1lLCAqcmFuZ2UsIHRydWUs
IGNob3NlUGxhaW5UZXh0KTsKLSAgICAgICAgaWYgKCFmcmFnbWVudCB8fCAhaW5uZXJGcmFtZS0+
ZWRpdG9yKCkuc2hvdWxkSW5zZXJ0RnJhZ21lbnQoKmZyYWdtZW50LCByYW5nZS5nZXQoKSwgRWRp
dG9ySW5zZXJ0QWN0aW9uOjpEcm9wcGVkKSkgeworICAgICAgICBpZiAoIWZyYWdtZW50IHx8ICFl
ZGl0b3Iuc2hvdWxkSW5zZXJ0RnJhZ21lbnQoKmZyYWdtZW50LCByYW5nZS5nZXQoKSwgRWRpdG9y
SW5zZXJ0QWN0aW9uOjpEcm9wcGVkKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgfQogCiAgICAgICAgIG1fY2xpZW50LndpbGxQZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9u
KERyYWdEZXN0aW5hdGlvbkFjdGlvbkVkaXQsIGRyYWdEYXRhKTsKLSAgICAgICAgaWYgKGRyYWdJ
c01vdmUoaW5uZXJGcmFtZS0+c2VsZWN0aW9uKCksIGRyYWdEYXRhKSkgeworCisgICAgICAgIGlm
IChlZGl0b3IuY2xpZW50KCkgJiYgZWRpdG9yLmNsaWVudCgpLT5wZXJmb3JtVHdvU3RlcERyb3Ao
KmZyYWdtZW50LCAqcmFuZ2UsIGlzTW92ZSkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKwor
ICAgICAgICBpZiAoaXNNb3ZlKSB7CiAgICAgICAgICAgICAvLyBOU1RleHRWaWV3IGJlaGF2aW9y
IGlzIHRvIGFsd2F5cyBzbWFydCBkZWxldGUgb24gbW92aW5nIGEgc2VsZWN0aW9uLAogICAgICAg
ICAgICAgLy8gYnV0IG9ubHkgdG8gc21hcnQgaW5zZXJ0IGlmIHRoZSBzZWxlY3Rpb24gZ3JhbnVs
YXJpdHkgaXMgd29yZCBncmFudWxhcml0eS4KLSAgICAgICAgICAgIGJvb2wgc21hcnREZWxldGUg
PSBpbm5lckZyYW1lLT5lZGl0b3IoKS5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKKyAgICAg
ICAgICAgIGJvb2wgc21hcnREZWxldGUgPSBlZGl0b3Iuc21hcnRJbnNlcnREZWxldGVFbmFibGVk
KCk7CiAgICAgICAgICAgICBib29sIHNtYXJ0SW5zZXJ0ID0gc21hcnREZWxldGUgJiYgaW5uZXJG
cmFtZS0+c2VsZWN0aW9uKCkuZ3JhbnVsYXJpdHkoKSA9PSBXb3JkR3JhbnVsYXJpdHkgJiYgZHJh
Z0RhdGEuY2FuU21hcnRSZXBsYWNlKCk7CiAgICAgICAgICAgICBNb3ZlU2VsZWN0aW9uQ29tbWFu
ZDo6Y3JlYXRlKGZyYWdtZW50LnJlbGVhc2VOb25OdWxsKCksIGRyYWdDYXJldC5iYXNlKCksIHNt
YXJ0SW5zZXJ0LCBzbWFydERlbGV0ZSktPmFwcGx5KCk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC01
OTUsMTMgKzYwMCwxOSBAQCBib29sIERyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKGNv
bnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAg
IFN0cmluZyB0ZXh0ID0gZHJhZ0RhdGEuYXNQbGFpblRleHQoKTsKLSAgICAgICAgaWYgKHRleHQu
aXNFbXB0eSgpIHx8ICFpbm5lckZyYW1lLT5lZGl0b3IoKS5zaG91bGRJbnNlcnRUZXh0KHRleHQs
IHJhbmdlLmdldCgpLCBFZGl0b3JJbnNlcnRBY3Rpb246OkRyb3BwZWQpKSB7CisgICAgICAgIGlm
ICh0ZXh0LmlzRW1wdHkoKSB8fCAhZWRpdG9yLnNob3VsZEluc2VydFRleHQodGV4dCwgcmFuZ2Uu
Z2V0KCksIEVkaXRvckluc2VydEFjdGlvbjo6RHJvcHBlZCkpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgICAgIH0KIAogICAgICAgICBtX2NsaWVudC53aWxsUGVyZm9ybURyYWdEZXN0
aW5hdGlvbkFjdGlvbihEcmFnRGVzdGluYXRpb25BY3Rpb25FZGl0LCBkcmFnRGF0YSk7CisgICAg
ICAgIFJlZlB0cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50RnJv
bVRleHQoKnJhbmdlLCB0ZXh0KTsKKyAgICAgICAgaWYgKCFmcmFnbWVudCkKKyAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKKworICAgICAgICBpZiAoZWRpdG9yLmNsaWVudCgpICYmIGVkaXRvci5j
bGllbnQoKS0+cGVyZm9ybVR3b1N0ZXBEcm9wKCpmcmFnbWVudCwgKnJhbmdlLCBpc01vdmUpKQor
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKICAgICAgICAgaWYgKHNldFNlbGVjdGlvblRvRHJh
Z0NhcmV0KGlubmVyRnJhbWUuZ2V0KCksIGRyYWdDYXJldCwgcmFuZ2UsIHBvaW50KSkKLSAgICAg
ICAgICAgIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVhdGUoKm1fZG9jdW1lbnRVbmRlck1v
dXNlLCBjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpyYW5nZSwgdGV4dCksICBSZXBsYWNlU2VsZWN0
aW9uQ29tbWFuZDo6U2VsZWN0UmVwbGFjZW1lbnQgfCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6
TWF0Y2hTdHlsZSB8IFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpQcmV2ZW50TmVzdGluZywgRWRp
dEFjdGlvbkluc2VydEZyb21Ecm9wKS0+YXBwbHkoKTsKKyAgICAgICAgICAgIFJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kOjpjcmVhdGUoKm1fZG9jdW1lbnRVbmRlck1vdXNlLCBmcmFnbWVudC5nZXQo
KSwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlNlbGVjdFJlcGxhY2VtZW50IHwgUmVwbGFjZVNl
bGVjdGlvbkNvbW1hbmQ6Ok1hdGNoU3R5bGUgfCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UHJl
dmVudE5lc3RpbmcsIEVkaXRBY3Rpb25JbnNlcnRGcm9tRHJvcCktPmFwcGx5KCk7CiAgICAgfQog
CiAgICAgaWYgKHJvb3RFZGl0YWJsZUVsZW1lbnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVu
dC5oCmluZGV4IDU3NWI0MWQ4NTY0MDYyZDU1OGVhYzkzNDk3Y2Y1ODQ1ZmNjNmY1MGQuLmJiOThl
MjcxM2ZhZjMwYmYyZGFhYmEwY2RlMDc4ZTM0MjQwMmNkNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0
b3JDbGllbnQuaApAQCAtMTM3LDYgKzEzNyw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGludCBn
ZXRQYXN0ZWJvYXJkSXRlbXNDb3VudCgpID0gMDsKICAgICB2aXJ0dWFsIFJlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBkb2N1bWVudEZyYWdtZW50RnJvbURlbGVnYXRlKGludCBpbmRleCkgPSAwOwog
ICAgIHZpcnR1YWwgYm9vbCBwZXJmb3Jtc1R3b1N0ZXBQYXN0ZShEb2N1bWVudEZyYWdtZW50Kikg
PSAwOworICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtVHdvU3RlcERyb3AoRG9jdW1lbnRGcmFnbWVu
dCYsIFJhbmdlJiBkZXN0aW5hdGlvbiwgYm9vbCBpc01vdmUpID0gMDsKICAgICB2aXJ0dWFsIGlu
dCBwYXN0ZWJvYXJkQ2hhbmdlQ291bnQoKSA9IDA7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9pb3MvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0VUlLaXREZWxlZ2F0ZS5t
IGIvU291cmNlL1dlYktpdC9pb3MvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0VUlLaXREZWxl
Z2F0ZS5tCmluZGV4IGFmOTI4Y2FmYmNkMTQ5MDkxMzI3NjU5YWQ3NmM0NmQ0NzgwODc3YzguLjQy
ZjliY2U3NTgxODVhNGRlYjU3MmUxYzlhZTBmOTk4YjkwMDdmNGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvaW9zL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJS2l0RGVsZWdhdGUubQor
KysgYi9Tb3VyY2UvV2ViS2l0L2lvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRVSUtpdERl
bGVnYXRlLm0KQEAgLTI3LDYgKzI3LDcgQEAKIAogI2ltcG9ydCAiV2ViRGVmYXVsdFVJS2l0RGVs
ZWdhdGUuaCIKIAorI2ltcG9ydCAiRE9NUmFuZ2UuaCIKICNpbXBvcnQgIldlYlVJRGVsZWdhdGUu
aCIKIAogc3RhdGljIFdlYkRlZmF1bHRVSUtpdERlbGVnYXRlICpzaGFyZWREZWxlZ2F0ZSA9IG5p
bDsKQEAgLTI2Miw2ICsyNjMsMTEgQEAgLSAoQk9PTClwZXJmb3Jtc1R3b1N0ZXBQYXN0ZTooRE9N
RG9jdW1lbnRGcmFnbWVudCopZnJhZ21lbnQKICAgICByZXR1cm4gTk87CiB9CiAKKy0gKEJPT0wp
cGVyZm9ybVR3b1N0ZXBEcm9wOihET01Eb2N1bWVudEZyYWdtZW50ICopZnJhZ21lbnQgYXREZXN0
aW5hdGlvbjooRE9NUmFuZ2UgKilkZXN0aW5hdGlvbiBpc01vdmU6KEJPT0wpaXNNb3ZlCit7Cisg
ICAgcmV0dXJuIE5POworfQorCiAtIChOU0ludGVnZXIpZ2V0UGFzdGVib2FyZENoYW5nZUNvdW50
CiB7CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJWaWV3
L1dlYlVJS2l0RGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYlZpZXcvV2ViVUlLaXRE
ZWxlZ2F0ZS5oCmluZGV4IDZlZWFiYjc0ZmE2YjZkYjk2MDcyYTk2MGE3YTBjZDI0NmJhYTRmMzQu
LjNhNDQ2MmU0Mzg4OWVjN2I4MzZmYzI3NmZiZTc3NDhiYjE5M2NkNjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvaW9zL1dlYlZpZXcvV2ViVUlLaXREZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvaW9zL1dlYlZpZXcvV2ViVUlLaXREZWxlZ2F0ZS5oCkBAIC0yOSw4ICsyOSw5IEBACiAj
aW1wb3J0IDxXZWJLaXRMZWdhY3kvV0FLQXBwS2l0U3R1YnMuaD4KICNpbXBvcnQgPFdlYktpdExl
Z2FjeS9XS0NvbnRlbnRPYnNlcnZhdGlvbi5oPgogCi1AY2xhc3MgRE9NTm9kZTsKIEBjbGFzcyBE
T01Eb2N1bWVudEZyYWdtZW50OworQGNsYXNzIERPTU5vZGU7CitAY2xhc3MgRE9NUmFuZ2U7CiBA
Y2xhc3MgV0FLVmlldzsKIEBjbGFzcyBXZWJEYXRhU291cmNlOwogQGNsYXNzIFdlYkZyYW1lOwpA
QCAtMTE4LDYgKzExOSw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdlYk1lZGlhQ2Fw
dHVyZVR5cGUpIHsKIC0gKE5TQXJyYXkqKXN1cHBvcnRlZFBhc3RlYm9hcmRUeXBlc0ZvckN1cnJl
bnRTZWxlY3Rpb247CiAtIChCT09MKWhhc1JpY2hseUVkaXRhYmxlU2VsZWN0aW9uOwogLSAoQk9P
TClwZXJmb3Jtc1R3b1N0ZXBQYXN0ZTooRE9NRG9jdW1lbnRGcmFnbWVudCopZnJhZ21lbnQ7Cist
IChCT09MKXBlcmZvcm1Ud29TdGVwRHJvcDooRE9NRG9jdW1lbnRGcmFnbWVudCAqKWZyYWdtZW50
IGF0RGVzdGluYXRpb246KERPTVJhbmdlICopZGVzdGluYXRpb24gaXNNb3ZlOihCT09MKWlzTW92
ZTsKIC0gKE5TSW50ZWdlcilnZXRQYXN0ZWJvYXJkQ2hhbmdlQ291bnQ7CiAtIChDR1BvaW50KWlu
dGVyYWN0aW9uTG9jYXRpb247CiAtICh2b2lkKXNob3dQbGF5YmFja1RhcmdldFBpY2tlcjooQk9P
TCloYXNWaWRlbyBmcm9tUmVjdDooQ0dSZWN0KWVsZW1lbnRSZWN0OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCAxMDBkZDZh
YzE1MGJmZTViY2IyNmQ1MDk5ZDMwOWViMmQ0OTNlMjkwLi44YWNmY2YyYTQ5YjNlNGJiYmE0N2Q1
MjdhMzdlNWQ1YjAyZDQ1ZjZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTQ4LDYgKzE0OCw3IEBAIHByaXZhdGU6CiAg
ICAgaW50IGdldFBhc3RlYm9hcmRJdGVtc0NvdW50KCkgZmluYWw7CiAgICAgUmVmUHRyPFdlYkNv
cmU6OkRvY3VtZW50RnJhZ21lbnQ+IGRvY3VtZW50RnJhZ21lbnRGcm9tRGVsZWdhdGUoaW50IGlu
ZGV4KSBmaW5hbDsKICAgICBib29sIHBlcmZvcm1zVHdvU3RlcFBhc3RlKFdlYkNvcmU6OkRvY3Vt
ZW50RnJhZ21lbnQqKSBmaW5hbDsKKyAgICBib29sIHBlcmZvcm1Ud29TdGVwRHJvcChXZWJDb3Jl
OjpEb2N1bWVudEZyYWdtZW50JiwgV2ViQ29yZTo6UmFuZ2UmIGRlc3RpbmF0aW9uLCBib29sIGlz
TW92ZSkgZmluYWw7CiAgICAgaW50IHBhc3RlYm9hcmRDaGFuZ2VDb3VudCgpIGZpbmFsOwogI2Vu
ZGlmCiAgICAgCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQubW0KaW5kZXggMjAxMTk1MjM3Mjg2MjQ5ODUzOWRmNTllZjY2YTJjMmFiNDk3
MDIyYy4uZTdiNTdhZjg5M2YwZDlhMGFkZDdlN2RmM2FmNDI5ZThkMDNiYWJlOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQpA
QCAtOTIzLDYgKzkyMywxNCBAQCBib29sIFdlYkVkaXRvckNsaWVudDo6cGVyZm9ybXNUd29TdGVw
UGFzdGUoV2ViQ29yZTo6RG9jdW1lbnRGcmFnbWVudCogZnJhZ21lbnQpCiAgICAgcmV0dXJuIGZh
bHNlOwogfQogCitib29sIFdlYkVkaXRvckNsaWVudDo6cGVyZm9ybVR3b1N0ZXBEcm9wKERvY3Vt
ZW50RnJhZ21lbnQmIGZyYWdtZW50LCBSYW5nZSYgZGVzdGluYXRpb24sIGJvb2wgaXNNb3ZlKQor
eworICAgIGlmIChbW21fd2ViVmlldyBfVUlLaXREZWxlZ2F0ZUZvcndhcmRlcl0gcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3RvcihwZXJmb3JtVHdvU3RlcERyb3A6YXREZXN0aW5hdGlvbjppc01v
dmU6KV0pCisgICAgICAgIHJldHVybiBbW21fd2ViVmlldyBfVUlLaXREZWxlZ2F0ZUZvcndhcmRl
cl0gcGVyZm9ybVR3b1N0ZXBEcm9wOmtpdCgmZnJhZ21lbnQpIGF0RGVzdGluYXRpb246a2l0KCZk
ZXN0aW5hdGlvbikgaXNNb3ZlOmlzTW92ZV07CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIGlu
dCBXZWJFZGl0b3JDbGllbnQ6OnBhc3RlYm9hcmRDaGFuZ2VDb3VudCgpCiB7CiAgICAgaWYgKFtb
bV93ZWJWaWV3IF9VSUtpdERlbGVnYXRlRm9yd2FyZGVyXSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKGdldFBhc3RlYm9hcmRDaGFuZ2VDb3VudCldKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5k
ZXggMGYxZGU3MWFhZDc1OTNmZDI1OGY1OTc1MWU5NmFmNGI1NGFkYjkxNC4uNmFiMmZkYzY3MDI1
ZmQ5YzZmOWMwODQ1ZjRjZTc2MzFhNWYyOTE3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCkBAIC0x
NjUsNiArMTY1LDcgQEAgcHJpdmF0ZToKICAgICBpbnQgZ2V0UGFzdGVib2FyZEl0ZW1zQ291bnQo
KSBmaW5hbDsKICAgICBSZWZQdHI8V2ViQ29yZTo6RG9jdW1lbnRGcmFnbWVudD4gZG9jdW1lbnRG
cmFnbWVudEZyb21EZWxlZ2F0ZShpbnQgaW5kZXgpIGZpbmFsOwogICAgIGJvb2wgcGVyZm9ybXNU
d29TdGVwUGFzdGUoV2ViQ29yZTo6RG9jdW1lbnRGcmFnbWVudCopIGZpbmFsOworICAgIGJvb2wg
cGVyZm9ybVR3b1N0ZXBEcm9wKFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQmLCBXZWJDb3JlOjpS
YW5nZSYsIGJvb2wgaXNNb3ZlKSBmaW5hbDsKICAgICBpbnQgcGFzdGVib2FyZENoYW5nZUNvdW50
KCkgZmluYWw7CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViRWRpdG9yQ2xpZW50SU9TLm1tIGIvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9pb3MvV2ViRWRpdG9yQ2xpZW50SU9TLm1tCmlu
ZGV4IDM3YzlmN2YzMmRiMDNiYTVkM2RhNTlhZjg0NTgxOTUxMDgwNGJhZGQuLjA2YjAwYzE4MzM4
YTBkMzk3M2Q3YTZhMThmNzBhNjMyNzkxYTMyMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvaW9zL1dlYkVkaXRvckNsaWVudElPUy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L2lvcy9XZWJFZGl0b3JD
bGllbnRJT1MubW0KQEAgLTEyMiw2ICsxMjIsMTIgQEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnBl
cmZvcm1zVHdvU3RlcFBhc3RlKFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQqKQogICAgIHJldHVy
biBmYWxzZTsKIH0KIAorYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnBlcmZvcm1Ud29TdGVwRHJvcChE
b2N1bWVudEZyYWdtZW50JiwgUmFuZ2UmLCBib29sKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBpbnQgV2ViRWRpdG9yQ2xpZW50OjpwYXN0ZWJvYXJk
Q2hhbmdlQ291bnQoKQogewogICAgIG5vdEltcGxlbWVudGVkKCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312132</attachid>
            <date>2017-06-06 15:53:25 -0700</date>
            <delta_ts>2017-06-08 18:04:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-172992-20170606155324.patch</filename>
            <type>text/plain</type>
            <size>14025</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3ODE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDVmZWRhMjE3MGVkNzll
NGY3MjExYzhmNGY5ZGMzM2E5NmE0M2VjOS4uN2Y1MWUwMDY1MGU0NzUyZTUwMGQ3MzQ1MTkwMDAx
MDU0YjM5YWEwZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE3LTA2LTA2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBB
ZGQgYSBob29rIHRvIHBlcmZvcm0gdHdvLXN0ZXAgZHJvcHMgaW4gZWRpdGFibGUgY29udGVudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyOTkyCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjU5MDE3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGhvb2tzIGluIERyYWdDb250cm9sbGVyOjpj
b25jbHVkZUVkaXREcmFnIHRvIGdpdmUgV0sxIGNsaWVudHMgYSBjaGFuY2UgdG8gcGVyZm9ybSBj
dXN0b20gaGFuZGxpbmcgd2hlbgorICAgICAgICBkcm9wcGluZyBpbiBlZGl0YWJsZSBjb250ZW50
LgorCisgICAgICAgICogbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHA6CisgICAgICAgICogcGFnZS9E
cmFnQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6Y29u
Y2x1ZGVFZGl0RHJhZyk6CisgICAgICAgICogcGFnZS9FZGl0b3JDbGllbnQuaDoKKwogMjAxNy0w
Ni0wNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZWZhY3RvciAtW1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgdmFsdWVzRm9yUGFzdGVib2FyZFR5
cGU6aW5JdGVtU2V0Ol0gdG8gY2hlY2sgcmVhZGFibGUgdHlwZXMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvaW9zL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwppbmRl
eCA5MmVjYTI4OTAxOWQ2YmRmYzY2NGJjZWY4OWQ1NzhiNDQwZTVmZTAzLi41Zjk2ZjY2ODBlMDI0
YmZmOGJjMDYzNTVkYTg5ZjkxMWY5N2QyZmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2lv
cy9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMTctMDYtMDYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+
CisKKyAgICAgICAgW2lPUyBEbkRdIEFkZCBhIGhvb2sgdG8gcGVyZm9ybSB0d28tc3RlcCBkcm9w
cyBpbiBlZGl0YWJsZSBjb250ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xNzI5OTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMyNTkwMTc0Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBl
bXB0eSBpbXBsZW1lbnRhdGlvbiBvZiBwZXJmb3JtVHdvU3RlcERyb3AuIFNlZSBXZWJDb3JlIENo
YW5nZUxvZ3MgZm9yIG1vcmUgZGV0YWlsLgorCisgICAgICAgICogRGVmYXVsdERlbGVnYXRlcy9X
ZWJEZWZhdWx0VUlLaXREZWxlZ2F0ZS5tOgorICAgICAgICAoLVtXZWJEZWZhdWx0VUlLaXREZWxl
Z2F0ZSBwZXJmb3JtVHdvU3RlcERyb3A6YXREZXN0aW5hdGlvbjppc01vdmU6XSk6CisgICAgICAg
ICogV2ViVmlldy9XZWJVSUtpdERlbGVnYXRlLmg6CisKIDIwMTctMDUtMTIgIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBEcm9wIHVzZXMgb2YgUGFzc1JlZlB0ciBp
biBXZWJLaXQvbWFjCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKaW5kZXggYzkzZGFmYTdjZjQ5NGJmM2I0ZTZlNDY3
ZTM0ZDBiM2ZmZDY2NGM5My4uODNjYjk2MzViZDQxNzM5MzgxMjdlNzg2NWRmN2IzYzRiYWZiYmFl
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDE3LTA2LTA2ICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBBZGQg
YSBob29rIHRvIHBlcmZvcm0gdHdvLXN0ZXAgZHJvcHMgaW4gZWRpdGFibGUgY29udGVudAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyOTkyCisgICAg
ICAgIDxyZGFyOi8vcHJvYmxlbS8zMjU5MDE3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGEgbmV3IFNQSSB0byBXZWJVSUtpdERlbGVnYXRl
IHRvIGFsbG93IFdLMSBjbGllbnRzIHRvIG92ZXJyaWRlIGRlZmF1bHQgZHJvcCBiZWhhdmlvci4g
UmV0dXJuaW5nIFlFUyBmcm9tCisgICAgICAgIC1wZXJmb3JtVHdvU3RlcERyb3A6YXREZXN0aW5h
dGlvbjppc01vdmU6IHdpbGwgcHJldmVudCBjb250ZW50IGZyb20gYmVpbmcgaW5zZXJ0ZWQgb24g
ZHJvcCBpbiBXZWJLaXQ7IG90aGVyd2lzZSwKKyAgICAgICAgcmV0dXJuaW5nIE5PIHdpbGwgY29u
dGludWUgd2l0aCBkZWZhdWx0IFdlYktpdCBiZWhhdmlvci4KKworICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVk
aXRvckNsaWVudC5tbToKKyAgICAgICAgKFdlYkVkaXRvckNsaWVudDo6cGVyZm9ybVR3b1N0ZXBE
cm9wKToKKwogMjAxNy0wNi0wNSAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAg
ICAgICAgIFRyaWVkIHRvIGZpeCB0aGUgYnVpbGQgd2hlbiB0YXJncnRpbmcgbWFjT1MgMTAuMTIg
dXNpbmcgdGhlIG1hY09TIDEwLjEzIGRldmVsb3BlciBiZXRhIFNESy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBj
NzU4YzcyNDIxNzA2YmRhZWNlNGU3MWQ1NjUxZTk1ZjVlOTMyNzQ2Li5jZDBhOTExZTUxYjU0NTAx
N2QwMWZkMmNmODk5MDlhZDBiNWZkNWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIw
MTctMDYtMDYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAg
ICAgW2lPUyBEbkRdIEFkZCBhIGhvb2sgdG8gcGVyZm9ybSB0d28tc3RlcCBkcm9wcyBpbiBlZGl0
YWJsZSBjb250ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzI5OTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMyNTkwMTc0PgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhbiBlbXB0eSBzdHVi
IGltcGxlbWVudGF0aW9uIG9mIHBlcmZvcm1Ud29TdGVwRHJvcC4gU2VlIFdlYkNvcmUgQ2hhbmdl
TG9nIGZvciBtb3JlIGRldGFpbC4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRWRpdG9yQ2xpZW50
OjpwZXJmb3JtVHdvU3RlcERyb3ApOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViRWRpdG9yQ2xpZW50Lmg6CisKIDIwMTctMDYtMDUgIENocmlzIER1bWV6ICA8Y2R1bWV6
QGFwcGxlLmNvbT4KIAogICAgICAgICBBU1NFUlRJT04gRkFJTEVEOiBSdW5Mb29wOjppc01haW4o
KSBpbiBjb20uYXBwbGUuV2ViS2l0OiBJUEM6OkNvbm5lY3Rpb246OnNlbmRTeW5jTWVzc2FnZSAr
IDEyOApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcAppbmRleCAxYjE2OWJkNjM5
MjJlODhlYzU2ZTQxYzQyMTQyY2VkNDRlOTA2MDI5Li43Mjk0MjZjZWEyYzRlNmQzYjA3ZTc3NWNk
MTJlYjRkNDRlYmE1MmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlD
bGllbnRzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRW1wdHlDbGllbnRzLmNwcApA
QCAtMjEzLDYgKzIxMyw4IEBAIHByaXZhdGU6CiAgICAgaW50IHBhc3RlYm9hcmRDaGFuZ2VDb3Vu
dCgpIGZpbmFsIHsgcmV0dXJuIDA7IH0KICNlbmRpZgogCisgICAgYm9vbCBwZXJmb3JtVHdvU3Rl
cERyb3AoRG9jdW1lbnRGcmFnbWVudCYsIFJhbmdlJiwgYm9vbCkgZmluYWwgeyByZXR1cm4gZmFs
c2U7IH0KKwogI2lmIFBMQVRGT1JNKENPQ09BKQogICAgIE5TU3RyaW5nICp1c2VyVmlzaWJsZVN0
cmluZyhOU1VSTCAqKSBmaW5hbCB7IHJldHVybiBudWxscHRyOyB9CiAgICAgdm9pZCBzZXRJbnNl
cnRpb25QYXN0ZWJvYXJkKGNvbnN0IFN0cmluZyYpIGZpbmFsIHsgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9EcmFnQ29udHJvbGxlci5jcHAKaW5kZXggM2JhZWU2MTZlYTI1M2I2OTFjYzcxZGNiMDQ2ZmI5
Y2IxYjQ3YTAxNC4uY2JlMTAzZGNlNDc3MWU4NTVhYTg4NGY3Y2M1Njk4ZmI4ZTg2YmFkZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKQEAgLTU2OSwxOCArNTY5LDIzIEBA
IGJvb2wgRHJhZ0NvbnRyb2xsZXI6OmNvbmNsdWRlRWRpdERyYWcoY29uc3QgRHJhZ0RhdGEmIGRy
YWdEYXRhKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBSZXNvdXJjZUNhY2hlVmFsaWRh
dGlvblN1cHByZXNzb3IgdmFsaWRhdGlvblN1cHByZXNzb3IocmFuZ2UtPm93bmVyRG9jdW1lbnQo
KS5jYWNoZWRSZXNvdXJjZUxvYWRlcigpKTsKLSAgICBpZiAoZHJhZ0lzTW92ZShpbm5lckZyYW1l
LT5zZWxlY3Rpb24oKSwgZHJhZ0RhdGEpIHx8IGRyYWdDYXJldC5pc0NvbnRlbnRSaWNobHlFZGl0
YWJsZSgpKSB7CisgICAgYXV0byYgZWRpdG9yID0gaW5uZXJGcmFtZS0+ZWRpdG9yKCk7CisgICAg
Ym9vbCBpc01vdmUgPSBkcmFnSXNNb3ZlKGlubmVyRnJhbWUtPnNlbGVjdGlvbigpLCBkcmFnRGF0
YSk7CisgICAgaWYgKGlzTW92ZSB8fCBkcmFnQ2FyZXQuaXNDb250ZW50UmljaGx5RWRpdGFibGUo
KSkgewogICAgICAgICBib29sIGNob3NlUGxhaW5UZXh0ID0gZmFsc2U7CiAgICAgICAgIFJlZlB0
cjxEb2N1bWVudEZyYWdtZW50PiBmcmFnbWVudCA9IGRvY3VtZW50RnJhZ21lbnRGcm9tRHJhZ0Rh
dGEoZHJhZ0RhdGEsICppbm5lckZyYW1lLCAqcmFuZ2UsIHRydWUsIGNob3NlUGxhaW5UZXh0KTsK
LSAgICAgICAgaWYgKCFmcmFnbWVudCB8fCAhaW5uZXJGcmFtZS0+ZWRpdG9yKCkuc2hvdWxkSW5z
ZXJ0RnJhZ21lbnQoKmZyYWdtZW50LCByYW5nZS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uOjpE
cm9wcGVkKSkgeworICAgICAgICBpZiAoIWZyYWdtZW50IHx8ICFlZGl0b3Iuc2hvdWxkSW5zZXJ0
RnJhZ21lbnQoKmZyYWdtZW50LCByYW5nZS5nZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uOjpEcm9w
cGVkKSkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgfQogCiAgICAgICAgIG1f
Y2xpZW50LndpbGxQZXJmb3JtRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uKERyYWdEZXN0aW5hdGlvbkFj
dGlvbkVkaXQsIGRyYWdEYXRhKTsKLSAgICAgICAgaWYgKGRyYWdJc01vdmUoaW5uZXJGcmFtZS0+
c2VsZWN0aW9uKCksIGRyYWdEYXRhKSkgeworCisgICAgICAgIGlmIChlZGl0b3IuY2xpZW50KCkg
JiYgZWRpdG9yLmNsaWVudCgpLT5wZXJmb3JtVHdvU3RlcERyb3AoKmZyYWdtZW50LCAqcmFuZ2Us
IGlzTW92ZSkpCisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgICAgICBpZiAoaXNNb3Zl
KSB7CiAgICAgICAgICAgICAvLyBOU1RleHRWaWV3IGJlaGF2aW9yIGlzIHRvIGFsd2F5cyBzbWFy
dCBkZWxldGUgb24gbW92aW5nIGEgc2VsZWN0aW9uLAogICAgICAgICAgICAgLy8gYnV0IG9ubHkg
dG8gc21hcnQgaW5zZXJ0IGlmIHRoZSBzZWxlY3Rpb24gZ3JhbnVsYXJpdHkgaXMgd29yZCBncmFu
dWxhcml0eS4KLSAgICAgICAgICAgIGJvb2wgc21hcnREZWxldGUgPSBpbm5lckZyYW1lLT5lZGl0
b3IoKS5zbWFydEluc2VydERlbGV0ZUVuYWJsZWQoKTsKKyAgICAgICAgICAgIGJvb2wgc21hcnRE
ZWxldGUgPSBlZGl0b3Iuc21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CiAgICAgICAgICAgICBi
b29sIHNtYXJ0SW5zZXJ0ID0gc21hcnREZWxldGUgJiYgaW5uZXJGcmFtZS0+c2VsZWN0aW9uKCku
Z3JhbnVsYXJpdHkoKSA9PSBXb3JkR3JhbnVsYXJpdHkgJiYgZHJhZ0RhdGEuY2FuU21hcnRSZXBs
YWNlKCk7CiAgICAgICAgICAgICBNb3ZlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKGZyYWdtZW50
LnJlbGVhc2VOb25OdWxsKCksIGRyYWdDYXJldC5iYXNlKCksIHNtYXJ0SW5zZXJ0LCBzbWFydERl
bGV0ZSktPmFwcGx5KCk7CiAgICAgICAgIH0gZWxzZSB7CkBAIC01OTUsMTMgKzYwMCwxOSBAQCBi
b29sIERyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKGNvbnN0IERyYWdEYXRhJiBkcmFn
RGF0YSkKICAgICAgICAgfQogICAgIH0gZWxzZSB7CiAgICAgICAgIFN0cmluZyB0ZXh0ID0gZHJh
Z0RhdGEuYXNQbGFpblRleHQoKTsKLSAgICAgICAgaWYgKHRleHQuaXNFbXB0eSgpIHx8ICFpbm5l
ckZyYW1lLT5lZGl0b3IoKS5zaG91bGRJbnNlcnRUZXh0KHRleHQsIHJhbmdlLmdldCgpLCBFZGl0
b3JJbnNlcnRBY3Rpb246OkRyb3BwZWQpKSB7CisgICAgICAgIGlmICh0ZXh0LmlzRW1wdHkoKSB8
fCAhZWRpdG9yLnNob3VsZEluc2VydFRleHQodGV4dCwgcmFuZ2UuZ2V0KCksIEVkaXRvckluc2Vy
dEFjdGlvbjo6RHJvcHBlZCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0K
IAogICAgICAgICBtX2NsaWVudC53aWxsUGVyZm9ybURyYWdEZXN0aW5hdGlvbkFjdGlvbihEcmFn
RGVzdGluYXRpb25BY3Rpb25FZGl0LCBkcmFnRGF0YSk7CisgICAgICAgIFJlZlB0cjxEb2N1bWVu
dEZyYWdtZW50PiBmcmFnbWVudCA9IGNyZWF0ZUZyYWdtZW50RnJvbVRleHQoKnJhbmdlLCB0ZXh0
KTsKKyAgICAgICAgaWYgKCFmcmFnbWVudCkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKwor
ICAgICAgICBpZiAoZWRpdG9yLmNsaWVudCgpICYmIGVkaXRvci5jbGllbnQoKS0+cGVyZm9ybVR3
b1N0ZXBEcm9wKCpmcmFnbWVudCwgKnJhbmdlLCBpc01vdmUpKQorICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisKICAgICAgICAgaWYgKHNldFNlbGVjdGlvblRvRHJhZ0NhcmV0KGlubmVyRnJhbWUu
Z2V0KCksIGRyYWdDYXJldCwgcmFuZ2UsIHBvaW50KSkKLSAgICAgICAgICAgIFJlcGxhY2VTZWxl
Y3Rpb25Db21tYW5kOjpjcmVhdGUoKm1fZG9jdW1lbnRVbmRlck1vdXNlLCBjcmVhdGVGcmFnbWVu
dEZyb21UZXh0KCpyYW5nZSwgdGV4dCksICBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6U2VsZWN0
UmVwbGFjZW1lbnQgfCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6TWF0Y2hTdHlsZSB8IFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpQcmV2ZW50TmVzdGluZywgRWRpdEFjdGlvbkluc2VydEZyb21E
cm9wKS0+YXBwbHkoKTsKKyAgICAgICAgICAgIFJlcGxhY2VTZWxlY3Rpb25Db21tYW5kOjpjcmVh
dGUoKm1fZG9jdW1lbnRVbmRlck1vdXNlLCBmcmFnbWVudC5nZXQoKSwgUmVwbGFjZVNlbGVjdGlv
bkNvbW1hbmQ6OlNlbGVjdFJlcGxhY2VtZW50IHwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Ok1h
dGNoU3R5bGUgfCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UHJldmVudE5lc3RpbmcsIEVkaXRB
Y3Rpb25JbnNlcnRGcm9tRHJvcCktPmFwcGx5KCk7CiAgICAgfQogCiAgICAgaWYgKHJvb3RFZGl0
YWJsZUVsZW1lbnQpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0VkaXRvckNsaWVudC5oCmluZGV4IDU3NWI0MWQ4
NTY0MDYyZDU1OGVhYzkzNDk3Y2Y1ODQ1ZmNjNmY1MGQuLjA2OTU4Nzc4N2UzMDg2MjkyM2NlNDdh
MWZlMTJhNTgzOTBmZWYyMzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9y
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaApAQCAtMTg1
LDYgKzE4NSw4IEBAIHB1YmxpYzoKICAgICAvLyBTdXBwb3J0IGZvciBnbG9iYWwgc2VsZWN0aW9u
cywgdXNlZCBvbiBwbGF0Zm9ybXMgbGlrZSB0aGUgWCBXaW5kb3cgU3lzdGVtIHRoYXQgdHJlYXQK
ICAgICAvLyBzZWxlY3Rpb24gYXMgYSB0eXBlIG9mIGNsaXBib2FyZC4KICAgICB2aXJ0dWFsIGJv
b2wgc3VwcG9ydHNHbG9iYWxTZWxlY3Rpb24oKSB7IHJldHVybiBmYWxzZTsgfQorCisgICAgdmly
dHVhbCBib29sIHBlcmZvcm1Ud29TdGVwRHJvcChEb2N1bWVudEZyYWdtZW50JiwgUmFuZ2UmIGRl
c3RpbmF0aW9uLCBib29sIGlzTW92ZSkgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9pb3MvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0VUlLaXREZWxlZ2F0ZS5tIGIv
U291cmNlL1dlYktpdC9pb3MvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0VUlLaXREZWxlZ2F0
ZS5tCmluZGV4IGFmOTI4Y2FmYmNkMTQ5MDkxMzI3NjU5YWQ3NmM0NmQ0NzgwODc3YzguLjQyZjli
Y2U3NTgxODVhNGRlYjU3MmUxYzlhZTBmOTk4YjkwMDdmNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvaW9zL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJS2l0RGVsZWdhdGUubQorKysg
Yi9Tb3VyY2UvV2ViS2l0L2lvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRVSUtpdERlbGVn
YXRlLm0KQEAgLTI3LDYgKzI3LDcgQEAKIAogI2ltcG9ydCAiV2ViRGVmYXVsdFVJS2l0RGVsZWdh
dGUuaCIKIAorI2ltcG9ydCAiRE9NUmFuZ2UuaCIKICNpbXBvcnQgIldlYlVJRGVsZWdhdGUuaCIK
IAogc3RhdGljIFdlYkRlZmF1bHRVSUtpdERlbGVnYXRlICpzaGFyZWREZWxlZ2F0ZSA9IG5pbDsK
QEAgLTI2Miw2ICsyNjMsMTEgQEAgLSAoQk9PTClwZXJmb3Jtc1R3b1N0ZXBQYXN0ZTooRE9NRG9j
dW1lbnRGcmFnbWVudCopZnJhZ21lbnQKICAgICByZXR1cm4gTk87CiB9CiAKKy0gKEJPT0wpcGVy
Zm9ybVR3b1N0ZXBEcm9wOihET01Eb2N1bWVudEZyYWdtZW50ICopZnJhZ21lbnQgYXREZXN0aW5h
dGlvbjooRE9NUmFuZ2UgKilkZXN0aW5hdGlvbiBpc01vdmU6KEJPT0wpaXNNb3ZlCit7CisgICAg
cmV0dXJuIE5POworfQorCiAtIChOU0ludGVnZXIpZ2V0UGFzdGVib2FyZENoYW5nZUNvdW50CiB7
CiAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJWaWV3L1dl
YlVJS2l0RGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQvaW9zL1dlYlZpZXcvV2ViVUlLaXREZWxl
Z2F0ZS5oCmluZGV4IDZlZWFiYjc0ZmE2YjZkYjk2MDcyYTk2MGE3YTBjZDI0NmJhYTRmMzQuLjNh
NDQ2MmU0Mzg4OWVjN2I4MzZmYzI3NmZiZTc3NDhiYjE5M2NkNjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvaW9zL1dlYlZpZXcvV2ViVUlLaXREZWxlZ2F0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvaW9zL1dlYlZpZXcvV2ViVUlLaXREZWxlZ2F0ZS5oCkBAIC0yOSw4ICsyOSw5IEBACiAjaW1w
b3J0IDxXZWJLaXRMZWdhY3kvV0FLQXBwS2l0U3R1YnMuaD4KICNpbXBvcnQgPFdlYktpdExlZ2Fj
eS9XS0NvbnRlbnRPYnNlcnZhdGlvbi5oPgogCi1AY2xhc3MgRE9NTm9kZTsKIEBjbGFzcyBET01E
b2N1bWVudEZyYWdtZW50OworQGNsYXNzIERPTU5vZGU7CitAY2xhc3MgRE9NUmFuZ2U7CiBAY2xh
c3MgV0FLVmlldzsKIEBjbGFzcyBXZWJEYXRhU291cmNlOwogQGNsYXNzIFdlYkZyYW1lOwpAQCAt
MTE4LDYgKzExOSw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIFdlYk1lZGlhQ2FwdHVy
ZVR5cGUpIHsKIC0gKE5TQXJyYXkqKXN1cHBvcnRlZFBhc3RlYm9hcmRUeXBlc0ZvckN1cnJlbnRT
ZWxlY3Rpb247CiAtIChCT09MKWhhc1JpY2hseUVkaXRhYmxlU2VsZWN0aW9uOwogLSAoQk9PTClw
ZXJmb3Jtc1R3b1N0ZXBQYXN0ZTooRE9NRG9jdW1lbnRGcmFnbWVudCopZnJhZ21lbnQ7CistIChC
T09MKXBlcmZvcm1Ud29TdGVwRHJvcDooRE9NRG9jdW1lbnRGcmFnbWVudCAqKWZyYWdtZW50IGF0
RGVzdGluYXRpb246KERPTVJhbmdlICopZGVzdGluYXRpb24gaXNNb3ZlOihCT09MKWlzTW92ZTsK
IC0gKE5TSW50ZWdlcilnZXRQYXN0ZWJvYXJkQ2hhbmdlQ291bnQ7CiAtIChDR1BvaW50KWludGVy
YWN0aW9uTG9jYXRpb247CiAtICh2b2lkKXNob3dQbGF5YmFja1RhcmdldFBpY2tlcjooQk9PTClo
YXNWaWRlbyBmcm9tUmVjdDooQ0dSZWN0KWVsZW1lbnRSZWN0OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCAxMDBkZDZhYzE1
MGJmZTViY2IyNmQ1MDk5ZDMwOWViMmQ0OTNlMjkwLi5kY2M5NTBlYmM2OTI3N2M0ZDVkNmZjZmQ0
MGRhNDQ0OWE3ODcxNmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3JlU3Vw
cG9ydC9XZWJFZGl0b3JDbGllbnQuaApAQCAtMTUwLDYgKzE1MCw4IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBwZXJmb3Jtc1R3b1N0ZXBQYXN0ZShXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50KikgZmlu
YWw7CiAgICAgaW50IHBhc3RlYm9hcmRDaGFuZ2VDb3VudCgpIGZpbmFsOwogI2VuZGlmCisKKyAg
ICBib29sIHBlcmZvcm1Ud29TdGVwRHJvcChXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50JiwgV2Vi
Q29yZTo6UmFuZ2UmIGRlc3RpbmF0aW9uLCBib29sIGlzTW92ZSkgZmluYWw7CiAgICAgCiAgICAg
Ym9vbCBzaG91bGRFcmFzZU1hcmtlcnNBZnRlckNoYW5nZVNlbGVjdGlvbihXZWJDb3JlOjpUZXh0
Q2hlY2tpbmdUeXBlKSBjb25zdCBmaW5hbDsKICAgICB2b2lkIGlnbm9yZVdvcmRJblNwZWxsRG9j
dW1lbnQoY29uc3QgU3RyaW5nJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KaW5kZXggMjAxMTk1MjM3Mjg2MjQ5ODUz
OWRmNTllZjY2YTJjMmFiNDk3MDIyYy4uNDc0NmY1YTk1MWM4NDliYjFiY2QxNWIxNDZmOTNlOWMw
NmQxNjc4MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2Vi
RWRpdG9yQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkVkaXRvckNsaWVudC5tbQpAQCAtOTIzLDYgKzkyMywxNCBAQCBib29sIFdlYkVkaXRvckNsaWVu
dDo6cGVyZm9ybXNUd29TdGVwUGFzdGUoV2ViQ29yZTo6RG9jdW1lbnRGcmFnbWVudCogZnJhZ21l
bnQpCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIFdlYkVkaXRvckNsaWVudDo6cGVyZm9y
bVR3b1N0ZXBEcm9wKERvY3VtZW50RnJhZ21lbnQmIGZyYWdtZW50LCBSYW5nZSYgZGVzdGluYXRp
b24sIGJvb2wgaXNNb3ZlKQoreworICAgIGlmIChbW21fd2ViVmlldyBfVUlLaXREZWxlZ2F0ZUZv
cndhcmRlcl0gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihwZXJmb3JtVHdvU3RlcERyb3A6
YXREZXN0aW5hdGlvbjppc01vdmU6KV0pCisgICAgICAgIHJldHVybiBbW21fd2ViVmlldyBfVUlL
aXREZWxlZ2F0ZUZvcndhcmRlcl0gcGVyZm9ybVR3b1N0ZXBEcm9wOmtpdCgmZnJhZ21lbnQpIGF0
RGVzdGluYXRpb246a2l0KCZkZXN0aW5hdGlvbikgaXNNb3ZlOmlzTW92ZV07CisKKyAgICByZXR1
cm4gZmFsc2U7Cit9CisKIGludCBXZWJFZGl0b3JDbGllbnQ6OnBhc3RlYm9hcmRDaGFuZ2VDb3Vu
dCgpCiB7CiAgICAgaWYgKFtbbV93ZWJWaWV3IF9VSUtpdERlbGVnYXRlRm9yd2FyZGVyXSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGdldFBhc3RlYm9hcmRDaGFuZ2VDb3VudCldKQpAQCAt
OTU1LDYgKzk2MywxMSBAQCBWZWN0b3I8VGV4dENoZWNraW5nUmVzdWx0PiBXZWJFZGl0b3JDbGll
bnQ6OmNoZWNrVGV4dE9mUGFyYWdyYXBoKFN0cmluZ1ZpZXcgc3RyaQogCiAjaWYgIVBMQVRGT1JN
KElPUykKIAorYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnBlcmZvcm1Ud29TdGVwRHJvcChEb2N1bWVu
dEZyYWdtZW50JiwgUmFuZ2UmLCBib29sKQoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogYm9v
bCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZEVyYXNlTWFya2Vyc0FmdGVyQ2hhbmdlU2VsZWN0aW9u
KFRleHRDaGVja2luZ1R5cGUgdHlwZSkgY29uc3QKIHsKICAgICAvLyBUaGlzIHByZXZlbnRzIGVy
YXNpbmcgc3BlbGxpbmcgbWFya2VycyBvbiBPUyBYIExpb24gb3IgbGF0ZXIgdG8gbWF0Y2ggQXBw
S2l0IG9uIHRoZXNlIE1hYyBPUyBYIHZlcnNpb25zLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuY3BwCmlu
ZGV4IDRhYWIxOTQ1MzVhNDVlNjk3YjE3OWM3M2NjNmZiZmY3Yzc1MjhmZWQuLmM2MTM4OGY3ZDk0
ZmE0NmNmZjIxOWYxNzdiNjEyYjExNzI4YmE3MmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHAK
QEAgLTQ0Niw2ICs0NDYsMTIgQEAgYm9vbCBXZWJFZGl0b3JDbGllbnQ6OnNob3VsZEVyYXNlTWFy
a2Vyc0FmdGVyQ2hhbmdlU2VsZWN0aW9uKFdlYkNvcmU6OlRleHRDaGVja2kKICNlbmRpZgogfQog
Citib29sIFdlYkVkaXRvckNsaWVudDo6cGVyZm9ybVR3b1N0ZXBEcm9wKERvY3VtZW50RnJhZ21l
bnQmLCBSYW5nZSYsIGJvb2wpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKIHZvaWQgV2ViRWRpdG9yQ2xpZW50OjppZ25vcmVXb3JkSW5TcGVsbERvY3Vt
ZW50KGNvbnN0IFN0cmluZyYgd29yZCkKIHsKICAgICBtX3BhZ2UtPnNlbmQoTWVzc2FnZXM6Oldl
YlBhZ2VQcm94eTo6SWdub3JlV29yZCh3b3JkKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaAppbmRleCAw
ZjFkZTcxYWFkNzU5M2ZkMjU4ZjU5NzUxZTk2YWY0YjU0YWRiOTE0Li42MTNkZGUyOTRkYjU0Yzg0
YjhjZGE2ZmM4ZTIyNWI3NjlhYWU0MGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTE2OCw2
ICsxNjgsNyBAQCBwcml2YXRlOgogICAgIGludCBwYXN0ZWJvYXJkQ2hhbmdlQ291bnQoKSBmaW5h
bDsKICNlbmRpZgogCisgICAgYm9vbCBwZXJmb3JtVHdvU3RlcERyb3AoV2ViQ29yZTo6RG9jdW1l
bnRGcmFnbWVudCYsIFdlYkNvcmU6OlJhbmdlJiwgYm9vbCBpc01vdmUpIGZpbmFsOwogICAgIGJv
b2wgc3VwcG9ydHNHbG9iYWxTZWxlY3Rpb24oKSBmaW5hbDsKIAogICAgIFdlYlBhZ2UqIG1fcGFn
ZTsK
</data>
<flag name="review"
          id="333067"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312454</attachid>
            <date>2017-06-09 10:42:36 -0700</date>
            <delta_ts>2017-06-09 11:01:45 -0700</delta_ts>
            <desc>Add WK2 injected bundle support and tests.</desc>
            <filename>bug-172992-20170609104236.patch</filename>
            <type>text/plain</type>
            <size>33480</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3ODE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDVmZWRhMjE3MGVkNzll
NGY3MjExYzhmNGY5ZGMzM2E5NmE0M2VjOS4uN2E2Njg4OGE3ZGRiNTNhNjhiNzNhZjljMDg1ZWY4
NTRkMTE0MDBmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE3LTA2LTA5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBB
ZGQgYSBob29rIHRvIHBlcmZvcm0gdHdvLXN0ZXAgZHJvcHMgaW4gZWRpdGFibGUgY29udGVudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyOTkyCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjU5MDE3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGhvb2tzIGluIERyYWdDb250cm9sbGVyOjpj
b25jbHVkZUVkaXREcmFnIHRvIGdpdmUgdGhlIGNsaWVudCBsYXllciBhIGNoYW5jZSB0byBwZXJm
b3JtIGN1c3RvbSBoYW5kbGluZyB3aGVuCisgICAgICAgIGRyb3BwaW5nIGluIGVkaXRhYmxlIGNv
bnRlbnQuCisgICAgICAgIFRlc3RzOiAgRGF0YUludGVyYWN0aW9uVGVzdHMuSW5qZWN0ZWRCdW5k
bGVPdmVycmlkZVBlcmZvcm1Ud29TdGVwRHJvcAorICAgICAgICAgICAgICAgIERhdGFJbnRlcmFj
dGlvblRlc3RzLkluamVjdGVkQnVuZGxlQWxsb3dQZXJmb3JtVHdvU3RlcERyb3AKKworICAgICAg
ICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OmNvbmNsdWRlRWRpdERy
YWcpOgorICAgICAgICAqIHBhZ2UvRWRpdG9yQ2xpZW50Lmg6CisKIDIwMTctMDYtMDUgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVmYWN0b3IgLVtX
ZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHZhbHVlc0ZvclBhc3RlYm9hcmRUeXBlOmluSXRlbVNl
dDpdIHRvIGNoZWNrIHJlYWRhYmxlIHR5cGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lv
cy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cKaW5kZXggOTJlY2EyODkw
MTlkNmJkZmM2NjRiY2VmODlkNTc4YjQ0MGU1ZmUwMy4uNWVkZDcyOGRmYmE2NjhkYThhODM2NzJm
Yjg2YjMyZDRmNTgxZmI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3
LTA2LTA5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAg
IFtpT1MgRG5EXSBBZGQgYSBob29rIHRvIHBlcmZvcm0gdHdvLXN0ZXAgZHJvcHMgaW4gZWRpdGFi
bGUgY29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTcyOTkyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjU5MDE3ND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gZW1wdHkgaW1wbGVt
ZW50YXRpb24gb2YgcGVyZm9ybVR3b1N0ZXBEcm9wIGZvciBXZWJEZWZhdWx0VUlLaXREZWxlZ2F0
ZS4gU2VlIFdlYkNvcmUgQ2hhbmdlTG9ncy4KKworICAgICAgICAqIERlZmF1bHREZWxlZ2F0ZXMv
V2ViRGVmYXVsdFVJS2l0RGVsZWdhdGUubToKKyAgICAgICAgKC1bV2ViRGVmYXVsdFVJS2l0RGVs
ZWdhdGUgcGVyZm9ybVR3b1N0ZXBEcm9wOmF0RGVzdGluYXRpb246aXNNb3ZlOl0pOgorICAgICAg
ICAqIFdlYlZpZXcvV2ViVUlLaXREZWxlZ2F0ZS5oOgorCiAyMDE3LTA1LTEyICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJvcCB1c2VzIG9mIFBhc3NSZWZQdHIg
aW4gV2ViS2l0L21hYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGM5M2RhZmE3Y2Y0OTRiZjNiNGU2ZTQ2
N2UzNGQwYjNmZmQ2NjRjOTMuLjcxNjI5MDM4ZTgyYWUxNWM3MWVhY2ZiOWY5YTJjNTZjMTM1NTcx
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNy0wNi0wOSAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TIERuRF0gQWRk
IGEgaG9vayB0byBwZXJmb3JtIHR3by1zdGVwIGRyb3BzIGluIGVkaXRhYmxlIGNvbnRlbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mjk5MgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzI1OTAxNzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBhIG5ldyBTUEkgdG8gV2ViVUlLaXREZWxlZ2F0
ZSB0byBhbGxvdyBXSzEgY2xpZW50cyB0byBvdmVycmlkZSBkZWZhdWx0IGRyb3AgYmVoYXZpb3Iu
IFJldHVybmluZyBZRVMgZnJvbQorICAgICAgICAtcGVyZm9ybVR3b1N0ZXBEcm9wOmF0RGVzdGlu
YXRpb246aXNNb3ZlOiB3aWxsIHByZXZlbnQgY29udGVudCBmcm9tIGJlaW5nIGluc2VydGVkIG9u
IGRyb3AgaW4gV2ViS2l0OyBvdGhlcndpc2UsCisgICAgICAgIHJldHVybmluZyBOTyB3aWxsIGNv
bnRpbnVlIHdpdGggZGVmYXVsdCBXZWJLaXQgYmVoYXZpb3IuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQubW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnBlcmZvcm1Ud29TdGVw
RHJvcCk6CisKIDIwMTctMDYtMDUgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBUcmllZCB0byBmaXggdGhlIGJ1aWxkIHdoZW4gdGFyZ3J0aW5nIG1hY09TIDEwLjEy
IHVzaW5nIHRoZSBtYWNPUyAxMC4xMyBkZXZlbG9wZXIgYmV0YSBTREsuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
aW5kZXggZGZlNDU1Njk1OGQ1OWJkZjdmMjgyNjkzOWVjOWVhNzhmZmU4MDdmMC4uZmM3ODgzY2Fl
NjhjYzk4ODVlZDYxNTVmMDNlMzkxZWE3NjAxNTdhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDE3LTA2LTA5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgorCisgICAgICAgIFtpT1MgRG5EXSBBZGQgYSBob29rIHRvIHBlcmZvcm0gdHdvLXN0ZXAg
ZHJvcHMgaW4gZWRpdGFibGUgY29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTcyOTkyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjU5MDE3
ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YSBzdHViIGltcGxlbWVudGF0aW9uIGZvciBwZXJmb3JtVHdvU3RlcERyb3Agb24gV2luZG93cy4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorCiAyMDE3LTA2
LTA0ICBLb25zdGFudGluIFRva2FyZXYgIDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBG
aXggYnVpbGQgb2YgV2luZG93cy1zcGVjaWZpYyBjb2RlIHdpdGggSUNVIDU5LjEKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCBjNzU4YzcyNDIxNzA2YmRhZWNlNGU3MWQ1NjUxZTk1ZjVlOTMyNzQ2Li4xYjk5NWI0YjFj
N2FhY2NlY2VlZDBmOWE2MTZhNzVkOTZlZDc2ZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTctMDYtMDkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisK
KyAgICAgICAgW2lPUyBEbkRdIEFkZCBhIGhvb2sgdG8gcGVyZm9ybSB0d28tc3RlcCBkcm9wcyBp
biBlZGl0YWJsZSBjb250ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzI5OTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMyNTkwMTc0PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBwbHVtYmlu
ZyB0byBzdXBwb3J0IGFuIGluamVjdGVkIGJ1bmRsZSBob29rIGZvciBvdmVycmlkaW5nIHR3by1z
dGVwIGRyb3BzLiBTZWUgV2ViQ29yZSBDaGFuZ2VMb2cuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9BUElJbmplY3RlZEJ1bmRsZUVkaXRvckNsaWVudC5oOgorICAg
ICAgICAoQVBJOjpJbmplY3RlZEJ1bmRsZTo6RWRpdG9yQ2xpZW50OjpwZXJmb3JtVHdvU3RlcERy
b3ApOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2Vi
UHJvY2Vzc1BsdWdJbkVkaXRpbmdEZWxlZ2F0ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dz
ZXJDb250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luQnJv
d3NlckNvbnRleHRDb250cm9sbGVyIF9zZXRFZGl0aW5nRGVsZWdhdGU6XSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQ6OnBl
cmZvcm1Ud29TdGVwRHJvcCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkVk
aXRvckNsaWVudDo6cGVyZm9ybVR3b1N0ZXBEcm9wKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorCiAyMDE3LTA2LTA1ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDogUnVuTG9v
cDo6aXNNYWluKCkgaW4gY29tLmFwcGxlLldlYktpdDogSVBDOjpDb25uZWN0aW9uOjpzZW5kU3lu
Y01lc3NhZ2UgKyAxMjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXgg
MWIxNjliZDYzOTIyZTg4ZWM1NmU0MWM0MjE0MmNlZDQ0ZTkwNjAyOS4uNzI5NDI2Y2VhMmM0ZTZk
M2IwN2U3NzVjZDEyZWI0ZDQ0ZWJhNTJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKQEAgLTIxMyw2ICsyMTMsOCBAQCBwcml2YXRlOgogICAgIGludCBwYXN0ZWJvYXJk
Q2hhbmdlQ291bnQoKSBmaW5hbCB7IHJldHVybiAwOyB9CiAjZW5kaWYKIAorICAgIGJvb2wgcGVy
Zm9ybVR3b1N0ZXBEcm9wKERvY3VtZW50RnJhZ21lbnQmLCBSYW5nZSYsIGJvb2wpIGZpbmFsIHsg
cmV0dXJuIGZhbHNlOyB9CisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBOU1N0cmluZyAqdXNl
clZpc2libGVTdHJpbmcoTlNVUkwgKikgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZv
aWQgc2V0SW5zZXJ0aW9uUGFzdGVib2FyZChjb25zdCBTdHJpbmcmKSBmaW5hbCB7IH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IDNiYWVlNjE2ZWEyNTNiNjkxY2M3
MWRjYjA0NmZiOWNiMWI0N2EwMTQuLmNiZTEwM2RjZTQ3NzFlODU1YWE4ODRmN2NjNTY5OGZiOGU4
NmJhZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC01NjksMTgg
KzU2OSwyMyBAQCBib29sIERyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKGNvbnN0IERy
YWdEYXRhJiBkcmFnRGF0YSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVzb3VyY2VD
YWNoZVZhbGlkYXRpb25TdXBwcmVzc29yIHZhbGlkYXRpb25TdXBwcmVzc29yKHJhbmdlLT5vd25l
ckRvY3VtZW50KCkuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKSk7Ci0gICAgaWYgKGRyYWdJc01vdmUo
aW5uZXJGcmFtZS0+c2VsZWN0aW9uKCksIGRyYWdEYXRhKSB8fCBkcmFnQ2FyZXQuaXNDb250ZW50
UmljaGx5RWRpdGFibGUoKSkgeworICAgIGF1dG8mIGVkaXRvciA9IGlubmVyRnJhbWUtPmVkaXRv
cigpOworICAgIGJvb2wgaXNNb3ZlID0gZHJhZ0lzTW92ZShpbm5lckZyYW1lLT5zZWxlY3Rpb24o
KSwgZHJhZ0RhdGEpOworICAgIGlmIChpc01vdmUgfHwgZHJhZ0NhcmV0LmlzQ29udGVudFJpY2hs
eUVkaXRhYmxlKCkpIHsKICAgICAgICAgYm9vbCBjaG9zZVBsYWluVGV4dCA9IGZhbHNlOwogICAg
ICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVudEZyYWdtZW50
RnJvbURyYWdEYXRhKGRyYWdEYXRhLCAqaW5uZXJGcmFtZSwgKnJhbmdlLCB0cnVlLCBjaG9zZVBs
YWluVGV4dCk7Ci0gICAgICAgIGlmICghZnJhZ21lbnQgfHwgIWlubmVyRnJhbWUtPmVkaXRvcigp
LnNob3VsZEluc2VydEZyYWdtZW50KCpmcmFnbWVudCwgcmFuZ2UuZ2V0KCksIEVkaXRvckluc2Vy
dEFjdGlvbjo6RHJvcHBlZCkpIHsKKyAgICAgICAgaWYgKCFmcmFnbWVudCB8fCAhZWRpdG9yLnNo
b3VsZEluc2VydEZyYWdtZW50KCpmcmFnbWVudCwgcmFuZ2UuZ2V0KCksIEVkaXRvckluc2VydEFj
dGlvbjo6RHJvcHBlZCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KIAog
ICAgICAgICBtX2NsaWVudC53aWxsUGVyZm9ybURyYWdEZXN0aW5hdGlvbkFjdGlvbihEcmFnRGVz
dGluYXRpb25BY3Rpb25FZGl0LCBkcmFnRGF0YSk7Ci0gICAgICAgIGlmIChkcmFnSXNNb3ZlKGlu
bmVyRnJhbWUtPnNlbGVjdGlvbigpLCBkcmFnRGF0YSkpIHsKKworICAgICAgICBpZiAoZWRpdG9y
LmNsaWVudCgpICYmIGVkaXRvci5jbGllbnQoKS0+cGVyZm9ybVR3b1N0ZXBEcm9wKCpmcmFnbWVu
dCwgKnJhbmdlLCBpc01vdmUpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAg
aWYgKGlzTW92ZSkgewogICAgICAgICAgICAgLy8gTlNUZXh0VmlldyBiZWhhdmlvciBpcyB0byBh
bHdheXMgc21hcnQgZGVsZXRlIG9uIG1vdmluZyBhIHNlbGVjdGlvbiwKICAgICAgICAgICAgIC8v
IGJ1dCBvbmx5IHRvIHNtYXJ0IGluc2VydCBpZiB0aGUgc2VsZWN0aW9uIGdyYW51bGFyaXR5IGlz
IHdvcmQgZ3JhbnVsYXJpdHkuCi0gICAgICAgICAgICBib29sIHNtYXJ0RGVsZXRlID0gaW5uZXJG
cmFtZS0+ZWRpdG9yKCkuc21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CisgICAgICAgICAgICBi
b29sIHNtYXJ0RGVsZXRlID0gZWRpdG9yLnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogICAg
ICAgICAgICAgYm9vbCBzbWFydEluc2VydCA9IHNtYXJ0RGVsZXRlICYmIGlubmVyRnJhbWUtPnNl
bGVjdGlvbigpLmdyYW51bGFyaXR5KCkgPT0gV29yZEdyYW51bGFyaXR5ICYmIGRyYWdEYXRhLmNh
blNtYXJ0UmVwbGFjZSgpOwogICAgICAgICAgICAgTW92ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0
ZShmcmFnbWVudC5yZWxlYXNlTm9uTnVsbCgpLCBkcmFnQ2FyZXQuYmFzZSgpLCBzbWFydEluc2Vy
dCwgc21hcnREZWxldGUpLT5hcHBseSgpOwogICAgICAgICB9IGVsc2UgewpAQCAtNTk1LDEzICs2
MDAsMTkgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6Y29uY2x1ZGVFZGl0RHJhZyhjb25zdCBEcmFn
RGF0YSYgZHJhZ0RhdGEpCiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBTdHJpbmcg
dGV4dCA9IGRyYWdEYXRhLmFzUGxhaW5UZXh0KCk7Ci0gICAgICAgIGlmICh0ZXh0LmlzRW1wdHko
KSB8fCAhaW5uZXJGcmFtZS0+ZWRpdG9yKCkuc2hvdWxkSW5zZXJ0VGV4dCh0ZXh0LCByYW5nZS5n
ZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uOjpEcm9wcGVkKSkgeworICAgICAgICBpZiAodGV4dC5p
c0VtcHR5KCkgfHwgIWVkaXRvci5zaG91bGRJbnNlcnRUZXh0KHRleHQsIHJhbmdlLmdldCgpLCBF
ZGl0b3JJbnNlcnRBY3Rpb246OkRyb3BwZWQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICB9CiAKICAgICAgICAgbV9jbGllbnQud2lsbFBlcmZvcm1EcmFnRGVzdGluYXRpb25B
Y3Rpb24oRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRWRpdCwgZHJhZ0RhdGEpOworICAgICAgICBSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpy
YW5nZSwgdGV4dCk7CisgICAgICAgIGlmICghZnJhZ21lbnQpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICAgICAgaWYgKGVkaXRvci5jbGllbnQoKSAmJiBlZGl0b3IuY2xpZW50KCkt
PnBlcmZvcm1Ud29TdGVwRHJvcCgqZnJhZ21lbnQsICpyYW5nZSwgaXNNb3ZlKSkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworCiAgICAgICAgIGlmIChzZXRTZWxlY3Rpb25Ub0RyYWdDYXJldChp
bm5lckZyYW1lLmdldCgpLCBkcmFnQ2FyZXQsIHJhbmdlLCBwb2ludCkpCi0gICAgICAgICAgICBS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKCptX2RvY3VtZW50VW5kZXJNb3VzZSwgY3Jl
YXRlRnJhZ21lbnRGcm9tVGV4dCgqcmFuZ2UsIHRleHQpLCAgUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQ6OlNlbGVjdFJlcGxhY2VtZW50IHwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Ok1hdGNoU3R5
bGUgfCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UHJldmVudE5lc3RpbmcsIEVkaXRBY3Rpb25J
bnNlcnRGcm9tRHJvcCktPmFwcGx5KCk7CisgICAgICAgICAgICBSZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZDo6Y3JlYXRlKCptX2RvY3VtZW50VW5kZXJNb3VzZSwgZnJhZ21lbnQuZ2V0KCksIFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpTZWxlY3RSZXBsYWNlbWVudCB8IFJlcGxhY2VTZWxlY3Rpb25D
b21tYW5kOjpNYXRjaFN0eWxlIHwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlByZXZlbnROZXN0
aW5nLCBFZGl0QWN0aW9uSW5zZXJ0RnJvbURyb3ApLT5hcHBseSgpOwogICAgIH0KIAogICAgIGlm
IChyb290RWRpdGFibGVFbGVtZW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0VkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAppbmRl
eCA1NzViNDFkODU2NDA2MmQ1NThlYWM5MzQ5N2NmNTg0NWZjYzZmNTBkLi4wNjk1ODc3ODdlMzA4
NjI5MjNjZTQ3YTFmZTEyYTU4MzkwZmVmMjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0VkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50
LmgKQEAgLTE4NSw2ICsxODUsOCBAQCBwdWJsaWM6CiAgICAgLy8gU3VwcG9ydCBmb3IgZ2xvYmFs
IHNlbGVjdGlvbnMsIHVzZWQgb24gcGxhdGZvcm1zIGxpa2UgdGhlIFggV2luZG93IFN5c3RlbSB0
aGF0IHRyZWF0CiAgICAgLy8gc2VsZWN0aW9uIGFzIGEgdHlwZSBvZiBjbGlwYm9hcmQuCiAgICAg
dmlydHVhbCBib29sIHN1cHBvcnRzR2xvYmFsU2VsZWN0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0K
KworICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtVHdvU3RlcERyb3AoRG9jdW1lbnRGcmFnbWVudCYs
IFJhbmdlJiBkZXN0aW5hdGlvbiwgYm9vbCBpc01vdmUpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvaW9zL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJS2l0RGVs
ZWdhdGUubSBiL1NvdXJjZS9XZWJLaXQvaW9zL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJ
S2l0RGVsZWdhdGUubQppbmRleCBhZjkyOGNhZmJjZDE0OTA5MTMyNzY1OWFkNzZjNDZkNDc4MDg3
N2M4Li40MmY5YmNlNzU4MTg1YTRkZWI1NzJlMWM5YWUwZjk5OGI5MDA3ZjRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2lvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRVSUtpdERlbGVn
YXRlLm0KKysrIGIvU291cmNlL1dlYktpdC9pb3MvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0
VUlLaXREZWxlZ2F0ZS5tCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbXBvcnQgIldlYkRlZmF1bHRV
SUtpdERlbGVnYXRlLmgiCiAKKyNpbXBvcnQgIkRPTVJhbmdlLmgiCiAjaW1wb3J0ICJXZWJVSURl
bGVnYXRlLmgiCiAKIHN0YXRpYyBXZWJEZWZhdWx0VUlLaXREZWxlZ2F0ZSAqc2hhcmVkRGVsZWdh
dGUgPSBuaWw7CkBAIC0yNjIsNiArMjYzLDExIEBAIC0gKEJPT0wpcGVyZm9ybXNUd29TdGVwUGFz
dGU6KERPTURvY3VtZW50RnJhZ21lbnQqKWZyYWdtZW50CiAgICAgcmV0dXJuIE5POwogfQogCist
IChCT09MKXBlcmZvcm1Ud29TdGVwRHJvcDooRE9NRG9jdW1lbnRGcmFnbWVudCAqKWZyYWdtZW50
IGF0RGVzdGluYXRpb246KERPTVJhbmdlICopZGVzdGluYXRpb24gaXNNb3ZlOihCT09MKWlzTW92
ZQoreworICAgIHJldHVybiBOTzsKK30KKwogLSAoTlNJbnRlZ2VyKWdldFBhc3RlYm9hcmRDaGFu
Z2VDb3VudAogewogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3Mv
V2ViVmlldy9XZWJVSUtpdERlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJWaWV3L1dl
YlVJS2l0RGVsZWdhdGUuaAppbmRleCA2ZWVhYmI3NGZhNmI2ZGI5NjA3MmE5NjBhN2EwY2QyNDZi
YWE0ZjM0Li4zYTQ0NjJlNDM4ODllYzdiODM2ZmMyNzZmYmU3NzQ4YmIxOTNjZDY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2lvcy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaApAQCAtMjksOCArMjks
OSBAQAogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L1dBS0FwcEtpdFN0dWJzLmg+CiAjaW1wb3J0IDxX
ZWJLaXRMZWdhY3kvV0tDb250ZW50T2JzZXJ2YXRpb24uaD4KIAotQGNsYXNzIERPTU5vZGU7CiBA
Y2xhc3MgRE9NRG9jdW1lbnRGcmFnbWVudDsKK0BjbGFzcyBET01Ob2RlOworQGNsYXNzIERPTVJh
bmdlOwogQGNsYXNzIFdBS1ZpZXc7CiBAY2xhc3MgV2ViRGF0YVNvdXJjZTsKIEBjbGFzcyBXZWJG
cmFtZTsKQEAgLTExOCw2ICsxMTksNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXZWJN
ZWRpYUNhcHR1cmVUeXBlKSB7CiAtIChOU0FycmF5KilzdXBwb3J0ZWRQYXN0ZWJvYXJkVHlwZXNG
b3JDdXJyZW50U2VsZWN0aW9uOwogLSAoQk9PTCloYXNSaWNobHlFZGl0YWJsZVNlbGVjdGlvbjsK
IC0gKEJPT0wpcGVyZm9ybXNUd29TdGVwUGFzdGU6KERPTURvY3VtZW50RnJhZ21lbnQqKWZyYWdt
ZW50OworLSAoQk9PTClwZXJmb3JtVHdvU3RlcERyb3A6KERPTURvY3VtZW50RnJhZ21lbnQgKilm
cmFnbWVudCBhdERlc3RpbmF0aW9uOihET01SYW5nZSAqKWRlc3RpbmF0aW9uIGlzTW92ZTooQk9P
TClpc01vdmU7CiAtIChOU0ludGVnZXIpZ2V0UGFzdGVib2FyZENoYW5nZUNvdW50OwogLSAoQ0dQ
b2ludClpbnRlcmFjdGlvbkxvY2F0aW9uOwogLSAodm9pZClzaG93UGxheWJhY2tUYXJnZXRQaWNr
ZXI6KEJPT0wpaGFzVmlkZW8gZnJvbVJlY3Q6KENHUmVjdCllbGVtZW50UmVjdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXgg
MTAwZGQ2YWMxNTBiZmU1YmNiMjZkNTA5OWQzMDllYjJkNDkzZTI5MC4uZGNjOTUwZWJjNjkyNzdj
NGQ1ZDZmY2ZkNDBkYTQ0NDlhNzg3MTZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTE1MCw2ICsxNTAsOCBAQCBwcml2
YXRlOgogICAgIGJvb2wgcGVyZm9ybXNUd29TdGVwUGFzdGUoV2ViQ29yZTo6RG9jdW1lbnRGcmFn
bWVudCopIGZpbmFsOwogICAgIGludCBwYXN0ZWJvYXJkQ2hhbmdlQ291bnQoKSBmaW5hbDsKICNl
bmRpZgorCisgICAgYm9vbCBwZXJmb3JtVHdvU3RlcERyb3AoV2ViQ29yZTo6RG9jdW1lbnRGcmFn
bWVudCYsIFdlYkNvcmU6OlJhbmdlJiBkZXN0aW5hdGlvbiwgYm9vbCBpc01vdmUpIGZpbmFsOwog
ICAgIAogICAgIGJvb2wgc2hvdWxkRXJhc2VNYXJrZXJzQWZ0ZXJDaGFuZ2VTZWxlY3Rpb24oV2Vi
Q29yZTo6VGV4dENoZWNraW5nVHlwZSkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBpZ25vcmVXb3Jk
SW5TcGVsbERvY3VtZW50KGNvbnN0IFN0cmluZyYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IDIwMTE5NTIz
NzI4NjI0OTg1MzlkZjU5ZWY2NmEyYzJhYjQ5NzAyMmMuLjQ3NDZmNWE5NTFjODQ5YmIxYmNkMTVi
MTQ2ZjkzZTljMDZkMTY3ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTkyMyw2ICs5MjMsMTQgQEAgYm9vbCBXZWJF
ZGl0b3JDbGllbnQ6OnBlcmZvcm1zVHdvU3RlcFBhc3RlKFdlYkNvcmU6OkRvY3VtZW50RnJhZ21l
bnQqIGZyYWdtZW50KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBXZWJFZGl0b3JDbGll
bnQ6OnBlcmZvcm1Ud29TdGVwRHJvcChEb2N1bWVudEZyYWdtZW50JiBmcmFnbWVudCwgUmFuZ2Um
IGRlc3RpbmF0aW9uLCBib29sIGlzTW92ZSkKK3sKKyAgICBpZiAoW1ttX3dlYlZpZXcgX1VJS2l0
RGVsZWdhdGVGb3J3YXJkZXJdIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocGVyZm9ybVR3
b1N0ZXBEcm9wOmF0RGVzdGluYXRpb246aXNNb3ZlOildKQorICAgICAgICByZXR1cm4gW1ttX3dl
YlZpZXcgX1VJS2l0RGVsZWdhdGVGb3J3YXJkZXJdIHBlcmZvcm1Ud29TdGVwRHJvcDpraXQoJmZy
YWdtZW50KSBhdERlc3RpbmF0aW9uOmtpdCgmZGVzdGluYXRpb24pIGlzTW92ZTppc01vdmVdOwor
CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBpbnQgV2ViRWRpdG9yQ2xpZW50OjpwYXN0ZWJvYXJk
Q2hhbmdlQ291bnQoKQogewogICAgIGlmIChbW21fd2ViVmlldyBfVUlLaXREZWxlZ2F0ZUZvcndh
cmRlcl0gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihnZXRQYXN0ZWJvYXJkQ2hhbmdlQ291
bnQpXSkKQEAgLTk1NSw2ICs5NjMsMTEgQEAgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4gV2Vi
RWRpdG9yQ2xpZW50OjpjaGVja1RleHRPZlBhcmFncmFwaChTdHJpbmdWaWV3IHN0cmkKIAogI2lm
ICFQTEFURk9STShJT1MpCiAKK2Jvb2wgV2ViRWRpdG9yQ2xpZW50OjpwZXJmb3JtVHdvU3RlcERy
b3AoRG9jdW1lbnRGcmFnbWVudCYsIFJhbmdlJiwgYm9vbCkKK3sKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRFcmFzZU1hcmtlcnNBZnRlckNoYW5n
ZVNlbGVjdGlvbihUZXh0Q2hlY2tpbmdUeXBlIHR5cGUpIGNvbnN0CiB7CiAgICAgLy8gVGhpcyBw
cmV2ZW50cyBlcmFzaW5nIHNwZWxsaW5nIG1hcmtlcnMgb24gT1MgWCBMaW9uIG9yIGxhdGVyIHRv
IG1hdGNoIEFwcEtpdCBvbiB0aGVzZSBNYWMgT1MgWCB2ZXJzaW9ucy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggZDUyOGRj
NGM4NGIyNTk5N2QxYTcwZDBmMDQ0ZTg1NDA5MzEwZTgxNS4uNjczZGI1ZjQzYTdmOGZjZGNjNjIz
ODFiOTg1ODJhYzk4OTk5Y2VmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTExMSw2ICsxMTEsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKSBmaW5hbDsKICAgICB2b2lkIHNldElu
cHV0TWV0aG9kU3RhdGUoYm9vbCkgZmluYWw7CiAgICAgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyhXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6VmlzaWJs
ZVNlbGVjdGlvbiYpIGZpbmFsIHsgfQorICAgIGJvb2wgcGVyZm9ybVR3b1N0ZXBEcm9wKFdlYkNv
cmU6OkRvY3VtZW50RnJhZ21lbnQmLCBXZWJDb3JlOjpSYW5nZSYsIGJvb2wpIGZpbmFsIHsgcmV0
dXJuIGZhbHNlOyB9CiAKICAgICBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNr
ZXIoKSBmaW5hbCB7IHJldHVybiB0aGlzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0FQSUluamVjdGVkQnVuZGxlRWRpdG9yQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9BUElJ
bmplY3RlZEJ1bmRsZUVkaXRvckNsaWVudC5oCmluZGV4IDc1NTFkOWE4YTRmZjM5ZWZkZDhjNjNk
NDQ0ZTY3YjQ4NzdlMmNjYTguLjI2MDZmMzhkMjc4ZTJiZTAxMzVlZTAxMjViMjY3MzAwY2FhOTAw
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL0FQSUluamVjdGVkQnVuZGxlRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVFZGl0b3JDbGll
bnQuaApAQCAtMzIsNiArMzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDU1NT
dHlsZURlY2xhcmF0aW9uOworY2xhc3MgRG9jdW1lbnRGcmFnbWVudDsKIGNsYXNzIE5vZGU7CiBj
bGFzcyBSYW5nZTsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKQEAgLTYzLDYgKzY0LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCB3aWxsV3JpdGVUb1Bhc3RlYm9hcmQoV2ViS2l0OjpXZWJQYWdl
JiwgV2ViQ29yZTo6UmFuZ2UqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZ2V0UGFzdGVib2FyZERh
dGFGb3JSYW5nZShXZWJLaXQ6OldlYlBhZ2UmLCBXZWJDb3JlOjpSYW5nZSosIFZlY3RvcjxXVEY6
OlN0cmluZz4mIHBhc3RlYm9hcmRUeXBlcywgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRC
dWZmZXI+PiYgcGFzdGVib2FyZERhdGEpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRXcml0ZVRv
UGFzdGVib2FyZChXZWJLaXQ6OldlYlBhZ2UmKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcGVyZm9y
bVR3b1N0ZXBEcm9wKFdlYktpdDo6V2ViUGFnZSYsIFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQm
LCBXZWJDb3JlOjpSYW5nZSYsIGJvb2wpIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBJbmplY3RlZEJ1bmRsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRWRpdGluZ0Rl
bGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9D
b2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdhdGUuaAppbmRleCA0MjliZDgwNTA5
NmYzNDcyODI3M2RlZDYyMWQ2MTIzNWY3YWM5NmI5Li44NTUwZjljMDBiMWJhNDA1NzYwYjZhOWRj
ZDMxNjZlOGZlZmQxZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2Nv
YS9XS1dlYlByb2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdhdGUuaApAQCAtMjgsNiArMjgsNyBAQAog
I2lmIFdLX0FQSV9FTkFCTEVECiAKICNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXIuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQ
bHVnSW5Ob2RlSGFuZGxlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luUmFu
Z2VIYW5kbGUuaD4KIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKQEAgLTU5LDYgKzYwLDcgQEAgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKIC0gKHZv
aWQpX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vz
c1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgd2lsbFdyaXRlUmFu
Z2VUb1Bhc3RlYm9hcmQ6KFdLV2ViUHJvY2Vzc1BsdWdJblJhbmdlSGFuZGxlICopcmFuZ2U7CiAt
IChOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgTlNEYXRhICo+ICopX3dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0
Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgcGFzdGVib2FyZERhdGFGb3JSYW5nZTooV0tXZWJQcm9j
ZXNzUGx1Z0luUmFuZ2VIYW5kbGUgKilyYW5nZTsKIC0gKHZvaWQpX3dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXJEaWRXcml0ZVRvUGFzdGVib2FyZDooV0tXZWJQcm9jZXNz
UGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopY29udHJvbGxlcjsKKy0gKEJPT0wpX3dl
YlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJ
bkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgcGVyZm9ybVR3b1N0ZXBEcm9w
OihXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlICopZnJhZ21lbnQgYXREZXN0aW5hdGlvbjoo
V0tXZWJQcm9jZXNzUGx1Z0luUmFuZ2VIYW5kbGUgKilkZXN0aW5hdGlvbiBpc01vdmU6KEJPT0wp
aXNNb3ZlOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUVkaXRv
ckNsaWVudC5oCmluZGV4IDU5YzZlOGQ4YTA0M2U3OTEzMmM4Y2M5MzI2MGJhOTI5YjA4OTdiYjQu
LjBiNzU2NTBlOWY3OWViMzljY2E5ZjE5ZTkxZmNmMTlkMzY2MjIxZmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdl
RWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaApAQCAtNjMsNiArNjMsNyBAQCB0
eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VFZGl0aW5nTm90aWZpY2F0aW9uKShXS0J1bmRsZVBh
Z2VSZWYgcGFnZSwgV0tTdHJpbmdSZQogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlV2lsbFdy
aXRlVG9QYXN0ZWJvYXJkKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVSYW5nZUhhbmRs
ZVJlZiByYW5nZSwgIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tC
dW5kbGVQYWdlR2V0UGFzdGVib2FyZERhdGFGb3JSYW5nZSkoV0tCdW5kbGVQYWdlUmVmIHBhZ2Us
IFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgcmFuZ2UsIFdLQXJyYXlSZWYqIHBhc3RlYm9hcmRUeXBl
cywgV0tBcnJheVJlZiogcGFzdGVib2FyZERhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwog
dHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkV3JpdGVUb1Bhc3RlYm9hcmQpKFdLQnVuZGxl
UGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgYm9vbCAoKldL
QnVuZGxlUGFnZVBlcmZvcm1Ud29TdGVwRHJvcCkoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVu
ZGxlTm9kZUhhbmRsZVJlZiBmcmFnbWVudCwgV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiBkZXN0aW5h
dGlvbiwgYm9vbCBpc01vdmUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiB0eXBlZGVmIHN0
cnVjdCBXS0J1bmRsZVBhZ2VFZGl0b3JDbGllbnRCYXNlIHsKICAgICBpbnQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNp
b247CkBAIC0xMDYsNiArMTA3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlRWRpdG9y
Q2xpZW50VjEgewogICAgIFdLQnVuZGxlUGFnZVdpbGxXcml0ZVRvUGFzdGVib2FyZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbFdyaXRlVG9QYXN0ZWJvYXJkOwogICAgIFdL
QnVuZGxlUGFnZUdldFBhc3RlYm9hcmREYXRhRm9yUmFuZ2UgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ2V0UGFzdGVib2FyZERhdGFGb3JSYW5nZTsKICAgICBXS0J1bmRsZVBhZ2VEaWRX
cml0ZVRvUGFzdGVib2FyZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZFdy
aXRlVG9QYXN0ZWJvYXJkOworICAgIFdLQnVuZGxlUGFnZVBlcmZvcm1Ud29TdGVwRHJvcCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyZm9ybVR3b1N0ZXBEcm9wOwogfSBX
S0J1bmRsZVBhZ2VFZGl0b3JDbGllbnRWMTsKIAogI2VuZGlmIC8vIFdLQnVuZGxlUGFnZUVkaXRv
ckNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dL
V2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbQppbmRleCA0ODZmY2Zk
NDNlZmYwNTIzYTUxMmViNzAyMjIyMGU5NzY0MmQyOGVjLi4yZWZkMWRmYTEzMjliZmE2YjE3NjJl
MDZhNjMwMWY5NGU5ZDUxZDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRD
b250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW0K
QEAgLTYwLDYgKzYwLDcgQEAKICNpbXBvcnQgIl9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50
ZXJuYWwuaCIKICNpbXBvcnQgIl9XS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlSW50ZXJuYWwu
aCIKICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRG9jdW1l
bnRGcmFnbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9IVE1MRm9ybUVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTElucHV0RWxlbWVudC5o
PgpAQCAtNjU4LDYgKzY1OSwxNiBAQCAtICh2b2lkKV9zZXRFZGl0aW5nRGVsZWdhdGU6KGlkIDxX
S1dlYlByb2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdhdGU+KWVkaXRpbmdEZWxlZwogICAgICAgICAg
ICAgW21fY29udHJvbGxlci0+X2VkaXRpbmdEZWxlZ2F0ZS5nZXQoKSBfd2ViUHJvY2Vzc1BsdWdJ
bkJyb3dzZXJDb250ZXh0Q29udHJvbGxlckRpZFdyaXRlVG9QYXN0ZWJvYXJkOm1fY29udHJvbGxl
cl07CiAgICAgICAgIH0KIAorICAgICAgICBib29sIHBlcmZvcm1Ud29TdGVwRHJvcChXZWJLaXQ6
OldlYlBhZ2UmLCBXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50JiBmcmFnbWVudCwgV2ViQ29yZTo6
UmFuZ2UmIHJhbmdlLCBib29sIGlzTW92ZSkgZmluYWwKKyAgICAgICAgeworICAgICAgICAgICAg
aWYgKCFtX2RlbGVnYXRlTWV0aG9kcy5wZXJmb3JtVHdvU3RlcERyb3ApCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBhdXRvIHJhbmdlSGFuZGxlID0gSW5qZWN0
ZWRCdW5kbGVSYW5nZUhhbmRsZTo6Z2V0T3JDcmVhdGUoJnJhbmdlKTsKKyAgICAgICAgICAgIGF1
dG8gbm9kZUhhbmRsZSA9IEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6Z2V0T3JDcmVhdGUoJmZy
YWdtZW50KTsKKyAgICAgICAgICAgIHJldHVybiBbbV9jb250cm9sbGVyLT5fZWRpdGluZ0RlbGVn
YXRlLmdldCgpIF93ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOm1fY29u
dHJvbGxlciBwZXJmb3JtVHdvU3RlcERyb3A6d3JhcHBlcigqbm9kZUhhbmRsZSkgYXREZXN0aW5h
dGlvbjp3cmFwcGVyKCpyYW5nZUhhbmRsZSkgaXNNb3ZlOmlzTW92ZV07CisgICAgICAgIH0KKwog
ICAgICAgICBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKm1fY29u
dHJvbGxlcjsKICAgICAgICAgY29uc3Qgc3RydWN0IERlbGVnYXRlTWV0aG9kcyB7CiAgICAgICAg
ICAgICBEZWxlZ2F0ZU1ldGhvZHMoUmV0YWluUHRyPGlkIDxXS1dlYlByb2Nlc3NQbHVnSW5FZGl0
aW5nRGVsZWdhdGU+PiBkZWxlZ2F0ZSkKQEAgLTY2Nyw2ICs2NzgsNyBAQCAtICh2b2lkKV9zZXRF
ZGl0aW5nRGVsZWdhdGU6KGlkIDxXS1dlYlByb2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdhdGU+KWVk
aXRpbmdEZWxlZwogICAgICAgICAgICAgICAgICwgd2lsbFdyaXRlVG9QYXN0ZWJvYXJkKFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJQcm9jZXNzUGx1Z0luQnJvd3Nl
ckNvbnRleHRDb250cm9sbGVyOndpbGxXcml0ZVJhbmdlVG9QYXN0ZWJvYXJkOildKQogICAgICAg
ICAgICAgICAgICwgZ2V0UGFzdGVib2FyZERhdGFGb3JSYW5nZShbZGVsZWdhdGUgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJv
bGxlcjpwYXN0ZWJvYXJkRGF0YUZvclJhbmdlOildKQogICAgICAgICAgICAgICAgICwgZGlkV3Jp
dGVUb1Bhc3RlYm9hcmQoW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dl
YlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJEaWRXcml0ZVRvUGFzdGVib2Fy
ZDopXSkKKyAgICAgICAgICAgICAgICAsIHBlcmZvcm1Ud29TdGVwRHJvcChbZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0
Q29udHJvbGxlcjpwZXJmb3JtVHdvU3RlcERyb3A6YXREZXN0aW5hdGlvbjppc01vdmU6KV0pCiAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICB9CiAKQEAgLTY3Niw2ICs2ODgsNyBAQCAtICh2b2lk
KV9zZXRFZGl0aW5nRGVsZWdhdGU6KGlkIDxXS1dlYlByb2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdh
dGU+KWVkaXRpbmdEZWxlZwogICAgICAgICAgICAgYm9vbCB3aWxsV3JpdGVUb1Bhc3RlYm9hcmQ7
CiAgICAgICAgICAgICBib29sIGdldFBhc3RlYm9hcmREYXRhRm9yUmFuZ2U7CiAgICAgICAgICAg
ICBib29sIGRpZFdyaXRlVG9QYXN0ZWJvYXJkOworICAgICAgICAgICAgYm9vbCBwZXJmb3JtVHdv
U3RlcERyb3A7CiAgICAgICAgIH0gbV9kZWxlZ2F0ZU1ldGhvZHM7CiAgICAgfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwCmluZGV4IDMwZTJh
OTM2Y2UzMmIzMWU1NjUxNGIzMzA5N2MyNmIzYTg2ZDUzOTYuLjQyMzgzNjlhOTM0NWQ1Y2YwNTRj
MDg4YmMyODUwZmZhNTk4MTM1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZUVkaXRvckNsaWVudC5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJXS0J1bmRs
ZUFQSUNhc3QuaCIKICNpbmNsdWRlICJXS1N0cmluZy5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50RnJhZ21lbnQuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xNzIsNiArMTcz
LDE2IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50OjpnZXRQYXN0ZWJvYXJk
RGF0YUZvclJhbmdlKFdlYlBhZ2UmIHBhZ2UsIFJhCiAgICAgfQogfQogCitib29sIEluamVjdGVk
QnVuZGxlUGFnZUVkaXRvckNsaWVudDo6cGVyZm9ybVR3b1N0ZXBEcm9wKFdlYlBhZ2UmIHBhZ2Us
IERvY3VtZW50RnJhZ21lbnQmIGZyYWdtZW50LCBSYW5nZSYgZGVzdGluYXRpb24sIGJvb2wgaXNN
b3ZlKQoreworICAgIGlmICghbV9jbGllbnQucGVyZm9ybVR3b1N0ZXBEcm9wKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIHJhbmdlSGFuZGxlID0gSW5qZWN0ZWRCdW5kbGVSYW5n
ZUhhbmRsZTo6Z2V0T3JDcmVhdGUoJmRlc3RpbmF0aW9uKTsKKyAgICBhdXRvIG5vZGVIYW5kbGUg
PSBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6OmdldE9yQ3JlYXRlKCZmcmFnbWVudCk7CisgICAg
cmV0dXJuIG1fY2xpZW50LnBlcmZvcm1Ud29TdGVwRHJvcCh0b0FQSSgmcGFnZSksIHRvQVBJKG5v
ZGVIYW5kbGUuZ2V0KCkpLCB0b0FQSShyYW5nZUhhbmRsZS5nZXQoKSksIGlzTW92ZSwgbV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKK30KKwogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JD
bGllbnQ6OmRpZFdyaXRlVG9QYXN0ZWJvYXJkKFdlYlBhZ2UmIHBhZ2UpCiB7CiAgICAgaWYgKG1f
Y2xpZW50LmRpZFdyaXRlVG9QYXN0ZWJvYXJkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlRWRpdG9yQ2xpZW50LmgKaW5kZXggMzY3NDY4OWVkZDI0NDM1M2U0NjYzZmY5MDQ2YmQx
OTE3YTA2ODlmZi4uNjg5OTQxYTE4ZThkOWU5NGNhNDI2Zjk0MmIxZWI4YTBiM2NmODRiYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oCkBAIC0zNyw2
ICszNyw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS0J1bmRsZVBhZ2VFZGl0
b3JDbGllbnRCYXNlPiB7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENTU1N0eWxlRGVj
bGFyYXRpb247CitjbGFzcyBEb2N1bWVudEZyYWdtZW50OwogY2xhc3MgTm9kZTsKIGNsYXNzIFJh
bmdlOwogfQpAQCAtNjUsNiArNjYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgd2lsbFdyaXRlVG9Q
YXN0ZWJvYXJkKFdlYlBhZ2UmLCBXZWJDb3JlOjpSYW5nZSopIGZpbmFsOwogICAgIHZvaWQgZ2V0
UGFzdGVib2FyZERhdGFGb3JSYW5nZShXZWJQYWdlJiwgV2ViQ29yZTo6UmFuZ2UqLCBWZWN0b3I8
U3RyaW5nPiYgcGFzdGVib2FyZFR5cGVzLCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1
ZmZlcj4+JiBwYXN0ZWJvYXJkRGF0YSkgZmluYWw7CiAgICAgdm9pZCBkaWRXcml0ZVRvUGFzdGVi
b2FyZChXZWJQYWdlJikgZmluYWw7CisgICAgYm9vbCBwZXJmb3JtVHdvU3RlcERyb3AoV2ViUGFn
ZSYsIFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQmLCBXZWJDb3JlOjpSYW5nZSYgZGVzdGluYXRp
b24sIGJvb2wgaXNNb3ZlKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IDRhYWIxOTQ1MzVhNDVlNjk3YjE3OWM3M2NjNmZiZmY3
Yzc1MjhmZWQuLmE0YTc5ODQ3NjQwZWU3MDczYThjYWUwNGY2ODE0M2MzZDY3MzMxOGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5jcHAKQEAgLTIzOSw2ICsyMzksMTEgQEAgdm9pZCBXZWJFZGl0b3JD
bGllbnQ6OmdldENsaWVudFBhc3RlYm9hcmREYXRhRm9yUmFuZ2UoUmFuZ2UqIHJhbmdlLCBWZWN0
b3I8U3RyaW4KICAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlRWRpdG9yQ2xpZW50KCkuZ2V0UGFz
dGVib2FyZERhdGFGb3JSYW5nZSgqbV9wYWdlLCByYW5nZSwgcGFzdGVib2FyZFR5cGVzLCBwYXN0
ZWJvYXJkRGF0YSk7CiB9CiAKK2Jvb2wgV2ViRWRpdG9yQ2xpZW50OjpwZXJmb3JtVHdvU3RlcERy
b3AoRG9jdW1lbnRGcmFnbWVudCYgZnJhZ21lbnQsIFJhbmdlJiBkZXN0aW5hdGlvbiwgYm9vbCBp
c01vdmUpCit7CisgICAgcmV0dXJuIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVFZGl0b3JDbGllbnQo
KS5wZXJmb3JtVHdvU3RlcERyb3AoKm1fcGFnZSwgZnJhZ21lbnQsIGRlc3RpbmF0aW9uLCBpc01v
dmUpOworfQorCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJVbmRvU3RlcChVbmRvU3Rl
cCYgc3RlcCkKIHsKICAgICAvLyBGSVhNRTogQWRkIGFzc2VydGlvbiB0aGF0IHRoZSBjb21tYW5k
IGJlaW5nIHJlYXBwbGllZCBpcyB0aGUgc2FtZSBjb21tYW5kIHRoYXQgaXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oCmluZGV4IDBmMWRlNzFhYWQ3NTkzZmQyNThmNTk3NTFlOTZhZjRiNTRhZGI5MTQuLjYx
M2RkZTI5NGRiNTRjODRiOGNkYTZmYzhlMjI1Yjc2OWFhZTQwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuaApAQCAtMTY4LDYgKzE2OCw3IEBAIHByaXZhdGU6CiAgICAgaW50IHBhc3RlYm9hcmRDaGFu
Z2VDb3VudCgpIGZpbmFsOwogI2VuZGlmCiAKKyAgICBib29sIHBlcmZvcm1Ud29TdGVwRHJvcChX
ZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50JiwgV2ViQ29yZTo6UmFuZ2UmLCBib29sIGlzTW92ZSkg
ZmluYWw7CiAgICAgYm9vbCBzdXBwb3J0c0dsb2JhbFNlbGVjdGlvbigpIGZpbmFsOwogCiAgICAg
V2ViUGFnZSogbV9wYWdlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGNhYzk0NWU5ZDkzODFhYTM1NDdmNTdjNjY2YzkwZDZiMzQ5OGViYzkuLmZi
NDUzYWIyMWYyYzI5NjNmNjk1NGFkZWQ1NmI0NWUyNzllN2FiMjggMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNSBAQAorMjAxNy0w
Ni0wOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBb
aU9TIERuRF0gQWRkIGEgaG9vayB0byBwZXJmb3JtIHR3by1zdGVwIGRyb3BzIGluIGVkaXRhYmxl
IGNvbnRlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3Mjk5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI1OTAxNzQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyAyIG5ldyBBUEkgdGVzdHMg
dG8gY292ZXIgdXNpbmcgdGhlIGluamVjdGVkIGVkaXRpbmcgYnVuZGxlIHRvIG92ZXJyaWRlIHBl
cmZvcm1Ud29TdGVwRHJvcC4KKyAgICAgICAgVGVzdHM6ICBEYXRhSW50ZXJhY3Rpb25UZXN0cy5J
bmplY3RlZEJ1bmRsZU92ZXJyaWRlUGVyZm9ybVR3b1N0ZXBEcm9wCisgICAgICAgICAgICAgICAg
RGF0YUludGVyYWN0aW9uVGVzdHMuSW5qZWN0ZWRCdW5kbGVBbGxvd1BlcmZvcm1Ud29TdGVwRHJv
cAorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvQnVuZGxlRWRp
dGluZ0RlbGVnYXRlUGx1Z0luLm1tOgorICAgICAgICAoLVtCdW5kbGVFZGl0aW5nRGVsZWdhdGVQ
bHVnSW4gd2ViUHJvY2Vzc1BsdWdJbjpkaWRDcmVhdGVCcm93c2VyQ29udGV4dENvbnRyb2xsZXI6
XSk6CisgICAgICAgICgtW0J1bmRsZUVkaXRpbmdEZWxlZ2F0ZVBsdWdJbiBfd2ViUHJvY2Vzc1Bs
dWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpwZXJmb3JtVHdvU3RlcERyb3A6YXREZXN0aW5h
dGlvbjppc01vdmU6XSk6CisKKyAgICAgICAgQWxsb3cgdGhlIEJ1bmRsZU92ZXJyaWRlUGVyZm9y
bVR3b1N0ZXBEcm9wIGJ1bmRsZSBwYXJhbWV0ZXIgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90
IHR3by1zdGVwIGRyb3BzIHNob3VsZAorICAgICAgICBiZSBvdmVycmlkZGVuLiBDdXJyZW50bHks
IHRoaXMgaXMgb3ZlcnJpZGRlbiB0byBqdXN0IHJldHVybiB0cnVlLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW06CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAxNy0wNi0wNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciAtW1dlYkl0ZW1Qcm92aWRlclBh
c3RlYm9hcmQgdmFsdWVzRm9yUGFzdGVib2FyZFR5cGU6aW5JdGVtU2V0Ol0gdG8gY2hlY2sgcmVh
ZGFibGUgdHlwZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL0J1bmRsZUVkaXRpbmdEZWxlZ2F0ZVBsdWdJbi5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL0J1bmRsZUVkaXRpbmdEZWxlZ2F0ZVBsdWdJbi5tbQppbmRl
eCBmMzc5OTkxYjU0OThmYmUxZjFhMWY5Yjg0ZTJjYmRmOWM5ZWVhZTk2Li5jNjNjMGE4ZWNmNDQ2
MDU3ZDUyZTY0MDUzNmZiMThiZTgyNGNkYjJhIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9CdW5kbGVFZGl0aW5nRGVsZWdhdGVQbHVnSW4ubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvQnVuZGxlRWRpdGluZ0Rl
bGVnYXRlUGx1Z0luLm1tCkBAIC00Niw2ICs0Niw3IEBAIEBpbXBsZW1lbnRhdGlvbiBCdW5kbGVF
ZGl0aW5nRGVsZWdhdGVQbHVnSW4gewogICAgIFJldGFpblB0cjxXS1dlYlByb2Nlc3NQbHVnSW5D
b250cm9sbGVyPiBfcGx1Z0luQ29udHJvbGxlcjsKICAgICBSZXRhaW5QdHI8aWQgPEJ1bmRsZUVk
aXRpbmdEZWxlZ2F0ZVByb3RvY29sPj4gX3JlbW90ZU9iamVjdDsKICAgICBCT09MIF9lZGl0aW5n
RGVsZWdhdGVTaG91bGRJbnNlcnRUZXh0OworICAgIEJPT0wgX3Nob3VsZE92ZXJyaWRlUGVyZm9y
bVR3b1N0ZXBEcm9wOwogfQogCiAtICh2b2lkKXdlYlByb2Nlc3NQbHVnSW46KFdLV2ViUHJvY2Vz
c1BsdWdJbkNvbnRyb2xsZXIgKilwbHVnSW5Db250cm9sbGVyIGRpZENyZWF0ZUJyb3dzZXJDb250
ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
ICopYnJvd3NlckNvbnRleHRDb250cm9sbGVyCkBAIC02MSw2ICs2Miw4IEBAIC0gKHZvaWQpd2Vi
UHJvY2Vzc1BsdWdJbjooV0tXZWJQcm9jZXNzUGx1Z0luQ29udHJvbGxlciAqKXBsdWdJbkNvbnRy
b2xsZXIgZGlkQ3JlCiAgICAgfSBlbHNlCiAgICAgICAgIF9lZGl0aW5nRGVsZWdhdGVTaG91bGRJ
bnNlcnRUZXh0ID0gWUVTOwogCisgICAgX3Nob3VsZE92ZXJyaWRlUGVyZm9ybVR3b1N0ZXBEcm9w
ID0gW1twbHVnSW5Db250cm9sbGVyLnBhcmFtZXRlcnMgdmFsdWVGb3JLZXk6QCJCdW5kbGVPdmVy
cmlkZVBlcmZvcm1Ud29TdGVwRHJvcCJdIGJvb2xWYWx1ZV07CisKICAgICBfV0tSZW1vdGVPYmpl
Y3RJbnRlcmZhY2UgKmludGVyZmFjZSA9IFtfV0tSZW1vdGVPYmplY3RJbnRlcmZhY2UgcmVtb3Rl
T2JqZWN0SW50ZXJmYWNlV2l0aFByb3RvY29sOkBwcm90b2NvbChCdW5kbGVFZGl0aW5nRGVsZWdh
dGVQcm90b2NvbCldOwogICAgIF9yZW1vdGVPYmplY3QgPSBbYnJvd3NlckNvbnRleHRDb250cm9s
bGVyLl9yZW1vdGVPYmplY3RSZWdpc3RyeSByZW1vdGVPYmplY3RQcm94eVdpdGhJbnRlcmZhY2U6
aW50ZXJmYWNlXTsKIApAQCAtOTAsNiArOTMsMTEgQEAgLSAodm9pZClfd2ViUHJvY2Vzc1BsdWdJ
bkJyb3dzZXJDb250ZXh0Q29udHJvbGxlckRpZFdyaXRlVG9QYXN0ZWJvYXJkOihXS1dlYlByb2MK
ICAgICBbX3JlbW90ZU9iamVjdCBkaWRXcml0ZVRvUGFzdGVib2FyZF07CiB9CiAKKy0gKEJPT0wp
X3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1Bs
dWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgcGVyZm9ybVR3b1N0ZXBE
cm9wOihXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlICopZnJhZ21lbnQgYXREZXN0aW5hdGlv
bjooV0tXZWJQcm9jZXNzUGx1Z0luUmFuZ2VIYW5kbGUgKilkZXN0aW5hdGlvbiBpc01vdmU6KEJP
T0wpaXNNb3ZlCit7CisgICAgcmV0dXJuIF9zaG91bGRPdmVycmlkZVBlcmZvcm1Ud29TdGVwRHJv
cDsKK30KKwogQGVuZAogCiAjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBhL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRlc3RzLm1tIGIvVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW0KaW5kZXgg
NWQ5ZGZlNjRkNTJhMDdkYjNlZWU2MDBhY2ZlNDcxMzkwMzY5N2ViNS4uNzUwZGRhNjE4ZmRjNWRm
ODMxMDNmZTExMWM5NTI5ZDVhYTZjYWUyNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW0KKysrIGIvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW0KQEAgLTM3LDYgKzM3LDcgQEAK
ICNpbXBvcnQgPFVJS2l0L1VJSW1hZ2UrVUlJdGVtUHJvdmlkZXIuaD4KICNpbXBvcnQgPFVJS2l0
L1VJSXRlbVByb3ZpZGVyX1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2Vz
UHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CiAjaW1w
b3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KICNpbXBvcnQgPFdl
YktpdC9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaD4KIApAQCAtNzExLDYgKzcxMiw1MiBA
QCBURVNUKERhdGFJbnRlcmFjdGlvblRlc3RzLCBPdmVycmlkZURhdGFJbnRlcmFjdGlvbk9wZXJh
dGlvbikKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTG9hZGluZ0RhdGEp
OwogfQogCitURVNUKERhdGFJbnRlcmFjdGlvblRlc3RzLCBJbmplY3RlZEJ1bmRsZU92ZXJyaWRl
UGVyZm9ybVR3b1N0ZXBEcm9wKQoreworICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZp
Z3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0
aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJCdW5kbGVFZGl0aW5nRGVsZWdhdGVQbHVnSW4iXTsKKyAg
ICBbY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbCBfc2V0T2JqZWN0OkBZRVMgZm9yQnVuZGxlUGFy
YW1ldGVyOkAiQnVuZGxlT3ZlcnJpZGVQZXJmb3JtVHdvU3RlcERyb3AiXTsKKworICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNH
UmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwor
ICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAiYXV0b2ZvY3VzLWNvbnRlbnRlZGl0YWJs
ZSJdOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJnZXRTZWxl
Y3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKSJdOworCisgICAgYXV0byBzaW11bGF0ZWRJdGVtUHJv
dmlkZXIgPSBhZG9wdE5TKFtbVUlJdGVtUHJvdmlkZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbc2lt
dWxhdGVkSXRlbVByb3ZpZGVyIHJlZ2lzdGVyRGF0YVJlcHJlc2VudGF0aW9uRm9yVHlwZUlkZW50
aWZpZXI6KE5TU3RyaW5nICopa1VUVHlwZVVURjhQbGFpblRleHQgb3B0aW9uczpuaWwgbG9hZEhh
bmRsZXI6Xk5TUHJvZ3Jlc3MgKihVSUl0ZW1Qcm92aWRlckRhdGFMb2FkQ29tcGxldGlvbkJsb2Nr
IGNvbXBsZXRpb25CbG9jaykKKyAgICB7CisgICAgICAgIGNvbXBsZXRpb25CbG9jayhbQCJIZWxs
byB3b3JsZCIgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddLCBuaWwpOwor
ICAgICAgICByZXR1cm4gW05TUHJvZ3Jlc3MgZGlzY3JldGVQcm9ncmVzc1dpdGhUb3RhbFVuaXRD
b3VudDoxMDBdOworICAgIH1dOworCisgICAgYXV0byBkYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Ig
PSBhZG9wdE5TKFtbRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIGFsbG9jXSBpbml0V2l0aFdlYlZp
ZXc6d2ViVmlldy5nZXQoKV0pOworICAgIFtkYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Igc2V0RXh0
ZXJuYWxJdGVtUHJvdmlkZXJzOkBbIHNpbXVsYXRlZEl0ZW1Qcm92aWRlci5nZXQoKSBdXTsKKyAg
ICBbZGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIHJ1bkZyb206Q0dQb2ludE1ha2UoMzAwLCA0MDAp
IHRvOkNHUG9pbnRNYWtlKDEwMCwgMzAwKV07CisKKyAgICBFWFBFQ1RfRVEoMFVMLCBbd2ViVmll
dyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZWRpdG9yLnRleHRDb250ZW50Il0ubGVu
Z3RoKTsKK30KKworVEVTVChEYXRhSW50ZXJhY3Rpb25UZXN0cywgSW5qZWN0ZWRCdW5kbGVBbGxv
d1BlcmZvcm1Ud29TdGVwRHJvcCkKK3sKKyAgICBXS1dlYlZpZXdDb25maWd1cmF0aW9uICpjb25m
aWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmlndXJhdGlvbldp
dGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiQnVuZGxlRWRpdGluZ0RlbGVnYXRlUGx1Z0luIl07Cisg
ICAgW2NvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wgX3NldE9iamVjdDpATk8gZm9yQnVuZGxlUGFy
YW1ldGVyOkAiQnVuZGxlT3ZlcnJpZGVQZXJmb3JtVHdvU3RlcERyb3AiXTsKKworICAgIGF1dG8g
d2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNH
UmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbl0pOwor
ICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAiYXV0b2ZvY3VzLWNvbnRlbnRlZGl0YWJs
ZSJdOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6QCJnZXRTZWxl
Y3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKSJdOworCisgICAgYXV0byBzaW11bGF0ZWRJdGVtUHJv
dmlkZXIgPSBhZG9wdE5TKFtbVUlJdGVtUHJvdmlkZXIgYWxsb2NdIGluaXRdKTsKKyAgICBbc2lt
dWxhdGVkSXRlbVByb3ZpZGVyIHJlZ2lzdGVyRGF0YVJlcHJlc2VudGF0aW9uRm9yVHlwZUlkZW50
aWZpZXI6KE5TU3RyaW5nICopa1VUVHlwZVVURjhQbGFpblRleHQgb3B0aW9uczpuaWwgbG9hZEhh
bmRsZXI6Xk5TUHJvZ3Jlc3MgKihVSUl0ZW1Qcm92aWRlckRhdGFMb2FkQ29tcGxldGlvbkJsb2Nr
IGNvbXBsZXRpb25CbG9jaykKKyAgICB7CisgICAgICAgIGNvbXBsZXRpb25CbG9jayhbQCJIZWxs
byB3b3JsZCIgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2RpbmddLCBuaWwpOwor
ICAgICAgICByZXR1cm4gW05TUHJvZ3Jlc3MgZGlzY3JldGVQcm9ncmVzc1dpdGhUb3RhbFVuaXRD
b3VudDoxMDBdOworICAgIH1dOworCisgICAgYXV0byBkYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Ig
PSBhZG9wdE5TKFtbRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIGFsbG9jXSBpbml0V2l0aFdlYlZp
ZXc6d2ViVmlldy5nZXQoKV0pOworICAgIFtkYXRhSW50ZXJhY3Rpb25TaW11bGF0b3Igc2V0RXh0
ZXJuYWxJdGVtUHJvdmlkZXJzOkBbIHNpbXVsYXRlZEl0ZW1Qcm92aWRlci5nZXQoKSBdXTsKKyAg
ICBbZGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIHJ1bkZyb206Q0dQb2ludE1ha2UoMzAwLCA0MDAp
IHRvOkNHUG9pbnRNYWtlKDEwMCwgMzAwKV07CisKKyAgICBFWFBFQ1RfV0tfU1RSRVEoIkhlbGxv
IHdvcmxkIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImVkaXRvci50
ZXh0Q29udGVudCJdLlVURjhTdHJpbmcpOworfQorCiBURVNUKERhdGFJbnRlcmFjdGlvblRlc3Rz
LCBBdHRhY2htZW50RWxlbWVudEl0ZW1Qcm92aWRlcnMpCiB7CiAgICAgUmV0YWluUHRyPFdLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlv
biBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJCdW5kbGVFZGl0
aW5nRGVsZWdhdGVQbHVnSW4iXTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312458</attachid>
            <date>2017-06-09 11:00:37 -0700</date>
            <delta_ts>2017-06-09 13:11:03 -0700</delta_ts>
            <desc>Fix WebKitTestRunner build.</desc>
            <filename>bug-172992-20170609110036.patch</filename>
            <type>text/plain</type>
            <size>34351</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE3ODE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDVmZWRhMjE3MGVkNzll
NGY3MjExYzhmNGY5ZGMzM2E5NmE0M2VjOS4uN2E2Njg4OGE3ZGRiNTNhNjhiNzNhZjljMDg1ZWY4
NTRkMTE0MDBmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE3LTA2LTA5ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1MgRG5EXSBB
ZGQgYSBob29rIHRvIHBlcmZvcm0gdHdvLXN0ZXAgZHJvcHMgaW4gZWRpdGFibGUgY29udGVudAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcyOTkyCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjU5MDE3ND4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGhvb2tzIGluIERyYWdDb250cm9sbGVyOjpj
b25jbHVkZUVkaXREcmFnIHRvIGdpdmUgdGhlIGNsaWVudCBsYXllciBhIGNoYW5jZSB0byBwZXJm
b3JtIGN1c3RvbSBoYW5kbGluZyB3aGVuCisgICAgICAgIGRyb3BwaW5nIGluIGVkaXRhYmxlIGNv
bnRlbnQuCisgICAgICAgIFRlc3RzOiAgRGF0YUludGVyYWN0aW9uVGVzdHMuSW5qZWN0ZWRCdW5k
bGVPdmVycmlkZVBlcmZvcm1Ud29TdGVwRHJvcAorICAgICAgICAgICAgICAgIERhdGFJbnRlcmFj
dGlvblRlc3RzLkluamVjdGVkQnVuZGxlQWxsb3dQZXJmb3JtVHdvU3RlcERyb3AKKworICAgICAg
ICAqIGxvYWRlci9FbXB0eUNsaWVudHMuY3BwOgorICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xs
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OmNvbmNsdWRlRWRpdERy
YWcpOgorICAgICAgICAqIHBhZ2UvRWRpdG9yQ2xpZW50Lmg6CisKIDIwMTctMDYtMDUgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVmYWN0b3IgLVtX
ZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHZhbHVlc0ZvclBhc3RlYm9hcmRUeXBlOmluSXRlbVNl
dDpdIHRvIGNoZWNrIHJlYWRhYmxlIHR5cGVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2lv
cy9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2lvcy9DaGFuZ2VMb2cKaW5kZXggOTJlY2EyODkw
MTlkNmJkZmM2NjRiY2VmODlkNTc4YjQ0MGU1ZmUwMy4uNWVkZDcyOGRmYmE2NjhkYThhODM2NzJm
Yjg2YjMyZDRmNTgxZmI3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9pb3MvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJLaXQvaW9zL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE3
LTA2LTA5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAg
IFtpT1MgRG5EXSBBZGQgYSBob29rIHRvIHBlcmZvcm0gdHdvLXN0ZXAgZHJvcHMgaW4gZWRpdGFi
bGUgY29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTcyOTkyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjU5MDE3ND4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYW4gZW1wdHkgaW1wbGVt
ZW50YXRpb24gb2YgcGVyZm9ybVR3b1N0ZXBEcm9wIGZvciBXZWJEZWZhdWx0VUlLaXREZWxlZ2F0
ZS4gU2VlIFdlYkNvcmUgQ2hhbmdlTG9ncy4KKworICAgICAgICAqIERlZmF1bHREZWxlZ2F0ZXMv
V2ViRGVmYXVsdFVJS2l0RGVsZWdhdGUubToKKyAgICAgICAgKC1bV2ViRGVmYXVsdFVJS2l0RGVs
ZWdhdGUgcGVyZm9ybVR3b1N0ZXBEcm9wOmF0RGVzdGluYXRpb246aXNNb3ZlOl0pOgorICAgICAg
ICAqIFdlYlZpZXcvV2ViVUlLaXREZWxlZ2F0ZS5oOgorCiAyMDE3LTA1LTEyICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRHJvcCB1c2VzIG9mIFBhc3NSZWZQdHIg
aW4gV2ViS2l0L21hYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IGM5M2RhZmE3Y2Y0OTRiZjNiNGU2ZTQ2
N2UzNGQwYjNmZmQ2NjRjOTMuLjcxNjI5MDM4ZTgyYWUxNWM3MWVhY2ZiOWY5YTJjNTZjMTM1NTcx
NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAxNy0wNi0wOSAgV2Vuc29u
IEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TIERuRF0gQWRk
IGEgaG9vayB0byBwZXJmb3JtIHR3by1zdGVwIGRyb3BzIGluIGVkaXRhYmxlIGNvbnRlbnQKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3Mjk5MgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMzI1OTAxNzQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBhIG5ldyBTUEkgdG8gV2ViVUlLaXREZWxlZ2F0
ZSB0byBhbGxvdyBXSzEgY2xpZW50cyB0byBvdmVycmlkZSBkZWZhdWx0IGRyb3AgYmVoYXZpb3Iu
IFJldHVybmluZyBZRVMgZnJvbQorICAgICAgICAtcGVyZm9ybVR3b1N0ZXBEcm9wOmF0RGVzdGlu
YXRpb246aXNNb3ZlOiB3aWxsIHByZXZlbnQgY29udGVudCBmcm9tIGJlaW5nIGluc2VydGVkIG9u
IGRyb3AgaW4gV2ViS2l0OyBvdGhlcndpc2UsCisgICAgICAgIHJldHVybmluZyBOTyB3aWxsIGNv
bnRpbnVlIHdpdGggZGVmYXVsdCBXZWJLaXQgYmVoYXZpb3IuCisKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJF
ZGl0b3JDbGllbnQubW06CisgICAgICAgIChXZWJFZGl0b3JDbGllbnQ6OnBlcmZvcm1Ud29TdGVw
RHJvcCk6CisKIDIwMTctMDYtMDUgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBUcmllZCB0byBmaXggdGhlIGJ1aWxkIHdoZW4gdGFyZ3J0aW5nIG1hY09TIDEwLjEy
IHVzaW5nIHRoZSBtYWNPUyAxMC4xMyBkZXZlbG9wZXIgYmV0YSBTREsuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cK
aW5kZXggZGZlNDU1Njk1OGQ1OWJkZjdmMjgyNjkzOWVjOWVhNzhmZmU4MDdmMC4uZmM3ODgzY2Fl
NjhjYzk4ODVlZDYxNTVmMDNlMzkxZWE3NjAxNTdhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC93aW4vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE1IEBACisyMDE3LTA2LTA5ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgorCisgICAgICAgIFtpT1MgRG5EXSBBZGQgYSBob29rIHRvIHBlcmZvcm0gdHdvLXN0ZXAg
ZHJvcHMgaW4gZWRpdGFibGUgY29udGVudAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTcyOTkyCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMjU5MDE3
ND4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YSBzdHViIGltcGxlbWVudGF0aW9uIGZvciBwZXJmb3JtVHdvU3RlcERyb3Agb24gV2luZG93cy4K
KworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorCiAyMDE3LTA2
LTA0ICBLb25zdGFudGluIFRva2FyZXYgIDxhbm51bGVuQHlhbmRleC5ydT4KIAogICAgICAgICBG
aXggYnVpbGQgb2YgV2luZG93cy1zcGVjaWZpYyBjb2RlIHdpdGggSUNVIDU5LjEKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpp
bmRleCBjNzU4YzcyNDIxNzA2YmRhZWNlNGU3MWQ1NjUxZTk1ZjVlOTMyNzQ2Li4xYjk5NWI0YjFj
N2FhY2NlY2VlZDBmOWE2MTZhNzVkOTZlZDc2ZGNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYg
QEAKKzIwMTctMDYtMDkgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisK
KyAgICAgICAgW2lPUyBEbkRdIEFkZCBhIGhvb2sgdG8gcGVyZm9ybSB0d28tc3RlcCBkcm9wcyBp
biBlZGl0YWJsZSBjb250ZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNzI5OTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMyNTkwMTc0PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBwbHVtYmlu
ZyB0byBzdXBwb3J0IGFuIGluamVjdGVkIGJ1bmRsZSBob29rIGZvciBvdmVycmlkaW5nIHR3by1z
dGVwIGRyb3BzLiBTZWUgV2ViQ29yZSBDaGFuZ2VMb2cuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9BUElJbmplY3RlZEJ1bmRsZUVkaXRvckNsaWVudC5oOgorICAg
ICAgICAoQVBJOjpJbmplY3RlZEJ1bmRsZTo6RWRpdG9yQ2xpZW50OjpwZXJmb3JtVHdvU3RlcERy
b3ApOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0NvY29hL1dLV2Vi
UHJvY2Vzc1BsdWdJbkVkaXRpbmdEZWxlZ2F0ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvSW5q
ZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRWRpdG9yQ2xpZW50Lmg6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dLV2ViUHJvY2Vzc1BsdWdJbkJyb3dz
ZXJDb250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAgKC1bV0tXZWJQcm9jZXNzUGx1Z0luQnJv
d3NlckNvbnRleHRDb250cm9sbGVyIF9zZXRFZGl0aW5nRGVsZWdhdGU6XSk6CisgICAgICAgICog
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQ6OnBl
cmZvcm1Ud29TdGVwRHJvcCk6CisgICAgICAgICogV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkVk
aXRvckNsaWVudDo6cGVyZm9ybVR3b1N0ZXBEcm9wKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oOgorCiAyMDE3LTA2LTA1ICBDaHJpcyBEdW1l
eiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgQVNTRVJUSU9OIEZBSUxFRDogUnVuTG9v
cDo6aXNNYWluKCkgaW4gY29tLmFwcGxlLldlYktpdDogSVBDOjpDb25uZWN0aW9uOjpzZW5kU3lu
Y01lc3NhZ2UgKyAxMjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9FbXB0eUNs
aWVudHMuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5jcHAKaW5kZXgg
MWIxNjliZDYzOTIyZTg4ZWM1NmU0MWM0MjE0MmNlZDQ0ZTkwNjAyOS4uNzI5NDI2Y2VhMmM0ZTZk
M2IwN2U3NzVjZDEyZWI0ZDQ0ZWJhNTJhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0VtcHR5Q2xpZW50cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xp
ZW50cy5jcHAKQEAgLTIxMyw2ICsyMTMsOCBAQCBwcml2YXRlOgogICAgIGludCBwYXN0ZWJvYXJk
Q2hhbmdlQ291bnQoKSBmaW5hbCB7IHJldHVybiAwOyB9CiAjZW5kaWYKIAorICAgIGJvb2wgcGVy
Zm9ybVR3b1N0ZXBEcm9wKERvY3VtZW50RnJhZ21lbnQmLCBSYW5nZSYsIGJvb2wpIGZpbmFsIHsg
cmV0dXJuIGZhbHNlOyB9CisKICNpZiBQTEFURk9STShDT0NPQSkKICAgICBOU1N0cmluZyAqdXNl
clZpc2libGVTdHJpbmcoTlNVUkwgKikgZmluYWwgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZv
aWQgc2V0SW5zZXJ0aW9uUGFzdGVib2FyZChjb25zdCBTdHJpbmcmKSBmaW5hbCB7IH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCmluZGV4IDNiYWVlNjE2ZWEyNTNiNjkxY2M3
MWRjYjA0NmZiOWNiMWI0N2EwMTQuLmNiZTEwM2RjZTQ3NzFlODU1YWE4ODRmN2NjNTY5OGZiOGU4
NmJhZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuY3BwCkBAIC01NjksMTgg
KzU2OSwyMyBAQCBib29sIERyYWdDb250cm9sbGVyOjpjb25jbHVkZUVkaXREcmFnKGNvbnN0IERy
YWdEYXRhJiBkcmFnRGF0YSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgUmVzb3VyY2VD
YWNoZVZhbGlkYXRpb25TdXBwcmVzc29yIHZhbGlkYXRpb25TdXBwcmVzc29yKHJhbmdlLT5vd25l
ckRvY3VtZW50KCkuY2FjaGVkUmVzb3VyY2VMb2FkZXIoKSk7Ci0gICAgaWYgKGRyYWdJc01vdmUo
aW5uZXJGcmFtZS0+c2VsZWN0aW9uKCksIGRyYWdEYXRhKSB8fCBkcmFnQ2FyZXQuaXNDb250ZW50
UmljaGx5RWRpdGFibGUoKSkgeworICAgIGF1dG8mIGVkaXRvciA9IGlubmVyRnJhbWUtPmVkaXRv
cigpOworICAgIGJvb2wgaXNNb3ZlID0gZHJhZ0lzTW92ZShpbm5lckZyYW1lLT5zZWxlY3Rpb24o
KSwgZHJhZ0RhdGEpOworICAgIGlmIChpc01vdmUgfHwgZHJhZ0NhcmV0LmlzQ29udGVudFJpY2hs
eUVkaXRhYmxlKCkpIHsKICAgICAgICAgYm9vbCBjaG9zZVBsYWluVGV4dCA9IGZhbHNlOwogICAg
ICAgICBSZWZQdHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBkb2N1bWVudEZyYWdtZW50
RnJvbURyYWdEYXRhKGRyYWdEYXRhLCAqaW5uZXJGcmFtZSwgKnJhbmdlLCB0cnVlLCBjaG9zZVBs
YWluVGV4dCk7Ci0gICAgICAgIGlmICghZnJhZ21lbnQgfHwgIWlubmVyRnJhbWUtPmVkaXRvcigp
LnNob3VsZEluc2VydEZyYWdtZW50KCpmcmFnbWVudCwgcmFuZ2UuZ2V0KCksIEVkaXRvckluc2Vy
dEFjdGlvbjo6RHJvcHBlZCkpIHsKKyAgICAgICAgaWYgKCFmcmFnbWVudCB8fCAhZWRpdG9yLnNo
b3VsZEluc2VydEZyYWdtZW50KCpmcmFnbWVudCwgcmFuZ2UuZ2V0KCksIEVkaXRvckluc2VydEFj
dGlvbjo6RHJvcHBlZCkpCiAgICAgICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIH0KIAog
ICAgICAgICBtX2NsaWVudC53aWxsUGVyZm9ybURyYWdEZXN0aW5hdGlvbkFjdGlvbihEcmFnRGVz
dGluYXRpb25BY3Rpb25FZGl0LCBkcmFnRGF0YSk7Ci0gICAgICAgIGlmIChkcmFnSXNNb3ZlKGlu
bmVyRnJhbWUtPnNlbGVjdGlvbigpLCBkcmFnRGF0YSkpIHsKKworICAgICAgICBpZiAoZWRpdG9y
LmNsaWVudCgpICYmIGVkaXRvci5jbGllbnQoKS0+cGVyZm9ybVR3b1N0ZXBEcm9wKCpmcmFnbWVu
dCwgKnJhbmdlLCBpc01vdmUpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICAgICAg
aWYgKGlzTW92ZSkgewogICAgICAgICAgICAgLy8gTlNUZXh0VmlldyBiZWhhdmlvciBpcyB0byBh
bHdheXMgc21hcnQgZGVsZXRlIG9uIG1vdmluZyBhIHNlbGVjdGlvbiwKICAgICAgICAgICAgIC8v
IGJ1dCBvbmx5IHRvIHNtYXJ0IGluc2VydCBpZiB0aGUgc2VsZWN0aW9uIGdyYW51bGFyaXR5IGlz
IHdvcmQgZ3JhbnVsYXJpdHkuCi0gICAgICAgICAgICBib29sIHNtYXJ0RGVsZXRlID0gaW5uZXJG
cmFtZS0+ZWRpdG9yKCkuc21hcnRJbnNlcnREZWxldGVFbmFibGVkKCk7CisgICAgICAgICAgICBi
b29sIHNtYXJ0RGVsZXRlID0gZWRpdG9yLnNtYXJ0SW5zZXJ0RGVsZXRlRW5hYmxlZCgpOwogICAg
ICAgICAgICAgYm9vbCBzbWFydEluc2VydCA9IHNtYXJ0RGVsZXRlICYmIGlubmVyRnJhbWUtPnNl
bGVjdGlvbigpLmdyYW51bGFyaXR5KCkgPT0gV29yZEdyYW51bGFyaXR5ICYmIGRyYWdEYXRhLmNh
blNtYXJ0UmVwbGFjZSgpOwogICAgICAgICAgICAgTW92ZVNlbGVjdGlvbkNvbW1hbmQ6OmNyZWF0
ZShmcmFnbWVudC5yZWxlYXNlTm9uTnVsbCgpLCBkcmFnQ2FyZXQuYmFzZSgpLCBzbWFydEluc2Vy
dCwgc21hcnREZWxldGUpLT5hcHBseSgpOwogICAgICAgICB9IGVsc2UgewpAQCAtNTk1LDEzICs2
MDAsMTkgQEAgYm9vbCBEcmFnQ29udHJvbGxlcjo6Y29uY2x1ZGVFZGl0RHJhZyhjb25zdCBEcmFn
RGF0YSYgZHJhZ0RhdGEpCiAgICAgICAgIH0KICAgICB9IGVsc2UgewogICAgICAgICBTdHJpbmcg
dGV4dCA9IGRyYWdEYXRhLmFzUGxhaW5UZXh0KCk7Ci0gICAgICAgIGlmICh0ZXh0LmlzRW1wdHko
KSB8fCAhaW5uZXJGcmFtZS0+ZWRpdG9yKCkuc2hvdWxkSW5zZXJ0VGV4dCh0ZXh0LCByYW5nZS5n
ZXQoKSwgRWRpdG9ySW5zZXJ0QWN0aW9uOjpEcm9wcGVkKSkgeworICAgICAgICBpZiAodGV4dC5p
c0VtcHR5KCkgfHwgIWVkaXRvci5zaG91bGRJbnNlcnRUZXh0KHRleHQsIHJhbmdlLmdldCgpLCBF
ZGl0b3JJbnNlcnRBY3Rpb246OkRyb3BwZWQpKQogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwot
ICAgICAgICB9CiAKICAgICAgICAgbV9jbGllbnQud2lsbFBlcmZvcm1EcmFnRGVzdGluYXRpb25B
Y3Rpb24oRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uRWRpdCwgZHJhZ0RhdGEpOworICAgICAgICBSZWZQ
dHI8RG9jdW1lbnRGcmFnbWVudD4gZnJhZ21lbnQgPSBjcmVhdGVGcmFnbWVudEZyb21UZXh0KCpy
YW5nZSwgdGV4dCk7CisgICAgICAgIGlmICghZnJhZ21lbnQpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyAgICAgICAgaWYgKGVkaXRvci5jbGllbnQoKSAmJiBlZGl0b3IuY2xpZW50KCkt
PnBlcmZvcm1Ud29TdGVwRHJvcCgqZnJhZ21lbnQsICpyYW5nZSwgaXNNb3ZlKSkKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworCiAgICAgICAgIGlmIChzZXRTZWxlY3Rpb25Ub0RyYWdDYXJldChp
bm5lckZyYW1lLmdldCgpLCBkcmFnQ2FyZXQsIHJhbmdlLCBwb2ludCkpCi0gICAgICAgICAgICBS
ZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6Y3JlYXRlKCptX2RvY3VtZW50VW5kZXJNb3VzZSwgY3Jl
YXRlRnJhZ21lbnRGcm9tVGV4dCgqcmFuZ2UsIHRleHQpLCAgUmVwbGFjZVNlbGVjdGlvbkNvbW1h
bmQ6OlNlbGVjdFJlcGxhY2VtZW50IHwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6Ok1hdGNoU3R5
bGUgfCBSZXBsYWNlU2VsZWN0aW9uQ29tbWFuZDo6UHJldmVudE5lc3RpbmcsIEVkaXRBY3Rpb25J
bnNlcnRGcm9tRHJvcCktPmFwcGx5KCk7CisgICAgICAgICAgICBSZXBsYWNlU2VsZWN0aW9uQ29t
bWFuZDo6Y3JlYXRlKCptX2RvY3VtZW50VW5kZXJNb3VzZSwgZnJhZ21lbnQuZ2V0KCksIFJlcGxh
Y2VTZWxlY3Rpb25Db21tYW5kOjpTZWxlY3RSZXBsYWNlbWVudCB8IFJlcGxhY2VTZWxlY3Rpb25D
b21tYW5kOjpNYXRjaFN0eWxlIHwgUmVwbGFjZVNlbGVjdGlvbkNvbW1hbmQ6OlByZXZlbnROZXN0
aW5nLCBFZGl0QWN0aW9uSW5zZXJ0RnJvbURyb3ApLT5hcHBseSgpOwogICAgIH0KIAogICAgIGlm
IChyb290RWRpdGFibGVFbGVtZW50KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0VkaXRvckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9FZGl0b3JDbGllbnQuaAppbmRl
eCA1NzViNDFkODU2NDA2MmQ1NThlYWM5MzQ5N2NmNTg0NWZjYzZmNTBkLi4wNjk1ODc3ODdlMzA4
NjI5MjNjZTQ3YTFmZTEyYTU4MzkwZmVmMjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0VkaXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRWRpdG9yQ2xpZW50
LmgKQEAgLTE4NSw2ICsxODUsOCBAQCBwdWJsaWM6CiAgICAgLy8gU3VwcG9ydCBmb3IgZ2xvYmFs
IHNlbGVjdGlvbnMsIHVzZWQgb24gcGxhdGZvcm1zIGxpa2UgdGhlIFggV2luZG93IFN5c3RlbSB0
aGF0IHRyZWF0CiAgICAgLy8gc2VsZWN0aW9uIGFzIGEgdHlwZSBvZiBjbGlwYm9hcmQuCiAgICAg
dmlydHVhbCBib29sIHN1cHBvcnRzR2xvYmFsU2VsZWN0aW9uKCkgeyByZXR1cm4gZmFsc2U7IH0K
KworICAgIHZpcnR1YWwgYm9vbCBwZXJmb3JtVHdvU3RlcERyb3AoRG9jdW1lbnRGcmFnbWVudCYs
IFJhbmdlJiBkZXN0aW5hdGlvbiwgYm9vbCBpc01vdmUpID0gMDsKIH07CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvaW9zL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJS2l0RGVs
ZWdhdGUubSBiL1NvdXJjZS9XZWJLaXQvaW9zL0RlZmF1bHREZWxlZ2F0ZXMvV2ViRGVmYXVsdFVJ
S2l0RGVsZWdhdGUubQppbmRleCBhZjkyOGNhZmJjZDE0OTA5MTMyNzY1OWFkNzZjNDZkNDc4MDg3
N2M4Li40MmY5YmNlNzU4MTg1YTRkZWI1NzJlMWM5YWUwZjk5OGI5MDA3ZjRkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2lvcy9EZWZhdWx0RGVsZWdhdGVzL1dlYkRlZmF1bHRVSUtpdERlbGVn
YXRlLm0KKysrIGIvU291cmNlL1dlYktpdC9pb3MvRGVmYXVsdERlbGVnYXRlcy9XZWJEZWZhdWx0
VUlLaXREZWxlZ2F0ZS5tCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpbXBvcnQgIldlYkRlZmF1bHRV
SUtpdERlbGVnYXRlLmgiCiAKKyNpbXBvcnQgIkRPTVJhbmdlLmgiCiAjaW1wb3J0ICJXZWJVSURl
bGVnYXRlLmgiCiAKIHN0YXRpYyBXZWJEZWZhdWx0VUlLaXREZWxlZ2F0ZSAqc2hhcmVkRGVsZWdh
dGUgPSBuaWw7CkBAIC0yNjIsNiArMjYzLDExIEBAIC0gKEJPT0wpcGVyZm9ybXNUd29TdGVwUGFz
dGU6KERPTURvY3VtZW50RnJhZ21lbnQqKWZyYWdtZW50CiAgICAgcmV0dXJuIE5POwogfQogCist
IChCT09MKXBlcmZvcm1Ud29TdGVwRHJvcDooRE9NRG9jdW1lbnRGcmFnbWVudCAqKWZyYWdtZW50
IGF0RGVzdGluYXRpb246KERPTVJhbmdlICopZGVzdGluYXRpb24gaXNNb3ZlOihCT09MKWlzTW92
ZQoreworICAgIHJldHVybiBOTzsKK30KKwogLSAoTlNJbnRlZ2VyKWdldFBhc3RlYm9hcmRDaGFu
Z2VDb3VudAogewogICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9pb3Mv
V2ViVmlldy9XZWJVSUtpdERlbGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJWaWV3L1dl
YlVJS2l0RGVsZWdhdGUuaAppbmRleCA2ZWVhYmI3NGZhNmI2ZGI5NjA3MmE5NjBhN2EwY2QyNDZi
YWE0ZjM0Li4zYTQ0NjJlNDM4ODllYzdiODM2ZmMyNzZmYmU3NzQ4YmIxOTNjZDY3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2lvcy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2lvcy9XZWJWaWV3L1dlYlVJS2l0RGVsZWdhdGUuaApAQCAtMjksOCArMjks
OSBAQAogI2ltcG9ydCA8V2ViS2l0TGVnYWN5L1dBS0FwcEtpdFN0dWJzLmg+CiAjaW1wb3J0IDxX
ZWJLaXRMZWdhY3kvV0tDb250ZW50T2JzZXJ2YXRpb24uaD4KIAotQGNsYXNzIERPTU5vZGU7CiBA
Y2xhc3MgRE9NRG9jdW1lbnRGcmFnbWVudDsKK0BjbGFzcyBET01Ob2RlOworQGNsYXNzIERPTVJh
bmdlOwogQGNsYXNzIFdBS1ZpZXc7CiBAY2xhc3MgV2ViRGF0YVNvdXJjZTsKIEBjbGFzcyBXZWJG
cmFtZTsKQEAgLTExOCw2ICsxMTksNyBAQCB0eXBlZGVmIE5TX0VOVU0oTlNJbnRlZ2VyLCBXZWJN
ZWRpYUNhcHR1cmVUeXBlKSB7CiAtIChOU0FycmF5KilzdXBwb3J0ZWRQYXN0ZWJvYXJkVHlwZXNG
b3JDdXJyZW50U2VsZWN0aW9uOwogLSAoQk9PTCloYXNSaWNobHlFZGl0YWJsZVNlbGVjdGlvbjsK
IC0gKEJPT0wpcGVyZm9ybXNUd29TdGVwUGFzdGU6KERPTURvY3VtZW50RnJhZ21lbnQqKWZyYWdt
ZW50OworLSAoQk9PTClwZXJmb3JtVHdvU3RlcERyb3A6KERPTURvY3VtZW50RnJhZ21lbnQgKilm
cmFnbWVudCBhdERlc3RpbmF0aW9uOihET01SYW5nZSAqKWRlc3RpbmF0aW9uIGlzTW92ZTooQk9P
TClpc01vdmU7CiAtIChOU0ludGVnZXIpZ2V0UGFzdGVib2FyZENoYW5nZUNvdW50OwogLSAoQ0dQ
b2ludClpbnRlcmFjdGlvbkxvY2F0aW9uOwogLSAodm9pZClzaG93UGxheWJhY2tUYXJnZXRQaWNr
ZXI6KEJPT0wpaGFzVmlkZW8gZnJvbVJlY3Q6KENHUmVjdCllbGVtZW50UmVjdDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIv
U291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXgg
MTAwZGQ2YWMxNTBiZmU1YmNiMjZkNTA5OWQzMDllYjJkNDkzZTI5MC4uZGNjOTUwZWJjNjkyNzdj
NGQ1ZDZmY2ZkNDBkYTQ0NDlhNzg3MTZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9tYWMv
V2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTE1MCw2ICsxNTAsOCBAQCBwcml2
YXRlOgogICAgIGJvb2wgcGVyZm9ybXNUd29TdGVwUGFzdGUoV2ViQ29yZTo6RG9jdW1lbnRGcmFn
bWVudCopIGZpbmFsOwogICAgIGludCBwYXN0ZWJvYXJkQ2hhbmdlQ291bnQoKSBmaW5hbDsKICNl
bmRpZgorCisgICAgYm9vbCBwZXJmb3JtVHdvU3RlcERyb3AoV2ViQ29yZTo6RG9jdW1lbnRGcmFn
bWVudCYsIFdlYkNvcmU6OlJhbmdlJiBkZXN0aW5hdGlvbiwgYm9vbCBpc01vdmUpIGZpbmFsOwog
ICAgIAogICAgIGJvb2wgc2hvdWxkRXJhc2VNYXJrZXJzQWZ0ZXJDaGFuZ2VTZWxlY3Rpb24oV2Vi
Q29yZTo6VGV4dENoZWNraW5nVHlwZSkgY29uc3QgZmluYWw7CiAgICAgdm9pZCBpZ25vcmVXb3Jk
SW5TcGVsbERvY3VtZW50KGNvbnN0IFN0cmluZyYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50Lm1tCmluZGV4IDIwMTE5NTIz
NzI4NjI0OTg1MzlkZjU5ZWY2NmEyYzJhYjQ5NzAyMmMuLjQ3NDZmNWE5NTFjODQ5YmIxYmNkMTVi
MTQ2ZjkzZTljMDZkMTY3ODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL1dlYkNvcmVT
dXBwb3J0L1dlYkVkaXRvckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L21hYy9XZWJDb3Jl
U3VwcG9ydC9XZWJFZGl0b3JDbGllbnQubW0KQEAgLTkyMyw2ICs5MjMsMTQgQEAgYm9vbCBXZWJF
ZGl0b3JDbGllbnQ6OnBlcmZvcm1zVHdvU3RlcFBhc3RlKFdlYkNvcmU6OkRvY3VtZW50RnJhZ21l
bnQqIGZyYWdtZW50KQogICAgIHJldHVybiBmYWxzZTsKIH0KIAorYm9vbCBXZWJFZGl0b3JDbGll
bnQ6OnBlcmZvcm1Ud29TdGVwRHJvcChEb2N1bWVudEZyYWdtZW50JiBmcmFnbWVudCwgUmFuZ2Um
IGRlc3RpbmF0aW9uLCBib29sIGlzTW92ZSkKK3sKKyAgICBpZiAoW1ttX3dlYlZpZXcgX1VJS2l0
RGVsZWdhdGVGb3J3YXJkZXJdIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IocGVyZm9ybVR3
b1N0ZXBEcm9wOmF0RGVzdGluYXRpb246aXNNb3ZlOildKQorICAgICAgICByZXR1cm4gW1ttX3dl
YlZpZXcgX1VJS2l0RGVsZWdhdGVGb3J3YXJkZXJdIHBlcmZvcm1Ud29TdGVwRHJvcDpraXQoJmZy
YWdtZW50KSBhdERlc3RpbmF0aW9uOmtpdCgmZGVzdGluYXRpb24pIGlzTW92ZTppc01vdmVdOwor
CisgICAgcmV0dXJuIGZhbHNlOworfQorCiBpbnQgV2ViRWRpdG9yQ2xpZW50OjpwYXN0ZWJvYXJk
Q2hhbmdlQ291bnQoKQogewogICAgIGlmIChbW21fd2ViVmlldyBfVUlLaXREZWxlZ2F0ZUZvcndh
cmRlcl0gcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihnZXRQYXN0ZWJvYXJkQ2hhbmdlQ291
bnQpXSkKQEAgLTk1NSw2ICs5NjMsMTEgQEAgVmVjdG9yPFRleHRDaGVja2luZ1Jlc3VsdD4gV2Vi
RWRpdG9yQ2xpZW50OjpjaGVja1RleHRPZlBhcmFncmFwaChTdHJpbmdWaWV3IHN0cmkKIAogI2lm
ICFQTEFURk9STShJT1MpCiAKK2Jvb2wgV2ViRWRpdG9yQ2xpZW50OjpwZXJmb3JtVHdvU3RlcERy
b3AoRG9jdW1lbnRGcmFnbWVudCYsIFJhbmdlJiwgYm9vbCkKK3sKKyAgICByZXR1cm4gZmFsc2U7
Cit9CisKIGJvb2wgV2ViRWRpdG9yQ2xpZW50OjpzaG91bGRFcmFzZU1hcmtlcnNBZnRlckNoYW5n
ZVNlbGVjdGlvbihUZXh0Q2hlY2tpbmdUeXBlIHR5cGUpIGNvbnN0CiB7CiAgICAgLy8gVGhpcyBw
cmV2ZW50cyBlcmFzaW5nIHNwZWxsaW5nIG1hcmtlcnMgb24gT1MgWCBMaW9uIG9yIGxhdGVyIHRv
IG1hdGNoIEFwcEtpdCBvbiB0aGVzZSBNYWMgT1MgWCB2ZXJzaW9ucy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNsaWVudC5oIGIvU291cmNl
L1dlYktpdC93aW4vV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKaW5kZXggZDUyOGRj
NGM4NGIyNTk5N2QxYTcwZDBmMDQ0ZTg1NDA5MzEwZTgxNS4uNjczZGI1ZjQzYTdmOGZjZGNjNjIz
ODFiOTg1ODJhYzk4OTk5Y2VmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC93aW4vV2ViQ29y
ZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKQEAgLTExMSw2ICsxMTEsNyBAQCBwcml2YXRlOgog
ICAgIHZvaWQgd2lsbFNldElucHV0TWV0aG9kU3RhdGUoKSBmaW5hbDsKICAgICB2b2lkIHNldElu
cHV0TWV0aG9kU3RhdGUoYm9vbCkgZmluYWw7CiAgICAgdm9pZCByZXF1ZXN0Q2hlY2tpbmdPZlN0
cmluZyhXZWJDb3JlOjpUZXh0Q2hlY2tpbmdSZXF1ZXN0JiwgY29uc3QgV2ViQ29yZTo6VmlzaWJs
ZVNlbGVjdGlvbiYpIGZpbmFsIHsgfQorICAgIGJvb2wgcGVyZm9ybVR3b1N0ZXBEcm9wKFdlYkNv
cmU6OkRvY3VtZW50RnJhZ21lbnQmLCBXZWJDb3JlOjpSYW5nZSYsIGJvb2wpIGZpbmFsIHsgcmV0
dXJuIGZhbHNlOyB9CiAKICAgICBXZWJDb3JlOjpUZXh0Q2hlY2tlckNsaWVudCogdGV4dENoZWNr
ZXIoKSBmaW5hbCB7IHJldHVybiB0aGlzOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL0FQSUluamVjdGVkQnVuZGxlRWRpdG9yQ2xp
ZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9BUElJ
bmplY3RlZEJ1bmRsZUVkaXRvckNsaWVudC5oCmluZGV4IDc1NTFkOWE4YTRmZjM5ZWZkZDhjNjNk
NDQ0ZTY3YjQ4NzdlMmNjYTguLjI2MDZmMzhkMjc4ZTJiZTAxMzVlZTAxMjViMjY3MzAwY2FhOTAw
ZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUv
QVBJL0FQSUluamVjdGVkQnVuZGxlRWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQVBJSW5qZWN0ZWRCdW5kbGVFZGl0b3JDbGll
bnQuaApAQCAtMzIsNiArMzIsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBDU1NT
dHlsZURlY2xhcmF0aW9uOworY2xhc3MgRG9jdW1lbnRGcmFnbWVudDsKIGNsYXNzIE5vZGU7CiBj
bGFzcyBSYW5nZTsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKQEAgLTYzLDYgKzY0LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCB3aWxsV3JpdGVUb1Bhc3RlYm9hcmQoV2ViS2l0OjpXZWJQYWdl
JiwgV2ViQ29yZTo6UmFuZ2UqKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgZ2V0UGFzdGVib2FyZERh
dGFGb3JSYW5nZShXZWJLaXQ6OldlYlBhZ2UmLCBXZWJDb3JlOjpSYW5nZSosIFZlY3RvcjxXVEY6
OlN0cmluZz4mIHBhc3RlYm9hcmRUeXBlcywgVmVjdG9yPFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRC
dWZmZXI+PiYgcGFzdGVib2FyZERhdGEpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBkaWRXcml0ZVRv
UGFzdGVib2FyZChXZWJLaXQ6OldlYlBhZ2UmKSB7IH0KKyAgICB2aXJ0dWFsIGJvb2wgcGVyZm9y
bVR3b1N0ZXBEcm9wKFdlYktpdDo6V2ViUGFnZSYsIFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQm
LCBXZWJDb3JlOjpSYW5nZSYsIGJvb2wpIHsgcmV0dXJuIGZhbHNlOyB9CiB9OwogCiB9IC8vIG5h
bWVzcGFjZSBJbmplY3RlZEJ1bmRsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJv
Y2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvQ29jb2EvV0tXZWJQcm9jZXNzUGx1Z0luRWRpdGluZ0Rl
bGVnYXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9D
b2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdhdGUuaAppbmRleCA0MjliZDgwNTA5
NmYzNDcyODI3M2RlZDYyMWQ2MTIzNWY3YWM5NmI5Li44NTUwZjljMDBiMWJhNDA1NzYwYjZhOWRj
ZDMxNjZlOGZlZmQxZTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0lu
amVjdGVkQnVuZGxlL0FQSS9Db2NvYS9XS1dlYlByb2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdhdGUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9Db2Nv
YS9XS1dlYlByb2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdhdGUuaApAQCAtMjgsNiArMjgsNyBAQAog
I2lmIFdLX0FQSV9FTkFCTEVECiAKICNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXIuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlByb2Nlc3NQ
bHVnSW5Ob2RlSGFuZGxlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJQcm9jZXNzUGx1Z0luUmFu
Z2VIYW5kbGUuaD4KIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKQEAgLTU5LDYgKzYwLDcgQEAgV0tf
QVBJX0FWQUlMQUJMRShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKIC0gKHZv
aWQpX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vz
c1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgd2lsbFdyaXRlUmFu
Z2VUb1Bhc3RlYm9hcmQ6KFdLV2ViUHJvY2Vzc1BsdWdJblJhbmdlSGFuZGxlICopcmFuZ2U7CiAt
IChOU0RpY3Rpb25hcnk8TlNTdHJpbmcgKiwgTlNEYXRhICo+ICopX3dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0
Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgcGFzdGVib2FyZERhdGFGb3JSYW5nZTooV0tXZWJQcm9j
ZXNzUGx1Z0luUmFuZ2VIYW5kbGUgKilyYW5nZTsKIC0gKHZvaWQpX3dlYlByb2Nlc3NQbHVnSW5C
cm93c2VyQ29udGV4dENvbnRyb2xsZXJEaWRXcml0ZVRvUGFzdGVib2FyZDooV0tXZWJQcm9jZXNz
UGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyICopY29udHJvbGxlcjsKKy0gKEJPT0wpX3dl
YlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2ViUHJvY2Vzc1BsdWdJ
bkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgcGVyZm9ybVR3b1N0ZXBEcm9w
OihXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlICopZnJhZ21lbnQgYXREZXN0aW5hdGlvbjoo
V0tXZWJQcm9jZXNzUGx1Z0luUmFuZ2VIYW5kbGUgKilkZXN0aW5hdGlvbiBpc01vdmU6KEJPT0wp
aXNNb3ZlOwogCiBAZW5kCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
SW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmggYi9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0FQSS9jL1dLQnVuZGxlUGFnZUVkaXRv
ckNsaWVudC5oCmluZGV4IDU5YzZlOGQ4YTA0M2U3OTEzMmM4Y2M5MzI2MGJhOTI5YjA4OTdiYjQu
LjBiNzU2NTBlOWY3OWViMzljY2E5ZjE5ZTkxZmNmMTlkMzY2MjIxZmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvQVBJL2MvV0tCdW5kbGVQYWdl
RWRpdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1
bmRsZS9BUEkvYy9XS0J1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaApAQCAtNjMsNiArNjMsNyBAQCB0
eXBlZGVmIHZvaWQgKCpXS0J1bmRsZVBhZ2VFZGl0aW5nTm90aWZpY2F0aW9uKShXS0J1bmRsZVBh
Z2VSZWYgcGFnZSwgV0tTdHJpbmdSZQogdHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlV2lsbFdy
aXRlVG9QYXN0ZWJvYXJkKShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tCdW5kbGVSYW5nZUhhbmRs
ZVJlZiByYW5nZSwgIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogdHlwZWRlZiB2b2lkICgqV0tC
dW5kbGVQYWdlR2V0UGFzdGVib2FyZERhdGFGb3JSYW5nZSkoV0tCdW5kbGVQYWdlUmVmIHBhZ2Us
IFdLQnVuZGxlUmFuZ2VIYW5kbGVSZWYgcmFuZ2UsIFdLQXJyYXlSZWYqIHBhc3RlYm9hcmRUeXBl
cywgV0tBcnJheVJlZiogcGFzdGVib2FyZERhdGEsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwog
dHlwZWRlZiB2b2lkICgqV0tCdW5kbGVQYWdlRGlkV3JpdGVUb1Bhc3RlYm9hcmQpKFdLQnVuZGxl
UGFnZVJlZiBwYWdlLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKTsKK3R5cGVkZWYgYm9vbCAoKldL
QnVuZGxlUGFnZVBlcmZvcm1Ud29TdGVwRHJvcCkoV0tCdW5kbGVQYWdlUmVmIHBhZ2UsIFdLQnVu
ZGxlTm9kZUhhbmRsZVJlZiBmcmFnbWVudCwgV0tCdW5kbGVSYW5nZUhhbmRsZVJlZiBkZXN0aW5h
dGlvbiwgYm9vbCBpc01vdmUsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pOwogCiB0eXBlZGVmIHN0
cnVjdCBXS0J1bmRsZVBhZ2VFZGl0b3JDbGllbnRCYXNlIHsKICAgICBpbnQgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNp
b247CkBAIC0xMDYsNiArMTA3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgV0tCdW5kbGVQYWdlRWRpdG9y
Q2xpZW50VjEgewogICAgIFdLQnVuZGxlUGFnZVdpbGxXcml0ZVRvUGFzdGVib2FyZCAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lsbFdyaXRlVG9QYXN0ZWJvYXJkOwogICAgIFdL
QnVuZGxlUGFnZUdldFBhc3RlYm9hcmREYXRhRm9yUmFuZ2UgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgZ2V0UGFzdGVib2FyZERhdGFGb3JSYW5nZTsKICAgICBXS0J1bmRsZVBhZ2VEaWRX
cml0ZVRvUGFzdGVib2FyZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpZFdy
aXRlVG9QYXN0ZWJvYXJkOworICAgIFdLQnVuZGxlUGFnZVBlcmZvcm1Ud29TdGVwRHJvcCAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGVyZm9ybVR3b1N0ZXBEcm9wOwogfSBX
S0J1bmRsZVBhZ2VFZGl0b3JDbGllbnRWMTsKIAogI2VuZGlmIC8vIFdLQnVuZGxlUGFnZUVkaXRv
ckNsaWVudF9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVk
QnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVy
Lm1tIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9BUEkvbWFjL1dL
V2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlci5tbQppbmRleCA0ODZmY2Zk
NDNlZmYwNTIzYTUxMmViNzAyMjIyMGU5NzY0MmQyOGVjLi4yZWZkMWRmYTEzMjliZmE2YjE3NjJl
MDZhNjMwMWY5NGU5ZDUxZDJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0FQSS9tYWMvV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRD
b250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5k
bGUvQVBJL21hYy9XS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIubW0K
QEAgLTYwLDYgKzYwLDcgQEAKICNpbXBvcnQgIl9XS1JlbmRlcmluZ1Byb2dyZXNzRXZlbnRzSW50
ZXJuYWwuaCIKICNpbXBvcnQgIl9XS1NhbWVEb2N1bWVudE5hdmlnYXRpb25UeXBlSW50ZXJuYWwu
aCIKICNpbXBvcnQgPFdlYkNvcmUvRG9jdW1lbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRG9jdW1l
bnRGcmFnbWVudC5oPgogI2ltcG9ydCA8V2ViQ29yZS9GcmFtZS5oPgogI2ltcG9ydCA8V2ViQ29y
ZS9IVE1MRm9ybUVsZW1lbnQuaD4KICNpbXBvcnQgPFdlYkNvcmUvSFRNTElucHV0RWxlbWVudC5o
PgpAQCAtNjU4LDYgKzY1OSwxNiBAQCAtICh2b2lkKV9zZXRFZGl0aW5nRGVsZWdhdGU6KGlkIDxX
S1dlYlByb2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdhdGU+KWVkaXRpbmdEZWxlZwogICAgICAgICAg
ICAgW21fY29udHJvbGxlci0+X2VkaXRpbmdEZWxlZ2F0ZS5nZXQoKSBfd2ViUHJvY2Vzc1BsdWdJ
bkJyb3dzZXJDb250ZXh0Q29udHJvbGxlckRpZFdyaXRlVG9QYXN0ZWJvYXJkOm1fY29udHJvbGxl
cl07CiAgICAgICAgIH0KIAorICAgICAgICBib29sIHBlcmZvcm1Ud29TdGVwRHJvcChXZWJLaXQ6
OldlYlBhZ2UmLCBXZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50JiBmcmFnbWVudCwgV2ViQ29yZTo6
UmFuZ2UmIHJhbmdlLCBib29sIGlzTW92ZSkgZmluYWwKKyAgICAgICAgeworICAgICAgICAgICAg
aWYgKCFtX2RlbGVnYXRlTWV0aG9kcy5wZXJmb3JtVHdvU3RlcERyb3ApCisgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOworCisgICAgICAgICAgICBhdXRvIHJhbmdlSGFuZGxlID0gSW5qZWN0
ZWRCdW5kbGVSYW5nZUhhbmRsZTo6Z2V0T3JDcmVhdGUoJnJhbmdlKTsKKyAgICAgICAgICAgIGF1
dG8gbm9kZUhhbmRsZSA9IEluamVjdGVkQnVuZGxlTm9kZUhhbmRsZTo6Z2V0T3JDcmVhdGUoJmZy
YWdtZW50KTsKKyAgICAgICAgICAgIHJldHVybiBbbV9jb250cm9sbGVyLT5fZWRpdGluZ0RlbGVn
YXRlLmdldCgpIF93ZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRDb250cm9sbGVyOm1fY29u
dHJvbGxlciBwZXJmb3JtVHdvU3RlcERyb3A6d3JhcHBlcigqbm9kZUhhbmRsZSkgYXREZXN0aW5h
dGlvbjp3cmFwcGVyKCpyYW5nZUhhbmRsZSkgaXNNb3ZlOmlzTW92ZV07CisgICAgICAgIH0KKwog
ICAgICAgICBXS1dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXIgKm1fY29u
dHJvbGxlcjsKICAgICAgICAgY29uc3Qgc3RydWN0IERlbGVnYXRlTWV0aG9kcyB7CiAgICAgICAg
ICAgICBEZWxlZ2F0ZU1ldGhvZHMoUmV0YWluUHRyPGlkIDxXS1dlYlByb2Nlc3NQbHVnSW5FZGl0
aW5nRGVsZWdhdGU+PiBkZWxlZ2F0ZSkKQEAgLTY2Nyw2ICs2NzgsNyBAQCAtICh2b2lkKV9zZXRF
ZGl0aW5nRGVsZWdhdGU6KGlkIDxXS1dlYlByb2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdhdGU+KWVk
aXRpbmdEZWxlZwogICAgICAgICAgICAgICAgICwgd2lsbFdyaXRlVG9QYXN0ZWJvYXJkKFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJQcm9jZXNzUGx1Z0luQnJvd3Nl
ckNvbnRleHRDb250cm9sbGVyOndpbGxXcml0ZVJhbmdlVG9QYXN0ZWJvYXJkOildKQogICAgICAg
ICAgICAgICAgICwgZ2V0UGFzdGVib2FyZERhdGFGb3JSYW5nZShbZGVsZWdhdGUgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJv
bGxlcjpwYXN0ZWJvYXJkRGF0YUZvclJhbmdlOildKQogICAgICAgICAgICAgICAgICwgZGlkV3Jp
dGVUb1Bhc3RlYm9hcmQoW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dl
YlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXJEaWRXcml0ZVRvUGFzdGVib2Fy
ZDopXSkKKyAgICAgICAgICAgICAgICAsIHBlcmZvcm1Ud29TdGVwRHJvcChbZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViUHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0
Q29udHJvbGxlcjpwZXJmb3JtVHdvU3RlcERyb3A6YXREZXN0aW5hdGlvbjppc01vdmU6KV0pCiAg
ICAgICAgICAgICB7CiAgICAgICAgICAgICB9CiAKQEAgLTY3Niw2ICs2ODgsNyBAQCAtICh2b2lk
KV9zZXRFZGl0aW5nRGVsZWdhdGU6KGlkIDxXS1dlYlByb2Nlc3NQbHVnSW5FZGl0aW5nRGVsZWdh
dGU+KWVkaXRpbmdEZWxlZwogICAgICAgICAgICAgYm9vbCB3aWxsV3JpdGVUb1Bhc3RlYm9hcmQ7
CiAgICAgICAgICAgICBib29sIGdldFBhc3RlYm9hcmREYXRhRm9yUmFuZ2U7CiAgICAgICAgICAg
ICBib29sIGRpZFdyaXRlVG9QYXN0ZWJvYXJkOworICAgICAgICAgICAgYm9vbCBwZXJmb3JtVHdv
U3RlcERyb3A7CiAgICAgICAgIH0gbV9kZWxlZ2F0ZU1ldGhvZHM7CiAgICAgfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1
bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9Jbmpl
Y3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuY3BwCmluZGV4IDMwZTJh
OTM2Y2UzMmIzMWU1NjUxNGIzMzA5N2MyNmIzYTg2ZDUzOTYuLjQyMzgzNjlhOTM0NWQ1Y2YwNTRj
MDg4YmMyODUwZmZhNTk4MTM1MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nl
c3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
UGFnZUVkaXRvckNsaWVudC5jcHAKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJXS0J1bmRs
ZUFQSUNhc3QuaCIKICNpbmNsdWRlICJXS1N0cmluZy5oIgogI2luY2x1ZGUgIldlYlBhZ2UuaCIK
KyNpbmNsdWRlIDxXZWJDb3JlL0RvY3VtZW50RnJhZ21lbnQuaD4KICNpbmNsdWRlIDx3dGYvdGV4
dC9XVEZTdHJpbmcuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xNzIsNiArMTcz
LDE2IEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGVQYWdlRWRpdG9yQ2xpZW50OjpnZXRQYXN0ZWJvYXJk
RGF0YUZvclJhbmdlKFdlYlBhZ2UmIHBhZ2UsIFJhCiAgICAgfQogfQogCitib29sIEluamVjdGVk
QnVuZGxlUGFnZUVkaXRvckNsaWVudDo6cGVyZm9ybVR3b1N0ZXBEcm9wKFdlYlBhZ2UmIHBhZ2Us
IERvY3VtZW50RnJhZ21lbnQmIGZyYWdtZW50LCBSYW5nZSYgZGVzdGluYXRpb24sIGJvb2wgaXNN
b3ZlKQoreworICAgIGlmICghbV9jbGllbnQucGVyZm9ybVR3b1N0ZXBEcm9wKQorICAgICAgICBy
ZXR1cm4gZmFsc2U7CisKKyAgICBhdXRvIHJhbmdlSGFuZGxlID0gSW5qZWN0ZWRCdW5kbGVSYW5n
ZUhhbmRsZTo6Z2V0T3JDcmVhdGUoJmRlc3RpbmF0aW9uKTsKKyAgICBhdXRvIG5vZGVIYW5kbGUg
PSBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGU6OmdldE9yQ3JlYXRlKCZmcmFnbWVudCk7CisgICAg
cmV0dXJuIG1fY2xpZW50LnBlcmZvcm1Ud29TdGVwRHJvcCh0b0FQSSgmcGFnZSksIHRvQVBJKG5v
ZGVIYW5kbGUuZ2V0KCkpLCB0b0FQSShyYW5nZUhhbmRsZS5nZXQoKSksIGlzTW92ZSwgbV9jbGll
bnQuYmFzZS5jbGllbnRJbmZvKTsKK30KKwogdm9pZCBJbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JD
bGllbnQ6OmRpZFdyaXRlVG9QYXN0ZWJvYXJkKFdlYlBhZ2UmIHBhZ2UpCiB7CiAgICAgaWYgKG1f
Y2xpZW50LmRpZFdyaXRlVG9QYXN0ZWJvYXJkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5k
bGVQYWdlRWRpdG9yQ2xpZW50LmgKaW5kZXggMzY3NDY4OWVkZDI0NDM1M2U0NjYzZmY5MDQ2YmQx
OTE3YTA2ODlmZi4uNjg5OTQxYTE4ZThkOWU5NGNhNDI2Zjk0MmIxZWI4YTBiM2NmODRiYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZVBhZ2VFZGl0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZUVkaXRvckNsaWVudC5oCkBAIC0zNyw2
ICszNyw3IEBAIHRlbXBsYXRlPD4gc3RydWN0IENsaWVudFRyYWl0czxXS0J1bmRsZVBhZ2VFZGl0
b3JDbGllbnRCYXNlPiB7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIENTU1N0eWxlRGVj
bGFyYXRpb247CitjbGFzcyBEb2N1bWVudEZyYWdtZW50OwogY2xhc3MgTm9kZTsKIGNsYXNzIFJh
bmdlOwogfQpAQCAtNjUsNiArNjYsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgd2lsbFdyaXRlVG9Q
YXN0ZWJvYXJkKFdlYlBhZ2UmLCBXZWJDb3JlOjpSYW5nZSopIGZpbmFsOwogICAgIHZvaWQgZ2V0
UGFzdGVib2FyZERhdGFGb3JSYW5nZShXZWJQYWdlJiwgV2ViQ29yZTo6UmFuZ2UqLCBWZWN0b3I8
U3RyaW5nPiYgcGFzdGVib2FyZFR5cGVzLCBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1
ZmZlcj4+JiBwYXN0ZWJvYXJkRGF0YSkgZmluYWw7CiAgICAgdm9pZCBkaWRXcml0ZVRvUGFzdGVi
b2FyZChXZWJQYWdlJikgZmluYWw7CisgICAgYm9vbCBwZXJmb3JtVHdvU3RlcERyb3AoV2ViUGFn
ZSYsIFdlYkNvcmU6OkRvY3VtZW50RnJhZ21lbnQmLCBXZWJDb3JlOjpSYW5nZSYgZGVzdGluYXRp
b24sIGJvb2wgaXNNb3ZlKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0
b3JDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJFZGl0b3JDbGllbnQuY3BwCmluZGV4IDRhYWIxOTQ1MzVhNDVlNjk3YjE3OWM3M2NjNmZiZmY3
Yzc1MjhmZWQuLmE0YTc5ODQ3NjQwZWU3MDczYThjYWUwNGY2ODE0M2MzZDY3MzMxOGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9y
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkVkaXRvckNsaWVudC5jcHAKQEAgLTIzOSw2ICsyMzksMTEgQEAgdm9pZCBXZWJFZGl0b3JD
bGllbnQ6OmdldENsaWVudFBhc3RlYm9hcmREYXRhRm9yUmFuZ2UoUmFuZ2UqIHJhbmdlLCBWZWN0
b3I8U3RyaW4KICAgICBtX3BhZ2UtPmluamVjdGVkQnVuZGxlRWRpdG9yQ2xpZW50KCkuZ2V0UGFz
dGVib2FyZERhdGFGb3JSYW5nZSgqbV9wYWdlLCByYW5nZSwgcGFzdGVib2FyZFR5cGVzLCBwYXN0
ZWJvYXJkRGF0YSk7CiB9CiAKK2Jvb2wgV2ViRWRpdG9yQ2xpZW50OjpwZXJmb3JtVHdvU3RlcERy
b3AoRG9jdW1lbnRGcmFnbWVudCYgZnJhZ21lbnQsIFJhbmdlJiBkZXN0aW5hdGlvbiwgYm9vbCBp
c01vdmUpCit7CisgICAgcmV0dXJuIG1fcGFnZS0+aW5qZWN0ZWRCdW5kbGVFZGl0b3JDbGllbnQo
KS5wZXJmb3JtVHdvU3RlcERyb3AoKm1fcGFnZSwgZnJhZ21lbnQsIGRlc3RpbmF0aW9uLCBpc01v
dmUpOworfQorCiB2b2lkIFdlYkVkaXRvckNsaWVudDo6cmVnaXN0ZXJVbmRvU3RlcChVbmRvU3Rl
cCYgc3RlcCkKIHsKICAgICAvLyBGSVhNRTogQWRkIGFzc2VydGlvbiB0aGF0IHRoZSBjb21tYW5k
IGJlaW5nIHJlYXBwbGllZCBpcyB0aGUgc2FtZSBjb21tYW5kIHRoYXQgaXMKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50
LmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkVkaXRvckNs
aWVudC5oCmluZGV4IDBmMWRlNzFhYWQ3NTkzZmQyNThmNTk3NTFlOTZhZjRiNTRhZGI5MTQuLjYx
M2RkZTI5NGRiNTRjODRiOGNkYTZmYzhlMjI1Yjc2OWFhZTQwZjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRWRpdG9yQ2xpZW50LmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJFZGl0b3JDbGll
bnQuaApAQCAtMTY4LDYgKzE2OCw3IEBAIHByaXZhdGU6CiAgICAgaW50IHBhc3RlYm9hcmRDaGFu
Z2VDb3VudCgpIGZpbmFsOwogI2VuZGlmCiAKKyAgICBib29sIHBlcmZvcm1Ud29TdGVwRHJvcChX
ZWJDb3JlOjpEb2N1bWVudEZyYWdtZW50JiwgV2ViQ29yZTo6UmFuZ2UmLCBib29sIGlzTW92ZSkg
ZmluYWw7CiAgICAgYm9vbCBzdXBwb3J0c0dsb2JhbFNlbGVjdGlvbigpIGZpbmFsOwogCiAgICAg
V2ViUGFnZSogbV9wYWdlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IGNhYzk0NWU5ZDkzODFhYTM1NDdmNTdjNjY2YzkwZDZiMzQ5OGViYzkuLjY3
MmJhYzNiMWU5ZDQ4NWMyOTFjNGUwZDU0NDE1MDhlOTJmOWUzOTQgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxNy0w
Ni0wOSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBb
aU9TIERuRF0gQWRkIGEgaG9vayB0byBwZXJmb3JtIHR3by1zdGVwIGRyb3BzIGluIGVkaXRhYmxl
IGNvbnRlbnQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE3Mjk5MgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzI1OTAxNzQ+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyAyIG5ldyBBUEkgdGVzdHMg
dG8gY292ZXIgdXNpbmcgdGhlIGluamVjdGVkIGVkaXRpbmcgYnVuZGxlIHRvIG92ZXJyaWRlIHBl
cmZvcm1Ud29TdGVwRHJvcC4KKyAgICAgICAgVGVzdHM6ICBEYXRhSW50ZXJhY3Rpb25UZXN0cy5J
bmplY3RlZEJ1bmRsZU92ZXJyaWRlUGVyZm9ybVR3b1N0ZXBEcm9wCisgICAgICAgICAgICAgICAg
RGF0YUludGVyYWN0aW9uVGVzdHMuSW5qZWN0ZWRCdW5kbGVBbGxvd1BlcmZvcm1Ud29TdGVwRHJv
cAorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvQnVuZGxlRWRp
dGluZ0RlbGVnYXRlUGx1Z0luLm1tOgorICAgICAgICAoLVtCdW5kbGVFZGl0aW5nRGVsZWdhdGVQ
bHVnSW4gd2ViUHJvY2Vzc1BsdWdJbjpkaWRDcmVhdGVCcm93c2VyQ29udGV4dENvbnRyb2xsZXI6
XSk6CisgICAgICAgICgtW0J1bmRsZUVkaXRpbmdEZWxlZ2F0ZVBsdWdJbiBfd2ViUHJvY2Vzc1Bs
dWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlcjpwZXJmb3JtVHdvU3RlcERyb3A6YXREZXN0aW5h
dGlvbjppc01vdmU6XSk6CisKKyAgICAgICAgQWxsb3cgdGhlIEJ1bmRsZU92ZXJyaWRlUGVyZm9y
bVR3b1N0ZXBEcm9wIGJ1bmRsZSBwYXJhbWV0ZXIgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90
IHR3by1zdGVwIGRyb3BzIHNob3VsZAorICAgICAgICBiZSBvdmVycmlkZGVuLiBDdXJyZW50bHks
IHRoaXMgaXMgb3ZlcnJpZGRlbiB0byBqdXN0IHJldHVybiB0cnVlLgorCisgICAgICAgICogVGVz
dFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW06CisgICAgICAgIChU
ZXN0V2ViS2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHA6CisgICAgICAgIChXVFI6OkluamVjdGVkQnVu
ZGxlUGFnZTo6SW5qZWN0ZWRCdW5kbGVQYWdlKToKKwogMjAxNy0wNi0wNSAgV2Vuc29uIEhzaWVo
ICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWZhY3RvciAtW1dlYkl0ZW1Q
cm92aWRlclBhc3RlYm9hcmQgdmFsdWVzRm9yUGFzdGVib2FyZFR5cGU6aW5JdGVtU2V0Ol0gdG8g
Y2hlY2sgcmVhZGFibGUgdHlwZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0MkNvY29hL0J1bmRsZUVkaXRpbmdEZWxlZ2F0ZVBsdWdJbi5tbSBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0J1bmRsZUVkaXRpbmdEZWxlZ2F0ZVBsdWdJ
bi5tbQppbmRleCBmMzc5OTkxYjU0OThmYmUxZjFhMWY5Yjg0ZTJjYmRmOWM5ZWVhZTk2Li5jNjNj
MGE4ZWNmNDQ2MDU3ZDUyZTY0MDUzNmZiMThiZTgyNGNkYjJhIDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9CdW5kbGVFZGl0aW5nRGVsZWdhdGVQbHVn
SW4ubW0KKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvQnVuZGxl
RWRpdGluZ0RlbGVnYXRlUGx1Z0luLm1tCkBAIC00Niw2ICs0Niw3IEBAIEBpbXBsZW1lbnRhdGlv
biBCdW5kbGVFZGl0aW5nRGVsZWdhdGVQbHVnSW4gewogICAgIFJldGFpblB0cjxXS1dlYlByb2Nl
c3NQbHVnSW5Db250cm9sbGVyPiBfcGx1Z0luQ29udHJvbGxlcjsKICAgICBSZXRhaW5QdHI8aWQg
PEJ1bmRsZUVkaXRpbmdEZWxlZ2F0ZVByb3RvY29sPj4gX3JlbW90ZU9iamVjdDsKICAgICBCT09M
IF9lZGl0aW5nRGVsZWdhdGVTaG91bGRJbnNlcnRUZXh0OworICAgIEJPT0wgX3Nob3VsZE92ZXJy
aWRlUGVyZm9ybVR3b1N0ZXBEcm9wOwogfQogCiAtICh2b2lkKXdlYlByb2Nlc3NQbHVnSW46KFdL
V2ViUHJvY2Vzc1BsdWdJbkNvbnRyb2xsZXIgKilwbHVnSW5Db250cm9sbGVyIGRpZENyZWF0ZUJy
b3dzZXJDb250ZXh0Q29udHJvbGxlcjooV0tXZWJQcm9jZXNzUGx1Z0luQnJvd3NlckNvbnRleHRD
b250cm9sbGVyICopYnJvd3NlckNvbnRleHRDb250cm9sbGVyCkBAIC02MSw2ICs2Miw4IEBAIC0g
KHZvaWQpd2ViUHJvY2Vzc1BsdWdJbjooV0tXZWJQcm9jZXNzUGx1Z0luQ29udHJvbGxlciAqKXBs
dWdJbkNvbnRyb2xsZXIgZGlkQ3JlCiAgICAgfSBlbHNlCiAgICAgICAgIF9lZGl0aW5nRGVsZWdh
dGVTaG91bGRJbnNlcnRUZXh0ID0gWUVTOwogCisgICAgX3Nob3VsZE92ZXJyaWRlUGVyZm9ybVR3
b1N0ZXBEcm9wID0gW1twbHVnSW5Db250cm9sbGVyLnBhcmFtZXRlcnMgdmFsdWVGb3JLZXk6QCJC
dW5kbGVPdmVycmlkZVBlcmZvcm1Ud29TdGVwRHJvcCJdIGJvb2xWYWx1ZV07CisKICAgICBfV0tS
ZW1vdGVPYmplY3RJbnRlcmZhY2UgKmludGVyZmFjZSA9IFtfV0tSZW1vdGVPYmplY3RJbnRlcmZh
Y2UgcmVtb3RlT2JqZWN0SW50ZXJmYWNlV2l0aFByb3RvY29sOkBwcm90b2NvbChCdW5kbGVFZGl0
aW5nRGVsZWdhdGVQcm90b2NvbCldOwogICAgIF9yZW1vdGVPYmplY3QgPSBbYnJvd3NlckNvbnRl
eHRDb250cm9sbGVyLl9yZW1vdGVPYmplY3RSZWdpc3RyeSByZW1vdGVPYmplY3RQcm94eVdpdGhJ
bnRlcmZhY2U6aW50ZXJmYWNlXTsKIApAQCAtOTAsNiArOTMsMTEgQEAgLSAodm9pZClfd2ViUHJv
Y2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlckRpZFdyaXRlVG9QYXN0ZWJvYXJkOihX
S1dlYlByb2MKICAgICBbX3JlbW90ZU9iamVjdCBkaWRXcml0ZVRvUGFzdGVib2FyZF07CiB9CiAK
Ky0gKEJPT0wpX3dlYlByb2Nlc3NQbHVnSW5Ccm93c2VyQ29udGV4dENvbnRyb2xsZXI6KFdLV2Vi
UHJvY2Vzc1BsdWdJbkJyb3dzZXJDb250ZXh0Q29udHJvbGxlciAqKWNvbnRyb2xsZXIgcGVyZm9y
bVR3b1N0ZXBEcm9wOihXS1dlYlByb2Nlc3NQbHVnSW5Ob2RlSGFuZGxlICopZnJhZ21lbnQgYXRE
ZXN0aW5hdGlvbjooV0tXZWJQcm9jZXNzUGx1Z0luUmFuZ2VIYW5kbGUgKilkZXN0aW5hdGlvbiBp
c01vdmU6KEJPT0wpaXNNb3ZlCit7CisgICAgcmV0dXJuIF9zaG91bGRPdmVycmlkZVBlcmZvcm1U
d29TdGVwRHJvcDsKK30KKwogQGVuZAogCiAjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlmZiAt
LWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvaW9zL0RhdGFJbnRlcmFjdGlvblRlc3Rz
Lm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMu
bW0KaW5kZXggNWQ5ZGZlNjRkNTJhMDdkYjNlZWU2MDBhY2ZlNDcxMzkwMzY5N2ViNS4uNzUwZGRh
NjE4ZmRjNWRmODMxMDNmZTExMWM5NTI5ZDVhYTZjYWUyNiAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW0KKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9pb3MvRGF0YUludGVyYWN0aW9uVGVzdHMubW0KQEAgLTM3LDYg
KzM3LDcgQEAKICNpbXBvcnQgPFVJS2l0L1VJSW1hZ2UrVUlJdGVtUHJvdmlkZXIuaD4KICNpbXBv
cnQgPFVJS2l0L1VJSXRlbVByb3ZpZGVyX1ByaXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1By
ZWZlcmVuY2VzUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLUHJvY2Vzc1Bvb2xQcml2YXRl
Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KICNp
bXBvcnQgPFdlYktpdC9fV0tQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaD4KIApAQCAtNzExLDYg
KzcxMiw1MiBAQCBURVNUKERhdGFJbnRlcmFjdGlvblRlc3RzLCBPdmVycmlkZURhdGFJbnRlcmFj
dGlvbk9wZXJhdGlvbikKICAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmZpbmlzaGVkTG9h
ZGluZ0RhdGEpOwogfQogCitURVNUKERhdGFJbnRlcmFjdGlvblRlc3RzLCBJbmplY3RlZEJ1bmRs
ZU92ZXJyaWRlUGVyZm9ybVR3b1N0ZXBEcm9wKQoreworICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRp
b24gKmNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfdGVzdF9jb25maWd1
cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJCdW5kbGVFZGl0aW5nRGVsZWdhdGVQbHVn
SW4iXTsKKyAgICBbY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbCBfc2V0T2JqZWN0OkBZRVMgZm9y
QnVuZGxlUGFyYW1ldGVyOkAiQnVuZGxlT3ZlcnJpZGVQZXJmb3JtVHdvU3RlcERyb3AiXTsKKwor
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbl0pOworICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAiYXV0b2ZvY3VzLWNvbnRl
bnRlZGl0YWJsZSJdOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
QCJnZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKSJdOworCisgICAgYXV0byBzaW11bGF0
ZWRJdGVtUHJvdmlkZXIgPSBhZG9wdE5TKFtbVUlJdGVtUHJvdmlkZXIgYWxsb2NdIGluaXRdKTsK
KyAgICBbc2ltdWxhdGVkSXRlbVByb3ZpZGVyIHJlZ2lzdGVyRGF0YVJlcHJlc2VudGF0aW9uRm9y
VHlwZUlkZW50aWZpZXI6KE5TU3RyaW5nICopa1VUVHlwZVVURjhQbGFpblRleHQgb3B0aW9uczpu
aWwgbG9hZEhhbmRsZXI6Xk5TUHJvZ3Jlc3MgKihVSUl0ZW1Qcm92aWRlckRhdGFMb2FkQ29tcGxl
dGlvbkJsb2NrIGNvbXBsZXRpb25CbG9jaykKKyAgICB7CisgICAgICAgIGNvbXBsZXRpb25CbG9j
ayhbQCJIZWxsbyB3b3JsZCIgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2Rpbmdd
LCBuaWwpOworICAgICAgICByZXR1cm4gW05TUHJvZ3Jlc3MgZGlzY3JldGVQcm9ncmVzc1dpdGhU
b3RhbFVuaXRDb3VudDoxMDBdOworICAgIH1dOworCisgICAgYXV0byBkYXRhSW50ZXJhY3Rpb25T
aW11bGF0b3IgPSBhZG9wdE5TKFtbRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIGFsbG9jXSBpbml0
V2l0aFdlYlZpZXc6d2ViVmlldy5nZXQoKV0pOworICAgIFtkYXRhSW50ZXJhY3Rpb25TaW11bGF0
b3Igc2V0RXh0ZXJuYWxJdGVtUHJvdmlkZXJzOkBbIHNpbXVsYXRlZEl0ZW1Qcm92aWRlci5nZXQo
KSBdXTsKKyAgICBbZGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIHJ1bkZyb206Q0dQb2ludE1ha2Uo
MzAwLCA0MDApIHRvOkNHUG9pbnRNYWtlKDEwMCwgMzAwKV07CisKKyAgICBFWFBFQ1RfRVEoMFVM
LCBbd2ViVmlldyBzdHJpbmdCeUV2YWx1YXRpbmdKYXZhU2NyaXB0OkAiZWRpdG9yLnRleHRDb250
ZW50Il0ubGVuZ3RoKTsKK30KKworVEVTVChEYXRhSW50ZXJhY3Rpb25UZXN0cywgSW5qZWN0ZWRC
dW5kbGVBbGxvd1BlcmZvcm1Ud29TdGVwRHJvcCkKK3sKKyAgICBXS1dlYlZpZXdDb25maWd1cmF0
aW9uICpjb25maWd1cmF0aW9uID0gW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3Rlc3RfY29uZmln
dXJhdGlvbldpdGhUZXN0UGx1Z0luQ2xhc3NOYW1lOkAiQnVuZGxlRWRpdGluZ0RlbGVnYXRlUGx1
Z0luIl07CisgICAgW2NvbmZpZ3VyYXRpb24ucHJvY2Vzc1Bvb2wgX3NldE9iamVjdDpATk8gZm9y
QnVuZGxlUGFyYW1ldGVyOkAiQnVuZGxlT3ZlcnJpZGVQZXJmb3JtVHdvU3RlcERyb3AiXTsKKwor
ICAgIGF1dG8gd2ViVmlldyA9IGFkb3B0TlMoW1tUZXN0V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0
aEZyYW1lOkNHUmVjdE1ha2UoMCwgMCwgMzIwLCA1MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJh
dGlvbl0pOworICAgIFt3ZWJWaWV3IGxvYWRUZXN0UGFnZU5hbWVkOkAiYXV0b2ZvY3VzLWNvbnRl
bnRlZGl0YWJsZSJdOworICAgIFt3ZWJWaWV3IHN0cmluZ0J5RXZhbHVhdGluZ0phdmFTY3JpcHQ6
QCJnZXRTZWxlY3Rpb24oKS5yZW1vdmVBbGxSYW5nZXMoKSJdOworCisgICAgYXV0byBzaW11bGF0
ZWRJdGVtUHJvdmlkZXIgPSBhZG9wdE5TKFtbVUlJdGVtUHJvdmlkZXIgYWxsb2NdIGluaXRdKTsK
KyAgICBbc2ltdWxhdGVkSXRlbVByb3ZpZGVyIHJlZ2lzdGVyRGF0YVJlcHJlc2VudGF0aW9uRm9y
VHlwZUlkZW50aWZpZXI6KE5TU3RyaW5nICopa1VUVHlwZVVURjhQbGFpblRleHQgb3B0aW9uczpu
aWwgbG9hZEhhbmRsZXI6Xk5TUHJvZ3Jlc3MgKihVSUl0ZW1Qcm92aWRlckRhdGFMb2FkQ29tcGxl
dGlvbkJsb2NrIGNvbXBsZXRpb25CbG9jaykKKyAgICB7CisgICAgICAgIGNvbXBsZXRpb25CbG9j
ayhbQCJIZWxsbyB3b3JsZCIgZGF0YVVzaW5nRW5jb2Rpbmc6TlNVVEY4U3RyaW5nRW5jb2Rpbmdd
LCBuaWwpOworICAgICAgICByZXR1cm4gW05TUHJvZ3Jlc3MgZGlzY3JldGVQcm9ncmVzc1dpdGhU
b3RhbFVuaXRDb3VudDoxMDBdOworICAgIH1dOworCisgICAgYXV0byBkYXRhSW50ZXJhY3Rpb25T
aW11bGF0b3IgPSBhZG9wdE5TKFtbRGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIGFsbG9jXSBpbml0
V2l0aFdlYlZpZXc6d2ViVmlldy5nZXQoKV0pOworICAgIFtkYXRhSW50ZXJhY3Rpb25TaW11bGF0
b3Igc2V0RXh0ZXJuYWxJdGVtUHJvdmlkZXJzOkBbIHNpbXVsYXRlZEl0ZW1Qcm92aWRlci5nZXQo
KSBdXTsKKyAgICBbZGF0YUludGVyYWN0aW9uU2ltdWxhdG9yIHJ1bkZyb206Q0dQb2ludE1ha2Uo
MzAwLCA0MDApIHRvOkNHUG9pbnRNYWtlKDEwMCwgMzAwKV07CisKKyAgICBFWFBFQ1RfV0tfU1RS
RVEoIkhlbGxvIHdvcmxkIiwgW3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpA
ImVkaXRvci50ZXh0Q29udGVudCJdLlVURjhTdHJpbmcpOworfQorCiBURVNUKERhdGFJbnRlcmFj
dGlvblRlc3RzLCBBdHRhY2htZW50RWxlbWVudEl0ZW1Qcm92aWRlcnMpCiB7CiAgICAgUmV0YWlu
UHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBbV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbiBfdGVzdF9jb25maWd1cmF0aW9uV2l0aFRlc3RQbHVnSW5DbGFzc05hbWU6QCJC
dW5kbGVFZGl0aW5nRGVsZWdhdGVQbHVnSW4iXTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcCBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGVQYWdlLmNwcAppbmRl
eCA2MWM1OWIyZTM2YWM0MzEyODc2MGY4NmJhNmZlZGE0MmM5NGZmODM5Li4wNmZlOGE3YjYzMGUw
YmJiYzcxNjY4NzgwZTk1ZTU3MzgzYWM4NTEyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlUGFnZS5jcHAKKysrIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZVBhZ2UuY3BwCkBA
IC0zNzIsNyArMzcyLDggQEAgSW5qZWN0ZWRCdW5kbGVQYWdlOjpJbmplY3RlZEJ1bmRsZVBhZ2Uo
V0tCdW5kbGVQYWdlUmVmIHBhZ2UpCiAgICAgICAgIGRpZENoYW5nZVNlbGVjdGlvbiwKICAgICAg
ICAgMCwgLyogd2lsbFdyaXRlVG9QYXN0ZWJvYXJkICovCiAgICAgICAgIDAsIC8qIGdldFBhc3Rl
Ym9hcmREYXRhRm9yUmFuZ2UgKi8KLSAgICAgICAgMCAgLyogZGlkV3JpdGVUb1Bhc3RlYm9hcmQg
Ki8KKyAgICAgICAgMCwgLyogZGlkV3JpdGVUb1Bhc3RlYm9hcmQgKi8KKyAgICAgICAgMCwgLyog
cGVyZm9ybVR3b1N0ZXBEcm9wICovCiAgICAgfTsKICAgICBXS0J1bmRsZVBhZ2VTZXRFZGl0b3JD
bGllbnQobV9wYWdlLCAmZWRpdG9yQ2xpZW50LmJhc2UpOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>