<?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>12031</bug_id>
          
          <creation_ts>2006-12-29 18:37:37 -0800</creation_ts>
          <short_desc>Update embedded JavaScriptCore/pcre library from 6.1 to 6.2</short_desc>
          <delta_ts>2006-12-29 19:19:53 -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>JavaScriptCore</component>
          <version>420+</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.4</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>http://www.pcre.org/</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="David Kilzer (:ddkilzer)">ddkilzer</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>ggaren</cc>
    
    <cc>mitz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>38951</commentid>
    <comment_count>0</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-12-29 18:37:37 -0800</bug_when>
    <thetext>The current embedded JavaScriptCore/pcre library is version 6.1 (r10495) with some fixes from version 6.2 included in r14736.

I&apos;m wondering if I should continue this work?  Various enhancements and bug fixes have been included in versions 6.3-6.7 and 7.0.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38944</commentid>
    <comment_count>1</comment_count>
      <attachid>12114</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-12-29 18:47:11 -0800</bug_when>
    <thetext>Created attachment 12114
Full pcre-6.1 to 6.2 diff

Full diff between pcre-6.1 and 6.2 for reference.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38945</commentid>
    <comment_count>2</comment_count>
      <attachid>12115</attachid>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-12-29 18:48:01 -0800</bug_when>
    <thetext>Created attachment 12115
Patch v1

Brings JavaScriptCore/pcre up to version 6.2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38941</commentid>
    <comment_count>3</comment_count>
      <attachid>12115</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2006-12-29 18:58:55 -0800</bug_when>
    <thetext>Comment on attachment 12115
Patch v1

r=me (assuming the layout tests and javascriptcore tests pass).

It would be nice to keep in step with PCRE, and upgrade to 7.x. The only reason we don&apos;t keep in lockstep is that it can be a lot of work to port PCRE to use UTF16 strings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>38939</commentid>
    <comment_count>4</comment_count>
    <who name="David Kilzer (:ddkilzer)">ddkilzer</who>
    <bug_when>2006-12-29 19:19:53 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 12115 [edit])
&gt; r=me (assuming the layout tests and javascriptcore tests pass).

No regressions in layout tests or javascriptcore tests.  Committed revision 18483.

</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12114</attachid>
            <date>2006-12-29 18:47:11 -0800</date>
            <delta_ts>2006-12-29 18:47:11 -0800</delta_ts>
            <desc>Full pcre-6.1 to 6.2 diff</desc>
            <filename>pcre-6.1-6.2.diff</filename>
            <type>text/plain</type>
            <size>63404</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">SW5kZXg6IE1ha2VmaWxlLmluCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIE1ha2VmaWxlLmluCShyZXZpc2lvbiAx
KQorKysgTWFrZWZpbGUuaW4JKHJldmlzaW9uIDIpCkBAIC0yMTEsNyArMjExLDcgQEAKICMgZGly
ZWN0b3J5LCBub3QgdGhlIHNvdXJjZSBkaXJlY3RvcnkuCiAKIHBjcmVfY2hhcnRhYmxlcy5AT0JK
RVhUQDogcGNyZV9jaGFydGFibGVzLmMKLQkJQCQoTFRDT01QSUxFKSAkKHRvcF9zcmNkaXIpL3Bj
cmVfY2hhcnRhYmxlcy5jCisJCUAkKExUQ09NUElMRSkgcGNyZV9jaGFydGFibGVzLmMKIAogcGNy
ZV9jb21waWxlLkBPQkpFWFRAOiBNYWtlZmlsZSBjb25maWcuaCBwY3JlLmggXAogCQkkKHRvcF9z
cmNkaXIpL3BjcmVfaW50ZXJuYWwuaCAkKHRvcF9zcmNkaXIpL3BjcmVfY29tcGlsZS5jCkBAIC0z
MjksMjMgKzMyOSwyMyBAQAogCiBwY3JldGVzdC5AT0JKRVhUQDogICAgICQodG9wX3NyY2Rpcikv
cGNyZXRlc3QuYyAkKHRvcF9zcmNkaXIpL3BjcmVfaW50ZXJuYWwuaCBcCiAJCXBjcmUuaCBjb25m
aWcuaCBNYWtlZmlsZQotCQkkKENDKSAtYyAkKENGTEFHUykgLUkuICQoVVRGOCkgJChVQ1ApICQo
TElOS19TSVpFKSAkKHRvcF9zcmNkaXIpL3BjcmV0ZXN0LmMKKwkJJChDQykgLWMgJChDRkxBR1Mp
IC1JLiAtSSQodG9wX3NyY2RpcikgJChVVEY4KSAkKFVDUCkgJChMSU5LX1NJWkUpICQodG9wX3Ny
Y2RpcikvcGNyZXRlc3QuYwogCiBwY3JlY3BwX3VuaXR0ZXN0LkBPQkpFWFRAOiAgJCh0b3Bfc3Jj
ZGlyKS9wY3JlY3BwX3VuaXR0ZXN0LmNjIHBjcmVjcHAuaCBcCiAJCXBjcmVfc3RyaW5ncGllY2Uu
aCBwY3JlLmggY29uZmlnLmggTWFrZWZpbGUKLQkJJChDWFgpIC1jICQoQ1hYRkxBR1MpIC1JLiAk
KFVURjgpICQoVUNQKSAkKExJTktfU0laRSkgJCh0b3Bfc3JjZGlyKS9wY3JlY3BwX3VuaXR0ZXN0
LmNjCisJCSQoQ1hYKSAtYyAkKENYWEZMQUdTKSAtSS4gLUkkKHRvcF9zcmNkaXIpICQoVVRGOCkg
JChVQ1ApICQoTElOS19TSVpFKSAkKHRvcF9zcmNkaXIpL3BjcmVjcHBfdW5pdHRlc3QuY2MKIAog
cGNyZV9zdHJpbmdwaWVjZV91bml0dGVzdC5AT0JKRVhUQDogICQodG9wX3NyY2RpcikvcGNyZV9z
dHJpbmdwaWVjZV91bml0dGVzdC5jYyBcCiAJCXBjcmVfc3RyaW5ncGllY2UuaCBjb25maWcuaCBN
YWtlZmlsZQotCQkkKENYWCkgLWMgJChDWFhGTEFHUykgLUkuICQoVVRGOCkgJChVQ1ApICQoTElO
S19TSVpFKSAkKHRvcF9zcmNkaXIpL3BjcmVfc3RyaW5ncGllY2VfdW5pdHRlc3QuY2MKKwkJJChD
WFgpIC1jICQoQ1hYRkxBR1MpIC1JLiAtSSQodG9wX3NyY2RpcikgJChVVEY4KSAkKFVDUCkgJChM
SU5LX1NJWkUpICQodG9wX3NyY2RpcikvcGNyZV9zdHJpbmdwaWVjZV91bml0dGVzdC5jYwogCiBw
Y3JlX3NjYW5uZXJfdW5pdHRlc3QuQE9CSkVYVEA6ICAkKHRvcF9zcmNkaXIpL3BjcmVfc2Nhbm5l
cl91bml0dGVzdC5jYyBcCiAJCSQodG9wX3NyY2RpcikvcGNyZV9zY2FubmVyLmggcGNyZWNwcC5o
IHBjcmVfc3RyaW5ncGllY2UuaCBcCiAJCXBjcmUuaCBjb25maWcuaCBNYWtlZmlsZQotCQkkKENY
WCkgLWMgJChDWFhGTEFHUykgLUkuICQoVVRGOCkgJChVQ1ApICQoTElOS19TSVpFKSAkKHRvcF9z
cmNkaXIpL3BjcmVfc2Nhbm5lcl91bml0dGVzdC5jYworCQkkKENYWCkgLWMgJChDWFhGTEFHUykg
LUkuIC1JJCh0b3Bfc3JjZGlyKSAkKFVURjgpICQoVUNQKSAkKExJTktfU0laRSkgJCh0b3Bfc3Jj
ZGlyKS9wY3JlX3NjYW5uZXJfdW5pdHRlc3QuY2MKIAogcGNyZWdyZXAuQE9CSkVYVEA6ICAgICAk
KHRvcF9zcmNkaXIpL3BjcmVncmVwLmMgcGNyZS5oIE1ha2VmaWxlIGNvbmZpZy5oCi0JCSQoQ0Mp
IC1jICQoQ0ZMQUdTKSAtSS4gJChVVEY4KSAkKFVDUCkgJChQQ1JFR1JFUF9PU1RZUEUpICQodG9w
X3NyY2RpcikvcGNyZWdyZXAuYworCQkkKENDKSAtYyAkKENGTEFHUykgLUkuIC1JJCh0b3Bfc3Jj
ZGlyKSAkKFVURjgpICQoVUNQKSAkKFBDUkVHUkVQX09TVFlQRSkgJCh0b3Bfc3JjZGlyKS9wY3Jl
Z3JlcC5jCiAKICMgU29tZSBXaW5kb3dzLXNwZWNpZmljIHRhcmdldHMgZm9yIE1pbkdXLiBEbyBu
b3QgdXNlIGZvciBDeWd3aW4uCiAKSW5kZXg6IGRvYy9wY3JlY3BwLjMKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
ZG9jL3BjcmVjcHAuMwkocmV2aXNpb24gMSkKKysrIGRvYy9wY3JlY3BwLjMJKHJldmlzaW9uIDIp
CkBAIC0xMSw5ICsxMSwxMCBAQAogLlNIIERFU0NSSVBUSU9OCiAucnMKIC5zcAotVGhlIEMrKyB3
cmFwcGVyIGZvciBQQ1JFIHdhcyBwcm92aWRlZCBieSBHb29nbGUgSW5jLiBUaGlzIGJyaWVmIG1h
biBwYWdlIHdhcwotY29uc3RydWN0ZWQgZnJvbSB0aGUgbm90ZXMgaW4gdGhlIFxmSXBjcmVjcHAu
aFxmUCBmaWxlLCB3aGljaCBzaG91bGQgYmUKLWNvbnN1bHRlZCBmb3IgZnVydGhlciBkZXRhaWxz
LgorVGhlIEMrKyB3cmFwcGVyIGZvciBQQ1JFIHdhcyBwcm92aWRlZCBieSBHb29nbGUgSW5jLiBT
b21lIGFkZGl0aW9uYWwKK2Z1bmN0aW9uYWxpdHkgd2FzIGFkZGVkIGJ5IEdpdXNlcHBlIE1heGlh
LiBUaGlzIGJyaWVmIG1hbiBwYWdlIHdhcyBjb25zdHJ1Y3RlZAorZnJvbSB0aGUgbm90ZXMgaW4g
dGhlIFxmSXBjcmVjcHAuaFxmUCBmaWxlLCB3aGljaCBzaG91bGQgYmUgY29uc3VsdGVkIGZvcgor
ZnVydGhlciBkZXRhaWxzLgogLgogLgogLlNIICJNQVRDSElORyBJTlRFUkZBQ0UiCkBAIC0xMzAs
NiArMTMxLDkzIEBACiAgICAgICAtLWVuYWJsZS11dGY4IGZsYWcuCiAuCiAuCisuU0ggIlBBU1NJ
TkcgTU9ESUZJRVJTIFRPIFRIRSBSRUdVTEFSIEVYUFJFU1NJT04gRU5HSU5FIgorLnJzCisuc3AK
K1BDUkUgZGVmaW5lcyBzb21lIG1vZGlmaWVycyB0byBjaGFuZ2UgdGhlIGJlaGF2aW9yIG9mIHRo
ZSByZWd1bGFyIGV4cHJlc3Npb24KK2VuZ2luZS4gVGhlIEMrKyB3cmFwcGVyIGRlZmluZXMgYW4g
YXV4aWxpYXJ5IGNsYXNzLCBSRV9PcHRpb25zLCBhcyBhIHZlaGljbGUgdG8KK3Bhc3Mgc3VjaCBt
b2RpZmllcnMgdG8gYSBSRSBjbGFzcy4gQ3VycmVudGx5LCB0aGUgZm9sbG93aW5nIG1vZGlmaWVy
cyBhcmUKK3N1cHBvcnRlZDoKKy5zcAorICAgbW9kaWZpZXIgICAgICAgICAgICAgIGRlc2NyaXB0
aW9uICAgICAgICAgICAgICAgUGVybCBjb3JyZXNwb25kaW5nCisuc3AKKyAgIFBDUkVfQ0FTRUxF
U1MgICAgICAgICBjYXNlIGluc2Vuc2l0aXZlIG1hdGNoICAgICAgL2kKKyAgIFBDUkVfTVVMVElM
SU5FICAgICAgICBtdWx0aXBsZSBsaW5lcyBtYXRjaCAgICAgICAgL20KKyAgIFBDUkVfRE9UQUxM
ICAgICAgICAgICBkb3QgbWF0Y2hlcyBuZXdsaW5lcyAgICAgICAgL3MKKyAgIFBDUkVfRE9MTEFS
X0VORE9OTFkgICAkIG1hdGNoZXMgb25seSBhdCBlbmQgICAgICAgTi9BCisgICBQQ1JFX0VYVFJB
ICAgICAgICAgICAgc3RyaWN0IGVzY2FwZSBwYXJzaW5nICAgICAgIE4vQQorICAgUENSRV9FWFRF
TkRFRCAgICAgICAgIGlnbm9yZSB3aGl0ZXNwYWNlcyAgICAgICAgICAveAorICAgUENSRV9VVEY4
ICAgICAgICAgICAgIGhhbmRsZXMgVVRGOCBjaGFycyAgICAgICAgICBidWlsdC1pbgorICAgUENS
RV9VTkdSRUVEWSAgICAgICAgIHJldmVyc2VzICogYW5kICo/ICAgICAgICAgICBOL0EKKyAgIFBD
UkVfTk9fQVVUT19DQVBUVVJFICBkaXNhYmxlcyBjYXB0dXJpbmcgcGFyZW5zICAgTi9BICgqKQor
LnNwCisoKikgQm90aCBQZXJsIGFuZCBQQ1JFIGFsbG93IG5vbiBjYXB0dXJpbmcgcGFyZW50aGVz
ZXMgYnkgbWVhbnMgb2YgdGhlCisiPzoiIG1vZGlmaWVyIHdpdGhpbiB0aGUgcGF0dGVybiBpdHNl
bGYuIGUuZy4gKD86YWJ8Y2QpIGRvZXMgbm90CitjYXB0dXJlLCB3aGlsZSAoYWJ8Y2QpIGRvZXMu
CisuUAorRm9yIGEgZnVsbCBhY2NvdW50IG9uIGhvdyBlYWNoIG1vZGlmaWVyIHdvcmtzLCBwbGVh
c2UgY2hlY2sgdGhlCitQQ1JFIEFQSSByZWZlcmVuY2UgcGFnZS4KKy5QCitGb3IgZWFjaCBtb2Rp
ZmllciwgdGhlcmUgYXJlIHR3byBtZW1iZXIgZnVuY3Rpb25zIHdob3NlIG5hbWUgaXMgbWFkZQor
b3V0IG9mIHRoZSBtb2RpZmllciBpbiBsb3dlcmNhc2UsIHdpdGhvdXQgdGhlICJQQ1JFXyIgcHJl
Zml4LiBGb3IKK2luc3RhbmNlLCBQQ1JFX0NBU0VMRVNTIGlzIGhhbmRsZWQgYnkKKy5zcAorICBi
b29sIGNhc2VsZXNzKCkKKy5zcAord2hpY2ggcmV0dXJucyB0cnVlIGlmIHRoZSBtb2RpZmllciBp
cyBzZXQsIGFuZAorLnNwCisgIFJFX09wdGlvbnMgJiBzZXRfY2FzZWxlc3MoYm9vbCkKKy5zcAor
d2hpY2ggc2V0cyBvciB1bnNldHMgdGhlIG1vZGlmaWVyLiBNb3Jlb3ZlciwgUENSRV9DT05GSUdf
TUFUQ0hfTElNSVQgY2FuIGJlCithY2Nlc3NlZCB0aHJvdWdoIHRoZSBcZkJzZXRfbWF0Y2hfbGlt
aXQoKVxmUiBhbmQgXGZCbWF0Y2hfbGltaXQoKVxmUiBtZW1iZXIKK2Z1bmN0aW9ucy4gU2V0dGlu
ZyBcZkltYXRjaF9saW1pdFxmUiB0byBhIG5vbi16ZXJvIHZhbHVlIHdpbGwgbGltaXQgdGhlCitl
eGVjdXRpb24gb2YgcGNyZSB0byBrZWVwIGl0IGZyb20gZG9pbmcgYmFkIHRoaW5ncyBsaWtlIGJs
b3dpbmcgdGhlIHN0YWNrIG9yCit0YWtpbmcgYW4gZXRlcm5pdHkgdG8gcmV0dXJuIGEgcmVzdWx0
LiBBIHZhbHVlIG9mIDUwMDAgaXMgZ29vZCBlbm91Z2ggdG8gc3RvcAorc3RhY2sgYmxvd3VwIGlu
IGEgMk1CIHRocmVhZCBzdGFjay4gU2V0dGluZyBcZkltYXRjaF9saW1pdFxmUiB0byB6ZXJvIGRp
c2FibGVzCittYXRjaCBsaW1pdGluZy4KKy5QCitOb3JtYWxseSwgdG8gcGFzcyBvbmUgb3IgbW9y
ZSBtb2RpZmllcnMgdG8gYSBSRSBjbGFzcywgeW91IGRlY2xhcmUKK2EgXGZJUkVfT3B0aW9uc1xm
UiBvYmplY3QsIHNldCB0aGUgYXBwcm9wcmlhdGUgb3B0aW9ucywgYW5kIHBhc3MgdGhpcworb2Jq
ZWN0IHRvIGEgUkUgY29uc3RydWN0b3IuIEV4YW1wbGU6Cisuc3AKKyAgIFJFX29wdGlvbnMgb3B0
OworICAgb3B0LnNldF9jYXNlbGVzcyh0cnVlKTsKKyAgIGlmIChSRSgiSEVMTE8iLCBvcHQpLlBh
cnRpYWxNYXRjaCgiaGVsbG8gd29ybGQiKSkgLi4uCisuc3AKK1JFX29wdGlvbnMgaGFzIHR3byBj
b25zdHJ1Y3RvcnMuIFRoZSBkZWZhdWx0IGNvbnN0cnVjdG9yIHRha2VzIG5vIGFyZ3VtZW50cyBh
bmQKK2NyZWF0ZXMgYSBzZXQgb2YgZmxhZ3MgdGhhdCBhcmUgb2ZmIGJ5IGRlZmF1bHQuIFRoZSBv
cHRpb25hbCBwYXJhbWV0ZXIKK1xmSW9wdGlvbl9mbGFnc1xmUiBpcyB0byBmYWNpbGl0YXRlIHRy
YW5zZmVyIG9mIGxlZ2FjeSBjb2RlIGZyb20gQyBwcm9ncmFtcy4KK1RoaXMgbGV0cyB5b3UgZG8K
Ky5zcAorICAgUkUocGF0dGVybiwKKyAgICAgUkVfT3B0aW9ucyhQQ1JFX0NBU0VMRVNTfFBDUkVf
TVVMVElMSU5FKSkuUGFydGlhbE1hdGNoKHN0cik7Cisuc3AKK0hvd2V2ZXIsIG5ldyBjb2RlIGlz
IGJldHRlciBvZmYgZG9pbmcKKy5zcAorICAgUkUocGF0dGVybiwKKyAgICAgUkVfT3B0aW9ucygp
LnNldF9jYXNlbGVzcyh0cnVlKS5zZXRfbXVsdGlsaW5lKHRydWUpKQorICAgICAgIC5QYXJ0aWFs
TWF0Y2goc3RyKTsKKy5zcAorSWYgeW91IGFyZSBnb2luZyB0byBwYXNzIG9uZSBvZiB0aGUgbW9z
dCB1c2VkIG1vZGlmaWVycywgdGhlcmUgYXJlIHNvbWUKK2NvbnZlbmllbmNlIGZ1bmN0aW9ucyB0
aGF0IHJldHVybiBhIFJFX09wdGlvbnMgY2xhc3Mgd2l0aCB0aGUKK2FwcHJvcHJpYXRlIG1vZGlm
aWVyIGFscmVhZHkgc2V0OiBcZkJDQVNFTEVTUygpXGZSLCBcZkJVVEY4KClcZlIsCitcZkJNVUxU
SUxJTkUoKVxmUiwgXGZCRE9UQUxMXGZSKCksIGFuZCBcZkJFWFRFTkRFRCgpXGZSLgorLlAKK0lm
IHlvdSBuZWVkIHRvIHNldCBzZXZlcmFsIG9wdGlvbnMgYXQgb25jZSwgYW5kIHlvdSBkb24ndCB3
YW50IHRvIGdvIHRocm91Z2gKK3RoZSBwYWlucyBvZiBkZWNsYXJpbmcgYSBSRV9PcHRpb25zIG9i
amVjdCBhbmQgc2V0dGluZyBzZXZlcmFsIG9wdGlvbnMsIHRoZXJlCitpcyBhIHBhcmFsbGVsIG1l
dGhvZCB0aGF0IGdpdmUgeW91IHN1Y2ggYWJpbGl0eSBvbiB0aGUgZmx5LiBZb3UgY2FuIGNvbmNh
dGVuYXRlCitzZXZlcmFsIFxmQnNldF94eHh4eCgpXGZSIG1lbWJlciBmdW5jdGlvbnMsIHNpbmNl
IGVhY2ggb2YgdGhlbSByZXR1cm5zIGEKK3JlZmVyZW5jZSB0byBpdHMgY2xhc3Mgb2JqZWN0LiBG
b3IgZXhhbXBsZSwgdG8gcGFzcyBQQ1JFX0NBU0VMRVNTLAorUENSRV9FWFRFTkRFRCwgYW5kIFBD
UkVfTVVMVElMSU5FIHRvIGEgUkUgd2l0aCBvbmUgc3RhdGVtZW50LCB5b3UgbWF5IHdyaXRlOgor
LnNwCisgICBSRSgiIF4geHl6IFxlXGVzKyAuKiBibGFoJCIsCisgICAgIFJFX09wdGlvbnMoKQor
ICAgICAgIC5zZXRfY2FzZWxlc3ModHJ1ZSkKKyAgICAgICAuc2V0X2V4dGVuZGVkKHRydWUpCisg
ICAgICAgLnNldF9tdWx0aWxpbmUodHJ1ZSkpLlBhcnRpYWxNYXRjaChzb21ldGV4dCk7Cisuc3AK
Ky4KKy4KIC5TSCAiU0NBTk5JTkcgVEVYVCBJTkNSRU1FTlRBTExZIgogLnJzCiAuc3AKSW5kZXg6
IGRvYy9odG1sL3BjcmVjcHAuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBkb2MvaHRtbC9wY3JlY3BwLmh0
bWwJKHJldmlzaW9uIDEpCisrKyBkb2MvaHRtbC9wY3JlY3BwLmh0bWwJKHJldmlzaW9uIDIpCkBA
IC0xOCwxMCArMTgsMTEgQEAKIDxsaT48YSBuYW1lPSJUT0MzIiBocmVmPSIjU0VDMyI+TUFUQ0hJ
TkcgSU5URVJGQUNFPC9hPgogPGxpPjxhIG5hbWU9IlRPQzQiIGhyZWY9IiNTRUM0Ij5QQVJUSUFM
IE1BVENIRVM8L2E+CiA8bGk+PGEgbmFtZT0iVE9DNSIgaHJlZj0iI1NFQzUiPlVURi04IEFORCBU
SEUgTUFUQ0hJTkcgSU5URVJGQUNFPC9hPgotPGxpPjxhIG5hbWU9IlRPQzYiIGhyZWY9IiNTRUM2
Ij5TQ0FOTklORyBURVhUIElOQ1JFTUVOVEFMTFk8L2E+Ci08bGk+PGEgbmFtZT0iVE9DNyIgaHJl
Zj0iI1NFQzciPlBBUlNJTkcgSEVYL09DVEFML0MtUkFESVggTlVNQkVSUzwvYT4KLTxsaT48YSBu
YW1lPSJUT0M4IiBocmVmPSIjU0VDOCI+UkVQTEFDSU5HIFBBUlRTIE9GIFNUUklOR1M8L2E+Ci08
bGk+PGEgbmFtZT0iVE9DOSIgaHJlZj0iI1NFQzkiPkFVVEhPUjwvYT4KKzxsaT48YSBuYW1lPSJU
T0M2IiBocmVmPSIjU0VDNiI+UEFTU0lORyBNT0RJRklFUlMgVE8gVEhFIFJFR1VMQVIgRVhQUkVT
U0lPTiBFTkdJTkU8L2E+Cis8bGk+PGEgbmFtZT0iVE9DNyIgaHJlZj0iI1NFQzciPlNDQU5OSU5H
IFRFWFQgSU5DUkVNRU5UQUxMWTwvYT4KKzxsaT48YSBuYW1lPSJUT0M4IiBocmVmPSIjU0VDOCI+
UEFSU0lORyBIRVgvT0NUQUwvQy1SQURJWCBOVU1CRVJTPC9hPgorPGxpPjxhIG5hbWU9IlRPQzki
IGhyZWY9IiNTRUM5Ij5SRVBMQUNJTkcgUEFSVFMgT0YgU1RSSU5HUzwvYT4KKzxsaT48YSBuYW1l
PSJUT0MxMCIgaHJlZj0iI1NFQzEwIj5BVVRIT1I8L2E+CiA8L3VsPgogPGJyPjxhIG5hbWU9IlNF
QzEiIGhyZWY9IiNUT0MxIj5TWU5PUFNJUyBPRiBDKysgV1JBUFBFUjwvYT48YnI+CiA8UD4KQEAg
LTMxLDkgKzMyLDEwIEBACiA8L1A+CiA8YnI+PGEgbmFtZT0iU0VDMiIgaHJlZj0iI1RPQzEiPkRF
U0NSSVBUSU9OPC9hPjxicj4KIDxQPgotVGhlIEMrKyB3cmFwcGVyIGZvciBQQ1JFIHdhcyBwcm92
aWRlZCBieSBHb29nbGUgSW5jLiBUaGlzIGJyaWVmIG1hbiBwYWdlIHdhcwotY29uc3RydWN0ZWQg
ZnJvbSB0aGUgbm90ZXMgaW4gdGhlIDxpPnBjcmVjcHAuaDwvaT4gZmlsZSwgd2hpY2ggc2hvdWxk
IGJlCi1jb25zdWx0ZWQgZm9yIGZ1cnRoZXIgZGV0YWlscy4KK1RoZSBDKysgd3JhcHBlciBmb3Ig
UENSRSB3YXMgcHJvdmlkZWQgYnkgR29vZ2xlIEluYy4gU29tZSBhZGRpdGlvbmFsCitmdW5jdGlv
bmFsaXR5IHdhcyBhZGRlZCBieSBHaXVzZXBwZSBNYXhpYS4gVGhpcyBicmllZiBtYW4gcGFnZSB3
YXMgY29uc3RydWN0ZWQKK2Zyb20gdGhlIG5vdGVzIGluIHRoZSA8aT5wY3JlY3BwLmg8L2k+IGZp
bGUsIHdoaWNoIHNob3VsZCBiZSBjb25zdWx0ZWQgZm9yCitmdXJ0aGVyIGRldGFpbHMuCiA8L1A+
CiA8YnI+PGEgbmFtZT0iU0VDMyIgaHJlZj0iI1RPQzEiPk1BVENISU5HIElOVEVSRkFDRTwvYT48
YnI+CiA8UD4KQEAgLTE0OCw4ICsxNTAsOTggQEAKICAgICAgIC0tZW5hYmxlLXV0ZjggZmxhZy4K
IDwvUFJFPgogPC9QPgotPGJyPjxhIG5hbWU9IlNFQzYiIGhyZWY9IiNUT0MxIj5TQ0FOTklORyBU
RVhUIElOQ1JFTUVOVEFMTFk8L2E+PGJyPgorPGJyPjxhIG5hbWU9IlNFQzYiIGhyZWY9IiNUT0Mx
Ij5QQVNTSU5HIE1PRElGSUVSUyBUTyBUSEUgUkVHVUxBUiBFWFBSRVNTSU9OIEVOR0lORTwvYT48
YnI+CiA8UD4KK1BDUkUgZGVmaW5lcyBzb21lIG1vZGlmaWVycyB0byBjaGFuZ2UgdGhlIGJlaGF2
aW9yIG9mIHRoZSByZWd1bGFyIGV4cHJlc3Npb24KK2VuZ2luZS4gVGhlIEMrKyB3cmFwcGVyIGRl
ZmluZXMgYW4gYXV4aWxpYXJ5IGNsYXNzLCBSRV9PcHRpb25zLCBhcyBhIHZlaGljbGUgdG8KK3Bh
c3Mgc3VjaCBtb2RpZmllcnMgdG8gYSBSRSBjbGFzcy4gQ3VycmVudGx5LCB0aGUgZm9sbG93aW5n
IG1vZGlmaWVycyBhcmUKK3N1cHBvcnRlZDoKKzxwcmU+CisgICBtb2RpZmllciAgICAgICAgICAg
ICAgZGVzY3JpcHRpb24gICAgICAgICAgICAgICBQZXJsIGNvcnJlc3BvbmRpbmcKKworICAgUENS
RV9DQVNFTEVTUyAgICAgICAgIGNhc2UgaW5zZW5zaXRpdmUgbWF0Y2ggICAgICAvaQorICAgUENS
RV9NVUxUSUxJTkUgICAgICAgIG11bHRpcGxlIGxpbmVzIG1hdGNoICAgICAgICAvbQorICAgUENS
RV9ET1RBTEwgICAgICAgICAgIGRvdCBtYXRjaGVzIG5ld2xpbmVzICAgICAgICAvcworICAgUENS
RV9ET0xMQVJfRU5ET05MWSAgICQgbWF0Y2hlcyBvbmx5IGF0IGVuZCAgICAgICBOL0EKKyAgIFBD
UkVfRVhUUkEgICAgICAgICAgICBzdHJpY3QgZXNjYXBlIHBhcnNpbmcgICAgICAgTi9BCisgICBQ
Q1JFX0VYVEVOREVEICAgICAgICAgaWdub3JlIHdoaXRlc3BhY2VzICAgICAgICAgIC94CisgICBQ
Q1JFX1VURjggICAgICAgICAgICAgaGFuZGxlcyBVVEY4IGNoYXJzICAgICAgICAgIGJ1aWx0LWlu
CisgICBQQ1JFX1VOR1JFRURZICAgICAgICAgcmV2ZXJzZXMgKiBhbmQgKj8gICAgICAgICAgIE4v
QQorICAgUENSRV9OT19BVVRPX0NBUFRVUkUgIGRpc2FibGVzIGNhcHR1cmluZyBwYXJlbnMgICBO
L0EgKCopCis8L3ByZT4KKygqKSBCb3RoIFBlcmwgYW5kIFBDUkUgYWxsb3cgbm9uIGNhcHR1cmlu
ZyBwYXJlbnRoZXNlcyBieSBtZWFucyBvZiB0aGUKKyI/OiIgbW9kaWZpZXIgd2l0aGluIHRoZSBw
YXR0ZXJuIGl0c2VsZi4gZS5nLiAoPzphYnxjZCkgZG9lcyBub3QKK2NhcHR1cmUsIHdoaWxlIChh
YnxjZCkgZG9lcy4KKzwvUD4KKzxQPgorRm9yIGEgZnVsbCBhY2NvdW50IG9uIGhvdyBlYWNoIG1v
ZGlmaWVyIHdvcmtzLCBwbGVhc2UgY2hlY2sgdGhlCitQQ1JFIEFQSSByZWZlcmVuY2UgcGFnZS4K
KzwvUD4KKzxQPgorRm9yIGVhY2ggbW9kaWZpZXIsIHRoZXJlIGFyZSB0d28gbWVtYmVyIGZ1bmN0
aW9ucyB3aG9zZSBuYW1lIGlzIG1hZGUKK291dCBvZiB0aGUgbW9kaWZpZXIgaW4gbG93ZXJjYXNl
LCB3aXRob3V0IHRoZSAiUENSRV8iIHByZWZpeC4gRm9yCitpbnN0YW5jZSwgUENSRV9DQVNFTEVT
UyBpcyBoYW5kbGVkIGJ5Cis8cHJlPgorICBib29sIGNhc2VsZXNzKCkKKzwvcHJlPgord2hpY2gg
cmV0dXJucyB0cnVlIGlmIHRoZSBtb2RpZmllciBpcyBzZXQsIGFuZAorPHByZT4KKyAgUkVfT3B0
aW9ucyAmIHNldF9jYXNlbGVzcyhib29sKQorPC9wcmU+Cit3aGljaCBzZXRzIG9yIHVuc2V0cyB0
aGUgbW9kaWZpZXIuIE1vcmVvdmVyLCBQQ1JFX0NPTkZJR19NQVRDSF9MSU1JVCBjYW4gYmUKK2Fj
Y2Vzc2VkIHRocm91Z2ggdGhlIDxiPnNldF9tYXRjaF9saW1pdCgpPC9iPiBhbmQgPGI+bWF0Y2hf
bGltaXQoKTwvYj4gbWVtYmVyCitmdW5jdGlvbnMuIFNldHRpbmcgPGk+bWF0Y2hfbGltaXQ8L2k+
IHRvIGEgbm9uLXplcm8gdmFsdWUgd2lsbCBsaW1pdCB0aGUKK2V4ZWN1dGlvbiBvZiBwY3JlIHRv
IGtlZXAgaXQgZnJvbSBkb2luZyBiYWQgdGhpbmdzIGxpa2UgYmxvd2luZyB0aGUgc3RhY2sgb3IK
K3Rha2luZyBhbiBldGVybml0eSB0byByZXR1cm4gYSByZXN1bHQuIEEgdmFsdWUgb2YgNTAwMCBp
cyBnb29kIGVub3VnaCB0byBzdG9wCitzdGFjayBibG93dXAgaW4gYSAyTUIgdGhyZWFkIHN0YWNr
LiBTZXR0aW5nIDxpPm1hdGNoX2xpbWl0PC9pPiB0byB6ZXJvIGRpc2FibGVzCittYXRjaCBsaW1p
dGluZy4KKzwvUD4KKzxQPgorTm9ybWFsbHksIHRvIHBhc3Mgb25lIG9yIG1vcmUgbW9kaWZpZXJz
IHRvIGEgUkUgY2xhc3MsIHlvdSBkZWNsYXJlCithIDxpPlJFX09wdGlvbnM8L2k+IG9iamVjdCwg
c2V0IHRoZSBhcHByb3ByaWF0ZSBvcHRpb25zLCBhbmQgcGFzcyB0aGlzCitvYmplY3QgdG8gYSBS
RSBjb25zdHJ1Y3Rvci4gRXhhbXBsZToKKzxwcmU+CisgICBSRV9vcHRpb25zIG9wdDsKKyAgIG9w
dC5zZXRfY2FzZWxlc3ModHJ1ZSk7CisgICBpZiAoUkUoIkhFTExPIiwgb3B0KS5QYXJ0aWFsTWF0
Y2goImhlbGxvIHdvcmxkIikpIC4uLgorPC9wcmU+CitSRV9vcHRpb25zIGhhcyB0d28gY29uc3Ry
dWN0b3JzLiBUaGUgZGVmYXVsdCBjb25zdHJ1Y3RvciB0YWtlcyBubyBhcmd1bWVudHMgYW5kCitj
cmVhdGVzIGEgc2V0IG9mIGZsYWdzIHRoYXQgYXJlIG9mZiBieSBkZWZhdWx0LiBUaGUgb3B0aW9u
YWwgcGFyYW1ldGVyCis8aT5vcHRpb25fZmxhZ3M8L2k+IGlzIHRvIGZhY2lsaXRhdGUgdHJhbnNm
ZXIgb2YgbGVnYWN5IGNvZGUgZnJvbSBDIHByb2dyYW1zLgorVGhpcyBsZXRzIHlvdSBkbworPHBy
ZT4KKyAgIFJFKHBhdHRlcm4sCisgICAgIFJFX09wdGlvbnMoUENSRV9DQVNFTEVTU3xQQ1JFX01V
TFRJTElORSkpLlBhcnRpYWxNYXRjaChzdHIpOworPC9wcmU+CitIb3dldmVyLCBuZXcgY29kZSBp
cyBiZXR0ZXIgb2ZmIGRvaW5nCis8cHJlPgorICAgUkUocGF0dGVybiwKKyAgICAgUkVfT3B0aW9u
cygpLnNldF9jYXNlbGVzcyh0cnVlKS5zZXRfbXVsdGlsaW5lKHRydWUpKQorICAgICAgIC5QYXJ0
aWFsTWF0Y2goc3RyKTsKKzwvcHJlPgorSWYgeW91IGFyZSBnb2luZyB0byBwYXNzIG9uZSBvZiB0
aGUgbW9zdCB1c2VkIG1vZGlmaWVycywgdGhlcmUgYXJlIHNvbWUKK2NvbnZlbmllbmNlIGZ1bmN0
aW9ucyB0aGF0IHJldHVybiBhIFJFX09wdGlvbnMgY2xhc3Mgd2l0aCB0aGUKK2FwcHJvcHJpYXRl
IG1vZGlmaWVyIGFscmVhZHkgc2V0OiA8Yj5DQVNFTEVTUygpPC9iPiwgPGI+VVRGOCgpPC9iPiwK
KzxiPk1VTFRJTElORSgpPC9iPiwgPGI+RE9UQUxMPC9iPigpLCBhbmQgPGI+RVhURU5ERUQoKTwv
Yj4uCis8L1A+Cis8UD4KK0lmIHlvdSBuZWVkIHRvIHNldCBzZXZlcmFsIG9wdGlvbnMgYXQgb25j
ZSwgYW5kIHlvdSBkb24ndCB3YW50IHRvIGdvIHRocm91Z2gKK3RoZSBwYWlucyBvZiBkZWNsYXJp
bmcgYSBSRV9PcHRpb25zIG9iamVjdCBhbmQgc2V0dGluZyBzZXZlcmFsIG9wdGlvbnMsIHRoZXJl
CitpcyBhIHBhcmFsbGVsIG1ldGhvZCB0aGF0IGdpdmUgeW91IHN1Y2ggYWJpbGl0eSBvbiB0aGUg
Zmx5LiBZb3UgY2FuIGNvbmNhdGVuYXRlCitzZXZlcmFsIDxiPnNldF94eHh4eCgpPC9iPiBtZW1i
ZXIgZnVuY3Rpb25zLCBzaW5jZSBlYWNoIG9mIHRoZW0gcmV0dXJucyBhCityZWZlcmVuY2UgdG8g
aXRzIGNsYXNzIG9iamVjdC4gRm9yIGV4YW1wbGUsIHRvIHBhc3MgUENSRV9DQVNFTEVTUywKK1BD
UkVfRVhURU5ERUQsIGFuZCBQQ1JFX01VTFRJTElORSB0byBhIFJFIHdpdGggb25lIHN0YXRlbWVu
dCwgeW91IG1heSB3cml0ZToKKzxwcmU+CisgICBSRSgiIF4geHl6IFxccysgLiogYmxhaCQiLAor
ICAgICBSRV9PcHRpb25zKCkKKyAgICAgICAuc2V0X2Nhc2VsZXNzKHRydWUpCisgICAgICAgLnNl
dF9leHRlbmRlZCh0cnVlKQorICAgICAgIC5zZXRfbXVsdGlsaW5lKHRydWUpKS5QYXJ0aWFsTWF0
Y2goc29tZXRleHQpOworCis8L1BSRT4KKzwvUD4KKzxicj48YSBuYW1lPSJTRUM3IiBocmVmPSIj
VE9DMSI+U0NBTk5JTkcgVEVYVCBJTkNSRU1FTlRBTExZPC9hPjxicj4KKzxQPgogVGhlICJDb25z
dW1lIiBvcGVyYXRpb24gbWF5IGJlIHVzZWZ1bCBpZiB5b3Ugd2FudCB0byByZXBlYXRlZGx5CiBt
YXRjaCByZWd1bGFyIGV4cHJlc3Npb25zIGF0IHRoZSBmcm9udCBvZiBhIHN0cmluZyBhbmQgc2tp
cCBvdmVyCiB0aGVtIGFzIHRoZXkgbWF0Y2guIFRoaXMgcmVxdWlyZXMgdXNlIG9mIHRoZSAiU3Ry
aW5nUGllY2UiIHR5cGUsCkBAIC0xODEsNyArMjczLDcgQEAKICAgcGNyZWNwcDo6UkUoIihcXHcr
KSIpLkZpbmRBbmRDb25zdW1lKCZpbnB1dCwgJndvcmQpCiA8L1BSRT4KIDwvUD4KLTxicj48YSBu
YW1lPSJTRUM3IiBocmVmPSIjVE9DMSI+UEFSU0lORyBIRVgvT0NUQUwvQy1SQURJWCBOVU1CRVJT
PC9hPjxicj4KKzxicj48YSBuYW1lPSJTRUM4IiBocmVmPSIjVE9DMSI+UEFSU0lORyBIRVgvT0NU
QUwvQy1SQURJWCBOVU1CRVJTPC9hPjxicj4KIDxQPgogQnkgZGVmYXVsdCwgaWYgeW91IHBhc3Mg
YSBwb2ludGVyIHRvIGEgbnVtZXJpYyB2YWx1ZSwgdGhlCiBjb3JyZXNwb25kaW5nIHRleHQgaXMg
aW50ZXJwcmV0ZWQgYXMgYSBiYXNlLTEwIG51bWJlci4gWW91IGNhbgpAQCAtMTk5LDcgKzI5MSw3
IEBACiA8L3ByZT4KIHdpbGwgbGVhdmUgNjQgaW4gYSwgYiwgYywgYW5kIGQuCiA8L1A+Ci08YnI+
PGEgbmFtZT0iU0VDOCIgaHJlZj0iI1RPQzEiPlJFUExBQ0lORyBQQVJUUyBPRiBTVFJJTkdTPC9h
Pjxicj4KKzxicj48YSBuYW1lPSJTRUM5IiBocmVmPSIjVE9DMSI+UkVQTEFDSU5HIFBBUlRTIE9G
IFNUUklOR1M8L2E+PGJyPgogPFA+CiBZb3UgY2FuIHJlcGxhY2UgdGhlIGZpcnN0IG1hdGNoIG9m
ICJwYXR0ZXJuIiBpbiAic3RyIiB3aXRoICJyZXdyaXRlIi4KIFdpdGhpbiAicmV3cml0ZSIsIGJh
Y2tzbGFzaC1lc2NhcGVkIGRpZ2l0cyAoXDEgdG8gXDkpIGNhbiBiZQpAQCAtMjMxLDcgKzMyMyw3
IEBACiBvY2N1cnJlZCBhbmQgdGhlIGV4dHJhY3Rpb24gaGFwcGVuZWQgc3VjY2Vzc2Z1bGx5OyAg
aWYgbm8gbWF0Y2ggb2NjdXJzLCB0aGUKIHN0cmluZyBpcyBsZWZ0IHVuYWZmZWN0ZWQuCiA8L1A+
Ci08YnI+PGEgbmFtZT0iU0VDOSIgaHJlZj0iI1RPQzEiPkFVVEhPUjwvYT48YnI+Cis8YnI+PGEg
bmFtZT0iU0VDMTAiIGhyZWY9IiNUT0MxIj5BVVRIT1I8L2E+PGJyPgogPFA+CiBUaGUgQysrIHdy
YXBwZXIgd2FzIGNvbnRyaWJ1dGVkIGJ5IEdvb2dsZSBJbmMuCiA8YnI+CkluZGV4OiBkb2MvcGNy
ZS50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gZG9jL3BjcmUudHh0CShyZXZpc2lvbiAxKQorKysgZG9jL3Bj
cmUudHh0CShyZXZpc2lvbiAyKQpAQCAtNDM1MiwxNSArNDM1MiwxNiBAQAogCiBERVNDUklQVElP
TgogCi0gICAgICAgVGhlICBDKysgIHdyYXBwZXIgIGZvciAgUENSRSB3YXMgcHJvdmlkZWQgYnkg
R29vZ2xlIEluYy4gVGhpcyBicmllZiBtYW4KLSAgICAgICBwYWdlIHdhcyBjb25zdHJ1Y3RlZCBm
cm9tIHRoZSBub3RlcyBpbiB0aGUgcGNyZWNwcC5oIGZpbGUsIHdoaWNoIHNob3VsZAotICAgICAg
IGJlIGNvbnN1bHRlZCBmb3IgZnVydGhlciBkZXRhaWxzLgorICAgICAgIFRoZSAgQysrICB3cmFw
cGVyICBmb3IgUENSRSB3YXMgcHJvdmlkZWQgYnkgR29vZ2xlIEluYy4gU29tZSBhZGRpdGlvbmFs
CisgICAgICAgZnVuY3Rpb25hbGl0eSB3YXMgYWRkZWQgYnkgR2l1c2VwcGUgTWF4aWEuIFRoaXMg
YnJpZWYgbWFuIHBhZ2Ugd2FzIGNvbi0KKyAgICAgICBzdHJ1Y3RlZCAgZnJvbSAgdGhlICBub3Rl
cyAgaW4gdGhlIHBjcmVjcHAuaCBmaWxlLCB3aGljaCBzaG91bGQgYmUgY29uLQorICAgICAgIHN1
bHRlZCBmb3IgZnVydGhlciBkZXRhaWxzLgogCiAKIE1BVENISU5HIElOVEVSRkFDRQogCi0gICAg
ICAgVGhlICAiRnVsbE1hdGNoIiBvcGVyYXRpb24gY2hlY2tzIHRoYXQgc3VwcGxpZWQgdGV4dCBt
YXRjaGVzIGEgc3VwcGxpZWQKLSAgICAgICBwYXR0ZXJuIGV4YWN0bHkuIElmIHBvaW50ZXIgYXJn
dW1lbnRzIGFyZSBzdXBwbGllZCwgaXQgIGNvcGllcyAgbWF0Y2hlZAorICAgICAgIFRoZSAiRnVs
bE1hdGNoIiBvcGVyYXRpb24gY2hlY2tzIHRoYXQgc3VwcGxpZWQgdGV4dCBtYXRjaGVzIGEgIHN1
cHBsaWVkCisgICAgICAgcGF0dGVybiAgZXhhY3RseS4gIElmIHBvaW50ZXIgYXJndW1lbnRzIGFy
ZSBzdXBwbGllZCwgaXQgY29waWVzIG1hdGNoZWQKICAgICAgICBzdWItc3RyaW5ncyB0aGF0IG1h
dGNoIHN1Yi1wYXR0ZXJucyBpbnRvIHRoZW0uCiAKICAgICAgICAgIEV4YW1wbGU6IHN1Y2Nlc3Nm
dWwgbWF0Y2gKQEAgLTQzNzQsMTAgKzQzNzUsMTAgQEAKICAgICAgICAgIEV4YW1wbGU6IGNyZWF0
aW5nIGEgdGVtcG9yYXJ5IFJFIG9iamVjdDoKICAgICAgICAgICAgIHBjcmVjcHA6OlJFKCJoLipv
IikuRnVsbE1hdGNoKCJoZWxsbyIpOwogCi0gICAgICAgWW91ICBjYW4gcGFzcyBpbiBhICJjb25z
dCBjaGFyKiIgb3IgYSAic3RyaW5nIiBmb3IgInRleHQiLiBUaGUgZXhhbXBsZXMKLSAgICAgICBi
ZWxvdyB0ZW5kIHRvIHVzZSBhIGNvbnN0IGNoYXIqLiBZb3UgY2FuLCBhcyBpbiB0aGUgZGlmZmVy
ZW50ICBleGFtcGxlcwotICAgICAgIGFib3ZlLCAgc3RvcmUgdGhlIFJFIG9iamVjdCBleHBsaWNp
dGx5IGluIGEgdmFyaWFibGUgb3IgdXNlIGEgdGVtcG9yYXJ5Ci0gICAgICAgUkUgb2JqZWN0LiBU
aGUgZXhhbXBsZXMgYmVsb3cgdXNlIG9uZSBtb2RlIG9yICB0aGUgIG90aGVyICBhcmJpdHJhcmls
eS4KKyAgICAgICBZb3UgY2FuIHBhc3MgaW4gYSAiY29uc3QgY2hhcioiIG9yIGEgInN0cmluZyIg
Zm9yICJ0ZXh0Ii4gVGhlICBleGFtcGxlcworICAgICAgIGJlbG93ICB0ZW5kIHRvIHVzZSBhIGNv
bnN0IGNoYXIqLiBZb3UgY2FuLCBhcyBpbiB0aGUgZGlmZmVyZW50IGV4YW1wbGVzCisgICAgICAg
YWJvdmUsIHN0b3JlIHRoZSBSRSBvYmplY3QgZXhwbGljaXRseSBpbiBhIHZhcmlhYmxlIG9yIHVz
ZSBhICB0ZW1wb3JhcnkKKyAgICAgICBSRSAgb2JqZWN0LiAgVGhlICBleGFtcGxlcyBiZWxvdyB1
c2Ugb25lIG1vZGUgb3IgdGhlIG90aGVyIGFyYml0cmFyaWx5LgogICAgICAgIEVpdGhlciBjb3Vs
ZCBjb3JyZWN0bHkgYmUgdXNlZCBmb3IgYW55IG9mIHRoZXNlIGV4YW1wbGVzLgogCiAgICAgICAg
WW91IG11c3Qgc3VwcGx5IGV4dHJhIHBvaW50ZXIgYXJndW1lbnRzIHRvIGV4dHJhY3QgbWF0Y2hl
ZCBzdWJwaWVjZXMuCkBAIC00NDAzLDcgKzQ0MDQsNyBAQAogICAgICAgICAgRXhhbXBsZTogZmFp
bHMgYmVjYXVzZSBzdHJpbmcgY2Fubm90IGJlIHN0b3JlZCBpbiBpbnRlZ2VyCiAgICAgICAgICAg
ICAhcGNyZWNwcDo6UkUoIiguKikiKS5GdWxsTWF0Y2goInJ1YnkiLCAmaSk7CiAKLSAgICAgICBU
aGUgIHByb3ZpZGVkICBwb2ludGVyICBhcmd1bWVudHMgY2FuIGJlIHBvaW50ZXJzIHRvIGFueSBz
Y2FsYXIgbnVtZXJpYworICAgICAgIFRoZSBwcm92aWRlZCBwb2ludGVyIGFyZ3VtZW50cyBjYW4g
YmUgcG9pbnRlcnMgdG8gIGFueSAgc2NhbGFyICBudW1lcmljCiAgICAgICAgdHlwZSwgb3Igb25l
IG9mOgogCiAgICAgICAgICAgc3RyaW5nICAgICAgICAobWF0Y2hlZCBwaWVjZSBpcyBjb3BpZWQg
dG8gc3RyaW5nKQpAQCAtNDQxMSw3ICs0NDEyLDcgQEAKICAgICAgICAgICBUICAgICAgICAgICAg
ICh3aGVyZSAiYm9vbCBUOjpQYXJzZUZyb20oY29uc3QgY2hhciosIGludCkiIGV4aXN0cykKICAg
ICAgICAgICBOVUxMICAgICAgICAgICh0aGUgY29ycmVzcG9uZGluZyBtYXRjaGVkIHN1Yi1wYXR0
ZXJuIGlzIG5vdCBjb3BpZWQpCiAKLSAgICAgICBUaGUgZnVuY3Rpb24gcmV0dXJucyB0cnVlIGlm
ZiBhbGwgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZSAgc2F0LQorICAgICAgIFRoZSAg
ZnVuY3Rpb24gcmV0dXJucyB0cnVlIGlmZiBhbGwgb2YgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZSBzYXQtCiAgICAgICAgaXNmaWVkOgogCiAgICAgICAgICBhLiAidGV4dCIgbWF0Y2hlcyAi
cGF0dGVybiIgZXhhY3RseTsKQEAgLTQ0MjUsMTQgKzQ0MjYsMTQgQEAKICAgICAgICAgICAgIG51
bWJlciBvZiBzdWItcGF0dGVybnMsICJpInRoIGNhcHR1cmVkIHN1Yi1wYXR0ZXJuIGlzCiAgICAg
ICAgICAgICBpZ25vcmVkLgogCi0gICAgICAgVGhlICBtYXRjaGluZyBpbnRlcmZhY2Ugc3VwcG9y
dHMgYXQgbW9zdCAxNiBhcmd1bWVudHMgcGVyIGNhbGwuICBJZiB5b3UKLSAgICAgICBuZWVkICAg
bW9yZSwgICBjb25zaWRlciAgICB1c2luZyAgICB0aGUgICAgbW9yZSAgICBnZW5lcmFsICAgIGlu
dGVyZmFjZQorICAgICAgIFRoZSBtYXRjaGluZyBpbnRlcmZhY2Ugc3VwcG9ydHMgYXQgbW9zdCAx
NiBhcmd1bWVudHMgcGVyIGNhbGwuICBJZiAgeW91CisgICAgICAgbmVlZCAgICBtb3JlLCAgICBj
b25zaWRlciAgICB1c2luZyAgICB0aGUgICAgbW9yZSAgIGdlbmVyYWwgICBpbnRlcmZhY2UKICAg
ICAgICBwY3JlY3BwOjpSRTo6RG9NYXRjaC4gU2VlIHBjcmVjcHAuaCBmb3IgdGhlIHNpZ25hdHVy
ZSBmb3IgRG9NYXRjaC4KIAogCiBQQVJUSUFMIE1BVENIRVMKIAotICAgICAgIFlvdSAgY2FuICB1
c2UgdGhlICJQYXJ0aWFsTWF0Y2giIG9wZXJhdGlvbiB3aGVuIHlvdSB3YW50IHRoZSBwYXR0ZXJu
IHRvCisgICAgICAgWW91IGNhbiB1c2UgdGhlICJQYXJ0aWFsTWF0Y2giIG9wZXJhdGlvbiB3aGVu
IHlvdSB3YW50IHRoZSAgcGF0dGVybiAgdG8KICAgICAgICBtYXRjaCBhbnkgc3Vic3RyaW5nIG9m
IHRoZSB0ZXh0LgogCiAgICAgICAgICBFeGFtcGxlOiBzaW1wbGUgc2VhcmNoIGZvciBhIHN0cmlu
ZzoKQEAgLTQ0NDcsMTMgKzQ0NDgsMTMgQEAKIAogVVRGLTggQU5EIFRIRSBNQVRDSElORyBJTlRF
UkZBQ0UKIAotICAgICAgIEJ5IGRlZmF1bHQsIHBhdHRlcm4gYW5kIHRleHQgYXJlIHBsYWluIHRl
eHQsIG9uZSAgYnl0ZSAgcGVyICBjaGFyYWN0ZXIuCi0gICAgICAgVGhlICBVVEY4ICBmbGFnLCAg
cGFzc2VkICB0byAgdGhlICBjb25zdHJ1Y3RvciwgY2F1c2VzIGJvdGggcGF0dGVybiBhbmQKKyAg
ICAgICBCeSAgZGVmYXVsdCwgIHBhdHRlcm4gIGFuZCB0ZXh0IGFyZSBwbGFpbiB0ZXh0LCBvbmUg
Ynl0ZSBwZXIgY2hhcmFjdGVyLgorICAgICAgIFRoZSBVVEY4IGZsYWcsIHBhc3NlZCB0byAgdGhl
ICBjb25zdHJ1Y3RvciwgIGNhdXNlcyAgYm90aCAgcGF0dGVybiAgYW5kCiAgICAgICAgc3RyaW5n
IHRvIGJlIHRyZWF0ZWQgYXMgVVRGLTggdGV4dCwgc3RpbGwgYSBieXRlIHN0cmVhbSBidXQgcG90
ZW50aWFsbHkKLSAgICAgICBtdWx0aXBsZSAgYnl0ZXMgIHBlciBjaGFyYWN0ZXIuIEluIHByYWN0
aWNlLCB0aGUgdGV4dCBpcyBsaWtlbGllciB0byBiZQotICAgICAgIFVURi04IHRoYW4gdGhlIHBh
dHRlcm4sIGJ1dCB0aGUgbWF0Y2ggcmV0dXJuZWQgbWF5IGRlcGVuZCBvbiAgdGhlICBVVEY4Ci0g
ICAgICAgZmxhZywgIHNvICBhbHdheXMgdXNlIGl0IHdoZW4gbWF0Y2hpbmcgVVRGOCB0ZXh0LiBG
b3IgZXhhbXBsZSwgIi4iIHdpbGwKLSAgICAgICBtYXRjaCBvbmUgYnl0ZSBub3JtYWxseSBidXQg
d2l0aCBVVEY4IHNldCBtYXkgbWF0Y2ggdXAgdG8gIHRocmVlICBieXRlcworICAgICAgIG11bHRp
cGxlIGJ5dGVzIHBlciBjaGFyYWN0ZXIuIEluIHByYWN0aWNlLCB0aGUgdGV4dCBpcyBsaWtlbGll
ciAgdG8gIGJlCisgICAgICAgVVRGLTggIHRoYW4gIHRoZSBwYXR0ZXJuLCBidXQgdGhlIG1hdGNo
IHJldHVybmVkIG1heSBkZXBlbmQgb24gdGhlIFVURjgKKyAgICAgICBmbGFnLCBzbyBhbHdheXMg
dXNlIGl0IHdoZW4gbWF0Y2hpbmcgVVRGOCB0ZXh0LiBGb3IgZXhhbXBsZSwgICIuIiAgd2lsbAor
ICAgICAgIG1hdGNoICBvbmUgIGJ5dGUgbm9ybWFsbHkgYnV0IHdpdGggVVRGOCBzZXQgbWF5IG1h
dGNoIHVwIHRvIHRocmVlIGJ5dGVzCiAgICAgICAgb2YgYSBtdWx0aS1ieXRlIGNoYXJhY3Rlci4K
IAogICAgICAgICAgRXhhbXBsZToKQEAgLTQ0NzAsMTIgKzQ0NzEsOTggQEAKICAgICAgICAgICAg
ICAtLWVuYWJsZS11dGY4IGZsYWcuCiAKIAorUEFTU0lORyBNT0RJRklFUlMgVE8gVEhFIFJFR1VM
QVIgRVhQUkVTU0lPTiBFTkdJTkUKKworICAgICAgIFBDUkUgZGVmaW5lcyBzb21lIG1vZGlmaWVy
cyB0byAgY2hhbmdlICB0aGUgIGJlaGF2aW9yICBvZiAgdGhlICByZWd1bGFyCisgICAgICAgZXhw
cmVzc2lvbiAgIGVuZ2luZS4gIFRoZSAgQysrICB3cmFwcGVyICBkZWZpbmVzICBhbiAgYXV4aWxp
YXJ5ICBjbGFzcywKKyAgICAgICBSRV9PcHRpb25zLCBhcyBhIHZlaGljbGUgdG8gcGFzcyBzdWNo
IG1vZGlmaWVycyB0byAgYSAgUkUgIGNsYXNzLiAgQ3VyLQorICAgICAgIHJlbnRseSwgdGhlIGZv
bGxvd2luZyBtb2RpZmllcnMgYXJlIHN1cHBvcnRlZDoKKworICAgICAgICAgIG1vZGlmaWVyICAg
ICAgICAgICAgICBkZXNjcmlwdGlvbiAgICAgICAgICAgICAgIFBlcmwgY29ycmVzcG9uZGluZwor
CisgICAgICAgICAgUENSRV9DQVNFTEVTUyAgICAgICAgIGNhc2UgaW5zZW5zaXRpdmUgbWF0Y2gg
ICAgICAvaQorICAgICAgICAgIFBDUkVfTVVMVElMSU5FICAgICAgICBtdWx0aXBsZSBsaW5lcyBt
YXRjaCAgICAgICAgL20KKyAgICAgICAgICBQQ1JFX0RPVEFMTCAgICAgICAgICAgZG90IG1hdGNo
ZXMgbmV3bGluZXMgICAgICAgIC9zCisgICAgICAgICAgUENSRV9ET0xMQVJfRU5ET05MWSAgICQg
bWF0Y2hlcyBvbmx5IGF0IGVuZCAgICAgICBOL0EKKyAgICAgICAgICBQQ1JFX0VYVFJBICAgICAg
ICAgICAgc3RyaWN0IGVzY2FwZSBwYXJzaW5nICAgICAgIE4vQQorICAgICAgICAgIFBDUkVfRVhU
RU5ERUQgICAgICAgICBpZ25vcmUgd2hpdGVzcGFjZXMgICAgICAgICAgL3gKKyAgICAgICAgICBQ
Q1JFX1VURjggICAgICAgICAgICAgaGFuZGxlcyBVVEY4IGNoYXJzICAgICAgICAgIGJ1aWx0LWlu
CisgICAgICAgICAgUENSRV9VTkdSRUVEWSAgICAgICAgIHJldmVyc2VzICogYW5kICo/ICAgICAg
ICAgICBOL0EKKyAgICAgICAgICBQQ1JFX05PX0FVVE9fQ0FQVFVSRSAgZGlzYWJsZXMgY2FwdHVy
aW5nIHBhcmVucyAgIE4vQSAoKikKKworICAgICAgICgqKSAgQm90aCBQZXJsIGFuZCBQQ1JFIGFs
bG93IG5vbiBjYXB0dXJpbmcgcGFyZW50aGVzZXMgYnkgbWVhbnMgb2YgdGhlCisgICAgICAgIj86
IiBtb2RpZmllciB3aXRoaW4gdGhlIHBhdHRlcm4gaXRzZWxmLiBlLmcuICg/OmFifGNkKSBkb2Vz
ICBub3QgIGNhcC0KKyAgICAgICB0dXJlLCB3aGlsZSAoYWJ8Y2QpIGRvZXMuCisKKyAgICAgICBG
b3IgIGEgIGZ1bGwgIGFjY291bnQgb24gaG93IGVhY2ggbW9kaWZpZXIgd29ya3MsIHBsZWFzZSBj
aGVjayB0aGUgUENSRQorICAgICAgIEFQSSByZWZlcmVuY2UgcGFnZS4KKworICAgICAgIEZvciBl
YWNoIG1vZGlmaWVyLCB0aGVyZSBhcmUgdHdvIG1lbWJlciBmdW5jdGlvbnMgd2hvc2UgIG5hbWUg
IGlzICBtYWRlCisgICAgICAgb3V0ICBvZiAgdGhlICBtb2RpZmllciAgaW4gIGxvd2VyY2FzZSwg
IHdpdGhvdXQgdGhlICJQQ1JFXyIgcHJlZml4LiBGb3IKKyAgICAgICBpbnN0YW5jZSwgUENSRV9D
QVNFTEVTUyBpcyBoYW5kbGVkIGJ5CisKKyAgICAgICAgIGJvb2wgY2FzZWxlc3MoKQorCisgICAg
ICAgd2hpY2ggcmV0dXJucyB0cnVlIGlmIHRoZSBtb2RpZmllciBpcyBzZXQsIGFuZAorCisgICAg
ICAgICBSRV9PcHRpb25zICYgc2V0X2Nhc2VsZXNzKGJvb2wpCisKKyAgICAgICB3aGljaCBzZXRz
IG9yIHVuc2V0cyB0aGUgIG1vZGlmaWVyLiAgTW9yZW92ZXIsICBQQ1JFX0NPTkZJR19NQVRDSF9M
SU1JVAorICAgICAgIGNhbiAgYmUgYWNjZXNzZWQgdGhyb3VnaCB0aGUgc2V0X21hdGNoX2xpbWl0
KCkgYW5kIG1hdGNoX2xpbWl0KCkgbWVtYmVyCisgICAgICAgZnVuY3Rpb25zLiBTZXR0aW5nIG1h
dGNoX2xpbWl0IHRvIGEgbm9uLXplcm8gdmFsdWUgd2lsbCBsaW1pdCB0aGUgIGV4ZS0KKyAgICAg
ICBjdXRpb24gIG9mIHBjcmUgdG8ga2VlcCBpdCBmcm9tIGRvaW5nIGJhZCB0aGluZ3MgbGlrZSBi
bG93aW5nIHRoZSBzdGFjaworICAgICAgIG9yIHRha2luZyBhbiBldGVybml0eSB0byByZXR1cm4g
YSByZXN1bHQuICBBICB2YWx1ZSAgb2YgIDUwMDAgIGlzICBnb29kCisgICAgICAgZW5vdWdoICB0
byBzdG9wIHN0YWNrIGJsb3d1cCBpbiBhIDJNQiB0aHJlYWQgc3RhY2suIFNldHRpbmcgbWF0Y2hf
bGltaXQKKyAgICAgICB0byB6ZXJvIGRpc2FibGVzIG1hdGNoIGxpbWl0aW5nLgorCisgICAgICAg
Tm9ybWFsbHksIHRvIHBhc3Mgb25lIG9yIG1vcmUgbW9kaWZpZXJzIHRvIGEgUkUgY2xhc3MsICB5
b3UgIGRlY2xhcmUgIGEKKyAgICAgICBSRV9PcHRpb25zIG9iamVjdCwgc2V0IHRoZSBhcHByb3By
aWF0ZSBvcHRpb25zLCBhbmQgcGFzcyB0aGlzIG9iamVjdCB0bworICAgICAgIGEgUkUgY29uc3Ry
dWN0b3IuIEV4YW1wbGU6CisKKyAgICAgICAgICBSRV9vcHRpb25zIG9wdDsKKyAgICAgICAgICBv
cHQuc2V0X2Nhc2VsZXNzKHRydWUpOworICAgICAgICAgIGlmIChSRSgiSEVMTE8iLCBvcHQpLlBh
cnRpYWxNYXRjaCgiaGVsbG8gd29ybGQiKSkgLi4uCisKKyAgICAgICBSRV9vcHRpb25zIGhhcyB0
d28gY29uc3RydWN0b3JzLiBUaGUgZGVmYXVsdCBjb25zdHJ1Y3RvciB0YWtlcyBubyBhcmd1LQor
ICAgICAgIG1lbnRzICBhbmQgY3JlYXRlcyBhIHNldCBvZiBmbGFncyB0aGF0IGFyZSBvZmYgYnkg
ZGVmYXVsdC4gVGhlIG9wdGlvbmFsCisgICAgICAgcGFyYW1ldGVyIG9wdGlvbl9mbGFncyBpcyB0
byBmYWNpbGl0YXRlIHRyYW5zZmVyIG9mIGxlZ2FjeSBjb2RlIGZyb20gIEMKKyAgICAgICBwcm9n
cmFtcy4gIFRoaXMgbGV0cyB5b3UgZG8KKworICAgICAgICAgIFJFKHBhdHRlcm4sCisgICAgICAg
ICAgICBSRV9PcHRpb25zKFBDUkVfQ0FTRUxFU1N8UENSRV9NVUxUSUxJTkUpKS5QYXJ0aWFsTWF0
Y2goc3RyKTsKKworICAgICAgIEhvd2V2ZXIsIG5ldyBjb2RlIGlzIGJldHRlciBvZmYgZG9pbmcK
KworICAgICAgICAgIFJFKHBhdHRlcm4sCisgICAgICAgICAgICBSRV9PcHRpb25zKCkuc2V0X2Nh
c2VsZXNzKHRydWUpLnNldF9tdWx0aWxpbmUodHJ1ZSkpCisgICAgICAgICAgICAgIC5QYXJ0aWFs
TWF0Y2goc3RyKTsKKworICAgICAgIElmIHlvdSBhcmUgZ29pbmcgdG8gcGFzcyBvbmUgb2YgdGhl
IG1vc3QgdXNlZCBtb2RpZmllcnMsIHRoZXJlIGFyZSBzb21lCisgICAgICAgY29udmVuaWVuY2Ug
ZnVuY3Rpb25zIHRoYXQgcmV0dXJuIGEgUkVfT3B0aW9ucyBjbGFzcyB3aXRoIHRoZSBhcHByb3By
aS0KKyAgICAgICBhdGUgIG1vZGlmaWVyICBhbHJlYWR5ICBzZXQ6IENBU0VMRVNTKCksIFVURjgo
KSwgTVVMVElMSU5FKCksIERPVEFMTCgpLAorICAgICAgIGFuZCBFWFRFTkRFRCgpLgorCisgICAg
ICAgSWYgeW91IG5lZWQgdG8gc2V0IHNldmVyYWwgb3B0aW9ucyBhdCBvbmNlLCBhbmQgeW91IGRv
bid0ICB3YW50ICB0byAgZ28KKyAgICAgICB0aHJvdWdoICB0aGUgcGFpbnMgb2YgZGVjbGFyaW5n
IGEgUkVfT3B0aW9ucyBvYmplY3QgYW5kIHNldHRpbmcgc2V2ZXJhbAorICAgICAgIG9wdGlvbnMs
IHRoZXJlIGlzIGEgcGFyYWxsZWwgbWV0aG9kIHRoYXQgZ2l2ZSB5b3Ugc3VjaCBhYmlsaXR5ICBv
biAgdGhlCisgICAgICAgZmx5LiAgWW91ICBjYW4gIGNvbmNhdGVuYXRlIHNldmVyYWwgc2V0X3h4
eHh4KCkgbWVtYmVyIGZ1bmN0aW9ucywgc2luY2UKKyAgICAgICBlYWNoIG9mIHRoZW0gcmV0dXJu
cyBhIHJlZmVyZW5jZSB0byBpdHMgY2xhc3Mgb2JqZWN0LiBGb3IgIGV4YW1wbGUsICB0bworICAg
ICAgIHBhc3MgIFBDUkVfQ0FTRUxFU1MsIFBDUkVfRVhURU5ERUQsIGFuZCBQQ1JFX01VTFRJTElO
RSB0byBhIFJFIHdpdGggb25lCisgICAgICAgc3RhdGVtZW50LCB5b3UgbWF5IHdyaXRlOgorCisg
ICAgICAgICAgUkUoIiBeIHh5eiBcXHMrIC4qIGJsYWgkIiwKKyAgICAgICAgICAgIFJFX09wdGlv
bnMoKQorICAgICAgICAgICAgICAuc2V0X2Nhc2VsZXNzKHRydWUpCisgICAgICAgICAgICAgIC5z
ZXRfZXh0ZW5kZWQodHJ1ZSkKKyAgICAgICAgICAgICAgLnNldF9tdWx0aWxpbmUodHJ1ZSkpLlBh
cnRpYWxNYXRjaChzb21ldGV4dCk7CisKKwogU0NBTk5JTkcgVEVYVCBJTkNSRU1FTlRBTExZCiAK
LSAgICAgICBUaGUgICJDb25zdW1lIiAgb3BlcmF0aW9uIG1heSBiZSB1c2VmdWwgaWYgeW91IHdh
bnQgdG8gcmVwZWF0ZWRseSBtYXRjaAorICAgICAgIFRoZSAiQ29uc3VtZSIgb3BlcmF0aW9uIG1h
eSBiZSB1c2VmdWwgaWYgeW91IHdhbnQgdG8gIHJlcGVhdGVkbHkgIG1hdGNoCiAgICAgICAgcmVn
dWxhciBleHByZXNzaW9ucyBhdCB0aGUgZnJvbnQgb2YgYSBzdHJpbmcgYW5kIHNraXAgb3ZlciB0
aGVtIGFzIHRoZXkKLSAgICAgICBtYXRjaC4gIFRoaXMgcmVxdWlyZXMgdXNlIG9mIHRoZSAiU3Ry
aW5nUGllY2UiIHR5cGUsIHdoaWNoIHJlcHJlc2VudHMgYQotICAgICAgIHN1Yi1yYW5nZSBvZiBh
IHJlYWwgc3RyaW5nLiBMaWtlIFJFLCAgU3RyaW5nUGllY2UgIGlzICBkZWZpbmVkICBpbiAgdGhl
CisgICAgICAgbWF0Y2guIFRoaXMgcmVxdWlyZXMgdXNlIG9mIHRoZSAiU3RyaW5nUGllY2UiIHR5
cGUsIHdoaWNoIHJlcHJlc2VudHMgIGEKKyAgICAgICBzdWItcmFuZ2UgIG9mICBhICByZWFsICBz
dHJpbmcuICBMaWtlIFJFLCBTdHJpbmdQaWVjZSBpcyBkZWZpbmVkIGluIHRoZQogICAgICAgIHBj
cmVjcHAgbmFtZXNwYWNlLgogCiAgICAgICAgICBFeGFtcGxlOiByZWFkIGxpbmVzIG9mIHRoZSBm
b3JtICJ2YXIgPSB2YWx1ZSIgZnJvbSBhIHN0cmluZy4KQEAgLTQ0ODksMTEgKzQ1NzYsMTEgQEAK
ICAgICAgICAgICAgICAgLi4uOwogICAgICAgICAgICAgfQogCi0gICAgICAgRWFjaCAgc3VjY2Vz
c2Z1bCAgY2FsbCAgdG8gICJDb25zdW1lIiAgd2lsbCAgc2V0ICAidmFyL3ZhbHVlIiwgYW5kIGFs
c28KKyAgICAgICBFYWNoIHN1Y2Nlc3NmdWwgY2FsbCAgdG8gICJDb25zdW1lIiAgd2lsbCAgc2V0
ICAidmFyL3ZhbHVlIiwgIGFuZCAgYWxzbwogICAgICAgIGFkdmFuY2UgImlucHV0IiBzbyBpdCBw
b2ludHMgcGFzdCB0aGUgbWF0Y2hlZCB0ZXh0LgogCi0gICAgICAgVGhlICJGaW5kQW5kQ29uc3Vt
ZSIgb3BlcmF0aW9uIGlzIHNpbWlsYXIgdG8gICJDb25zdW1lIiAgYnV0ICBkb2VzICBub3QKLSAg
ICAgICBhbmNob3IgIHlvdXIgIG1hdGNoICBhdCAgdGhlICBiZWdpbm5pbmcgb2YgdGhlIHN0cmlu
Zy4gRm9yIGV4YW1wbGUsIHlvdQorICAgICAgIFRoZSAgIkZpbmRBbmRDb25zdW1lIiAgb3BlcmF0
aW9uICBpcyAgc2ltaWxhciB0byAiQ29uc3VtZSIgYnV0IGRvZXMgbm90CisgICAgICAgYW5jaG9y
IHlvdXIgbWF0Y2ggYXQgdGhlIGJlZ2lubmluZyBvZiAgdGhlICBzdHJpbmcuICBGb3IgIGV4YW1w
bGUsICB5b3UKICAgICAgICBjb3VsZCBleHRyYWN0IGFsbCB3b3JkcyBmcm9tIGEgc3RyaW5nIGJ5
IHJlcGVhdGVkbHkgY2FsbGluZwogCiAgICAgICAgICBwY3JlY3BwOjpSRSgiKFxcdyspIikuRmlu
ZEFuZENvbnN1bWUoJmlucHV0LCAmd29yZCkKQEAgLTQ1MDIsMTAgKzQ1ODksMTAgQEAKIFBBUlNJ
TkcgSEVYL09DVEFML0MtUkFESVggTlVNQkVSUwogCiAgICAgICAgQnkgZGVmYXVsdCwgaWYgeW91
IHBhc3MgYSBwb2ludGVyIHRvIGEgbnVtZXJpYyB2YWx1ZSwgdGhlIGNvcnJlc3BvbmRpbmcKLSAg
ICAgICB0ZXh0ICBpcyAgaW50ZXJwcmV0ZWQgIGFzICBhICBiYXNlLTEwICBudW1iZXIuIFlvdSBj
YW4gaW5zdGVhZCB3cmFwIHRoZQorICAgICAgIHRleHQgaXMgaW50ZXJwcmV0ZWQgYXMgYSBiYXNl
LTEwICBudW1iZXIuICBZb3UgIGNhbiAgaW5zdGVhZCAgd3JhcCAgdGhlCiAgICAgICAgcG9pbnRl
ciB3aXRoIGEgY2FsbCB0byBvbmUgb2YgdGhlIG9wZXJhdG9ycyBIZXgoKSwgT2N0YWwoKSwgb3Ig
Q1JhZGl4KCkKLSAgICAgICB0byAgaW50ZXJwcmV0ICB0aGUgdGV4dCBpbiBhbm90aGVyIGJhc2Uu
IFRoZSBDUmFkaXggb3BlcmF0b3IgaW50ZXJwcmV0cwotICAgICAgIEMtc3R5bGUgIjAiIChiYXNl
LTgpIGFuZCAgIjB4IiAgKGJhc2UtMTYpICBwcmVmaXhlcywgIGJ1dCAgZGVmYXVsdHMgIHRvCisg
ICAgICAgdG8gaW50ZXJwcmV0IHRoZSB0ZXh0IGluIGFub3RoZXIgYmFzZS4gVGhlIENSYWRpeCAg
b3BlcmF0b3IgIGludGVycHJldHMKKyAgICAgICBDLXN0eWxlICAiMCIgIChiYXNlLTgpICBhbmQg
ICIweCIgIChiYXNlLTE2KSAgcHJlZml4ZXMsIGJ1dCBkZWZhdWx0cyB0bwogICAgICAgIGJhc2Ut
MTAuCiAKICAgICAgICAgIEV4YW1wbGU6CkBAIC00NTIwLDMwICs0NjA3LDMwIEBACiAKIFJFUExB
Q0lORyBQQVJUUyBPRiBTVFJJTkdTCiAKLSAgICAgICBZb3UgIGNhbiAgcmVwbGFjZSB0aGUgZmly
c3QgbWF0Y2ggb2YgInBhdHRlcm4iIGluICJzdHIiIHdpdGggInJld3JpdGUiLgotICAgICAgIFdp
dGhpbiAicmV3cml0ZSIsIGJhY2tzbGFzaC1lc2NhcGVkIGRpZ2l0cyAoXDEgdG8gXDkpIGNhbiAg
YmUgIHVzZWQgIHRvCi0gICAgICAgaW5zZXJ0ICB0ZXh0ICBtYXRjaGluZyAgY29ycmVzcG9uZGlu
ZyBwYXJlbnRoZXNpemVkIGdyb3VwIGZyb20gdGhlIHBhdC0KKyAgICAgICBZb3UgY2FuIHJlcGxh
Y2UgdGhlIGZpcnN0IG1hdGNoIG9mICJwYXR0ZXJuIiBpbiAic3RyIiAgd2l0aCAgInJld3JpdGUi
LgorICAgICAgIFdpdGhpbiAgInJld3JpdGUiLCAgYmFja3NsYXNoLWVzY2FwZWQgIGRpZ2l0cyAo
XDEgdG8gXDkpIGNhbiBiZSB1c2VkIHRvCisgICAgICAgaW5zZXJ0IHRleHQgbWF0Y2hpbmcgY29y
cmVzcG9uZGluZyBwYXJlbnRoZXNpemVkIGdyb3VwICBmcm9tICB0aGUgIHBhdC0KICAgICAgICB0
ZXJuLiBcMCBpbiAicmV3cml0ZSIgcmVmZXJzIHRvIHRoZSBlbnRpcmUgbWF0Y2hpbmcgdGV4dC4g
Rm9yIGV4YW1wbGU6CiAKICAgICAgICAgIHN0cmluZyBzID0gInlhYmJhIGRhYmJhIGRvbyI7CiAg
ICAgICAgICBwY3JlY3BwOjpSRSgiYisiKS5SZXBsYWNlKCJkIiwgJnMpOwogCi0gICAgICAgd2ls
bCBsZWF2ZSAicyIgY29udGFpbmluZyAieWFkYSBkYWJiYSBkb28iLiBUaGUgcmVzdWx0IGlzIHRy
dWUgIGlmICB0aGUKKyAgICAgICB3aWxsICBsZWF2ZSAgInMiIGNvbnRhaW5pbmcgInlhZGEgZGFi
YmEgZG9vIi4gVGhlIHJlc3VsdCBpcyB0cnVlIGlmIHRoZQogICAgICAgIHBhdHRlcm4gbWF0Y2hl
cyBhbmQgYSByZXBsYWNlbWVudCBvY2N1cnMsIGZhbHNlIG90aGVyd2lzZS4KIAotICAgICAgIEds
b2JhbFJlcGxhY2UgIGlzICBsaWtlIFJlcGxhY2UgZXhjZXB0IHRoYXQgaXQgcmVwbGFjZXMgYWxs
IG9jY3VycmVuY2VzCi0gICAgICAgb2YgdGhlIHBhdHRlcm4gaW4gdGhlIHN0cmluZyB3aXRoIHRo
ZSAgcmV3cml0ZS4gIFJlcGxhY2VtZW50cyAgYXJlICBub3QKKyAgICAgICBHbG9iYWxSZXBsYWNl
IGlzIGxpa2UgUmVwbGFjZSBleGNlcHQgdGhhdCBpdCByZXBsYWNlcyAgYWxsICBvY2N1cnJlbmNl
cworICAgICAgIG9mICB0aGUgIHBhdHRlcm4gIGluICB0aGUgc3RyaW5nIHdpdGggdGhlIHJld3Jp
dGUuIFJlcGxhY2VtZW50cyBhcmUgbm90CiAgICAgICAgc3ViamVjdCB0byByZS1tYXRjaGluZy4g
Rm9yIGV4YW1wbGU6CiAKICAgICAgICAgIHN0cmluZyBzID0gInlhYmJhIGRhYmJhIGRvbyI7CiAg
ICAgICAgICBwY3JlY3BwOjpSRSgiYisiKS5HbG9iYWxSZXBsYWNlKCJkIiwgJnMpOwogCi0gICAg
ICAgd2lsbCAgbGVhdmUgICJzIiAgY29udGFpbmluZyAgInlhZGEgZGFkYSBkb28iLiBJdCByZXR1
cm5zIHRoZSBudW1iZXIgb2YKKyAgICAgICB3aWxsIGxlYXZlICJzIiBjb250YWluaW5nICJ5YWRh
IGRhZGEgZG9vIi4gSXQgIHJldHVybnMgIHRoZSAgbnVtYmVyICBvZgogICAgICAgIHJlcGxhY2Vt
ZW50cyBtYWRlLgogCi0gICAgICAgRXh0cmFjdCBpcyBsaWtlIFJlcGxhY2UsIGV4Y2VwdCB0aGF0
IGlmIHRoZSBwYXR0ZXJuIG1hdGNoZXMsICAicmV3cml0ZSIKLSAgICAgICBpcyAgY29waWVkIGlu
dG8gIm91dCIgKGFuIGFkZGl0aW9uYWwgYXJndW1lbnQpIHdpdGggc3Vic3RpdHV0aW9ucy4gIFRo
ZQotICAgICAgIG5vbi1tYXRjaGluZyBwb3J0aW9ucyBvZiAidGV4dCIgYXJlIGlnbm9yZWQuIFJl
dHVybnMgdHJ1ZSBpZmYgIGEgIG1hdGNoCisgICAgICAgRXh0cmFjdCAgaXMgbGlrZSBSZXBsYWNl
LCBleGNlcHQgdGhhdCBpZiB0aGUgcGF0dGVybiBtYXRjaGVzLCAicmV3cml0ZSIKKyAgICAgICBp
cyBjb3BpZWQgaW50byAib3V0IiAoYW4gYWRkaXRpb25hbCBhcmd1bWVudCkgd2l0aCBzdWJzdGl0
dXRpb25zLiAgIFRoZQorICAgICAgIG5vbi1tYXRjaGluZyAgcG9ydGlvbnMgIG9mICJ0ZXh0IiBh
cmUgaWdub3JlZC4gUmV0dXJucyB0cnVlIGlmZiBhIG1hdGNoCiAgICAgICAgb2NjdXJyZWQgYW5k
IHRoZSBleHRyYWN0aW9uIGhhcHBlbmVkIHN1Y2Nlc3NmdWxseTsgIGlmIG5vIG1hdGNoIG9jY3Vy
cywKICAgICAgICB0aGUgc3RyaW5nIGlzIGxlZnQgdW5hZmZlY3RlZC4KIApJbmRleDogUnVuVGVz
dC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBSdW5UZXN0LmluCShyZXZpc2lvbiAxKQorKysgUnVuVGVzdC5p
bgkocmV2aXNpb24gMikKQEAgLTYsNyArNiwxMCBAQAogIyBSdW4gUENSRSB0ZXN0cwogCiBjZj1k
aWZmCi10ZXN0ZGF0YT1AdG9wX3NyY2RpckAvdGVzdGRhdGEKK2lmIFsgISAtZCB0ZXN0ZGF0YSBd
IDsgdGhlbgorICBsbiAtcyBAdG9wX3NyY2RpckAvdGVzdGRhdGEgdGVzdGRhdGEKK2ZpCit0ZXN0
ZGF0YT0uL3Rlc3RkYXRhCiAKICMgU2VsZWN0IHdoaWNoIHRlc3RzIHRvIHJ1bjsgaWYgbm8gc2Vs
ZWN0aW9uLCBydW4gYWxsCiAKSW5kZXg6IHBjcmVjcHAuY2MKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGNyZWNw
cC5jYwkocmV2aXNpb24gMSkKKysrIHBjcmVjcHAuY2MJKHJldmlzaW9uIDIpCkBAIC0zNiw2ICsz
Niw3IEBACiAjaW5jbHVkZSA8YXNzZXJ0Lmg+CiAjaW5jbHVkZSA8ZXJybm8uaD4KICNpbmNsdWRl
IDxzdHJpbmc+CisjaW5jbHVkZSA8YWxnb3JpdGhtPgogI2luY2x1ZGUgImNvbmZpZy5oIgogLy8g
V2UgbmVlZCB0aGlzIHRvIGNvbXBpbGUgdGhlIHByb3BlciBkbGwgb24gd2luZG93cy9tc3lzLiAg
VGhpcyBpcyBjb3BpZWQKIC8vIGZyb20gcGNyZV9pbnRlcm5hbC5oLiAgSXQgd291bGQgcHJvYmFi
bHkgYmUgYmV0dGVyIGp1c3QgdG8gaW5jbHVkZSB0aGF0LgpAQCAtOTcsOCArOTgsNyBAQAogcGNy
ZSogUkU6OkNvbXBpbGUoQW5jaG9yIGFuY2hvcikgewogICAvLyBGaXJzdCwgY29udmVydCBSRV9P
cHRpb25zIGludG8gcGNyZSBvcHRpb25zCiAgIGludCBwY3JlX29wdGlvbnMgPSAwOwotICBpZiAo
b3B0aW9uc18udXRmOCgpKQotICAgIHBjcmVfb3B0aW9ucyB8PSBQQ1JFX1VURjg7CisgIHBjcmVf
b3B0aW9ucyA9IG9wdGlvbnNfLmFsbF9vcHRpb25zKCk7CiAKICAgLy8gU3BlY2lhbCB0cmVhdG1l
bnQgZm9yIGFuY2hvcmluZy4gIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgYXQKICAgLy8gcnVudGlt
ZSBwY3JlIG9ubHkgcHJvdmlkZXMgYW4gb3B0aW9uIGZvciBhbmNob3JpbmcgYXQgdGhlCkBAIC0z
NzgsNyArMzc4LDcgQEAKICAgaW50IG1hdGNoZXMgPSBUcnlNYXRjaCh0ZXh0LCAwLCBVTkFOQ0hP
UkVELCB2ZWMsIGtWZWNTaXplKTsKICAgaWYgKG1hdGNoZXMgPT0gMCkKICAgICByZXR1cm4gZmFs
c2U7Ci0gIG91dC0+Y2xlYXIoKTsKKyAgb3V0LT5lcmFzZSgpOwogICByZXR1cm4gUmV3cml0ZShv
dXQsIHJld3JpdGUsIHRleHQsIHZlYywgbWF0Y2hlcyk7CiB9CiAKSW5kZXg6IGNvbmZpZ3VyZS5p
bgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBjb25maWd1cmUuaW4JKHJldmlzaW9uIDEpCisrKyBjb25maWd1cmUu
aW4JKHJldmlzaW9uIDIpCkBAIC0yMSw4ICsyMSw4IEBACiBkbmwgdGhhdCBtYW55IHJlbGVhc2Vz
IGFueXdheS4KIAogUENSRV9NQUpPUj02Ci1QQ1JFX01JTk9SPTEKLVBDUkVfREFURT0yMS1KdW4t
MjAwNQorUENSRV9NSU5PUj0yCitQQ1JFX0RBVEU9MDEtQXVnLTIwMDUKIFBDUkVfVkVSU0lPTj0k
e1BDUkVfTUFKT1J9LiR7UENSRV9NSU5PUn0KIAogZG5sIERlZmF1bHQgdmFsdWVzIGZvciBtaXNj
ZWxsYW5lb3VzIG1hY3JvcwpJbmRleDogUnVuR3JlcFRlc3QuaW4KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gUnVu
R3JlcFRlc3QuaW4JKHJldmlzaW9uIDEpCisrKyBSdW5HcmVwVGVzdC5pbgkocmV2aXNpb24gMikK
QEAgLTEwLDcgKzEwLDEwIEBACiAjIHN1cHBvcnRlZCBieSBwY3JlZ3JlcC4KIAogY2Y9ZGlmZgot
dGVzdGRhdGE9QHRvcF9zcmNkaXJAL3Rlc3RkYXRhCitpZiBbICEgLWQgdGVzdGRhdGEgXSA7IHRo
ZW4KKyAgbG4gLXMgQHRvcF9zcmNkaXJAL3Rlc3RkYXRhIHRlc3RkYXRhCitmaQordGVzdGRhdGE9
Li90ZXN0ZGF0YQogCiAuL3BjcmVncmVwIC1WIDI+dGVzdHRyeQogCkluZGV4OiBDaGFuZ2VMb2cK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gQ2hhbmdlTG9nCShyZXZpc2lvbiAxKQorKysgQ2hhbmdlTG9nCShyZXZp
c2lvbiAyKQpAQCAtMSw2ICsxLDM1IEBACiBDaGFuZ2VMb2cgZm9yIFBDUkUKIC0tLS0tLS0tLS0t
LS0tLS0tLQogCitWZXJzaW9uIDYuMiAwMS1BdWctMDUKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQor
CisgMS4gVGhlcmUgd2FzIG5vIHRlc3QgZm9yIGludGVnZXIgb3ZlcmZsb3cgb2YgcXVhbnRpZmll
ciB2YWx1ZXMuIEEgY29uc3RydWN0aW9uCisgICAgc3VjaCBhcyB7MTExMTExMTExMTExMTExMX0g
d291bGQgZ2l2ZSB1bmRlZmluZWQgcmVzdWx0cy4gV2hhdCBpcyB3b3JzZSwgaWYKKyAgICBhIG1p
bmltdW0gcXVhbnRpZmllciBmb3IgYSBwYXJlbnRoZXNpemVkIHN1YnBhdHRlcm4gb3ZlcmZsb3dl
ZCBhbmQgYmVjYW1lCisgICAgbmVnYXRpdmUsIHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgbWVtb3J5
IHNpemUgd2VudCB3cm9uZy4gVGhpcyBjb3VsZCBoYXZlCisgICAgbGVkIHRvIG1lbW9yeSBvdmVy
d3JpdGluZy4KKworIDIuIEJ1aWxkaW5nIFBDUkUgdXNpbmcgVlBBVEggd2FzIGJyb2tlbi4gSG9w
ZWZ1bGx5IGl0IGlzIG5vdyBmaXhlZC4KKworIDMuIEFkZGVkICJiIiB0byB0aGUgMm5kIGFyZ3Vt
ZW50IG9mIGZvcGVuKCkgaW4gZGZ0YWJsZXMuYywgZm9yIG5vbi1Vbml4LWxpa2UKKyAgICBvcGVy
YXRpbmcgZW52aXJvbm1lbnRzIHdoZXJlIHRoaXMgbWF0dGVycy4KKworIDQuIEFwcGxpZWQgR2l1
c2VwcGUgTWF4aWEncyBwYXRjaCB0byBhZGQgYWRkaXRpb25hbCBmZWF0dXJlcyBmb3IgY29udHJv
bGxpbmcKKyAgICBQQ1JFIG9wdGlvbnMgZnJvbSB3aXRoaW4gdGhlIEMrKyB3cmFwcGVyLgorCisg
NS4gTmFtZWQgY2FwdHVyaW5nIHN1YnBhdHRlcm5zIHdlcmUgbm90IGJlaW5nIGNvcnJlY3RseSBj
b3VudGVkIHdoZW4gYSBwYXR0ZXJuCisgICAgd2FzIGNvbXBpbGVkLiBUaGlzIGNhdXNlZCB0d28g
cHJvYmxlbXM6IChhKSBJZiB0aGVyZSB3ZXJlIG1vcmUgdGhhbiAxMDAKKyAgICBzdWNoIHN1YnBh
dHRlcm5zLCB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIG1lbW9yeSBuZWVkZWQgZm9yIHRoZSB3aG9s
ZQorICAgIGNvbXBpbGVkIHBhdHRlcm4gd2VudCB3cm9uZywgbGVhZGluZyB0byBhbiBvdmVyZmxv
dyBlcnJvci4gKGIpIE51bWVyaWNhbAorICAgIGJhY2sgcmVmZXJlbmNlcyBvZiB0aGUgZm9ybSBc
MTIsIHdoZXJlIHRoZSBudW1iZXIgd2FzIGdyZWF0ZXIgdGhhbiA5LCB3ZXJlCisgICAgbm90IHJl
Y29nbml6ZWQgYXMgYmFjayByZWZlcmVuY2VzLCBldmVuIHRob3VnaCB0aGVyZSB3ZXJlIHN1ZmZp
Y2llbnQKKyAgICBwcmV2aW91cyBzdWJwYXR0ZXJucy4KKworIDYuIFR3byBtaW5vciBwYXRjaGVz
IHRvIHBjcmVjcHAuY2MgaW4gb3JkZXIgdG8gYWxsb3cgaXQgdG8gY29tcGlsZSBvbiBvbGRlcgor
ICAgIHZlcnNpb25zIG9mIGdjYywgZS5nLiAyLjk1LjQuCisKKwogVmVyc2lvbiA2LjEgMjEtSnVu
LTA1CiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0KIApJbmRleDogZGZ0YWJsZXMuYwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBkZnRhYmxlcy5jCShyZXZpc2lvbiAxKQorKysgZGZ0YWJsZXMuYwkocmV2aXNpb24gMikK
QEAgLTY2LDcgKzY2LDcgQEAKICAgcmV0dXJuIDE7CiAgIH0KIAotZiA9IGZvcGVuKGFyZ3ZbMV0s
ICJ3Iik7CitmID0gZm9wZW4oYXJndlsxXSwgIndiIik7CiBpZiAoZiA9PSBOVUxMKQogICB7CiAg
IGZwcmludGYoc3RkZXJyLCAiZGZ0YWJsZXM6IGZhaWxlZCB0byBvcGVuICVzIGZvciB3cml0aW5n
XG4iLCBhcmd2WzFdKTsKSW5kZXg6IHRlc3RkYXRhL3Rlc3RvdXRwdXQxCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IHRlc3RkYXRhL3Rlc3RvdXRwdXQxCShyZXZpc2lvbiAxKQorKysgdGVzdGRhdGEvdGVzdG91dHB1
dDEJKHJldmlzaW9uIDIpCkBAIC0xLDQgKzEsNCBAQAotUENSRSB2ZXJzaW9uIDYuMSAyMS1KdW4t
MjAwNQorUENSRSB2ZXJzaW9uIDYuMiAwMS1BdWctMjAwNQogCiAvdGhlIHF1aWNrIGJyb3duIGZv
eC8KICAgICB0aGUgcXVpY2sgYnJvd24gZm94CkluZGV4OiB0ZXN0ZGF0YS90ZXN0aW5wdXQyCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIHRlc3RkYXRhL3Rlc3RpbnB1dDIJKHJldmlzaW9uIDEpCisrKyB0ZXN0ZGF0
YS90ZXN0aW5wdXQyCShyZXZpc2lvbiAyKQpAQCAtMTQyOCw1ICsxNDI4LDI2IEBACiAgICAgQWJD
ZAogICAgICoqIEZhaWxlcnMKICAgICBhYmNkICAKKyAgICAKKy9hezExMTExMTExMTExMTExMTEx
MTExfS8KIAorLygpezY0Mjk0OTY3Mjk1fS8KKworLygpezIsNDI5NDk2NzI5NX0vCisKKyIoP2k6
YSkoP2k6YikoP2k6YykoP2k6ZCkoP2k6ZSkoP2k6ZikoP2k6ZykoP2k6aCkoP2k6aSkoP2k6aiko
aykoP2k6bClBXDFCIgorICAgIGFiY2RlZmdoaWprbEFrQgorCisiKD9QPG4wPmEpKD9QPG4xPmIp
KD9QPG4yPmMpKD9QPG4zPmQpKD9QPG40PmUpKD9QPG41PmYpKD9QPG42PmcpKD9QPG43PmgpKD9Q
PG44PmkpKD9QPG45PmopKD9QPG4xMD5rKSg/UDxuMTE+bClBXDExQiIKKyAgICBhYmNkZWZnaGlq
a2xBa0IKKworIihhKShiKShjKShkKShlKShmKShnKShoKShpKShqKShrKShsKUFcMTFCIgorICAg
IGFiY2RlZmdoaWprbEFrQgorCisiKD9QPG5hbWUwPmEpKD9QPG5hbWUxPmEpKD9QPG5hbWUyPmEp
KD9QPG5hbWUzPmEpKD9QPG5hbWU0PmEpKD9QPG5hbWU1PmEpKD9QPG5hbWU2PmEpKD9QPG5hbWU3
PmEpKD9QPG5hbWU4PmEpKD9QPG5hbWU5PmEpKD9QPG5hbWUxMD5hKSg/UDxuYW1lMTE+YSkoP1A8
bmFtZTEyPmEpKD9QPG5hbWUxMz5hKSg/UDxuYW1lMTQ+YSkoP1A8bmFtZTE1PmEpKD9QPG5hbWUx
Nj5hKSg/UDxuYW1lMTc+YSkoP1A8bmFtZTE4PmEpKD9QPG5hbWUxOT5hKSg/UDxuYW1lMjA+YSko
P1A8bmFtZTIxPmEpKD9QPG5hbWUyMj5hKSg/UDxuYW1lMjM+YSkoP1A8bmFtZTI0PmEpKD9QPG5h
bWUyNT5hKSg/UDxuYW1lMjY+YSkoP1A8bmFtZTI3PmEpKD9QPG5hbWUyOD5hKSg/UDxuYW1lMjk+
YSkoP1A8bmFtZTMwPmEpKD9QPG5hbWUzMT5hKSg/UDxuYW1lMzI+YSkoP1A8bmFtZTMzPmEpKD9Q
PG5hbWUzND5hKSg/UDxuYW1lMzU+YSkoP1A8bmFtZTM2PmEpKD9QPG5hbWUzNz5hKSg/UDxuYW1l
Mzg+YSkoP1A8bmFtZTM5PmEpKD9QPG5hbWU0MD5hKSg/UDxuYW1lNDE+YSkoP1A8bmFtZTQyPmEp
KD9QPG5hbWU0Mz5hKSg/UDxuYW1lNDQ+YSkoP1A8bmFtZTQ1PmEpKD9QPG5hbWU0Nj5hKSg/UDxu
YW1lNDc+YSkoP1A8bmFtZTQ4PmEpKD9QPG5hbWU0OT5hKSg/UDxuYW1lNTA+YSkoP1A8bmFtZTUx
PmEpKD9QPG5hbWU1Mj5hKSg/UDxuYW1lNTM+YSkoP1A8bmFtZTU0PmEpKD9QPG5hbWU1NT5hKSg/
UDxuYW1lNTY+YSkoP1A8bmFtZTU3PmEpKD9QPG5hbWU1OD5hKSg/UDxuYW1lNTk+YSkoP1A8bmFt
ZTYwPmEpKD9QPG5hbWU2MT5hKSg/UDxuYW1lNjI+YSkoP1A8bmFtZTYzPmEpKD9QPG5hbWU2ND5h
KSg/UDxuYW1lNjU+YSkoP1A8bmFtZTY2PmEpKD9QPG5hbWU2Nz5hKSg/UDxuYW1lNjg+YSkoP1A8
bmFtZTY5PmEpKD9QPG5hbWU3MD5hKSg/UDxuYW1lNzE+YSkoP1A8bmFtZTcyPmEpKD9QPG5hbWU3
Mz5hKSg/UDxuYW1lNzQ+YSkoP1A8bmFtZTc1PmEpKD9QPG5hbWU3Nj5hKSg/UDxuYW1lNzc+YSko
P1A8bmFtZTc4PmEpKD9QPG5hbWU3OT5hKSg/UDxuYW1lODA+YSkoP1A8bmFtZTgxPmEpKD9QPG5h
bWU4Mj5hKSg/UDxuYW1lODM+YSkoP1A8bmFtZTg0PmEpKD9QPG5hbWU4NT5hKSg/UDxuYW1lODY+
YSkoP1A8bmFtZTg3PmEpKD9QPG5hbWU4OD5hKSg/UDxuYW1lODk+YSkoP1A8bmFtZTkwPmEpKD9Q
PG5hbWU5MT5hKSg/UDxuYW1lOTI+YSkoP1A8bmFtZTkzPmEpKD9QPG5hbWU5ND5hKSg/UDxuYW1l
OTU+YSkoP1A8bmFtZTk2PmEpKD9QPG5hbWU5Nz5hKSg/UDxuYW1lOTg+YSkoP1A8bmFtZTk5PmEp
KD9QPG5hbWUxMDA+YSkiCisgICAgYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWEKKworIihhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShh
KShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShh
KShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShh
KShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShh
KShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKShh
KShhKShhKShhKShhKShhKShhKShhKShhKShhKShhKSIKKyAgICBhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYQorCiAvIEVuZCBvZiB0ZXN0aW5wdXQyIC8KSW5kZXg6
IHRlc3RkYXRhL3Rlc3RvdXRwdXQyCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRlc3RkYXRhL3Rlc3RvdXRwdXQy
CShyZXZpc2lvbiAxKQorKysgdGVzdGRhdGEvdGVzdG91dHB1dDIJKHJldmlzaW9uIDIpCkBAIC0x
LDQgKzEsNCBAQAotUENSRSB2ZXJzaW9uIDYuMSAyMS1KdW4tMjAwNQorUENSRSB2ZXJzaW9uIDYu
MiAwMS1BdWctMjAwNQogCiAvKGEpYnwvCiBDYXB0dXJpbmcgc3VicGF0dGVybiBjb3VudCA9IDEK
QEAgLTU3MTUsNyArNTcxNSwyMzAgQEAKIE5vIG1hdGNoCiAgICAgYWJjZCAgCiBObyBtYXRjaAor
ICAgIAorL2F7MTExMTExMTExMTExMTExMTExMTF9LworRmFpbGVkOiBudW1iZXIgdG9vIGJpZyBp
biB7fSBxdWFudGlmaWVyIGF0IG9mZnNldCAyMgogCisvKCl7NjQyOTQ5NjcyOTV9LworRmFpbGVk
OiBudW1iZXIgdG9vIGJpZyBpbiB7fSBxdWFudGlmaWVyIGF0IG9mZnNldCAxNAorCisvKCl7Miw0
Mjk0OTY3Mjk1fS8KK0ZhaWxlZDogbnVtYmVyIHRvbyBiaWcgaW4ge30gcXVhbnRpZmllciBhdCBv
ZmZzZXQgMTUKKworIig/aTphKSg/aTpiKSg/aTpjKSg/aTpkKSg/aTplKSg/aTpmKSg/aTpnKSg/
aTpoKSg/aTppKSg/aTpqKShrKSg/aTpsKUFcMUIiCitDYXB0dXJpbmcgc3VicGF0dGVybiBjb3Vu
dCA9IDEKK01heCBiYWNrIHJlZmVyZW5jZSA9IDEKK05vIG9wdGlvbnMKK0Nhc2Ugc3RhdGUgY2hh
bmdlcworRmlyc3QgY2hhciA9ICdhJyAoY2FzZWxlc3MpCitOZWVkIGNoYXIgPSAnQicKKyAgICBh
YmNkZWZnaGlqa2xBa0IKKyAwOiBhYmNkZWZnaGlqa2xBa0IKKyAxOiBrCisKKyIoP1A8bjA+YSko
P1A8bjE+YikoP1A8bjI+YykoP1A8bjM+ZCkoP1A8bjQ+ZSkoP1A8bjU+ZikoP1A8bjY+ZykoP1A8
bjc+aCkoP1A8bjg+aSkoP1A8bjk+aikoP1A8bjEwPmspKD9QPG4xMT5sKUFcMTFCIgorQ2FwdHVy
aW5nIHN1YnBhdHRlcm4gY291bnQgPSAxMgorTWF4IGJhY2sgcmVmZXJlbmNlID0gMTEKK05hbWVk
IGNhcHR1cmluZyBzdWJwYXR0ZXJuczoKKyAgbjAgICAgMQorICBuMSAgICAyCisgIG4xMCAgMTEK
KyAgbjExICAxMgorICBuMiAgICAzCisgIG4zICAgIDQKKyAgbjQgICAgNQorICBuNSAgICA2Cisg
IG42ICAgIDcKKyAgbjcgICAgOAorICBuOCAgICA5CisgIG45ICAgMTAKK05vIG9wdGlvbnMKK0Zp
cnN0IGNoYXIgPSAnYScKK05lZWQgY2hhciA9ICdCJworICAgIGFiY2RlZmdoaWprbEFrQgorIDA6
IGFiY2RlZmdoaWprbEFrQgorIDE6IGEKKyAyOiBiCisgMzogYworIDQ6IGQKKyA1OiBlCisgNjog
ZgorIDc6IGcKKyA4OiBoCisgOTogaQorMTA6IGoKKzExOiBrCisxMjogbAorCisiKGEpKGIpKGMp
KGQpKGUpKGYpKGcpKGgpKGkpKGopKGspKGwpQVwxMUIiCitDYXB0dXJpbmcgc3VicGF0dGVybiBj
b3VudCA9IDEyCitNYXggYmFjayByZWZlcmVuY2UgPSAxMQorTm8gb3B0aW9ucworRmlyc3QgY2hh
ciA9ICdhJworTmVlZCBjaGFyID0gJ0InCisgICAgYWJjZGVmZ2hpamtsQWtCCisgMDogYWJjZGVm
Z2hpamtsQWtCCisgMTogYQorIDI6IGIKKyAzOiBjCisgNDogZAorIDU6IGUKKyA2OiBmCisgNzog
ZworIDg6IGgKKyA5OiBpCisxMDogagorMTE6IGsKKzEyOiBsCisKKyIoP1A8bmFtZTA+YSkoP1A8
bmFtZTE+YSkoP1A8bmFtZTI+YSkoP1A8bmFtZTM+YSkoP1A8bmFtZTQ+YSkoP1A8bmFtZTU+YSko
P1A8bmFtZTY+YSkoP1A8bmFtZTc+YSkoP1A8bmFtZTg+YSkoP1A8bmFtZTk+YSkoP1A8bmFtZTEw
PmEpKD9QPG5hbWUxMT5hKSg/UDxuYW1lMTI+YSkoP1A8bmFtZTEzPmEpKD9QPG5hbWUxND5hKSg/
UDxuYW1lMTU+YSkoP1A8bmFtZTE2PmEpKD9QPG5hbWUxNz5hKSg/UDxuYW1lMTg+YSkoP1A8bmFt
ZTE5PmEpKD9QPG5hbWUyMD5hKSg/UDxuYW1lMjE+YSkoP1A8bmFtZTIyPmEpKD9QPG5hbWUyMz5h
KSg/UDxuYW1lMjQ+YSkoP1A8bmFtZTI1PmEpKD9QPG5hbWUyNj5hKSg/UDxuYW1lMjc+YSkoP1A8
bmFtZTI4PmEpKD9QPG5hbWUyOT5hKSg/UDxuYW1lMzA+YSkoP1A8bmFtZTMxPmEpKD9QPG5hbWUz
Mj5hKSg/UDxuYW1lMzM+YSkoP1A8bmFtZTM0PmEpKD9QPG5hbWUzNT5hKSg/UDxuYW1lMzY+YSko
P1A8bmFtZTM3PmEpKD9QPG5hbWUzOD5hKSg/UDxuYW1lMzk+YSkoP1A8bmFtZTQwPmEpKD9QPG5h
bWU0MT5hKSg/UDxuYW1lNDI+YSkoP1A8bmFtZTQzPmEpKD9QPG5hbWU0ND5hKSg/UDxuYW1lNDU+
YSkoP1A8bmFtZTQ2PmEpKD9QPG5hbWU0Nz5hKSg/UDxuYW1lNDg+YSkoP1A8bmFtZTQ5PmEpKD9Q
PG5hbWU1MD5hKSg/UDxuYW1lNTE+YSkoP1A8bmFtZTUyPmEpKD9QPG5hbWU1Mz5hKSg/UDxuYW1l
NTQ+YSkoP1A8bmFtZTU1PmEpKD9QPG5hbWU1Nj5hKSg/UDxuYW1lNTc+YSkoP1A8bmFtZTU4PmEp
KD9QPG5hbWU1OT5hKSg/UDxuYW1lNjA+YSkoP1A8bmFtZTYxPmEpKD9QPG5hbWU2Mj5hKSg/UDxu
YW1lNjM+YSkoP1A8bmFtZTY0PmEpKD9QPG5hbWU2NT5hKSg/UDxuYW1lNjY+YSkoP1A8bmFtZTY3
PmEpKD9QPG5hbWU2OD5hKSg/UDxuYW1lNjk+YSkoP1A8bmFtZTcwPmEpKD9QPG5hbWU3MT5hKSg/
UDxuYW1lNzI+YSkoP1A8bmFtZTczPmEpKD9QPG5hbWU3ND5hKSg/UDxuYW1lNzU+YSkoP1A8bmFt
ZTc2PmEpKD9QPG5hbWU3Nz5hKSg/UDxuYW1lNzg+YSkoP1A8bmFtZTc5PmEpKD9QPG5hbWU4MD5h
KSg/UDxuYW1lODE+YSkoP1A8bmFtZTgyPmEpKD9QPG5hbWU4Mz5hKSg/UDxuYW1lODQ+YSkoP1A8
bmFtZTg1PmEpKD9QPG5hbWU4Nj5hKSg/UDxuYW1lODc+YSkoP1A8bmFtZTg4PmEpKD9QPG5hbWU4
OT5hKSg/UDxuYW1lOTA+YSkoP1A8bmFtZTkxPmEpKD9QPG5hbWU5Mj5hKSg/UDxuYW1lOTM+YSko
P1A8bmFtZTk0PmEpKD9QPG5hbWU5NT5hKSg/UDxuYW1lOTY+YSkoP1A8bmFtZTk3PmEpKD9QPG5h
bWU5OD5hKSg/UDxuYW1lOTk+YSkoP1A8bmFtZTEwMD5hKSIKK0NhcHR1cmluZyBzdWJwYXR0ZXJu
IGNvdW50ID0gMTAxCitOYW1lZCBjYXB0dXJpbmcgc3VicGF0dGVybnM6CisgIG5hbWUwICAgICAx
CisgIG5hbWUxICAgICAyCisgIG5hbWUxMCAgIDExCisgIG5hbWUxMDAgMTAxCisgIG5hbWUxMSAg
IDEyCisgIG5hbWUxMiAgIDEzCisgIG5hbWUxMyAgIDE0CisgIG5hbWUxNCAgIDE1CisgIG5hbWUx
NSAgIDE2CisgIG5hbWUxNiAgIDE3CisgIG5hbWUxNyAgIDE4CisgIG5hbWUxOCAgIDE5CisgIG5h
bWUxOSAgIDIwCisgIG5hbWUyICAgICAzCisgIG5hbWUyMCAgIDIxCisgIG5hbWUyMSAgIDIyCisg
IG5hbWUyMiAgIDIzCisgIG5hbWUyMyAgIDI0CisgIG5hbWUyNCAgIDI1CisgIG5hbWUyNSAgIDI2
CisgIG5hbWUyNiAgIDI3CisgIG5hbWUyNyAgIDI4CisgIG5hbWUyOCAgIDI5CisgIG5hbWUyOSAg
IDMwCisgIG5hbWUzICAgICA0CisgIG5hbWUzMCAgIDMxCisgIG5hbWUzMSAgIDMyCisgIG5hbWUz
MiAgIDMzCisgIG5hbWUzMyAgIDM0CisgIG5hbWUzNCAgIDM1CisgIG5hbWUzNSAgIDM2CisgIG5h
bWUzNiAgIDM3CisgIG5hbWUzNyAgIDM4CisgIG5hbWUzOCAgIDM5CisgIG5hbWUzOSAgIDQwCisg
IG5hbWU0ICAgICA1CisgIG5hbWU0MCAgIDQxCisgIG5hbWU0MSAgIDQyCisgIG5hbWU0MiAgIDQz
CisgIG5hbWU0MyAgIDQ0CisgIG5hbWU0NCAgIDQ1CisgIG5hbWU0NSAgIDQ2CisgIG5hbWU0NiAg
IDQ3CisgIG5hbWU0NyAgIDQ4CisgIG5hbWU0OCAgIDQ5CisgIG5hbWU0OSAgIDUwCisgIG5hbWU1
ICAgICA2CisgIG5hbWU1MCAgIDUxCisgIG5hbWU1MSAgIDUyCisgIG5hbWU1MiAgIDUzCisgIG5h
bWU1MyAgIDU0CisgIG5hbWU1NCAgIDU1CisgIG5hbWU1NSAgIDU2CisgIG5hbWU1NiAgIDU3Cisg
IG5hbWU1NyAgIDU4CisgIG5hbWU1OCAgIDU5CisgIG5hbWU1OSAgIDYwCisgIG5hbWU2ICAgICA3
CisgIG5hbWU2MCAgIDYxCisgIG5hbWU2MSAgIDYyCisgIG5hbWU2MiAgIDYzCisgIG5hbWU2MyAg
IDY0CisgIG5hbWU2NCAgIDY1CisgIG5hbWU2NSAgIDY2CisgIG5hbWU2NiAgIDY3CisgIG5hbWU2
NyAgIDY4CisgIG5hbWU2OCAgIDY5CisgIG5hbWU2OSAgIDcwCisgIG5hbWU3ICAgICA4CisgIG5h
bWU3MCAgIDcxCisgIG5hbWU3MSAgIDcyCisgIG5hbWU3MiAgIDczCisgIG5hbWU3MyAgIDc0Cisg
IG5hbWU3NCAgIDc1CisgIG5hbWU3NSAgIDc2CisgIG5hbWU3NiAgIDc3CisgIG5hbWU3NyAgIDc4
CisgIG5hbWU3OCAgIDc5CisgIG5hbWU3OSAgIDgwCisgIG5hbWU4ICAgICA5CisgIG5hbWU4MCAg
IDgxCisgIG5hbWU4MSAgIDgyCisgIG5hbWU4MiAgIDgzCisgIG5hbWU4MyAgIDg0CisgIG5hbWU4
NCAgIDg1CisgIG5hbWU4NSAgIDg2CisgIG5hbWU4NiAgIDg3CisgIG5hbWU4NyAgIDg4CisgIG5h
bWU4OCAgIDg5CisgIG5hbWU4OSAgIDkwCisgIG5hbWU5ICAgIDEwCisgIG5hbWU5MCAgIDkxCisg
IG5hbWU5MSAgIDkyCisgIG5hbWU5MiAgIDkzCisgIG5hbWU5MyAgIDk0CisgIG5hbWU5NCAgIDk1
CisgIG5hbWU5NSAgIDk2CisgIG5hbWU5NiAgIDk3CisgIG5hbWU5NyAgIDk4CisgIG5hbWU5OCAg
IDk5CisgIG5hbWU5OSAgMTAwCitObyBvcHRpb25zCitGaXJzdCBjaGFyID0gJ2EnCitOZWVkIGNo
YXIgPSAnYScKKyAgICBhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YQorTWF0Y2hlZCwgYnV0IHRvbyBtYW55IHN1YnN0cmluZ3MKKyAwOiBhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYQorIDE6IGEKKyAyOiBhCisgMzogYQorIDQ6IGEK
KyA1OiBhCisgNjogYQorIDc6IGEKKyA4OiBhCisgOTogYQorMTA6IGEKKzExOiBhCisxMjogYQor
MTM6IGEKKzE0OiBhCisKKyIoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSko
YSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSko
YSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSko
YSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSko
YSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSko
YSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkoYSkiCitDYXB0dXJpbmcgc3VicGF0dGVy
biBjb3VudCA9IDEwMQorTm8gb3B0aW9ucworRmlyc3QgY2hhciA9ICdhJworTmVlZCBjaGFyID0g
J2EnCisgICAgYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEKK01h
dGNoZWQsIGJ1dCB0b28gbWFueSBzdWJzdHJpbmdzCisgMDogYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFh
YWFhYWFhYWFhYWFhYWFhYWFhYWFhYWEKKyAxOiBhCisgMjogYQorIDM6IGEKKyA0OiBhCisgNTog
YQorIDY6IGEKKyA3OiBhCisgODogYQorIDk6IGEKKzEwOiBhCisxMTogYQorMTI6IGEKKzEzOiBh
CisxNDogYQorCiAvIEVuZCBvZiB0ZXN0aW5wdXQyIC8KIENhcHR1cmluZyBzdWJwYXR0ZXJuIGNv
dW50ID0gMAogTm8gb3B0aW9ucwpJbmRleDogdGVzdGRhdGEvdGVzdG91dHB1dDMKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gdGVzdGRhdGEvdGVzdG91dHB1dDMJKHJldmlzaW9uIDEpCisrKyB0ZXN0ZGF0YS90ZXN0
b3V0cHV0MwkocmV2aXNpb24gMikKQEAgLTEsNCArMSw0IEBACi1QQ1JFIHZlcnNpb24gNi4xIDIx
LUp1bi0yMDA1CitQQ1JFIHZlcnNpb24gNi4yIDAxLUF1Zy0yMDA1CiAKIC9eW1x3XSsvCiAgICAg
KioqIEZhaWxlcnMKSW5kZXg6IHRlc3RkYXRhL3Rlc3RvdXRwdXQ0Cj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRl
c3RkYXRhL3Rlc3RvdXRwdXQ0CShyZXZpc2lvbiAxKQorKysgdGVzdGRhdGEvdGVzdG91dHB1dDQJ
KHJldmlzaW9uIDIpCkBAIC0xLDQgKzEsNCBAQAotUENSRSB2ZXJzaW9uIDYuMSAyMS1KdW4tMjAw
NQorUENSRSB2ZXJzaW9uIDYuMiAwMS1BdWctMjAwNQogCiAvLS0gRG8gbm90IHVzZSB0aGUgXHh7
fSBjb25zdHJ1Y3QgZXhjZXB0IHdpdGggcGF0dGVybnMgdGhhdCBoYXZlIHRoZSAtLS8KIC8tLSAv
OCBvcHRpb24gc2V0LCBiZWNhdXNlIFBDUkUgZG9lc24ndCByZWNvZ25pemUgdGhlbSBhcyBVVEYt
OCB1bmxlc3MgLS0vCkluZGV4OiB0ZXN0ZGF0YS90ZXN0b3V0cHV0NQo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0
ZXN0ZGF0YS90ZXN0b3V0cHV0NQkocmV2aXNpb24gMSkKKysrIHRlc3RkYXRhL3Rlc3RvdXRwdXQ1
CShyZXZpc2lvbiAyKQpAQCAtMSw0ICsxLDQgQEAKLVBDUkUgdmVyc2lvbiA2LjEgMjEtSnVuLTIw
MDUKK1BDUkUgdmVyc2lvbiA2LjIgMDEtQXVnLTIwMDUKIAogL1x4ezEwMH0vOERNCiBNZW1vcnkg
YWxsb2NhdGlvbiAoY29kZSBzcGFjZSk6IDEwCkluZGV4OiB0ZXN0ZGF0YS90ZXN0b3V0cHV0Ngo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSB0ZXN0ZGF0YS90ZXN0b3V0cHV0NgkocmV2aXNpb24gMSkKKysrIHRlc3Rk
YXRhL3Rlc3RvdXRwdXQ2CShyZXZpc2lvbiAyKQpAQCAtMSw0ICsxLDQgQEAKLVBDUkUgdmVyc2lv
biA2LjEgMjEtSnVuLTIwMDUKK1BDUkUgdmVyc2lvbiA2LjIgMDEtQXVnLTIwMDUKIAogL15ccENc
cExccE1ccE5ccFBccFNccFo8LzgKICAgICBceDdmXHh7YzB9XHh7MzBmfVx4ezY2MH1ceHs2NmN9
XHh7ZjAxfVx4ezE2ODB9PApJbmRleDogdGVzdGRhdGEvdGVzdG91dHB1dDcKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gdGVzdGRhdGEvdGVzdG91dHB1dDcJKHJldmlzaW9uIDEpCisrKyB0ZXN0ZGF0YS90ZXN0b3V0
cHV0NwkocmV2aXNpb24gMikKQEAgLTEsNCArMSw0IEBACi1QQ1JFIHZlcnNpb24gNi4xIDIxLUp1
bi0yMDA1CitQQ1JFIHZlcnNpb24gNi4yIDAxLUF1Zy0yMDA1CiAKIC9hYmMvCiAgICAgYWJjCklu
ZGV4OiB0ZXN0ZGF0YS90ZXN0b3V0cHV0OAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSB0ZXN0ZGF0YS90ZXN0b3V0
cHV0OAkocmV2aXNpb24gMSkKKysrIHRlc3RkYXRhL3Rlc3RvdXRwdXQ4CShyZXZpc2lvbiAyKQpA
QCAtMSw0ICsxLDQgQEAKLVBDUkUgdmVyc2lvbiA2LjEgMjEtSnVuLTIwMDUKK1BDUkUgdmVyc2lv
biA2LjIgMDEtQXVnLTIwMDUKIAogLy0tIERvIG5vdCB1c2UgdGhlIFx4e30gY29uc3RydWN0IGV4
Y2VwdCB3aXRoIHBhdHRlcm5zIHRoYXQgaGF2ZSB0aGUgLS0vCiAvLS0gLzggb3B0aW9uIHNldCwg
YmVjYXVzZSBQQ1JFIGRvZXNuJ3QgcmVjb2duaXplIHRoZW0gYXMgVVRGLTggdW5sZXNzIC0tLwpJ
bmRleDogdGVzdGRhdGEvdGVzdG91dHB1dDkKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gdGVzdGRhdGEvdGVzdG91
dHB1dDkJKHJldmlzaW9uIDEpCisrKyB0ZXN0ZGF0YS90ZXN0b3V0cHV0OQkocmV2aXNpb24gMikK
QEAgLTEsNCArMSw0IEBACi1QQ1JFIHZlcnNpb24gNi4xIDIxLUp1bi0yMDA1CitQQ1JFIHZlcnNp
b24gNi4yIDAxLUF1Zy0yMDA1CiAKIC9ccExcUHtOZH0vOAogICAgIEFCCkluZGV4OiB0ZXN0ZGF0
YS9ncmVwb3V0cHV0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRlc3RkYXRhL2dyZXBvdXRwdXQJKHJldmlzaW9u
IDEpCisrKyB0ZXN0ZGF0YS9ncmVwb3V0cHV0CShyZXZpc2lvbiAyKQpAQCAtMSw0ICsxLDQgQEAK
LXBjcmVncmVwIHZlcnNpb24gNC4wIDA3LUp1bi0yMDA1IHVzaW5nIFBDUkUgdmVyc2lvbiA2LjEg
MjEtSnVuLTIwMDUKK3BjcmVncmVwIHZlcnNpb24gNC4wIDA3LUp1bi0yMDA1IHVzaW5nIFBDUkUg
dmVyc2lvbiA2LjIgMDEtQXVnLTIwMDUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVGVz
dCAxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogUEFUVEVSTiBhdCB0aGUgc3RhcnQg
b2YgYSBsaW5lLgogSW4gdGhlIG1pZGRsZSBvZiBhIGxpbmUsIFBBVFRFUk4gYXBwZWFycy4KSW5k
ZXg6IGNvbmZpZ3VyZQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBjb25maWd1cmUJKHJldmlzaW9uIDEpCisrKyBj
b25maWd1cmUJKHJldmlzaW9uIDIpCkBAIC0xNTA1LDggKzE1MDUsOCBAQAogCiAKIFBDUkVfTUFK
T1I9NgotUENSRV9NSU5PUj0xCi1QQ1JFX0RBVEU9MjEtSnVuLTIwMDUKK1BDUkVfTUlOT1I9Mgor
UENSRV9EQVRFPTAxLUF1Zy0yMDA1CiBQQ1JFX1ZFUlNJT049JHtQQ1JFX01BSk9SfS4ke1BDUkVf
TUlOT1J9CiAKIApJbmRleDogcGNyZV9jb21waWxlLmMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gcGNyZV9jb21w
aWxlLmMJKHJldmlzaW9uIDEpCisrKyBwY3JlX2NvbXBpbGUuYwkocmV2aXNpb24gMikKQEAgLTY5
OCwxNCArNjk4LDMwIEBACiBpbnQgbWluID0gMDsKIGludCBtYXggPSAtMTsKIAorLyogUmVhZCB0
aGUgbWluaW11bSB2YWx1ZSBhbmQgZG8gYSBwYXJhbm9pZCBjaGVjazogYSBuZWdhdGl2ZSB2YWx1
ZSBpbmRpY2F0ZXMKK2FuIGludGVnZXIgb3ZlcmZsb3cuICovCisKIHdoaWxlICgoZGlnaXRhYlsq
cF0gJiBjdHlwZV9kaWdpdCkgIT0gMCkgbWluID0gbWluICogMTAgKyAqcCsrIC0gJzAnOworaWYg
KG1pbiA8IDAgfHwgbWluID4gNjU1MzUpCisgIHsKKyAgKmVycm9yY29kZXB0ciA9IEVSUjU7Cisg
IHJldHVybiBwOworICB9CiAKKy8qIFJlYWQgdGhlIG1heGltdW0gdmFsdWUgaWYgdGhlcmUgaXMg
b25lLCBhbmQgYWdhaW4gZG8gYSBwYXJhbm9pZCBvbiBpdHMgc2l6ZS4KK0Fsc28sIG1heCBtdXN0
IG5vdCBiZSBsZXNzIHRoYW4gbWluLiAqLworCiBpZiAoKnAgPT0gJ30nKSBtYXggPSBtaW47IGVs
c2UKICAgewogICBpZiAoKigrK3ApICE9ICd9JykKICAgICB7CiAgICAgbWF4ID0gMDsKICAgICB3
aGlsZSgoZGlnaXRhYlsqcF0gJiBjdHlwZV9kaWdpdCkgIT0gMCkgbWF4ID0gbWF4ICogMTAgKyAq
cCsrIC0gJzAnOworICAgIGlmIChtYXggPCAwIHx8IG1heCA+IDY1NTM1KQorICAgICAgeworICAg
ICAgKmVycm9yY29kZXB0ciA9IEVSUjU7CisgICAgICByZXR1cm4gcDsKKyAgICAgIH0KICAgICBp
ZiAobWF4IDwgbWluKQogICAgICAgewogICAgICAgKmVycm9yY29kZXB0ciA9IEVSUjQ7CkBAIC03
MTQsMTYgKzczMCwxMSBAQAogICAgIH0KICAgfQogCi0vKiBEbyBwYXJhbm9pZCBjaGVja3MsIHRo
ZW4gZmlsbCBpbiB0aGUgcmVxdWlyZWQgdmFyaWFibGVzLCBhbmQgcGFzcyBiYWNrIHRoZQotcG9p
bnRlciB0byB0aGUgdGVybWluYXRpbmcgJ30nLiAqLworLyogRmlsbCBpbiB0aGUgcmVxdWlyZWQg
dmFyaWFibGVzLCBhbmQgcGFzcyBiYWNrIHRoZSBwb2ludGVyIHRvIHRoZSB0ZXJtaW5hdGluZwor
J30nLiAqLwogCi1pZiAobWluID4gNjU1MzUgfHwgbWF4ID4gNjU1MzUpCi0gICplcnJvcmNvZGVw
dHIgPSBFUlI1OwotZWxzZQotICB7Ci0gICptaW5wID0gbWluOwotICAqbWF4cCA9IG1heDsKLSAg
fQorKm1pbnAgPSBtaW47CisqbWF4cCA9IG1heDsKIHJldHVybiBwOwogfQogCkBAIC0zODU2LDYg
KzM4NjcsNyBAQAogQk9PTCBjbGFzc191dGY4OwogI2VuZGlmCiBCT09MIGluZXNjcSA9IEZBTFNF
OworQk9PTCBjYXB0dXJpbmc7CiB1bnNpZ25lZCBpbnQgYnJhc3RhY2twdHIgPSAwOwogc2l6ZV90
IHNpemU7CiB1c2NoYXIgKmNvZGU7CkBAIC00NDEwLDYgKzQ0MjIsNyBAQAogICAgIGNhc2UgJygn
OgogICAgIGJyYW5jaF9uZXdleHRyYSA9IDA7CiAgICAgYnJhY2tldF9sZW5ndGggPSAxICsgTElO
S19TSVpFOworICAgIGNhcHR1cmluZyA9IEZBTFNFOwogCiAgICAgLyogSGFuZGxlIHNwZWNpYWwg
Zm9ybXMgb2YgYnJhY2tldCwgd2hpY2ggYWxsIHN0YXJ0ICg/ICovCiAKQEAgLTQ0OTcsNiArNDUx
MCw5IEBACiAKICAgICAgICAgY2FzZSAnUCc6CiAgICAgICAgIHB0ciArPSAzOworCisgICAgICAg
IC8qIEhhbmRsZSB0aGUgZGVmaW5pdGlvbiBvZiBhIG5hbWVkIHN1YnBhdHRlcm4gKi8KKwogICAg
ICAgICBpZiAoKnB0ciA9PSAnPCcpCiAgICAgICAgICAgewogICAgICAgICAgIGNvbnN0IHVzY2hh
ciAqcDsgICAgLyogRG9uJ3QgYW1hbGdhbWF0ZTsgc29tZSBjb21waWxlcnMgKi8KQEAgLTQ1MDks
OSArNDUyNSwxMiBAQAogICAgICAgICAgICAgfQogICAgICAgICAgIG5hbWVfY291bnQrKzsKICAg
ICAgICAgICBpZiAocHRyIC0gcCA+IG1heF9uYW1lX3NpemUpIG1heF9uYW1lX3NpemUgPSAocHRy
IC0gcCk7CisgICAgICAgICAgY2FwdHVyaW5nID0gVFJVRTsgICAvKiBOYW1lZCBwYXJlbnRoZXNl
cyBhcmUgYWx3YXlzIGNhcHR1cmluZyAqLwogICAgICAgICAgIGJyZWFrOwogICAgICAgICAgIH0K
IAorICAgICAgICAvKiBIYW5kbGUgYmFjayByZWZlcmVuY2VzIGFuZCByZWN1cnNpdmUgY2FsbHMg
dG8gbmFtZWQgc3VicGF0dGVybnMgKi8KKwogICAgICAgICBpZiAoKnB0ciA9PSAnPScgfHwgKnB0
ciA9PSAnPicpCiAgICAgICAgICAgewogICAgICAgICAgIHdoaWxlICgoY29tcGlsZV9ibG9jay5j
dHlwZXNbKigrK3B0cildICYgY3R5cGVfd29yZCkgIT0gMCk7CkBAIC00Njk1LDE4ICs0NzE0LDI0
IEBACiAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgfQogCi0gICAgICAgIC8qIElmIG9w
dGlvbnMgd2VyZSB0ZXJtaW5hdGVkIGJ5ICc6JyBjb250cm9sIGNvbWVzIGhlcmUuIEZhbGwgdGhy
b3VnaAotICAgICAgICB0byBoYW5kbGUgdGhlIGdyb3VwIGJlbG93LiAqLworICAgICAgICAvKiBJ
ZiBvcHRpb25zIHdlcmUgdGVybWluYXRlZCBieSAnOicgY29udHJvbCBjb21lcyBoZXJlLiBUaGlz
IGlzIGEKKyAgICAgICAgbm9uLWNhcHR1cmluZyBncm91cCB3aXRoIGFuIG9wdGlvbnMgY2hhbmdl
LiBUaGVyZSBpcyBub3RoaW5nIG1vcmUgdGhhdAorICAgICAgICBuZWVkcyB0byBiZSBkb25lIGJl
Y2F1c2UgImNhcHR1cmluZyIgaXMgYWxyZWFkeSBzZXQgRkFMU0UgYnkgZGVmYXVsdDsKKyAgICAg
ICAgd2UgY2FuIGp1c3QgZmFsbCB0aHJvdWdoLiAqLworCiAgICAgICAgIH0KICAgICAgIH0KIAot
ICAgIC8qIEV4dHJhY3RpbmcgYnJhY2tldHMgbXVzdCBiZSBjb3VudGVkIHNvIHdlIGNhbiBwcm9j
ZXNzIGVzY2FwZXMgaW4gYQotICAgIFBlcmxpc2ggd2F5LiBJZiB0aGUgbnVtYmVyIGV4Y2VlZHMg
RVhUUkFDVF9CQVNJQ19NQVggd2UgYXJlIGdvaW5nIHRvCi0gICAgbmVlZCBhbiBhZGRpdGlvbmFs
IDMgYnl0ZXMgb2Ygc3RvcmUgcGVyIGV4dHJhY3RpbmcgYnJhY2tldC4gSG93ZXZlciwgaWYKLSAg
ICBQQ1JFX05PX0FVVE8pQ0FQVFVSRSBpcyBzZXQsIHVuYWRvcm5lZCBicmFja2V0cyBiZWNvbWUg
bm9uLWNhcHR1cmluZywgc28gd2UKLSAgICBtdXN0IGxlYXZlIHRoZSBjb3VudCBhbG9uZSAoaXQg
d2lsbCBhd2F5cyBiZSB6ZXJvKS4gKi8KKyAgICAvKiBPcmRpbmFyeSBwYXJlbnRoZXNlcywgbm90
IGZvbGxvd2VkIGJ5ICc/JywgYXJlIGNhcHR1cmluZyB1bmxlc3MKKyAgICBQQ1JFX05PX0FVVE9f
Q0FQVFVSRSBpcyBzZXQuICovCiAKLSAgICBlbHNlIGlmICgob3B0aW9ucyAmIFBDUkVfTk9fQVVU
T19DQVBUVVJFKSA9PSAwKQorICAgIGVsc2UgY2FwdHVyaW5nID0gKG9wdGlvbnMgJiBQQ1JFX05P
X0FVVE9fQ0FQVFVSRSkgPT0gMDsKKworICAgIC8qIENhcHR1cmluZyBicmFja2V0cyBtdXN0IGJl
IGNvdW50ZWQgc28gd2UgY2FuIHByb2Nlc3MgZXNjYXBlcyBpbiBhCisgICAgUGVybGlzaCB3YXku
IElmIHRoZSBudW1iZXIgZXhjZWVkcyBFWFRSQUNUX0JBU0lDX01BWCB3ZSBhcmUgZ29pbmcgdG8g
bmVlZAorICAgIGFuIGFkZGl0aW9uYWwgMyBieXRlcyBvZiBtZW1vcnkgcGVyIGNhcHR1cmluZyBi
cmFja2V0LiAqLworCisgICAgaWYgKGNhcHR1cmluZykKICAgICAgIHsKICAgICAgIGJyYWNvdW50
Kys7CiAgICAgICBpZiAoYnJhY291bnQgPiBFWFRSQUNUX0JBU0lDX01BWCkgYnJhY2tldF9sZW5n
dGggKz0gMzsKSW5kZXg6IHBjcmVjcHAuaC5pbgo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBwY3JlY3BwLmguaW4J
KHJldmlzaW9uIDEpCisrKyBwY3JlY3BwLmguaW4JKHJldmlzaW9uIDIpCkBAIC0yOCw2ICsyOCw3
IEBACiAvLyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgogLy8KIC8vIEF1dGhvcjogU2FuamF5IEdoZW1hd2F0CisvLyBT
dXBwb3J0IGZvciBQQ1JFX1hYWCBtb2RpZmllcnMgYWRkZWQgYnkgR2l1c2VwcGUgTWF4aWEsIEp1
bHkgMjAwNQogCiAjaWZuZGVmIF9QQ1JFX1JFR0VYUF9ICiAjZGVmaW5lIF9QQ1JFX1JFR0VYUF9I
CkBAIC0xNTksNiArMTYwLDkwIEBACiAvLyAgICAgICAtLWVuYWJsZS11dGY4IGZsYWcuCiAvLwog
Ly8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0KKy8vIFBBU1NJTkcgTU9ESUZJRVJTIFRPIFRIRSBSRUdVTEFSIEVY
UFJFU1NJT04gRU5HSU5FCisvLworLy8gUENSRSBkZWZpbmVzIHNvbWUgbW9kaWZpZXJzIHRvIGNo
YW5nZSB0aGUgYmVoYXZpb3Igb2YgdGhlIHJlZ3VsYXIKKy8vIGV4cHJlc3Npb24gZW5naW5lLgor
Ly8gVGhlIEMrKyB3cmFwcGVyIGRlZmluZXMgYW4gYXV4aWxpYXJ5IGNsYXNzLCBSRV9PcHRpb25z
LCBhcyBhIHZlaGljbGUKKy8vIHRvIHBhc3Mgc3VjaCBtb2RpZmllcnMgdG8gYSBSRSBjbGFzcy4K
Ky8vCisvLyBDdXJyZW50bHksIHRoZSBmb2xsb3dpbmcgbW9kaWZpZXJzIGFyZSBzdXBwb3J0ZWQK
Ky8vCisvLyAgICBtb2RpZmllciAgICAgICAgICAgICAgZGVzY3JpcHRpb24gICAgICAgICAgICAg
ICBQZXJsIGNvcnJlc3BvbmRpbmcKKy8vCisvLyAgICBQQ1JFX0NBU0VMRVNTICAgICAgICAgY2Fz
ZSBpbnNlbnNpdGl2ZSBtYXRjaCAgICAvaQorLy8gICAgUENSRV9NVUxUSUxJTkUgICAgICAgIG11
bHRpcGxlIGxpbmVzIG1hdGNoICAgICAgL20KKy8vICAgIFBDUkVfRE9UQUxMICAgICAgICAgICBk
b3QgbWF0Y2hlcyBuZXdsaW5lcyAgICAgIC9zCisvLyAgICBQQ1JFX0RPTExBUl9FTkRPTkxZICAg
JCBtYXRjaGVzIG9ubHkgYXQgZW5kICAgICBOL0EKKy8vICAgIFBDUkVfRVhUUkEgICAgICAgICAg
ICBzdHJpY3QgZXNjYXBlIHBhcnNpbmcgICAgIE4vQQorLy8gICAgUENSRV9FWFRFTkRFRCAgICAg
ICAgIGlnbm9yZSB3aGl0ZXNwYWNlcyAgICAgICAgL3gKKy8vICAgIFBDUkVfVVRGOCAgICAgICAg
ICAgICBoYW5kbGVzIFVURjggY2hhcnMgICAgICAgIGJ1aWx0LWluCisvLyAgICBQQ1JFX1VOR1JF
RURZICAgICAgICAgcmV2ZXJzZXMgKiBhbmQgKj8gICAgICAgICBOL0EKKy8vICAgIFBDUkVfTk9f
QVVUT19DQVBUVVJFICBkaXNhYmxlcyBtYXRjaGluZyBwYXJlbnMgIE4vQSAoKikKKy8vCisvLyAo
Rm9yIGEgZnVsbCBhY2NvdW50IG9uIGhvdyBlYWNoIG1vZGlmaWVyIHdvcmtzLCBwbGVhc2UgY2hl
Y2sgdGhlCisvLyBQQ1JFIEFQSSByZWZlcmVuY2UgbWFudWFsKS4KKy8vCisvLyAoKikgQm90aCBQ
ZXJsIGFuZCBQQ1JFIGFsbG93IG5vbiBtYXRjaGluZyBwYXJlbnRoZXNlcyBieSBtZWFucyBvZiB0
aGUKKy8vICI/OiIgbW9kaWZpZXIgd2l0aGluIHRoZSBwYXR0ZXJuIGl0c2VsZi4gZS5nLiAoPzph
YnxjZCkgZG9lcyBub3QKKy8vIGNhcHR1cmUsIHdoaWxlIChhYnxjZCkgZG9lcy4KKy8vCisvLyBG
b3IgZWFjaCBtb2RpZmllciwgdGhlcmUgYXJlIHR3byBtZW1iZXIgZnVuY3Rpb25zIHdob3NlIG5h
bWUgaXMgbWFkZQorLy8gb3V0IG9mIHRoZSBtb2RpZmllciBpbiBsb3dlcmNhc2UsIHdpdGhvdXQg
dGhlICJQQ1JFXyIgcHJlZml4LiBGb3IKKy8vIGluc3RhbmNlLCBQQ1JFX0NBU0VMRVNTIGlzIGhh
bmRsZWQgYnkKKy8vICAgIGJvb2wgY2FzZWxlc3MoKSwKKy8vIHdoaWNoIHJldHVybnMgdHJ1ZSBp
ZiB0aGUgbW9kaWZpZXIgaXMgc2V0LCBhbmQKKy8vICAgIFJFX09wdGlvbnMgJiBzZXRfY2FzZWxl
c3MoYm9vbCksCisvLyB3aGljaCBzZXRzIG9yIHVuc2V0cyB0aGUgbW9kaWZpZXIuCisvLworLy8g
TW9yZW92ZXIsIFBDUkVfQ09ORklHX01BVENIX0xJTUlUIGNhbiBiZSBhY2Nlc3NlZCB0aHJvdWdo
IHRoZQorLy8gc2V0X21hdGNoX2xpbWl0KCkgYW5kIG1hdGNoX2xpbWl0KCkgbWVtYmVyIGZ1bmN0
aW9ucy4KKy8vIFNldHRpbmcgbWF0Y2hfbGltaXQgdG8gYSBub24temVybyB2YWx1ZSB3aWxsIGxp
bWl0IHRoZSBleGVjdXRhdGlvbiBvZgorLy8gcGNyZSB0byBrZWVwIGl0IGZyb20gZG9pbmcgYmFk
IHRoaW5ncyBsaWtlIGJsb3dpbmcgdGhlIHN0YWNrIG9yIHRha2luZworLy8gYW4gZXRlcm5pdHkg
dG8gcmV0dXJuIGEgcmVzdWx0LiAgQSB2YWx1ZSBvZiA1MDAwIGlzIGdvb2QgZW5vdWdoIHRvIHN0
b3AKKy8vIHN0YWNrIGJsb3d1cCBpbiBhIDJNQiB0aHJlYWQgc3RhY2suICBTZXR0aW5nIG1hdGNo
X2xpbWl0IHRvIHplcm8gd2lsbAorLy8gZGlzYWJsZSBtYXRjaCBsaW1pdGluZy4KKy8vCisvLyBO
b3JtYWxseSwgdG8gcGFzcyBvbmUgb3IgbW9yZSBtb2RpZmllcnMgdG8gYSBSRSBjbGFzcywgeW91
IGRlY2xhcmUKKy8vIGEgUkVfT3B0aW9ucyBvYmplY3QsIHNldCB0aGUgYXBwcm9wcmlhdGUgb3B0
aW9ucywgYW5kIHBhc3MgdGhpcworLy8gb2JqZWN0IHRvIGEgUkUgY29uc3RydWN0b3IuIEV4YW1w
bGU6CisvLworLy8gICAgUkVfb3B0aW9ucyBvcHQ7CisvLyAgICBvcHQuc2V0X2Nhc2VsZXNzKHRy
dWUpOworLy8KKy8vICAgIGlmIChSRSgiSEVMTE8iLCBvcHQpLlBhcnRpYWxNYXRjaCgiaGVsbG8g
d29ybGQiKSkgLi4uCisvLworLy8gUkVfb3B0aW9ucyBoYXMgdHdvIGNvbnN0cnVjdG9ycy4gVGhl
IGRlZmF1bHQgY29uc3RydWN0b3IgdGFrZXMgbm8KKy8vIGFyZ3VtZW50cyBhbmQgY3JlYXRlcyBh
IHNldCBvZiBmbGFncyB0aGF0IGFyZSBvZmYgYnkgZGVmYXVsdC4KKy8vCisvLyBUaGUgb3B0aW9u
YWwgcGFyYW1ldGVyICdvcHRpb25fZmxhZ3MnIGlzIHRvIGZhY2lsaXRhdGUgdHJhbnNmZXIKKy8v
IG9mIGxlZ2FjeSBjb2RlIGZyb20gQyBwcm9ncmFtcy4gIFRoaXMgbGV0cyB5b3UgZG8KKy8vICAg
IFJFKHBhdHRlcm4sIFJFX09wdGlvbnMoUENSRV9DQVNFTEVTU3xQQ1JFX01VTFRJTElORSkpLlBh
cnRpYWxNYXRjaChzdHIpOworLy8KKy8vIEJ1dCBuZXcgY29kZSBpcyBiZXR0ZXIgb2ZmIGRvaW5n
CisvLyAgICBSRShwYXR0ZXJuLAorLy8gICAgICBSRV9PcHRpb25zKCkuc2V0X2Nhc2VsZXNzKHRy
dWUpLnNldF9tdWx0aWxpbmUodHJ1ZSkpLlBhcnRpYWxNYXRjaChzdHIpOworLy8gKFNlZSBiZWxv
dykKKy8vCisvLyBJZiB5b3UgYXJlIGdvaW5nIHRvIHBhc3Mgb25lIG9mIHRoZSBtb3N0IHVzZWQg
bW9kaWZpZXJzLCB0aGVyZSBhcmUgc29tZQorLy8gY29udmVuaWVuY2UgZnVuY3Rpb25zIHRoYXQg
cmV0dXJuIGEgUkVfT3B0aW9ucyBjbGFzcyB3aXRoIHRoZQorLy8gYXBwcm9wcmlhdGUgbW9kaWZp
ZXIgYWxyZWFkeSBzZXQ6CisvLyBDQVNFTEVTUygpLCBVVEY4KCksIE1VTFRJTElORSgpLCBET1RB
TEwoKSwgRVhURU5ERUQoKQorLy8KKy8vIElmIHlvdSBuZWVkIHRvIHNldCBzZXZlcmFsIG9wdGlv
bnMgYXQgb25jZSwgYW5kIHlvdSBkb24ndCB3YW50IHRvIGdvCisvLyB0aHJvdWdoIHRoZSBwYWlu
cyBvZiBkZWNsYXJpbmcgYSBSRV9PcHRpb25zIG9iamVjdCBhbmQgc2V0dGluZyBzZXZlcmFsCisv
LyBvcHRpb25zLCB0aGVyZSBpcyBhIHBhcmFsbGVsIG1ldGhvZCB0aGF0IGdpdmUgeW91IHN1Y2gg
YWJpbGl0eSBvbiB0aGUKKy8vIGZseS4gWW91IGNhbiBjb25jYXRlbmF0ZSBzZXZlcmFsIHNldF94
eHh4eCBtZW1iZXIgZnVuY3Rpb25zLCBzaW5jZSBlYWNoCisvLyBvZiB0aGVtIHJldHVybnMgYSBy
ZWZlcmVuY2UgdG8gaXRzIGNsYXNzIG9iamVjdC4gIGUuZy46IHRvIHBhc3MKKy8vIFBDUkVfQ0FT
RUxFU1MsIFBDUkVfRVhURU5ERUQsIGFuZCBQQ1JFX01VTFRJTElORSB0byBhIFJFIHdpdGggb25l
CisvLyBzdGF0ZW1lbnQsIHlvdSBtYXkgd3JpdGUKKy8vCisvLyAgICBSRSgiIF4geHl6IFxccysg
LiogYmxhaCQiLCBSRV9PcHRpb25zKCkKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5z
ZXRfY2FzZWxlc3ModHJ1ZSkKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZXRfZXh0
ZW5kZWQodHJ1ZSkKKy8vICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zZXRfbXVsdGlsaW5l
KHRydWUpKS5QYXJ0aWFsTWF0Y2goc29tZXRleHQpOworLy8KKy8vIC0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAv
LyBTQ0FOTklORyBURVhUIElOQ1JFTUVOVEFMTFkKIC8vCiAvLyBUaGUgIkNvbnN1bWUiIG9wZXJh
dGlvbiBtYXkgYmUgdXNlZnVsIGlmIHlvdSB3YW50IHRvIHJlcGVhdGVkbHkKQEAgLTI0NSw2ICsz
MzAsMTMgQEAKIAogbmFtZXNwYWNlIHBjcmVjcHAgewogCisjZGVmaW5lIFBDUkVfU0VUX09SX0NM
RUFSKGIsIG8pIFwKKyAgICBpZiAoYikgYWxsX29wdGlvbnNfIHw9IChvKTsgZWxzZSBhbGxfb3B0
aW9uc18gJj0gfihvKTsgXAorICAgIHJldHVybiAqdGhpcworCisjZGVmaW5lIFBDUkVfSVNfU0VU
KG8pICBcCisgICAgICAgIChhbGxfb3B0aW9uc18gJiBvKSA9PSBvCisKIC8vIFdlIGNvbnZlcnQg
dXNlci1wYXNzZWQgcG9pbnRlcnMgaW50byBzcGVjaWFsIEFyZyBvYmplY3RzCiBjbGFzcyBBcmc7
CiBleHRlcm4gQXJnIG5vX2FyZzsKQEAgLTI1Miw0NSArMzQ0LDEyOSBAQAogLyoqKioqIENvbXBp
bGluZyByZWd1bGFyIGV4cHJlc3Npb25zOiB0aGUgUkUgY2xhc3MgKioqKiovCiAKIC8vIFJFX09w
dGlvbnMgYWxsb3cgeW91IHRvIHNldCBvcHRpb25zIHRvIGJlIHBhc3NlZCBhbG9uZyB0byBwY3Jl
LAotLy8gYWxvbmcgd2l0aCBvdGhlciBvcHRpb25zIHdlIHB1dCBvbiB0b3Agb2YgcGNyZS4gIE9u
bHkgVVRGIGFuZAotLy8gbWF0Y2hfbGltaXQgYXJlIHN1cHBvcnRlZCBub3cuICBTZXR0aW5nIG1h
dGNoX2xpbWl0Ci0vLyB0byBhIG5vbi16ZXJvIHZhbHVlIHdpbGwgbGltaXQgdGhlIGV4ZWN1dGF0
aW9uIG9mIHBjcmUgdG8KLS8vIGtlZXAgaXQgZnJvbSBkb2luZyBiYWQgdGhpbmdzIGxpa2UgYmxv
d2luZyB0aGUgc3RhY2sgb3IgdGFraW5nCi0vLyBhbiBldGVybml0eSB0byByZXR1cm4gYSByZXN1
bHQuICBBIHZhbHVlIG9mIDUwMDAgaXMgZ29vZCBlbm91Z2gKLS8vIHRvIHN0b3Agc3RhY2sgYmxv
d3VwIGluIGEgMk1CIHRocmVhZCBzdGFjay4KLS8vIFNldHRpbmcgbWF0Y2hfbGltaXQgdG8gemVy
byB3aWxsIGRpc2FibGUgbWF0Y2ggbGltaXRpbmcuCisvLyBhbG9uZyB3aXRoIG90aGVyIG9wdGlv
bnMgd2UgcHV0IG9uIHRvcCBvZiBwY3JlLgorLy8gT25seSA5IG1vZGlmaWVycywgcGx1cyBtYXRj
aF9saW1pdCBhcmUgc3VwcG9ydGVkIG5vdy4KIGNsYXNzIFJFX09wdGlvbnMgewogIHB1YmxpYzoK
ICAgLy8gY29uc3RydWN0b3IKLSAgUkVfT3B0aW9ucygpIDogbWF0Y2hfbGltaXRfKDApLCB1dGY4
XyhmYWxzZSkge30KKyAgUkVfT3B0aW9ucygpIDogbWF0Y2hfbGltaXRfKDApLCBhbGxfb3B0aW9u
c18oMCkge30KKworICAvLyBhbHRlcm5hdGl2ZSBjb25zdHJ1Y3Rvci4KKyAgLy8gVG8gZmFjaWxp
dGF0ZSB0cmFuc2ZlciBvZiBsZWdhY3kgY29kZSBmcm9tIEMgcHJvZ3JhbXMKKyAgLy8KKyAgLy8g
VGhpcyBsZXRzIHlvdSBkbworICAvLyAgICBSRShwYXR0ZXJuLCBSRV9PcHRpb25zKFBDUkVfQ0FT
RUxFU1N8UENSRV9NVUxUSUxJTkUpKS5QYXJ0aWFsTWF0Y2goc3RyKTsKKyAgLy8gQnV0IG5ldyBj
b2RlIGlzIGJldHRlciBvZmYgZG9pbmcKKyAgLy8gICAgUkUocGF0dGVybiwKKyAgLy8gICAgICBS
RV9PcHRpb25zKCkuc2V0X2Nhc2VsZXNzKHRydWUpLnNldF9tdWx0aWxpbmUodHJ1ZSkpLlBhcnRp
YWxNYXRjaChzdHIpOworICBSRV9PcHRpb25zKGludCBvcHRpb25fZmxhZ3MpIDogbWF0Y2hfbGlt
aXRfKDApLCBhbGxfb3B0aW9uc18gKG9wdGlvbl9mbGFncykge30KICAgLy8gd2UncmUgZmluZSB3
aXRoIHRoZSBkZWZhdWx0IGRlc3RydWN0b3IsIGNvcHkgY29uc3RydWN0b3IsIGV0Yy4KIAogICAv
LyBhY2Nlc3NvcnMgYW5kIG11dGF0b3JzCiAgIGludCBtYXRjaF9saW1pdCgpIGNvbnN0IHsgcmV0
dXJuIG1hdGNoX2xpbWl0XzsgfTsKLSAgdm9pZCBzZXRfbWF0Y2hfbGltaXQoaW50IGxpbWl0KSB7
CisgIFJFX09wdGlvbnMgJnNldF9tYXRjaF9saW1pdChpbnQgbGltaXQpIHsKICAgICBtYXRjaF9s
aW1pdF8gPSBsaW1pdDsKKyAgICByZXR1cm4gKnRoaXM7CiAgIH0KIAotICBib29sIHV0ZjgoKSBj
b25zdCB7IHJldHVybiB1dGY4XzsgfQotICB2b2lkIHNldF91dGY4KGJvb2wgdSkgewotICAgIHV0
ZjhfID0gdTsKKyAgYm9vbCBjYXNlbGVzcygpIGNvbnN0IHsKKyAgICByZXR1cm4gUENSRV9JU19T
RVQoUENSRV9DQVNFTEVTUyk7CiAgIH0KKyAgUkVfT3B0aW9ucyAmc2V0X2Nhc2VsZXNzKGJvb2wg
eCkgeworICAgIFBDUkVfU0VUX09SX0NMRUFSKHgsIFBDUkVfQ0FTRUxFU1MpOworICB9CiAKKyAg
Ym9vbCBtdWx0aWxpbmUoKSBjb25zdCB7CisgICAgcmV0dXJuIFBDUkVfSVNfU0VUKFBDUkVfTVVM
VElMSU5FKTsKKyAgfQorICBSRV9PcHRpb25zICZzZXRfbXVsdGlsaW5lKGJvb2wgeCkgeworICAg
IFBDUkVfU0VUX09SX0NMRUFSKHgsIFBDUkVfTVVMVElMSU5FKTsKKyAgfQorCisgIGJvb2wgZG90
YWxsKCkgY29uc3QgeworICAgIHJldHVybiBQQ1JFX0lTX1NFVChQQ1JFX0RPVEFMTCk7CisgIH0K
KyAgUkVfT3B0aW9ucyAmc2V0X2RvdGFsbChib29sIHgpIHsKKyAgICBQQ1JFX1NFVF9PUl9DTEVB
Uih4LFBDUkVfRE9UQUxMKTsKKyAgfQorCisgIGJvb2wgZXh0ZW5kZWQoKSBjb25zdCB7CisgICAg
cmV0dXJuIFBDUkVfSVNfU0VUKFBDUkVfRVhURU5ERUQpOworICB9CisgIFJFX09wdGlvbnMgJnNl
dF9leHRlbmRlZChib29sIHgpIHsKKyAgICBQQ1JFX1NFVF9PUl9DTEVBUih4LFBDUkVfRVhURU5E
RUQpOworICB9CisKKyAgYm9vbCBkb2xsYXJfZW5kb25seSgpIGNvbnN0IHsKKyAgICByZXR1cm4g
UENSRV9JU19TRVQoUENSRV9ET0xMQVJfRU5ET05MWSk7CisgIH0KKyAgUkVfT3B0aW9ucyAmc2V0
X2RvbGxhcl9lbmRvbmx5KGJvb2wgeCkgeworICAgIFBDUkVfU0VUX09SX0NMRUFSKHgsUENSRV9E
T0xMQVJfRU5ET05MWSk7CisgIH0KKworICBib29sIGV4dHJhKCkgY29uc3QgeworICAgIHJldHVy
biBQQ1JFX0lTX1NFVCggUENSRV9FWFRSQSk7CisgIH0KKyAgUkVfT3B0aW9ucyAmc2V0X2V4dHJh
KGJvb2wgeCkgeworICAgIFBDUkVfU0VUX09SX0NMRUFSKHgsIFBDUkVfRVhUUkEpOworICB9CisK
KyAgYm9vbCB1bmdyZWVkeSgpIGNvbnN0IHsKKyAgICByZXR1cm4gUENSRV9JU19TRVQoUENSRV9V
TkdSRUVEWSk7CisgIH0KKyAgUkVfT3B0aW9ucyAmc2V0X3VuZ3JlZWR5KGJvb2wgeCkgeworICAg
IFBDUkVfU0VUX09SX0NMRUFSKHgsIFBDUkVfVU5HUkVFRFkpOworICB9CisKKyAgYm9vbCB1dGY4
KCkgY29uc3QgeworICAgIHJldHVybiBQQ1JFX0lTX1NFVChQQ1JFX1VURjgpOworICB9CisgIFJF
X09wdGlvbnMgJnNldF91dGY4KGJvb2wgeCkgeworICAgIFBDUkVfU0VUX09SX0NMRUFSKHgsIFBD
UkVfVVRGOCk7CisgIH0KKworICBib29sIG5vX2F1dG9fY2FwdHVyZSgpIGNvbnN0IHsKKyAgICBy
ZXR1cm4gUENSRV9JU19TRVQoUENSRV9OT19BVVRPX0NBUFRVUkUpOworICB9CisgIFJFX09wdGlv
bnMgJnNldF9ub19hdXRvX2NhcHR1cmUoYm9vbCB4KSB7CisgICAgUENSRV9TRVRfT1JfQ0xFQVIo
eCwgUENSRV9OT19BVVRPX0NBUFRVUkUpOworICB9CisKKyAgUkVfT3B0aW9ucyAmc2V0X2FsbF9v
cHRpb25zKGludCBvcHQpIHsKKyAgICBhbGxfb3B0aW9uc18gPSBvcHQ7CisgICAgcmV0dXJuICp0
aGlzOworICB9CisgIGludCBhbGxfb3B0aW9ucygpIGNvbnN0IHsKKyAgICByZXR1cm4gYWxsX29w
dGlvbnNfIDsKKyAgfQorCiAgIC8vIFRPRE86IGFkZCBvdGhlciBwY3JlIGZsYWdzCiAKICBwcml2
YXRlOgogICBpbnQgbWF0Y2hfbGltaXRfOwotICBib29sIHV0ZjhfOworICBpbnQgYWxsX29wdGlv
bnNfOwogfTsKIAogLy8gVGhlc2UgZnVuY3Rpb25zIHJldHVybiBzb21lIGNvbW1vbiBSRV9PcHRp
b25zCiBzdGF0aWMgaW5saW5lIFJFX09wdGlvbnMgVVRGOCgpIHsKLSAgUkVfT3B0aW9ucyBvcHRp
b25zOwotICBvcHRpb25zLnNldF91dGY4KHRydWUpOwotICByZXR1cm4gb3B0aW9uczsKKyAgcmV0
dXJuIFJFX09wdGlvbnMoKS5zZXRfdXRmOCh0cnVlKTsKIH0KIAorc3RhdGljIGlubGluZSBSRV9P
cHRpb25zIENBU0VMRVNTKCkgeworICByZXR1cm4gUkVfT3B0aW9ucygpLnNldF9jYXNlbGVzcyh0
cnVlKTsKK30KK3N0YXRpYyBpbmxpbmUgUkVfT3B0aW9ucyBNVUxUSUxJTkUoKSB7CisgIHJldHVy
biBSRV9PcHRpb25zKCkuc2V0X211bHRpbGluZSh0cnVlKTsKK30KIAorc3RhdGljIGlubGluZSBS
RV9PcHRpb25zIERPVEFMTCgpIHsKKyAgcmV0dXJuIFJFX09wdGlvbnMoKS5zZXRfZG90YWxsKHRy
dWUpOworfQorCitzdGF0aWMgaW5saW5lIFJFX09wdGlvbnMgRVhURU5ERUQoKSB7CisgIHJldHVy
biBSRV9PcHRpb25zKCkuc2V0X2V4dGVuZGVkKHRydWUpOworfQorCiAvLyBJbnRlcmZhY2UgZm9y
IHJlZ3VsYXIgZXhwcmVzc2lvbiBtYXRjaGluZy4gIEFsc28gY29ycmVzcG9uZHMgdG8gYQogLy8g
cHJlLWNvbXBpbGVkIHJlZ3VsYXIgZXhwcmVzc2lvbi4gIEFuICJSRSIgb2JqZWN0IGlzIHNhZmUg
Zm9yCiAvLyBjb25jdXJyZW50IHVzZSBieSBtdWx0aXBsZSB0aHJlYWRzLgpAQCAtNjAwLDggKzc3
NiwxMSBAQAogTUFLRV9JTlRFR0VSX1BBUlNFUih1bnNpZ25lZCBsb25nIGxvbmcsIHVsb25nbG9u
Zyk7CiAjZW5kaWYKIAorI3VuZGVmIFBDUkVfSVNfU0VUCisjdW5kZWYgUENSRV9TRVRfT1JfQ0xF
QVIKICN1bmRlZiBNQUtFX0lOVEVHRVJfUEFSU0VSCiAKIH0gICAvLyBuYW1lc3BhY2UgcGNyZWNw
cAogCisKICNlbmRpZiAvKiBfUENSRV9SRUdFWFBfSCAqLwpJbmRleDogcGNyZWNwcF91bml0dGVz
dC5jYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBwY3JlY3BwX3VuaXR0ZXN0LmNjCShyZXZpc2lvbiAxKQorKysg
cGNyZWNwcF91bml0dGVzdC5jYwkocmV2aXNpb24gMikKQEAgLTQzLDYgKzQzLDggQEAKIHVzaW5n
IHBjcmVjcHA6Ok9jdGFsOwogdXNpbmcgcGNyZWNwcDo6Q1JhZGl4OwogCitzdGF0aWMgYm9vbCBW
RVJCT1NFX1RFU1QgID0gZmFsc2U7CisKIC8vIENIRUNLIGRpZXMgd2l0aCBhIGZhdGFsIGVycm9y
IGlmIGNvbmRpdGlvbiBpcyBub3QgdHJ1ZS4gIEl0IGlzICpub3QqCiAvLyBjb250cm9sbGVkIGJ5
IE5ERUJVRywgc28gdGhlIGNoZWNrIHdpbGwgYmUgZXhlY3V0ZWQgcmVnYXJkbGVzcyBvZgogLy8g
Y29tcGlsYXRpb24gbW9kZS4gIFRoZXJlZm9yZSwgaXQgaXMgc2FmZSB0byBkbyB0aGluZ3MgbGlr
ZToKQEAgLTM2Myw3ICszNjUsMjI4IEBACiAgIHJlLkZ1bGxNYXRjaChkb21haW4pOwogfQogCisv
LworLy8gT3B0aW9ucyB0ZXN0cyBjb250cmlidXRlZCBieQorLy8gR2l1c2VwcGUgTWF4aWEsIENU
TywgU3RhcmRhdGEgcy5yLmwuCisvLyBKdWx5IDIwMDUKKy8vCitzdGF0aWMgdm9pZCBHZXRPbmVP
cHRpb25SZXN1bHQoCisgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqb3B0aW9uX25hbWUsCisg
ICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcmVnZXgsCisgICAgICAgICAgICAgICAgY29uc3Qg
Y2hhciAqc3RyLAorICAgICAgICAgICAgICAgIFJFX09wdGlvbnMgb3B0aW9ucywKKyAgICAgICAg
ICAgICAgICBib29sIGZ1bGwsCisgICAgICAgICAgICAgICAgc3RyaW5nIGV4cGVjdGVkKSB7CiAK
KyAgcHJpbnRmKCJUZXN0aW5nIE9wdGlvbiA8JXM+XG4iLCBvcHRpb25fbmFtZSk7CisgIGlmKFZF
UkJPU0VfVEVTVCkKKyAgICBwcmludGYoIi8lcy8gZmluZHMgXCIlc1wiIHdpdGhpbiBcIiVzXCIg
XG4iLAorICAgICAgICAgICAgICAgICAgICByZWdleCwKKyAgICAgICAgICAgICAgICAgICAgZXhw
ZWN0ZWQuY19zdHIoKSwKKyAgICAgICAgICAgICAgICAgICAgc3RyKTsKKyAgc3RyaW5nIGNhcHR1
cmVkKCIiKTsKKyAgaWYgKGZ1bGwpCisgICAgUkUocmVnZXgsb3B0aW9ucykuRnVsbE1hdGNoKHN0
ciwgJmNhcHR1cmVkKTsKKyAgZWxzZQorICAgIFJFKHJlZ2V4LG9wdGlvbnMpLlBhcnRpYWxNYXRj
aChzdHIsICZjYXB0dXJlZCk7CisgIENIRUNLX0VRKGNhcHR1cmVkLCBleHBlY3RlZCk7Cit9CisK
K3N0YXRpYyB2b2lkIFRlc3RPbmVPcHRpb24oCisgICAgICAgICAgICAgICAgY29uc3QgY2hhciAq
b3B0aW9uX25hbWUsCisgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqcmVnZXgsCisgICAgICAg
ICAgICAgICAgY29uc3QgY2hhciAqc3RyLAorICAgICAgICAgICAgICAgIFJFX09wdGlvbnMgb3B0
aW9ucywKKyAgICAgICAgICAgICAgICBib29sIGZ1bGwsCisgICAgICAgICAgICAgICAgYm9vbCBh
c3NlcnRpdmUgPSB0cnVlKSB7CisKKyAgcHJpbnRmKCJUZXN0aW5nIE9wdGlvbiA8JXM+XG4iLCBv
cHRpb25fbmFtZSk7CisgIGlmIChWRVJCT1NFX1RFU1QpCisgICAgcHJpbnRmKCInJXMnICVzIC8l
cy8gXG4iLAorICAgICAgICAgICAgICAgICAgc3RyLAorICAgICAgICAgICAgICAgICAgKGFzc2Vy
dGl2ZT8gIm1hdGNoZXMiIDogImRvZXNuJ3QgbWF0Y2giKSwKKyAgICAgICAgICAgICAgICAgIHJl
Z2V4KTsKKyAgaWYgKGFzc2VydGl2ZSkgeworICAgIGlmIChmdWxsKQorICAgICAgQ0hFQ0soUkUo
cmVnZXgsb3B0aW9ucykuRnVsbE1hdGNoKHN0cikpOworICAgIGVsc2UKKyAgICAgIENIRUNLKFJF
KHJlZ2V4LG9wdGlvbnMpLlBhcnRpYWxNYXRjaChzdHIpKTsKKyAgfSBlbHNlIHsKKyAgICBpZiAo
ZnVsbCkKKyAgICAgIENIRUNLKCFSRShyZWdleCxvcHRpb25zKS5GdWxsTWF0Y2goc3RyKSk7Cisg
ICAgZWxzZQorICAgICAgQ0hFQ0soIVJFKHJlZ2V4LG9wdGlvbnMpLlBhcnRpYWxNYXRjaChzdHIp
KTsKKyAgfQorfQorCitzdGF0aWMgdm9pZCBUZXN0X0NBU0VMRVNTKCkgeworICBSRV9PcHRpb25z
IG9wdGlvbnM7CisgIFJFX09wdGlvbnMgb3B0aW9uczI7CisKKyAgb3B0aW9ucy5zZXRfY2FzZWxl
c3ModHJ1ZSk7CisgIFRlc3RPbmVPcHRpb24oIkNBU0VMRVNTIChjbGFzcykiLCAgIkhFTExPIiwg
ICAgImhlbGxvIiwgb3B0aW9ucywgZmFsc2UpOworICBUZXN0T25lT3B0aW9uKCJDQVNFTEVTUyAo
Y2xhc3MyKSIsICJIRUxMTyIsICAgICJoZWxsbyIsIG9wdGlvbnMyLnNldF9jYXNlbGVzcyh0cnVl
KSwgZmFsc2UpOworICBUZXN0T25lT3B0aW9uKCJDQVNFTEVTUyAoY2xhc3MpIiwgICJeW0EtWl0r
JCIsICJIZWxsbyIsIG9wdGlvbnMsIGZhbHNlKTsKKworICBUZXN0T25lT3B0aW9uKCJDQVNFTEVT
UyAoZnVuY3Rpb24pIiwgIkhFTExPIiwgICAgImhlbGxvIiwgcGNyZWNwcDo6Q0FTRUxFU1MoKSwg
ZmFsc2UpOworICBUZXN0T25lT3B0aW9uKCJDQVNFTEVTUyAoZnVuY3Rpb24pIiwgIl5bQS1aXSsk
IiwgIkhlbGxvIiwgcGNyZWNwcDo6Q0FTRUxFU1MoKSwgZmFsc2UpOworICBvcHRpb25zLnNldF9j
YXNlbGVzcyhmYWxzZSk7CisgIFRlc3RPbmVPcHRpb24oIm5vIENBU0VMRVNTIiwgIkhFTExPIiwg
ICAgImhlbGxvIiwgb3B0aW9ucywgZmFsc2UsIGZhbHNlKTsKK30KKworc3RhdGljIHZvaWQgVGVz
dF9NVUxUSUxJTkUoKSB7CisgIFJFX09wdGlvbnMgb3B0aW9uczsKKyAgUkVfT3B0aW9ucyBvcHRp
b25zMjsKKyAgY29uc3QgY2hhciAqc3RyID0gIkhFTExPXG4iICJjcnVlbFxuIiAid29ybGRcbiI7
CisKKyAgb3B0aW9ucy5zZXRfbXVsdGlsaW5lKHRydWUpOworICBUZXN0T25lT3B0aW9uKCJNVUxU
SUxJTkUgKGNsYXNzKSIsICAgICJeY3J1ZWwkIiwgc3RyLCBvcHRpb25zLCBmYWxzZSk7CisgIFRl
c3RPbmVPcHRpb24oIk1VTFRJTElORSAoY2xhc3MyKSIsICAgIl5jcnVlbCQiLCBzdHIsIG9wdGlv
bnMyLnNldF9tdWx0aWxpbmUodHJ1ZSksIGZhbHNlKTsKKyAgVGVzdE9uZU9wdGlvbigiTVVMVElM
SU5FIChmdW5jdGlvbikiLCAiXmNydWVsJCIsIHN0ciwgcGNyZWNwcDo6TVVMVElMSU5FKCksIGZh
bHNlKTsKKyAgb3B0aW9ucy5zZXRfbXVsdGlsaW5lKGZhbHNlKTsKKyAgVGVzdE9uZU9wdGlvbigi
bm8gTVVMVElMSU5FIiwgIl5jcnVlbCQiLCBzdHIsIG9wdGlvbnMsIGZhbHNlLCBmYWxzZSk7Cit9
CisKK3N0YXRpYyB2b2lkIFRlc3RfRE9UQUxMKCkgeworICBSRV9PcHRpb25zIG9wdGlvbnM7Cisg
IFJFX09wdGlvbnMgb3B0aW9uczI7CisgIGNvbnN0IGNoYXIgKnN0ciA9ICJIRUxMT1xuIiAiY3J1
ZWxcbiIgIndvcmxkIjsKKworICBvcHRpb25zLnNldF9kb3RhbGwodHJ1ZSk7CisgIFRlc3RPbmVP
cHRpb24oIkRPVEFMTCAoY2xhc3MpIiwgICAgIkhFTExPLip3b3JsZCIsIHN0ciwgb3B0aW9ucywg
dHJ1ZSk7CisgIFRlc3RPbmVPcHRpb24oIkRPVEFMTCAoY2xhc3MyKSIsICAgIkhFTExPLip3b3Js
ZCIsIHN0ciwgb3B0aW9uczIuc2V0X2RvdGFsbCh0cnVlKSwgdHJ1ZSk7CisgIFRlc3RPbmVPcHRp
b24oIkRPVEFMTCAoZnVuY3Rpb24pIiwgICAgIkhFTExPLip3b3JsZCIsIHN0ciwgcGNyZWNwcDo6
RE9UQUxMKCksIHRydWUpOworICBvcHRpb25zLnNldF9kb3RhbGwoZmFsc2UpOworICBUZXN0T25l
T3B0aW9uKCJubyBET1RBTEwiLCAiSEVMTE8uKndvcmxkIiwgc3RyLCBvcHRpb25zLCB0cnVlLCBm
YWxzZSk7Cit9CisKK3N0YXRpYyB2b2lkIFRlc3RfRE9MTEFSX0VORE9OTFkoKSB7CisgIFJFX09w
dGlvbnMgb3B0aW9uczsKKyAgUkVfT3B0aW9ucyBvcHRpb25zMjsKKyAgY29uc3QgY2hhciAqc3Ry
ID0gIkhFTExPIHdvcmxkXG4iOworCisgIFRlc3RPbmVPcHRpb24oIm5vIERPTExBUl9FTkRPTkxZ
IiwgIndvcmxkJCIsIHN0ciwgb3B0aW9ucywgZmFsc2UpOworICBvcHRpb25zLnNldF9kb2xsYXJf
ZW5kb25seSh0cnVlKTsKKyAgVGVzdE9uZU9wdGlvbigiRE9MTEFSX0VORE9OTFkgMSIsICAgICJ3
b3JsZCQiLCBzdHIsIG9wdGlvbnMsIGZhbHNlLCBmYWxzZSk7CisgIFRlc3RPbmVPcHRpb24oIkRP
TExBUl9FTkRPTkxZIDIiLCAgICAid29ybGQkIiwgc3RyLCBvcHRpb25zMi5zZXRfZG9sbGFyX2Vu
ZG9ubHkodHJ1ZSksIGZhbHNlLCBmYWxzZSk7Cit9CisKK3N0YXRpYyB2b2lkIFRlc3RfRVhUUkEo
KSB7CisgIFJFX09wdGlvbnMgb3B0aW9uczsKKyAgY29uc3QgY2hhciAqc3RyID0gIkhFTExPIjsK
KworICBvcHRpb25zLnNldF9leHRyYSh0cnVlKTsKKyAgVGVzdE9uZU9wdGlvbigiRVhUUkEgMSIs
ICJcXEhFTExcXE8iLCBzdHIsIG9wdGlvbnMsIHRydWUsIGZhbHNlICk7CisgIFRlc3RPbmVPcHRp
b24oIkVYVFJBIDIiLCAiXFxIRUxMXFxPIiwgc3RyLCBSRV9PcHRpb25zKCkuc2V0X2V4dHJhKHRy
dWUpLCB0cnVlLCBmYWxzZSApOworICBvcHRpb25zLnNldF9leHRyYShmYWxzZSk7CisgIFRlc3RP
bmVPcHRpb24oIm5vIEVYVFJBIiwgIlxcSEVMTFxcTyIsIHN0ciwgb3B0aW9ucywgdHJ1ZSApOwor
fQorCitzdGF0aWMgdm9pZCBUZXN0X0VYVEVOREVEKCkgeworICBSRV9PcHRpb25zIG9wdGlvbnM7
CisgIFJFX09wdGlvbnMgb3B0aW9uczI7CisgIGNvbnN0IGNoYXIgKnN0ciA9ICJIRUxMTyB3b3Js
ZCI7CisKKyAgb3B0aW9ucy5zZXRfZXh0ZW5kZWQodHJ1ZSk7CisgIFRlc3RPbmVPcHRpb24oIkVY
VEVOREVEIChjbGFzcykiLCAgICAiSEVMTE8gd29ybGQiLCBzdHIsIG9wdGlvbnMsIGZhbHNlLCBm
YWxzZSk7CisgIFRlc3RPbmVPcHRpb24oIkVYVEVOREVEIChjbGFzczIpIiwgICAiSEVMTE8gd29y
bGQiLCBzdHIsIG9wdGlvbnMyLnNldF9leHRlbmRlZCh0cnVlKSwgZmFsc2UsIGZhbHNlKTsKKyAg
VGVzdE9uZU9wdGlvbigiRVhURU5ERUQgKGNsYXNzKSIsCisgICAgICAgICAgICAgICAgICAgICJe
IEhFIEx7Mn0gTyAiCisgICAgICAgICAgICAgICAgICAgICJcXHMrICAgICAgICAiCisgICAgICAg
ICAgICAgICAgICAgICJcXHcrICQgICAgICAiLAorICAgICAgICAgICAgICAgICAgICBzdHIsCisg
ICAgICAgICAgICAgICAgICAgIG9wdGlvbnMsCisgICAgICAgICAgICAgICAgICAgIGZhbHNlKTsK
KworICBUZXN0T25lT3B0aW9uKCJFWFRFTkRFRCAoZnVuY3Rpb24pIiwgICAgIkhFTExPIHdvcmxk
Iiwgc3RyLCBwY3JlY3BwOjpFWFRFTkRFRCgpLCBmYWxzZSwgZmFsc2UpOworICBUZXN0T25lT3B0
aW9uKCJFWFRFTkRFRCAoZnVuY3Rpb24pIiwKKyAgICAgICAgICAgICAgICAgICAgIl4gSEUgTHsy
fSBPICIKKyAgICAgICAgICAgICAgICAgICAgIlxccysgICAgICAgICIKKyAgICAgICAgICAgICAg
ICAgICAgIlxcdysgJCAgICAgICIsCisgICAgICAgICAgICAgICAgICAgIHN0ciwKKyAgICAgICAg
ICAgICAgICAgICAgcGNyZWNwcDo6RVhURU5ERUQoKSwKKyAgICAgICAgICAgICAgICAgICAgZmFs
c2UpOworCisgIG9wdGlvbnMuc2V0X2V4dGVuZGVkKGZhbHNlKTsKKyAgVGVzdE9uZU9wdGlvbigi
bm8gRVhURU5ERUQiLCAiSEVMTE8gd29ybGQiLCBzdHIsIG9wdGlvbnMsIGZhbHNlKTsKK30KKwor
c3RhdGljIHZvaWQgVGVzdF9OT19BVVRPX0NBUFRVUkUoKSB7CisgIFJFX09wdGlvbnMgb3B0aW9u
czsKKyAgY29uc3QgY2hhciAqc3RyID0gIkhFTExPIHdvcmxkIjsKKyAgc3RyaW5nIGNhcHR1cmVk
OworCisgIHByaW50ZigiVGVzdGluZyBPcHRpb24gPG5vIE5PX0FVVE9fQ0FQVFVSRT5cbiIpOwor
ICBpZiAoVkVSQk9TRV9URVNUKQorICAgIHByaW50ZigicGFyZW50aGVzZXMgY2FwdHVyZSB0ZXh0
XG4iKTsKKyAgUkUgcmUoIih3b3JsZHx1bml2ZXJzZSkkIiwgb3B0aW9ucyk7CisgIENIRUNLKHJl
LkV4dHJhY3QoIlxcMSIsIHN0ciAsICZjYXB0dXJlZCkpOworICBDSEVDS19FUShjYXB0dXJlZCwg
IndvcmxkIik7CisgIG9wdGlvbnMuc2V0X25vX2F1dG9fY2FwdHVyZSh0cnVlKTsKKyAgcHJpbnRm
KCJ0ZXN0aW5nIE9wdGlvbiA8Tk9fQVVUT19DQVBUVVJFPlxuIik7CisgIGlmIChWRVJCT1NFX1RF
U1QpCisgICAgcHJpbnRmKCJwYXJlbnRoZXNlcyBkbyBub3QgY2FwdHVyZSB0ZXh0XG4iKTsKKyAg
cmUuRXh0cmFjdCgiXFwxIixzdHIsICZjYXB0dXJlZCApOworICBDSEVDS19FUShjYXB0dXJlZCwg
IndvcmxkIik7Cit9CisKK3N0YXRpYyB2b2lkIFRlc3RfVU5HUkVFRFkoKSB7CisgIFJFX09wdGlv
bnMgb3B0aW9uczsKKyAgY29uc3QgY2hhciAqc3RyID0gIkhFTExPLCAndGhpcycgaXMgdGhlICd3
b3JsZCciOworCisgIG9wdGlvbnMuc2V0X3VuZ3JlZWR5KHRydWUpOworICBHZXRPbmVPcHRpb25S
ZXN1bHQoIlVOR1JFRURZIDEiLCAiKCcuKicpIiwgc3RyLCBvcHRpb25zLCBmYWxzZSwgIid0aGlz
JyIgKTsKKyAgR2V0T25lT3B0aW9uUmVzdWx0KCJVTkdSRUVEWSAyIiwgIignLionKSIsIHN0ciwg
UkVfT3B0aW9ucygpLnNldF91bmdyZWVkeSh0cnVlKSwgZmFsc2UsICIndGhpcyciICk7CisgIEdl
dE9uZU9wdGlvblJlc3VsdCgiVU5HUkVFRFkiLCAiKCcuKj8nKSIsIHN0ciwgb3B0aW9ucywgZmFs
c2UsICIndGhpcycgaXMgdGhlICd3b3JsZCciICk7CisKKyAgb3B0aW9ucy5zZXRfdW5ncmVlZHko
ZmFsc2UpOworICBHZXRPbmVPcHRpb25SZXN1bHQoIm5vIFVOR1JFRURZIiwgIignLionKSIsIHN0
ciwgb3B0aW9ucywgZmFsc2UsICIndGhpcycgaXMgdGhlICd3b3JsZCciICk7CisgIEdldE9uZU9w
dGlvblJlc3VsdCgibm8gVU5HUkVFRFkiLCAiKCcuKj8nKSIsIHN0ciwgb3B0aW9ucywgZmFsc2Us
ICIndGhpcyciICk7Cit9CisKK3N0YXRpYyB2b2lkIFRlc3RfYWxsX29wdGlvbnMoKSB7CisgIGNv
bnN0IGNoYXIgKnN0ciA9ICJIRUxMT1xuIiAiY3J1ZWxcbiIgIndvcmxkIjsKKyAgUkVfT3B0aW9u
cyBvcHRpb25zOworICBvcHRpb25zLnNldF9hbGxfb3B0aW9ucyhQQ1JFX0NBU0VMRVNTIHwgUENS
RV9ET1RBTEwpOworCisgIFRlc3RPbmVPcHRpb24oImFsbF9vcHRpb25zIChDQVNFTEVTU3xET1RB
TEwpIiwgIl5oZWxsby4qV09STEQiLCBzdHIgLCBvcHRpb25zLCBmYWxzZSk7CisgIG9wdGlvbnMu
c2V0X2FsbF9vcHRpb25zKDApOworICBUZXN0T25lT3B0aW9uKCJhbGxfb3B0aW9ucyAoMCkiLCAi
XmhlbGxvLipXT1JMRCIsIHN0ciAsIG9wdGlvbnMsIGZhbHNlLCBmYWxzZSk7CisgIG9wdGlvbnMu
c2V0X2FsbF9vcHRpb25zKFBDUkVfTVVMVElMSU5FIHwgUENSRV9FWFRFTkRFRCk7CisKKyAgVGVz
dE9uZU9wdGlvbigiYWxsX29wdGlvbnMgKE1VTFRJTElORXxFWFRFTkRFRCkiLCAiIF4gYyByIHUg
ZSBsICQgIiwgc3RyLCBvcHRpb25zLCBmYWxzZSk7CisgIFRlc3RPbmVPcHRpb24oImFsbF9vcHRp
b25zIChNVUxUSUxJTkV8RVhURU5ERUQpIHdpdGggY29uc3RydWN0b3IiLAorICAgICAgICAgICAg
ICAgICAgIiBeIGMgciB1IGUgbCAkICIsCisgICAgICAgICAgICAgICAgICBzdHIsCisgICAgICAg
ICAgICAgICAgICBSRV9PcHRpb25zKFBDUkVfTVVMVElMSU5FIHwgUENSRV9FWFRFTkRFRCksCisg
ICAgICAgICAgICAgICAgICBmYWxzZSk7CisKKyAgVGVzdE9uZU9wdGlvbigiYWxsX29wdGlvbnMg
KE1VTFRJTElORXxFWFRFTkRFRCkgd2l0aCBjb25jYXRlbmF0aW9uIiwKKyAgICAgICAgICAgICAg
ICAgICIgXiBjIHIgdSBlIGwgJCAiLAorICAgICAgICAgICAgICAgICAgc3RyLAorICAgICAgICAg
ICAgICAgICAgUkVfT3B0aW9ucygpCisgICAgICAgICAgICAgICAgICAgICAgIC5zZXRfbXVsdGls
aW5lKHRydWUpCisgICAgICAgICAgICAgICAgICAgICAgIC5zZXRfZXh0ZW5kZWQodHJ1ZSksCisg
ICAgICAgICAgICAgICAgICBmYWxzZSk7CisKKyAgb3B0aW9ucy5zZXRfYWxsX29wdGlvbnMoMCk7
CisgIFRlc3RPbmVPcHRpb24oImFsbF9vcHRpb25zICgwKSIsICJeIGMgciB1IGUgbCAkIiwgc3Ry
LCBvcHRpb25zLCBmYWxzZSwgZmFsc2UpOworCit9CisKK3N0YXRpYyB2b2lkIFRlc3RPcHRpb25z
KCkgeworICBwcmludGYoIlRlc3RpbmcgT3B0aW9uc1xuIik7CisgIFRlc3RfQ0FTRUxFU1MoKTsK
KyAgVGVzdF9NVUxUSUxJTkUoKTsKKyAgVGVzdF9ET1RBTEwoKTsKKyAgVGVzdF9ET0xMQVJfRU5E
T05MWSgpOworICBUZXN0X0VYVEVOREVEKCk7CisgIFRlc3RfTk9fQVVUT19DQVBUVVJFKCk7Cisg
IFRlc3RfVU5HUkVFRFkoKTsKKyAgVGVzdF9FWFRSQSgpOworICBUZXN0X2FsbF9vcHRpb25zKCk7
Cit9CisKIGludCBtYWluKGludCBhcmdjLCBjaGFyKiogYXJndikgewogICAvLyBUcmVhdCBhbnkg
ZmxhZyBhcyAtLWhlbHAKICAgaWYgKGFyZ2MgPiAxICYmIGFyZ3ZbMV1bMF0gPT0gJy0nKSB7CkBA
IC04MDcsNiArMTAzMCwxMSBAQAogICBUZXN0UmVjdXJzaW9uKGJ5dGVzLCAiYWIuIiwgbWF0Y2hs
aW1pdCk7CiAgIFRlc3RSZWN1cnNpb24oYnl0ZXMsICJhYmMuIiwgbWF0Y2hsaW1pdCk7CiAKKyAg
Ly8gVGVzdCBPcHRpb25zCisgIGlmIChnZXRlbnYoIlZFUkJPU0VfVEVTVCIpICE9IE5VTEwpCisg
ICAgVkVSQk9TRV9URVNUICA9IHRydWU7CisgIFRlc3RPcHRpb25zKCk7CisKICAgLy8gRG9uZQog
ICBwcmludGYoIk9LXG4iKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>12115</attachid>
            <date>2006-12-29 18:48:01 -0800</date>
            <delta_ts>2006-12-29 18:58:55 -0800</delta_ts>
            <desc>Patch v1</desc>
            <filename>bug-12031-v1.diff</filename>
            <type>text/plain</type>
            <size>5510</size>
            <attacher name="David Kilzer (:ddkilzer)">ddkilzer</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE4NDgyKQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjcgQEAKKzIwMDYtMTItMjkgIERhdmlkIEtp
bHplciAgPGRka2lsemVyQHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGVtYmVkZGVkIHBjcmUgbGlicmFyeSBmcm9tIHZl
cnNpb24gNi4xIHRvIDYuMi4gIEZyb20gdGhlIHBjcmUgQ2hhbmdlTG9nOgorCisgICAgICAgIDMu
IEFkZGVkICJiIiB0byB0aGUgMm5kIGFyZ3VtZW50IG9mIGZvcGVuKCkgaW4gZGZ0YWJsZXMuYywg
Zm9yIG5vbi1Vbml4LWxpa2UKKyAgICAgICAgICAgb3BlcmF0aW5nIGVudmlyb25tZW50cyB3aGVy
ZSB0aGlzIG1hdHRlcnMuCisKKyAgICAgICAgNS4gTmFtZWQgY2FwdHVyaW5nIHN1YnBhdHRlcm5z
IHdlcmUgbm90IGJlaW5nIGNvcnJlY3RseSBjb3VudGVkIHdoZW4gYSBwYXR0ZXJuCisgICAgICAg
ICAgIHdhcyBjb21waWxlZC4gVGhpcyBjYXVzZWQgdHdvIHByb2JsZW1zOiAoYSkgSWYgdGhlcmUg
d2VyZSBtb3JlIHRoYW4gMTAwCisgICAgICAgICAgIHN1Y2ggc3VicGF0dGVybnMsIHRoZSBjYWxj
dWxhdGlvbiBvZiB0aGUgbWVtb3J5IG5lZWRlZCBmb3IgdGhlIHdob2xlCisgICAgICAgICAgIGNv
bXBpbGVkIHBhdHRlcm4gd2VudCB3cm9uZywgbGVhZGluZyB0byBhbiBvdmVyZmxvdyBlcnJvci4g
KGIpIE51bWVyaWNhbAorICAgICAgICAgICBiYWNrIHJlZmVyZW5jZXMgb2YgdGhlIGZvcm0gXDEy
LCB3aGVyZSB0aGUgbnVtYmVyIHdhcyBncmVhdGVyIHRoYW4gOSwgd2VyZQorICAgICAgICAgICBu
b3QgcmVjb2duaXplZCBhcyBiYWNrIHJlZmVyZW5jZXMsIGV2ZW4gdGhvdWdoIHRoZXJlIHdlcmUg
c3VmZmljaWVudAorICAgICAgICAgICBwcmV2aW91cyBzdWJwYXR0ZXJucy4KKworICAgICAgICAq
IHBjcmUvZGZ0YWJsZXMuYzoKKyAgICAgICAgKG1haW4pOgorICAgICAgICAqIHBjcmUvcGNyZS5o
OgorICAgICAgICAqIHBjcmUvcGNyZV9jb21waWxlLmM6CisgICAgICAgIChyZWFkX3JlcGVhdF9j
b3VudHMpOgorICAgICAgICAocGNyZV9jb21waWxlMik6CisKIDIwMDYtMTItMjkgIEdlb2ZmcmV5
IEdhcmVuICA8Z2dhcmVuQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBCcmlhbiBE
YXNoLi4uIGVyci4uLiBNYXJrIFJvd2UuCkluZGV4OiBKYXZhU2NyaXB0Q29yZS9wY3JlL2RmdGFi
bGVzLmMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGNyZS9kZnRhYmxlcy5jCShyZXZp
c2lvbiAxODQ4MCkKKysrIEphdmFTY3JpcHRDb3JlL3BjcmUvZGZ0YWJsZXMuYwkod29ya2luZyBj
b3B5KQpAQCAtNjYsNyArNjYsNyBAQCBpZiAoYXJnYyAhPSAyKQogICByZXR1cm4gMTsKICAgfQog
Ci1mID0gZm9wZW4oYXJndlsxXSwgInciKTsKK2YgPSBmb3Blbihhcmd2WzFdLCAid2IiKTsKIGlm
IChmID09IE5VTEwpCiAgIHsKICAgZnByaW50ZihzdGRlcnIsICJkZnRhYmxlczogZmFpbGVkIHRv
IG9wZW4gJXMgZm9yIHdyaXRpbmdcbiIsIGFyZ3ZbMV0pOwpJbmRleDogSmF2YVNjcmlwdENvcmUv
cGNyZS9wY3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlLmgJKHJl
dmlzaW9uIDE4NDgwKQorKysgSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTY1LDggKzY1LDggQEAgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAjZGVmaW5l
IHBjcmVfdmVyc2lvbiBranNfcGNyZV92ZXJzaW9uCiAKICNkZWZpbmUgUENSRV9NQUpPUiAgICAg
ICAgICA2Ci0jZGVmaW5lIFBDUkVfTUlOT1IgICAgICAgICAgMQotI2RlZmluZSBQQ1JFX0RBVEUg
ICAgICAgICAgIDIxLUp1bi0yMDA1CisjZGVmaW5lIFBDUkVfTUlOT1IgICAgICAgICAgMgorI2Rl
ZmluZSBQQ1JFX0RBVEUgICAgICAgICAgIDAxLUF1Zy0yMDA1CiAKICNkZWZpbmUgUENSRV9VVEYx
NiAgICAgICAgICAxCiAKSW5kZXg6IEphdmFTY3JpcHRDb3JlL3BjcmUvcGNyZV9jb21waWxlLmMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gSmF2YVNjcmlwdENvcmUvcGNyZS9wY3JlX2NvbXBpbGUuYwkocmV2aXNp
b24gMTg0ODApCisrKyBKYXZhU2NyaXB0Q29yZS9wY3JlL3BjcmVfY29tcGlsZS5jCSh3b3JraW5n
IGNvcHkpCkBAIC03MTcsNiArNzE3LDkgQEAgcmVhZF9yZXBlYXRfY291bnRzKGNvbnN0IHBjcmVf
dWNoYXIgKnAsIAogaW50IG1pbiA9IDA7CiBpbnQgbWF4ID0gLTE7CiAKKy8qIFJlYWQgdGhlIG1p
bmltdW0gdmFsdWUgYW5kIGRvIGEgcGFyYW5vaWQgY2hlY2s6IGEgbmVnYXRpdmUgdmFsdWUgaW5k
aWNhdGVzCithbiBpbnRlZ2VyIG92ZXJmbG93LiAqLworCiB3aGlsZSAoKERJR0lUQUIoKnApICYg
Y3R5cGVfZGlnaXQpICE9IDApIG1pbiA9IG1pbiAqIDEwICsgKnArKyAtICcwJzsKIGlmIChtaW4g
PCAwIHx8IG1pbiA+IDY1NTM1KQogICB7CkBAIC03MjQsNiArNzI3LDkgQEAgaWYgKG1pbiA8IDAg
fHwgbWluID4gNjU1MzUpCiAgICAgcmV0dXJuIHA7CiAgIH0KIAorLyogUmVhZCB0aGUgbWF4aW11
bSB2YWx1ZSBpZiB0aGVyZSBpcyBvbmUsIGFuZCBhZ2FpbiBkbyBhIHBhcmFub2lkIG9uIGl0cyBz
aXplLgorQWxzbywgbWF4IG11c3Qgbm90IGJlIGxlc3MgdGhhbiBtaW4uICovCisKIGlmICgqcCA9
PSAnfScpIG1heCA9IG1pbjsgZWxzZQogICB7CiAgIGlmICgqKCsrcCkgIT0gJ30nKQpAQCAtMzkx
NSw2ICszOTIxLDcgQEAgQk9PTCB1dGY4OwogQk9PTCBjbGFzc191dGY4OwogI2VuZGlmCiBCT09M
IGluZXNjcSA9IEZBTFNFOworQk9PTCBjYXB0dXJpbmc7CiB1bnNpZ25lZCBpbnQgYnJhc3RhY2tw
dHIgPSAwOwogc2l6ZV90IHNpemU7CiB1c2NoYXIgKmNvZGU7CkBAIC00NDc5LDYgKzQ0ODYsNyBA
QCB3aGlsZSAoKGMgPSAqKCsrcHRyKSkgIT0gMCkKICAgICBjYXNlICcoJzoKICAgICBicmFuY2hf
bmV3ZXh0cmEgPSAwOwogICAgIGJyYWNrZXRfbGVuZ3RoID0gMSArIExJTktfU0laRTsKKyAgICBj
YXB0dXJpbmcgPSBGQUxTRTsKIAogICAgIC8qIEhhbmRsZSBzcGVjaWFsIGZvcm1zIG9mIGJyYWNr
ZXQsIHdoaWNoIGFsbCBzdGFydCAoPyAqLwogCkBAIC00NTcxLDYgKzQ1NzksOSBAQCB3aGlsZSAo
KGMgPSAqKCsrcHRyKSkgIT0gMCkKIAogICAgICAgICBjYXNlICdQJzoKICAgICAgICAgcHRyICs9
IDM7CisKKyAgICAgICAgLyogSGFuZGxlIHRoZSBkZWZpbml0aW9uIG9mIGEgbmFtZWQgc3VicGF0
dGVybiAqLworCiAgICAgICAgIGlmICgqcHRyID09ICc8JykKICAgICAgICAgICB7CiAgICAgICAg
ICAgY29uc3QgcGNyZV91Y2hhciAqcDsgICAgLyogRG9uJ3QgYW1hbGdhbWF0ZTsgc29tZSBjb21w
aWxlcnMgKi8KQEAgLTQ1ODMsOSArNDU5NCwxMiBAQCB3aGlsZSAoKGMgPSAqKCsrcHRyKSkgIT0g
MCkKICAgICAgICAgICAgIH0KICAgICAgICAgICBuYW1lX2NvdW50Kys7CiAgICAgICAgICAgaWYg
KHB0ciAtIHAgPiBtYXhfbmFtZV9zaXplKSBtYXhfbmFtZV9zaXplID0gSU5UX0NBU1QocHRyIC0g
cCk7CisgICAgICAgICAgY2FwdHVyaW5nID0gVFJVRTsgICAvKiBOYW1lZCBwYXJlbnRoZXNlcyBh
cmUgYWx3YXlzIGNhcHR1cmluZyAqLwogICAgICAgICAgIGJyZWFrOwogICAgICAgICAgIH0KIAor
ICAgICAgICAvKiBIYW5kbGUgYmFjayByZWZlcmVuY2VzIGFuZCByZWN1cnNpdmUgY2FsbHMgdG8g
bmFtZWQgc3VicGF0dGVybnMgKi8KKwogICAgICAgICBpZiAoKnB0ciA9PSAnPScgfHwgKnB0ciA9
PSAnPicpCiAgICAgICAgICAgewogICAgICAgICAgICsrcHRyOwpAQCAtNDc3MSwxOCArNDc4NSwy
NCBAQCB3aGlsZSAoKGMgPSAqKCsrcHRyKSkgIT0gMCkKICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgICB9CiAKLSAgICAgICAgLyogSWYgb3B0aW9ucyB3ZXJlIHRlcm1pbmF0ZWQgYnkgJzon
IGNvbnRyb2wgY29tZXMgaGVyZS4gRmFsbCB0aHJvdWdoCi0gICAgICAgIHRvIGhhbmRsZSB0aGUg
Z3JvdXAgYmVsb3cuICovCisgICAgICAgIC8qIElmIG9wdGlvbnMgd2VyZSB0ZXJtaW5hdGVkIGJ5
ICc6JyBjb250cm9sIGNvbWVzIGhlcmUuIFRoaXMgaXMgYQorICAgICAgICBub24tY2FwdHVyaW5n
IGdyb3VwIHdpdGggYW4gb3B0aW9ucyBjaGFuZ2UuIFRoZXJlIGlzIG5vdGhpbmcgbW9yZSB0aGF0
CisgICAgICAgIG5lZWRzIHRvIGJlIGRvbmUgYmVjYXVzZSAiY2FwdHVyaW5nIiBpcyBhbHJlYWR5
IHNldCBGQUxTRSBieSBkZWZhdWx0OworICAgICAgICB3ZSBjYW4ganVzdCBmYWxsIHRocm91Z2gu
ICovCisKICAgICAgICAgfQogICAgICAgfQogCi0gICAgLyogRXh0cmFjdGluZyBicmFja2V0cyBt
dXN0IGJlIGNvdW50ZWQgc28gd2UgY2FuIHByb2Nlc3MgZXNjYXBlcyBpbiBhCi0gICAgUGVybGlz
aCB3YXkuIElmIHRoZSBudW1iZXIgZXhjZWVkcyBFWFRSQUNUX0JBU0lDX01BWCB3ZSBhcmUgZ29p
bmcgdG8KLSAgICBuZWVkIGFuIGFkZGl0aW9uYWwgMyBieXRlcyBvZiBzdG9yZSBwZXIgZXh0cmFj
dGluZyBicmFja2V0LiBIb3dldmVyLCBpZgotICAgIFBDUkVfTk9fQVVUTylDQVBUVVJFIGlzIHNl
dCwgdW5hZG9ybmVkIGJyYWNrZXRzIGJlY29tZSBub24tY2FwdHVyaW5nLCBzbyB3ZQotICAgIG11
c3QgbGVhdmUgdGhlIGNvdW50IGFsb25lIChpdCB3aWxsIGF3YXlzIGJlIHplcm8pLiAqLworICAg
IC8qIE9yZGluYXJ5IHBhcmVudGhlc2VzLCBub3QgZm9sbG93ZWQgYnkgJz8nLCBhcmUgY2FwdHVy
aW5nIHVubGVzcworICAgIFBDUkVfTk9fQVVUT19DQVBUVVJFIGlzIHNldC4gKi8KKworICAgIGVs
c2UgY2FwdHVyaW5nID0gKG9wdGlvbnMgJiBQQ1JFX05PX0FVVE9fQ0FQVFVSRSkgPT0gMDsKKwor
ICAgIC8qIENhcHR1cmluZyBicmFja2V0cyBtdXN0IGJlIGNvdW50ZWQgc28gd2UgY2FuIHByb2Nl
c3MgZXNjYXBlcyBpbiBhCisgICAgUGVybGlzaCB3YXkuIElmIHRoZSBudW1iZXIgZXhjZWVkcyBF
WFRSQUNUX0JBU0lDX01BWCB3ZSBhcmUgZ29pbmcgdG8gbmVlZAorICAgIGFuIGFkZGl0aW9uYWwg
MyBieXRlcyBvZiBtZW1vcnkgcGVyIGNhcHR1cmluZyBicmFja2V0LiAqLwogCi0gICAgZWxzZSBp
ZiAoKG9wdGlvbnMgJiBQQ1JFX05PX0FVVE9fQ0FQVFVSRSkgPT0gMCkKKyAgICBpZiAoY2FwdHVy
aW5nKQogICAgICAgewogICAgICAgYnJhY291bnQrKzsKICAgICAgIGlmIChicmFjb3VudCA+IEVY
VFJBQ1RfQkFTSUNfTUFYKSBicmFja2V0X2xlbmd0aCArPSAzOwo=
</data>
<flag name="review"
          id="4473"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>