<?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>151456</bug_id>
          
          <creation_ts>2015-11-19 12:19:36 -0800</creation_ts>
          <short_desc>Modern IDB: IDBFactory.deleteDatabase() support</short_desc>
          <delta_ts>2015-11-20 10:55:51 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>Safari 9</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>149117</blocked>
    
    <blocked>151481</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brady Eidson">beidson</reporter>
          <assigned_to name="Brady Eidson">beidson</assigned_to>
          <cc>achristensen</cc>
    
    <cc>alecflett</cc>
    
    <cc>commit-queue</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jsbell</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1143379</commentid>
    <comment_count>0</comment_count>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-11-19 12:19:36 -0800</bug_when>
    <thetext>Modern IDB: Full deleteDatabase support

The factory call already makes it to the server, but it does nothing there.

It should do something.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143579</commentid>
    <comment_count>1</comment_count>
      <attachid>265940</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2015-11-19 22:01:47 -0800</bug_when>
    <thetext>Created attachment 265940
Patch v1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143704</commentid>
    <comment_count>2</comment_count>
      <attachid>265940</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-20 10:55:47 -0800</bug_when>
    <thetext>Comment on attachment 265940
Patch v1

Clearing flags on attachment: 265940

Committed r192687: &lt;http://trac.webkit.org/changeset/192687&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1143705</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-20 10:55:51 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>265940</attachid>
            <date>2015-11-19 22:01:47 -0800</date>
            <delta_ts>2015-11-20 10:55:47 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>35784</size>
            <attacher name="Brady Eidson">beidson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwYzhhOWUzLi44NWMyN2YyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTUtMTEt
MTkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgorCisgICAgICAgIE1vZGVybiBJ
REI6IElEQkZhY3RvcnkuZGVsZXRlRGF0YWJhc2UoKSBzdXBwb3J0LgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUxNDU2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vZGVsZXRlZGF0YWJhc2UtMS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVkYXRhYmFzZS0xLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIHN0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVkYXRhYmFzZS0yLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWRhdGFi
YXNlLTIuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Rl
bGV0ZWRhdGFiYXNlLXJlcXVlc3QtZXZlbnQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHN0b3Jh
Z2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVkYXRhYmFzZS1yZXF1ZXN0LWV2ZW50Lmh0bWw6CisK
IDIwMTUtMTEtMTkgIFJ5YW4gSGFkZGFkICA8cnlhbmhhZGRhZEBhcHBsZS5jb20+CiAKICAgICAg
ICAgU2tpcCBtb3JlIG1lZGlhc3RyZWFtIHRlc3RzIHRoYXQgY3Jhc2ggd2hlbiBwYWludGluZyBh
IG1vY2sgdmlkZW8gc291cmNlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2RlbGV0ZWRhdGFiYXNlLTEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWRhdGFiYXNlLTEtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjM4OTNmODYKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlZGF0YWJhc2Ut
MS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGhpcyB0ZXN0cyB0aGF0IGlmIGRlbGV0
ZURhdGFiYXNlIGlzIGNhbGxlZCB3aGlsZSB0aGVyZSBpcyBhbHJlYWR5IGFuIG9wZW4gY29ubmVj
dGlvbiB0byB0aGUgZGF0YWJhc2UgdGhhdCB0aGUgb3BlbiBjb25uZWN0aW9uIGdldHMgdGhlIGFw
cHJvcHJpYXRlIHZlcnNpb25DaGFuZ2UgZXZlbnQuCitJbml0aWFsIHVwZ3JhZGUgb2xkIHZlcnNp
b24gLSAwIG5ldyB2ZXJzaW9uIC0gMQorVmVyc2lvbiBjaGFuZ2UgY29tcGxldGUKK1JlcXVlc3Rp
bmcgZGVsZXRlRGF0YWJhc2UKK0ZpcnN0IGNvbm5lY3Rpb24gcmVjZWl2ZWQgdmVyc2lvbmNoYW5n
ZSBldmVudDogb2xkVmVyc2lvbiAxLCBuZXdWZXJzaW9uIDAKK0RlbGV0ZSBkYXRhYmFzZSBzdWNj
ZXNzOiBvbGRWZXJzaW9uIDEsIG5ld1ZlcnNpb24gMAorUmVjcmVhdGluZyBkYXRhYmFzZSB0byBt
YWtlIHN1cmUgaXQncyBuZXcgYW5kIGVtcHR5CitTZWNvbmQgdXBncmFkZSBvbGQgdmVyc2lvbiAt
IDAgbmV3IHZlcnNpb24gLSAxCitVbmFibGUgdG8gZ2V0IG9iamVjdCBzdG9yZSBpbiBzZWNvbmQg
dXBncmFkZSB0cmFuc2FjdGlvbiAod2hpY2ggaXMgY29ycmVjdCBiZWNhdXNlIGl0IHNob3VsZCBu
b3QgYmUgdGhlcmUpCitTZWNvbmQgZGF0YWJhc2UgdXBncmFkZSBzdWNjZXNzCitEb25lCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVkYXRh
YmFzZS0xLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRl
ZGF0YWJhc2UtMS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmEwOTQx
Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vZGVsZXRlZGF0YWJhc2UtMS5odG1sCkBAIC0wLDAgKzEsMTM0IEBACitUaGlzIHRlc3RzIHRo
YXQgaWYgZGVsZXRlRGF0YWJhc2UgaXMgY2FsbGVkIHdoaWxlIHRoZXJlIGlzIGFscmVhZHkgYW4g
b3BlbiBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZSB0aGF0IHRoZSBvcGVuIGNvbm5lY3Rpb24g
Z2V0cyB0aGUgYXBwcm9wcmlhdGUgdmVyc2lvbkNoYW5nZSBldmVudC48YnI+Cis8ZGl2IGlkPSJs
b2dnZXIiPjwvZGl2PgorPHNjcmlwdD4KKworaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
Cit9CisKK2Z1bmN0aW9uIGRvbmUoKQoreworICAgIGxvZygiRG9uZSIpOworICAgIGlmICh3aW5k
b3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK2Z1
bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJsb2dn
ZXIiKS5pbm5lckhUTUwgKz0gbWVzc2FnZSArICI8YnI+IjsKK30KKwordmFyIHJlcXVlc3QgPSB3
aW5kb3cuaW5kZXhlZERCLm9wZW4oIkRlbGV0ZURhdGFiYXNlMVRlc3REYXRhYmFzZSIpOworcmVx
dWVzdC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpCit7CisgICAgbG9nKCJVbmV4cGVjdGVkIHN1Y2Nl
c3MiKTsKKwlkb25lKCk7Cit9CityZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbihlKQoreworICAg
IGxvZygiVW5leHBlY3RlZCBlcnJvciIpOworCWRvbmUoKTsKK30KKworcmVxdWVzdC5vbnVwZ3Jh
ZGVuZWVkZWQgPSBmdW5jdGlvbihlKQoreworICAgIGxvZygiSW5pdGlhbCB1cGdyYWRlIG9sZCB2
ZXJzaW9uIC0gIiArIGUub2xkVmVyc2lvbiArICIgbmV3IHZlcnNpb24gLSAiICsgZS5uZXdWZXJz
aW9uKTsKKyAgICAKKyAgICB2YXIgdmVyc2lvblRyYW5zYWN0aW9uID0gcmVxdWVzdC50cmFuc2Fj
dGlvbjsKKyAgICB2YXIgZGF0YWJhc2UgPSBldmVudC50YXJnZXQucmVzdWx0OworICAgIHZhciBv
YmplY3RTdG9yZSA9IGRhdGFiYXNlLmNyZWF0ZU9iamVjdFN0b3JlKCJUZXN0T2JqZWN0U3RvcmUi
KTsKKyAgICBvYmplY3RTdG9yZS5wdXQoIlRoaXMgaXMgYSByZWNvcmQiLCAxKTsKKyAgICAgICAg
CisgICAgcmVxdWVzdC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oKQorICAgIHsK
KyAgICAgICAgbG9nKCJWZXJzaW9uIGNoYW5nZSBjb21wbGV0ZSIpOworICAgICAgICB2YXIgY29u
bmVjdGlvbiA9IHJlcXVlc3QudHJhbnNhY3Rpb24uZGI7CisgICAgICAgIGNvbm5lY3Rpb24ub252
ZXJzaW9uY2hhbmdlID0gZnVuY3Rpb24oZSkKKyAgICAgICAgeworICAgICAgICAgICAgbG9nKCJG
aXJzdCBjb25uZWN0aW9uIHJlY2VpdmVkIHZlcnNpb25jaGFuZ2UgZXZlbnQ6IG9sZFZlcnNpb24g
IiArIGUub2xkVmVyc2lvbiArICIsIG5ld1ZlcnNpb24gIiArIGUubmV3VmVyc2lvbik7CisgICAg
ICAgICAgICBjb25uZWN0aW9uLmNsb3NlKCk7CisgICAgICAgIH0KKyAgICAgICAgY29udGludWVU
ZXN0MSgpOworICAgIH0KKyAgICByZXF1ZXN0LnRyYW5zYWN0aW9uLm9uYWJvcnQgPSBmdW5jdGlv
bigpCisgICAgeworICAgICAgICBsb2coIlZlcnNpb24gY2hhbmdlIHVuZXhwZWN0ZWQgYWJvcnQi
KTsKKyAgICAgICAgZG9uZSgpOworICAgIH0KKyAgICByZXF1ZXN0LnRyYW5zYWN0aW9uLm9uZXJy
b3IgPSBmdW5jdGlvbigpCisgICAgeworICAgICAgICBsb2coIlZlcnNpb24gY2hhbmdlIHVuZXhw
ZWN0ZWQgZXJyb3IiKTsKKyAgICAgICAgZG9uZSgpOworICAgIH0KK30KKworZnVuY3Rpb24gY29u
dGludWVUZXN0MSgpCit7CisgICAgbG9nKCJSZXF1ZXN0aW5nIGRlbGV0ZURhdGFiYXNlIik7Cisg
ICAgdmFyIHJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKCJEZWxldGVE
YXRhYmFzZTFUZXN0RGF0YWJhc2UiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9u
KGUpCisgICAgeworICAgICAgICBsb2coIkRlbGV0ZSBkYXRhYmFzZSBzdWNjZXNzOiBvbGRWZXJz
aW9uICIgKyBlLm9sZFZlcnNpb24gKyAiLCBuZXdWZXJzaW9uICIgKyBlLm5ld1ZlcnNpb24pOwor
ICAgICAgICBjb250aW51ZVRlc3QyKCk7CisgICAgfQorICAgIHJlcXVlc3Qub25lcnJvciA9IGZ1
bmN0aW9uKGUpCisgICAgeworICAgICAgICBsb2coIkRlbGV0ZSBkYXRhYmFzZSB1bmV4cGVjdGVk
IGVycm9yIik7CisgICAgICAgIGRvbmUoKTsKKyAgICB9CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVu
ZWVkZWQgPSBmdW5jdGlvbihlKQorICAgIHsKKyAgICAgICAgbG9nKCJEZWxldGUgZGF0YWJhc2Ug
dW5leHBlY3RlZCB1cGdyYWRlbmVlZGVkIik7CisgICAgCWRvbmUoKTsKKyAgICB9Cit9CisKK2Z1
bmN0aW9uIGNvbnRpbnVlVGVzdDIoKQoreworICAgIGxvZygiUmVjcmVhdGluZyBkYXRhYmFzZSB0
byBtYWtlIHN1cmUgaXQncyBuZXcgYW5kIGVtcHR5Iik7CisgICAgdmFyIHJlcXVlc3QgPSB3aW5k
b3cuaW5kZXhlZERCLm9wZW4oIkRlbGV0ZURhdGFiYXNlMVRlc3REYXRhYmFzZSIpOworCisgICAg
cmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKQorICAgIHsKKyAgICAgICAgbG9n
KCJTZWNvbmQgdXBncmFkZSBvbGQgdmVyc2lvbiAtICIgKyBlLm9sZFZlcnNpb24gKyAiIG5ldyB2
ZXJzaW9uIC0gIiArIGUubmV3VmVyc2lvbik7CisgICAgICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rp
b24gPSByZXF1ZXN0LnRyYW5zYWN0aW9uOworICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAg
ICAgICAgIHZhciBvYmplY3RTdG9yZSA9IHZlcnNpb25UcmFuc2FjdGlvbi5vYmplY3RTdG9yZSgi
VGVzdE9iamVjdFN0b3JlIik7CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAgICAgbG9n
KCJVbmFibGUgdG8gZ2V0IG9iamVjdCBzdG9yZSBpbiBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlv
biAod2hpY2ggaXMgY29ycmVjdCBiZWNhdXNlIGl0IHNob3VsZCBub3QgYmUgdGhlcmUpIik7Cisg
ICAgICAgIH0KKworICAgICAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0
aW9uKGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZygiU2Vjb25kIGRhdGFiYXNlIHVwZ3Jh
ZGUgc3VjY2VzcyIpOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9CisgICAgICAgIAor
ICAgICAgICB2ZXJzaW9uVHJhbnNhY3Rpb24ub25hYm9ydCA9IGZ1bmN0aW9uKGUpCisgICAgICAg
IHsKKyAgICAgICAgICAgIGxvZygiU2Vjb25kIGRhdGFiYXNlIHVwZ3JhZGUgdW5leHBlY3RlZCBh
Ym9ydCIpOworICAgICAgICAgICAgZG9uZSgpOworICAgICAgICB9CisgICAgICAgICAgICAKKyAg
ICAgICAgdmVyc2lvblRyYW5zYWN0aW9uLm9uZXJyb3IgPSBmdW5jdGlvbihlKQorICAgICAgICB7
CisgICAgICAgICAgICBsb2coIlNlY29uZCBkYXRhYmFzZSB1cGdyYWRlIHVuZXhwZWN0ZWQgZXJy
b3IiKTsKKyAgICAgICAgICAgIGRvbmUoKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIHJlcXVl
c3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkKKyAgICB7CisgICAgICAgIGxvZygiU2Vjb25kIGRh
dGFiYXNlIG9wZW5pbmcgdW5leHBlY3RlZCBzdWNjZXNzIik7CisgICAgICAgIGRvbmUoKTsKKyAg
ICB9CisgICAgCisgICAgcmVxdWVzdC5vbmVycm9yID0gZnVuY3Rpb24oZSkKKyAgICB7CisgICAg
ICAgIGxvZygiU2Vjb25kIGRhdGFiYXNlIG9wZW5pbmcgdW5leHBlY3RlZCBlcnJvciIpOworICAg
ICAgICBkb25lKCk7CisgICAgfQorfQorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlZGF0YWJhc2UtMi1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlZGF0YWJhc2UtMi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uN2ZhMzg1Ygot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9k
ZWxldGVkYXRhYmFzZS0yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEzIEBACitUaGlzIHRlc3Rz
IHRoYXQgaWYgZGVsZXRlRGF0YWJhc2UgaXMgY2FsbGVkIHdoaWxlIHRoZXJlIGlzIGFscmVhZHkg
YW4gb3BlbiBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZSB0aGF0IHRoZSBvcGVuIGNvbm5lY3Rp
b24gZ2V0cyB0aGUgYXBwcm9wcmlhdGUgdmVyc2lvbkNoYW5nZSBldmVudC4KK1RoYXQgb3BlbiBj
b25uZWN0aW9uIGFsc28gaGFzIGFuIGluLXByb2dyZXNzIHRyYW5zYWN0aW9uIGF0IHRoZSB0aW1l
IGl0IGdldHMgdGhlIHZlcnNpb25DaGFuZ2UgZXZlbnQuCitJbml0aWFsIHVwZ3JhZGUgb2xkIHZl
cnNpb24gLSAwIG5ldyB2ZXJzaW9uIC0gMQorUmVxdWVzdGluZyBkZWxldGVEYXRhYmFzZQorRmly
c3QgY29ubmVjdGlvbiByZWNlaXZlZCB2ZXJzaW9uY2hhbmdlIGV2ZW50OiBvbGRWZXJzaW9uIDAs
IG5ld1ZlcnNpb24gMAorRmlyc3QgdmVyc2lvbiBjaGFuZ2UgY29tcGxldGUKK0RlbGV0ZSBkYXRh
YmFzZSBzdWNjZXNzOiBvbGRWZXJzaW9uIDEsIG5ld1ZlcnNpb24gMAorUmVjcmVhdGluZyBkYXRh
YmFzZSB0byBtYWtlIHN1cmUgaXQncyBuZXcgYW5kIGVtcHR5CitTZWNvbmQgdXBncmFkZSBvbGQg
dmVyc2lvbiAtIDAgbmV3IHZlcnNpb24gLSAxCitVbmFibGUgdG8gZ2V0IG9iamVjdCBzdG9yZSBp
biBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiAod2hpY2ggaXMgY29ycmVjdCBiZWNhdXNlIGl0
IHNob3VsZCBub3QgYmUgdGhlcmUpCitTZWNvbmQgZGF0YWJhc2UgdXBncmFkZSBzdWNjZXNzCitE
b25lCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9k
ZWxldGVkYXRhYmFzZS0yLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rl
cm4vZGVsZXRlZGF0YWJhc2UtMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjRhM2RhYzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9tb2Rlcm4vZGVsZXRlZGF0YWJhc2UtMi5odG1sCkBAIC0wLDAgKzEsMTUxIEBACitUaGlz
IHRlc3RzIHRoYXQgaWYgZGVsZXRlRGF0YWJhc2UgaXMgY2FsbGVkIHdoaWxlIHRoZXJlIGlzIGFs
cmVhZHkgYW4gb3BlbiBjb25uZWN0aW9uIHRvIHRoZSBkYXRhYmFzZSB0aGF0IHRoZSBvcGVuIGNv
bm5lY3Rpb24gZ2V0cyB0aGUgYXBwcm9wcmlhdGUgdmVyc2lvbkNoYW5nZSBldmVudC48YnI+CitU
aGF0IG9wZW4gY29ubmVjdGlvbiBhbHNvIGhhcyBhbiBpbi1wcm9ncmVzcyB0cmFuc2FjdGlvbiBh
dCB0aGUgdGltZSBpdCBnZXRzIHRoZSB2ZXJzaW9uQ2hhbmdlIGV2ZW50Ljxicj4KKzxkaXYgaWQ9
ImxvZ2dlciI+PC9kaXY+Cis8c2NyaXB0PgorCitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKK30KKworZnVuY3Rpb24gZG9uZSgpCit7CisgICAgbG9nKCJEb25lIik7CisgICAgaWYgKHdp
bmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKwor
ZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxv
Z2dlciIpLmlubmVySFRNTCArPSBtZXNzYWdlICsgIjxicj4iOworfQorCit2YXIgc3RvcFNwaW5u
aW5nID0gZmFsc2U7CisKK3ZhciByZXF1ZXN0ID0gd2luZG93LmluZGV4ZWREQi5vcGVuKCJEZWxl
dGVEYXRhYmFzZTJUZXN0RGF0YWJhc2UiKTsKK3JlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24o
KQoreworICAgIGxvZygiVW5leHBlY3RlZCBzdWNjZXNzIik7CisJZG9uZSgpOworfQorcmVxdWVz
dC5vbmVycm9yID0gZnVuY3Rpb24oZSkKK3sKKyAgICBsb2coIlVuZXhwZWN0ZWQgZXJyb3IiKTsK
Kwlkb25lKCk7Cit9CisKK3JlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gZnVuY3Rpb24oZSkKK3sK
KyAgICBsb2coIkluaXRpYWwgdXBncmFkZSBvbGQgdmVyc2lvbiAtICIgKyBlLm9sZFZlcnNpb24g
KyAiIG5ldyB2ZXJzaW9uIC0gIiArIGUubmV3VmVyc2lvbik7CisgICAgCisgICAgdmFyIHZlcnNp
b25UcmFuc2FjdGlvbiA9IHJlcXVlc3QudHJhbnNhY3Rpb247CisgICAgdmFyIGRhdGFiYXNlID0g
ZXZlbnQudGFyZ2V0LnJlc3VsdDsKKyAgICB2YXIgb2JqZWN0U3RvcmUgPSBkYXRhYmFzZS5jcmVh
dGVPYmplY3RTdG9yZSgiVGVzdE9iamVjdFN0b3JlIik7CisgICAgb2JqZWN0U3RvcmUucHV0KCJU
aGlzIGlzIGEgcmVjb3JkIiwgMSk7CisgICAgCisgICAgLy8gU3BpbiB0aGUgdHJhbnNhY3Rpb24g
dW50aWwgdG9sZCB0byBzdG9wIHNwaW5uaW5nIGl0LgorICAgIHZhciBrZWVwR29pbmcgPSBmdW5j
dGlvbigpIHsKKyAgICAgICAgaWYgKCFzdG9wU3Bpbm5pbmcpCisgICAgICAgICAgICBvYmplY3RT
dG9yZS5nZXQoMSkub25zdWNjZXNzID0ga2VlcEdvaW5nOworICAgIH0KKyAgICBvYmplY3RTdG9y
ZS5nZXQoMSkub25zdWNjZXNzID0ga2VlcEdvaW5nOworCisgICAgZGF0YWJhc2Uub252ZXJzaW9u
Y2hhbmdlID0gZnVuY3Rpb24oZSkKKyAgICB7CisgICAgICAgIGxvZygiRmlyc3QgY29ubmVjdGlv
biByZWNlaXZlZCB2ZXJzaW9uY2hhbmdlIGV2ZW50OiBvbGRWZXJzaW9uICIgKyBlLm9sZFZlcnNp
b24gKyAiLCBuZXdWZXJzaW9uICIgKyBlLm5ld1ZlcnNpb24pOworICAgICAgICAKKyAgICAgICAg
dmFyIHNodXRFckRvd24gPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgIGRhdGFiYXNlLmNsb3Nl
KCk7CisgICAgICAgICAgICBzdG9wU3Bpbm5pbmcgPSB0cnVlOworICAgICAgICB9CisgICAgICAg
IHdpbmRvdy5zZXRUaW1lb3V0KHNodXRFckRvd24sIDApOworICAgIH0KKyAgICAgICAgCisgICAg
cmVxdWVzdC50cmFuc2FjdGlvbi5vbmNvbXBsZXRlID0gZnVuY3Rpb24oKQorICAgIHsKKyAgICAg
ICAgbG9nKCJGaXJzdCB2ZXJzaW9uIGNoYW5nZSBjb21wbGV0ZSIpOworICAgIH0KKyAgICAKKyAg
ICByZXF1ZXN0LnRyYW5zYWN0aW9uLm9uYWJvcnQgPSBmdW5jdGlvbigpCisgICAgeworICAgICAg
ICBsb2coIlZlcnNpb24gY2hhbmdlIHVuZXhwZWN0ZWQgYWJvcnQiKTsKKyAgICAgICAgZG9uZSgp
OworICAgIH0KKyAgICByZXF1ZXN0LnRyYW5zYWN0aW9uLm9uZXJyb3IgPSBmdW5jdGlvbigpCisg
ICAgeworICAgICAgICBsb2coIlZlcnNpb24gY2hhbmdlIHVuZXhwZWN0ZWQgZXJyb3IiKTsKKyAg
ICAgICAgZG9uZSgpOworICAgIH0KKyAgICAKKyAgICB3aW5kb3cuc2V0VGltZW91dChjb250aW51
ZVRlc3QxLCAwKTsKK30KKworZnVuY3Rpb24gY29udGludWVUZXN0MSgpCit7CisgICAgbG9nKCJS
ZXF1ZXN0aW5nIGRlbGV0ZURhdGFiYXNlIik7CisgICAgdmFyIHJlcXVlc3QgPSB3aW5kb3cuaW5k
ZXhlZERCLmRlbGV0ZURhdGFiYXNlKCJEZWxldGVEYXRhYmFzZTJUZXN0RGF0YWJhc2UiKTsKKyAg
ICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKGUpCisgICAgeworICAgICAgICBsb2coIkRl
bGV0ZSBkYXRhYmFzZSBzdWNjZXNzOiBvbGRWZXJzaW9uICIgKyBlLm9sZFZlcnNpb24gKyAiLCBu
ZXdWZXJzaW9uICIgKyBlLm5ld1ZlcnNpb24pOworICAgICAgICBjb250aW51ZVRlc3QyKCk7Cisg
ICAgfQorICAgIHJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uKGUpCisgICAgeworICAgICAgICBs
b2coIkRlbGV0ZSBkYXRhYmFzZSB1bmV4cGVjdGVkIGVycm9yIik7CisgICAgICAgIGRvbmUoKTsK
KyAgICB9CisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBmdW5jdGlvbihlKQorICAgIHsK
KyAgICAgICAgbG9nKCJEZWxldGUgZGF0YWJhc2UgdW5leHBlY3RlZCB1cGdyYWRlbmVlZGVkIik7
CisgICAgCWRvbmUoKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNvbnRpbnVlVGVzdDIoKQorewor
ICAgIGxvZygiUmVjcmVhdGluZyBkYXRhYmFzZSB0byBtYWtlIHN1cmUgaXQncyBuZXcgYW5kIGVt
cHR5Iik7CisgICAgdmFyIHJlcXVlc3QgPSB3aW5kb3cuaW5kZXhlZERCLm9wZW4oIkRlbGV0ZURh
dGFiYXNlMlRlc3REYXRhYmFzZSIpOworCisgICAgcmVxdWVzdC5vbnVwZ3JhZGVuZWVkZWQgPSBm
dW5jdGlvbihlKQorICAgIHsKKyAgICAgICAgbG9nKCJTZWNvbmQgdXBncmFkZSBvbGQgdmVyc2lv
biAtICIgKyBlLm9sZFZlcnNpb24gKyAiIG5ldyB2ZXJzaW9uIC0gIiArIGUubmV3VmVyc2lvbik7
CisgICAgICAgIHZhciB2ZXJzaW9uVHJhbnNhY3Rpb24gPSByZXF1ZXN0LnRyYW5zYWN0aW9uOwor
ICAgICAgICAKKyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHZhciBvYmplY3RTdG9yZSA9IHZl
cnNpb25UcmFuc2FjdGlvbi5vYmplY3RTdG9yZSgiVGVzdE9iamVjdFN0b3JlIik7CisgICAgICAg
IH0gY2F0Y2goZSkgeworICAgICAgICAgICAgbG9nKCJVbmFibGUgdG8gZ2V0IG9iamVjdCBzdG9y
ZSBpbiBzZWNvbmQgdXBncmFkZSB0cmFuc2FjdGlvbiAod2hpY2ggaXMgY29ycmVjdCBiZWNhdXNl
IGl0IHNob3VsZCBub3QgYmUgdGhlcmUpIik7CisgICAgICAgIH0KKworICAgICAgICB2ZXJzaW9u
VHJhbnNhY3Rpb24ub25jb21wbGV0ZSA9IGZ1bmN0aW9uKGUpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGxvZygiU2Vjb25kIGRhdGFiYXNlIHVwZ3JhZGUgc3VjY2VzcyIpOworICAgICAgICAgICAg
ZG9uZSgpOworICAgICAgICB9CisgICAgICAgIAorICAgICAgICB2ZXJzaW9uVHJhbnNhY3Rpb24u
b25hYm9ydCA9IGZ1bmN0aW9uKGUpCisgICAgICAgIHsKKyAgICAgICAgICAgIGxvZygiU2Vjb25k
IGRhdGFiYXNlIHVwZ3JhZGUgdW5leHBlY3RlZCBhYm9ydCIpOworICAgICAgICAgICAgZG9uZSgp
OworICAgICAgICB9CisgICAgICAgICAgICAKKyAgICAgICAgdmVyc2lvblRyYW5zYWN0aW9uLm9u
ZXJyb3IgPSBmdW5jdGlvbihlKQorICAgICAgICB7CisgICAgICAgICAgICBsb2coIlNlY29uZCBk
YXRhYmFzZSB1cGdyYWRlIHVuZXhwZWN0ZWQgZXJyb3IiKTsKKyAgICAgICAgICAgIGRvbmUoKTsK
KyAgICAgICAgfQorICAgIH0KKworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oZSkK
KyAgICB7CisgICAgICAgIGxvZygiU2Vjb25kIGRhdGFiYXNlIG9wZW5pbmcgdW5leHBlY3RlZCBz
dWNjZXNzIik7CisgICAgICAgIGRvbmUoKTsKKyAgICB9CisgICAgCisgICAgcmVxdWVzdC5vbmVy
cm9yID0gZnVuY3Rpb24oZSkKKyAgICB7CisgICAgICAgIGxvZygiU2Vjb25kIGRhdGFiYXNlIG9w
ZW5pbmcgdW5leHBlY3RlZCBlcnJvciIpOworICAgICAgICBkb25lKCk7CisgICAgfQorfQorPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4v
ZGVsZXRlZGF0YWJhc2UtcmVxdWVzdC1ldmVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9z
dG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVsZXRlZGF0YWJhc2UtcmVxdWVzdC1ldmVudC1leHBl
Y3RlZC50eHQKaW5kZXggYzllM2QxZC4uZGEwZWMzNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2RlbGV0ZWRhdGFiYXNlLXJlcXVlc3QtZXZlbnQtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxl
dGVkYXRhYmFzZS1yZXF1ZXN0LWV2ZW50LWV4cGVjdGVkLnR4dApAQCAtMSw2ICsxLDUgQEAKIEFM
RVJUOiBbb2JqZWN0IElEQk9wZW5EQlJlcXVlc3RdCi1BTEVSVDogZXJyb3IgW29iamVjdCBFdmVu
dF0KK0FMRVJUOiBzdWNjZXNzCiBBTEVSVDogRG9uZQogVGhpcyB0ZXN0IGNhbGxzIGRlbGV0ZURh
dGFiYXNlIG9uIHdpbmRvdy5pbmRleGVkREIgYW5kIHZlcmlmaWVzIHRoYXQgYW4gZXZlbnQgaXMg
ZmlyZWQgYXQgdGhlIHJlcXVlc3QuCi1XaGlsZSBhdCB0aGlzIHN0YWdlIGluIG1vZGVybiBJbmRl
eGVkREIgZGV2ZWxvcG1lbnQsIHRoYXQgZXZlbnQgaXMgaGFyZGNvZGVkIHRvIGJlIGFuIGVycm9y
LgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9tb2Rlcm4vZGVs
ZXRlZGF0YWJhc2UtcmVxdWVzdC1ldmVudC5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvbW9kZXJuL2RlbGV0ZWRhdGFiYXNlLXJlcXVlc3QtZXZlbnQuaHRtbAppbmRleCAzNjFm
N2RmLi41ODVkYWY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi9t
b2Rlcm4vZGVsZXRlZGF0YWJhc2UtcmVxdWVzdC1ldmVudC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L3N0b3JhZ2UvaW5kZXhlZGRiL21vZGVybi9kZWxldGVkYXRhYmFzZS1yZXF1ZXN0LWV2ZW50Lmh0
bWwKQEAgLTEsNSArMSw0IEBACiBUaGlzIHRlc3QgY2FsbHMgZGVsZXRlRGF0YWJhc2Ugb24gd2lu
ZG93LmluZGV4ZWREQiBhbmQgdmVyaWZpZXMgdGhhdCBhbiBldmVudCBpcyBmaXJlZCBhdCB0aGUg
cmVxdWVzdC48YnI+Ci1XaGlsZSBhdCB0aGlzIHN0YWdlIGluIG1vZGVybiBJbmRleGVkREIgZGV2
ZWxvcG1lbnQsIHRoYXQgZXZlbnQgaXMgaGFyZGNvZGVkIHRvIGJlIGFuIGVycm9yLjxicj4KIDxz
Y3JpcHQ+CiAKIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IDU4NWJkNzYu
LjY5MGFkM2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw1NSBAQAorMjAxNS0xMS0xOSAgQnJhZHkg
RWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgTW9kZXJuIElEQjogSURCRmFj
dG9yeS5kZWxldGVEYXRhYmFzZSgpIHN1cHBvcnQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNTE0NTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogc3RvcmFnZS9pbmRleGVkZGIvbW9kZXJuL2Rl
bGV0ZWRhdGFiYXNlLTEuaHRtbAorICAgICAgICAgICAgICAgc3RvcmFnZS9pbmRleGVkZGIvbW9k
ZXJuL2RlbGV0ZWRhdGFiYXNlLTIuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIv
Y2xpZW50L0lEQkRhdGFiYXNlSW1wbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6
OklEQkRhdGFiYXNlOjpoYXNQZW5kaW5nQWN0aXZpdHkpOgorICAgICAgICAoV2ViQ29yZTo6SURC
Q2xpZW50OjpJREJEYXRhYmFzZTo6ZGlkQ29tbWl0T3JBYm9ydFRyYW5zYWN0aW9uKToKKyAgICAg
ICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJbXBsLmg6CisgICAgICAg
IAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJPcGVuREJSZXF1ZXN0SW1w
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJDbGllbnQ6OklEQk9wZW5EQlJlcXVlc3Q6Om9u
RGVsZXRlRGF0YWJhc2VTdWNjZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OklEQkNsaWVudDo6SURC
T3BlbkRCUmVxdWVzdDo6cmVxdWVzdENvbXBsZXRlZCk6CisgICAgICAgICogTW9kdWxlcy9pbmRl
eGVkZGIvY2xpZW50L0lEQk9wZW5EQlJlcXVlc3RJbXBsLmg6CisgICAgICAgIAorICAgICAgICAq
IE1vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJUcmFuc2FjdGlvbkltcGwuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6SURCQ2xpZW50OjpJREJUcmFuc2FjdGlvbjo6aGFzUGVuZGluZ0FjdGl2aXR5
KTogRGVsZXRlZC4KKyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2VydmVy
L0lEQlNlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2ZXI6OklEQlNlcnZlcjo6
ZGVsZXRlRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpJREJTZXJ2ZXI6
OmRlbGV0ZVVuaXF1ZUlEQkRhdGFiYXNlKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9z
ZXJ2ZXIvSURCU2VydmVyLmg6CisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRi
L3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpVbmlxdWVJREJEYXRhYmFzZSk6CisgICAgICAgIChXZWJD
b3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpoYXNBbnlQZW5kaW5nQ2FsbGJhY2tz
KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6Om1heWJl
RGVsZXRlRGF0YWJhc2UpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJE
YXRhYmFzZTo6aGFuZGxlT3BlbkRhdGFiYXNlT3BlcmF0aW9ucyk6CisgICAgICAgIChXZWJDb3Jl
OjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpoYW5kbGVEZWxldGUpOgorICAgICAgICAo
V2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6bm90aWZ5Q29ubmVjdGlvbnNP
ZlZlcnNpb25DaGFuZ2VGb3JVcGdyYWRlKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6
VW5pcXVlSURCRGF0YWJhc2U6Om5vdGlmeUNvbm5lY3Rpb25zT2ZWZXJzaW9uQ2hhbmdlKToKKyAg
ICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6OmNvbm5lY3Rpb25D
bG9zZWRGcm9tQ2xpZW50KToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURC
RGF0YWJhc2U6OmVucXVldWVUcmFuc2FjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpJREJTZXJ2
ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjppbnZva2VEZWxldGVPclJ1blRyYW5zYWN0aW9uVGltZXIp
OgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6ZGVsZXRl
T3JSdW5UcmFuc2FjdGlvbnNUaW1lckZpcmVkKToKKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZl
cjo6VW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1BY3RpdmF0ZVRyYW5zYWN0aW9uSW5CYWNr
aW5nU3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFz
ZTo6aW5Qcm9ncmVzc1RyYW5zYWN0aW9uQ29tcGxldGVkKToKKyAgICAgICAgKFdlYkNvcmU6OklE
QlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6Omludm9rZVRyYW5zYWN0aW9uU2NoZWR1bGVyKTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OklEQlNlcnZlcjo6VW5pcXVlSURCRGF0YWJhc2U6
OnRyYW5zYWN0aW9uU2NoZWR1bGluZ1RpbWVyRmlyZWQpOiBEZWxldGVkLgorICAgICAgICAqIE1v
ZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6SURCU2VydmVyOjpVbmlxdWVJREJEYXRhYmFzZTo6aWRlbnRpZmllcik6CisgICAgICAg
IChXZWJDb3JlOjpJREJTZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlOjpkZWxldGVQZW5kaW5nKToK
KyAgICAgICAgCisgICAgICAgICogTW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlc3VsdERh
dGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVzdWx0RGF0YTo6ZGVsZXRlRGF0YWJhc2VT
dWNjZXNzKToKKyAgICAgICAgKiBNb2R1bGVzL2luZGV4ZWRkYi9zaGFyZWQvSURCUmVzdWx0RGF0
YS5oOgorCiAyMDE1LTExLTE5ICBCcmlhbiBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgogCiAgICAg
ICAgIFdlYiBJbnNwZWN0b3I6IHlhbmsva2lsbCBzaG9ydGN1dHMgKENUUkwrWSwgSykgZG9uJ3Qg
d29yayBpbiBDb25zb2xlIC8gUXVpY2tDb25zb2xlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJhc2VJbXBsLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJEYXRhYmFzZUltcGwuY3BwCmluZGV4
IGFlNmMwZGQuLjg5NTYwYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL2NsaWVudC9JREJEYXRhYmFzZUltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJEYXRhYmFzZUltcGwuY3BwCkBAIC02Miw2ICs2Miwx
MSBAQCBJREJEYXRhYmFzZTo6fklEQkRhdGFiYXNlKCkKICAgICBtX3NlcnZlckNvbm5lY3Rpb24t
PnVucmVnaXN0ZXJEYXRhYmFzZUNvbm5lY3Rpb24oKnRoaXMpOwogfQogCitib29sIElEQkRhdGFi
YXNlOjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAoreworICAgIHJldHVybiAhbV9jbG9zZWRJ
blNlcnZlcjsKK30KKwogY29uc3QgU3RyaW5nIElEQkRhdGFiYXNlOjpuYW1lKCkgY29uc3QKIHsK
ICAgICByZXR1cm4gbV9pbmZvLm5hbWUoKTsKQEAgLTMxOSw2ICszMjQsOSBAQCB2b2lkIElEQkRh
dGFiYXNlOjpkaWRDb21taXRPckFib3J0VHJhbnNhY3Rpb24oSURCVHJhbnNhY3Rpb24mIHRyYW5z
YWN0aW9uKQogICAgIG1fYWN0aXZlVHJhbnNhY3Rpb25zLnJlbW92ZSh0cmFuc2FjdGlvbi5pbmZv
KCkuaWRlbnRpZmllcigpKTsKICAgICBtX2NvbW1pdHRpbmdUcmFuc2FjdGlvbnMucmVtb3ZlKHRy
YW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCkpOwogICAgIG1fYWJvcnRpbmdUcmFuc2FjdGlv
bnMucmVtb3ZlKHRyYW5zYWN0aW9uLmluZm8oKS5pZGVudGlmaWVyKCkpOworCisgICAgaWYgKG1f
Y2xvc2VQZW5kaW5nKQorICAgICAgICBtYXliZUNsb3NlSW5TZXJ2ZXIoKTsKIH0KIAogdm9pZCBJ
REJEYXRhYmFzZTo6ZmlyZVZlcnNpb25DaGFuZ2VFdmVudCh1aW50NjRfdCByZXF1ZXN0ZWRWZXJz
aW9uKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50
L0lEQkRhdGFiYXNlSW1wbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQkRhdGFiYXNlSW1wbC5oCmluZGV4IDZhOTE3Y2QuLmRmODBiOGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJEYXRhYmFzZUltcGwu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCRGF0YWJh
c2VJbXBsLmgKQEAgLTk0LDYgKzk0LDggQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgbWF5YmVDbG9z
ZUluU2VydmVyKCk7CiAKKyAgICB2aXJ0dWFsIGJvb2wgaGFzUGVuZGluZ0FjdGl2aXR5KCkgY29u
c3Qgb3ZlcnJpZGUgZmluYWw7CisKICAgICBSZWY8SURCQ29ubmVjdGlvblRvU2VydmVyPiBtX3Nl
cnZlckNvbm5lY3Rpb247CiAgICAgSURCRGF0YWJhc2VJbmZvIG1faW5mbzsKICAgICB1aW50NjRf
dCBtX2RhdGFiYXNlQ29ubmVjdGlvbklkZW50aWZpZXIgeyAwIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCT3BlbkRCUmVxdWVzdEltcGwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQk9wZW5EQlJl
cXVlc3RJbXBsLmNwcAppbmRleCA4MGZmY2UxLi43NmJhZGZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURCT3BlbkRCUmVxdWVzdEltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJPcGVuREJS
ZXF1ZXN0SW1wbC5jcHAKQEAgLTEwMSw2ICsxMDEsMTcgQEAgdm9pZCBJREJPcGVuREJSZXF1ZXN0
OjpvblVwZ3JhZGVOZWVkZWQoY29uc3QgSURCUmVzdWx0RGF0YSYgcmVzdWx0RGF0YSkKICAgICBl
bnF1ZXVlRXZlbnQoSURCVmVyc2lvbkNoYW5nZUV2ZW50OjpjcmVhdGUob2xkVmVyc2lvbiwgbmV3
VmVyc2lvbiwgZXZlbnROYW1lcygpLnVwZ3JhZGVuZWVkZWRFdmVudCkpOwogfQogCit2b2lkIElE
Qk9wZW5EQlJlcXVlc3Q6Om9uRGVsZXRlRGF0YWJhc2VTdWNjZXNzKGNvbnN0IElEQlJlc3VsdERh
dGEmIHJlc3VsdERhdGEpCit7CisgICAgdWludDY0X3Qgb2xkVmVyc2lvbiA9IHJlc3VsdERhdGEu
ZGF0YWJhc2VJbmZvKCkudmVyc2lvbigpOworCisgICAgTE9HKEluZGV4ZWREQiwgIklEQk9wZW5E
QlJlcXVlc3Q6Om9uRGVsZXRlRGF0YWJhc2VTdWNjZXNzKCkgLSBjdXJyZW50IHZlcnNpb24gaXMg
JSIgUFJJdTY0LCBvbGRWZXJzaW9uKTsKKworICAgIG1fcmVhZHlTdGF0ZSA9IElEQlJlcXVlc3RS
ZWFkeVN0YXRlOjpEb25lOworCisgICAgZW5xdWV1ZUV2ZW50KElEQlZlcnNpb25DaGFuZ2VFdmVu
dDo6Y3JlYXRlKG9sZFZlcnNpb24sIDAsIGV2ZW50TmFtZXMoKS5zdWNjZXNzRXZlbnQpKTsKK30K
Kwogdm9pZCBJREJPcGVuREJSZXF1ZXN0OjpyZXF1ZXN0Q29tcGxldGVkKGNvbnN0IElEQlJlc3Vs
dERhdGEmIGRhdGEpCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIklEQk9wZW5EQlJlcXVlc3Q6OnJl
cXVlc3RDb21wbGV0ZWQiKTsKQEAgLTExNSw2ICsxMjYsOSBAQCB2b2lkIElEQk9wZW5EQlJlcXVl
c3Q6OnJlcXVlc3RDb21wbGV0ZWQoY29uc3QgSURCUmVzdWx0RGF0YSYgZGF0YSkKICAgICBjYXNl
IElEQlJlc3VsdFR5cGU6Ok9wZW5EYXRhYmFzZVVwZ3JhZGVOZWVkZWQ6CiAgICAgICAgIG9uVXBn
cmFkZU5lZWRlZChkYXRhKTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJREJSZXN1bHRUeXBl
OjpEZWxldGVEYXRhYmFzZVN1Y2Nlc3M6CisgICAgICAgIG9uRGVsZXRlRGF0YWJhc2VTdWNjZXNz
KGRhdGEpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBSRUxFQVNFX0FT
U0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvaW5kZXhlZGRiL2NsaWVudC9JREJPcGVuREJSZXF1ZXN0SW1wbC5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQk9wZW5EQlJlcXVlc3RJbXBsLmgKaW5k
ZXggZDVkNmUzYy4uZDkzZDcwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvY2xpZW50L0lEQk9wZW5EQlJlcXVlc3RJbXBsLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9pbmRleGVkZGIvY2xpZW50L0lEQk9wZW5EQlJlcXVlc3RJbXBsLmgKQEAgLTU4
LDYgKzU4LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIG9uRXJyb3IoY29uc3QgSURCUmVzdWx0RGF0
YSYpOwogICAgIHZvaWQgb25TdWNjZXNzKGNvbnN0IElEQlJlc3VsdERhdGEmKTsKICAgICB2b2lk
IG9uVXBncmFkZU5lZWRlZChjb25zdCBJREJSZXN1bHREYXRhJik7CisgICAgdm9pZCBvbkRlbGV0
ZURhdGFiYXNlU3VjY2Vzcyhjb25zdCBJREJSZXN1bHREYXRhJik7CiAKICAgICBJREJEYXRhYmFz
ZUlkZW50aWZpZXIgbV9kYXRhYmFzZUlkZW50aWZpZXI7CiAgICAgdWludDY0X3QgbV92ZXJzaW9u
IHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvY2xp
ZW50L0lEQlRyYW5zYWN0aW9uSW1wbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4
ZWRkYi9jbGllbnQvSURCVHJhbnNhY3Rpb25JbXBsLmNwcAppbmRleCA5YmNiNTFjLi4xNWQyMTJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9jbGllbnQvSURC
VHJhbnNhY3Rpb25JbXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9jbGllbnQvSURCVHJhbnNhY3Rpb25JbXBsLmNwcApAQCAtMjA1LDkgKzIwNSw2IEBAIGJvb2wg
SURCVHJhbnNhY3Rpb246OmNhblN1c3BlbmRGb3JQYWdlQ2FjaGUoKSBjb25zdAogCiBib29sIElE
QlRyYW5zYWN0aW9uOjpoYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogewotICAgIGlmIChtX3N0
YXRlID09IEluZGV4ZWREQjo6VHJhbnNhY3Rpb25TdGF0ZTo6SW5hY3RpdmUpCi0gICAgICAgIHJl
dHVybiAhbV90cmFuc2FjdGlvbk9wZXJhdGlvblF1ZXVlLmlzRW1wdHkoKSB8fCAhbV90cmFuc2Fj
dGlvbk9wZXJhdGlvbk1hcC5pc0VtcHR5KCk7Ci0KICAgICByZXR1cm4gbV9zdGF0ZSAhPSBJbmRl
eGVkREI6OlRyYW5zYWN0aW9uU3RhdGU6OkZpbmlzaGVkOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2VydmVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCmluZGV4IGRi
ZGJkOTguLjA3MzQzNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuY3BwCkBAIC0xMzUsMTEgKzEzNSwyMiBAQCB2b2lkIElE
QlNlcnZlcjo6ZGVsZXRlRGF0YWJhc2UoY29uc3QgSURCUmVxdWVzdERhdGEmIHJlcXVlc3REYXRh
KQogICAgICAgICAvLyB3ZWxsIGFzIG5vIHdheSB0byBtZXNzYWdlIGJhY2sgZmFpbHVyZS4KICAg
ICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAKLSAgICAvLyBGSVhNRTogRHVyaW5nIGJyaW5ndXAg
b2YgbW9kZXJuIElEQiwgdGhlIGRhdGFiYXNlIGRlbGV0aW9uIGlzIGEgbm8tb3AsIGFuZCBpcwot
ICAgIC8vIGltbWVkaWF0ZWx5IHJlcG9ydGVkIGJhY2sgdG8gdGhlIFdlYlByb2Nlc3MgYXMgZmFp
bHVyZS4KLSAgICBhdXRvIHJlc3VsdCA9IElEQlJlc3VsdERhdGE6OmVycm9yKHJlcXVlc3REYXRh
LnJlcXVlc3RJZGVudGlmaWVyKCksIElEQkVycm9yKElEQkV4Y2VwdGlvbkNvZGU6OlVua25vd24p
KTsKLSAgICBjb25uZWN0aW9uLT5kaWREZWxldGVEYXRhYmFzZShyZXN1bHQpOworCisgICAgYXV0
byogZGF0YWJhc2UgPSBtX3VuaXF1ZUlEQkRhdGFiYXNlTWFwLmdldChyZXF1ZXN0RGF0YS5kYXRh
YmFzZUlkZW50aWZpZXIoKSk7CisgICAgaWYgKCFkYXRhYmFzZSkgeworICAgICAgICBjb25uZWN0
aW9uLT5kaWREZWxldGVEYXRhYmFzZShJREJSZXN1bHREYXRhOjpkZWxldGVEYXRhYmFzZVN1Y2Nl
c3MocmVxdWVzdERhdGEucmVxdWVzdElkZW50aWZpZXIoKSwgSURCRGF0YWJhc2VJbmZvKHJlcXVl
c3REYXRhLmRhdGFiYXNlSWRlbnRpZmllcigpLmRhdGFiYXNlTmFtZSgpLCAwKSkpOworICAgICAg
ICByZXR1cm47CisgICAgfQorCisgICAgZGF0YWJhc2UtPmhhbmRsZURlbGV0ZSgqY29ubmVjdGlv
biwgcmVxdWVzdERhdGEpOworfQorCit2b2lkIElEQlNlcnZlcjo6ZGVsZXRlVW5pcXVlSURCRGF0
YWJhc2UoVW5pcXVlSURCRGF0YWJhc2UmIGRhdGFiYXNlKQoreworICAgIExPRyhJbmRleGVkREIs
ICJJREJTZXJ2ZXI6OmRlbGV0ZVVuaXF1ZUlEQkRhdGFiYXNlIik7CisKKyAgICBhdXRvIGRlbGV0
ZWREYXRhYmFzZSA9IG1fdW5pcXVlSURCRGF0YWJhc2VNYXAudGFrZShkYXRhYmFzZS5pZGVudGlm
aWVyKCkpOworICAgIEFTU0VSVF9VTlVTRUQoZGVsZXRlZERhdGFiYXNlLCBkZWxldGVkRGF0YWJh
c2UuZ2V0KCkgPT0gJmRhdGFiYXNlKTsKIH0KIAogdm9pZCBJREJTZXJ2ZXI6OmFib3J0VHJhbnNh
Y3Rpb24oY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVyJiB0cmFuc2FjdGlvbklkZW50aWZpZXIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURC
U2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvSURCU2Vy
dmVyLmgKaW5kZXggOTQwZmI5Mi4uYjIyNDNiNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL0lEQlNlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9JREJTZXJ2ZXIuaApAQCAtODMsNiArODMsOCBAQCBw
dWJsaWM6CiAgICAgdm9pZCByZWdpc3RlclRyYW5zYWN0aW9uKFVuaXF1ZUlEQkRhdGFiYXNlVHJh
bnNhY3Rpb24mKTsKICAgICB2b2lkIHVucmVnaXN0ZXJUcmFuc2FjdGlvbihVbmlxdWVJREJEYXRh
YmFzZVRyYW5zYWN0aW9uJik7CiAKKyAgICB2b2lkIGRlbGV0ZVVuaXF1ZUlEQkRhdGFiYXNlKFVu
aXF1ZUlEQkRhdGFiYXNlJik7CisKICAgICBzdGQ6OnVuaXF1ZV9wdHI8SURCQmFja2luZ1N0b3Jl
PiBjcmVhdGVCYWNraW5nU3RvcmUoY29uc3QgSURCRGF0YWJhc2VJZGVudGlmaWVyJik7CiAKIHBy
aXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2
ZXIvVW5pcXVlSURCRGF0YWJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVk
ZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmNwcAppbmRleCBiMDZkYzBjLi44YTI1MTMzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9zZXJ2ZXIvVW5pcXVl
SURCRGF0YWJhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3Nl
cnZlci9VbmlxdWVJREJEYXRhYmFzZS5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAgbmFtZXNwYWNlIElE
QlNlcnZlciB7CiBVbmlxdWVJREJEYXRhYmFzZTo6VW5pcXVlSURCRGF0YWJhc2UoSURCU2VydmVy
JiBzZXJ2ZXIsIGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYgaWRlbnRpZmllcikKICAgICA6
IG1fc2VydmVyKHNlcnZlcikKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQotICAgICwg
bV90cmFuc2FjdGlvblNjaGVkdWxpbmdUaW1lcigqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjp0
cmFuc2FjdGlvblNjaGVkdWxpbmdUaW1lckZpcmVkKQorICAgICwgbV9kZWxldGVPclJ1blRyYW5z
YWN0aW9uc1RpbWVyKCp0aGlzLCAmVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZU9yUnVuVHJhbnNh
Y3Rpb25zVGltZXJGaXJlZCkKIHsKIH0KIApAQCAtNjcsNiArNjcsNDQgQEAgdm9pZCBVbmlxdWVJ
REJEYXRhYmFzZTo6b3BlbkRhdGFiYXNlQ29ubmVjdGlvbihJREJDb25uZWN0aW9uVG9DbGllbnQm
IGNvbm5lY3Rpb24KICAgICBtX3NlcnZlci5wb3N0RGF0YWJhc2VUYXNrKGNyZWF0ZUNyb3NzVGhy
ZWFkVGFzaygqdGhpcywgJlVuaXF1ZUlEQkRhdGFiYXNlOjpvcGVuQmFja2luZ1N0b3JlLCBtX2lk
ZW50aWZpZXIpKTsKIH0KIAorYm9vbCBVbmlxdWVJREJEYXRhYmFzZTo6aGFzQW55UGVuZGluZ0Nh
bGxiYWNrcygpIGNvbnN0Cit7CisgICAgcmV0dXJuICFtX2Vycm9yQ2FsbGJhY2tzLmlzRW1wdHko
KQorICAgICAgICB8fCAhbV9rZXlEYXRhQ2FsbGJhY2tzLmlzRW1wdHkoKQorICAgICAgICB8fCAh
bV9nZXRSZXN1bHRDYWxsYmFja3MuaXNFbXB0eSgpCisgICAgICAgIHx8ICFtX2NvdW50Q2FsbGJh
Y2tzLmlzRW1wdHkoKTsKK30KKworYm9vbCBVbmlxdWVJREJEYXRhYmFzZTo6bWF5YmVEZWxldGVE
YXRhYmFzZSgpCit7CisgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKKyAgICBMT0coSW5kZXhl
ZERCLCAiKG1haW4pIFVuaXF1ZUlEQkRhdGFiYXNlOjptYXliZURlbGV0ZURhdGFiYXNlIik7CisK
KyAgICBpZiAoaGFzQW55T3BlbkNvbm5lY3Rpb25zKCkgfHwgIW1fY2xvc2VQZW5kaW5nRGF0YWJh
c2VDb25uZWN0aW9ucy5pc0VtcHR5KCkpIHsKKyAgICAgICAgLy8gRXhhY3RseSBvbmNlLCBub3Rp
ZnkgYWxsIG9wZW4gY29ubmVjdGlvbnMgb2YgdGhlIHBlbmRpbmcgZGVsZXRpb24uCisgICAgICAg
IGlmICghbV9oYXNOb3RpZmllZENvbm5lY3Rpb25zT2ZEZWxldGUpIHsKKyAgICAgICAgICAgIG5v
dGlmeUNvbm5lY3Rpb25zT2ZWZXJzaW9uQ2hhbmdlKDApOworICAgICAgICAgICAgbV9oYXNOb3Rp
ZmllZENvbm5lY3Rpb25zT2ZEZWxldGUgPSB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVy
biBmYWxzZTsKKyAgICB9CisKKyAgICBBU1NFUlQoIWhhc0FueVBlbmRpbmdDYWxsYmFja3MoKSk7
CisgICAgQVNTRVJUKG1faW5Qcm9ncmVzc1RyYW5zYWN0aW9ucy5pc0VtcHR5KCkpOworICAgIEFT
U0VSVChtX3BlbmRpbmdUcmFuc2FjdGlvbnMuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlQobV9vcGVu
RGF0YWJhc2VDb25uZWN0aW9ucy5pc0VtcHR5KCkpOworICAgIEFTU0VSVChtX3BlbmRpbmdPcGVu
RGF0YWJhc2VPcGVyYXRpb25zLmlzRW1wdHkoKSk7CisKKyAgICBmb3IgKGF1dG8mIG9wZXJhdGlv
biA6IG1fcGVuZGluZ0RlbGV0ZURhdGFiYXNlT3BlcmF0aW9ucykgeworICAgICAgICBBU1NFUlQo
bV9kYXRhYmFzZUluZm8pOworICAgICAgICBvcGVyYXRpb24tPmNvbm5lY3Rpb24oKS5kaWREZWxl
dGVEYXRhYmFzZShJREJSZXN1bHREYXRhOjpkZWxldGVEYXRhYmFzZVN1Y2Nlc3Mob3BlcmF0aW9u
LT5yZXF1ZXN0RGF0YSgpLnJlcXVlc3RJZGVudGlmaWVyKCksICptX2RhdGFiYXNlSW5mbykpOwor
ICAgIH0KKworICAgIG1fc2VydmVyLmRlbGV0ZVVuaXF1ZUlEQkRhdGFiYXNlKCp0aGlzKTsKKwor
ICAgIHJldHVybiB0cnVlOworfQorCiB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpoYW5kbGVPcGVu
RGF0YWJhc2VPcGVyYXRpb25zKCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpAQCAt
MTE5LDcgKzE1Nyw3IEBAIHZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmhhbmRsZU9wZW5EYXRhYmFz
ZU9wZXJhdGlvbnMoKQogICAgIH0KIAogICAgIC8vIE90aGVyd2lzZSB3ZSBoYXZlIHRvIG5vdGlm
eSBhbGwgdGhvc2Ugb3BlbiBjb25uZWN0aW9ucyBhbmQgd2FpdCBmb3IgdGhlbSB0byBjbG9zZS4K
LSAgICBub3RpZnlDb25uZWN0aW9uc09mVmVyc2lvbkNoYW5nZSgpOworICAgIG5vdGlmeUNvbm5l
Y3Rpb25zT2ZWZXJzaW9uQ2hhbmdlRm9yVXBncmFkZSgpOwogfQogCiBib29sIFVuaXF1ZUlEQkRh
dGFiYXNlOjpoYXNBbnlPcGVuQ29ubmVjdGlvbnMoKSBjb25zdApAQCAtMTY2LDYgKzIwNCwyMyBA
QCB1aW50NjRfdCBVbmlxdWVJREJEYXRhYmFzZTo6c3RvcmVDYWxsYmFjayhDb3VudENhbGxiYWNr
IGNhbGxiYWNrKQogICAgIHJldHVybiBpZGVudGlmaWVyOwogfQogCit2b2lkIFVuaXF1ZUlEQkRh
dGFiYXNlOjpoYW5kbGVEZWxldGUoSURCQ29ubmVjdGlvblRvQ2xpZW50JiBjb25uZWN0aW9uLCBj
b25zdCBJREJSZXF1ZXN0RGF0YSYgcmVxdWVzdERhdGEpCit7CisgICAgTE9HKEluZGV4ZWREQiwg
IihtYWluKSBVbmlxdWVJREJEYXRhYmFzZTo6aGFuZGxlRGVsZXRlIik7CisKKyAgICBhdXRvIG9w
ZXJhdGlvbiA9IElEQlNlcnZlck9wZXJhdGlvbjo6Y3JlYXRlKGNvbm5lY3Rpb24sIHJlcXVlc3RE
YXRhKTsKKyAgICBtX3BlbmRpbmdEZWxldGVEYXRhYmFzZU9wZXJhdGlvbnMuYXBwZW5kKFdURjo6
bW92ZShvcGVyYXRpb24pKTsKKworICAgIC8vIElmIGEgZGlmZmVyZW50IHJlcXVlc3QgaGFzIGFs
cmVhZHkgY29tZSBpbiB0byBkZWxldGUgdGhpcyBkYXRhYmFzZSwgdGhlcmUncyBub3RoaW5nIGxl
ZnQgdG8gZG8uCisgICAgLy8gQSBkZWxldGUgaXMgYWxyZWFkeSBpbiBwcm9ncmVzcywgYW5kIHRo
aXMgcmVxdWVzdCB3aWxsIGJlIGhhbmRsZWQgYWxvbmcgd2l0aCBhbGwgdGhlIHJlc3QuCisgICAg
aWYgKG1fZGVsZXRlUGVuZGluZykKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9kZWxldGVQZW5k
aW5nID0gdHJ1ZTsKKworICAgIG1heWJlRGVsZXRlRGF0YWJhc2UoKTsKK30KKwogdm9pZCBVbmlx
dWVJREJEYXRhYmFzZTo6c3RhcnRWZXJzaW9uQ2hhbmdlVHJhbnNhY3Rpb24oKQogewogICAgIExP
RyhJbmRleGVkREIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OnN0YXJ0VmVyc2lvbkNoYW5n
ZVRyYW5zYWN0aW9uIik7CkBAIC0xOTcsMTMgKzI1MiwxNiBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFi
YXNlOjpiZWdpblRyYW5zYWN0aW9uSW5CYWNraW5nU3RvcmUoY29uc3QgSURCVHJhbnNhY3Rpb25J
bmZvJgogICAgIG1fYmFja2luZ1N0b3JlLT5iZWdpblRyYW5zYWN0aW9uKGluZm8pOwogfQogCi12
b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpub3RpZnlDb25uZWN0aW9uc09mVmVyc2lvbkNoYW5nZSgp
Cit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpub3RpZnlDb25uZWN0aW9uc09mVmVyc2lvbkNoYW5n
ZUZvclVwZ3JhZGUoKQogewogICAgIEFTU0VSVChtX3ZlcnNpb25DaGFuZ2VPcGVyYXRpb24pOwog
ICAgIEFTU0VSVChtX3ZlcnNpb25DaGFuZ2VEYXRhYmFzZUNvbm5lY3Rpb24pOwogCi0gICAgdWlu
dDY0X3QgcmVxdWVzdGVkVmVyc2lvbiA9IG1fdmVyc2lvbkNoYW5nZU9wZXJhdGlvbi0+cmVxdWVz
dERhdGEoKS5yZXF1ZXN0ZWRWZXJzaW9uKCk7CisgICAgbm90aWZ5Q29ubmVjdGlvbnNPZlZlcnNp
b25DaGFuZ2UobV92ZXJzaW9uQ2hhbmdlT3BlcmF0aW9uLT5yZXF1ZXN0RGF0YSgpLnJlcXVlc3Rl
ZFZlcnNpb24oKSk7Cit9CiAKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6Om5vdGlmeUNvbm5lY3Rp
b25zT2ZWZXJzaW9uQ2hhbmdlKHVpbnQ2NF90IHJlcXVlc3RlZFZlcnNpb24pCit7CiAgICAgTE9H
KEluZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJREJEYXRhYmFzZTo6bm90aWZ5Q29ubmVjdGlvbnNP
ZlZlcnNpb25DaGFuZ2UgLSAlIiBQUkl1NjQsIHJlcXVlc3RlZFZlcnNpb24pOwogCiAgICAgLy8g
My4zLjcgInZlcnNpb25jaGFuZ2UiIHRyYW5zYWN0aW9uIHN0ZXBzCkBAIC03MzUsMTQgKzc5Mywy
NCBAQCB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpjb25uZWN0aW9uQ2xvc2VkRnJvbUNsaWVudChV
bmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24mCiAKICAgICBBU1NFUlQobV9vcGVuRGF0YWJhc2VD
b25uZWN0aW9ucy5jb250YWlucygmY29ubmVjdGlvbikpOwogCisgICAgRGVxdWU8UmVmUHRyPFVu
aXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24+PiBwZW5kaW5nVHJhbnNhY3Rpb25zOworICAgIHdo
aWxlICghbV9wZW5kaW5nVHJhbnNhY3Rpb25zLmlzRW1wdHkoKSkgeworICAgICAgICBhdXRvIHRy
YW5zYWN0aW9uID0gbV9wZW5kaW5nVHJhbnNhY3Rpb25zLnRha2VGaXJzdCgpOworICAgICAgICBp
ZiAoJnRyYW5zYWN0aW9uLT5kYXRhYmFzZUNvbm5lY3Rpb24oKSAhPSAmY29ubmVjdGlvbikKKyAg
ICAgICAgICAgIHBlbmRpbmdUcmFuc2FjdGlvbnMuYXBwZW5kKFdURjo6bW92ZSh0cmFuc2FjdGlv
bikpOworICAgIH0KKworICAgIGlmICghcGVuZGluZ1RyYW5zYWN0aW9ucy5pc0VtcHR5KCkpCisg
ICAgICAgIG1fcGVuZGluZ1RyYW5zYWN0aW9ucy5zd2FwKHBlbmRpbmdUcmFuc2FjdGlvbnMpOwor
CiAgICAgYXV0byByZW1vdmVkQ29ubmVjdGlvbiA9IG1fb3BlbkRhdGFiYXNlQ29ubmVjdGlvbnMu
dGFrZSgmY29ubmVjdGlvbik7CiAgICAgaWYgKHJlbW92ZWRDb25uZWN0aW9uLT5oYXNOb25GaW5p
c2hlZFRyYW5zYWN0aW9ucygpKSB7CiAgICAgICAgIG1fY2xvc2VQZW5kaW5nRGF0YWJhc2VDb25u
ZWN0aW9ucy5hZGQoV1RGOjptb3ZlKHJlbW92ZWRDb25uZWN0aW9uKSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICAvLyBOb3cgdGhhdCBhIGRhdGFiYXNlIGNvbm5lY3Rpb24gaGFzIGNs
b3NlZCwgcHJldmlvdXNseSBibG9ja2VkIHRyYW5zYWN0aW9ucyBtaWdodCBiZSBydW5uYWJsZS4K
LSAgICBpbnZva2VUcmFuc2FjdGlvblNjaGVkdWxlcigpOworICAgIC8vIE5vdyB0aGF0IGEgZGF0
YWJhc2UgY29ubmVjdGlvbiBoYXMgY2xvc2VkLCBwcmV2aW91c2x5IGJsb2NrZWQgb3BlcmF0aW9u
cyBtaWdodCBiZSBydW5uYWJsZS4KKyAgICBpbnZva2VEZWxldGVPclJ1blRyYW5zYWN0aW9uVGlt
ZXIoKTsKIH0KIAogdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZW5xdWV1ZVRyYW5zYWN0aW9uKFJl
ZjxVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uPiYmIHRyYW5zYWN0aW9uKQpAQCAtNzUzLDE5
ICs4MjEsMjMgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6ZW5xdWV1ZVRyYW5zYWN0aW9uKFJl
ZjxVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uPiYmIHQKIAogICAgIG1fcGVuZGluZ1RyYW5z
YWN0aW9ucy5hcHBlbmQoV1RGOjptb3ZlKHRyYW5zYWN0aW9uKSk7CiAKLSAgICBpbnZva2VUcmFu
c2FjdGlvblNjaGVkdWxlcigpOworICAgIGludm9rZURlbGV0ZU9yUnVuVHJhbnNhY3Rpb25UaW1l
cigpOwogfQogCi12b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjppbnZva2VUcmFuc2FjdGlvblNjaGVk
dWxlcigpCit2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjppbnZva2VEZWxldGVPclJ1blRyYW5zYWN0
aW9uVGltZXIoKQogewotICAgIGlmICghbV90cmFuc2FjdGlvblNjaGVkdWxpbmdUaW1lci5pc0Fj
dGl2ZSgpKQotICAgICAgICBtX3RyYW5zYWN0aW9uU2NoZWR1bGluZ1RpbWVyLnN0YXJ0T25lU2hv
dCgwKTsKKyAgICBpZiAoIW1fZGVsZXRlT3JSdW5UcmFuc2FjdGlvbnNUaW1lci5pc0FjdGl2ZSgp
KQorICAgICAgICBtX2RlbGV0ZU9yUnVuVHJhbnNhY3Rpb25zVGltZXIuc3RhcnRPbmVTaG90KDAp
OwogfQogCi12b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjp0cmFuc2FjdGlvblNjaGVkdWxpbmdUaW1l
ckZpcmVkKCkKK3ZvaWQgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZU9yUnVuVHJhbnNhY3Rpb25z
VGltZXJGaXJlZCgpCiB7Ci0gICAgTE9HKEluZGV4ZWREQiwgIihtYWluKSBVbmlxdWVJREJEYXRh
YmFzZTo6dHJhbnNhY3Rpb25TY2hlZHVsaW5nVGltZXJGaXJlZCIpOworICAgIExPRyhJbmRleGVk
REIsICIobWFpbikgVW5pcXVlSURCRGF0YWJhc2U6OmRlbGV0ZU9yUnVuVHJhbnNhY3Rpb25zVGlt
ZXJGaXJlZCIpOworCisgICAgaWYgKG1fZGVsZXRlUGVuZGluZyAmJiBtYXliZURlbGV0ZURhdGFi
YXNlKCkpCisgICAgICAgIHJldHVybjsKIAorICAgIC8vIElmIHRoZSBkYXRhYmFzZSB3YXMgbm90
IGRlbGV0ZWQgaW4gdGhlIHByZXZpb3VzIHN0ZXAsIHRyeSB0byBydW4gYSB0cmFuc2FjdGlvbiBu
b3cuCiAgICAgaWYgKG1fcGVuZGluZ1RyYW5zYWN0aW9ucy5pc0VtcHR5KCkpIHsKICAgICAgICAg
aWYgKCFoYXNBbnlPcGVuQ29ubmVjdGlvbnMoKSAmJiBtX3ZlcnNpb25DaGFuZ2VPcGVyYXRpb24p
IHsKICAgICAgICAgICAgIHN0YXJ0VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKCk7CkBAIC03ODUs
NyArODU3LDcgQEAgdm9pZCBVbmlxdWVJREJEYXRhYmFzZTo6dHJhbnNhY3Rpb25TY2hlZHVsaW5n
VGltZXJGaXJlZCgpCiAKICAgICAgICAgLy8gSWYgbm8gdHJhbnNhY3Rpb25zIHdlcmUgZGVmZXJy
ZWQsIGl0J3MgcG9zc2libGUgd2UgY2FuIHN0YXJ0IGFub3RoZXIgdHJhbnNhY3Rpb24gcmlnaHQg
bm93LgogICAgICAgICBpZiAoIWhhZERlZmVycmVkVHJhbnNhY3Rpb25zKQotICAgICAgICAgICAg
aW52b2tlVHJhbnNhY3Rpb25TY2hlZHVsZXIoKTsKKyAgICAgICAgICAgIGludm9rZURlbGV0ZU9y
UnVuVHJhbnNhY3Rpb25UaW1lcigpOwogICAgIH0KIH0KIApAQCAtODE2LDcgKzg4OCw3IEBAIHZv
aWQgVW5pcXVlSURCRGF0YWJhc2U6OmRpZFBlcmZvcm1BY3RpdmF0ZVRyYW5zYWN0aW9uSW5CYWNr
aW5nU3RvcmUodWludDY0X3QgY2FsCiB7CiAgICAgTE9HKEluZGV4ZWREQiwgIihtYWluKSBVbmlx
dWVJREJEYXRhYmFzZTo6ZGlkUGVyZm9ybUFjdGl2YXRlVHJhbnNhY3Rpb25JbkJhY2tpbmdTdG9y
ZSIpOwogCi0gICAgaW52b2tlVHJhbnNhY3Rpb25TY2hlZHVsZXIoKTsKKyAgICBpbnZva2VEZWxl
dGVPclJ1blRyYW5zYWN0aW9uVGltZXIoKTsKIAogICAgIHBlcmZvcm1FcnJvckNhbGxiYWNrKGNh
bGxiYWNrSWRlbnRpZmllciwgZXJyb3IpOwogfQpAQCAtODg4LDggKzk2MCwxMSBAQCB2b2lkIFVu
aXF1ZUlEQkRhdGFiYXNlOjppblByb2dyZXNzVHJhbnNhY3Rpb25Db21wbGV0ZWQoY29uc3QgSURC
UmVzb3VyY2VJZGVudGlmaQogICAgIGZvciAoYXV0byBvYmplY3RTdG9yZSA6IHRyYW5zYWN0aW9u
LT5vYmplY3RTdG9yZUlkZW50aWZpZXJzKCkpCiAgICAgICAgIG1fb2JqZWN0U3RvcmVUcmFuc2Fj
dGlvbkNvdW50cy5yZW1vdmUob2JqZWN0U3RvcmUpOwogCi0gICAgLy8gUHJldmlvdXNseSBibG9j
a2VkIHRyYW5zYWN0aW9ucyBtaWdodCBub3cgYmUgdW5ibG9ja2VkLgotICAgIGludm9rZVRyYW5z
YWN0aW9uU2NoZWR1bGVyKCk7CisgICAgaWYgKCF0cmFuc2FjdGlvbi0+ZGF0YWJhc2VDb25uZWN0
aW9uKCkuaGFzTm9uRmluaXNoZWRUcmFuc2FjdGlvbnMoKSkKKyAgICAgICAgbV9jbG9zZVBlbmRp
bmdEYXRhYmFzZUNvbm5lY3Rpb25zLnJlbW92ZSgmdHJhbnNhY3Rpb24tPmRhdGFiYXNlQ29ubmVj
dGlvbigpKTsKKworICAgIC8vIFByZXZpb3VzbHkgYmxvY2tlZCBvcGVyYXRpb25zIG1pZ2h0IGJl
IHJ1bm5hYmxlLgorICAgIGludm9rZURlbGV0ZU9yUnVuVHJhbnNhY3Rpb25UaW1lcigpOwogfQog
CiB2b2lkIFVuaXF1ZUlEQkRhdGFiYXNlOjpwZXJmb3JtRXJyb3JDYWxsYmFjayh1aW50NjRfdCBj
YWxsYmFja0lkZW50aWZpZXIsIGNvbnN0IElEQkVycm9yJiBlcnJvcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NlcnZlci9VbmlxdWVJREJEYXRhYmFzZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFi
YXNlLmgKaW5kZXggNTkxYmE3MC4uM2FjMWM3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2VydmVyL1VuaXF1ZUlEQkRhdGFiYXNlLmgKQEAg
LTc0LDYgKzc0LDcgQEAgcHVibGljOgogCiAgICAgY29uc3QgSURCRGF0YWJhc2VJbmZvJiBpbmZv
KCkgY29uc3Q7CiAgICAgSURCU2VydmVyJiBzZXJ2ZXIoKSB7IHJldHVybiBtX3NlcnZlcjsgfQor
ICAgIGNvbnN0IElEQkRhdGFiYXNlSWRlbnRpZmllciYgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0
dXJuIG1faWRlbnRpZmllcjsgfQogCiAgICAgdm9pZCBjcmVhdGVPYmplY3RTdG9yZShVbmlxdWVJ
REJEYXRhYmFzZVRyYW5zYWN0aW9uJiwgY29uc3QgSURCT2JqZWN0U3RvcmVJbmZvJiwgRXJyb3JD
YWxsYmFjayk7CiAgICAgdm9pZCBkZWxldGVPYmplY3RTdG9yZShVbmlxdWVJREJEYXRhYmFzZVRy
YW5zYWN0aW9uJiwgY29uc3QgU3RyaW5nJiBvYmplY3RTdG9yZU5hbWUsIEVycm9yQ2FsbGJhY2sp
OwpAQCAtOTMsMTUgKzk0LDIwIEBAIHB1YmxpYzoKIAogICAgIHZvaWQgZW5xdWV1ZVRyYW5zYWN0
aW9uKFJlZjxVbmlxdWVJREJEYXRhYmFzZVRyYW5zYWN0aW9uPiYmKTsKIAorICAgIHZvaWQgaGFu
ZGxlRGVsZXRlKElEQkNvbm5lY3Rpb25Ub0NsaWVudCYsIGNvbnN0IElEQlJlcXVlc3REYXRhJik7
CisgICAgYm9vbCBkZWxldGVQZW5kaW5nKCkgY29uc3QgeyByZXR1cm4gbV9kZWxldGVQZW5kaW5n
OyB9CisKIHByaXZhdGU6CiAgICAgVW5pcXVlSURCRGF0YWJhc2UoSURCU2VydmVyJiwgY29uc3Qg
SURCRGF0YWJhc2VJZGVudGlmaWVyJik7CiAgICAgCiAgICAgdm9pZCBoYW5kbGVPcGVuRGF0YWJh
c2VPcGVyYXRpb25zKCk7CiAgICAgdm9pZCBhZGRPcGVuRGF0YWJhc2VDb25uZWN0aW9uKFJlZjxV
bmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24+JiYpOworICAgIGJvb2wgbWF5YmVEZWxldGVEYXRh
YmFzZSgpOwogICAgIGJvb2wgaGFzQW55T3BlbkNvbm5lY3Rpb25zKCkgY29uc3Q7CiAKICAgICB2
b2lkIHN0YXJ0VmVyc2lvbkNoYW5nZVRyYW5zYWN0aW9uKCk7Ci0gICAgdm9pZCBub3RpZnlDb25u
ZWN0aW9uc09mVmVyc2lvbkNoYW5nZSgpOworICAgIHZvaWQgbm90aWZ5Q29ubmVjdGlvbnNPZlZl
cnNpb25DaGFuZ2VGb3JVcGdyYWRlKCk7CisgICAgdm9pZCBub3RpZnlDb25uZWN0aW9uc09mVmVy
c2lvbkNoYW5nZSh1aW50NjRfdCByZXF1ZXN0ZWRWZXJzaW9uKTsKIAogICAgIHZvaWQgYWN0aXZh
dGVUcmFuc2FjdGlvbkluQmFja2luZ1N0b3JlKFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24m
KTsKICAgICB2b2lkIGluUHJvZ3Jlc3NUcmFuc2FjdGlvbkNvbXBsZXRlZChjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImKTsKQEAgLTE1MiwxNCArMTU4LDE3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBwZXJmb3JtR2V0UmVzdWx0Q2FsbGJhY2sodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBj
b25zdCBJREJFcnJvciYsIGNvbnN0IElEQkdldFJlc3VsdCYpOwogICAgIHZvaWQgcGVyZm9ybUNv
dW50Q2FsbGJhY2sodWludDY0X3QgY2FsbGJhY2tJZGVudGlmaWVyLCBjb25zdCBJREJFcnJvciYs
IHVpbnQ2NF90KTsKIAotICAgIHZvaWQgaW52b2tlVHJhbnNhY3Rpb25TY2hlZHVsZXIoKTsKLSAg
ICB2b2lkIHRyYW5zYWN0aW9uU2NoZWR1bGluZ1RpbWVyRmlyZWQoKTsKKyAgICBib29sIGhhc0Fu
eVBlbmRpbmdDYWxsYmFja3MoKSBjb25zdDsKKworICAgIHZvaWQgaW52b2tlRGVsZXRlT3JSdW5U
cmFuc2FjdGlvblRpbWVyKCk7CisgICAgdm9pZCBkZWxldGVPclJ1blRyYW5zYWN0aW9uc1RpbWVy
RmlyZWQoKTsKICAgICBSZWZQdHI8VW5pcXVlSURCRGF0YWJhc2VUcmFuc2FjdGlvbj4gdGFrZU5l
eHRSdW5uYWJsZVRyYW5zYWN0aW9uKGJvb2wmIGhhZERlZmVycmVkVHJhbnNhY3Rpb25zKTsKIAog
ICAgIElEQlNlcnZlciYgbV9zZXJ2ZXI7CiAgICAgSURCRGF0YWJhc2VJZGVudGlmaWVyIG1faWRl
bnRpZmllcjsKICAgICAKICAgICBEZXF1ZTxSZWY8SURCU2VydmVyT3BlcmF0aW9uPj4gbV9wZW5k
aW5nT3BlbkRhdGFiYXNlT3BlcmF0aW9uczsKKyAgICBEZXF1ZTxSZWY8SURCU2VydmVyT3BlcmF0
aW9uPj4gbV9wZW5kaW5nRGVsZXRlRGF0YWJhc2VPcGVyYXRpb25zOwogCiAgICAgSGFzaFNldDxS
ZWZQdHI8VW5pcXVlSURCRGF0YWJhc2VDb25uZWN0aW9uPj4gbV9vcGVuRGF0YWJhc2VDb25uZWN0
aW9uczsKICAgICBIYXNoU2V0PFJlZlB0cjxVbmlxdWVJREJEYXRhYmFzZUNvbm5lY3Rpb24+PiBt
X2Nsb3NlUGVuZGluZ0RhdGFiYXNlQ29ubmVjdGlvbnM7CkBAIC0xNzYsNyArMTg1LDcgQEAgcHJp
dmF0ZToKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBHZXRSZXN1bHRDYWxsYmFjaz4gbV9nZXRSZXN1
bHRDYWxsYmFja3M7CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgQ291bnRDYWxsYmFjaz4gbV9jb3Vu
dENhbGxiYWNrczsKIAotICAgIFRpbWVyIG1fdHJhbnNhY3Rpb25TY2hlZHVsaW5nVGltZXI7Cisg
ICAgVGltZXIgbV9kZWxldGVPclJ1blRyYW5zYWN0aW9uc1RpbWVyOwogCiAgICAgRGVxdWU8UmVm
UHRyPFVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24+PiBtX3BlbmRpbmdUcmFuc2FjdGlvbnM7
CiAgICAgSGFzaE1hcDxJREJSZXNvdXJjZUlkZW50aWZpZXIsIFJlZlB0cjxVbmlxdWVJREJEYXRh
YmFzZVRyYW5zYWN0aW9uPj4gbV9pblByb2dyZXNzVHJhbnNhY3Rpb25zOwpAQCAtMTg2LDYgKzE5
NSw5IEBAIHByaXZhdGU6CiAgICAgLy8gVGhpcyBoZWxwcyBtYWtlIHN1cmUgb3BlbmluZyBuYXJy
b3dseSBzY29wZWQgdHJhbnNhY3Rpb25zIChvbmUgb3IgdHdvIG9iamVjdCBzdG9yZXMpCiAgICAg
Ly8gZG9lc24ndCBjb250aW51b3VzbHkgYmxvY2sgd2lkZWx5IHNjb3BlZCB3cml0ZSB0cmFuc2Fj
dGlvbnMuCiAgICAgSGFzaENvdW50ZWRTZXQ8dWludDY0X3Q+IG1fb2JqZWN0U3RvcmVUcmFuc2Fj
dGlvbkNvdW50czsKKworICAgIGJvb2wgbV9kZWxldGVQZW5kaW5nIHsgZmFsc2UgfTsKKyAgICBi
b29sIG1faGFzTm90aWZpZWRDb25uZWN0aW9uc09mRGVsZXRlIHsgZmFsc2UgfTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIElEQlNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlc3VsdERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlc3VsdERhdGEuY3BwCmluZGV4IDJlM2Q2YTAuLjMx
YWVmOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL3NoYXJl
ZC9JREJSZXN1bHREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zaGFyZWQvSURCUmVzdWx0RGF0YS5jcHAKQEAgLTkwLDYgKzkwLDEzIEBAIElEQlJlc3VsdERh
dGEgSURCUmVzdWx0RGF0YTo6b3BlbkRhdGFiYXNlVXBncmFkZU5lZWRlZChjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpCiAgICAgcmV0dXJuIFdURjo6bW92ZShyZXN1bHQpOwogfQogCitJREJSZXN1
bHREYXRhIElEQlJlc3VsdERhdGE6OmRlbGV0ZURhdGFiYXNlU3VjY2Vzcyhjb25zdCBJREJSZXNv
dXJjZUlkZW50aWZpZXImIHJlcXVlc3RJZGVudGlmaWVyLCBjb25zdCBJREJEYXRhYmFzZUluZm8m
IGluZm8pCit7CisgICAgSURCUmVzdWx0RGF0YSByZXN1bHQoSURCUmVzdWx0VHlwZTo6RGVsZXRl
RGF0YWJhc2VTdWNjZXNzLCByZXF1ZXN0SWRlbnRpZmllcik7CisgICAgcmVzdWx0Lm1fZGF0YWJh
c2VJbmZvID0gc3RkOjptYWtlX3VuaXF1ZTxJREJEYXRhYmFzZUluZm8+KGluZm8pOworICAgIHJl
dHVybiByZXN1bHQ7Cit9CisKIElEQlJlc3VsdERhdGEgSURCUmVzdWx0RGF0YTo6Y3JlYXRlT2Jq
ZWN0U3RvcmVTdWNjZXNzKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYgcmVxdWVzdElkZW50
aWZpZXIpCiB7CiAgICAgcmV0dXJuIHsgSURCUmVzdWx0VHlwZTo6Q3JlYXRlT2JqZWN0U3RvcmVT
dWNjZXNzLCByZXF1ZXN0SWRlbnRpZmllciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9pbmRleGVkZGIvc2hhcmVkL0lEQlJlc3VsdERhdGEuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvaW5kZXhlZGRiL3NoYXJlZC9JREJSZXN1bHREYXRhLmgKaW5kZXggMTQxZDNkZC4u
NjdhZDcwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvc2hh
cmVkL0lEQlJlc3VsdERhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRk
Yi9zaGFyZWQvSURCUmVzdWx0RGF0YS5oCkBAIC00NSw2ICs0NSw3IEBAIGVudW0gY2xhc3MgSURC
UmVzdWx0VHlwZSB7CiAgICAgRXJyb3IsCiAgICAgT3BlbkRhdGFiYXNlU3VjY2VzcywKICAgICBP
cGVuRGF0YWJhc2VVcGdyYWRlTmVlZGVkLAorICAgIERlbGV0ZURhdGFiYXNlU3VjY2VzcywKICAg
ICBDcmVhdGVPYmplY3RTdG9yZVN1Y2Nlc3MsCiAgICAgRGVsZXRlT2JqZWN0U3RvcmVTdWNjZXNz
LAogICAgIENsZWFyT2JqZWN0U3RvcmVTdWNjZXNzLApAQCAtNjgsNiArNjksNyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIElEQlJlc3VsdERhdGEgZXJyb3IoY29uc3QgSURCUmVzb3VyY2VJZGVudGlm
aWVyJiwgY29uc3QgSURCRXJyb3ImKTsKICAgICBzdGF0aWMgSURCUmVzdWx0RGF0YSBvcGVuRGF0
YWJhc2VTdWNjZXNzKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYsIElEQlNlcnZlcjo6VW5p
cXVlSURCRGF0YWJhc2VDb25uZWN0aW9uJik7CiAgICAgc3RhdGljIElEQlJlc3VsdERhdGEgb3Bl
bkRhdGFiYXNlVXBncmFkZU5lZWRlZChjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImLCBJREJT
ZXJ2ZXI6OlVuaXF1ZUlEQkRhdGFiYXNlVHJhbnNhY3Rpb24mKTsKKyAgICBzdGF0aWMgSURCUmVz
dWx0RGF0YSBkZWxldGVEYXRhYmFzZVN1Y2Nlc3MoY29uc3QgSURCUmVzb3VyY2VJZGVudGlmaWVy
JiwgY29uc3QgSURCRGF0YWJhc2VJbmZvJik7CiAgICAgc3RhdGljIElEQlJlc3VsdERhdGEgY3Jl
YXRlT2JqZWN0U3RvcmVTdWNjZXNzKGNvbnN0IElEQlJlc291cmNlSWRlbnRpZmllciYpOwogICAg
IHN0YXRpYyBJREJSZXN1bHREYXRhIGRlbGV0ZU9iamVjdFN0b3JlU3VjY2Vzcyhjb25zdCBJREJS
ZXNvdXJjZUlkZW50aWZpZXImKTsKICAgICBzdGF0aWMgSURCUmVzdWx0RGF0YSBjbGVhck9iamVj
dFN0b3JlU3VjY2Vzcyhjb25zdCBJREJSZXNvdXJjZUlkZW50aWZpZXImKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>