<?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>78777</bug_id>
          
          <creation_ts>2012-02-15 21:47:09 -0800</creation_ts>
          <short_desc>Numerous trivial bugs in Object.defineProperty</short_desc>
          <delta_ts>2012-02-16 11:07:00 -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>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Gavin Barraclough">barraclough</reporter>
          <assigned_to name="Gavin Barraclough">barraclough</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>557896</commentid>
    <comment_count>0</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-02-15 21:47:09 -0800</bug_when>
    <thetext>There are a handful of really trivial bugs, related to Object.defineProperty:
    * Redefining an accessor with different attributes changes the attributes, but not the get/set functions!
    * Calling an undefined setter should only throw in strict mode.
    * When redefining an accessor to a data decriptor, if writable is not specified we should default to false.
    * Any attempt to redefine a non-configurable property of an array as configurable should be rejected.
    * Object.defineProperties should call toObject on &apos;Properties&apos; argument, rather than throwing if it is not an object.
    * If preventExtensions has been called on an array, subsequent assignment beyond array bounds should fail.
    * &apos;isFrozen&apos; shouldn&apos;t be checking the ReadOnly bit for accessor descriptors (we presently always keep this bit as &apos;false&apos;).
    * Should be able to redefine an non-writable, non-configurable property, with the same value and attributes.
    * Should be able to define an non-configurable accessor.
These are mostly all one-line changes, inverted boolean checks, masking against wrong attribute, etc.

Fixing these would resolve about 80% of our outstanding test-262 failures.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557897</commentid>
    <comment_count>1</comment_count>
      <attachid>127309</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-02-15 21:49:05 -0800</bug_when>
    <thetext>Created attachment 127309
Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>557898</commentid>
    <comment_count>2</comment_count>
      <attachid>127310</attachid>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-02-15 21:50:51 -0800</bug_when>
    <thetext>Created attachment 127310
With fixed Changelog</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558049</commentid>
    <comment_count>3</comment_count>
      <attachid>127310</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-02-16 03:26:19 -0800</bug_when>
    <thetext>Comment on attachment 127310
With fixed Changelog

Attachment 127310 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/11536144

New failing tests:
fast/js/property-getters-and-setters.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>558340</commentid>
    <comment_count>4</comment_count>
    <who name="Gavin Barraclough">barraclough</who>
    <bug_when>2012-02-16 11:07:00 -0800</bug_when>
    <thetext>Fixed in r107956</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127309</attachid>
            <date>2012-02-15 21:49:05 -0800</date>
            <delta_ts>2012-02-15 21:50:51 -0800</delta_ts>
            <desc>Fix</desc>
            <filename>78777.patch</filename>
            <type>text/plain</type>
            <size>42584</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA3ODgwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBA
CisyMDEyLTAyLTE1ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
KworICAgICAgICBOdW1lcm91cyB0cml2aWFsIGJ1Z3MgaW4gT2JqZWN0LmRlZmluZVByb3BlcnR5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODc3Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIGFy
ZSBhIGhhbmRmdWwgb2YgcmVhbGx5IHRyaXZpYWwgYnVncywgcmVsYXRlZCB0byBPYmplY3QuZGVm
aW5lUHJvcGVydHk6CisgICAgICAgICAgICAqIFJlZGVmaW5pbmcgYW4gYWNjZXNzb3Igd2l0aCBk
aWZmZXJlbnQgYXR0cmlidXRlcyBjaGFuZ2VzIHRoZSBhdHRyaWJ1dGVzLCBidXQgbm90IHRoZSBn
ZXQvc2V0IGZ1bmN0aW9ucyEKKyAgICAgICAgICAgICogQ2FsbGluZyBhbiB1bmRlZmluZWQgc2V0
dGVyIHNob3VsZCBvbmx5IHRocm93IGluIHN0cmljdCBtb2RlLgorICAgICAgICAgICAgKiBXaGVu
IHJlZGVmaW5pbmcgYW4gYWNjZXNzb3IgdG8gYSBkYXRhIGRlY3JpcHRvciwgaWYgd3JpdGFibGUg
aXMgbm90IHNwZWNpZmllZCB3ZSBzaG91bGQgZGVmYXVsdCB0byBmYWxzZS4KKyAgICAgICAgICAg
ICogQW55IGF0dGVtcHQgdG8gcmVkZWZpbmUgYSBub24tY29uZmlndXJhYmxlIHByb3BlcnR5IG9m
IGFuIGFycmF5IGFzIGNvbmZpZ3VyYWJsZSBzaG91bGQgYmUgcmVqZWN0ZWQuCisgICAgICAgICAg
ICAqIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzIHNob3VsZCBjYWxsIHRvT2JqZWN0IG9uICdQcm9w
ZXJ0aWVzJyBhcmd1bWVudCwgcmF0aGVyIHRoYW4gdGhyb3dpbmcgaWYgaXQgaXMgbm90IGFuIG9i
amVjdC4KKyAgICAgICAgICAgICogSWYgcHJldmVudEV4dGVuc2lvbnMgaGFzIGJlZW4gY2FsbGVk
IG9uIGFuIGFycmF5LCBzdWJzZXF1ZW50IGFzc2lnbm1lbnQgYmV5b25kIGFycmF5IGJvdW5kcyBz
aG91bGQgZmFpbC4KKyAgICAgICAgICAgICogJ2lzRnJvemVuJyBzaG91bGRuJ3QgYmUgY2hlY2tp
bmcgdGhlIFJlYWRPbmx5IGJpdCBmb3IgYWNjZXNzb3IgZGVzY3JpcHRvcnMgKHdlIHByZXNlbnRs
eSBhbHdheXMga2VlcCB0aGlzIGJpdCBhcyAnZmFsc2UnKS4KKyAgICAgICAgICAgICogU2hvdWxk
IGJlIGFibGUgdG8gcmVkZWZpbmUgYW4gbm9uLXdyaXRhYmxlLCBub24tY29uZmlndXJhYmxlIHBy
b3BlcnR5LCB3aXRoIHRoZSBzYW1lIHZhbHVlIGFuZCBhdHRyaWJ1dGVzLgorICAgICAgICAgICAg
KiBTaG91bGQgYmUgYWJsZSB0byBkZWZpbmUgYW4gbm9uLWNvbmZpZ3VyYWJsZSBhY2Nlc3Nvci4K
KyAgICAgICAgVGhlc2UgYXJlIG1vc3RseSBhbGwgb25lLWxpbmUgY2hhbmdlcywgZS5nLiBpbnZl
cnRlZCBib29sZWFuIGNoZWNrcywgbWFza2luZyBhZ2FpbnN0IHdyb25nIGF0dHJpYnV0ZS4KKwor
ICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheS5jcHA6CisgICAgICAgIChKU0M6OlNwYXJzZUFycmF5
VmFsdWVNYXA6OnB1dCk6CisgICAgICAgICAgICAtIEFkZGVkIEFTU0VSVC4KKyAgICAgICAgICAg
IC0gQ2FsbGluZyBhbiB1bmRlZmluZWQgc2V0dGVyIHNob3VsZCBvbmx5IHRocm93IGluIHN0cmlj
dCBtb2RlLgorICAgICAgICAoSlNDOjpKU0FycmF5OjpwdXREZXNjcmlwdG9yKToKKyAgICAgICAg
ICAgIC0gU2hvdWxkIGJlIGFibGUgdG8gZGVmaW5lIGFuIG5vbi1jb25maWd1cmFibGUgYWNjZXNz
b3IuCisgICAgICAgIChKU0M6OkpTQXJyYXk6OmRlZmluZU93bk51bWVyaWNQcm9wZXJ0eSk6Cisg
ICAgICAgICAgICAtIEFueSBhdHRlbXB0IHRvIHJlZGVmaW5lIGEgbm9uLWNvbmZpZ3VyYWJsZSBw
cm9wZXJ0eSBvZiBhbiBhcnJheSBhcyBjb25maWd1cmFibGUgc2hvdWxkIGJlIHJlamVjdGVkLgor
ICAgICAgICAoSlNDOjpKU0FycmF5OjpwdXRCeUluZGV4QmV5b25kVmVjdG9yTGVuZ3RoKToKKyAg
ICAgICAgICAgIC0gSWYgcHJldmVudEV4dGVuc2lvbnMgaGFzIGJlZW4gY2FsbGVkIG9uIGFuIGFy
cmF5LCBzdWJzZXF1ZW50IGFzc2lnbm1lbnQgYmV5b25kIGFycmF5IGJvdW5kcyBzaG91bGQgZmFp
bC4KKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuaDoKKyAgICAgICAgKEpTQXJyYXkpOgorICAg
ICAgICAgICAgLSBtYWRlIGVudGVyRGljdGlvbmFyeU1vZGUgcHVibGljLCBjYWxsZWQgZnJvbSBK
U09iamVjdC4KKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6
SlNPYmplY3Q6OnB1dCk6CisgICAgICAgICAgICAtIENhbGxpbmcgYW4gdW5kZWZpbmVkIHNldHRl
ciBzaG91bGQgb25seSB0aHJvdyBpbiBzdHJpY3QgbW9kZS4KKyAgICAgICAgKEpTQzo6SlNPYmpl
Y3Q6OnByZXZlbnRFeHRlbnNpb25zKToKKyAgICAgICAgICAgIC0gUHV0IGFycmF5IG9iamVjdHMg
aW50byBkaWN0aW9uYXJ5IG1vZGUgdG8gaGFuZGxlIHRoaXMhCisgICAgICAgIChKU0M6OkpTT2Jq
ZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgICAgICAtIFNob3VsZCBiZSBhYmxlIHRv
IHJlZGVmaW5lIGFuIG5vbi13cml0YWJsZSwgbm9uLWNvbmZpZ3VyYWJsZSBwcm9wZXJ0eSwgd2l0
aCB0aGUgc2FtZSB2YWx1ZSBhbmQgYXR0cmlidXRlcy4KKyAgICAgICAgICAgIC0gUmVkZWZpbmlu
ZyBhbiBhY2Nlc3NvciB3aXRoIGRpZmZlcmVudCBhdHRyaWJ1dGVzIGNoYW5nZXMgdGhlIGF0dHJp
YnV0ZXMsIGJ1dCBub3QgdGhlIGdldC9zZXQgZnVuY3Rpb25zIQorICAgICAgICAqIHJ1bnRpbWUv
T2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpvYmplY3RDb25zdHJ1Y3RvckRl
ZmluZVByb3BlcnRpZXMpOgorICAgICAgICAgICAgLSBPYmplY3QuZGVmaW5lUHJvcGVydGllcyBz
aG91bGQgY2FsbCB0b09iamVjdCBvbiAnUHJvcGVydGllcycgYXJndW1lbnQsIHJhdGhlciB0aGFu
IHRocm93aW5nIGlmIGl0IGlzIG5vdCBhbiBvYmplY3QuCisgICAgICAgICogcnVudGltZS9Qcm9w
ZXJ0eURlc2NyaXB0b3IuY3BwOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3I6OmF0
dHJpYnV0ZXNXaXRoT3ZlcnJpZGUpOgorICAgICAgICAgICAgLSBXaGVuIHJlZGVmaW5pbmcgYW4g
YWNjZXNzb3IgdG8gYSBkYXRhIGRlY3JpcHRvciwgaWYgd3JpdGFibGUgaXMgbm90IHNwZWNpZmll
ZCB3ZSBzaG91bGQgZGVmYXVsdCB0byBmYWxzZS4KKyAgICAgICAgKEpTQzo6UHJvcGVydHlEZXNj
cmlwdG9yOjphdHRyaWJ1dGVzT3ZlcnJpZGluZ0N1cnJlbnQpOgorICAgICAgICAgICAgLSBXaGVu
IHJlZGVmaW5pbmcgYW4gYWNjZXNzb3IgdG8gYSBkYXRhIGRlY3JpcHRvciwgaWYgd3JpdGFibGUg
aXMgbm90IHNwZWNpZmllZCB3ZSBzaG91bGQgZGVmYXVsdCB0byBmYWxzZS4KKyAgICAgICAgKiBy
dW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6ZnJlZXplVHJh
bnNpdGlvbik6CisgICAgICAgICAgICAtICdmcmVlemVUcmFuc2l0aW9uJyBzaG91bGRuJ3QgYmUg
c2V0dGluZyB0aGUgUmVhZE9ubHkgYml0IGZvciBhY2Nlc3NvciBkZXNjcmlwdG9ycyAod2UgcHJl
c2VudGx5IGFsd2F5cyBrZWVwIHRoaXMgYml0IGFzICdmYWxzZScpLgorICAgICAgICAoSlNDOjpT
dHJ1Y3R1cmU6OmlzRnJvemVuKToKKyAgICAgICAgICAgIC0gJ2lzRnJvemVuJyBzaG91bGRuJ3Qg
YmUgY2hlY2tpbmcgdGhlIFJlYWRPbmx5IGJpdCBmb3IgYWNjZXNzb3IgZGVzY3JpcHRvcnMgKHdl
IHByZXNlbnRseSBhbHdheXMga2VlcCB0aGlzIGJpdCBhcyAnZmFsc2UnKS4KKwogMjAxMi0wMi0x
NSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEVuc3VyZSB0aGF0
IHRoZSBERkcgSklUIGFsd2F5cyBwbGFudHMgYSBDb2RlT3JpZ2luIHdoZW4gbWFraW5nIGNhbGxz
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAkocmV2aXNp
b24gMTA3ODQwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIyMyw2ICsyMjMsOSBAQCBpbmxpbmUgc3RkOjpwYWlyPFNwYXJz
ZUFycmF5VmFsdWVNYXA6Oml0CiAKIGlubGluZSB2b2lkIFNwYXJzZUFycmF5VmFsdWVNYXA6OnB1
dChFeGVjU3RhdGUqIGV4ZWMsIEpTQXJyYXkqIGFycmF5LCB1bnNpZ25lZCBpLCBKU1ZhbHVlIHZh
bHVlKQogeworICAgIC8vIElmIHRoZSBhcnJheSBpcyBub3QgZXh0ZW5zaWJsZSwgd2Ugc2hvdWxk
bid0IGdldCBoZXJlIQorICAgIEFTU0VSVChhcnJheS0+aXNFeHRlbnNpYmxlKCkpOworCiAgICAg
U3BhcnNlQXJyYXlFbnRyeSYgZW50cnkgPSBhZGQoYXJyYXksIGkpLmZpcnN0LT5zZWNvbmQ7CiAK
ICAgICBpZiAoIShlbnRyeS5hdHRyaWJ1dGVzICYgQWNjZXNzb3IpKSB7CkBAIC0yNDEsNyArMjQ0
LDggQEAgaW5saW5lIHZvaWQgU3BhcnNlQXJyYXlWYWx1ZU1hcDo6cHV0KEV4ZQogICAgIEpTT2Jq
ZWN0KiBzZXR0ZXIgPSBhc0dldHRlclNldHRlcihhY2Nlc3NvciktPnNldHRlcigpOwogICAgIAog
ICAgIGlmICghc2V0dGVyKSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9yKGV4ZWMsICJzZXR0aW5n
IGEgcHJvcGVydHkgdGhhdCBoYXMgb25seSBhIGdldHRlciIpOworICAgICAgICAvLyBGSVhNRTog
c2hvdWxkIHRocm93IGlmIGJlaW5nIGNhbGxlZCBmcm9tIHN0cmljdCBtb2RlLgorICAgICAgICAv
LyB0aHJvd1R5cGVFcnJvcihleGVjLCAic2V0dGluZyBhIHByb3BlcnR5IHRoYXQgaGFzIG9ubHkg
YSBnZXR0ZXIiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzg0LDcgKzM4OCw3IEBA
IHZvaWQgSlNBcnJheTo6cHV0RGVzY3JpcHRvcihFeGVjU3RhdGUqIGUKICAgICAgICAgICAgIGFj
Y2Vzc29yLT5zZXRTZXR0ZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzZXR0ZXIpOwogCiAgICAgICAg
IGVudHJ5SW5NYXAtPnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIGFjY2Vzc29yKTsKLSAg
ICAgICAgZW50cnlJbk1hcC0+YXR0cmlidXRlcyA9IGRlc2NyaXB0b3IuYXR0cmlidXRlc092ZXJy
aWRpbmdDdXJyZW50KG9sZERlc2NyaXB0b3IpICYgfkRvbnREZWxldGU7CisgICAgICAgIGVudHJ5
SW5NYXAtPmF0dHJpYnV0ZXMgPSBkZXNjcmlwdG9yLmF0dHJpYnV0ZXNPdmVycmlkaW5nQ3VycmVu
dChvbGREZXNjcmlwdG9yKSAmIH5SZWFkT25seTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtNDY1LDcgKzQ2OSw3IEBAIGJvb2wgSlNBcnJheTo6ZGVmaW5lT3duTnVtZXJpY1Byb3BlcnR5
KEUKICAgICAvLyA3LiBJZiB0aGUgW1tDb25maWd1cmFibGVdXSBmaWVsZCBvZiBjdXJyZW50IGlz
IGZhbHNlIHRoZW4KICAgICBpZiAoIWN1cnJlbnQuY29uZmlndXJhYmxlKCkpIHsKICAgICAgICAg
Ly8gNy5hLiBSZWplY3QsIGlmIHRoZSBbW0NvbmZpZ3VyYWJsZV1dIGZpZWxkIG9mIERlc2MgaXMg
dHJ1ZS4KLSAgICAgICAgaWYgKGRlc2NyaXB0b3IuY29uZmlndXJhYmxlUHJlc2VudCgpICYmICFk
ZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSgpKQorICAgICAgICBpZiAoZGVzY3JpcHRvci5jb25maWd1
cmFibGVQcmVzZW50KCkgJiYgZGVzY3JpcHRvci5jb25maWd1cmFibGUoKSkKICAgICAgICAgICAg
IHJldHVybiByZWplY3QoZXhlYywgdGhyb3dFeGNlcHRpb24sICJBdHRlbXB0aW5nIHRvIGNoYW5n
ZSBjb25maWd1cmFibGUgYXR0cmlidXRlIG9mIHVuY29uZmlndXJhYmxlIHByb3BlcnR5LiIpOwog
ICAgICAgICAvLyA3LmIuIFJlamVjdCwgaWYgdGhlIFtbRW51bWVyYWJsZV1dIGZpZWxkIG9mIERl
c2MgaXMgcHJlc2VudCBhbmQgdGhlIFtbRW51bWVyYWJsZV1dIGZpZWxkcyBvZiBjdXJyZW50IGFu
ZCBEZXNjIGFyZSB0aGUgQm9vbGVhbiBuZWdhdGlvbiBvZiBlYWNoIG90aGVyLgogICAgICAgICBp
ZiAoZGVzY3JpcHRvci5lbnVtZXJhYmxlUHJlc2VudCgpICYmIGN1cnJlbnQuZW51bWVyYWJsZSgp
ICE9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSgpKQpAQCAtNzg1LDYgKzc4OSw5IEBAIE5FVkVSX0lO
TElORSB2b2lkIEpTQXJyYXk6OnB1dEJ5SW5kZXhCZXkKIAogICAgIC8vIEZpcnN0LCBoYW5kbGUg
Y2FzZXMgd2hlcmUgd2UgZG9uJ3QgY3VycmVudGx5IGhhdmUgYSBzcGFyc2UgbWFwLgogICAgIGlm
IChMSUtFTFkoIW1hcCkpIHsKKyAgICAgICAgLy8gSWYgdGhlIGFycmF5IGlzIG5vdCBleHRlbnNp
YmxlLCB3ZSBzaG91bGQgaGF2ZSBlbnRlcmVkIGRpY3Rpb25hcnkgbW9kZSwgYW5kIGNyZWF0ZWQg
dGhlIHNwYXJlIG1hcC4KKyAgICAgICAgQVNTRVJUKGlzRXh0ZW5zaWJsZSgpKTsKKyAgICAKICAg
ICAgICAgLy8gVXBkYXRlIG1fbGVuZ3RoIGlmIG5lY2Vzc2FyeS4KICAgICAgICAgaWYgKGkgPj0g
c3RvcmFnZS0+bV9sZW5ndGgpCiAgICAgICAgICAgICBzdG9yYWdlLT5tX2xlbmd0aCA9IGkgKyAx
OwpAQCAtODA4LDcgKzgxNSw3IEBAIE5FVkVSX0lOTElORSB2b2lkIEpTQXJyYXk6OnB1dEJ5SW5k
ZXhCZXkKICAgICB1bnNpZ25lZCBsZW5ndGggPSBzdG9yYWdlLT5tX2xlbmd0aDsKICAgICBpZiAo
aSA+PSBsZW5ndGgpIHsKICAgICAgICAgLy8gUHJvaGliaXQgZ3Jvd2luZyB0aGUgYXJyYXkgaWYg
bGVuZ3RoIGlzIG5vdCB3cml0YWJsZS4KLSAgICAgICAgaWYgKG1hcC0+bGVuZ3RoSXNSZWFkT25s
eSgpKSB7CisgICAgICAgIGlmIChtYXAtPmxlbmd0aElzUmVhZE9ubHkoKSB8fCAhaXNFeHRlbnNp
YmxlKCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdGhyb3cgaW4gc3RyaWN0IG1v
ZGUuCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5LmgJKHJldmlzaW9uIDEwNzg0MCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAkod29ya2luZyBjb3B5KQpAQCAtMjQ0LDYgKzI0
NCw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRp
YyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAorICAgICAgICB2
b2lkIGVudGVyRGljdGlvbmFyeU1vZGUoSlNHbG9iYWxEYXRhJik7CisKICAgICBwcm90ZWN0ZWQ6
CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRl
c0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNH
ZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogICAgICAgICBzdGF0
aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKQEAgLTI2NSw3ICsyNjcsNiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBzZXRMZW5ndGhXcml0YWJsZShFeGVjU3RhdGUq
LCBib29sIHdyaXRhYmxlKTsKICAgICAgICAgdm9pZCBwdXREZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IFNwYXJzZUFycmF5RW50cnkqLCBQcm9wZXJ0eURlc2NyaXB0b3ImLCBQcm9wZXJ0eURlc2NyaXB0
b3ImIG9sZCk7CiAgICAgICAgIGJvb2wgZGVmaW5lT3duTnVtZXJpY1Byb3BlcnR5KEV4ZWNTdGF0
ZSosIHVuc2lnbmVkLCBQcm9wZXJ0eURlc2NyaXB0b3ImLCBib29sIHRocm93RXhjZXB0aW9uKTsK
LSAgICAgICAgdm9pZCBlbnRlckRpY3Rpb25hcnlNb2RlKEpTR2xvYmFsRGF0YSYpOwogICAgICAg
ICB2b2lkIGFsbG9jYXRlU3BhcnNlTWFwKEpTR2xvYmFsRGF0YSYpOwogICAgICAgICB2b2lkIGRl
YWxsb2NhdGVTcGFyc2VNYXAoKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmNwcAkocmV2aXNpb24gMTA3ODQwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzIsNyArMTcyLDgg
QEAgdm9pZCBKU09iamVjdDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YQogICAgICAgICAgICAg
aWYgKGdzLmlzR2V0dGVyU2V0dGVyKCkpIHsKICAgICAgICAgICAgICAgICBKU09iamVjdCogc2V0
dGVyRnVuYyA9IGFzR2V0dGVyU2V0dGVyKGdzKS0+c2V0dGVyKCk7ICAgICAgICAKICAgICAgICAg
ICAgICAgICBpZiAoIXNldHRlckZ1bmMpIHsKLSAgICAgICAgICAgICAgICAgICAgdGhyb3dTZXR0
ZXJFcnJvcihleGVjKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNsb3QuaXNTdHJpY3RNb2Rl
KCkpCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1NldHRlckVycm9yKGV4ZWMpOwogICAg
ICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgIApAQCAtNDY1LDYgKzQ2Niw4IEBAIHZvaWQgSlNPYmplY3Q6OmZyZWV6ZShKU0dsb2JhbERh
dGEmIGdsb2IKIAogdm9pZCBKU09iamVjdDo6cHJldmVudEV4dGVuc2lvbnMoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhKQogeworICAgIGlmIChpc0pTQXJyYXkodGhpcykpCisgICAgICAgIGFzQXJy
YXkodGhpcyktPmVudGVyRGljdGlvbmFyeU1vZGUoZ2xvYmFsRGF0YSk7CiAgICAgaWYgKGlzRXh0
ZW5zaWJsZSgpKQogICAgICAgICBzZXRTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgU3RydWN0dXJlOjpw
cmV2ZW50RXh0ZW5zaW9uc1RyYW5zaXRpb24oZ2xvYmFsRGF0YSwgc3RydWN0dXJlKCkpKTsKIH0K
QEAgLTY5NywyMSArNzAwLDE1IEBAIGJvb2wgSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KEpT
T2JqZWMKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBpZiAoIWN1cnJlbnQud3JpdGFibGUoKSkgewotICAgICAgICAgICAgICAgIGlmIChk
ZXNjcmlwdG9yLnZhbHVlKCkgfHwgIXNhbWVWYWx1ZShleGVjLCBjdXJyZW50LnZhbHVlKCksIGRl
c2NyaXB0b3IudmFsdWUoKSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZGVzY3JpcHRvci52YWx1
ZSgpICYmICFzYW1lVmFsdWUoZXhlYywgY3VycmVudC52YWx1ZSgpLCBkZXNjcmlwdG9yLnZhbHVl
KCkpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICh0aHJvd0V4Y2VwdGlvbikKICAgICAgICAg
ICAgICAgICAgICAgICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJB
dHRlbXB0aW5nIHRvIGNoYW5nZSB2YWx1ZSBvZiBhIHJlYWRvbmx5IHByb3BlcnR5LiIpKTsKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50LmF0dHJpYnV0ZXNFcXVhbChkZXNj
cmlwdG9yKSkgewotICAgICAgICAgICAgaWYgKCFkZXNjcmlwdG9yLnZhbHVlKCkpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsK
LSAgICAgICAgICAgIG9iamVjdC0+bWV0aG9kVGFibGUoKS0+cHV0KG9iamVjdCwgZXhlYywgcHJv
cGVydHlOYW1lLCBkZXNjcmlwdG9yLnZhbHVlKCksIHNsb3QpOwotICAgICAgICAgICAgaWYgKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CisgICAgICAgIGlmIChjdXJyZW50LmF0dHJp
YnV0ZXNFcXVhbChkZXNjcmlwdG9yKSAmJiAhZGVzY3JpcHRvci52YWx1ZSgpKQorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgIG9iamVjdC0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJv
cGVydHkob2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICByZXR1cm4gcHV0RGVz
Y3JpcHRvcihleGVjLCBvYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgY3VycmVudC5h
dHRyaWJ1dGVzV2l0aE92ZXJyaWRlKGRlc2NyaXB0b3IpLCBjdXJyZW50KTsKICAgICB9CkBAIC03
MzQsMTUgKzczMSwxNCBAQCBib29sIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVj
CiAgICAgaWYgKCFhY2Nlc3NvcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIEdldHRlclNl
dHRlciogZ2V0dGVyU2V0dGVyID0gYXNHZXR0ZXJTZXR0ZXIoYWNjZXNzb3IpOwotICAgIGlmIChj
dXJyZW50LmF0dHJpYnV0ZXNFcXVhbChkZXNjcmlwdG9yKSkgewotICAgICAgICBpZiAoZGVzY3Jp
cHRvci5zZXR0ZXJQcmVzZW50KCkpCi0gICAgICAgICAgICBnZXR0ZXJTZXR0ZXItPnNldFNldHRl
cihleGVjLT5nbG9iYWxEYXRhKCksIGRlc2NyaXB0b3Iuc2V0dGVyT2JqZWN0KCkpOwotICAgICAg
ICBpZiAoZGVzY3JpcHRvci5nZXR0ZXJQcmVzZW50KCkpCi0gICAgICAgICAgICBnZXR0ZXJTZXR0
ZXItPnNldEdldHRlcihleGVjLT5nbG9iYWxEYXRhKCksIGRlc2NyaXB0b3IuZ2V0dGVyT2JqZWN0
KCkpOworICAgIGlmIChkZXNjcmlwdG9yLnNldHRlclByZXNlbnQoKSkKKyAgICAgICAgZ2V0dGVy
U2V0dGVyLT5zZXRTZXR0ZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBkZXNjcmlwdG9yLnNldHRlck9i
amVjdCgpKTsKKyAgICBpZiAoZGVzY3JpcHRvci5nZXR0ZXJQcmVzZW50KCkpCisgICAgICAgIGdl
dHRlclNldHRlci0+c2V0R2V0dGVyKGV4ZWMtPmdsb2JhbERhdGEoKSwgZGVzY3JpcHRvci5nZXR0
ZXJPYmplY3QoKSk7CisgICAgaWYgKGN1cnJlbnQuYXR0cmlidXRlc0VxdWFsKGRlc2NyaXB0b3Ip
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9CiAgICAgb2JqZWN0LT5tZXRob2RUYWJsZSgp
LT5kZWxldGVQcm9wZXJ0eShvYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSk7Ci0gICAgdW5zaWdu
ZWQgYXR0cnMgPSBjdXJyZW50LmF0dHJpYnV0ZXNXaXRoT3ZlcnJpZGUoZGVzY3JpcHRvcik7Cisg
ICAgdW5zaWduZWQgYXR0cnMgPSBkZXNjcmlwdG9yLmF0dHJpYnV0ZXNPdmVycmlkaW5nQ3VycmVu
dChjdXJyZW50KTsKICAgICBvYmplY3QtPnB1dERpcmVjdEFjY2Vzc29yKGV4ZWMtPmdsb2JhbERh
dGEoKSwgcHJvcGVydHlOYW1lLCBnZXR0ZXJTZXR0ZXIsIGF0dHJzIHwgQWNjZXNzb3IpOwogICAg
IHJldHVybiB0cnVlOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTA3ODQwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNDIsOSArMzQyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmpl
Y3RDb25zdAogewogICAgIGlmICghZXhlYy0+YXJndW1lbnQoMCkuaXNPYmplY3QoKSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIlByb3Bl
cnRpZXMgY2FuIG9ubHkgYmUgZGVmaW5lZCBvbiBPYmplY3RzLiIpKTsKLSAgICBpZiAoIWV4ZWMt
PmFyZ3VtZW50KDEpLmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhl
YywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJQcm9wZXJ0eSBkZXNjcmlwdG9yIGxpc3QgbXVzdCBi
ZSBhbiBPYmplY3QuIikpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZGVmaW5lUHJvcGVy
dGllcyhleGVjLCBhc09iamVjdChleGVjLT5hcmd1bWVudCgwKSksIGFzT2JqZWN0KGV4ZWMtPmFy
Z3VtZW50KDEpKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZGVmaW5lUHJvcGVydGll
cyhleGVjLCBhc09iamVjdChleGVjLT5hcmd1bWVudCgwKSksIGV4ZWMtPmFyZ3VtZW50KDEpLnRv
T2JqZWN0KGV4ZWMpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0
Q29uc3RydWN0b3JDcmVhdGUoRXhlY1N0YXRlKiBleGVjKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJvcGVydHlEZXNjcmlwdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuY3BwCShyZXZpc2lv
biAxMDc4NDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eURlc2Ny
aXB0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTcsMTIgKzIxNywxNiBAQCB1bnNpZ25lZCBQ
cm9wZXJ0eURlc2NyaXB0b3I6OmF0dHJpYnV0ZXNXCiAgICAgICAgIG5ld0F0dHJpYnV0ZXMgXj0g
RG9udERlbGV0ZTsKICAgICBpZiAoc2hhcmVkU2VlbiAmIEVudW1lcmFibGVQcmVzZW50ICYmIG1p
c21hdGNoICYgRG9udEVudW0pCiAgICAgICAgIG5ld0F0dHJpYnV0ZXMgXj0gRG9udEVudW07Cisg
ICAgaWYgKGlzQWNjZXNzb3JEZXNjcmlwdG9yKCkgJiYgb3RoZXIuaXNEYXRhRGVzY3JpcHRvcigp
KQorICAgICAgICBuZXdBdHRyaWJ1dGVzIHw9IFJlYWRPbmx5OwogICAgIHJldHVybiBuZXdBdHRy
aWJ1dGVzOwogfQogCiB1bnNpZ25lZCBQcm9wZXJ0eURlc2NyaXB0b3I6OmF0dHJpYnV0ZXNPdmVy
cmlkaW5nQ3VycmVudChjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIGN1cnJlbnQpIGNvbnN0CiB7
CiAgICAgdW5zaWduZWQgY3VycmVudEF0dHJpYnV0ZXMgPSBjdXJyZW50Lm1fYXR0cmlidXRlczsK
KyAgICBpZiAoaXNEYXRhRGVzY3JpcHRvcigpICYmIGN1cnJlbnQuaXNBY2Nlc3NvckRlc2NyaXB0
b3IoKSkKKyAgICAgICAgY3VycmVudEF0dHJpYnV0ZXMgfD0gUmVhZE9ubHk7CiAgICAgdW5zaWdu
ZWQgb3ZlcnJpZGVNYXNrID0gMDsKICAgICBpZiAod3JpdGFibGVQcmVzZW50KCkpCiAgICAgICAg
IG92ZXJyaWRlTWFzayB8PSBSZWFkT25seTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlLmNwcAkocmV2aXNpb24gMTA3ODQwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDY5LDcg
KzQ2OSw3IEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjpmcmVlemVUcmFuc2l0aW9uKEoKICAgICBp
ZiAodHJhbnNpdGlvbi0+bV9wcm9wZXJ0eVRhYmxlKSB7CiAgICAgICAgIFByb3BlcnR5VGFibGU6
Oml0ZXJhdG9yIGVuZCA9IHRyYW5zaXRpb24tPm1fcHJvcGVydHlUYWJsZS0+ZW5kKCk7CiAgICAg
ICAgIGZvciAoUHJvcGVydHlUYWJsZTo6aXRlcmF0b3IgaXRlciA9IHRyYW5zaXRpb24tPm1fcHJv
cGVydHlUYWJsZS0+YmVnaW4oKTsgaXRlciAhPSBlbmQ7ICsraXRlcikKLSAgICAgICAgICAgIGl0
ZXItPmF0dHJpYnV0ZXMgfD0gKERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgICAgICAgICBp
dGVyLT5hdHRyaWJ1dGVzIHw9IGl0ZXItPmF0dHJpYnV0ZXMgJiBBY2Nlc3NvciA/IERvbnREZWxl
dGUgOiAoRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKICAgICB9CiAKICAgICByZXR1cm4gdHJhbnNp
dGlvbjsKQEAgLTUyMCw3ICs1MjAsOSBAQCBib29sIFN0cnVjdHVyZTo6aXNGcm96ZW4oSlNHbG9i
YWxEYXRhJiBnCiAKICAgICBQcm9wZXJ0eVRhYmxlOjppdGVyYXRvciBlbmQgPSBtX3Byb3BlcnR5
VGFibGUtPmVuZCgpOwogICAgIGZvciAoUHJvcGVydHlUYWJsZTo6aXRlcmF0b3IgaXRlciA9IG1f
cHJvcGVydHlUYWJsZS0+YmVnaW4oKTsgaXRlciAhPSBlbmQ7ICsraXRlcikgewotICAgICAgICBp
ZiAoKGl0ZXItPmF0dHJpYnV0ZXMgJiAoRG9udERlbGV0ZSB8IFJlYWRPbmx5KSkgIT0gKERvbnRE
ZWxldGUgfCBSZWFkT25seSkpCisgICAgICAgIGlmICghKGl0ZXItPmF0dHJpYnV0ZXMgJiBEb250
RGVsZXRlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCEoaXRlci0+
YXR0cmlidXRlcyAmIChSZWFkT25seSB8IEFjY2Vzc29yKSkpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTA3ODgw
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMTItMDItMTUgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29t
PgorCisgICAgICAgIE51bWVyb3VzIHRyaXZpYWwgYnVncyBpbiBPYmplY3QuZGVmaW5lUHJvcGVy
dHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4Nzc3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlcmUg
YXJlIGEgaGFuZGZ1bCBvZiByZWFsbHkgdHJpdmlhbCBidWdzLCByZWxhdGVkIHRvIE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eToKKyAgICAgICAgICAgICogUmVkZWZpbmluZyBhbiBhY2Nlc3NvciB3aXRo
IGRpZmZlcmVudCBhdHRyaWJ1dGVzIGNoYW5nZXMgdGhlIGF0dHJpYnV0ZXMsIGJ1dCBub3QgdGhl
IGdldC9zZXQgZnVuY3Rpb25zIQorICAgICAgICAgICAgKiBDYWxsaW5nIGFuIHVuZGVmaW5lZCBz
ZXR0ZXIgc2hvdWxkIG9ubHkgdGhyb3cgaW4gc3RyaWN0IG1vZGUuCisgICAgICAgICAgICAqIFdo
ZW4gcmVkZWZpbmluZyBhbiBhY2Nlc3NvciB0byBhIGRhdGEgZGVjcmlwdG9yLCBpZiB3cml0YWJs
ZSBpcyBub3Qgc3BlY2lmaWVkIHdlIHNob3VsZCBkZWZhdWx0IHRvIGZhbHNlLgorICAgICAgICAg
ICAgKiBBbnkgYXR0ZW1wdCB0byByZWRlZmluZSBhIG5vbi1jb25maWd1cmFibGUgcHJvcGVydHkg
b2YgYW4gYXJyYXkgYXMgY29uZmlndXJhYmxlIHNob3VsZCBiZSByZWplY3RlZC4KKyAgICAgICAg
ICAgICogT2JqZWN0LmRlZmluZVByb3BlcnRpZXMgc2hvdWxkIGNhbGwgdG9PYmplY3Qgb24gJ1By
b3BlcnRpZXMnIGFyZ3VtZW50LCByYXRoZXIgdGhhbiB0aHJvd2luZyBpZiBpdCBpcyBub3QgYW4g
b2JqZWN0LgorICAgICAgICAgICAgKiBJZiBwcmV2ZW50RXh0ZW5zaW9ucyBoYXMgYmVlbiBjYWxs
ZWQgb24gYW4gYXJyYXksIHN1YnNlcXVlbnQgYXNzaWdubWVudCBiZXlvbmQgYXJyYXkgYm91bmRz
IHNob3VsZCBmYWlsLgorICAgICAgICAgICAgKiAnaXNGcm96ZW4nIHNob3VsZG4ndCBiZSBjaGVj
a2luZyB0aGUgUmVhZE9ubHkgYml0IGZvciBhY2Nlc3NvciBkZXNjcmlwdG9ycyAod2UgcHJlc2Vu
dGx5IGFsd2F5cyBrZWVwIHRoaXMgYml0IGFzICdmYWxzZScpLgorICAgICAgICAgICAgKiBTaG91
bGQgYmUgYWJsZSB0byByZWRlZmluZSBhbiBub24td3JpdGFibGUsIG5vbi1jb25maWd1cmFibGUg
cHJvcGVydHksIHdpdGggdGhlIHNhbWUgdmFsdWUgYW5kIGF0dHJpYnV0ZXMuCisgICAgICAgICAg
ICAqIFNob3VsZCBiZSBhYmxlIHRvIGRlZmluZSBhbiBub24tY29uZmlndXJhYmxlIGFjY2Vzc29y
LgorICAgICAgICBUaGVzZSBhcmUgbW9zdGx5IGFsbCBvbmUtbGluZSBjaGFuZ2VzLCBlLmcuIGlu
dmVydGVkIGJvb2xlYW4gY2hlY2tzLCBtYXNraW5nIGFnYWluc3Qgd3JvbmcgYXR0cmlidXRlLgor
CisgICAgICAgICogZmFzdC9qcy9PYmplY3QtZGVmaW5lUHJvcGVydGllcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9qcy9PYmplY3QtZGVmaW5lUHJvcGVydHktZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvanMvcHJldmVudEV4dGVuc2lvbnMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvanMvcHJvcGVydHktZ2V0dGVycy1hbmQtc2V0dGVycy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9qcy9zY3JpcHQtdGVzdHMvT2JqZWN0LWRlZmluZVByb3BlcnR5LmpzOgor
ICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL3ByZXZlbnRFeHRlbnNpb25zLmpzOgorICAg
ICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL3Byb3BlcnR5LWdldHRlcnMtYW5kLXNldHRlcnMu
anM6CisgICAgICAgICAgICAtIFVwZGF0ZSByZXN1bHQgJiBhZGQgbmV3IHRlc3QgY2FzZXMgZm9y
IGFsbCBidWdzIGZpeGVkLgorCiAyMDEyLTAyLTE1ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBA
YXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoIGFmdGVyIHRyeWluZyB0byB1c2UgRmlsZVJlYWRl
ciBpbiBhIGRvY3VtZW50IHdpdGggbnVsbCBvcmlnaW4gc3RyaW5nCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2pzL09iamVjdC1kZWZpbmVQcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL09iamVjdC1kZWZpbmVQcm9wZXJ0aWVzLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMTA3ODQwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9PYmplY3QtZGVm
aW5lUHJvcGVydGllcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTUsNyArNSw3IEBA
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEEKIAogUEFTUyBPYmplY3Qu
ZGVmaW5lUHJvcGVydGllcygpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFByb3BlcnRpZXMg
Y2FuIG9ubHkgYmUgZGVmaW5lZCBvbiBPYmplY3RzLi4KIFBBU1MgT2JqZWN0LmRlZmluZVByb3Bl
cnRpZXMoJ2Egc3RyaW5nJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUHJvcGVydGllcyBj
YW4gb25seSBiZSBkZWZpbmVkIG9uIE9iamVjdHMuLgotUEFTUyBPYmplY3QuZGVmaW5lUHJvcGVy
dGllcyh7fSwgJ2Egc3RyaW5nJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUHJvcGVydHkg
ZGVzY3JpcHRvciBsaXN0IG11c3QgYmUgYW4gT2JqZWN0Li4KK1BBU1MgT2JqZWN0LmRlZmluZVBy
b3BlcnRpZXMoe30sICdhIHN0cmluZycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFByb3Bl
cnR5IGRlc2NyaXB0aW9uIG11c3QgYmUgYW4gb2JqZWN0Li4KIFBBU1MgSlNPTi5zdHJpbmdpZnko
T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoe30se3Byb3BlcnR5Ont2YWx1ZTonZm9vJywgZW51bWVy
YWJsZTp0cnVlfSwgcHJvcGVydHkyOnt2YWx1ZTonZm9vJywgZW51bWVyYWJsZTp0cnVlfX0pKSBp
cyAneyJwcm9wZXJ0eSI6ImZvbyIsInByb3BlcnR5MiI6ImZvbyJ9JwogUEFTUyBKU09OLnN0cmlu
Z2lmeShPYmplY3QuZGVmaW5lUHJvcGVydGllcyh7fSx7cHJvcGVydHk6e3ZhbHVlOidmb28nfSwg
cHJvcGVydHkyOnt2YWx1ZTonZm9vJywgZW51bWVyYWJsZTp0cnVlfX0pKSBpcyAneyJwcm9wZXJ0
eTIiOiJmb28ifScKIFBBU1MgSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMo
e3Byb3BlcnR5Oidmb28nfSx7cHJvcGVydHk6e3ZhbHVlOidmb28nLCBlbnVtZXJhYmxlOnRydWV9
LCBwcm9wZXJ0eTI6e3ZhbHVlOidmb28nLCBlbnVtZXJhYmxlOnRydWV9fSkpIGlzICd7InByb3Bl
cnR5IjoiZm9vIiwicHJvcGVydHkyIjoiZm9vIn0nCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pz
L09iamVjdC1kZWZpbmVQcm9wZXJ0eS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9qcy9PYmplY3QtZGVmaW5lUHJvcGVydHktZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxMDc4NDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL09iamVjdC1kZWZpbmVQcm9wZXJ0eS1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDIwIEBAIFBBU1MgT2JqZWN0
LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmUKIFBBU1MgT2JqZWN0LmRlZmluZVByb3BlcnR5
KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHt2YWx1ZTogMX0pLCAnZm9vJywge3Nl
dDogc2V0dGVyMX0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEF0dGVtcHRpbmcgdG8gY2hh
bmdlIGFjY2VzcyBtZWNoYW5pc20gZm9yIGFuIHVuY29uZmlndXJhYmxlIHByb3BlcnR5Li4KIFBB
U1MgT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2Zvbycs
IHt2YWx1ZTogMSwgY29uZmlndXJhYmxlOiB0cnVlfSksICdmb28nLCB7Z2V0OiBnZXR0ZXIxfSku
Zm9vIHRocmV3IGV4Y2VwdGlvbiBjYWxsZWQgZ2V0dGVyMS4KIFBBU1MgT2JqZWN0LmRlZmluZVBy
b3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHt2YWx1ZTogMSwgY29uZmln
dXJhYmxlOiB0cnVlfSksICdmb28nLCB7c2V0OiBzZXR0ZXIxfSkuZm9vPSd0ZXN0JyB0aHJldyBl
eGNlcHRpb24gY2FsbGVkIHNldHRlcjEuCitQQVNTIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7dmFsdWU6IDEsIGNvbmZpZ3VyYWJsZTogdHJ1
ZSwgd3JpdGFibGU6IGZhbHNlfSksICdmb28nLCB7dmFsdWU6IDIsIGNvbmZpZ3VyYWJsZTogdHJ1
ZSwgd3JpdGFibGU6IHRydWV9KS5mb28gaXMgMgorUEFTUyBPYmplY3QuZGVmaW5lUHJvcGVydHko
T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge3ZhbHVlOiAxLCBjb25maWd1cmFibGU6
IHRydWUsIHdyaXRhYmxlOiBmYWxzZX0pLCAnZm9vJywge3ZhbHVlOiAyLCBjb25maWd1cmFibGU6
IHRydWUsIHdyaXRhYmxlOiBmYWxzZX0pLmZvbyBpcyAyCitQQVNTIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7dmFsdWU6IDEsIGNvbmZpZ3Vy
YWJsZTogZmFsc2UsIHdyaXRhYmxlOiBmYWxzZX0pLCAnZm9vJywge3ZhbHVlOiAxLCBjb25maWd1
cmFibGU6IGZhbHNlLCB3cml0YWJsZTogZmFsc2V9KS5mb28gaXMgMQorUEFTUyBPYmplY3QuZGVm
aW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDogZnVuY3Rp
b24oKSB7IHJldHVybiAxOyB9LCBjb25maWd1cmFibGU6IHRydWUsIGVudW1lcmFibGU6IHRydWV9
KSwgJ2ZvbycsIHtnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMjsgfSwgY29uZmlndXJhYmxlOiB0
cnVlLCBlbnVtZXJhYmxlOiBmYWxzZX0pLmZvbyBpcyAyCitQQVNTIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OiBmdW5jdGlvbigpIHsg
cmV0dXJuIDE7IH0sIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogZmFsc2V9KSwgJ2Zv
bycsIHtnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMjsgfSwgY29uZmlndXJhYmxlOiB0cnVlLCBl
bnVtZXJhYmxlOiBmYWxzZX0pLmZvbyBpcyAyCitQQVNTIHZhciByZXN1bHQgPSBmYWxzZTsgdmFy
IG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9v
Jywge2dldDogZnVuY3Rpb24oKSB7IHJldHVybiAxOyB9LCBjb25maWd1cmFibGU6IHRydWUsIGVu
dW1lcmFibGU6IHRydWV9KSwgJ2ZvbycsIHtnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMjsgfSwg
Y29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiBmYWxzZX0pOyBmb3IgKHggaW4gbykgcmVz
dWx0ID0gdHJ1ZTsgcmVzdWx0IGlzIGZhbHNlCitQQVNTIHZhciByZXN1bHQgPSBmYWxzZTsgdmFy
IG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9v
Jywge2dldDogZnVuY3Rpb24oKSB7IHJldHVybiAxOyB9LCBjb25maWd1cmFibGU6IHRydWUsIGVu
dW1lcmFibGU6IGZhbHNlfSksICdmb28nLCB7Z2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIDI7IH0s
IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZX0pOyBmb3IgKHggaW4gbykgcmVz
dWx0ID0gdHJ1ZTsgcmVzdWx0IGlzIHRydWUKK1BBU1MgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJv
cGVydHkoe30sICdmb28nLCB7Z2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIDE7IH0sIGNvbmZpZ3Vy
YWJsZTogdHJ1ZX0pOyBkZWxldGUgby5mb287IG8uZm9vIGlzIHVuZGVmaW5lZC4KK1BBU1MgdmFy
IG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OiBmdW5jdGlvbigpIHsg
cmV0dXJuIDE7IH0sIGNvbmZpZ3VyYWJsZTogZmFsc2V9KTsgZGVsZXRlIG8uZm9vOyBvLmZvbyBp
cyAxCitQQVNTIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30s
ICdmb28nLCB7Z2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIDE7IH0sIGNvbmZpZ3VyYWJsZTogdHJ1
ZX0pLCAnZm9vJywge3ZhbHVlOjJ9KS5mb28gaXMgMgorUEFTUyBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDogZnVuY3Rpb24oKSB7IHJl
dHVybiAxOyB9LCBjb25maWd1cmFibGU6IGZhbHNlfSksICdmb28nLCB7dmFsdWU6Mn0pLmZvbyB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBdHRlbXB0aW5nIHRvIGNoYW5nZSBhY2Nlc3MgbWVj
aGFuaXNtIGZvciBhbiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4uCitQQVNTIHZhciBvID0gT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6
IGZ1bmN0aW9uKCkgeyByZXR1cm4gMTsgfSwgY29uZmlndXJhYmxlOiB0cnVlfSksICdmb28nLCB7
dmFsdWU6Mn0pOyBvLmZvbyA9IDM7IG8uZm9vIGlzIDIKK1BBU1MgT2JqZWN0LmRlZmluZVByb3Bl
cnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHt2YWx1ZTogMX0pLCAnZm9vJywg
e3ZhbHVlOjIsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IEF0dGVtcHRpbmcgdG8gY29uZmlndXJhYmxlIGF0dHJpYnV0ZSBvZiB1bmNvbmZpZ3VyYWJsZSBw
cm9wZXJ0eS4uCitQQVNTIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVy
dHkoW10sICdmb28nLCB7dmFsdWU6IDF9KSwgJ2ZvbycsIHt2YWx1ZToyLCBjb25maWd1cmFibGU6
IHRydWV9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBdHRlbXB0aW5nIHRvIGNvbmZpZ3Vy
YWJsZSBhdHRyaWJ1dGUgb2YgdW5jb25maWd1cmFibGUgcHJvcGVydHkuLgogUEFTUyB2YXIgbyA9
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4g
NDI7fSwgc2V0OmZ1bmN0aW9uKHgpe3RoaXMucmVzdWx0ID0geDt9fSk7IG8uZm9vIGlzIDQyCiBQ
QVNTIHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDpmdW5jdGlv
bigpe3JldHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KTsgby5m
b28gPSA0Mjsgby5yZXN1bHQ7IGlzIDQyCiBQQVNTIHZhciBvID0gT2JqZWN0LmRlZmluZVByb3Bl
cnR5KHt9LCAnZm9vJywge2dldDp1bmRlZmluZWQsIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3Vs
dCA9IHg7fX0pOyBvLmZvbyBpcyB1bmRlZmluZWQKQEAgLTY1LDExICs3OSwxMSBAQCBQQVNTIHZh
ciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnCiBQQVNTIHZhciBvID0gT2JqZWN0LmRl
ZmluZVByb3BlcnR5KHt9LCAnZm9vJywge3NldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7
fX0pOyBvLmZvbyBpcyB1bmRlZmluZWQKIFBBU1MgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoe30sICdmb28nLCB7c2V0OmZ1bmN0aW9uKHgpe3RoaXMucmVzdWx0ID0geDt9fSk7IG8uZm9v
ID0gNDI7IG8ucmVzdWx0OyBpcyA0MgogUEFTUyB2YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0
eSh7fSwgJ2ZvbycsIHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNDI7fSwgc2V0OnVuZGVmaW5lZH0p
OyBvLmZvbyBpcyA0MgotUEFTUyB2YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2Zv
bycsIHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNDI7fSwgc2V0OnVuZGVmaW5lZH0pOyBvLmZvbyA9
IDQyOyBvLnJlc3VsdDsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogc2V0dGluZyBhIHByb3Bl
cnR5IHRoYXQgaGFzIG9ubHkgYSBnZXR0ZXIuCitQQVNTIHZhciBvID0gT2JqZWN0LmRlZmluZVBy
b3BlcnR5KHt9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0Mjt9LCBzZXQ6dW5kZWZp
bmVkfSk7IG8uZm9vID0gNDI7IG8ucmVzdWx0OyBpcyB1bmRlZmluZWQKIFBBU1MgdmFyIG8gPSBP
YmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQy
O319KTsgby5mb28gaXMgNDIKLVBBU1MgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30s
ICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO319KTsgby5mb28gPSA0Mjsgby5yZXN1
bHQ7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHNldHRpbmcgYSBwcm9wZXJ0eSB0aGF0IGhh
cyBvbmx5IGEgZ2V0dGVyLgorUEFTUyB2YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwg
J2ZvbycsIHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNDI7fX0pOyBvLmZvbyA9IDQyOyBvLnJlc3Vs
dDsgaXMgdW5kZWZpbmVkCiBQQVNTIHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAn
Zm9vJywge2dldDp1bmRlZmluZWQsIHNldDp1bmRlZmluZWR9KTsgby5mb28gaXMgdW5kZWZpbmVk
Ci1QQVNTIHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDp1bmRl
ZmluZWQsIHNldDp1bmRlZmluZWR9KTsgby5mb28gPSA0Mjsgby5yZXN1bHQ7IHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IHNldHRpbmcgYSBwcm9wZXJ0eSB0aGF0IGhhcyBvbmx5IGEgZ2V0dGVy
LgorUEFTUyB2YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6dW5k
ZWZpbmVkLCBzZXQ6dW5kZWZpbmVkfSk7IG8uZm9vID0gNDI7IG8ucmVzdWx0OyBpcyB1bmRlZmlu
ZWQKIFBBU1MgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3Bl
cnR5KHtmb286MX0sICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDpmdW5j
dGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7fX0pLCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVy
biAxMzt9fSk7IG8uZm9vIGlzIDEzCiBQQVNTIHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5
KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7Zm9vOjF9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3Jl
dHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KSwgJ2ZvbycsIHtn
ZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMTM7fX0pOyBvLmZvbyA9IDQyOyBvLnJlc3VsdDsgaXMgNDIK
IFBBU1MgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5
KHtmb286MX0sICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDpmdW5jdGlv
bih4KXt0aGlzLnJlc3VsdCA9IHg7fX0pLCAnZm9vJywge2dldDp1bmRlZmluZWR9KTsgby5mb28g
aXMgdW5kZWZpbmVkCkBAIC03Nyw3ICs5MSwyNyBAQCBQQVNTIHZhciBvID0gT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KE9iamVjCiBQQVNTIHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVj
dC5kZWZpbmVQcm9wZXJ0eSh7Zm9vOjF9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0
Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KSwgJ2ZvbycsIHtzZXQ6ZnVu
Y3Rpb24oKXt0aGlzLnJlc3VsdCA9IDEzO319KTsgby5mb28gaXMgNDIKIFBBU1MgdmFyIG8gPSBP
YmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHtmb286MX0sICdmb28n
LCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3Vs
dCA9IHg7fX0pLCAnZm9vJywge3NldDpmdW5jdGlvbigpe3RoaXMucmVzdWx0ID0gMTM7fX0pOyBv
LmZvbyA9IDQyOyBvLnJlc3VsdDsgaXMgMTMKIFBBU1MgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJv
cGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHtmb286MX0sICdmb28nLCB7Z2V0OmZ1bmN0aW9u
KCl7cmV0dXJuIDQyO30sIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7fX0pLCAnZm9v
Jywge3NldDp1bmRlZmluZWR9KTsgby5mb28gaXMgNDIKLVBBU1MgdmFyIG8gPSBPYmplY3QuZGVm
aW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHtmb286MX0sICdmb28nLCB7Z2V0OmZ1
bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7fX0p
LCAnZm9vJywge3NldDp1bmRlZmluZWR9KTsgby5mb28gPSA0Mjsgby5yZXN1bHQ7IHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IHNldHRpbmcgYSBwcm9wZXJ0eSB0aGF0IGhhcyBvbmx5IGEgZ2V0
dGVyLgorUEFTUyB2YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QuZGVmaW5lUHJv
cGVydHkoe2ZvbzoxfSwgJ2ZvbycsIHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNDI7fSwgc2V0OmZ1
bmN0aW9uKHgpe3RoaXMucmVzdWx0ID0geDt9fSksICdmb28nLCB7c2V0OnVuZGVmaW5lZH0pOyBv
LmZvbyA9IDQyOyBvLnJlc3VsdDsgaXMgdW5kZWZpbmVkCitQQVNTICd1c2Ugc3RyaWN0JzsgdmFy
IG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0
dXJuIDQyO30sIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7fX0pOyBvLmZvbyBpcyA0
MgorUEFTUyAndXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAn
Zm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5y
ZXN1bHQgPSB4O319KTsgby5mb28gPSA0Mjsgby5yZXN1bHQ7IGlzIDQyCitQQVNTICd1c2Ugc3Ry
aWN0JzsgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OnVuZGVm
aW5lZCwgc2V0OmZ1bmN0aW9uKHgpe3RoaXMucmVzdWx0ID0geDt9fSk7IG8uZm9vIGlzIHVuZGVm
aW5lZAorUEFTUyAndXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9
LCAnZm9vJywge2dldDp1bmRlZmluZWQsIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7
fX0pOyBvLmZvbyA9IDQyOyBvLnJlc3VsdDsgaXMgNDIKK1BBU1MgJ3VzZSBzdHJpY3QnOyB2YXIg
byA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtzZXQ6ZnVuY3Rpb24oeCl7dGhp
cy5yZXN1bHQgPSB4O319KTsgby5mb28gaXMgdW5kZWZpbmVkCitQQVNTICd1c2Ugc3RyaWN0Jzsg
dmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7c2V0OmZ1bmN0aW9uKHgp
e3RoaXMucmVzdWx0ID0geDt9fSk7IG8uZm9vID0gNDI7IG8ucmVzdWx0OyBpcyA0MgorUEFTUyAn
dXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dl
dDpmdW5jdGlvbigpe3JldHVybiA0Mjt9LCBzZXQ6dW5kZWZpbmVkfSk7IG8uZm9vIGlzIDQyCitQ
QVNTICd1c2Ugc3RyaWN0JzsgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28n
LCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDp1bmRlZmluZWR9KTsgby5mb28gPSA0
Mjsgby5yZXN1bHQ7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHNldHRpbmcgYSBwcm9wZXJ0
eSB0aGF0IGhhcyBvbmx5IGEgZ2V0dGVyLgorUEFTUyAndXNlIHN0cmljdCc7IHZhciBvID0gT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0Mjt9
fSk7IG8uZm9vIGlzIDQyCitQQVNTICd1c2Ugc3RyaWN0JzsgdmFyIG8gPSBPYmplY3QuZGVmaW5l
UHJvcGVydHkoe30sICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO319KTsgby5mb28g
PSA0Mjsgby5yZXN1bHQ7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHNldHRpbmcgYSBwcm9w
ZXJ0eSB0aGF0IGhhcyBvbmx5IGEgZ2V0dGVyLgorUEFTUyAndXNlIHN0cmljdCc7IHZhciBvID0g
T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDp1bmRlZmluZWQsIHNldDp1bmRl
ZmluZWR9KTsgby5mb28gaXMgdW5kZWZpbmVkCitQQVNTICd1c2Ugc3RyaWN0JzsgdmFyIG8gPSBP
YmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OnVuZGVmaW5lZCwgc2V0OnVuZGVm
aW5lZH0pOyBvLmZvbyA9IDQyOyBvLnJlc3VsdDsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
c2V0dGluZyBhIHByb3BlcnR5IHRoYXQgaGFzIG9ubHkgYSBnZXR0ZXIuCitQQVNTICd1c2Ugc3Ry
aWN0JzsgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5
KHtmb286MX0sICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDpmdW5jdGlv
bih4KXt0aGlzLnJlc3VsdCA9IHg7fX0pLCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiAx
Mzt9fSk7IG8uZm9vIGlzIDEzCitQQVNTICd1c2Ugc3RyaWN0JzsgdmFyIG8gPSBPYmplY3QuZGVm
aW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHtmb286MX0sICdmb28nLCB7Z2V0OmZ1
bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7fX0p
LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiAxMzt9fSk7IG8uZm9vID0gNDI7IG8ucmVz
dWx0OyBpcyA0MgorUEFTUyAndXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3Bl
cnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7Zm9vOjF9LCAnZm9vJywge2dldDpmdW5jdGlvbigp
e3JldHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KSwgJ2Zvbycs
IHtnZXQ6dW5kZWZpbmVkfSk7IG8uZm9vIGlzIHVuZGVmaW5lZAorUEFTUyAndXNlIHN0cmljdCc7
IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7Zm9v
OjF9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7
dGhpcy5yZXN1bHQgPSB4O319KSwgJ2ZvbycsIHtnZXQ6dW5kZWZpbmVkfSk7IG8uZm9vID0gNDI7
IG8ucmVzdWx0OyBpcyA0MgorUEFTUyAndXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7Zm9vOjF9LCAnZm9vJywge2dldDpmdW5j
dGlvbigpe3JldHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KSwg
J2ZvbycsIHtzZXQ6ZnVuY3Rpb24oKXt0aGlzLnJlc3VsdCA9IDEzO319KTsgby5mb28gaXMgNDIK
K1BBU1MgJ3VzZSBzdHJpY3QnOyB2YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoe2ZvbzoxfSwgJ2ZvbycsIHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNDI7
fSwgc2V0OmZ1bmN0aW9uKHgpe3RoaXMucmVzdWx0ID0geDt9fSksICdmb28nLCB7c2V0OmZ1bmN0
aW9uKCl7dGhpcy5yZXN1bHQgPSAxMzt9fSk7IG8uZm9vID0gNDI7IG8ucmVzdWx0OyBpcyAxMwor
UEFTUyAndXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eSh7Zm9vOjF9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0Mjt9
LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KSwgJ2ZvbycsIHtzZXQ6dW5kZWZp
bmVkfSk7IG8uZm9vIGlzIDQyCitQQVNTICd1c2Ugc3RyaWN0JzsgdmFyIG8gPSBPYmplY3QuZGVm
aW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHtmb286MX0sICdmb28nLCB7Z2V0OmZ1
bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7fX0p
LCAnZm9vJywge3NldDp1bmRlZmluZWR9KTsgby5mb28gPSA0Mjsgby5yZXN1bHQ7IHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IHNldHRpbmcgYSBwcm9wZXJ0eSB0aGF0IGhhcyBvbmx5IGEgZ2V0
dGVyLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3ByZXZlbnRFeHRlbnNpb25zLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3ByZXZlbnRFeHRlbnNpb25zLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMTA3ODQwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9wcmV2ZW50
RXh0ZW5zaW9ucy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE0LDYgKzE0LDggQEAg
UEFTUyBPYmplY3QucHJldmVudEV4dGVuc2lvbnMoTWF0aC5zaW4pIAogUEFTUyB2YXIgbyA9IHt9
OyBPYmplY3QucHJldmVudEV4dGVuc2lvbnMobyk7IG8uX19wcm90b19fID0geyBuZXdQcm9wOiAi
U2hvdWxkIG5vdCBzZWUgdGhpcyIgfTsgby5uZXdQcm9wOyBpcyB1bmRlZmluZWQuCiBQQVNTICJ1
c2Ugc3RyaWN0IjsgdmFyIG8gPSB7fTsgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKG8pOyBvLl9f
cHJvdG9fXyA9IHsgbmV3UHJvcDogIlNob3VsZCBub3Qgc2VlIHRoaXMiIH07IHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IEF0dGVtcHRlZCB0byBhc3NpZ24gdG8gcmVhZG9ubHkgcHJvcGVydHku
LgogUEFTUyBPYmplY3QucHJldmVudEV4dGVuc2lvbnMoTWF0aCk7IE1hdGguc3FydCg0KSBpcyAy
CitQQVNTIHZhciBhcnIgPSBPYmplY3QucHJldmVudEV4dGVuc2lvbnMoW10pOyBhcnJbMF0gPSA0
MjsgYXJyWzBdIGlzIHVuZGVmaW5lZC4KK1BBU1MgdmFyIGFyciA9IE9iamVjdC5wcmV2ZW50RXh0
ZW5zaW9ucyhbXSk7IGFyclswXSA9IDQyOyBhcnIubGVuZ3RoIGlzIDAKIFBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9qcy9wcm9wZXJ0eS1nZXR0ZXJzLWFuZC1zZXR0ZXJzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3Byb3BlcnR5LWdldHRlcnMtYW5kLXNldHRlcnMtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAxMDc4NDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3Byb3Bl
cnR5LWdldHRlcnMtYW5kLXNldHRlcnMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
MCw3ICsxMCw3IEBAIF9fZGVmaW5lR2V0dGVyX18gYW5kIF9fZGVmaW5lU2V0dGVyX18KIFBBU1Mg
bzIuYiBpcyA4CiBQQVNTIG8yLmIgaXMgMTEKIFNldHRpbmcgYSB2YWx1ZSB3aXRob3V0IGhhdmlu
ZyBhIHNldHRlcgotUEFTUyBvMy54ID0gMTA7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHNl
dHRpbmcgYSBwcm9wZXJ0eSB0aGF0IGhhcyBvbmx5IGEgZ2V0dGVyLgorUEFTUyBvMy54ID0gMTA7
IG8zLnggaXMgNDIKIEdldHRpbmcgYSB2YWx1ZSB3aXRob3V0IGhhdmluZyBhIGdldHRlcgogUEFT
UyBvNC54IGlzIHVuZGVmaW5lZC4KIF9fbG9va3VwR2V0dGVyX18gYW5kIF9fbG9va3VwU2V0dGVy
X18KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL09iamVjdC1kZWZpbmVQ
cm9wZXJ0eS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0
cy9PYmplY3QtZGVmaW5lUHJvcGVydHkuanMJKHJldmlzaW9uIDEwNzg0MCkKKysrIExheW91dFRl
c3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL09iamVjdC1kZWZpbmVQcm9wZXJ0eS5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtODEsNiArODEsMzQgQEAgc2hvdWxkVGhyb3coIk9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShPYmplYwogc2hvdWxkVGhyb3coIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QuZGVm
aW5lUHJvcGVydHkoe30sICdmb28nLCB7dmFsdWU6IDEsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0pLCAn
Zm9vJywge2dldDogZ2V0dGVyMX0pLmZvbyIsICInY2FsbGVkIGdldHRlcjEnIik7CiBzaG91bGRU
aHJvdygiT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2Zv
bycsIHt2YWx1ZTogMSwgY29uZmlndXJhYmxlOiB0cnVlfSksICdmb28nLCB7c2V0OiBzZXR0ZXIx
fSkuZm9vPSd0ZXN0JyIsICInY2FsbGVkIHNldHRlcjEnIik7CiAKKy8vIFNob3VsZCBiZSBhYmxl
IHRvIHJlZGVmaW5lIGFuIG5vbi13cml0YWJsZSBwcm9wZXJ0eSwgaWYgaXQgaXMgY29uZmlndXJh
YmxlLgorc2hvdWxkQmUoIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVy
dHkoe30sICdmb28nLCB7dmFsdWU6IDEsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IGZh
bHNlfSksICdmb28nLCB7dmFsdWU6IDIsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRy
dWV9KS5mb28iLCAiMiIpOworc2hvdWxkQmUoIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7dmFsdWU6IDEsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwg
d3JpdGFibGU6IGZhbHNlfSksICdmb28nLCB7dmFsdWU6IDIsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwg
d3JpdGFibGU6IGZhbHNlfSkuZm9vIiwgIjIiKTsKKworLy8gU2hvdWxkIGJlIGFibGUgdG8gcmVk
ZWZpbmUgYW4gbm9uLXdyaXRhYmxlLCBub24tY29uZmlndXJhYmxlIHByb3BlcnR5LCB3aXRoIHRo
ZSBzYW1lIHZhbHVlIGFuZCBhdHRyaWJ1dGVzLgorc2hvdWxkQmUoIk9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7dmFsdWU6IDEsIGNvbmZpZ3Vy
YWJsZTogZmFsc2UsIHdyaXRhYmxlOiBmYWxzZX0pLCAnZm9vJywge3ZhbHVlOiAxLCBjb25maWd1
cmFibGU6IGZhbHNlLCB3cml0YWJsZTogZmFsc2V9KS5mb28iLCAiMSIpOworCisvLyBTaG91bGQg
YmUgYWJsZSB0byByZWRlZmluZSBhIGNvbmZpZ3VyYWJsZSBhY2Nlc3Nvciwgd2l0aCB0aGUgc2Ft
ZSBvciB3aXRoIGRpZmZlcmVudCBhdHRyaWJ1dGVzLgorLy8gQ2hlY2sgdGhlIGFjY2Vzc29yIGZ1
bmN0aW9uIGNoYW5nZWQuCitzaG91bGRCZSgiT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMTsgfSwg
Y29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiB0cnVlfSksICdmb28nLCB7Z2V0OiBmdW5j
dGlvbigpIHsgcmV0dXJuIDI7IH0sIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogZmFs
c2V9KS5mb28iLCAiMiIpOworc2hvdWxkQmUoIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIDE7IH0s
IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogZmFsc2V9KSwgJ2ZvbycsIHtnZXQ6IGZ1
bmN0aW9uKCkgeyByZXR1cm4gMjsgfSwgY29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiBm
YWxzZX0pLmZvbyIsICIyIik7CisvLyBDaGVjayB0aGUgYXR0cmlidXRlcyBjaGFuZ2VkLgorc2hv
dWxkQmVGYWxzZSgidmFyIHJlc3VsdCA9IGZhbHNlOyB2YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OiBmdW5jdGlvbigpIHsg
cmV0dXJuIDE7IH0sIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZX0pLCAnZm9v
Jywge2dldDogZnVuY3Rpb24oKSB7IHJldHVybiAyOyB9LCBjb25maWd1cmFibGU6IHRydWUsIGVu
dW1lcmFibGU6IGZhbHNlfSk7IGZvciAoeCBpbiBvKSByZXN1bHQgPSB0cnVlOyByZXN1bHQiKTsK
K3Nob3VsZEJlVHJ1ZSgidmFyIHJlc3VsdCA9IGZhbHNlOyB2YXIgbyA9IE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OiBmdW5jdGlvbigp
IHsgcmV0dXJuIDE7IH0sIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogZmFsc2V9KSwg
J2ZvbycsIHtnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMjsgfSwgY29uZmlndXJhYmxlOiB0cnVl
LCBlbnVtZXJhYmxlOiB0cnVlfSk7IGZvciAoeCBpbiBvKSByZXN1bHQgPSB0cnVlOyByZXN1bHQi
KTsKKworLy8gU2hvdWxkIGJlIGFibGUgdG8gZGVmaW5lIGFuIG5vbi1jb25maWd1cmFibGUgYWNj
ZXNzb3IuCitzaG91bGRCZVVuZGVmaW5lZCgidmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHko
e30sICdmb28nLCB7Z2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIDE7IH0sIGNvbmZpZ3VyYWJsZTog
dHJ1ZX0pOyBkZWxldGUgby5mb287IG8uZm9vIik7CitzaG91bGRCZSgidmFyIG8gPSBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIDE7IH0s
IGNvbmZpZ3VyYWJsZTogZmFsc2V9KTsgZGVsZXRlIG8uZm9vOyBvLmZvbyIsICcxJyk7CitzaG91
bGRCZSgiT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2Zv
bycsIHtnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMTsgfSwgY29uZmlndXJhYmxlOiB0cnVlfSks
ICdmb28nLCB7dmFsdWU6Mn0pLmZvbyIsICIyIik7CitzaG91bGRUaHJvdygiT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6IGZ1bmN0aW9u
KCkgeyByZXR1cm4gMTsgfSwgY29uZmlndXJhYmxlOiBmYWxzZX0pLCAnZm9vJywge3ZhbHVlOjJ9
KS5mb28iKTsKKworLy8gRGVmaW5pbmcgYSBkYXRhIGRlc2NyaXB0b3Igb3ZlciBhbiBhY2Nlc3Nv
ciBzaG91bGQgcmVzdWx0IGluIGEgcmVhZCBvbmx5IHByb3BlcnR5Lgorc2hvdWxkQmUoInZhciBv
ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2Zvbycs
IHtnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMTsgfSwgY29uZmlndXJhYmxlOiB0cnVlfSksICdm
b28nLCB7dmFsdWU6Mn0pOyBvLmZvbyA9IDM7IG8uZm9vIiwgIjIiKTsKKworLy8gVHJ5aW5nIHRv
IHJlZGVmaW5lIGEgbm9uLWNvbmZpZ3VyYWJsZSBwcm9wZXJ0eSBhcyBjb25maWd1cmFibGUgc2hv
dWxkIHRocm93Lgorc2hvdWxkVGhyb3coIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QuZGVm
aW5lUHJvcGVydHkoe30sICdmb28nLCB7dmFsdWU6IDF9KSwgJ2ZvbycsIHt2YWx1ZToyLCBjb25m
aWd1cmFibGU6IHRydWV9KSIpOworc2hvdWxkVGhyb3coIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShP
YmplY3QuZGVmaW5lUHJvcGVydHkoW10sICdmb28nLCB7dmFsdWU6IDF9KSwgJ2ZvbycsIHt2YWx1
ZToyLCBjb25maWd1cmFibGU6IHRydWV9KSIpOworCiAvLyBUZXN0IGFuIG9iamVjdCB3aXRoIGEg
Z2V0dGVyIHNldHRlci4KIC8vIEVpdGhlciBhY2Nlc3NvciBtYXkgYmUgb21pdHRlZCBvciByZXBs
YWNlZCB3aXRoIHVuZGVmaW5lZCwgb3IgYm90aCBtYXkgYmUgcmVwbGFjZWQgd2l0aCB1bmRlZmlu
ZWQuCiBzaG91bGRCZSgidmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7
Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9
IHg7fX0pOyBvLmZvbyIsICc0MicpCkBAIC05MCwxMSArMTE4LDExIEBAIHNob3VsZEJlKCJ2YXIg
byA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSgKIHNob3VsZEJlKCJ2YXIgbyA9IE9iamVjdC5kZWZp
bmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319
KTsgby5mb28iLCAndW5kZWZpbmVkJykKIHNob3VsZEJlKCJ2YXIgbyA9IE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSh7fSwgJ2ZvbycsIHtzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KTsg
by5mb28gPSA0Mjsgby5yZXN1bHQ7IiwgJzQyJyk7CiBzaG91bGRCZSgidmFyIG8gPSBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNl
dDp1bmRlZmluZWR9KTsgby5mb28iLCAnNDInKQotc2hvdWxkVGhyb3coInZhciBvID0gT2JqZWN0
LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0Mjt9LCBz
ZXQ6dW5kZWZpbmVkfSk7IG8uZm9vID0gNDI7IG8ucmVzdWx0OyIpOworc2hvdWxkQmUoInZhciBv
ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVy
biA0Mjt9LCBzZXQ6dW5kZWZpbmVkfSk7IG8uZm9vID0gNDI7IG8ucmVzdWx0OyIsICd1bmRlZmlu
ZWQnKTsKIHNob3VsZEJlKCJ2YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2Zvbycs
IHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNDI7fX0pOyBvLmZvbyIsICc0MicpCi1zaG91bGRUaHJv
dygidmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OmZ1bmN0aW9u
KCl7cmV0dXJuIDQyO319KTsgby5mb28gPSA0Mjsgby5yZXN1bHQ7Iik7CitzaG91bGRCZSgidmFy
IG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0
dXJuIDQyO319KTsgby5mb28gPSA0Mjsgby5yZXN1bHQ7IiwgJ3VuZGVmaW5lZCcpOwogc2hvdWxk
QmUoInZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDp1bmRlZmlu
ZWQsIHNldDp1bmRlZmluZWR9KTsgby5mb28iLCAndW5kZWZpbmVkJykKLXNob3VsZFRocm93KCJ2
YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6dW5kZWZpbmVkLCBz
ZXQ6dW5kZWZpbmVkfSk7IG8uZm9vID0gNDI7IG8ucmVzdWx0OyIpOworc2hvdWxkQmUoInZhciBv
ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDp1bmRlZmluZWQsIHNldDp1
bmRlZmluZWR9KTsgby5mb28gPSA0Mjsgby5yZXN1bHQ7IiwgJ3VuZGVmaW5lZCcpOwogLy8gVGVz
dCByZXBsYWNpbmcgb3IgcmVtb3ZpbmcgZWl0aGVyIHRoZSBnZXR0ZXIgb3Igc2V0dGVyIGluZGl2
aWR1YWxseS4KIHNob3VsZEJlKCJ2YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoe2ZvbzoxfSwgJ2ZvbycsIHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNDI7
fSwgc2V0OmZ1bmN0aW9uKHgpe3RoaXMucmVzdWx0ID0geDt9fSksICdmb28nLCB7Z2V0OmZ1bmN0
aW9uKCl7cmV0dXJuIDEzO319KTsgby5mb28iLCAnMTMnKQogc2hvdWxkQmUoInZhciBvID0gT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7Zm9vOjF9LCAnZm9vJywg
e2dldDpmdW5jdGlvbigpe3JldHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQg
PSB4O319KSwgJ2ZvbycsIHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMTM7fX0pOyBvLmZvbyA9IDQy
OyBvLnJlc3VsdDsiLCAnNDInKQpAQCAtMTAzLDQgKzEzMSwyOCBAQCBzaG91bGRCZSgidmFyIG8g
PSBPYmplY3QuZGVmaW5lUHJvcGVydHkoCiBzaG91bGRCZSgidmFyIG8gPSBPYmplY3QuZGVmaW5l
UHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHtmb286MX0sICdmb28nLCB7Z2V0OmZ1bmN0
aW9uKCl7cmV0dXJuIDQyO30sIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7fX0pLCAn
Zm9vJywge3NldDpmdW5jdGlvbigpe3RoaXMucmVzdWx0ID0gMTM7fX0pOyBvLmZvbyIsICc0Micp
CiBzaG91bGRCZSgidmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVBy
b3BlcnR5KHtmb286MX0sICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDpm
dW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7fX0pLCAnZm9vJywge3NldDpmdW5jdGlvbigpe3Ro
aXMucmVzdWx0ID0gMTM7fX0pOyBvLmZvbyA9IDQyOyBvLnJlc3VsdDsiLCAnMTMnKQogc2hvdWxk
QmUoInZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7
Zm9vOjF9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24o
eCl7dGhpcy5yZXN1bHQgPSB4O319KSwgJ2ZvbycsIHtzZXQ6dW5kZWZpbmVkfSk7IG8uZm9vIiwg
JzQyJykKLXNob3VsZFRocm93KCJ2YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoe2ZvbzoxfSwgJ2ZvbycsIHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNDI7
fSwgc2V0OmZ1bmN0aW9uKHgpe3RoaXMucmVzdWx0ID0geDt9fSksICdmb28nLCB7c2V0OnVuZGVm
aW5lZH0pOyBvLmZvbyA9IDQyOyBvLnJlc3VsdDsiKQorc2hvdWxkQmUoInZhciBvID0gT2JqZWN0
LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7Zm9vOjF9LCAnZm9vJywge2dl
dDpmdW5jdGlvbigpe3JldHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4
O319KSwgJ2ZvbycsIHtzZXQ6dW5kZWZpbmVkfSk7IG8uZm9vID0gNDI7IG8ucmVzdWx0OyIsICd1
bmRlZmluZWQnKQorCisvLyBSZXBlYXQgb2YgdGhlIGFib3ZlLCBpbiBzdHJpY3QgbW9kZS4KKy8v
IEVpdGhlciBhY2Nlc3NvciBtYXkgYmUgb21pdHRlZCBvciByZXBsYWNlZCB3aXRoIHVuZGVmaW5l
ZCwgb3IgYm90aCBtYXkgYmUgcmVwbGFjZWQgd2l0aCB1bmRlZmluZWQuCitzaG91bGRCZSgiJ3Vz
ZSBzdHJpY3QnOyB2YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6
ZnVuY3Rpb24oKXtyZXR1cm4gNDI7fSwgc2V0OmZ1bmN0aW9uKHgpe3RoaXMucmVzdWx0ID0geDt9
fSk7IG8uZm9vIiwgJzQyJykKK3Nob3VsZEJlKCIndXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0
LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0Mjt9LCBz
ZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KTsgby5mb28gPSA0Mjsgby5yZXN1bHQ7
IiwgJzQyJyk7CitzaG91bGRCZSgiJ3VzZSBzdHJpY3QnOyB2YXIgbyA9IE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6dW5kZWZpbmVkLCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5y
ZXN1bHQgPSB4O319KTsgby5mb28iLCAndW5kZWZpbmVkJykKK3Nob3VsZEJlKCIndXNlIHN0cmlj
dCc7IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDp1bmRlZmlu
ZWQsIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7fX0pOyBvLmZvbyA9IDQyOyBvLnJl
c3VsdDsiLCAnNDInKTsKK3Nob3VsZEJlKCIndXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRl
ZmluZVByb3BlcnR5KHt9LCAnZm9vJywge3NldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7
fX0pOyBvLmZvbyIsICd1bmRlZmluZWQnKQorc2hvdWxkQmUoIid1c2Ugc3RyaWN0JzsgdmFyIG8g
PSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7c2V0OmZ1bmN0aW9uKHgpe3RoaXMu
cmVzdWx0ID0geDt9fSk7IG8uZm9vID0gNDI7IG8ucmVzdWx0OyIsICc0MicpOworc2hvdWxkQmUo
Iid1c2Ugc3RyaWN0JzsgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7
Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDp1bmRlZmluZWR9KTsgby5mb28iLCAnNDIn
KQorc2hvdWxkVGhyb3coIid1c2Ugc3RyaWN0JzsgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoe30sICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDp1bmRlZmluZWR9
KTsgby5mb28gPSA0Mjsgby5yZXN1bHQ7Iik7CitzaG91bGRCZSgiJ3VzZSBzdHJpY3QnOyB2YXIg
byA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6ZnVuY3Rpb24oKXtyZXR1
cm4gNDI7fX0pOyBvLmZvbyIsICc0MicpCitzaG91bGRUaHJvdygiJ3VzZSBzdHJpY3QnOyB2YXIg
byA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6ZnVuY3Rpb24oKXtyZXR1
cm4gNDI7fX0pOyBvLmZvbyA9IDQyOyBvLnJlc3VsdDsiKTsKK3Nob3VsZEJlKCIndXNlIHN0cmlj
dCc7IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDp1bmRlZmlu
ZWQsIHNldDp1bmRlZmluZWR9KTsgby5mb28iLCAndW5kZWZpbmVkJykKK3Nob3VsZFRocm93KCIn
dXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dl
dDp1bmRlZmluZWQsIHNldDp1bmRlZmluZWR9KTsgby5mb28gPSA0Mjsgby5yZXN1bHQ7Iik7Cisv
LyBUZXN0IHJlcGxhY2luZyBvciByZW1vdmluZyBlaXRoZXIgdGhlIGdldHRlciBvciBzZXR0ZXIg
aW5kaXZpZHVhbGx5Lgorc2hvdWxkQmUoIid1c2Ugc3RyaWN0JzsgdmFyIG8gPSBPYmplY3QuZGVm
aW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHtmb286MX0sICdmb28nLCB7Z2V0OmZ1
bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7fX0p
LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiAxMzt9fSk7IG8uZm9vIiwgJzEzJykKK3No
b3VsZEJlKCIndXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVj
dC5kZWZpbmVQcm9wZXJ0eSh7Zm9vOjF9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0
Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KSwgJ2ZvbycsIHtnZXQ6ZnVu
Y3Rpb24oKXtyZXR1cm4gMTM7fX0pOyBvLmZvbyA9IDQyOyBvLnJlc3VsdDsiLCAnNDInKQorc2hv
dWxkQmUoIid1c2Ugc3RyaWN0JzsgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0
LmRlZmluZVByb3BlcnR5KHtmb286MX0sICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQy
O30sIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7fX0pLCAnZm9vJywge2dldDp1bmRl
ZmluZWR9KTsgby5mb28iLCAndW5kZWZpbmVkJykKK3Nob3VsZEJlKCIndXNlIHN0cmljdCc7IHZh
ciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7Zm9vOjF9
LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhp
cy5yZXN1bHQgPSB4O319KSwgJ2ZvbycsIHtnZXQ6dW5kZWZpbmVkfSk7IG8uZm9vID0gNDI7IG8u
cmVzdWx0OyIsICc0MicpCitzaG91bGRCZSgiJ3VzZSBzdHJpY3QnOyB2YXIgbyA9IE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe2ZvbzoxfSwgJ2ZvbycsIHtnZXQ6
ZnVuY3Rpb24oKXtyZXR1cm4gNDI7fSwgc2V0OmZ1bmN0aW9uKHgpe3RoaXMucmVzdWx0ID0geDt9
fSksICdmb28nLCB7c2V0OmZ1bmN0aW9uKCl7dGhpcy5yZXN1bHQgPSAxMzt9fSk7IG8uZm9vIiwg
JzQyJykKK3Nob3VsZEJlKCIndXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3Bl
cnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7Zm9vOjF9LCAnZm9vJywge2dldDpmdW5jdGlvbigp
e3JldHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KSwgJ2Zvbycs
IHtzZXQ6ZnVuY3Rpb24oKXt0aGlzLnJlc3VsdCA9IDEzO319KTsgby5mb28gPSA0Mjsgby5yZXN1
bHQ7IiwgJzEzJykKK3Nob3VsZEJlKCIndXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7Zm9vOjF9LCAnZm9vJywge2dldDpmdW5j
dGlvbigpe3JldHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KSwg
J2ZvbycsIHtzZXQ6dW5kZWZpbmVkfSk7IG8uZm9vIiwgJzQyJykKK3Nob3VsZFRocm93KCIndXNl
IHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eSh7Zm9vOjF9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0Mjt9LCBzZXQ6ZnVu
Y3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KSwgJ2ZvbycsIHtzZXQ6dW5kZWZpbmVkfSk7IG8u
Zm9vID0gNDI7IG8ucmVzdWx0OyIpCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10
ZXN0cy9wcmV2ZW50RXh0ZW5zaW9ucy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2pzL3NjcmlwdC10ZXN0cy9wcmV2ZW50RXh0ZW5zaW9ucy5qcwkocmV2aXNpb24gMTA3ODQwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvcHJldmVudEV4dGVuc2lvbnMuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTQsNyArNCw4IEBAIGRlc2NyaXB0aW9uKAogCiBmdW5jdGlvbiBv
YmooKQogewotICAgIHJldHVybiB7IGE6IDEsIGI6IDIgfTsKKyAgICAvLyBBZGQgYW4gYWNjZXNz
b3IgcHJvcGVydHkgdG8gY2hlY2sgJ2lzRnJvemVuJyByZXR1cm5zIHRoZSBjb3JyZWN0IHJlc3Vs
dCBmb3Igb2JqZWN0cyB3aXRoIGFjY2Vzc29ycy4KKyAgICByZXR1cm4gT2JqZWN0LmRlZmluZVBy
b3BlcnR5KHsgYTogMSwgYjogMiB9LCAnZycsIHsgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuICJn
ZXR0ZXIiOyB9IH0pOwogfQogCiBmdW5jdGlvbiB0ZXN0KG9iaikKQEAgLTczLDMgKzc0LDcgQEAg
c2hvdWxkVGhyb3coJyJ1c2Ugc3RyaWN0IjsgdmFyIG8gPSB7fTsgTwogCiAvLyBjaGVjayB0aGF0
IHdlIGNhbiBzdGlsbCBhY2Nlc3Mgc3RhdGljIHByb3BlcnRpZXMgb24gYW4gb2JqZWN0IGFmdGVy
IGNhbGxpbmcgcHJldmVudEV4dGVuc2lvbnMuCiBzaG91bGRCZSgnT2JqZWN0LnByZXZlbnRFeHRl
bnNpb25zKE1hdGgpOyBNYXRoLnNxcnQoNCknLCAnMicpOworCisvLyBTaG91bGQgbm90IGJlIGFi
bGUgdG8gYWRkIHByb3BlcnRpZXMgdG8gYSBwcmV2ZW50RXh0ZW5zaW9ucyBhcnJheS4KK3Nob3Vs
ZEJlVW5kZWZpbmVkKCd2YXIgYXJyID0gT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKFtdKTsgYXJy
WzBdID0gNDI7IGFyclswXScpOworc2hvdWxkQmUoJ3ZhciBhcnIgPSBPYmplY3QucHJldmVudEV4
dGVuc2lvbnMoW10pOyBhcnJbMF0gPSA0MjsgYXJyLmxlbmd0aCcsICcwJyk7CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9wcm9wZXJ0eS1nZXR0ZXJzLWFuZC1zZXR0ZXJz
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL3Byb3Bl
cnR5LWdldHRlcnMtYW5kLXNldHRlcnMuanMJKHJldmlzaW9uIDEwNzg0MCkKKysrIExheW91dFRl
c3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL3Byb3BlcnR5LWdldHRlcnMtYW5kLXNldHRlcnMuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDcgQEAgc2hvdWxkQmUoIm8yLmIiLCAiMTEiKTsK
IAogZGVidWcoIlNldHRpbmcgYSB2YWx1ZSB3aXRob3V0IGhhdmluZyBhIHNldHRlciIpOwogdmFy
IG8zID0geyBnZXQgeCgpIHsgcmV0dXJuIDQyOyB9IH0KLXNob3VsZFRocm93KCJvMy54ID0gMTA7
Iik7CitzaG91bGRCZSgibzMueCA9IDEwOyBvMy54IiwgIjQyIik7CiAKIGRlYnVnKCJHZXR0aW5n
IGEgdmFsdWUgd2l0aG91dCBoYXZpbmcgYSBnZXR0ZXIiKTsKIHZhciBvNCA9IHsgc2V0IHgoeSkg
eyB9fQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>127310</attachid>
            <date>2012-02-15 21:50:51 -0800</date>
            <delta_ts>2012-02-16 10:41:01 -0800</delta_ts>
            <desc>With fixed Changelog</desc>
            <filename>78777.2.patch</filename>
            <type>text/plain</type>
            <size>42584</size>
            <attacher name="Gavin Barraclough">barraclough</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTA3ODgwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU3IEBA
CisyMDEyLTAyLTE1ICBHYXZpbiBCYXJyYWNsb3VnaCAgPGJhcnJhY2xvdWdoQGFwcGxlLmNvbT4K
KworICAgICAgICBOdW1lcm91cyB0cml2aWFsIGJ1Z3MgaW4gT2JqZWN0LmRlZmluZVByb3BlcnR5
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03ODc3Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIGFy
ZSBhIGhhbmRmdWwgb2YgcmVhbGx5IHRyaXZpYWwgYnVncywgcmVsYXRlZCB0byBPYmplY3QuZGVm
aW5lUHJvcGVydHk6CisgICAgICAgICAgICAqIFJlZGVmaW5pbmcgYW4gYWNjZXNzb3Igd2l0aCBk
aWZmZXJlbnQgYXR0cmlidXRlcyBjaGFuZ2VzIHRoZSBhdHRyaWJ1dGVzLCBidXQgbm90IHRoZSBn
ZXQvc2V0IGZ1bmN0aW9ucyEKKyAgICAgICAgICAgICogQ2FsbGluZyBhbiB1bmRlZmluZWQgc2V0
dGVyIHNob3VsZCBvbmx5IHRocm93IGluIHN0cmljdCBtb2RlLgorICAgICAgICAgICAgKiBXaGVu
IHJlZGVmaW5pbmcgYW4gYWNjZXNzb3IgdG8gYSBkYXRhIGRlY3JpcHRvciwgaWYgd3JpdGFibGUg
aXMgbm90IHNwZWNpZmllZCB3ZSBzaG91bGQgZGVmYXVsdCB0byBmYWxzZS4KKyAgICAgICAgICAg
ICogQW55IGF0dGVtcHQgdG8gcmVkZWZpbmUgYSBub24tY29uZmlndXJhYmxlIHByb3BlcnR5IG9m
IGFuIGFycmF5IGFzIGNvbmZpZ3VyYWJsZSBzaG91bGQgYmUgcmVqZWN0ZWQuCisgICAgICAgICAg
ICAqIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzIHNob3VsZCBjYWxsIHRvT2JqZWN0IG9uICdQcm9w
ZXJ0aWVzJyBhcmd1bWVudCwgcmF0aGVyIHRoYW4gdGhyb3dpbmcgaWYgaXQgaXMgbm90IGFuIG9i
amVjdC4KKyAgICAgICAgICAgICogSWYgcHJldmVudEV4dGVuc2lvbnMgaGFzIGJlZW4gY2FsbGVk
IG9uIGFuIGFycmF5LCBzdWJzZXF1ZW50IGFzc2lnbm1lbnQgYmV5b25kIGFycmF5IGJvdW5kcyBz
aG91bGQgZmFpbC4KKyAgICAgICAgICAgICogJ2lzRnJvemVuJyBzaG91bGRuJ3QgYmUgY2hlY2tp
bmcgdGhlIFJlYWRPbmx5IGJpdCBmb3IgYWNjZXNzb3IgZGVzY3JpcHRvcnMgKHdlIHByZXNlbnRs
eSBhbHdheXMga2VlcCB0aGlzIGJpdCBhcyAnZmFsc2UnKS4KKyAgICAgICAgICAgICogU2hvdWxk
IGJlIGFibGUgdG8gcmVkZWZpbmUgYW4gbm9uLXdyaXRhYmxlLCBub24tY29uZmlndXJhYmxlIHBy
b3BlcnR5LCB3aXRoIHRoZSBzYW1lIHZhbHVlIGFuZCBhdHRyaWJ1dGVzLgorICAgICAgICAgICAg
KiBTaG91bGQgYmUgYWJsZSB0byBkZWZpbmUgYW4gbm9uLWNvbmZpZ3VyYWJsZSBhY2Nlc3Nvci4K
KyAgICAgICAgVGhlc2UgYXJlIG1vc3RseSBhbGwgb25lLWxpbmUgY2hhbmdlcywgZS5nLiBpbnZl
cnRlZCBib29sZWFuIGNoZWNrcywgbWFza2luZyBhZ2FpbnN0IHdyb25nIGF0dHJpYnV0ZS4KKwor
ICAgICAgICAqIHJ1bnRpbWUvSlNBcnJheS5jcHA6CisgICAgICAgIChKU0M6OlNwYXJzZUFycmF5
VmFsdWVNYXA6OnB1dCk6CisgICAgICAgICAgICAtIEFkZGVkIEFTU0VSVC4KKyAgICAgICAgICAg
IC0gQ2FsbGluZyBhbiB1bmRlZmluZWQgc2V0dGVyIHNob3VsZCBvbmx5IHRocm93IGluIHN0cmlj
dCBtb2RlLgorICAgICAgICAoSlNDOjpKU0FycmF5OjpwdXREZXNjcmlwdG9yKToKKyAgICAgICAg
ICAgIC0gU2hvdWxkIGJlIGFibGUgdG8gZGVmaW5lIGFuIG5vbi1jb25maWd1cmFibGUgYWNjZXNz
b3IuCisgICAgICAgIChKU0M6OkpTQXJyYXk6OmRlZmluZU93bk51bWVyaWNQcm9wZXJ0eSk6Cisg
ICAgICAgICAgICAtIEFueSBhdHRlbXB0IHRvIHJlZGVmaW5lIGEgbm9uLWNvbmZpZ3VyYWJsZSBw
cm9wZXJ0eSBvZiBhbiBhcnJheSBhcyBjb25maWd1cmFibGUgc2hvdWxkIGJlIHJlamVjdGVkLgor
ICAgICAgICAoSlNDOjpKU0FycmF5OjpwdXRCeUluZGV4QmV5b25kVmVjdG9yTGVuZ3RoKToKKyAg
ICAgICAgICAgIC0gSWYgcHJldmVudEV4dGVuc2lvbnMgaGFzIGJlZW4gY2FsbGVkIG9uIGFuIGFy
cmF5LCBzdWJzZXF1ZW50IGFzc2lnbm1lbnQgYmV5b25kIGFycmF5IGJvdW5kcyBzaG91bGQgZmFp
bC4KKyAgICAgICAgKiBydW50aW1lL0pTQXJyYXkuaDoKKyAgICAgICAgKEpTQXJyYXkpOgorICAg
ICAgICAgICAgLSBtYWRlIGVudGVyRGljdGlvbmFyeU1vZGUgcHVibGljLCBjYWxsZWQgZnJvbSBK
U09iamVjdC4KKyAgICAgICAgKiBydW50aW1lL0pTT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6
SlNPYmplY3Q6OnB1dCk6CisgICAgICAgICAgICAtIENhbGxpbmcgYW4gdW5kZWZpbmVkIHNldHRl
ciBzaG91bGQgb25seSB0aHJvdyBpbiBzdHJpY3QgbW9kZS4KKyAgICAgICAgKEpTQzo6SlNPYmpl
Y3Q6OnByZXZlbnRFeHRlbnNpb25zKToKKyAgICAgICAgICAgIC0gUHV0IGFycmF5IG9iamVjdHMg
aW50byBkaWN0aW9uYXJ5IG1vZGUgdG8gaGFuZGxlIHRoaXMhCisgICAgICAgIChKU0M6OkpTT2Jq
ZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgICAgICAtIFNob3VsZCBiZSBhYmxlIHRv
IHJlZGVmaW5lIGFuIG5vbi13cml0YWJsZSwgbm9uLWNvbmZpZ3VyYWJsZSBwcm9wZXJ0eSwgd2l0
aCB0aGUgc2FtZSB2YWx1ZSBhbmQgYXR0cmlidXRlcy4KKyAgICAgICAgICAgIC0gUmVkZWZpbmlu
ZyBhbiBhY2Nlc3NvciB3aXRoIGRpZmZlcmVudCBhdHRyaWJ1dGVzIGNoYW5nZXMgdGhlIGF0dHJp
YnV0ZXMsIGJ1dCBub3QgdGhlIGdldC9zZXQgZnVuY3Rpb25zIQorICAgICAgICAqIHJ1bnRpbWUv
T2JqZWN0Q29uc3RydWN0b3IuY3BwOgorICAgICAgICAoSlNDOjpvYmplY3RDb25zdHJ1Y3RvckRl
ZmluZVByb3BlcnRpZXMpOgorICAgICAgICAgICAgLSBPYmplY3QuZGVmaW5lUHJvcGVydGllcyBz
aG91bGQgY2FsbCB0b09iamVjdCBvbiAnUHJvcGVydGllcycgYXJndW1lbnQsIHJhdGhlciB0aGFu
IHRocm93aW5nIGlmIGl0IGlzIG5vdCBhbiBvYmplY3QuCisgICAgICAgICogcnVudGltZS9Qcm9w
ZXJ0eURlc2NyaXB0b3IuY3BwOgorICAgICAgICAoSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3I6OmF0
dHJpYnV0ZXNXaXRoT3ZlcnJpZGUpOgorICAgICAgICAgICAgLSBXaGVuIHJlZGVmaW5pbmcgYW4g
YWNjZXNzb3IgdG8gYSBkYXRhIGRlY3JpcHRvciwgaWYgd3JpdGFibGUgaXMgbm90IHNwZWNpZmll
ZCB3ZSBzaG91bGQgZGVmYXVsdCB0byBmYWxzZS4KKyAgICAgICAgKEpTQzo6UHJvcGVydHlEZXNj
cmlwdG9yOjphdHRyaWJ1dGVzT3ZlcnJpZGluZ0N1cnJlbnQpOgorICAgICAgICAgICAgLSBXaGVu
IHJlZGVmaW5pbmcgYW4gYWNjZXNzb3IgdG8gYSBkYXRhIGRlY3JpcHRvciwgaWYgd3JpdGFibGUg
aXMgbm90IHNwZWNpZmllZCB3ZSBzaG91bGQgZGVmYXVsdCB0byBmYWxzZS4KKyAgICAgICAgKiBy
dW50aW1lL1N0cnVjdHVyZS5jcHA6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZTo6ZnJlZXplVHJh
bnNpdGlvbik6CisgICAgICAgICAgICAtICdmcmVlemVUcmFuc2l0aW9uJyBzaG91bGRuJ3QgYmUg
c2V0dGluZyB0aGUgUmVhZE9ubHkgYml0IGZvciBhY2Nlc3NvciBkZXNjcmlwdG9ycyAod2UgcHJl
c2VudGx5IGFsd2F5cyBrZWVwIHRoaXMgYml0IGFzICdmYWxzZScpLgorICAgICAgICAoSlNDOjpT
dHJ1Y3R1cmU6OmlzRnJvemVuKToKKyAgICAgICAgICAgIC0gJ2lzRnJvemVuJyBzaG91bGRuJ3Qg
YmUgY2hlY2tpbmcgdGhlIFJlYWRPbmx5IGJpdCBmb3IgYWNjZXNzb3IgZGVzY3JpcHRvcnMgKHdl
IHByZXNlbnRseSBhbHdheXMga2VlcCB0aGlzIGJpdCBhcyAnZmFsc2UnKS4KKwogMjAxMi0wMi0x
NSAgT2xpdmVyIEh1bnQgIDxvbGl2ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEVuc3VyZSB0aGF0
IHRoZSBERkcgSklUIGFsd2F5cyBwbGFudHMgYSBDb2RlT3JpZ2luIHdoZW4gbWFraW5nIGNhbGxz
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0FycmF5LmNwcAkocmV2aXNp
b24gMTA3ODQwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNBcnJheS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIyMyw2ICsyMjMsOSBAQCBpbmxpbmUgc3RkOjpwYWlyPFNwYXJz
ZUFycmF5VmFsdWVNYXA6Oml0CiAKIGlubGluZSB2b2lkIFNwYXJzZUFycmF5VmFsdWVNYXA6OnB1
dChFeGVjU3RhdGUqIGV4ZWMsIEpTQXJyYXkqIGFycmF5LCB1bnNpZ25lZCBpLCBKU1ZhbHVlIHZh
bHVlKQogeworICAgIC8vIElmIHRoZSBhcnJheSBpcyBub3QgZXh0ZW5zaWJsZSwgd2Ugc2hvdWxk
bid0IGdldCBoZXJlIQorICAgIEFTU0VSVChhcnJheS0+aXNFeHRlbnNpYmxlKCkpOworCiAgICAg
U3BhcnNlQXJyYXlFbnRyeSYgZW50cnkgPSBhZGQoYXJyYXksIGkpLmZpcnN0LT5zZWNvbmQ7CiAK
ICAgICBpZiAoIShlbnRyeS5hdHRyaWJ1dGVzICYgQWNjZXNzb3IpKSB7CkBAIC0yNDEsNyArMjQ0
LDggQEAgaW5saW5lIHZvaWQgU3BhcnNlQXJyYXlWYWx1ZU1hcDo6cHV0KEV4ZQogICAgIEpTT2Jq
ZWN0KiBzZXR0ZXIgPSBhc0dldHRlclNldHRlcihhY2Nlc3NvciktPnNldHRlcigpOwogICAgIAog
ICAgIGlmICghc2V0dGVyKSB7Ci0gICAgICAgIHRocm93VHlwZUVycm9yKGV4ZWMsICJzZXR0aW5n
IGEgcHJvcGVydHkgdGhhdCBoYXMgb25seSBhIGdldHRlciIpOworICAgICAgICAvLyBGSVhNRTog
c2hvdWxkIHRocm93IGlmIGJlaW5nIGNhbGxlZCBmcm9tIHN0cmljdCBtb2RlLgorICAgICAgICAv
LyB0aHJvd1R5cGVFcnJvcihleGVjLCAic2V0dGluZyBhIHByb3BlcnR5IHRoYXQgaGFzIG9ubHkg
YSBnZXR0ZXIiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApAQCAtMzg0LDcgKzM4OCw3IEBA
IHZvaWQgSlNBcnJheTo6cHV0RGVzY3JpcHRvcihFeGVjU3RhdGUqIGUKICAgICAgICAgICAgIGFj
Y2Vzc29yLT5zZXRTZXR0ZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBzZXR0ZXIpOwogCiAgICAgICAg
IGVudHJ5SW5NYXAtPnNldChleGVjLT5nbG9iYWxEYXRhKCksIHRoaXMsIGFjY2Vzc29yKTsKLSAg
ICAgICAgZW50cnlJbk1hcC0+YXR0cmlidXRlcyA9IGRlc2NyaXB0b3IuYXR0cmlidXRlc092ZXJy
aWRpbmdDdXJyZW50KG9sZERlc2NyaXB0b3IpICYgfkRvbnREZWxldGU7CisgICAgICAgIGVudHJ5
SW5NYXAtPmF0dHJpYnV0ZXMgPSBkZXNjcmlwdG9yLmF0dHJpYnV0ZXNPdmVycmlkaW5nQ3VycmVu
dChvbGREZXNjcmlwdG9yKSAmIH5SZWFkT25seTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApA
QCAtNDY1LDcgKzQ2OSw3IEBAIGJvb2wgSlNBcnJheTo6ZGVmaW5lT3duTnVtZXJpY1Byb3BlcnR5
KEUKICAgICAvLyA3LiBJZiB0aGUgW1tDb25maWd1cmFibGVdXSBmaWVsZCBvZiBjdXJyZW50IGlz
IGZhbHNlIHRoZW4KICAgICBpZiAoIWN1cnJlbnQuY29uZmlndXJhYmxlKCkpIHsKICAgICAgICAg
Ly8gNy5hLiBSZWplY3QsIGlmIHRoZSBbW0NvbmZpZ3VyYWJsZV1dIGZpZWxkIG9mIERlc2MgaXMg
dHJ1ZS4KLSAgICAgICAgaWYgKGRlc2NyaXB0b3IuY29uZmlndXJhYmxlUHJlc2VudCgpICYmICFk
ZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSgpKQorICAgICAgICBpZiAoZGVzY3JpcHRvci5jb25maWd1
cmFibGVQcmVzZW50KCkgJiYgZGVzY3JpcHRvci5jb25maWd1cmFibGUoKSkKICAgICAgICAgICAg
IHJldHVybiByZWplY3QoZXhlYywgdGhyb3dFeGNlcHRpb24sICJBdHRlbXB0aW5nIHRvIGNoYW5n
ZSBjb25maWd1cmFibGUgYXR0cmlidXRlIG9mIHVuY29uZmlndXJhYmxlIHByb3BlcnR5LiIpOwog
ICAgICAgICAvLyA3LmIuIFJlamVjdCwgaWYgdGhlIFtbRW51bWVyYWJsZV1dIGZpZWxkIG9mIERl
c2MgaXMgcHJlc2VudCBhbmQgdGhlIFtbRW51bWVyYWJsZV1dIGZpZWxkcyBvZiBjdXJyZW50IGFu
ZCBEZXNjIGFyZSB0aGUgQm9vbGVhbiBuZWdhdGlvbiBvZiBlYWNoIG90aGVyLgogICAgICAgICBp
ZiAoZGVzY3JpcHRvci5lbnVtZXJhYmxlUHJlc2VudCgpICYmIGN1cnJlbnQuZW51bWVyYWJsZSgp
ICE9IGRlc2NyaXB0b3IuZW51bWVyYWJsZSgpKQpAQCAtNzg1LDYgKzc4OSw5IEBAIE5FVkVSX0lO
TElORSB2b2lkIEpTQXJyYXk6OnB1dEJ5SW5kZXhCZXkKIAogICAgIC8vIEZpcnN0LCBoYW5kbGUg
Y2FzZXMgd2hlcmUgd2UgZG9uJ3QgY3VycmVudGx5IGhhdmUgYSBzcGFyc2UgbWFwLgogICAgIGlm
IChMSUtFTFkoIW1hcCkpIHsKKyAgICAgICAgLy8gSWYgdGhlIGFycmF5IGlzIG5vdCBleHRlbnNp
YmxlLCB3ZSBzaG91bGQgaGF2ZSBlbnRlcmVkIGRpY3Rpb25hcnkgbW9kZSwgYW5kIGNyZWF0ZWQg
dGhlIHNwYXJlIG1hcC4KKyAgICAgICAgQVNTRVJUKGlzRXh0ZW5zaWJsZSgpKTsKKyAgICAKICAg
ICAgICAgLy8gVXBkYXRlIG1fbGVuZ3RoIGlmIG5lY2Vzc2FyeS4KICAgICAgICAgaWYgKGkgPj0g
c3RvcmFnZS0+bV9sZW5ndGgpCiAgICAgICAgICAgICBzdG9yYWdlLT5tX2xlbmd0aCA9IGkgKyAx
OwpAQCAtODA4LDcgKzgxNSw3IEBAIE5FVkVSX0lOTElORSB2b2lkIEpTQXJyYXk6OnB1dEJ5SW5k
ZXhCZXkKICAgICB1bnNpZ25lZCBsZW5ndGggPSBzdG9yYWdlLT5tX2xlbmd0aDsKICAgICBpZiAo
aSA+PSBsZW5ndGgpIHsKICAgICAgICAgLy8gUHJvaGliaXQgZ3Jvd2luZyB0aGUgYXJyYXkgaWYg
bGVuZ3RoIGlzIG5vdCB3cml0YWJsZS4KLSAgICAgICAgaWYgKG1hcC0+bGVuZ3RoSXNSZWFkT25s
eSgpKSB7CisgICAgICAgIGlmIChtYXAtPmxlbmd0aElzUmVhZE9ubHkoKSB8fCAhaXNFeHRlbnNp
YmxlKCkpIHsKICAgICAgICAgICAgIC8vIEZJWE1FOiBzaG91bGQgdGhyb3cgaW4gc3RyaWN0IG1v
ZGUuCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9KU0FycmF5LmgJKHJldmlzaW9uIDEwNzg0MCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9ydW50aW1lL0pTQXJyYXkuaAkod29ya2luZyBjb3B5KQpAQCAtMjQ0LDYgKzI0
NCw4IEBAIG5hbWVzcGFjZSBKU0MgewogCiAgICAgICAgIEpTX0VYUE9SVF9QUklWQVRFIHN0YXRp
YyB2b2lkIHZpc2l0Q2hpbGRyZW4oSlNDZWxsKiwgU2xvdFZpc2l0b3ImKTsKIAorICAgICAgICB2
b2lkIGVudGVyRGljdGlvbmFyeU1vZGUoSlNHbG9iYWxEYXRhJik7CisKICAgICBwcm90ZWN0ZWQ6
CiAgICAgICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFncyA9IE92ZXJyaWRl
c0dldE93blByb3BlcnR5U2xvdCB8IE92ZXJyaWRlc1Zpc2l0Q2hpbGRyZW4gfCBPdmVycmlkZXNH
ZXRQcm9wZXJ0eU5hbWVzIHwgSlNPYmplY3Q6OlN0cnVjdHVyZUZsYWdzOwogICAgICAgICBzdGF0
aWMgdm9pZCBwdXQoSlNDZWxsKiwgRXhlY1N0YXRlKiwgY29uc3QgSWRlbnRpZmllciYgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmKTsKQEAgLTI2NSw3ICsyNjcsNiBAQCBu
YW1lc3BhY2UgSlNDIHsKICAgICAgICAgdm9pZCBzZXRMZW5ndGhXcml0YWJsZShFeGVjU3RhdGUq
LCBib29sIHdyaXRhYmxlKTsKICAgICAgICAgdm9pZCBwdXREZXNjcmlwdG9yKEV4ZWNTdGF0ZSos
IFNwYXJzZUFycmF5RW50cnkqLCBQcm9wZXJ0eURlc2NyaXB0b3ImLCBQcm9wZXJ0eURlc2NyaXB0
b3ImIG9sZCk7CiAgICAgICAgIGJvb2wgZGVmaW5lT3duTnVtZXJpY1Byb3BlcnR5KEV4ZWNTdGF0
ZSosIHVuc2lnbmVkLCBQcm9wZXJ0eURlc2NyaXB0b3ImLCBib29sIHRocm93RXhjZXB0aW9uKTsK
LSAgICAgICAgdm9pZCBlbnRlckRpY3Rpb25hcnlNb2RlKEpTR2xvYmFsRGF0YSYpOwogICAgICAg
ICB2b2lkIGFsbG9jYXRlU3BhcnNlTWFwKEpTR2xvYmFsRGF0YSYpOwogICAgICAgICB2b2lkIGRl
YWxsb2NhdGVTcGFyc2VNYXAoKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRp
bWUvSlNPYmplY3QuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50
aW1lL0pTT2JqZWN0LmNwcAkocmV2aXNpb24gMTA3ODQwKQorKysgU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvSlNPYmplY3QuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNzIsNyArMTcyLDgg
QEAgdm9pZCBKU09iamVjdDo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YQogICAgICAgICAgICAg
aWYgKGdzLmlzR2V0dGVyU2V0dGVyKCkpIHsKICAgICAgICAgICAgICAgICBKU09iamVjdCogc2V0
dGVyRnVuYyA9IGFzR2V0dGVyU2V0dGVyKGdzKS0+c2V0dGVyKCk7ICAgICAgICAKICAgICAgICAg
ICAgICAgICBpZiAoIXNldHRlckZ1bmMpIHsKLSAgICAgICAgICAgICAgICAgICAgdGhyb3dTZXR0
ZXJFcnJvcihleGVjKTsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHNsb3QuaXNTdHJpY3RNb2Rl
KCkpCisgICAgICAgICAgICAgICAgICAgICAgICB0aHJvd1NldHRlckVycm9yKGV4ZWMpOwogICAg
ICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAg
ICAgIApAQCAtNDY1LDYgKzQ2Niw4IEBAIHZvaWQgSlNPYmplY3Q6OmZyZWV6ZShKU0dsb2JhbERh
dGEmIGdsb2IKIAogdm9pZCBKU09iamVjdDo6cHJldmVudEV4dGVuc2lvbnMoSlNHbG9iYWxEYXRh
JiBnbG9iYWxEYXRhKQogeworICAgIGlmIChpc0pTQXJyYXkodGhpcykpCisgICAgICAgIGFzQXJy
YXkodGhpcyktPmVudGVyRGljdGlvbmFyeU1vZGUoZ2xvYmFsRGF0YSk7CiAgICAgaWYgKGlzRXh0
ZW5zaWJsZSgpKQogICAgICAgICBzZXRTdHJ1Y3R1cmUoZ2xvYmFsRGF0YSwgU3RydWN0dXJlOjpw
cmV2ZW50RXh0ZW5zaW9uc1RyYW5zaXRpb24oZ2xvYmFsRGF0YSwgc3RydWN0dXJlKCkpKTsKIH0K
QEAgLTY5NywyMSArNzAwLDE1IEBAIGJvb2wgSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KEpT
T2JqZWMKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICB9CiAgICAg
ICAgICAgICBpZiAoIWN1cnJlbnQud3JpdGFibGUoKSkgewotICAgICAgICAgICAgICAgIGlmIChk
ZXNjcmlwdG9yLnZhbHVlKCkgfHwgIXNhbWVWYWx1ZShleGVjLCBjdXJyZW50LnZhbHVlKCksIGRl
c2NyaXB0b3IudmFsdWUoKSkpIHsKKyAgICAgICAgICAgICAgICBpZiAoZGVzY3JpcHRvci52YWx1
ZSgpICYmICFzYW1lVmFsdWUoZXhlYywgY3VycmVudC52YWx1ZSgpLCBkZXNjcmlwdG9yLnZhbHVl
KCkpKSB7CiAgICAgICAgICAgICAgICAgICAgIGlmICh0aHJvd0V4Y2VwdGlvbikKICAgICAgICAg
ICAgICAgICAgICAgICAgIHRocm93RXJyb3IoZXhlYywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJB
dHRlbXB0aW5nIHRvIGNoYW5nZSB2YWx1ZSBvZiBhIHJlYWRvbmx5IHByb3BlcnR5LiIpKTsKICAg
ICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgIH0KICAgICAg
ICAgICAgIH0KLSAgICAgICAgfSBlbHNlIGlmIChjdXJyZW50LmF0dHJpYnV0ZXNFcXVhbChkZXNj
cmlwdG9yKSkgewotICAgICAgICAgICAgaWYgKCFkZXNjcmlwdG9yLnZhbHVlKCkpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgICAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xvdDsK
LSAgICAgICAgICAgIG9iamVjdC0+bWV0aG9kVGFibGUoKS0+cHV0KG9iamVjdCwgZXhlYywgcHJv
cGVydHlOYW1lLCBkZXNjcmlwdG9yLnZhbHVlKCksIHNsb3QpOwotICAgICAgICAgICAgaWYgKGV4
ZWMtPmhhZEV4Y2VwdGlvbigpKQotICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CisgICAgICAgIGlmIChjdXJyZW50LmF0dHJp
YnV0ZXNFcXVhbChkZXNjcmlwdG9yKSAmJiAhZGVzY3JpcHRvci52YWx1ZSgpKQorICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgIG9iamVjdC0+bWV0aG9kVGFibGUoKS0+ZGVsZXRlUHJv
cGVydHkob2JqZWN0LCBleGVjLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICByZXR1cm4gcHV0RGVz
Y3JpcHRvcihleGVjLCBvYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgY3VycmVudC5h
dHRyaWJ1dGVzV2l0aE92ZXJyaWRlKGRlc2NyaXB0b3IpLCBjdXJyZW50KTsKICAgICB9CkBAIC03
MzQsMTUgKzczMSwxNCBAQCBib29sIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVj
CiAgICAgaWYgKCFhY2Nlc3NvcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIEdldHRlclNl
dHRlciogZ2V0dGVyU2V0dGVyID0gYXNHZXR0ZXJTZXR0ZXIoYWNjZXNzb3IpOwotICAgIGlmIChj
dXJyZW50LmF0dHJpYnV0ZXNFcXVhbChkZXNjcmlwdG9yKSkgewotICAgICAgICBpZiAoZGVzY3Jp
cHRvci5zZXR0ZXJQcmVzZW50KCkpCi0gICAgICAgICAgICBnZXR0ZXJTZXR0ZXItPnNldFNldHRl
cihleGVjLT5nbG9iYWxEYXRhKCksIGRlc2NyaXB0b3Iuc2V0dGVyT2JqZWN0KCkpOwotICAgICAg
ICBpZiAoZGVzY3JpcHRvci5nZXR0ZXJQcmVzZW50KCkpCi0gICAgICAgICAgICBnZXR0ZXJTZXR0
ZXItPnNldEdldHRlcihleGVjLT5nbG9iYWxEYXRhKCksIGRlc2NyaXB0b3IuZ2V0dGVyT2JqZWN0
KCkpOworICAgIGlmIChkZXNjcmlwdG9yLnNldHRlclByZXNlbnQoKSkKKyAgICAgICAgZ2V0dGVy
U2V0dGVyLT5zZXRTZXR0ZXIoZXhlYy0+Z2xvYmFsRGF0YSgpLCBkZXNjcmlwdG9yLnNldHRlck9i
amVjdCgpKTsKKyAgICBpZiAoZGVzY3JpcHRvci5nZXR0ZXJQcmVzZW50KCkpCisgICAgICAgIGdl
dHRlclNldHRlci0+c2V0R2V0dGVyKGV4ZWMtPmdsb2JhbERhdGEoKSwgZGVzY3JpcHRvci5nZXR0
ZXJPYmplY3QoKSk7CisgICAgaWYgKGN1cnJlbnQuYXR0cmlidXRlc0VxdWFsKGRlc2NyaXB0b3Ip
KQogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9CiAgICAgb2JqZWN0LT5tZXRob2RUYWJsZSgp
LT5kZWxldGVQcm9wZXJ0eShvYmplY3QsIGV4ZWMsIHByb3BlcnR5TmFtZSk7Ci0gICAgdW5zaWdu
ZWQgYXR0cnMgPSBjdXJyZW50LmF0dHJpYnV0ZXNXaXRoT3ZlcnJpZGUoZGVzY3JpcHRvcik7Cisg
ICAgdW5zaWduZWQgYXR0cnMgPSBkZXNjcmlwdG9yLmF0dHJpYnV0ZXNPdmVycmlkaW5nQ3VycmVu
dChjdXJyZW50KTsKICAgICBvYmplY3QtPnB1dERpcmVjdEFjY2Vzc29yKGV4ZWMtPmdsb2JhbERh
dGEoKSwgcHJvcGVydHlOYW1lLCBnZXR0ZXJTZXR0ZXIsIGF0dHJzIHwgQWNjZXNzb3IpOwogICAg
IHJldHVybiB0cnVlOwogfQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2Jq
ZWN0Q29uc3RydWN0b3IuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL09iamVjdENvbnN0cnVjdG9yLmNwcAkocmV2aXNpb24gMTA3ODQwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvT2JqZWN0Q29uc3RydWN0b3IuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0zNDIsOSArMzQyLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBvYmpl
Y3RDb25zdAogewogICAgIGlmICghZXhlYy0+YXJndW1lbnQoMCkuaXNPYmplY3QoKSkKICAgICAg
ICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVUeXBlRXJyb3IoZXhlYywgIlByb3Bl
cnRpZXMgY2FuIG9ubHkgYmUgZGVmaW5lZCBvbiBPYmplY3RzLiIpKTsKLSAgICBpZiAoIWV4ZWMt
PmFyZ3VtZW50KDEpLmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3IoZXhl
YywgY3JlYXRlVHlwZUVycm9yKGV4ZWMsICJQcm9wZXJ0eSBkZXNjcmlwdG9yIGxpc3QgbXVzdCBi
ZSBhbiBPYmplY3QuIikpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZGVmaW5lUHJvcGVy
dGllcyhleGVjLCBhc09iamVjdChleGVjLT5hcmd1bWVudCgwKSksIGFzT2JqZWN0KGV4ZWMtPmFy
Z3VtZW50KDEpKSkpOworICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoZGVmaW5lUHJvcGVydGll
cyhleGVjLCBhc09iamVjdChleGVjLT5hcmd1bWVudCgwKSksIGV4ZWMtPmFyZ3VtZW50KDEpLnRv
T2JqZWN0KGV4ZWMpKSk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwgb2JqZWN0
Q29uc3RydWN0b3JDcmVhdGUoRXhlY1N0YXRlKiBleGVjKQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvUHJvcGVydHlEZXNjcmlwdG9yLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eURlc2NyaXB0b3IuY3BwCShyZXZpc2lv
biAxMDc4NDApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9Qcm9wZXJ0eURlc2Ny
aXB0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMTcsMTIgKzIxNywxNiBAQCB1bnNpZ25lZCBQ
cm9wZXJ0eURlc2NyaXB0b3I6OmF0dHJpYnV0ZXNXCiAgICAgICAgIG5ld0F0dHJpYnV0ZXMgXj0g
RG9udERlbGV0ZTsKICAgICBpZiAoc2hhcmVkU2VlbiAmIEVudW1lcmFibGVQcmVzZW50ICYmIG1p
c21hdGNoICYgRG9udEVudW0pCiAgICAgICAgIG5ld0F0dHJpYnV0ZXMgXj0gRG9udEVudW07Cisg
ICAgaWYgKGlzQWNjZXNzb3JEZXNjcmlwdG9yKCkgJiYgb3RoZXIuaXNEYXRhRGVzY3JpcHRvcigp
KQorICAgICAgICBuZXdBdHRyaWJ1dGVzIHw9IFJlYWRPbmx5OwogICAgIHJldHVybiBuZXdBdHRy
aWJ1dGVzOwogfQogCiB1bnNpZ25lZCBQcm9wZXJ0eURlc2NyaXB0b3I6OmF0dHJpYnV0ZXNPdmVy
cmlkaW5nQ3VycmVudChjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIGN1cnJlbnQpIGNvbnN0CiB7
CiAgICAgdW5zaWduZWQgY3VycmVudEF0dHJpYnV0ZXMgPSBjdXJyZW50Lm1fYXR0cmlidXRlczsK
KyAgICBpZiAoaXNEYXRhRGVzY3JpcHRvcigpICYmIGN1cnJlbnQuaXNBY2Nlc3NvckRlc2NyaXB0
b3IoKSkKKyAgICAgICAgY3VycmVudEF0dHJpYnV0ZXMgfD0gUmVhZE9ubHk7CiAgICAgdW5zaWdu
ZWQgb3ZlcnJpZGVNYXNrID0gMDsKICAgICBpZiAod3JpdGFibGVQcmVzZW50KCkpCiAgICAgICAg
IG92ZXJyaWRlTWFzayB8PSBSZWFkT25seTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1N0cnVjdHVyZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlLmNwcAkocmV2aXNpb24gMTA3ODQwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDY5LDcg
KzQ2OSw3IEBAIFN0cnVjdHVyZSogU3RydWN0dXJlOjpmcmVlemVUcmFuc2l0aW9uKEoKICAgICBp
ZiAodHJhbnNpdGlvbi0+bV9wcm9wZXJ0eVRhYmxlKSB7CiAgICAgICAgIFByb3BlcnR5VGFibGU6
Oml0ZXJhdG9yIGVuZCA9IHRyYW5zaXRpb24tPm1fcHJvcGVydHlUYWJsZS0+ZW5kKCk7CiAgICAg
ICAgIGZvciAoUHJvcGVydHlUYWJsZTo6aXRlcmF0b3IgaXRlciA9IHRyYW5zaXRpb24tPm1fcHJv
cGVydHlUYWJsZS0+YmVnaW4oKTsgaXRlciAhPSBlbmQ7ICsraXRlcikKLSAgICAgICAgICAgIGl0
ZXItPmF0dHJpYnV0ZXMgfD0gKERvbnREZWxldGUgfCBSZWFkT25seSk7CisgICAgICAgICAgICBp
dGVyLT5hdHRyaWJ1dGVzIHw9IGl0ZXItPmF0dHJpYnV0ZXMgJiBBY2Nlc3NvciA/IERvbnREZWxl
dGUgOiAoRG9udERlbGV0ZSB8IFJlYWRPbmx5KTsKICAgICB9CiAKICAgICByZXR1cm4gdHJhbnNp
dGlvbjsKQEAgLTUyMCw3ICs1MjAsOSBAQCBib29sIFN0cnVjdHVyZTo6aXNGcm96ZW4oSlNHbG9i
YWxEYXRhJiBnCiAKICAgICBQcm9wZXJ0eVRhYmxlOjppdGVyYXRvciBlbmQgPSBtX3Byb3BlcnR5
VGFibGUtPmVuZCgpOwogICAgIGZvciAoUHJvcGVydHlUYWJsZTo6aXRlcmF0b3IgaXRlciA9IG1f
cHJvcGVydHlUYWJsZS0+YmVnaW4oKTsgaXRlciAhPSBlbmQ7ICsraXRlcikgewotICAgICAgICBp
ZiAoKGl0ZXItPmF0dHJpYnV0ZXMgJiAoRG9udERlbGV0ZSB8IFJlYWRPbmx5KSkgIT0gKERvbnRE
ZWxldGUgfCBSZWFkT25seSkpCisgICAgICAgIGlmICghKGl0ZXItPmF0dHJpYnV0ZXMgJiBEb250
RGVsZXRlKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgaWYgKCEoaXRlci0+
YXR0cmlidXRlcyAmIChSZWFkT25seSB8IEFjY2Vzc29yKSkpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogICAgIHJldHVybiB0cnVlOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTA3ODgw
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMzEg
QEAKKzIwMTItMDItMTUgIEdhdmluIEJhcnJhY2xvdWdoICA8YmFycmFjbG91Z2hAYXBwbGUuY29t
PgorCisgICAgICAgIE51bWVyb3VzIHRyaXZpYWwgYnVncyBpbiBPYmplY3QuZGVmaW5lUHJvcGVy
dHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTc4Nzc3
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhlcmUg
YXJlIGEgaGFuZGZ1bCBvZiByZWFsbHkgdHJpdmlhbCBidWdzLCByZWxhdGVkIHRvIE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eToKKyAgICAgICAgICAgICogUmVkZWZpbmluZyBhbiBhY2Nlc3NvciB3aXRo
IGRpZmZlcmVudCBhdHRyaWJ1dGVzIGNoYW5nZXMgdGhlIGF0dHJpYnV0ZXMsIGJ1dCBub3QgdGhl
IGdldC9zZXQgZnVuY3Rpb25zIQorICAgICAgICAgICAgKiBDYWxsaW5nIGFuIHVuZGVmaW5lZCBz
ZXR0ZXIgc2hvdWxkIG9ubHkgdGhyb3cgaW4gc3RyaWN0IG1vZGUuCisgICAgICAgICAgICAqIFdo
ZW4gcmVkZWZpbmluZyBhbiBhY2Nlc3NvciB0byBhIGRhdGEgZGVjcmlwdG9yLCBpZiB3cml0YWJs
ZSBpcyBub3Qgc3BlY2lmaWVkIHdlIHNob3VsZCBkZWZhdWx0IHRvIGZhbHNlLgorICAgICAgICAg
ICAgKiBBbnkgYXR0ZW1wdCB0byByZWRlZmluZSBhIG5vbi1jb25maWd1cmFibGUgcHJvcGVydHkg
b2YgYW4gYXJyYXkgYXMgY29uZmlndXJhYmxlIHNob3VsZCBiZSByZWplY3RlZC4KKyAgICAgICAg
ICAgICogT2JqZWN0LmRlZmluZVByb3BlcnRpZXMgc2hvdWxkIGNhbGwgdG9PYmplY3Qgb24gJ1By
b3BlcnRpZXMnIGFyZ3VtZW50LCByYXRoZXIgdGhhbiB0aHJvd2luZyBpZiBpdCBpcyBub3QgYW4g
b2JqZWN0LgorICAgICAgICAgICAgKiBJZiBwcmV2ZW50RXh0ZW5zaW9ucyBoYXMgYmVlbiBjYWxs
ZWQgb24gYW4gYXJyYXksIHN1YnNlcXVlbnQgYXNzaWdubWVudCBiZXlvbmQgYXJyYXkgYm91bmRz
IHNob3VsZCBmYWlsLgorICAgICAgICAgICAgKiAnaXNGcm96ZW4nIHNob3VsZG4ndCBiZSBjaGVj
a2luZyB0aGUgUmVhZE9ubHkgYml0IGZvciBhY2Nlc3NvciBkZXNjcmlwdG9ycyAod2UgcHJlc2Vu
dGx5IGFsd2F5cyBrZWVwIHRoaXMgYml0IGFzICdmYWxzZScpLgorICAgICAgICAgICAgKiBTaG91
bGQgYmUgYWJsZSB0byByZWRlZmluZSBhbiBub24td3JpdGFibGUsIG5vbi1jb25maWd1cmFibGUg
cHJvcGVydHksIHdpdGggdGhlIHNhbWUgdmFsdWUgYW5kIGF0dHJpYnV0ZXMuCisgICAgICAgICAg
ICAqIFNob3VsZCBiZSBhYmxlIHRvIGRlZmluZSBhbiBub24tY29uZmlndXJhYmxlIGFjY2Vzc29y
LgorICAgICAgICBUaGVzZSBhcmUgbW9zdGx5IGFsbCBvbmUtbGluZSBjaGFuZ2VzLCBlLmcuIGlu
dmVydGVkIGJvb2xlYW4gY2hlY2tzLCBtYXNraW5nIGFnYWluc3Qgd3JvbmcgYXR0cmlidXRlLgor
CisgICAgICAgICogZmFzdC9qcy9PYmplY3QtZGVmaW5lUHJvcGVydGllcy1leHBlY3RlZC50eHQ6
CisgICAgICAgICogZmFzdC9qcy9PYmplY3QtZGVmaW5lUHJvcGVydHktZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIGZhc3QvanMvcHJldmVudEV4dGVuc2lvbnMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGZhc3QvanMvcHJvcGVydHktZ2V0dGVycy1hbmQtc2V0dGVycy1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9qcy9zY3JpcHQtdGVzdHMvT2JqZWN0LWRlZmluZVByb3BlcnR5LmpzOgor
ICAgICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL3ByZXZlbnRFeHRlbnNpb25zLmpzOgorICAg
ICAgICAqIGZhc3QvanMvc2NyaXB0LXRlc3RzL3Byb3BlcnR5LWdldHRlcnMtYW5kLXNldHRlcnMu
anM6CisgICAgICAgICAgICAtIFVwZGF0ZSByZXN1bHQgJiBhZGQgbmV3IHRlc3QgY2FzZXMgZm9y
IGFsbCBidWdzIGZpeGVkLgorCiAyMDEyLTAyLTE1ICBBbGV4ZXkgUHJvc2t1cnlha292ICA8YXBA
YXBwbGUuY29tPgogCiAgICAgICAgIENyYXNoIGFmdGVyIHRyeWluZyB0byB1c2UgRmlsZVJlYWRl
ciBpbiBhIGRvY3VtZW50IHdpdGggbnVsbCBvcmlnaW4gc3RyaW5nCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2pzL09iamVjdC1kZWZpbmVQcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL09iamVjdC1kZWZpbmVQcm9wZXJ0aWVzLWV4cGVjdGVk
LnR4dAkocmV2aXNpb24gMTA3ODQwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9PYmplY3QtZGVm
aW5lUHJvcGVydGllcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTUsNyArNSw3IEBA
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEEKIAogUEFTUyBPYmplY3Qu
ZGVmaW5lUHJvcGVydGllcygpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFByb3BlcnRpZXMg
Y2FuIG9ubHkgYmUgZGVmaW5lZCBvbiBPYmplY3RzLi4KIFBBU1MgT2JqZWN0LmRlZmluZVByb3Bl
cnRpZXMoJ2Egc3RyaW5nJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUHJvcGVydGllcyBj
YW4gb25seSBiZSBkZWZpbmVkIG9uIE9iamVjdHMuLgotUEFTUyBPYmplY3QuZGVmaW5lUHJvcGVy
dGllcyh7fSwgJ2Egc3RyaW5nJykgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogUHJvcGVydHkg
ZGVzY3JpcHRvciBsaXN0IG11c3QgYmUgYW4gT2JqZWN0Li4KK1BBU1MgT2JqZWN0LmRlZmluZVBy
b3BlcnRpZXMoe30sICdhIHN0cmluZycpIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IFByb3Bl
cnR5IGRlc2NyaXB0aW9uIG11c3QgYmUgYW4gb2JqZWN0Li4KIFBBU1MgSlNPTi5zdHJpbmdpZnko
T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoe30se3Byb3BlcnR5Ont2YWx1ZTonZm9vJywgZW51bWVy
YWJsZTp0cnVlfSwgcHJvcGVydHkyOnt2YWx1ZTonZm9vJywgZW51bWVyYWJsZTp0cnVlfX0pKSBp
cyAneyJwcm9wZXJ0eSI6ImZvbyIsInByb3BlcnR5MiI6ImZvbyJ9JwogUEFTUyBKU09OLnN0cmlu
Z2lmeShPYmplY3QuZGVmaW5lUHJvcGVydGllcyh7fSx7cHJvcGVydHk6e3ZhbHVlOidmb28nfSwg
cHJvcGVydHkyOnt2YWx1ZTonZm9vJywgZW51bWVyYWJsZTp0cnVlfX0pKSBpcyAneyJwcm9wZXJ0
eTIiOiJmb28ifScKIFBBU1MgSlNPTi5zdHJpbmdpZnkoT2JqZWN0LmRlZmluZVByb3BlcnRpZXMo
e3Byb3BlcnR5Oidmb28nfSx7cHJvcGVydHk6e3ZhbHVlOidmb28nLCBlbnVtZXJhYmxlOnRydWV9
LCBwcm9wZXJ0eTI6e3ZhbHVlOidmb28nLCBlbnVtZXJhYmxlOnRydWV9fSkpIGlzICd7InByb3Bl
cnR5IjoiZm9vIiwicHJvcGVydHkyIjoiZm9vIn0nCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pz
L09iamVjdC1kZWZpbmVQcm9wZXJ0eS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvZmFzdC9qcy9PYmplY3QtZGVmaW5lUHJvcGVydHktZXhwZWN0ZWQudHh0CShyZXZpc2lv
biAxMDc4NDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL09iamVjdC1kZWZpbmVQcm9wZXJ0eS1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTU4LDYgKzU4LDIwIEBAIFBBU1MgT2JqZWN0
LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmUKIFBBU1MgT2JqZWN0LmRlZmluZVByb3BlcnR5
KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHt2YWx1ZTogMX0pLCAnZm9vJywge3Nl
dDogc2V0dGVyMX0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEF0dGVtcHRpbmcgdG8gY2hh
bmdlIGFjY2VzcyBtZWNoYW5pc20gZm9yIGFuIHVuY29uZmlndXJhYmxlIHByb3BlcnR5Li4KIFBB
U1MgT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2Zvbycs
IHt2YWx1ZTogMSwgY29uZmlndXJhYmxlOiB0cnVlfSksICdmb28nLCB7Z2V0OiBnZXR0ZXIxfSku
Zm9vIHRocmV3IGV4Y2VwdGlvbiBjYWxsZWQgZ2V0dGVyMS4KIFBBU1MgT2JqZWN0LmRlZmluZVBy
b3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHt2YWx1ZTogMSwgY29uZmln
dXJhYmxlOiB0cnVlfSksICdmb28nLCB7c2V0OiBzZXR0ZXIxfSkuZm9vPSd0ZXN0JyB0aHJldyBl
eGNlcHRpb24gY2FsbGVkIHNldHRlcjEuCitQQVNTIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmpl
Y3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7dmFsdWU6IDEsIGNvbmZpZ3VyYWJsZTogdHJ1
ZSwgd3JpdGFibGU6IGZhbHNlfSksICdmb28nLCB7dmFsdWU6IDIsIGNvbmZpZ3VyYWJsZTogdHJ1
ZSwgd3JpdGFibGU6IHRydWV9KS5mb28gaXMgMgorUEFTUyBPYmplY3QuZGVmaW5lUHJvcGVydHko
T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge3ZhbHVlOiAxLCBjb25maWd1cmFibGU6
IHRydWUsIHdyaXRhYmxlOiBmYWxzZX0pLCAnZm9vJywge3ZhbHVlOiAyLCBjb25maWd1cmFibGU6
IHRydWUsIHdyaXRhYmxlOiBmYWxzZX0pLmZvbyBpcyAyCitQQVNTIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7dmFsdWU6IDEsIGNvbmZpZ3Vy
YWJsZTogZmFsc2UsIHdyaXRhYmxlOiBmYWxzZX0pLCAnZm9vJywge3ZhbHVlOiAxLCBjb25maWd1
cmFibGU6IGZhbHNlLCB3cml0YWJsZTogZmFsc2V9KS5mb28gaXMgMQorUEFTUyBPYmplY3QuZGVm
aW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDogZnVuY3Rp
b24oKSB7IHJldHVybiAxOyB9LCBjb25maWd1cmFibGU6IHRydWUsIGVudW1lcmFibGU6IHRydWV9
KSwgJ2ZvbycsIHtnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMjsgfSwgY29uZmlndXJhYmxlOiB0
cnVlLCBlbnVtZXJhYmxlOiBmYWxzZX0pLmZvbyBpcyAyCitQQVNTIE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OiBmdW5jdGlvbigpIHsg
cmV0dXJuIDE7IH0sIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogZmFsc2V9KSwgJ2Zv
bycsIHtnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMjsgfSwgY29uZmlndXJhYmxlOiB0cnVlLCBl
bnVtZXJhYmxlOiBmYWxzZX0pLmZvbyBpcyAyCitQQVNTIHZhciByZXN1bHQgPSBmYWxzZTsgdmFy
IG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9v
Jywge2dldDogZnVuY3Rpb24oKSB7IHJldHVybiAxOyB9LCBjb25maWd1cmFibGU6IHRydWUsIGVu
dW1lcmFibGU6IHRydWV9KSwgJ2ZvbycsIHtnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMjsgfSwg
Y29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiBmYWxzZX0pOyBmb3IgKHggaW4gbykgcmVz
dWx0ID0gdHJ1ZTsgcmVzdWx0IGlzIGZhbHNlCitQQVNTIHZhciByZXN1bHQgPSBmYWxzZTsgdmFy
IG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9v
Jywge2dldDogZnVuY3Rpb24oKSB7IHJldHVybiAxOyB9LCBjb25maWd1cmFibGU6IHRydWUsIGVu
dW1lcmFibGU6IGZhbHNlfSksICdmb28nLCB7Z2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIDI7IH0s
IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZX0pOyBmb3IgKHggaW4gbykgcmVz
dWx0ID0gdHJ1ZTsgcmVzdWx0IGlzIHRydWUKK1BBU1MgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJv
cGVydHkoe30sICdmb28nLCB7Z2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIDE7IH0sIGNvbmZpZ3Vy
YWJsZTogdHJ1ZX0pOyBkZWxldGUgby5mb287IG8uZm9vIGlzIHVuZGVmaW5lZC4KK1BBU1MgdmFy
IG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OiBmdW5jdGlvbigpIHsg
cmV0dXJuIDE7IH0sIGNvbmZpZ3VyYWJsZTogZmFsc2V9KTsgZGVsZXRlIG8uZm9vOyBvLmZvbyBp
cyAxCitQQVNTIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30s
ICdmb28nLCB7Z2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIDE7IH0sIGNvbmZpZ3VyYWJsZTogdHJ1
ZX0pLCAnZm9vJywge3ZhbHVlOjJ9KS5mb28gaXMgMgorUEFTUyBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDogZnVuY3Rpb24oKSB7IHJl
dHVybiAxOyB9LCBjb25maWd1cmFibGU6IGZhbHNlfSksICdmb28nLCB7dmFsdWU6Mn0pLmZvbyB0
aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBdHRlbXB0aW5nIHRvIGNoYW5nZSBhY2Nlc3MgbWVj
aGFuaXNtIGZvciBhbiB1bmNvbmZpZ3VyYWJsZSBwcm9wZXJ0eS4uCitQQVNTIHZhciBvID0gT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6
IGZ1bmN0aW9uKCkgeyByZXR1cm4gMTsgfSwgY29uZmlndXJhYmxlOiB0cnVlfSksICdmb28nLCB7
dmFsdWU6Mn0pOyBvLmZvbyA9IDM7IG8uZm9vIGlzIDIKK1BBU1MgT2JqZWN0LmRlZmluZVByb3Bl
cnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHt2YWx1ZTogMX0pLCAnZm9vJywg
e3ZhbHVlOjIsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0pIHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6
IEF0dGVtcHRpbmcgdG8gY29uZmlndXJhYmxlIGF0dHJpYnV0ZSBvZiB1bmNvbmZpZ3VyYWJsZSBw
cm9wZXJ0eS4uCitQQVNTIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVy
dHkoW10sICdmb28nLCB7dmFsdWU6IDF9KSwgJ2ZvbycsIHt2YWx1ZToyLCBjb25maWd1cmFibGU6
IHRydWV9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBBdHRlbXB0aW5nIHRvIGNvbmZpZ3Vy
YWJsZSBhdHRyaWJ1dGUgb2YgdW5jb25maWd1cmFibGUgcHJvcGVydHkuLgogUEFTUyB2YXIgbyA9
IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4g
NDI7fSwgc2V0OmZ1bmN0aW9uKHgpe3RoaXMucmVzdWx0ID0geDt9fSk7IG8uZm9vIGlzIDQyCiBQ
QVNTIHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDpmdW5jdGlv
bigpe3JldHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KTsgby5m
b28gPSA0Mjsgby5yZXN1bHQ7IGlzIDQyCiBQQVNTIHZhciBvID0gT2JqZWN0LmRlZmluZVByb3Bl
cnR5KHt9LCAnZm9vJywge2dldDp1bmRlZmluZWQsIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3Vs
dCA9IHg7fX0pOyBvLmZvbyBpcyB1bmRlZmluZWQKQEAgLTY1LDExICs3OSwxMSBAQCBQQVNTIHZh
ciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnCiBQQVNTIHZhciBvID0gT2JqZWN0LmRl
ZmluZVByb3BlcnR5KHt9LCAnZm9vJywge3NldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7
fX0pOyBvLmZvbyBpcyB1bmRlZmluZWQKIFBBU1MgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoe30sICdmb28nLCB7c2V0OmZ1bmN0aW9uKHgpe3RoaXMucmVzdWx0ID0geDt9fSk7IG8uZm9v
ID0gNDI7IG8ucmVzdWx0OyBpcyA0MgogUEFTUyB2YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0
eSh7fSwgJ2ZvbycsIHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNDI7fSwgc2V0OnVuZGVmaW5lZH0p
OyBvLmZvbyBpcyA0MgotUEFTUyB2YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2Zv
bycsIHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNDI7fSwgc2V0OnVuZGVmaW5lZH0pOyBvLmZvbyA9
IDQyOyBvLnJlc3VsdDsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogc2V0dGluZyBhIHByb3Bl
cnR5IHRoYXQgaGFzIG9ubHkgYSBnZXR0ZXIuCitQQVNTIHZhciBvID0gT2JqZWN0LmRlZmluZVBy
b3BlcnR5KHt9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0Mjt9LCBzZXQ6dW5kZWZp
bmVkfSk7IG8uZm9vID0gNDI7IG8ucmVzdWx0OyBpcyB1bmRlZmluZWQKIFBBU1MgdmFyIG8gPSBP
YmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQy
O319KTsgby5mb28gaXMgNDIKLVBBU1MgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30s
ICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO319KTsgby5mb28gPSA0Mjsgby5yZXN1
bHQ7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHNldHRpbmcgYSBwcm9wZXJ0eSB0aGF0IGhh
cyBvbmx5IGEgZ2V0dGVyLgorUEFTUyB2YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwg
J2ZvbycsIHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNDI7fX0pOyBvLmZvbyA9IDQyOyBvLnJlc3Vs
dDsgaXMgdW5kZWZpbmVkCiBQQVNTIHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAn
Zm9vJywge2dldDp1bmRlZmluZWQsIHNldDp1bmRlZmluZWR9KTsgby5mb28gaXMgdW5kZWZpbmVk
Ci1QQVNTIHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDp1bmRl
ZmluZWQsIHNldDp1bmRlZmluZWR9KTsgby5mb28gPSA0Mjsgby5yZXN1bHQ7IHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IHNldHRpbmcgYSBwcm9wZXJ0eSB0aGF0IGhhcyBvbmx5IGEgZ2V0dGVy
LgorUEFTUyB2YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6dW5k
ZWZpbmVkLCBzZXQ6dW5kZWZpbmVkfSk7IG8uZm9vID0gNDI7IG8ucmVzdWx0OyBpcyB1bmRlZmlu
ZWQKIFBBU1MgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3Bl
cnR5KHtmb286MX0sICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDpmdW5j
dGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7fX0pLCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVy
biAxMzt9fSk7IG8uZm9vIGlzIDEzCiBQQVNTIHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5
KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7Zm9vOjF9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3Jl
dHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KSwgJ2ZvbycsIHtn
ZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMTM7fX0pOyBvLmZvbyA9IDQyOyBvLnJlc3VsdDsgaXMgNDIK
IFBBU1MgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5
KHtmb286MX0sICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDpmdW5jdGlv
bih4KXt0aGlzLnJlc3VsdCA9IHg7fX0pLCAnZm9vJywge2dldDp1bmRlZmluZWR9KTsgby5mb28g
aXMgdW5kZWZpbmVkCkBAIC03Nyw3ICs5MSwyNyBAQCBQQVNTIHZhciBvID0gT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KE9iamVjCiBQQVNTIHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVj
dC5kZWZpbmVQcm9wZXJ0eSh7Zm9vOjF9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0
Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KSwgJ2ZvbycsIHtzZXQ6ZnVu
Y3Rpb24oKXt0aGlzLnJlc3VsdCA9IDEzO319KTsgby5mb28gaXMgNDIKIFBBU1MgdmFyIG8gPSBP
YmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHtmb286MX0sICdmb28n
LCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3Vs
dCA9IHg7fX0pLCAnZm9vJywge3NldDpmdW5jdGlvbigpe3RoaXMucmVzdWx0ID0gMTM7fX0pOyBv
LmZvbyA9IDQyOyBvLnJlc3VsdDsgaXMgMTMKIFBBU1MgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJv
cGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHtmb286MX0sICdmb28nLCB7Z2V0OmZ1bmN0aW9u
KCl7cmV0dXJuIDQyO30sIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7fX0pLCAnZm9v
Jywge3NldDp1bmRlZmluZWR9KTsgby5mb28gaXMgNDIKLVBBU1MgdmFyIG8gPSBPYmplY3QuZGVm
aW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHtmb286MX0sICdmb28nLCB7Z2V0OmZ1
bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7fX0p
LCAnZm9vJywge3NldDp1bmRlZmluZWR9KTsgby5mb28gPSA0Mjsgby5yZXN1bHQ7IHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IHNldHRpbmcgYSBwcm9wZXJ0eSB0aGF0IGhhcyBvbmx5IGEgZ2V0
dGVyLgorUEFTUyB2YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QuZGVmaW5lUHJv
cGVydHkoe2ZvbzoxfSwgJ2ZvbycsIHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNDI7fSwgc2V0OmZ1
bmN0aW9uKHgpe3RoaXMucmVzdWx0ID0geDt9fSksICdmb28nLCB7c2V0OnVuZGVmaW5lZH0pOyBv
LmZvbyA9IDQyOyBvLnJlc3VsdDsgaXMgdW5kZWZpbmVkCitQQVNTICd1c2Ugc3RyaWN0JzsgdmFy
IG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0
dXJuIDQyO30sIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7fX0pOyBvLmZvbyBpcyA0
MgorUEFTUyAndXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAn
Zm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5y
ZXN1bHQgPSB4O319KTsgby5mb28gPSA0Mjsgby5yZXN1bHQ7IGlzIDQyCitQQVNTICd1c2Ugc3Ry
aWN0JzsgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OnVuZGVm
aW5lZCwgc2V0OmZ1bmN0aW9uKHgpe3RoaXMucmVzdWx0ID0geDt9fSk7IG8uZm9vIGlzIHVuZGVm
aW5lZAorUEFTUyAndXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9
LCAnZm9vJywge2dldDp1bmRlZmluZWQsIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7
fX0pOyBvLmZvbyA9IDQyOyBvLnJlc3VsdDsgaXMgNDIKK1BBU1MgJ3VzZSBzdHJpY3QnOyB2YXIg
byA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtzZXQ6ZnVuY3Rpb24oeCl7dGhp
cy5yZXN1bHQgPSB4O319KTsgby5mb28gaXMgdW5kZWZpbmVkCitQQVNTICd1c2Ugc3RyaWN0Jzsg
dmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7c2V0OmZ1bmN0aW9uKHgp
e3RoaXMucmVzdWx0ID0geDt9fSk7IG8uZm9vID0gNDI7IG8ucmVzdWx0OyBpcyA0MgorUEFTUyAn
dXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dl
dDpmdW5jdGlvbigpe3JldHVybiA0Mjt9LCBzZXQ6dW5kZWZpbmVkfSk7IG8uZm9vIGlzIDQyCitQ
QVNTICd1c2Ugc3RyaWN0JzsgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28n
LCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDp1bmRlZmluZWR9KTsgby5mb28gPSA0
Mjsgby5yZXN1bHQ7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHNldHRpbmcgYSBwcm9wZXJ0
eSB0aGF0IGhhcyBvbmx5IGEgZ2V0dGVyLgorUEFTUyAndXNlIHN0cmljdCc7IHZhciBvID0gT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0Mjt9
fSk7IG8uZm9vIGlzIDQyCitQQVNTICd1c2Ugc3RyaWN0JzsgdmFyIG8gPSBPYmplY3QuZGVmaW5l
UHJvcGVydHkoe30sICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO319KTsgby5mb28g
PSA0Mjsgby5yZXN1bHQ7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHNldHRpbmcgYSBwcm9w
ZXJ0eSB0aGF0IGhhcyBvbmx5IGEgZ2V0dGVyLgorUEFTUyAndXNlIHN0cmljdCc7IHZhciBvID0g
T2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDp1bmRlZmluZWQsIHNldDp1bmRl
ZmluZWR9KTsgby5mb28gaXMgdW5kZWZpbmVkCitQQVNTICd1c2Ugc3RyaWN0JzsgdmFyIG8gPSBP
YmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OnVuZGVmaW5lZCwgc2V0OnVuZGVm
aW5lZH0pOyBvLmZvbyA9IDQyOyBvLnJlc3VsdDsgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjog
c2V0dGluZyBhIHByb3BlcnR5IHRoYXQgaGFzIG9ubHkgYSBnZXR0ZXIuCitQQVNTICd1c2Ugc3Ry
aWN0JzsgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5
KHtmb286MX0sICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDpmdW5jdGlv
bih4KXt0aGlzLnJlc3VsdCA9IHg7fX0pLCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiAx
Mzt9fSk7IG8uZm9vIGlzIDEzCitQQVNTICd1c2Ugc3RyaWN0JzsgdmFyIG8gPSBPYmplY3QuZGVm
aW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHtmb286MX0sICdmb28nLCB7Z2V0OmZ1
bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7fX0p
LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiAxMzt9fSk7IG8uZm9vID0gNDI7IG8ucmVz
dWx0OyBpcyA0MgorUEFTUyAndXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3Bl
cnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7Zm9vOjF9LCAnZm9vJywge2dldDpmdW5jdGlvbigp
e3JldHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KSwgJ2Zvbycs
IHtnZXQ6dW5kZWZpbmVkfSk7IG8uZm9vIGlzIHVuZGVmaW5lZAorUEFTUyAndXNlIHN0cmljdCc7
IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7Zm9v
OjF9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7
dGhpcy5yZXN1bHQgPSB4O319KSwgJ2ZvbycsIHtnZXQ6dW5kZWZpbmVkfSk7IG8uZm9vID0gNDI7
IG8ucmVzdWx0OyBpcyA0MgorUEFTUyAndXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7Zm9vOjF9LCAnZm9vJywge2dldDpmdW5j
dGlvbigpe3JldHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KSwg
J2ZvbycsIHtzZXQ6ZnVuY3Rpb24oKXt0aGlzLnJlc3VsdCA9IDEzO319KTsgby5mb28gaXMgNDIK
K1BBU1MgJ3VzZSBzdHJpY3QnOyB2YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoe2ZvbzoxfSwgJ2ZvbycsIHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNDI7
fSwgc2V0OmZ1bmN0aW9uKHgpe3RoaXMucmVzdWx0ID0geDt9fSksICdmb28nLCB7c2V0OmZ1bmN0
aW9uKCl7dGhpcy5yZXN1bHQgPSAxMzt9fSk7IG8uZm9vID0gNDI7IG8ucmVzdWx0OyBpcyAxMwor
UEFTUyAndXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eSh7Zm9vOjF9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0Mjt9
LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KSwgJ2ZvbycsIHtzZXQ6dW5kZWZp
bmVkfSk7IG8uZm9vIGlzIDQyCitQQVNTICd1c2Ugc3RyaWN0JzsgdmFyIG8gPSBPYmplY3QuZGVm
aW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHtmb286MX0sICdmb28nLCB7Z2V0OmZ1
bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7fX0p
LCAnZm9vJywge3NldDp1bmRlZmluZWR9KTsgby5mb28gPSA0Mjsgby5yZXN1bHQ7IHRocmV3IGV4
Y2VwdGlvbiBUeXBlRXJyb3I6IHNldHRpbmcgYSBwcm9wZXJ0eSB0aGF0IGhhcyBvbmx5IGEgZ2V0
dGVyLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3ByZXZlbnRFeHRlbnNpb25zLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3ByZXZlbnRFeHRlbnNpb25zLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMTA3ODQwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9wcmV2ZW50
RXh0ZW5zaW9ucy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTE0LDYgKzE0LDggQEAg
UEFTUyBPYmplY3QucHJldmVudEV4dGVuc2lvbnMoTWF0aC5zaW4pIAogUEFTUyB2YXIgbyA9IHt9
OyBPYmplY3QucHJldmVudEV4dGVuc2lvbnMobyk7IG8uX19wcm90b19fID0geyBuZXdQcm9wOiAi
U2hvdWxkIG5vdCBzZWUgdGhpcyIgfTsgby5uZXdQcm9wOyBpcyB1bmRlZmluZWQuCiBQQVNTICJ1
c2Ugc3RyaWN0IjsgdmFyIG8gPSB7fTsgT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKG8pOyBvLl9f
cHJvdG9fXyA9IHsgbmV3UHJvcDogIlNob3VsZCBub3Qgc2VlIHRoaXMiIH07IHRocmV3IGV4Y2Vw
dGlvbiBUeXBlRXJyb3I6IEF0dGVtcHRlZCB0byBhc3NpZ24gdG8gcmVhZG9ubHkgcHJvcGVydHku
LgogUEFTUyBPYmplY3QucHJldmVudEV4dGVuc2lvbnMoTWF0aCk7IE1hdGguc3FydCg0KSBpcyAy
CitQQVNTIHZhciBhcnIgPSBPYmplY3QucHJldmVudEV4dGVuc2lvbnMoW10pOyBhcnJbMF0gPSA0
MjsgYXJyWzBdIGlzIHVuZGVmaW5lZC4KK1BBU1MgdmFyIGFyciA9IE9iamVjdC5wcmV2ZW50RXh0
ZW5zaW9ucyhbXSk7IGFyclswXSA9IDQyOyBhcnIubGVuZ3RoIGlzIDAKIFBBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvZmFz
dC9qcy9wcm9wZXJ0eS1nZXR0ZXJzLWFuZC1zZXR0ZXJzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3Byb3BlcnR5LWdldHRlcnMtYW5kLXNldHRlcnMtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAxMDc4NDApCisrKyBMYXlvdXRUZXN0cy9mYXN0L2pzL3Byb3Bl
cnR5LWdldHRlcnMtYW5kLXNldHRlcnMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0x
MCw3ICsxMCw3IEBAIF9fZGVmaW5lR2V0dGVyX18gYW5kIF9fZGVmaW5lU2V0dGVyX18KIFBBU1Mg
bzIuYiBpcyA4CiBQQVNTIG8yLmIgaXMgMTEKIFNldHRpbmcgYSB2YWx1ZSB3aXRob3V0IGhhdmlu
ZyBhIHNldHRlcgotUEFTUyBvMy54ID0gMTA7IHRocmV3IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IHNl
dHRpbmcgYSBwcm9wZXJ0eSB0aGF0IGhhcyBvbmx5IGEgZ2V0dGVyLgorUEFTUyBvMy54ID0gMTA7
IG8zLnggaXMgNDIKIEdldHRpbmcgYSB2YWx1ZSB3aXRob3V0IGhhdmluZyBhIGdldHRlcgogUEFT
UyBvNC54IGlzIHVuZGVmaW5lZC4KIF9fbG9va3VwR2V0dGVyX18gYW5kIF9fbG9va3VwU2V0dGVy
X18KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL09iamVjdC1kZWZpbmVQ
cm9wZXJ0eS5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0
cy9PYmplY3QtZGVmaW5lUHJvcGVydHkuanMJKHJldmlzaW9uIDEwNzg0MCkKKysrIExheW91dFRl
c3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL09iamVjdC1kZWZpbmVQcm9wZXJ0eS5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtODEsNiArODEsMzQgQEAgc2hvdWxkVGhyb3coIk9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShPYmplYwogc2hvdWxkVGhyb3coIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QuZGVm
aW5lUHJvcGVydHkoe30sICdmb28nLCB7dmFsdWU6IDEsIGNvbmZpZ3VyYWJsZTogdHJ1ZX0pLCAn
Zm9vJywge2dldDogZ2V0dGVyMX0pLmZvbyIsICInY2FsbGVkIGdldHRlcjEnIik7CiBzaG91bGRU
aHJvdygiT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2Zv
bycsIHt2YWx1ZTogMSwgY29uZmlndXJhYmxlOiB0cnVlfSksICdmb28nLCB7c2V0OiBzZXR0ZXIx
fSkuZm9vPSd0ZXN0JyIsICInY2FsbGVkIHNldHRlcjEnIik7CiAKKy8vIFNob3VsZCBiZSBhYmxl
IHRvIHJlZGVmaW5lIGFuIG5vbi13cml0YWJsZSBwcm9wZXJ0eSwgaWYgaXQgaXMgY29uZmlndXJh
YmxlLgorc2hvdWxkQmUoIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVy
dHkoe30sICdmb28nLCB7dmFsdWU6IDEsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IGZh
bHNlfSksICdmb28nLCB7dmFsdWU6IDIsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgd3JpdGFibGU6IHRy
dWV9KS5mb28iLCAiMiIpOworc2hvdWxkQmUoIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7dmFsdWU6IDEsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwg
d3JpdGFibGU6IGZhbHNlfSksICdmb28nLCB7dmFsdWU6IDIsIGNvbmZpZ3VyYWJsZTogdHJ1ZSwg
d3JpdGFibGU6IGZhbHNlfSkuZm9vIiwgIjIiKTsKKworLy8gU2hvdWxkIGJlIGFibGUgdG8gcmVk
ZWZpbmUgYW4gbm9uLXdyaXRhYmxlLCBub24tY29uZmlndXJhYmxlIHByb3BlcnR5LCB3aXRoIHRo
ZSBzYW1lIHZhbHVlIGFuZCBhdHRyaWJ1dGVzLgorc2hvdWxkQmUoIk9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7dmFsdWU6IDEsIGNvbmZpZ3Vy
YWJsZTogZmFsc2UsIHdyaXRhYmxlOiBmYWxzZX0pLCAnZm9vJywge3ZhbHVlOiAxLCBjb25maWd1
cmFibGU6IGZhbHNlLCB3cml0YWJsZTogZmFsc2V9KS5mb28iLCAiMSIpOworCisvLyBTaG91bGQg
YmUgYWJsZSB0byByZWRlZmluZSBhIGNvbmZpZ3VyYWJsZSBhY2Nlc3Nvciwgd2l0aCB0aGUgc2Ft
ZSBvciB3aXRoIGRpZmZlcmVudCBhdHRyaWJ1dGVzLgorLy8gQ2hlY2sgdGhlIGFjY2Vzc29yIGZ1
bmN0aW9uIGNoYW5nZWQuCitzaG91bGRCZSgiT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMTsgfSwg
Y29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiB0cnVlfSksICdmb28nLCB7Z2V0OiBmdW5j
dGlvbigpIHsgcmV0dXJuIDI7IH0sIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogZmFs
c2V9KS5mb28iLCAiMiIpOworc2hvdWxkQmUoIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIDE7IH0s
IGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogZmFsc2V9KSwgJ2ZvbycsIHtnZXQ6IGZ1
bmN0aW9uKCkgeyByZXR1cm4gMjsgfSwgY29uZmlndXJhYmxlOiB0cnVlLCBlbnVtZXJhYmxlOiBm
YWxzZX0pLmZvbyIsICIyIik7CisvLyBDaGVjayB0aGUgYXR0cmlidXRlcyBjaGFuZ2VkLgorc2hv
dWxkQmVGYWxzZSgidmFyIHJlc3VsdCA9IGZhbHNlOyB2YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OiBmdW5jdGlvbigpIHsg
cmV0dXJuIDE7IH0sIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogdHJ1ZX0pLCAnZm9v
Jywge2dldDogZnVuY3Rpb24oKSB7IHJldHVybiAyOyB9LCBjb25maWd1cmFibGU6IHRydWUsIGVu
dW1lcmFibGU6IGZhbHNlfSk7IGZvciAoeCBpbiBvKSByZXN1bHQgPSB0cnVlOyByZXN1bHQiKTsK
K3Nob3VsZEJlVHJ1ZSgidmFyIHJlc3VsdCA9IGZhbHNlOyB2YXIgbyA9IE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OiBmdW5jdGlvbigp
IHsgcmV0dXJuIDE7IH0sIGNvbmZpZ3VyYWJsZTogdHJ1ZSwgZW51bWVyYWJsZTogZmFsc2V9KSwg
J2ZvbycsIHtnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMjsgfSwgY29uZmlndXJhYmxlOiB0cnVl
LCBlbnVtZXJhYmxlOiB0cnVlfSk7IGZvciAoeCBpbiBvKSByZXN1bHQgPSB0cnVlOyByZXN1bHQi
KTsKKworLy8gU2hvdWxkIGJlIGFibGUgdG8gZGVmaW5lIGFuIG5vbi1jb25maWd1cmFibGUgYWNj
ZXNzb3IuCitzaG91bGRCZVVuZGVmaW5lZCgidmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHko
e30sICdmb28nLCB7Z2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIDE7IH0sIGNvbmZpZ3VyYWJsZTog
dHJ1ZX0pOyBkZWxldGUgby5mb287IG8uZm9vIik7CitzaG91bGRCZSgidmFyIG8gPSBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuIDE7IH0s
IGNvbmZpZ3VyYWJsZTogZmFsc2V9KTsgZGVsZXRlIG8uZm9vOyBvLmZvbyIsICcxJyk7CitzaG91
bGRCZSgiT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2Zv
bycsIHtnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMTsgfSwgY29uZmlndXJhYmxlOiB0cnVlfSks
ICdmb28nLCB7dmFsdWU6Mn0pLmZvbyIsICIyIik7CitzaG91bGRUaHJvdygiT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6IGZ1bmN0aW9u
KCkgeyByZXR1cm4gMTsgfSwgY29uZmlndXJhYmxlOiBmYWxzZX0pLCAnZm9vJywge3ZhbHVlOjJ9
KS5mb28iKTsKKworLy8gRGVmaW5pbmcgYSBkYXRhIGRlc2NyaXB0b3Igb3ZlciBhbiBhY2Nlc3Nv
ciBzaG91bGQgcmVzdWx0IGluIGEgcmVhZCBvbmx5IHByb3BlcnR5Lgorc2hvdWxkQmUoInZhciBv
ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2Zvbycs
IHtnZXQ6IGZ1bmN0aW9uKCkgeyByZXR1cm4gMTsgfSwgY29uZmlndXJhYmxlOiB0cnVlfSksICdm
b28nLCB7dmFsdWU6Mn0pOyBvLmZvbyA9IDM7IG8uZm9vIiwgIjIiKTsKKworLy8gVHJ5aW5nIHRv
IHJlZGVmaW5lIGEgbm9uLWNvbmZpZ3VyYWJsZSBwcm9wZXJ0eSBhcyBjb25maWd1cmFibGUgc2hv
dWxkIHRocm93Lgorc2hvdWxkVGhyb3coIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3QuZGVm
aW5lUHJvcGVydHkoe30sICdmb28nLCB7dmFsdWU6IDF9KSwgJ2ZvbycsIHt2YWx1ZToyLCBjb25m
aWd1cmFibGU6IHRydWV9KSIpOworc2hvdWxkVGhyb3coIk9iamVjdC5kZWZpbmVQcm9wZXJ0eShP
YmplY3QuZGVmaW5lUHJvcGVydHkoW10sICdmb28nLCB7dmFsdWU6IDF9KSwgJ2ZvbycsIHt2YWx1
ZToyLCBjb25maWd1cmFibGU6IHRydWV9KSIpOworCiAvLyBUZXN0IGFuIG9iamVjdCB3aXRoIGEg
Z2V0dGVyIHNldHRlci4KIC8vIEVpdGhlciBhY2Nlc3NvciBtYXkgYmUgb21pdHRlZCBvciByZXBs
YWNlZCB3aXRoIHVuZGVmaW5lZCwgb3IgYm90aCBtYXkgYmUgcmVwbGFjZWQgd2l0aCB1bmRlZmlu
ZWQuCiBzaG91bGRCZSgidmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7
Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9
IHg7fX0pOyBvLmZvbyIsICc0MicpCkBAIC05MCwxMSArMTE4LDExIEBAIHNob3VsZEJlKCJ2YXIg
byA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSgKIHNob3VsZEJlKCJ2YXIgbyA9IE9iamVjdC5kZWZp
bmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319
KTsgby5mb28iLCAndW5kZWZpbmVkJykKIHNob3VsZEJlKCJ2YXIgbyA9IE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSh7fSwgJ2ZvbycsIHtzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KTsg
by5mb28gPSA0Mjsgby5yZXN1bHQ7IiwgJzQyJyk7CiBzaG91bGRCZSgidmFyIG8gPSBPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNl
dDp1bmRlZmluZWR9KTsgby5mb28iLCAnNDInKQotc2hvdWxkVGhyb3coInZhciBvID0gT2JqZWN0
LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0Mjt9LCBz
ZXQ6dW5kZWZpbmVkfSk7IG8uZm9vID0gNDI7IG8ucmVzdWx0OyIpOworc2hvdWxkQmUoInZhciBv
ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVy
biA0Mjt9LCBzZXQ6dW5kZWZpbmVkfSk7IG8uZm9vID0gNDI7IG8ucmVzdWx0OyIsICd1bmRlZmlu
ZWQnKTsKIHNob3VsZEJlKCJ2YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2Zvbycs
IHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNDI7fX0pOyBvLmZvbyIsICc0MicpCi1zaG91bGRUaHJv
dygidmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OmZ1bmN0aW9u
KCl7cmV0dXJuIDQyO319KTsgby5mb28gPSA0Mjsgby5yZXN1bHQ7Iik7CitzaG91bGRCZSgidmFy
IG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0
dXJuIDQyO319KTsgby5mb28gPSA0Mjsgby5yZXN1bHQ7IiwgJ3VuZGVmaW5lZCcpOwogc2hvdWxk
QmUoInZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDp1bmRlZmlu
ZWQsIHNldDp1bmRlZmluZWR9KTsgby5mb28iLCAndW5kZWZpbmVkJykKLXNob3VsZFRocm93KCJ2
YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6dW5kZWZpbmVkLCBz
ZXQ6dW5kZWZpbmVkfSk7IG8uZm9vID0gNDI7IG8ucmVzdWx0OyIpOworc2hvdWxkQmUoInZhciBv
ID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDp1bmRlZmluZWQsIHNldDp1
bmRlZmluZWR9KTsgby5mb28gPSA0Mjsgby5yZXN1bHQ7IiwgJ3VuZGVmaW5lZCcpOwogLy8gVGVz
dCByZXBsYWNpbmcgb3IgcmVtb3ZpbmcgZWl0aGVyIHRoZSBnZXR0ZXIgb3Igc2V0dGVyIGluZGl2
aWR1YWxseS4KIHNob3VsZEJlKCJ2YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoe2ZvbzoxfSwgJ2ZvbycsIHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNDI7
fSwgc2V0OmZ1bmN0aW9uKHgpe3RoaXMucmVzdWx0ID0geDt9fSksICdmb28nLCB7Z2V0OmZ1bmN0
aW9uKCl7cmV0dXJuIDEzO319KTsgby5mb28iLCAnMTMnKQogc2hvdWxkQmUoInZhciBvID0gT2Jq
ZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7Zm9vOjF9LCAnZm9vJywg
e2dldDpmdW5jdGlvbigpe3JldHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQg
PSB4O319KSwgJ2ZvbycsIHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gMTM7fX0pOyBvLmZvbyA9IDQy
OyBvLnJlc3VsdDsiLCAnNDInKQpAQCAtMTAzLDQgKzEzMSwyOCBAQCBzaG91bGRCZSgidmFyIG8g
PSBPYmplY3QuZGVmaW5lUHJvcGVydHkoCiBzaG91bGRCZSgidmFyIG8gPSBPYmplY3QuZGVmaW5l
UHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHtmb286MX0sICdmb28nLCB7Z2V0OmZ1bmN0
aW9uKCl7cmV0dXJuIDQyO30sIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7fX0pLCAn
Zm9vJywge3NldDpmdW5jdGlvbigpe3RoaXMucmVzdWx0ID0gMTM7fX0pOyBvLmZvbyIsICc0Micp
CiBzaG91bGRCZSgidmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVBy
b3BlcnR5KHtmb286MX0sICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDpm
dW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7fX0pLCAnZm9vJywge3NldDpmdW5jdGlvbigpe3Ro
aXMucmVzdWx0ID0gMTM7fX0pOyBvLmZvbyA9IDQyOyBvLnJlc3VsdDsiLCAnMTMnKQogc2hvdWxk
QmUoInZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7
Zm9vOjF9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24o
eCl7dGhpcy5yZXN1bHQgPSB4O319KSwgJ2ZvbycsIHtzZXQ6dW5kZWZpbmVkfSk7IG8uZm9vIiwg
JzQyJykKLXNob3VsZFRocm93KCJ2YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShPYmplY3Qu
ZGVmaW5lUHJvcGVydHkoe2ZvbzoxfSwgJ2ZvbycsIHtnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gNDI7
fSwgc2V0OmZ1bmN0aW9uKHgpe3RoaXMucmVzdWx0ID0geDt9fSksICdmb28nLCB7c2V0OnVuZGVm
aW5lZH0pOyBvLmZvbyA9IDQyOyBvLnJlc3VsdDsiKQorc2hvdWxkQmUoInZhciBvID0gT2JqZWN0
LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7Zm9vOjF9LCAnZm9vJywge2dl
dDpmdW5jdGlvbigpe3JldHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4
O319KSwgJ2ZvbycsIHtzZXQ6dW5kZWZpbmVkfSk7IG8uZm9vID0gNDI7IG8ucmVzdWx0OyIsICd1
bmRlZmluZWQnKQorCisvLyBSZXBlYXQgb2YgdGhlIGFib3ZlLCBpbiBzdHJpY3QgbW9kZS4KKy8v
IEVpdGhlciBhY2Nlc3NvciBtYXkgYmUgb21pdHRlZCBvciByZXBsYWNlZCB3aXRoIHVuZGVmaW5l
ZCwgb3IgYm90aCBtYXkgYmUgcmVwbGFjZWQgd2l0aCB1bmRlZmluZWQuCitzaG91bGRCZSgiJ3Vz
ZSBzdHJpY3QnOyB2YXIgbyA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6
ZnVuY3Rpb24oKXtyZXR1cm4gNDI7fSwgc2V0OmZ1bmN0aW9uKHgpe3RoaXMucmVzdWx0ID0geDt9
fSk7IG8uZm9vIiwgJzQyJykKK3Nob3VsZEJlKCIndXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0
LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0Mjt9LCBz
ZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KTsgby5mb28gPSA0Mjsgby5yZXN1bHQ7
IiwgJzQyJyk7CitzaG91bGRCZSgiJ3VzZSBzdHJpY3QnOyB2YXIgbyA9IE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6dW5kZWZpbmVkLCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5y
ZXN1bHQgPSB4O319KTsgby5mb28iLCAndW5kZWZpbmVkJykKK3Nob3VsZEJlKCIndXNlIHN0cmlj
dCc7IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDp1bmRlZmlu
ZWQsIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7fX0pOyBvLmZvbyA9IDQyOyBvLnJl
c3VsdDsiLCAnNDInKTsKK3Nob3VsZEJlKCIndXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRl
ZmluZVByb3BlcnR5KHt9LCAnZm9vJywge3NldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7
fX0pOyBvLmZvbyIsICd1bmRlZmluZWQnKQorc2hvdWxkQmUoIid1c2Ugc3RyaWN0JzsgdmFyIG8g
PSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7c2V0OmZ1bmN0aW9uKHgpe3RoaXMu
cmVzdWx0ID0geDt9fSk7IG8uZm9vID0gNDI7IG8ucmVzdWx0OyIsICc0MicpOworc2hvdWxkQmUo
Iid1c2Ugc3RyaWN0JzsgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoe30sICdmb28nLCB7
Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDp1bmRlZmluZWR9KTsgby5mb28iLCAnNDIn
KQorc2hvdWxkVGhyb3coIid1c2Ugc3RyaWN0JzsgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVy
dHkoe30sICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDp1bmRlZmluZWR9
KTsgby5mb28gPSA0Mjsgby5yZXN1bHQ7Iik7CitzaG91bGRCZSgiJ3VzZSBzdHJpY3QnOyB2YXIg
byA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6ZnVuY3Rpb24oKXtyZXR1
cm4gNDI7fX0pOyBvLmZvbyIsICc0MicpCitzaG91bGRUaHJvdygiJ3VzZSBzdHJpY3QnOyB2YXIg
byA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7fSwgJ2ZvbycsIHtnZXQ6ZnVuY3Rpb24oKXtyZXR1
cm4gNDI7fX0pOyBvLmZvbyA9IDQyOyBvLnJlc3VsdDsiKTsKK3Nob3VsZEJlKCIndXNlIHN0cmlj
dCc7IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dldDp1bmRlZmlu
ZWQsIHNldDp1bmRlZmluZWR9KTsgby5mb28iLCAndW5kZWZpbmVkJykKK3Nob3VsZFRocm93KCIn
dXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KHt9LCAnZm9vJywge2dl
dDp1bmRlZmluZWQsIHNldDp1bmRlZmluZWR9KTsgby5mb28gPSA0Mjsgby5yZXN1bHQ7Iik7Cisv
LyBUZXN0IHJlcGxhY2luZyBvciByZW1vdmluZyBlaXRoZXIgdGhlIGdldHRlciBvciBzZXR0ZXIg
aW5kaXZpZHVhbGx5Lgorc2hvdWxkQmUoIid1c2Ugc3RyaWN0JzsgdmFyIG8gPSBPYmplY3QuZGVm
aW5lUHJvcGVydHkoT2JqZWN0LmRlZmluZVByb3BlcnR5KHtmb286MX0sICdmb28nLCB7Z2V0OmZ1
bmN0aW9uKCl7cmV0dXJuIDQyO30sIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7fX0p
LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiAxMzt9fSk7IG8uZm9vIiwgJzEzJykKK3No
b3VsZEJlKCIndXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVj
dC5kZWZpbmVQcm9wZXJ0eSh7Zm9vOjF9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0
Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KSwgJ2ZvbycsIHtnZXQ6ZnVu
Y3Rpb24oKXtyZXR1cm4gMTM7fX0pOyBvLmZvbyA9IDQyOyBvLnJlc3VsdDsiLCAnNDInKQorc2hv
dWxkQmUoIid1c2Ugc3RyaWN0JzsgdmFyIG8gPSBPYmplY3QuZGVmaW5lUHJvcGVydHkoT2JqZWN0
LmRlZmluZVByb3BlcnR5KHtmb286MX0sICdmb28nLCB7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIDQy
O30sIHNldDpmdW5jdGlvbih4KXt0aGlzLnJlc3VsdCA9IHg7fX0pLCAnZm9vJywge2dldDp1bmRl
ZmluZWR9KTsgby5mb28iLCAndW5kZWZpbmVkJykKK3Nob3VsZEJlKCIndXNlIHN0cmljdCc7IHZh
ciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7Zm9vOjF9
LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhp
cy5yZXN1bHQgPSB4O319KSwgJ2ZvbycsIHtnZXQ6dW5kZWZpbmVkfSk7IG8uZm9vID0gNDI7IG8u
cmVzdWx0OyIsICc0MicpCitzaG91bGRCZSgiJ3VzZSBzdHJpY3QnOyB2YXIgbyA9IE9iamVjdC5k
ZWZpbmVQcm9wZXJ0eShPYmplY3QuZGVmaW5lUHJvcGVydHkoe2ZvbzoxfSwgJ2ZvbycsIHtnZXQ6
ZnVuY3Rpb24oKXtyZXR1cm4gNDI7fSwgc2V0OmZ1bmN0aW9uKHgpe3RoaXMucmVzdWx0ID0geDt9
fSksICdmb28nLCB7c2V0OmZ1bmN0aW9uKCl7dGhpcy5yZXN1bHQgPSAxMzt9fSk7IG8uZm9vIiwg
JzQyJykKK3Nob3VsZEJlKCIndXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3Bl
cnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7Zm9vOjF9LCAnZm9vJywge2dldDpmdW5jdGlvbigp
e3JldHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KSwgJ2Zvbycs
IHtzZXQ6ZnVuY3Rpb24oKXt0aGlzLnJlc3VsdCA9IDEzO319KTsgby5mb28gPSA0Mjsgby5yZXN1
bHQ7IiwgJzEzJykKK3Nob3VsZEJlKCIndXNlIHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRlZmlu
ZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh7Zm9vOjF9LCAnZm9vJywge2dldDpmdW5j
dGlvbigpe3JldHVybiA0Mjt9LCBzZXQ6ZnVuY3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KSwg
J2ZvbycsIHtzZXQ6dW5kZWZpbmVkfSk7IG8uZm9vIiwgJzQyJykKK3Nob3VsZFRocm93KCIndXNl
IHN0cmljdCc7IHZhciBvID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KE9iamVjdC5kZWZpbmVQcm9w
ZXJ0eSh7Zm9vOjF9LCAnZm9vJywge2dldDpmdW5jdGlvbigpe3JldHVybiA0Mjt9LCBzZXQ6ZnVu
Y3Rpb24oeCl7dGhpcy5yZXN1bHQgPSB4O319KSwgJ2ZvbycsIHtzZXQ6dW5kZWZpbmVkfSk7IG8u
Zm9vID0gNDI7IG8ucmVzdWx0OyIpCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10
ZXN0cy9wcmV2ZW50RXh0ZW5zaW9ucy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2pzL3NjcmlwdC10ZXN0cy9wcmV2ZW50RXh0ZW5zaW9ucy5qcwkocmV2aXNpb24gMTA3ODQwKQor
KysgTGF5b3V0VGVzdHMvZmFzdC9qcy9zY3JpcHQtdGVzdHMvcHJldmVudEV4dGVuc2lvbnMuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTQsNyArNCw4IEBAIGRlc2NyaXB0aW9uKAogCiBmdW5jdGlvbiBv
YmooKQogewotICAgIHJldHVybiB7IGE6IDEsIGI6IDIgfTsKKyAgICAvLyBBZGQgYW4gYWNjZXNz
b3IgcHJvcGVydHkgdG8gY2hlY2sgJ2lzRnJvemVuJyByZXR1cm5zIHRoZSBjb3JyZWN0IHJlc3Vs
dCBmb3Igb2JqZWN0cyB3aXRoIGFjY2Vzc29ycy4KKyAgICByZXR1cm4gT2JqZWN0LmRlZmluZVBy
b3BlcnR5KHsgYTogMSwgYjogMiB9LCAnZycsIHsgZ2V0OiBmdW5jdGlvbigpIHsgcmV0dXJuICJn
ZXR0ZXIiOyB9IH0pOwogfQogCiBmdW5jdGlvbiB0ZXN0KG9iaikKQEAgLTczLDMgKzc0LDcgQEAg
c2hvdWxkVGhyb3coJyJ1c2Ugc3RyaWN0IjsgdmFyIG8gPSB7fTsgTwogCiAvLyBjaGVjayB0aGF0
IHdlIGNhbiBzdGlsbCBhY2Nlc3Mgc3RhdGljIHByb3BlcnRpZXMgb24gYW4gb2JqZWN0IGFmdGVy
IGNhbGxpbmcgcHJldmVudEV4dGVuc2lvbnMuCiBzaG91bGRCZSgnT2JqZWN0LnByZXZlbnRFeHRl
bnNpb25zKE1hdGgpOyBNYXRoLnNxcnQoNCknLCAnMicpOworCisvLyBTaG91bGQgbm90IGJlIGFi
bGUgdG8gYWRkIHByb3BlcnRpZXMgdG8gYSBwcmV2ZW50RXh0ZW5zaW9ucyBhcnJheS4KK3Nob3Vs
ZEJlVW5kZWZpbmVkKCd2YXIgYXJyID0gT2JqZWN0LnByZXZlbnRFeHRlbnNpb25zKFtdKTsgYXJy
WzBdID0gNDI7IGFyclswXScpOworc2hvdWxkQmUoJ3ZhciBhcnIgPSBPYmplY3QucHJldmVudEV4
dGVuc2lvbnMoW10pOyBhcnJbMF0gPSA0MjsgYXJyLmxlbmd0aCcsICcwJyk7CkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2pzL3NjcmlwdC10ZXN0cy9wcm9wZXJ0eS1nZXR0ZXJzLWFuZC1zZXR0ZXJz
LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL3Byb3Bl
cnR5LWdldHRlcnMtYW5kLXNldHRlcnMuanMJKHJldmlzaW9uIDEwNzg0MCkKKysrIExheW91dFRl
c3RzL2Zhc3QvanMvc2NyaXB0LXRlc3RzL3Byb3BlcnR5LWdldHRlcnMtYW5kLXNldHRlcnMuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTE5LDcgKzE5LDcgQEAgc2hvdWxkQmUoIm8yLmIiLCAiMTEiKTsK
IAogZGVidWcoIlNldHRpbmcgYSB2YWx1ZSB3aXRob3V0IGhhdmluZyBhIHNldHRlciIpOwogdmFy
IG8zID0geyBnZXQgeCgpIHsgcmV0dXJuIDQyOyB9IH0KLXNob3VsZFRocm93KCJvMy54ID0gMTA7
Iik7CitzaG91bGRCZSgibzMueCA9IDEwOyBvMy54IiwgIjQyIik7CiAKIGRlYnVnKCJHZXR0aW5n
IGEgdmFsdWUgd2l0aG91dCBoYXZpbmcgYSBnZXR0ZXIiKTsKIHZhciBvNCA9IHsgc2V0IHgoeSkg
eyB9fQo=
</data>
<flag name="review"
          id="129408"
          type_id="1"
          status="+"
          setter="sam"
    />
    <flag name="commit-queue"
          id="129449"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>