<?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>171341</bug_id>
          
          <creation_ts>2017-04-26 13:52:16 -0700</creation_ts>
          <short_desc>WebItemProviderPasteboard should not synchronously load provided data</short_desc>
          <delta_ts>2017-05-02 17:32:26 -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>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>171320</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>bdakin</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1301760</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-26 13:52:16 -0700</bug_when>
    <thetext>&lt;rdar://problem/31614010&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301776</commentid>
    <comment_count>1</comment_count>
      <attachid>308287</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-26 14:55:28 -0700</bug_when>
    <thetext>Created attachment 308287
Depends on &lt;https://bugs.webkit.org/show_bug.cgi?id=171320&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301931</commentid>
    <comment_count>2</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2017-04-26 20:48:37 -0700</bug_when>
    <thetext>Committed &lt;https://trac.webkit.org/changeset/215840&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308287</attachid>
            <date>2017-04-26 14:55:28 -0700</date>
            <delta_ts>2017-04-26 16:08:24 -0700</delta_ts>
            <desc>Depends on &lt;https://bugs.webkit.org/show_bug.cgi?id=171320&gt;</desc>
            <filename>bug-171341-20170426145527.patch</filename>
            <type>text/plain</type>
            <size>37536</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1Nzg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMThiYjU4NjU4MmZkYzcz
NTQ4NjY4MjAzNzNkMTExYTE0NDViNTZlNC4uMTNkNzUzODcyZGJhYWRmMzk4NmE2NzcxZmMyM2E1
MTc0NjdjNmU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDY0IEBACiAyMDE3LTA0LTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCisgICAgICAgIFdlYkl0ZW1Qcm92
aWRlclBhc3RlYm9hcmQgc2hvdWxkIG5vdCBzeW5jaHJvbm91c2x5IGxvYWQgcHJvdmlkZWQgZGF0
YQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMzQx
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zMTYxNDAxMD4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcnMgV2ViSXRlbVByb3ZpZGVyUGFz
dGVib2FyZCB0byBub3QgcmVxdWlyZSBhc3luY2hyb25vdXNseSBsb2FkaW5nIGl0ZW0gcHJvdmlk
ZXIgZGF0YS4gVG8gYWNjb21wbGlzaCB0aGlzLAorICAgICAgICB3ZSBlbnN1cmUgdGhhdCBiZWZv
cmUgcGVyZm9ybWluZyBkYXRhIGludGVyYWN0aW9uLCB0aGUgVVRJIHR5cGUgdGhhdCB0aGUgZGF0
YSBvcGVyYXRpb24gdGFyZ2V0IHNob3VsZCBjb25zdW1lIGlzCisgICAgICAgIHByb3BhZ2F0ZWQg
dG8gdGhlIFVJIHByb2Nlc3MgcHJpb3IgdG8gdGhlIHdlYiBwcm9jZXNzIHJlY2VpdmluZyB0aGUg
c2lnbmFsIGZyb20gdGhlIFVJIHByb2Nlc3MgdG8gYmVnaW4gdGhlCisgICAgICAgIGRhdGEgb3Bl
cmF0aW9uIGl0c2VsZi4gVGhpcyBpbmZvcm1hdGlvbiBpcyBzZW50IHZpYSBXZWJQbGF0Zm9ybVN0
cmF0ZWdpZXM6OnVwZGF0ZVByZWZlcnJlZFR5cGVJZGVudGlmaWVycywgYSBuZXcKKyAgICAgICAg
cGFzdGVib2FyZCBoZWxwZXIgZnVuY3Rpb24uCisKKyAgICAgICAgKiBwYWdlL0RyYWdDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpEcmFnQ29udHJvbGxl
cik6CisgICAgICAgIChXZWJDb3JlOjpkcmFnSXNIYW5kbGVkQnlEb2N1bWVudCk6CisgICAgICAg
IChXZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6cGVyZm9ybURyYWdPcGVyYXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xsZXI6OmRyYWdFbnRlcmVkT3JVcGRhdGVkKToKKyAgICAg
ICAgKFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjp1cGRhdGVQcmVmZXJyZWRUeXBlSWRlbnRpZmll
cnNGb3JEcmFnSGFuZGxpbmdNZXRob2QpOgorICAgICAgICAoV2ViQ29yZTo6RHJhZ0NvbnRyb2xs
ZXI6OnRyeURvY3VtZW50RHJhZyk6CisKKyAgICAgICAgR2l2ZSBEcmFnSGFuZGxpbmdNZXRob2Qg
YSByaWNoZXIgcmVwcmVzZW50YXRpb24gb2Ygd2hhdCB0eXBlIG9mIGFjdGlvbiB3aWxsIGJlIHBl
cmZvcm1lZC4gRHJhZ0NvbnRyb2xsZXI6OgorICAgICAgICB1cGRhdGVQcmVmZXJyZWRUeXBlSWRl
bnRpZmllcnNGb3JEcmFnSGFuZGxpbmdNZXRob2QgdXNlcyB0aGlzIHRvIGRldGVybWluZSB3aGF0
IGtpbmRzIG9mIFVUSXMgYXJlIGFjY2VwdGFibGUgZm9yCisgICAgICAgIHRoZSBjdXJyZW50IGRy
b3Agc2Vzc2lvbi4KKworICAgICAgICAqIHBhZ2UvRHJhZ0NvbnRyb2xsZXIuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkRyYWdDb250cm9sbGVyOjpkb2N1bWVudElzSGFuZGxpbmdOb25EZWZhdWx0RHJh
Zyk6CisgICAgICAgICogcGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW06CisgICAgICAgIChX
ZWJDb3JlOjpEcmFnQ29udHJvbGxlcjo6dXBkYXRlUHJlZmVycmVkVHlwZUlkZW50aWZpZXJzRm9y
RHJhZ0hhbmRsaW5nTWV0aG9kKToKKworICAgICAgICBVcGRhdGVzIHRoZSBkYXRhIGludGVyYWN0
aW9uIHBhc3RlYm9hcmQncyBsaXN0IG9mIHByZWZlcnJlZCB0eXBlIGlkZW50aWZpZXJzIGl0IHNo
b3VsZCBsb2FkIHVwb24gZGF0YSBvcGVyYXRpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9EcmFn
RGF0YS5oOgorICAgICAgICAqIHBsYXRmb3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5oOgorICAgICAg
ICAqIHBsYXRmb3JtL1BsYXRmb3JtUGFzdGVib2FyZC5oOgorICAgICAgICAqIHBsYXRmb3JtL2lv
cy9BYnN0cmFjdFBhc3RlYm9hcmQuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvUGxhdGZvcm1Q
YXN0ZWJvYXJkSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1QYXN0ZWJvYXJkOjp1
cGRhdGVQcmVmZXJyZWRUeXBlSWRlbnRpZmllcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9X
ZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkLm1tOgorCisgICAgICAgIEludHJvZHVjZSBfcHJlZmVy
cmVkVHlwZUlkZW50aWZpZXJzLCB3aGljaCAtZG9BZnRlckxvYWRpbmdQcm92aWRlZENvbnRlbnRJ
bnRvRmlsZVVSTHM6IHVzZXMgYXMgYSBoaW50IHdoZW4KKyAgICAgICAgZGV0ZXJtaW5pbmcgd2hp
Y2ggVVRJIHRvIGxvYWQgZm9yIGFuIGl0ZW0gcHJvdmlkZXIuIEluIHRoZSBhYnNlbmNlIG9mIHBy
ZWZlcnJlZCB0eXBlIGlkZW50aWZpZXJzLCB0aGUgZGVmYXVsdAorICAgICAgICBiZWhhdmlvciBp
cyB0byB1c2UgdGhlIGhpZ2hlc3QgZmlkZWxpdHkgdHlwZSBhZGhlcmluZyB0byAicHVibGljLmNv
bnRlbnQiLgorCisgICAgICAgICgtW1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQgaW5pdF0pOgor
ICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHVwZGF0ZVByZWZlcnJlZFR5cGVJ
ZGVudGlmaWVyczpdKToKKyAgICAgICAgKC1bV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCBzZXRJ
dGVtUHJvdmlkZXJzOl0pOgorICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIGRh
dGFGb3JQYXN0ZWJvYXJkVHlwZTppbkl0ZW1TZXQ6XSk6CisgICAgICAgICgtW1dlYkl0ZW1Qcm92
aWRlclBhc3RlYm9hcmQgdmFsdWVzRm9yUGFzdGVib2FyZFR5cGU6aW5JdGVtU2V0Ol0pOgorCisg
ICAgICAgIFJlbW92ZSBjYWxscyB0byAtY3JlYXRlT2JqZWN0T2ZDbGFzczogYW5kIC1jb3B5RGF0
YVJlcHJlc2VudGF0aW9uOi4gSW5zdGVhZCwgcmVseSBzb2xlbHkgb24gdGhlIGxvYWRlZCBmaWxl
IFVSTAorICAgICAgICB0byByZWFkIGFuZCBpbml0aWFsaXplIGRhdGEgYW5kIG9iamVjdHMgZnJv
bSB0aGUgcGFzdGVib2FyZC4KKworICAgICAgICAoLVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJk
IGRvQWZ0ZXJMb2FkaW5nUHJvdmlkZWRDb250ZW50SW50b0ZpbGVVUkxzOl0pOgorICAgICAgICAo
LVtXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIF90cnlUb0NyZWF0ZU9iamVjdE9mQ2xhc3M6dXNp
bmdQcm92aWRlcjpdKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvRHJhZ0RhdGFN
YWMubW06CisgICAgICAgIChXZWJDb3JlOjpEcmFnRGF0YTo6dXBkYXRlUHJlZmVycmVkVHlwZUlk
ZW50aWZpZXJzKToKKworMjAxNy0wNC0yNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFw
cGxlLmNvbT4KKwogICAgICAgICBXZWJJdGVtUHJvdmlkZXJQYXN0ZWJvYXJkIHNob3VsZCBmZXRj
aCBwcmVsb2FkZWQgYXNzZXRzIGZyb20gZGlzayB3aGVuIHBvc3NpYmxlCiAgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzEzMjAKICAgICAgICAgPHJkYXI6
Ly9wcm9ibGVtLzMxNjE0MDEwPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdC9tYWMvQ2hhbmdlTG9nCmluZGV4IDViMjI0MjQ2OGE2NjMxNWNi
ODNjYjdmZjAxMjAwNzZkMzdkNzhkYzMuLjk3MTY0MTljMTRlMjk3OTU2NWJkMmI3NmRiNDUyYmQw
MmYyMzA2MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvbWFjL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L21hYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0wNC0yNiAg
V2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJJdGVt
UHJvdmlkZXJQYXN0ZWJvYXJkIHNob3VsZCBub3Qgc3luY2hyb25vdXNseSBsb2FkIHByb3ZpZGVk
IGRhdGEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
MTM0MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzE2MTQwMTA+CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkcyBjbGllbnQtbGF5ZXIgcGx1bWJp
bmcgZm9yIHVwZGF0ZVByZWZlcnJlZFR5cGVJZGVudGlmaWVycy4gU2VlIFdlYkNvcmUgQ2hhbmdl
TG9nIGZvciBtb3JlIGRldGFpbHMuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0
Zm9ybVN0cmF0ZWdpZXMuaDoKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMubW06CisgICAgICAgIChXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnVwZGF0ZVByZWZl
cnJlZFR5cGVJZGVudGlmaWVycyk6CisKIDIwMTctMDQtMjUgIEJyZW50IEZ1bGdoYW0gIDxiZnVs
Z2hhbUBhcHBsZS5jb20+CiAKICAgICAgICAgTGltaXQgYWxsb3dlZCBzaXplIG9mIGRvY3VtZW50
LnRpdGxlIHRvIGF2b2lkIGxvY2tpbmcgV2ViS2l0IGNsaWVudHMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBiYzE0
NDcwMjMwMDk2NzBjNTJhZmJiMGUzNWM5ODliNDgzMTM3NGJjLi5kYzk0ZDBiZGUyMDExYzA0YjAy
YjUwNmU2OThkZGUzMWEwZjg0ZTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTct
MDQtMjYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAg
V2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZCBzaG91bGQgbm90IHN5bmNocm9ub3VzbHkgbG9hZCBw
cm92aWRlZCBkYXRhCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzEzNDEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzMxNjE0MDEwPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZHMgcGx1bWJpbmcgZm9y
IHVwZGF0ZVByZWZlcnJlZFR5cGVJZGVudGlmaWVycyB0aHJvdWdoIHRoZSBXZWJQYXN0ZWJvYXJk
UHJveHkuIFRoaXMgYWxsb3dzIHRoZSB3ZWIgcHJvY2VzcyB0bworICAgICAgICBzaWduYWwgdG8g
dGhlIFVJIHByb2Nlc3Mgd2hhdCBVVElzIHRoZSBjdXJyZW50IGRyb3AgdGFyZ2V0IHNob3VsZCBh
Y2NlcHQgYW5kIGxvYWQuIFNlZSBXZWJDb3JlIENoYW5nZUxvZyBmb3IgbW9yZQorICAgICAgICBk
ZXRhaWxzLgorCisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQcm94eUNv
Y29hLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJQYXN0ZWJvYXJkUHJveHk6OnVwZGF0ZVByZWZl
cnJlZFR5cGVJZGVudGlmaWVycyk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQ
cm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMu
aW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0
ZWdpZXMuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OnVwZGF0
ZVByZWZlcnJlZFR5cGVJZGVudGlmaWVycyk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKwogMjAxNy0wNC0yNSAgV2Vuc29uIEhz
aWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBzcGVj
dWxhdGl2ZSBidWlsZCBmaXgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0Nv
bnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5jcHAKaW5k
ZXggZDczOTQ4ZjZjNmVjMTY4MjJkOWI2ODcxMzZhNWY0MzQ3ODliOGQwYS4uNjU3ZGIzMzRiYjlk
ZmJkMjc3YTcwNzE2YTk1YjM0YWU2NmJhMTdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGFnZS9EcmFnQ29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29u
dHJvbGxlci5jcHAKQEAgLTExOSw3ICsxMTksNyBAQCBEcmFnQ29udHJvbGxlcjo6RHJhZ0NvbnRy
b2xsZXIoUGFnZSYgcGFnZSwgRHJhZ0NsaWVudCYgY2xpZW50KQogICAgIDogbV9wYWdlKHBhZ2Up
CiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX251bWJlck9mSXRlbXNUb0JlQWNjZXB0
ZWQoMCkKLSAgICAsIG1fZG9jdW1lbnREcmFnSGFuZGxpbmdNZXRob2QoRHJhZ0hhbmRsaW5nTWV0
aG9kOjpOb25lKQorICAgICwgbV9kcmFnSGFuZGxpbmdNZXRob2QoRHJhZ0hhbmRsaW5nTWV0aG9k
OjpOb25lKQogICAgICwgbV9kcmFnRGVzdGluYXRpb25BY3Rpb24oRHJhZ0Rlc3RpbmF0aW9uQWN0
aW9uTm9uZSkKICAgICAsIG1fZHJhZ1NvdXJjZUFjdGlvbihEcmFnU291cmNlQWN0aW9uTm9uZSkK
ICAgICAsIG1fZGlkSW5pdGlhdGVEcmFnKGZhbHNlKQpAQCAtMjIwLDYgKzIyMCwxNyBAQCBEcmFn
T3BlcmF0aW9uIERyYWdDb250cm9sbGVyOjpkcmFnVXBkYXRlZChjb25zdCBEcmFnRGF0YSYgZHJh
Z0RhdGEpCiAgICAgcmV0dXJuIGRyYWdFbnRlcmVkT3JVcGRhdGVkKGRyYWdEYXRhKTsKIH0KIAor
aW5saW5lIHN0YXRpYyBib29sIGRyYWdJc0hhbmRsZWRCeURvY3VtZW50KERyYWdDb250cm9sbGVy
OjpEcmFnSGFuZGxpbmdNZXRob2QgZHJhZ0hhbmRsaW5nTWV0aG9kKQoreworICAgIGlmIChkcmFn
SGFuZGxpbmdNZXRob2QgPT0gRHJhZ0NvbnRyb2xsZXI6OkRyYWdIYW5kbGluZ01ldGhvZDo6Tm9u
ZSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGRyYWdIYW5kbGluZ01ldGhvZCA9
PSBEcmFnQ29udHJvbGxlcjo6RHJhZ0hhbmRsaW5nTWV0aG9kOjpQYWdlTG9hZCkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworCisgICAgcmV0dXJuIHRydWU7Cit9CisKIGJvb2wgRHJhZ0NvbnRyb2xs
ZXI6OnBlcmZvcm1EcmFnT3BlcmF0aW9uKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSkKIHsKICAg
ICBtX2RvY3VtZW50VW5kZXJNb3VzZSA9IG1fcGFnZS5tYWluRnJhbWUoKS5kb2N1bWVudEF0UG9p
bnQoZHJhZ0RhdGEuY2xpZW50UG9zaXRpb24oKSk7CkBAIC0yMjgsNyArMjM5LDcgQEAgYm9vbCBE
cmFnQ29udHJvbGxlcjo6cGVyZm9ybURyYWdPcGVyYXRpb24oY29uc3QgRHJhZ0RhdGEmIGRyYWdE
YXRhKQogICAgIGlmIChtX2RvY3VtZW50VW5kZXJNb3VzZSkKICAgICAgICAgc2hvdWxkT3BlbkV4
dGVybmFsVVJMc1BvbGljeSA9IG1fZG9jdW1lbnRVbmRlck1vdXNlLT5zaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUoKTsKIAotICAgIGlmICgobV9kcmFnRGVzdGluYXRpb25B
Y3Rpb24gJiBEcmFnRGVzdGluYXRpb25BY3Rpb25ESFRNTCkgJiYgbV9kb2N1bWVudERyYWdIYW5k
bGluZ01ldGhvZCAhPSBEcmFnSGFuZGxpbmdNZXRob2Q6Ok5vbmUpIHsKKyAgICBpZiAoKG1fZHJh
Z0Rlc3RpbmF0aW9uQWN0aW9uICYgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uREhUTUwpICYmIGRyYWdJ
c0hhbmRsZWRCeURvY3VtZW50KG1fZHJhZ0hhbmRsaW5nTWV0aG9kKSkgewogICAgICAgICBtX2Ns
aWVudC53aWxsUGVyZm9ybURyYWdEZXN0aW5hdGlvbkFjdGlvbihEcmFnRGVzdGluYXRpb25BY3Rp
b25ESFRNTCwgZHJhZ0RhdGEpOwogICAgICAgICBSZWY8TWFpbkZyYW1lPiBtYWluRnJhbWUobV9w
YWdlLm1haW5GcmFtZSgpKTsKICAgICAgICAgYm9vbCBwcmV2ZW50ZWREZWZhdWx0ID0gZmFsc2U7
CkBAIC0yODMsNiArMjk0LDcgQEAgRHJhZ09wZXJhdGlvbiBEcmFnQ29udHJvbGxlcjo6ZHJhZ0Vu
dGVyZWRPclVwZGF0ZWQoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogewogICAgIG1vdXNlTW92
ZWRJbnRvRG9jdW1lbnQobV9wYWdlLm1haW5GcmFtZSgpLmRvY3VtZW50QXRQb2ludChkcmFnRGF0
YS5jbGllbnRQb3NpdGlvbigpKSk7CiAKKyAgICBtX3ByZWZlcnJlZFR5cGVJZGVudGlmaWVyc1Rv
TG9hZCA9IHsgfTsKICAgICBtX2RyYWdEZXN0aW5hdGlvbkFjdGlvbiA9IGRyYWdEYXRhLmRyYWdE
ZXN0aW5hdGlvbkFjdGlvbigpOwogICAgIGlmIChtX2RyYWdEZXN0aW5hdGlvbkFjdGlvbiA9PSBE
cmFnRGVzdGluYXRpb25BY3Rpb25Ob25lKSB7CiAgICAgICAgIGNsZWFyRHJhZ0NhcmV0KCk7IC8v
IEZJWE1FOiBXaHkgbm90IGNhbGwgbW91c2VNb3ZlZEludG9Eb2N1bWVudChudWxscHRyKT8KQEAg
LTI5MCw5ICszMDIsMTQgQEAgRHJhZ09wZXJhdGlvbiBEcmFnQ29udHJvbGxlcjo6ZHJhZ0VudGVy
ZWRPclVwZGF0ZWQoY29uc3QgRHJhZ0RhdGEmIGRyYWdEYXRhKQogICAgIH0KIAogICAgIERyYWdP
cGVyYXRpb24gZHJhZ09wZXJhdGlvbiA9IERyYWdPcGVyYXRpb25Ob25lOwotICAgIG1fZG9jdW1l
bnREcmFnSGFuZGxpbmdNZXRob2QgPSB0cnlEb2N1bWVudERyYWcoZHJhZ0RhdGEsIG1fZHJhZ0Rl
c3RpbmF0aW9uQWN0aW9uLCBkcmFnT3BlcmF0aW9uKTsKLSAgICBpZiAobV9kb2N1bWVudERyYWdI
YW5kbGluZ01ldGhvZCA9PSBEcmFnSGFuZGxpbmdNZXRob2Q6Ok5vbmUgJiYgKG1fZHJhZ0Rlc3Rp
bmF0aW9uQWN0aW9uICYgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uTG9hZCkpCisgICAgbV9kcmFnSGFu
ZGxpbmdNZXRob2QgPSB0cnlEb2N1bWVudERyYWcoZHJhZ0RhdGEsIG1fZHJhZ0Rlc3RpbmF0aW9u
QWN0aW9uLCBkcmFnT3BlcmF0aW9uKTsKKyAgICBpZiAobV9kcmFnSGFuZGxpbmdNZXRob2QgPT0g
RHJhZ0hhbmRsaW5nTWV0aG9kOjpOb25lICYmIChtX2RyYWdEZXN0aW5hdGlvbkFjdGlvbiAmIERy
YWdEZXN0aW5hdGlvbkFjdGlvbkxvYWQpKSB7CiAgICAgICAgIGRyYWdPcGVyYXRpb24gPSBvcGVy
YXRpb25Gb3JMb2FkKGRyYWdEYXRhKTsKKyAgICAgICAgaWYgKGRyYWdPcGVyYXRpb24gIT0gRHJh
Z09wZXJhdGlvbk5vbmUpCisgICAgICAgICAgICBtX2RyYWdIYW5kbGluZ01ldGhvZCA9IERyYWdI
YW5kbGluZ01ldGhvZDo6UGFnZUxvYWQ7CisgICAgfQorCisgICAgdXBkYXRlUHJlZmVycmVkVHlw
ZUlkZW50aWZpZXJzRm9yRHJhZ0hhbmRsaW5nTWV0aG9kKG1fZHJhZ0hhbmRsaW5nTWV0aG9kLCBk
cmFnRGF0YSk7CiAgICAgcmV0dXJuIGRyYWdPcGVyYXRpb247CiB9CiAKQEAgLTMzMSw2ICszNDgs
MTQgQEAgc3RhdGljIEVsZW1lbnQqIGVsZW1lbnRVbmRlck1vdXNlKERvY3VtZW50KiBkb2N1bWVu
dFVuZGVyTW91c2UsIGNvbnN0IEludFBvaW50JgogICAgIHJldHVybiBkb3duY2FzdDxFbGVtZW50
Pihub2RlKTsKIH0KIAorI2lmICFFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKKwordm9pZCBEcmFn
Q29udHJvbGxlcjo6dXBkYXRlUHJlZmVycmVkVHlwZUlkZW50aWZpZXJzRm9yRHJhZ0hhbmRsaW5n
TWV0aG9kKERyYWdIYW5kbGluZ01ldGhvZCwgY29uc3QgRHJhZ0RhdGEmKSBjb25zdAoreworfQor
CisjZW5kaWYKKwogRHJhZ0NvbnRyb2xsZXI6OkRyYWdIYW5kbGluZ01ldGhvZCBEcmFnQ29udHJv
bGxlcjo6dHJ5RG9jdW1lbnREcmFnKGNvbnN0IERyYWdEYXRhJiBkcmFnRGF0YSwgRHJhZ0Rlc3Rp
bmF0aW9uQWN0aW9uIGFjdGlvbk1hc2ssIERyYWdPcGVyYXRpb24mIGRyYWdPcGVyYXRpb24pCiB7
CiAgICAgaWYgKCFtX2RvY3VtZW50VW5kZXJNb3VzZSkKQEAgLTM2NSw3ICszOTAsNyBAQCBEcmFn
Q29udHJvbGxlcjo6RHJhZ0hhbmRsaW5nTWV0aG9kIERyYWdDb250cm9sbGVyOjp0cnlEb2N1bWVu
dERyYWcoY29uc3QgRHJhZ0RhdAogICAgIGlmICgoYWN0aW9uTWFzayAmIERyYWdEZXN0aW5hdGlv
bkFjdGlvbkVkaXQpICYmIGNhblByb2Nlc3NEcmFnKGRyYWdEYXRhKSkgewogICAgICAgICBpZiAo
ZHJhZ0RhdGEuY29udGFpbnNDb2xvcigpKSB7CiAgICAgICAgICAgICBkcmFnT3BlcmF0aW9uID0g
RHJhZ09wZXJhdGlvbkdlbmVyaWM7Ci0gICAgICAgICAgICByZXR1cm4gRHJhZ0hhbmRsaW5nTWV0
aG9kOjpEZWZhdWx0OworICAgICAgICAgICAgcmV0dXJuIERyYWdIYW5kbGluZ01ldGhvZDo6U2V0
Q29sb3I7CiAgICAgICAgIH0KIAogICAgICAgICBJbnRQb2ludCBwb2ludCA9IGZyYW1lVmlldy0+
d2luZG93VG9Db250ZW50cyhkcmFnRGF0YS5jbGllbnRQb3NpdGlvbigpKTsKQEAgLTQwOCw4ICs0
MzMsMTQgQEAgRHJhZ0NvbnRyb2xsZXI6OkRyYWdIYW5kbGluZ01ldGhvZCBEcmFnQ29udHJvbGxl
cjo6dHJ5RG9jdW1lbnREcmFnKGNvbnN0IERyYWdEYXQKICAgICAgICAgICAgIC8vIGJlIGxvYWRl
ZCBpbnRvIHRoZSB2aWV3IHRoZSBudW1iZXIgb2YgZHJhZ2dlZCBpdGVtcyBpcyAxLgogICAgICAg
ICAgICAgbV9udW1iZXJPZkl0ZW1zVG9CZUFjY2VwdGVkID0gbnVtYmVyT2ZGaWxlcyAhPSAxID8g
MCA6IDE7CiAgICAgICAgIH0KLSAgICAgICAgCi0gICAgICAgIHJldHVybiBEcmFnSGFuZGxpbmdN
ZXRob2Q6OkRlZmF1bHQ7CisKKyAgICAgICAgaWYgKG1fZmlsZUlucHV0RWxlbWVudFVuZGVyTW91
c2UpCisgICAgICAgICAgICByZXR1cm4gRHJhZ0hhbmRsaW5nTWV0aG9kOjpVcGxvYWRGaWxlOwor
CisgICAgICAgIGlmIChtX3BhZ2UuZHJhZ0NhcmV0Q29udHJvbGxlcigpLmlzQ29udGVudFJpY2hs
eUVkaXRhYmxlKCkpCisgICAgICAgICAgICByZXR1cm4gRHJhZ0hhbmRsaW5nTWV0aG9kOjpFZGl0
UmljaFRleHQ7CisKKyAgICAgICAgcmV0dXJuIERyYWdIYW5kbGluZ01ldGhvZDo6RWRpdFBsYWlu
VGV4dDsKICAgICB9CiAgICAgCiAgICAgLy8gV2UgYXJlIG5vdCBvdmVyIGFuIGVkaXRhYmxlIHJl
Z2lvbi4gTWFrZSBzdXJlIHdlJ3JlIGNsZWFyaW5nIGFueSBwcmlvciBkcmFnIGN1cnNvci4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRHJhZ0NvbnRyb2xsZXIuaAppbmRleCAxMmY4YzNkNGEwYTczNTFlYzAwNjRl
MjkzYTIyZTU4ODMwY2YxMTE2Li42Y2M1MThiZThhODkwYzBmNWE0YTY4MTZhYzM4NmYwZjcwZmNk
ODQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RyYWdDb250cm9sbGVyLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9EcmFnQ29udHJvbGxlci5oCkBAIC03OSw4ICs3OSw4IEBA
IHN0cnVjdCBEcmFnU3RhdGU7CiAgICAgICAgIGNvbnN0IEludFBvaW50JiBkcmFnT2Zmc2V0KCkg
Y29uc3QgeyByZXR1cm4gbV9kcmFnT2Zmc2V0OyB9CiAgICAgICAgIERyYWdTb3VyY2VBY3Rpb24g
ZHJhZ1NvdXJjZUFjdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1fZHJhZ1NvdXJjZUFjdGlvbjsgfQog
Ci0gICAgICAgIGVudW0gY2xhc3MgRHJhZ0hhbmRsaW5nTWV0aG9kIHsgTm9uZSwgRGVmYXVsdCwg
Tm9uRGVmYXVsdCB9OwotICAgICAgICBib29sIGRvY3VtZW50SXNIYW5kbGluZ05vbkRlZmF1bHRE
cmFnKCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudERyYWdIYW5kbGluZ01ldGhvZCA9PSBEcmFn
SGFuZGxpbmdNZXRob2Q6Ok5vbkRlZmF1bHQ7IH0KKyAgICAgICAgZW51bSBjbGFzcyBEcmFnSGFu
ZGxpbmdNZXRob2QgeyBOb25lLCBFZGl0UGxhaW5UZXh0LCBFZGl0UmljaFRleHQsIFVwbG9hZEZp
bGUsIFBhZ2VMb2FkLCBTZXRDb2xvciwgTm9uRGVmYXVsdCB9OworICAgICAgICBib29sIGRvY3Vt
ZW50SXNIYW5kbGluZ05vbkRlZmF1bHREcmFnKCkgY29uc3QgeyByZXR1cm4gbV9kcmFnSGFuZGxp
bmdNZXRob2QgPT0gRHJhZ0hhbmRsaW5nTWV0aG9kOjpOb25EZWZhdWx0OyB9CiAgICAgICAgIERv
Y3VtZW50KiBkb2N1bWVudFVuZGVyTW91c2UoKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50VW5k
ZXJNb3VzZS5nZXQoKTsgfQogICAgICAgICBEcmFnRGVzdGluYXRpb25BY3Rpb24gZHJhZ0Rlc3Rp
bmF0aW9uQWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9kcmFnRGVzdGluYXRpb25BY3Rpb247IH0K
ICAgICAgICAgRHJhZ1NvdXJjZUFjdGlvbiBkZWxlZ2F0ZURyYWdTb3VyY2VBY3Rpb24oY29uc3Qg
SW50UG9pbnQmIHJvb3RWaWV3UG9pbnQpOwpAQCAtMTAwLDYgKzEwMCw3IEBAIHN0cnVjdCBEcmFn
U3RhdGU7CiAgICAgICAgIHN0YXRpYyBjb25zdCBmbG9hdCBEcmFnSW1hZ2VBbHBoYTsKIAogICAg
IHByaXZhdGU6CisgICAgICAgIHZvaWQgdXBkYXRlUHJlZmVycmVkVHlwZUlkZW50aWZpZXJzRm9y
RHJhZ0hhbmRsaW5nTWV0aG9kKERyYWdIYW5kbGluZ01ldGhvZCwgY29uc3QgRHJhZ0RhdGEmKSBj
b25zdDsKICAgICAgICAgYm9vbCBkaXNwYXRjaFRleHRJbnB1dEV2ZW50Rm9yKEZyYW1lKiwgY29u
c3QgRHJhZ0RhdGEmKTsKICAgICAgICAgYm9vbCBjYW5Qcm9jZXNzRHJhZyhjb25zdCBEcmFnRGF0
YSYpOwogICAgICAgICBib29sIGNvbmNsdWRlRWRpdERyYWcoY29uc3QgRHJhZ0RhdGEmKTsKQEAg
LTEzMiwxMCArMTMzLDExIEBAIHN0cnVjdCBEcmFnU3RhdGU7CiAgICAgICAgIFJlZlB0cjxEb2N1
bWVudD4gbV9kcmFnSW5pdGlhdG9yOyAvLyBUaGUgRG9jdW1lbnQgKGlmIGFueSkgdGhhdCBpbml0
aWF0ZWQgdGhlIGRyYWcuCiAgICAgICAgIFJlZlB0cjxIVE1MSW5wdXRFbGVtZW50PiBtX2ZpbGVJ
bnB1dEVsZW1lbnRVbmRlck1vdXNlOwogICAgICAgICB1bnNpZ25lZCBtX251bWJlck9mSXRlbXNU
b0JlQWNjZXB0ZWQ7Ci0gICAgICAgIERyYWdIYW5kbGluZ01ldGhvZCBtX2RvY3VtZW50RHJhZ0hh
bmRsaW5nTWV0aG9kOworICAgICAgICBEcmFnSGFuZGxpbmdNZXRob2QgbV9kcmFnSGFuZGxpbmdN
ZXRob2Q7CiAKICAgICAgICAgRHJhZ0Rlc3RpbmF0aW9uQWN0aW9uIG1fZHJhZ0Rlc3RpbmF0aW9u
QWN0aW9uOwogICAgICAgICBEcmFnU291cmNlQWN0aW9uIG1fZHJhZ1NvdXJjZUFjdGlvbjsKKyAg
ICAgICAgVmVjdG9yPFN0cmluZz4gbV9wcmVmZXJyZWRUeXBlSWRlbnRpZmllcnNUb0xvYWQ7CiAg
ICAgICAgIGJvb2wgbV9kaWRJbml0aWF0ZURyYWc7CiAgICAgICAgIERyYWdPcGVyYXRpb24gbV9z
b3VyY2VEcmFnT3BlcmF0aW9uOyAvLyBTZXQgaW4gc3RhcnREcmFnIHdoZW4gYSBkcmFnIHN0YXJ0
cyBmcm9tIGEgbW91c2UgZG93biB3aXRoaW4gV2ViS2l0CiAgICAgICAgIEludFBvaW50IG1fZHJh
Z09mZnNldDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvbWFjL0RyYWdDb250cm9s
bGVyTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW0K
aW5kZXggOTI4NzA4ODNmOTUyYWQ3MjE4Y2ExZWI0ZjFkMDg5NTBhMjVlOGEwZS4uZTFkY2IyOTAx
MWFkZTczNDVhMWFkOTFjMzgwY2ZlZDY0MzM2YTE4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9tYWMvRHJhZ0NvbnRyb2xsZXJNYWMubW0KQEAgLTQ0LDYgKzQ0LDEwIEBACiAjaW1wb3J0ICJQ
YXN0ZWJvYXJkLmgiCiAjaW1wb3J0ICJSYW5nZS5oIgogCisjaWYgRU5BQkxFKERBVEFfSU5URVJB
Q1RJT04pCisjaW1wb3J0IDxNb2JpbGVDb3JlU2VydmljZXMvTW9iaWxlQ29yZVNlcnZpY2VzLmg+
CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjb25zdCBpbnQgRHJhZ0NvbnRyb2xs
ZXI6OkxpbmtEcmFnQm9yZGVySW5zZXQgPSAtMjsKQEAgLTg5LDYgKzkzLDMzIEBAIHZvaWQgRHJh
Z0NvbnRyb2xsZXI6OmNsZWFudXBBZnRlclN5c3RlbURyYWcoKQogICAgICAgICBkcmFnRW5kZWQo
KTsKIH0KIAorI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQorCit2b2lkIERyYWdDb250cm9s
bGVyOjp1cGRhdGVQcmVmZXJyZWRUeXBlSWRlbnRpZmllcnNGb3JEcmFnSGFuZGxpbmdNZXRob2Qo
RHJhZ0hhbmRsaW5nTWV0aG9kIGRyYWdIYW5kbGluZ01ldGhvZCwgY29uc3QgRHJhZ0RhdGEmIGRy
YWdEYXRhKSBjb25zdAoreworICAgIFZlY3RvcjxTdHJpbmc+IHN1cHBvcnRlZFR5cGVzOworICAg
IHN3aXRjaCAoZHJhZ0hhbmRsaW5nTWV0aG9kKSB7CisgICAgY2FzZSBEcmFnSGFuZGxpbmdNZXRo
b2Q6OlBhZ2VMb2FkOgorICAgICAgICBzdXBwb3J0ZWRUeXBlcy5hcHBlbmQoa1VUVHlwZVVSTCk7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgRHJhZ0hhbmRsaW5nTWV0aG9kOjpFZGl0UGxhaW5U
ZXh0OgorICAgICAgICBzdXBwb3J0ZWRUeXBlcy5hcHBlbmQoa1VUVHlwZVVSTCk7CisgICAgICAg
IHN1cHBvcnRlZFR5cGVzLmFwcGVuZChrVVRUeXBlVGV4dCk7CisgICAgICAgIHN1cHBvcnRlZFR5
cGVzLmFwcGVuZChrVVRUeXBlVVRGOFBsYWluVGV4dCk7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgRHJhZ0hhbmRsaW5nTWV0aG9kOjpFZGl0UmljaFRleHQ6CisgICAgICAgIGZvciAoTlNTdHJp
bmcgKnR5cGUgaW4gUGFzdGVib2FyZDo6c3VwcG9ydGVkUGFzdGVib2FyZFR5cGVzKCkpCisgICAg
ICAgICAgICBzdXBwb3J0ZWRUeXBlcy5hcHBlbmQodHlwZSk7CisgICAgICAgIGJyZWFrOworICAg
IGRlZmF1bHQ6CisgICAgICAgIHN1cHBvcnRlZFR5cGVzLmFwcGVuZChrVVRUeXBlQ29udGVudCk7
CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBkcmFnRGF0YS51cGRhdGVQcmVmZXJyZWRUeXBl
SWRlbnRpZmllcnMoc3VwcG9ydGVkVHlwZXMpOworfQorCisjZW5kaWYKKwogI2lmIEVOQUJMRShB
VFRBQ0hNRU5UX0VMRU1FTlQpCiB2b2lkIERyYWdDb250cm9sbGVyOjpkZWNsYXJlQW5kV3JpdGVB
dHRhY2htZW50KERhdGFUcmFuc2ZlciYgZGF0YVRyYW5zZmVyLCBFbGVtZW50JiBlbGVtZW50LCBj
b25zdCBVUkwmIHVybCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0Ry
YWdEYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9EcmFnRGF0YS5oCmluZGV4IGViNzRi
MzdmZTgzY2VlN2RjNGQwNzRmOGY4Y2RiMzUzNzFiMWE3N2UuLjRhOWY4MmQ5ZGU0NTU0MjlhMTJl
OTAwODQ0NmIwMmY4YTQyMjkxYmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0RyYWdEYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vRHJhZ0RhdGEuaApAQCAt
MTEzLDYgKzExMyw5IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1l
KCkgY29uc3QgeyByZXR1cm4gbV9wYXN0ZWJvYXJkTmFtZTsgfQogICAgIGJvb2wgY29udGFpbnNQ
cm9taXNlKCkgY29uc3Q7CiAjZW5kaWYKKyNpZiBFTkFCTEUoREFUQV9JTlRFUkFDVElPTikKKyAg
ICB2b2lkIHVwZGF0ZVByZWZlcnJlZFR5cGVJZGVudGlmaWVycyhjb25zdCBWZWN0b3I8U3RyaW5n
PiYgc3VwcG9ydGVkVHlwZXMpIGNvbnN0OworI2VuZGlmCiAKICNpZiBQTEFURk9STShHVEspCiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Bhc3RlYm9hcmRTdHJhdGVneS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFzdGVib2FyZFN0cmF0ZWd5LmgKaW5kZXggZTVk
ODkxZDI2ZTZjMzUzZjkxNWIwZWMzZTc3Mjg5NTQ5NjM3NGJkMi4uZDcyZjEyMGZjZmM4NjExOWMy
NzEwMGNlYjY3ZGJiZWRjY2I2Zjk5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vUGFzdGVib2FyZFN0cmF0ZWd5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGFz
dGVib2FyZFN0cmF0ZWd5LmgKQEAgLTUyLDYgKzUyLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
UmVmUHRyPFNoYXJlZEJ1ZmZlcj4gcmVhZEJ1ZmZlckZyb21QYXN0ZWJvYXJkKGludCBpbmRleCwg
Y29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFt
ZSkgPSAwOwogICAgIHZpcnR1YWwgVVJMIHJlYWRVUkxGcm9tUGFzdGVib2FyZChpbnQgaW5kZXgs
IGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5h
bWUsIFN0cmluZyYgdGl0bGUpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RmlsZW5hbWVzRm9y
RGF0YUludGVyYWN0aW9uKFZlY3RvcjxTdHJpbmc+JiBmaWxlbmFtZXMsIGNvbnN0IFN0cmluZyYg
cGFzdGVib2FyZE5hbWUpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlUHJlZmVycmVkVHlw
ZUlkZW50aWZpZXJzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBpZGVudGlmaWVycywgY29uc3QgU3Ry
aW5nJiBwYXN0ZWJvYXJkTmFtZSkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBnZXRUeXBlc0J5Rmlk
ZWxpdHlGb3JJdGVtQXRJbmRleChWZWN0b3I8U3RyaW5nPiYgdHlwZXMsIHVpbnQ2NF90IGluZGV4
LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSA9IDA7CiAjZW5kaWYgLy8gUExBVEZPUk0o
SU9TKQogI2lmIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vUGxhdGZvcm1QYXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0
Zm9ybVBhc3RlYm9hcmQuaAppbmRleCAzMjEzMjRjZjgxYTdhOGZjYTlmZjkwMjYxMTZmZDFjZmQ4
ODg0ZWYzLi44NWE4YzlmYzA1Y2IyNTBjNTM2NGJlZDU1ZWE1MTg0NmY3MTlkMWMzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9ybVBhc3RlYm9hcmQuaApAQCAtNTcsNiArNTcs
NyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgUGxhdGZvcm1QYXN0ZWJvYXJkKCk7CiAg
ICAgV0VCQ09SRV9FWFBPUlQgVmVjdG9yPFN0cmluZz4gZmlsZW5hbWVzRm9yRGF0YUludGVyYWN0
aW9uKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBnZXRUeXBlc0J5RmlkZWxpdHlGb3JJdGVt
QXRJbmRleChWZWN0b3I8U3RyaW5nPiYgdHlwZXMsIGludCBpbmRleCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCB1cGRhdGVQcmVmZXJyZWRUeXBlSWRlbnRpZmllcnMoY29uc3QgVmVjdG9yPFN0
cmluZz4mIHR5cGVzKTsKICNlbmRpZgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBTdHJpbmcg
dW5pcXVlTmFtZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3Mv
QWJzdHJhY3RQYXN0ZWJvYXJkLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvQWJzdHJh
Y3RQYXN0ZWJvYXJkLmgKaW5kZXggN2NiMmRhZTg4YmJhOTZiMjBiYmQ2MThmYTk0OWYyMzYwNGE3
MWExMy4uZTFjMmMyY2FhYmIyMzNkYzU4ZGQzYzQ2OGNjMzA1NjMzMDljNzMxMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL0Fic3RyYWN0UGFzdGVib2FyZC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9BYnN0cmFjdFBhc3RlYm9hcmQuaApAQCAtNDUs
NiArNDUsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogLSAoTlNBcnJheTxOU1N0cmluZyAq
PiAqKXBhc3RlYm9hcmRUeXBlc0J5RmlkZWxpdHlGb3JJdGVtQXRJbmRleDooTlNVSW50ZWdlcilp
bmRleDsKIEBwcm9wZXJ0eSAocmVhZG9ubHksIG5vbmF0b21pYykgTlNJbnRlZ2VyIG51bWJlck9m
RmlsZXM7CiBAcHJvcGVydHkgKHJlYWRvbmx5LCBub25hdG9taWMpIE5TQXJyYXk8TlNVUkwgKj4g
KmZpbGVVUkxzRm9yRGF0YUludGVyYWN0aW9uOworLSAodm9pZCl1cGRhdGVQcmVmZXJyZWRUeXBl
SWRlbnRpZmllcnM6KE5TQXJyYXk8TlNTdHJpbmcgKj4gKil0eXBlczsKIAogQGVuZAogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGFzdGVib2FyZElPUy5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0ZWJvYXJkSU9TLm1tCmluZGV4IDY1YTc2Nzg1
MTEwMDA5YWYyZmJjMTM4YzJmNWUwMTQzNWIzM2RlOWMuLjA1OTM3NjA0NjA3MjRhN2FkNzQzYWU4
NmM3OGJlZThiYTkzZTM3MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lv
cy9QYXN0ZWJvYXJkSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2lvcy9QYXN0
ZWJvYXJkSU9TLm1tCkBAIC0xNTcsNiArMTU3LDkgQEAgdm9pZCBQYXN0ZWJvYXJkOjpyZWFkKFBh
c3RlYm9hcmRQbGFpblRleHQmIHRleHQpCiAgICAgfQogCiAgICAgdGV4dC50ZXh0ID0gc3RyYXRl
Z3kucmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKDAsIGtVVFR5cGVUZXh0LCBtX3Bhc3RlYm9hcmRO
YW1lKTsKKyAgICBpZiAodGV4dC50ZXh0LmlzRW1wdHkoKSkKKyAgICAgICAgdGV4dC50ZXh0ID0g
c3RyYXRlZ3kucmVhZFN0cmluZ0Zyb21QYXN0ZWJvYXJkKDAsIGtVVFR5cGVQbGFpblRleHQsIG1f
cGFzdGVib2FyZE5hbWUpOworCiAgICAgdGV4dC5pc1VSTCA9IGZhbHNlOwogfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1t
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1BsYXRmb3JtUGFzdGVib2FyZElPUy5tbQpp
bmRleCBiNTM3ZDMwMzMwNDU5Y2Q1YjQ4MDE0Mjk2NjA4ZWFiMTlhMTJiZjY1Li45ZWE2OWI3YTg3
ZGQxMWMxNTQ0YzAwZTc4ODU0ZTZlOGRjZDUwOWU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9pb3MvUGxhdGZvcm1QYXN0ZWJvYXJkSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2lvcy9QbGF0Zm9ybVBhc3RlYm9hcmRJT1MubW0KQEAgLTM3Niw3ICszNzYs
NyBAQCBTdHJpbmcgUGxhdGZvcm1QYXN0ZWJvYXJkOjpyZWFkU3RyaW5nKGludCBpbmRleCwgY29u
c3QgU3RyaW5nJiB0eXBlKQogCiAgICAgaWQgdmFsdWUgPSBbcGFzdGVib2FyZEl0ZW0gb2JqZWN0
QXRJbmRleDowXTsKICAgICAKLSAgICBpZiAodHlwZSA9PSBTdHJpbmcoa1VUVHlwZVRleHQpKSB7
CisgICAgaWYgKHR5cGUgPT0gU3RyaW5nKGtVVFR5cGVUZXh0KSB8fCB0eXBlID09IFN0cmluZyhr
VVRUeXBlUGxhaW5UZXh0KSkgewogICAgICAgICBBU1NFUlQoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6
W05TU3RyaW5nIGNsYXNzXV0pOwogICAgICAgICBpZiAoW3ZhbHVlIGlzS2luZE9mQ2xhc3M6W05T
U3RyaW5nIGNsYXNzXV0pCiAgICAgICAgICAgICByZXR1cm4gU3RyaW5nKHZhbHVlKTsKQEAgLTQx
Miw0ICs0MTIsMTYgQEAgVVJMIFBsYXRmb3JtUGFzdGVib2FyZDo6cmVhZFVSTChpbnQgaW5kZXgs
IGNvbnN0IFN0cmluZyYgdHlwZSwgU3RyaW5nJiB0aXRsZSkKICAgICByZXR1cm4gKE5TVVJMICop
dmFsdWU7CiB9CiAKK3ZvaWQgUGxhdGZvcm1QYXN0ZWJvYXJkOjp1cGRhdGVQcmVmZXJyZWRUeXBl
SWRlbnRpZmllcnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHR5cGVzKQoreworICAgIGlmICghW21f
cGFzdGVib2FyZCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHVwZGF0ZVByZWZlcnJlZFR5
cGVJZGVudGlmaWVyczopXSkKKyAgICAgICAgcmV0dXJuOworCisgICAgTlNNdXRhYmxlQXJyYXkg
KnR5cGVzQXJyYXkgPSBbTlNNdXRhYmxlQXJyYXkgYXJyYXlXaXRoQ2FwYWNpdHk6dHlwZXMuc2l6
ZSgpXTsKKyAgICBmb3IgKGF1dG8gdHlwZSA6IHR5cGVzKQorICAgICAgICBbdHlwZXNBcnJheSBh
ZGRPYmplY3Q6KE5TU3RyaW5nICopdHlwZV07CisKKyAgICBbbV9wYXN0ZWJvYXJkIHVwZGF0ZVBy
ZWZlcnJlZFR5cGVJZGVudGlmaWVyczp0eXBlc0FycmF5XTsKK30KKwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vaW9zL1dlYkl0ZW1Qcm92aWRlclBhc3RlYm9hcmQubW0g
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5t
bQppbmRleCBiMGY2MzUwYWIzZmRjZWRkOTI1MTFlNWVjMDBmZDBjZjFhZmMwNjliLi42NDc2MTQy
NDU0NTM0YmQzMTU4YmQ2NDI0OGFkYzIxNzQzODY3NTM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9pb3MvV2ViSXRlbVByb3ZpZGVyUGFzdGVib2FyZC5tbQpAQCAt
MzIsNiArMzIsNyBAQAogI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBvcnQgPEZvdW5kYXRpb24v
TlNQcm9ncmVzcy5oPgogI2ltcG9ydCA8TW9iaWxlQ29yZVNlcnZpY2VzL01vYmlsZUNvcmVTZXJ2
aWNlcy5oPgorI2ltcG9ydCA8VUlLaXQvTlNTdHJpbmcrVUlJdGVtUHJvdmlkZXIuaD4KICNpbXBv
cnQgPFVJS2l0L05TVVJMK1VJSXRlbVByb3ZpZGVyLmg+CiAjaW1wb3J0IDxVSUtpdC9VSUNvbG9y
Lmg+CiAjaW1wb3J0IDxVSUtpdC9VSUltYWdlLmg+CkBAIC02MCw3ICs2MSw3IEBAIHN0YXRpYyBC
T09MIGlzUmljaFRleHRUeXBlKE5TU3RyaW5nICp0eXBlKQogCiBzdGF0aWMgQk9PTCBpc1N0cmlu
Z1R5cGUoTlNTdHJpbmcgKnR5cGUpCiB7Ci0gICAgcmV0dXJuIE1BVENIRVNfVVRJX1RZUEUodHlw
ZSwgVGV4dCkgfHwgTUFUQ0hFU19VVElfVFlQRSh0eXBlLCBVVEY4UGxhaW5UZXh0KSB8fCBNQVRD
SEVTX1VUSV9UWVBFKHR5cGUsIFVURjE2UGxhaW5UZXh0KTsKKyAgICByZXR1cm4gTUFUQ0hFU19V
VElfVFlQRSh0eXBlLCBUZXh0KSB8fCBNQVRDSEVTX1VUSV9UWVBFKHR5cGUsIFVURjhQbGFpblRl
eHQpIHx8IE1BVENIRVNfVVRJX1RZUEUodHlwZSwgVVRGMTZQbGFpblRleHQpIHx8IE1BVENIRVNf
VVRJX1RZUEUodHlwZSwgUGxhaW5UZXh0KTsKIH0KIAogc3RhdGljIEJPT0wgaXNVUkxUeXBlKE5T
U3RyaW5nICp0eXBlKQpAQCAtMTgwLDYgKzE4MSw3IEBAIEBpbXBsZW1lbnRhdGlvbiBXZWJJdGVt
UHJvdmlkZXJQYXN0ZWJvYXJkIHsKICAgICBSZXRhaW5QdHI8TlNBcnJheT4gX2l0ZW1Qcm92aWRl
cnM7CiAgICAgUmV0YWluUHRyPE5TQXJyYXk+IF9jYWNoZWRUeXBlSWRlbnRpZmllcnM7CiAgICAg
UmV0YWluUHRyPE5TQXJyYXk+IF90eXBlVG9GaWxlVVJMTWFwczsKKyAgICBSZXRhaW5QdHI8TlNB
cnJheT4gX3ByZWZlcnJlZFR5cGVJZGVudGlmaWVyczsKIH0KIAogKyAoaW5zdGFuY2V0eXBlKXNo
YXJlZEluc3RhbmNlCkBAIC0xOTksMTAgKzIwMSwxNyBAQCAtIChpbnN0YW5jZXR5cGUpaW5pdAog
ICAgICAgICBfY2hhbmdlQ291bnQgPSAwOwogICAgICAgICBfcGVuZGluZ09wZXJhdGlvbkNvdW50
ID0gMDsKICAgICAgICAgX3R5cGVUb0ZpbGVVUkxNYXBzID0gYWRvcHROUyhbW05TQXJyYXkgYWxs
b2NdIGluaXRdKTsKKyAgICAgICAgX3ByZWZlcnJlZFR5cGVJZGVudGlmaWVycyA9IG5pbDsKICAg
ICB9CiAgICAgcmV0dXJuIHNlbGY7CiB9CiAKKy0gKHZvaWQpdXBkYXRlUHJlZmVycmVkVHlwZUlk
ZW50aWZpZXJzOihOU0FycmF5PE5TU3RyaW5nICo+ICopdHlwZXMKK3sKKyAgICBpZiAoW19pdGVt
UHJvdmlkZXJzIGNvdW50XSA9PSB0eXBlcy5jb3VudCkKKyAgICAgICAgX3ByZWZlcnJlZFR5cGVJ
ZGVudGlmaWVycyA9IHR5cGVzOworfQorCiAtIChOU0FycmF5PE5TU3RyaW5nICo+ICopcGFzdGVi
b2FyZFR5cGVzQnlGaWRlbGl0eUZvckl0ZW1BdEluZGV4OihOU1VJbnRlZ2VyKWluZGV4CiB7CiAg
ICAgcmV0dXJuIFtzZWxmIGl0ZW1Qcm92aWRlckF0SW5kZXg6aW5kZXhdLnJlZ2lzdGVyZWRUeXBl
SWRlbnRpZmllcnMgPzogQFsgXTsKQEAgLTIzOSw2ICsyNDgsOSBAQCAtICh2b2lkKXNldEl0ZW1Q
cm92aWRlcnM6KE5TQXJyYXk8VUlJdGVtUHJvdmlkZXIgKj4gKilpdGVtUHJvdmlkZXJzCiAgICAg
aWYgKF9pdGVtUHJvdmlkZXJzID09IGl0ZW1Qcm92aWRlcnMgfHwgW19pdGVtUHJvdmlkZXJzIGlz
RXF1YWxUb0FycmF5Oml0ZW1Qcm92aWRlcnNdKQogICAgICAgICByZXR1cm47CiAKKyAgICBpZiAo
aXRlbVByb3ZpZGVycy5jb3VudCAhPSBbX2l0ZW1Qcm92aWRlcnMgY291bnRdKQorICAgICAgICBf
cHJlZmVycmVkVHlwZUlkZW50aWZpZXJzID0gbmlsOworCiAgICAgX2l0ZW1Qcm92aWRlcnMgPSBp
dGVtUHJvdmlkZXJzOwogICAgIF9jaGFuZ2VDb3VudCsrOwogICAgIF9jYWNoZWRUeXBlSWRlbnRp
ZmllcnMgPSBuaWw7CkBAIC0yNDcsNyArMjU5LDYgQEAgLSAodm9pZClzZXRJdGVtUHJvdmlkZXJz
OihOU0FycmF5PFVJSXRlbVByb3ZpZGVyICo+ICopaXRlbVByb3ZpZGVycwogICAgIFtpdGVtUHJv
dmlkZXJzIGVudW1lcmF0ZU9iamVjdHNVc2luZ0Jsb2NrOlt0eXBlVG9GaWxlVVJMTWFwc10gKFVJ
SXRlbVByb3ZpZGVyICosIE5TVUludGVnZXIsIEJPT0wgKikgewogICAgICAgICBbdHlwZVRvRmls
ZVVSTE1hcHMgYWRkT2JqZWN0OkB7IH1dOwogICAgIH1dOwotICAgIF90eXBlVG9GaWxlVVJMTWFw
cyA9IHR5cGVUb0ZpbGVVUkxNYXBzOwogfQogCiAtIChOU0ludGVnZXIpbnVtYmVyT2ZJdGVtcwpA
QCAtMzA3LDE5ICszMTgsMzIgQEAgLSAoTlNBcnJheSAqKWRhdGFGb3JQYXN0ZWJvYXJkVHlwZToo
TlNTdHJpbmcgKilwYXN0ZWJvYXJkVHlwZSBpbkl0ZW1TZXQ6KE5TSW5kZXgKICAgICAgICAgaWYg
KCFwcm92aWRlcikKICAgICAgICAgICAgIHJldHVybjsKIAotICAgICAgICBOU0RhdGEgKmRhdGEg
PSBbcmV0YWluZWRTZWxmIF9wcmVMb2FkZWREYXRhQ29uZm9ybWluZ1RvVHlwZTpwYXN0ZWJvYXJk
VHlwZSBmb3JJdGVtUHJvdmlkZXJBdEluZGV4OmluZGV4XTsKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwdXNoCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVk
LWRlY2xhcmF0aW9ucyIKLSAgICAgICAgLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS8zMDQ1MTA5
Nj4gQWRvcHQgYXN5bmNocm9ub3VzIFVJSXRlbVByb3ZpZGVyIG1ldGhvZHMgd2hlbiByZXRyaWV2
aW5nIGRhdGEuCi0gICAgICAgIGlmICghZGF0YSkKLSAgICAgICAgICAgIGRhdGEgPSBbcHJvdmlk
ZXIgY29weURhdGFSZXByZXNlbnRhdGlvbkZvclR5cGVJZGVudGlmaWVyOnBhc3RlYm9hcmRUeXBl
IGVycm9yOm5pbF07Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0gICAgICAgIGlmIChk
YXRhKQotICAgICAgICAgICAgW3ZhbHVlcyBhZGRPYmplY3Q6ZGF0YV07CisgICAgICAgIGlmIChO
U0RhdGEgKmxvYWRlZERhdGEgPSBbcmV0YWluZWRTZWxmIF9wcmVMb2FkZWREYXRhQ29uZm9ybWlu
Z1RvVHlwZTpwYXN0ZWJvYXJkVHlwZSBmb3JJdGVtUHJvdmlkZXJBdEluZGV4OmluZGV4XSkKKyAg
ICAgICAgICAgIFt2YWx1ZXMgYWRkT2JqZWN0OmxvYWRlZERhdGFdOwogICAgIH1dOwogICAgIHJl
dHVybiB2YWx1ZXMuYXV0b3JlbGVhc2UoKTsKIH0KIAorc3RhdGljIENsYXNzIGNsYXNzRm9yVHlw
ZUlkZW50aWZpZXIoTlNTdHJpbmcgKnR5cGVJZGVudGlmaWVyKQoreworICAgIGlmIChpc0NvbG9y
VHlwZSh0eXBlSWRlbnRpZmllcikpCisgICAgICAgIHJldHVybiBbZ2V0VUlDb2xvckNsYXNzKCkg
Y2xhc3NdOworCisgICAgaWYgKGlzSW1hZ2VUeXBlKHR5cGVJZGVudGlmaWVyKSkKKyAgICAgICAg
cmV0dXJuIFtnZXRVSUltYWdlQ2xhc3MoKSBjbGFzc107CisKKyAgICBpZiAoaXNVUkxUeXBlKHR5
cGVJZGVudGlmaWVyKSkKKyAgICAgICAgcmV0dXJuIFtOU1VSTCBjbGFzc107CisKKyAgICBpZiAo
aXNSaWNoVGV4dFR5cGUodHlwZUlkZW50aWZpZXIpKQorICAgICAgICByZXR1cm4gW05TQXR0cmli
dXRlZFN0cmluZyBjbGFzc107CisKKyAgICBpZiAoaXNTdHJpbmdUeXBlKHR5cGVJZGVudGlmaWVy
KSkKKyAgICAgICAgcmV0dXJuIFtOU1N0cmluZyBjbGFzc107CisKKyAgICByZXR1cm4gbmlsOwor
fQorCiAtIChOU0FycmF5ICopdmFsdWVzRm9yUGFzdGVib2FyZFR5cGU6KE5TU3RyaW5nICopcGFz
dGVib2FyZFR5cGUgaW5JdGVtU2V0OihOU0luZGV4U2V0ICopaXRlbVNldAogewogICAgIGF1dG8g
dmFsdWVzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CkBAIC0zMjks
MjcgKzM1MywxNCBAQCAtIChOU0FycmF5ICopdmFsdWVzRm9yUGFzdGVib2FyZFR5cGU6KE5TU3Ry
aW5nICopcGFzdGVib2FyZFR5cGUgaW5JdGVtU2V0OihOU0luZAogICAgICAgICBpZiAoIXByb3Zp
ZGVyKQogICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIENsYXNzIHJlYWRhYmxlQ2xhc3M7
Ci0gICAgICAgIGlmIChpc0NvbG9yVHlwZShwYXN0ZWJvYXJkVHlwZSkpCi0gICAgICAgICAgICBy
ZWFkYWJsZUNsYXNzID0gW2dldFVJQ29sb3JDbGFzcygpIGNsYXNzXTsKLSAgICAgICAgZWxzZSBp
ZiAoaXNJbWFnZVR5cGUocGFzdGVib2FyZFR5cGUpKQotICAgICAgICAgICAgcmVhZGFibGVDbGFz
cyA9IFtnZXRVSUltYWdlQ2xhc3MoKSBjbGFzc107Ci0gICAgICAgIGVsc2UgaWYgKGlzVVJMVHlw
ZShwYXN0ZWJvYXJkVHlwZSkpCi0gICAgICAgICAgICByZWFkYWJsZUNsYXNzID0gW05TVVJMIGNs
YXNzXTsKLSAgICAgICAgZWxzZSBpZiAoaXNSaWNoVGV4dFR5cGUocGFzdGVib2FyZFR5cGUpKQot
ICAgICAgICAgICAgcmVhZGFibGVDbGFzcyA9IFtOU0F0dHJpYnV0ZWRTdHJpbmcgY2xhc3NdOwot
ICAgICAgICBlbHNlIGlmIChpc1N0cmluZ1R5cGUocGFzdGVib2FyZFR5cGUpKQotICAgICAgICAg
ICAgcmVhZGFibGVDbGFzcyA9IFtOU1N0cmluZyBjbGFzc107Ci0gICAgICAgIGVsc2UKKyAgICAg
ICAgQ2xhc3MgcmVhZGFibGVDbGFzcyA9IGNsYXNzRm9yVHlwZUlkZW50aWZpZXIocGFzdGVib2Fy
ZFR5cGUpOworICAgICAgICBpZiAoIXJlYWRhYmxlQ2xhc3MpCiAgICAgICAgICAgICByZXR1cm47
CiAKICAgICAgICAgaWQgPFVJSXRlbVByb3ZpZGVyUmVhZGluZz4gcmVhZE9iamVjdCA9IG5pbDsK
ICAgICAgICAgaWYgKE5TRGF0YSAqcHJlbG9hZGVkRGF0YSA9IFtyZXRhaW5lZFNlbGYgX3ByZUxv
YWRlZERhdGFDb25mb3JtaW5nVG9UeXBlOnBhc3RlYm9hcmRUeXBlIGZvckl0ZW1Qcm92aWRlckF0
SW5kZXg6aW5kZXhdKQogICAgICAgICAgICAgcmVhZE9iamVjdCA9IFtbcmVhZGFibGVDbGFzcyBh
bGxvY10gaW5pdFdpdGhJdGVtUHJvdmlkZXJEYXRhOnByZWxvYWRlZERhdGEgdHlwZUlkZW50aWZp
ZXI6cGFzdGVib2FyZFR5cGUgZXJyb3I6bmlsXTsKIAotICAgICAgICBpZiAoIXJlYWRPYmplY3Qp
Ci0gICAgICAgICAgICByZWFkT2JqZWN0ID0gW3JldGFpbmVkU2VsZiBfdHJ5VG9DcmVhdGVPYmpl
Y3RPZkNsYXNzOnJlYWRhYmxlQ2xhc3MgdXNpbmdQcm92aWRlcjpwcm92aWRlcl07Ci0KICAgICAg
ICAgaWYgKHJlYWRPYmplY3QpCiAgICAgICAgICAgICBbdmFsdWVzIGFkZE9iamVjdDpyZWFkT2Jq
ZWN0XTsKICAgICB9XTsKQEAgLTM1NywxOCArMzY4LDYgQEAgLSAoTlNBcnJheSAqKXZhbHVlc0Zv
clBhc3RlYm9hcmRUeXBlOihOU1N0cmluZyAqKXBhc3RlYm9hcmRUeXBlIGluSXRlbVNldDooTlNJ
bmQKICAgICByZXR1cm4gdmFsdWVzLmF1dG9yZWxlYXNlKCk7CiB9CiAKLS0gKGlkIDxVSUl0ZW1Q
cm92aWRlclJlYWRpbmc+KV90cnlUb0NyZWF0ZU9iamVjdE9mQ2xhc3M6KENsYXNzIDxVSUl0ZW1Q
cm92aWRlclJlYWRpbmc+KW9iamVjdENsYXNzIHVzaW5nUHJvdmlkZXI6KFVJSXRlbVByb3ZpZGVy
ICopcHJvdmlkZXIKLXsKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCi0jcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKLSAgICBp
ZiAoIVtwcm92aWRlciBjYW5DcmVhdGVPYmplY3RPZkNsYXNzOm9iamVjdENsYXNzXSkKLSAgICAg
ICAgcmV0dXJuIG5pbDsKLQotICAgIC8vIEZJWE1FOiA8cmRhcjovL3Byb2JsZW0vMzA0NTEwOTY+
IEFkb3B0IGFzeW5jaHJvbm91cyBVSUl0ZW1Qcm92aWRlciBtZXRob2RzIHdoZW4gcmV0cmlldmlu
ZyBkYXRhLgotICAgIHJldHVybiBbcHJvdmlkZXIgY3JlYXRlT2JqZWN0T2ZDbGFzczpvYmplY3RD
bGFzcyBlcnJvcjpuaWxdOwotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIHBvcAotfQotCiAtIChO
U0ludGVnZXIpY2hhbmdlQ291bnQKIHsKICAgICByZXR1cm4gX2NoYW5nZUNvdW50OwpAQCAtNDE2
LDE4ICs0MTUsMjkgQEAgLSAodm9pZClkb0FmdGVyTG9hZGluZ1Byb3ZpZGVkQ29udGVudEludG9G
aWxlVVJMczooV2ViSXRlbVByb3ZpZGVyRmlsZUxvYWRCbG9jaykKICAgICBhdXRvIGNoYW5nZUNv
dW50QmVmb3JlTG9hZGluZyA9IF9jaGFuZ2VDb3VudDsKICAgICBhdXRvIHR5cGVUb0ZpbGVVUkxN
YXBzID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0V2l0aENhcGFjaXR5Oltf
aXRlbVByb3ZpZGVycyBjb3VudF1dKTsKIAorICAgIFJldGFpblB0cjxOU0FycmF5PiBwcmVmZXJy
ZWRUeXBlSWRlbnRpZmllcnM7CisgICAgaWYgKFtfcHJlZmVycmVkVHlwZUlkZW50aWZpZXJzIGNv
dW50XSA9PSBbX2l0ZW1Qcm92aWRlcnMgY291bnRdKQorICAgICAgICBwcmVmZXJyZWRUeXBlSWRl
bnRpZmllcnMgPSBfcHJlZmVycmVkVHlwZUlkZW50aWZpZXJzOworCiAgICAgLy8gRmlyc3QsIGZp
Z3VyZSBvdXQgd2hpY2ggaXRlbSBwcm92aWRlcnMgd2Ugd2FudCB0byB0cnkgYW5kIGxvYWQgZmls
ZXMgZnJvbS4KICAgICBhdXRvIGl0ZW1Qcm92aWRlcnNXaXRoRmlsZXMgPSBhZG9wdE5TKFtbTlNN
dXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIGNvbnRlbnRUeXBlSWRlbnRpZmll
cnNUb0xvYWQgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKICAgICBh
dXRvIGluZGljZXNPZkl0ZW1Qcm92aWRlcnNXaXRoRmlsZXMgPSBhZG9wdE5TKFtbTlNNdXRhYmxl
QXJyYXkgYWxsb2NdIGluaXRdKTsKLSAgICBbX2l0ZW1Qcm92aWRlcnMgZW51bWVyYXRlT2JqZWN0
c1VzaW5nQmxvY2s6W2l0ZW1Qcm92aWRlcnNXaXRoRmlsZXMsIGNvbnRlbnRUeXBlSWRlbnRpZmll
cnNUb0xvYWQsIGluZGljZXNPZkl0ZW1Qcm92aWRlcnNXaXRoRmlsZXMsIHR5cGVUb0ZpbGVVUkxN
YXBzXSAoVUlJdGVtUHJvdmlkZXIgKml0ZW1Qcm92aWRlciwgTlNVSW50ZWdlciBpbmRleCwgQk9P
TCAqKSB7CisgICAgW19pdGVtUHJvdmlkZXJzIGVudW1lcmF0ZU9iamVjdHNVc2luZ0Jsb2NrOltw
cmVmZXJyZWRUeXBlSWRlbnRpZmllcnMsIGl0ZW1Qcm92aWRlcnNXaXRoRmlsZXMsIGNvbnRlbnRU
eXBlSWRlbnRpZmllcnNUb0xvYWQsIGluZGljZXNPZkl0ZW1Qcm92aWRlcnNXaXRoRmlsZXMsIHR5
cGVUb0ZpbGVVUkxNYXBzXSAoVUlJdGVtUHJvdmlkZXIgKml0ZW1Qcm92aWRlciwgTlNVSW50ZWdl
ciBpbmRleCwgQk9PTCAqKSB7CiAgICAgICAgIE5TU3RyaW5nICp0eXBlSWRlbnRpZmllck9mQ29u
dGVudFRvU2F2ZSA9IG5pbDsKLSAgICAgICAgZm9yIChOU1N0cmluZyAqaWRlbnRpZmllciBpbiBp
dGVtUHJvdmlkZXIucmVnaXN0ZXJlZFR5cGVJZGVudGlmaWVycykgewotICAgICAgICAgICAgaWYg
KCFVVFR5cGVDb25mb3Jtc1RvKChDRlN0cmluZ1JlZilpZGVudGlmaWVyLCBrVVRUeXBlQ29udGVu
dCkpCi0gICAgICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAgICAgICAgIHR5cGVJZGVudGlm
aWVyT2ZDb250ZW50VG9TYXZlID0gaWRlbnRpZmllcjsKLSAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICBpZiAocHJlZmVycmVkVHlwZUlkZW50aWZpZXJzICYmIFtpdGVtUHJvdmlkZXIucmVnaXN0
ZXJlZFR5cGVJZGVudGlmaWVycyBjb250YWluc09iamVjdDpbcHJlZmVycmVkVHlwZUlkZW50aWZp
ZXJzIG9iamVjdEF0SW5kZXg6aW5kZXhdXSkKKyAgICAgICAgICAgIHR5cGVJZGVudGlmaWVyT2ZD
b250ZW50VG9TYXZlID0gW3ByZWZlcnJlZFR5cGVJZGVudGlmaWVycyBvYmplY3RBdEluZGV4Omlu
ZGV4XTsKKworICAgICAgICBpZiAoIXR5cGVJZGVudGlmaWVyT2ZDb250ZW50VG9TYXZlKSB7Cisg
ICAgICAgICAgICAvLyBGYWxsIGJhY2sgdG8gdGhlIGZpcnN0ICJwdWJsaWMuY29udGVudCItY29u
Zm9ybWFudCB0eXBlIGlkZW50aWZpZXIuCisgICAgICAgICAgICBmb3IgKE5TU3RyaW5nICppZGVu
dGlmaWVyIGluIGl0ZW1Qcm92aWRlci5yZWdpc3RlcmVkVHlwZUlkZW50aWZpZXJzKSB7CisgICAg
ICAgICAgICAgICAgaWYgKCFVVFR5cGVDb25mb3Jtc1RvKChDRlN0cmluZ1JlZilpZGVudGlmaWVy
LCBrVVRUeXBlQ29udGVudCkpCisgICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAg
ICAgICAgICAgICAgdHlwZUlkZW50aWZpZXJPZkNvbnRlbnRUb1NhdmUgPSBpZGVudGlmaWVyOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQogICAgICAgICB9CiAKICAgICAg
ICAgaWYgKHR5cGVJZGVudGlmaWVyT2ZDb250ZW50VG9TYXZlKSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tYWMvRHJhZ0RhdGFNYWMubW0KaW5kZXggZmI0ODI5ZmZmY2Q5ODQ1MTJlMWViMjYy
OTE1OTBjOWY5MjQ2NDNmMS4uZGY5NjhjYmUyNThjZDA1NjY3NmJkMWNjY2RjZGRmNGM1YTg5MDQz
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWFjL0RyYWdEYXRhTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21hYy9EcmFnRGF0YU1hYy5tbQpAQCAtMjg1
LDYgKzI4NSw1MiBAQCBTdHJpbmcgRHJhZ0RhdGE6OmFzVVJMKEZpbGVuYW1lQ29udmVyc2lvblBv
bGljeSwgU3RyaW5nKiB0aXRsZSkgY29uc3QKICAgICByZXR1cm4gU3RyaW5nKCk7ICAgICAgICAK
IH0KIAorI2lmIEVOQUJMRShEQVRBX0lOVEVSQUNUSU9OKQorCit2b2lkIERyYWdEYXRhOjp1cGRh
dGVQcmVmZXJyZWRUeXBlSWRlbnRpZmllcnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIHN1cHBvcnRl
ZFR5cGVzVmVjdG9yKSBjb25zdAoreworICAgIE5TTXV0YWJsZVNldCAqc3VwcG9ydGVkVHlwZXMg
PSBbTlNNdXRhYmxlU2V0IHNldFdpdGhDYXBhY2l0eTpzdXBwb3J0ZWRUeXBlc1ZlY3Rvci5zaXpl
KCldOworICAgIGZvciAoYXV0byYgc3VwcG9ydGVkVHlwZSA6IHN1cHBvcnRlZFR5cGVzVmVjdG9y
KQorICAgICAgICBbc3VwcG9ydGVkVHlwZXMgYWRkT2JqZWN0OnN1cHBvcnRlZFR5cGVdOworCisg
ICAgLy8gTWF0Y2ggVUlJdGVtUHJvdmlkZXIgYmVoYXZpb3IgYnkgcGVyZm9ybWluZyB0d28tcGFz
cyBVVEkgbWF0Y2hpbmcuCisgICAgVmVjdG9yPFN0cmluZz4gYmVzdFR5cGVJZGVudGlmaWVyczsK
KyAgICBhdXRvJiBzdHJhdGVneSA9ICpwbGF0Zm9ybVN0cmF0ZWdpZXMoKS0+cGFzdGVib2FyZFN0
cmF0ZWd5KCk7CisgICAgdWludDY0X3QgaXRlbUNvdW50ID0gc3RyYXRlZ3kuZ2V0UGFzdGVib2Fy
ZEl0ZW1zQ291bnQobV9wYXN0ZWJvYXJkTmFtZSk7CisgICAgZm9yICh1aW50NjRfdCBpdGVtSW5k
ZXggPSAwOyBpdGVtSW5kZXggPCBpdGVtQ291bnQ7ICsraXRlbUluZGV4KSB7CisgICAgICAgIFZl
Y3RvcjxTdHJpbmc+IHR5cGVJZGVudGlmaWVyczsKKyAgICAgICAgc3RyYXRlZ3kuZ2V0VHlwZXNC
eUZpZGVsaXR5Rm9ySXRlbUF0SW5kZXgodHlwZUlkZW50aWZpZXJzLCBpdGVtSW5kZXgsIG1fcGFz
dGVib2FyZE5hbWUpOworCisgICAgICAgIFN0cmluZyBiZXN0VHlwZUlkZW50aWZpZXIgPSBlbXB0
eVN0cmluZygpOworICAgICAgICAvLyBJbiB0aGUgZmlyc3QgcGFzcywgbG9vayBmb3IgdGhlIGhp
Z2hlc3QgZmlkZWxpdHkgVVRJIHRoYXQgZXhhY3RseSBtYXRjaGVzIG9uZSBvZiB0aGUgc3VwcG9y
dGVkIFVUSXMuCisgICAgICAgIGZvciAoYXV0byYgdHlwZSA6IHR5cGVJZGVudGlmaWVycykgewor
ICAgICAgICAgICAgaWYgKFtzdXBwb3J0ZWRUeXBlcyBjb250YWluc09iamVjdDooTlNTdHJpbmcg
Kil0eXBlXSkgeworICAgICAgICAgICAgICAgIGJlc3RUeXBlSWRlbnRpZmllciA9IHR5cGU7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKworICAgICAg
ICAvLyBJbiB0aGUgc2Vjb25kIHBhc3MsIGxvb2sgZm9yIHRoZSBoaWdoZXN0IGZpZGVsaXR5IFVU
SSB0aGF0IGNvbmZvcm1zIHRvIG9uZSBvZiB0aGUgc3VwcG9ydGVkIFVUSXMuCisgICAgICAgIGlm
IChiZXN0VHlwZUlkZW50aWZpZXIuaXNFbXB0eSgpKSB7CisgICAgICAgICAgICBmb3IgKGF1dG8m
IHR5cGUgOiB0eXBlSWRlbnRpZmllcnMpIHsKKyAgICAgICAgICAgICAgICBmb3IgKE5TU3RyaW5n
ICpzdXBwb3J0ZWRUeXBlIGluIHN1cHBvcnRlZFR5cGVzKSB7CisgICAgICAgICAgICAgICAgICAg
IGlmIChVVFR5cGVDb25mb3Jtc1RvKHR5cGUuY3JlYXRlQ0ZTdHJpbmcoKS5hdXRvcmVsZWFzZSgp
LCAoQ0ZTdHJpbmdSZWYpc3VwcG9ydGVkVHlwZSkpIHsKKyAgICAgICAgICAgICAgICAgICAgICAg
IGJlc3RUeXBlSWRlbnRpZmllciA9IHR5cGU7CisgICAgICAgICAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICAgICBpZiAoIWJlc3RUeXBlSWRlbnRpZmllci5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIGJlc3RUeXBlSWRl
bnRpZmllcnMuYXBwZW5kKGJlc3RUeXBlSWRlbnRpZmllcik7CisgICAgfQorCisgICAgc3RyYXRl
Z3kudXBkYXRlUHJlZmVycmVkVHlwZUlkZW50aWZpZXJzKGJlc3RUeXBlSWRlbnRpZmllcnMsIG1f
cGFzdGVib2FyZE5hbWUpOworfQorCisjZW5kaWYKKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQog
CiAjZW5kaWYgLy8gRU5BQkxFKERSQUdfU1VQUE9SVCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oIGIvU291cmNlL1dl
YktpdC9tYWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKaW5kZXggZGE0
ZWM0NzQxMzZhZDE3ZTEyMGJhNmJhM2Y3NWMwMWJmNzBkNmM0Ni4uNWU5MjM4YTk3MDZlMTdmMzc3
ZDEwY2VhNmY2ZWM1ZjVmZDIzN2RjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvU291cmNlL1dlYktpdC9t
YWMvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKQEAgLTY3LDYgKzY3LDcg
QEAgcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiByZWFkQnVmZmVy
RnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBj
b25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKICAgICBXZWJDb3JlOjpVUkwg
cmVhZFVSTEZyb21QYXN0ZWJvYXJkKGludCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJk
VHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgU3RyaW5nJiB0aXRsZSkgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBnZXRGaWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rpb24oVmVjdG9yPFN0cmlu
Zz4mIGZpbGVuYW1lcywgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7Cisg
ICAgdm9pZCB1cGRhdGVQcmVmZXJyZWRUeXBlSWRlbnRpZmllcnMoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGlkZW50aWZpZXJzLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsK
ICAgICB2b2lkIGdldFR5cGVzQnlGaWRlbGl0eUZvckl0ZW1BdEluZGV4KFZlY3RvcjxTdHJpbmc+
JiB0eXBlcywgdWludDY0X3QgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92
ZXJyaWRlOwogI2VuZGlmCiAgICAgaW50IGdldE51bWJlck9mRmlsZXMoY29uc3QgU3RyaW5nJiBw
YXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L21hYy9X
ZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0gYi9Tb3VyY2UvV2ViS2l0L21h
Yy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMubW0KaW5kZXggNzRiYzdhZmU0
ZTBkNGNlNDc0Y2Q3ZjJkNzEzYzRjODBiMjQ0MTljYi4uZmUzYjllYmM1ZjU1NmE4NjVkZjhiNDY4
NDdlMmFkMDVmZmExNzQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9tYWMvV2ViQ29yZVN1
cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvbWFjL1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5tbQpAQCAtMjE2LDYgKzIxNiwxMSBA
QCBpbnQgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpnZXRQYXN0ZWJvYXJkSXRlbXNDb3VudChjb25z
dCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQogICAgIHJldHVybiBQbGF0Zm9ybVBhc3RlYm9hcmQo
cGFzdGVib2FyZE5hbWUpLmNvdW50KCk7CiB9CiAKK3ZvaWQgV2ViUGxhdGZvcm1TdHJhdGVnaWVz
Ojp1cGRhdGVQcmVmZXJyZWRUeXBlSWRlbnRpZmllcnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGlk
ZW50aWZpZXJzLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQoreworICAgIFBsYXRmb3Jt
UGFzdGVib2FyZChwYXN0ZWJvYXJkTmFtZSkudXBkYXRlUHJlZmVycmVkVHlwZUlkZW50aWZpZXJz
KGlkZW50aWZpZXJzKTsKK30KKwogUmVmUHRyPFdlYkNvcmU6OlNoYXJlZEJ1ZmZlcj4gV2ViUGxh
dGZvcm1TdHJhdGVnaWVzOjpyZWFkQnVmZmVyRnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBjb25z
dCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpCiB7CiAgICAgcmV0
dXJuIFBsYXRmb3JtUGFzdGVib2FyZChwYXN0ZWJvYXJkTmFtZSkucmVhZEJ1ZmZlcihpbmRleCwg
dHlwZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViUGFz
dGVib2FyZFByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2Vi
UGFzdGVib2FyZFByb3h5Q29jb2EubW0KaW5kZXggOWNjMWI4Nzk0ZmZmY2M1NmFiMzA2ZDE5MWEx
NjYyYzk4Y2I2MjM0MC4uOWZmMDU2ZmJjOTVkMGU4NWQxMDIzZjUyMGQ2ODRkNzVkM2Y5YjE0ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYlBhc3RlYm9hcmRQ
cm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJQYXN0
ZWJvYXJkUHJveHlDb2NvYS5tbQpAQCAtMTk4LDYgKzE5OCwxMSBAQCB2b2lkIFdlYlBhc3RlYm9h
cmRQcm94eTo6Z2V0RmlsZW5hbWVzRm9yRGF0YUludGVyYWN0aW9uKGNvbnN0IFN0cmluZyYgcGFz
dGVib2FyZAogICAgIGZpbGVuYW1lcyA9IFBsYXRmb3JtUGFzdGVib2FyZChwYXN0ZWJvYXJkTmFt
ZSkuZmlsZW5hbWVzRm9yRGF0YUludGVyYWN0aW9uKCk7CiB9CiAKK3ZvaWQgV2ViUGFzdGVib2Fy
ZFByb3h5Ojp1cGRhdGVQcmVmZXJyZWRUeXBlSWRlbnRpZmllcnMoY29uc3QgVmVjdG9yPFN0cmlu
Zz4mIGlkZW50aWZpZXJzLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKQoreworICAgIFBs
YXRmb3JtUGFzdGVib2FyZChwYXN0ZWJvYXJkTmFtZSkudXBkYXRlUHJlZmVycmVkVHlwZUlkZW50
aWZpZXJzKGlkZW50aWZpZXJzKTsKK30KKwogI2VuZGlmCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94
eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5oCmluZGV4
IGI1YTUzMWE5NjAyNGFlYTk3NjkzYzQ2YTc2MGYyNzM0NzdhOTQ3MTMuLjQ0ZTgzNjU1M2I1NWY2
NjZiOTQxNWJlMzJjNjBiYThjMTg3YWNhN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViUGFzdGVib2FyZFByb3h5LmgKQEAgLTc5LDYgKzc5LDcgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHJlYWRCdWZmZXJGcm9tUGFzdGVib2FyZCh1aW50NjRfdCBpbmRleCwgY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkVHlwZSwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSwgU2hhcmVkTWVt
b3J5OjpIYW5kbGUmLCB1aW50NjRfdCYgc2l6ZSk7CiAgICAgdm9pZCBnZXRQYXN0ZWJvYXJkSXRl
bXNDb3VudChjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCB1aW50NjRfdCYgaXRlbXNDb3Vu
dCk7CiAgICAgdm9pZCBnZXRGaWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rpb24oY29uc3QgU3RyaW5n
JiBwYXN0ZWJvYXJkTmFtZSwgVmVjdG9yPFN0cmluZz4mIGZpbGVuYW1lcyk7CisgICAgdm9pZCB1
cGRhdGVQcmVmZXJyZWRUeXBlSWRlbnRpZmllcnMoY29uc3QgVmVjdG9yPFN0cmluZz4mIGlkZW50
aWZpZXJzLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKTsKICNlbmRpZgogI2lmIFBMQVRG
T1JNKENPQ09BKQogICAgIHZvaWQgZ2V0TnVtYmVyT2ZGaWxlcyhjb25zdCBTdHJpbmcmIHBhc3Rl
Ym9hcmROYW1lLCB1aW50NjRfdCYgbnVtYmVyT2ZGaWxlcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhc3RlYm9hcmRQcm94eS5tZXNzYWdlcy5pbgppbmRleCAy
NDE0MjVkYWI0MWFkZDE0YjUwOWYwNmY3NmQxODA2MGMzZjEwNzRiLi43NjZiYzEyZWQzYjI4YzMx
NTc5YTA4MTMzMWMwYzdmOGQwNDg3NTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViUGFzdGVib2FyZFByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYXN0ZWJvYXJkUHJveHkubWVzc2FnZXMuaW4KQEAgLTMxLDYgKzMxLDcg
QEAgbWVzc2FnZXMgLT4gV2ViUGFzdGVib2FyZFByb3h5IHsKICAgICBSZWFkQnVmZmVyRnJvbVBh
c3RlYm9hcmQodWludDY0X3QgaW5kZXgsIFN0cmluZyBwYXN0ZWJvYXJkVHlwZSwgU3RyaW5nIHBh
c3RlYm9hcmROYW1lKSAtPiAoV2ViS2l0OjpTaGFyZWRNZW1vcnk6OkhhbmRsZSBoYW5kbGUsIHVp
bnQ2NF90IHNpemUpCiAgICAgR2V0UGFzdGVib2FyZEl0ZW1zQ291bnQoU3RyaW5nIHBhc3RlYm9h
cmROYW1lKSAtPiAodWludDY0X3QgaXRlbXNDb3VudCkKICAgICBHZXRGaWxlbmFtZXNGb3JEYXRh
SW50ZXJhY3Rpb24oU3RyaW5nIHBhc3RlYm9hcmROYW1lKSAtPiAoVmVjdG9yPFN0cmluZz4gZmls
ZW5hbWVzKQorICAgIFVwZGF0ZVByZWZlcnJlZFR5cGVJZGVudGlmaWVycyhWZWN0b3I8U3RyaW5n
PiBpZGVudGlmaWVycywgU3RyaW5nIHBhc3RlYm9hcmROYW1lKQogICAgIEdldFBhc3RlYm9hcmRU
eXBlc0J5RmlkZWxpdHlGb3JJdGVtQXRJbmRleCh1aW50NjRfdCBpbmRleCwgU3RyaW5nIHBhc3Rl
Ym9hcmROYW1lKSAtPiAoVmVjdG9yPFN0cmluZz4gdHlwZXMpCiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0
cmF0ZWdpZXMuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCmluZGV4IDI0ODYyYmQ0MWE2ZmEzNzUzMWY3NzdhNzk3
ZGMxNDdiMGRiZjIzYmEuLjgyMzI5MGRmNDI0YTk3MWQ4NGNhNTIwZWZmNmQ4OTQ3ZjQyZjVjMDcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAKQEAgLTMyNCw2ICszMjQsMTEg
QEAgdm9pZCBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmdldEZpbGVuYW1lc0ZvckRhdGFJbnRlcmFj
dGlvbihWZWN0b3I8U3RyaW5nPiYgZmlsZW4KICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5w
YXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kU3luYyhNZXNzYWdlczo6V2ViUGFzdGVib2Fy
ZFByb3h5OjpHZXRGaWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rpb24ocGFzdGVib2FyZE5hbWUpLCBN
ZXNzYWdlczo6V2ViUGFzdGVib2FyZFByb3h5OjpHZXRGaWxlbmFtZXNGb3JEYXRhSW50ZXJhY3Rp
b246OlJlcGx5KGZpbGVuYW1lcyksIDApOwogfQogCit2b2lkIFdlYlBsYXRmb3JtU3RyYXRlZ2ll
czo6dXBkYXRlUHJlZmVycmVkVHlwZUlkZW50aWZpZXJzKGNvbnN0IFZlY3RvcjxTdHJpbmc+JiBp
ZGVudGlmaWVycywgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkKK3sKKyAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpXZWJQYXN0ZWJvYXJkUHJveHk6OlVwZGF0ZVByZWZlcnJlZFR5cGVJZGVudGlmaWVycyhpZGVu
dGlmaWVycywgcGFzdGVib2FyZE5hbWUpLCAwKTsKK30KKwogUmVmUHRyPFdlYkNvcmU6OlNoYXJl
ZEJ1ZmZlcj4gV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpyZWFkQnVmZmVyRnJvbVBhc3RlYm9hcmQo
aW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBjb25zdCBTdHJpbmcmIHBh
c3RlYm9hcmROYW1lKQogewogICAgIFNoYXJlZE1lbW9yeTo6SGFuZGxlIGhhbmRsZTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZv
cm1TdHJhdGVnaWVzLmggYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCmluZGV4IGM4MGZhZmNhYWUzM2NiYjY0MTM2MzNkMWY2
N2IwZWFiZjQ0NzJiZjcuLjQxOTM4ZWQ5ZWIxZGExZWVhNjg4YWE1MWQ5MzczNDA2MTk3NmMxOWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaApAQCAtNjgsNiArNjgsNyBAQCBwcml2
YXRlOgogICAgIFJlZlB0cjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+IHJlYWRCdWZmZXJGcm9tUGFz
dGVib2FyZChpbnQgaW5kZXgsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZFR5cGUsIGNvbnN0IFN0
cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogICAgIFdlYkNvcmU6OlVSTCByZWFkVVJM
RnJvbVBhc3RlYm9hcmQoaW50IGluZGV4LCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmRUeXBlLCBj
b25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lLCBTdHJpbmcmIHRpdGxlKSBvdmVycmlkZTsKICAg
ICB2b2lkIGdldEZpbGVuYW1lc0ZvckRhdGFJbnRlcmFjdGlvbihWZWN0b3I8U3RyaW5nPiYgZmls
ZW5hbWVzLCBjb25zdCBTdHJpbmcmIHBhc3RlYm9hcmROYW1lKSBvdmVycmlkZTsKKyAgICB2b2lk
IHVwZGF0ZVByZWZlcnJlZFR5cGVJZGVudGlmaWVycyhjb25zdCBWZWN0b3I8U3RyaW5nPiYgaWRl
bnRpZmllcnMsIGNvbnN0IFN0cmluZyYgcGFzdGVib2FyZE5hbWUpIG92ZXJyaWRlOwogICAgIHZv
aWQgZ2V0VHlwZXNCeUZpZGVsaXR5Rm9ySXRlbUF0SW5kZXgoVmVjdG9yPFN0cmluZz4mIHR5cGVz
LCB1aW50NjRfdCBpbmRleCwgY29uc3QgU3RyaW5nJiBwYXN0ZWJvYXJkTmFtZSkgb3ZlcnJpZGU7
CiAjZW5kaWYKICNpZiBQTEFURk9STShDT0NPQSkK
</data>
<flag name="review"
          id="329465"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>