<?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>211990</bug_id>
          
          <creation_ts>2020-05-16 14:21:54 -0700</creation_ts>
          <short_desc>Allow clipboard API access when pasting from a menu item or key binding</short_desc>
          <delta_ts>2020-05-18 12:05:32 -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>dino</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>megan_gardner</cc>
    
    <cc>mifenton</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1653356</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-05-16 14:21:54 -0700</bug_when>
    <thetext>Allow the page to read from the clipboard when handling a paste, as long as the paste was explicitly triggered by the user (i.e. from menu or key binding).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653357</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-05-16 14:22:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/63308916&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653358</commentid>
    <comment_count>2</comment_count>
      <attachid>399567</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-05-16 14:30:28 -0700</bug_when>
    <thetext>Created attachment 399567
For EWS (WIP)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653359</commentid>
    <comment_count>3</comment_count>
      <attachid>399568</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-05-16 14:31:00 -0700</bug_when>
    <thetext>Created attachment 399568
For EWS (WIP)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653368</commentid>
    <comment_count>4</comment_count>
      <attachid>399573</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-05-16 16:37:56 -0700</bug_when>
    <thetext>Created attachment 399573
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1653705</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-05-18 12:05:31 -0700</bug_when>
    <thetext>Committed r261825: &lt;https://trac.webkit.org/changeset/261825&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 399573.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399567</attachid>
            <date>2020-05-16 14:30:28 -0700</date>
            <delta_ts>2020-05-16 14:30:59 -0700</delta_ts>
            <desc>For EWS (WIP)</desc>
            <filename>bug-211990-20200516143027.patch</filename>
            <type>text/plain</type>
            <size>35420</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQ0YWFlM2RlYTZlNzlj
MTNmNTIxZjFjYmZiMmVkMGI1YzNhZmZhMi4uYmUxMzQwNWY3MjRhMGM3ODRlNjJlNjczMzRlMmYz
NzJlOWZhZjc3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTA1LTE2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IGNsaXBi
b2FyZCBBUEkgYWNjZXNzIHdoZW4gcGFzdGluZyBmcm9tIGEgbWVudSBpdGVtIG9yIGtleSBiaW5k
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE5
OTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzMzA4OTE2PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGVkaXRpbmcvYXN5bmMtY2xpcGJv
YXJkL2NsaXBib2FyZC1yZWFkLXdoaWxlLXBhc3RpbmcuaHRtbAorCisgICAgICAgICogZWRpdGlu
Zy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwYXN0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3I6OnBhc3RlQXNQbGFpblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yOjpwYXN0ZUFzUXVvdGF0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjppc1Bhc3RpbmdGcm9tTWVudU9yS2V5QmluZGluZyBj
b25zdCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmV4ZWN1dGVQYXN0ZSk6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlUGFzdGVBbmRN
YXRjaFN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVQYXN0ZUFzUGxhaW5UZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVQYXN0ZUFzUXVvdGF0aW9uKToKKyAgICAgICAgKiBw
YWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpyZXF1ZXN0RE9NUGFzdGVB
Y2Nlc3MpOgorCiAyMDIwLTA1LTE0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgogCiAgICAgICAgIFttYWNPU10gVXBkYXRlIHRoZSBwbGFjZWhvbGRlciBpY29uIGltYWdl
IGZvciBhdHRhY2htZW50IGVsZW1lbnRzIHdpdGggcHJvZ3Jlc3M9IjAiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDA4
NDI2YTU5NzFhNjUwNmU0ZGNhZGIwODEzOTc2OTU2NGNhNGMzMDMuLjMyOWQ5MWY1MmM3ZWVmYWQw
YmI5NTg5MzJiNDVmMTVmYzkxNDEwNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjAt
MDUtMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAg
W2lPU10gVW5leHBlY3RlZCBjYXBpdGFsaXphdGlvbiBvZiBuZXh0IHdvcmQgYWZ0ZXIgcmVwb3Np
dGlvbmluZyBjYXJldAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjExOTY5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MjYwNTUyNj4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgY2hhbmdlcyBpbiBy
MjQyNTUxIHJlZmFjdG9yZWQgc3luY2hyb25vdXMgYXV0b2NvcnJlY3Rpb24gY29udGV4dCByZXF1
ZXN0IGxvZ2ljIHN1Y2ggdGhhdCBpdCB1c2VzCisgICAgICAgIGB3YWl0Rm9yQW5kRGlzcGF0Y2hJ
bW1lZGlhdGVseWAgaW5zdGVhZCBvZiBgc2VuZFN5bmNgLCBpbiBvcmRlciB0byBtYWtlIGl0IGlu
dGVycnVwdGlibGUgYnkgdW5ib3VuZGVkIHN5bmMgSVBDCisgICAgICAgIHNlbnQgZnJvbSB0aGUg
d2ViIHByb2Nlc3MuIElmIHRoZSBVSSBwcm9jZXNzIHJlY2VpdmVzIHN5bmMgSVBDLCBpdCB3aWxs
IGltbWVkaWF0ZWx5IGNhbmNlbCB0aGUgYXV0b2NvcnJlY3Rpb24KKyAgICAgICAgY29udGV4dCBy
ZXF1ZXN0IChyZXR1cm5pbmcgYW4gZW1wdHkgY29udGV4dCksIGJlZm9yZSBwcm9jZWVkaW5nIHRv
IGhhbmRsZSB0aGUgaW5jb21pbmcgc3luYyBJUEMuCisKKyAgICAgICAgSW4gYSBtb3JlIHJlY2Vu
dCB2ZXJzaW9uIG9mIGlPUywgb3RoZXIgY2hhbmdlcyBhcm91bmQgc3BlbGxjaGVja2luZyBoYXZl
IGNhdXNlZCB0aGUgc3luY2hyb25vdXMgbWVzc2FnZQorICAgICAgICBgV2ViUGFnZVByb3h5Ojpj
aGVja1RleHRPZlBhcmFncmFwaGAgdG8gYmUgc2VudCBmcm9tIHRoZSB3ZWIgcHJvY2VzcyBpbiBz
dWNoIGEgd2F5IHRoYXQgaXQgbm93IGZyZXF1ZW50bHkKKyAgICAgICAgY29pbmNpZGVzIHdpdGgg
dGhlIHN5bmNocm9ub3VzIGF1dG9jb3JyZWN0aW9uIGNvbnRleHQgcmVxdWVzdCBiZWluZyBzZW50
IGZyb20gdGhlIFVJIHByb2Nlc3MuIFRoZSByZXN1bHQgaXMgdGhhdAorICAgICAgICB3ZSBub3cg
ZnJlcXVlbnRseSBlbmQgdXAgY2FuY2VsbGluZyBhdXRvY29ycmVjdGlvbiByZXF1ZXN0cyBlYXJs
eSBieSByZXNwb25kaW5nIHdpdGggZW1wdHkgY29udGV4dHMuIFRoaXMKKyAgICAgICAgbWFuaWZl
c3RzIGluIHRoZSBrZXlib2FyZCBzb21ldGltZXMgbG9zaW5nIGluZm9ybWF0aW9uIGFib3V0IGl0
cyBhdXRvY2FwaXRhbGl6YXRpb24gY29udGV4dCBhbmQgYmVsaWV2aW5nIHRoYXQKKyAgICAgICAg
aXQgaXMgaW4gYW4gZW1wdHkgdGV4dCBmaWVsZCwgd2hpY2ggcmV2ZXJ0cyB0byBkZWZhdWx0IGF1
dG9jb3JyZWN0aW9uIHN1Z2dlc3Rpb25zIGFuZCBhdXRvY2FwaXRhbGl6ZXMgdGhlCisgICAgICAg
IHNvZnR3YXJlIGtleWJvYXJkLgorCisgICAgICAgIFRvIGZpeCB0aGlzLCBpbnN0ZWFkIG9mIHVz
aW5nIHRoZSBgSW50ZXJydXB0V2FpdGluZ0lmU3luY01lc3NhZ2VBcnJpdmVzYCBvcHRpb24gd2hl
biB3YWl0aW5nIGZvciB0aGUgSVBDCisgICAgICAgIHJlc3BvbnNlLCBhZGQgYW5kIHVzZSBhIG5l
dyBmbGFnIHRoYXQgYWxsb3dzIHVzIHRvIHByb2Nlc3MgYW4gaW5jb21pbmcgc3luYyBJUEMgbWVz
c2FnZSBpZiB3ZSdyZSB3YWl0aW5nIGZvcgorICAgICAgICB0aGUgc3luYyBtZXNzYWdlIHJlc3Bv
bnNlLiBXZSB1c2UgdGhpcyBuZXcgSVBDIGZsYWcgd2hlbiB3YWl0aW5nIHN5bmNocm9ub3VzbHkg
Zm9yIEhhbmRsZUF1dG9jb3JyZWN0aW9uQ29udGV4dC4KKworICAgICAgICBUZXN0OiBlZGl0aW5n
L3NlbGVjdGlvbi9pb3MvY2hhbmdpbmctc2VsZWN0aW9uLWRvZXMtbm90LXRyaWdnZXItYXV0b2Nh
cGl0YWxpemF0aW9uLmh0bWwKKworICAgICAgICAqIFBsYXRmb3JtL0lQQy9Db25uZWN0aW9uLmNw
cDoKKyAgICAgICAgKElQQzo6Q29ubmVjdGlvbjo6cHJvY2Vzc0luY29taW5nTWVzc2FnZSk6CisK
KyAgICAgICAgSWYgdGhlIG5ldyBJUEMgZmxhZyBpcyBzZXQgYW5kIHRoZSBpbmNvbWluZyBtZXNz
YWdlIGlzIHN5bmNocm9ub3VzLCBhbGxvdyBpdCB0byBpbW1lZGlhdGVseSBkaXNwYXRjaCB0aGUg
c3luYworICAgICAgICBtZXNzYWdlIGJ5IGVucXVldWVpbmcgaXQgYW5kIHRoZW4gd2FraW5nIHVw
IGBtX3dhaXRGb3JNZXNzYWdlQ29uZGl0aW9uYCBzbyB0aGF0IGl0IGNhbiBwcm9jZXNzIHRoZSBt
ZXNzYWdlLgorCisgICAgICAgICogUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaDoKKyAgICAgICAg
KiBQbGF0Zm9ybS9zcGkvaW9zL1VJS2l0U1BJLmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW06CisgICAgICAgICgtW1dLQ29udGVudFZpZXcgcmVx
dWVzdEF1dG9jb3JyZWN0aW9uQ29udGV4dFdpdGhDb21wbGV0aW9uSGFuZGxlcjpdKToKKworICAg
ICAgICBVc2UgYERpc3BhdGNoSW5jb21pbmdTeW5jTWVzc2FnZXNXaGlsZVdhaXRpbmdgIGluc3Rl
YWQgb2YgYEludGVycnVwdFdhaXRpbmdJZlN5bmNNZXNzYWdlQXJyaXZlc2AuCisKIDIwMjAtMDUt
MTQgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoIGlu
IFBERlBsdWdpbjo6ZW5zdXJlRGF0YUJ1ZmZlckxlbmd0aApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCmluZGV4IDEwMjgxNzM1NzMxOWNlMWMwZDE5ZDUzZGVlODc3M2M4MzY1MDc4NzQuLmRkMzFm
YmIxZDRmNjI2MTI0MTkzOTViMTU5YjQwMzQ3MTJkOTkyYWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0Vk
aXRvci5jcHAKQEAgLTExOCw2ICsxMTgsNyBAQAogI2luY2x1ZGUgPHBhbC9GaWxlU2l6ZUZvcm1h
dHRlci5oPgogI2luY2x1ZGUgPHBhbC9zeXN0ZW0vU291bmQuaD4KICNpbmNsdWRlIDxwYWwvdGV4
dC9LaWxsUmluZy5oPgorI2luY2x1ZGUgPHd0Zi9TZXRGb3JTY29wZS5oPgogI2luY2x1ZGUgPHd0
Zi91bmljb2RlL0NoYXJhY3Rlck5hbWVzLmg+CiAKICNpZiBQTEFURk9STShNQUMpCkBAIC0xNDQ0
LDEzICsxNDQ1LDE1IEBAIHZvaWQgRWRpdG9yOjpwZXJmb3JtQ3V0T3JDb3B5KEVkaXRvckFjdGlv
blNwZWNpZmllciBhY3Rpb24pCiAgICAgfQogfQogCi12b2lkIEVkaXRvcjo6cGFzdGUoKQordm9p
ZCBFZGl0b3I6OnBhc3RlKEZyb21NZW51T3JLZXlCaW5kaW5nIGZyb21NZW51T3JLZXlCaW5kaW5n
KQogewotICAgIHBhc3RlKCpQYXN0ZWJvYXJkOjpjcmVhdGVGb3JDb3B5QW5kUGFzdGUoKSk7Cisg
ICAgcGFzdGUoKlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpLCBmcm9tTWVudU9y
S2V5QmluZGluZyk7CiB9CiAKLXZvaWQgRWRpdG9yOjpwYXN0ZShQYXN0ZWJvYXJkJiBwYXN0ZWJv
YXJkKQordm9pZCBFZGl0b3I6OnBhc3RlKFBhc3RlYm9hcmQmIHBhc3RlYm9hcmQsIEZyb21NZW51
T3JLZXlCaW5kaW5nIGZyb21NZW51T3JLZXlCaW5kaW5nKQogeworICAgIFNldEZvclNjb3BlPGJv
b2w+IHBhc3RlU2NvcGUgeyBtX3Bhc3RpbmdGcm9tTWVudU9yS2V5QmluZGluZywgZnJvbU1lbnVP
cktleUJpbmRpbmcgPT0gRnJvbU1lbnVPcktleUJpbmRpbmc6OlllcyB9OworCiAgICAgaWYgKCFk
aXNwYXRjaENsaXBib2FyZEV2ZW50KGZpbmRFdmVudFRhcmdldEZyb21TZWxlY3Rpb24oKSwgQ2xp
cGJvYXJkRXZlbnRLaW5kOjpQYXN0ZSkpCiAgICAgICAgIHJldHVybjsgLy8gREhUTUwgZGlkIHRo
ZSB3aG9sZSBvcGVyYXRpb24KICAgICBpZiAoIWNhblBhc3RlKCkpCkBAIC0xNDYzLDggKzE0NjYs
MTAgQEAgdm9pZCBFZGl0b3I6OnBhc3RlKFBhc3RlYm9hcmQmIHBhc3RlYm9hcmQpCiAgICAgICAg
IHBhc3RlQXNQbGFpblRleHRXaXRoUGFzdGVib2FyZChwYXN0ZWJvYXJkKTsKIH0KIAotdm9pZCBF
ZGl0b3I6OnBhc3RlQXNQbGFpblRleHQoKQordm9pZCBFZGl0b3I6OnBhc3RlQXNQbGFpblRleHQo
RnJvbU1lbnVPcktleUJpbmRpbmcgZnJvbU1lbnVPcktleUJpbmRpbmcpCiB7CisgICAgU2V0Rm9y
U2NvcGU8Ym9vbD4gcGFzdGVTY29wZSB7IG1fcGFzdGluZ0Zyb21NZW51T3JLZXlCaW5kaW5nLCBm
cm9tTWVudU9yS2V5QmluZGluZyA9PSBGcm9tTWVudU9yS2V5QmluZGluZzo6WWVzIH07CisKICAg
ICBpZiAoIWRpc3BhdGNoQ2xpcGJvYXJkRXZlbnQoZmluZEV2ZW50VGFyZ2V0RnJvbVNlbGVjdGlv
bigpLCBDbGlwYm9hcmRFdmVudEtpbmQ6OlBhc3RlQXNQbGFpblRleHQpKQogICAgICAgICByZXR1
cm47CiAgICAgaWYgKCFjYW5QYXN0ZSgpKQpAQCAtMTQ3Myw4ICsxNDc4LDEwIEBAIHZvaWQgRWRp
dG9yOjpwYXN0ZUFzUGxhaW5UZXh0KCkKICAgICBwYXN0ZUFzUGxhaW5UZXh0V2l0aFBhc3RlYm9h
cmQoKlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpKTsKIH0KIAotdm9pZCBFZGl0
b3I6OnBhc3RlQXNRdW90YXRpb24oKQordm9pZCBFZGl0b3I6OnBhc3RlQXNRdW90YXRpb24oRnJv
bU1lbnVPcktleUJpbmRpbmcgZnJvbU1lbnVPcktleUJpbmRpbmcpCiB7CisgICAgU2V0Rm9yU2Nv
cGU8Ym9vbD4gcGFzdGVTY29wZSB7IG1fcGFzdGluZ0Zyb21NZW51T3JLZXlCaW5kaW5nLCBmcm9t
TWVudU9yS2V5QmluZGluZyA9PSBGcm9tTWVudU9yS2V5QmluZGluZzo6WWVzIH07CisKICAgICBp
ZiAoIWRpc3BhdGNoQ2xpcGJvYXJkRXZlbnQoZmluZEV2ZW50VGFyZ2V0RnJvbVNlbGVjdGlvbigp
LCBDbGlwYm9hcmRFdmVudEtpbmQ6OlBhc3RlQXNRdW90YXRpb24pKQogICAgICAgICByZXR1cm47
CiAgICAgaWYgKCFjYW5QYXN0ZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGlu
Zy9FZGl0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKaW5kZXggMmJlNjRh
NDU0ZjZjYzZiNDJlMjUzYzc3MjUxNDM4ZGE0NDIwMjQ4Zi4uNTEzN2MwZGVkMmRmZDFiYTE1M2Y4
NzIwYmE5MWZlYTA2NTU2YWE3NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCkBAIC0xODksMTAg
KzE4OSwxMiBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGN1dCgpOwogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgY29weSgpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcGFz
dGUoKTsKLSAgICB2b2lkIHBhc3RlKFBhc3RlYm9hcmQmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHBhc3RlQXNQbGFpblRleHQoKTsKLSAgICB2b2lkIHBhc3RlQXNRdW90YXRpb24oKTsKKwor
ICAgIGVudW0gY2xhc3MgRnJvbU1lbnVPcktleUJpbmRpbmcgOiBib29sIHsgTm8sIFllcyB9Owor
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcGFzdGUoRnJvbU1lbnVPcktleUJpbmRpbmcgPSBGcm9t
TWVudU9yS2V5QmluZGluZzo6Tm8pOworICAgIHZvaWQgcGFzdGUoUGFzdGVib2FyZCYsIEZyb21N
ZW51T3JLZXlCaW5kaW5nID0gRnJvbU1lbnVPcktleUJpbmRpbmc6Ok5vKTsKKyAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHBhc3RlQXNQbGFpblRleHQoRnJvbU1lbnVPcktleUJpbmRpbmcgPSBGcm9t
TWVudU9yS2V5QmluZGluZzo6Tm8pOworICAgIHZvaWQgcGFzdGVBc1F1b3RhdGlvbihGcm9tTWVu
dU9yS2V5QmluZGluZyA9IEZyb21NZW51T3JLZXlCaW5kaW5nOjpObyk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBwZXJmb3JtRGVsZXRlKCk7CiAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNv
cHlVUkwoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiB0aXRsZSk7CkBAIC01NzEsNiArNTczLDgg
QEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIFJlZlB0cjxUZXh0UGxhY2Vob2xkZXJFbGVt
ZW50PiBpbnNlcnRUZXh0UGxhY2Vob2xkZXIoY29uc3QgSW50U2l6ZSYpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgcmVtb3ZlVGV4dFBsYWNlaG9sZGVyKFRleHRQbGFjZWhvbGRlckVsZW1lbnQm
KTsKIAorICAgIGJvb2wgaXNQYXN0aW5nRnJvbU1lbnVPcktleUJpbmRpbmcoKSBjb25zdCB7IHJl
dHVybiBtX3Bhc3RpbmdGcm9tTWVudU9yS2V5QmluZGluZzsgfQorCiBwcml2YXRlOgogICAgIERv
Y3VtZW50JiBkb2N1bWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnQ7IH0KIApAQCAtNjU0
LDYgKzY1OCw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2VkaXRvclVJVXBkYXRlVGltZXJTaG91
bGRDaGVja1NwZWxsaW5nQW5kR3JhbW1hciB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2VkaXRvclVJ
VXBkYXRlVGltZXJXYXNUcmlnZ2VyZWRCeURpY3RhdGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBt
X2lzSGFuZGxpbmdBY2NlcHRlZENhbmRpZGF0ZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Bhc3Rp
bmdGcm9tTWVudU9yS2V5QmluZGluZyB7IGZhbHNlIH07CiAKICNpZiBFTkFCTEUoVEVMRVBIT05F
X05VTUJFUl9ERVRFQ1RJT04pICYmIFBMQVRGT1JNKE1BQykKICAgICBib29sIHNob3VsZERldGVj
dFRlbGVwaG9uZU51bWJlcnMoKSBjb25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNv
bW1hbmQuY3BwCmluZGV4IGRjZjNkY2VkYzlhYmViMzM5ZmYzODQ1MWI0YTg4ODI1MzkxNjE1NTgu
LjI0N2Q3YzhhMmMzMjI3MWE0ZTBlNzBkOGMzZGViZjExNmUyYTU0MTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcApAQCAtOTA1LDcgKzkwNSw3IEBAIHN0YXRpYyBi
b29sIGV4ZWN1dGVQYXN0ZShGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJj
ZSBzb3VyY2UsIGNvbnN0CiB7CiAgICAgaWYgKHNvdXJjZSA9PSBDb21tYW5kRnJvbU1lbnVPcktl
eUJpbmRpbmcpIHsKICAgICAgICAgVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IgdHlwaW5nR2Vz
dHVyZUluZGljYXRvcihmcmFtZSk7Ci0gICAgICAgIGZyYW1lLmVkaXRvcigpLnBhc3RlKCk7Cisg
ICAgICAgIGZyYW1lLmVkaXRvcigpLnBhc3RlKEVkaXRvcjo6RnJvbU1lbnVPcktleUJpbmRpbmc6
Olllcyk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtOTM2LDcgKzkzNiw3IEBA
IHN0YXRpYyBib29sIGV4ZWN1dGVQYXN0ZUFuZE1hdGNoU3R5bGUoRnJhbWUmIGZyYW1lLCBFdmVu
dCosIEVkaXRvckNvbW1hbmRTb3VyY2UKIHsKICAgICBpZiAoc291cmNlID09IENvbW1hbmRGcm9t
TWVudU9yS2V5QmluZGluZykgewogICAgICAgICBVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvciB0
eXBpbmdHZXN0dXJlSW5kaWNhdG9yKGZyYW1lKTsKLSAgICAgICAgZnJhbWUuZWRpdG9yKCkucGFz
dGVBc1BsYWluVGV4dCgpOworICAgICAgICBmcmFtZS5lZGl0b3IoKS5wYXN0ZUFzUGxhaW5UZXh0
KEVkaXRvcjo6RnJvbU1lbnVPcktleUJpbmRpbmc6Olllcyk7CiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KIApAQCAtOTUxLDcgKzk1MSw3IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVQYXN0ZUFz
UGxhaW5UZXh0KEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlIHNvCiB7
CiAgICAgaWYgKHNvdXJjZSA9PSBDb21tYW5kRnJvbU1lbnVPcktleUJpbmRpbmcpIHsKICAgICAg
ICAgVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IgdHlwaW5nR2VzdHVyZUluZGljYXRvcihmcmFt
ZSk7Ci0gICAgICAgIGZyYW1lLmVkaXRvcigpLnBhc3RlQXNQbGFpblRleHQoKTsKKyAgICAgICAg
ZnJhbWUuZWRpdG9yKCkucGFzdGVBc1BsYWluVGV4dChFZGl0b3I6OkZyb21NZW51T3JLZXlCaW5k
aW5nOjpZZXMpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTk2Niw3ICs5NjYs
NyBAQCBzdGF0aWMgYm9vbCBleGVjdXRlUGFzdGVBc1F1b3RhdGlvbihGcmFtZSYgZnJhbWUsIEV2
ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZSBzbwogewogICAgIGlmIChzb3VyY2UgPT0gQ29tbWFu
ZEZyb21NZW51T3JLZXlCaW5kaW5nKSB7CiAgICAgICAgIFVzZXJUeXBpbmdHZXN0dXJlSW5kaWNh
dG9yIHR5cGluZ0dlc3R1cmVJbmRpY2F0b3IoZnJhbWUpOwotICAgICAgICBmcmFtZS5lZGl0b3Io
KS5wYXN0ZUFzUXVvdGF0aW9uKCk7CisgICAgICAgIGZyYW1lLmVkaXRvcigpLnBhc3RlQXNRdW90
YXRpb24oRWRpdG9yOjpGcm9tTWVudU9yS2V5QmluZGluZzo6WWVzKTsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDU0MGY0NTZlZTgyMTk5YmJm
ZjcxZTY2ODhiYzBlODFmYTUyNWRkYTkuLmI4NmU5NWU0ZWU1ZGIzZTA4NzZjY2ZiYjg5MWRiZWIx
NzliMzIyOTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC01MzksNyArNTM5LDEzIEBAIGJvb2wg
RnJhbWU6OnJlcXVlc3RET01QYXN0ZUFjY2VzcygpCiAgICAgaWYgKG1fc2V0dGluZ3MtPmphdmFT
Y3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoKSAmJiBtX3NldHRpbmdzLT5ET01QYXN0ZUFsbG93ZWQo
KSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBpZiAoIW1fc2V0dGluZ3MtPmRvbVBhc3Rl
QWNjZXNzUmVxdWVzdHNFbmFibGVkKCkgfHwgIW1fZG9jKQorICAgIGlmICghbV9kb2MpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIGlmIChlZGl0b3IoKS5pc1Bhc3RpbmdGcm9tTWVudU9y
S2V5QmluZGluZygpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIGlmICghbV9zZXR0aW5n
cy0+ZG9tUGFzdGVBY2Nlc3NSZXF1ZXN0c0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogCiAgICAgYXV0byBnZXN0dXJlVG9rZW4gPSBVc2VyR2VzdHVyZUluZGljYXRvcjo6Y3VycmVu
dFVzZXJHZXN0dXJlKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL0lQQy9D
b25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3Bw
CmluZGV4IGIzMmZmNGY2YmMwMDNhZjI3MDBiOWY4NTdhNjU5OGRkNjFhOGFkNWIuLjcyNTg2NjBj
YzZjNzY1ZGYzMTI3MzAwYTIyNDVlZjgxNGNiMjM2YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZv
cm0vSVBDL0Nvbm5lY3Rpb24uY3BwCkBAIC03NTQsNiArNzU0LDExIEBAIHZvaWQgQ29ubmVjdGlv
bjo6cHJvY2Vzc0luY29taW5nTWVzc2FnZShzdGQ6OnVuaXF1ZV9wdHI8RGVjb2Rlcj4gbWVzc2Fn
ZSkKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKKyAgICAgICAgICAg
IGlmIChtX3dhaXRpbmdGb3JNZXNzYWdlLT53YWl0Rm9yT3B0aW9ucy5jb250YWlucyhXYWl0Rm9y
T3B0aW9uOjpEaXNwYXRjaEluY29taW5nU3luY01lc3NhZ2VzV2hpbGVXYWl0aW5nKSAmJiBtZXNz
YWdlLT5pc1N5bmNNZXNzYWdlKCkgJiYgU3luY01lc3NhZ2VTdGF0ZTo6c2luZ2xldG9uKCkucHJv
Y2Vzc0luY29taW5nTWVzc2FnZSgqdGhpcywgbWVzc2FnZSkpIHsKKyAgICAgICAgICAgICAgICBt
X3dhaXRGb3JNZXNzYWdlQ29uZGl0aW9uLm5vdGlmeU9uZSgpOworICAgICAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgaWYgKG1fd2FpdGluZ0Zvck1lc3Nh
Z2UtPndhaXRGb3JPcHRpb25zLmNvbnRhaW5zKFdhaXRGb3JPcHRpb246OkludGVycnVwdFdhaXRp
bmdJZlN5bmNNZXNzYWdlQXJyaXZlcykgJiYgbWVzc2FnZS0+aXNTeW5jTWVzc2FnZSgpKSB7CiAg
ICAgICAgICAgICAgICAgbV93YWl0aW5nRm9yTWVzc2FnZS0+bWVzc2FnZVdhaXRpbmdJbnRlcnJ1
cHRlZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgbV93YWl0Rm9yTWVzc2FnZUNvbmRpdGlvbi5u
b3RpZnlPbmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5l
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vSVBDL0Nvbm5lY3Rpb24uaAppbmRleCA4
NTkxNWY4YmJhZTAwNTMxMWQ4NDI3MzFkZDVmODE1NThhOTFmZDNhLi43OTNmOWI0ZmI0NWQxNGEw
ZDBjYTA0MjI1MDNkNWMzNzExZTYwNzE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRm
b3JtL0lQQy9Db25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9JUEMvQ29u
bmVjdGlvbi5oCkBAIC03NCw2ICs3NCw3IEBAIGVudW0gY2xhc3MgU2VuZFN5bmNPcHRpb24gewog
ZW51bSBjbGFzcyBXYWl0Rm9yT3B0aW9uIHsKICAgICAvLyBVc2UgdGhpcyB0byBtYWtlIHdhaXRG
b3JNZXNzYWdlIGJlIGludGVycnVwdGVkIGltbWVkaWF0ZWx5IGJ5IGFueSBpbmNvbWluZyBzeW5j
IG1lc3NhZ2VzLgogICAgIEludGVycnVwdFdhaXRpbmdJZlN5bmNNZXNzYWdlQXJyaXZlcyA9IDEg
PDwgMCwKKyAgICBEaXNwYXRjaEluY29taW5nU3luY01lc3NhZ2VzV2hpbGVXYWl0aW5nID0gMSA8
PCAxLAogfTsKIAogI2RlZmluZSBNRVNTQUdFX0NIRUNLX0JBU0UoYXNzZXJ0aW9uLCBjb25uZWN0
aW9uKSBNRVNTQUdFX0NIRUNLX0NPTVBMRVRJT05fQkFTRShhc3NlcnRpb24sIGNvbm5lY3Rpb24s
ICh2b2lkKTApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9pb3MvVUlL
aXRTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCmluZGV4
IGJjMWMyNTA1MWQ0YWJkOWE4MDk5NjI3YzA5NjFhYjk0M2JiYjcxNmMuLjliYWVhNGJlMjJiODI4
ZTYwYzVkYWUyMWE2NTdjZjNmODRlNzJlM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vc3BpL2lvcy9VSUtpdFNQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3Bp
L2lvcy9VSUtpdFNQSS5oCkBAIC0zMjEsNiArMzIxLDcgQEAgdHlwZWRlZiBlbnVtIHsKIC0gKHZv
aWQpYWRkSW5wdXRTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIHdpdGhGbGFnczooTlNVSW50ZWdl
cilmbGFnczsKIC0gKHZvaWQpYWRkSW5wdXRTdHJpbmc6KE5TU3RyaW5nICopc3RyaW5nIHdpdGhG
bGFnczooTlNVSW50ZWdlcilmbGFncyB3aXRoSW5wdXRNYW5hZ2VySGludDooTlNTdHJpbmcgKilo
aW50OwogLSAoQk9PTClhdXRvY29ycmVjdFNwZWxsaW5nRW5hYmxlZDsKKy0gKEJPT0wpaXNBdXRv
U2hpZnRlZDsKIC0gKHZvaWQpZGVsZXRlRnJvbUlucHV0OwogLSAodm9pZClkZWxldGVGcm9tSW5w
dXRXaXRoRmxhZ3M6KE5TVUludGVnZXIpZmxhZ3M7CiAtICh2b2lkKXJlcGxhY2VUZXh0OihpZCly
ZXBsYWNlbWVudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IGUwNDQ4OTg4NTMxZjJhMzBmMjhhMWE1ZDNl
MWJiNGU0YzFhYTY2NjYuLjNmZTI1YWM3ZTYyZjFjMmYxZWVhMDc1OTBiMTU1NzI3Yzc2ZTUzODUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZp
ZXdJbnRlcmFjdGlvbi5tbQpAQCAtNDIyOCw3ICs0MjI4LDcgQEAgLSAodm9pZClyZXF1ZXN0QXV0
b2NvcnJlY3Rpb25Db250ZXh0V2l0aENvbXBsZXRpb25IYW5kbGVyOih2b2lkICheKShVSVdLQXV0
b2NvcnIKICAgICBfcGFnZS0+cmVxdWVzdEF1dG9jb3JyZWN0aW9uQ29udGV4dCgpOwogCiAgICAg
aWYgKHVzZVN5bmNSZXF1ZXN0KSB7Ci0gICAgICAgIF9wYWdlLT5wcm9jZXNzKCkuY29ubmVjdGlv
bigpLT53YWl0Rm9yQW5kRGlzcGF0Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpIYW5kbGVBdXRvY29ycmVjdGlvbkNvbnRleHQ+KF9wYWdlLT53ZWJQYWdlSUQoKSwgMV9zLCBJ
UEM6OldhaXRGb3JPcHRpb246OkludGVycnVwdFdhaXRpbmdJZlN5bmNNZXNzYWdlQXJyaXZlcyk7
CisgICAgICAgIF9wYWdlLT5wcm9jZXNzKCkuY29ubmVjdGlvbigpLT53YWl0Rm9yQW5kRGlzcGF0
Y2hJbW1lZGlhdGVseTxNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpIYW5kbGVBdXRvY29ycmVjdGlv
bkNvbnRleHQ+KF9wYWdlLT53ZWJQYWdlSUQoKSwgMV9zLCBJUEM6OldhaXRGb3JPcHRpb246OkRp
c3BhdGNoSW5jb21pbmdTeW5jTWVzc2FnZXNXaGlsZVdhaXRpbmcpOwogICAgICAgICBbc2VsZiBf
Y2FuY2VsUGVuZGluZ0F1dG9jb3JyZWN0aW9uQ29udGV4dEhhbmRsZXJdOwogICAgIH0KIH0KZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmOGYzNWFj
MmZhOGE0YWUyOTQ3MGJlOTRiNTAzN2Q1YmE0NDdiYTA4Li5iODY2ZDY3MzUxMmUxMDcwYzYyNTFk
ODY0OGRkNTdkMjk3M2U3ZmMzIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9v
bHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDMgQEAKKzIwMjAtMDUtMTYgIFdlbnNvbiBIc2llaCAg
PHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgY2xpcGJvYXJkIEFQSSBh
Y2Nlc3Mgd2hlbiBwYXN0aW5nIGZyb20gYSBtZW51IGl0ZW0gb3Iga2V5IGJpbmRpbmcKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTk5MAorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vNjMzMDg5MTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jb2NvYS9VSVNjcmlwdENvbnRy
b2xsZXJDb2NvYS5oOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2NvY29hL1VJU2NyaXB0Q29u
dHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6
cGFzdGUpOgorICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRp
bmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGw6CisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmg6CisgICAgICAgIChXVFI6OlVJU2Ny
aXB0Q29udHJvbGxlcjo6cGFzdGUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY29jb2Ev
VUlTY3JpcHRDb250cm9sbGVyQ29jb2EuaDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2Nv
Y29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV1RSOjpVSVNjcmlwdENv
bnRyb2xsZXJDb2NvYTo6cGFzdGUpOgorCisyMDIwLTA1LTE1ICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFtpT1NdIFVuZXhwZWN0ZWQgY2FwaXRhbGl6
YXRpb24gb2YgbmV4dCB3b3JkIGFmdGVyIHJlcG9zaXRpb25pbmcgY2FyZXQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTk2OQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vNjI2MDU1MjY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIGEgbmV3IFVJU2NyaXB0Q29udHJvbGxlciBob29rIHRvIHF1ZXJ5
IHdoZXRoZXIgb3Igbm90IHRoZSBzb2Z0d2FyZSBrZXlib2FyZCBpcyBpbiBzaGlmdGVkIHN0YXRl
LgorCisgICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3Mv
VUlTY3JpcHRDb250cm9sbGVyLmlkbDoKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJU2Ny
aXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaDoKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRD
b250cm9sbGVyOjprZXlib2FyZElzQXV0b21hdGljYWxseVNoaWZ0ZWQgY29uc3QpOgorICAgICAg
ICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW06
CisKKyAgICAgICAgQWRqdXN0IGEgY291cGxlIG9mIEFQSSB0ZXN0cyB0aGF0IGNvcHkgYW5kIHBh
c3RlIGJhY2stdG8tYmFjaywgc28gdGhhdCB0aGV5IHdhaXQgZm9yIHRoZSBjb3B5IHRvIGZpbmlz
aCBiZWZvcmUKKyAgICAgICAgYXR0ZW1wdGluZyB0byBwYXN0ZS4KKworICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5oOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdUUjo6
VUlTY3JpcHRDb250cm9sbGVySU9TOjprZXlib2FyZElzQXV0b21hdGljYWxseVNoaWZ0ZWQgY29u
c3QpOgorCiAyMDIwLTA1LTE0ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AZ25vbWUu
b3JnPgogCiAgICAgICAgIHN0cmVzcy9hcnJheS1idWZmZXItdmlldy13YXRjaHBvaW50LWNhbi1i
ZS1maXJlZC1pbi1yZWFsbHktYWRkLWluLWRmZy5qcyBmYWlsaW5nIG9uIHBwYzY0bGUgYW5kIHMz
OTB4CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jb2NvYS9VSVNjcmlwdENvbnRy
b2xsZXJDb2NvYS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY29jb2EvVUlTY3JpcHRDb250cm9s
bGVyQ29jb2EuaAppbmRleCA4MDk1OWJmZjZkZTA0MzEwOGQwZGExYzgzMjc0M2FiMTMzMjE0NWM1
Li5hNjEyM2IwYjhiZjA3NjM4ZDhhYzcyMzkwZTk3ZDQzY2MwNzIwZmY3IDEwMDY0NAotLS0gYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5oCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLmgKQEAg
LTM0LDYgKzM0LDcgQEAgbmFtZXNwYWNlIFdUUiB7CiBjbGFzcyBVSVNjcmlwdENvbnRyb2xsZXJD
b2NvYSA6IHB1YmxpYyBVSVNjcmlwdENvbnRyb2xsZXIgewogcHVibGljOgogICAgIHZvaWQgc2V0
Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wpIG92ZXJyaWRlOworICAgIHZvaWQg
cGFzdGUoKSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFVJU2NyaXB0Q29u
dHJvbGxlckNvY29hKFVJU2NyaXB0Q29udGV4dCYpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0gYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbQppbmRleCA2N2E3ODBjYTIy
M2E0Y2U2MDA2Mjc0NzA0Nzg0MTUzODkwZDY5NzM4Li45M2QwNzVlMDM4ZTUwZWUxODI2OWY1YmMx
NjgxN2UzZjNhZTlhMzA3IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jb2NvYS9V
SVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jb2Nv
YS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbQpAQCAtNDQsNiArNDQsMTEgQEAgdm9pZCBVSVNj
cmlwdENvbnRyb2xsZXJDb2NvYTo6c2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJv
b2wgZW5hYmxlZCkKICAgICBtYWluRnJhbWUud2ViVmlldy5jb250aW51b3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQgPSBlbmFibGVkOwogfQogCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlckNvY29hOjpw
YXN0ZSgpCit7CisgICAgW21haW5GcmFtZS53ZWJWaWV3IHBhc3RlOm5pbF07Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdUUgogCiAjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENv
bnRyb2xsZXIuaWRsIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmlu
ZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAppbmRleCBjYTU3NTg4ZTNkODAyMjBlOGFjNzU2
NGIyNzY3NTZiMGJmMzY0MmE5Li41ZTIxYTgyNGVlMTYwNWJhZjMyYWYzYjdlOTFkZTAyZTE4ZTA3
Mzg5IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9C
aW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCisrKyBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFy
ZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKQEAgLTgw
LDYgKzgwLDggQEAgaW50ZXJmYWNlIFVJU2NyaXB0Q29udHJvbGxlciB7CiAgICAgdm9pZCB0b2dn
bGVDYXBzTG9jayhvYmplY3QgY2FsbGJhY2spOwogICAgIHZvaWQgc2V0Q29udGludW91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkKGJvb2xlYW4gZW5hYmxlZCk7CiAKKyAgICByZWFkb25seSBhdHRyaWJ1
dGUgYm9vbGVhbiBrZXlib2FyZElzQXV0b21hdGljYWxseVNoaWZ0ZWQ7CisKICAgICB2b2lkIHJh
d0tleURvd24oRE9NU3RyaW5nIGtleSk7CiAgICAgdm9pZCByYXdLZXlVcChET01TdHJpbmcga2V5
KTsKIApAQCAtMjY3LDYgKzI2OSw3IEBAIGludGVyZmFjZSBVSVNjcmlwdENvbnRyb2xsZXIgewog
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzUHJlc2VudGluZ01vZGFsbHk7CiAKICAg
ICB2b2lkIGNvcHlUZXh0KERPTVN0cmluZyB0ZXh0KTsKKyAgICB2b2lkIHBhc3RlKCk7CiAKICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGNvbnRlbnRPZmZzZXRYOwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBkb3VibGUgY29udGVudE9mZnNldFk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaCBiL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCmlu
ZGV4IDM0ZjhjOTYyY2RhODU5MGVjNjEzZjcxYTNmNWNmZTBkZTdkNmRjZmUuLjM0MDc0YjIzMjY0
Mjg5ODY0ZDI0MDcxMWRlNGU2MjQyOTk0OWVkOGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5u
ZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCkBA
IC0xMDYsNiArMTA2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXNpZ25GaXJzdFJl
c3BvbmRlcigpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGNvcHlU
ZXh0KEpTU3RyaW5nUmVmKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
cGFzdGUoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBjaG9vc2VN
ZW51QWN0aW9uKEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlz
bWlzc01lbnUoKTsKQEAgLTE2Myw2ICsxNjQsMTEgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBrZXlEb3duKEpTU3RyaW5nUmVmIGNoYXJhY3RlciwgSlNWYWx1ZVJlZiBtb2RpZmllckFycmF5
KSB7IG5vdEltcGxlbWVudGVkKCk7IH0KICAgICB2aXJ0dWFsIHZvaWQgdG9nZ2xlQ2Fwc0xvY2so
SlNWYWx1ZVJlZiBjYWxsYmFjaykgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiAgICAgdmlydHVhbCB2
b2lkIHNldENvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sKSB7IG5vdEltcGxlbWVu
dGVkKCk7IH0KKyAgICB2aXJ0dWFsIGJvb2wga2V5Ym9hcmRJc0F1dG9tYXRpY2FsbHlTaGlmdGVk
KCkgY29uc3QKKyAgICB7CisgICAgICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CiAKICAgICB2aXJ0dWFsIHZvaWQgcmF3S2V5RG93bihKU1N0cmluZ1Jl
ZikgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiAgICAgdmlydHVhbCB2b2lkIHJhd0tleVVwKEpTU3Ry
aW5nUmVmKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW0gYi9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLQXR0YWNobWVudFRlc3RzLm1tCmluZGV4IDFk
ZjgyOTU3MjAzMjE2ZWU2ZmE2NGRjZWY0NzE1MjU5ZmZhYjIxZjcuLjRmOWIzZGQ4MDBmNjkxZmM5
NzY1NmMzMjFlODMxZDAyZmY3OWI2YTYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0Q29jb2EvV0tBdHRhY2htZW50VGVzdHMubW0KKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS0F0dGFjaG1lbnRUZXN0cy5tbQpAQCAtMTE1NCw3
ICsxMTU0LDcgQEAgVEVTVChXS0F0dGFjaG1lbnRUZXN0cywgSW5zZXJ0QW5kUmVtb3ZlRHVwbGlj
YXRlQXR0YWNobWVudCkKICAgICAgICAgb2JzZXJ2ZXIuZXhwZWN0QXR0YWNobWVudFVwZGF0ZXMo
QFsgXSwgQFsgb3JpZ2luYWxBdHRhY2htZW50LmdldCgpIF0pOwogICAgIH0KICAgICBbd2ViVmll
dyBzZWxlY3RBbGw6bmlsXTsKLSAgICBbd2ViVmlldyBfZXhlY3V0ZUVkaXRDb21tYW5kOkAiQ29w
eSIgYXJndW1lbnQ6bmlsIGNvbXBsZXRpb246bmlsXTsKKyAgICBbd2ViVmlldyBfc3luY2hyb25v
dXNseUV4ZWN1dGVFZGl0Q29tbWFuZDpAIkNvcHkiIGFyZ3VtZW50Om5pbF07CiAgICAgW3dlYlZp
ZXcgZXZhbHVhdGVKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuY29sbGFwc2VUb0VuZCgpIiBj
b21wbGV0aW9uSGFuZGxlcjpuaWxdOwogICAgIHsKICAgICAgICAgT2JzZXJ2ZUF0dGFjaG1lbnRV
cGRhdGVzRm9yU2NvcGUgb2JzZXJ2ZXIod2ViVmlldy5nZXQoKSk7CkBAIC0xMTk2LDcgKzExOTYs
NyBAQCBURVNUKFdLQXR0YWNobWVudFRlc3RzLCBJbnNlcnREdXBsaWNhdGVBdHRhY2htZW50QW5k
VXBkYXRlRGF0YSkKICAgICAgICAgb2JzZXJ2ZXIuZXhwZWN0QXR0YWNobWVudFVwZGF0ZXMoQFsg
XSwgQFsgb3JpZ2luYWxBdHRhY2htZW50LmdldCgpIF0pOwogICAgIH0KICAgICBbd2ViVmlldyBz
ZWxlY3RBbGw6bmlsXTsKLSAgICBbd2ViVmlldyBfZXhlY3V0ZUVkaXRDb21tYW5kOkAiQ29weSIg
YXJndW1lbnQ6bmlsIGNvbXBsZXRpb246bmlsXTsKKyAgICBbd2ViVmlldyBfc3luY2hyb25vdXNs
eUV4ZWN1dGVFZGl0Q29tbWFuZDpAIkNvcHkiIGFyZ3VtZW50Om5pbF07CiAgICAgW3dlYlZpZXcg
ZXZhbHVhdGVKYXZhU2NyaXB0OkAiZ2V0U2VsZWN0aW9uKCkuY29sbGFwc2VUb0VuZCgpIiBjb21w
bGV0aW9uSGFuZGxlcjpuaWxdOwogICAgIHsKICAgICAgICAgT2JzZXJ2ZUF0dGFjaG1lbnRVcGRh
dGVzRm9yU2NvcGUgb2JzZXJ2ZXIod2ViVmlldy5nZXQoKSk7CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLmggYi9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLmgKaW5kZXggYzM5
Mzg0NDk4ZjA4MTAwMDIxN2YwOTZlMDA4MzVmOTM0ODVhOGYyYy4uOTZlZDdhZGEyZWE4MDc2Yjk3
ZWVhMTkwN2EwZmM5NjcyZmNjZjdhYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EuaApAQCAtNTQsNiArNTQsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBkaXNtaXNzTWVudSgpIG92ZXJyaWRlOwogICAgIGJvb2wgaXNTaG93
aW5nTWVudSgpIGNvbnN0IG92ZXJyaWRlOwogCisgICAgdm9pZCBwYXN0ZSgpIG92ZXJyaWRlOwor
CiAgICAgdm9pZCBzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCkgb3ZlcnJp
ZGU7CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29j
b2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0gYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2Nv
Y29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tCmluZGV4IDBjYTVmNDc4MTZkNWE3YzY4YzA0
ZTM3MTdiOTZjNjllYWFmMDczMGYuLjYyMjFiYjEzMTIxYWViZThiMDRmOTk1ZmM4MDE0ZGMyOTc5
OTZmYjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRD
b250cm9sbGVyQ29jb2EubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNj
cmlwdENvbnRyb2xsZXJDb2NvYS5tbQpAQCAtMzUsNiArMzUsMTAgQEAKICNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZUZv
clRlc3RpbmcuaD4KIAorQGludGVyZmFjZSBXS1dlYlZpZXcgKFdLV2ViVmlld0ludGVybmFsKQor
LSAodm9pZClwYXN0ZTooaWQpc2VuZGVyOworQGVuZAorCiBuYW1lc3BhY2UgV1RSIHsKIAogVUlT
Y3JpcHRDb250cm9sbGVyQ29jb2E6OlVJU2NyaXB0Q29udHJvbGxlckNvY29hKFVJU2NyaXB0Q29u
dGV4dCYgY29udGV4dCkKQEAgLTIwNCw0ICsyMDgsOSBAQCB2b2lkIFVJU2NyaXB0Q29udHJvbGxl
ckNvY29hOjpzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCBlbmFibGVkKQog
ICAgIFt3ZWJWaWV3KCkgX3NldENvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZEZvclRlc3Rp
bmc6ZW5hYmxlZF07CiB9CiAKK3ZvaWQgVUlTY3JpcHRDb250cm9sbGVyQ29jb2E6OnBhc3RlKCkK
K3sKKyAgICBbd2ViVmlldygpIHBhc3RlOm5pbF07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdUUgpk
aWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVy
SU9TLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1Mu
aAppbmRleCA2MzQ4ZmJlMWFiMDI3MjYzZTZiYTFlYzU5NTAzZjMxNDg4YjJhMmYwLi4xOTUxYjBk
YTEyY2NjZWIwZWNiNDdhM2YwNTk0MjM3YzAyMDY5NWViIDEwMDY0NAotLS0gYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MuaAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MuaApAQCAtMTM2LDYgKzEzNiw3
IEBAIHB1YmxpYzoKICAgICBsb25nIG51bWJlck9mU3Ryb2tlc0luRWRpdGFibGVJbWFnZSgpIG92
ZXJyaWRlOwogICAgIHZvaWQgc2V0S2V5Ym9hcmRJbnB1dE1vZGVJZGVudGlmaWVyKEpTU3RyaW5n
UmVmKSBvdmVycmlkZTsKICAgICB2b2lkIHRvZ2dsZUNhcHNMb2NrKEpTVmFsdWVSZWYpIG92ZXJy
aWRlOworICAgIGJvb2wga2V5Ym9hcmRJc0F1dG9tYXRpY2FsbHlTaGlmdGVkKCkgY29uc3Qgb3Zl
cnJpZGU7CiAgICAgSlNPYmplY3RSZWYgYXR0YWNobWVudEluZm8oSlNTdHJpbmdSZWYpIG92ZXJy
aWRlOwogICAgIFVJVmlldyAqcGxhdGZvcm1Db250ZW50VmlldygpIGNvbnN0IG92ZXJyaWRlOwog
ICAgIEpTT2JqZWN0UmVmIGNhbGVuZGFyVHlwZSgpIGNvbnN0IG92ZXJyaWRlOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9pb3MvVUlTY3JpcHRDb250cm9sbGVySU9TLm1tCmluZGV4
IDE0ZTZkZjg3MWJhYTYxY2UyZGRmYWNkMjYxNDI5Y2Y3OTM2YzEyYmMuLjY5ZWJiNzI5NTY4ZTdi
MWM5NGNlODlkMWY3ODc3NzdkYzNhMTk5YjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvaW9zL1VJU2NyaXB0Q29udHJvbGxlcklPUy5tbQorKysgYi9Ub29scy9XZWJLaXRUZXN0
UnVubmVyL2lvcy9VSVNjcmlwdENvbnRyb2xsZXJJT1MubW0KQEAgLTEyMDUsNiArMTIwNSwxMSBA
QCB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcklPUzo6dG9nZ2xlQ2Fwc0xvY2soSlNWYWx1ZVJlZiBj
YWxsYmFjaykKICAgICBkb0FzeW5jVGFzayhjYWxsYmFjayk7CiB9CiAKK2Jvb2wgVUlTY3JpcHRD
b250cm9sbGVySU9TOjprZXlib2FyZElzQXV0b21hdGljYWxseVNoaWZ0ZWQoKSBjb25zdAorewor
ICAgIHJldHVybiBVSUtleWJvYXJkSW1wbC5hY3RpdmVJbnN0YW5jZS5pc0F1dG9TaGlmdGVkOwor
fQorCiBKU09iamVjdFJlZiBVSVNjcmlwdENvbnRyb2xsZXJJT1M6OmF0dGFjaG1lbnRJbmZvKEpT
U3RyaW5nUmVmIGpzQXR0YWNobWVudElkZW50aWZpZXIpCiB7CiAgICAgYXV0byBhdHRhY2htZW50
SWRlbnRpZmllciA9IHRvV1RGU3RyaW5nKHRvV0soanNBdHRhY2htZW50SWRlbnRpZmllcikpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDg0YTJmNmRmYzdhZmZmOGE2ZGQzMGQzZjBmYTVkNGZiMjZhYTAyNjkuLjc2MTk4M2Iz
NWNhN2ZhNDYzODZkMjBmMGFhNTdhODdhOThhMTc1NmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAor
MjAyMC0wNS0xNiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KKworICAg
ICAgICBBbGxvdyBjbGlwYm9hcmQgQVBJIGFjY2VzcyB3aGVuIHBhc3RpbmcgZnJvbSBhIG1lbnUg
aXRlbSBvciBrZXkgYmluZGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjExOTkwCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MzMwODkxNj4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGVkaXRpbmcv
YXN5bmMtY2xpcGJvYXJkL2NsaXBib2FyZC1yZWFkLXdoaWxlLXBhc3RpbmctZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2FzeW5jLWNsaXBib2FyZC9jbGlwYm9hcmQtcmVh
ZC13aGlsZS1wYXN0aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0
RXhwZWN0YXRpb25zOgorICAgICAgICAqIHJlc291cmNlcy91aS1oZWxwZXIuanM6CisgICAgICAg
ICh3aW5kb3cuVUlIZWxwZXIuYXN5bmMgY29weVRleHQpOgorICAgICAgICAod2luZG93LlVJSGVs
cGVyLmFzeW5jIHBhc3RlKToKKworMjAyMC0wNS0xNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hz
aWVoQGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBVbmV4cGVjdGVkIGNhcGl0YWxpemF0aW9u
IG9mIG5leHQgd29yZCBhZnRlciByZXBvc2l0aW9uaW5nIGNhcmV0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE5NjkKKyAgICAgICAgPHJkYXI6Ly9w
cm9ibGVtLzYyNjA1NTI2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIEFkZCBhIG5ldyBsYXlvdXQgdGVzdCB0byB2ZXJpZnkgdGhhdCB0aGUga2V5Ym9h
cmQgZG9lcyBub3QgYXV0b21hdGljYWxseSBzaGlmdCAoaS5lLiBhdXRvY2FwaXRhbGl6ZSkgd2hl
bgorICAgICAgICBjaGFuZ2luZyBzZWxlY3Rpb24gcXVpY2tseSBpbnNpZGUgYSB0ZXh0IGZpZWxk
LgorCisgICAgICAgICogZWRpdGluZy9zZWxlY3Rpb24vaW9zL2NoYW5naW5nLXNlbGVjdGlvbi1k
b2VzLW5vdC10cmlnZ2VyLWF1dG9jYXBpdGFsaXphdGlvbi1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGVkaXRpbmcvc2VsZWN0aW9uL2lvcy9jaGFuZ2luZy1zZWxlY3Rpb24tZG9lcy1u
b3QtdHJpZ2dlci1hdXRvY2FwaXRhbGl6YXRpb24uaHRtbDogQWRkZWQuCisgICAgICAgICogcmVz
b3VyY2VzL3VpLWhlbHBlci5qczoKKyAgICAgICAgKHdpbmRvdy5VSUhlbHBlci5rZXlib2FyZElz
QXV0b21hdGljYWxseVNoaWZ0ZWQpOgorCiAyMDIwLTA1LTE0ICBEaWVnbyBQaW5vIEdhcmNpYSAg
PGRwaW5vQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gR2FyZGVuaW5nLCB1cGRhdGUgZXhw
ZWN0YXRpb25zIGFmdGVyIHIyNjE2MDkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcv
YXN5bmMtY2xpcGJvYXJkL2NsaXBib2FyZC1yZWFkLXdoaWxlLXBhc3RpbmctZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9hc3luYy1jbGlwYm9hcmQvY2xpcGJvYXJkLXJlYWQtd2hp
bGUtcGFzdGluZy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmExMTUxNmRjMmEyNmQ1ZjgwNTNm
MjU4ZjY0MmFlOGRiN2VkODFlNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRp
bmcvYXN5bmMtY2xpcGJvYXJkL2NsaXBib2FyZC1yZWFkLXdoaWxlLXBhc3RpbmctZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTIgQEAKK1RoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRoZSBjbGlwYm9h
cmQgaXMgYWNjZXNzaWJsZSB3aGlsZSBwZXJmb3JtaW5nIGEgcGFzdGUgZnJvbSBuYXRpdmUgVUku
IFRvIG1hbnVhbGx5IHJ1biB0aGUgdGVzdCwgY2xpY2sgdGhlICdDb3B5JyBidXR0b24gYWJvdmUs
IGFuZCB0aGVuIHBhc3RlIGluIHRoZSB0ZXh0IGZpZWxkIGJlbG93IHVzaW5nIG5hdGl2ZSBVSSAo
ZS5nLiBtZW51IGl0ZW0gb3IgY21kK1Ygb24gbWFjT1MsIGFuZCB0aGUgY2FsbG91dCBtZW51IG9u
IGlPUykuIFRoZSB0ZXh0ICdUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5
IGRvZy4nIHNob3VsZCBiZSByZWFkIHZpYSB0aGUgY2xpcGJvYXJkIEFQSSwgd2l0aG91dCB0cmln
Z2VyaW5nIGFuIGFkZGl0aW9uYWwgRE9NIHBhc3RlIG1lbnUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3
aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENP
TVBMRVRFIi4KKworCitQQVNTIGRvbmVXcml0aW5nVGV4dCBiZWNhbWUgdHJ1ZQorUEFTUyBSZWFk
IHRleHQ6ICdUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4nCitQ
QVNTIGRvbmVSZWFkaW5nVGV4dCBiZWNhbWUgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitDb3B5IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZWRpdGluZy9hc3luYy1jbGlwYm9hcmQvY2xpcGJvYXJkLXJlYWQtd2hpbGUtcGFzdGluZy5odG1s
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9hc3luYy1jbGlwYm9hcmQvY2xpcGJvYXJkLXJlYWQtd2hp
bGUtcGFzdGluZy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjZDAzMTk2N2M3YjZiMGI3MGIxMjQ2NWYwMDE4
OWRkZWZhZWYzYTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2FzeW5j
LWNsaXBib2FyZC9jbGlwYm9hcmQtcmVhZC13aGlsZS1wYXN0aW5nLmh0bWwKQEAgLTAsMCArMSw2
MyBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGli
bGVWaWV3cG9ydD10cnVlIGV4cGVyaW1lbnRhbDpBc3luY0NsaXBib2FyZEFQSUVuYWJsZWQ9dHJ1
ZSBkb21QYXN0ZUFsbG93ZWQ9ZmFsc2UgXSAtLT4KKzxodG1sPgorICAgIDxtZXRhIGNoYXJzZXQ9
InV0ZjgiPgorICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVu
dD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8i
PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2Ny
aXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+
PC9zY3JpcHQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIGJ1dHRvbiB7CisgICAgICAg
ICAgICAgICAgd2lkdGg6IDMwMHB4OworICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFlbTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgaW5wdXQgeworICAgICAgICAgICAgICAgIGRpc3Bs
YXk6IGJsb2NrOworICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogNDBweDsKKyAgICAgICAgICAg
ICAgICB3aWR0aDogMzAwcHg7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAg
PC9oZWFkPgorICAgIDxzY3JpcHQ+CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAg
ICAgICBkb25lV3JpdGluZ1RleHQgPSBmYWxzZTsKKyAgICAgICAgZG9uZVJlYWRpbmdUZXh0ID0g
ZmFsc2U7CisKKyAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRo
ZSBjbGlwYm9hcmQgaXMgYWNjZXNzaWJsZSB3aGlsZSBwZXJmb3JtaW5nIGEgcGFzdGUgZnJvbSBu
YXRpdmUgVUkuIFRvIG1hbnVhbGx5IHJ1biB0aGUgdGVzdCwgY2xpY2sgdGhlICdDb3B5JyBidXR0
b24gYWJvdmUsIGFuZCB0aGVuIHBhc3RlIGluIHRoZSB0ZXh0IGZpZWxkIGJlbG93IHVzaW5nIG5h
dGl2ZSBVSSAoZS5nLiBtZW51IGl0ZW0gb3IgY21kK1Ygb24gbWFjT1MsIGFuZCB0aGUgY2FsbG91
dCBtZW51IG9uIGlPUykuIFRoZSB0ZXh0ICdUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVy
IHRoZSBsYXp5IGRvZy4nIHNob3VsZCBiZSByZWFkIHZpYSB0aGUgY2xpcGJvYXJkIEFQSSwgd2l0
aG91dCB0cmlnZ2VyaW5nIGFuIGFkZGl0aW9uYWwgRE9NIHBhc3RlIG1lbnUuIik7CisKKyAgICAg
ICAgYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIGNvbnN0IGNvcHlCdXR0
b24gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJidXR0b24iKTsKKyAgICAgICAgICAgIGNvbnN0
IGZpZWxkID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKQorCisgICAgICAgICAgICBj
b3B5QnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgYXN5bmMgKCkgPT4geworICAgICAg
ICAgICAgICAgIGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KCJUaGUgcXVpY2sg
YnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4iKTsKKyAgICAgICAgICAgICAgICBk
b25lV3JpdGluZ1RleHQgPSB0cnVlOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGZp
ZWxkLmFkZEV2ZW50TGlzdGVuZXIoInBhc3RlIiwgYXN5bmMgZXZlbnQgPT4geworICAgICAgICAg
ICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICAgICAgdGVzdFBhc3Nl
ZChgUmVhZCB0ZXh0OiAnJHthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLnJlYWRUZXh0KCl9J2Ap
OworICAgICAgICAgICAgICAgIGRvbmVSZWFkaW5nVGV4dCA9IHRydWU7CisgICAgICAgICAgICB9
KTsKKworICAgICAgICAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAg
ICByZXR1cm47CisKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudChj
b3B5QnV0dG9uKTsKKyAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2hv
dWxkQmVjb21lRXF1YWwoImRvbmVXcml0aW5nVGV4dCIsICJ0cnVlIiwgcmVzb2x2ZSkpOworICAg
ICAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50QW5kV2FpdEZvcklucHV0U2Vz
c2lvbihmaWVsZCk7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5wYXN0ZSgpOworICAgICAg
ICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzaG91bGRCZWNvbWVFcXVhbCgiZG9u
ZVJlYWRpbmdUZXh0IiwgInRydWUiLCByZXNvbHZlKSk7CisKKyAgICAgICAgICAgIGZpZWxkLmJs
dXIoKTsKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JLZXlib2FyZFRvSGlkZSgp
OworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBhZGRF
dmVudExpc3RlbmVyKCJsb2FkIiwgcnVuVGVzdCk7CisgICAgPC9zY3JpcHQ+CisgICAgPGJvZHk+
CisgICAgICAgIDxidXR0b24+Q29weTwvYnV0dG9uPgorICAgICAgICA8aW5wdXQ+CisgICAgPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24v
aW9zL2NoYW5naW5nLXNlbGVjdGlvbi1kb2VzLW5vdC10cmlnZ2VyLWF1dG9jYXBpdGFsaXphdGlv
bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3MvY2hhbmdp
bmctc2VsZWN0aW9uLWRvZXMtbm90LXRyaWdnZXItYXV0b2NhcGl0YWxpemF0aW9uLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mMGQ3YzE1Y2JmODgyYmI2NzAxNDA0M2JiOWU5NjJlY2I5ZTdhNDIx
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vaW9zL2No
YW5naW5nLXNlbGVjdGlvbi1kb2VzLW5vdC10cmlnZ2VyLWF1dG9jYXBpdGFsaXphdGlvbi1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMSBAQAorCitWZXJpZmllcyB0aGF0IHRhcHBpbmcgdG8gY2hh
bmdlIHNlbGVjdGlvbiBkb2VzIG5vdCBsZWF2ZSB0aGUgc29mdHdhcmUga2V5Ym9hcmQgaW4gYSBz
dGF0ZSB3aGVyZSBpdCBpcyBhdXRvbWF0aWNhbGx5IHNoaWZ0ZWQuIFRvIG1hbnVhbGx5IHJ1biB0
aGUgdGVzdCwgZm9jdXMgdGhlIGlucHV0IGZpZWxkLCB0YXAgb24gJ3dvcmxkJywgYW5kIHRoZW4g
dGFwIG9uICdoZWxsbycgc3VjaCB0aGF0IHRoZSBmaW5hbCBzZWxlY3Rpb24gaXMgYWZ0ZXIgdGhl
IHdvcmQgJ2hlbGxvJy4gVGhlIGtleWJvYXJkIHNob3VsZCBub3QgYmUgaW4gc2hpZnRlZCBzdGF0
ZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mga2V5Ym9hcmRJc0F1dG9t
YXRpY2FsbHlTaGlmdGVkIGlzIGZhbHNlCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxl
Y3Rpb24vaW9zL2NoYW5naW5nLXNlbGVjdGlvbi1kb2VzLW5vdC10cmlnZ2VyLWF1dG9jYXBpdGFs
aXphdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9zZWxlY3Rpb24vaW9zL2NoYW5naW5n
LXNlbGVjdGlvbi1kb2VzLW5vdC10cmlnZ2VyLWF1dG9jYXBpdGFsaXphdGlvbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjhkNjQ2ODBkYTk5MGZjZGY3MzcwZjhhMTZkMDYyMjgyMTIyZDY1OTgKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3NlbGVjdGlvbi9pb3MvY2hhbmdpbmctc2Vs
ZWN0aW9uLWRvZXMtbm90LXRyaWdnZXItYXV0b2NhcGl0YWxpemF0aW9uLmh0bWwKQEAgLTAsMCAr
MSw2MiBAQAorPCFET0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxl
eGlibGVWaWV3cG9ydD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKzxtZXRhIG5hbWU9dmlld3Bv
cnQgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2Nh
bGFibGU9bm8iPgorPHN0eWxlPgorYm9keSwgaHRtbCB7CisgICAgd2lkdGg6IDEwMCU7CisgICAg
aGVpZ2h0OiAxMDAlOworICAgIG1hcmdpbjogMDsKK30KKworaW5wdXQgeworICAgIGZvbnQtc2l6
ZTogNDBweDsKKyAgICB3aWR0aDogMzAwcHg7CisgICAgaGVpZ2h0OiAxMDBweDsKK30KKzwvc3R5
bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8aW5wdXQgdmFsdWU9ImhlbGxvIHdvcmxkIj4KKyAg
ICA8cCBpZD0iZGVzY3JpcHRpb24iPjwvcD4KKyAgICA8cCBpZD0iY29uc29sZSI+PC9wPgorICAg
IDxzY3JpcHQ+CisgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1
dCIpOworICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgYXN5bmMgZnVuY3Rpb24gdGFw
QW5kV2FpdEZvclNlbGVjdGlvbkNoYW5nZSh4LCB5KQorICAgIHsKKyAgICAgICAgYXdhaXQgbmV3
IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICBsZXQgZG9uZUNvdW50ID0gMDsKKyAg
ICAgICAgICAgIGNvbnN0IGNoZWNrRG9uZSA9ICgpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAo
Kytkb25lQ291bnQgIT0gMikKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAg
ICAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIiwg
Y2hlY2tEb25lKTsKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgICAgICB9Owor
ICAgICAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2VsZWN0aW9uY2hhbmdlIiwg
Y2hlY2tEb25lKTsKKyAgICAgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQoeCwgeSkudGhlbihj
aGVja0RvbmUpOworICAgICAgICB9KTsKKyAgICB9CisKKyAgICBhZGRFdmVudExpc3RlbmVyKCJs
b2FkIiwgYXN5bmMgKCkgPT4geworICAgICAgICBkZXNjcmlwdGlvbigiVmVyaWZpZXMgdGhhdCB0
YXBwaW5nIHRvIGNoYW5nZSBzZWxlY3Rpb24gZG9lcyBub3QgbGVhdmUgdGhlIHNvZnR3YXJlIGtl
eWJvYXJkIGluIGEgc3RhdGUgd2hlcmUgaXQgaXMgYXV0b21hdGljYWxseSBzaGlmdGVkLiBUbyBt
YW51YWxseSBydW4gdGhlIHRlc3QsIGZvY3VzIHRoZSBpbnB1dCBmaWVsZCwgdGFwIG9uICd3b3Js
ZCcsIGFuZCB0aGVuIHRhcCBvbiAnaGVsbG8nIHN1Y2ggdGhhdCB0aGUgZmluYWwgc2VsZWN0aW9u
IGlzIGFmdGVyIHRoZSB3b3JkICdoZWxsbycuIFRoZSBrZXlib2FyZCBzaG91bGQgbm90IGJlIGlu
IHNoaWZ0ZWQgc3RhdGUuIik7CisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAg
ICAgICAgIGF3YWl0IFVJSGVscGVyLnNldEhhcmR3YXJlS2V5Ym9hcmRBdHRhY2hlZChmYWxzZSk7
CisKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50QW5kV2FpdEZvcklucHV0
U2Vzc2lvbihpbnB1dCk7CisgICAgICAgIGF3YWl0IHRhcEFuZFdhaXRGb3JTZWxlY3Rpb25DaGFu
Z2UoMTUwLCA1MCk7CisgICAgICAgIGF3YWl0IHRhcEFuZFdhaXRGb3JTZWxlY3Rpb25DaGFuZ2Uo
NzUsIDUwKTsKKworICAgICAgICBhd2FpdCBVSUhlbHBlci5lbnN1cmVQcmVzZW50YXRpb25VcGRh
dGUoKTsKKyAgICAgICAga2V5Ym9hcmRJc0F1dG9tYXRpY2FsbHlTaGlmdGVkID0gYXdhaXQgVUlI
ZWxwZXIua2V5Ym9hcmRJc0F1dG9tYXRpY2FsbHlTaGlmdGVkKCk7CisKKyAgICAgICAgc2hvdWxk
QmVGYWxzZSgia2V5Ym9hcmRJc0F1dG9tYXRpY2FsbHlTaGlmdGVkIik7CisgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgIH0pOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGYzNjNmOWIyZGQzMjhmYjJk
YzU2NjNlMWI1NGZmYTcyYWFjZWJlNWYuLmMwN2I1MDI1NTQzYWZlNTE1ZGM1NmQ3MTY1YzM4ZGVm
MTVmOTY0ZDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0
YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCkBA
IC0xMjA1LDYgKzEyMDUsNyBAQCB3ZWJraXQub3JnL2IvMjAzMTAwIGVkaXRpbmcvYXN5bmMtY2xp
cGJvYXJkL2NsaXBib2FyZC1kby1ub3QtcmVhZC10ZXh0LWZyb20tcGxhdAogd2Via2l0Lm9yZy9i
LzIwMzEwMCBlZGl0aW5nL2FzeW5jLWNsaXBib2FyZC9jbGlwYm9hcmQtcmVhZC10ZXh0LWZyb20t
cGxhdGZvcm0uaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzIwMzEwMCBlZGl0aW5nL2FzeW5j
LWNsaXBib2FyZC9jbGlwYm9hcmQtcmVhZC10ZXh0LXNhbWUtb3JpZ2luLmh0bWwgWyBTa2lwIF0K
IHdlYmtpdC5vcmcvYi8yMDMxMDAgZWRpdGluZy9hc3luYy1jbGlwYm9hcmQvY2xpcGJvYXJkLXJl
YWQtdGV4dC5odG1sIFsgU2tpcCBdCit3ZWJraXQub3JnL2IvMjAzMTAwIGVkaXRpbmcvYXN5bmMt
Y2xpcGJvYXJkL2NsaXBib2FyZC1yZWFkLXdoaWxlLXBhc3RpbmcuaHRtbCBbIFNraXAgXQogd2Vi
a2l0Lm9yZy9iLzIwMzEwMCBlZGl0aW5nL2FzeW5jLWNsaXBib2FyZC9zYW5pdGl6ZS13aGVuLXdy
aXRpbmctaW1hZ2UuaHRtbCBbIFNraXAgXQogd2Via2l0Lm9yZy9iLzIwMzEwMCBlZGl0aW5nL2Fz
eW5jLWNsaXBib2FyZC9zYW5pdGl6ZS13aGVuLXJlYWRpbmctbWFya3VwLmh0bWwgWyBTa2lwIF0K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcyBiL0xheW91
dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKaW5kZXggZDM3ZTE5ZDZlN2Q0MTk5NTRiYTQ2
OTk5N2QzZjExYmUyMmY4M2ZkMy4uNjkxMzc5ZjQ4NTE5ZjVkZjI0Yzg0OWMwMzhiNWViMDk3NTJi
Zjc5MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcworKysg
Yi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCkBAIC0zMDgsNiArMzA4LDEzIEBA
IHdpbmRvdy5VSUhlbHBlciA9IGNsYXNzIFVJSGVscGVyIHsKICAgICAgICAgfSk7CiAgICAgfQog
CisgICAgc3RhdGljIGtleWJvYXJkSXNBdXRvbWF0aWNhbGx5U2hpZnRlZCgpCisgICAgeworICAg
ICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgICAgICB0ZXN0UnVu
bmVyLnJ1blVJU2NyaXB0KGB1aUNvbnRyb2xsZXIua2V5Ym9hcmRJc0F1dG9tYXRpY2FsbHlTaGlm
dGVkYCwgcmVzdWx0ID0+IHJlc29sdmUocmVzdWx0ID09PSAidHJ1ZSIpKTsKKyAgICAgICAgfSk7
CisgICAgfQorCiAgICAgc3RhdGljIGVuc3VyZVByZXNlbnRhdGlvblVwZGF0ZSgpCiAgICAgewog
ICAgICAgICBpZiAoIXRoaXMuaXNXZWJLaXQyKCkpIHsKQEAgLTExNzYsMTAgKzExODMsMTQgQEAg
d2luZG93LlVJSGVscGVyID0gY2xhc3MgVUlIZWxwZXIgewogICAgIH0KIAogICAgIHN0YXRpYyBh
c3luYyBjb3B5VGV4dCh0ZXh0KSB7Ci0gICAgICAgIGNvbnN0IGNvcHlUZXh0U2NyaXB0ID0gYHVp
Q29udHJvbGxlci5jb3B5VGV4dChcYCR7dGV4dC5yZXBsYWNlKC9gL2csICJcXGAiKX1cYCkoKWA7
CisgICAgICAgIGNvbnN0IGNvcHlUZXh0U2NyaXB0ID0gYHVpQ29udHJvbGxlci5jb3B5VGV4dChc
YCR7dGV4dC5yZXBsYWNlKC9gL2csICJcXGAiKX1cYClgOwogICAgICAgICByZXR1cm4gbmV3IFBy
b21pc2UocmVzb2x2ZSA9PiB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGNvcHlUZXh0U2NyaXB0LCBy
ZXNvbHZlKSk7CiAgICAgfQogCisgICAgc3RhdGljIGFzeW5jIHBhc3RlKCkgeworICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGB1aUNv
bnRyb2xsZXIucGFzdGUoKWAsIHJlc29sdmUpKTsKKyAgICB9CisKICAgICBzdGF0aWMgYXN5bmMg
c2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGVuYWJsZWQpIHsKICAgICAgICAgcmV0
dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewogICAgICAgICAgICAgdGVzdFJ1bm5lci5ydW5V
SVNjcmlwdChgdWlDb250cm9sbGVyLnNldENvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZCgk
e2VuYWJsZWR9KWAsIHJlc29sdmUpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399568</attachid>
            <date>2020-05-16 14:31:00 -0700</date>
            <delta_ts>2020-05-16 16:37:55 -0700</delta_ts>
            <desc>For EWS (WIP)</desc>
            <filename>bug-211990-20200516143059.patch</filename>
            <type>text/plain</type>
            <size>19762</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQ0YWFlM2RlYTZlNzlj
MTNmNTIxZjFjYmZiMmVkMGI1YzNhZmZhMi4uYmUxMzQwNWY3MjRhMGM3ODRlNjJlNjczMzRlMmYz
NzJlOWZhZjc3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIwLTA1LTE2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IGNsaXBi
b2FyZCBBUEkgYWNjZXNzIHdoZW4gcGFzdGluZyBmcm9tIGEgbWVudSBpdGVtIG9yIGtleSBiaW5k
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE5
OTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzMzA4OTE2PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRlc3Q6IGVkaXRpbmcvYXN5bmMtY2xpcGJv
YXJkL2NsaXBib2FyZC1yZWFkLXdoaWxlLXBhc3RpbmcuaHRtbAorCisgICAgICAgICogZWRpdGlu
Zy9FZGl0b3IuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjpwYXN0ZSk6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3I6OnBhc3RlQXNQbGFpblRleHQpOgorICAgICAgICAoV2ViQ29yZTo6
RWRpdG9yOjpwYXN0ZUFzUXVvdGF0aW9uKToKKyAgICAgICAgKiBlZGl0aW5nL0VkaXRvci5oOgor
ICAgICAgICAoV2ViQ29yZTo6RWRpdG9yOjppc1Bhc3RpbmdGcm9tTWVudU9yS2V5QmluZGluZyBj
b25zdCk6CisgICAgICAgICogZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmV4ZWN1dGVQYXN0ZSk6CisgICAgICAgIChXZWJDb3JlOjpleGVjdXRlUGFzdGVBbmRN
YXRjaFN0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVQYXN0ZUFzUGxhaW5UZXh0KToK
KyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVQYXN0ZUFzUXVvdGF0aW9uKToKKyAgICAgICAgKiBw
YWdlL0ZyYW1lLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpyZXF1ZXN0RE9NUGFzdGVB
Y2Nlc3MpOgorCiAyMDIwLTA1LTE0ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgogCiAgICAgICAgIFttYWNPU10gVXBkYXRlIHRoZSBwbGFjZWhvbGRlciBpY29uIGltYWdl
IGZvciBhdHRhY2htZW50IGVsZW1lbnRzIHdpdGggcHJvZ3Jlc3M9IjAiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5n
L0VkaXRvci5jcHAKaW5kZXggMTAyODE3MzU3MzE5Y2UxYzBkMTlkNTNkZWU4NzczYzgzNjUwNzg3
NC4uZGQzMWZiYjFkNGY2MjYxMjQxOTM5NWIxNTliNDAzNDcxMmQ5OTJhZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Vk
aXRpbmcvRWRpdG9yLmNwcApAQCAtMTE4LDYgKzExOCw3IEBACiAjaW5jbHVkZSA8cGFsL0ZpbGVT
aXplRm9ybWF0dGVyLmg+CiAjaW5jbHVkZSA8cGFsL3N5c3RlbS9Tb3VuZC5oPgogI2luY2x1ZGUg
PHBhbC90ZXh0L0tpbGxSaW5nLmg+CisjaW5jbHVkZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5j
bHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFtZXMuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykK
QEAgLTE0NDQsMTMgKzE0NDUsMTUgQEAgdm9pZCBFZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRp
dG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKICAgICB9CiB9CiAKLXZvaWQgRWRpdG9yOjpwYXN0
ZSgpCit2b2lkIEVkaXRvcjo6cGFzdGUoRnJvbU1lbnVPcktleUJpbmRpbmcgZnJvbU1lbnVPcktl
eUJpbmRpbmcpCiB7Ci0gICAgcGFzdGUoKlBhc3RlYm9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0
ZSgpKTsKKyAgICBwYXN0ZSgqUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCksIGZy
b21NZW51T3JLZXlCaW5kaW5nKTsKIH0KIAotdm9pZCBFZGl0b3I6OnBhc3RlKFBhc3RlYm9hcmQm
IHBhc3RlYm9hcmQpCit2b2lkIEVkaXRvcjo6cGFzdGUoUGFzdGVib2FyZCYgcGFzdGVib2FyZCwg
RnJvbU1lbnVPcktleUJpbmRpbmcgZnJvbU1lbnVPcktleUJpbmRpbmcpCiB7CisgICAgU2V0Rm9y
U2NvcGU8Ym9vbD4gcGFzdGVTY29wZSB7IG1fcGFzdGluZ0Zyb21NZW51T3JLZXlCaW5kaW5nLCBm
cm9tTWVudU9yS2V5QmluZGluZyA9PSBGcm9tTWVudU9yS2V5QmluZGluZzo6WWVzIH07CisKICAg
ICBpZiAoIWRpc3BhdGNoQ2xpcGJvYXJkRXZlbnQoZmluZEV2ZW50VGFyZ2V0RnJvbVNlbGVjdGlv
bigpLCBDbGlwYm9hcmRFdmVudEtpbmQ6OlBhc3RlKSkKICAgICAgICAgcmV0dXJuOyAvLyBESFRN
TCBkaWQgdGhlIHdob2xlIG9wZXJhdGlvbgogICAgIGlmICghY2FuUGFzdGUoKSkKQEAgLTE0NjMs
OCArMTQ2NiwxMCBAQCB2b2lkIEVkaXRvcjo6cGFzdGUoUGFzdGVib2FyZCYgcGFzdGVib2FyZCkK
ICAgICAgICAgcGFzdGVBc1BsYWluVGV4dFdpdGhQYXN0ZWJvYXJkKHBhc3RlYm9hcmQpOwogfQog
Ci12b2lkIEVkaXRvcjo6cGFzdGVBc1BsYWluVGV4dCgpCit2b2lkIEVkaXRvcjo6cGFzdGVBc1Bs
YWluVGV4dChGcm9tTWVudU9yS2V5QmluZGluZyBmcm9tTWVudU9yS2V5QmluZGluZykKIHsKKyAg
ICBTZXRGb3JTY29wZTxib29sPiBwYXN0ZVNjb3BlIHsgbV9wYXN0aW5nRnJvbU1lbnVPcktleUJp
bmRpbmcsIGZyb21NZW51T3JLZXlCaW5kaW5nID09IEZyb21NZW51T3JLZXlCaW5kaW5nOjpZZXMg
fTsKKwogICAgIGlmICghZGlzcGF0Y2hDbGlwYm9hcmRFdmVudChmaW5kRXZlbnRUYXJnZXRGcm9t
U2VsZWN0aW9uKCksIENsaXBib2FyZEV2ZW50S2luZDo6UGFzdGVBc1BsYWluVGV4dCkpCiAgICAg
ICAgIHJldHVybjsKICAgICBpZiAoIWNhblBhc3RlKCkpCkBAIC0xNDczLDggKzE0NzgsMTAgQEAg
dm9pZCBFZGl0b3I6OnBhc3RlQXNQbGFpblRleHQoKQogICAgIHBhc3RlQXNQbGFpblRleHRXaXRo
UGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCkpOwogfQogCi12
b2lkIEVkaXRvcjo6cGFzdGVBc1F1b3RhdGlvbigpCit2b2lkIEVkaXRvcjo6cGFzdGVBc1F1b3Rh
dGlvbihGcm9tTWVudU9yS2V5QmluZGluZyBmcm9tTWVudU9yS2V5QmluZGluZykKIHsKKyAgICBT
ZXRGb3JTY29wZTxib29sPiBwYXN0ZVNjb3BlIHsgbV9wYXN0aW5nRnJvbU1lbnVPcktleUJpbmRp
bmcsIGZyb21NZW51T3JLZXlCaW5kaW5nID09IEZyb21NZW51T3JLZXlCaW5kaW5nOjpZZXMgfTsK
KwogICAgIGlmICghZGlzcGF0Y2hDbGlwYm9hcmRFdmVudChmaW5kRXZlbnRUYXJnZXRGcm9tU2Vs
ZWN0aW9uKCksIENsaXBib2FyZEV2ZW50S2luZDo6UGFzdGVBc1F1b3RhdGlvbikpCiAgICAgICAg
IHJldHVybjsKICAgICBpZiAoIWNhblBhc3RlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRl
eCAyYmU2NGE0NTRmNmNjNmI0MmUyNTNjNzcyNTE0MzhkYTQ0MjAyNDhmLi41MTM3YzBkZWQyZGZk
MWJhMTUzZjg3MjBiYTkxZmVhMDY1NTZhYTc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9l
ZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAg
LTE4OSwxMCArMTg5LDEyIEBAIHB1YmxpYzoKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY3V0
KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjb3B5KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBwYXN0ZSgpOwotICAgIHZvaWQgcGFzdGUoUGFzdGVib2FyZCYpOwotICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgcGFzdGVBc1BsYWluVGV4dCgpOwotICAgIHZvaWQgcGFzdGVBc1F1b3RhdGlv
bigpOworCisgICAgZW51bSBjbGFzcyBGcm9tTWVudU9yS2V5QmluZGluZyA6IGJvb2wgeyBObywg
WWVzIH07CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwYXN0ZShGcm9tTWVudU9yS2V5QmluZGlu
ZyA9IEZyb21NZW51T3JLZXlCaW5kaW5nOjpObyk7CisgICAgdm9pZCBwYXN0ZShQYXN0ZWJvYXJk
JiwgRnJvbU1lbnVPcktleUJpbmRpbmcgPSBGcm9tTWVudU9yS2V5QmluZGluZzo6Tm8pOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgcGFzdGVBc1BsYWluVGV4dChGcm9tTWVudU9yS2V5QmluZGlu
ZyA9IEZyb21NZW51T3JLZXlCaW5kaW5nOjpObyk7CisgICAgdm9pZCBwYXN0ZUFzUXVvdGF0aW9u
KEZyb21NZW51T3JLZXlCaW5kaW5nID0gRnJvbU1lbnVPcktleUJpbmRpbmc6Ok5vKTsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHBlcmZvcm1EZWxldGUoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgY29weVVSTChjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmIHRpdGxlKTsKQEAgLTU3MSw2
ICs1NzMsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmUHRyPFRleHRQbGFjZWhv
bGRlckVsZW1lbnQ+IGluc2VydFRleHRQbGFjZWhvbGRlcihjb25zdCBJbnRTaXplJik7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVUZXh0UGxhY2Vob2xkZXIoVGV4dFBsYWNlaG9sZGVy
RWxlbWVudCYpOwogCisgICAgYm9vbCBpc1Bhc3RpbmdGcm9tTWVudU9yS2V5QmluZGluZygpIGNv
bnN0IHsgcmV0dXJuIG1fcGFzdGluZ0Zyb21NZW51T3JLZXlCaW5kaW5nOyB9CisKIHByaXZhdGU6
CiAgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudDsgfQog
CkBAIC02NTQsNiArNjU4LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZWRpdG9yVUlVcGRhdGVU
aW1lclNob3VsZENoZWNrU3BlbGxpbmdBbmRHcmFtbWFyIHsgZmFsc2UgfTsKICAgICBib29sIG1f
ZWRpdG9yVUlVcGRhdGVUaW1lcldhc1RyaWdnZXJlZEJ5RGljdGF0aW9uIHsgZmFsc2UgfTsKICAg
ICBib29sIG1faXNIYW5kbGluZ0FjY2VwdGVkQ2FuZGlkYXRlIHsgZmFsc2UgfTsKKyAgICBib29s
IG1fcGFzdGluZ0Zyb21NZW51T3JLZXlCaW5kaW5nIHsgZmFsc2UgfTsKIAogI2lmIEVOQUJMRShU
RUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJiYgUExBVEZPUk0oTUFDKQogICAgIGJvb2wgc2hv
dWxkRGV0ZWN0VGVsZXBob25lTnVtYmVycygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcv
RWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggZGNmM2RjZWRjOWFiZWIzMzlmZjM4NDUxYjRhODg4MjUz
OTE2MTU1OC4uMjQ3ZDdjOGEyYzMyMjcxYTRlMGU3MGQ4YzNkZWJmMTE2ZTJhNTQxNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwCkBAIC05MDUsNyArOTA1LDcgQEAg
c3RhdGljIGJvb2wgZXhlY3V0ZVBhc3RlKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21t
YW5kU291cmNlIHNvdXJjZSwgY29uc3QKIHsKICAgICBpZiAoc291cmNlID09IENvbW1hbmRGcm9t
TWVudU9yS2V5QmluZGluZykgewogICAgICAgICBVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvciB0
eXBpbmdHZXN0dXJlSW5kaWNhdG9yKGZyYW1lKTsKLSAgICAgICAgZnJhbWUuZWRpdG9yKCkucGFz
dGUoKTsKKyAgICAgICAgZnJhbWUuZWRpdG9yKCkucGFzdGUoRWRpdG9yOjpGcm9tTWVudU9yS2V5
QmluZGluZzo6WWVzKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC05MzYsNyAr
OTM2LDcgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZVBhc3RlQW5kTWF0Y2hTdHlsZShGcmFtZSYgZnJh
bWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJjZQogewogICAgIGlmIChzb3VyY2UgPT0gQ29t
bWFuZEZyb21NZW51T3JLZXlCaW5kaW5nKSB7CiAgICAgICAgIFVzZXJUeXBpbmdHZXN0dXJlSW5k
aWNhdG9yIHR5cGluZ0dlc3R1cmVJbmRpY2F0b3IoZnJhbWUpOwotICAgICAgICBmcmFtZS5lZGl0
b3IoKS5wYXN0ZUFzUGxhaW5UZXh0KCk7CisgICAgICAgIGZyYW1lLmVkaXRvcigpLnBhc3RlQXNQ
bGFpblRleHQoRWRpdG9yOjpGcm9tTWVudU9yS2V5QmluZGluZzo6WWVzKTsKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQogCkBAIC05NTEsNyArOTUxLDcgQEAgc3RhdGljIGJvb2wgZXhlY3V0
ZVBhc3RlQXNQbGFpblRleHQoRnJhbWUmIGZyYW1lLCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3Vy
Y2Ugc28KIHsKICAgICBpZiAoc291cmNlID09IENvbW1hbmRGcm9tTWVudU9yS2V5QmluZGluZykg
ewogICAgICAgICBVc2VyVHlwaW5nR2VzdHVyZUluZGljYXRvciB0eXBpbmdHZXN0dXJlSW5kaWNh
dG9yKGZyYW1lKTsKLSAgICAgICAgZnJhbWUuZWRpdG9yKCkucGFzdGVBc1BsYWluVGV4dCgpOwor
ICAgICAgICBmcmFtZS5lZGl0b3IoKS5wYXN0ZUFzUGxhaW5UZXh0KEVkaXRvcjo6RnJvbU1lbnVP
cktleUJpbmRpbmc6Olllcyk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIApAQCAtOTY2
LDcgKzk2Niw3IEBAIHN0YXRpYyBib29sIGV4ZWN1dGVQYXN0ZUFzUXVvdGF0aW9uKEZyYW1lJiBm
cmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlIHNvCiB7CiAgICAgaWYgKHNvdXJjZSA9
PSBDb21tYW5kRnJvbU1lbnVPcktleUJpbmRpbmcpIHsKICAgICAgICAgVXNlclR5cGluZ0dlc3R1
cmVJbmRpY2F0b3IgdHlwaW5nR2VzdHVyZUluZGljYXRvcihmcmFtZSk7Ci0gICAgICAgIGZyYW1l
LmVkaXRvcigpLnBhc3RlQXNRdW90YXRpb24oKTsKKyAgICAgICAgZnJhbWUuZWRpdG9yKCkucGFz
dGVBc1F1b3RhdGlvbihFZGl0b3I6OkZyb21NZW51T3JLZXlCaW5kaW5nOjpZZXMpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
RnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKaW5kZXggNTQwZjQ1NmVl
ODIxOTliYmZmNzFlNjY4OGJjMGU4MWZhNTI1ZGRhOS4uYjg2ZTk1ZTRlZTVkYjNlMDg3NmNjZmJi
ODkxZGJlYjE3OWIzMjI5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKQEAgLTUzOSw3ICs1MzksMTMg
QEAgYm9vbCBGcmFtZTo6cmVxdWVzdERPTVBhc3RlQWNjZXNzKCkKICAgICBpZiAobV9zZXR0aW5n
cy0+amF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCgpICYmIG1fc2V0dGluZ3MtPkRPTVBhc3Rl
QWxsb3dlZCgpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGlmICghbV9zZXR0aW5ncy0+
ZG9tUGFzdGVBY2Nlc3NSZXF1ZXN0c0VuYWJsZWQoKSB8fCAhbV9kb2MpCisgICAgaWYgKCFtX2Rv
YykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKGVkaXRvcigpLmlzUGFzdGluZ0Zy
b21NZW51T3JLZXlCaW5kaW5nKCkpCisgICAgICAgIHJldHVybiB0cnVlOworCisgICAgaWYgKCFt
X3NldHRpbmdzLT5kb21QYXN0ZUFjY2Vzc1JlcXVlc3RzRW5hYmxlZCgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBhdXRvIGdlc3R1cmVUb2tlbiA9IFVzZXJHZXN0dXJlSW5kaWNhdG9y
OjpjdXJyZW50VXNlckdlc3R1cmUoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rv
b2xzL0NoYW5nZUxvZwppbmRleCBkODA4ZTBiYzM3NDNkZTJmYjhkYTAzY2IxZGNiOWQ1OWUxNDRm
NDY5Li5iODY2ZDY3MzUxMmUxMDcwYzYyNTFkODY0OGRkNTdkMjk3M2U3ZmMzIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAK
KzIwMjAtMDUtMTYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWxsb3cgY2xpcGJvYXJkIEFQSSBhY2Nlc3Mgd2hlbiBwYXN0aW5nIGZyb20gYSBtZW51
IGl0ZW0gb3Iga2V5IGJpbmRpbmcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIxMTk5MAorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjMzMDg5MTY+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5oOgorICAgICAgICAqIER1bXBS
ZW5kZXJUcmVlL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV1RS
OjpVSVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6cGFzdGUpOgorICAgICAgICAqIFRlc3RSdW5uZXJT
aGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGw6Cisg
ICAgICAgICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9s
bGVyLmg6CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6cGFzdGUpOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EuaDoKKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1t
OgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6cGFzdGUpOgorCiAyMDIw
LTA1LTE1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IFtpT1NdIFVuZXhwZWN0ZWQgY2FwaXRhbGl6YXRpb24gb2YgbmV4dCB3b3JkIGFmdGVyIHJlcG9z
aXRpb25pbmcgY2FyZXQKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2NvY29hL1VJ
U2NyaXB0Q29udHJvbGxlckNvY29hLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jb2NvYS9VSVNj
cmlwdENvbnRyb2xsZXJDb2NvYS5oCmluZGV4IDgwOTU5YmZmNmRlMDQzMTA4ZDBkYTFjODMyNzQz
YWIxMzMyMTQ1YzUuLmE2MTIzYjBiOGJmMDc2MzhkOGFjNzIzOTBlOTdkNDNjYzA3MjBmZjcgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNv
Y29hLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY29jb2EvVUlTY3JpcHRDb250cm9sbGVy
Q29jb2EuaApAQCAtMzQsNiArMzQsNyBAQCBuYW1lc3BhY2UgV1RSIHsKIGNsYXNzIFVJU2NyaXB0
Q29udHJvbGxlckNvY29hIDogcHVibGljIFVJU2NyaXB0Q29udHJvbGxlciB7CiBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoYm9vbCkgb3ZlcnJpZGU7
CisgICAgdm9pZCBwYXN0ZSgpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CiAgICAgZXhwbGljaXQg
VUlTY3JpcHRDb250cm9sbGVyQ29jb2EoVUlTY3JpcHRDb250ZXh0Jik7CmRpZmYgLS1naXQgYS9U
b29scy9EdW1wUmVuZGVyVHJlZS9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tCmluZGV4
IDY3YTc4MGNhMjIzYTRjZTYwMDYyNzQ3MDQ3ODQxNTM4OTBkNjk3MzguLjkzZDA3NWUwMzhlNTBl
ZTE4MjY5ZjViYzE2ODE3ZTNmM2FlOWEzMDcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tCisrKyBiL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tCkBAIC00NCw2ICs0NCwxMSBA
QCB2b2lkIFVJU2NyaXB0Q29udHJvbGxlckNvY29hOjpzZXRDb250aW51b3VzU3BlbGxDaGVja2lu
Z0VuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIG1haW5GcmFtZS53ZWJWaWV3LmNvbnRpbnVvdXNT
cGVsbENoZWNraW5nRW5hYmxlZCA9IGVuYWJsZWQ7CiB9CiAKK3ZvaWQgVUlTY3JpcHRDb250cm9s
bGVyQ29jb2E6OnBhc3RlKCkKK3sKKyAgICBbbWFpbkZyYW1lLndlYlZpZXcgcGFzdGU6bmlsXTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV1RSCiAKICNlbmRpZiAvLyBQTEFURk9STShDT0NPQSkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L0JpbmRpbmdz
L1VJU2NyaXB0Q29udHJvbGxlci5pZGwgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0
Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRyb2xsZXIuaWRsCmluZGV4IGI5ZGRhYTE2YWZh
YTg5M2FhZGE1ZWQzOTFjYzU3ZTkzNDQyYTc1ZjIuLjVlMjFhODI0ZWUxNjA1YmFmMzJhZjNiN2U5
MWRlMDJlMThlMDczODkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3Jp
cHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKKysrIGIvVG9vbHMvVGVz
dFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVy
LmlkbApAQCAtMjY5LDYgKzI2OSw3IEBAIGludGVyZmFjZSBVSVNjcmlwdENvbnRyb2xsZXIgewog
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBib29sZWFuIGlzUHJlc2VudGluZ01vZGFsbHk7CiAKICAg
ICB2b2lkIGNvcHlUZXh0KERPTVN0cmluZyB0ZXh0KTsKKyAgICB2b2lkIHBhc3RlKCk7CiAKICAg
ICByZWFkb25seSBhdHRyaWJ1dGUgZG91YmxlIGNvbnRlbnRPZmZzZXRYOwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBkb3VibGUgY29udGVudE9mZnNldFk7CmRpZmYgLS1naXQgYS9Ub29scy9UZXN0
UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuaCBiL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCmlu
ZGV4IDQxNDc1ZjQ4ZjllZmY5NGZlNWYzMDYxMzNmZjJkZTljN2UzYmE5N2MuLjM0MDc0YjIzMjY0
Mjg5ODY0ZDI0MDcxMWRlNGU2MjQyOTk0OWVkOGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5u
ZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCisrKyBiL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oCkBA
IC0xMDYsNiArMTA2LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXNpZ25GaXJzdFJl
c3BvbmRlcigpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGNvcHlU
ZXh0KEpTU3RyaW5nUmVmKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQg
cGFzdGUoKSB7IG5vdEltcGxlbWVudGVkKCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCBjaG9vc2VN
ZW51QWN0aW9uKEpTU3RyaW5nUmVmLCBKU1ZhbHVlUmVmKTsKICAgICB2aXJ0dWFsIHZvaWQgZGlz
bWlzc01lbnUoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlT
Y3JpcHRDb250cm9sbGVyQ29jb2EuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlT
Y3JpcHRDb250cm9sbGVyQ29jb2EuaAppbmRleCBjMzkzODQ0OThmMDgxMDAwMjE3ZjA5NmUwMDgz
NWY5MzQ4NWE4ZjJjLi45NmVkN2FkYTJlYTgwNzZiOTdlZWExOTA3YTBmYzk2NzJmY2NmN2FhIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxl
ckNvY29hLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRy
b2xsZXJDb2NvYS5oCkBAIC01NCw2ICs1NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGRpc21pc3NN
ZW51KCkgb3ZlcnJpZGU7CiAgICAgYm9vbCBpc1Nob3dpbmdNZW51KCkgY29uc3Qgb3ZlcnJpZGU7
CiAKKyAgICB2b2lkIHBhc3RlKCkgb3ZlcnJpZGU7CisKICAgICB2b2lkIHNldENvbnRpbnVvdXNT
cGVsbENoZWNraW5nRW5hYmxlZChib29sKSBvdmVycmlkZTsKIAogcHJvdGVjdGVkOgpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2Nv
YS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29j
b2EubW0KaW5kZXggMGNhNWY0NzgxNmQ1YTdjNjhjMDRlMzcxN2I5NmM2OWVhYWYwNzMwZi4uNjIy
MWJiMTMxMjFhZWJlOGIwNGY5OTVmYzgwMTRkYzI5Nzk5NmZiNyAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5tbQorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tCkBA
IC0zNSw2ICszNSwxMCBAQAogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KICNp
bXBvcnQgPFdlYktpdC9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oPgogCitAaW50ZXJmYWNl
IFdLV2ViVmlldyAoV0tXZWJWaWV3SW50ZXJuYWwpCistICh2b2lkKXBhc3RlOihpZClzZW5kZXI7
CitAZW5kCisKIG5hbWVzcGFjZSBXVFIgewogCiBVSVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6VUlT
Y3JpcHRDb250cm9sbGVyQ29jb2EoVUlTY3JpcHRDb250ZXh0JiBjb250ZXh0KQpAQCAtMjA0LDQg
KzIwOCw5IEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyQ29jb2E6OnNldENvbnRpbnVvdXNTcGVs
bENoZWNraW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgW3dlYlZpZXcoKSBfc2V0Q29udGlu
dW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkRm9yVGVzdGluZzplbmFibGVkXTsKIH0KIAordm9pZCBV
SVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6cGFzdGUoKQoreworICAgIFt3ZWJWaWV3KCkgcGFzdGU6
bmlsXTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggN2Y2ZmYzN2JlYzBhMTE5NDEx
ZThhNjYxN2MxNzk3MGU4MGNiZTIyOC4uNzYxOTgzYjM1Y2E3ZmE0NjM4NmQyMGYwYWE1N2E4N2E5
OGExNzU2ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIwLTA1LTE2ICBXZW5zb24gSHNpZWgg
IDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IGNsaXBib2FyZCBBUEkg
YWNjZXNzIHdoZW4gcGFzdGluZyBmcm9tIGEgbWVudSBpdGVtIG9yIGtleSBiaW5kaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE5OTAKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzYzMzA4OTE2PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZWRpdGluZy9hc3luYy1jbGlwYm9hcmQvY2xpcGJvYXJk
LXJlYWQtd2hpbGUtcGFzdGluZy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGVkaXRp
bmcvYXN5bmMtY2xpcGJvYXJkL2NsaXBib2FyZC1yZWFkLXdoaWxlLXBhc3RpbmcuaHRtbDogQWRk
ZWQuCisgICAgICAgICogcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnM6CisgICAgICAgICog
cmVzb3VyY2VzL3VpLWhlbHBlci5qczoKKyAgICAgICAgKHdpbmRvdy5VSUhlbHBlci5hc3luYyBj
b3B5VGV4dCk6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIuYXN5bmMgcGFzdGUpOgorCiAyMDIw
LTA1LTE1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAg
IFtpT1NdIFVuZXhwZWN0ZWQgY2FwaXRhbGl6YXRpb24gb2YgbmV4dCB3b3JkIGFmdGVyIHJlcG9z
aXRpb25pbmcgY2FyZXQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvYXN5bmMtY2xp
cGJvYXJkL2NsaXBib2FyZC1yZWFkLXdoaWxlLXBhc3RpbmctZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9hc3luYy1jbGlwYm9hcmQvY2xpcGJvYXJkLXJlYWQtd2hpbGUtcGFzdGlu
Zy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmExMTUxNmRjMmEyNmQ1ZjgwNTNmMjU4ZjY0MmFl
OGRiN2VkODFlNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvYXN5bmMt
Y2xpcGJvYXJkL2NsaXBib2FyZC1yZWFkLXdoaWxlLXBhc3RpbmctZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTIgQEAKK1RoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRoZSBjbGlwYm9hcmQgaXMgYWNj
ZXNzaWJsZSB3aGlsZSBwZXJmb3JtaW5nIGEgcGFzdGUgZnJvbSBuYXRpdmUgVUkuIFRvIG1hbnVh
bGx5IHJ1biB0aGUgdGVzdCwgY2xpY2sgdGhlICdDb3B5JyBidXR0b24gYWJvdmUsIGFuZCB0aGVu
IHBhc3RlIGluIHRoZSB0ZXh0IGZpZWxkIGJlbG93IHVzaW5nIG5hdGl2ZSBVSSAoZS5nLiBtZW51
IGl0ZW0gb3IgY21kK1Ygb24gbWFjT1MsIGFuZCB0aGUgY2FsbG91dCBtZW51IG9uIGlPUykuIFRo
ZSB0ZXh0ICdUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4nIHNo
b3VsZCBiZSByZWFkIHZpYSB0aGUgY2xpcGJvYXJkIEFQSSwgd2l0aG91dCB0cmlnZ2VyaW5nIGFu
IGFkZGl0aW9uYWwgRE9NIHBhc3RlIG1lbnUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBh
IHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4K
KworCitQQVNTIGRvbmVXcml0aW5nVGV4dCBiZWNhbWUgdHJ1ZQorUEFTUyBSZWFkIHRleHQ6ICdU
aGUgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4nCitQQVNTIGRvbmVS
ZWFkaW5nVGV4dCBiZWNhbWUgdHJ1ZQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCitDb3B5IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZWRpdGluZy9h
c3luYy1jbGlwYm9hcmQvY2xpcGJvYXJkLXJlYWQtd2hpbGUtcGFzdGluZy5odG1sIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9hc3luYy1jbGlwYm9hcmQvY2xpcGJvYXJkLXJlYWQtd2hpbGUtcGFzdGlu
Zy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmVjZDAzMTk2N2M3YjZiMGI3MGIxMjQ2NWYwMDE4OWRkZWZhZWYz
YTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2FzeW5jLWNsaXBib2Fy
ZC9jbGlwYm9hcmQtcmVhZC13aGlsZS1wYXN0aW5nLmh0bWwKQEAgLTAsMCArMSw2MyBAQAorPCFE
T0NUWVBFIGh0bWw+IDwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgdXNlRmxleGlibGVWaWV3cG9y
dD10cnVlIGV4cGVyaW1lbnRhbDpBc3luY0NsaXBib2FyZEFQSUVuYWJsZWQ9dHJ1ZSBkb21QYXN0
ZUFsbG93ZWQ9ZmFsc2UgXSAtLT4KKzxodG1sPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0ZjgiPgor
ICAgIDxoZWFkPgorICAgICAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9
ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9bm8iPgorICAgICAg
ICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorICAg
ICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+
CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIGJ1dHRvbiB7CisgICAgICAgICAgICAgICAg
d2lkdGg6IDMwMHB4OworICAgICAgICAgICAgICAgIHBhZGRpbmc6IDFlbTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgaW5wdXQgeworICAgICAgICAgICAgICAgIGRpc3BsYXk6IGJsb2Nr
OworICAgICAgICAgICAgICAgIGZvbnQtc2l6ZTogNDBweDsKKyAgICAgICAgICAgICAgICB3aWR0
aDogMzAwcHg7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+CisgICAgPC9oZWFkPgor
ICAgIDxzY3JpcHQ+CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworICAgICAgICBkb25l
V3JpdGluZ1RleHQgPSBmYWxzZTsKKyAgICAgICAgZG9uZVJlYWRpbmdUZXh0ID0gZmFsc2U7CisK
KyAgICAgICAgZGVzY3JpcHRpb24oIlRoaXMgdGVzdCB2ZXJpZmllcyB0aGF0IHRoZSBjbGlwYm9h
cmQgaXMgYWNjZXNzaWJsZSB3aGlsZSBwZXJmb3JtaW5nIGEgcGFzdGUgZnJvbSBuYXRpdmUgVUku
IFRvIG1hbnVhbGx5IHJ1biB0aGUgdGVzdCwgY2xpY2sgdGhlICdDb3B5JyBidXR0b24gYWJvdmUs
IGFuZCB0aGVuIHBhc3RlIGluIHRoZSB0ZXh0IGZpZWxkIGJlbG93IHVzaW5nIG5hdGl2ZSBVSSAo
ZS5nLiBtZW51IGl0ZW0gb3IgY21kK1Ygb24gbWFjT1MsIGFuZCB0aGUgY2FsbG91dCBtZW51IG9u
IGlPUykuIFRoZSB0ZXh0ICdUaGUgcXVpY2sgYnJvd24gZm94IGp1bXBlZCBvdmVyIHRoZSBsYXp5
IGRvZy4nIHNob3VsZCBiZSByZWFkIHZpYSB0aGUgY2xpcGJvYXJkIEFQSSwgd2l0aG91dCB0cmln
Z2VyaW5nIGFuIGFkZGl0aW9uYWwgRE9NIHBhc3RlIG1lbnUuIik7CisKKyAgICAgICAgYXN5bmMg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgICAgIGNvbnN0IGNvcHlCdXR0b24gPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCJidXR0b24iKTsKKyAgICAgICAgICAgIGNvbnN0IGZpZWxkID0g
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW5wdXQiKQorCisgICAgICAgICAgICBjb3B5QnV0dG9u
LmFkZEV2ZW50TGlzdGVuZXIoImNsaWNrIiwgYXN5bmMgKCkgPT4geworICAgICAgICAgICAgICAg
IGF3YWl0IG5hdmlnYXRvci5jbGlwYm9hcmQud3JpdGVUZXh0KCJUaGUgcXVpY2sgYnJvd24gZm94
IGp1bXBlZCBvdmVyIHRoZSBsYXp5IGRvZy4iKTsKKyAgICAgICAgICAgICAgICBkb25lV3JpdGlu
Z1RleHQgPSB0cnVlOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGZpZWxkLmFkZEV2
ZW50TGlzdGVuZXIoInBhc3RlIiwgYXN5bmMgZXZlbnQgPT4geworICAgICAgICAgICAgICAgIGV2
ZW50LnByZXZlbnREZWZhdWx0KCk7CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZChgUmVhZCB0
ZXh0OiAnJHthd2FpdCBuYXZpZ2F0b3IuY2xpcGJvYXJkLnJlYWRUZXh0KCl9J2ApOworICAgICAg
ICAgICAgICAgIGRvbmVSZWFkaW5nVGV4dCA9IHRydWU7CisgICAgICAgICAgICB9KTsKKworICAg
ICAgICAgICAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudChjb3B5QnV0dG9u
KTsKKyAgICAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2hvdWxkQmVjb21l
RXF1YWwoImRvbmVXcml0aW5nVGV4dCIsICJ0cnVlIiwgcmVzb2x2ZSkpOworICAgICAgICAgICAg
YXdhaXQgVUlIZWxwZXIuYWN0aXZhdGVFbGVtZW50QW5kV2FpdEZvcklucHV0U2Vzc2lvbihmaWVs
ZCk7CisgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5wYXN0ZSgpOworICAgICAgICAgICAgYXdh
aXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzaG91bGRCZWNvbWVFcXVhbCgiZG9uZVJlYWRpbmdU
ZXh0IiwgInRydWUiLCByZXNvbHZlKSk7CisKKyAgICAgICAgICAgIGZpZWxkLmJsdXIoKTsKKyAg
ICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JLZXlib2FyZFRvSGlkZSgpOworICAgICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBhZGRFdmVudExpc3Rl
bmVyKCJsb2FkIiwgcnVuVGVzdCk7CisgICAgPC9zY3JpcHQ+CisgICAgPGJvZHk+CisgICAgICAg
IDxidXR0b24+Q29weTwvYnV0dG9uPgorICAgICAgICA8aW5wdXQ+CisgICAgPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlv
bnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4cGVjdGF0aW9ucwppbmRleCBmMzYz
ZjliMmRkMzI4ZmIyZGM1NjYzZTFiNTRmZmE3MmFhY2ViZTVmLi5jMDdiNTAyNTU0M2FmZTUxNWRj
NTZkNzE2NWMzOGRlZjE1Zjk2NGQ3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93
aW4vVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vVGVzdEV4
cGVjdGF0aW9ucwpAQCAtMTIwNSw2ICsxMjA1LDcgQEAgd2Via2l0Lm9yZy9iLzIwMzEwMCBlZGl0
aW5nL2FzeW5jLWNsaXBib2FyZC9jbGlwYm9hcmQtZG8tbm90LXJlYWQtdGV4dC1mcm9tLXBsYXQK
IHdlYmtpdC5vcmcvYi8yMDMxMDAgZWRpdGluZy9hc3luYy1jbGlwYm9hcmQvY2xpcGJvYXJkLXJl
YWQtdGV4dC1mcm9tLXBsYXRmb3JtLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yMDMxMDAg
ZWRpdGluZy9hc3luYy1jbGlwYm9hcmQvY2xpcGJvYXJkLXJlYWQtdGV4dC1zYW1lLW9yaWdpbi5o
dG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMjAzMTAwIGVkaXRpbmcvYXN5bmMtY2xpcGJvYXJk
L2NsaXBib2FyZC1yZWFkLXRleHQuaHRtbCBbIFNraXAgXQord2Via2l0Lm9yZy9iLzIwMzEwMCBl
ZGl0aW5nL2FzeW5jLWNsaXBib2FyZC9jbGlwYm9hcmQtcmVhZC13aGlsZS1wYXN0aW5nLmh0bWwg
WyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yMDMxMDAgZWRpdGluZy9hc3luYy1jbGlwYm9hcmQvc2Fu
aXRpemUtd2hlbi13cml0aW5nLWltYWdlLmh0bWwgWyBTa2lwIF0KIHdlYmtpdC5vcmcvYi8yMDMx
MDAgZWRpdGluZy9hc3luYy1jbGlwYm9hcmQvc2FuaXRpemUtd2hlbi1yZWFkaW5nLW1hcmt1cC5o
dG1sIFsgU2tpcCBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxw
ZXIuanMgYi9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpzCmluZGV4IDllMzhiYjgy
ZTYxOTJkMWJjNTY3NmUyYmNmMTAwM2Y3OGU2NTRlN2UuLjY5MTM3OWY0ODUxOWY1ZGYyNGM4NDlj
MDM4YjVlYjA5NzUyYmY3OTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1o
ZWxwZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwpAQCAtMTE4
MywxMCArMTE4MywxNCBAQCB3aW5kb3cuVUlIZWxwZXIgPSBjbGFzcyBVSUhlbHBlciB7CiAgICAg
fQogCiAgICAgc3RhdGljIGFzeW5jIGNvcHlUZXh0KHRleHQpIHsKLSAgICAgICAgY29uc3QgY29w
eVRleHRTY3JpcHQgPSBgdWlDb250cm9sbGVyLmNvcHlUZXh0KFxgJHt0ZXh0LnJlcGxhY2UoL2Av
ZywgIlxcYCIpfVxgKSgpYDsKKyAgICAgICAgY29uc3QgY29weVRleHRTY3JpcHQgPSBgdWlDb250
cm9sbGVyLmNvcHlUZXh0KFxgJHt0ZXh0LnJlcGxhY2UoL2AvZywgIlxcYCIpfVxgKWA7CiAgICAg
ICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHRlc3RSdW5uZXIucnVuVUlTY3JpcHQo
Y29weVRleHRTY3JpcHQsIHJlc29sdmUpKTsKICAgICB9CiAKKyAgICBzdGF0aWMgYXN5bmMgcGFz
dGUoKSB7CisgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHRlc3RSdW5uZXIu
cnVuVUlTY3JpcHQoYHVpQ29udHJvbGxlci5wYXN0ZSgpYCwgcmVzb2x2ZSkpOworICAgIH0KKwog
ICAgIHN0YXRpYyBhc3luYyBzZXRDb250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWQoZW5hYmxl
ZCkgewogICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CiAgICAgICAgICAg
ICB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGB1aUNvbnRyb2xsZXIuc2V0Q29udGludW91c1NwZWxs
Q2hlY2tpbmdFbmFibGVkKCR7ZW5hYmxlZH0pYCwgcmVzb2x2ZSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>399573</attachid>
            <date>2020-05-16 16:37:56 -0700</date>
            <delta_ts>2020-05-18 12:05:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-211990-20200516163754.patch</filename>
            <type>text/plain</type>
            <size>21581</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYxNzAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGQ0YWFlM2RlYTZlNzlj
MTNmNTIxZjFjYmZiMmVkMGI1YzNhZmZhMi4uNTc2Zjg5N2NmYzA3ZTA3MTYzNWQ4ZWMyMWZjODE3
ODFjMzdjZTA3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ5IEBACisyMDIwLTA1LTE2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IGNsaXBi
b2FyZCBBUEkgYWNjZXNzIHdoZW4gcGFzdGluZyBmcm9tIGEgbWVudSBpdGVtIG9yIGtleSBiaW5k
aW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTE5
OTAKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYzMzA4OTE2PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFsbG93IHRoZSBjb250ZW50cyBvZiB0aGUg
Y2xpcGJvYXJkIHRvIGJlIHByb2dyYW1tYXRpY2FsbHkgcmVxdWVzdGVkIGJ5IHRoZSBwYWdlIHdo
aWxlIHBhc3RpbmcgZnJvbSB0cnVzdGVkIFVJCisgICAgICAgIChpLmUuIHRoZSBwYXN0ZSBtZW51
IGl0ZW0sIG9yIHdoZW4gV2ViS2l0IEFQSSBpcyBjYWxsZWQgYnkgdGhlIGFwcCB0byB0cmlnZ2Vy
IHRoZSBwYXN0ZSkuIFRoaXMgYWxsb3dzIHRoZQorICAgICAgICAncmVhZGluZycgcGFydCBvZiB0
aGUgYXN5bmMgY2xpcGJvYXJkIEFQSSAoYHJlYWRgIGFuZCBgcmVhZFRleHRgKSB0byBiZSB1c2Vk
IHdoZW4gdGhlIHVzZXIgcGFzdGVzIGluIGFuIGVkaXRhYmxlCisgICAgICAgIGVsZW1lbnQsIHdp
dGhvdXQgaGF2aW5nIHRvIGZhbGwgYmFjayB0byBzaG93aW5nIHRoZSBET00gcGFzdGUgYWNjZXNz
IG1lbnUuCisKKyAgICAgICAgTm90ZSB0aGF0IHRoaXMgY2hhbmdlIHNob3VsZCBub3QgaGF2ZSBh
biBlZmZlY3Qgb24gdGhlIHBhc3RlYm9hcmQgc2VjdXJpdHkgbW9kZWwsIHNpbmNlIGl0IG9ubHkg
Z3JhbnRzIHRoZSBwYWdlCisgICAgICAgIHByb2dyYW1tYXRpYyBhY2Nlc3MgdG8gdGhlIGNvbnRl
bnRzIG9mIHRoZSBwYXN0ZWJvYXJkIGluIHRoZSBjYXNlIHdoZXJlIGFjY2VzcyB0byB0aGUgcGFz
dGVib2FyZCBoYXMgYWxyZWFkeQorICAgICAgICBiZWVuIGdyYW50ZWQgYnkgdGhlIHVzZXIuIEFk
ZGl0aW9uYWxseSwgZXZlbiBpbiB0aGUgZXZlbnQgdGhhdCB0aGUgd2ViIHByb2Nlc3MgaXMgY29t
cHJvbWlzZWQsIGV2ZW4gaWYgdGhlIHdlYgorICAgICAgICBwcm9jZXNzIGNhbiBiZSB0cmlja2Vk
IGludG8gYmVsaWV2aW5nIGl0IGhhcyBiZWVuIGdyYW50ZWQgcGFzdGVib2FyZCBhY2Nlc3MsIHRo
ZSBjaGFuZ2VzIGluIHIyNTkxNTEgd2lsbCBwcmV2ZW50CisgICAgICAgIGl0IGZyb20gYmVpbmcg
YWJsZSB0byByZXF1ZXN0IHBhc3RlYm9hcmQgZGF0YSwgdW5sZXNzIHRoZSB1c2VyIChvciB0aGUg
YXBwbGljYXRpb24sIG9uIGJlaGFsZiBvZiB0aGUgdXNlcikgaGFzCisgICAgICAgIGV4cGxpY2l0
bHkgcGFzdGVkIHZpYSB0cnVzdGVkIEFQSSBjYWxscyB0aGF0IGFyZSBpbmFjY2Vzc2libGUgZnJv
bSB0aGUgd2ViIHByb2Nlc3MuCisKKyAgICAgICAgVGVzdDogZWRpdGluZy9hc3luYy1jbGlwYm9h
cmQvY2xpcGJvYXJkLXJlYWQtd2hpbGUtcGFzdGluZy5odG1sCisKKyAgICAgICAgKiBlZGl0aW5n
L0VkaXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpFZGl0b3I6OnBhc3RlKToKKyAgICAgICAg
KFdlYkNvcmU6OkVkaXRvcjo6cGFzdGVBc1BsYWluVGV4dCk6CisgICAgICAgIChXZWJDb3JlOjpF
ZGl0b3I6OnBhc3RlQXNRdW90YXRpb24pOgorCisgICAgICAgIElmIGBGcm9tTWVudU9yS2V5Qmlu
ZGluZzo6WWVzYCBpcyBwYXNzZWQgaW4sIHNldCB0aGUgYG1fcGFzdGluZ0Zyb21NZW51T3JLZXlC
aW5kaW5nYCBmbGFnIHRvIHRydWUgZHVyaW5nIHRoZQorICAgICAgICBzY29wZSBvZiB0aGUgcGFz
dGUgY29tbWFuZC4KKworICAgICAgICAqIGVkaXRpbmcvRWRpdG9yLmg6CisgICAgICAgIChXZWJD
b3JlOjpFZGl0b3I6OmlzUGFzdGluZ0Zyb21NZW51T3JLZXlCaW5kaW5nIGNvbnN0KToKKyAgICAg
ICAgKiBlZGl0aW5nL0VkaXRvckNvbW1hbmQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0
ZVBhc3RlKToKKyAgICAgICAgKFdlYkNvcmU6OmV4ZWN1dGVQYXN0ZUFuZE1hdGNoU3R5bGUpOgor
ICAgICAgICAoV2ViQ29yZTo6ZXhlY3V0ZVBhc3RlQXNQbGFpblRleHQpOgorICAgICAgICAoV2Vi
Q29yZTo6ZXhlY3V0ZVBhc3RlQXNRdW90YXRpb24pOgorCisgICAgICAgIFBhc3MgaW4gYEZyb21N
ZW51T3JLZXlCaW5kaW5nOjpZZXNgIHdoZW4gdHJpZ2dlcmluZyB0aGUgcGFzdGUgZnJvbSBhIG1l
bnUgaXRlbSBvciBrZXkgYmluZGluZy4KKworICAgICAgICAqIHBhZ2UvRnJhbWUuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6RnJhbWU6OnJlcXVlc3RET01QYXN0ZUFjY2Vzcyk6CisKKyAgICAgICAg
V2hlbiBwYXN0aW5nIGZyb20gbWVudSBvciBrZXkgYmluZGluZywgZ3JhbnQgdGhlIHBhZ2UgRE9N
IHBhc3RlIGFjY2VzcyB3aXRob3V0IHJlcXVpcmluZyB0aGUgRE9NIHBhc3RlIGFjY2VzcworICAg
ICAgICBVSSB0byBiZSBzaG93biBhbmQgY29uZmlybWVkLgorCiAyMDIwLTA1LTE0ICBXZW5zb24g
SHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFttYWNPU10gVXBkYXRl
IHRoZSBwbGFjZWhvbGRlciBpY29uIGltYWdlIGZvciBhdHRhY2htZW50IGVsZW1lbnRzIHdpdGgg
cHJvZ3Jlc3M9IjAiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5jcHAKaW5kZXggMTAyODE3MzU3MzE5
Y2UxYzBkMTlkNTNkZWU4NzczYzgzNjUwNzg3NC4uZGQzMWZiYjFkNGY2MjYxMjQxOTM5NWIxNTli
NDAzNDcxMmQ5OTJhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmNwcApAQCAtMTE4LDYgKzEx
OCw3IEBACiAjaW5jbHVkZSA8cGFsL0ZpbGVTaXplRm9ybWF0dGVyLmg+CiAjaW5jbHVkZSA8cGFs
L3N5c3RlbS9Tb3VuZC5oPgogI2luY2x1ZGUgPHBhbC90ZXh0L0tpbGxSaW5nLmg+CisjaW5jbHVk
ZSA8d3RmL1NldEZvclNjb3BlLmg+CiAjaW5jbHVkZSA8d3RmL3VuaWNvZGUvQ2hhcmFjdGVyTmFt
ZXMuaD4KIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTE0NDQsMTMgKzE0NDUsMTUgQEAgdm9pZCBF
ZGl0b3I6OnBlcmZvcm1DdXRPckNvcHkoRWRpdG9yQWN0aW9uU3BlY2lmaWVyIGFjdGlvbikKICAg
ICB9CiB9CiAKLXZvaWQgRWRpdG9yOjpwYXN0ZSgpCit2b2lkIEVkaXRvcjo6cGFzdGUoRnJvbU1l
bnVPcktleUJpbmRpbmcgZnJvbU1lbnVPcktleUJpbmRpbmcpCiB7Ci0gICAgcGFzdGUoKlBhc3Rl
Ym9hcmQ6OmNyZWF0ZUZvckNvcHlBbmRQYXN0ZSgpKTsKKyAgICBwYXN0ZSgqUGFzdGVib2FyZDo6
Y3JlYXRlRm9yQ29weUFuZFBhc3RlKCksIGZyb21NZW51T3JLZXlCaW5kaW5nKTsKIH0KIAotdm9p
ZCBFZGl0b3I6OnBhc3RlKFBhc3RlYm9hcmQmIHBhc3RlYm9hcmQpCit2b2lkIEVkaXRvcjo6cGFz
dGUoUGFzdGVib2FyZCYgcGFzdGVib2FyZCwgRnJvbU1lbnVPcktleUJpbmRpbmcgZnJvbU1lbnVP
cktleUJpbmRpbmcpCiB7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gcGFzdGVTY29wZSB7IG1fcGFz
dGluZ0Zyb21NZW51T3JLZXlCaW5kaW5nLCBmcm9tTWVudU9yS2V5QmluZGluZyA9PSBGcm9tTWVu
dU9yS2V5QmluZGluZzo6WWVzIH07CisKICAgICBpZiAoIWRpc3BhdGNoQ2xpcGJvYXJkRXZlbnQo
ZmluZEV2ZW50VGFyZ2V0RnJvbVNlbGVjdGlvbigpLCBDbGlwYm9hcmRFdmVudEtpbmQ6OlBhc3Rl
KSkKICAgICAgICAgcmV0dXJuOyAvLyBESFRNTCBkaWQgdGhlIHdob2xlIG9wZXJhdGlvbgogICAg
IGlmICghY2FuUGFzdGUoKSkKQEAgLTE0NjMsOCArMTQ2NiwxMCBAQCB2b2lkIEVkaXRvcjo6cGFz
dGUoUGFzdGVib2FyZCYgcGFzdGVib2FyZCkKICAgICAgICAgcGFzdGVBc1BsYWluVGV4dFdpdGhQ
YXN0ZWJvYXJkKHBhc3RlYm9hcmQpOwogfQogCi12b2lkIEVkaXRvcjo6cGFzdGVBc1BsYWluVGV4
dCgpCit2b2lkIEVkaXRvcjo6cGFzdGVBc1BsYWluVGV4dChGcm9tTWVudU9yS2V5QmluZGluZyBm
cm9tTWVudU9yS2V5QmluZGluZykKIHsKKyAgICBTZXRGb3JTY29wZTxib29sPiBwYXN0ZVNjb3Bl
IHsgbV9wYXN0aW5nRnJvbU1lbnVPcktleUJpbmRpbmcsIGZyb21NZW51T3JLZXlCaW5kaW5nID09
IEZyb21NZW51T3JLZXlCaW5kaW5nOjpZZXMgfTsKKwogICAgIGlmICghZGlzcGF0Y2hDbGlwYm9h
cmRFdmVudChmaW5kRXZlbnRUYXJnZXRGcm9tU2VsZWN0aW9uKCksIENsaXBib2FyZEV2ZW50S2lu
ZDo6UGFzdGVBc1BsYWluVGV4dCkpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIWNhblBhc3Rl
KCkpCkBAIC0xNDczLDggKzE0NzgsMTAgQEAgdm9pZCBFZGl0b3I6OnBhc3RlQXNQbGFpblRleHQo
KQogICAgIHBhc3RlQXNQbGFpblRleHRXaXRoUGFzdGVib2FyZCgqUGFzdGVib2FyZDo6Y3JlYXRl
Rm9yQ29weUFuZFBhc3RlKCkpOwogfQogCi12b2lkIEVkaXRvcjo6cGFzdGVBc1F1b3RhdGlvbigp
Cit2b2lkIEVkaXRvcjo6cGFzdGVBc1F1b3RhdGlvbihGcm9tTWVudU9yS2V5QmluZGluZyBmcm9t
TWVudU9yS2V5QmluZGluZykKIHsKKyAgICBTZXRGb3JTY29wZTxib29sPiBwYXN0ZVNjb3BlIHsg
bV9wYXN0aW5nRnJvbU1lbnVPcktleUJpbmRpbmcsIGZyb21NZW51T3JLZXlCaW5kaW5nID09IEZy
b21NZW51T3JLZXlCaW5kaW5nOjpZZXMgfTsKKwogICAgIGlmICghZGlzcGF0Y2hDbGlwYm9hcmRF
dmVudChmaW5kRXZlbnRUYXJnZXRGcm9tU2VsZWN0aW9uKCksIENsaXBib2FyZEV2ZW50S2luZDo6
UGFzdGVBc1F1b3RhdGlvbikpCiAgICAgICAgIHJldHVybjsKICAgICBpZiAoIWNhblBhc3RlKCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oIGIvU291cmNlL1dl
YkNvcmUvZWRpdGluZy9FZGl0b3IuaAppbmRleCAyYmU2NGE0NTRmNmNjNmI0MmUyNTNjNzcyNTE0
MzhkYTQ0MjAyNDhmLi41MTM3YzBkZWQyZGZkMWJhMTUzZjg3MjBiYTkxZmVhMDY1NTZhYTc0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvci5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2VkaXRpbmcvRWRpdG9yLmgKQEAgLTE4OSwxMCArMTg5LDEyIEBAIHB1YmxpYzoKIAog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY3V0KCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBj
b3B5KCk7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBwYXN0ZSgpOwotICAgIHZvaWQgcGFzdGUo
UGFzdGVib2FyZCYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcGFzdGVBc1BsYWluVGV4dCgp
OwotICAgIHZvaWQgcGFzdGVBc1F1b3RhdGlvbigpOworCisgICAgZW51bSBjbGFzcyBGcm9tTWVu
dU9yS2V5QmluZGluZyA6IGJvb2wgeyBObywgWWVzIH07CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBwYXN0ZShGcm9tTWVudU9yS2V5QmluZGluZyA9IEZyb21NZW51T3JLZXlCaW5kaW5nOjpObyk7
CisgICAgdm9pZCBwYXN0ZShQYXN0ZWJvYXJkJiwgRnJvbU1lbnVPcktleUJpbmRpbmcgPSBGcm9t
TWVudU9yS2V5QmluZGluZzo6Tm8pOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcGFzdGVBc1Bs
YWluVGV4dChGcm9tTWVudU9yS2V5QmluZGluZyA9IEZyb21NZW51T3JLZXlCaW5kaW5nOjpObyk7
CisgICAgdm9pZCBwYXN0ZUFzUXVvdGF0aW9uKEZyb21NZW51T3JLZXlCaW5kaW5nID0gRnJvbU1l
bnVPcktleUJpbmRpbmc6Ok5vKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHBlcmZvcm1EZWxl
dGUoKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29weVVSTChjb25zdCBVUkwmLCBjb25z
dCBTdHJpbmcmIHRpdGxlKTsKQEAgLTU3MSw2ICs1NzMsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgUmVmUHRyPFRleHRQbGFjZWhvbGRlckVsZW1lbnQ+IGluc2VydFRleHRQbGFjZWhv
bGRlcihjb25zdCBJbnRTaXplJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZW1vdmVUZXh0
UGxhY2Vob2xkZXIoVGV4dFBsYWNlaG9sZGVyRWxlbWVudCYpOwogCisgICAgYm9vbCBpc1Bhc3Rp
bmdGcm9tTWVudU9yS2V5QmluZGluZygpIGNvbnN0IHsgcmV0dXJuIG1fcGFzdGluZ0Zyb21NZW51
T3JLZXlCaW5kaW5nOyB9CisKIHByaXZhdGU6CiAgICAgRG9jdW1lbnQmIGRvY3VtZW50KCkgY29u
c3QgeyByZXR1cm4gbV9kb2N1bWVudDsgfQogCkBAIC02NTQsNiArNjU4LDcgQEAgcHJpdmF0ZToK
ICAgICBib29sIG1fZWRpdG9yVUlVcGRhdGVUaW1lclNob3VsZENoZWNrU3BlbGxpbmdBbmRHcmFt
bWFyIHsgZmFsc2UgfTsKICAgICBib29sIG1fZWRpdG9yVUlVcGRhdGVUaW1lcldhc1RyaWdnZXJl
ZEJ5RGljdGF0aW9uIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNIYW5kbGluZ0FjY2VwdGVkQ2Fu
ZGlkYXRlIHsgZmFsc2UgfTsKKyAgICBib29sIG1fcGFzdGluZ0Zyb21NZW51T3JLZXlCaW5kaW5n
IHsgZmFsc2UgfTsKIAogI2lmIEVOQUJMRShURUxFUEhPTkVfTlVNQkVSX0RFVEVDVElPTikgJiYg
UExBVEZPUk0oTUFDKQogICAgIGJvb2wgc2hvdWxkRGV0ZWN0VGVsZXBob25lTnVtYmVycygpIGNv
bnN0OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9FZGl0b3JDb21tYW5kLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2VkaXRpbmcvRWRpdG9yQ29tbWFuZC5jcHAKaW5kZXggZGNmM2Rj
ZWRjOWFiZWIzMzlmZjM4NDUxYjRhODg4MjUzOTE2MTU1OC4uMjQ3ZDdjOGEyYzMyMjcxYTRlMGU3
MGQ4YzNkZWJmMTE2ZTJhNTQxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZWRpdGluZy9F
ZGl0b3JDb21tYW5kLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9lZGl0aW5nL0VkaXRvckNvbW1h
bmQuY3BwCkBAIC05MDUsNyArOTA1LDcgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZVBhc3RlKEZyYW1l
JiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291cmNlIHNvdXJjZSwgY29uc3QKIHsKICAg
ICBpZiAoc291cmNlID09IENvbW1hbmRGcm9tTWVudU9yS2V5QmluZGluZykgewogICAgICAgICBV
c2VyVHlwaW5nR2VzdHVyZUluZGljYXRvciB0eXBpbmdHZXN0dXJlSW5kaWNhdG9yKGZyYW1lKTsK
LSAgICAgICAgZnJhbWUuZWRpdG9yKCkucGFzdGUoKTsKKyAgICAgICAgZnJhbWUuZWRpdG9yKCku
cGFzdGUoRWRpdG9yOjpGcm9tTWVudU9yS2V5QmluZGluZzo6WWVzKTsKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogCkBAIC05MzYsNyArOTM2LDcgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZVBh
c3RlQW5kTWF0Y2hTdHlsZShGcmFtZSYgZnJhbWUsIEV2ZW50KiwgRWRpdG9yQ29tbWFuZFNvdXJj
ZQogewogICAgIGlmIChzb3VyY2UgPT0gQ29tbWFuZEZyb21NZW51T3JLZXlCaW5kaW5nKSB7CiAg
ICAgICAgIFVzZXJUeXBpbmdHZXN0dXJlSW5kaWNhdG9yIHR5cGluZ0dlc3R1cmVJbmRpY2F0b3Io
ZnJhbWUpOwotICAgICAgICBmcmFtZS5lZGl0b3IoKS5wYXN0ZUFzUGxhaW5UZXh0KCk7CisgICAg
ICAgIGZyYW1lLmVkaXRvcigpLnBhc3RlQXNQbGFpblRleHQoRWRpdG9yOjpGcm9tTWVudU9yS2V5
QmluZGluZzo6WWVzKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCkBAIC05NTEsNyAr
OTUxLDcgQEAgc3RhdGljIGJvb2wgZXhlY3V0ZVBhc3RlQXNQbGFpblRleHQoRnJhbWUmIGZyYW1l
LCBFdmVudCosIEVkaXRvckNvbW1hbmRTb3VyY2Ugc28KIHsKICAgICBpZiAoc291cmNlID09IENv
bW1hbmRGcm9tTWVudU9yS2V5QmluZGluZykgewogICAgICAgICBVc2VyVHlwaW5nR2VzdHVyZUlu
ZGljYXRvciB0eXBpbmdHZXN0dXJlSW5kaWNhdG9yKGZyYW1lKTsKLSAgICAgICAgZnJhbWUuZWRp
dG9yKCkucGFzdGVBc1BsYWluVGV4dCgpOworICAgICAgICBmcmFtZS5lZGl0b3IoKS5wYXN0ZUFz
UGxhaW5UZXh0KEVkaXRvcjo6RnJvbU1lbnVPcktleUJpbmRpbmc6Olllcyk7CiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIApAQCAtOTY2LDcgKzk2Niw3IEBAIHN0YXRpYyBib29sIGV4ZWN1
dGVQYXN0ZUFzUXVvdGF0aW9uKEZyYW1lJiBmcmFtZSwgRXZlbnQqLCBFZGl0b3JDb21tYW5kU291
cmNlIHNvCiB7CiAgICAgaWYgKHNvdXJjZSA9PSBDb21tYW5kRnJvbU1lbnVPcktleUJpbmRpbmcp
IHsKICAgICAgICAgVXNlclR5cGluZ0dlc3R1cmVJbmRpY2F0b3IgdHlwaW5nR2VzdHVyZUluZGlj
YXRvcihmcmFtZSk7Ci0gICAgICAgIGZyYW1lLmVkaXRvcigpLnBhc3RlQXNRdW90YXRpb24oKTsK
KyAgICAgICAgZnJhbWUuZWRpdG9yKCkucGFzdGVBc1F1b3RhdGlvbihFZGl0b3I6OkZyb21NZW51
T3JLZXlCaW5kaW5nOjpZZXMpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZS5jcHAKaW5kZXggNTQwZjQ1NmVlODIxOTliYmZmNzFlNjY4OGJjMGU4MWZhNTI1ZGRh
OS4uYjg2ZTk1ZTRlZTVkYjNlMDg3NmNjZmJiODkxZGJlYjE3OWIzMjI5OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZS5jcHAKQEAgLTUzOSw3ICs1MzksMTMgQEAgYm9vbCBGcmFtZTo6cmVxdWVzdERPTVBhc3Rl
QWNjZXNzKCkKICAgICBpZiAobV9zZXR0aW5ncy0+amF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2Fy
ZCgpICYmIG1fc2V0dGluZ3MtPkRPTVBhc3RlQWxsb3dlZCgpKQogICAgICAgICByZXR1cm4gdHJ1
ZTsKIAotICAgIGlmICghbV9zZXR0aW5ncy0+ZG9tUGFzdGVBY2Nlc3NSZXF1ZXN0c0VuYWJsZWQo
KSB8fCAhbV9kb2MpCisgICAgaWYgKCFtX2RvYykKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgaWYgKGVkaXRvcigpLmlzUGFzdGluZ0Zyb21NZW51T3JLZXlCaW5kaW5nKCkpCisgICAgICAg
IHJldHVybiB0cnVlOworCisgICAgaWYgKCFtX3NldHRpbmdzLT5kb21QYXN0ZUFjY2Vzc1JlcXVl
c3RzRW5hYmxlZCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBhdXRvIGdlc3R1cmVU
b2tlbiA9IFVzZXJHZXN0dXJlSW5kaWNhdG9yOjpjdXJyZW50VXNlckdlc3R1cmUoKTsKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkODA4ZTBiYzM3
NDNkZTJmYjhkYTAzY2IxZGNiOWQ1OWUxNDRmNDY5Li5kN2MwNGU5ZjY2YjJhZTM5MzBkZGIzN2Ni
YjM0YzY1ZmQxM2JkYmVkIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMjAtMDUtMTYgIFdlbnNvbiBIc2llaCAgPHdl
bnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgY2xpcGJvYXJkIEFQSSBhY2Nl
c3Mgd2hlbiBwYXN0aW5nIGZyb20gYSBtZW51IGl0ZW0gb3Iga2V5IGJpbmRpbmcKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTk5MAorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vNjMzMDg5MTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIGEgVUlTY3JpcHRDb250cm9sbGVyIG1ldGhvZCB0byB0cmln
Z2VyIGEgcGFzdGUgZnJvbSB0aGUgYXBwbGljYXRpb24gcHJvY2Vzcy4KKworICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLmg6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW06CisgICAgICAg
IChXVFI6OlVJU2NyaXB0Q29udHJvbGxlckNvY29hOjpwYXN0ZSk6CisgICAgICAgICogVGVzdFJ1
bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlk
bDoKKyAgICAgICAgKiBUZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENv
bnRyb2xsZXIuaDoKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpwYXN0ZSk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5o
OgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29j
b2EubW06CisgICAgICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlckNvY29hOjpwYXN0ZSk6CisK
IDIwMjAtMDUtMTUgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgW2lPU10gVW5leHBlY3RlZCBjYXBpdGFsaXphdGlvbiBvZiBuZXh0IHdvcmQgYWZ0ZXIg
cmVwb3NpdGlvbmluZyBjYXJldApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY29j
b2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2NvY29h
L1VJU2NyaXB0Q29udHJvbGxlckNvY29hLmgKaW5kZXggODA5NTliZmY2ZGUwNDMxMDhkMGRhMWM4
MzI3NDNhYjEzMzIxNDVjNS4uYTYxMjNiMGI4YmYwNzYzOGQ4YWM3MjM5MGU5N2Q0M2NjMDcyMGZm
NyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY29jb2EvVUlTY3JpcHRDb250cm9s
bGVyQ29jb2EuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jb2NvYS9VSVNjcmlwdENvbnRy
b2xsZXJDb2NvYS5oCkBAIC0zNCw2ICszNCw3IEBAIG5hbWVzcGFjZSBXVFIgewogY2xhc3MgVUlT
Y3JpcHRDb250cm9sbGVyQ29jb2EgOiBwdWJsaWMgVUlTY3JpcHRDb250cm9sbGVyIHsKIHB1Ymxp
YzoKICAgICB2b2lkIHNldENvbnRpbnVvdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sKSBvdmVy
cmlkZTsKKyAgICB2b2lkIHBhc3RlKCkgb3ZlcnJpZGU7CiAKIHByb3RlY3RlZDoKICAgICBleHBs
aWNpdCBVSVNjcmlwdENvbnRyb2xsZXJDb2NvYShVSVNjcmlwdENvbnRleHQmKTsKZGlmZiAtLWdp
dCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1t
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0K
aW5kZXggNjdhNzgwY2EyMjNhNGNlNjAwNjI3NDcwNDc4NDE1Mzg5MGQ2OTczOC4uOTNkMDc1ZTAz
OGU1MGVlMTgyNjlmNWJjMTY4MTdlM2YzYWU5YTMwNyAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0KKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2EubW0KQEAgLTQ0LDYgKzQ0
LDExIEBAIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyQ29jb2E6OnNldENvbnRpbnVvdXNTcGVsbENo
ZWNraW5nRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgbWFpbkZyYW1lLndlYlZpZXcuY29udGlu
dW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkID0gZW5hYmxlZDsKIH0KIAordm9pZCBVSVNjcmlwdENv
bnRyb2xsZXJDb2NvYTo6cGFzdGUoKQoreworICAgIFttYWluRnJhbWUud2ViVmlldyBwYXN0ZTpu
aWxdOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKIAogI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09B
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvQmlu
ZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlT
Y3JpcHRDb250ZXh0L0JpbmRpbmdzL1VJU2NyaXB0Q29udHJvbGxlci5pZGwKaW5kZXggYjlkZGFh
MTZhZmFhODkzYWFkYTVlZDM5MWNjNTdlOTM0NDJhNzVmMi4uNWUyMWE4MjRlZTE2MDViYWYzMmFm
M2I3ZTkxZGUwMmUxOGUwNzM4OSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9V
SVNjcmlwdENvbnRleHQvQmluZGluZ3MvVUlTY3JpcHRDb250cm9sbGVyLmlkbAorKysgYi9Ub29s
cy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9CaW5kaW5ncy9VSVNjcmlwdENvbnRy
b2xsZXIuaWRsCkBAIC0yNjksNiArMjY5LDcgQEAgaW50ZXJmYWNlIFVJU2NyaXB0Q29udHJvbGxl
ciB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIGJvb2xlYW4gaXNQcmVzZW50aW5nTW9kYWxseTsK
IAogICAgIHZvaWQgY29weVRleHQoRE9NU3RyaW5nIHRleHQpOworICAgIHZvaWQgcGFzdGUoKTsK
IAogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBkb3VibGUgY29udGVudE9mZnNldFg7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIGRvdWJsZSBjb250ZW50T2Zmc2V0WTsKZGlmZiAtLWdpdCBhL1Rvb2xz
L1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5oIGIv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVy
LmgKaW5kZXggNDE0NzVmNDhmOWVmZjk0ZmU1ZjMwNjEzM2ZmMmRlOWM3ZTNiYTk3Yy4uMzQwNzRi
MjMyNjQyODk4NjRkMjQwNzExZGU0ZTYyNDI5OTQ5ZWQ4YyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVz
dFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmgKKysrIGIv
VG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVy
LmgKQEAgLTEwNiw2ICsxMDYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHJlc2lnbkZp
cnN0UmVzcG9uZGVyKCkgeyBub3RJbXBsZW1lbnRlZCgpOyB9CiAKICAgICB2aXJ0dWFsIHZvaWQg
Y29weVRleHQoSlNTdHJpbmdSZWYpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQorICAgIHZpcnR1YWwg
dm9pZCBwYXN0ZSgpIHsgbm90SW1wbGVtZW50ZWQoKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIGNo
b29zZU1lbnVBY3Rpb24oSlNTdHJpbmdSZWYsIEpTVmFsdWVSZWYpOwogICAgIHZpcnR1YWwgdm9p
ZCBkaXNtaXNzTWVudSgpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9VSVNjcmlwdENvbnRyb2xsZXJDb2NvYS5oCmluZGV4IGMzOTM4NDQ5OGYwODEwMDAyMTdmMDk2
ZTAwODM1ZjkzNDg1YThmMmMuLjk2ZWQ3YWRhMmVhODA3NmI5N2VlYTE5MDdhMGZjOTY3MmZjY2Y3
YWEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250
cm9sbGVyQ29jb2EuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0
Q29udHJvbGxlckNvY29hLmgKQEAgLTU0LDYgKzU0LDggQEAgcHVibGljOgogICAgIHZvaWQgZGlz
bWlzc01lbnUoKSBvdmVycmlkZTsKICAgICBib29sIGlzU2hvd2luZ01lbnUoKSBjb25zdCBvdmVy
cmlkZTsKIAorICAgIHZvaWQgcGFzdGUoKSBvdmVycmlkZTsKKwogICAgIHZvaWQgc2V0Q29udGlu
dW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wpIG92ZXJyaWRlOwogCiBwcm90ZWN0ZWQ6CmRp
ZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxl
ckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9VSVNjcmlwdENvbnRyb2xs
ZXJDb2NvYS5tbQppbmRleCAwY2E1ZjQ3ODE2ZDVhN2M2OGMwNGUzNzE3Yjk2YzY5ZWFhZjA3MzBm
Li42MjIxYmIxMzEyMWFlYmU4YjA0Zjk5NWZjODAxNGRjMjk3OTk2ZmI3IDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1VJU2NyaXB0Q29udHJvbGxlckNvY29hLm1tCisr
KyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVUlTY3JpcHRDb250cm9sbGVyQ29jb2Eu
bW0KQEAgLTM1LDYgKzM1LDEwIEBACiAjaW1wb3J0IDxXZWJLaXQvV0tXZWJWaWV3UHJpdmF0ZS5o
PgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg+CiAKK0BpbnRl
cmZhY2UgV0tXZWJWaWV3IChXS1dlYlZpZXdJbnRlcm5hbCkKKy0gKHZvaWQpcGFzdGU6KGlkKXNl
bmRlcjsKK0BlbmQKKwogbmFtZXNwYWNlIFdUUiB7CiAKIFVJU2NyaXB0Q29udHJvbGxlckNvY29h
OjpVSVNjcmlwdENvbnRyb2xsZXJDb2NvYShVSVNjcmlwdENvbnRleHQmIGNvbnRleHQpCkBAIC0y
MDQsNCArMjA4LDkgQEAgdm9pZCBVSVNjcmlwdENvbnRyb2xsZXJDb2NvYTo6c2V0Q29udGludW91
c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKICAgICBbd2ViVmlldygpIF9zZXRD
b250aW51b3VzU3BlbGxDaGVja2luZ0VuYWJsZWRGb3JUZXN0aW5nOmVuYWJsZWRdOwogfQogCit2
b2lkIFVJU2NyaXB0Q29udHJvbGxlckNvY29hOjpwYXN0ZSgpCit7CisgICAgW3dlYlZpZXcoKSBw
YXN0ZTpuaWxdOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA3ZjZmZjM3YmVjMGEx
MTk0MTFlOGE2NjE3YzE3OTcwZTgwY2JlMjI4Li40YWUyMDA3MmI5Y2I0Y2M3ODJmYmE0ZmNiOWIy
YWE1NGU0NDQxNTY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjAtMDUtMTYgIFdlbnNvbiBI
c2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgY2xpcGJvYXJk
IEFQSSBhY2Nlc3Mgd2hlbiBwYXN0aW5nIGZyb20gYSBtZW51IGl0ZW0gb3Iga2V5IGJpbmRpbmcK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMTk5MAor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vNjMzMDg5MTY+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgbmV3IGxheW91dCB0ZXN0IHRvIHZlcmlm
eSB0aGF0IHRoZSBjb250ZW50cyBvZiB0aGUgY2xpcGJvYXJkIGNhbiBiZSByZWFkIHdoaWxlIHBl
cmZvcm1pbmcgYSBwYXN0ZSB0aGF0IHdhcworICAgICAgICBub3QgdHJpZ2dlcmVkIGZyb20gdGhl
IERPTS4KKworICAgICAgICAqIGVkaXRpbmcvYXN5bmMtY2xpcGJvYXJkL2NsaXBib2FyZC1yZWFk
LXdoaWxlLXBhc3RpbmctZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL2Fz
eW5jLWNsaXBib2FyZC9jbGlwYm9hcmQtcmVhZC13aGlsZS1wYXN0aW5nLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHJlc291
cmNlcy91aS1oZWxwZXIuanM6CisgICAgICAgICh3aW5kb3cuVUlIZWxwZXIuYXN5bmMgY29weVRl
eHQpOgorICAgICAgICAod2luZG93LlVJSGVscGVyLmFzeW5jIHBhc3RlKToKKwogMjAyMC0wNS0x
NSAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9T
XSBVbmV4cGVjdGVkIGNhcGl0YWxpemF0aW9uIG9mIG5leHQgd29yZCBhZnRlciByZXBvc2l0aW9u
aW5nIGNhcmV0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL2FzeW5jLWNsaXBib2Fy
ZC9jbGlwYm9hcmQtcmVhZC13aGlsZS1wYXN0aW5nLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvYXN5bmMtY2xpcGJvYXJkL2NsaXBib2FyZC1yZWFkLXdoaWxlLXBhc3RpbmctZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZhMTE1MTZkYzJhMjZkNWY4MDUzZjI1OGY2NDJhZThkYjdl
ZDgxZTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL2FzeW5jLWNsaXBi
b2FyZC9jbGlwYm9hcmQtcmVhZC13aGlsZS1wYXN0aW5nLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEyIEBACitUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgY2xpcGJvYXJkIGlzIGFjY2Vzc2li
bGUgd2hpbGUgcGVyZm9ybWluZyBhIHBhc3RlIGZyb20gbmF0aXZlIFVJLiBUbyBtYW51YWxseSBy
dW4gdGhlIHRlc3QsIGNsaWNrIHRoZSAnQ29weScgYnV0dG9uIGFib3ZlLCBhbmQgdGhlbiBwYXN0
ZSBpbiB0aGUgdGV4dCBmaWVsZCBiZWxvdyB1c2luZyBuYXRpdmUgVUkgKGUuZy4gbWVudSBpdGVt
IG9yIGNtZCtWIG9uIG1hY09TLCBhbmQgdGhlIGNhbGxvdXQgbWVudSBvbiBpT1MpLiBUaGUgdGV4
dCAnVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cuJyBzaG91bGQg
YmUgcmVhZCB2aWEgdGhlIGNsaXBib2FyZCBBUEksIHdpdGhvdXQgdHJpZ2dlcmluZyBhbiBhZGRp
dGlvbmFsIERPTSBwYXN0ZSBtZW51LgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyBkb25lV3JpdGluZ1RleHQgYmVjYW1lIHRydWUKK1BBU1MgUmVhZCB0ZXh0OiAnVGhlIHF1
aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cuJworUEFTUyBkb25lUmVhZGlu
Z1RleHQgYmVjYW1lIHRydWUKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorQ29weSAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvYXN5bmMt
Y2xpcGJvYXJkL2NsaXBib2FyZC1yZWFkLXdoaWxlLXBhc3RpbmcuaHRtbCBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvYXN5bmMtY2xpcGJvYXJkL2NsaXBib2FyZC1yZWFkLXdoaWxlLXBhc3RpbmcuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5lY2QwMzE5NjdjN2I2YjBiNzBiMTI0NjVmMDAxODlkZGVmYWVmM2E5Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9hc3luYy1jbGlwYm9hcmQvY2xp
cGJvYXJkLXJlYWQtd2hpbGUtcGFzdGluZy5odG1sCkBAIC0wLDAgKzEsNjMgQEAKKzwhRE9DVFlQ
RSBodG1sPiA8IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIHVzZUZsZXhpYmxlVmlld3BvcnQ9dHJ1
ZSBleHBlcmltZW50YWw6QXN5bmNDbGlwYm9hcmRBUElFbmFibGVkPXRydWUgZG9tUGFzdGVBbGxv
d2VkPWZhbHNlIF0gLS0+Cis8aHRtbD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGY4Ij4KKyAgICA8
aGVhZD4KKyAgICAgICAgPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmlj
ZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKyAgICAgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAg
PHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAg
ICAgICA8c3R5bGU+CisgICAgICAgICAgICBidXR0b24geworICAgICAgICAgICAgICAgIHdpZHRo
OiAzMDBweDsKKyAgICAgICAgICAgICAgICBwYWRkaW5nOiAxZW07CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGlucHV0IHsKKyAgICAgICAgICAgICAgICBkaXNwbGF5OiBibG9jazsKKyAg
ICAgICAgICAgICAgICBmb250LXNpemU6IDQwcHg7CisgICAgICAgICAgICAgICAgd2lkdGg6IDMw
MHB4OworICAgICAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgorICAgIDwvaGVhZD4KKyAgICA8
c2NyaXB0PgorICAgICAgICBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKyAgICAgICAgZG9uZVdyaXRp
bmdUZXh0ID0gZmFsc2U7CisgICAgICAgIGRvbmVSZWFkaW5nVGV4dCA9IGZhbHNlOworCisgICAg
ICAgIGRlc2NyaXB0aW9uKCJUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCB0aGUgY2xpcGJvYXJkIGlz
IGFjY2Vzc2libGUgd2hpbGUgcGVyZm9ybWluZyBhIHBhc3RlIGZyb20gbmF0aXZlIFVJLiBUbyBt
YW51YWxseSBydW4gdGhlIHRlc3QsIGNsaWNrIHRoZSAnQ29weScgYnV0dG9uIGFib3ZlLCBhbmQg
dGhlbiBwYXN0ZSBpbiB0aGUgdGV4dCBmaWVsZCBiZWxvdyB1c2luZyBuYXRpdmUgVUkgKGUuZy4g
bWVudSBpdGVtIG9yIGNtZCtWIG9uIG1hY09TLCBhbmQgdGhlIGNhbGxvdXQgbWVudSBvbiBpT1Mp
LiBUaGUgdGV4dCAnVGhlIHF1aWNrIGJyb3duIGZveCBqdW1wZWQgb3ZlciB0aGUgbGF6eSBkb2cu
JyBzaG91bGQgYmUgcmVhZCB2aWEgdGhlIGNsaXBib2FyZCBBUEksIHdpdGhvdXQgdHJpZ2dlcmlu
ZyBhbiBhZGRpdGlvbmFsIERPTSBwYXN0ZSBtZW51LiIpOworCisgICAgICAgIGFzeW5jIGZ1bmN0
aW9uIHJ1blRlc3QoKSB7CisgICAgICAgICAgICBjb25zdCBjb3B5QnV0dG9uID0gZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigiYnV0dG9uIik7CisgICAgICAgICAgICBjb25zdCBmaWVsZCA9IGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoImlucHV0IikKKworICAgICAgICAgICAgY29weUJ1dHRvbi5hZGRF
dmVudExpc3RlbmVyKCJjbGljayIsIGFzeW5jICgpID0+IHsKKyAgICAgICAgICAgICAgICBhd2Fp
dCBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCgiVGhlIHF1aWNrIGJyb3duIGZveCBqdW1w
ZWQgb3ZlciB0aGUgbGF6eSBkb2cuIik7CisgICAgICAgICAgICAgICAgZG9uZVdyaXRpbmdUZXh0
ID0gdHJ1ZTsKKyAgICAgICAgICAgIH0pOworCisgICAgICAgICAgICBmaWVsZC5hZGRFdmVudExp
c3RlbmVyKCJwYXN0ZSIsIGFzeW5jIGV2ZW50ID0+IHsKKyAgICAgICAgICAgICAgICBldmVudC5w
cmV2ZW50RGVmYXVsdCgpOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoYFJlYWQgdGV4dDog
JyR7YXdhaXQgbmF2aWdhdG9yLmNsaXBib2FyZC5yZWFkVGV4dCgpfSdgKTsKKyAgICAgICAgICAg
ICAgICBkb25lUmVhZGluZ1RleHQgPSB0cnVlOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAg
ICAgIGlmICghd2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgICAgICBhd2FpdCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnQoY29weUJ1dHRvbik7Cisg
ICAgICAgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNob3VsZEJlY29tZUVxdWFs
KCJkb25lV3JpdGluZ1RleHQiLCAidHJ1ZSIsIHJlc29sdmUpKTsKKyAgICAgICAgICAgIGF3YWl0
IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudEFuZFdhaXRGb3JJbnB1dFNlc3Npb24oZmllbGQpOwor
ICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIucGFzdGUoKTsKKyAgICAgICAgICAgIGF3YWl0IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4gc2hvdWxkQmVjb21lRXF1YWwoImRvbmVSZWFkaW5nVGV4dCIs
ICJ0cnVlIiwgcmVzb2x2ZSkpOworCisgICAgICAgICAgICBmaWVsZC5ibHVyKCk7CisgICAgICAg
ICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yS2V5Ym9hcmRUb0hpZGUoKTsKKyAgICAgICAgICAg
IGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgYWRkRXZlbnRMaXN0ZW5lcigi
bG9hZCIsIHJ1blRlc3QpOworICAgIDwvc2NyaXB0PgorICAgIDxib2R5PgorICAgICAgICA8YnV0
dG9uPkNvcHk8L2J1dHRvbj4KKyAgICAgICAgPGlucHV0PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZjM2M2Y5YjJk
ZDMyOGZiMmRjNTY2M2UxYjU0ZmZhNzJhYWNlYmU1Zi4uYzA3YjUwMjU1NDNhZmU1MTVkYzU2ZDcx
NjVjMzhkZWYxNWY5NjRkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3Rh
dGlvbnMKQEAgLTEyMDUsNiArMTIwNSw3IEBAIHdlYmtpdC5vcmcvYi8yMDMxMDAgZWRpdGluZy9h
c3luYy1jbGlwYm9hcmQvY2xpcGJvYXJkLWRvLW5vdC1yZWFkLXRleHQtZnJvbS1wbGF0CiB3ZWJr
aXQub3JnL2IvMjAzMTAwIGVkaXRpbmcvYXN5bmMtY2xpcGJvYXJkL2NsaXBib2FyZC1yZWFkLXRl
eHQtZnJvbS1wbGF0Zm9ybS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMjAzMTAwIGVkaXRp
bmcvYXN5bmMtY2xpcGJvYXJkL2NsaXBib2FyZC1yZWFkLXRleHQtc2FtZS1vcmlnaW4uaHRtbCBb
IFNraXAgXQogd2Via2l0Lm9yZy9iLzIwMzEwMCBlZGl0aW5nL2FzeW5jLWNsaXBib2FyZC9jbGlw
Ym9hcmQtcmVhZC10ZXh0Lmh0bWwgWyBTa2lwIF0KK3dlYmtpdC5vcmcvYi8yMDMxMDAgZWRpdGlu
Zy9hc3luYy1jbGlwYm9hcmQvY2xpcGJvYXJkLXJlYWQtd2hpbGUtcGFzdGluZy5odG1sIFsgU2tp
cCBdCiB3ZWJraXQub3JnL2IvMjAzMTAwIGVkaXRpbmcvYXN5bmMtY2xpcGJvYXJkL3Nhbml0aXpl
LXdoZW4td3JpdGluZy1pbWFnZS5odG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMjAzMTAwIGVk
aXRpbmcvYXN5bmMtY2xpcGJvYXJkL3Nhbml0aXplLXdoZW4tcmVhZGluZy1tYXJrdXAuaHRtbCBb
IFNraXAgXQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVyLmpz
IGIvTGF5b3V0VGVzdHMvcmVzb3VyY2VzL3VpLWhlbHBlci5qcwppbmRleCA5ZTM4YmI4MmU2MTky
ZDFiYzU2NzZlMmJjZjEwMDNmNzhlNjU0ZTdlLi42OTEzNzlmNDg1MTlmNWRmMjRjODQ5YzAzOGI1
ZWIwOTc1MmJmNzkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9yZXNvdXJjZXMvdWktaGVscGVy
LmpzCisrKyBiL0xheW91dFRlc3RzL3Jlc291cmNlcy91aS1oZWxwZXIuanMKQEAgLTExODMsMTAg
KzExODMsMTQgQEAgd2luZG93LlVJSGVscGVyID0gY2xhc3MgVUlIZWxwZXIgewogICAgIH0KIAog
ICAgIHN0YXRpYyBhc3luYyBjb3B5VGV4dCh0ZXh0KSB7Ci0gICAgICAgIGNvbnN0IGNvcHlUZXh0
U2NyaXB0ID0gYHVpQ29udHJvbGxlci5jb3B5VGV4dChcYCR7dGV4dC5yZXBsYWNlKC9gL2csICJc
XGAiKX1cYCkoKWA7CisgICAgICAgIGNvbnN0IGNvcHlUZXh0U2NyaXB0ID0gYHVpQ29udHJvbGxl
ci5jb3B5VGV4dChcYCR7dGV4dC5yZXBsYWNlKC9gL2csICJcXGAiKX1cYClgOwogICAgICAgICBy
ZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0ZXN0UnVubmVyLnJ1blVJU2NyaXB0KGNvcHlU
ZXh0U2NyaXB0LCByZXNvbHZlKSk7CiAgICAgfQogCisgICAgc3RhdGljIGFzeW5jIHBhc3RlKCkg
eworICAgICAgICByZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB0ZXN0UnVubmVyLnJ1blVJ
U2NyaXB0KGB1aUNvbnRyb2xsZXIucGFzdGUoKWAsIHJlc29sdmUpKTsKKyAgICB9CisKICAgICBz
dGF0aWMgYXN5bmMgc2V0Q29udGludW91c1NwZWxsQ2hlY2tpbmdFbmFibGVkKGVuYWJsZWQpIHsK
ICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4gewogICAgICAgICAgICAgdGVz
dFJ1bm5lci5ydW5VSVNjcmlwdChgdWlDb250cm9sbGVyLnNldENvbnRpbnVvdXNTcGVsbENoZWNr
aW5nRW5hYmxlZCgke2VuYWJsZWR9KWAsIHJlc29sdmUpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>