<?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>117590</bug_id>
          
          <creation_ts>2013-06-13 06:43:20 -0700</creation_ts>
          <short_desc>Improve the reattaching process while applying the :hover style</short_desc>
          <delta_ts>2013-06-21 09:03:37 -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>CSS</component>
          <version>528+ (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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Radu Stavila">stavila</reporter>
          <assigned_to name="Radu Stavila">stavila</assigned_to>
          <cc>cmarcelo</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>kangil.han</cc>
    
    <cc>WebkitBugTracker</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>900003</commentid>
    <comment_count>0</comment_count>
    <who name="Radu Stavila">stavila</who>
    <bug_when>2013-06-13 06:43:20 -0700</bug_when>
    <thetext>Improve the reattaching process while applying the :hover style. See https://chromiumcodereview.appspot.com/16951003/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902484</commentid>
    <comment_count>1</comment_count>
      <attachid>205160</attachid>
    <who name="Radu Stavila">stavila</who>
    <bug_when>2013-06-21 02:34:15 -0700</bug_when>
    <thetext>Created attachment 205160
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902486</commentid>
    <comment_count>2</comment_count>
      <attachid>205162</attachid>
    <who name="Radu Stavila">stavila</who>
    <bug_when>2013-06-21 02:38:30 -0700</bug_when>
    <thetext>Created attachment 205162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902562</commentid>
    <comment_count>3</comment_count>
      <attachid>205162</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2013-06-21 08:47:41 -0700</bug_when>
    <thetext>Comment on attachment 205162
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902572</commentid>
    <comment_count>4</comment_count>
      <attachid>205162</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-21 09:03:34 -0700</bug_when>
    <thetext>Comment on attachment 205162
Patch

Clearing flags on attachment: 205162

Committed r151839: &lt;http://trac.webkit.org/changeset/151839&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>902573</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-06-21 09:03:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205160</attachid>
            <date>2013-06-21 02:34:15 -0700</date>
            <delta_ts>2013-06-21 02:38:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>117590.patch</filename>
            <type>text/plain</type>
            <size>25871</size>
            <attacher name="Radu Stavila">stavila</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNDMwZmI1Li5jYWM2YjdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTMtMDYt
MjEgIFJhZHUgU3RhdmlsYSAgPHN0YXZpbGFAYWRvYmUuY29tPgorCisgICAgICAgIEltcHJvdmUg
dGhlIHJlYXR0YWNoaW5nIHByb2Nlc3Mgd2hpbGUgYXBwbHlpbmcgdGhlIDpob3ZlciBzdHlsZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3NTkwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZWQgaG92
ZXItZGlzcGxheS1ibG9jay1pbmxpbmUuaHRtbCBhbmQgaG92ZXItZGlzcGxheS1ibG9jay1ub25l
Lmh0bWwgZnJvbSBmYXN0L3JlZ2lvbnMgdG8gZmFzdC9jc3MuCisgICAgICAgIFVwZGF0ZWQgaG92
ZXItZGlzcGxheS1ibG9jay1ub25lLmh0bWwgYW5kIGhvdmVyLXNpbmdsZS1mbG93LWludG8tb3Ro
ZXIuaHRtbCB0byBlbnN1cmUgdGhlIG91dGNvbWUgd29uJ3QgYmUgYWZmZWN0ZWQgYnkgdGhlIG1h
Y2hpbmUncyBzcGVlZC4KKyAgICAgICAgVXBkYXRlZCBpbnB1dC1maWxlLXJlLXJlbmRlci5odG1s
IHRvIHN0b3AgaXQgZnJvbSBmYWlsaW5nIG9uIHdpbmRvd3MgYW5kIGxpbnV4IG1hY2hpbmVzIChh
IG1vcmUgZGV0YWlsZWQgZGVzY3JpcHRpb24gY2FuIGJlIGZvdW5kIGluc2lkZSB0aGUgdGVzdCBp
dHNlbGYpLgorCisgICAgICAgICogZmFzdC9jc3MvaG92ZXItZGlzcGxheS1ibG9jay1pbmxpbmUt
ZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2hvdmVy
LWRpc3BsYXktYmxvY2staW5saW5lLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2Nzcy9o
b3Zlci1kaXNwbGF5LWJsb2NrLWlubGluZS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL2hvdmVyLWRpc3BsYXktYmxvY2staW5saW5lLmh0bWwuCisgICAgICAgICog
ZmFzdC9jc3MvaG92ZXItZGlzcGxheS1ibG9jay1ub25lLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9ob3Zlci1kaXNwbGF5LWJsb2NrLW5vbmUtZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIGZhc3QvY3NzL2hvdmVyLWRpc3BsYXktYmxvY2stbm9uZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9ob3Zlci11cGRhdGUtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvY3NzL2hvdmVyLXVwZGF0ZS5odG1sOgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvZmlsZS9pbnB1dC1maWxlLXJlLXJlbmRlci5odG1sOgorICAgICAgICAqIGZhc3QvcmVn
aW9ucy9ob3Zlci1kaXNwbGF5LWJsb2NrLW5vbmUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBm
YXN0L3JlZ2lvbnMvaG92ZXItc2luZ2xlLWZsb3ctaW50by1vdGhlci5odG1sOgorCiAyMDEzLTA2
LTIwICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdW1dL
Ml0gUkVHUkVTU0lPTihyMTUxNzM3KTogZmFzdC9yZXBsYWNlZC93aWR0aDEwMHBlcmNlbnQtaW1h
Z2UuaHRtbCBmYWlscwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaG92ZXItZGlz
cGxheS1ibG9jay1pbmxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaG92
ZXItZGlzcGxheS1ibG9jay1pbmxpbmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmI2N2U2ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9ob3Zlci1kaXNwbGF5LWJsb2NrLWlubGluZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwyIEBACitQQVNTIFNldHRpbmcgZGlzcGxheSB0byBpbmxpbmUgb24gaG92ZXIgcHJvY2Vzc2Vk
IE9LLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9ob3Zlci1kaXNwbGF5LWJs
b2NrLWlubGluZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaG92ZXItZGlzcGxheS1ibG9j
ay1pbmxpbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjUyZWYw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaG92ZXItZGlzcGxheS1i
bG9jay1pbmxpbmUuaHRtbApAQCAtMCwwICsxLDc3IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
IGxhbmc9ImVuIj4KKzxoZWFkPgorCTx0aXRsZT5Td2l0Y2ggYmV0d2VlbiBkaXNwbGF5IGJsb2Nr
IGFuZCBpbmxpbmUgb24gOmhvdmVyPC90aXRsZT4KKwk8c3R5bGU+CisJCS5ib3ggeworCQkJd2lk
dGg6IDEwMHB4OworCQkJaGVpZ2h0OiAxMDBweDsKKwkJfQorCQkjZHVtbXkgeworCQkJYmFja2dy
b3VuZC1jb2xvcjogYmxhY2s7CisJCX0KKwkJI2hvdmVyVGVzdCB7CisJCQlib3JkZXI6IDVweCBz
b2xpZCBncmVlbjsKKwkJCWJvcmRlci1sZWZ0OiAxMDBweCBzb2xpZCBncmVlbjsKKwkJCWNvbG9y
OiBibGFjazsKKwkJCWRpc3BsYXk6IGJsb2NrOworCQl9CisJCSNob3ZlclRlc3Q6aG92ZXIgewor
CQkJYm9yZGVyLWNvbG9yOiBkYXJrcmVkOworCQkJZGlzcGxheTogaW5saW5lOworCQl9CisJCSNh
ZnRlcl9ob3ZlclRlc3QgeworCQkJYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKwkJCWNvbG9yOiB3
aGl0ZTsKKwkJCXBhZGRpbmc6IDEwcHg7CisJCX0KKwk8L3N0eWxlPgorCisJPHNjcmlwdCBzcmM9
Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKwlpZiAod2luZG93LnRlc3RSdW5uZXIpCisJ
CXRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisJZnVuY3Rpb24gYmVnaW5UZXN0KCkgewor
CQlpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisJCQl2YXIgaG92ZXJUZXN0ICA9IGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoIiNob3ZlclRlc3QiKTsKKworCQkJLy8gbW92ZSBtb3VzZSBvbiB0aGUg
aG92ZXIgdGVzdCBvYmplY3QKKwkJCWV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGhvdmVyVGVzdC5v
ZmZzZXRMZWZ0ICsgNTAsIGhvdmVyVGVzdC5vZmZzZXRUb3AgKyAxMCk7CisJCQlldmVudFNlbmRl
ci5tb3VzZURvd24oMCk7CisKKwkJCXNldFRpbWVvdXQocmVsZWFzZSwgMCk7CisJCX0KKwl9CisK
KwlmdW5jdGlvbiByZWxlYXNlKCkgeworCQlpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisJCQl2
YXIgaG92ZXJUZXN0ICA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNob3ZlclRlc3QiKTsKKwkJ
CXZhciBkaXNwbGF5TW9kZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGhvdmVyVGVzdCkuZ2V0
UHJvcGVydHlWYWx1ZSgiZGlzcGxheSIpOworCisJCQlpZiAoZGlzcGxheU1vZGUgPT0gImlubGlu
ZSIpCisJCQkJdGVzdFBhc3NlZCgiU2V0dGluZyBkaXNwbGF5IHRvIGlubGluZSBvbiBob3ZlciBw
cm9jZXNzZWQgT0suIik7CisJCQllbHNlCisJCQkJdGVzdEZhaWxlZCgiU2V0dGluZyBkaXNwbGF5
IHRvIGlubGluZSBvbiBob3ZlciBGQUlMRUQuIiArICIgKGV4cGVjdGVkICdpbmxpbmUnLCBnb3Qg
JyIgKyBkaXNwbGF5TW9kZSArICInKSIpOworCisJCQl2YXIgZWxlbWVudHNUb0hpZGUgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYm94Iik7CisJCQlmb3IgKHZhciBpPTA7IGk8ZWxlbWVu
dHNUb0hpZGUubGVuZ3RoOyBpKyspCisJCQkJZWxlbWVudHNUb0hpZGVbaV0uc3R5bGUudmlzaWJp
bGl0eSA9ICJoaWRkZW4iOworCisJICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKDApOworCisJ
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisJCQkJc2V0VGltZW91dCgidGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCkiLCAwKTsKKwkJfQorCX0KKworPC9zY3JpcHQ+CisKKzxib2R5IG9ubG9h
ZD0iYmVnaW5UZXN0KCkiPgorCTxkaXYgaWQ9ImR1bW15IiBjbGFzcz0iYm94Ij48L2Rpdj4KKwk8
ZGl2IGlkPSJob3ZlclRlc3QiIGNsYXNzPSJib3giPldoZW4gaG92ZXJlZCwgdGhpcyBib3gncyBk
aXNwbGF5IHdpbGwgc3dpdGNoIGZyb20gPGI+YmxvY2s8L2I+IHRvIDxiPmlubGluZTwvYj48L2Rp
dj4KKwk8ZGl2IGlkPSJhZnRlcl9ob3ZlclRlc3QiIGNsYXNzPSJib3giPlRoaXMgaXMgaGVyZSB0
byBzaG93IHRoZSBsYXlvdXQgYmVpbmcgcmVjb21wdXRlZDwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL2hvdmVyLWRpc3BsYXktYmxvY2stbm9uZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9ob3Zlci1kaXNwbGF5LWJsb2NrLW5vbmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiYjNlMmYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9ob3Zlci1kaXNwbGF5LWJsb2NrLW5vbmUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMiBAQAorUEFTUyBTZXR0aW5nIGRpc3BsYXkgdG8gbm9uZSBvbiBob3ZlciBw
cm9jZXNzZWQgT0suCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2hvdmVyLWRp
c3BsYXktYmxvY2stbm9uZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaG92ZXItZGlzcGxh
eS1ibG9jay1ub25lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDEw
OTI4OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2hvdmVyLWRpc3Bs
YXktYmxvY2stbm9uZS5odG1sCkBAIC0wLDAgKzEsODMgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0
bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisJPHRpdGxlPlN3aXRjaCBiZXR3ZWVuIGRpc3BsYXkgYmxv
Y2sgYW5kIG5vbmUgb24gOmhvdmVyPC90aXRsZT4KKwk8c3R5bGU+CisJCS5ib3ggeworCQkJd2lk
dGg6IDEwMHB4OworCQkJaGVpZ2h0OiAxMDBweDsKKwkJfQorCQkjZHVtbXkgeworCQkJYmFja2dy
b3VuZC1jb2xvcjogYmxhY2s7CisJCX0KKwkJI2hvdmVyVGVzdCB7CisJCQlib3JkZXI6IDVweCBz
b2xpZCBncmVlbjsKKwkJCWJvcmRlci1sZWZ0OiAxMDBweCBzb2xpZCBncmVlbjsKKwkJCWNvbG9y
OiBibGFjazsKKwkJCWRpc3BsYXk6IGJsb2NrOworCQkJd2lkdGg6IDIzMHB4OworCQl9CisJCSNo
b3ZlclRlc3Q6aG92ZXIgeworCQkJYm9yZGVyLWNvbG9yOiBkYXJrcmVkOworCQkJZGlzcGxheTog
bm9uZTsKKwkJfQorCQkjYWZ0ZXJfaG92ZXJUZXN0IHsKKwkJCWJhY2tncm91bmQtY29sb3I6IGJs
dWU7CisJCQljb2xvcjogd2hpdGU7CisJCQlwYWRkaW5nOiAxMHB4OworCQl9CisJPC9zdHlsZT4K
KworCTxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorCis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisJZnVuY3Rpb24g
ZWxlbWVudEhvdmVyZWQoKSB7CisJCWlmICh3aW5kb3cudGVzdFJ1bm5lcikKKwkJCWRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJob3ZlclRlc3QiKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOworCX0K
Kzwvc2NyaXB0PgorCis8Ym9keT4KKwk8ZGl2IGlkPSJkdW1teSIgY2xhc3M9ImJveCI+PC9kaXY+
CisJPGRpdiBpZD0iaG92ZXJUZXN0IiBjbGFzcz0iYm94IiBvbm1vdXNlb3Zlcj0iZWxlbWVudEhv
dmVyZWQoKSI+V2hlbiBob3ZlcmVkLCB0aGlzIGJveCdzIGRpc3BsYXkgd2lsbCBzd2l0Y2ggZnJv
bSA8Yj5ibG9jazwvYj4gdG8gPGI+bm9uZTwvYj4gKGNsaWNrIG9uIGl0IGFuZCBrZWVwIHRoZSBt
b3VzZSBidXR0b24gcHVzaGVkIHRvIGF2b2lkIGZsaWNrZXIgYW5kIGdldCBhIG1vcmUgY2xlYXIg
dmlldyk8L2Rpdj4KKwk8ZGl2IGlkPSJhZnRlcl9ob3ZlclRlc3QiIGNsYXNzPSJib3giPlRoaXMg
aXMgaGVyZSB0byBzaG93IHRoZSBsYXlvdXQgYmVpbmcgcmVjb21wdXRlZDwvZGl2PgorCisJPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCQlpZiAod2luZG93LnRlc3RSdW5uZXIpCisJ
CQl0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworCQlmdW5jdGlvbiBiZWdpblRlc3QoKSB7
CisJCQlpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisJCQkJdmFyIGhvdmVyVGVzdCAgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiaG92ZXJUZXN0Iik7CisKKwkJCQkvLyBtb3ZlIG1vdXNlIG9u
IHRoZSBob3ZlciB0ZXN0IG9iamVjdAorCQkJCWV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGhvdmVy
VGVzdC5vZmZzZXRMZWZ0ICsgNTAsIGhvdmVyVGVzdC5vZmZzZXRUb3AgKyAxMCk7CisKKwkJCQly
ZWxlYXNlKCk7CisJCQl9CisJCX0KKworCQlmdW5jdGlvbiByZWxlYXNlKCkgeworCQkJaWYgKHdp
bmRvdy5ldmVudFNlbmRlcikgeworCQkJCXZhciBob3ZlclRlc3QgID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImhvdmVyVGVzdCIpOworCQkJCXZhciBkaXNwbGF5TW9kZSA9IHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGhvdmVyVGVzdCkuZ2V0UHJvcGVydHlWYWx1ZSgiZGlzcGxheSIpOworCisJ
CQkJaWYgKGRpc3BsYXlNb2RlID09ICJub25lIikKKwkJCQkJdGVzdFBhc3NlZCgiU2V0dGluZyBk
aXNwbGF5IHRvIG5vbmUgb24gaG92ZXIgcHJvY2Vzc2VkIE9LLiIpOworCQkJCWVsc2UKKwkJCQkJ
dGVzdEZhaWxlZCgiU2V0dGluZyBkaXNwbGF5IHRvIG5vbmUgb24gaG92ZXIgRkFJTEVELiIgKyAi
IChleHBlY3RlZCAnbm9uZScsIGdvdCAnIiArIGRpc3BsYXlNb2RlICsgIicpIik7CisKKwkJCQl2
YXIgZWxlbWVudHNUb0hpZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdib3gn
KTsKKwkJCQlmb3IgKHZhciBlbGVtZW50LCBpID0gMDsgZWxlbWVudCA9IGVsZW1lbnRzVG9IaWRl
W2ldOyBpKyspCisJCQkJICAgIGVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwor
CisJCQkJaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorCQkJCQl0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKKwkJCX0KKwkJfQorCisJCWJlZ2luVGVzdCgpOworCTwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2hvdmVyLXVwZGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9ob3Zlci11cGRhdGUtZXhwZWN0ZWQudHh0CmluZGV4IDE0NTgyYmMuLjc1NDE5ZTYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2hvdmVyLXVwZGF0ZS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaG92ZXItdXBkYXRlLWV4cGVjdGVkLnR4dApAQCAtNSw0
ICs1LDUgQEAgVG8gcnVuIG1hbnVhbGx5LCBtb3ZlIHlvdXIgbW91c2Ugb3ZlciB0aGUgYmxhY2sg
Ym94LiBZb3Ugc2hvdWxkIHNlZSBhIGdyZWVuIGJveC4KIE9ubHkgZ3JlZW4gbm93CiBIb3ZlciBj
b2xvciBiZWZvcmUgdGVzdDogcmdiKDI1NSwgMjU1LCAwKQogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYicpLCBudWxsKS5iYWNrZ3JvdW5kQ29s
b3IgaXMgInJnYigwLCAxMjgsIDApIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnYScpLCBudWxsKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigw
LCAxMjgsIDApIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9ob3Zlci11cGRh
dGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2hvdmVyLXVwZGF0ZS5odG1sCmluZGV4IGQ5
NDViNzUuLjkwYTZhNDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2hvdmVyLXVw
ZGF0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2hvdmVyLXVwZGF0ZS5odG1sCkBA
IC0yOSw2ICsyOSw3IEBAIGZ1bmN0aW9uIGZpbmlzaCgpCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnYicpLCBudWxsKS5iYWNrZ3JvdW5kQ29sb3IiLCBleHBlY3Rl
ZEJhY2tncm91bmRDb2xvcik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYScpLCBudWxsKS5iYWNrZ3Jv
dW5kQ29sb3IiLCBleHBlY3RlZEJhY2tncm91bmRDb2xvcik7CiAKICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCiAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtcmUtcmVuZGVyLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpbGUvaW5wdXQtZmlsZS1yZS1yZW5kZXIuaHRtbAppbmRl
eCBkMTFlYThlLi4zMzMwZjgxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zp
bGUvaW5wdXQtZmlsZS1yZS1yZW5kZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2ZpbGUvaW5wdXQtZmlsZS1yZS1yZW5kZXIuaHRtbApAQCAtMTYsNiArMTYsMTMgQEAgZnVuY3Rp
b24gc3RhcnRUZXN0KCkKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxMCwgMTApOwogICAg
IGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKIAorICAgIC8vIE1vdmUgdGhlIG1vdXNlIGF3YXkgYmVm
b3JlIG1vdmluZyBvbi4gVGhpcyBpcyBkb25lIGJlY2F1c2UgbGFuZGluZyB0aGUgcGF0Y2ggZm9y
IGJ1ZyAyNDkzMjgKKyAgICAvLyB3b3VsZCBjYXVzZSB0aGlzIHRlc3QgdG8gZmFpbC4gVGhhdCBw
YXRjaCBmaXhlcyBhIGhvdmVyIHByb2JsZW0gd2hpY2ggY2F1c2VzIHRoaXMgdGVzdAorICAgIC8v
IHRvIGFjdHVhbGx5IHBlcmZvcm0gY29ycmVjdGx5IChhZnRlciBzd2l0Y2hpbmcgYmFjayB0byBk
aXNwbGF5OiBpbmxpbmUtYmxvY2ssIHRoZSBzdHlsZSBvZiAKKyAgICAvLyB0aGUgZmlsZSBjb250
cm9sIHdvdWxkIGJlICdob3ZlcmVkJywgc2luY2UgaXQncyB1bmRlciB0aGUgbW91c2UpLiBIb3dl
dmVyLCB0aGUgJ2V4cGVjdGVkJworICAgIC8vIFBORyBmaWxlcyB3ZXJlIGNyZWF0ZWQgd2hlbiB0
aGlzIHdhcyBub3Qgd29ya2luZyBwcm9wZXJseSwgYW5kIHRoZSBjb250cm9sIGlzIGluIGl0cyB1
bi1ob3ZlcmVkIHN0YXRlLgorICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDMwMCwgMzAwKTsK
KwogICAgIC8vIERlbGV0ZSB0aGUgcmVuZGVyZXIuCiAgICAgaW5wdXQuc3R5bGUuZGlzcGxheSA9
ICdub25lJzsKICAgICBpbnB1dC5vZmZzZXRXaWR0aDsgLy8gRm9yY2UgdG8gZG8gbGF5b3V0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvaG92ZXItZGlzcGxheS1ibG9jay1p
bmxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2hvdmVyLWRpc3Bs
YXktYmxvY2staW5saW5lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYjY3ZTZkZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvaG92ZXIt
ZGlzcGxheS1ibG9jay1pbmxpbmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiAr
MCwwIEBACi1QQVNTIFNldHRpbmcgZGlzcGxheSB0byBpbmxpbmUgb24gaG92ZXIgcHJvY2Vzc2Vk
IE9LLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvaG92ZXItZGlzcGxh
eS1ibG9jay1pbmxpbmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9ob3Zlci1kaXNw
bGF5LWJsb2NrLWlubGluZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMjUy
ZWYwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9ob3Zlci1kaXNwbGF5
LWJsb2NrLWlubGluZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzcgKzAsMCBAQAotPCFkb2N0
eXBlIGh0bWw+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLQk8dGl0bGU+U3dpdGNoIGJldHdl
ZW4gZGlzcGxheSBibG9jayBhbmQgaW5saW5lIG9uIDpob3ZlcjwvdGl0bGU+Ci0JPHN0eWxlPgot
CQkuYm94IHsKLQkJCXdpZHRoOiAxMDBweDsKLQkJCWhlaWdodDogMTAwcHg7Ci0JCX0KLQkJI2R1
bW15IHsKLQkJCWJhY2tncm91bmQtY29sb3I6IGJsYWNrOwotCQl9Ci0JCSNob3ZlclRlc3Qgewot
CQkJYm9yZGVyOiA1cHggc29saWQgZ3JlZW47Ci0JCQlib3JkZXItbGVmdDogMTAwcHggc29saWQg
Z3JlZW47Ci0JCQljb2xvcjogYmxhY2s7Ci0JCQlkaXNwbGF5OiBibG9jazsKLQkJfQotCQkjaG92
ZXJUZXN0OmhvdmVyIHsKLQkJCWJvcmRlci1jb2xvcjogZGFya3JlZDsKLQkJCWRpc3BsYXk6IGlu
bGluZTsKLQkJfQotCQkjYWZ0ZXJfaG92ZXJUZXN0IHsKLQkJCWJhY2tncm91bmQtY29sb3I6IGJs
dWU7Ci0JCQljb2xvcjogd2hpdGU7Ci0JCQlwYWRkaW5nOiAxMHB4OwotCQl9Ci0JPC9zdHlsZT4K
LQotCTxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPC9oZWFkPgotCi08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0JaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotCQl0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQotCWZ1bmN0aW9u
IGJlZ2luVGVzdCgpIHsKLQkJaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotCQkJdmFyIGhvdmVy
VGVzdCAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaG92ZXJUZXN0Iik7Ci0KLQkJCS8vIG1v
dmUgbW91c2Ugb24gdGhlIGhvdmVyIHRlc3Qgb2JqZWN0Ci0JCQlldmVudFNlbmRlci5tb3VzZU1v
dmVUbyhob3ZlclRlc3Qub2Zmc2V0TGVmdCArIDUwLCBob3ZlclRlc3Qub2Zmc2V0VG9wICsgMTAp
OwotCQkJZXZlbnRTZW5kZXIubW91c2VEb3duKDApOwotCi0JCQlzZXRUaW1lb3V0KHJlbGVhc2Us
IDApOwotCQl9Ci0JfQotCi0JZnVuY3Rpb24gcmVsZWFzZSgpIHsKLQkJaWYgKHdpbmRvdy5ldmVu
dFNlbmRlcikgewotCQkJdmFyIGhvdmVyVGVzdCAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIj
aG92ZXJUZXN0Iik7Ci0JCQl2YXIgZGlzcGxheU1vZGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShob3ZlclRlc3QpLmdldFByb3BlcnR5VmFsdWUoImRpc3BsYXkiKTsKLQotCQkJaWYgKGRpc3Bs
YXlNb2RlID09ICJpbmxpbmUiKQotCQkJCXRlc3RQYXNzZWQoIlNldHRpbmcgZGlzcGxheSB0byBp
bmxpbmUgb24gaG92ZXIgcHJvY2Vzc2VkIE9LLiIpOwotCQkJZWxzZQotCQkJCXRlc3RGYWlsZWQo
IlNldHRpbmcgZGlzcGxheSB0byBpbmxpbmUgb24gaG92ZXIgRkFJTEVELiIgKyAiIChleHBlY3Rl
ZCAnaW5saW5lJywgZ290ICciICsgZGlzcGxheU1vZGUgKyAiJykiKTsKLQotCQkJdmFyIGVsZW1l
bnRzVG9IaWRlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmJveCIpOwotCQkJZm9yICh2
YXIgaT0wOyBpPGVsZW1lbnRzVG9IaWRlLmxlbmd0aDsgaSsrKQotCQkJCWVsZW1lbnRzVG9IaWRl
W2ldLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKLQotCSAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VVcCgwKTsKLQotCSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotCQkJCXNldFRp
bWVvdXQoInRlc3RSdW5uZXIubm90aWZ5RG9uZSgpIiwgMCk7Ci0JCX0KLQl9Ci0KLTwvc2NyaXB0
PgotCi08Ym9keSBvbmxvYWQ9ImJlZ2luVGVzdCgpIj4KLQk8ZGl2IGlkPSJkdW1teSIgY2xhc3M9
ImJveCI+PC9kaXY+Ci0JPGRpdiBpZD0iaG92ZXJUZXN0IiBjbGFzcz0iYm94Ij5XaGVuIGhvdmVy
ZWQsIHRoaXMgYm94J3MgZGlzcGxheSB3aWxsIHN3aXRjaCBmcm9tIDxiPmJsb2NrPC9iPiB0byA8
Yj5pbmxpbmU8L2I+PC9kaXY+Ci0JPGRpdiBpZD0iYWZ0ZXJfaG92ZXJUZXN0IiBjbGFzcz0iYm94
Ij5UaGlzIGlzIGhlcmUgdG8gc2hvdyB0aGUgbGF5b3V0IGJlaW5nIHJlY29tcHV0ZWQ8L2Rpdj4K
LTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvaG92ZXItZGlzcGxheS1ibG9jay1ub25lLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9ob3Zlci1kaXNwbGF5LWJsb2NrLW5v
bmUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYmIzZTJmLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9ob3Zlci1kaXNwbGF5LWJsb2Nr
LW5vbmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1QQVNTIFNl
dHRpbmcgZGlzcGxheSB0byBub25lIG9uIGhvdmVyIHByb2Nlc3NlZCBPSy4KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2hvdmVyLWRpc3BsYXktYmxvY2stbm9uZS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2hvdmVyLWRpc3BsYXktYmxvY2stbm9uZS5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMWRmN2IzLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9ob3Zlci1kaXNwbGF5LWJsb2NrLW5vbmUuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWwgbGFuZz0i
ZW4iPgotPGhlYWQ+Ci0JPHRpdGxlPlN3aXRjaCBiZXR3ZWVuIGRpc3BsYXkgYmxvY2sgYW5kIG5v
bmUgb24gOmhvdmVyPC90aXRsZT4KLQk8c3R5bGU+Ci0JCS5ib3ggewotCQkJd2lkdGg6IDEwMHB4
OwotCQkJaGVpZ2h0OiAxMDBweDsKLQkJfQotCQkjZHVtbXkgewotCQkJYmFja2dyb3VuZC1jb2xv
cjogYmxhY2s7Ci0JCX0KLQkJI2hvdmVyVGVzdCB7Ci0JCQlib3JkZXI6IDVweCBzb2xpZCBncmVl
bjsKLQkJCWJvcmRlci1sZWZ0OiAxMDBweCBzb2xpZCBncmVlbjsKLQkJCWNvbG9yOiBibGFjazsK
LQkJCWRpc3BsYXk6IGJsb2NrOwotCQkJd2lkdGg6IDIzMHB4OwotCQl9Ci0JCSNob3ZlclRlc3Q6
aG92ZXIgewotCQkJYm9yZGVyLWNvbG9yOiBkYXJrcmVkOwotCQkJZGlzcGxheTogbm9uZTsKLQkJ
fQotCQkjYWZ0ZXJfaG92ZXJUZXN0IHsKLQkJCWJhY2tncm91bmQtY29sb3I6IGJsdWU7Ci0JCQlj
b2xvcjogd2hpdGU7Ci0JCQlwYWRkaW5nOiAxMHB4OwotCQl9Ci0JPC9zdHlsZT4KLQotCTxzY3Jp
cHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotCi08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0JaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotCQl0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQotCWZ1bmN0aW9uIGJlZ2luVGVz
dCgpIHsKLQkJaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotCQkJdmFyIGhvdmVyVGVzdCAgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaG92ZXJUZXN0Iik7Ci0KLQkJCS8vIG1vdmUgbW91c2Ug
b24gdGhlIGhvdmVyIHRlc3Qgb2JqZWN0Ci0JCQlldmVudFNlbmRlci5tb3VzZU1vdmVUbyhob3Zl
clRlc3Qub2Zmc2V0TGVmdCArIDUwLCBob3ZlclRlc3Qub2Zmc2V0VG9wICsgMTApOwotCi0JCQlz
ZXRUaW1lb3V0KHJlbGVhc2UsIDApOwotCQl9Ci0JfQotCi0JZnVuY3Rpb24gcmVsZWFzZSgpIHsK
LQkJaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotCQkJdmFyIGhvdmVyVGVzdCAgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCIjaG92ZXJUZXN0Iik7Ci0JCQl2YXIgZGlzcGxheU1vZGUgPSB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShob3ZlclRlc3QpLmdldFByb3BlcnR5VmFsdWUoImRpc3BsYXki
KTsKLQotCQkJaWYgKGRpc3BsYXlNb2RlID09ICJub25lIikKLQkJCQl0ZXN0UGFzc2VkKCJTZXR0
aW5nIGRpc3BsYXkgdG8gbm9uZSBvbiBob3ZlciBwcm9jZXNzZWQgT0suIik7Ci0JCQllbHNlCi0J
CQkJdGVzdEZhaWxlZCgiU2V0dGluZyBkaXNwbGF5IHRvIG5vbmUgb24gaG92ZXIgRkFJTEVELiIg
KyAiIChleHBlY3RlZCAnbm9uZScsIGdvdCAnIiArIGRpc3BsYXlNb2RlICsgIicpIik7Ci0KLQkJ
CXZhciBlbGVtZW50c1RvSGlkZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5ib3giKTsK
LQkJCWZvciAodmFyIGk9MDsgaTxlbGVtZW50c1RvSGlkZS5sZW5ndGg7IGkrKykKLQkJCQllbGVt
ZW50c1RvSGlkZVtpXS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7Ci0KLQkJCWlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLQkJCQlzZXRUaW1lb3V0KCJ0ZXN0UnVubmVyLm5vdGlmeURvbmUoKSIs
IDApOwotCQl9Ci0JfQotCi08L3NjcmlwdD4KLQotPGJvZHkgb25sb2FkPSJiZWdpblRlc3QoKSI+
Ci0JPGRpdiBpZD0iZHVtbXkiIGNsYXNzPSJib3giPjwvZGl2PgotCTxkaXYgaWQ9ImhvdmVyVGVz
dCIgY2xhc3M9ImJveCI+V2hlbiBob3ZlcmVkLCB0aGlzIGJveCdzIGRpc3BsYXkgd2lsbCBzd2l0
Y2ggZnJvbSA8Yj5ibG9jazwvYj4gdG8gPGI+bm9uZTwvYj4gKGNsaWNrIG9uIGl0IGFuZCBrZWVw
IHRoZSBtb3VzZSBidXR0b24gcHVzaGVkIHRvIGF2b2lkIGZsaWNrZXIgYW5kIGdldCBhIG1vcmUg
Y2xlYXIgdmlldyk8L2Rpdj4KLQk8ZGl2IGlkPSJhZnRlcl9ob3ZlclRlc3QiIGNsYXNzPSJib3gi
PlRoaXMgaXMgaGVyZSB0byBzaG93IHRoZSBsYXlvdXQgYmVpbmcgcmVjb21wdXRlZDwvZGl2Pgot
PC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9ob3Zlci1zaW5nbGUtZmxvdy1pbnRvLW90aGVyLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvaG92ZXItc2luZ2xlLWZsb3ctaW50by1vdGhl
ci5odG1sCmluZGV4IDY3OWQzMWUuLjk5NzE4ZWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9ob3Zlci1zaW5nbGUtZmxvdy1pbnRvLW90aGVyLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL2hvdmVyLXNpbmdsZS1mbG93LWludG8tb3RoZXIuaHRtbApAQCAt
NTksMTAgKzU5LDE4IEBACiAJfQogPC9zY3JpcHQ+CiAKKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij4KKwlmdW5jdGlvbiBlbGVtZW50SG92ZXJlZCgpIHsKKwkJaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKS5zdHlsZS53ZWJr
aXRGbG93SW50byA9ICJmbG93MiI7CisJfQorPC9zY3JpcHQ+CisKKwogPGJvZHkgb25sb2FkPSJi
ZWdpblRlc3QoKSI+CiAJPHA+V2hlbiBob3ZlcmluZyB0aGUgPHNwYW4gc3R5bGU9ImNvbG9yOmJs
dWUiPjxiPmJsdWUgYm94PC9iPjwvc3Bhbj4sIGl0IHNob3VsZCBtb3ZlIHRvIHRoZSA8c3BhbiBz
dHlsZT0iY29sb3I6ZGFya3JlZCI+PGI+c2Vjb25kIHJlZ2lvbjwvYj48L3NwYW4+IChpdCdzIDxi
PmZsb3ctaW50bzwvYj4gd2lsbCBjaGFuZ2UgdG8gdGhlIDJuZCB0aHJlYWQpPC9wPgogCTxkaXYg
aWQ9InJlZ2lvbjEiPjwvZGl2PgogCTxkaXYgaWQ9InJlZ2lvbjIiPjwvZGl2PgotCTxkaXYgaWQ9
ImNvbnRlbnQiIGNsYXNzPSJib3giPlRoaXMgYm94IGlzIGZsb3dlZCBpbnRvIHRoZSA8c3BhbiBz
dHlsZT0iY29sb3I6Z3JlZW4iPjxiPmZpcnN0IHJlZ2lvbjwvYj48L3NwYW4+IHdoZW4gaXQgaXMg
PGI+bm90PC9iPiBob3ZlcmVkIGFuZCBpbnRvIHRoZSA8c3BhbiBzdHlsZT0iY29sb3I6ZGFya3Jl
ZCI+PGI+c2Vjb25kIHJlZ2lvbjwvYj48L3NwYW4+IHdoZW4gaXQgPGI+aXM8L2I+PC9kaXY+CisJ
PGRpdiBpZD0iY29udGVudCIgY2xhc3M9ImJveCIgb25tb3VzZW92ZXI9ImVsZW1lbnRIb3ZlcmVk
KCkiPlRoaXMgYm94IGlzIGZsb3dlZCBpbnRvIHRoZSA8c3BhbiBzdHlsZT0iY29sb3I6Z3JlZW4i
PjxiPmZpcnN0IHJlZ2lvbjwvYj48L3NwYW4+IHdoZW4gaXQgaXMgPGI+bm90PC9iPiBob3ZlcmVk
IGFuZCBpbnRvIHRoZSA8c3BhbiBzdHlsZT0iY29sb3I6ZGFya3JlZCI+PGI+c2Vjb25kIHJlZ2lv
bjwvYj48L3NwYW4+IHdoZW4gaXQgPGI+aXM8L2I+PC9kaXY+CiA8L2JvZHk+CiA8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDUzOGRlNjUuLjQzOWZkMGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMy0wNi0yMSAgUmFkdSBTdGF2aWxhICA8
c3RhdmlsYUBhZG9iZS5jb20+CisKKyAgICAgICAgSW1wcm92ZSB0aGUgcmVhdHRhY2hpbmcgcHJv
Y2VzcyB3aGlsZSBhcHBseWluZyB0aGUgOmhvdmVyIHN0eWxlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTc1OTAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2VzIG1hZGU6CisgICAgICAgICAgICAt
IGNvbnRleHQgaXMgcHJvcGVybHkgcHJvcGFnYXRlZCB0byB0aGUgZWxlbWVudCdzIGNoaWxkcmVu
IGFuZCB0byBTaGFkb3cgRE9NIGVsZW1lbnRzLgorICAgICAgICAgICAgLSBjb250ZXh0IGlzIHBy
b3Blcmx5IHNldCBvbiB0aGUgbGF6eVJlYXR0YWNoIG1ldGhvZC4KKyAgICAgICAgICAgIC0gYW5v
dGhlciBoaXQtdGVzdGluZyBpcyB0cmlnZ2VyZWQgd2hlbiBuZWVkZWQuCisgICAgICAgICAgICAt
IHdoZW4gYSBob3ZlcmVkIGVsZW1lbnQgaXMgZGV0YWNoZWQsIGl0J3MgYW5jZXN0b3JzIGFyZSBh
bHNvIHJlbW92ZWQgZnJvbSB0aGUgaG92ZXJlZCBzdGF0ZS4KKworICAgICAgICBUZXN0czogZmFz
dC9jc3MvaG92ZXItZGlzcGxheS1ibG9jay1pbmxpbmUuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9jc3MvaG92ZXItZGlzcGxheS1ibG9jay1ub25lLmh0bWwKKworICAgICAgICAqIGRvbS9Db250
YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OmF0dGFjaCk6
CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpkZXRhY2gpOgorICAgICAgICAqIGRv
bS9Db250YWluZXJOb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjphdHRh
Y2hDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpkZXRhY2hDaGls
ZHJlbklmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OmRldGFjaENo
aWxkcmVuKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRh
dGVIb3ZlckFjdGl2ZVN0YXRlKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFbGVtZW50OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
ZGV0YWNoKToKKyAgICAgICAgKiBkb20vRWxlbWVudFNoYWRvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50U2hhZG93OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNo
YWRvdzo6ZGV0YWNoKToKKyAgICAgICAgKiBkb20vRWxlbWVudFNoYWRvdy5oOgorICAgICAgICAq
IGRvbS9Ob2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpsYXp5UmVhdHRhY2gpOgorCiAy
MDEzLTA2LTE4ICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
RUdSRVNTSU9OIChyMTUxNDUxKTogVGV4dCBub3QgdmVydGljYWxseSBjZW50ZXJlZCBjb3JyZWN0
bHkgb24gaWNsb3VkLmNvbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5l
ck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IDIx
MjYyM2MuLjQ3NTM4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJO
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTc4
OSwxMyArNzg5LDEzIEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6c2NoZWR1bGVTZXROZWVkc1N0eWxl
UmVjYWxjKFN0eWxlQ2hhbmdlVHlwZSBjaGFuZ2VUeXBlKQogCiB2b2lkIENvbnRhaW5lck5vZGU6
OmF0dGFjaChjb25zdCBBdHRhY2hDb250ZXh0JiBjb250ZXh0KQogewotICAgIGF0dGFjaENoaWxk
cmVuKCk7CisgICAgYXR0YWNoQ2hpbGRyZW4oY29udGV4dCk7CiAgICAgTm9kZTo6YXR0YWNoKGNv
bnRleHQpOwogfQogCiB2b2lkIENvbnRhaW5lck5vZGU6OmRldGFjaChjb25zdCBBdHRhY2hDb250
ZXh0JiBjb250ZXh0KQogewotICAgIGRldGFjaENoaWxkcmVuKCk7CisgICAgZGV0YWNoQ2hpbGRy
ZW4oY29udGV4dCk7CiAgICAgY2xlYXJDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKTsKICAgICBOb2Rl
OjpkZXRhY2goY29udGV4dCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29u
dGFpbmVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaAppbmRleCA3
MDUxN2YzLi41ZGE0NzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVy
Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKQEAgLTExOCwx
MCArMTE4LDEwIEBAIHB1YmxpYzoKICAgICAvLyBub2RlIHRoYXQgaXMgb2YgdGhlIHR5cGUgQ0RB
VEFfU0VDVElPTl9OT0RFLCBURVhUX05PREUgb3IgQ09NTUVOVF9OT0RFIGhhcyBjaGFuZ2VkIGl0
cyB2YWx1ZS4KICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY3JlYXRlZEJ5
UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdl
ID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDApOwogCi0gICAgdm9pZCBhdHRhY2hDaGlsZHJl
bigpOworICAgIHZvaWQgYXR0YWNoQ2hpbGRyZW4oY29uc3QgQXR0YWNoQ29udGV4dCYgPSBBdHRh
Y2hDb250ZXh0KCkpOwogICAgIHZvaWQgYXR0YWNoQ2hpbGRyZW5MYXppbHkoKTsKLSAgICB2b2lk
IGRldGFjaENoaWxkcmVuKCk7Ci0gICAgdm9pZCBkZXRhY2hDaGlsZHJlbklmTmVlZGVkKCk7Cisg
ICAgdm9pZCBkZXRhY2hDaGlsZHJlbihjb25zdCBBdHRhY2hDb250ZXh0JiA9IEF0dGFjaENvbnRl
eHQoKSk7CisgICAgdm9pZCBkZXRhY2hDaGlsZHJlbklmTmVlZGVkKGNvbnN0IEF0dGFjaENvbnRl
eHQmID0gQXR0YWNoQ29udGV4dCgpKTsKIAogICAgIHZvaWQgZGlzY29ubmVjdERlc2NlbmRhbnRG
cmFtZXMoKTsKIApAQCAtMTg0LDEyICsxODQsMTUgQEAgaW5saW5lIENvbnRhaW5lck5vZGU6OkNv
bnRhaW5lck5vZGUoRG9jdW1lbnQqIGRvY3VtZW50LCBDb25zdHJ1Y3Rpb25UeXBlIHR5cGUpCiB7
CiB9CiAKLWlubGluZSB2b2lkIENvbnRhaW5lck5vZGU6OmF0dGFjaENoaWxkcmVuKCkKK2lubGlu
ZSB2b2lkIENvbnRhaW5lck5vZGU6OmF0dGFjaENoaWxkcmVuKGNvbnN0IEF0dGFjaENvbnRleHQm
IGNvbnRleHQpCiB7CisgICAgQXR0YWNoQ29udGV4dCBjaGlsZHJlbkNvbnRleHQoY29udGV4dCk7
CisgICAgY2hpbGRyZW5Db250ZXh0LnJlc29sdmVkU3R5bGUgPSAwOworCiAgICAgZm9yIChOb2Rl
KiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5n
KCkpIHsKICAgICAgICAgQVNTRVJUKCFjaGlsZC0+YXR0YWNoZWQoKSB8fCBjaGlsZEF0dGFjaGVk
QWxsb3dlZFdoZW5BdHRhY2hpbmdDaGlsZHJlbih0aGlzKSk7CiAgICAgICAgIGlmICghY2hpbGQt
PmF0dGFjaGVkKCkpCi0gICAgICAgICAgICBjaGlsZC0+YXR0YWNoKCk7CisgICAgICAgICAgICBj
aGlsZC0+YXR0YWNoKGNoaWxkcmVuQ29udGV4dCk7CiAgICAgfQogfQogCkBAIC0yMDAsMTggKzIw
MywyNCBAQCBpbmxpbmUgdm9pZCBDb250YWluZXJOb2RlOjphdHRhY2hDaGlsZHJlbkxhemlseSgp
CiAgICAgICAgICAgICBjaGlsZC0+bGF6eUF0dGFjaCgpOwogfQogCi1pbmxpbmUgdm9pZCBDb250
YWluZXJOb2RlOjpkZXRhY2hDaGlsZHJlbklmTmVlZGVkKCkKK2lubGluZSB2b2lkIENvbnRhaW5l
ck5vZGU6OmRldGFjaENoaWxkcmVuSWZOZWVkZWQoY29uc3QgQXR0YWNoQ29udGV4dCYgY29udGV4
dCkKIHsKKyAgICBBdHRhY2hDb250ZXh0IGNoaWxkcmVuQ29udGV4dChjb250ZXh0KTsKKyAgICBj
aGlsZHJlbkNvbnRleHQucmVzb2x2ZWRTdHlsZSA9IDA7CisKICAgICBmb3IgKE5vZGUqIGNoaWxk
ID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewog
ICAgICAgICBpZiAoY2hpbGQtPmF0dGFjaGVkKCkpCi0gICAgICAgICAgICBjaGlsZC0+ZGV0YWNo
KCk7CisgICAgICAgICAgICBjaGlsZC0+ZGV0YWNoKGNoaWxkcmVuQ29udGV4dCk7CiAgICAgfQog
fQogCi1pbmxpbmUgdm9pZCBDb250YWluZXJOb2RlOjpkZXRhY2hDaGlsZHJlbigpCitpbmxpbmUg
dm9pZCBDb250YWluZXJOb2RlOjpkZXRhY2hDaGlsZHJlbihjb25zdCBBdHRhY2hDb250ZXh0JiBj
b250ZXh0KQogeworICAgIEF0dGFjaENvbnRleHQgY2hpbGRyZW5Db250ZXh0KGNvbnRleHQpOwor
ICAgIGNoaWxkcmVuQ29udGV4dC5yZXNvbHZlZFN0eWxlID0gMDsKKwogICAgIGZvciAoTm9kZSog
Y2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygp
KQotICAgICAgICBjaGlsZC0+ZGV0YWNoKCk7CisgICAgICAgIGNoaWxkLT5kZXRhY2goY2hpbGRy
ZW5Db250ZXh0KTsKIH0KIAogaW5saW5lIHVuc2lnbmVkIE5vZGU6OmNoaWxkTm9kZUNvdW50KCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDE2ZWQ1MDEuLjk5NDQ4MzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTgzNCw2ICsxODM0LDEyIEBAIHZvaWQgRG9jdW1lbnQ6
OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAgICB9CiAKICAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZFJlY2FsY3VsYXRlU3R5bGUoY29va2llKTsKKworICAgIC8vIEFz
IGEgcmVzdWx0IG9mIHRoZSBzdHlsZSByZWNhbGN1bGF0aW9uLCB0aGUgY3VycmVudGx5IGhvdmVy
ZWQgZWxlbWVudCBtaWdodCBoYXZlIGJlZW4KKyAgICAvLyBkZXRhY2hlZCAoZm9yIGV4YW1wbGUs
IGJ5IHNldHRpbmcgZGlzcGxheTpub25lIGluIHRoZSA6aG92ZXIgc3R5bGUpLCBzY2hlZHVsZSBh
bm90aGVyIG1vdXNlTW92ZSBldmVudAorICAgIC8vIHRvIGNoZWNrIGlmIGFueSBvdGhlciBlbGVt
ZW50cyBlbmRlZCB1cCB1bmRlciB0aGUgbW91c2UgcG9pbnRlciBkdWUgdG8gcmUtbGF5b3V0Lgor
ICAgIGlmIChtX2hvdmVyZWRFbGVtZW50ICYmICFtX2hvdmVyZWRFbGVtZW50LT5yZW5kZXJlcigp
ICYmIGZyYW1lKCkpCisgICAgICAgIGZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5kaXNwYXRjaEZh
a2VNb3VzZU1vdmVFdmVudFNvb24oKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6dXBkYXRlU3R5bGVJ
Zk5lZWRlZCgpCkBAIC01ODU5LDExICs1ODY1LDEzIEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUhv
dmVyQWN0aXZlU3RhdGUoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEVsZW1lbnQqIGlu
CiAKICAgICBpZiAob2xkSG92ZXJPYmogIT0gbmV3SG92ZXJPYmopIHsKICAgICAgICAgLy8gSWYg
dGhlIG9sZCBob3ZlcmVkIGVsZW1lbnQgaXMgbm90IG5pbCBidXQgaXQncyByZW5kZXJlciBpcywg
aXQgd2FzIHByb2JhYmx5IGRldGFjaGVkIGFzIHBhcnQgb2YgdGhlIDpob3ZlciBzdHlsZQotICAg
ICAgICAvLyAoZm9yIGluc3RhbmNlIGJ5IHNldHRpbmcgZGlzcGxheTpub25lIGluIHRoZSA6aG92
ZXIgcHNldWRvLWNsYXNzKS4gSW4gdGhpcyBjYXNlLCB0aGUgb2xkIGhvdmVyZWQgZWxlbWVudAor
ICAgICAgICAvLyAoZm9yIGluc3RhbmNlIGJ5IHNldHRpbmcgZGlzcGxheTpub25lIGluIHRoZSA6
aG92ZXIgcHNldWRvLWNsYXNzKS4gSW4gdGhpcyBjYXNlLCB0aGUgb2xkIGhvdmVyZWQgZWxlbWVu
dCAoYW5kIGl0cyBhbmNlc3RvcnMpCiAgICAgICAgIC8vIG11c3QgYmUgdXBkYXRlZCwgdG8gZW5z
dXJlIGl0J3Mgbm9ybWFsIHN0eWxlIGlzIHJlLWFwcGxpZWQuCiAgICAgICAgIGlmIChvbGRIb3Zl
cmVkRWxlbWVudCAmJiAhb2xkSG92ZXJPYmopIHsKLSAgICAgICAgICAgIGlmICghbXVzdEJlSW5B
Y3RpdmVDaGFpbiB8fCAob2xkSG92ZXJlZEVsZW1lbnQtPmlzRWxlbWVudE5vZGUoKSAmJiBvbGRI
b3ZlcmVkRWxlbWVudC0+aW5BY3RpdmVDaGFpbigpKSkKLSAgICAgICAgICAgICAgICBub2Rlc1Rv
UmVtb3ZlRnJvbUNoYWluLmFwcGVuZChvbGRIb3ZlcmVkRWxlbWVudCk7CisgICAgICAgICAgICBm
b3IgKE5vZGUqIG5vZGUgPSBvbGRIb3ZlcmVkRWxlbWVudC5nZXQoKTsgbm9kZTsgbm9kZSA9IG5v
ZGUtPnBhcmVudE5vZGUoKSkgeworICAgICAgICAgICAgICAgIGlmICghbXVzdEJlSW5BY3RpdmVD
aGFpbiB8fCAobm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+aW5BY3Rp
dmVDaGFpbigpKSkKKyAgICAgICAgICAgICAgICAgICAgbm9kZXNUb1JlbW92ZUZyb21DaGFpbi5h
cHBlbmQobm9kZSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICAvLyBUaGUg
b2xkIGhvdmVyIHBhdGggb25seSBuZWVkcyB0byBiZSBjbGVhcmVkIHVwIHRvIChhbmQgbm90IGlu
Y2x1ZGluZykgdGhlIGNvbW1vbiBhbmNlc3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA3
NzJiNDQ5Li45Y2U1NjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xNDQwLDcgKzE0NDAs
NyBAQCB2b2lkIEVsZW1lbnQ6OmF0dGFjaChjb25zdCBBdHRhY2hDb250ZXh0JiBjb250ZXh0KQog
ICAgIC8vIFdoZW4gYSBzaGFkb3cgcm9vdCBleGlzdHMsIGl0IGRvZXMgdGhlIHdvcmsgb2YgYXR0
YWNoaW5nIHRoZSBjaGlsZHJlbi4KICAgICBpZiAoRWxlbWVudFNoYWRvdyogc2hhZG93ID0gdGhp
cy0+c2hhZG93KCkpIHsKICAgICAgICAgcGFyZW50UHVzaGVyLnB1c2goKTsKLSAgICAgICAgc2hh
ZG93LT5hdHRhY2goKTsKKyAgICAgICAgc2hhZG93LT5hdHRhY2goY29udGV4dCk7CiAgICAgfSBl
bHNlIGlmIChmaXJzdENoaWxkKCkpCiAgICAgICAgIHBhcmVudFB1c2hlci5wdXNoKCk7CiAKQEAg
LTE0NzksOCArMTQ3OSw4IEBAIHZvaWQgRWxlbWVudDo6ZGV0YWNoKGNvbnN0IEF0dGFjaENvbnRl
eHQmIGNvbnRleHQpCiAgICAgfQogCiAgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHRo
aXMtPnNoYWRvdygpKSB7Ci0gICAgICAgIGRldGFjaENoaWxkcmVuSWZOZWVkZWQoKTsKLSAgICAg
ICAgc2hhZG93LT5kZXRhY2goKTsKKyAgICAgICAgZGV0YWNoQ2hpbGRyZW5JZk5lZWRlZChjb250
ZXh0KTsKKyAgICAgICAgc2hhZG93LT5kZXRhY2goY29udGV4dCk7CiAgICAgfQogCiAgICAgLy8g
RG8gbm90IHJlbW92ZSB0aGUgZWxlbWVudCdzIGhvdmVyZWQgYW5kIGFjdGl2ZSBzdGF0dXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmNwcAppbmRleCA4ODU5MjAzLi42ZjhlMzAzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuY3BwCkBAIC03NywyMSArNzcsMjcgQEAgdm9pZCBF
bGVtZW50U2hhZG93OjpyZW1vdmVTaGFkb3dSb290KCkKICAgICBtX2Rpc3RyaWJ1dG9yLmludmFs
aWRhdGVEaXN0cmlidXRpb24oc2hhZG93SG9zdCk7CiB9CiAKLXZvaWQgRWxlbWVudFNoYWRvdzo6
YXR0YWNoKCkKK3ZvaWQgRWxlbWVudFNoYWRvdzo6YXR0YWNoKGNvbnN0IE5vZGU6OkF0dGFjaENv
bnRleHQmIGNvbnRleHQpCiB7CiAgICAgQ29udGVudERpc3RyaWJ1dG9yOjplbnN1cmVEaXN0cmli
dXRpb24oc2hhZG93Um9vdCgpKTsKIAorICAgIE5vZGU6OkF0dGFjaENvbnRleHQgY2hpbGRyZW5D
b250ZXh0KGNvbnRleHQpOworICAgIGNoaWxkcmVuQ29udGV4dC5yZXNvbHZlZFN0eWxlID0gMDsK
KwogICAgIGlmIChTaGFkb3dSb290KiByb290ID0gc2hhZG93Um9vdCgpKSB7CiAgICAgICAgIGlm
ICghcm9vdC0+YXR0YWNoZWQoKSkKLSAgICAgICAgICAgIHJvb3QtPmF0dGFjaCgpOworICAgICAg
ICAgICAgcm9vdC0+YXR0YWNoKGNoaWxkcmVuQ29udGV4dCk7CiAgICAgfQogfQogCi12b2lkIEVs
ZW1lbnRTaGFkb3c6OmRldGFjaCgpCit2b2lkIEVsZW1lbnRTaGFkb3c6OmRldGFjaChjb25zdCBO
b2RlOjpBdHRhY2hDb250ZXh0JiBjb250ZXh0KQogeworICAgIE5vZGU6OkF0dGFjaENvbnRleHQg
Y2hpbGRyZW5Db250ZXh0KGNvbnRleHQpOworICAgIGNoaWxkcmVuQ29udGV4dC5yZXNvbHZlZFN0
eWxlID0gMDsKKwogICAgIGlmIChTaGFkb3dSb290KiByb290ID0gc2hhZG93Um9vdCgpKSB7CiAg
ICAgICAgIGlmIChyb290LT5hdHRhY2hlZCgpKQotICAgICAgICAgICAgcm9vdC0+ZGV0YWNoKCk7
CisgICAgICAgICAgICByb290LT5kZXRhY2goY2hpbGRyZW5Db250ZXh0KTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5oCmluZGV4IDNkNTA0ZTguLmRlMWIxYmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuaApAQCAtNTYsOCArNTYsOCBAQCBwdWJsaWM6CiAKICAg
ICBTaGFkb3dSb290KiBhZGRTaGFkb3dSb290KEVsZW1lbnQqIHNoYWRvd0hvc3QsIFNoYWRvd1Jv
b3Q6OlNoYWRvd1Jvb3RUeXBlKTsKIAotICAgIHZvaWQgYXR0YWNoKCk7Ci0gICAgdm9pZCBkZXRh
Y2goKTsKKyAgICB2b2lkIGF0dGFjaChjb25zdCBOb2RlOjpBdHRhY2hDb250ZXh0Jik7CisgICAg
dm9pZCBkZXRhY2goY29uc3QgTm9kZTo6QXR0YWNoQ29udGV4dCYpOwogCiAgICAgYm9vbCBjaGls
ZE5lZWRzU3R5bGVSZWNhbGMoKSBjb25zdDsKICAgICBib29sIG5lZWRzU3R5bGVSZWNhbGMoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oCmluZGV4IGE2NDEzMjAuLjkxNGIxZWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAt
ODMxLDggKzgzMSwxMSBAQCBpbmxpbmUgdm9pZCBOb2RlOjpyZWF0dGFjaElmQXR0YWNoZWQoY29u
c3QgQXR0YWNoQ29udGV4dCYgY29udGV4dCkKIAogaW5saW5lIHZvaWQgTm9kZTo6bGF6eVJlYXR0
YWNoKFNob3VsZFNldEF0dGFjaGVkIHNob3VsZFNldEF0dGFjaGVkKQogeworICAgIEF0dGFjaENv
bnRleHQgY29udGV4dDsKKyAgICBjb250ZXh0LnBlcmZvcm1pbmdSZWF0dGFjaCA9IHRydWU7CisK
ICAgICBpZiAoYXR0YWNoZWQoKSkKLSAgICAgICAgZGV0YWNoKCk7CisgICAgICAgIGRldGFjaChj
b250ZXh0KTsKICAgICBsYXp5QXR0YWNoKHNob3VsZFNldEF0dGFjaGVkKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>205162</attachid>
            <date>2013-06-21 02:38:30 -0700</date>
            <delta_ts>2013-06-21 09:03:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>117590.patch</filename>
            <type>text/plain</type>
            <size>25871</size>
            <attacher name="Radu Stavila">stavila</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNDMwZmI1Li5jYWM2YjdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTMtMDYt
MjEgIFJhZHUgU3RhdmlsYSAgPHN0YXZpbGFAYWRvYmUuY29tPgorCisgICAgICAgIEltcHJvdmUg
dGhlIHJlYXR0YWNoaW5nIHByb2Nlc3Mgd2hpbGUgYXBwbHlpbmcgdGhlIDpob3ZlciBzdHlsZQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTE3NTkwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZWQgaG92
ZXItZGlzcGxheS1ibG9jay1pbmxpbmUuaHRtbCBhbmQgaG92ZXItZGlzcGxheS1ibG9jay1ub25l
Lmh0bWwgZnJvbSBmYXN0L3JlZ2lvbnMgdG8gZmFzdC9jc3MuCisgICAgICAgIFVwZGF0ZWQgaG92
ZXItZGlzcGxheS1ibG9jay1ub25lLmh0bWwgYW5kIGhvdmVyLXNpbmdsZS1mbG93LWludG8tb3Ro
ZXIuaHRtbCB0byBlbnN1cmUgdGhlIG91dGNvbWUgd29uJ3QgYmUgYWZmZWN0ZWQgYnkgdGhlIG1h
Y2hpbmUncyBzcGVlZC4KKyAgICAgICAgVXBkYXRlZCBpbnB1dC1maWxlLXJlLXJlbmRlci5odG1s
IHRvIHN0b3AgaXQgZnJvbSBmYWlsaW5nIG9uIHdpbmRvd3MgYW5kIGxpbnV4IG1hY2hpbmVzIChh
IG1vcmUgZGV0YWlsZWQgZGVzY3JpcHRpb24gY2FuIGJlIGZvdW5kIGluc2lkZSB0aGUgdGVzdCBp
dHNlbGYpLgorCisgICAgICAgICogZmFzdC9jc3MvaG92ZXItZGlzcGxheS1ibG9jay1pbmxpbmUt
ZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2hvdmVy
LWRpc3BsYXktYmxvY2staW5saW5lLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBmYXN0L2Nzcy9o
b3Zlci1kaXNwbGF5LWJsb2NrLWlubGluZS5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMv
ZmFzdC9yZWdpb25zL2hvdmVyLWRpc3BsYXktYmxvY2staW5saW5lLmh0bWwuCisgICAgICAgICog
ZmFzdC9jc3MvaG92ZXItZGlzcGxheS1ibG9jay1ub25lLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9ob3Zlci1kaXNwbGF5LWJsb2NrLW5vbmUtZXhw
ZWN0ZWQudHh0LgorICAgICAgICAqIGZhc3QvY3NzL2hvdmVyLWRpc3BsYXktYmxvY2stbm9uZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Nzcy9ob3Zlci11cGRhdGUtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvY3NzL2hvdmVyLXVwZGF0ZS5odG1sOgorICAgICAgICAqIGZhc3Qv
Zm9ybXMvZmlsZS9pbnB1dC1maWxlLXJlLXJlbmRlci5odG1sOgorICAgICAgICAqIGZhc3QvcmVn
aW9ucy9ob3Zlci1kaXNwbGF5LWJsb2NrLW5vbmUuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBm
YXN0L3JlZ2lvbnMvaG92ZXItc2luZ2xlLWZsb3ctaW50by1vdGhlci5odG1sOgorCiAyMDEzLTA2
LTIwICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdW1dL
Ml0gUkVHUkVTU0lPTihyMTUxNzM3KTogZmFzdC9yZXBsYWNlZC93aWR0aDEwMHBlcmNlbnQtaW1h
Z2UuaHRtbCBmYWlscwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaG92ZXItZGlz
cGxheS1ibG9jay1pbmxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaG92
ZXItZGlzcGxheS1ibG9jay1pbmxpbmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAuLmI2N2U2ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2Nzcy9ob3Zlci1kaXNwbGF5LWJsb2NrLWlubGluZS1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSwyIEBACitQQVNTIFNldHRpbmcgZGlzcGxheSB0byBpbmxpbmUgb24gaG92ZXIgcHJvY2Vzc2Vk
IE9LLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9ob3Zlci1kaXNwbGF5LWJs
b2NrLWlubGluZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaG92ZXItZGlzcGxheS1ibG9j
ay1pbmxpbmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hMjUyZWYw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaG92ZXItZGlzcGxheS1i
bG9jay1pbmxpbmUuaHRtbApAQCAtMCwwICsxLDc3IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1s
IGxhbmc9ImVuIj4KKzxoZWFkPgorCTx0aXRsZT5Td2l0Y2ggYmV0d2VlbiBkaXNwbGF5IGJsb2Nr
IGFuZCBpbmxpbmUgb24gOmhvdmVyPC90aXRsZT4KKwk8c3R5bGU+CisJCS5ib3ggeworCQkJd2lk
dGg6IDEwMHB4OworCQkJaGVpZ2h0OiAxMDBweDsKKwkJfQorCQkjZHVtbXkgeworCQkJYmFja2dy
b3VuZC1jb2xvcjogYmxhY2s7CisJCX0KKwkJI2hvdmVyVGVzdCB7CisJCQlib3JkZXI6IDVweCBz
b2xpZCBncmVlbjsKKwkJCWJvcmRlci1sZWZ0OiAxMDBweCBzb2xpZCBncmVlbjsKKwkJCWNvbG9y
OiBibGFjazsKKwkJCWRpc3BsYXk6IGJsb2NrOworCQl9CisJCSNob3ZlclRlc3Q6aG92ZXIgewor
CQkJYm9yZGVyLWNvbG9yOiBkYXJrcmVkOworCQkJZGlzcGxheTogaW5saW5lOworCQl9CisJCSNh
ZnRlcl9ob3ZlclRlc3QgeworCQkJYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKwkJCWNvbG9yOiB3
aGl0ZTsKKwkJCXBhZGRpbmc6IDEwcHg7CisJCX0KKwk8L3N0eWxlPgorCisJPHNjcmlwdCBzcmM9
Ii4uL2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+CisKKzxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKwlpZiAod2luZG93LnRlc3RSdW5uZXIpCisJ
CXRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworCisJZnVuY3Rpb24gYmVnaW5UZXN0KCkgewor
CQlpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisJCQl2YXIgaG92ZXJUZXN0ICA9IGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoIiNob3ZlclRlc3QiKTsKKworCQkJLy8gbW92ZSBtb3VzZSBvbiB0aGUg
aG92ZXIgdGVzdCBvYmplY3QKKwkJCWV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGhvdmVyVGVzdC5v
ZmZzZXRMZWZ0ICsgNTAsIGhvdmVyVGVzdC5vZmZzZXRUb3AgKyAxMCk7CisJCQlldmVudFNlbmRl
ci5tb3VzZURvd24oMCk7CisKKwkJCXNldFRpbWVvdXQocmVsZWFzZSwgMCk7CisJCX0KKwl9CisK
KwlmdW5jdGlvbiByZWxlYXNlKCkgeworCQlpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisJCQl2
YXIgaG92ZXJUZXN0ICA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoIiNob3ZlclRlc3QiKTsKKwkJ
CXZhciBkaXNwbGF5TW9kZSA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKGhvdmVyVGVzdCkuZ2V0
UHJvcGVydHlWYWx1ZSgiZGlzcGxheSIpOworCisJCQlpZiAoZGlzcGxheU1vZGUgPT0gImlubGlu
ZSIpCisJCQkJdGVzdFBhc3NlZCgiU2V0dGluZyBkaXNwbGF5IHRvIGlubGluZSBvbiBob3ZlciBw
cm9jZXNzZWQgT0suIik7CisJCQllbHNlCisJCQkJdGVzdEZhaWxlZCgiU2V0dGluZyBkaXNwbGF5
IHRvIGlubGluZSBvbiBob3ZlciBGQUlMRUQuIiArICIgKGV4cGVjdGVkICdpbmxpbmUnLCBnb3Qg
JyIgKyBkaXNwbGF5TW9kZSArICInKSIpOworCisJCQl2YXIgZWxlbWVudHNUb0hpZGUgPSBkb2N1
bWVudC5xdWVyeVNlbGVjdG9yQWxsKCIuYm94Iik7CisJCQlmb3IgKHZhciBpPTA7IGk8ZWxlbWVu
dHNUb0hpZGUubGVuZ3RoOyBpKyspCisJCQkJZWxlbWVudHNUb0hpZGVbaV0uc3R5bGUudmlzaWJp
bGl0eSA9ICJoaWRkZW4iOworCisJICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKDApOworCisJ
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisJCQkJc2V0VGltZW91dCgidGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCkiLCAwKTsKKwkJfQorCX0KKworPC9zY3JpcHQ+CisKKzxib2R5IG9ubG9h
ZD0iYmVnaW5UZXN0KCkiPgorCTxkaXYgaWQ9ImR1bW15IiBjbGFzcz0iYm94Ij48L2Rpdj4KKwk8
ZGl2IGlkPSJob3ZlclRlc3QiIGNsYXNzPSJib3giPldoZW4gaG92ZXJlZCwgdGhpcyBib3gncyBk
aXNwbGF5IHdpbGwgc3dpdGNoIGZyb20gPGI+YmxvY2s8L2I+IHRvIDxiPmlubGluZTwvYj48L2Rp
dj4KKwk8ZGl2IGlkPSJhZnRlcl9ob3ZlclRlc3QiIGNsYXNzPSJib3giPlRoaXMgaXMgaGVyZSB0
byBzaG93IHRoZSBsYXlvdXQgYmVpbmcgcmVjb21wdXRlZDwvZGl2PgorPC9ib2R5PgorPC9odG1s
PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvY3NzL2hvdmVyLWRpc3BsYXktYmxvY2stbm9uZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9mYXN0L2Nzcy9ob3Zlci1kaXNwbGF5LWJsb2NrLW5vbmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmZiYjNlMmYKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2Nzcy9ob3Zlci1kaXNwbGF5LWJsb2NrLW5vbmUtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMiBAQAorUEFTUyBTZXR0aW5nIGRpc3BsYXkgdG8gbm9uZSBvbiBob3ZlciBw
cm9jZXNzZWQgT0suCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2hvdmVyLWRp
c3BsYXktYmxvY2stbm9uZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaG92ZXItZGlzcGxh
eS1ibG9jay1ub25lLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uZDEw
OTI4OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2hvdmVyLWRpc3Bs
YXktYmxvY2stbm9uZS5odG1sCkBAIC0wLDAgKzEsODMgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0
bWwgbGFuZz0iZW4iPgorPGhlYWQ+CisJPHRpdGxlPlN3aXRjaCBiZXR3ZWVuIGRpc3BsYXkgYmxv
Y2sgYW5kIG5vbmUgb24gOmhvdmVyPC90aXRsZT4KKwk8c3R5bGU+CisJCS5ib3ggeworCQkJd2lk
dGg6IDEwMHB4OworCQkJaGVpZ2h0OiAxMDBweDsKKwkJfQorCQkjZHVtbXkgeworCQkJYmFja2dy
b3VuZC1jb2xvcjogYmxhY2s7CisJCX0KKwkJI2hvdmVyVGVzdCB7CisJCQlib3JkZXI6IDVweCBz
b2xpZCBncmVlbjsKKwkJCWJvcmRlci1sZWZ0OiAxMDBweCBzb2xpZCBncmVlbjsKKwkJCWNvbG9y
OiBibGFjazsKKwkJCWRpc3BsYXk6IGJsb2NrOworCQkJd2lkdGg6IDIzMHB4OworCQl9CisJCSNo
b3ZlclRlc3Q6aG92ZXIgeworCQkJYm9yZGVyLWNvbG9yOiBkYXJrcmVkOworCQkJZGlzcGxheTog
bm9uZTsKKwkJfQorCQkjYWZ0ZXJfaG92ZXJUZXN0IHsKKwkJCWJhY2tncm91bmQtY29sb3I6IGJs
dWU7CisJCQljb2xvcjogd2hpdGU7CisJCQlwYWRkaW5nOiAxMHB4OworCQl9CisJPC9zdHlsZT4K
KworCTxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgorPC9oZWFkPgorCis8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CisJZnVuY3Rpb24g
ZWxlbWVudEhvdmVyZWQoKSB7CisJCWlmICh3aW5kb3cudGVzdFJ1bm5lcikKKwkJCWRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJob3ZlclRlc3QiKS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOworCX0K
Kzwvc2NyaXB0PgorCis8Ym9keT4KKwk8ZGl2IGlkPSJkdW1teSIgY2xhc3M9ImJveCI+PC9kaXY+
CisJPGRpdiBpZD0iaG92ZXJUZXN0IiBjbGFzcz0iYm94IiBvbm1vdXNlb3Zlcj0iZWxlbWVudEhv
dmVyZWQoKSI+V2hlbiBob3ZlcmVkLCB0aGlzIGJveCdzIGRpc3BsYXkgd2lsbCBzd2l0Y2ggZnJv
bSA8Yj5ibG9jazwvYj4gdG8gPGI+bm9uZTwvYj4gKGNsaWNrIG9uIGl0IGFuZCBrZWVwIHRoZSBt
b3VzZSBidXR0b24gcHVzaGVkIHRvIGF2b2lkIGZsaWNrZXIgYW5kIGdldCBhIG1vcmUgY2xlYXIg
dmlldyk8L2Rpdj4KKwk8ZGl2IGlkPSJhZnRlcl9ob3ZlclRlc3QiIGNsYXNzPSJib3giPlRoaXMg
aXMgaGVyZSB0byBzaG93IHRoZSBsYXlvdXQgYmVpbmcgcmVjb21wdXRlZDwvZGl2PgorCisJPHNj
cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorCQlpZiAod2luZG93LnRlc3RSdW5uZXIpCisJ
CQl0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKworCQlmdW5jdGlvbiBiZWdpblRlc3QoKSB7
CisJCQlpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisJCQkJdmFyIGhvdmVyVGVzdCAgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiaG92ZXJUZXN0Iik7CisKKwkJCQkvLyBtb3ZlIG1vdXNlIG9u
IHRoZSBob3ZlciB0ZXN0IG9iamVjdAorCQkJCWV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGhvdmVy
VGVzdC5vZmZzZXRMZWZ0ICsgNTAsIGhvdmVyVGVzdC5vZmZzZXRUb3AgKyAxMCk7CisKKwkJCQly
ZWxlYXNlKCk7CisJCQl9CisJCX0KKworCQlmdW5jdGlvbiByZWxlYXNlKCkgeworCQkJaWYgKHdp
bmRvdy5ldmVudFNlbmRlcikgeworCQkJCXZhciBob3ZlclRlc3QgID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImhvdmVyVGVzdCIpOworCQkJCXZhciBkaXNwbGF5TW9kZSA9IHdpbmRvdy5nZXRD
b21wdXRlZFN0eWxlKGhvdmVyVGVzdCkuZ2V0UHJvcGVydHlWYWx1ZSgiZGlzcGxheSIpOworCisJ
CQkJaWYgKGRpc3BsYXlNb2RlID09ICJub25lIikKKwkJCQkJdGVzdFBhc3NlZCgiU2V0dGluZyBk
aXNwbGF5IHRvIG5vbmUgb24gaG92ZXIgcHJvY2Vzc2VkIE9LLiIpOworCQkJCWVsc2UKKwkJCQkJ
dGVzdEZhaWxlZCgiU2V0dGluZyBkaXNwbGF5IHRvIG5vbmUgb24gaG92ZXIgRkFJTEVELiIgKyAi
IChleHBlY3RlZCAnbm9uZScsIGdvdCAnIiArIGRpc3BsYXlNb2RlICsgIicpIik7CisKKwkJCQl2
YXIgZWxlbWVudHNUb0hpZGUgPSBkb2N1bWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdib3gn
KTsKKwkJCQlmb3IgKHZhciBlbGVtZW50LCBpID0gMDsgZWxlbWVudCA9IGVsZW1lbnRzVG9IaWRl
W2ldOyBpKyspCisJCQkJICAgIGVsZW1lbnQuc3R5bGUudmlzaWJpbGl0eSA9ICJoaWRkZW4iOwor
CisJCQkJaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorCQkJCQl0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKKwkJCX0KKwkJfQorCisJCWJlZ2luVGVzdCgpOworCTwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvY3NzL2hvdmVyLXVwZGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Nz
cy9ob3Zlci11cGRhdGUtZXhwZWN0ZWQudHh0CmluZGV4IDE0NTgyYmMuLjc1NDE5ZTYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2hvdmVyLXVwZGF0ZS1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9jc3MvaG92ZXItdXBkYXRlLWV4cGVjdGVkLnR4dApAQCAtNSw0
ICs1LDUgQEAgVG8gcnVuIG1hbnVhbGx5LCBtb3ZlIHlvdXIgbW91c2Ugb3ZlciB0aGUgYmxhY2sg
Ym94LiBZb3Ugc2hvdWxkIHNlZSBhIGdyZWVuIGJveC4KIE9ubHkgZ3JlZW4gbm93CiBIb3ZlciBj
b2xvciBiZWZvcmUgdGVzdDogcmdiKDI1NSwgMjU1LCAwKQogUEFTUyB3aW5kb3cuZ2V0Q29tcHV0
ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYicpLCBudWxsKS5iYWNrZ3JvdW5kQ29s
b3IgaXMgInJnYigwLCAxMjgsIDApIgorUEFTUyB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnYScpLCBudWxsKS5iYWNrZ3JvdW5kQ29sb3IgaXMgInJnYigw
LCAxMjgsIDApIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Nzcy9ob3Zlci11cGRh
dGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2hvdmVyLXVwZGF0ZS5odG1sCmluZGV4IGQ5
NDViNzUuLjkwYTZhNDIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY3NzL2hvdmVyLXVw
ZGF0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvY3NzL2hvdmVyLXVwZGF0ZS5odG1sCkBA
IC0yOSw2ICsyOSw3IEBAIGZ1bmN0aW9uIGZpbmlzaCgpCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0Q29tcHV0ZWRTdHlsZShkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgnYicpLCBudWxsKS5iYWNrZ3JvdW5kQ29sb3IiLCBleHBlY3Rl
ZEJhY2tncm91bmRDb2xvcik7CisgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJ3aW5kb3cuZ2V0
Q29tcHV0ZWRTdHlsZShkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnYScpLCBudWxsKS5iYWNrZ3Jv
dW5kQ29sb3IiLCBleHBlY3RlZEJhY2tncm91bmRDb2xvcik7CiAKICAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpCiAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9maWxlL2lucHV0LWZpbGUtcmUtcmVuZGVyLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2ZpbGUvaW5wdXQtZmlsZS1yZS1yZW5kZXIuaHRtbAppbmRl
eCBkMTFlYThlLi4yYzFhZDcyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2Zp
bGUvaW5wdXQtZmlsZS1yZS1yZW5kZXIuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1z
L2ZpbGUvaW5wdXQtZmlsZS1yZS1yZW5kZXIuaHRtbApAQCAtMTYsNiArMTYsMTMgQEAgZnVuY3Rp
b24gc3RhcnRUZXN0KCkKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxMCwgMTApOwogICAg
IGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKIAorICAgIC8vIE1vdmUgdGhlIG1vdXNlIGF3YXkgYmVm
b3JlIG1vdmluZyBvbi4gVGhpcyBpcyBkb25lIGJlY2F1c2UgbGFuZGluZyB0aGUgcGF0Y2ggZm9y
IGJ1ZyAxMTc1OTAKKyAgICAvLyB3b3VsZCBjYXVzZSB0aGlzIHRlc3QgdG8gZmFpbC4gVGhhdCBw
YXRjaCBmaXhlcyBhIGhvdmVyIHByb2JsZW0gd2hpY2ggY2F1c2VzIHRoaXMgdGVzdAorICAgIC8v
IHRvIGFjdHVhbGx5IHBlcmZvcm0gY29ycmVjdGx5IChhZnRlciBzd2l0Y2hpbmcgYmFjayB0byBk
aXNwbGF5OiBpbmxpbmUtYmxvY2ssIHRoZSBzdHlsZSBvZiAKKyAgICAvLyB0aGUgZmlsZSBjb250
cm9sIHdvdWxkIGJlICdob3ZlcmVkJywgc2luY2UgaXQncyB1bmRlciB0aGUgbW91c2UpLiBIb3dl
dmVyLCB0aGUgJ2V4cGVjdGVkJworICAgIC8vIFBORyBmaWxlcyB3ZXJlIGNyZWF0ZWQgd2hlbiB0
aGlzIHdhcyBub3Qgd29ya2luZyBwcm9wZXJseSwgYW5kIHRoZSBjb250cm9sIGlzIGluIGl0cyB1
bi1ob3ZlcmVkIHN0YXRlLgorICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDMwMCwgMzAwKTsK
KwogICAgIC8vIERlbGV0ZSB0aGUgcmVuZGVyZXIuCiAgICAgaW5wdXQuc3R5bGUuZGlzcGxheSA9
ICdub25lJzsKICAgICBpbnB1dC5vZmZzZXRXaWR0aDsgLy8gRm9yY2UgdG8gZG8gbGF5b3V0CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvaG92ZXItZGlzcGxheS1ibG9jay1p
bmxpbmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2hvdmVyLWRpc3Bs
YXktYmxvY2staW5saW5lLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYjY3ZTZkZC4uMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvaG92ZXIt
ZGlzcGxheS1ibG9jay1pbmxpbmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiAr
MCwwIEBACi1QQVNTIFNldHRpbmcgZGlzcGxheSB0byBpbmxpbmUgb24gaG92ZXIgcHJvY2Vzc2Vk
IE9LLgotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvaG92ZXItZGlzcGxh
eS1ibG9jay1pbmxpbmUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9ob3Zlci1kaXNw
bGF5LWJsb2NrLWlubGluZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMjUy
ZWYwLi4wMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9ob3Zlci1kaXNwbGF5
LWJsb2NrLWlubGluZS5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzcgKzAsMCBAQAotPCFkb2N0
eXBlIGh0bWw+Ci08aHRtbCBsYW5nPSJlbiI+Ci08aGVhZD4KLQk8dGl0bGU+U3dpdGNoIGJldHdl
ZW4gZGlzcGxheSBibG9jayBhbmQgaW5saW5lIG9uIDpob3ZlcjwvdGl0bGU+Ci0JPHN0eWxlPgot
CQkuYm94IHsKLQkJCXdpZHRoOiAxMDBweDsKLQkJCWhlaWdodDogMTAwcHg7Ci0JCX0KLQkJI2R1
bW15IHsKLQkJCWJhY2tncm91bmQtY29sb3I6IGJsYWNrOwotCQl9Ci0JCSNob3ZlclRlc3Qgewot
CQkJYm9yZGVyOiA1cHggc29saWQgZ3JlZW47Ci0JCQlib3JkZXItbGVmdDogMTAwcHggc29saWQg
Z3JlZW47Ci0JCQljb2xvcjogYmxhY2s7Ci0JCQlkaXNwbGF5OiBibG9jazsKLQkJfQotCQkjaG92
ZXJUZXN0OmhvdmVyIHsKLQkJCWJvcmRlci1jb2xvcjogZGFya3JlZDsKLQkJCWRpc3BsYXk6IGlu
bGluZTsKLQkJfQotCQkjYWZ0ZXJfaG92ZXJUZXN0IHsKLQkJCWJhY2tncm91bmQtY29sb3I6IGJs
dWU7Ci0JCQljb2xvcjogd2hpdGU7Ci0JCQlwYWRkaW5nOiAxMHB4OwotCQl9Ci0JPC9zdHlsZT4K
LQotCTxzY3JpcHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0
PgotPC9oZWFkPgotCi08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0JaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQotCQl0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQotCWZ1bmN0aW9u
IGJlZ2luVGVzdCgpIHsKLQkJaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotCQkJdmFyIGhvdmVy
VGVzdCAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaG92ZXJUZXN0Iik7Ci0KLQkJCS8vIG1v
dmUgbW91c2Ugb24gdGhlIGhvdmVyIHRlc3Qgb2JqZWN0Ci0JCQlldmVudFNlbmRlci5tb3VzZU1v
dmVUbyhob3ZlclRlc3Qub2Zmc2V0TGVmdCArIDUwLCBob3ZlclRlc3Qub2Zmc2V0VG9wICsgMTAp
OwotCQkJZXZlbnRTZW5kZXIubW91c2VEb3duKDApOwotCi0JCQlzZXRUaW1lb3V0KHJlbGVhc2Us
IDApOwotCQl9Ci0JfQotCi0JZnVuY3Rpb24gcmVsZWFzZSgpIHsKLQkJaWYgKHdpbmRvdy5ldmVu
dFNlbmRlcikgewotCQkJdmFyIGhvdmVyVGVzdCAgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCIj
aG92ZXJUZXN0Iik7Ci0JCQl2YXIgZGlzcGxheU1vZGUgPSB3aW5kb3cuZ2V0Q29tcHV0ZWRTdHls
ZShob3ZlclRlc3QpLmdldFByb3BlcnR5VmFsdWUoImRpc3BsYXkiKTsKLQotCQkJaWYgKGRpc3Bs
YXlNb2RlID09ICJpbmxpbmUiKQotCQkJCXRlc3RQYXNzZWQoIlNldHRpbmcgZGlzcGxheSB0byBp
bmxpbmUgb24gaG92ZXIgcHJvY2Vzc2VkIE9LLiIpOwotCQkJZWxzZQotCQkJCXRlc3RGYWlsZWQo
IlNldHRpbmcgZGlzcGxheSB0byBpbmxpbmUgb24gaG92ZXIgRkFJTEVELiIgKyAiIChleHBlY3Rl
ZCAnaW5saW5lJywgZ290ICciICsgZGlzcGxheU1vZGUgKyAiJykiKTsKLQotCQkJdmFyIGVsZW1l
bnRzVG9IaWRlID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbCgiLmJveCIpOwotCQkJZm9yICh2
YXIgaT0wOyBpPGVsZW1lbnRzVG9IaWRlLmxlbmd0aDsgaSsrKQotCQkJCWVsZW1lbnRzVG9IaWRl
W2ldLnN0eWxlLnZpc2liaWxpdHkgPSAiaGlkZGVuIjsKLQotCSAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VVcCgwKTsKLQotCSAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotCQkJCXNldFRp
bWVvdXQoInRlc3RSdW5uZXIubm90aWZ5RG9uZSgpIiwgMCk7Ci0JCX0KLQl9Ci0KLTwvc2NyaXB0
PgotCi08Ym9keSBvbmxvYWQ9ImJlZ2luVGVzdCgpIj4KLQk8ZGl2IGlkPSJkdW1teSIgY2xhc3M9
ImJveCI+PC9kaXY+Ci0JPGRpdiBpZD0iaG92ZXJUZXN0IiBjbGFzcz0iYm94Ij5XaGVuIGhvdmVy
ZWQsIHRoaXMgYm94J3MgZGlzcGxheSB3aWxsIHN3aXRjaCBmcm9tIDxiPmJsb2NrPC9iPiB0byA8
Yj5pbmxpbmU8L2I+PC9kaXY+Ci0JPGRpdiBpZD0iYWZ0ZXJfaG92ZXJUZXN0IiBjbGFzcz0iYm94
Ij5UaGlzIGlzIGhlcmUgdG8gc2hvdyB0aGUgbGF5b3V0IGJlaW5nIHJlY29tcHV0ZWQ8L2Rpdj4K
LTwvYm9keT4KLTwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvaG92ZXItZGlzcGxheS1ibG9jay1ub25lLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9ob3Zlci1kaXNwbGF5LWJsb2NrLW5v
bmUtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBmYmIzZTJmLi4w
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9ob3Zlci1kaXNwbGF5LWJsb2Nr
LW5vbmUtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMiArMCwwIEBACi1QQVNTIFNl
dHRpbmcgZGlzcGxheSB0byBub25lIG9uIGhvdmVyIHByb2Nlc3NlZCBPSy4KLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2hvdmVyLWRpc3BsYXktYmxvY2stbm9uZS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9yZWdpb25zL2hvdmVyLWRpc3BsYXktYmxvY2stbm9uZS5odG1s
CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhMWRmN2IzLi4wMDAwMDAwCi0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9ob3Zlci1kaXNwbGF5LWJsb2NrLW5vbmUuaHRtbAorKysg
L2Rldi9udWxsCkBAIC0xLDc1ICswLDAgQEAKLTwhZG9jdHlwZSBodG1sPgotPGh0bWwgbGFuZz0i
ZW4iPgotPGhlYWQ+Ci0JPHRpdGxlPlN3aXRjaCBiZXR3ZWVuIGRpc3BsYXkgYmxvY2sgYW5kIG5v
bmUgb24gOmhvdmVyPC90aXRsZT4KLQk8c3R5bGU+Ci0JCS5ib3ggewotCQkJd2lkdGg6IDEwMHB4
OwotCQkJaGVpZ2h0OiAxMDBweDsKLQkJfQotCQkjZHVtbXkgewotCQkJYmFja2dyb3VuZC1jb2xv
cjogYmxhY2s7Ci0JCX0KLQkJI2hvdmVyVGVzdCB7Ci0JCQlib3JkZXI6IDVweCBzb2xpZCBncmVl
bjsKLQkJCWJvcmRlci1sZWZ0OiAxMDBweCBzb2xpZCBncmVlbjsKLQkJCWNvbG9yOiBibGFjazsK
LQkJCWRpc3BsYXk6IGJsb2NrOwotCQkJd2lkdGg6IDIzMHB4OwotCQl9Ci0JCSNob3ZlclRlc3Q6
aG92ZXIgewotCQkJYm9yZGVyLWNvbG9yOiBkYXJrcmVkOwotCQkJZGlzcGxheTogbm9uZTsKLQkJ
fQotCQkjYWZ0ZXJfaG92ZXJUZXN0IHsKLQkJCWJhY2tncm91bmQtY29sb3I6IGJsdWU7Ci0JCQlj
b2xvcjogd2hpdGU7Ci0JCQlwYWRkaW5nOiAxMHB4OwotCQl9Ci0JPC9zdHlsZT4KLQotCTxzY3Jp
cHQgc3JjPSIuLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPC9oZWFk
PgotCi08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+Ci0JaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKQotCQl0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLQotCWZ1bmN0aW9uIGJlZ2luVGVz
dCgpIHsKLQkJaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotCQkJdmFyIGhvdmVyVGVzdCAgPSBk
b2N1bWVudC5xdWVyeVNlbGVjdG9yKCIjaG92ZXJUZXN0Iik7Ci0KLQkJCS8vIG1vdmUgbW91c2Ug
b24gdGhlIGhvdmVyIHRlc3Qgb2JqZWN0Ci0JCQlldmVudFNlbmRlci5tb3VzZU1vdmVUbyhob3Zl
clRlc3Qub2Zmc2V0TGVmdCArIDUwLCBob3ZlclRlc3Qub2Zmc2V0VG9wICsgMTApOwotCi0JCQlz
ZXRUaW1lb3V0KHJlbGVhc2UsIDApOwotCQl9Ci0JfQotCi0JZnVuY3Rpb24gcmVsZWFzZSgpIHsK
LQkJaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotCQkJdmFyIGhvdmVyVGVzdCAgPSBkb2N1bWVu
dC5xdWVyeVNlbGVjdG9yKCIjaG92ZXJUZXN0Iik7Ci0JCQl2YXIgZGlzcGxheU1vZGUgPSB3aW5k
b3cuZ2V0Q29tcHV0ZWRTdHlsZShob3ZlclRlc3QpLmdldFByb3BlcnR5VmFsdWUoImRpc3BsYXki
KTsKLQotCQkJaWYgKGRpc3BsYXlNb2RlID09ICJub25lIikKLQkJCQl0ZXN0UGFzc2VkKCJTZXR0
aW5nIGRpc3BsYXkgdG8gbm9uZSBvbiBob3ZlciBwcm9jZXNzZWQgT0suIik7Ci0JCQllbHNlCi0J
CQkJdGVzdEZhaWxlZCgiU2V0dGluZyBkaXNwbGF5IHRvIG5vbmUgb24gaG92ZXIgRkFJTEVELiIg
KyAiIChleHBlY3RlZCAnbm9uZScsIGdvdCAnIiArIGRpc3BsYXlNb2RlICsgIicpIik7Ci0KLQkJ
CXZhciBlbGVtZW50c1RvSGlkZSA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoIi5ib3giKTsK
LQkJCWZvciAodmFyIGk9MDsgaTxlbGVtZW50c1RvSGlkZS5sZW5ndGg7IGkrKykKLQkJCQllbGVt
ZW50c1RvSGlkZVtpXS5zdHlsZS52aXNpYmlsaXR5ID0gImhpZGRlbiI7Ci0KLQkJCWlmICh3aW5k
b3cudGVzdFJ1bm5lcikKLQkJCQlzZXRUaW1lb3V0KCJ0ZXN0UnVubmVyLm5vdGlmeURvbmUoKSIs
IDApOwotCQl9Ci0JfQotCi08L3NjcmlwdD4KLQotPGJvZHkgb25sb2FkPSJiZWdpblRlc3QoKSI+
Ci0JPGRpdiBpZD0iZHVtbXkiIGNsYXNzPSJib3giPjwvZGl2PgotCTxkaXYgaWQ9ImhvdmVyVGVz
dCIgY2xhc3M9ImJveCI+V2hlbiBob3ZlcmVkLCB0aGlzIGJveCdzIGRpc3BsYXkgd2lsbCBzd2l0
Y2ggZnJvbSA8Yj5ibG9jazwvYj4gdG8gPGI+bm9uZTwvYj4gKGNsaWNrIG9uIGl0IGFuZCBrZWVw
IHRoZSBtb3VzZSBidXR0b24gcHVzaGVkIHRvIGF2b2lkIGZsaWNrZXIgYW5kIGdldCBhIG1vcmUg
Y2xlYXIgdmlldyk8L2Rpdj4KLQk8ZGl2IGlkPSJhZnRlcl9ob3ZlclRlc3QiIGNsYXNzPSJib3gi
PlRoaXMgaXMgaGVyZSB0byBzaG93IHRoZSBsYXlvdXQgYmVpbmcgcmVjb21wdXRlZDwvZGl2Pgot
PC9ib2R5PgotPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvcmVnaW9ucy9ob3Zlci1zaW5nbGUtZmxvdy1pbnRvLW90aGVyLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlZ2lvbnMvaG92ZXItc2luZ2xlLWZsb3ctaW50by1vdGhl
ci5odG1sCmluZGV4IDY3OWQzMWUuLjk5NzE4ZWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvcmVnaW9ucy9ob3Zlci1zaW5nbGUtZmxvdy1pbnRvLW90aGVyLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9yZWdpb25zL2hvdmVyLXNpbmdsZS1mbG93LWludG8tb3RoZXIuaHRtbApAQCAt
NTksMTAgKzU5LDE4IEBACiAJfQogPC9zY3JpcHQ+CiAKKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZh
c2NyaXB0Ij4KKwlmdW5jdGlvbiBlbGVtZW50SG92ZXJlZCgpIHsKKwkJaWYgKHdpbmRvdy50ZXN0
UnVubmVyKQorCQkJZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImNvbnRlbnQiKS5zdHlsZS53ZWJr
aXRGbG93SW50byA9ICJmbG93MiI7CisJfQorPC9zY3JpcHQ+CisKKwogPGJvZHkgb25sb2FkPSJi
ZWdpblRlc3QoKSI+CiAJPHA+V2hlbiBob3ZlcmluZyB0aGUgPHNwYW4gc3R5bGU9ImNvbG9yOmJs
dWUiPjxiPmJsdWUgYm94PC9iPjwvc3Bhbj4sIGl0IHNob3VsZCBtb3ZlIHRvIHRoZSA8c3BhbiBz
dHlsZT0iY29sb3I6ZGFya3JlZCI+PGI+c2Vjb25kIHJlZ2lvbjwvYj48L3NwYW4+IChpdCdzIDxi
PmZsb3ctaW50bzwvYj4gd2lsbCBjaGFuZ2UgdG8gdGhlIDJuZCB0aHJlYWQpPC9wPgogCTxkaXYg
aWQ9InJlZ2lvbjEiPjwvZGl2PgogCTxkaXYgaWQ9InJlZ2lvbjIiPjwvZGl2PgotCTxkaXYgaWQ9
ImNvbnRlbnQiIGNsYXNzPSJib3giPlRoaXMgYm94IGlzIGZsb3dlZCBpbnRvIHRoZSA8c3BhbiBz
dHlsZT0iY29sb3I6Z3JlZW4iPjxiPmZpcnN0IHJlZ2lvbjwvYj48L3NwYW4+IHdoZW4gaXQgaXMg
PGI+bm90PC9iPiBob3ZlcmVkIGFuZCBpbnRvIHRoZSA8c3BhbiBzdHlsZT0iY29sb3I6ZGFya3Jl
ZCI+PGI+c2Vjb25kIHJlZ2lvbjwvYj48L3NwYW4+IHdoZW4gaXQgPGI+aXM8L2I+PC9kaXY+CisJ
PGRpdiBpZD0iY29udGVudCIgY2xhc3M9ImJveCIgb25tb3VzZW92ZXI9ImVsZW1lbnRIb3ZlcmVk
KCkiPlRoaXMgYm94IGlzIGZsb3dlZCBpbnRvIHRoZSA8c3BhbiBzdHlsZT0iY29sb3I6Z3JlZW4i
PjxiPmZpcnN0IHJlZ2lvbjwvYj48L3NwYW4+IHdoZW4gaXQgaXMgPGI+bm90PC9iPiBob3ZlcmVk
IGFuZCBpbnRvIHRoZSA8c3BhbiBzdHlsZT0iY29sb3I6ZGFya3JlZCI+PGI+c2Vjb25kIHJlZ2lv
bjwvYj48L3NwYW4+IHdoZW4gaXQgPGI+aXM8L2I+PC9kaXY+CiA8L2JvZHk+CiA8L2h0bWw+Clwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDUzOGRlNjUuLjQzOWZkMGIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMy0wNi0yMSAgUmFkdSBTdGF2aWxhICA8
c3RhdmlsYUBhZG9iZS5jb20+CisKKyAgICAgICAgSW1wcm92ZSB0aGUgcmVhdHRhY2hpbmcgcHJv
Y2VzcyB3aGlsZSBhcHBseWluZyB0aGUgOmhvdmVyIHN0eWxlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTc1OTAKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDaGFuZ2VzIG1hZGU6CisgICAgICAgICAgICAt
IGNvbnRleHQgaXMgcHJvcGVybHkgcHJvcGFnYXRlZCB0byB0aGUgZWxlbWVudCdzIGNoaWxkcmVu
IGFuZCB0byBTaGFkb3cgRE9NIGVsZW1lbnRzLgorICAgICAgICAgICAgLSBjb250ZXh0IGlzIHBy
b3Blcmx5IHNldCBvbiB0aGUgbGF6eVJlYXR0YWNoIG1ldGhvZC4KKyAgICAgICAgICAgIC0gYW5v
dGhlciBoaXQtdGVzdGluZyBpcyB0cmlnZ2VyZWQgd2hlbiBuZWVkZWQuCisgICAgICAgICAgICAt
IHdoZW4gYSBob3ZlcmVkIGVsZW1lbnQgaXMgZGV0YWNoZWQsIGl0J3MgYW5jZXN0b3JzIGFyZSBh
bHNvIHJlbW92ZWQgZnJvbSB0aGUgaG92ZXJlZCBzdGF0ZS4KKworICAgICAgICBUZXN0czogZmFz
dC9jc3MvaG92ZXItZGlzcGxheS1ibG9jay1pbmxpbmUuaHRtbAorICAgICAgICAgICAgICAgZmFz
dC9jc3MvaG92ZXItZGlzcGxheS1ibG9jay1ub25lLmh0bWwKKworICAgICAgICAqIGRvbS9Db250
YWluZXJOb2RlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OmF0dGFjaCk6
CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpkZXRhY2gpOgorICAgICAgICAqIGRv
bS9Db250YWluZXJOb2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjphdHRh
Y2hDaGlsZHJlbik6CisgICAgICAgIChXZWJDb3JlOjpDb250YWluZXJOb2RlOjpkZXRhY2hDaGls
ZHJlbklmTmVlZGVkKToKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRhaW5lck5vZGU6OmRldGFjaENo
aWxkcmVuKToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnJlY2FsY1N0eWxlKToKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRh
dGVIb3ZlckFjdGl2ZVN0YXRlKToKKyAgICAgICAgKiBkb20vRWxlbWVudC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFbGVtZW50OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6
ZGV0YWNoKToKKyAgICAgICAgKiBkb20vRWxlbWVudFNoYWRvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50U2hhZG93OjphdHRhY2gpOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudFNo
YWRvdzo6ZGV0YWNoKToKKyAgICAgICAgKiBkb20vRWxlbWVudFNoYWRvdy5oOgorICAgICAgICAq
IGRvbS9Ob2RlLmg6CisgICAgICAgIChXZWJDb3JlOjpOb2RlOjpsYXp5UmVhdHRhY2gpOgorCiAy
MDEzLTA2LTE4ICBSb2JlcnQgSG9nYW4gIDxyb2JlcnRAd2Via2l0Lm9yZz4KIAogICAgICAgICBS
RUdSRVNTSU9OIChyMTUxNDUxKTogVGV4dCBub3QgdmVydGljYWxseSBjZW50ZXJlZCBjb3JyZWN0
bHkgb24gaWNsb3VkLmNvbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5l
ck5vZGUuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuY3BwCmluZGV4IDIx
MjYyM2MuLjQ3NTM4ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJO
b2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVyTm9kZS5jcHAKQEAgLTc4
OSwxMyArNzg5LDEzIEBAIHZvaWQgQ29udGFpbmVyTm9kZTo6c2NoZWR1bGVTZXROZWVkc1N0eWxl
UmVjYWxjKFN0eWxlQ2hhbmdlVHlwZSBjaGFuZ2VUeXBlKQogCiB2b2lkIENvbnRhaW5lck5vZGU6
OmF0dGFjaChjb25zdCBBdHRhY2hDb250ZXh0JiBjb250ZXh0KQogewotICAgIGF0dGFjaENoaWxk
cmVuKCk7CisgICAgYXR0YWNoQ2hpbGRyZW4oY29udGV4dCk7CiAgICAgTm9kZTo6YXR0YWNoKGNv
bnRleHQpOwogfQogCiB2b2lkIENvbnRhaW5lck5vZGU6OmRldGFjaChjb25zdCBBdHRhY2hDb250
ZXh0JiBjb250ZXh0KQogewotICAgIGRldGFjaENoaWxkcmVuKCk7CisgICAgZGV0YWNoQ2hpbGRy
ZW4oY29udGV4dCk7CiAgICAgY2xlYXJDaGlsZE5lZWRzU3R5bGVSZWNhbGMoKTsKICAgICBOb2Rl
OjpkZXRhY2goY29udGV4dCk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29u
dGFpbmVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0NvbnRhaW5lck5vZGUuaAppbmRleCA3
MDUxN2YzLi41ZGE0NzdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vQ29udGFpbmVy
Tm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Db250YWluZXJOb2RlLmgKQEAgLTExOCwx
MCArMTE4LDEwIEBAIHB1YmxpYzoKICAgICAvLyBub2RlIHRoYXQgaXMgb2YgdGhlIHR5cGUgQ0RB
VEFfU0VDVElPTl9OT0RFLCBURVhUX05PREUgb3IgQ09NTUVOVF9OT0RFIGhhcyBjaGFuZ2VkIGl0
cyB2YWx1ZS4KICAgICB2aXJ0dWFsIHZvaWQgY2hpbGRyZW5DaGFuZ2VkKGJvb2wgY3JlYXRlZEJ5
UGFyc2VyID0gZmFsc2UsIE5vZGUqIGJlZm9yZUNoYW5nZSA9IDAsIE5vZGUqIGFmdGVyQ2hhbmdl
ID0gMCwgaW50IGNoaWxkQ291bnREZWx0YSA9IDApOwogCi0gICAgdm9pZCBhdHRhY2hDaGlsZHJl
bigpOworICAgIHZvaWQgYXR0YWNoQ2hpbGRyZW4oY29uc3QgQXR0YWNoQ29udGV4dCYgPSBBdHRh
Y2hDb250ZXh0KCkpOwogICAgIHZvaWQgYXR0YWNoQ2hpbGRyZW5MYXppbHkoKTsKLSAgICB2b2lk
IGRldGFjaENoaWxkcmVuKCk7Ci0gICAgdm9pZCBkZXRhY2hDaGlsZHJlbklmTmVlZGVkKCk7Cisg
ICAgdm9pZCBkZXRhY2hDaGlsZHJlbihjb25zdCBBdHRhY2hDb250ZXh0JiA9IEF0dGFjaENvbnRl
eHQoKSk7CisgICAgdm9pZCBkZXRhY2hDaGlsZHJlbklmTmVlZGVkKGNvbnN0IEF0dGFjaENvbnRl
eHQmID0gQXR0YWNoQ29udGV4dCgpKTsKIAogICAgIHZvaWQgZGlzY29ubmVjdERlc2NlbmRhbnRG
cmFtZXMoKTsKIApAQCAtMTg0LDEyICsxODQsMTUgQEAgaW5saW5lIENvbnRhaW5lck5vZGU6OkNv
bnRhaW5lck5vZGUoRG9jdW1lbnQqIGRvY3VtZW50LCBDb25zdHJ1Y3Rpb25UeXBlIHR5cGUpCiB7
CiB9CiAKLWlubGluZSB2b2lkIENvbnRhaW5lck5vZGU6OmF0dGFjaENoaWxkcmVuKCkKK2lubGlu
ZSB2b2lkIENvbnRhaW5lck5vZGU6OmF0dGFjaENoaWxkcmVuKGNvbnN0IEF0dGFjaENvbnRleHQm
IGNvbnRleHQpCiB7CisgICAgQXR0YWNoQ29udGV4dCBjaGlsZHJlbkNvbnRleHQoY29udGV4dCk7
CisgICAgY2hpbGRyZW5Db250ZXh0LnJlc29sdmVkU3R5bGUgPSAwOworCiAgICAgZm9yIChOb2Rl
KiBjaGlsZCA9IGZpcnN0Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5n
KCkpIHsKICAgICAgICAgQVNTRVJUKCFjaGlsZC0+YXR0YWNoZWQoKSB8fCBjaGlsZEF0dGFjaGVk
QWxsb3dlZFdoZW5BdHRhY2hpbmdDaGlsZHJlbih0aGlzKSk7CiAgICAgICAgIGlmICghY2hpbGQt
PmF0dGFjaGVkKCkpCi0gICAgICAgICAgICBjaGlsZC0+YXR0YWNoKCk7CisgICAgICAgICAgICBj
aGlsZC0+YXR0YWNoKGNoaWxkcmVuQ29udGV4dCk7CiAgICAgfQogfQogCkBAIC0yMDAsMTggKzIw
MywyNCBAQCBpbmxpbmUgdm9pZCBDb250YWluZXJOb2RlOjphdHRhY2hDaGlsZHJlbkxhemlseSgp
CiAgICAgICAgICAgICBjaGlsZC0+bGF6eUF0dGFjaCgpOwogfQogCi1pbmxpbmUgdm9pZCBDb250
YWluZXJOb2RlOjpkZXRhY2hDaGlsZHJlbklmTmVlZGVkKCkKK2lubGluZSB2b2lkIENvbnRhaW5l
ck5vZGU6OmRldGFjaENoaWxkcmVuSWZOZWVkZWQoY29uc3QgQXR0YWNoQ29udGV4dCYgY29udGV4
dCkKIHsKKyAgICBBdHRhY2hDb250ZXh0IGNoaWxkcmVuQ29udGV4dChjb250ZXh0KTsKKyAgICBj
aGlsZHJlbkNvbnRleHQucmVzb2x2ZWRTdHlsZSA9IDA7CisKICAgICBmb3IgKE5vZGUqIGNoaWxk
ID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewog
ICAgICAgICBpZiAoY2hpbGQtPmF0dGFjaGVkKCkpCi0gICAgICAgICAgICBjaGlsZC0+ZGV0YWNo
KCk7CisgICAgICAgICAgICBjaGlsZC0+ZGV0YWNoKGNoaWxkcmVuQ29udGV4dCk7CiAgICAgfQog
fQogCi1pbmxpbmUgdm9pZCBDb250YWluZXJOb2RlOjpkZXRhY2hDaGlsZHJlbigpCitpbmxpbmUg
dm9pZCBDb250YWluZXJOb2RlOjpkZXRhY2hDaGlsZHJlbihjb25zdCBBdHRhY2hDb250ZXh0JiBj
b250ZXh0KQogeworICAgIEF0dGFjaENvbnRleHQgY2hpbGRyZW5Db250ZXh0KGNvbnRleHQpOwor
ICAgIGNoaWxkcmVuQ29udGV4dC5yZXNvbHZlZFN0eWxlID0gMDsKKwogICAgIGZvciAoTm9kZSog
Y2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5uZXh0U2libGluZygp
KQotICAgICAgICBjaGlsZC0+ZGV0YWNoKCk7CisgICAgICAgIGNoaWxkLT5kZXRhY2goY2hpbGRy
ZW5Db250ZXh0KTsKIH0KIAogaW5saW5lIHVuc2lnbmVkIE5vZGU6OmNoaWxkTm9kZUNvdW50KCkg
Y29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDE2ZWQ1MDEuLjk5NDQ4MzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMTgzNCw2ICsxODM0LDEyIEBAIHZvaWQgRG9jdW1lbnQ6
OnJlY2FsY1N0eWxlKFN0eWxlQ2hhbmdlIGNoYW5nZSkKICAgICB9CiAKICAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZFJlY2FsY3VsYXRlU3R5bGUoY29va2llKTsKKworICAgIC8vIEFz
IGEgcmVzdWx0IG9mIHRoZSBzdHlsZSByZWNhbGN1bGF0aW9uLCB0aGUgY3VycmVudGx5IGhvdmVy
ZWQgZWxlbWVudCBtaWdodCBoYXZlIGJlZW4KKyAgICAvLyBkZXRhY2hlZCAoZm9yIGV4YW1wbGUs
IGJ5IHNldHRpbmcgZGlzcGxheTpub25lIGluIHRoZSA6aG92ZXIgc3R5bGUpLCBzY2hlZHVsZSBh
bm90aGVyIG1vdXNlTW92ZSBldmVudAorICAgIC8vIHRvIGNoZWNrIGlmIGFueSBvdGhlciBlbGVt
ZW50cyBlbmRlZCB1cCB1bmRlciB0aGUgbW91c2UgcG9pbnRlciBkdWUgdG8gcmUtbGF5b3V0Lgor
ICAgIGlmIChtX2hvdmVyZWRFbGVtZW50ICYmICFtX2hvdmVyZWRFbGVtZW50LT5yZW5kZXJlcigp
ICYmIGZyYW1lKCkpCisgICAgICAgIGZyYW1lKCktPmV2ZW50SGFuZGxlcigpLT5kaXNwYXRjaEZh
a2VNb3VzZU1vdmVFdmVudFNvb24oKTsKIH0KIAogdm9pZCBEb2N1bWVudDo6dXBkYXRlU3R5bGVJ
Zk5lZWRlZCgpCkBAIC01ODU5LDExICs1ODY1LDEzIEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUhv
dmVyQWN0aXZlU3RhdGUoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEVsZW1lbnQqIGlu
CiAKICAgICBpZiAob2xkSG92ZXJPYmogIT0gbmV3SG92ZXJPYmopIHsKICAgICAgICAgLy8gSWYg
dGhlIG9sZCBob3ZlcmVkIGVsZW1lbnQgaXMgbm90IG5pbCBidXQgaXQncyByZW5kZXJlciBpcywg
aXQgd2FzIHByb2JhYmx5IGRldGFjaGVkIGFzIHBhcnQgb2YgdGhlIDpob3ZlciBzdHlsZQotICAg
ICAgICAvLyAoZm9yIGluc3RhbmNlIGJ5IHNldHRpbmcgZGlzcGxheTpub25lIGluIHRoZSA6aG92
ZXIgcHNldWRvLWNsYXNzKS4gSW4gdGhpcyBjYXNlLCB0aGUgb2xkIGhvdmVyZWQgZWxlbWVudAor
ICAgICAgICAvLyAoZm9yIGluc3RhbmNlIGJ5IHNldHRpbmcgZGlzcGxheTpub25lIGluIHRoZSA6
aG92ZXIgcHNldWRvLWNsYXNzKS4gSW4gdGhpcyBjYXNlLCB0aGUgb2xkIGhvdmVyZWQgZWxlbWVu
dCAoYW5kIGl0cyBhbmNlc3RvcnMpCiAgICAgICAgIC8vIG11c3QgYmUgdXBkYXRlZCwgdG8gZW5z
dXJlIGl0J3Mgbm9ybWFsIHN0eWxlIGlzIHJlLWFwcGxpZWQuCiAgICAgICAgIGlmIChvbGRIb3Zl
cmVkRWxlbWVudCAmJiAhb2xkSG92ZXJPYmopIHsKLSAgICAgICAgICAgIGlmICghbXVzdEJlSW5B
Y3RpdmVDaGFpbiB8fCAob2xkSG92ZXJlZEVsZW1lbnQtPmlzRWxlbWVudE5vZGUoKSAmJiBvbGRI
b3ZlcmVkRWxlbWVudC0+aW5BY3RpdmVDaGFpbigpKSkKLSAgICAgICAgICAgICAgICBub2Rlc1Rv
UmVtb3ZlRnJvbUNoYWluLmFwcGVuZChvbGRIb3ZlcmVkRWxlbWVudCk7CisgICAgICAgICAgICBm
b3IgKE5vZGUqIG5vZGUgPSBvbGRIb3ZlcmVkRWxlbWVudC5nZXQoKTsgbm9kZTsgbm9kZSA9IG5v
ZGUtPnBhcmVudE5vZGUoKSkgeworICAgICAgICAgICAgICAgIGlmICghbXVzdEJlSW5BY3RpdmVD
aGFpbiB8fCAobm9kZS0+aXNFbGVtZW50Tm9kZSgpICYmIHRvRWxlbWVudChub2RlKS0+aW5BY3Rp
dmVDaGFpbigpKSkKKyAgICAgICAgICAgICAgICAgICAgbm9kZXNUb1JlbW92ZUZyb21DaGFpbi5h
cHBlbmQobm9kZSk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KIAogICAgICAgICAvLyBUaGUg
b2xkIGhvdmVyIHBhdGggb25seSBuZWVkcyB0byBiZSBjbGVhcmVkIHVwIHRvIChhbmQgbm90IGlu
Y2x1ZGluZykgdGhlIGNvbW1vbiBhbmNlc3RvcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA3
NzJiNDQ5Li45Y2U1NjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBAIC0xNDQwLDcgKzE0NDAs
NyBAQCB2b2lkIEVsZW1lbnQ6OmF0dGFjaChjb25zdCBBdHRhY2hDb250ZXh0JiBjb250ZXh0KQog
ICAgIC8vIFdoZW4gYSBzaGFkb3cgcm9vdCBleGlzdHMsIGl0IGRvZXMgdGhlIHdvcmsgb2YgYXR0
YWNoaW5nIHRoZSBjaGlsZHJlbi4KICAgICBpZiAoRWxlbWVudFNoYWRvdyogc2hhZG93ID0gdGhp
cy0+c2hhZG93KCkpIHsKICAgICAgICAgcGFyZW50UHVzaGVyLnB1c2goKTsKLSAgICAgICAgc2hh
ZG93LT5hdHRhY2goKTsKKyAgICAgICAgc2hhZG93LT5hdHRhY2goY29udGV4dCk7CiAgICAgfSBl
bHNlIGlmIChmaXJzdENoaWxkKCkpCiAgICAgICAgIHBhcmVudFB1c2hlci5wdXNoKCk7CiAKQEAg
LTE0NzksOCArMTQ3OSw4IEBAIHZvaWQgRWxlbWVudDo6ZGV0YWNoKGNvbnN0IEF0dGFjaENvbnRl
eHQmIGNvbnRleHQpCiAgICAgfQogCiAgICAgaWYgKEVsZW1lbnRTaGFkb3cqIHNoYWRvdyA9IHRo
aXMtPnNoYWRvdygpKSB7Ci0gICAgICAgIGRldGFjaENoaWxkcmVuSWZOZWVkZWQoKTsKLSAgICAg
ICAgc2hhZG93LT5kZXRhY2goKTsKKyAgICAgICAgZGV0YWNoQ2hpbGRyZW5JZk5lZWRlZChjb250
ZXh0KTsKKyAgICAgICAgc2hhZG93LT5kZXRhY2goY29udGV4dCk7CiAgICAgfQogCiAgICAgLy8g
RG8gbm90IHJlbW92ZSB0aGUgZWxlbWVudCdzIGhvdmVyZWQgYW5kIGFjdGl2ZSBzdGF0dXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmNwcAppbmRleCA4ODU5MjAzLi42ZjhlMzAzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuY3BwCkBAIC03NywyMSArNzcsMjcgQEAgdm9pZCBF
bGVtZW50U2hhZG93OjpyZW1vdmVTaGFkb3dSb290KCkKICAgICBtX2Rpc3RyaWJ1dG9yLmludmFs
aWRhdGVEaXN0cmlidXRpb24oc2hhZG93SG9zdCk7CiB9CiAKLXZvaWQgRWxlbWVudFNoYWRvdzo6
YXR0YWNoKCkKK3ZvaWQgRWxlbWVudFNoYWRvdzo6YXR0YWNoKGNvbnN0IE5vZGU6OkF0dGFjaENv
bnRleHQmIGNvbnRleHQpCiB7CiAgICAgQ29udGVudERpc3RyaWJ1dG9yOjplbnN1cmVEaXN0cmli
dXRpb24oc2hhZG93Um9vdCgpKTsKIAorICAgIE5vZGU6OkF0dGFjaENvbnRleHQgY2hpbGRyZW5D
b250ZXh0KGNvbnRleHQpOworICAgIGNoaWxkcmVuQ29udGV4dC5yZXNvbHZlZFN0eWxlID0gMDsK
KwogICAgIGlmIChTaGFkb3dSb290KiByb290ID0gc2hhZG93Um9vdCgpKSB7CiAgICAgICAgIGlm
ICghcm9vdC0+YXR0YWNoZWQoKSkKLSAgICAgICAgICAgIHJvb3QtPmF0dGFjaCgpOworICAgICAg
ICAgICAgcm9vdC0+YXR0YWNoKGNoaWxkcmVuQ29udGV4dCk7CiAgICAgfQogfQogCi12b2lkIEVs
ZW1lbnRTaGFkb3c6OmRldGFjaCgpCit2b2lkIEVsZW1lbnRTaGFkb3c6OmRldGFjaChjb25zdCBO
b2RlOjpBdHRhY2hDb250ZXh0JiBjb250ZXh0KQogeworICAgIE5vZGU6OkF0dGFjaENvbnRleHQg
Y2hpbGRyZW5Db250ZXh0KGNvbnRleHQpOworICAgIGNoaWxkcmVuQ29udGV4dC5yZXNvbHZlZFN0
eWxlID0gMDsKKwogICAgIGlmIChTaGFkb3dSb290KiByb290ID0gc2hhZG93Um9vdCgpKSB7CiAg
ICAgICAgIGlmIChyb290LT5hdHRhY2hlZCgpKQotICAgICAgICAgICAgcm9vdC0+ZGV0YWNoKCk7
CisgICAgICAgICAgICByb290LT5kZXRhY2goY2hpbGRyZW5Db250ZXh0KTsKICAgICB9CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmggYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudFNoYWRvdy5oCmluZGV4IDNkNTA0ZTguLmRlMWIxYmQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50U2hhZG93LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnRTaGFkb3cuaApAQCAtNTYsOCArNTYsOCBAQCBwdWJsaWM6CiAKICAg
ICBTaGFkb3dSb290KiBhZGRTaGFkb3dSb290KEVsZW1lbnQqIHNoYWRvd0hvc3QsIFNoYWRvd1Jv
b3Q6OlNoYWRvd1Jvb3RUeXBlKTsKIAotICAgIHZvaWQgYXR0YWNoKCk7Ci0gICAgdm9pZCBkZXRh
Y2goKTsKKyAgICB2b2lkIGF0dGFjaChjb25zdCBOb2RlOjpBdHRhY2hDb250ZXh0Jik7CisgICAg
dm9pZCBkZXRhY2goY29uc3QgTm9kZTo6QXR0YWNoQ29udGV4dCYpOwogCiAgICAgYm9vbCBjaGls
ZE5lZWRzU3R5bGVSZWNhbGMoKSBjb25zdDsKICAgICBib29sIG5lZWRzU3R5bGVSZWNhbGMoKSBj
b25zdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Ob2RlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vTm9kZS5oCmluZGV4IGE2NDEzMjAuLjkxNGIxZWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Ob2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL05vZGUuaApAQCAt
ODMxLDggKzgzMSwxMSBAQCBpbmxpbmUgdm9pZCBOb2RlOjpyZWF0dGFjaElmQXR0YWNoZWQoY29u
c3QgQXR0YWNoQ29udGV4dCYgY29udGV4dCkKIAogaW5saW5lIHZvaWQgTm9kZTo6bGF6eVJlYXR0
YWNoKFNob3VsZFNldEF0dGFjaGVkIHNob3VsZFNldEF0dGFjaGVkKQogeworICAgIEF0dGFjaENv
bnRleHQgY29udGV4dDsKKyAgICBjb250ZXh0LnBlcmZvcm1pbmdSZWF0dGFjaCA9IHRydWU7CisK
ICAgICBpZiAoYXR0YWNoZWQoKSkKLSAgICAgICAgZGV0YWNoKCk7CisgICAgICAgIGRldGFjaChj
b250ZXh0KTsKICAgICBsYXp5QXR0YWNoKHNob3VsZFNldEF0dGFjaGVkKTsKIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>