<?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>161480</bug_id>
          
          <creation_ts>2016-09-01 01:06:01 -0700</creation_ts>
          <short_desc>Only update connected custom elements</short_desc>
          <delta_ts>2016-09-01 23:19:20 -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>DOM</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>154907</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryosuke Niwa">rniwa</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>cdumez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kling</cc>
    
    <cc>koivisto</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1225287</commentid>
    <comment_count>0</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-09-01 01:06:01 -0700</bug_when>
    <thetext>There have been a number of changes to the way unresolved custom elements are upgraded.
Update our implementation to match those changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225633</commentid>
    <comment_count>1</comment_count>
      <attachid>287708</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-09-01 17:46:47 -0700</bug_when>
    <thetext>Created attachment 287708
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225712</commentid>
    <comment_count>2</comment_count>
      <attachid>287708</attachid>
    <who name="Yusuke Suzuki">ysuzuki</who>
    <bug_when>2016-09-01 23:11:50 -0700</bug_when>
    <thetext>Comment on attachment 287708
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1225717</commentid>
    <comment_count>3</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2016-09-01 23:19:20 -0700</bug_when>
    <thetext>Committed r205340: &lt;http://trac.webkit.org/changeset/205340&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>287708</attachid>
            <date>2016-09-01 17:46:47 -0700</date>
            <delta_ts>2016-09-01 23:11:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-161480-20160901174435.patch</filename>
            <type>text/plain</type>
            <size>56095</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA1MzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODAwMTA0ODFiMTkzM2Vi
MThjNzFjYTYyMDg1YTc0MDYyNTU5MTExNi4uYmI3NzQwZTZjZjIwNTkyOWQ2ZGM3NjNjOTE3NmRl
MGQ5YzBlOTllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDYxIEBACiAyMDE2LTA5LTAxICBSeW9z
dWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCisgICAgICAgIE9ubHkgdXBkYXRlIGNvbm5l
Y3RlZCBjdXN0b20gZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MTQ4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEluIHRoZSBsYXRlc3Qgc3BlY3MsIGNyZWF0aW5nIGFuIGVsZW1lbnQgb25s
eSB1cGdyYWRlcyBhbiBlbGVtZW50IGlmIHRoZSBjdXN0b20gZWxlbWVudCBoYWQgYWxyZWFkeSBi
ZWVuIGRlZmluZWQ6CisgICAgICAgIGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9yZy8jY29uY2Vw
dC1jcmVhdGUtZWxlbWVudAorCisgICAgICAgIE90aGVyd2lzZSwgYW4gZWxlbWVudCByZW1haW5z
IHVucmVzb2x2ZWQgdW50aWwgaXQgZ2V0cyBjb25uZWN0ZWQgdG8gdGhlIGRvY3VtZW50IGFzc29j
aWF0ZWQgd2l0aCB0aGUgZ2xvYmFsIG9iamVjdDoKKyAgICAgICAgaHR0cHM6Ly9kb20uc3BlYy53
aGF0d2cub3JnLyNjb25jZXB0LW5vZGUtaW5zZXJ0CisKKyAgICAgICAgVGhpcyBwYXRjaCByZW1v
dmVzIHRoZSB1cGdyYWRlIGNhbmRpZGF0ZSBtYXAgaW4gQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LCBh
bmQgdHJhdmVyc2VzIHRoZSBlbnRpcmUgZG9jdW1lbnQgYXNzb2NpYXRlZAorICAgICAgICB3aXRo
IGdsb2JhbCBvYmplY3QgKERPTVdpbmRvdykgaW4gYWRkRWxlbWVudERlZmluaXRpb246IGh0dHBz
Oi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvI2RvbS1jdXN0b21lbGVtZW50cmVnaXN0cnktZGVmaW5l
CisKKyAgICAgICAgVGhlIHRyYXZlcnNhbCBpcyBkb25lIGluIHRoZSBzaGFkb3ctaW5jbHVkaW5n
IHRyZWUgb3JkZXIgKGRpZmZlcmVudCBmcm9tIGRlcHRoLWZpcnN0IHByZW9yZGVyIHRyYXZlcnNh
bCBvZiBmbGF0IHRyZWUpCisgICAgICAgIHNpbmNlIGl0IGRvZXNuJ3QgZW50ZXIgc2xvdHMgYW5k
IGNoaWxkcmVuIG9mIHNoYWRvdyBob3N0cyBhcmUgYWx3YXlzIHZpc2l0ZWQgZXZlbiBpZiB0aGV5
IGFyZSBub3QgYXNzaWduZWQgdG8gYSBzbG90OgorICAgICAgICBodHRwczovL2RvbS5zcGVjLndo
YXR3Zy5vcmcvI2NvbmNlcHQtc2hhZG93LWluY2x1ZGluZy10cmVlLW9yZGVyCisKKyAgICAgICAg
VGVzdDogZmFzdC9jdXN0b20tZWxlbWVudHMvZW5xdWV1ZS1jdXN0b20tZWxlbWVudC11cGdyYWRl
LXJlYWN0aW9uLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudElu
dGVyZmFjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U6
OnVwZ3JhZGVFbGVtZW50KTogQXNzZXJ0IHRoYXQgdGhlIGVsZW1lbnQgYmVpbmcgdXBncmFkZWQg
YXMgdGhlIHNhbWUgcXVhbGlmaWVkIG5hbWUKKyAgICAgICAgYXMgdGhlIGN1c3RvbSBlbGVtZW50
IGludGVyZmFjZS4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRSZWdpc3Ry
eUN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0N1c3RvbUVsZW1lbnRSZWdpc3RyeTo6
ZGVmaW5lKTogTW92ZWQgdGhlIGNvZGUgdG8gcmVzb2x2ZSB0aGUgcHJvbWlzZSBmcm9tIGhlcmUg
dG8gYWRkRWxlbWVudERlZmluaXRpb24uCisgICAgICAgIEFsc28gY2xlYW5lZCB1cCB0aGUgY29k
ZSB0byBleHRyYWN0IGNhbGxiYWNrcyBhIGxpdHRsZS4KKyAgICAgICAgKiBkb20vQ3VzdG9tRWxl
bWVudFJlYWN0aW9uUXVldWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRWxlbWVudFJl
YWN0aW9uUXVldWU6OmVucXVldWVFbGVtZW50VXBncmFkZSk6IEFkZGVkIGFuIGFzc2VydGlvbi4K
KyAgICAgICAgKFdlYkNvcmU6OkN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1ZXVlRWxl
bWVudFVwZ3JhZGVJZkRlZmluZWQpOiBBZGRlZC4gVXBncmFkZSBhbiBlbGVtZW50IGlmIHRoZSBj
dXN0b20gZWxlbWVudAorICAgICAgICBoYWQgYWxyZWFkeSBiZWVuIGRlZmluZWQuCisgICAgICAg
ICogZG9tL0N1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmg6CisgICAgICAgICogZG9tL0N1c3Rv
bUVsZW1lbnRSZWdpc3RyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDdXN0b21FbGVtZW50UmVn
aXN0cnk6OmNyZWF0ZSk6IFN0b3JlcyB0aGUgcmVmZXJlbmNlIHRvIERPTVdpbmRvdyB0byBmaW5k
IGl0cyBkb2N1bWVudCBpbiBhZGRFbGVtZW50RGVmaW5pdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6
OkN1c3RvbUVsZW1lbnRSZWdpc3RyeTo6Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5KTogRGl0dG8uCisg
ICAgICAgIChXZWJDb3JlOjplbnF1ZXVlVXBncmFkZUluU2hhZG93SW5jbHVkaW5nVHJlZU9yZGVy
KTogQWRkZWQuIEVucXVldWUgdXBncmFkZSByZWFjdGlvbnMgaW4gc2hhZG93LWluY2x1ZGluZyB0
cmVlIG9yZGVyLgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5OjphZGRF
bGVtZW50RGVmaW5pdGlvbik6IFVwZ3JhZGUgYWxsIHVucmVzb2x2ZWQgZWxlbWVudHMgdGhhdCBt
YXRjaGVzIHRoaXMgZGVmaW5pdGlvbiBhbmQKKyAgICAgICAgcmVzb2x2ZSB0aGUgdGhlIHByb21p
c2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBpZiB0aGVyZSBpcyBhbnkuCisgICAgICAgIChX
ZWJDb3JlOjpDdXN0b21FbGVtZW50UmVnaXN0cnk6OmFkZFVwZ3JhZGVDYW5kaWRhdGUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5OjpmaW5kSW50ZXJm
YWNlKTogQWRkZWQgYSBuZXcgdmFyaWFudCB0aGF0IHRha2VzIGFuIGVsZW1lbnQuCisgICAgICAg
ICogZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5oOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVVcGdyYWRlQ2FuZGlkYXRlRWxlbWVudCk6IE5v
IGxvbmdlciB0YWtlcyBET01XaW5kb3cgc2luY2Ugd2UgZG9uJ3QgdXBncmFkZSBzeW5jaHJvbm91
c2x5IGhlcmUuIEl0J3MgYWxzbworICAgICAgICB3cm9uZyBub3QgdG8gbWFyayB0aGUgZWxlbWVu
dCBhcyB1bnJlc29sdmVkIGN1c3RvbSBlbGVtZW50IGluIGEgZG9jdW1lbnQgd2l0aG91dCBhIGJy
b3dzaW5nIGNvbnRleHQgcGVyIG5ldyBzZW1hbnRpY3MuCisgICAgICAgIChXZWJDb3JlOjpjcmVh
dGVIVE1MRWxlbWVudFdpdGhOYW1lVmFsaWRhdGlvbik6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6Y3JlYXRlRmFsbGJhY2tIVE1MRWxlbWVudCk6IERpdHRvLgorICAgICAgICAqIGRvbS9FbGVt
ZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6Omluc2VydGVkSW50byk6IEVucXVl
dWUgYW4gdXBncmFkZSByZWFjdGlvbiBpZiB0aGlzIGlzIGFuIHVuc29sdmVkIGN1c3RvbSBlbGVt
ZW50IGFuZCB0aGVyZSBpcyBub3cKKyAgICAgICAgYSBkZWZpbml0aW9uIGZvciBpdCAodGhlIGxh
dHRlciBjb25kaXRpb24gaXMgY2hlY2tlZCBpbiBlbnF1ZXVlRWxlbWVudFVwZ3JhZGVJZkRlZmlu
ZWQpLgorICAgICAgICAqIGh0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rpb25TaXRlLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxDb25zdHJ1Y3Rpb25TaXRlOjpjcmVhdGVIVE1MRWxlbWVudE9y
RmluZEN1c3RvbUVsZW1lbnRJbnRlcmZhY2UpOiBEb24ndCB1cGdyYWRlIHRoaXMgZWxlbWVudCB1
bnRpbCBpdCBnZXRzCisgICAgICAgIGNvbm5lY3RlZCB0byBhIGRvY3VtZW50IGluIEVsZW1lbnQ6
Omluc2VydGVkSW50by4KKyAgICAgICAgKiBwYWdlL0RPTVdpbmRvdy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpET01XaW5kb3c6OmVuc3VyZUN1c3RvbUVsZW1lbnRSZWdpc3RyeSk6CisKKzIwMTYt
MDktMDEgIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKICAgICAgICAgQWRkICJ3
aGVuRGVmaW5lZCIgdG8gQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5CiAgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjE0MjUKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQ3VzdG9tRWxlbWVudEludGVyZmFjZS5jcHAKaW5kZXgg
Y2QwNjEyOGE0NTJiYTNiMmY2ZDlmYWI2YmIwNzUzMmJjZmQ0ZmUwZi4uNjczY2Q3YWE3YTdkOTNm
N2MyNjMzNmYwNGU5Y2I3ODdiZjVmYzhiZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9qcy9KU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UuY3BwCkBAIC0xMDQsNiArMTA0
LDcgQEAgUmVmUHRyPEVsZW1lbnQ+IEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZTo6Y29uc3RydWN0
RWxlbWVudChjb25zdCBBdG9taWNTdHJpbmcmIHQKIAogdm9pZCBKU0N1c3RvbUVsZW1lbnRJbnRl
cmZhY2U6OnVwZ3JhZGVFbGVtZW50KEVsZW1lbnQmIGVsZW1lbnQpCiB7CisgICAgQVNTRVJUKGVs
ZW1lbnQudGFnUU5hbWUoKSA9PSBuYW1lKCkpOwogICAgIEFTU0VSVChlbGVtZW50LmlzVW5yZXNv
bHZlZEN1c3RvbUVsZW1lbnQoKSk7CiAgICAgaWYgKCFjYW5JbnZva2VDYWxsYmFjaygpKQogICAg
ICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0N1
c3RvbUVsZW1lbnRSZWdpc3RyeUN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0N1c3RvbUVsZW1lbnRSZWdpc3RyeUN1c3RvbS5jcHAKaW5kZXggMDI1YjI3ZmVmZTBiNWIy
OTJhOGQ0ZmIxOWZhOGVkNzEwMDJlMjg0YS4uYzYxN2Y5Njg0MGZiZGRlMDNmMzBhZWU3ODZmZDRk
M2VhMDY0NmY5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNDdXN0
b21FbGVtZW50UmVnaXN0cnlDdXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5Q3VzdG9tLmNwcApAQCAtMTI3LDIzICsxMjcsMjAg
QEAgSlNWYWx1ZSBKU0N1c3RvbUVsZW1lbnRSZWdpc3RyeTo6ZGVmaW5lKEV4ZWNTdGF0ZSYgc3Rh
dGUpCiAgICAgUXVhbGlmaWVkTmFtZSBuYW1lKG51bGxBdG9tLCBsb2NhbE5hbWUsIEhUTUxOYW1l
czo6eGh0bWxOYW1lc3BhY2VVUkkpOwogICAgIGF1dG8gZWxlbWVudEludGVyZmFjZSA9IEpTQ3Vz
dG9tRWxlbWVudEludGVyZmFjZTo6Y3JlYXRlKG5hbWUsIGNvbnN0cnVjdG9yLCBnbG9iYWxPYmpl
Y3QoKSk7CiAKLSAgICBhdXRvKiBjb25uZWN0ZWRDYWxsYmFjayA9IGdldEN1c3RvbUVsZW1lbnRD
YWxsYmFjayhzdGF0ZSwgcHJvdG90eXBlT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2
bSwgImNvbm5lY3RlZENhbGxiYWNrIikpOworICAgIGlmIChhdXRvKiBjb25uZWN0ZWRDYWxsYmFj
ayA9IGdldEN1c3RvbUVsZW1lbnRDYWxsYmFjayhzdGF0ZSwgcHJvdG90eXBlT2JqZWN0LCBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgImNvbm5lY3RlZENhbGxiYWNrIikpKQorICAgICAgICBl
bGVtZW50SW50ZXJmYWNlLT5zZXRDb25uZWN0ZWRDYWxsYmFjayhjb25uZWN0ZWRDYWxsYmFjayk7
CiAgICAgaWYgKHN0YXRlLmhhZEV4Y2VwdGlvbigpKQogICAgICAgICByZXR1cm4ganNVbmRlZmlu
ZWQoKTsKLSAgICBpZiAoY29ubmVjdGVkQ2FsbGJhY2spCi0gICAgICAgIGVsZW1lbnRJbnRlcmZh
Y2UtPnNldENvbm5lY3RlZENhbGxiYWNrKGNvbm5lY3RlZENhbGxiYWNrKTsKIAotICAgIGF1dG8q
IGRpc2Nvbm5lY3RlZENhbGxiYWNrID0gZ2V0Q3VzdG9tRWxlbWVudENhbGxiYWNrKHN0YXRlLCBw
cm90b3R5cGVPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiZGlzY29ubmVjdGVk
Q2FsbGJhY2siKSk7CisgICAgaWYgKGF1dG8qIGRpc2Nvbm5lY3RlZENhbGxiYWNrID0gZ2V0Q3Vz
dG9tRWxlbWVudENhbGxiYWNrKHN0YXRlLCBwcm90b3R5cGVPYmplY3QsIElkZW50aWZpZXI6OmZy
b21TdHJpbmcoJnZtLCAiZGlzY29ubmVjdGVkQ2FsbGJhY2siKSkpCisgICAgICAgIGVsZW1lbnRJ
bnRlcmZhY2UtPnNldERpc2Nvbm5lY3RlZENhbGxiYWNrKGRpc2Nvbm5lY3RlZENhbGxiYWNrKTsK
ICAgICBpZiAoc3RhdGUuaGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBqc1VuZGVmaW5l
ZCgpOwotICAgIGlmIChkaXNjb25uZWN0ZWRDYWxsYmFjaykKLSAgICAgICAgZWxlbWVudEludGVy
ZmFjZS0+c2V0RGlzY29ubmVjdGVkQ2FsbGJhY2soZGlzY29ubmVjdGVkQ2FsbGJhY2spOwogCi0g
ICAgYXV0byogYWRvcHRlZENhbGxiYWNrID0gZ2V0Q3VzdG9tRWxlbWVudENhbGxiYWNrKHN0YXRl
LCBwcm90b3R5cGVPYmplY3QsIElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCAiYWRvcHRlZENh
bGxiYWNrIikpOworICAgIGlmIChhdXRvKiBhZG9wdGVkQ2FsbGJhY2sgPSBnZXRDdXN0b21FbGVt
ZW50Q2FsbGJhY2soc3RhdGUsIHByb3RvdHlwZU9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zygmdm0sICJhZG9wdGVkQ2FsbGJhY2siKSkpCisgICAgICAgIGVsZW1lbnRJbnRlcmZhY2UtPnNl
dEFkb3B0ZWRDYWxsYmFjayhhZG9wdGVkQ2FsbGJhY2spOwogICAgIGlmIChzdGF0ZS5oYWRFeGNl
cHRpb24oKSkKICAgICAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Ci0gICAgaWYgKGFkb3B0ZWRD
YWxsYmFjaykKLSAgICAgICAgZWxlbWVudEludGVyZmFjZS0+c2V0QWRvcHRlZENhbGxiYWNrKGFk
b3B0ZWRDYWxsYmFjayk7CiAKICAgICBhdXRvKiBhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2sgPSBn
ZXRDdXN0b21FbGVtZW50Q2FsbGJhY2soc3RhdGUsIHByb3RvdHlwZU9iamVjdCwgSWRlbnRpZmll
cjo6ZnJvbVN0cmluZygmdm0sICJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2siKSk7CiAgICAgaWYg
KHN0YXRlLmhhZEV4Y2VwdGlvbigpKQpAQCAtMTYxLDE0ICsxNTgsNiBAQCBKU1ZhbHVlIEpTQ3Vz
dG9tRWxlbWVudFJlZ2lzdHJ5OjpkZWZpbmUoRXhlY1N0YXRlJiBzdGF0ZSkKIAogICAgIHJlZ2lz
dHJ5LmFkZEVsZW1lbnREZWZpbml0aW9uKFdURk1vdmUoZWxlbWVudEludGVyZmFjZSkpOwogCi0g
ICAgLy8gRklYTUU6IDE3LiBMZXQgbWFwIGJlIHJlZ2lzdHJ5J3MgdXBncmFkZSBjYW5kaWRhdGVz
IG1hcC4KLSAgICAvLyBGSVhNRTogMTguIFVwZ3JhZGUgYSBuZXdseS1kZWZpbmVkIGVsZW1lbnQg
Z2l2ZW4gbWFwIGFuZCBkZWZpbml0aW9uLgotCi0gICAgYXV0byYgcHJvbWlzZU1hcCA9IHJlZ2lz
dHJ5LnByb21pc2VNYXAoKTsKLSAgICBhdXRvIHByb21pc2UgPSBwcm9taXNlTWFwLnRha2UobG9j
YWxOYW1lKTsKLSAgICBpZiAocHJvbWlzZSkKLSAgICAgICAgcHJvbWlzZS52YWx1ZSgpLT5yZXNv
bHZlKG51bGxwdHIpOwotCiAgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuY3BwCmluZGV4IDY0
YTdiY2M4ZTEzZGJlNTE5Y2RlNGRmNDBiZjVmNzgwOThkZWZkN2MuLmNkMzc5NTE3YWE2YzgzMDJh
ZDI2ZmNmZmYyMWVhMTE4MjdjZjQwN2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9D
dXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0N1
c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmNwcApAQCAtMTE2LDEwICsxMTYsMzAgQEAgQ3VzdG9t
RWxlbWVudFJlYWN0aW9uUXVldWU6On5DdXN0b21FbGVtZW50UmVhY3Rpb25RdWV1ZSgpCiAKIHZv
aWQgQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWU6OmVucXVldWVFbGVtZW50VXBncmFkZShFbGVt
ZW50JiBlbGVtZW50LCBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2UmIGVsZW1lbnRJbnRlcmZhY2Up
CiB7CisgICAgQVNTRVJUKGVsZW1lbnQudGFnUU5hbWUoKSA9PSBlbGVtZW50SW50ZXJmYWNlLm5h
bWUoKSk7CiAgICAgaWYgKGF1dG8qIHF1ZXVlID0gQ3VzdG9tRWxlbWVudFJlYWN0aW9uU3RhY2s6
OmVuc3VyZUN1cnJlbnRRdWV1ZSgpKQogICAgICAgICBxdWV1ZS0+bV9pdGVtcy5hcHBlbmQoe0N1
c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlSXRlbTo6VHlwZTo6RWxlbWVudFVwZ3JhZGUsIGVsZW1l
bnQsIGVsZW1lbnRJbnRlcmZhY2V9KTsKIH0KIAordm9pZCBDdXN0b21FbGVtZW50UmVhY3Rpb25R
dWV1ZTo6ZW5xdWV1ZUVsZW1lbnRVcGdyYWRlSWZEZWZpbmVkKEVsZW1lbnQmIGVsZW1lbnQpCit7
CisgICAgQVNTRVJUKGVsZW1lbnQuaW5Eb2N1bWVudCgpKTsKKyAgICBBU1NFUlQoZWxlbWVudC5p
c1VucmVzb2x2ZWRDdXN0b21FbGVtZW50KCkpOworICAgIGF1dG8qIHdpbmRvdyA9IGVsZW1lbnQu
ZG9jdW1lbnQoKS5kb21XaW5kb3coKTsKKyAgICBpZiAoIXdpbmRvdykKKyAgICAgICAgcmV0dXJu
OworCisgICAgYXV0byogcmVnaXN0cnkgPSB3aW5kb3ctPmN1c3RvbUVsZW1lbnRSZWdpc3RyeSgp
OworICAgIGlmICghcmVnaXN0cnkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8qIGVsZW1l
bnRJbnRlcmZhY2UgPSByZWdpc3RyeS0+ZmluZEludGVyZmFjZShlbGVtZW50KTsKKyAgICBpZiAo
IWVsZW1lbnRJbnRlcmZhY2UpCisgICAgICAgIHJldHVybjsKKworICAgIGVucXVldWVFbGVtZW50
VXBncmFkZShlbGVtZW50LCAqZWxlbWVudEludGVyZmFjZSk7Cit9CisKIHZvaWQgQ3VzdG9tRWxl
bWVudFJlYWN0aW9uUXVldWU6OmVucXVldWVDb25uZWN0ZWRDYWxsYmFja0lmTmVlZGVkKEVsZW1l
bnQmIGVsZW1lbnQpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQuaXNDdXN0b21FbGVtZW50KCkpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVl
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaAppbmRl
eCAyYmE5MTNiY2YzOGZmM2M4NjIyYzE4Y2ZmMTk2MjdiMmQzMDJmMGQwLi5jYzM4MTAzY2NhZjNk
MjE4MTZhMTc5NDU5ZDU1NDI1ZTRhMDVkMzcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
Q3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWUuaApAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6CiAg
ICAgfkN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlKCk7CiAKICAgICBzdGF0aWMgdm9pZCBlbnF1
ZXVlRWxlbWVudFVwZ3JhZGUoRWxlbWVudCYsIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZSYpOwor
ICAgIHN0YXRpYyB2b2lkIGVucXVldWVFbGVtZW50VXBncmFkZUlmRGVmaW5lZChFbGVtZW50Jik7
CiAgICAgc3RhdGljIHZvaWQgZW5xdWV1ZUNvbm5lY3RlZENhbGxiYWNrSWZOZWVkZWQoRWxlbWVu
dCYpOwogICAgIHN0YXRpYyB2b2lkIGVucXVldWVEaXNjb25uZWN0ZWRDYWxsYmFja0lmTmVlZGVk
KEVsZW1lbnQmKTsKICAgICBzdGF0aWMgdm9pZCBlbnF1ZXVlQWRvcHRlZENhbGxiYWNrSWZOZWVk
ZWQoRWxlbWVudCYsIERvY3VtZW50JiBvbGREb2N1bWVudCwgRG9jdW1lbnQmIG5ld0RvY3VtZW50
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21FbGVtZW50UmVnaXN0cnku
Y3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHAKaW5kZXgg
MzcwOTUyMjFkM2IxYWU0MzAzODE4MjZiM2NkNjdhNjM4MzZhNDYwOS4uYzc1OGMzYzZhODNlYzMw
MGU0OThlZDY4ZTBhNWFmMzY2MWI2NGIyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0N1c3Rv
bUVsZW1lbnRSZWdpc3RyeS5jcHAKQEAgLTI4LDI5ICsyOCw0NyBAQAogCiAjaWYgRU5BQkxFKENV
U1RPTV9FTEVNRU5UUykKIAorI2luY2x1ZGUgIkN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlLmgi
CisjaW5jbHVkZSAiRE9NV2luZG93LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRl
ICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRWxlbWVudFRyYXZlcnNhbC5oIgogI2luY2x1ZGUgIkpT
Q3VzdG9tRWxlbWVudEludGVyZmFjZS5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZS5oIgogI2lu
Y2x1ZGUgIk1hdGhNTE5hbWVzLmgiCiAjaW5jbHVkZSAiUXVhbGlmaWVkTmFtZS5oIgogI2luY2x1
ZGUgIlNWR05hbWVzLmgiCisjaW5jbHVkZSAiU2hhZG93Um9vdC5oIgogI2luY2x1ZGUgPHJ1bnRp
bWUvSlNDSlNWYWx1ZUlubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9BdG9taWNTdHJpbmcu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1SZWY8Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5PiBD
dXN0b21FbGVtZW50UmVnaXN0cnk6OmNyZWF0ZSgpCitSZWY8Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5
PiBDdXN0b21FbGVtZW50UmVnaXN0cnk6OmNyZWF0ZShET01XaW5kb3cmIHdpbmRvdykKIHsKLSAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDdXN0b21FbGVtZW50UmVnaXN0cnkoKSk7CisgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5KHdpbmRvdykpOwogfQogCi1D
dXN0b21FbGVtZW50UmVnaXN0cnk6OkN1c3RvbUVsZW1lbnRSZWdpc3RyeSgpCitDdXN0b21FbGVt
ZW50UmVnaXN0cnk6OkN1c3RvbUVsZW1lbnRSZWdpc3RyeShET01XaW5kb3cmIHdpbmRvdykKKyAg
ICA6IG1fd2luZG93KHdpbmRvdykKIHsgfQogCiBDdXN0b21FbGVtZW50UmVnaXN0cnk6On5DdXN0
b21FbGVtZW50UmVnaXN0cnkoKQogeyB9CiAKKy8vIGh0dHBzOi8vZG9tLnNwZWMud2hhdHdnLm9y
Zy8jY29uY2VwdC1zaGFkb3ctaW5jbHVkaW5nLXRyZWUtb3JkZXIKK3N0YXRpYyB2b2lkIGVucXVl
dWVVcGdyYWRlSW5TaGFkb3dJbmNsdWRpbmdUcmVlT3JkZXIoQ29udGFpbmVyTm9kZSYgbm9kZSwg
SlNDdXN0b21FbGVtZW50SW50ZXJmYWNlJiBlbGVtZW50SW50ZXJmYWNlKQoreworICAgIGZvciAo
RWxlbWVudCogZWxlbWVudCA9IEVsZW1lbnRUcmF2ZXJzYWw6OmZpcnN0V2l0aGluKG5vZGUpOyBl
bGVtZW50OyBlbGVtZW50ID0gRWxlbWVudFRyYXZlcnNhbDo6bmV4dCgqZWxlbWVudCkpIHsKKyAg
ICAgICAgaWYgKGVsZW1lbnQtPmlzVW5yZXNvbHZlZEN1c3RvbUVsZW1lbnQoKSAmJiBlbGVtZW50
LT50YWdRTmFtZSgpID09IGVsZW1lbnRJbnRlcmZhY2UubmFtZSgpKQorICAgICAgICAgICAgQ3Vz
dG9tRWxlbWVudFJlYWN0aW9uUXVldWU6OmVucXVldWVFbGVtZW50VXBncmFkZSgqZWxlbWVudCwg
ZWxlbWVudEludGVyZmFjZSk7CisgICAgICAgIGlmIChhdXRvKiBzaGFkb3dSb290ID0gZWxlbWVu
dC0+c2hhZG93Um9vdCgpKSB7CisgICAgICAgICAgICBpZiAoc2hhZG93Um9vdC0+bW9kZSgpICE9
IFNoYWRvd1Jvb3Q6Ok1vZGU6OlVzZXJBZ2VudCkKKyAgICAgICAgICAgICAgICBlbnF1ZXVlVXBn
cmFkZUluU2hhZG93SW5jbHVkaW5nVHJlZU9yZGVyKCpzaGFkb3dSb290LCBlbGVtZW50SW50ZXJm
YWNlKTsKKyAgICAgICAgfQorICAgIH0KK30KKwogdm9pZCBDdXN0b21FbGVtZW50UmVnaXN0cnk6
OmFkZEVsZW1lbnREZWZpbml0aW9uKFJlZjxKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U+JiYgZWxl
bWVudEludGVyZmFjZSkKIHsKICAgICBBdG9taWNTdHJpbmcgbG9jYWxOYW1lID0gZWxlbWVudElu
dGVyZmFjZS0+bmFtZSgpLmxvY2FsTmFtZSgpOwpAQCAtNTgsMzUgKzc2LDIzIEBAIHZvaWQgQ3Vz
dG9tRWxlbWVudFJlZ2lzdHJ5OjphZGRFbGVtZW50RGVmaW5pdGlvbihSZWY8SlNDdXN0b21FbGVt
ZW50SW50ZXJmYWNlPiYmCiAgICAgbV9jb25zdHJ1Y3Rvck1hcC5hZGQoZWxlbWVudEludGVyZmFj
ZS0+Y29uc3RydWN0b3IoKSwgZWxlbWVudEludGVyZmFjZS5wdHIoKSk7CiAgICAgbV9uYW1lTWFw
LmFkZChsb2NhbE5hbWUsIGVsZW1lbnRJbnRlcmZhY2UuY29weVJlZigpKTsKIAotICAgIGF1dG8g
Y2FuZGlkYXRlTGlzdCA9IG1fdXBncmFkZUNhbmRpZGF0ZXNNYXAuZmluZChsb2NhbE5hbWUpOwot
ICAgIGlmIChjYW5kaWRhdGVMaXN0ID09IG1fdXBncmFkZUNhbmRpZGF0ZXNNYXAuZW5kKCkpCi0g
ICAgICAgIHJldHVybjsKLQotICAgIFZlY3RvcjxSZWZQdHI8RWxlbWVudD4+IGxpc3QoV1RGTW92
ZShjYW5kaWRhdGVMaXN0LT52YWx1ZSkpOwotCi0gICAgbV91cGdyYWRlQ2FuZGlkYXRlc01hcC5y
ZW1vdmUobG9jYWxOYW1lKTsKLQotICAgIGZvciAoYXV0byYgY2FuZGlkYXRlIDogbGlzdCkgewot
ICAgICAgICBBU1NFUlQoY2FuZGlkYXRlKTsKLSAgICAgICAgZWxlbWVudEludGVyZmFjZS0+dXBn
cmFkZUVsZW1lbnQoKmNhbmRpZGF0ZSk7Ci0gICAgfQorICAgIGlmIChhdXRvKiBkb2N1bWVudCA9
IG1fd2luZG93LmRvY3VtZW50KCkpCisgICAgICAgIGVucXVldWVVcGdyYWRlSW5TaGFkb3dJbmNs
dWRpbmdUcmVlT3JkZXIoKmRvY3VtZW50LCBlbGVtZW50SW50ZXJmYWNlLmdldCgpKTsKIAotICAg
IC8vIFdlIHNob3VsZCBub3QgYmUgYWRkaW5nIG1vcmUgdXBncmFkZSBjYW5kaWRhdGUgZm9yIHRo
aXMgbG9jYWwgbmFtZS4KLSAgICBBU1NFUlQoIW1fdXBncmFkZUNhbmRpZGF0ZXNNYXAuY29udGFp
bnMobG9jYWxOYW1lKSk7CisgICAgaWYgKGF1dG8gcHJvbWlzZSA9IG1fcHJvbWlzZU1hcC50YWtl
KGxvY2FsTmFtZSkpCisgICAgICAgIHByb21pc2UudmFsdWUoKS0+cmVzb2x2ZShudWxscHRyKTsK
IH0KIAotdm9pZCBDdXN0b21FbGVtZW50UmVnaXN0cnk6OmFkZFVwZ3JhZGVDYW5kaWRhdGUoRWxl
bWVudCYgY2FuZGlkYXRlKQorSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlKiBDdXN0b21FbGVtZW50
UmVnaXN0cnk6OmZpbmRJbnRlcmZhY2UoY29uc3QgRWxlbWVudCYgZWxlbWVudCkgY29uc3QKIHsK
LSAgICBhdXRvIHJlc3VsdCA9IG1fdXBncmFkZUNhbmRpZGF0ZXNNYXAuZW5zdXJlKGNhbmRpZGF0
ZS5sb2NhbE5hbWUoKSwgW10gewotICAgICAgICByZXR1cm4gVmVjdG9yPFJlZlB0cjxFbGVtZW50
Pj4oKTsKLSAgICB9KTsKLSAgICBhdXRvJiBub2RlVmVjdG9yID0gcmVzdWx0Lml0ZXJhdG9yLT52
YWx1ZTsKLSAgICBBU1NFUlQoIW5vZGVWZWN0b3IuY29udGFpbnMoJmNhbmRpZGF0ZSkpOwotICAg
IG5vZGVWZWN0b3IuYXBwZW5kKCZjYW5kaWRhdGUpOworICAgIHJldHVybiBmaW5kSW50ZXJmYWNl
KGVsZW1lbnQudGFnUU5hbWUoKSk7CiB9CiAKIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZSogQ3Vz
dG9tRWxlbWVudFJlZ2lzdHJ5OjpmaW5kSW50ZXJmYWNlKGNvbnN0IFF1YWxpZmllZE5hbWUmIG5h
bWUpIGNvbnN0CiB7CisgICAgQVNTRVJUKCFuYW1lLmhhc1ByZWZpeCgpKTsKKyAgICBpZiAobmFt
ZS5uYW1lc3BhY2VVUkkoKSAhPSBIVE1MTmFtZXM6OnhodG1sTmFtZXNwYWNlVVJJKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKICAgICBhdXRvIGl0ID0gbV9uYW1lTWFwLmZpbmQobmFtZS5sb2Nh
bE5hbWUoKSk7CiAgICAgcmV0dXJuIGl0ID09IG1fbmFtZU1hcC5lbmQoKSB8fCBpdC0+dmFsdWUt
Pm5hbWUoKSAhPSBuYW1lID8gbnVsbHB0ciA6IGNvbnN0X2Nhc3Q8SlNDdXN0b21FbGVtZW50SW50
ZXJmYWNlKj4oaXQtPnZhbHVlLnB0cigpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9DdXN0b21FbGVtZW50UmVnaXN0cnkuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9DdXN0b21F
bGVtZW50UmVnaXN0cnkuaAppbmRleCAwNjA3ZDZkNzJmMTIwMzI3ZGFhY2NlZTIyNzMzMjhlYTk5
OTIzOWNjLi41NzYxYTQ3NGNmMTYwOGVmZDZmYjU1MjQ1MWQzN2MyYzBjZjVkM2Q0IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LmgKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5oCkBAIC00Myw2ICs0Myw3IEBA
IGNsYXNzIEpTVmFsdWU7CiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEN1c3RvbUVsZW1l
bnRSZWdpc3RyeTsKK2NsYXNzIERPTVdpbmRvdzsKIGNsYXNzIERlZmVycmVkV3JhcHBlcjsKIGNs
YXNzIEVsZW1lbnQ7CiBjbGFzcyBKU0N1c3RvbUVsZW1lbnRJbnRlcmZhY2U7CkBAIC01MCwxNCAr
NTEsMTQgQEAgY2xhc3MgUXVhbGlmaWVkTmFtZTsKIAogY2xhc3MgQ3VzdG9tRWxlbWVudFJlZ2lz
dHJ5IDogcHVibGljIFJlZkNvdW50ZWQ8Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5PiB7CiBwdWJsaWM6
Ci0gICAgc3RhdGljIFJlZjxDdXN0b21FbGVtZW50UmVnaXN0cnk+IGNyZWF0ZSgpOworICAgIHN0
YXRpYyBSZWY8Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5PiBjcmVhdGUoRE9NV2luZG93Jik7CiAgICAg
fkN1c3RvbUVsZW1lbnRSZWdpc3RyeSgpOwogCiAgICAgdm9pZCBhZGRFbGVtZW50RGVmaW5pdGlv
bihSZWY8SlNDdXN0b21FbGVtZW50SW50ZXJmYWNlPiYmKTsKLSAgICB2b2lkIGFkZFVwZ3JhZGVD
YW5kaWRhdGUoRWxlbWVudCYpOwogCiAgICAgYm9vbCYgZWxlbWVudERlZmluaXRpb25Jc1J1bm5p
bmcoKSB7IHJldHVybiBtX2VsZW1lbnREZWZpbml0aW9uSXNSdW5uaW5nOyB9CiAKKyAgICBKU0N1
c3RvbUVsZW1lbnRJbnRlcmZhY2UqIGZpbmRJbnRlcmZhY2UoY29uc3QgRWxlbWVudCYpIGNvbnN0
OwogICAgIEpTQ3VzdG9tRWxlbWVudEludGVyZmFjZSogZmluZEludGVyZmFjZShjb25zdCBRdWFs
aWZpZWROYW1lJikgY29uc3Q7CiAgICAgSlNDdXN0b21FbGVtZW50SW50ZXJmYWNlKiBmaW5kSW50
ZXJmYWNlKGNvbnN0IEF0b21pY1N0cmluZyYpIGNvbnN0OwogICAgIEpTQ3VzdG9tRWxlbWVudElu
dGVyZmFjZSogZmluZEludGVyZmFjZShjb25zdCBKU0M6OkpTT2JqZWN0KikgY29uc3Q7CkBAIC02
OCw5ICs2OSw5IEBAIHB1YmxpYzoKICAgICBIYXNoTWFwPEF0b21pY1N0cmluZywgUmVmPERlZmVy
cmVkV3JhcHBlcj4+JiBwcm9taXNlTWFwKCkgeyByZXR1cm4gbV9wcm9taXNlTWFwOyB9CiAKIHBy
aXZhdGU6Ci0gICAgQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5KCk7CisgICAgQ3VzdG9tRWxlbWVudFJl
Z2lzdHJ5KERPTVdpbmRvdyYpOwogCi0gICAgSGFzaE1hcDxBdG9taWNTdHJpbmcsIFZlY3RvcjxS
ZWZQdHI8RWxlbWVudD4+PiBtX3VwZ3JhZGVDYW5kaWRhdGVzTWFwOworICAgIERPTVdpbmRvdyYg
bV93aW5kb3c7CiAgICAgSGFzaE1hcDxBdG9taWNTdHJpbmcsIFJlZjxKU0N1c3RvbUVsZW1lbnRJ
bnRlcmZhY2U+PiBtX25hbWVNYXA7CiAgICAgSGFzaE1hcDxjb25zdCBKU0M6OkpTT2JqZWN0Kiwg
SlNDdXN0b21FbGVtZW50SW50ZXJmYWNlKj4gbV9jb25zdHJ1Y3Rvck1hcDsKICAgICBIYXNoTWFw
PEF0b21pY1N0cmluZywgUmVmPERlZmVycmVkV3JhcHBlcj4+IG1fcHJvbWlzZU1hcDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCmluZGV4IDNlNDhhNzA2YjVlMDcxMjc4MzNhN2RkYTEwNDcyMzgzMmNh
YmM4NDEuLjVjYzczZDI5MWFmM2NiYzAxNTkyMDBhNDg0YWM1MWVjYThjZGI5ZTcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcApAQCAtODgxLDkgKzg4MSw5IEBAIHZvaWQgRG9jdW1lbnQ6OmNoaWxk
cmVuQ2hhbmdlZChjb25zdCBDaGlsZENoYW5nZSYgY2hhbmdlKQogfQogCiAjaWYgRU5BQkxFKENV
U1RPTV9FTEVNRU5UUykKLXN0YXRpYyBBTFdBWVNfSU5MSU5FIFJlZlB0cjxIVE1MRWxlbWVudD4g
Y3JlYXRlVXBncmFkZUNhbmRpZGF0ZUVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBET01XaW5k
b3cqIHdpbmRvdywgY29uc3QgUXVhbGlmaWVkTmFtZSYgbmFtZSkKK3N0YXRpYyBBTFdBWVNfSU5M
SU5FIFJlZlB0cjxIVE1MRWxlbWVudD4gY3JlYXRlVXBncmFkZUNhbmRpZGF0ZUVsZW1lbnQoRG9j
dW1lbnQmIGRvY3VtZW50LCBjb25zdCBRdWFsaWZpZWROYW1lJiBuYW1lKQogewotICAgIGlmICgh
d2luZG93IHx8ICFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmN1c3Rv
bUVsZW1lbnRzRW5hYmxlZCgpKQorICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hh
cmVkRmVhdHVyZXMoKS5jdXN0b21FbGVtZW50c0VuYWJsZWQoKSkKICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAKICAgICBpZiAoRG9jdW1lbnQ6OnZhbGlkYXRlQ3VzdG9tRWxlbWVudE5hbWUobmFt
ZS5sb2NhbE5hbWUoKSkgIT0gQ3VzdG9tRWxlbWVudE5hbWVWYWxpZGF0aW9uU3RhdHVzOjpWYWxp
ZCkKQEAgLTg5MSw3ICs4OTEsNiBAQCBzdGF0aWMgQUxXQVlTX0lOTElORSBSZWZQdHI8SFRNTEVs
ZW1lbnQ+IGNyZWF0ZVVwZ3JhZGVDYW5kaWRhdGVFbGVtZW50KERvY3VtZW50JgogCiAgICAgYXV0
byBlbGVtZW50ID0gSFRNTEVsZW1lbnQ6OmNyZWF0ZShuYW1lLCBkb2N1bWVudCk7CiAgICAgZWxl
bWVudC0+c2V0SXNVbnJlc29sdmVkQ3VzdG9tRWxlbWVudCgpOwotICAgIHdpbmRvdy0+ZW5zdXJl
Q3VzdG9tRWxlbWVudFJlZ2lzdHJ5KCkuYWRkVXBncmFkZUNhbmRpZGF0ZShlbGVtZW50LmdldCgp
KTsKICAgICByZXR1cm4gV1RGTW92ZShlbGVtZW50KTsKIH0KICNlbmRpZgpAQCAtOTIxLDcgKzky
MCw3IEBAIHN0YXRpYyBSZWZQdHI8RWxlbWVudD4gY3JlYXRlSFRNTEVsZW1lbnRXaXRoTmFtZVZh
bGlkYXRpb24oRG9jdW1lbnQmIGRvY3VtZW50LCBjCiAgICAgUXVhbGlmaWVkTmFtZSBxdWFsaWZp
ZWROYW1lKG51bGxBdG9tLCBsb2NhbE5hbWUsIHhodG1sTmFtZXNwYWNlVVJJKTsKIAogI2lmIEVO
QUJMRShDVVNUT01fRUxFTUVOVFMpCi0gICAgaWYgKGF1dG8gZWxlbWVudCA9IGNyZWF0ZVVwZ3Jh
ZGVDYW5kaWRhdGVFbGVtZW50KGRvY3VtZW50LCB3aW5kb3csIHF1YWxpZmllZE5hbWUpKQorICAg
IGlmIChhdXRvIGVsZW1lbnQgPSBjcmVhdGVVcGdyYWRlQ2FuZGlkYXRlRWxlbWVudChkb2N1bWVu
dCwgcXVhbGlmaWVkTmFtZSkpCiAgICAgICAgIHJldHVybiBXVEZNb3ZlKGVsZW1lbnQpOwogI2Vu
ZGlmCiAKQEAgLTEwOTksNyArMTA5OCw3IEBAIHN0YXRpYyBSZWY8SFRNTEVsZW1lbnQ+IGNyZWF0
ZUZhbGxiYWNrSFRNTEVsZW1lbnQoRG9jdW1lbnQmIGRvY3VtZW50LCBjb25zdCBRdWFsCiAgICAg
ICAgIH0KICAgICB9CiAgICAgLy8gRklYTUU6IFNob3VsZCB3ZSBhbHNvIGNoZWNrIHRoZSBlcXVh
bGl0eSBvZiBwcmVmaXggYmV0d2VlbiB0aGUgY3VzdG9tIGVsZW1lbnQgYW5kIG5hbWU/Ci0gICAg
aWYgKGF1dG8gZWxlbWVudCA9IGNyZWF0ZVVwZ3JhZGVDYW5kaWRhdGVFbGVtZW50KGRvY3VtZW50
LCB3aW5kb3csIG5hbWUpKQorICAgIGlmIChhdXRvIGVsZW1lbnQgPSBjcmVhdGVVcGdyYWRlQ2Fu
ZGlkYXRlRWxlbWVudChkb2N1bWVudCwgbmFtZSkpCiAgICAgICAgIHJldHVybiBlbGVtZW50LnJl
bGVhc2VOb25OdWxsKCk7CiAjZW5kaWYKICAgICByZXR1cm4gSFRNTFVua25vd25FbGVtZW50Ojpj
cmVhdGUobmFtZSwgZG9jdW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmluZGV4IGEyYjM2YTcz
MDIyMjViMGQwODU0MmJmNjZjOWM1M2FmNmRjYWI5ZWQuLjg3MjVkZTc5MjQ3M2QzM2FkNjg5Njgy
M2FhMmU1NTVlNDA3ZjQyMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTE2MDYsOCArMTYw
NiwxMyBAQCBOb2RlOjpJbnNlcnRpb25Ob3RpZmljYXRpb25SZXF1ZXN0IEVsZW1lbnQ6Omluc2Vy
dGVkSW50byhDb250YWluZXJOb2RlJiBpbnNlcnRpbwogICAgIH0KIAogI2lmIEVOQUJMRShDVVNU
T01fRUxFTUVOVFMpCi0gICAgaWYgKGJlY29tZUNvbm5lY3RlZCAmJiBVTkxJS0VMWShpc0N1c3Rv
bUVsZW1lbnQoKSkpCi0gICAgICAgIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1ZXVl
Q29ubmVjdGVkQ2FsbGJhY2tJZk5lZWRlZCgqdGhpcyk7CisgICAgaWYgKGJlY29tZUNvbm5lY3Rl
ZCkgeworICAgICAgICBpZiAoVU5MSUtFTFkoaXNVbnJlc29sdmVkQ3VzdG9tRWxlbWVudCgpKSkK
KyAgICAgICAgICAgIEN1c3RvbUVsZW1lbnRSZWFjdGlvblF1ZXVlOjplbnF1ZXVlRWxlbWVudFVw
Z3JhZGVJZkRlZmluZWQoKnRoaXMpOworICAgICAgICBpZiAoVU5MSUtFTFkoaXNDdXN0b21FbGVt
ZW50KCkpKQorICAgICAgICAgICAgQ3VzdG9tRWxlbWVudFJlYWN0aW9uUXVldWU6OmVucXVldWVD
b25uZWN0ZWRDYWxsYmFja0lmTmVlZGVkKCp0aGlzKTsKKyAgICB9CisKICNlbmRpZgogCiAgICAg
cmV0dXJuIEluc2VydGlvbkRvbmU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MQ29uc3RydWN0aW9uU2l0ZS5jcHAKaW5kZXggNGZmODhhZDBiMWI4Y2FjNGJiMmZkZDRm
ODNhZDBmMTg0YmI1YTNmYy4uMWRjMDkwNTNmZjMxNThlMjM2OWRkYTc0M2QxODQ2M2QxYWEzOTI5
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTENvbnN0cnVjdGlv
blNpdGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxDb25zdHJ1Y3Rp
b25TaXRlLmNwcApAQCAtNjc4LDcgKzY3OCw2IEBAIFJlZlB0cjxFbGVtZW50PiBIVE1MQ29uc3Ry
dWN0aW9uU2l0ZTo6Y3JlYXRlSFRNTEVsZW1lbnRPckZpbmRDdXN0b21FbGVtZW50SW50ZXJmCiAg
ICAgICAgIGlmICh3aW5kb3cgJiYgRG9jdW1lbnQ6OnZhbGlkYXRlQ3VzdG9tRWxlbWVudE5hbWUo
bG9jYWxOYW1lKSA9PSBDdXN0b21FbGVtZW50TmFtZVZhbGlkYXRpb25TdGF0dXM6OlZhbGlkKSB7
CiAgICAgICAgICAgICBlbGVtZW50ID0gSFRNTEVsZW1lbnQ6OmNyZWF0ZShxdWFsaWZpZWROYW1l
LCBvd25lckRvY3VtZW50KTsKICAgICAgICAgICAgIGVsZW1lbnQtPnNldElzVW5yZXNvbHZlZEN1
c3RvbUVsZW1lbnQoKTsKLSAgICAgICAgICAgIHdpbmRvdy0+ZW5zdXJlQ3VzdG9tRWxlbWVudFJl
Z2lzdHJ5KCkuYWRkVXBncmFkZUNhbmRpZGF0ZSgqZWxlbWVudCk7CiAgICAgICAgIH0gZWxzZQog
I2VuZGlmCiAgICAgICAgICAgICBlbGVtZW50ID0gSFRNTFVua25vd25FbGVtZW50OjpjcmVhdGUo
cXVhbGlmaWVkTmFtZSwgb3duZXJEb2N1bWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0RPTVdpbmRvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5jcHAK
aW5kZXggY2E3OTU2ZDNmZTc0MThkYjg3NWQxZTJlMjk5NWMxMWMxNjcyMzhkMy4uMzZjZGJjYWQx
OGEyYTRjMTg3ODJiMDU2MmU4MTEzNDU2ZTk4ZGM1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGFnZS9ET01XaW5kb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRE9NV2luZG93
LmNwcApAQCAtNjI1LDcgKzYyNSw3IEBAIGJvb2wgRE9NV2luZG93Ojppc0N1cnJlbnRseURpc3Bs
YXllZEluRnJhbWUoKSBjb25zdAogQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5JiBET01XaW5kb3c6OmVu
c3VyZUN1c3RvbUVsZW1lbnRSZWdpc3RyeSgpCiB7CiAgICAgaWYgKCFtX2N1c3RvbUVsZW1lbnRS
ZWdpc3RyeSkKLSAgICAgICAgbV9jdXN0b21FbGVtZW50UmVnaXN0cnkgPSBDdXN0b21FbGVtZW50
UmVnaXN0cnk6OmNyZWF0ZSgpOworICAgICAgICBtX2N1c3RvbUVsZW1lbnRSZWdpc3RyeSA9IEN1
c3RvbUVsZW1lbnRSZWdpc3RyeTo6Y3JlYXRlKCp0aGlzKTsKICAgICByZXR1cm4gKm1fY3VzdG9t
RWxlbWVudFJlZ2lzdHJ5OwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMzIxY2I5NjY0ZGQwZmFhODc3MjUw
MjY2YWZjMWI1MDM0MDJjNzdhYS4uZGNhOGEwM2NhN2JjOGRmZTA0MjAzMDFiNmI4ZWI2ODVkMTQ4
NTdiOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI0IEBACiAyMDE2LTA5LTAxICBSeW9zdWtlIE5pd2EgIDxy
bml3YUB3ZWJraXQub3JnPgogCisgICAgICAgIE9ubHkgdXBkYXRlIGNvbm5lY3RlZCBjdXN0b20g
ZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTE2MTQ4MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEFkZGVkIGEgVzNjLXN0eWxlIHRlc3RoYXJuZXNzLmpzIHRlc3QgZm9yIGh0dHBzOi8vaHRtbC5z
cGVjLndoYXR3Zy5vcmcvI2VucXVldWUtYS1jdXN0b20tZWxlbWVudC11cGdyYWRlLXJlYWN0aW9u
CisgICAgICAgIGFuZCBhZGRlZCBtb3JlIHRlc3QgY2FzZXMgZm9yIDpkZWZpbmVkIGFuZCBjdXN0
b21FbGVtZW50cy5kZWZpbmUuCisKKyAgICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50cy9DdXN0
b21FbGVtZW50UmVnaXN0cnkuaHRtbDogUmV2aXNlZCBkZXNjcmlwdGlvbnMgZm9yICJnZXQiIGFu
ZCAid2hlbkRlZmluZWQiIHRlc3QgY2FzZXMgY29uc2lzdGVudAorICAgICAgICB3aXRoIG9uZXMg
Zm9yICJkZWZpbmUiLgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL2RlZmluZWQtcHNl
dWRvLWNsYXNzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2N1c3RvbS1lbGVtZW50cy9k
ZWZpbmVkLXBzZXVkby1jbGFzcy5odG1sOgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRz
L2VucXVldWUtY3VzdG9tLWVsZW1lbnQtdXBncmFkZS1yZWFjdGlvbi1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIGZhc3QvY3VzdG9tLWVsZW1lbnRzL2VucXVldWUtY3VzdG9tLWVsZW1l
bnQtdXBncmFkZS1yZWFjdGlvbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2N1c3RvbS1l
bGVtZW50cy9yZXNvdXJjZXMvZG9jdW1lbnQtdHlwZXMuanM6CisgICAgICAgIChjcmVhdGUpOgor
CisyMDE2LTA5LTAxICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgorCiAgICAgICAg
IEZpeCBhIHR5cG8gaW4gdGhlIHByZXZpb3VzIGNvbW1pdC4gSSBkaWRuJ3QgbWVhbiB0byBjb21t
ZW50IG91dCB0aGlzIHRlc3QgY2FzZSBJIGFkZGVkIHBlciBhIHJldmlldyBjb21tZW50LgogCiAg
ICAgICAgICogZmFzdC9jdXN0b20tZWxlbWVudHMvQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LWV4cGVj
dGVkLnR4dDoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL0N1
c3RvbUVsZW1lbnRSZWdpc3RyeS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2N1c3Rv
bS1lbGVtZW50cy9DdXN0b21FbGVtZW50UmVnaXN0cnktZXhwZWN0ZWQudHh0CmluZGV4IGIyNzJh
MzgyOWJhMjc4NzllYzY2MjIxZDhjODllNWYxNGY2ZWRkNDAuLjM1ZWM1ZWU0MWVjZDExNzk1OTRl
YjFkN2IwZTkwY2ZkZjlmYzYwY2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9t
LWVsZW1lbnRzL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvQ3VzdG9tRWxlbWVudFJlZ2lzdHJ5LWV4cGVjdGVk
LnR4dApAQCAtOCw2ICs4LDcgQEAgUEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB0aHJv
dyBhIE5vdFN1cHBvcnRlZEVycm9yIHdoZW4gdGhlcmUgaXMgYWxyZWFkeQogUEFTUyBjdXN0b21F
bGVtZW50cy5kZWZpbmUgbXVzdCB0aHJvdyBhIE5vdFN1cHBvcnRlZEVycm9yIHdoZW4gZWxlbWVu
dCBkZWZpbml0aW9uIGlzIHJ1bm5pbmcgZmxhZyBpcyBzZXQgCiBQQVNTIGN1c3RvbUVsZW1lbnRz
LmRlZmluZSBtdXN0IGNoZWNrIElzQ29uc3RydWN0b3Igb24gdGhlIGNvbnN0cnVjdG9yIGJlZm9y
ZSBjaGVja2luZyB0aGUgZWxlbWVudCBkZWZpbml0aW9uIGlzIHJ1bm5pbmcgZmxhZyAKIFBBU1Mg
Y3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3QgdmFsaWRhdGUgdGhlIGN1c3RvbSBlbGVtZW50IG5h
bWUgYmVmb3JlIGNoZWNraW5nIHRoZSBlbGVtZW50IGRlZmluaXRpb24gaXMgcnVubmluZyBmbGFn
IAorUEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUgdW5zZXQgdGhlIGVsZW1lbnQgZGVmaW5pdGlv
biBpcyBydW5uaW5nIGZsYWcgYmVmb3JlIHVwZ3JhZGluZyBjdXN0b20gZWxlbWVudHMgCiBQQVNT
IGN1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IG5vdCB0aHJvdyB3aGVuIGRlZmluaW5nIGFub3Ro
ZXIgY3VzdG9tIGVsZW1lbnQgaW4gYSBkaWZmZXJlbnQgZ2xvYmFsIG9iamVjdCBkdXJpbmcgR2V0
KGNvbnN0cnVjdG9yLCAicHJvdG90eXBlIikgCiBQQVNTIEN1c3RvbSBFbGVtZW50czogQ3VzdG9t
RWxlbWVudFJlZ2lzdHJ5IGludGVyZmFjZSAKIFBBU1MgY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11
c3QgZ2V0ICJwcm90b3R5cGUiIHByb3BlcnR5IG9mIHRoZSBjb25zdHJ1Y3RvciAKQEAgLTIzLDE1
ICsyNCwxNiBAQCBQQVNTIGN1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHJldGhyb3cgYW4gZXhj
ZXB0aW9uIHRocm93biB3aGlsZSBpdGVyYXRpbmcgb3ZlcgogUEFTUyBjdXN0b21FbGVtZW50cy5k
ZWZpbmUgbXVzdCByZXRocm93IGFuIGV4Y2VwdGlvbiB0aHJvd24gd2hpbGUgcmV0cmlldmluZyBT
eW1ib2wuaXRlcmF0b3Igb24gb2JzZXJ2ZWRBdHRyaWJ1dGVzIAogUEFTUyBjdXN0b21FbGVtZW50
cy5kZWZpbmUgbXVzdCBub3QgdGhyb3cgZXZlbiBpZiAib2JzZXJ2ZWRBdHRyaWJ1dGVzIiBmYWls
cyB0byBjb252ZXJ0IGlmICJhdHRyaWJ1dGVDaGFuZ2VkQ2FsbGJhY2siIGlzIG5vdCBkZWZpbmVk
IAogUEFTUyBjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCBkZWZpbmUgYW4gaW5zdGFudGlhdGFi
bGUgY3VzdG9tIGVsZW1lbnQgCitQQVNTIGN1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHVwZ3Jh
ZGUgZWxlbWVudHMgaW4gdGhlIHNoYWRvdy1pbmNsdWRpbmcgdHJlZSBvcmRlciAKIFBBU1MgQ3Vz
dG9tRWxlbWVudFJlZ2lzdHJ5IGludGVyZmFjZSBtdXN0IGhhdmUgZ2V0IGFzIGEgbWV0aG9kIAot
UEFTUyAiZ2V0IiBtdXN0IHJldHVybiB1bmRlZmluZWQgd2hlbiB0aGUgcmVnaXN0cnkgZG9lcyBu
b3QgY29udGFpbiBhbiBlbnRyeSB3aXRoIHRoZSBnaXZlbiBuYW1lIAotUEFTUyAiZ2V0IiBtdXN0
IHJldHVybiB1bmRlZmluZWQgd2hlbiB0aGUgcmVnaXN0cnkgZG9lcyBub3QgY29udGFpbiBhbiBl
bnRyeSB3aXRoIHRoZSBnaXZlbiBuYW1lIGV2ZW4gaWYgdGhlIG5hbWUgd2FzIG5vdCBhIHZhbGlk
IGN1c3RvbSBlbGVtZW50IG5hbWUgCi1QQVNTICJnZXQiIHJldHVybiB0aGUgY29uc3RydWN0b3Ig
b2YgdGhlIGVudHJ5IHdpdGggdGhlIGdpdmVuIG5hbWUgd2hlbiB0aGVyZSBpcyBhIG1hdGNoaW5n
IGVudHJ5LiAKLVBBU1MgIndoZW5EZWZpbmVkIiBtdXN0IHJldHVybiBhIHByb21pc2UgZm9yIGEg
dmFsaWQgY3VzdG9tIGVsZW1lbnQgbmFtZSAKLVBBU1MgIndoZW5EZWZpbmVkIiBtdXN0IHJldHVy
biB0aGUgc2FtZSBwcm9taXNlIGVhY2ggdGltZSBpbnZva2VkIGZvciBhIHZhbGlkIGN1c3RvbSBl
bGVtZW50IG5hbWUgd2hpY2ggaGFzIG5vdCBiZWVuIGRlZmluZWQgCi1QQVNTICJ3aGVuRGVmaW5l
ZCIgbXVzdCByZXR1cm4gYW4gdW5yZXNvbHZlZCBwcm9taXNlIHdoZW4gdGhlIHJlZ2lzdHJ5IGRv
ZXMgbm90IGNvbnRhaW4gdGhlIGVudHJ5IHdpdGggdGhlIGdpdmVuIG5hbWUgCi1QQVNTICJ3aGVu
RGVmaW5lZCIgbXVzdCByZXR1cm4gYSByZWplY3RlZCBwcm9taXNlIHdoZW4gdGhlIGdpdmVuIG5h
bWUgaXMgbm90IGEgdmFsaWQgY3VzdG9tIGVsZW1lbnQgbmFtZSAKLVBBU1MgIndoZW5EZWZpbmVk
IiBtdXN0IHJldHVybiBhIHJlc29sdmVkIHByb21pc2Ugd2hlbiB0aGUgcmVnaXN0cnkgY29udGFp
bnMgdGhlIGVudHJ5IHdpdGggdGhlIGdpdmVuIG5hbWUgCi1QQVNTICJ3aGVuRGVmaW5lZCIgbXVz
dCByZXR1cm4gYSBuZXcgcmVzb2x2ZWQgcHJvbWlzZSBlYWNoIHRpbWUgaW52b2tlZCB3aGVuIHRo
ZSByZWdpc3RyeSBjb250YWlucyB0aGUgZW50cnkgd2l0aCB0aGUgZ2l2ZW4gbmFtZSAKLVBBU1Mg
QSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBiZSByZXNvbHZlZCBieSAi
ZGVmaW5lIiAKK1BBU1MgY3VzdG9tRWxlbWVudHMuZ2V0IG11c3QgcmV0dXJuIHVuZGVmaW5lZCB3
aGVuIHRoZSByZWdpc3RyeSBkb2VzIG5vdCBjb250YWluIGFuIGVudHJ5IHdpdGggdGhlIGdpdmVu
IG5hbWUgCitQQVNTIGN1c3RvbUVsZW1lbnRzLmdldCBtdXN0IHJldHVybiB1bmRlZmluZWQgd2hl
biB0aGUgcmVnaXN0cnkgZG9lcyBub3QgY29udGFpbiBhbiBlbnRyeSB3aXRoIHRoZSBnaXZlbiBu
YW1lIGV2ZW4gaWYgdGhlIG5hbWUgd2FzIG5vdCBhIHZhbGlkIGN1c3RvbSBlbGVtZW50IG5hbWUg
CitQQVNTIGN1c3RvbUVsZW1lbnRzLmdldCByZXR1cm4gdGhlIGNvbnN0cnVjdG9yIG9mIHRoZSBl
bnRyeSB3aXRoIHRoZSBnaXZlbiBuYW1lIHdoZW4gdGhlcmUgaXMgYSBtYXRjaGluZyBlbnRyeS4g
CitQQVNTIGN1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkIG11c3QgcmV0dXJuIGEgcHJvbWlzZSBm
b3IgYSB2YWxpZCBjdXN0b20gZWxlbWVudCBuYW1lIAorUEFTUyBjdXN0b21FbGVtZW50cy53aGVu
RGVmaW5lZCBtdXN0IHJldHVybiB0aGUgc2FtZSBwcm9taXNlIGVhY2ggdGltZSBpbnZva2VkIGZv
ciBhIHZhbGlkIGN1c3RvbSBlbGVtZW50IG5hbWUgd2hpY2ggaGFzIG5vdCBiZWVuIGRlZmluZWQg
CitQQVNTIGN1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkIG11c3QgcmV0dXJuIGFuIHVucmVzb2x2
ZWQgcHJvbWlzZSB3aGVuIHRoZSByZWdpc3RyeSBkb2VzIG5vdCBjb250YWluIHRoZSBlbnRyeSB3
aXRoIHRoZSBnaXZlbiBuYW1lIAorUEFTUyBjdXN0b21FbGVtZW50cy53aGVuRGVmaW5lZCBtdXN0
IHJldHVybiBhIHJlamVjdGVkIHByb21pc2Ugd2hlbiB0aGUgZ2l2ZW4gbmFtZSBpcyBub3QgYSB2
YWxpZCBjdXN0b20gZWxlbWVudCBuYW1lIAorUEFTUyBjdXN0b21FbGVtZW50cy53aGVuRGVmaW5l
ZCBtdXN0IHJldHVybiBhIHJlc29sdmVkIHByb21pc2Ugd2hlbiB0aGUgcmVnaXN0cnkgY29udGFp
bnMgdGhlIGVudHJ5IHdpdGggdGhlIGdpdmVuIG5hbWUgCitQQVNTIGN1c3RvbUVsZW1lbnRzLndo
ZW5EZWZpbmVkIG11c3QgcmV0dXJuIGEgbmV3IHJlc29sdmVkIHByb21pc2UgZWFjaCB0aW1lIGlu
dm9rZWQgd2hlbiB0aGUgcmVnaXN0cnkgY29udGFpbnMgdGhlIGVudHJ5IHdpdGggdGhlIGdpdmVu
IG5hbWUgCitQQVNTIEEgcHJvbWlzZSByZXR1cm5lZCBieSBjdXN0b21FbGVtZW50cy53aGVuRGVm
aW5lZCBtdXN0IGJlIHJlc29sdmVkIGJ5ICJkZWZpbmUiIAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9DdXN0b21FbGVtZW50UmVnaXN0cnkuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5odG1s
CmluZGV4IDQwNDA3YjNhZjNjOTVjZDVjMTkzZjdkYmJkZjlmZGQyMGJhZjY3YWQuLmQwZmZiNmUy
MTNhMGIwZmNmMDJjNGNjZmVmMzM0NDVhMjY4NWE1YjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvY3VzdG9tLWVsZW1lbnRzL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL0N1c3RvbUVsZW1lbnRSZWdpc3RyeS5odG1s
CkBAIC0xNDksNiArMTQ5LDMxIEBAIHRlc3QoZnVuY3Rpb24gKCkgewogICAgIGFzc2VydF9hcnJh
eV9lcXVhbHMoY2FsbHMsIFsncHJvdG90eXBlJ10sICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVz
dCBnZXQgInByb3RvdHlwZSInKTsKIH0sICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCB2YWxp
ZGF0ZSB0aGUgY3VzdG9tIGVsZW1lbnQgbmFtZSBiZWZvcmUgY2hlY2tpbmcgdGhlIGVsZW1lbnQg
ZGVmaW5pdGlvbiBpcyBydW5uaW5nIGZsYWcnKTsKIAordGVzdChmdW5jdGlvbiAoKSB7CisgICAg
dmFyIHVucmVzb2x2ZWRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY29uc3RydWN0
b3ItY2FsbHMtZGVmaW5lJyk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZCh1bnJlc29s
dmVkRWxlbWVudCk7CisgICAgdmFyIGVsZW1lbnRVcGdyYWRlZER1cmluZ1VwZ3JhZGUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCdkZWZpbmVkLWR1cmluZy11cGdyYWRlJyk7CisgICAgZG9jdW1l
bnQuYm9keS5hcHBlbmRDaGlsZChlbGVtZW50VXBncmFkZWREdXJpbmdVcGdyYWRlKTsKKworICAg
IHZhciBEZWZpbmVkRHVyaW5nVXBncmFkZSA9IGNsYXNzIGV4dGVuZHMgSFRNTEVsZW1lbnQgeyB9
OworCisgICAgY2xhc3MgQ29uc3RydWN0b3JDYWxsc0RlZmluZSBleHRlbmRzIEhUTUxFbGVtZW50
IHsKKyAgICAgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgICAgICBjdXN0b21FbGVtZW50cy5k
ZWZpbmUoJ2RlZmluZWQtZHVyaW5nLXVwZ3JhZGUnLCBEZWZpbmVkRHVyaW5nVXBncmFkZSk7Cisg
ICAgICAgICAgICBhc3NlcnRfZmFsc2UodW5yZXNvbHZlZEVsZW1lbnQgaW5zdGFuY2VvZiBDb25z
dHJ1Y3RvckNhbGxzRGVmaW5lKTsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGVsZW1lbnRVcGdy
YWRlZER1cmluZ1VwZ3JhZGUgaW5zdGFuY2VvZiBEZWZpbmVkRHVyaW5nVXBncmFkZSk7CisgICAg
ICAgICAgICBzdXBlcigpOworICAgICAgICAgICAgYXNzZXJ0X3RydWUodW5yZXNvbHZlZEVsZW1l
bnQgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvckNhbGxzRGVmaW5lKTsKKyAgICAgICAgICAgIGFzc2Vy
dF90cnVlKGVsZW1lbnRVcGdyYWRlZER1cmluZ1VwZ3JhZGUgaW5zdGFuY2VvZiBEZWZpbmVkRHVy
aW5nVXBncmFkZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBhc3NlcnRfZmFsc2UodW5yZXNv
bHZlZEVsZW1lbnQgaW5zdGFuY2VvZiBDb25zdHJ1Y3RvckNhbGxzRGVmaW5lKTsKKyAgICBhc3Nl
cnRfZmFsc2UoZWxlbWVudFVwZ3JhZGVkRHVyaW5nVXBncmFkZSBpbnN0YW5jZW9mIERlZmluZWRE
dXJpbmdVcGdyYWRlKTsKKworICAgIGN1c3RvbUVsZW1lbnRzLmRlZmluZSgnY29uc3RydWN0b3It
Y2FsbHMtZGVmaW5lJywgQ29uc3RydWN0b3JDYWxsc0RlZmluZSk7Cit9LCAnY3VzdG9tRWxlbWVu
dHMuZGVmaW5lIHVuc2V0IHRoZSBlbGVtZW50IGRlZmluaXRpb24gaXMgcnVubmluZyBmbGFnIGJl
Zm9yZSB1cGdyYWRpbmcgY3VzdG9tIGVsZW1lbnRzJyk7CisKIChmdW5jdGlvbiAoKSB7CiAgICAg
dmFyIHRlc3RDYXNlID0gYXN5bmNfdGVzdCgnY3VzdG9tRWxlbWVudHMuZGVmaW5lIG11c3Qgbm90
IHRocm93JwogICAgICAgICArJyB3aGVuIGRlZmluaW5nIGFub3RoZXIgY3VzdG9tIGVsZW1lbnQg
aW4gYSBkaWZmZXJlbnQgZ2xvYmFsIG9iamVjdCBkdXJpbmcgR2V0KGNvbnN0cnVjdG9yLCAicHJv
dG90eXBlIiknLCB7dGltZW91dDogMTAwfSk7CkBAIC0zODQsMTMgKzQwOSw0OCBAQCB0ZXN0KGZ1
bmN0aW9uICgpIHsKIH0sICdjdXN0b21FbGVtZW50cy5kZWZpbmUgbXVzdCBkZWZpbmUgYW4gaW5z
dGFudGlhdGFibGUgY3VzdG9tIGVsZW1lbnQnKTsKIAogdGVzdChmdW5jdGlvbiAoKSB7CisgICAg
dmFyIGRpc2Nvbm5lY3RlZEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzb21lLWN1
c3RvbScpOworICAgIHZhciBjb25uZWN0ZWRFbGVtZW50QmVmb3JlU2hhZG93SG9zdCA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoJ3NvbWUtY3VzdG9tJyk7CisgICAgdmFyIGNvbm5lY3RlZEVsZW1l
bnRBZnRlclNoYWRvd0hvc3QgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzb21lLWN1c3RvbScp
OworICAgIHZhciBlbGVtZW50SW5TaGFkb3dUcmVlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgn
c29tZS1jdXN0b20nKTsKKyAgICB2YXIgY2hpbGRFbGVtZW50T2ZTaGFkb3dIb3N0ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgnc29tZS1jdXN0b20nKTsKKyAgICB2YXIgY3VzdG9tU2hhZG93SG9z
dCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NvbWUtY3VzdG9tJyk7CisgICAgdmFyIGVsZW1l
bnRJbk5lc3RlZFNoYWRvd1RyZWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzb21lLWN1c3Rv
bScpOworCisgICAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2Rpdicp
OworICAgIHZhciBzaGFkb3dIb3N0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Cisg
ICAgdmFyIHNoYWRvd1Jvb3QgPSBzaGFkb3dIb3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3Nl
ZCd9KTsKKyAgICBjb250YWluZXIuYXBwZW5kQ2hpbGQoY29ubmVjdGVkRWxlbWVudEJlZm9yZVNo
YWRvd0hvc3QpOworICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChzaGFkb3dIb3N0KTsKKyAgICBj
b250YWluZXIuYXBwZW5kQ2hpbGQoY29ubmVjdGVkRWxlbWVudEFmdGVyU2hhZG93SG9zdCk7Cisg
ICAgc2hhZG93SG9zdC5hcHBlbmRDaGlsZChjaGlsZEVsZW1lbnRPZlNoYWRvd0hvc3QpOworICAg
IHNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZWxlbWVudEluU2hhZG93VHJlZSk7CisgICAgc2hhZG93
Um9vdC5hcHBlbmRDaGlsZChjdXN0b21TaGFkb3dIb3N0KTsKKworICAgIHZhciBpbm5lclNoYWRv
d1Jvb3QgPSBjdXN0b21TaGFkb3dIb3N0LmF0dGFjaFNoYWRvdyh7bW9kZTogJ2Nsb3NlZCd9KTsK
KyAgICBpbm5lclNoYWRvd1Jvb3QuYXBwZW5kQ2hpbGQoZWxlbWVudEluTmVzdGVkU2hhZG93VHJl
ZSk7CisKKyAgICB2YXIgY2FsbHMgPSBbXTsKKyAgICBjbGFzcyBTb21lQ3VzdG9tRWxlbWVudCBl
eHRlbmRzIEhUTUxFbGVtZW50IHsKKyAgICAgICAgY29uc3RydWN0b3IoKSB7CisgICAgICAgICAg
ICBzdXBlcigpOworICAgICAgICAgICAgY2FsbHMucHVzaCh0aGlzKTsKKyAgICAgICAgfQorICAg
IH07CisKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGNvbnRhaW5lcik7CisgICAgY3Vz
dG9tRWxlbWVudHMuZGVmaW5lKCdzb21lLWN1c3RvbScsIFNvbWVDdXN0b21FbGVtZW50KTsKKyAg
ICBhc3NlcnRfYXJyYXlfZXF1YWxzKGNhbGxzLCBbY29ubmVjdGVkRWxlbWVudEJlZm9yZVNoYWRv
d0hvc3QsIGVsZW1lbnRJblNoYWRvd1RyZWUsIGN1c3RvbVNoYWRvd0hvc3QsIGVsZW1lbnRJbk5l
c3RlZFNoYWRvd1RyZWUsIGNoaWxkRWxlbWVudE9mU2hhZG93SG9zdCwgY29ubmVjdGVkRWxlbWVu
dEFmdGVyU2hhZG93SG9zdF0pOworfSwgJ2N1c3RvbUVsZW1lbnRzLmRlZmluZSBtdXN0IHVwZ3Jh
ZGUgZWxlbWVudHMgaW4gdGhlIHNoYWRvdy1pbmNsdWRpbmcgdHJlZSBvcmRlcicpOworCit0ZXN0
KGZ1bmN0aW9uICgpIHsKICAgICBhc3NlcnRfdHJ1ZSgnZ2V0JyBpbiBDdXN0b21FbGVtZW50UmVn
aXN0cnkucHJvdG90eXBlLCAnImdldCIgZXhpc3RzIG9uIEN1c3RvbUVsZW1lbnRSZWdpc3RyeS5w
cm90b3R5cGUnKTsKICAgICBhc3NlcnRfdHJ1ZSgnZ2V0JyBpbiBjdXN0b21FbGVtZW50cywgJyJn
ZXQiIGV4aXN0cyBvbiB3aW5kb3cuY3VzdG9tRWxlbWVudHMnKTsKIH0sICdDdXN0b21FbGVtZW50
UmVnaXN0cnkgaW50ZXJmYWNlIG11c3QgaGF2ZSBnZXQgYXMgYSBtZXRob2QnKTsKIAogdGVzdChm
dW5jdGlvbiAoKSB7CiAgICAgYXNzZXJ0X2VxdWFscyhjdXN0b21FbGVtZW50cy5nZXQoJ2EtYicp
LCB1bmRlZmluZWQpOwotfSwgJyJnZXQiIG11c3QgcmV0dXJuIHVuZGVmaW5lZCB3aGVuIHRoZSBy
ZWdpc3RyeSBkb2VzIG5vdCBjb250YWluIGFuIGVudHJ5IHdpdGggdGhlIGdpdmVuIG5hbWUnKTsK
K30sICdjdXN0b21FbGVtZW50cy5nZXQgbXVzdCByZXR1cm4gdW5kZWZpbmVkIHdoZW4gdGhlIHJl
Z2lzdHJ5IGRvZXMgbm90IGNvbnRhaW4gYW4gZW50cnkgd2l0aCB0aGUgZ2l2ZW4gbmFtZScpOwog
CiB0ZXN0KGZ1bmN0aW9uICgpIHsKICAgICBhc3NlcnRfZXF1YWxzKGN1c3RvbUVsZW1lbnRzLmdl
dCgnaHRtbCcpLCB1bmRlZmluZWQpOwpAQCAtMzk4LDIyICs0NTgsMjIgQEAgdGVzdChmdW5jdGlv
biAoKSB7CiAgICAgYXNzZXJ0X2VxdWFscyhjdXN0b21FbGVtZW50cy5nZXQoJ2RpdicpLCB1bmRl
ZmluZWQpOwogICAgIGFzc2VydF9lcXVhbHMoY3VzdG9tRWxlbWVudHMuZ2V0KCdnJyksIHVuZGVm
aW5lZCk7CiAgICAgYXNzZXJ0X2VxdWFscyhjdXN0b21FbGVtZW50cy5nZXQoJ2FiJyksIHVuZGVm
aW5lZCk7Ci19LCAnImdldCIgbXVzdCByZXR1cm4gdW5kZWZpbmVkIHdoZW4gdGhlIHJlZ2lzdHJ5
IGRvZXMgbm90IGNvbnRhaW4gYW4gZW50cnkgd2l0aCB0aGUgZ2l2ZW4gbmFtZSBldmVuIGlmIHRo
ZSBuYW1lIHdhcyBub3QgYSB2YWxpZCBjdXN0b20gZWxlbWVudCBuYW1lJyk7Cit9LCAnY3VzdG9t
RWxlbWVudHMuZ2V0IG11c3QgcmV0dXJuIHVuZGVmaW5lZCB3aGVuIHRoZSByZWdpc3RyeSBkb2Vz
IG5vdCBjb250YWluIGFuIGVudHJ5IHdpdGggdGhlIGdpdmVuIG5hbWUgZXZlbiBpZiB0aGUgbmFt
ZSB3YXMgbm90IGEgdmFsaWQgY3VzdG9tIGVsZW1lbnQgbmFtZScpOwogCiB0ZXN0KGZ1bmN0aW9u
ICgpIHsKICAgICBhc3NlcnRfZXF1YWxzKGN1c3RvbUVsZW1lbnRzLmdldCgnZXhpc3RpbmctY3Vz
dG9tLWVsZW1lbnQnKSwgdW5kZWZpbmVkKTsKICAgICBjbGFzcyBFeGlzdGluZ0N1c3RvbUVsZW1l
bnQgZXh0ZW5kcyBIVE1MRWxlbWVudCB7fTsKICAgICBjdXN0b21FbGVtZW50cy5kZWZpbmUoJ2V4
aXN0aW5nLWN1c3RvbS1lbGVtZW50JywgRXhpc3RpbmdDdXN0b21FbGVtZW50KTsKICAgICBhc3Nl
cnRfZXF1YWxzKGN1c3RvbUVsZW1lbnRzLmdldCgnZXhpc3RpbmctY3VzdG9tLWVsZW1lbnQnKSwg
RXhpc3RpbmdDdXN0b21FbGVtZW50KTsKLX0sICciZ2V0IiByZXR1cm4gdGhlIGNvbnN0cnVjdG9y
IG9mIHRoZSBlbnRyeSB3aXRoIHRoZSBnaXZlbiBuYW1lIHdoZW4gdGhlcmUgaXMgYSBtYXRjaGlu
ZyBlbnRyeS4nKTsKK30sICdjdXN0b21FbGVtZW50cy5nZXQgcmV0dXJuIHRoZSBjb25zdHJ1Y3Rv
ciBvZiB0aGUgZW50cnkgd2l0aCB0aGUgZ2l2ZW4gbmFtZSB3aGVuIHRoZXJlIGlzIGEgbWF0Y2hp
bmcgZW50cnkuJyk7CiAKIHRlc3QoZnVuY3Rpb24gKCkgewogICAgIGFzc2VydF90cnVlKGN1c3Rv
bUVsZW1lbnRzLndoZW5EZWZpbmVkKCdzb21lLW5hbWUnKSBpbnN0YW5jZW9mIFByb21pc2UpOwot
fSwgJyJ3aGVuRGVmaW5lZCIgbXVzdCByZXR1cm4gYSBwcm9taXNlIGZvciBhIHZhbGlkIGN1c3Rv
bSBlbGVtZW50IG5hbWUnKTsKK30sICdjdXN0b21FbGVtZW50cy53aGVuRGVmaW5lZCBtdXN0IHJl
dHVybiBhIHByb21pc2UgZm9yIGEgdmFsaWQgY3VzdG9tIGVsZW1lbnQgbmFtZScpOwogCiB0ZXN0
KGZ1bmN0aW9uICgpIHsKICAgICBhc3NlcnRfZXF1YWxzKGN1c3RvbUVsZW1lbnRzLndoZW5EZWZp
bmVkKCdzb21lLW5hbWUnKSwgY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQoJ3NvbWUtbmFtZScp
KTsKLX0sICcid2hlbkRlZmluZWQiIG11c3QgcmV0dXJuIHRoZSBzYW1lIHByb21pc2UgZWFjaCB0
aW1lIGludm9rZWQgZm9yIGEgdmFsaWQgY3VzdG9tIGVsZW1lbnQgbmFtZSB3aGljaCBoYXMgbm90
IGJlZW4gZGVmaW5lZCcpOworfSwgJ2N1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkIG11c3QgcmV0
dXJuIHRoZSBzYW1lIHByb21pc2UgZWFjaCB0aW1lIGludm9rZWQgZm9yIGEgdmFsaWQgY3VzdG9t
IGVsZW1lbnQgbmFtZSB3aGljaCBoYXMgbm90IGJlZW4gZGVmaW5lZCcpOwogCiBwcm9taXNlX3Rl
c3QoZnVuY3Rpb24gKCkgewogICAgIHZhciByZXNvbHZlZCA9IGZhbHNlOwpAQCAtNDIzLDcgKzQ4
Myw3IEBAIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CiAgICAgICAgIGFzc2VydF9mYWxzZShy
ZXNvbHZlZCwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBub3Qg
YmUgcmVzb2x2ZWQgdW50aWwgYSBjdXN0b20gZWxlbWVudCBpcyBkZWZpbmVkJyk7CiAgICAgICAg
IGFzc2VydF9mYWxzZShyZWplY3RlZCwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVm
aW5lZCIgbXVzdCBub3QgYmUgcmVqZWN0ZWQgdW50aWwgYSBjdXN0b20gZWxlbWVudCBpcyBkZWZp
bmVkJyk7CiAgICAgfSk7ICAgIAotfSwgJyJ3aGVuRGVmaW5lZCIgbXVzdCByZXR1cm4gYW4gdW5y
ZXNvbHZlZCBwcm9taXNlIHdoZW4gdGhlIHJlZ2lzdHJ5IGRvZXMgbm90IGNvbnRhaW4gdGhlIGVu
dHJ5IHdpdGggdGhlIGdpdmVuIG5hbWUnKQorfSwgJ2N1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVk
IG11c3QgcmV0dXJuIGFuIHVucmVzb2x2ZWQgcHJvbWlzZSB3aGVuIHRoZSByZWdpc3RyeSBkb2Vz
IG5vdCBjb250YWluIHRoZSBlbnRyeSB3aXRoIHRoZSBnaXZlbiBuYW1lJykKIAogcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uICgpIHsKICAgICB2YXIgcHJvbWlzZSA9IGN1c3RvbUVsZW1lbnRzLndoZW5E
ZWZpbmVkKCdiYWRuYW1lJyk7CkBAIC00MzYsNyArNDk2LDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0
aW9uICgpIHsKICAgICAgICAgYXNzZXJ0X2ZhbHNlKCdyZXNvbHZlZCcgaW4gcHJvbWlzZSwgJ1Ro
ZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBiZSByZXNvbHZlZCB3aGVu
IGEgY3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5lZCcpOwogICAgICAgICBhc3NlcnRfdHJ1ZSgncmVq
ZWN0ZWQnIGluIHByb21pc2UsICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hlbkRlZmluZWQi
IG11c3Qgbm90IGJlIHJlamVjdGVkIHdoZW4gYSBjdXN0b20gZWxlbWVudCBpcyBkZWZpbmVkJyk7
CiAgICAgfSk7Ci19LCAnIndoZW5EZWZpbmVkIiBtdXN0IHJldHVybiBhIHJlamVjdGVkIHByb21p
c2Ugd2hlbiB0aGUgZ2l2ZW4gbmFtZSBpcyBub3QgYSB2YWxpZCBjdXN0b20gZWxlbWVudCBuYW1l
Jyk7Cit9LCAnY3VzdG9tRWxlbWVudHMud2hlbkRlZmluZWQgbXVzdCByZXR1cm4gYSByZWplY3Rl
ZCBwcm9taXNlIHdoZW4gdGhlIGdpdmVuIG5hbWUgaXMgbm90IGEgdmFsaWQgY3VzdG9tIGVsZW1l
bnQgbmFtZScpOwogCiBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgewogICAgIGN1c3RvbUVsZW1l
bnRzLmRlZmluZSgncHJlZXhpc3RpbmctY3VzdG9tLWVsZW1lbnQnLCBjbGFzcyBleHRlbmRzIEhU
TUxFbGVtZW50IHsgfSk7CkBAIC00NTMsNyArNTEzLDcgQEAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
ICgpIHsKICAgICAgICAgICAgICdUaGUgcHJvbWlzZSByZXR1cm5lZCBieSAid2hlbkRlZmluZWQi
IG11c3QgYmUgcmVzb2x2ZWQgd2l0aCAidW5kZWZpbmVkIiB3aGVuIGEgY3VzdG9tIGVsZW1lbnQg
aXMgZGVmaW5lZCcpOwogICAgICAgICBhc3NlcnRfZmFsc2UoJ3JlamVjdGVkJyBpbiBwcm9taXNl
LCAnVGhlIHByb21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IG5vdCBiZSByZWpl
Y3RlZCB3aGVuIGEgY3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5lZCcpOwogICAgIH0pOwotfSwgJyJ3
aGVuRGVmaW5lZCIgbXVzdCByZXR1cm4gYSByZXNvbHZlZCBwcm9taXNlIHdoZW4gdGhlIHJlZ2lz
dHJ5IGNvbnRhaW5zIHRoZSBlbnRyeSB3aXRoIHRoZSBnaXZlbiBuYW1lJyk7Cit9LCAnY3VzdG9t
RWxlbWVudHMud2hlbkRlZmluZWQgbXVzdCByZXR1cm4gYSByZXNvbHZlZCBwcm9taXNlIHdoZW4g
dGhlIHJlZ2lzdHJ5IGNvbnRhaW5zIHRoZSBlbnRyeSB3aXRoIHRoZSBnaXZlbiBuYW1lJyk7CiAK
IHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CiAgICAgY2xhc3MgQW5vdGhlckV4aXN0aW5nQ3Vz
dG9tRWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHt9OwpAQCAtNDc5LDcgKzUzOSw3IEBAIHBy
b21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CiAgICAgICAgIGFzc2VydF9lcXVhbHMocHJvbWlzZTIu
cmVzb2x2ZWQsIHVuZGVmaW5lZCwgJ1RoZSBwcm9taXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5l
ZCIgbXVzdCBiZSByZXNvbHZlZCB3aXRoICJ1bmRlZmluZWQiIHdoZW4gYSBjdXN0b20gZWxlbWVu
dCBpcyBkZWZpbmVkJyk7CiAgICAgICAgIGFzc2VydF9mYWxzZSgncmVqZWN0ZWQnIGluIHByb21p
c2UyLCAnVGhlIHByb21pc2UgcmV0dXJuZWQgYnkgIndoZW5EZWZpbmVkIiBtdXN0IG5vdCBiZSBy
ZWplY3RlZCB3aGVuIGEgY3VzdG9tIGVsZW1lbnQgaXMgZGVmaW5lZCcpOwogICAgIH0pOwotfSwg
JyJ3aGVuRGVmaW5lZCIgbXVzdCByZXR1cm4gYSBuZXcgcmVzb2x2ZWQgcHJvbWlzZSBlYWNoIHRp
bWUgaW52b2tlZCB3aGVuIHRoZSByZWdpc3RyeSBjb250YWlucyB0aGUgZW50cnkgd2l0aCB0aGUg
Z2l2ZW4gbmFtZScpOworfSwgJ2N1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkIG11c3QgcmV0dXJu
IGEgbmV3IHJlc29sdmVkIHByb21pc2UgZWFjaCB0aW1lIGludm9rZWQgd2hlbiB0aGUgcmVnaXN0
cnkgY29udGFpbnMgdGhlIGVudHJ5IHdpdGggdGhlIGdpdmVuIG5hbWUnKTsKIAogcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uICgpIHsKICAgICB2YXIgcHJvbWlzZSA9IGN1c3RvbUVsZW1lbnRzLndoZW5E
ZWZpbmVkKCdlbGVtZW50LWRlZmluZWQtYWZ0ZXItd2hlbmRlZmluZWQnKTsKQEAgLTUxNCw3ICs1
NzQsNyBAQCBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgJ1RoZSBwcm9t
aXNlIHJldHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBiZSByZXNvbHZlZCB3aXRoICJ1bmRl
ZmluZWQiIHdoZW4gYSBjdXN0b20gZWxlbWVudCBpcyBkZWZpbmVkJyk7CiAgICAgICAgIGFzc2Vy
dF9mYWxzZSgncmVqZWN0ZWQnIGluIHByb21pc2VBZnRlckRlZmluZSwgJ1RoZSBwcm9taXNlIHJl
dHVybmVkIGJ5ICJ3aGVuRGVmaW5lZCIgbXVzdCBub3QgYmUgcmVqZWN0ZWQgd2hlbiBhIGN1c3Rv
bSBlbGVtZW50IGlzIGRlZmluZWQnKTsKICAgICB9KTsKLX0sICdBIHByb21pc2UgcmV0dXJuZWQg
YnkgIndoZW5EZWZpbmVkIiBtdXN0IGJlIHJlc29sdmVkIGJ5ICJkZWZpbmUiJyk7Cit9LCAnQSBw
cm9taXNlIHJldHVybmVkIGJ5IGN1c3RvbUVsZW1lbnRzLndoZW5EZWZpbmVkIG11c3QgYmUgcmVz
b2x2ZWQgYnkgImRlZmluZSInKTsKIAogPC9zY3JpcHQ+CiA8L2JvZHk+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9kZWZpbmVkLXBzZXVkby1jbGFzcy1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9kZWZpbmVkLXBzZXVk
by1jbGFzcy1leHBlY3RlZC50eHQKaW5kZXggZjkxYzQ5NTQ2ZGVkN2U0YjJmYjgyZjg2OGExNGZh
N2ExYmM0YzUxOC4uMzQ1MTNhOWUyYTdiYWI3MWM0M2I2MmY2NDQxOTc5M2FjMjQwMTRkNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvZGVmaW5lZC1wc2V1ZG8t
Y2xhc3MtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRz
L2RlZmluZWQtcHNldWRvLWNsYXNzLWV4cGVjdGVkLnR4dApAQCAtMSw3ICsxLDkgQEAKIAogUEFT
UyBUaGUgZGVmaW5lZCBmbGFnIG9mIGEgY3VzdG9tIGVsZW1lbnQgbXVzdCBub3QgYmUgc2V0IGlm
IGEgY3VzdG9tIGVsZW1lbnQgaGFzIG5vdCBiZWVuIHVwZ3JhZGVkIHlldCAKK1BBU1MgVGhlIGRl
ZmluZWQgZmxhZyBvZiBhIGN1c3RvbSBlbGVtZW50IG11c3Qgbm90IGJlIHNldCBpZiBhIGN1c3Rv
bSBlbGVtZW50IGhhcyBub3QgYmVlbiB1cGdyYWRlZCB5ZXQgZXZlbiBpZiB0aGUgZWxlbWVudCBo
YXMgYmVlbiBkZWZpbmVkIAogUEFTUyBUaGUgZGVmaW5lZCBmbGFnIG9mIGEgY3VzdG9tIGVsZW1l
bnQgbXVzdCBiZSBzZXQgd2hlbiBhIGN1c3RvbSBlbGVtZW50IGlzIHN1Y2Nlc3NmdWxseSB1cGdy
YWRlZCAKIFBBU1MgVGhlIGRlZmluZWQgZmxhZyBvZiBhIGN1c3RvbSBlbGVtZW50IG11c3QgYmUg
c2V0IGlmIHRoZXJlIGlzIGEgbWF0Y2hpbmcgZGVmaW5pdGlvbiAKK1BBU1MgVGhlIGRlZmluZWQg
ZmxhZyBvZiBhbiB1cGdyYWRlZCBjdXN0b20gZWxlbWVudCBtdXN0IGJlIHNldCAKIFBBU1MgVGhl
IGRlZmluZWQgZmxhZyBvZiBhIGN1c3RvbSBlbGVtZW50IGNyZWF0ZWQgYnkgSFRNTCBwYXJzZXIg
bXVzdCBiZSB1bnNldCBpZiB0aGVyZSBpcyBubyBtYXRjaGluZyBkZWZpbml0aW9uIAogUEFTUyBU
aGUgZGVmaW5lZCBmbGFnIG9mIGEgY3VzdG9tIGVsZW1lbnQgY3JlYXRlZCBieSBIVE1MIHBhcnNl
ciBtdXN0IGJlIHNldCBpZiB0aGVyZSBpcyBhIG1hdGNoaW5nIGRlZmluaXRpb24gCiBQQVNTIFRo
ZSBkZWZpbmVkIGZsYWcgb2YgYSBjdXN0b20gZWxlbWVudCBjcmVhdGVkIGJ5IEhUTUwgcGFyc2Vy
IG11c3QgYmUgc2V0IGFmdGVyIGNoZWNraW5nIHRoZSByZXR1cm5lZCByZXN1bHQgaXMgYW4gaW5z
dGFuY2Ugb2YgSFRNTEVsZW1lbnQgCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3Rv
bS1lbGVtZW50cy9kZWZpbmVkLXBzZXVkby1jbGFzcy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9j
dXN0b20tZWxlbWVudHMvZGVmaW5lZC1wc2V1ZG8tY2xhc3MuaHRtbAppbmRleCBiYjU5YjlkMzVk
N2VlYjVkODA0NWMyZjMzYzk2ODZjMjRlNmQ5YzYyLi5hY2JkNDVlYWVmNTFiZTM0Njc2OGY1ODI4
ODExNWU1ZWRiZjZkZjQ1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVt
ZW50cy9kZWZpbmVkLXBzZXVkby1jbGFzcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3Vz
dG9tLWVsZW1lbnRzL2RlZmluZWQtcHNldWRvLWNsYXNzLmh0bWwKQEAgLTI4LDYgKzI4LDExIEBA
IGNsYXNzIE15RWxlbWVudCBleHRlbmRzIEhUTUxFbGVtZW50IHsKIGN1c3RvbUVsZW1lbnRzLmRl
ZmluZSgnbXktZWxlbWVudCcsIE15RWxlbWVudCk7CiAKIHRlc3QoZnVuY3Rpb24gKCkgeworICAg
IGFzc2VydF9mYWxzZSh1cGdyYWRlQ2FuZGlkYXRlLm1hdGNoZXMoJzpkZWZpbmVkJykpOworfSwg
J1RoZSBkZWZpbmVkIGZsYWcgb2YgYSBjdXN0b20gZWxlbWVudCBtdXN0IG5vdCBiZSBzZXQgaWYg
YSBjdXN0b20gZWxlbWVudCBoYXMgbm90IGJlZW4gdXBncmFkZWQgeWV0IGV2ZW4gaWYgdGhlIGVs
ZW1lbnQgaGFzIGJlZW4gZGVmaW5lZCcpOworCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKHVwZ3JhZGVDYW5kaWRhdGUpOwogICAgIGFzc2VydF90cnVl
KHVwZ3JhZGVDYW5kaWRhdGUubWF0Y2hlcygnOmRlZmluZWQnKSk7CiAgICAgYXNzZXJ0X2ZhbHNl
KG1hdGNoSW5zaWRlQ29uc3RydWN0b3IsICdVcGdyYWRpbmcgYSBjdXN0b20gZWxlbWVudCBtdXN0
IHNldCBkZWZpbmVkIGZsYWcgYWZ0ZXIgaW52b2tpbmcgdGhlIGNvbnN0cnVjdG9yJyk7CiB9LCAn
VGhlIGRlZmluZWQgZmxhZyBvZiBhIGN1c3RvbSBlbGVtZW50IG11c3QgYmUgc2V0IHdoZW4gYSBj
dXN0b20gZWxlbWVudCBpcyBzdWNjZXNzZnVsbHkgdXBncmFkZWQnKTsKQEAgLTM4LDYgKzQzLDEy
IEBAIHRlc3QoZnVuY3Rpb24gKCkgewogICAgIGFzc2VydF9mYWxzZShtYXRjaEluc2lkZUNvbnN0
cnVjdG9yLCAnQ3JlYXRpbmcgYSBjdXN0b20gZWxlbWVudCBtdXN0IHNldCBkZWZpbmVkIGZsYWcg
YWZ0ZXIgaW52b2tpbmcgdGhlIGNvbnN0cnVjdG9yJyk7CiB9LCAnVGhlIGRlZmluZWQgZmxhZyBv
ZiBhIGN1c3RvbSBlbGVtZW50IG11c3QgYmUgc2V0IGlmIHRoZXJlIGlzIGEgbWF0Y2hpbmcgZGVm
aW5pdGlvbicpOwogCit0ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICB2YXIgdXBncmFkZWRFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnbXktZWxlbWVudCcpLmNsb25lTm9kZSh0cnVlKTsK
KyAgICBhc3NlcnRfdHJ1ZSh1cGdyYWRlZEVsZW1lbnQubWF0Y2hlcygnOmRlZmluZWQnKSk7Cisg
ICAgYXNzZXJ0X2ZhbHNlKG1hdGNoSW5zaWRlQ29uc3RydWN0b3IsICdDcmVhdGluZyBhIGN1c3Rv
bSBlbGVtZW50IG11c3Qgc2V0IGRlZmluZWQgZmxhZyBhZnRlciBpbnZva2luZyB0aGUgY29uc3Ry
dWN0b3InKTsKK30sICdUaGUgZGVmaW5lZCBmbGFnIG9mIGFuIHVwZ3JhZGVkIGN1c3RvbSBlbGVt
ZW50IG11c3QgYmUgc2V0Jyk7CisKIGRvY3VtZW50LndyaXRlKCc8bXktb3RoZXItZWxlbWVudD48
L215LW90aGVyLWVsZW1lbnQ+Jyk7CiAKIHRlc3QoZnVuY3Rpb24gKCkgewpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvZW5xdWV1ZS1jdXN0b20tZWxlbWVudC11
cGdyYWRlLXJlYWN0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVs
ZW1lbnRzL2VucXVldWUtY3VzdG9tLWVsZW1lbnQtdXBncmFkZS1yZWFjdGlvbi1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYmU0NDc3NDM3YjJiNWNiNjBjNDcxYmJmY2YzYmY5Nzc1ZTEzMDY0Mwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL2VucXVl
dWUtY3VzdG9tLWVsZW1lbnQtdXBncmFkZS1yZWFjdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwyNyBAQAorCitQQVNTIENyZWF0aW5nIGFuIGVsZW1lbnQgaW4gZG9jdW1lbnQgb2YgYSB0ZW1w
bGF0ZSBlbGVtZW50IG11c3Qgbm90IGVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJl
YWN0aW9uIGJlY2F1c2UgdGhlIGRvY3VtZW50IGRvZXMgbm90IGhhdmUgYSBicm93c2luZyBjb250
ZXh0IAorUEFTUyBDcmVhdGluZyBhbiBlbGVtZW50IGluIGRvY3VtZW50IG9mIGEgdGVtcGxhdGUg
ZWxlbWVudCBhbmQgaW5zZXJ0aW5nIGludG8gdGhlIGRvY3VtZW50IG11c3Qgbm90IGVucXVldWUg
YSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9uIAorUEFTUyBDcmVhdGluZyBhbiBlbGVt
ZW50IGluIGRvY3VtZW50IG9mIGEgdGVtcGxhdGUgZWxlbWVudCBhbmQgYWRvcHRpbmcgYmFjayB0
byBhIGRvY3VtZW50IHdpdGggYnJvd3NpbmcgY29udGV4dCBtdXN0IGVucXVldWUgYSBjdXN0b20g
ZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9uIAorUEFTUyBDcmVhdGluZyBhbiBlbGVtZW50IGluIG5l
dyBkb2N1bWVudCBtdXN0IG5vdCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFj
dGlvbiBiZWNhdXNlIHRoZSBkb2N1bWVudCBkb2VzIG5vdCBoYXZlIGEgYnJvd3NpbmcgY29udGV4
dCAKK1BBU1MgQ3JlYXRpbmcgYW4gZWxlbWVudCBpbiBuZXcgZG9jdW1lbnQgYW5kIGluc2VydGlu
ZyBpbnRvIHRoZSBkb2N1bWVudCBtdXN0IG5vdCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBn
cmFkZSByZWFjdGlvbiAKK1BBU1MgQ3JlYXRpbmcgYW4gZWxlbWVudCBpbiBuZXcgZG9jdW1lbnQg
YW5kIGFkb3B0aW5nIGJhY2sgdG8gYSBkb2N1bWVudCB3aXRoIGJyb3dzaW5nIGNvbnRleHQgbXVz
dCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFjdGlvbiAKK1BBU1MgQ3JlYXRp
bmcgYW4gZWxlbWVudCBpbiBjbG9uZWQgZG9jdW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBhIGN1c3Rv
bSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24gYmVjYXVzZSB0aGUgZG9jdW1lbnQgZG9lcyBub3Qg
aGF2ZSBhIGJyb3dzaW5nIGNvbnRleHQgCitQQVNTIENyZWF0aW5nIGFuIGVsZW1lbnQgaW4gY2xv
bmVkIGRvY3VtZW50IGFuZCBpbnNlcnRpbmcgaW50byB0aGUgZG9jdW1lbnQgbXVzdCBub3QgZW5x
dWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24gCitQQVNTIENyZWF0aW5nIGFu
IGVsZW1lbnQgaW4gY2xvbmVkIGRvY3VtZW50IGFuZCBhZG9wdGluZyBiYWNrIHRvIGEgZG9jdW1l
bnQgd2l0aCBicm93c2luZyBjb250ZXh0IG11c3QgZW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVw
Z3JhZGUgcmVhY3Rpb24gCitQQVNTIENyZWF0aW5nIGFuIGVsZW1lbnQgaW4gZG9jdW1lbnQgY3Jl
YXRlZCBieSBjcmVhdGVIVE1MRG9jdW1lbnQgbXVzdCBub3QgZW5xdWV1ZSBhIGN1c3RvbSBlbGVt
ZW50IHVwZ3JhZGUgcmVhY3Rpb24gYmVjYXVzZSB0aGUgZG9jdW1lbnQgZG9lcyBub3QgaGF2ZSBh
IGJyb3dzaW5nIGNvbnRleHQgCitQQVNTIENyZWF0aW5nIGFuIGVsZW1lbnQgaW4gZG9jdW1lbnQg
Y3JlYXRlZCBieSBjcmVhdGVIVE1MRG9jdW1lbnQgYW5kIGluc2VydGluZyBpbnRvIHRoZSBkb2N1
bWVudCBtdXN0IG5vdCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFjdGlvbiAK
K1BBU1MgQ3JlYXRpbmcgYW4gZWxlbWVudCBpbiBkb2N1bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZUhU
TUxEb2N1bWVudCBhbmQgYWRvcHRpbmcgYmFjayB0byBhIGRvY3VtZW50IHdpdGggYnJvd3Npbmcg
Y29udGV4dCBtdXN0IGVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9uIAor
UEFTUyBDcmVhdGluZyBhbiBlbGVtZW50IGluIEhUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVh
dGVEb2N1bWVudCBtdXN0IG5vdCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFj
dGlvbiBiZWNhdXNlIHRoZSBkb2N1bWVudCBkb2VzIG5vdCBoYXZlIGEgYnJvd3NpbmcgY29udGV4
dCAKK1BBU1MgQ3JlYXRpbmcgYW4gZWxlbWVudCBpbiBIVE1MIGRvY3VtZW50IGNyZWF0ZWQgYnkg
Y3JlYXRlRG9jdW1lbnQgYW5kIGluc2VydGluZyBpbnRvIHRoZSBkb2N1bWVudCBtdXN0IG5vdCBl
bnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFjdGlvbiAKK1BBU1MgQ3JlYXRpbmcg
YW4gZWxlbWVudCBpbiBIVE1MIGRvY3VtZW50IGNyZWF0ZWQgYnkgY3JlYXRlRG9jdW1lbnQgYW5k
IGFkb3B0aW5nIGJhY2sgdG8gYSBkb2N1bWVudCB3aXRoIGJyb3dzaW5nIGNvbnRleHQgbXVzdCBl
bnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFjdGlvbiAKK1BBU1MgQ3JlYXRpbmcg
YW4gZWxlbWVudCBpbiBIVE1MIGRvY3VtZW50IGZldGNoZWQgYnkgWEhSIG11c3Qgbm90IGVucXVl
dWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9uIGJlY2F1c2UgdGhlIGRvY3VtZW50
IGRvZXMgbm90IGhhdmUgYSBicm93c2luZyBjb250ZXh0IAorUEFTUyBDcmVhdGluZyBhbiBlbGVt
ZW50IGluIEhUTUwgZG9jdW1lbnQgZmV0Y2hlZCBieSBYSFIgYW5kIGluc2VydGluZyBpbnRvIHRo
ZSBkb2N1bWVudCBtdXN0IG5vdCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFj
dGlvbiAKK1BBU1MgQ3JlYXRpbmcgYW4gZWxlbWVudCBpbiBIVE1MIGRvY3VtZW50IGZldGNoZWQg
YnkgWEhSIGFuZCBhZG9wdGluZyBiYWNrIHRvIGEgZG9jdW1lbnQgd2l0aCBicm93c2luZyBjb250
ZXh0IG11c3QgZW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24gCitQQVNT
IENyZWF0aW5nIGFuIGVsZW1lbnQgaW4gZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11c3Qgbm90IGVu
cXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0aW9uIGlmIHRoZXJlIGlzIG5vIG1h
dGNoaW5nIGRlZmluaXRpb24gCitQQVNTIENyZWF0aW5nIGFuIGVsZW1lbnQgaW4gZG9jdW1lbnQg
aW4gYW4gaWZyYW1lIG11c3QgZW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rp
b24gaWYgdGhlcmUgaXMgYSBtYXRjaGluZyBkZWZpbml0aW9uIAorUEFTUyAiZGVmaW5lIiBpbiBk
b2N1bWVudCBpbiBhbiBpZnJhbWUgbXVzdCBub3QgZW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVw
Z3JhZGUgcmVhY3Rpb24gb24gYSBkaXNjb25uZWN0ZWQgdW5yZXNvbHZlZCBjdXN0b20gZWxlbWVu
dCAKK1BBU1MgSW5zZXJ0aW5nIGFuIHVucmVzb2x2ZWQgY3VzdG9tIGVsZW1lbnQgaW50byBkb2N1
bWVudCBpbiBhbiBpZnJhbWUgbXVzdCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSBy
ZWFjdGlvbiAKK1BBU1MgImRlZmluZSIgaW4gZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11c3QgZW5x
dWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24gb24gYSBjb25uZWN0ZWQgdW5y
ZXNvbHZlZCBjdXN0b20gZWxlbWVudCAKK1BBU1MgQWRvcHRpbmcgKGFuZCBsZWF2aW5nIGRpc2Nv
bm5jZXRlZCkgYW4gdW5yZXNvbHZlZCBjdXN0b20gZWxlbWVudCBpbnRvIGRvY3VtZW50IGluIGFu
IGlmcmFtZSBtdXN0IG5vdCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFjdGlv
biAKK1BBU1MgQWRvcHRpbmcgYW5kIGluc2VydGluZyBhbiB1bnJlc29sdmVkIGN1c3RvbSBlbGVt
ZW50IGludG8gZG9jdW1lbnQgaW4gYW4gaWZyYW1lIG11c3QgZW5xdWV1ZSBhIGN1c3RvbSBlbGVt
ZW50IHVwZ3JhZGUgcmVhY3Rpb24gCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3Vz
dG9tLWVsZW1lbnRzL2VucXVldWUtY3VzdG9tLWVsZW1lbnQtdXBncmFkZS1yZWFjdGlvbi5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9jdXN0b20tZWxlbWVudHMvZW5xdWV1ZS1jdXN0b20tZWxlbWVu
dC11cGdyYWRlLXJlYWN0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzUxMWRjMTk2N2FhMzgxZjQ3Yzlm
ZTgxY2Q3YTU4OWViNzY1OWI4NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
Y3VzdG9tLWVsZW1lbnRzL2VucXVldWUtY3VzdG9tLWVsZW1lbnQtdXBncmFkZS1yZWFjdGlvbi5o
dG1sCkBAIC0wLDAgKzEsMTg5IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
dGl0bGU+Q3VzdG9tIEVsZW1lbnRzOiBFbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSBy
ZWFjdGlvbjwvdGl0bGU+Cis8bWV0YSBuYW1lPSJhdXRob3IiIHRpdGxlPSJSeW9zdWtlIE5pd2Ei
IGhyZWY9Im1haWx0bzpybml3YUB3ZWJraXQub3JnIj4KKzxtZXRhIG5hbWU9ImFzc2VydCIgY29u
dGVudD0iRW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24gbXVzdCB1cGdy
YWRlIGEgY3VzdG9tIGVsZW1lbnQiPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2Rv
bS5zcGVjLndoYXR3Zy5vcmcvI2NvbmNlcHQtY3JlYXRlLWVsZW1lbnQiPgorPGxpbmsgcmVsPSJo
ZWxwIiBocmVmPSJodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9zY3JpcHRp
bmcuaHRtbCNjb25jZXB0LXRyeS11cGdyYWRlIj4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0
cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvc2NyaXB0aW5nLmh0bWwjZW5xdWV1
ZS1hLWN1c3RvbS1lbGVtZW50LXVwZ3JhZGUtcmVhY3Rpb24iPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxsaW5rIHJlbD0nc3R5
bGVzaGVldCcgaHJlZj0nLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmNzcyc+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2RvY3VtZW50LXR5cGVzLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CisKK2NsYXNzIFByZWRlZmluZWRD
dXN0b21FbGVtZW50IGV4dGVuZHMgSFRNTEVsZW1lbnQge30KK2N1c3RvbUVsZW1lbnRzLmRlZmlu
ZSgncHJlZGVmaW5lZC1jdXN0b20tZWxlbWVudCcsIFByZWRlZmluZWRDdXN0b21FbGVtZW50KTsK
KwordmFyIGN1c3RvbUVsZW1lbnROdW1iZXIgPSAxOworZnVuY3Rpb24gZ2VuZXJhdGVOZXh0Q3Vz
dG9tRWxlbWVudE5hbWUoKSB7IHJldHVybiAnY3VzdG9tLScgKyBjdXN0b21FbGVtZW50TnVtYmVy
Kys7IH0KKworRG9jdW1lbnRUeXBlcy5maWx0ZXIoZnVuY3Rpb24gKGVudHJ5KSB7IHJldHVybiAh
ZW50cnkuaXNPd25lciAmJiAhZW50cnkuaGFzQnJvd3NpbmdDb250ZXh0OyB9KS5mb3JFYWNoKGZ1
bmN0aW9uIChlbnRyeSkgeworICAgIHZhciBkb2N1bWVudE5hbWUgPSBlbnRyeS5uYW1lOworICAg
IHZhciBnZXREb2N1bWVudCA9IGVudHJ5LmNyZWF0ZTsKKworICAgIHByb21pc2VfdGVzdChmdW5j
dGlvbiAoKSB7CisgICAgICAgIHJldHVybiBnZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRv
YykgeworICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKGRvYy5jcmVhdGVFbGVtZW50KCdwcmVkZWZp
bmVkLWN1c3RvbS1lbGVtZW50JykgaW5zdGFuY2VvZiBQcmVkZWZpbmVkQ3VzdG9tRWxlbWVudCk7
CisgICAgICAgIH0pOworICAgIH0sICdDcmVhdGluZyBhbiBlbGVtZW50IGluICcgKyBkb2N1bWVu
dE5hbWUgKyAnIG11c3Qgbm90IGVucXVldWUgYSBjdXN0b20gZWxlbWVudCB1cGdyYWRlIHJlYWN0
aW9uJworICAgICAgICArICcgYmVjYXVzZSB0aGUgZG9jdW1lbnQgZG9lcyBub3QgaGF2ZSBhIGJy
b3dzaW5nIGNvbnRleHQnKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CisgICAg
ICAgIHZhciBuYW1lID0gZ2VuZXJhdGVOZXh0Q3VzdG9tRWxlbWVudE5hbWUoKTsKKyAgICAgICAg
dmFyIHVucmVzb2x2ZWRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChuYW1lKTsKKwor
ICAgICAgICBhc3NlcnRfZXF1YWxzKHVucmVzb2x2ZWRFbGVtZW50Ll9fcHJvdG9fXywgSFRNTEVs
ZW1lbnQucHJvdG90eXBlLAorICAgICAgICAgICAgJ1tbUHJvdG90eXBlXV0gaW50ZXJuYWwgc2xv
dCBvZiB0aGUgdW5yZXNvbHZlZCBjdXN0b20gZWxlbWVudCBtdXN0IGJlIHRoZSBIVE1MRWxlbWVu
dCBwcm90b3R5cGUnKTsKKworICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQoKS50aGVuKGZ1bmN0
aW9uIChkb2MpIHsKKyAgICAgICAgICAgIHZhciB1bnJlc29sdmVkRWxlbWVudEluRG9jID0gZG9j
LmNyZWF0ZUVsZW1lbnQobmFtZSk7CisgICAgICAgICAgICB2YXIgcHJvdG90eXBlID0gKHVucmVz
b2x2ZWRFbGVtZW50SW5Eb2MubmFtZXNwYWNlVVJJID09ICdodHRwOi8vd3d3LnczLm9yZy8xOTk5
L3hodG1sJyA/IEhUTUxFbGVtZW50IDogRWxlbWVudCkucHJvdG90eXBlOworCisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKHVucmVzb2x2ZWRFbGVtZW50SW5Eb2MuX19wcm90b19fLCBwcm90b3R5
cGUsCisgICAgICAgICAgICAgICAgJ1tbUHJvdG90eXBlXV0gaW50ZXJuYWwgc2xvdCBvZiB0aGUg
dW5yZXNvbHZlZCBjdXN0b20gZWxlbWVudCBtdXN0IGJlIHRoZSAnICsgcHJvdG90eXBlLnRvU3Ry
aW5nKCkgKyAnIHByb3RvdHlwZScpOworICAgICAgICAgICAgdmFyIHNvbWVDdXN0b21FbGVtZW50
ID0gY2xhc3MgZXh0ZW5kcyBIVE1MRWxlbWVudCB7fTsKKyAgICAgICAgICAgIGN1c3RvbUVsZW1l
bnRzLmRlZmluZShuYW1lLCBzb21lQ3VzdG9tRWxlbWVudCk7CisgICAgICAgICAgICBhc3NlcnRf
ZXF1YWxzKHVucmVzb2x2ZWRFbGVtZW50SW5Eb2MuX19wcm90b19fLCBwcm90b3R5cGUsICciZGVm
aW5lIiBtdXN0IG5vdCB1cGdyYWRlIGEgZGlzY29ubmVjdGVkIHVucmVzb2x2ZWQgY3VzdG9tIGVs
ZW1lbnRzJyk7CisgICAgICAgICAgICBkb2MuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHVu
cmVzb2x2ZWRFbGVtZW50SW5Eb2MpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh1bnJlc29s
dmVkRWxlbWVudEluRG9jLl9fcHJvdG9fXywgcHJvdG90eXBlLAorICAgICAgICAgICAgICAgICdJ
bnNlcnRpbmcgYW4gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQgd2l0aG91dCBhIGJyb3dzaW5nIGNv
bnRleHQgbXVzdCBub3QgZW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24n
KTsKKyAgICAgICAgfSk7CisgICAgfSwgJ0NyZWF0aW5nIGFuIGVsZW1lbnQgaW4gJyArIGRvY3Vt
ZW50TmFtZSArICcgYW5kIGluc2VydGluZyBpbnRvIHRoZSBkb2N1bWVudCBtdXN0IG5vdCBlbnF1
ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFjdGlvbicpOworCisgICAgcHJvbWlzZV90
ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgdmFyIG5hbWUgPSBnZW5lcmF0ZU5leHRDdXN0b21F
bGVtZW50TmFtZSgpOworICAgICAgICB2YXIgdW5yZXNvbHZlZEVsZW1lbnQgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KG5hbWUpOworCisgICAgICAgIGFzc2VydF9lcXVhbHModW5yZXNvbHZlZEVs
ZW1lbnQuX19wcm90b19fLCBIVE1MRWxlbWVudC5wcm90b3R5cGUsCisgICAgICAgICAgICAnW1tQ
cm90b3R5cGVdXSBpbnRlcm5hbCBzbG90IG9mIHRoZSB1bnJlc29sdmVkIGN1c3RvbSBlbGVtZW50
IG11c3QgYmUgdGhlIEhUTUxFbGVtZW50IHByb3RvdHlwZScpOworCisgICAgICAgIHJldHVybiBn
ZXREb2N1bWVudCgpLnRoZW4oZnVuY3Rpb24gKGRvYykgeworICAgICAgICAgICAgdmFyIHVucmVz
b2x2ZWRFbGVtZW50SW5Eb2MgPSBkb2MuY3JlYXRlRWxlbWVudChuYW1lKTsKKyAgICAgICAgICAg
IHZhciBwcm90b3R5cGUgPSAodW5yZXNvbHZlZEVsZW1lbnRJbkRvYy5uYW1lc3BhY2VVUkkgPT0g
J2h0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwnID8gSFRNTEVsZW1lbnQgOiBFbGVtZW50KS5w
cm90b3R5cGU7CisKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHModW5yZXNvbHZlZEVsZW1lbnRJ
bkRvYy5fX3Byb3RvX18sIHByb3RvdHlwZSwKKyAgICAgICAgICAgICAgICAnW1tQcm90b3R5cGVd
XSBpbnRlcm5hbCBzbG90IG9mIHRoZSB1bnJlc29sdmVkIGN1c3RvbSBlbGVtZW50IG11c3QgYmUg
dGhlICcgKyBwcm90b3R5cGUudG9TdHJpbmcoKSArICcgcHJvdG90eXBlJyk7CisgICAgICAgICAg
ICB2YXIgc29tZUN1c3RvbUVsZW1lbnQgPSBjbGFzcyBleHRlbmRzIEhUTUxFbGVtZW50IHt9Owor
ICAgICAgICAgICAgY3VzdG9tRWxlbWVudHMuZGVmaW5lKG5hbWUsIHNvbWVDdXN0b21FbGVtZW50
KTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHModW5yZXNvbHZlZEVsZW1lbnRJbkRvYy5fX3By
b3RvX18sIHByb3RvdHlwZSwgJyJkZWZpbmUiIG11c3Qgbm90IHVwZ3JhZGUgYSBkaXNjb25uZWN0
ZWQgdW5yZXNvbHZlZCBjdXN0b20gZWxlbWVudHMnKTsKKyAgICAgICAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQodW5yZXNvbHZlZEVsZW1lbnRJbkRvYyk7CisKKyAgICAgICAgICAgIGlm
ICh1bnJlc29sdmVkRWxlbWVudEluRG9jLm5hbWVzcGFjZVVSSSA9PSAnaHR0cDovL3d3dy53My5v
cmcvMTk5OS94aHRtbCcpIHsKKyAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHVucmVzb2x2
ZWRFbGVtZW50SW5Eb2MuX19wcm90b19fLCBzb21lQ3VzdG9tRWxlbWVudC5wcm90b3R5cGUsCisg
ICAgICAgICAgICAgICAgICAgICdJbnNlcnRpbmcgYW4gZWxlbWVudCBpbnRvIGEgZG9jdW1lbnQg
d2l0aCBhIGJyb3dzaW5nIGNvbnRleHQgbXVzdCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBn
cmFkZSByZWFjdGlvbicpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHVucmVzb2x2ZWRFbGVtZW50SW5Eb2MuX19wcm90b19fLCBwcm90b3R5cGUs
CisgICAgICAgICAgICAgICAgICAgICdMb29raW5nIHVwIGEgY3VzdG9tIGVsZW1lbnQgZGVmaW5p
dGlvbiBtdXN0IHJldHVybiBudWxsIGlmIHRoZSBlbGVtZW50IGlzIG5vdCBpbiB0aGUgSFRNTCBu
YW1lc3BhY2UnKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSk7CisgICAgfSwgJ0NyZWF0aW5n
IGFuIGVsZW1lbnQgaW4gJyArIGRvY3VtZW50TmFtZSArICcgYW5kIGFkb3B0aW5nIGJhY2sgdG8g
YSBkb2N1bWVudCB3aXRoIGJyb3dzaW5nIGNvbnRleHQgbXVzdCBlbnF1ZXVlIGEgY3VzdG9tIGVs
ZW1lbnQgdXBncmFkZSByZWFjdGlvbicpOworCit9KTsKKworRG9jdW1lbnRUeXBlcy5maWx0ZXIo
ZnVuY3Rpb24gKGVudHJ5KSB7IHJldHVybiAhZW50cnkuaXNPd25lciAmJiBlbnRyeS5oYXNCcm93
c2luZ0NvbnRleHQ7IH0pLmZvckVhY2goZnVuY3Rpb24gKGVudHJ5KSB7CisgICAgdmFyIGRvY3Vt
ZW50TmFtZSA9IGVudHJ5Lm5hbWU7CisgICAgdmFyIGdldERvY3VtZW50ID0gZW50cnkuY3JlYXRl
OworCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0dXJuIGdldERv
Y3VtZW50KCkudGhlbihmdW5jdGlvbiAoZG9jKSB7CisgICAgICAgICAgICBhc3NlcnRfZmFsc2Uo
ZG9jLmNyZWF0ZUVsZW1lbnQoJ3ByZWRlZmluZWQtY3VzdG9tLWVsZW1lbnQnKSBpbnN0YW5jZW9m
IFByZWRlZmluZWRDdXN0b21FbGVtZW50KTsKKyAgICAgICAgfSk7CisgICAgfSwgJ0NyZWF0aW5n
IGFuIGVsZW1lbnQgaW4gJyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBub3QgZW5xdWV1ZSBhIGN1
c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24gaWYgdGhlcmUgaXMgbm8gbWF0Y2hpbmcgZGVm
aW5pdGlvbicpOworCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9uICgpIHsKKyAgICAgICAgcmV0
dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAoZG9jKSB7CisgICAgICAgICAgICB2YXIg
ZG9jV2luZG93ID0gZG9jLmRlZmF1bHRWaWV3OworICAgICAgICAgICAgY2xhc3MgRGlzdGluY3RQ
cmVkZWZpbmVkQ3VzdG9tRWxlbWVudCBleHRlbmRzIGRvY1dpbmRvdy5IVE1MRWxlbWVudCB7IH07
CisgICAgICAgICAgICBkb2NXaW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCdwcmVkZWZpbmVk
LWN1c3RvbS1lbGVtZW50JywgRGlzdGluY3RQcmVkZWZpbmVkQ3VzdG9tRWxlbWVudCk7CisgICAg
ICAgICAgICBhc3NlcnRfdHJ1ZShkb2MuY3JlYXRlRWxlbWVudCgncHJlZGVmaW5lZC1jdXN0b20t
ZWxlbWVudCcpIGluc3RhbmNlb2YgRGlzdGluY3RQcmVkZWZpbmVkQ3VzdG9tRWxlbWVudCk7Cisg
ICAgICAgIH0pOworICAgIH0sICdDcmVhdGluZyBhbiBlbGVtZW50IGluICcgKyBkb2N1bWVudE5h
bWUgKyAnIG11c3QgZW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24gaWYg
dGhlcmUgaXMgYSBtYXRjaGluZyBkZWZpbml0aW9uJyk7CisKKyAgICBwcm9taXNlX3Rlc3QoZnVu
Y3Rpb24gKCkgeworICAgICAgICB2YXIgdW5yZXNvbHZlZEVsZW1lbnQgPSBkb2N1bWVudC5jcmVh
dGVFbGVtZW50KCd1bnJlc29sdmVkLWVsZW1lbnQnKTsKKyAgICAgICAgcmV0dXJuIGdldERvY3Vt
ZW50KCkudGhlbihmdW5jdGlvbiAoZG9jKSB7CisgICAgICAgICAgICB2YXIgZG9jV2luZG93ID0g
ZG9jLmRlZmF1bHRWaWV3OworICAgICAgICAgICAgY2xhc3MgVW5yZXNvbHZlZEVsZW1lbnQgZXh0
ZW5kcyBkb2NXaW5kb3cuSFRNTEVsZW1lbnQgeyB9OworICAgICAgICAgICAgdmFyIHVucmVzb2x2
ZWRFbGVtZW50SW5Eb2MgPSBkb2MuY3JlYXRlRWxlbWVudCgndW5yZXNvbHZlZC1lbGVtZW50Jyk7
CisKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHModW5yZXNvbHZlZEVsZW1lbnQuX19wcm90b19f
LCBIVE1MRWxlbWVudC5wcm90b3R5cGUpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh1bnJl
c29sdmVkRWxlbWVudEluRG9jLl9fcHJvdG9fXywgZG9jV2luZG93LkhUTUxFbGVtZW50LnByb3Rv
dHlwZSk7CisKKyAgICAgICAgICAgIGRvY1dpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ3Vu
cmVzb2x2ZWQtZWxlbWVudCcsIFVucmVzb2x2ZWRFbGVtZW50KTsKKworICAgICAgICAgICAgYXNz
ZXJ0X2VxdWFscyh1bnJlc29sdmVkRWxlbWVudC5fX3Byb3RvX18sIEhUTUxFbGVtZW50LnByb3Rv
dHlwZSk7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHVucmVzb2x2ZWRFbGVtZW50SW5Eb2Mu
X19wcm90b19fLCBkb2NXaW5kb3cuSFRNTEVsZW1lbnQucHJvdG90eXBlKTsKKworICAgICAgICB9
KTsKKyAgICB9LCAnImRlZmluZSIgaW4gJyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBub3QgZW5x
dWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24gb24gYSBkaXNjb25uZWN0ZWQg
dW5yZXNvbHZlZCBjdXN0b20gZWxlbWVudCcpOworCisgICAgcHJvbWlzZV90ZXN0KGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgdmFyIHVucmVzb2x2ZWRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgndW5yZXNvbHZlZC1lbGVtZW50Jyk7CisgICAgICAgIHJldHVybiBnZXREb2N1bWVudCgp
LnRoZW4oZnVuY3Rpb24gKGRvYykgeworICAgICAgICAgICAgdmFyIGRvY1dpbmRvdyA9IGRvYy5k
ZWZhdWx0VmlldzsKKyAgICAgICAgICAgIGNsYXNzIFVucmVzb2x2ZWRFbGVtZW50IGV4dGVuZHMg
ZG9jV2luZG93LkhUTUxFbGVtZW50IHsgfTsKKyAgICAgICAgICAgIHZhciB1bnJlc29sdmVkRWxl
bWVudEluRG9jID0gZG9jLmNyZWF0ZUVsZW1lbnQoJ3VucmVzb2x2ZWQtZWxlbWVudCcpOworCisg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHVucmVzb2x2ZWRFbGVtZW50Ll9fcHJvdG9fXywgSFRN
TEVsZW1lbnQucHJvdG90eXBlKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHModW5yZXNvbHZl
ZEVsZW1lbnRJbkRvYy5fX3Byb3RvX18sIGRvY1dpbmRvdy5IVE1MRWxlbWVudC5wcm90b3R5cGUp
OworCisgICAgICAgICAgICBkb2NXaW5kb3cuY3VzdG9tRWxlbWVudHMuZGVmaW5lKCd1bnJlc29s
dmVkLWVsZW1lbnQnLCBVbnJlc29sdmVkRWxlbWVudCk7CisgICAgICAgICAgICBkb2MuZG9jdW1l
bnRFbGVtZW50LmFwcGVuZENoaWxkKHVucmVzb2x2ZWRFbGVtZW50SW5Eb2MpOworCisgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHVucmVzb2x2ZWRFbGVtZW50Ll9fcHJvdG9fXywgSFRNTEVsZW1l
bnQucHJvdG90eXBlKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHModW5yZXNvbHZlZEVsZW1l
bnRJbkRvYy5fX3Byb3RvX18sIFVucmVzb2x2ZWRFbGVtZW50LnByb3RvdHlwZSk7CisgICAgICAg
IH0pOworICAgIH0sICdJbnNlcnRpbmcgYW4gdW5yZXNvbHZlZCBjdXN0b20gZWxlbWVudCBpbnRv
ICcgKyBkb2N1bWVudE5hbWUgKyAnIG11c3QgZW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3Jh
ZGUgcmVhY3Rpb24nKTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAg
IHZhciB1bnJlc29sdmVkRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3VucmVzb2x2
ZWQtZWxlbWVudCcpOworICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQoKS50aGVuKGZ1bmN0aW9u
IChkb2MpIHsKKyAgICAgICAgICAgIHZhciBkb2NXaW5kb3cgPSBkb2MuZGVmYXVsdFZpZXc7Cisg
ICAgICAgICAgICBjbGFzcyBVbnJlc29sdmVkRWxlbWVudCBleHRlbmRzIGRvY1dpbmRvdy5IVE1M
RWxlbWVudCB7IH07CisgICAgICAgICAgICB2YXIgdW5yZXNvbHZlZEVsZW1lbnRJbkRvYyA9IGRv
Yy5jcmVhdGVFbGVtZW50KCd1bnJlc29sdmVkLWVsZW1lbnQnKTsKKyAgICAgICAgICAgIGRvYy5k
b2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQodW5yZXNvbHZlZEVsZW1lbnRJbkRvYyk7CisKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHModW5yZXNvbHZlZEVsZW1lbnQuX19wcm90b19fLCBIVE1M
RWxlbWVudC5wcm90b3R5cGUpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyh1bnJlc29sdmVk
RWxlbWVudEluRG9jLl9fcHJvdG9fXywgZG9jV2luZG93LkhUTUxFbGVtZW50LnByb3RvdHlwZSk7
CisKKyAgICAgICAgICAgIGRvY1dpbmRvdy5jdXN0b21FbGVtZW50cy5kZWZpbmUoJ3VucmVzb2x2
ZWQtZWxlbWVudCcsIFVucmVzb2x2ZWRFbGVtZW50KTsKKworICAgICAgICAgICAgYXNzZXJ0X2Vx
dWFscyh1bnJlc29sdmVkRWxlbWVudC5fX3Byb3RvX18sIEhUTUxFbGVtZW50LnByb3RvdHlwZSk7
CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHVucmVzb2x2ZWRFbGVtZW50SW5Eb2MuX19wcm90
b19fLCBVbnJlc29sdmVkRWxlbWVudC5wcm90b3R5cGUpOworICAgICAgICB9KTsKKyAgICB9LCAn
ImRlZmluZSIgaW4gJyArIGRvY3VtZW50TmFtZSArICcgbXVzdCBlbnF1ZXVlIGEgY3VzdG9tIGVs
ZW1lbnQgdXBncmFkZSByZWFjdGlvbiBvbiBhIGNvbm5lY3RlZCB1bnJlc29sdmVkIGN1c3RvbSBl
bGVtZW50Jyk7CisKKyAgICBwcm9taXNlX3Rlc3QoZnVuY3Rpb24gKCkgeworICAgICAgICB2YXIg
dW5yZXNvbHZlZEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd1bnJlc29sdmVkLWVs
ZW1lbnQnKTsKKyAgICAgICAgcmV0dXJuIGdldERvY3VtZW50KCkudGhlbihmdW5jdGlvbiAoZG9j
KSB7CisgICAgICAgICAgICB2YXIgZG9jV2luZG93ID0gZG9jLmRlZmF1bHRWaWV3OworICAgICAg
ICAgICAgY2xhc3MgVW5yZXNvbHZlZEVsZW1lbnQgZXh0ZW5kcyBkb2NXaW5kb3cuSFRNTEVsZW1l
bnQgeyB9OworICAgICAgICAgICAgYXNzZXJ0X2ZhbHNlKHVucmVzb2x2ZWRFbGVtZW50IGluc3Rh
bmNlb2YgVW5yZXNvbHZlZEVsZW1lbnQpOworICAgICAgICAgICAgZG9jV2luZG93LmN1c3RvbUVs
ZW1lbnRzLmRlZmluZSgndW5yZXNvbHZlZC1lbGVtZW50JywgVW5yZXNvbHZlZEVsZW1lbnQpOwor
ICAgICAgICAgICAgZG9jLmFkb3B0Tm9kZSh1bnJlc29sdmVkRWxlbWVudCk7CisgICAgICAgICAg
ICBhc3NlcnRfZmFsc2UodW5yZXNvbHZlZEVsZW1lbnQgaW5zdGFuY2VvZiBVbnJlc29sdmVkRWxl
bWVudCk7CisgICAgICAgIH0pOworICAgIH0sICdBZG9wdGluZyAoYW5kIGxlYXZpbmcgZGlzY29u
bmNldGVkKSBhbiB1bnJlc29sdmVkIGN1c3RvbSBlbGVtZW50IGludG8gJyArIGRvY3VtZW50TmFt
ZSArICcgbXVzdCBub3QgZW5xdWV1ZSBhIGN1c3RvbSBlbGVtZW50IHVwZ3JhZGUgcmVhY3Rpb24n
KTsKKworICAgIHByb21pc2VfdGVzdChmdW5jdGlvbiAoKSB7CisgICAgICAgIHZhciB1bnJlc29s
dmVkRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3VucmVzb2x2ZWQtZWxlbWVudCcp
OworICAgICAgICByZXR1cm4gZ2V0RG9jdW1lbnQoKS50aGVuKGZ1bmN0aW9uIChkb2MpIHsKKyAg
ICAgICAgICAgIHZhciBkb2NXaW5kb3cgPSBkb2MuZGVmYXVsdFZpZXc7CisgICAgICAgICAgICBj
bGFzcyBVbnJlc29sdmVkRWxlbWVudCBleHRlbmRzIGRvY1dpbmRvdy5IVE1MRWxlbWVudCB7IH07
CisgICAgICAgICAgICBhc3NlcnRfZmFsc2UodW5yZXNvbHZlZEVsZW1lbnQgaW5zdGFuY2VvZiBV
bnJlc29sdmVkRWxlbWVudCk7CisgICAgICAgICAgICBkb2NXaW5kb3cuY3VzdG9tRWxlbWVudHMu
ZGVmaW5lKCd1bnJlc29sdmVkLWVsZW1lbnQnLCBVbnJlc29sdmVkRWxlbWVudCk7CisgICAgICAg
ICAgICBkb2MuZG9jdW1lbnRFbGVtZW50LmFwcGVuZENoaWxkKHVucmVzb2x2ZWRFbGVtZW50KTsK
KyAgICAgICAgICAgIGFzc2VydF90cnVlKHVucmVzb2x2ZWRFbGVtZW50IGluc3RhbmNlb2YgVW5y
ZXNvbHZlZEVsZW1lbnQpOworICAgICAgICB9KTsKKyAgICB9LCAnQWRvcHRpbmcgYW5kIGluc2Vy
dGluZyBhbiB1bnJlc29sdmVkIGN1c3RvbSBlbGVtZW50IGludG8gJyArIGRvY3VtZW50TmFtZSAr
ICcgbXVzdCBlbnF1ZXVlIGEgY3VzdG9tIGVsZW1lbnQgdXBncmFkZSByZWFjdGlvbicpOworCit9
KTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMvZG9jdW1lbnQtdHlwZXMuanMgYi9MYXlv
dXRUZXN0cy9mYXN0L2N1c3RvbS1lbGVtZW50cy9yZXNvdXJjZXMvZG9jdW1lbnQtdHlwZXMuanMK
aW5kZXggNTc0OWJhZGM3Y2QwNGVhZTBiODJiZDM2MDAyZGM2NjhhM2E1MTY2OS4uNTUyODRkNWIx
MzJkMGE0NDAyNjYzZWMwNDk1NzFlNjE2OGM5YWJmZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9jdXN0b20tZWxlbWVudHMvcmVzb3VyY2VzL2RvY3VtZW50LXR5cGVzLmpzCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvY3VzdG9tLWVsZW1lbnRzL3Jlc291cmNlcy9kb2N1bWVudC10eXBlcy5q
cwpAQCAtMyw2ICszLDcgQEAgY29uc3QgRG9jdW1lbnRUeXBlcyA9IFsKICAgICAgICAgbmFtZTog
J2RvY3VtZW50JywKICAgICAgICAgY3JlYXRlOiBmdW5jdGlvbiAoKSB7IHJldHVybiBQcm9taXNl
LnJlc29sdmUoZG9jdW1lbnQpOyB9LAogICAgICAgICBpc093bmVyOiB0cnVlLAorICAgICAgICBo
YXNCcm93c2luZ0NvbnRleHQ6IHRydWUsCiAgICAgfSwKICAgICB7CiAgICAgICAgIG5hbWU6ICdk
b2N1bWVudCBvZiBhIHRlbXBsYXRlIGVsZW1lbnQnLApAQCAtMTQsNyArMTUsOCBAQCBjb25zdCBE
b2N1bWVudFR5cGVzID0gWwogICAgICAgICAgICAgICAgICAgICBkb2MuYXBwZW5kQ2hpbGQoZG9j
LmNyZWF0ZUVsZW1lbnQoJ2h0bWwnKSk7CiAgICAgICAgICAgICAgICAgcmVzb2x2ZShkb2MpOwog
ICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgaGFzQnJvd3Np
bmdDb250ZXh0OiBmYWxzZSwKICAgICB9LAogICAgIHsKICAgICAgICAgbmFtZTogJ25ldyBkb2N1
bWVudCcsCkBAIC0yNCw3ICsyNiw4IEBAIGNvbnN0IERvY3VtZW50VHlwZXMgPSBbCiAgICAgICAg
ICAgICAgICAgZG9jLmFwcGVuZENoaWxkKGRvYy5jcmVhdGVFbGVtZW50KCdodG1sJykpOwogICAg
ICAgICAgICAgICAgIHJlc29sdmUoZG9jKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICB9Cisg
ICAgICAgIH0sCisgICAgICAgIGhhc0Jyb3dzaW5nQ29udGV4dDogZmFsc2UsCiAgICAgfSwKICAg
ICB7CiAgICAgICAgIG5hbWU6ICdjbG9uZWQgZG9jdW1lbnQnLApAQCAtMzQsMTkgKzM3LDIyIEBA
IGNvbnN0IERvY3VtZW50VHlwZXMgPSBbCiAgICAgICAgICAgICAgICAgZG9jLmFwcGVuZENoaWxk
KGRvYy5jcmVhdGVFbGVtZW50KCdodG1sJykpOwogICAgICAgICAgICAgICAgIHJlc29sdmUoZG9j
KTsKICAgICAgICAgICAgIH0pOwotICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIGhhc0Jy
b3dzaW5nQ29udGV4dDogZmFsc2UsCiAgICAgfSwKICAgICB7CiAgICAgICAgIG5hbWU6ICdkb2N1
bWVudCBjcmVhdGVkIGJ5IGNyZWF0ZUhUTUxEb2N1bWVudCcsCiAgICAgICAgIGNyZWF0ZTogZnVu
Y3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShkb2N1bWVudC5p
bXBsZW1lbnRhdGlvbi5jcmVhdGVIVE1MRG9jdW1lbnQoKSk7Ci0gICAgICAgIH0KKyAgICAgICAg
fSwKKyAgICAgICAgaGFzQnJvd3NpbmdDb250ZXh0OiBmYWxzZSwKICAgICB9LAogICAgIHsKICAg
ICAgICAgbmFtZTogJ0hUTUwgZG9jdW1lbnQgY3JlYXRlZCBieSBjcmVhdGVEb2N1bWVudCcsCiAg
ICAgICAgIGNyZWF0ZTogZnVuY3Rpb24gKCkgewogICAgICAgICAgICAgcmV0dXJuIFByb21pc2Uu
cmVzb2x2ZShkb2N1bWVudC5pbXBsZW1lbnRhdGlvbi5jcmVhdGVEb2N1bWVudCgnaHR0cDovL3d3
dy53My5vcmcvMTk5OS94aHRtbCcsICdodG1sJywgbnVsbCkpOwotICAgICAgICB9CisgICAgICAg
IH0sCisgICAgICAgIGhhc0Jyb3dzaW5nQ29udGV4dDogZmFsc2UsCiAgICAgfSwKICAgICB7CiAg
ICAgICAgIG5hbWU6ICdkb2N1bWVudCBpbiBhbiBpZnJhbWUnLApAQCAtNTcsNyArNjMsOCBAQCBj
b25zdCBEb2N1bWVudFR5cGVzID0gWwogICAgICAgICAgICAgICAgIGlmcmFtZS5vbmVycm9yID0g
ZnVuY3Rpb24gKCkgeyByZWplY3QoJ0ZhaWxlZCB0byBsb2FkIGFuIGVtcHR5IGlmcmFtZScpOyB9
CiAgICAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChpZnJhbWUpOwogICAg
ICAgICAgICAgfSk7Ci0gICAgICAgIH0KKyAgICAgICAgfSwKKyAgICAgICAgaGFzQnJvd3NpbmdD
b250ZXh0OiB0cnVlLAogICAgIH0sCiAgICAgewogICAgICAgICBuYW1lOiAnSFRNTCBkb2N1bWVu
dCBmZXRjaGVkIGJ5IFhIUicsCkBAIC03MCw2ICs3Nyw3IEBAIGNvbnN0IERvY3VtZW50VHlwZXMg
PSBbCiAgICAgICAgICAgICAgICAgeGhyLm9uZXJyb3IgPSBmdW5jdGlvbiAoKSB7IHJlamVjdCgn
RmFpbGVkIHRvIGZldGNoIHRoZSBkb2N1bWVudCcpOyB9CiAgICAgICAgICAgICAgICAgeGhyLnNl
bmQoKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICB9CisgICAgICAgIH0sCisgICAgICAgIGhh
c0Jyb3dzaW5nQ29udGV4dDogZmFsc2UsCiAgICAgfQogXTsKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCg==
</data>
<flag name="review"
          id="311143"
          type_id="1"
          status="+"
          setter="ysuzuki"
    />
          </attachment>
      

    </bug>

</bugzilla>