<?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>91409</bug_id>
          
          <creation_ts>2012-07-16 11:34:49 -0700</creation_ts>
          <short_desc>IndexedDB: Implement spec updates to IDBTransaction.error</short_desc>
          <delta_ts>2012-07-16 17:32:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</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="Joshua Bell">jsbell</reporter>
          <assigned_to name="Joshua Bell">jsbell</assigned_to>
          <cc>abarth</cc>
    
    <cc>alecflett</cc>
    
    <cc>dgrogan</cc>
    
    <cc>ojan</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>670511</commentid>
    <comment_count>0</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-16 11:34:49 -0700</bug_when>
    <thetext>In the latest version of the IDB spec:

http://dvcs.w3.org/hg/IndexedDB/rev/aab14b0951ca

* IDBTransaction.error should not throw; return null if transaction not finished.
* If abort() is called on the transaction, error should be null.
* If the transaction was aborted due to an error when committing, error should be a DOMError e.g. UnknownError, QuotaError, etc.
* If an exception bubbles out of a request&apos;s error event handler, error should be AbortError even if the event does not have preventDefault called (i.e. not the error event&apos;s error)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670638</commentid>
    <comment_count>1</comment_count>
      <attachid>152607</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-16 14:03:57 -0700</bug_when>
    <thetext>Created attachment 152607
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670640</commentid>
    <comment_count>2</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-16 14:05:27 -0700</bug_when>
    <thetext>dgrogan@, alecflett@ - please take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670726</commentid>
    <comment_count>3</comment_count>
      <attachid>152607</attachid>
    <who name="David Grogan">dgrogan</who>
    <bug_when>2012-07-16 15:35:38 -0700</bug_when>
    <thetext>Comment on attachment 152607
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=152607&amp;action=review

LGTM

&gt; Source/WebCore/Modules/indexeddb/IDBTransaction.cpp:266
&gt; +        setError(DOMError::create(IDBDatabaseException::getErrorName(IDBDatabaseException::UNKNOWN_ERR)));

Looks like the only way to test this in layout tests is for createIndex(unique=true) to fail because the existing data isn&apos;t unique. The quota browser test should hit this also.

There&apos;s no WebKit API for the back end to pass the appropriate error?  Is that in the pipeline?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670735</commentid>
    <comment_count>4</comment_count>
      <attachid>152607</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-16 15:42:51 -0700</bug_when>
    <thetext>Comment on attachment 152607
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=152607&amp;action=review

&gt;&gt; Source/WebCore/Modules/indexeddb/IDBTransaction.cpp:266
&gt;&gt; +        setError(DOMError::create(IDBDatabaseException::getErrorName(IDBDatabaseException::UNKNOWN_ERR)));
&gt; 
&gt; Looks like the only way to test this in layout tests is for createIndex(unique=true) to fail because the existing data isn&apos;t unique. The quota browser test should hit this also.
&gt; 
&gt; There&apos;s no WebKit API for the back end to pass the appropriate error?  Is that in the pipeline?

Ah, good point about createIndex() - I&apos;ll update the test to include that case.

Yeah, no WebKit API; it should probably be in IDBTransactionCallbacks::onAbort(). I haven&apos;t filed a bug yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670747</commentid>
    <comment_count>5</comment_count>
      <attachid>152633</attachid>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-16 16:01:18 -0700</bug_when>
    <thetext>Created attachment 152633
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670750</commentid>
    <comment_count>6</comment_count>
    <who name="Joshua Bell">jsbell</who>
    <bug_when>2012-07-16 16:01:57 -0700</bug_when>
    <thetext>tony@ - r?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670813</commentid>
    <comment_count>7</comment_count>
      <attachid>152633</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-16 17:31:57 -0700</bug_when>
    <thetext>Comment on attachment 152633
Patch

Clearing flags on attachment: 152633

Committed r122782: &lt;http://trac.webkit.org/changeset/122782&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670814</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-07-16 17:32:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152607</attachid>
            <date>2012-07-16 14:03:57 -0700</date>
            <delta_ts>2012-07-16 16:01:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91409-20120716140356.patch</filename>
            <type>text/plain</type>
            <size>19466</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyNzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjFkNGY4ZTZjMDJhZDNh
OTg3ZTU1NGZlNzk2NmZiOTllZTU5Y2FkNy4uNTc4YWM3YTBmMjk1MGE1NzY2YmZkZDU1YzExMzAy
NDc0MjA3ZDkxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA3LTE2ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBJbXBs
ZW1lbnQgc3BlYyB1cGRhdGVzIHRvIElEQlRyYW5zYWN0aW9uLmVycm9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTQwOQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBJbmRleGVkIERCIHNwZWMgd2Fz
IHVwZGF0ZWQgdG8gcmVzb2x2ZSBzb21lIGVkZ2UgY2FzZXMgYXJvdW5kIHRoZQorICAgICAgICBJ
REJUcmFuc2FjdGlvbi5lcnJvciBhdHRyaWJ1dGUuIEl0IHdhcyBhZ3JlZWQgdGhhdCBhY2Nlc3Np
bmcgZXJyb3Igc2hvdWxkCisgICAgICAgIG5ldmVyIHRocm93LCBlcnJvciBzaG91bGQgYmUgbnVs
bCBpZiB0aGUgdHJhbnNhY3Rpb24gaXMgbm90IGZpbmlzaGVkIG9yCisgICAgICAgIGFib3J0KCkg
d2FzIGV4cGxpY2l0bHkgY2FsbGVkLCBhbiBhcHByb3ByaWF0ZSBlcnJvciBzaG91bGQgYmUgcmV0
dXJuZWQgaWYKKyAgICAgICAgYSBjb21taXQgZmFpbGVkLCBhbmQgYSBnZW5lcmljIEFib3J0RXJy
b3Igc2hvdWxkIGJlIHVzZWQgaWYgYSByZXF1ZXN0CisgICAgICAgIGNhbGxiYWNrIHRocm93cy4g
VGhlc2UgY2FzZXMgYXJlIG5vdyBoYW5kbGVkIHBlciBzcGVjLCBleGNlcHQgdGhhdCBhIHJlYXNv
bgorICAgICAgICBpcyBub3QgcHJvdmlkZWQgZm9yIHRoZSBjb21taXQgZmFpbHVyZSAoaXQncyBh
bHdheXMgVW5rbm93bkVycm9yKS4KKworICAgICAgICBUZXN0OiBzdG9yYWdlL2luZGV4ZWRkYi90
cmFuc2FjdGlvbi1lcnJvci5odG1sCisgICAgICAgICAgICAgIHN0b3JhZ2UvaW5kZXhlZGRiL3Ry
YW5zYWN0aW9uLWFib3J0Lmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJl
cXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudCk6
IFJlZmFjdG9yIHNvbWUgbmVzdGVkIGlmKCkgYmxvY2tzOyBkb24ndAorICAgICAgICByZS1hYm9y
dCB0aGUgdHJhbnNhY3Rpb24gaWYgZGlzcGF0Y2hpbmcgaW4gcmVzcG9uc2UgdG8gYW4gYWJvcnQu
CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0Ojp1bmNhdWdodEV4Y2VwdGlvbkluRXZlbnRI
YW5kbGVyKTogQWJvcnQgdHJhbnNhY3Rpb24KKyAgICAgICAgb25seSBpZiBub3QgYWxyZWFkeSBh
Ym9ydGluZywgYW5kIHNldCBpdCdzIGVycm9yIHRvIEFib3J0RXJyb3IuCisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
VHJhbnNhY3Rpb246Om9uQWJvcnQpOiBTZXQgZXJyb3IgaWYgYWJvcnQgdHJpZ2dlcmVkIGJ5IGJh
Y2sgZW5kLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6ZGIpOiBNb3ZlIGltcGwgdG8gaGVhZGVy
IGZpbGUuCisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6ZXJyb3IpOiBNb3ZlIGlt
cGwgdG8gaGVhZGVyIGZpbGUsIHNpbXBsaWZ5LgorICAgICAgICAoSURCVHJhbnNhY3Rpb24pOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmlkbDogVGhlIGVycm9y
IGF0dHJpYnV0ZSBubyBsb25nZXIgdGhyb3dzLgorCiAyMDEyLTA3LTE2ICBJbHlhIFRpa2hvbm92
c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBtb3Zp
bmcgZm9yd2FyZCB0byB0aGUgYmV0dGVyIG1lbW9yeSBpbnN0cnVtZW50YXRpb24gQVBJCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IDYy
ZDI5MjM0MDI1MDA0YzU5OGRjY2EyZDA3YTY5ODIzYmFjMzg0ZmUuLmU5M2E1YmU5NWNmMDUyNjc3
OWIzZGU3NTEzMjFlYjQxNjlhMDVjMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBAIC00MzgsMjUgKzQzOCwyOCBAQCBib29sIElEQlJl
cXVlc3Q6OmRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgaWYgKGN1
cnNvclRvTm90aWZ5KQogICAgICAgICBjdXJzb3JUb05vdGlmeS0+cG9zdFN1Y2Nlc3NIYW5kbGVy
Q2FsbGJhY2soKTsKIAotICAgIGlmIChtX3RyYW5zYWN0aW9uICYmIGV2ZW50LT50eXBlKCkgIT0g
ZXZlbnROYW1lcygpLmJsb2NrZWRFdmVudCkgewotICAgICAgICAvLyBJZiBhbiBlcnJvciBldmVu
dCBhbmQgdGhlIGRlZmF1bHQgd2Fzbid0IHByZXZlbnRlZC4uLgotICAgICAgICBpZiAoZG9udFBy
ZXZlbnREZWZhdWx0ICYmIGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmVycm9yRXZlbnQp
IHsKKyAgICBpZiAobV90cmFuc2FjdGlvbikgeworICAgICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9
PSBldmVudE5hbWVzKCkuZXJyb3JFdmVudCAmJiBkb250UHJldmVudERlZmF1bHQgJiYgICFtX3Jl
cXVlc3RBYm9ydGVkKSB7CiAgICAgICAgICAgICBtX3RyYW5zYWN0aW9uLT5zZXRFcnJvcihtX2Vy
cm9yKTsKICAgICAgICAgICAgIG1fdHJhbnNhY3Rpb24tPmFib3J0KCk7CiAgICAgICAgIH0KLSAg
ICAgICAgbV90cmFuc2FjdGlvbi0+YmFja2VuZCgpLT5kaWRDb21wbGV0ZVRhc2tFdmVudHMoKTsK
LSAgICB9CiAKLSAgICBpZiAobV90cmFuc2FjdGlvbiAmJiBtX3JlYWR5U3RhdGUgPT0gRE9ORSkK
LSAgICAgICAgbV90cmFuc2FjdGlvbi0+dW5yZWdpc3RlclJlcXVlc3QodGhpcyk7CisgICAgICAg
IGlmIChldmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMoKS5ibG9ja2VkRXZlbnQpCisgICAgICAg
ICAgICBtX3RyYW5zYWN0aW9uLT5iYWNrZW5kKCktPmRpZENvbXBsZXRlVGFza0V2ZW50cygpOwor
CisgICAgICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gRE9ORSkKKyAgICAgICAgICAgIG1fdHJhbnNh
Y3Rpb24tPnVucmVnaXN0ZXJSZXF1ZXN0KHRoaXMpOworICAgIH0KIAogICAgIHJldHVybiBkb250
UHJldmVudERlZmF1bHQ7CiB9CiAKIHZvaWQgSURCUmVxdWVzdDo6dW5jYXVnaHRFeGNlcHRpb25J
bkV2ZW50SGFuZGxlcigpCiB7Ci0gICAgaWYgKG1fdHJhbnNhY3Rpb24pCi0gICAgICAgIG1fdHJh
bnNhY3Rpb24tPmJhY2tlbmQoKS0+YWJvcnQoKTsKKyAgICBpZiAobV90cmFuc2FjdGlvbiAmJiAh
bV9yZXF1ZXN0QWJvcnRlZCkgeworICAgICAgICBtX3RyYW5zYWN0aW9uLT5zZXRFcnJvcihET01F
cnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpnZXRFcnJvck5hbWUoSURCRGF0YWJh
c2VFeGNlcHRpb246OklEQl9BQk9SVF9FUlIpKSk7CisgICAgICAgIG1fdHJhbnNhY3Rpb24tPmFi
b3J0KCk7CisgICAgfQogfQogCiB2b2lkIElEQlJlcXVlc3Q6OmVucXVldWVFdmVudChQYXNzUmVm
UHRyPEV2ZW50PiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAppbmRleCBjMDlhYTBlY2UwZjZlMjM1YmMwYTg2N2YyYTI4
YzMxM2QyMGQ3ZjE2Li41YzJiMGVjYmFjODY1N2QwNTIwODczNzk2MDJiNDhkOGRjYzQzNTMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b24uY3BwCkBAIC0xMjIsMjAgKzEyMiw2IEBAIGNvbnN0IFN0cmluZyYgSURCVHJhbnNhY3Rpb246
Om1vZGUoKSBjb25zdAogICAgIHJldHVybiBtb2RlOwogfQogCi1JREJEYXRhYmFzZSogSURCVHJh
bnNhY3Rpb246OmRiKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9kYXRhYmFzZS5nZXQoKTsKLX0K
LQotUGFzc1JlZlB0cjxET01FcnJvcj4gSURCVHJhbnNhY3Rpb246OmVycm9yKEV4Y2VwdGlvbkNv
ZGUmIGVjKSBjb25zdAotewotICAgIGlmIChtX3N0YXRlICE9IEZpbmlzaGVkKSB7Ci0gICAgICAg
IGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9JTlZBTElEX1NUQVRFX0VSUjsKLSAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgfQotICAgIHJldHVybiBtX2Vycm9yOwotfQotCiB2b2lkIElEQlRy
YW5zYWN0aW9uOjpzZXRFcnJvcihQYXNzUmVmUHRyPERPTUVycm9yPiBlcnJvcikKIHsKICAgICBB
U1NFUlQobV9zdGF0ZSAhPSBGaW5pc2hlZCk7CkBAIC0yNzYsNiArMjYyLDkgQEAgdm9pZCBJREJU
cmFuc2FjdGlvbjo6b25BYm9ydCgpCiAgICAgQVNTRVJUKG1fc3RhdGUgIT0gRmluaXNoZWQpOwog
CiAgICAgaWYgKG1fc3RhdGUgIT0gRmluaXNoaW5nKSB7CisgICAgICAgIC8vIEZJWE1FOiBQcm9w
YWdhdGUgdHJ1ZSBjYXVzZSBmcm9tIGJhY2sgZW5kIChlLmcuIFF1b3RhRXJyb3IsIFVua25vd25F
cnJvciwgZXRjLikKKyAgICAgICAgc2V0RXJyb3IoRE9NRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFz
ZUV4Y2VwdGlvbjo6Z2V0RXJyb3JOYW1lKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVTktOT1dOX0VS
UikpKTsKKwogICAgICAgICAvLyBBYm9ydCB3YXMgbm90IHRyaWdnZXJlZCBieSBmcm9udC1lbmQs
IHNvIG91dHN0YW5kaW5nIHJlcXVlc3RzIG11c3QKICAgICAgICAgLy8gYmUgYWJvcnRlZCBub3cu
CiAgICAgICAgIHdoaWxlICghbV9yZXF1ZXN0TGlzdC5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCmluZGV4IGU1ZmJh
N2NiZTNlMWU4OWU5YzliNmJlNDMwZjdlOThhMTZjNjE1M2EuLjMwMzc4NjI3ZmYwZjMyZTQxNDAw
YTE0ZGQyNTFiNTIyZWZkZTBjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaApAQCAtNzUsMTAgKzc1LDggQEAgcHVibGljOgogCiAg
ICAgLy8gSW1wbGVtZW50IHRoZSBJREJUcmFuc2FjdGlvbiBJREwKICAgICBjb25zdCBTdHJpbmcm
IG1vZGUoKSBjb25zdDsKLSAgICBJREJEYXRhYmFzZSogZGIoKSBjb25zdDsKLSAgICBQYXNzUmVm
UHRyPERPTUVycm9yPiBlcnJvcihFeGNlcHRpb25Db2RlJikgY29uc3Q7Ci0gICAgdm9pZCBzZXRF
cnJvcihQYXNzUmVmUHRyPERPTUVycm9yPik7Ci0KKyAgICBJREJEYXRhYmFzZSogZGIoKSBjb25z
dCB7IHJldHVybiBtX2RhdGFiYXNlLmdldCgpOyB9CisgICAgUGFzc1JlZlB0cjxET01FcnJvcj4g
ZXJyb3IoKSBjb25zdCB7IHJldHVybiBtX2Vycm9yOyB9CiAgICAgUGFzc1JlZlB0cjxJREJPYmpl
Y3RTdG9yZT4gb2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7
CiAgICAgdm9pZCBhYm9ydCgpOwogCkBAIC05Niw2ICs5NCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IG9iamVjdFN0b3JlQ3JlYXRlZChjb25zdCBTdHJpbmcmLCBQYXNzUmVmUHRyPElEQk9iamVjdFN0
b3JlPik7CiAgICAgdm9pZCBvYmplY3RTdG9yZURlbGV0ZWQoY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBzZXRBY3RpdmUoYm9vbCk7CisgICAgdm9pZCBzZXRFcnJvcihQYXNzUmVmUHRyPERPTUVy
cm9yPik7CiAKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGFib3J0KTsKICAg
ICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGNvbXBsZXRlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmlkbAppbmRleCBh
MGU1NGMwM2UwZjI2MjAyNWM4OGZjNDVmODI2NmJkYWY2ZGVhYmIwLi5kZmE5ZWQ5YTFiNmMyNGFj
NDRlZjAxYWQzNzZiZDgwZGU5Y2I3OGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaWRsCkBAIC0zOSwxMyArMzksMTMgQEAgbW9k
dWxlIHN0b3JhZ2UgewogICAgICAgICAvLyBQcm9wZXJ0aWVzCiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgbW9kZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIElEQkRh
dGFiYXNlIGRiOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NRXJyb3IgZXJyb3IgCi0g
ICAgICAgICAgICBnZXR0ZXIgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01FcnJvciBlcnJvcjsKIAogICAgICAgICAvLyBNZXRob2Rz
CiAgICAgICAgIElEQk9iamVjdFN0b3JlIG9iamVjdFN0b3JlIChpbiBET01TdHJpbmcgbmFtZSkK
ICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwogICAgICAgICB2b2lk
IGFib3J0ICgpOworCiAgICAgICAgIC8vIEV2ZW50cwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbmFib3J0OwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmNvbXBs
ZXRlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDIxYmY4YzZkMDc2ZjEwMzU0YjJiNTdjYWQ5N2FmMGYyZWY5ODQ1ZjguLjRh
MjA3OTNmZjYxOTQ2ZTEyYWE3NjU4NzhkNDMwYmViMjNkYzI2YzcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
NiBAQAorMjAxMi0wNy0xNiAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIEluZGV4ZWREQjogSW1wbGVtZW50IHNwZWMgdXBkYXRlcyB0byBJREJUcmFuc2FjdGlv
bi5lcnJvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTE0MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBV
cGRhdGUgdHJhbnNhY3Rpb24tYWJvcnQgdGVzdCB0byBhY2NvbW9kYXRlIHJlZmluZW1lbnRzIGlu
IHRoZSBzcGVjIGFyb3VuZAorICAgICAgICBJREJUcmFuc2FjdGlvbi5lcnJvciBhbmQgYWRkIGEg
ZGVkaWNhdGVkIHRlc3QgdG8gZXhlcmNpc2UgYWxsIHNwZWMgYmVoYXZpb3IgCisgICAgICAgIGZv
ciB0aGUgcHJvcGVydHkuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
dHJhbnNhY3Rpb24tYWJvcnQuanM6CisgICAgICAgIChzdGFydFRlc3QpOgorICAgICAgICAoZmly
c3RBZGQpOgorICAgICAgICAoc2Vjb25kQWRkKToKKyAgICAgICAgKHRyYW5zYWN0aW9uQWJvcnRl
ZCk6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWVy
cm9yLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QucmVxdWVzdC5vbnN1Y2Nlc3MucmVxdWVzdC5v
bnN1Y2Nlc3MucmVxdWVzdC5vbnN1Y2Nlc3MpOgorICAgICAgICAodGVzdC5yZXF1ZXN0Lm9uc3Vj
Y2Vzcy5yZXF1ZXN0Lm9uc3VjY2Vzcyk6CisgICAgICAgICh0ZXN0LnJlcXVlc3Qub25zdWNjZXNz
KToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAoc3RhcnRUZXN0LnRyYW5zLm9uYWJvcnQpOgor
ICAgICAgICAoc3RhcnRUZXN0KToKKyAgICAgICAgKHRlc3RFcnJvckZyb21SZXF1ZXN0LnJlcXVl
c3Qub25lcnJvcik6CisgICAgICAgICh0ZXN0RXJyb3JGcm9tUmVxdWVzdC50cmFucy5vbmFib3J0
KToKKyAgICAgICAgKHRlc3RFcnJvckZyb21SZXF1ZXN0KToKKyAgICAgICAgKHRlc3RFcnJvckZy
b21FeGNlcHRpb24ucmVxdWVzdC5vbmVycm9yKToKKyAgICAgICAgKHRlc3RFcnJvckZyb21FeGNl
cHRpb24udHJhbnMub25hYm9ydCk6CisgICAgICAgICh0ZXN0RXJyb3JGcm9tRXhjZXB0aW9uKToK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXJyb3ItZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1l
cnJvci5odG1sOiBBZGRlZC4KKwogMjAxMi0wNy0xNiAgWm9sdGFuIEFydmFpICA8emFydmFpQGlu
Zi51LXN6ZWdlZC5odT4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLiBBZGRp
bmcgZmxha3kgdGVzdHMgdG8gVGV4dEV4cGVjdGF0aW9ucy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1hYm9ydC5qcyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1hYm9ydC5q
cwppbmRleCA4MzNlNmI4NjNkZTc3NjUyODA2YjcxZTQ3OGQwODM1ZmZiN2JhYzgxLi42YWRlMDI1
MWMxMDBkNzliMGZjZTYyMWNkMTQ5MDcxODJkZGJiMDM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tYWJvcnQuanMKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWFib3J0
LmpzCkBAIC00OSw2ICs0OSw3IEBAIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiAgICAgcmVxdWVzdC5v
bnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrOwogICAgIHJlcXVlc3QgPSBldmFs
QW5kTG9nKCJzdG9yZS5hZGQoe3g6ICd2YWx1ZTMnLCB5OiAnenp6Myd9LCAna2V5MycpIik7CiAg
ICAgcmVxdWVzdC5vbmVycm9yID0gc2Vjb25kQWRkOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
dW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjazsKICAgICB0cmFucy5hYm9ydCgpOwogCiAgICAgZmly
c3RFcnJvciA9IGZhbHNlOwpAQCAtNjAsMTAgKzYxLDcgQEAgZnVuY3Rpb24gZmlyc3RBZGQoKQog
ewogICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQuZXJyb3JDb2RlIiwgIkRPTUV4Y2VwdGlvbi5B
Qk9SVF9FUlIiKTsKICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LmVycm9yLm5hbWUiLCAiJ0Fi
b3J0RXJyb3InIik7Ci0gICAgZmlyc3RET01FcnJvciA9IGV2ZW50LnRhcmdldC5lcnJvcjsKLSAg
ICAvLyBGSVhNRTogQW1iaWd1b3VzIHNwZWMuIFNlZTogaHR0cHM6Ly93d3cudzMub3JnL0J1Z3Mv
UHVibGljL3Nob3dfYnVnLmNnaT9pZD0xNzIzNgotICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24o
InRyYW5zLmVycm9yIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxp
ZFN0YXRlRXJyb3InIik7Ci0KKyAgICBzaG91bGRCZU51bGwoInRyYW5zLmVycm9yIik7CiAgICAg
c2hvdWxkQmVGYWxzZSgiZmlyc3RFcnJvciIpOwogICAgIHNob3VsZEJlRmFsc2UoInNlY29uZEVy
cm9yIik7CiAgICAgc2hvdWxkQmVGYWxzZSgiYWJvcnRGaXJlZCIpOwpAQCAtNzYsOCArNzQsNyBA
QCBmdW5jdGlvbiBzZWNvbmRBZGQoKQogewogICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQuZXJy
b3JDb2RlIiwgIkRPTUV4Y2VwdGlvbi5BQk9SVF9FUlIiKTsKICAgICBzaG91bGRCZSgiZXZlbnQu
dGFyZ2V0LmVycm9yLm5hbWUiLCAiJ0Fib3J0RXJyb3InIik7Ci0gICAgLy8gRklYTUU6IEFtYmln
dW91cyBzcGVjLiBTZWU6IGh0dHBzOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5j
Z2k/aWQ9MTcyMzYKLSAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJ0cmFucy5lcnJvciIsICJE
T01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwor
ICAgIHNob3VsZEJlTnVsbCgidHJhbnMuZXJyb3IiKTsKICAgICBzaG91bGRCZVRydWUoImZpcnN0
RXJyb3IiKTsKICAgICBzaG91bGRCZUZhbHNlKCJzZWNvbmRFcnJvciIpOwogICAgIHNob3VsZEJl
RmFsc2UoImFib3J0RmlyZWQiKTsKQEAgLTg5LDExICs4NiwxMSBAQCBmdW5jdGlvbiB0cmFuc2Fj
dGlvbkFib3J0ZWQoKQogICAgIHNob3VsZEJlVHJ1ZSgiZmlyc3RFcnJvciIpOwogICAgIHNob3Vs
ZEJlVHJ1ZSgic2Vjb25kRXJyb3IiKTsKICAgICBzaG91bGRCZUZhbHNlKCJhYm9ydEZpcmVkIik7
Ci0gICAgc2hvdWxkQmUoInRyYW5zLmVycm9yIiwgImZpcnN0RE9NRXJyb3IiKTsKKyAgICBzaG91
bGRCZU51bGwoInRyYW5zLmVycm9yIik7CiAgICAgYWJvcnRGaXJlZCA9IHRydWU7CiAKICAgICBl
dmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9yZS5hZGQoe3g6ICd2YWx1ZTUnLCB5OiAnenp6NSd9
LCAna2V5NScpIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VS
UiIsICInVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yJyIpOwogICAgIGZpbmlzaEpTVGVzdCgpOwog
fQogCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQordGVzdCgpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9u
LWVycm9yLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5z
YWN0aW9uLWVycm9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyYmFlZjA3MzhmOGUzN2NhYmUxMmYxMmFiN2Vj
MWJkMWUxOTc1MzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tZXJyb3IuanMKQEAgLTAsMCArMSwxMDYgQEAKK2lm
ICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJl
ZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGVzdCBJREJUcmFuc2FjdGlvbi5lcnJvciBjYXNl
cy4iKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsK
KworICAgIGV2YWxBbmRMb2coImRibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUiKTsKKyAg
ICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSki
KTsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Cisg
ICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
ImluZGV4ZWREQi5vcGVuKGRibmFtZSkiKTsKKyAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICBldmFsQW5kTG9nKCJkYiA9IHJlcXVlc3QucmVzdWx0Iik7Cisg
ICAgICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignbmV3IHZlcnNp
b24nKSIpOworICAgICAgICAgICAgcmVxdWVzdC5vbmJsb2NrZWQgPSB1bmV4cGVjdGVkQmxvY2tl
ZENhbGxiYWNrOworICAgICAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9y
Q2FsbGJhY2s7CisgICAgICAgICAgICByZXF1ZXN0Lm9uc3VjY2VzcyA9IGZ1bmN0aW9uKCkgewor
ICAgICAgICAgICAgICAgIGV2YWxBbmRMb2coInRyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdCIp
OworICAgICAgICAgICAgICAgIHRyYW5zLm9uYWJvcnQgPSB1bmV4cGVjdGVkQWJvcnRDYWxsYmFj
azsKKyAgICAgICAgICAgICAgICBldmFsQW5kTG9nKCJzdG9yZSA9IGRiLmNyZWF0ZU9iamVjdFN0
b3JlKCdzdG9yZU5hbWUnKSIpOworICAgICAgICAgICAgICAgIHJlcXVlc3QgPSBldmFsQW5kTG9n
KCJzdG9yZS5hZGQoJ3ZhbHVlJywgJ2tleScpIik7CisgICAgICAgICAgICAgICAgcmVxdWVzdC5v
bmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgICAgICAgICAgdHJhbnMu
b25jb21wbGV0ZSA9IHN0YXJ0VGVzdDsKKyAgICAgICAgICAgIH07CisgICAgICAgIH07CisgICAg
fTsKK30KKworZnVuY3Rpb24gc3RhcnRUZXN0KCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZXZh
bEFuZExvZygidHJhbnMgPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJykiKTsKKworICAgIGRl
YnVnKCIiKTsKKyAgICBkZWJ1ZygiSURCVHJhbnNhY3Rpb24uZXJyb3Igc2hvdWxkIGJlIG51bGwg
aWYgdHJhbnNhY3Rpb24gaXMgbm90IGZpbmlzaGVkOiIpOworICAgIHNob3VsZEJlTnVsbCgidHJh
bnMuZXJyb3IiKTsKKworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiSWYgSURCVHJhbnNhY3Rp
b24uYWJvcnQoKSBpcyBleHBsaWNpdGx5IGNhbGxlZCwgSURCVHJhbnNhY3Rpb24uZXJyb3Igc2hv
dWxkIGJlIG51bGw6Iik7CisgICAgZXZhbEFuZExvZygidHJhbnMuYWJvcnQoKSIpOworICAgIHRy
YW5zLm9uY29tcGxldGUgPSB1bmV4cGVjdGVkQ29tcGxldGVDYWxsYmFjazsKKyAgICB0cmFucy5v
bmFib3J0ID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHNob3VsZEJlTnVsbCgidHJhbnMuZXJyb3Ii
KTsKKyAgICAgICAgdGVzdEVycm9yRnJvbVJlcXVlc3QoKTsKKyAgICB9OworfQorCitmdW5jdGlv
biB0ZXN0RXJyb3JGcm9tUmVxdWVzdCgpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJJ
ZiB0aGUgdHJhbnNhY3Rpb24gaXMgYWJvcnRlZCBkdWUgdG8gYSByZXF1ZXN0IGVycm9yIHRoYXQg
aXMgbm90IHByZXZlbnRlZCwgSURCVHJhbnNhY3Rpb24uZXJyb3Igc2hvdWxkIG1hdGNoLiIpOwor
ICAgIGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsICdyZWFk
d3JpdGUnKSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSB0cmFucy5vYmplY3RTdG9yZSgn
c3RvcmVOYW1lJykuYWRkKCd2YWx1ZTInLCAna2V5JykiKTsKKyAgICByZXF1ZXN0Lm9uc3VjY2Vz
cyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmVycm9yID0gZnVu
Y3Rpb24oKSB7CisgICAgICAgIHNob3VsZEJlKCJyZXF1ZXN0LmVycm9yQ29kZSIsICJJREJEYXRh
YmFzZUV4Y2VwdGlvbi5DT05TVFJBSU5UX0VSUiIpOworICAgICAgICBzaG91bGRCZSgicmVxdWVz
dC5lcnJvci5uYW1lIiwgIidDb25zdHJhaW50RXJyb3InIik7CisgICAgICAgIGV2YWxBbmRMb2co
InJlcXVlc3RfZXJyb3IgPSByZXF1ZXN0LmVycm9yIik7CisgICAgfTsKKyAgICB0cmFucy5vbmNv
bXBsZXRlID0gdW5leHBlY3RlZENvbXBsZXRlQ2FsbGJhY2s7CisgICAgdHJhbnMub25hYm9ydCA9
IGZ1bmN0aW9uKCkgeworICAgICAgICBzaG91bGRCZU5vbk51bGwoInRyYW5zLmVycm9yIik7Cisg
ICAgICAgIHNob3VsZEJlKCJ0cmFucy5lcnJvciIsICJyZXF1ZXN0X2Vycm9yIik7CisgICAgICAg
IHRlc3RFcnJvckZyb21FeGNlcHRpb24oKTsKKyAgICB9OworfQorCitmdW5jdGlvbiB0ZXN0RXJy
b3JGcm9tRXhjZXB0aW9uKCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIklmIHRoZSB0
cmFuc2FjdGlvbiBpcyBhYm9ydGVkIGR1ZSB0byBhbiBleGNlcHRpb24gdGhyb3duIGZyb20gZXZl
bnQgY2FsbGJhY2ssIElEQlRyYW5zYWN0aW9uLmVycm9yIHNob3VsZCBiZSBBYm9ydEVycm9yLiIp
OworICAgIGV2YWxBbmRMb2coInRyYW5zID0gZGIudHJhbnNhY3Rpb24oJ3N0b3JlTmFtZScsICdy
ZWFkd3JpdGUnKSIpOworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSB0cmFucy5vYmplY3RTdG9y
ZSgnc3RvcmVOYW1lJykuYWRkKCd2YWx1ZTInLCAna2V5JykiKTsKKyAgICByZXF1ZXN0Lm9uc3Vj
Y2VzcyA9IHVuZXhwZWN0ZWRTdWNjZXNzQ2FsbGJhY2s7CisgICAgcmVxdWVzdC5vbmVycm9yID0g
ZnVuY3Rpb24oKSB7CisgICAgICAgIHNob3VsZEJlKCJyZXF1ZXN0LmVycm9yQ29kZSIsICJJREJE
YXRhYmFzZUV4Y2VwdGlvbi5DT05TVFJBSU5UX0VSUiIpOworICAgICAgICBzaG91bGRCZSgicmVx
dWVzdC5lcnJvci5uYW1lIiwgIidDb25zdHJhaW50RXJyb3InIik7CisgICAgICAgIGRlYnVnKCJ0
aHJvd2luZyBleGNlcHRpb24iKTsKKworICAgICAgICAvLyBFbnN1cmUgdGhlIHRlc3QgaGFybmVz
cyBlcnJvciBoYW5kbGVyIGlzIG5vdCBpbnZva2VkLgorICAgICAgICBzZWxmLm9yaWdpbmFsV2lu
ZG93T25FcnJvciA9IHNlbGYub25lcnJvcjsKKyAgICAgICAgc2VsZi5vbmVycm9yID0gbnVsbDsK
KworICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIlRoaXMgc2hvdWxkICpOT1QqIGJlIGNhdWdodCEi
KTsKKyAgICB9OworICAgIHRyYW5zLm9uY29tcGxldGUgPSB1bmV4cGVjdGVkQ29tcGxldGVDYWxs
YmFjazsKKyAgICB0cmFucy5vbmFib3J0ID0gZnVuY3Rpb24oKSB7CisgICAgICAgIC8vIFJlc3Rv
cmUgdGVzdCBoYXJuZXNzIGVycm9yIGhhbmRsZXIuCisgICAgICAgIHNlbGYub25lcnJvciA9IHNl
bGYub3JpZ2luYWxXaW5kb3dPbkVycm9yOworCisgICAgICAgIHNob3VsZEJlTm9uTnVsbCgidHJh
bnMuZXJyb3IiKTsKKyAgICAgICAgc2hvdWxkQmUoInRyYW5zLmVycm9yLm5hbWUiLCAiJ0Fib3J0
RXJyb3InIik7CisKKyAgICAgICAgZGVidWcoIiIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
KyAgICB9OworfQorCit0ZXN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2lu
ZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9y
YWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC1leHBlY3RlZC50eHQKaW5kZXggOTJhMWIz
NjQ1ZTc4ZDQyZmRkNjYwNzM5MmYzM2Q0OTMzN2Q2MjlkOC4uZTkyOWNkNzk3NDkxYjM1NGM3MDNh
MTg5ZmVlZmRjZjRkNGI2NTMwNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRl
eGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3N0
b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0LWV4cGVjdGVkLnR4dApAQCAtMjMsMTAg
KzIzLDcgQEAgc3RvcmUuYWRkKHt4OiAndmFsdWUyJywgeTogJ3p6ejInfSwgJ2tleTInKQogc3Rv
cmUuYWRkKHt4OiAndmFsdWUzJywgeTogJ3p6ejMnfSwgJ2tleTMnKQogUEFTUyBldmVudC50YXJn
ZXQuZXJyb3JDb2RlIGlzIERPTUV4Y2VwdGlvbi5BQk9SVF9FUlIKIFBBU1MgZXZlbnQudGFyZ2V0
LmVycm9yLm5hbWUgaXMgJ0Fib3J0RXJyb3InCi1FeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gdHJh
bnMuZXJyb3IKLVBBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCi1QQVNTIGNvZGUgaXMgRE9NRXhj
ZXB0aW9uLklOVkFMSURfU1RBVEVfRVJSCi1QQVNTIGVuYW1lIGlzICdJbnZhbGlkU3RhdGVFcnJv
cicKK1BBU1MgdHJhbnMuZXJyb3IgaXMgbnVsbAogUEFTUyBmaXJzdEVycm9yIGlzIGZhbHNlCiBQ
QVNTIHNlY29uZEVycm9yIGlzIGZhbHNlCiBQQVNTIGFib3J0RmlyZWQgaXMgZmFsc2UKQEAgLTM2
LDE3ICszMywxNCBAQCBQQVNTIGNvZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJ
T05fSU5BQ1RJVkVfRVJSCiBQQVNTIGVuYW1lIGlzICdUcmFuc2FjdGlvbkluYWN0aXZlRXJyb3In
CiBQQVNTIGV2ZW50LnRhcmdldC5lcnJvckNvZGUgaXMgRE9NRXhjZXB0aW9uLkFCT1JUX0VSUgog
UEFTUyBldmVudC50YXJnZXQuZXJyb3IubmFtZSBpcyAnQWJvcnRFcnJvcicKLUV4cGVjdGluZyBl
eGNlcHRpb24gZnJvbSB0cmFucy5lcnJvcgotUEFTUyBFeGNlcHRpb24gd2FzIHRocm93bi4KLVBB
U1MgY29kZSBpcyBET01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIKLVBBU1MgZW5hbWUgaXMg
J0ludmFsaWRTdGF0ZUVycm9yJworUEFTUyB0cmFucy5lcnJvciBpcyBudWxsCiBQQVNTIGZpcnN0
RXJyb3IgaXMgdHJ1ZQogUEFTUyBzZWNvbmRFcnJvciBpcyBmYWxzZQogUEFTUyBhYm9ydEZpcmVk
IGlzIGZhbHNlCiBQQVNTIGZpcnN0RXJyb3IgaXMgdHJ1ZQogUEFTUyBzZWNvbmRFcnJvciBpcyB0
cnVlCiBQQVNTIGFib3J0RmlyZWQgaXMgZmFsc2UKLVBBU1MgdHJhbnMuZXJyb3IgaXMgZmlyc3RE
T01FcnJvcgorUEFTUyB0cmFucy5lcnJvciBpcyBudWxsCiBFeHBlY3RpbmcgZXhjZXB0aW9uIGZy
b20gc3RvcmUuYWRkKHt4OiAndmFsdWU1JywgeTogJ3p6ejUnfSwgJ2tleTUnKQogUEFTUyBFeGNl
cHRpb24gd2FzIHRocm93bi4KIFBBU1MgY29kZSBpcyBJREJEYXRhYmFzZUV4Y2VwdGlvbi5UUkFO
U0FDVElPTl9JTkFDVElWRV9FUlIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5k
ZXhlZGRiL3RyYW5zYWN0aW9uLWVycm9yLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3N0b3Jh
Z2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWVycm9yLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
MjFjZDE2ZTAzZTdjYjkxYzIyNjA3NDA0MzU4YTQyMWY0NzBkNjczCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXJyb3ItZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNDggQEAKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA5MTogVW5jYXVn
aHQgRXJyb3I6IFRoaXMgc2hvdWxkICpOT1QqIGJlIGNhdWdodCEKK1Rlc3QgSURCVHJhbnNhY3Rp
b24uZXJyb3IgY2FzZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitpbmRleGVk
REIgPSBzZWxmLmluZGV4ZWREQiB8fCBzZWxmLndlYmtpdEluZGV4ZWREQiB8fCBzZWxmLm1veklu
ZGV4ZWREQiB8fCBzZWxmLm1zSW5kZXhlZERCIHx8IHNlbGYuT0luZGV4ZWREQjsKKworZGJuYW1l
ID0gc2VsZi5sb2NhdGlvbi5wYXRobmFtZQoraW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFt
ZSkKK2luZGV4ZWREQi5vcGVuKGRibmFtZSkKK2RiID0gcmVxdWVzdC5yZXN1bHQKK2RiLnNldFZl
cnNpb24oJ25ldyB2ZXJzaW9uJykKK3RyYW5zID0gZXZlbnQudGFyZ2V0LnJlc3VsdAorc3RvcmUg
PSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3N0b3JlLmFkZCgndmFsdWUnLCAn
a2V5JykKKwordHJhbnMgPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJykKKworSURCVHJhbnNh
Y3Rpb24uZXJyb3Igc2hvdWxkIGJlIG51bGwgaWYgdHJhbnNhY3Rpb24gaXMgbm90IGZpbmlzaGVk
OgorUEFTUyB0cmFucy5lcnJvciBpcyBudWxsCisKK0lmIElEQlRyYW5zYWN0aW9uLmFib3J0KCkg
aXMgZXhwbGljaXRseSBjYWxsZWQsIElEQlRyYW5zYWN0aW9uLmVycm9yIHNob3VsZCBiZSBudWxs
OgordHJhbnMuYWJvcnQoKQorUEFTUyB0cmFucy5lcnJvciBpcyBudWxsCisKK0lmIHRoZSB0cmFu
c2FjdGlvbiBpcyBhYm9ydGVkIGR1ZSB0byBhIHJlcXVlc3QgZXJyb3IgdGhhdCBpcyBub3QgcHJl
dmVudGVkLCBJREJUcmFuc2FjdGlvbi5lcnJvciBzaG91bGQgbWF0Y2guCit0cmFucyA9IGRiLnRy
YW5zYWN0aW9uKCdzdG9yZU5hbWUnLCAncmVhZHdyaXRlJykKK3JlcXVlc3QgPSB0cmFucy5vYmpl
Y3RTdG9yZSgnc3RvcmVOYW1lJykuYWRkKCd2YWx1ZTInLCAna2V5JykKK1BBU1MgcmVxdWVzdC5l
cnJvckNvZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRpb24uQ09OU1RSQUlOVF9FUlIKK1BBU1MgcmVx
dWVzdC5lcnJvci5uYW1lIGlzICdDb25zdHJhaW50RXJyb3InCityZXF1ZXN0X2Vycm9yID0gcmVx
dWVzdC5lcnJvcgorUEFTUyB0cmFucy5lcnJvciBpcyBub24tbnVsbC4KK1BBU1MgdHJhbnMuZXJy
b3IgaXMgcmVxdWVzdF9lcnJvcgorCitJZiB0aGUgdHJhbnNhY3Rpb24gaXMgYWJvcnRlZCBkdWUg
dG8gYW4gZXhjZXB0aW9uIHRocm93biBmcm9tIGV2ZW50IGNhbGxiYWNrLCBJREJUcmFuc2FjdGlv
bi5lcnJvciBzaG91bGQgYmUgQWJvcnRFcnJvci4KK3RyYW5zID0gZGIudHJhbnNhY3Rpb24oJ3N0
b3JlTmFtZScsICdyZWFkd3JpdGUnKQorcmVxdWVzdCA9IHRyYW5zLm9iamVjdFN0b3JlKCdzdG9y
ZU5hbWUnKS5hZGQoJ3ZhbHVlMicsICdrZXknKQorUEFTUyByZXF1ZXN0LmVycm9yQ29kZSBpcyBJ
REJEYXRhYmFzZUV4Y2VwdGlvbi5DT05TVFJBSU5UX0VSUgorUEFTUyByZXF1ZXN0LmVycm9yLm5h
bWUgaXMgJ0NvbnN0cmFpbnRFcnJvcicKK3Rocm93aW5nIGV4Y2VwdGlvbgorUEFTUyB0cmFucy5l
cnJvciBpcyBub24tbnVsbC4KK1BBU1MgdHJhbnMuZXJyb3IubmFtZSBpcyAnQWJvcnRFcnJvcicK
KworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWVycm9y
Lmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1lcnJvci5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjNjMGM3Y2UyMDg3YTkzYjE5ZTRkZWRkZGQ3YzdhZDQyODA0YzBkYTYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2Fj
dGlvbi1lcnJvci5odG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHk+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RyYW5zYWN0aW9uLWVycm9yLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152633</attachid>
            <date>2012-07-16 16:01:18 -0700</date>
            <delta_ts>2012-07-16 17:31:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91409-20120716160118.patch</filename>
            <type>text/plain</type>
            <size>21677</size>
            <attacher name="Joshua Bell">jsbell</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyNzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYjFkNGY4ZTZjMDJhZDNh
OTg3ZTU1NGZlNzk2NmZiOTllZTU5Y2FkNy4uNTc4YWM3YTBmMjk1MGE1NzY2YmZkZDU1YzExMzAy
NDc0MjA3ZDkxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA3LTE2ICBKb3No
dWEgQmVsbCAgPGpzYmVsbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgSW5kZXhlZERCOiBJbXBs
ZW1lbnQgc3BlYyB1cGRhdGVzIHRvIElEQlRyYW5zYWN0aW9uLmVycm9yCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05MTQwOQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBJbmRleGVkIERCIHNwZWMgd2Fz
IHVwZGF0ZWQgdG8gcmVzb2x2ZSBzb21lIGVkZ2UgY2FzZXMgYXJvdW5kIHRoZQorICAgICAgICBJ
REJUcmFuc2FjdGlvbi5lcnJvciBhdHRyaWJ1dGUuIEl0IHdhcyBhZ3JlZWQgdGhhdCBhY2Nlc3Np
bmcgZXJyb3Igc2hvdWxkCisgICAgICAgIG5ldmVyIHRocm93LCBlcnJvciBzaG91bGQgYmUgbnVs
bCBpZiB0aGUgdHJhbnNhY3Rpb24gaXMgbm90IGZpbmlzaGVkIG9yCisgICAgICAgIGFib3J0KCkg
d2FzIGV4cGxpY2l0bHkgY2FsbGVkLCBhbiBhcHByb3ByaWF0ZSBlcnJvciBzaG91bGQgYmUgcmV0
dXJuZWQgaWYKKyAgICAgICAgYSBjb21taXQgZmFpbGVkLCBhbmQgYSBnZW5lcmljIEFib3J0RXJy
b3Igc2hvdWxkIGJlIHVzZWQgaWYgYSByZXF1ZXN0CisgICAgICAgIGNhbGxiYWNrIHRocm93cy4g
VGhlc2UgY2FzZXMgYXJlIG5vdyBoYW5kbGVkIHBlciBzcGVjLCBleGNlcHQgdGhhdCBhIHJlYXNv
bgorICAgICAgICBpcyBub3QgcHJvdmlkZWQgZm9yIHRoZSBjb21taXQgZmFpbHVyZSAoaXQncyBh
bHdheXMgVW5rbm93bkVycm9yKS4KKworICAgICAgICBUZXN0OiBzdG9yYWdlL2luZGV4ZWRkYi90
cmFuc2FjdGlvbi1lcnJvci5odG1sCisgICAgICAgICAgICAgIHN0b3JhZ2UvaW5kZXhlZGRiL3Ry
YW5zYWN0aW9uLWFib3J0Lmh0bWwKKworICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlJl
cXVlc3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURCUmVxdWVzdDo6ZGlzcGF0Y2hFdmVudCk6
IFJlZmFjdG9yIHNvbWUgbmVzdGVkIGlmKCkgYmxvY2tzOyBkb24ndAorICAgICAgICByZS1hYm9y
dCB0aGUgdHJhbnNhY3Rpb24gaWYgZGlzcGF0Y2hpbmcgaW4gcmVzcG9uc2UgdG8gYW4gYWJvcnQu
CisgICAgICAgIChXZWJDb3JlOjpJREJSZXF1ZXN0Ojp1bmNhdWdodEV4Y2VwdGlvbkluRXZlbnRI
YW5kbGVyKTogQWJvcnQgdHJhbnNhY3Rpb24KKyAgICAgICAgb25seSBpZiBub3QgYWxyZWFkeSBh
Ym9ydGluZywgYW5kIHNldCBpdCdzIGVycm9yIHRvIEFib3J0RXJyb3IuCisgICAgICAgICogTW9k
dWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SURC
VHJhbnNhY3Rpb246Om9uQWJvcnQpOiBTZXQgZXJyb3IgaWYgYWJvcnQgdHJpZ2dlcmVkIGJ5IGJh
Y2sgZW5kLgorICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6ZGIpOiBNb3ZlIGltcGwgdG8gaGVhZGVy
IGZpbGUuCisgICAgICAgIChXZWJDb3JlOjpJREJUcmFuc2FjdGlvbjo6ZXJyb3IpOiBNb3ZlIGlt
cGwgdG8gaGVhZGVyIGZpbGUsIHNpbXBsaWZ5LgorICAgICAgICAoSURCVHJhbnNhY3Rpb24pOgor
ICAgICAgICAqIE1vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmlkbDogVGhlIGVycm9y
IGF0dHJpYnV0ZSBubyBsb25nZXIgdGhyb3dzLgorCiAyMDEyLTA3LTE2ICBJbHlhIFRpa2hvbm92
c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBtb3Zp
bmcgZm9yd2FyZCB0byB0aGUgYmV0dGVyIG1lbW9yeSBpbnN0cnVtZW50YXRpb24gQVBJCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJSZXF1ZXN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCmluZGV4IDYy
ZDI5MjM0MDI1MDA0YzU5OGRjY2EyZDA3YTY5ODIzYmFjMzg0ZmUuLmU5M2E1YmU5NWNmMDUyNjc3
OWIzZGU3NTEzMjFlYjQxNjlhMDVjMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvaW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlJlcXVlc3QuY3BwCkBAIC00MzgsMjUgKzQzOCwyOCBAQCBib29sIElEQlJl
cXVlc3Q6OmRpc3BhdGNoRXZlbnQoUGFzc1JlZlB0cjxFdmVudD4gZXZlbnQpCiAgICAgaWYgKGN1
cnNvclRvTm90aWZ5KQogICAgICAgICBjdXJzb3JUb05vdGlmeS0+cG9zdFN1Y2Nlc3NIYW5kbGVy
Q2FsbGJhY2soKTsKIAotICAgIGlmIChtX3RyYW5zYWN0aW9uICYmIGV2ZW50LT50eXBlKCkgIT0g
ZXZlbnROYW1lcygpLmJsb2NrZWRFdmVudCkgewotICAgICAgICAvLyBJZiBhbiBlcnJvciBldmVu
dCBhbmQgdGhlIGRlZmF1bHQgd2Fzbid0IHByZXZlbnRlZC4uLgotICAgICAgICBpZiAoZG9udFBy
ZXZlbnREZWZhdWx0ICYmIGV2ZW50LT50eXBlKCkgPT0gZXZlbnROYW1lcygpLmVycm9yRXZlbnQp
IHsKKyAgICBpZiAobV90cmFuc2FjdGlvbikgeworICAgICAgICBpZiAoZXZlbnQtPnR5cGUoKSA9
PSBldmVudE5hbWVzKCkuZXJyb3JFdmVudCAmJiBkb250UHJldmVudERlZmF1bHQgJiYgICFtX3Jl
cXVlc3RBYm9ydGVkKSB7CiAgICAgICAgICAgICBtX3RyYW5zYWN0aW9uLT5zZXRFcnJvcihtX2Vy
cm9yKTsKICAgICAgICAgICAgIG1fdHJhbnNhY3Rpb24tPmFib3J0KCk7CiAgICAgICAgIH0KLSAg
ICAgICAgbV90cmFuc2FjdGlvbi0+YmFja2VuZCgpLT5kaWRDb21wbGV0ZVRhc2tFdmVudHMoKTsK
LSAgICB9CiAKLSAgICBpZiAobV90cmFuc2FjdGlvbiAmJiBtX3JlYWR5U3RhdGUgPT0gRE9ORSkK
LSAgICAgICAgbV90cmFuc2FjdGlvbi0+dW5yZWdpc3RlclJlcXVlc3QodGhpcyk7CisgICAgICAg
IGlmIChldmVudC0+dHlwZSgpICE9IGV2ZW50TmFtZXMoKS5ibG9ja2VkRXZlbnQpCisgICAgICAg
ICAgICBtX3RyYW5zYWN0aW9uLT5iYWNrZW5kKCktPmRpZENvbXBsZXRlVGFza0V2ZW50cygpOwor
CisgICAgICAgIGlmIChtX3JlYWR5U3RhdGUgPT0gRE9ORSkKKyAgICAgICAgICAgIG1fdHJhbnNh
Y3Rpb24tPnVucmVnaXN0ZXJSZXF1ZXN0KHRoaXMpOworICAgIH0KIAogICAgIHJldHVybiBkb250
UHJldmVudERlZmF1bHQ7CiB9CiAKIHZvaWQgSURCUmVxdWVzdDo6dW5jYXVnaHRFeGNlcHRpb25J
bkV2ZW50SGFuZGxlcigpCiB7Ci0gICAgaWYgKG1fdHJhbnNhY3Rpb24pCi0gICAgICAgIG1fdHJh
bnNhY3Rpb24tPmJhY2tlbmQoKS0+YWJvcnQoKTsKKyAgICBpZiAobV90cmFuc2FjdGlvbiAmJiAh
bV9yZXF1ZXN0QWJvcnRlZCkgeworICAgICAgICBtX3RyYW5zYWN0aW9uLT5zZXRFcnJvcihET01F
cnJvcjo6Y3JlYXRlKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpnZXRFcnJvck5hbWUoSURCRGF0YWJh
c2VFeGNlcHRpb246OklEQl9BQk9SVF9FUlIpKSk7CisgICAgICAgIG1fdHJhbnNhY3Rpb24tPmFi
b3J0KCk7CisgICAgfQogfQogCiB2b2lkIElEQlJlcXVlc3Q6OmVucXVldWVFdmVudChQYXNzUmVm
UHRyPEV2ZW50PiBldmVudCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5k
ZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhl
ZGRiL0lEQlRyYW5zYWN0aW9uLmNwcAppbmRleCBjMDlhYTBlY2UwZjZlMjM1YmMwYTg2N2YyYTI4
YzMxM2QyMGQ3ZjE2Li41YzJiMGVjYmFjODY1N2QwNTIwODczNzk2MDJiNDhkOGRjYzQzNTMwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rp
b24uY3BwCkBAIC0xMjIsMjAgKzEyMiw2IEBAIGNvbnN0IFN0cmluZyYgSURCVHJhbnNhY3Rpb246
Om1vZGUoKSBjb25zdAogICAgIHJldHVybiBtb2RlOwogfQogCi1JREJEYXRhYmFzZSogSURCVHJh
bnNhY3Rpb246OmRiKCkgY29uc3QKLXsKLSAgICByZXR1cm4gbV9kYXRhYmFzZS5nZXQoKTsKLX0K
LQotUGFzc1JlZlB0cjxET01FcnJvcj4gSURCVHJhbnNhY3Rpb246OmVycm9yKEV4Y2VwdGlvbkNv
ZGUmIGVjKSBjb25zdAotewotICAgIGlmIChtX3N0YXRlICE9IEZpbmlzaGVkKSB7Ci0gICAgICAg
IGVjID0gSURCRGF0YWJhc2VFeGNlcHRpb246OklEQl9JTlZBTElEX1NUQVRFX0VSUjsKLSAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgfQotICAgIHJldHVybiBtX2Vycm9yOwotfQotCiB2b2lkIElEQlRy
YW5zYWN0aW9uOjpzZXRFcnJvcihQYXNzUmVmUHRyPERPTUVycm9yPiBlcnJvcikKIHsKICAgICBB
U1NFUlQobV9zdGF0ZSAhPSBGaW5pc2hlZCk7CkBAIC0yNzYsNiArMjYyLDkgQEAgdm9pZCBJREJU
cmFuc2FjdGlvbjo6b25BYm9ydCgpCiAgICAgQVNTRVJUKG1fc3RhdGUgIT0gRmluaXNoZWQpOwog
CiAgICAgaWYgKG1fc3RhdGUgIT0gRmluaXNoaW5nKSB7CisgICAgICAgIC8vIEZJWE1FOiBQcm9w
YWdhdGUgdHJ1ZSBjYXVzZSBmcm9tIGJhY2sgZW5kIChlLmcuIFF1b3RhRXJyb3IsIFVua25vd25F
cnJvciwgZXRjLikKKyAgICAgICAgc2V0RXJyb3IoRE9NRXJyb3I6OmNyZWF0ZShJREJEYXRhYmFz
ZUV4Y2VwdGlvbjo6Z2V0RXJyb3JOYW1lKElEQkRhdGFiYXNlRXhjZXB0aW9uOjpVTktOT1dOX0VS
UikpKTsKKwogICAgICAgICAvLyBBYm9ydCB3YXMgbm90IHRyaWdnZXJlZCBieSBmcm9udC1lbmQs
IHNvIG91dHN0YW5kaW5nIHJlcXVlc3RzIG11c3QKICAgICAgICAgLy8gYmUgYWJvcnRlZCBub3cu
CiAgICAgICAgIHdoaWxlICghbV9yZXF1ZXN0TGlzdC5pc0VtcHR5KCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5oCmluZGV4IGU1ZmJh
N2NiZTNlMWU4OWU5YzliNmJlNDMwZjdlOThhMTZjNjE1M2EuLjMwMzc4NjI3ZmYwZjMyZTQxNDAw
YTE0ZGQyNTFiNTIyZWZkZTBjNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
aW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9p
bmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaApAQCAtNzUsMTAgKzc1LDggQEAgcHVibGljOgogCiAg
ICAgLy8gSW1wbGVtZW50IHRoZSBJREJUcmFuc2FjdGlvbiBJREwKICAgICBjb25zdCBTdHJpbmcm
IG1vZGUoKSBjb25zdDsKLSAgICBJREJEYXRhYmFzZSogZGIoKSBjb25zdDsKLSAgICBQYXNzUmVm
UHRyPERPTUVycm9yPiBlcnJvcihFeGNlcHRpb25Db2RlJikgY29uc3Q7Ci0gICAgdm9pZCBzZXRF
cnJvcihQYXNzUmVmUHRyPERPTUVycm9yPik7Ci0KKyAgICBJREJEYXRhYmFzZSogZGIoKSBjb25z
dCB7IHJldHVybiBtX2RhdGFiYXNlLmdldCgpOyB9CisgICAgUGFzc1JlZlB0cjxET01FcnJvcj4g
ZXJyb3IoKSBjb25zdCB7IHJldHVybiBtX2Vycm9yOyB9CiAgICAgUGFzc1JlZlB0cjxJREJPYmpl
Y3RTdG9yZT4gb2JqZWN0U3RvcmUoY29uc3QgU3RyaW5nJiBuYW1lLCBFeGNlcHRpb25Db2RlJik7
CiAgICAgdm9pZCBhYm9ydCgpOwogCkBAIC05Niw2ICs5NCw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IG9iamVjdFN0b3JlQ3JlYXRlZChjb25zdCBTdHJpbmcmLCBQYXNzUmVmUHRyPElEQk9iamVjdFN0
b3JlPik7CiAgICAgdm9pZCBvYmplY3RTdG9yZURlbGV0ZWQoY29uc3QgU3RyaW5nJik7CiAgICAg
dm9pZCBzZXRBY3RpdmUoYm9vbCk7CisgICAgdm9pZCBzZXRFcnJvcihQYXNzUmVmUHRyPERPTUVy
cm9yPik7CiAKICAgICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGFib3J0KTsKICAg
ICBERUZJTkVfQVRUUklCVVRFX0VWRU5UX0xJU1RFTkVSKGNvbXBsZXRlKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvaW5kZXhlZGRiL0lEQlRyYW5zYWN0aW9uLmlkbAppbmRleCBh
MGU1NGMwM2UwZjI2MjAyNWM4OGZjNDVmODI2NmJkYWY2ZGVhYmIwLi5kZmE5ZWQ5YTFiNmMyNGFj
NDRlZjAxYWQzNzZiZDgwZGU5Y2I3OGNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2luZGV4ZWRkYi9JREJUcmFuc2FjdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9pbmRleGVkZGIvSURCVHJhbnNhY3Rpb24uaWRsCkBAIC0zOSwxMyArMzksMTMgQEAgbW9k
dWxlIHN0b3JhZ2UgewogICAgICAgICAvLyBQcm9wZXJ0aWVzCiAgICAgICAgIHJlYWRvbmx5IGF0
dHJpYnV0ZSBET01TdHJpbmcgbW9kZTsKICAgICAgICAgcmVhZG9ubHkgYXR0cmlidXRlIElEQkRh
dGFiYXNlIGRiOwotICAgICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NRXJyb3IgZXJyb3IgCi0g
ICAgICAgICAgICBnZXR0ZXIgcmFpc2VzIChJREJEYXRhYmFzZUV4Y2VwdGlvbik7CisgICAgICAg
IHJlYWRvbmx5IGF0dHJpYnV0ZSBET01FcnJvciBlcnJvcjsKIAogICAgICAgICAvLyBNZXRob2Rz
CiAgICAgICAgIElEQk9iamVjdFN0b3JlIG9iamVjdFN0b3JlIChpbiBET01TdHJpbmcgbmFtZSkK
ICAgICAgICAgICAgIHJhaXNlcyAoSURCRGF0YWJhc2VFeGNlcHRpb24pOwogICAgICAgICB2b2lk
IGFib3J0ICgpOworCiAgICAgICAgIC8vIEV2ZW50cwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRM
aXN0ZW5lciBvbmFib3J0OwogICAgICAgICBhdHRyaWJ1dGUgRXZlbnRMaXN0ZW5lciBvbmNvbXBs
ZXRlOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDIxYmY4YzZkMDc2ZjEwMzU0YjJiNTdjYWQ5N2FmMGYyZWY5ODQ1ZjguLjRh
MjA3OTNmZjYxOTQ2ZTEyYWE3NjU4NzhkNDMwYmViMjNkYzI2YzcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
NiBAQAorMjAxMi0wNy0xNiAgSm9zaHVhIEJlbGwgIDxqc2JlbGxAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIEluZGV4ZWREQjogSW1wbGVtZW50IHNwZWMgdXBkYXRlcyB0byBJREJUcmFuc2FjdGlv
bi5lcnJvcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTE0MDkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBV
cGRhdGUgdHJhbnNhY3Rpb24tYWJvcnQgdGVzdCB0byBhY2NvbW9kYXRlIHJlZmluZW1lbnRzIGlu
IHRoZSBzcGVjIGFyb3VuZAorICAgICAgICBJREJUcmFuc2FjdGlvbi5lcnJvciBhbmQgYWRkIGEg
ZGVkaWNhdGVkIHRlc3QgdG8gZXhlcmNpc2UgYWxsIHNwZWMgYmVoYXZpb3IgCisgICAgICAgIGZv
ciB0aGUgcHJvcGVydHkuCisKKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMv
dHJhbnNhY3Rpb24tYWJvcnQuanM6CisgICAgICAgIChzdGFydFRlc3QpOgorICAgICAgICAoZmly
c3RBZGQpOgorICAgICAgICAoc2Vjb25kQWRkKToKKyAgICAgICAgKHRyYW5zYWN0aW9uQWJvcnRl
ZCk6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWVy
cm9yLmpzOiBBZGRlZC4KKyAgICAgICAgKHRlc3QucmVxdWVzdC5vbnN1Y2Nlc3MucmVxdWVzdC5v
bnN1Y2Nlc3MucmVxdWVzdC5vbnN1Y2Nlc3MpOgorICAgICAgICAodGVzdC5yZXF1ZXN0Lm9uc3Vj
Y2Vzcy5yZXF1ZXN0Lm9uc3VjY2Vzcyk6CisgICAgICAgICh0ZXN0LnJlcXVlc3Qub25zdWNjZXNz
KToKKyAgICAgICAgKHRlc3QpOgorICAgICAgICAoc3RhcnRUZXN0LnRyYW5zLm9uYWJvcnQpOgor
ICAgICAgICAoc3RhcnRUZXN0KToKKyAgICAgICAgKHRlc3RFcnJvckZyb21SZXF1ZXN0LnJlcXVl
c3Qub25lcnJvcik6CisgICAgICAgICh0ZXN0RXJyb3JGcm9tUmVxdWVzdC50cmFucy5vbmFib3J0
KToKKyAgICAgICAgKHRlc3RFcnJvckZyb21SZXF1ZXN0KToKKyAgICAgICAgKHRlc3RFcnJvckZy
b21FeGNlcHRpb24ucmVxdWVzdC5vbmVycm9yKToKKyAgICAgICAgKHRlc3RFcnJvckZyb21FeGNl
cHRpb24udHJhbnMub25hYm9ydCk6CisgICAgICAgICh0ZXN0RXJyb3JGcm9tRXhjZXB0aW9uKToK
KyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9ydC1leHBlY3RlZC50
eHQ6CisgICAgICAgICogc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tZXJyb3ItZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1l
cnJvci5odG1sOiBBZGRlZC4KKwogMjAxMi0wNy0xNiAgWm9sdGFuIEFydmFpICA8emFydmFpQGlu
Zi51LXN6ZWdlZC5odT4KIAogICAgICAgICBbUXRdIFVucmV2aWV3ZWQgZ2FyZGVuaW5nLiBBZGRp
bmcgZmxha3kgdGVzdHMgdG8gVGV4dEV4cGVjdGF0aW9ucy4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1hYm9ydC5qcyBiL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3Jlc291cmNlcy90cmFuc2FjdGlvbi1hYm9ydC5q
cwppbmRleCA4MzNlNmI4NjNkZTc3NjUyODA2YjcxZTQ3OGQwODM1ZmZiN2JhYzgxLi42YWRlMDI1
MWMxMDBkNzliMGZjZTYyMWNkMTQ5MDcxODJkZGJiMDM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9zdG9yYWdlL2luZGV4ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tYWJvcnQuanMKKysrIGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9uLWFib3J0
LmpzCkBAIC00OSw2ICs0OSw3IEBAIGZ1bmN0aW9uIHN0YXJ0VGVzdCgpCiAgICAgcmVxdWVzdC5v
bnN1Y2Nlc3MgPSB1bmV4cGVjdGVkU3VjY2Vzc0NhbGxiYWNrOwogICAgIHJlcXVlc3QgPSBldmFs
QW5kTG9nKCJzdG9yZS5hZGQoe3g6ICd2YWx1ZTMnLCB5OiAnenp6Myd9LCAna2V5MycpIik7CiAg
ICAgcmVxdWVzdC5vbmVycm9yID0gc2Vjb25kQWRkOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0g
dW5leHBlY3RlZFN1Y2Nlc3NDYWxsYmFjazsKICAgICB0cmFucy5hYm9ydCgpOwogCiAgICAgZmly
c3RFcnJvciA9IGZhbHNlOwpAQCAtNjAsMTAgKzYxLDcgQEAgZnVuY3Rpb24gZmlyc3RBZGQoKQog
ewogICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQuZXJyb3JDb2RlIiwgIkRPTUV4Y2VwdGlvbi5B
Qk9SVF9FUlIiKTsKICAgICBzaG91bGRCZSgiZXZlbnQudGFyZ2V0LmVycm9yLm5hbWUiLCAiJ0Fi
b3J0RXJyb3InIik7Ci0gICAgZmlyc3RET01FcnJvciA9IGV2ZW50LnRhcmdldC5lcnJvcjsKLSAg
ICAvLyBGSVhNRTogQW1iaWd1b3VzIHNwZWMuIFNlZTogaHR0cHM6Ly93d3cudzMub3JnL0J1Z3Mv
UHVibGljL3Nob3dfYnVnLmNnaT9pZD0xNzIzNgotICAgIGV2YWxBbmRFeHBlY3RFeGNlcHRpb24o
InRyYW5zLmVycm9yIiwgIkRPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUiIsICInSW52YWxp
ZFN0YXRlRXJyb3InIik7Ci0KKyAgICBzaG91bGRCZU51bGwoInRyYW5zLmVycm9yIik7CiAgICAg
c2hvdWxkQmVGYWxzZSgiZmlyc3RFcnJvciIpOwogICAgIHNob3VsZEJlRmFsc2UoInNlY29uZEVy
cm9yIik7CiAgICAgc2hvdWxkQmVGYWxzZSgiYWJvcnRGaXJlZCIpOwpAQCAtNzYsOCArNzQsNyBA
QCBmdW5jdGlvbiBzZWNvbmRBZGQoKQogewogICAgIHNob3VsZEJlKCJldmVudC50YXJnZXQuZXJy
b3JDb2RlIiwgIkRPTUV4Y2VwdGlvbi5BQk9SVF9FUlIiKTsKICAgICBzaG91bGRCZSgiZXZlbnQu
dGFyZ2V0LmVycm9yLm5hbWUiLCAiJ0Fib3J0RXJyb3InIik7Ci0gICAgLy8gRklYTUU6IEFtYmln
dW91cyBzcGVjLiBTZWU6IGh0dHBzOi8vd3d3LnczLm9yZy9CdWdzL1B1YmxpYy9zaG93X2J1Zy5j
Z2k/aWQ9MTcyMzYKLSAgICBldmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJ0cmFucy5lcnJvciIsICJE
T01FeGNlcHRpb24uSU5WQUxJRF9TVEFURV9FUlIiLCAiJ0ludmFsaWRTdGF0ZUVycm9yJyIpOwor
ICAgIHNob3VsZEJlTnVsbCgidHJhbnMuZXJyb3IiKTsKICAgICBzaG91bGRCZVRydWUoImZpcnN0
RXJyb3IiKTsKICAgICBzaG91bGRCZUZhbHNlKCJzZWNvbmRFcnJvciIpOwogICAgIHNob3VsZEJl
RmFsc2UoImFib3J0RmlyZWQiKTsKQEAgLTg5LDExICs4NiwxMSBAQCBmdW5jdGlvbiB0cmFuc2Fj
dGlvbkFib3J0ZWQoKQogICAgIHNob3VsZEJlVHJ1ZSgiZmlyc3RFcnJvciIpOwogICAgIHNob3Vs
ZEJlVHJ1ZSgic2Vjb25kRXJyb3IiKTsKICAgICBzaG91bGRCZUZhbHNlKCJhYm9ydEZpcmVkIik7
Ci0gICAgc2hvdWxkQmUoInRyYW5zLmVycm9yIiwgImZpcnN0RE9NRXJyb3IiKTsKKyAgICBzaG91
bGRCZU51bGwoInRyYW5zLmVycm9yIik7CiAgICAgYWJvcnRGaXJlZCA9IHRydWU7CiAKICAgICBl
dmFsQW5kRXhwZWN0RXhjZXB0aW9uKCJzdG9yZS5hZGQoe3g6ICd2YWx1ZTUnLCB5OiAnenp6NSd9
LCAna2V5NScpIiwgIklEQkRhdGFiYXNlRXhjZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VS
UiIsICInVHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yJyIpOwogICAgIGZpbmlzaEpTVGVzdCgpOwog
fQogCi10ZXN0KCk7ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQordGVzdCgpOwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5zYWN0aW9u
LWVycm9yLmpzIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvcmVzb3VyY2VzL3RyYW5z
YWN0aW9uLWVycm9yLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU4MWRjMTFhNDQxM2Y5YWFiNjdiNmVlNTcwNmUw
Mjk5Nzk1MmY1ZWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4
ZWRkYi9yZXNvdXJjZXMvdHJhbnNhY3Rpb24tZXJyb3IuanMKQEAgLTAsMCArMSwxMzggQEAKK2lm
ICh0aGlzLmltcG9ydFNjcmlwdHMpIHsKKyAgICBpbXBvcnRTY3JpcHRzKCcuLi8uLi8uLi9mYXN0
L2pzL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcycpOworICAgIGltcG9ydFNjcmlwdHMoJ3NoYXJl
ZC5qcycpOworfQorCitkZXNjcmlwdGlvbigiVGVzdCBJREJUcmFuc2FjdGlvbi5lcnJvciBjYXNl
cy4iKTsKKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgcmVtb3ZlVmVuZG9yUHJlZml4ZXMoKTsK
KworICAgIGV2YWxBbmRMb2coImRibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUiKTsKKyAg
ICByZXF1ZXN0ID0gZXZhbEFuZExvZygiaW5kZXhlZERCLmRlbGV0ZURhdGFiYXNlKGRibmFtZSki
KTsKKyAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Cisg
ICAgcmVxdWVzdC5vbmVycm9yID0gdW5leHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgcmVxdWVz
dC5vbnN1Y2Nlc3MgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2co
ImluZGV4ZWREQi5vcGVuKGRibmFtZSkiKTsKKyAgICAgICAgcmVxdWVzdC5vbmVycm9yID0gdW5l
eHBlY3RlZEVycm9yQ2FsbGJhY2s7CisgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rp
b24oKSB7CisgICAgICAgICAgICBldmFsQW5kTG9nKCJkYiA9IHJlcXVlc3QucmVzdWx0Iik7Cisg
ICAgICAgICAgICByZXF1ZXN0ID0gZXZhbEFuZExvZygiZGIuc2V0VmVyc2lvbignMScpIik7Cisg
ICAgICAgICAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7
CisgICAgICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsK
KyAgICAgICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAg
ICAgICAgZXZhbEFuZExvZygidHJhbnMgPSBldmVudC50YXJnZXQucmVzdWx0Iik7CisgICAgICAg
ICAgICAgICAgdHJhbnMub25hYm9ydCA9IHVuZXhwZWN0ZWRBYm9ydENhbGxiYWNrOworICAgICAg
ICAgICAgICAgIGV2YWxBbmRMb2coInN0b3JlID0gZGIuY3JlYXRlT2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScpIik7CisgICAgICAgICAgICAgICAgcmVxdWVzdCA9IGV2YWxBbmRMb2coInN0b3JlLmFk
ZCgndmFsdWUnLCAna2V5JykiKTsKKyAgICAgICAgICAgICAgICByZXF1ZXN0Lm9uZXJyb3IgPSB1
bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICAgICAgICAgICAgICB0cmFucy5vbmNvbXBsZXRl
ID0gc3RhcnRUZXN0OworICAgICAgICAgICAgfTsKKyAgICAgICAgfTsKKyAgICB9OworfQorCitm
dW5jdGlvbiBzdGFydFRlc3QoKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBldmFsQW5kTG9nKCJ0
cmFucyA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnKSIpOworCisgICAgZGVidWcoIiIpOwor
ICAgIGRlYnVnKCJJREJUcmFuc2FjdGlvbi5lcnJvciBzaG91bGQgYmUgbnVsbCBpZiB0cmFuc2Fj
dGlvbiBpcyBub3QgZmluaXNoZWQ6Iik7CisgICAgc2hvdWxkQmVOdWxsKCJ0cmFucy5lcnJvciIp
OworCisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJJZiBJREJUcmFuc2FjdGlvbi5hYm9ydCgp
IGlzIGV4cGxpY2l0bHkgY2FsbGVkLCBJREJUcmFuc2FjdGlvbi5lcnJvciBzaG91bGQgYmUgbnVs
bDoiKTsKKyAgICBldmFsQW5kTG9nKCJ0cmFucy5hYm9ydCgpIik7CisgICAgdHJhbnMub25jb21w
bGV0ZSA9IHVuZXhwZWN0ZWRDb21wbGV0ZUNhbGxiYWNrOworICAgIHRyYW5zLm9uYWJvcnQgPSBm
dW5jdGlvbigpIHsKKyAgICAgICAgc2hvdWxkQmVOdWxsKCJ0cmFucy5lcnJvciIpOworICAgICAg
ICB0ZXN0RXJyb3JGcm9tUmVxdWVzdCgpOworICAgIH07Cit9CisKK2Z1bmN0aW9uIHRlc3RFcnJv
ckZyb21SZXF1ZXN0KCkKK3sKKyAgICBkZWJ1ZygiIik7CisgICAgZGVidWcoIklmIHRoZSB0cmFu
c2FjdGlvbiBpcyBhYm9ydGVkIGR1ZSB0byBhIHJlcXVlc3QgZXJyb3IgdGhhdCBpcyBub3QgcHJl
dmVudGVkLCBJREJUcmFuc2FjdGlvbi5lcnJvciBzaG91bGQgbWF0Y2g6Iik7CisgICAgZXZhbEFu
ZExvZygidHJhbnMgPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgJ3JlYWR3cml0ZScpIik7
CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IHRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUn
KS5hZGQoJ3ZhbHVlMicsICdrZXknKSIpOworICAgIHJlcXVlc3Qub25zdWNjZXNzID0gdW5leHBl
Y3RlZFN1Y2Nlc3NDYWxsYmFjazsKKyAgICByZXF1ZXN0Lm9uZXJyb3IgPSBmdW5jdGlvbigpIHsK
KyAgICAgICAgc2hvdWxkQmUoInJlcXVlc3QuZXJyb3JDb2RlIiwgIklEQkRhdGFiYXNlRXhjZXB0
aW9uLkNPTlNUUkFJTlRfRVJSIik7CisgICAgICAgIHNob3VsZEJlKCJyZXF1ZXN0LmVycm9yLm5h
bWUiLCAiJ0NvbnN0cmFpbnRFcnJvciciKTsKKyAgICAgICAgZXZhbEFuZExvZygicmVxdWVzdF9l
cnJvciA9IHJlcXVlc3QuZXJyb3IiKTsKKyAgICB9OworICAgIHRyYW5zLm9uY29tcGxldGUgPSB1
bmV4cGVjdGVkQ29tcGxldGVDYWxsYmFjazsKKyAgICB0cmFucy5vbmFib3J0ID0gZnVuY3Rpb24o
KSB7CisgICAgICAgIGRlYnVnKCJUcmFuc2FjdGlvbiByZWNlaXZlZCBhYm9ydCBldmVudC4iKTsK
KyAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJ0cmFucy5lcnJvciIpOworICAgICAgICBzaG91bGRC
ZSgidHJhbnMuZXJyb3IiLCAicmVxdWVzdF9lcnJvciIpOworICAgICAgICB0ZXN0RXJyb3JGcm9t
RXhjZXB0aW9uKCk7CisgICAgfTsKK30KKworZnVuY3Rpb24gdGVzdEVycm9yRnJvbUV4Y2VwdGlv
bigpCit7CisgICAgZGVidWcoIiIpOworICAgIGRlYnVnKCJJZiB0aGUgdHJhbnNhY3Rpb24gaXMg
YWJvcnRlZCBkdWUgdG8gYW4gZXhjZXB0aW9uIHRocm93biBmcm9tIGV2ZW50IGNhbGxiYWNrLCBJ
REJUcmFuc2FjdGlvbi5lcnJvciBzaG91bGQgYmUgQWJvcnRFcnJvcjoiKTsKKyAgICBldmFsQW5k
TG9nKCJ0cmFucyA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCAncmVhZHdyaXRlJykiKTsK
KyAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gdHJhbnMub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScp
LmFkZCgndmFsdWUyJywgJ2tleScpIik7CisgICAgcmVxdWVzdC5vbnN1Y2Nlc3MgPSB1bmV4cGVj
dGVkU3VjY2Vzc0NhbGxiYWNrOworICAgIHJlcXVlc3Qub25lcnJvciA9IGZ1bmN0aW9uKCkgewor
ICAgICAgICBzaG91bGRCZSgicmVxdWVzdC5lcnJvckNvZGUiLCAiSURCRGF0YWJhc2VFeGNlcHRp
b24uQ09OU1RSQUlOVF9FUlIiKTsKKyAgICAgICAgc2hvdWxkQmUoInJlcXVlc3QuZXJyb3IubmFt
ZSIsICInQ29uc3RyYWludEVycm9yJyIpOworICAgICAgICBkZWJ1ZygiVGhyb3dpbmcgZXhjZXB0
aW9uLi4uIik7CisKKyAgICAgICAgLy8gRW5zdXJlIHRoZSB0ZXN0IGhhcm5lc3MgZXJyb3IgaGFu
ZGxlciBpcyBub3QgaW52b2tlZC4KKyAgICAgICAgc2VsZi5vcmlnaW5hbFdpbmRvd09uRXJyb3Ig
PSBzZWxmLm9uZXJyb3I7CisgICAgICAgIHNlbGYub25lcnJvciA9IG51bGw7CisKKyAgICAgICAg
dGhyb3cgbmV3IEVycm9yKCJUaGlzIHNob3VsZCAqTk9UKiBiZSBjYXVnaHQhIik7CisgICAgfTsK
KyAgICB0cmFucy5vbmNvbXBsZXRlID0gdW5leHBlY3RlZENvbXBsZXRlQ2FsbGJhY2s7CisgICAg
dHJhbnMub25hYm9ydCA9IGZ1bmN0aW9uKCkgeworICAgICAgICBkZWJ1ZygiVHJhbnNhY3Rpb24g
cmVjZWl2ZWQgYWJvcnQgZXZlbnQuIik7CisKKyAgICAgICAgLy8gUmVzdG9yZSB0ZXN0IGhhcm5l
c3MgZXJyb3IgaGFuZGxlci4KKyAgICAgICAgc2VsZi5vbmVycm9yID0gc2VsZi5vcmlnaW5hbFdp
bmRvd09uRXJyb3I7CisKKyAgICAgICAgc2hvdWxkQmVOb25OdWxsKCJ0cmFucy5lcnJvciIpOwor
ICAgICAgICBzaG91bGRCZSgidHJhbnMuZXJyb3IubmFtZSIsICInQWJvcnRFcnJvciciKTsKKyAg
ICAgICAgdGVzdEVycm9yRnJvbUNvbW1pdCgpOworICAgIH07Cit9CisKK2Z1bmN0aW9uIHRlc3RF
cnJvckZyb21Db21taXQoKQoreworICAgIGRlYnVnKCIiKTsKKyAgICBkZWJ1ZygiSWYgdGhlIHRy
YW5zYWN0aW9uIGlzIGFib3J0ZWQgZHVlIHRvIGFuIGVycm9yIGR1cmluZyBjb21taXQsIElEQlRy
YW5zYWN0aW9uLmVycm9yIHNob3VsZCByZWZsZWN0IHRoYXQgZXJyb3I6Iik7CisgICAgZXZhbEFu
ZExvZygidHJhbnMgPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1lJywgJ3JlYWR3cml0ZScpIik7
CisgICAgZXZhbEFuZExvZygicmVxdWVzdCA9IHRyYW5zLm9iamVjdFN0b3JlKCdzdG9yZU5hbWUn
KS5hZGQoe2lkOiAxfSwgJ3JlY29yZDEnKSIpOworICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhw
ZWN0ZWRFcnJvckNhbGxiYWNrOworICAgIGV2YWxBbmRMb2coInJlcXVlc3QgPSB0cmFucy5vYmpl
Y3RTdG9yZSgnc3RvcmVOYW1lJykuYWRkKHtpZDogMX0sICdyZWNvcmQyJykiKTsKKyAgICByZXF1
ZXN0Lm9uZXJyb3IgPSB1bmV4cGVjdGVkRXJyb3JDYWxsYmFjazsKKyAgICB0cmFucy5vbmFib3J0
ID0gdW5leHBlY3RlZEFib3J0Q2FsbGJhY2s7CisgICAgdHJhbnMub25jb21wbGV0ZSA9IGZ1bmN0
aW9uKCkgeworICAgICAgICBldmFsQW5kTG9nKCJyZXF1ZXN0ID0gZGIuc2V0VmVyc2lvbignMicp
Iik7CisgICAgICAgIHJlcXVlc3Qub25lcnJvciA9IHVuZXhwZWN0ZWRFcnJvckNhbGxiYWNrOwor
ICAgICAgICByZXF1ZXN0Lm9uYmxvY2tlZCA9IHVuZXhwZWN0ZWRCbG9ja2VkQ2FsbGJhY2s7Cisg
ICAgICAgIHJlcXVlc3Qub25zdWNjZXNzID0gZnVuY3Rpb24oKSB7CisgICAgICAgICAgICBldmFs
QW5kTG9nKCJ0cmFucyA9IHJlcXVlc3QucmVzdWx0Iik7CisgICAgICAgICAgICBkZWJ1ZygiVGhp
cyBzaG91bGQgZmFpbCBkdWUgdG8gdGhlIHVuaXF1ZSBjb25zdHJhaW50OiIpOworICAgICAgICAg
ICAgZXZhbEFuZExvZygidHJhbnMub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScpLmNyZWF0ZUluZGV4
KCdpbmRleE5hbWUnLCAnaWQnLCB7dW5pcXVlOiB0cnVlfSkiKTsKKyAgICAgICAgICAgIHRyYW5z
Lm9uY29tcGxldGUgPSB1bmV4cGVjdGVkQ29tcGxldGVDYWxsYmFjazsKKyAgICAgICAgICAgIHRy
YW5zLm9uYWJvcnQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgICAgICAgICBkZWJ1ZygiVHJhbnNh
Y3Rpb24gcmVjZWl2ZWQgYWJvcnQgZXZlbnQuIik7CisgICAgICAgICAgICAgICAgc2hvdWxkQmVO
b25OdWxsKCJ0cmFucy5lcnJvciIpOworICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUZXN0IGZv
ciBhIHNwZWNpZmljIGVycm9yIGhlcmUsIHdoZW4gc3VwcG9ydGVkLgorICAgICAgICAgICAgICAg
IHNob3VsZE5vdEJlKCJ0cmFucy5lcnJvci5uYW1lIiwgIidBYm9ydEVycm9yJyIpOworICAgICAg
ICAgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAg
ICAgICAgICAgIH07CisgICAgICAgIH07CisgICAgfTsKK30KKwordGVzdCgpOwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9pbmRleGVkZGIvdHJhbnNhY3Rpb24tYWJvcnQt
ZXhwZWN0ZWQudHh0CmluZGV4IDkyYTFiMzY0NWU3OGQ0MmZkZDY2MDczOTJmMzNkNDkzMzdkNjI5
ZDguLmU5MjljZDc5NzQ5MWIzNTRjNzAzYTE4OWZlZWZkY2Y0ZDRiNjUzMDcgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWFib3J0LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1hYm9y
dC1leHBlY3RlZC50eHQKQEAgLTIzLDEwICsyMyw3IEBAIHN0b3JlLmFkZCh7eDogJ3ZhbHVlMics
IHk6ICd6enoyJ30sICdrZXkyJykKIHN0b3JlLmFkZCh7eDogJ3ZhbHVlMycsIHk6ICd6enozJ30s
ICdrZXkzJykKIFBBU1MgZXZlbnQudGFyZ2V0LmVycm9yQ29kZSBpcyBET01FeGNlcHRpb24uQUJP
UlRfRVJSCiBQQVNTIGV2ZW50LnRhcmdldC5lcnJvci5uYW1lIGlzICdBYm9ydEVycm9yJwotRXhw
ZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHRyYW5zLmVycm9yCi1QQVNTIEV4Y2VwdGlvbiB3YXMgdGhy
b3duLgotUEFTUyBjb2RlIGlzIERPTUV4Y2VwdGlvbi5JTlZBTElEX1NUQVRFX0VSUgotUEFTUyBl
bmFtZSBpcyAnSW52YWxpZFN0YXRlRXJyb3InCitQQVNTIHRyYW5zLmVycm9yIGlzIG51bGwKIFBB
U1MgZmlyc3RFcnJvciBpcyBmYWxzZQogUEFTUyBzZWNvbmRFcnJvciBpcyBmYWxzZQogUEFTUyBh
Ym9ydEZpcmVkIGlzIGZhbHNlCkBAIC0zNiwxNyArMzMsMTQgQEAgUEFTUyBjb2RlIGlzIElEQkRh
dGFiYXNlRXhjZXB0aW9uLlRSQU5TQUNUSU9OX0lOQUNUSVZFX0VSUgogUEFTUyBlbmFtZSBpcyAn
VHJhbnNhY3Rpb25JbmFjdGl2ZUVycm9yJwogUEFTUyBldmVudC50YXJnZXQuZXJyb3JDb2RlIGlz
IERPTUV4Y2VwdGlvbi5BQk9SVF9FUlIKIFBBU1MgZXZlbnQudGFyZ2V0LmVycm9yLm5hbWUgaXMg
J0Fib3J0RXJyb3InCi1FeHBlY3RpbmcgZXhjZXB0aW9uIGZyb20gdHJhbnMuZXJyb3IKLVBBU1Mg
RXhjZXB0aW9uIHdhcyB0aHJvd24uCi1QQVNTIGNvZGUgaXMgRE9NRXhjZXB0aW9uLklOVkFMSURf
U1RBVEVfRVJSCi1QQVNTIGVuYW1lIGlzICdJbnZhbGlkU3RhdGVFcnJvcicKK1BBU1MgdHJhbnMu
ZXJyb3IgaXMgbnVsbAogUEFTUyBmaXJzdEVycm9yIGlzIHRydWUKIFBBU1Mgc2Vjb25kRXJyb3Ig
aXMgZmFsc2UKIFBBU1MgYWJvcnRGaXJlZCBpcyBmYWxzZQogUEFTUyBmaXJzdEVycm9yIGlzIHRy
dWUKIFBBU1Mgc2Vjb25kRXJyb3IgaXMgdHJ1ZQogUEFTUyBhYm9ydEZpcmVkIGlzIGZhbHNlCi1Q
QVNTIHRyYW5zLmVycm9yIGlzIGZpcnN0RE9NRXJyb3IKK1BBU1MgdHJhbnMuZXJyb3IgaXMgbnVs
bAogRXhwZWN0aW5nIGV4Y2VwdGlvbiBmcm9tIHN0b3JlLmFkZCh7eDogJ3ZhbHVlNScsIHk6ICd6
eno1J30sICdrZXk1JykKIFBBU1MgRXhjZXB0aW9uIHdhcyB0aHJvd24uCiBQQVNTIGNvZGUgaXMg
SURCRGF0YWJhc2VFeGNlcHRpb24uVFJBTlNBQ1RJT05fSU5BQ1RJVkVfRVJSCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1lcnJvci1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1lcnJvci1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjRmYmE5YWRlOTQ0YzkwZmI1ZjVjOWVjZDcwMjdjNzNh
OGVjZmJiMwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRi
L3RyYW5zYWN0aW9uLWVycm9yLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYyIEBACitDT05TT0xF
IE1FU1NBR0U6IGxpbmUgOTI6IFVuY2F1Z2h0IEVycm9yOiBUaGlzIHNob3VsZCAqTk9UKiBiZSBj
YXVnaHQhCitUZXN0IElEQlRyYW5zYWN0aW9uLmVycm9yIGNhc2VzLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworaW5kZXhlZERCID0gc2VsZi5pbmRleGVkREIgfHwgc2VsZi53ZWJr
aXRJbmRleGVkREIgfHwgc2VsZi5tb3pJbmRleGVkREIgfHwgc2VsZi5tc0luZGV4ZWREQiB8fCBz
ZWxmLk9JbmRleGVkREI7CisKK2RibmFtZSA9IHNlbGYubG9jYXRpb24ucGF0aG5hbWUKK2luZGV4
ZWREQi5kZWxldGVEYXRhYmFzZShkYm5hbWUpCitpbmRleGVkREIub3BlbihkYm5hbWUpCitkYiA9
IHJlcXVlc3QucmVzdWx0CitkYi5zZXRWZXJzaW9uKCcxJykKK3RyYW5zID0gZXZlbnQudGFyZ2V0
LnJlc3VsdAorc3RvcmUgPSBkYi5jcmVhdGVPYmplY3RTdG9yZSgnc3RvcmVOYW1lJykKK3N0b3Jl
LmFkZCgndmFsdWUnLCAna2V5JykKKwordHJhbnMgPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1l
JykKKworSURCVHJhbnNhY3Rpb24uZXJyb3Igc2hvdWxkIGJlIG51bGwgaWYgdHJhbnNhY3Rpb24g
aXMgbm90IGZpbmlzaGVkOgorUEFTUyB0cmFucy5lcnJvciBpcyBudWxsCisKK0lmIElEQlRyYW5z
YWN0aW9uLmFib3J0KCkgaXMgZXhwbGljaXRseSBjYWxsZWQsIElEQlRyYW5zYWN0aW9uLmVycm9y
IHNob3VsZCBiZSBudWxsOgordHJhbnMuYWJvcnQoKQorUEFTUyB0cmFucy5lcnJvciBpcyBudWxs
CisKK0lmIHRoZSB0cmFuc2FjdGlvbiBpcyBhYm9ydGVkIGR1ZSB0byBhIHJlcXVlc3QgZXJyb3Ig
dGhhdCBpcyBub3QgcHJldmVudGVkLCBJREJUcmFuc2FjdGlvbi5lcnJvciBzaG91bGQgbWF0Y2g6
Cit0cmFucyA9IGRiLnRyYW5zYWN0aW9uKCdzdG9yZU5hbWUnLCAncmVhZHdyaXRlJykKK3JlcXVl
c3QgPSB0cmFucy5vYmplY3RTdG9yZSgnc3RvcmVOYW1lJykuYWRkKCd2YWx1ZTInLCAna2V5JykK
K1BBU1MgcmVxdWVzdC5lcnJvckNvZGUgaXMgSURCRGF0YWJhc2VFeGNlcHRpb24uQ09OU1RSQUlO
VF9FUlIKK1BBU1MgcmVxdWVzdC5lcnJvci5uYW1lIGlzICdDb25zdHJhaW50RXJyb3InCityZXF1
ZXN0X2Vycm9yID0gcmVxdWVzdC5lcnJvcgorVHJhbnNhY3Rpb24gcmVjZWl2ZWQgYWJvcnQgZXZl
bnQuCitQQVNTIHRyYW5zLmVycm9yIGlzIG5vbi1udWxsLgorUEFTUyB0cmFucy5lcnJvciBpcyBy
ZXF1ZXN0X2Vycm9yCisKK0lmIHRoZSB0cmFuc2FjdGlvbiBpcyBhYm9ydGVkIGR1ZSB0byBhbiBl
eGNlcHRpb24gdGhyb3duIGZyb20gZXZlbnQgY2FsbGJhY2ssIElEQlRyYW5zYWN0aW9uLmVycm9y
IHNob3VsZCBiZSBBYm9ydEVycm9yOgordHJhbnMgPSBkYi50cmFuc2FjdGlvbignc3RvcmVOYW1l
JywgJ3JlYWR3cml0ZScpCityZXF1ZXN0ID0gdHJhbnMub2JqZWN0U3RvcmUoJ3N0b3JlTmFtZScp
LmFkZCgndmFsdWUyJywgJ2tleScpCitQQVNTIHJlcXVlc3QuZXJyb3JDb2RlIGlzIElEQkRhdGFi
YXNlRXhjZXB0aW9uLkNPTlNUUkFJTlRfRVJSCitQQVNTIHJlcXVlc3QuZXJyb3IubmFtZSBpcyAn
Q29uc3RyYWludEVycm9yJworVGhyb3dpbmcgZXhjZXB0aW9uLi4uCitUcmFuc2FjdGlvbiByZWNl
aXZlZCBhYm9ydCBldmVudC4KK1BBU1MgdHJhbnMuZXJyb3IgaXMgbm9uLW51bGwuCitQQVNTIHRy
YW5zLmVycm9yLm5hbWUgaXMgJ0Fib3J0RXJyb3InCisKK0lmIHRoZSB0cmFuc2FjdGlvbiBpcyBh
Ym9ydGVkIGR1ZSB0byBhbiBlcnJvciBkdXJpbmcgY29tbWl0LCBJREJUcmFuc2FjdGlvbi5lcnJv
ciBzaG91bGQgcmVmbGVjdCB0aGF0IGVycm9yOgordHJhbnMgPSBkYi50cmFuc2FjdGlvbignc3Rv
cmVOYW1lJywgJ3JlYWR3cml0ZScpCityZXF1ZXN0ID0gdHJhbnMub2JqZWN0U3RvcmUoJ3N0b3Jl
TmFtZScpLmFkZCh7aWQ6IDF9LCAncmVjb3JkMScpCityZXF1ZXN0ID0gdHJhbnMub2JqZWN0U3Rv
cmUoJ3N0b3JlTmFtZScpLmFkZCh7aWQ6IDF9LCAncmVjb3JkMicpCityZXF1ZXN0ID0gZGIuc2V0
VmVyc2lvbignMicpCit0cmFucyA9IHJlcXVlc3QucmVzdWx0CitUaGlzIHNob3VsZCBmYWlsIGR1
ZSB0byB0aGUgdW5pcXVlIGNvbnN0cmFpbnQ6Cit0cmFucy5vYmplY3RTdG9yZSgnc3RvcmVOYW1l
JykuY3JlYXRlSW5kZXgoJ2luZGV4TmFtZScsICdpZCcsIHt1bmlxdWU6IHRydWV9KQorVHJhbnNh
Y3Rpb24gcmVjZWl2ZWQgYWJvcnQgZXZlbnQuCitQQVNTIHRyYW5zLmVycm9yIGlzIG5vbi1udWxs
LgorUEFTUyB0cmFucy5lcnJvci5uYW1lIGlzIG5vdCAnQWJvcnRFcnJvcicKKworUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3N0b3JhZ2UvaW5kZXhlZGRiL3RyYW5zYWN0aW9uLWVycm9yLmh0bWwgYi9MYXlv
dXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1lcnJvci5odG1sCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjNjMGM3Y2UyMDg3YTkzYjE5ZTRkZWRkZGQ3YzdhZDQyODA0YzBkYTYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2luZGV4ZWRkYi90cmFuc2FjdGlvbi1lcnJvci5o
dG1sCkBAIC0wLDAgKzEsMTAgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
ZmFzdC9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9
InJlc291cmNlcy9zaGFyZWQuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL3RyYW5zYWN0aW9uLWVycm9yLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSIuLi8uLi9mYXN0L2pzL3Jlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>