<?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>64512</bug_id>
          
          <creation_ts>2011-07-13 22:45:58 -0700</creation_ts>
          <short_desc>Move scalePageBy from eventSender to window.internals</short_desc>
          <delta_ts>2016-06-06 14:53:40 -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>Tools / Tests</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=75965</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>74069</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Fady Samuel">fsamuel</assigned_to>
          <cc>aroben</cc>
    
    <cc>bdakin</cc>
    
    <cc>fsamuel</cc>
    
    <cc>gustavo.noronha</cc>
    
    <cc>gustavo</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>436938</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-07-13 22:45:58 -0700</bug_when>
    <thetext>eventSender doesn&apos;t seem like the right place form scalePageBy(). It should move to window.internal now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513802</commentid>
    <comment_count>1</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-02 08:45:31 -0800</bug_when>
    <thetext>I&apos;d like to do this for setting fixed layout as well.

There&apos;s a bunch of layout tests that need changing, and then a lot of platform-specific code that needs to be removed. I&apos;ll add a copy of scalePageBy to window.internals, and then we can delete platform specific code as a separate patch or let each port deal with that on their own.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514243</commentid>
    <comment_count>2</comment_count>
      <attachid>117708</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-02 15:49:18 -0800</bug_when>
    <thetext>Created attachment 117708
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514244</commentid>
    <comment_count>3</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-02 15:50:24 -0800</bug_when>
    <thetext>I&apos;ve restricted the scope of this patch to just setPageScaleFactor. I will add deviceScaleFactor and and fixed layout in a subsequent bug report.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514427</commentid>
    <comment_count>4</comment_count>
      <attachid>117708</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-12-02 22:25:01 -0800</bug_when>
    <thetext>Comment on attachment 117708
Patch

Attachment 117708 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10725675</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514444</commentid>
    <comment_count>5</comment_count>
      <attachid>117745</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-02 23:31:51 -0800</bug_when>
    <thetext>Created attachment 117745
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514475</commentid>
    <comment_count>6</comment_count>
      <attachid>117745</attachid>
    <who name="Collabora GTK+ EWS bot">gustavo.noronha</who>
    <bug_when>2011-12-03 03:16:18 -0800</bug_when>
    <thetext>Comment on attachment 117745
Patch

Attachment 117745 did not pass gtk-ews (gtk):
Output: http://queues.webkit.org/results/10732247</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>514500</commentid>
    <comment_count>7</comment_count>
      <attachid>117758</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-03 07:55:32 -0800</bug_when>
    <thetext>Created attachment 117758
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516829</commentid>
    <comment_count>8</comment_count>
      <attachid>117758</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2011-12-07 12:10:17 -0800</bug_when>
    <thetext>Comment on attachment 117758
Patch

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

&gt; Source/WebCore/testing/Internals.idl:83
&gt; +        float getPageScaleFactor(in Document document) raises(DOMException);

We don&apos;t normally use &apos;get&apos; in getters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516886</commentid>
    <comment_count>9</comment_count>
      <attachid>118269</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-07 13:46:19 -0800</bug_when>
    <thetext>Created attachment 118269
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>516889</commentid>
    <comment_count>10</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-07 13:47:36 -0800</bug_when>
    <thetext>(In reply to comment #8)
&gt; (From update of attachment 117758 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117758&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/testing/Internals.idl:83
&gt; &gt; +        float getPageScaleFactor(in Document document) raises(DOMException);
&gt; 
&gt; We don&apos;t normally use &apos;get&apos; in getters.

Fixed, submitted a patch to get the updated symbols from the various EWS bots, then will land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517229</commentid>
    <comment_count>11</comment_count>
      <attachid>118341</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-08 00:02:40 -0800</bug_when>
    <thetext>Created attachment 118341
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517247</commentid>
    <comment_count>12</comment_count>
      <attachid>118341</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-08 01:18:19 -0800</bug_when>
    <thetext>Comment on attachment 118341
Patch for landing

Clearing flags on attachment: 118341

Committed r102323: &lt;http://trac.webkit.org/changeset/102323&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517248</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-08 01:18:26 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517376</commentid>
    <comment_count>14</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-12-08 06:44:43 -0800</bug_when>
    <thetext>*** Bug 59098 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>517445</commentid>
    <comment_count>15</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2011-12-08 08:49:34 -0800</bug_when>
    <thetext>Attempting to reland this (I don&apos; believe this broke the build given the green EWS) If things break, I&apos;m around to figure out what the problem is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530304</commentid>
    <comment_count>16</comment_count>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-01-05 08:16:25 -0800</bug_when>
    <thetext>This should land, I&apos;m not sure if it broke anything? Checking again now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530309</commentid>
    <comment_count>17</comment_count>
      <attachid>121282</attachid>
    <who name="Fady Samuel">fsamuel</who>
    <bug_when>2012-01-05 08:27:20 -0800</bug_when>
    <thetext>Created attachment 121282
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530379</commentid>
    <comment_count>18</comment_count>
      <attachid>121282</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-05 10:17:03 -0800</bug_when>
    <thetext>Comment on attachment 121282
Patch for landing

Clearing flags on attachment: 121282

Committed r104174: &lt;http://trac.webkit.org/changeset/104174&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>530380</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-01-05 10:17:09 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>533089</commentid>
    <comment_count>20</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2012-01-10 08:12:56 -0800</bug_when>
    <thetext>This seems to have caused bug 75965.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117708</attachid>
            <date>2011-12-02 15:49:18 -0800</date>
            <delta_ts>2011-12-02 23:31:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64512-20111202184916.patch</filename>
            <type>text/plain</type>
            <size>30165</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxODA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGFlM2M5NTBkZmU0NzZm
NzA0NzRjZmJmNzdjYzBjM2Q3NTgzZWJhMC4uYWYxMDBlYzJmMjFmODQ2MmQ3YTVjNmEzZGUyMDZh
YjA5YzZlMjJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTEyLTAyICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgc2NhbGVQYWdl
QnkgZnJvbSBldmVudFNlbmRlciB0byB3aW5kb3cuaW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDUxMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHNldFBhZ2VTY2FsZUZhY3RvciB0
byB3aW5kb3cuaW50ZXJuYWxzLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpnZXRQYWdlU2NhbGVGYWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRQYWdlU2NhbGVGYWN0b3IpOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAy
MDExLTEyLTAyICBTdGVwaGVuIENoZW5uZXkgIDxzY2hlbm5leUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUkVHUkVTU0lPTiAocjkxMTI1KTogUG9seWxpbmUgdG9vbCBpbiBnb29nbGUgZG9jcyBp
cyBicm9rZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcAppbmRleCBkNWFiNzg4N2Uz
ODNmYjRiOGEwODkyOTQ3ZmZjOGUxNmY2NDAyZTdkLi5mN2JhOTIyY2FlYWFhMGYwMmZmY2Q5MmE5
NDQ1NDQ1NDFlMTA3NDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0z
NDUsMTYgKzM0NSw2IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0o
RG9jdW1lbnQgKmRvY3VtZW50LCBmbG9hdCBzY2FsZSwgZmxvYXQKICNlbmRpZgogfQogCi1mbG9h
dCBJbnRlcm5hbHM6OmdldFBhZ2VTY2FsZUZhY3RvcihEb2N1bWVudCAqZG9jdW1lbnQsIEV4Y2Vw
dGlvbkNvZGUmIGVjKQotewotICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkp
IHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybiAwOwot
ICAgIH0KLQotICAgIHJldHVybiBkb2N1bWVudC0+cGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKTsK
LX0KLQogdm9pZCBJbnRlcm5hbHM6OnNldFpvb21QYXJhbWV0ZXJzKERvY3VtZW50KiBkb2N1bWVu
dCwgZmxvYXQgc2NhbGUsIGZsb2F0IHgsIGZsb2F0IHksIEV4Y2VwdGlvbkNvZGUmIGVjKQogewog
ICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT52aWV3KCkgfHwgIWRvY3VtZW50LT52aWV3
KCktPmZyYW1lKCkpIHsKQEAgLTU5Nyw0ICs1ODcsMjMgQEAgYm9vbCBJbnRlcm5hbHM6OnVuaWZp
ZWRUZXh0Q2hlY2tpbmdFbmFibGVkKERvY3VtZW50KiBkb2N1bWVudCwgRXhjZXB0aW9uQ29kZSYg
ZWMKICAgICByZXR1cm4gZG9jdW1lbnQtPmZyYW1lKCktPnNldHRpbmdzKCktPnVuaWZpZWRUZXh0
Q2hlY2tlckVuYWJsZWQoKTsKIH0KIAorZmxvYXQgSW50ZXJuYWxzOjpnZXRQYWdlU2NhbGVGYWN0
b3IoRG9jdW1lbnQgKmRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIWRv
Y3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NF
U1NfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAgICByZXR1cm4gZG9jdW1lbnQt
PnBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCk7Cit9CisKK3ZvaWQgSW50ZXJuYWxzOjpzZXRQYWdl
U2NhbGVGYWN0b3IoRG9jdW1lbnQqIGRvY3VtZW50LCBmbG9hdCBzY2FsZUZhY3RvciwgaW50IHgs
IGludCB5LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1
bWVudC0+cGFnZSgpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAg
ICByZXR1cm47CisgICAgfQorICAgIGRvY3VtZW50LT5wYWdlKCktPnNldFBhZ2VTY2FsZUZhY3Rv
cihzY2FsZUZhY3RvciwgSW50UG9pbnQoeCwgeSkpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuaAppbmRleCBiOTA5ZDcwODljM2QwZWJkNTFkYjY5YWJhM2M5YWEzYjY2NDJkOWFi
Li43NWFlMTUyNzAwNGUwM2JmNTk0YTE0NjlkZTQzMTQzNmE3Y2NlOGUyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmgKQEAgLTgyLDcgKzgyLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBz
ZXRFbmFibGVTY3JvbGxBbmltYXRvcihEb2N1bWVudCosIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9u
Q29kZSYpOwogICAgIHZvaWQgc2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKERvY3VtZW50KiwgZmxv
YXQgc2NhbGUsIGZsb2F0IHR4LCBmbG9hdCB0eSwgRXhjZXB0aW9uQ29kZSYpOwotICAgIGZsb2F0
IGdldFBhZ2VTY2FsZUZhY3RvcihEb2N1bWVudCosICBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9p
ZCBzZXRab29tUGFyYW1ldGVycyhEb2N1bWVudCosIGZsb2F0IHNjYWxlLCBmbG9hdCB4LCBmbG9h
dCB5LCBFeGNlcHRpb25Db2RlJik7CiAKICAgICB2b2lkIHNldE1vY2tTY3JvbGxiYXJzRW5hYmxl
ZChEb2N1bWVudCosIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtMTA3LDYgKzEw
Niw5IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQo
RG9jdW1lbnQqLCBib29sLCBFeGNlcHRpb25Db2RlJik7CiAgICAgYm9vbCB1bmlmaWVkVGV4dENo
ZWNraW5nRW5hYmxlZChEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAKKyAgICBmbG9h
dCBnZXRQYWdlU2NhbGVGYWN0b3IoRG9jdW1lbnQqLCAgRXhjZXB0aW9uQ29kZSYpOworICAgIHZv
aWQgc2V0UGFnZVNjYWxlRmFjdG9yKERvY3VtZW50KiwgZmxvYXQgc2NhbGVGYWN0b3IsIGludCB4
LCBpbnQgeSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGludGVy
bmFsc0lkOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggY2NjODkyYzYw
MmQ4YmYyZGFiMjZmYjI0OTYzNDRkNDAyNWQyOTEyYy4uN2NkYjk0YWI5NjM1NWJkMTk5OTU4YTM0
MTdkYTZmODUzMDJkMjU1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRl
cm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAt
NTQsNyArNTQsNiBAQCBtb2R1bGUgd2luZG93IHsKICAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRl
ZERyYXdpbmdFbmFibGVkKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBib29sZWFuIGVuYWJsZWQp
IHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldEVuYWJsZVNjcm9sbEFuaW1h
dG9yKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01F
eGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldFpvb21BbmltYXRvclRyYW5zZm9ybShpbiBEb2N1
bWVudCBkb2N1bWVudCwgaW4gZmxvYXQgc2NhbGUsIGluIGZsb2F0IHR4LCBpbiBmbG9hdCB0eSkg
cmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0gICAgICAgIGZsb2F0IGdldFBhZ2VTY2FsZUZhY3Rvcihp
biBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQg
c2V0Wm9vbVBhcmFtZXRlcnMoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGZsb2F0IHNjYWxlLCBp
biBmbG9hdCB4LCBpbiBmbG9hdCB5KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9p
ZCBzZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWQoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGJvb2xl
YW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAKQEAgLTc5LDYgKzc4LDkgQEAgbW9k
dWxlIHdpbmRvdyB7CiAKICAgICAgICAgdm9pZCBzZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxl
ZChpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMgKERPTUV4
Y2VwdGlvbik7CiAgICAgICAgIGJvb2xlYW4gdW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoaW4g
RG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKworICAgICAgICBmbG9h
dCBnZXRQYWdlU2NhbGVGYWN0b3IoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyhET01FeGNl
cHRpb24pOworICAgICAgICB2b2lkIHNldFBhZ2VTY2FsZUZhY3RvcihpbiBEb2N1bWVudCBkb2N1
bWVudCwgaW4gZmxvYXQgc2NhbGVGYWN0b3IsIGluIGxvbmcgeCwgaW4gbG9uZyB5KSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKICAgICB9OwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTk5YjM1YWU4NzMzZDBhNmU2NDE2
ODA2MmZkNmYzZTNjODVlZTU1Yi4uMTk1Nzc3ZjY4NmNhZGY3ZGE1MDg1YmE3ZDQ3YTBjYjQ0YWM1
NmYwMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDExLTEyLTAyICBGYWR5IFNhbXVlbCAgPGZz
YW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgc2NhbGVQYWdlQnkgZnJvbSBldmVu
dFNlbmRlciB0byB3aW5kb3cuaW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD02NDUxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgbGF5b3V0IHRlc3RzIHRvIHVzZSB3aW5kb3cuaW50
ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3RvcgorCisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0
cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbDoKKyAgICAg
ICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Ut
c2NhbGUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlv
bi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbDoKKyAgICAgICAgKiBjb21w
b3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNj
YWxlLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
dHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWw6CisgICAgICAgICogY29t
cG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFn
ZS1zY2FsZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3NjYWxpbmcvdGlsZWQtbGF5ZXIt
cmVjdXJzaW9uLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdlLWJv
dW5kaW5nLWNsaWVudC1yZWN0Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vRWxlbWVudC9zY2Fs
ZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL1JhbmdlL3NjYWxl
LXBhZ2UtYm91bmRpbmctY2xpZW50LXJlY3QuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9SYW5n
ZS9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Nj
YWxlLWFuZC1zY3JvbGwtYm9keS5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NjYWxlLWFu
ZC1zY3JvbGwtaWZyYW1lLWJvZHkuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY2FsZS1h
bmQtc2Nyb2xsLWlmcmFtZS13aW5kb3cuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY2Fs
ZS1hbmQtc2Nyb2xsLXdpbmRvdy5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NjcmlwdC10
ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGljay1pZnJhbWUuanM6CisgICAgICAgIChpZnJhbWVM
b2FkZWQpOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxlZC1t
b3VzZS1jbGljay5qczoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY3JvbGwtaW4tc2NhbGVkLXBh
Z2Utd2l0aC1vdmVyZmxvdy1oaWRkZW4uaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90b3Vj
aC9wYWdlLXNjYWxlZC10b3VjaC1nZXN0dXJlLWNsaWNrLmh0bWw6CisgICAgICAgICogZmFzdC9m
cmFtZXMvZnJhbWUtc2V0LXJvdGF0aW9uLWhpdC5odG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVz
L2ZyYW1lLXNldC1zY2FsaW5nLWhpdC5odG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVzL2lmcmFt
ZS1kb3VibGUtc2NhbGUtY29udGVudHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQvYmFj
a2dyb3VuZC1zY2FsaW5nLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NjYWxlLXBhZ2Ut
c2hyaW5rLmh0bWw6CisgICAgICAgICogZmFzdC90cmFuc2Zvcm1zL3NlbGVjdGlvbi1ib3VuZHMt
aW4tdHJhbnNmb3JtZWQtdmlldy5odG1sOgorCiAyMDExLTEyLTAyICBQaGlsaXBwZSBOb3JtYW5k
ICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBza2lwIGZhaWxp
bmcgd2Vic29ja2V0IHRlc3Qgb24gR1RLLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24u
aHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNv
bXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKaW5kZXggZjg4NjY2Y2EzNDVkMGY5ZjMyMTVh
MTZmYjg3MGU4OTczYzU4YTEzMS4uMzc3MWY1ZTczZThhY2YwNmJjMGVjN2NiMjJmNzE2YjljMWEy
YmRmOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQt
cG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2Nh
bGUtZG93bi5odG1sCkBAIC0xOCwxMiArMTgsMTIgQEAKIDwvc3R5bGU+CiA8c2NyaXB0PgogICBm
dW5jdGlvbiBzY2FsZSgpIHsKLSAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICBpZiAod2lu
ZG93LmludGVybmFscykgewogICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21wb3Np
dGluZ0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOwotICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1Rl
eHQodHJ1ZSk7Ci0gICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgwLjUsIDAsIDApOworICAg
ICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwgMCwg
MCk7CiAgICAgfQorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwogICB9CiA8L3NjcmlwdD4KIDwv
aGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVk
LXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwK
aW5kZXggYTc1NWRkYTYwODM4NjQ4Y2I4ODFmM2EzMzAzNTZhMzc5ZDY1Yjg4OC4uMGM1ODU0MWFm
YzA3MTJjOTk4ZDhjNGM5ZTA5ZDkwNzY5NjkwNTNiYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxl
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRp
b24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKQEAgLTE4LDEyICsxOCwxMiBAQAogPC9zdHls
ZT4KIDxzY3JpcHQ+CiAgIGZ1bmN0aW9uIHNjYWxlKCkgewotICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7Ci0g
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKLSAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5
KDIsIDAsIDApOworICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9j
dW1lbnQsIDIsIDAsIDApOwogICAgIH0KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgfQog
PC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9n
ZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24u
aHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlm
cmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCmluZGV4IGFkZjY5ZTY2M2RhOGYy
M2I5ODUzYmU0MGI1ZTE4YjA2YzdhZmQwMGIuLjNjNzI1ZGFlMTQxZDVhM2M1N2U1YTY0MjQxYzU2
OTAxYjQwOGZmMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5
L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCisr
KyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFt
ZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCkBAIC0xOCwxMiArMTgsMTIgQEAKIDwv
c3R5bGU+CiA8c2NyaXB0PgogICBmdW5jdGlvbiB0ZXN0KCkgewotICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICB3aW5kb3cuaW50ZXJu
YWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7
Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKLSAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFn
ZUJ5KDAuNSwgMCwgMCk7CisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rv
cihkb2N1bWVudCwgMC41LCAwLCAwKTsKICAgICB9CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7
CiAKICAgICB2YXIgZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFtZScpLmNvbnRlbnRE
b2N1bWVudC5vcGVuKCk7CiAgICAgZC53cml0ZSgiPGRpdiBzdHlsZT0ncG9zaXRpb246Zml4ZWQ7
IHotaW5kZXg6IDE7IGxlZnQ7IDEwcHg7Jz5URVNUPC9kaXY+Iik7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9z
aXRlZC1wYWdlLXNjYWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9m
aXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKaW5kZXggMDg1
ZjYxZTljMDRkMjU5Mzk2NDg4NGM2ZTIwOTMyNDgwZGRlNGE3Yi4uMTZhYjA3NTFjYmQwMzBmMjRl
Y2NhZDFmNTc2MTAxZjA4NTRkNjM2MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9u
LWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbApAQCAtMTgsMTIgKzE4LDEyIEBACiA8
L3N0eWxlPgogPHNjcmlwdD4KICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICBpZiAod2luZG93LmludGVybmFscykgewogICAgICAgd2luZG93LmludGVy
bmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUp
OwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7Ci0gICAgICBldmVudFNlbmRlci5zY2FsZVBh
Z2VCeSgyLCAwLCAwKTsKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9y
KGRvY3VtZW50LCAyLCAwLCAwKTsKICAgICB9CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CiAK
ICAgICB2YXIgZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFtZScpLmNvbnRlbnREb2N1
bWVudC5vcGVuKCk7CiAgICAgZC53cml0ZSgiPGRpdiBzdHlsZT0ncG9zaXRpb246Zml4ZWQ7IHot
aW5kZXg6IDE7IGxlZnQ7IDEwcHg7Jz5URVNUPC9kaXY+Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9z
aXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21l
dHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5o
dG1sCmluZGV4IGJlOWQ5Y2MzMzNhMWM4N2U3MzFlYzU0MzBkNDg4Y2Y2ZGM0ZDgxMDYuLjQ1Y2Uw
MzVmMjkyMjk0NjBlMzM0Mjc4MGNiZjRjMWZiNTZlYzIzNjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3Np
dGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dl
b21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93
bi5odG1sCkBAIC0yMCwxMiArMjAsMTIgQEAKIDwvc3R5bGU+CiA8c2NyaXB0PgogICBmdW5jdGlv
biBzY2FsZSgpIHsKLSAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICBpZiAod2luZG93Lmlu
dGVybmFscykgewogICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0Zv
ckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1
ZSk7Ci0gICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgwLjUsIDAsIDApOworICAgICAgd2lu
ZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwgMCwgMCk7CiAg
ICAgfQorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwogICB9CiA8L3NjcmlwdD4KIDwvaGVhZD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0
aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBh
Z2Utc2NhbGUuaHRtbAppbmRleCBmN2ZiM2RmYWJkMzcxMjFmODMwZjM5ZmZiYzA1N2YwOTA2ZjZj
MGVhLi5kZjg2NjdiMWEyNGQ5M2VkMjMxOWM5YzQ5NWExNTk3NmNhZDhkYWRkIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zv
cm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2Fs
ZS5odG1sCkBAIC0yMCwxMiArMjAsMTIgQEAKIDwvc3R5bGU+CiA8c2NyaXB0PgogICBmdW5jdGlv
biBzY2FsZSgpIHsKLSAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICBpZiAod2luZG93Lmlu
dGVybmFscykgewogICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0Zv
ckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpIHsKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1
ZSk7Ci0gICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgyLCAwLCAwKTsKKyAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAwKTsKICAgICB9
CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CiAgIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvc2NhbGluZy90aWxlZC1sYXllci1yZWN1
cnNpb24uaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3NjYWxpbmcvdGlsZWQtbGF5ZXIt
cmVjdXJzaW9uLmh0bWwKaW5kZXggZjhiMTg5ZmQ5MDE4NDIyNThjMTU4OTZmODE3YzYzYWUzZmZh
NWJjMC4uMzk5ZDBlMGYwNDZlYjRhYWYxOGE1M2YxZWEzZTEwY2QyZWJiYmY2ZSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvc2NhbGluZy90aWxlZC1sYXllci1yZWN1cnNpb24u
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9zY2FsaW5nL3RpbGVkLWxheWVyLXJl
Y3Vyc2lvbi5odG1sCkBAIC0xNiw3ICsxNiw4IEBACiAKICAgICBmdW5jdGlvbiBzY2FsZVBhZ2Uo
KQogICAgIHsKLSAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDEuNTAwMjUsIDAsIDApOwor
ICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAxLjUwMDI1LCAwLCAwKTsKICAgICB9CiAgIAogICAg
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgc2NhbGVQYWdlLCBmYWxzZSk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbGVtZW50L3NjYWxlLXBhZ2UtYm91bmRpbmct
Y2xpZW50LXJlY3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFn
ZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1sCmluZGV4IGU0OTY2ZDMyOGM2NjQ3YmUxNjI5OGI0
MDYwNzhiNDkzZmQzMTZmYTEuLjYwMjI4OWIzMzUxMjkxNWFlYjlkZTY1MmZlZTc1ODI5ZDA5OWNh
NzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1i
b3VuZGluZy1jbGllbnQtcmVjdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1l
bnQvc2NhbGUtcGFnZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1sCkBAIC0zLDEzICszLDEzIEBA
CiA8c2NyaXB0PgogZnVuY3Rpb24gdGVzdFJlY3RzKCkKIHsKLSAgICBpZiAoIXdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlcikKKyAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciB8
fCAhd2luZG93LmludGVybmFscykKICAgICAgICAgcmV0dXJuOwogICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICAKICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoImRpdiIpOwogICAgIHZhciByZWN0ID0gZGl2LmdldEJvdW5kaW5nQ2xpZW50UmVj
dCgpOwotICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDIsMCwwKTsKKyAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMiwgMCwgMCk7CiAgICAgdmFyIHNj
YWxlZFJlY3QgPSBkaXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAKICAgICB2YXIgcmVzdWx0
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sCmlu
ZGV4IDc0ZDAyOGE4YzkwNmUzZTE0NDVmNjgyNzMwOTk5MmFkYTg2ODc3N2YuLjhmYTJhMzExMDVh
YTc2ODhiYzM1OGU5YjUzOGQxMDM0OGM3ZThhZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9FbGVtZW50L3NjYWxlLXBhZ2UtY2xpZW50LXJlY3RzLmh0bWwKQEAgLTMs
MTMgKzMsMTMgQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiB0ZXN0UmVjdHMoKQogewotICAgIGlmICgh
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGlmICghd2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyIHx8ICF3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICByZXR1cm47CiAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgIAogICAgIHZhciBkaXYgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2Iik7CiAgICAgdmFyIHJlY3RMaXN0ID0gZGl2LmdldENs
aWVudFJlY3RzKCk7Ci0gICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMiwwLDApOworICAgIHdp
bmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAwKTsKICAg
ICB2YXIgc2NhbGVkUmVjdExpc3QgPSBkaXYuZ2V0Q2xpZW50UmVjdHMoKTsKIAogICAgIHZhciBy
ZXN1bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iik7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWJvdW5kaW5nLWNsaWVudC1yZWN0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWJvdW5kaW5nLWNs
aWVudC1yZWN0Lmh0bWwKaW5kZXggOWEzZTIxMDc5Y2FmN2ZhOWYwNzQxOWNjNjAyMjMxYWY0NGZm
M2VlMy4uZjEyYzBmZDc4MzE4M2JjNThiYjg0YjA4ZDZjMDg3OTIwYTVlNjllOCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1ib3VuZGluZy1jbGllbnQt
cmVjdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL3NjYWxlLXBhZ2UtYm91
bmRpbmctY2xpZW50LXJlY3QuaHRtbApAQCAtMyw3ICszLDcgQEAKIDxzY3JpcHQ+CiBmdW5jdGlv
biB0ZXN0UmVjdHMoKQogewotICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQor
ICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyIHx8ICF3aW5kb3cuaW50ZXJuYWxz
KQogICAgICAgICByZXR1cm47CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgp
OwogCkBAIC0xMSw3ICsxMSw3IEBAIGZ1bmN0aW9uIHRlc3RSZWN0cygpCiAgICAgcmFuZ2Uuc2Vs
ZWN0Tm9kZUNvbnRlbnRzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXYnKSk7CiAgICAgdmFy
IHJlY3QgPSByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgIAotICAgIGV2ZW50U2Vu
ZGVyLnNjYWxlUGFnZUJ5KDIsMCwwKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2Fs
ZUZhY3Rvcihkb2N1bWVudCwgMiwgMCwgMCk7CiAgICAgdmFyIHNjYWxlZFJhbmdlID0gZG9jdW1l
bnQuY3JlYXRlUmFuZ2UoKTsKICAgICBzY2FsZWRSYW5nZS5zZWxlY3ROb2RlQ29udGVudHMoZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpdicpKTsKICAgICB2YXIgc2NhbGVkUmVjdCA9IHNjYWxl
ZFJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbCBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL1JhbmdlL3NjYWxlLXBhZ2UtY2xpZW50LXJlY3RzLmh0bWwKaW5kZXggNWNmMmJk
MzA1MDgxZjVhZjMzOTYyNWMzMmNkNTI3MTk2ZjAxMmRhMi4uM2VmMzY3OTU1NjMyMjNhOGI3NDNk
YjIwZGY4MDQwMTFkOGZkMDgxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFu
Z2Uvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9SYW5nZS9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sCkBAIC0zLDcgKzMsNyBAQAogPHNj
cmlwdD4KIGZ1bmN0aW9uIHRlc3RSZWN0cygpCiB7Ci0gICAgaWYgKCF3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgfHwgICF3
aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICByZXR1cm47CiAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwogCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9uIHRlc3RSZWN0cygp
CiAgICAgdmFyIHJlY3RMaXN0ID0gcmFuZ2UuZ2V0Q2xpZW50UmVjdHMoKTsKICAgICB2YXIgcmVj
dCA9IHJlY3RMaXN0WzBdOwogICAgCi0gICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMiwwLDAp
OworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAw
LCAwKTsKICAgICB2YXIgc2NhbGVkUmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOwogICAg
IHNjYWxlZFJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
ZGl2JykpOwogICAgIHZhciBzY2FsZWRSZWN0TGlzdCA9IHNjYWxlZFJhbmdlLmdldENsaWVudFJl
Y3RzKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Ny
b2xsLWJvZHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwt
Ym9keS5odG1sCmluZGV4IDdhODdlZjRlNTA5NTlmMmQ0MTVjMzk5OTA4MmNlZDY0NzJkNTRkMDUu
LmE1NzBkNzkzM2Y2MGFlNjhjYzdmOWNhMGZkMGQ1MzhjNzNhOWVjYTMgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtYm9keS5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtYm9keS5odG1sCkBAIC0xMCw3
ICsxMCw3IEBACiAgICAgICB3aW5kb3cuZW5hYmxlUGl4ZWxUZXN0aW5nID0gdHJ1ZTsKIAogICAg
ICAgZnVuY3Rpb24gc2Nyb2xsKCkgewotICAgICAgICAgIC8vIFRoZSBwYWdlIHNjYWxlLCBhcyBz
ZXQgYnkgRXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkgc2hvdWxkIG5vdCBiZSBhcHBhcmVudAorICAg
ICAgICAgIC8vIFRoZSBwYWdlIHNjYWxlLCBhcyBzZXQgYnkgd2luZG93LmludGVybmFscy5zZXRQ
YWdlU2NhbGVGYWN0b3Igc2hvdWxkIG5vdCBiZSBhcHBhcmVudAogICAgICAgICAgIC8vIHRvIGph
dmFzY3JpcHQuIFNvLCB3ZSBleHBlY3Qgc2Nyb2xsaW5nIHRvICgxMDAsMTAwKSB0byBiZSBwYWdl
IGNvb3JkaW5hdGVzLCByYXRoZXIKICAgICAgICAgICAvLyB0aGFuIGRldmljZSBwaXhlbHMuCiAg
ICAgICAgICAgZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0ID0gMTAwOwpAQCAtMjUsOCArMjUsOCBA
QAogICAgICAgZnVuY3Rpb24gc2NhbGVXaXRoRXZlbnRTZW5kZXIoKSB7CiAgICAgICAgICAgdmFy
IHNjYWxlRmFjdG9yID0gMi4wOwogICAgICAgICAgIHZhciBzY2FsZU9mZnNldCA9IDA7Ci0gICAg
ICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICAgICAgIGV2ZW50U2VuZGVy
LnNjYWxlUGFnZUJ5KHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQpOworICAg
ICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgd2luZG93LmludGVy
bmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNl
dCwgc2NhbGVPZmZzZXQpOwogICAgICAgICAgIH0KICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtYm9keS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtYm9keS5odG1s
CmluZGV4IDBhNTE4YzdhNWYzNzU2ZjZmYTdmYTcwYmFmMzc4NDJiZGQ4OWU5YTQuLjgxOTViOTlm
Y2FlZWZiOGFmZWE2YTJmZmJiMjYyYWFmN2ZjMmEyODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtaWZyYW1lLWJvZHkuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS1ib2R5Lmh0bWwKQEAg
LTI0LDggKzI0LDggQEAKICAgICAgICAgZnVuY3Rpb24gc2NhbGVXaXRoRXZlbnRTZW5kZXIoKSB7
CiAgICAgICAgICAgICB2YXIgc2NhbGVGYWN0b3IgPSAwLjU7CiAgICAgICAgICAgICB2YXIgc2Nh
bGVPZmZzZXQgPSAwOwotICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAg
ICAgICAgICAgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeShzY2FsZUZhY3Rvciwgc2NhbGVP
ZmZzZXQsIHNjYWxlT2Zmc2V0KTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7
CisgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRv
Y3VtZW50LCBzY2FsZUZhY3Rvciwgc2NhbGVPZmZzZXQsIHNjYWxlT2Zmc2V0KTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
Y2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NjYWxlLWFuZC1zY3JvbGwtaWZyYW1lLXdpbmRvdy5odG1sCmluZGV4IDQxY2VhYzdhZDYz
MmYyOWJkYTJhZTkzN2U3YjNhMjJjNTIzN2FhZDEuLjc3OTM1ODEyYTE2NTAxMmY4MjU1NjYyYzlk
ZWYwYzYyN2IyMDY3MjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxl
LWFuZC1zY3JvbGwtaWZyYW1lLXdpbmRvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NjYWxlLWFuZC1zY3JvbGwtaWZyYW1lLXdpbmRvdy5odG1sCkBAIC0yMyw4ICsyMyw4IEBA
CiAgICAgICAgIGZ1bmN0aW9uIHNjYWxlV2l0aEV2ZW50U2VuZGVyKCkgewogICAgICAgICAgICAg
dmFyIHNjYWxlRmFjdG9yID0gMC41OwogICAgICAgICAgICAgdmFyIHNjYWxlT2Zmc2V0ID0gMDsK
LSAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICAgICAgICAgICAgICAg
ZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9m
ZnNldCk7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAg
ICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgc2NhbGVG
YWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9s
bC13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwt
d2luZG93Lmh0bWwKaW5kZXggYzU1NTExNTI1MzQyOWUxYjRjMDg2MTYzMGEwOTJjOTE4MjQ0MmUw
Yy4uNWMzNWU2NWNjYTE4ZWE0MjcyMjQwOGQ0MjQyMTAyYWEwNTVjNTZiMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC13aW5kb3cuaHRtbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLXdpbmRvdy5odG1sCkBA
IC0xMCw3ICsxMCw3IEBACiAgICAgICB3aW5kb3cuZW5hYmxlUGl4ZWxUZXN0aW5nID0gdHJ1ZTsK
IAogICAgICAgZnVuY3Rpb24gc2Nyb2xsKCkgewotICAgICAgICAgIC8vIFRoZSBwYWdlIHNjYWxl
LCBhcyBzZXQgYnkgRXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkgc2hvdWxkIG5vdCBiZSBhcHBhcmVu
dAorICAgICAgICAgIC8vIFRoZSBwYWdlIHNjYWxlLCBhcyBzZXQgYnkgd2luZG93LmludGVybmFs
cy5zZXRQYWdlU2NhbGVGYWN0b3Igc2hvdWxkIG5vdCBiZSBhcHBhcmVudAogICAgICAgICAgIC8v
IHRvIGphdmFzY3JpcHQuIFNvLCB3ZSBleHBlY3Qgc2Nyb2xsaW5nIHRvICgxMDAsMTAwKSB0byBi
ZSBwYWdlIGNvb3JkaW5hdGVzLCByYXRoZXIKICAgICAgICAgICAvLyB0aGFuIGRldmljZSBwaXhl
bHMuCiAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKDEwMCwxMDApOwpAQCAtMjQsOCArMjQsOCBA
QAogICAgICAgZnVuY3Rpb24gc2NhbGVXaXRoRXZlbnRTZW5kZXIoKSB7CiAgICAgICAgICAgdmFy
IHNjYWxlRmFjdG9yID0gMi4wOwogICAgICAgICAgIHZhciBzY2FsZU9mZnNldCA9IDA7Ci0gICAg
ICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICAgICAgIGV2ZW50U2VuZGVy
LnNjYWxlUGFnZUJ5KHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQpOworICAg
ICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgd2luZG93LmludGVy
bmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNl
dCwgc2NhbGVPZmZzZXQpOwogICAgICAgICAgIH0KICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL3BhZ2Utc2NhbGVkLW1vdXNlLWNsaWNr
LWlmcmFtZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNj
YWxlZC1tb3VzZS1jbGljay1pZnJhbWUuanMKaW5kZXggYmQ5NjNlOGUwMGE4YjBkZTA3MWNkOWE0
OGRiNWIwYTYwYzM1MmIwZC4uMzk3ZjhkZTM3Yzg3Mzc1Y2I5NDQ0NmY1MDI0ZTVkYjc5NGVhNjEy
MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL3BhZ2Ut
c2NhbGVkLW1vdXNlLWNsaWNrLWlmcmFtZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2staWZyYW1lLmpzCkBAIC01Miw3
ICs1Miw3IEBAIGZ1bmN0aW9uIGlmcmFtZUxvYWRlZCgpIHsKICAgZGl2LmFkZEV2ZW50TGlzdGVu
ZXIoImNsaWNrIiwgYXBwZW5kRXZlbnRMb2csIGZhbHNlKTsKICAgaWZyYW1lLmNvbnRlbnRXaW5k
b3cuZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoZGl2LCBpZnJhbWUuY29udGVudFdpbmRvdy5k
b2N1bWVudC5ib2R5LmZpcnN0Q2hpbGQpOwogCi0gIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsK
KyAgaWYgKHdpbmRvdy5ldmVudFNlbmRlciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgZXZl
bnRTZW5kZXIubW91c2VNb3ZlVG8oMTAsIDEwKTsKICAgICAvLyBXZSBhcmUgY2xpY2tpbmcgaW4g
dGhlIHNhbWUgcG9zaXRpb24gb24gc2NyZWVuLiBBcyB3ZSBzY2FsZSBvciB0cmFuc2Zvcm0gdGhl
IHBhZ2UsCiAgICAgLy8gd2UgZXhwZWN0IHRoZSBwYWdlWCBhbmQgcGFnZVkgZXZlbnQgY29vcmRp
bmF0ZXMgdG8gY2hhbmdlIGJlY2F1c2UgZGlmZmVyZW50CkBAIC02MCwxNSArNjAsMTUgQEAgZnVu
Y3Rpb24gaWZyYW1lTG9hZGVkKCkgewogCiAgICAgdGVzdEV2ZW50cygwLCAiVW5zY2FsZWQiLCAi
Y2xpY2soMTAsIDEwKSIpOwogCi0gICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMC41LCAwLCAw
KTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMC41
LCAwLCAwKTsKICAgICB0ZXN0RXZlbnRzKDAsICJzZXRQYWdlU2NhbGUoMC41KSIsICJjbGljaygy
MCwgMjApIik7CiAKLSAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgxLjAsIDAsIDApOworICAg
IHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAxLjAsIDAsIDAp
OwogICAgIGh0bWwuc3R5bGVbIi13ZWJraXQtdHJhbnNmb3JtIl0gPSAic2NhbGUoMC41LCAyLjAp
IjsKICAgICBodG1sLnN0eWxlWyItd2Via2l0LXRyYW5zZm9ybS1vcmlnaW4iXSA9ICIwIDAiOwog
ICAgIHRlc3RFdmVudHMoMCwgIkNTUyBzY2FsZSgwLjUsIDIuMCkiLCAiY2xpY2soMjAsIDUpIik7
CiAKLSAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgwLjUsIDAsIDApOworICAgIHdpbmRvdy5p
bnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjUsIDAsIDApOwogICAgIHRl
c3RFdmVudHMoMCwgInNldFBhZ2VTY2FsZSgwLjUpLCBDU1Mgc2NhbGUoMC41LCAyLjApIiwgImNs
aWNrKDQwLCAxMCkiKTsKICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2suanMgYi9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2suanMKaW5kZXgg
OTc4N2Y5NTI0NGJmY2Y0MzQxNjBlMzljMTQyZmJlMDE5NTkzOTMxYy4uNDRlNjgzY2M2NGVlOWJm
N2JmOTU1YTZjZjBmNzA2ODA5ZDZmNThjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc2NyaXB0LXRlc3RzL3BhZ2Utc2NhbGVkLW1vdXNlLWNsaWNrLmpzCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGljay5q
cwpAQCAtNDMsMTMgKzQzLDEzIEBAIGZ1bmN0aW9uIHRlc3RFdmVudHMoYnV0dG9uLCBkZXNjcmlw
dGlvbiwgZXhwZWN0ZWRTdHJpbmcpIHsKICAgICBjbGVhckV2ZW50TG9nKCk7CiB9CiAKLWlmICh3
aW5kb3cuZXZlbnRTZW5kZXIpIHsKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIgJiYgd2luZG93Lmlu
dGVybmFscykgewogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEwLCAxMCk7CiAgICAgLy8g
V2UgYXJlIGNsaWNraW5nIGluIHRoZSBzYW1lIHBvc2l0aW9uIG9uIHNjcmVlbi4gQXMgd2Ugc2Nh
bGUgb3IgdHJhbnNmb3JtIHRoZSBwYWdlLAogICAgIC8vIHdlIGV4cGVjdCB0aGUgcGFnZVggYW5k
IHBhZ2VZIGV2ZW50IGNvb3JkaW5hdGVzIHRvIGNoYW5nZSBiZWNhdXNlIGRpZmZlcmVudAogICAg
IC8vIHBhcnRzIG9mIHRoZSBkb2N1bWVudCBhcmUgdW5kZXIgdGhlIG1vdXNlLgogICAgIHRlc3RF
dmVudHMoMCwgIlVuc2NhbGVkIiwgImNsaWNrKDEwLCAxMCkiKTsKIAotICAgIGV2ZW50U2VuZGVy
LnNjYWxlUGFnZUJ5KDAuNSwgMCwgMCk7CisgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2Nh
bGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwgMCwgMCk7CiAgICAgdGVzdEV2ZW50cygwLCAic2V0UGFn
ZVNjYWxlKDAuNSkiLCAiY2xpY2soMjAsIDIwKSIpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc2Nyb2xsLWluLXNjYWxlZC1wYWdlLXdpdGgtb3ZlcmZsb3ctaGlkZGVu
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGwtaW4tc2NhbGVkLXBhZ2Utd2l0
aC1vdmVyZmxvdy1oaWRkZW4uaHRtbAppbmRleCAwMzBhYzE2ZGVjNzBlZGQyYmM2NjQ4M2JkNTUz
YTgyM2NjMmVjM2RjLi5mZjZkMmM5OTA5ZjY5MmNmNGU5ODVhZTY5NmQyM2ZjZmJlYjI5MDZkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGwtaW4tc2NhbGVkLXBhZ2Ut
d2l0aC1vdmVyZmxvdy1oaWRkZW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
Y3JvbGwtaW4tc2NhbGVkLXBhZ2Utd2l0aC1vdmVyZmxvdy1oaWRkZW4uaHRtbApAQCAtMjIsOCAr
MjIsOCBAQAogICAgICAgICAvLyBGb3JjZSBhIGxheW91dC4KICAgICAgICAgZG9jdW1lbnQuYm9k
eS5vZmZzZXRMZWZ0OwogCi0gICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCi0gICAgICAg
ICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgyLCAwLCAwKTsKKyAgICAgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpCisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZh
Y3Rvcihkb2N1bWVudCwgMiwgMCwgMCk7CiAKICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5kb2N1
bWVudC5ib2R5LnNjcm9sbFRvcCIsICIwIik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3RvdWNoL3BhZ2Utc2NhbGVkLXRvdWNoLWdlc3R1cmUtY2xpY2suaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3BhZ2Utc2NhbGVkLXRvdWNoLWdlc3R1cmUtY2xp
Y2suaHRtbAppbmRleCAyOGI5OGJiYjMzNDMxMWU1OTA3MThlNmUwZWEzMzBlYWY0NTZkZjIwLi4w
ZGI5NTViMDA5OTllYjdiOWFlZTgyYWFmYzE2NzgxMGE0N2ZkODQzIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9wYWdlLXNjYWxlZC10b3VjaC1nZXN0dXJlLWNsaWNr
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvcGFnZS1zY2FsZWQtdG91
Y2gtZ2VzdHVyZS1jbGljay5odG1sCkBAIC04Myw4ICs4Myw4IEBAIGZ1bmN0aW9uIGVuZFRlc3Qo
KQogfQogCiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIp
IHsKLSAgICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMC41LCAwLCAwKTsKKyAgICBpZiAo
d2luZG93LmludGVybmFscykgeworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2Fs
ZUZhY3Rvcihkb2N1bWVudCwgMC41LCAwLCAwKTsKICAgICB9CiAKICAgICB2YXIgZGl2ID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvdWNodGFyZ2V0Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1zZXQtcm90YXRpb24taGl0Lmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2ZyYW1lcy9mcmFtZS1zZXQtcm90YXRpb24taGl0Lmh0bWwKaW5kZXggYjE5Nzc0ZDNl
YzM0YmQxODYxNGE5YWRlN2YxODcyYThjMTMyOWEyMi4uY2MyYzIxNGFkMjI2MTc3ZjlhOTZkNTJl
Yzk0MWE2M2Q0ODM2ZTE2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJh
bWUtc2V0LXJvdGF0aW9uLWhpdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2Zy
YW1lLXNldC1yb3RhdGlvbi1oaXQuaHRtbApAQCAtNCwxMCArNCwxMCBAQAogCiAgICAgPHNjcmlw
dD4KICAgICAgICAgZnVuY3Rpb24gaW5pdCgpIHsKLSAgICAgICAgICAgIGlmICghd2luZG93LmV2
ZW50U2VuZGVyKQorICAgICAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIgfHwgIXdpbmRv
dy5pbnRlcm5hbHMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgLy8gU2Nh
bGUgdGhlIHBhZ2UgYW5kIHJlc2l6ZSB0aGUgZnJhbWVzIHRvIHZlcmlmeSBoaXQgdGVzdGluZyBv
biB0aGUgZnJhbWVzZXQKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDAuNSwg
MCwgMCk7CisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihk
b2N1bWVudCwgMC41LCAwLCAwKTsKICAgICAgICAgICAgIHZhciBsZWZ0UGFuZWxXaWR0aCA9IHdp
bmRvdy5pbm5lcldpZHRoIC8gODsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KHdpbmRvdy5pbm5lcldpZHRoIC8gNCwgbGVmdFBhbmVsV2lkdGgpOwogICAgICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VEb3duKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1l
cy9mcmFtZS1zZXQtc2NhbGluZy1oaXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2Zy
YW1lLXNldC1zY2FsaW5nLWhpdC5odG1sCmluZGV4IDMzYmNlYWI4MzRmOGFlODM5OWUwMmU3YTdm
NGI5Y2M4MzcyODQ4NzMuLmIyMjExYjZiOGI5ZmY2ZDlhMWEzMGYzZGZkNmE5MzYxNTNkMzcxMDAg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1zY2FsaW5nLWhp
dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1zY2FsaW5nLWhp
dC5odG1sCkBAIC00LDExICs0LDExIEBACiAKICAgICA8c2NyaXB0PgogICAgICAgICBmdW5jdGlv
biBpbml0KCkgewotICAgICAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAg
ICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlciB8fCAhd2luZG93LmludGVybmFscykKICAgICAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAvLyBTY2FsZSB0aGUgcGFnZSBhbmQgcmVz
aXplIHRoZSBmcmFtZXMgdG8gdmVyaWZ5IGhpdCB0ZXN0aW5nIG9uIHRoZSBmcmFtZXNldAogICAg
ICAgICAgICAgdmFyIGxlZnRQYW5lbFdpZHRoID0gd2luZG93LmlubmVyV2lkdGggLyA4OwotICAg
ICAgICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMC41LCAwLCAwKTsKKyAgICAgICAgICAg
IHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjUsIDAsIDAp
OwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8obGVmdFBhbmVsV2lkdGgsIHdp
bmRvdy5pbm5lckhlaWdodCAvIDQpOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3du
KCk7CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygyICogbGVmdFBhbmVsV2lk
dGgsIHdpbmRvdy5pbm5lckhlaWdodCAvIDQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9mcmFtZXMvaWZyYW1lLWRvdWJsZS1zY2FsZS1jb250ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mcmFtZXMvaWZyYW1lLWRvdWJsZS1zY2FsZS1jb250ZW50cy5odG1sCmluZGV4IDkxNWMw
YjVmZjBmZjRjZDk0Y2JjYmVkNzg1NThhZTBlMzZjZDFkOGMuLmQzYWY1ZjY5N2IwNzYwZjU3ZDVm
MjA3NWExMDRkMjA0MTY3NWZiMDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVz
L2lmcmFtZS1kb3VibGUtc2NhbGUtY29udGVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2ZyYW1lcy9pZnJhbWUtZG91YmxlLXNjYWxlLWNvbnRlbnRzLmh0bWwKQEAgLTIyLDggKzIyLDgg
QEAKIAogICAgICAgZnVuY3Rpb24gc2NhbGVQYWdlKHNjYWxlRmFjdG9yKSB7CiAgICAgICAgICAg
dmFyIHNjYWxlT2Zmc2V0ID0gMDsKLSAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7
Ci0gICAgICAgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeShzY2FsZUZhY3Rvciwgc2NhbGVP
ZmZzZXQsIHNjYWxlT2Zmc2V0KTsKKyAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgewor
ICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQs
IHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQpOwogICAgICAgICAgIH0KICAg
ICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2JhY2tncm91bmQt
c2NhbGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2NhbGlu
Zy5odG1sCmluZGV4IGFlNTUzYTE0MWQ5ZTY5YTc1M2NiODNmYjBjNTc2MjYxZTY5YTQxZjMuLmU4
Y2ZmMGQxNjU2YjU1YmU4Njg0NDYyNTA1NTcxMzM5NzEzODdhM2QgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvcmVwYWludC9iYWNrZ3JvdW5kLXNjYWxpbmcuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3JlcGFpbnQvYmFja2dyb3VuZC1zY2FsaW5nLmh0bWwKQEAgLTQsOCArNCw4IEBA
CiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+IAogICAgIGZ1bmN0aW9uIHJlcGFpbnRU
ZXN0KCkKICAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0g
ICAgICAgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgwLjIsMCwwKTsKKyAgICAgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VT
Y2FsZUZhY3Rvcihkb2N1bWVudCwgMC4yNSwgMCwgMCk7CiAgICAgfQogPC9zY3JpcHQ+IAogPC9o
ZWFkPiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zY2FsZS1wYWdlLXNo
cmluay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NjYWxlLXBhZ2Utc2hyaW5rLmh0
bWwKaW5kZXggYzFjYTU3NmYzNWI0M2Q2ODk5NjU1YWRjNjRkZGY4ZTlhZTY1ODk2OS4uOTJmM2Uz
ZDVmNmY2NmUxYzk5ZTE5N2JmZTdlMTRmYWEwMmYwZDA0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3NjYWxlLXBhZ2Utc2hyaW5rLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NjYWxlLXBhZ2Utc2hyaW5rLmh0bWwKQEAgLTQsOCArNCw4IEBACiA8c2Ny
aXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQog
ICAgIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDAuMiwwLDApOworICAgICAgICBpZiAod2luZG93
LmludGVybmFscykKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFj
dG9yKGRvY3VtZW50LCAwLjI1LCAwLCAwKTsKICAgICB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdHJhbnNmb3Jtcy9zZWxlY3Rpb24tYm91bmRzLWlu
LXRyYW5zZm9ybWVkLXZpZXcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdHJhbnNmb3Jtcy9zZWxl
Y3Rpb24tYm91bmRzLWluLXRyYW5zZm9ybWVkLXZpZXcuaHRtbAppbmRleCBhMTBhNGQxZGUxZGIy
NjExZDYxN2EwNWZlNGFlNWM1MWM3ZjM1MGQxLi4xMGUyNmJiODkxNzJkYmZiMDc3MDcwYjZkYjAx
ZDAwMGUyOTgyMDcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RyYW5zZm9ybXMvc2Vs
ZWN0aW9uLWJvdW5kcy1pbi10cmFuc2Zvcm1lZC12aWV3Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC90cmFuc2Zvcm1zL3NlbGVjdGlvbi1ib3VuZHMtaW4tdHJhbnNmb3JtZWQtdmlldy5odG1s
CkBAIC00LDEwICs0LDkgQEAKICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDEwMHB4OyI+dGFyZ2V0
PC9kaXY+CiAgICAgPGRpdiBzdHlsZT0iaGVpZ2h0OiAxMDAwcHg7Ij48L2Rpdj4KICAgICA8c2Ny
aXB0PgotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAg
IGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2luZG93LmludGVybmFscykgewog
ICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotCi0gICAgICAg
ICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgyLCAwLCAwKTsKKyAgICAgICAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAwKTsKICAgICAg
ICAgfQogCiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJGaW5kU3RyaW5nIiwgZmFsc2Us
ICJ0YXJnZXQiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117745</attachid>
            <date>2011-12-02 23:31:51 -0800</date>
            <delta_ts>2011-12-03 07:55:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64512-20111203023150.patch</filename>
            <type>text/plain</type>
            <size>32277</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxODA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGFlM2M5NTBkZmU0NzZm
NzA0NzRjZmJmNzdjYzBjM2Q3NTgzZWJhMC4uODNmNTQwYmFhZTk3ODAzZjM2ODVjNDhiMDlhNzA3
NGE0Njg5YWFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDExLTEyLTAyICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgc2NhbGVQYWdl
QnkgZnJvbSBldmVudFNlbmRlciB0byB3aW5kb3cuaW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDUxMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpnZXRQYWdlU2NhbGVGYWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRQYWdlU2NhbGVGYWN0b3IpOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAy
MDExLTEyLTAyICBTdGVwaGVuIENoZW5uZXkgIDxzY2hlbm5leUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgUkVHUkVTU0lPTiAocjkxMTI1KTogUG9seWxpbmUgdG9vbCBpbiBnb29nbGUgZG9jcyBp
cyBicm9rZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQyL0NoYW5nZUxvZwppbmRleCA2MmY5Yjk3ODA3ZTIyMGMyODdiYjczYzQ3ZDJkOTU0OTYy
NzhhOGFmLi40NTdkMzA2YzI3ODIyNjQ2YTNmOTQzM2RkYzlhM2Q4OTA2M2YyOGUyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTItMDIgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBj
aHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBzY2FsZVBhZ2VCeSBmcm9tIGV2ZW50U2VuZGVy
IHRvIHdpbmRvdy5pbnRlcm5hbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY0NTEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiB3aW4vV2ViS2l0Mi5kZWY6CisgICAgICAgICogd2luL1dlYktpdDJDRkxp
dGUuZGVmOgorCiAyMDExLTEyLTAyICBBbmRyYXMgQmVjc2kgIDxhbmRyYXMuYmVjc2lAbm9raWEu
Y29tPgogCiAgICAgICAgIFtRdF1bV0syXSBTZXQgZXZlbnQgdGltZXN0YW1wcyBvbiBjdXN0b20g
aW5wdXQgZXZlbnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggZDVhYjc4
ODdlMzgzZmI0YjhhMDg5Mjk0N2ZmYzhlMTZmNjQwMmU3ZC4uZjdiYTkyMmNhZWFhYTBmMDJmZmNk
OTJhOTQ0NTQ0NTQxZTEwNzQxMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApA
QCAtMzQ1LDE2ICszNDUsNiBAQCB2b2lkIEludGVybmFsczo6c2V0Wm9vbUFuaW1hdG9yVHJhbnNm
b3JtKERvY3VtZW50ICpkb2N1bWVudCwgZmxvYXQgc2NhbGUsIGZsb2F0CiAjZW5kaWYKIH0KIAot
ZmxvYXQgSW50ZXJuYWxzOjpnZXRQYWdlU2NhbGVGYWN0b3IoRG9jdW1lbnQgKmRvY3VtZW50LCBF
eGNlcHRpb25Db2RlJiBlYykKLXsKLSAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFn
ZSgpKSB7Ci0gICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOwotICAgICAgICByZXR1cm4g
MDsKLSAgICB9Ci0KLSAgICByZXR1cm4gZG9jdW1lbnQtPnBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9y
KCk7Ci19Ci0KIHZvaWQgSW50ZXJuYWxzOjpzZXRab29tUGFyYW1ldGVycyhEb2N1bWVudCogZG9j
dW1lbnQsIGZsb2F0IHNjYWxlLCBmbG9hdCB4LCBmbG9hdCB5LCBFeGNlcHRpb25Db2RlJiBlYykK
IHsKICAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+dmlldygpIHx8ICFkb2N1bWVudC0+
dmlldygpLT5mcmFtZSgpKSB7CkBAIC01OTcsNCArNTg3LDIzIEBAIGJvb2wgSW50ZXJuYWxzOjp1
bmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChEb2N1bWVudCogZG9jdW1lbnQsIEV4Y2VwdGlvbkNv
ZGUmIGVjCiAgICAgcmV0dXJuIGRvY3VtZW50LT5mcmFtZSgpLT5zZXR0aW5ncygpLT51bmlmaWVk
VGV4dENoZWNrZXJFbmFibGVkKCk7CiB9CiAKK2Zsb2F0IEludGVybmFsczo6Z2V0UGFnZVNjYWxl
RmFjdG9yKERvY3VtZW50ICpkb2N1bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYg
KCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnBhZ2UoKSkgeworICAgICAgICBlYyA9IElOVkFMSURf
QUNDRVNTX0VSUjsKKyAgICAgICAgcmV0dXJuIDA7CisgICAgfQorCisgICAgcmV0dXJuIGRvY3Vt
ZW50LT5wYWdlKCktPnBhZ2VTY2FsZUZhY3RvcigpOworfQorCit2b2lkIEludGVybmFsczo6c2V0
UGFnZVNjYWxlRmFjdG9yKERvY3VtZW50KiBkb2N1bWVudCwgZmxvYXQgc2NhbGVGYWN0b3IsIGlu
dCB4LCBpbnQgeSwgRXhjZXB0aW9uQ29kZSYgZWMpCit7CisgICAgaWYgKCFkb2N1bWVudCB8fCAh
ZG9jdW1lbnQtPnBhZ2UoKSkgeworICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKKyAg
ICAgICAgcmV0dXJuOworICAgIH0KKyAgICBkb2N1bWVudC0+cGFnZSgpLT5zZXRQYWdlU2NhbGVG
YWN0b3Ioc2NhbGVGYWN0b3IsIEludFBvaW50KHgsIHkpKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmgKaW5kZXggYjkwOWQ3MDg5YzNkMGViZDUxZGI2OWFiYTNjOWFhM2I2NjQy
ZDlhYi4uNzVhZTE1MjcwMDRlMDNiZjU5NGExNDY5ZGU0MzE0MzZhN2NjZThlMiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC04Miw3ICs4Miw2IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoRG9jdW1lbnQqLCBib29sIGVuYWJsZWQsIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFpvb21BbmltYXRvclRyYW5zZm9ybShEb2N1bWVudCos
IGZsb2F0IHNjYWxlLCBmbG9hdCB0eCwgZmxvYXQgdHksIEV4Y2VwdGlvbkNvZGUmKTsKLSAgICBm
bG9hdCBnZXRQYWdlU2NhbGVGYWN0b3IoRG9jdW1lbnQqLCAgRXhjZXB0aW9uQ29kZSYpOwogICAg
IHZvaWQgc2V0Wm9vbVBhcmFtZXRlcnMoRG9jdW1lbnQqLCBmbG9hdCBzY2FsZSwgZmxvYXQgeCwg
ZmxvYXQgeSwgRXhjZXB0aW9uQ29kZSYpOwogCiAgICAgdm9pZCBzZXRNb2NrU2Nyb2xsYmFyc0Vu
YWJsZWQoRG9jdW1lbnQqLCBib29sIGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKQEAgLTEwNyw2
ICsxMDYsOSBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFi
bGVkKERvY3VtZW50KiwgYm9vbCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIGJvb2wgdW5pZmllZFRl
eHRDaGVja2luZ0VuYWJsZWQoRG9jdW1lbnQqLCBFeGNlcHRpb25Db2RlJik7CisgICAgCisgICAg
ZmxvYXQgZ2V0UGFnZVNjYWxlRmFjdG9yKERvY3VtZW50KiwgIEV4Y2VwdGlvbkNvZGUmKTsKKyAg
ICB2b2lkIHNldFBhZ2VTY2FsZUZhY3RvcihEb2N1bWVudCosIGZsb2F0IHNjYWxlRmFjdG9yLCBp
bnQgeCwgaW50IHksIEV4Y2VwdGlvbkNvZGUmKTsKIAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBp
bnRlcm5hbHNJZDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGNjYzg5
MmM2MDJkOGJmMmRhYjI2ZmIyNDk2MzQ0ZDQwMjVkMjkxMmMuLjdjZGI5NGFiOTYzNTViZDE5OTk1
OGEzNDE3ZGE2Zjg1MzAyZDI1NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
SW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwK
QEAgLTU0LDcgKzU0LDYgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHZvaWQgc2V0QWNjZWxl
cmF0ZWREcmF3aW5nRW5hYmxlZChpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFi
bGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRFbmFibGVTY3JvbGxB
bmltYXRvcihpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMo
RE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0oaW4g
RG9jdW1lbnQgZG9jdW1lbnQsIGluIGZsb2F0IHNjYWxlLCBpbiBmbG9hdCB0eCwgaW4gZmxvYXQg
dHkpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBmbG9hdCBnZXRQYWdlU2NhbGVGYWN0
b3IoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2
b2lkIHNldFpvb21QYXJhbWV0ZXJzKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBmbG9hdCBzY2Fs
ZSwgaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAg
IHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBi
b29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogCkBAIC03OSw2ICs3OCw5IEBA
IG1vZHVsZSB3aW5kb3cgewogCiAgICAgICAgIHZvaWQgc2V0VW5pZmllZFRleHRDaGVja2luZ0Vu
YWJsZWQoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzIChE
T01FeGNlcHRpb24pOwogICAgICAgICBib29sZWFuIHVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVk
KGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisKKyAgICAgICAg
ZmxvYXQgZ2V0UGFnZVNjYWxlRmFjdG9yKGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKKyAgICAgICAgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3IoaW4gRG9jdW1lbnQg
ZG9jdW1lbnQsIGluIGZsb2F0IHNjYWxlRmFjdG9yLCBpbiBsb25nIHgsIGluIGxvbmcgeSkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvd2luL1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCmluZGV4
IDQ4OWQ1OTcxMWM1Yjg2NjI2MTliZmM0YTRkYjhlM2Y0OTdhZTFiNmIuLmM4ZmNmODM0MGEwOWNk
NzJjMjI1NTNlOWJlYWQ1MTc3ZjZiZmQ1YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKQEAgLTE3
MSw2ICsxNzEsNyBAQCBFWFBPUlRTCiAgICAgICAgID9zY3JvbGxFbGVtZW50VG9SZWN0QEZyYW1l
Vmlld0BXZWJDb3JlQEBRQUVYUEFWRWxlbWVudEAyQEFCVkludFJlY3RAMkBAWgogICAgICAgICA/
c2V0RE9NRXhjZXB0aW9uQFdlYkNvcmVAQFlBWFBBVkV4ZWNTdGF0ZUBKU0NAQEhAWgogICAgICAg
ICA/c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkQFNldHRpbmdzQFdlYkNvcmVAQFNBWF9OQFoKKyAg
ICAgICAgP3NldFBhZ2VTY2FsZUZhY3RvckBQYWdlQFdlYkNvcmVAQFFBRVhNQUJWSW50UG9pbnRA
MkBAWgogICAgICAgICA/c2V0UGFnaW5hdGlvbkBQYWdlQFdlYkNvcmVAQFFBRVhBQlVQYWdpbmF0
aW9uQDEyQEBaCiAgICAgICAgID9zZXRSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0c0Zyb21JbnRlcm5h
bHNASW5zcGVjdG9yQ29udHJvbGxlckBXZWJDb3JlQEBRQUVYSEhAWgogICAgICAgICA/c2V0U2Ny
b2xsYmFyc1N1cHByZXNzZWRAU2Nyb2xsVmlld0BXZWJDb3JlQEBRQUVYX04wQFoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1NvdXJjZS9XZWJLaXQy
L3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgppbmRleCAzMDY1YmQ4YmUxMmY4MmVhMWNmMmEwMjlkNDRi
MTQwNmVkNWYzODY2Li5lMDU2Njk1ODdlZjBhMjFkZDM1MjI1MDFiNDA1MzE1NWI3MmI3OTk0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKKysrIGIvU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCkBAIC0xNjQsNiArMTY0LDcgQEAgRVhQ
T1JUUwogICAgICAgICA/c2Nyb2xsRWxlbWVudFRvUmVjdEBGcmFtZVZpZXdAV2ViQ29yZUBAUUFF
WFBBVkVsZW1lbnRAMkBBQlZJbnRSZWN0QDJAQFoKICAgICAgICAgP3NldERPTUV4Y2VwdGlvbkBX
ZWJDb3JlQEBZQVhQQVZFeGVjU3RhdGVASlNDQEBIQFoKICAgICAgICAgP3NldE1vY2tTY3JvbGxi
YXJzRW5hYmxlZEBTZXR0aW5nc0BXZWJDb3JlQEBTQVhfTkBaCisgICAgICAgID9zZXRQYWdlU2Nh
bGVGYWN0b3JAUGFnZUBXZWJDb3JlQEBRQUVYTUFCVkludFBvaW50QDJAQFoKICAgICAgICAgP3Nl
dFBhZ2luYXRpb25AUGFnZUBXZWJDb3JlQEBRQUVYQUJVUGFnaW5hdGlvbkAxMkBAWgogICAgICAg
ICA/c2V0UmVzb3VyY2VzRGF0YVNpemVMaW1pdHNGcm9tSW50ZXJuYWxzQEluc3BlY3RvckNvbnRy
b2xsZXJAV2ViQ29yZUBAUUFFWEhIQFoKICAgICAgICAgP3NldFNjcm9sbGJhcnNTdXBwcmVzc2Vk
QFNjcm9sbFZpZXdAV2ViQ29yZUBAUUFFWF9OMEBaCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTk5YjM1YWU4NzMzZDBhNmU2
NDE2ODA2MmZkNmYzZTNjODVlZTU1Yi4uMTk1Nzc3ZjY4NmNhZGY3ZGE1MDg1YmE3ZDQ3YTBjYjQ0
YWM1NmYwMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDExLTEyLTAyICBGYWR5IFNhbXVlbCAg
PGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgc2NhbGVQYWdlQnkgZnJvbSBl
dmVudFNlbmRlciB0byB3aW5kb3cuaW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDUxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgbGF5b3V0IHRlc3RzIHRvIHVzZSB3aW5kb3cu
aW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3RvcgorCisgICAgICAgICogY29tcG9zaXRpbmcvZ2Vv
bWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbDoKKyAg
ICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBh
Z2Utc2NhbGUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3Np
dGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbDoKKyAgICAgICAgKiBj
b21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdl
LXNjYWxlLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRp
b24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWw6CisgICAgICAgICog
Y29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQt
cGFnZS1zY2FsZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3NjYWxpbmcvdGlsZWQtbGF5
ZXItcmVjdXJzaW9uLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdl
LWJvdW5kaW5nLWNsaWVudC1yZWN0Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vRWxlbWVudC9z
Y2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL1JhbmdlL3Nj
YWxlLXBhZ2UtYm91bmRpbmctY2xpZW50LXJlY3QuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9S
YW5nZS9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRz
L3NjYWxlLWFuZC1zY3JvbGwtYm9keS5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NjYWxl
LWFuZC1zY3JvbGwtaWZyYW1lLWJvZHkuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY2Fs
ZS1hbmQtc2Nyb2xsLWlmcmFtZS13aW5kb3cuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9z
Y2FsZS1hbmQtc2Nyb2xsLXdpbmRvdy5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Njcmlw
dC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGljay1pZnJhbWUuanM6CisgICAgICAgIChpZnJh
bWVMb2FkZWQpOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxl
ZC1tb3VzZS1jbGljay5qczoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY3JvbGwtaW4tc2NhbGVk
LXBhZ2Utd2l0aC1vdmVyZmxvdy1oaWRkZW4uaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90
b3VjaC9wYWdlLXNjYWxlZC10b3VjaC1nZXN0dXJlLWNsaWNrLmh0bWw6CisgICAgICAgICogZmFz
dC9mcmFtZXMvZnJhbWUtc2V0LXJvdGF0aW9uLWhpdC5odG1sOgorICAgICAgICAqIGZhc3QvZnJh
bWVzL2ZyYW1lLXNldC1zY2FsaW5nLWhpdC5odG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVzL2lm
cmFtZS1kb3VibGUtc2NhbGUtY29udGVudHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQv
YmFja2dyb3VuZC1zY2FsaW5nLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NjYWxlLXBh
Z2Utc2hyaW5rLmh0bWw6CisgICAgICAgICogZmFzdC90cmFuc2Zvcm1zL3NlbGVjdGlvbi1ib3Vu
ZHMtaW4tdHJhbnNmb3JtZWQtdmlldy5odG1sOgorCiAyMDExLTEyLTAyICBQaGlsaXBwZSBOb3Jt
YW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBza2lwIGZh
aWxpbmcgd2Vic29ja2V0IHRlc3Qgb24gR1RLLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRv
d24uaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9u
LWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKaW5kZXggZjg4NjY2Y2EzNDVkMGY5ZjMy
MTVhMTZmYjg3MGU4OTczYzU4YTEzMS4uMzc3MWY1ZTczZThhY2YwNmJjMGVjN2NiMjJmNzE2Yjlj
MWEyYmRmOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4
ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Ut
c2NhbGUtZG93bi5odG1sCkBAIC0xOCwxMiArMTgsMTIgQEAKIDwvc3R5bGU+CiA8c2NyaXB0Pgog
ICBmdW5jdGlvbiBzY2FsZSgpIHsKLSAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICBpZiAo
d2luZG93LmludGVybmFscykgewogICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21w
b3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOwotICAgIGlmICh3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBB
c1RleHQodHJ1ZSk7Ci0gICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgwLjUsIDAsIDApOwor
ICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwg
MCwgMCk7CiAgICAgfQorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwogICB9CiA8L3NjcmlwdD4K
IDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Zp
eGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0
bWwKaW5kZXggYTc1NWRkYTYwODM4NjQ4Y2I4ODFmM2EzMzAzNTZhMzc5ZDY1Yjg4OC4uMGM1ODU0
MWFmYzA3MTJjOTk4ZDhjNGM5ZTA5ZDkwNzY5NjkwNTNiYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNj
YWxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9z
aXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKQEAgLTE4LDEyICsxOCwxMiBAQAogPC9z
dHlsZT4KIDxzY3JpcHQ+CiAgIGZ1bmN0aW9uIHNjYWxlKCkgewotICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICB3aW5kb3cuaW50ZXJu
YWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7
Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgbGF5b3V0VGVz
dENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKLSAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFn
ZUJ5KDIsIDAsIDApOworICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3Io
ZG9jdW1lbnQsIDIsIDAsIDApOwogICAgIH0KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAg
fQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRv
d24uaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9u
LWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCmluZGV4IGFkZjY5ZTY2M2Rh
OGYyM2I5ODUzYmU0MGI1ZTE4YjA2YzdhZmQwMGIuLjNjNzI1ZGFlMTQxZDVhM2M1N2U1YTY0MjQx
YzU2OTAxYjQwOGZmMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21l
dHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1s
CisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlm
cmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCkBAIC0xOCwxMiArMTgsMTIgQEAK
IDwvc3R5bGU+CiA8c2NyaXB0PgogICBmdW5jdGlvbiB0ZXN0KCkgewotICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKQorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICB3aW5kb3cuaW50
ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1
ZSk7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKLSAgICAgIGV2ZW50U2VuZGVyLnNjYWxl
UGFnZUJ5KDAuNSwgMCwgMCk7CisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZh
Y3Rvcihkb2N1bWVudCwgMC41LCAwLCAwKTsKICAgICB9CisgICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1
ZSk7CiAKICAgICB2YXIgZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFtZScpLmNvbnRl
bnREb2N1bWVudC5vcGVuKCk7CiAgICAgZC53cml0ZSgiPGRpdiBzdHlsZT0ncG9zaXRpb246Zml4
ZWQ7IHotaW5kZXg6IDE7IGxlZnQ7IDEwcHg7Jz5URVNUPC9kaXY+Iik7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29t
cG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRy
eS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKaW5kZXgg
MDg1ZjYxZTljMDRkMjU5Mzk2NDg4NGM2ZTIwOTMyNDgwZGRlNGE3Yi4uMTZhYjA3NTFjYmQwMzBm
MjRlY2NhZDFmNTc2MTAxZjA4NTRkNjM2MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2Fs
ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0
aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbApAQCAtMTgsMTIgKzE4LDEyIEBA
CiA8L3N0eWxlPgogPHNjcmlwdD4KICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBpZiAod2luZG93
LmludGVybmFscykKKyAgICBpZiAod2luZG93LmludGVybmFscykgewogICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRy
dWUpOwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7Ci0gICAgICBldmVudFNlbmRlci5zY2Fs
ZVBhZ2VCeSgyLCAwLCAwKTsKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFj
dG9yKGRvY3VtZW50LCAyLCAwLCAwKTsKICAgICB9CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0
Q29udHJvbGxlcikKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7
CiAKICAgICB2YXIgZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFtZScpLmNvbnRlbnRE
b2N1bWVudC5vcGVuKCk7CiAgICAgZC53cml0ZSgiPGRpdiBzdHlsZT0ncG9zaXRpb246Zml4ZWQ7
IHotaW5kZXg6IDE7IGxlZnQ7IDEwcHg7Jz5URVNUPC9kaXY+Iik7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29t
cG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dl
b21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93
bi5odG1sCmluZGV4IGJlOWQ5Y2MzMzNhMWM4N2U3MzFlYzU0MzBkNDg4Y2Y2ZGM0ZDgxMDYuLjQ1
Y2UwMzVmMjkyMjk0NjBlMzM0Mjc4MGNiZjRjMWZiNTZlYzIzNjYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21w
b3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUt
ZG93bi5odG1sCkBAIC0yMCwxMiArMjAsMTIgQEAKIDwvc3R5bGU+CiA8c2NyaXB0PgogICBmdW5j
dGlvbiBzY2FsZSgpIHsKLSAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICBpZiAod2luZG93
LmludGVybmFscykgewogICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGlu
Z0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOwotICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
dHJ1ZSk7Ci0gICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgwLjUsIDAsIDApOworICAgICAg
d2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwgMCwgMCk7
CiAgICAgfQorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwogICB9CiA8L3NjcmlwdD4KIDwvaGVh
ZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBv
c2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbCBiL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVk
LXBhZ2Utc2NhbGUuaHRtbAppbmRleCBmN2ZiM2RmYWJkMzcxMjFmODMwZjM5ZmZiYzA1N2YwOTA2
ZjZjMGVhLi5kZjg2NjdiMWEyNGQ5M2VkMjMxOWM5YzQ5NWExNTk3NmNhZDhkYWRkIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFu
c2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1z
Y2FsZS5odG1sCkBAIC0yMCwxMiArMjAsMTIgQEAKIDwvc3R5bGU+CiA8c2NyaXB0PgogICBmdW5j
dGlvbiBzY2FsZSgpIHsKLSAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICBpZiAod2luZG93
LmludGVybmFscykgewogICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGlu
Z0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOwotICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
dHJ1ZSk7Ci0gICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgyLCAwLCAwKTsKKyAgICAgIHdp
bmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAwKTsKICAg
ICB9CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgIGxheW91dFRl
c3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CiAgIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvc2NhbGluZy90aWxlZC1sYXllci1y
ZWN1cnNpb24uaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3NjYWxpbmcvdGlsZWQtbGF5
ZXItcmVjdXJzaW9uLmh0bWwKaW5kZXggZjhiMTg5ZmQ5MDE4NDIyNThjMTU4OTZmODE3YzYzYWUz
ZmZhNWJjMC4uMzk5ZDBlMGYwNDZlYjRhYWYxOGE1M2YxZWEzZTEwY2QyZWJiYmY2ZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvc2NhbGluZy90aWxlZC1sYXllci1yZWN1cnNp
b24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9zY2FsaW5nL3RpbGVkLWxheWVy
LXJlY3Vyc2lvbi5odG1sCkBAIC0xNiw3ICsxNiw4IEBACiAKICAgICBmdW5jdGlvbiBzY2FsZVBh
Z2UoKQogICAgIHsKLSAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDEuNTAwMjUsIDAsIDAp
OworICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAxLjUwMDI1LCAwLCAwKTsKICAgICB9CiAgIAog
ICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgc2NhbGVQYWdlLCBmYWxzZSk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbGVtZW50L3NjYWxlLXBhZ2UtYm91bmRp
bmctY2xpZW50LXJlY3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvc2NhbGUt
cGFnZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1sCmluZGV4IGU0OTY2ZDMyOGM2NjQ3YmUxNjI5
OGI0MDYwNzhiNDkzZmQzMTZmYTEuLjYwMjI4OWIzMzUxMjkxNWFlYjlkZTY1MmZlZTc1ODI5ZDA5
OWNhNzMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFn
ZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0Vs
ZW1lbnQvc2NhbGUtcGFnZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1sCkBAIC0zLDEzICszLDEz
IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gdGVzdFJlY3RzKCkKIHsKLSAgICBpZiAoIXdpbmRvdy5s
YXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
ciB8fCAhd2luZG93LmludGVybmFscykKICAgICAgICAgcmV0dXJuOwogICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQoKTsKICAgICAKICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoImRpdiIpOwogICAgIHZhciByZWN0ID0gZGl2LmdldEJvdW5kaW5nQ2xpZW50
UmVjdCgpOwotICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDIsMCwwKTsKKyAgICB3aW5kb3cu
aW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMiwgMCwgMCk7CiAgICAgdmFy
IHNjYWxlZFJlY3QgPSBkaXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAKICAgICB2YXIgcmVz
dWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpOwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1s
CmluZGV4IDc0ZDAyOGE4YzkwNmUzZTE0NDVmNjgyNzMwOTk5MmFkYTg2ODc3N2YuLjhmYTJhMzEx
MDVhYTc2ODhiYzM1OGU5YjUzOGQxMDM0OGM3ZThhZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9FbGVtZW50L3NjYWxlLXBhZ2UtY2xpZW50LXJlY3RzLmh0bWwKQEAg
LTMsMTMgKzMsMTMgQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiB0ZXN0UmVjdHMoKQogewotICAgIGlm
ICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGlmICghd2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyIHx8ICF3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICByZXR1cm47CiAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgIAogICAgIHZhciBkaXYgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2Iik7CiAgICAgdmFyIHJlY3RMaXN0ID0gZGl2Lmdl
dENsaWVudFJlY3RzKCk7Ci0gICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMiwwLDApOworICAg
IHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAwKTsK
ICAgICB2YXIgc2NhbGVkUmVjdExpc3QgPSBkaXYuZ2V0Q2xpZW50UmVjdHMoKTsKIAogICAgIHZh
ciByZXN1bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iik7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWJvdW5kaW5nLWNsaWVudC1y
ZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWJvdW5kaW5n
LWNsaWVudC1yZWN0Lmh0bWwKaW5kZXggOWEzZTIxMDc5Y2FmN2ZhOWYwNzQxOWNjNjAyMjMxYWY0
NGZmM2VlMy4uZjEyYzBmZDc4MzE4M2JjNThiYjg0YjA4ZDZjMDg3OTIwYTVlNjllOCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1ib3VuZGluZy1jbGll
bnQtcmVjdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL3NjYWxlLXBhZ2Ut
Ym91bmRpbmctY2xpZW50LXJlY3QuaHRtbApAQCAtMyw3ICszLDcgQEAKIDxzY3JpcHQ+CiBmdW5j
dGlvbiB0ZXN0UmVjdHMoKQogewotICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyIHx8ICF3aW5kb3cuaW50ZXJu
YWxzKQogICAgICAgICByZXR1cm47CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwogCkBAIC0xMSw3ICsxMSw3IEBAIGZ1bmN0aW9uIHRlc3RSZWN0cygpCiAgICAgcmFuZ2Uu
c2VsZWN0Tm9kZUNvbnRlbnRzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXYnKSk7CiAgICAg
dmFyIHJlY3QgPSByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgIAotICAgIGV2ZW50
U2VuZGVyLnNjYWxlUGFnZUJ5KDIsMCwwKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VT
Y2FsZUZhY3Rvcihkb2N1bWVudCwgMiwgMCwgMCk7CiAgICAgdmFyIHNjYWxlZFJhbmdlID0gZG9j
dW1lbnQuY3JlYXRlUmFuZ2UoKTsKICAgICBzY2FsZWRSYW5nZS5zZWxlY3ROb2RlQ29udGVudHMo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpdicpKTsKICAgICB2YXIgc2NhbGVkUmVjdCA9IHNj
YWxlZFJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1JhbmdlL3NjYWxlLXBhZ2UtY2xpZW50LXJlY3RzLmh0bWwKaW5kZXggNWNm
MmJkMzA1MDgxZjVhZjMzOTYyNWMzMmNkNTI3MTk2ZjAxMmRhMi4uM2VmMzY3OTU1NjMyMjNhOGI3
NDNkYjIwZGY4MDQwMTFkOGZkMDgxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20v
UmFuZ2Uvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sCkBAIC0zLDcgKzMsNyBAQAog
PHNjcmlwdD4KIGZ1bmN0aW9uIHRlc3RSZWN0cygpCiB7Ci0gICAgaWYgKCF3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgfHwg
ICF3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICByZXR1cm47CiAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCgpOwogCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9uIHRlc3RSZWN0
cygpCiAgICAgdmFyIHJlY3RMaXN0ID0gcmFuZ2UuZ2V0Q2xpZW50UmVjdHMoKTsKICAgICB2YXIg
cmVjdCA9IHJlY3RMaXN0WzBdOwogICAgCi0gICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMiww
LDApOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAy
LCAwLCAwKTsKICAgICB2YXIgc2NhbGVkUmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOwog
ICAgIHNjYWxlZFJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnZGl2JykpOwogICAgIHZhciBzY2FsZWRSZWN0TGlzdCA9IHNjYWxlZFJhbmdlLmdldENsaWVu
dFJlY3RzKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQt
c2Nyb2xsLWJvZHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3Jv
bGwtYm9keS5odG1sCmluZGV4IDdhODdlZjRlNTA5NTlmMmQ0MTVjMzk5OTA4MmNlZDY0NzJkNTRk
MDUuLmE1NzBkNzkzM2Y2MGFlNjhjYzdmOWNhMGZkMGQ1MzhjNzNhOWVjYTMgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtYm9keS5odG1sCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtYm9keS5odG1sCkBAIC0x
MCw3ICsxMCw3IEBACiAgICAgICB3aW5kb3cuZW5hYmxlUGl4ZWxUZXN0aW5nID0gdHJ1ZTsKIAog
ICAgICAgZnVuY3Rpb24gc2Nyb2xsKCkgewotICAgICAgICAgIC8vIFRoZSBwYWdlIHNjYWxlLCBh
cyBzZXQgYnkgRXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkgc2hvdWxkIG5vdCBiZSBhcHBhcmVudAor
ICAgICAgICAgIC8vIFRoZSBwYWdlIHNjYWxlLCBhcyBzZXQgYnkgd2luZG93LmludGVybmFscy5z
ZXRQYWdlU2NhbGVGYWN0b3Igc2hvdWxkIG5vdCBiZSBhcHBhcmVudAogICAgICAgICAgIC8vIHRv
IGphdmFzY3JpcHQuIFNvLCB3ZSBleHBlY3Qgc2Nyb2xsaW5nIHRvICgxMDAsMTAwKSB0byBiZSBw
YWdlIGNvb3JkaW5hdGVzLCByYXRoZXIKICAgICAgICAgICAvLyB0aGFuIGRldmljZSBwaXhlbHMu
CiAgICAgICAgICAgZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0ID0gMTAwOwpAQCAtMjUsOCArMjUs
OCBAQAogICAgICAgZnVuY3Rpb24gc2NhbGVXaXRoRXZlbnRTZW5kZXIoKSB7CiAgICAgICAgICAg
dmFyIHNjYWxlRmFjdG9yID0gMi4wOwogICAgICAgICAgIHZhciBzY2FsZU9mZnNldCA9IDA7Ci0g
ICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLnNjYWxlUGFnZUJ5KHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQpOwor
ICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIHNjYWxlRmFjdG9yLCBzY2FsZU9m
ZnNldCwgc2NhbGVPZmZzZXQpOwogICAgICAgICAgIH0KICAgICAgIH0KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtYm9keS5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtYm9keS5o
dG1sCmluZGV4IDBhNTE4YzdhNWYzNzU2ZjZmYTdmYTcwYmFmMzc4NDJiZGQ4OWU5YTQuLjgxOTVi
OTlmY2FlZWZiOGFmZWE2YTJmZmJiMjYyYWFmN2ZjMmEyODggMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtaWZyYW1lLWJvZHkuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS1ib2R5Lmh0bWwK
QEAgLTI0LDggKzI0LDggQEAKICAgICAgICAgZnVuY3Rpb24gc2NhbGVXaXRoRXZlbnRTZW5kZXIo
KSB7CiAgICAgICAgICAgICB2YXIgc2NhbGVGYWN0b3IgPSAwLjU7CiAgICAgICAgICAgICB2YXIg
c2NhbGVPZmZzZXQgPSAwOwotICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewot
ICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeShzY2FsZUZhY3Rvciwgc2Nh
bGVPZmZzZXQsIHNjYWxlT2Zmc2V0KTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KSB7CisgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9y
KGRvY3VtZW50LCBzY2FsZUZhY3Rvciwgc2NhbGVPZmZzZXQsIHNjYWxlT2Zmc2V0KTsKICAgICAg
ICAgICAgIH0KICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtaWZyYW1lLXdpbmRvdy5odG1sCmluZGV4IDQxY2VhYzdh
ZDYzMmYyOWJkYTJhZTkzN2U3YjNhMjJjNTIzN2FhZDEuLjc3OTM1ODEyYTE2NTAxMmY4MjU1NjYy
YzlkZWYwYzYyN2IyMDY3MjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nj
YWxlLWFuZC1zY3JvbGwtaWZyYW1lLXdpbmRvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtaWZyYW1lLXdpbmRvdy5odG1sCkBAIC0yMyw4ICsyMyw4
IEBACiAgICAgICAgIGZ1bmN0aW9uIHNjYWxlV2l0aEV2ZW50U2VuZGVyKCkgewogICAgICAgICAg
ICAgdmFyIHNjYWxlRmFjdG9yID0gMC41OwogICAgICAgICAgICAgdmFyIHNjYWxlT2Zmc2V0ID0g
MDsKLSAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICAgICAgICAgICAg
ICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2Fs
ZU9mZnNldCk7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAg
ICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgc2Nh
bGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CiAgICAgICAgICAgICB9CiAgICAg
ICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNj
cm9sbC13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3Jv
bGwtd2luZG93Lmh0bWwKaW5kZXggYzU1NTExNTI1MzQyOWUxYjRjMDg2MTYzMGEwOTJjOTE4MjQ0
MmUwYy4uNWMzNWU2NWNjYTE4ZWE0MjcyMjQwOGQ0MjQyMTAyYWEwNTVjNTZiMSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC13aW5kb3cuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLXdpbmRvdy5odG1s
CkBAIC0xMCw3ICsxMCw3IEBACiAgICAgICB3aW5kb3cuZW5hYmxlUGl4ZWxUZXN0aW5nID0gdHJ1
ZTsKIAogICAgICAgZnVuY3Rpb24gc2Nyb2xsKCkgewotICAgICAgICAgIC8vIFRoZSBwYWdlIHNj
YWxlLCBhcyBzZXQgYnkgRXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkgc2hvdWxkIG5vdCBiZSBhcHBh
cmVudAorICAgICAgICAgIC8vIFRoZSBwYWdlIHNjYWxlLCBhcyBzZXQgYnkgd2luZG93LmludGVy
bmFscy5zZXRQYWdlU2NhbGVGYWN0b3Igc2hvdWxkIG5vdCBiZSBhcHBhcmVudAogICAgICAgICAg
IC8vIHRvIGphdmFzY3JpcHQuIFNvLCB3ZSBleHBlY3Qgc2Nyb2xsaW5nIHRvICgxMDAsMTAwKSB0
byBiZSBwYWdlIGNvb3JkaW5hdGVzLCByYXRoZXIKICAgICAgICAgICAvLyB0aGFuIGRldmljZSBw
aXhlbHMuCiAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKDEwMCwxMDApOwpAQCAtMjQsOCArMjQs
OCBAQAogICAgICAgZnVuY3Rpb24gc2NhbGVXaXRoRXZlbnRTZW5kZXIoKSB7CiAgICAgICAgICAg
dmFyIHNjYWxlRmFjdG9yID0gMi4wOwogICAgICAgICAgIHZhciBzY2FsZU9mZnNldCA9IDA7Ci0g
ICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICAgICAgIGV2ZW50U2Vu
ZGVyLnNjYWxlUGFnZUJ5KHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQpOwor
ICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIHNjYWxlRmFjdG9yLCBzY2FsZU9m
ZnNldCwgc2NhbGVPZmZzZXQpOwogICAgICAgICAgIH0KICAgICAgIH0KIApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL3BhZ2Utc2NhbGVkLW1vdXNlLWNs
aWNrLWlmcmFtZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9wYWdl
LXNjYWxlZC1tb3VzZS1jbGljay1pZnJhbWUuanMKaW5kZXggYmQ5NjNlOGUwMGE4YjBkZTA3MWNk
OWE0OGRiNWIwYTYwYzM1MmIwZC4uMzk3ZjhkZTM3Yzg3Mzc1Y2I5NDQ0NmY1MDI0ZTVkYjc5NGVh
NjEyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL3Bh
Z2Utc2NhbGVkLW1vdXNlLWNsaWNrLWlmcmFtZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2staWZyYW1lLmpzCkBAIC01
Miw3ICs1Miw3IEBAIGZ1bmN0aW9uIGlmcmFtZUxvYWRlZCgpIHsKICAgZGl2LmFkZEV2ZW50TGlz
dGVuZXIoImNsaWNrIiwgYXBwZW5kRXZlbnRMb2csIGZhbHNlKTsKICAgaWZyYW1lLmNvbnRlbnRX
aW5kb3cuZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoZGl2LCBpZnJhbWUuY29udGVudFdpbmRv
dy5kb2N1bWVudC5ib2R5LmZpcnN0Q2hpbGQpOwogCi0gIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIp
IHsKKyAgaWYgKHdpbmRvdy5ldmVudFNlbmRlciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAsIDEwKTsKICAgICAvLyBXZSBhcmUgY2xpY2tpbmcg
aW4gdGhlIHNhbWUgcG9zaXRpb24gb24gc2NyZWVuLiBBcyB3ZSBzY2FsZSBvciB0cmFuc2Zvcm0g
dGhlIHBhZ2UsCiAgICAgLy8gd2UgZXhwZWN0IHRoZSBwYWdlWCBhbmQgcGFnZVkgZXZlbnQgY29v
cmRpbmF0ZXMgdG8gY2hhbmdlIGJlY2F1c2UgZGlmZmVyZW50CkBAIC02MCwxNSArNjAsMTUgQEAg
ZnVuY3Rpb24gaWZyYW1lTG9hZGVkKCkgewogCiAgICAgdGVzdEV2ZW50cygwLCAiVW5zY2FsZWQi
LCAiY2xpY2soMTAsIDEwKSIpOwogCi0gICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMC41LCAw
LCAwKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwg
MC41LCAwLCAwKTsKICAgICB0ZXN0RXZlbnRzKDAsICJzZXRQYWdlU2NhbGUoMC41KSIsICJjbGlj
aygyMCwgMjApIik7CiAKLSAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgxLjAsIDAsIDApOwor
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAxLjAsIDAs
IDApOwogICAgIGh0bWwuc3R5bGVbIi13ZWJraXQtdHJhbnNmb3JtIl0gPSAic2NhbGUoMC41LCAy
LjApIjsKICAgICBodG1sLnN0eWxlWyItd2Via2l0LXRyYW5zZm9ybS1vcmlnaW4iXSA9ICIwIDAi
OwogICAgIHRlc3RFdmVudHMoMCwgIkNTUyBzY2FsZSgwLjUsIDIuMCkiLCAiY2xpY2soMjAsIDUp
Iik7CiAKLSAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgwLjUsIDAsIDApOworICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjUsIDAsIDApOwogICAg
IHRlc3RFdmVudHMoMCwgInNldFBhZ2VTY2FsZSgwLjUpLCBDU1Mgc2NhbGUoMC41LCAyLjApIiwg
ImNsaWNrKDQwLCAxMCkiKTsKICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2suanMgYi9MYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2suanMKaW5k
ZXggOTc4N2Y5NTI0NGJmY2Y0MzQxNjBlMzljMTQyZmJlMDE5NTkzOTMxYy4uNDRlNjgzY2M2NGVl
OWJmN2JmOTU1YTZjZjBmNzA2ODA5ZDZmNThjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc2NyaXB0LXRlc3RzL3BhZ2Utc2NhbGVkLW1vdXNlLWNsaWNrLmpzCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGlj
ay5qcwpAQCAtNDMsMTMgKzQzLDEzIEBAIGZ1bmN0aW9uIHRlc3RFdmVudHMoYnV0dG9uLCBkZXNj
cmlwdGlvbiwgZXhwZWN0ZWRTdHJpbmcpIHsKICAgICBjbGVhckV2ZW50TG9nKCk7CiB9CiAKLWlm
ICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIgJiYgd2luZG93
LmludGVybmFscykgewogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEwLCAxMCk7CiAgICAg
Ly8gV2UgYXJlIGNsaWNraW5nIGluIHRoZSBzYW1lIHBvc2l0aW9uIG9uIHNjcmVlbi4gQXMgd2Ug
c2NhbGUgb3IgdHJhbnNmb3JtIHRoZSBwYWdlLAogICAgIC8vIHdlIGV4cGVjdCB0aGUgcGFnZVgg
YW5kIHBhZ2VZIGV2ZW50IGNvb3JkaW5hdGVzIHRvIGNoYW5nZSBiZWNhdXNlIGRpZmZlcmVudAog
ICAgIC8vIHBhcnRzIG9mIHRoZSBkb2N1bWVudCBhcmUgdW5kZXIgdGhlIG1vdXNlLgogICAgIHRl
c3RFdmVudHMoMCwgIlVuc2NhbGVkIiwgImNsaWNrKDEwLCAxMCkiKTsKIAotICAgIGV2ZW50U2Vu
ZGVyLnNjYWxlUGFnZUJ5KDAuNSwgMCwgMCk7CisgICAgd2luZG93LmludGVybmFscy5zZXRQYWdl
U2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwgMCwgMCk7CiAgICAgdGVzdEV2ZW50cygwLCAic2V0
UGFnZVNjYWxlKDAuNSkiLCAiY2xpY2soMjAsIDIwKSIpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc2Nyb2xsLWluLXNjYWxlZC1wYWdlLXdpdGgtb3ZlcmZsb3ctaGlk
ZGVuLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGwtaW4tc2NhbGVkLXBhZ2Ut
d2l0aC1vdmVyZmxvdy1oaWRkZW4uaHRtbAppbmRleCAwMzBhYzE2ZGVjNzBlZGQyYmM2NjQ4M2Jk
NTUzYTgyM2NjMmVjM2RjLi5mZjZkMmM5OTA5ZjY5MmNmNGU5ODVhZTY5NmQyM2ZjZmJlYjI5MDZk
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGwtaW4tc2NhbGVkLXBh
Z2Utd2l0aC1vdmVyZmxvdy1oaWRkZW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zY3JvbGwtaW4tc2NhbGVkLXBhZ2Utd2l0aC1vdmVyZmxvdy1oaWRkZW4uaHRtbApAQCAtMjIs
OCArMjIsOCBAQAogICAgICAgICAvLyBGb3JjZSBhIGxheW91dC4KICAgICAgICAgZG9jdW1lbnQu
Ym9keS5vZmZzZXRMZWZ0OwogCi0gICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCi0gICAg
ICAgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgyLCAwLCAwKTsKKyAgICAgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2Fs
ZUZhY3Rvcihkb2N1bWVudCwgMiwgMCwgMCk7CiAKICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5k
b2N1bWVudC5ib2R5LnNjcm9sbFRvcCIsICIwIik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3RvdWNoL3BhZ2Utc2NhbGVkLXRvdWNoLWdlc3R1cmUtY2xpY2suaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3BhZ2Utc2NhbGVkLXRvdWNoLWdlc3R1cmUt
Y2xpY2suaHRtbAppbmRleCAyOGI5OGJiYjMzNDMxMWU1OTA3MThlNmUwZWEzMzBlYWY0NTZkZjIw
Li4wZGI5NTViMDA5OTllYjdiOWFlZTgyYWFmYzE2NzgxMGE0N2ZkODQzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9wYWdlLXNjYWxlZC10b3VjaC1nZXN0dXJlLWNs
aWNrLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvcGFnZS1zY2FsZWQt
dG91Y2gtZ2VzdHVyZS1jbGljay5odG1sCkBAIC04Myw4ICs4Myw4IEBAIGZ1bmN0aW9uIGVuZFRl
c3QoKQogfQogCiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlmICh3aW5kb3cuZXZlbnRTZW5k
ZXIpIHsKLSAgICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMC41LCAwLCAwKTsKKyAgICBp
ZiAod2luZG93LmludGVybmFscykgeworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VT
Y2FsZUZhY3Rvcihkb2N1bWVudCwgMC41LCAwLCAwKTsKICAgICB9CiAKICAgICB2YXIgZGl2ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RvdWNodGFyZ2V0Jyk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1zZXQtcm90YXRpb24taGl0Lmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1zZXQtcm90YXRpb24taGl0Lmh0bWwKaW5kZXggYjE5Nzc0
ZDNlYzM0YmQxODYxNGE5YWRlN2YxODcyYThjMTMyOWEyMi4uY2MyYzIxNGFkMjI2MTc3ZjlhOTZk
NTJlYzk0MWE2M2Q0ODM2ZTE2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMv
ZnJhbWUtc2V0LXJvdGF0aW9uLWhpdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVz
L2ZyYW1lLXNldC1yb3RhdGlvbi1oaXQuaHRtbApAQCAtNCwxMCArNCwxMCBAQAogCiAgICAgPHNj
cmlwdD4KICAgICAgICAgZnVuY3Rpb24gaW5pdCgpIHsKLSAgICAgICAgICAgIGlmICghd2luZG93
LmV2ZW50U2VuZGVyKQorICAgICAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIgfHwgIXdp
bmRvdy5pbnRlcm5hbHMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgLy8g
U2NhbGUgdGhlIHBhZ2UgYW5kIHJlc2l6ZSB0aGUgZnJhbWVzIHRvIHZlcmlmeSBoaXQgdGVzdGlu
ZyBvbiB0aGUgZnJhbWVzZXQKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDAu
NSwgMCwgMCk7CisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rv
cihkb2N1bWVudCwgMC41LCAwLCAwKTsKICAgICAgICAgICAgIHZhciBsZWZ0UGFuZWxXaWR0aCA9
IHdpbmRvdy5pbm5lcldpZHRoIC8gODsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKHdpbmRvdy5pbm5lcldpZHRoIC8gNCwgbGVmdFBhbmVsV2lkdGgpOwogICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9mcmFtZS1zZXQtc2NhbGluZy1oaXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVz
L2ZyYW1lLXNldC1zY2FsaW5nLWhpdC5odG1sCmluZGV4IDMzYmNlYWI4MzRmOGFlODM5OWUwMmU3
YTdmNGI5Y2M4MzcyODQ4NzMuLmIyMjExYjZiOGI5ZmY2ZDlhMWEzMGYzZGZkNmE5MzYxNTNkMzcx
MDAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1zY2FsaW5n
LWhpdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1zY2FsaW5n
LWhpdC5odG1sCkBAIC00LDExICs0LDExIEBACiAKICAgICA8c2NyaXB0PgogICAgICAgICBmdW5j
dGlvbiBpbml0KCkgewotICAgICAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAg
ICAgICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlciB8fCAhd2luZG93LmludGVybmFscykKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAvLyBTY2FsZSB0aGUgcGFnZSBhbmQg
cmVzaXplIHRoZSBmcmFtZXMgdG8gdmVyaWZ5IGhpdCB0ZXN0aW5nIG9uIHRoZSBmcmFtZXNldAog
ICAgICAgICAgICAgdmFyIGxlZnRQYW5lbFdpZHRoID0gd2luZG93LmlubmVyV2lkdGggLyA4Owot
ICAgICAgICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMC41LCAwLCAwKTsKKyAgICAgICAg
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjUsIDAs
IDApOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8obGVmdFBhbmVsV2lkdGgs
IHdpbmRvdy5pbm5lckhlaWdodCAvIDQpOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VE
b3duKCk7CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygyICogbGVmdFBhbmVs
V2lkdGgsIHdpbmRvdy5pbm5lckhlaWdodCAvIDQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9mcmFtZXMvaWZyYW1lLWRvdWJsZS1zY2FsZS1jb250ZW50cy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9mcmFtZXMvaWZyYW1lLWRvdWJsZS1zY2FsZS1jb250ZW50cy5odG1sCmluZGV4IDkx
NWMwYjVmZjBmZjRjZDk0Y2JjYmVkNzg1NThhZTBlMzZjZDFkOGMuLmQzYWY1ZjY5N2IwNzYwZjU3
ZDVmMjA3NWExMDRkMjA0MTY3NWZiMDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL2lmcmFtZS1kb3VibGUtc2NhbGUtY29udGVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L2ZyYW1lcy9pZnJhbWUtZG91YmxlLXNjYWxlLWNvbnRlbnRzLmh0bWwKQEAgLTIyLDggKzIy
LDggQEAKIAogICAgICAgZnVuY3Rpb24gc2NhbGVQYWdlKHNjYWxlRmFjdG9yKSB7CiAgICAgICAg
ICAgdmFyIHNjYWxlT2Zmc2V0ID0gMDsKLSAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVy
KSB7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeShzY2FsZUZhY3Rvciwgc2Nh
bGVPZmZzZXQsIHNjYWxlT2Zmc2V0KTsKKyAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykg
eworICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1l
bnQsIHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQpOwogICAgICAgICAgIH0K
ICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2JhY2tncm91
bmQtc2NhbGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2Nh
bGluZy5odG1sCmluZGV4IGFlNTUzYTE0MWQ5ZTY5YTc1M2NiODNmYjBjNTc2MjYxZTY5YTQxZjMu
LmU4Y2ZmMGQxNjU2YjU1YmU4Njg0NDYyNTA1NTcxMzM5NzEzODdhM2QgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2Zhc3QvcmVwYWludC9iYWNrZ3JvdW5kLXNjYWxpbmcuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvYmFja2dyb3VuZC1zY2FsaW5nLmh0bWwKQEAgLTQsOCArNCw4
IEBACiA8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+IAogICAgIGZ1bmN0aW9uIHJlcGFp
bnRUZXN0KCkKICAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
Ci0gICAgICAgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgwLjIsMCwwKTsKKyAgICAgICAg
aWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBh
Z2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMC4yNSwgMCwgMCk7CiAgICAgfQogPC9zY3JpcHQ+IAog
PC9oZWFkPiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zY2FsZS1wYWdl
LXNocmluay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NjYWxlLXBhZ2Utc2hyaW5r
Lmh0bWwKaW5kZXggYzFjYTU3NmYzNWI0M2Q2ODk5NjU1YWRjNjRkZGY4ZTlhZTY1ODk2OS4uOTJm
M2UzZDVmNmY2NmUxYzk5ZTE5N2JmZTdlMTRmYWEwMmYwZDA0MCAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9yZXBhaW50L3NjYWxlLXBhZ2Utc2hyaW5rLmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L3NjYWxlLXBhZ2Utc2hyaW5rLmh0bWwKQEAgLTQsOCArNCw4IEBACiA8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgZnVuY3Rpb24gcmVwYWludFRlc3Qo
KQogICAgIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDAuMiwwLDApOworICAgICAgICBpZiAod2lu
ZG93LmludGVybmFscykKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxl
RmFjdG9yKGRvY3VtZW50LCAwLjI1LCAwLCAwKTsKICAgICB9CiA8L3NjcmlwdD4KIDwvaGVhZD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdHJhbnNmb3Jtcy9zZWxlY3Rpb24tYm91bmRz
LWluLXRyYW5zZm9ybWVkLXZpZXcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdHJhbnNmb3Jtcy9z
ZWxlY3Rpb24tYm91bmRzLWluLXRyYW5zZm9ybWVkLXZpZXcuaHRtbAppbmRleCBhMTBhNGQxZGUx
ZGIyNjExZDYxN2EwNWZlNGFlNWM1MWM3ZjM1MGQxLi4xMGUyNmJiODkxNzJkYmZiMDc3MDcwYjZk
YjAxZDAwMGUyOTgyMDcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RyYW5zZm9ybXMv
c2VsZWN0aW9uLWJvdW5kcy1pbi10cmFuc2Zvcm1lZC12aWV3Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC90cmFuc2Zvcm1zL3NlbGVjdGlvbi1ib3VuZHMtaW4tdHJhbnNmb3JtZWQtdmlldy5o
dG1sCkBAIC00LDEwICs0LDkgQEAKICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDEwMHB4OyI+dGFy
Z2V0PC9kaXY+CiAgICAgPGRpdiBzdHlsZT0iaGVpZ2h0OiAxMDAwcHg7Ij48L2Rpdj4KICAgICA8
c2NyaXB0PgotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAg
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2luZG93LmludGVybmFscykg
ewogICAgICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotCi0gICAg
ICAgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgyLCAwLCAwKTsKKyAgICAgICAgICAgIHdp
bmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAwKTsKICAg
ICAgICAgfQogCiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJGaW5kU3RyaW5nIiwgZmFs
c2UsICJ0YXJnZXQiKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117758</attachid>
            <date>2011-12-03 07:55:32 -0800</date>
            <delta_ts>2011-12-07 13:46:15 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64512-20111203105531.patch</filename>
            <type>text/plain</type>
            <size>33584</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxOTI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjVmYmM0OGRjYmViOTUy
MDNhOTVkMDIyNTRjM2YxMzlmMjNmNTEyNy4uZTI1NTE1MTFjM2EzMDExOTk3NDRmMzZjYWY0NGRi
NGQzZDQ3YWE2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDExLTEyLTAzICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgc2NhbGVQYWdl
QnkgZnJvbSBldmVudFNlbmRlciB0byB3aW5kb3cuaW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDUxMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHNldFBhZ2VTY2FsZUZhY3RvciB0
byB3aW5kb3cuaW50ZXJuYWxzLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpnZXRQYWdlU2NhbGVGYWN0b3IpOgorICAgICAg
ICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRQYWdlU2NhbGVGYWN0b3IpOgorICAgICAgICAqIHRl
c3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOgorCiAy
MDExLTEyLTAzICBBbmRyZWFzIEtsaW5nICA8a2xpbmdAd2Via2l0Lm9yZz4KIAogICAgICAgICBT
aHJpbmsgQ1NTVmFsdWVMaXN0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDljNDdhODZlMTNjZmZhYjU2NTEwYTVh
YTczN2M5NGEwNGYxOWZjY2IuLjc5NDE2NDZjMjhjNjI4MzE0M2FhNWYwMzUxOWI5MTYyNDE0NTVk
NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAxMS0xMi0wMyAgRmFkeSBTYW11ZWwg
IDxmc2FtdWVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIHNjYWxlUGFnZUJ5IGZyb20g
ZXZlbnRTZW5kZXIgdG8gd2luZG93LmludGVybmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHdpbi9XZWJLaXQyLmRlZjoKKyAgICAgICAgKiB3aW4v
V2ViS2l0MkNGTGl0ZS5kZWY6CisKIDIwMTEtMTItMDIgIFZpYXRjaGVzbGF2IE9zdGFwZW5rbyAg
PG9zdGFwZW5rby52aWF0Y2hlc2xhdkBub2tpYS5jb20+CiAKICAgICAgICAgW1F0XSBbV0syXSBN
aW5pQnJvd3NlciAtLXRvdWNoIGFzc2VydHMgaW4gZGVidWcgYnVpbGQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvSW50ZXJuYWxzLmNwcAppbmRleCA5ZjUxMzZmZmQxNjJmMDU5NDhkZjFiMjcxNzRjMGFlNWVj
MjhiNjk2Li4zYThiODNlZjhhZTZjM2FiZWU1YjBmOTYwN2Q1ODYxMWM0NGUxMDg1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zNDUsMTYgKzM0NSw2IEBAIHZvaWQgSW50
ZXJuYWxzOjpzZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0oRG9jdW1lbnQgKmRvY3VtZW50LCBmbG9h
dCBzY2FsZSwgZmxvYXQKICNlbmRpZgogfQogCi1mbG9hdCBJbnRlcm5hbHM6OmdldFBhZ2VTY2Fs
ZUZhY3RvcihEb2N1bWVudCAqZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlm
ICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElE
X0FDQ0VTU19FUlI7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIHJldHVybiBkb2N1
bWVudC0+cGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKTsKLX0KLQogdm9pZCBJbnRlcm5hbHM6OnNl
dFpvb21QYXJhbWV0ZXJzKERvY3VtZW50KiBkb2N1bWVudCwgZmxvYXQgc2NhbGUsIGZsb2F0IHgs
IGZsb2F0IHksIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghZG9jdW1lbnQgfHwgIWRv
Y3VtZW50LT52aWV3KCkgfHwgIWRvY3VtZW50LT52aWV3KCktPmZyYW1lKCkpIHsKQEAgLTYwOCw0
ICs1OTgsMjMgQEAgYm9vbCBJbnRlcm5hbHM6OnVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKERv
Y3VtZW50KiBkb2N1bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMKICAgICByZXR1cm4gZG9jdW1lbnQt
PmZyYW1lKCktPnNldHRpbmdzKCktPnVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQoKTsKIH0KIAor
ZmxvYXQgSW50ZXJuYWxzOjpnZXRQYWdlU2NhbGVGYWN0b3IoRG9jdW1lbnQgKmRvY3VtZW50LCBF
eGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFn
ZSgpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4g
MDsKKyAgICB9CisKKyAgICByZXR1cm4gZG9jdW1lbnQtPnBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9y
KCk7Cit9CisKK3ZvaWQgSW50ZXJuYWxzOjpzZXRQYWdlU2NhbGVGYWN0b3IoRG9jdW1lbnQqIGRv
Y3VtZW50LCBmbG9hdCBzY2FsZUZhY3RvciwgaW50IHgsIGludCB5LCBFeGNlcHRpb25Db2RlJiBl
YykKK3sKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKSB7CisgICAgICAg
IGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGRv
Y3VtZW50LT5wYWdlKCktPnNldFBhZ2VTY2FsZUZhY3RvcihzY2FsZUZhY3RvciwgSW50UG9pbnQo
eCwgeSkpOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVy
bmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCAyOGVmYjRl
MWM5MGNhOGMzYjQ5NmQ0YTE5ODQ1MmViZmE4N2Y2YzE5Li5jNjc3MjhkYWRhYmY1OWFhMmRkYmMy
YzJmMDdkZTUzYjZlNTAzYzk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTgy
LDcgKzgyLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRFbmFibGVTY3JvbGxBbmltYXRvcihE
b2N1bWVudCosIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZvaWQgc2V0Wm9v
bUFuaW1hdG9yVHJhbnNmb3JtKERvY3VtZW50KiwgZmxvYXQgc2NhbGUsIGZsb2F0IHR4LCBmbG9h
dCB0eSwgRXhjZXB0aW9uQ29kZSYpOwotICAgIGZsb2F0IGdldFBhZ2VTY2FsZUZhY3RvcihEb2N1
bWVudCosICBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRab29tUGFyYW1ldGVycyhEb2N1
bWVudCosIGZsb2F0IHNjYWxlLCBmbG9hdCB4LCBmbG9hdCB5LCBFeGNlcHRpb25Db2RlJik7CiAK
ICAgICB2b2lkIHNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChEb2N1bWVudCosIGJvb2wgZW5hYmxl
ZCwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtMTA4LDYgKzEwNyw5IEBAIHB1YmxpYzoKIAogICAgIHZv
aWQgc2V0VW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRG9jdW1lbnQqLCBib29sLCBFeGNlcHRp
b25Db2RlJik7CiAgICAgYm9vbCB1bmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChEb2N1bWVudCos
IEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAKKyAgICBmbG9hdCBnZXRQYWdlU2NhbGVGYWN0b3IoRG9j
dW1lbnQqLCAgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0UGFnZVNjYWxlRmFjdG9yKERv
Y3VtZW50KiwgZmxvYXQgc2NhbGVGYWN0b3IsIGludCB4LCBpbnQgeSwgRXhjZXB0aW9uQ29kZSYp
OwogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGludGVybmFsc0lkOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKaW5kZXggZjY2YmI1NmMxNTU2MDE2M2U5YWMxNGQ0MmJhNmZkMWZi
OTI5Yzk0ZC4uMGZlMTc4OGYyODMwYjA5YTU5NmIzZWJiMWRhMjQ3ZTc1YzMyMzhjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNTQsNyArNTQsNiBAQCBtb2R1bGUgd2lu
ZG93IHsKICAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZERyYXdpbmdFbmFibGVkKGluIERvY3Vt
ZW50IGRvY3VtZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwog
ICAgICAgICB2b2lkIHNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKGluIERvY3VtZW50IGRvY3VtZW50
LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAgICB2b2lk
IHNldFpvb21BbmltYXRvclRyYW5zZm9ybShpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gZmxvYXQg
c2NhbGUsIGluIGZsb2F0IHR4LCBpbiBmbG9hdCB0eSkgcmFpc2VzKERPTUV4Y2VwdGlvbik7Ci0g
ICAgICAgIGZsb2F0IGdldFBhZ2VTY2FsZUZhY3RvcihpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFp
c2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0Wm9vbVBhcmFtZXRlcnMoaW4gRG9j
dW1lbnQgZG9jdW1lbnQsIGluIGZsb2F0IHNjYWxlLCBpbiBmbG9hdCB4LCBpbiBmbG9hdCB5KSBy
YWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRNb2NrU2Nyb2xsYmFyc0VuYWJs
ZWQoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4
Y2VwdGlvbik7CiAKQEAgLTgwLDYgKzc5LDkgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAgIHZv
aWQgc2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZShpbiBEb2N1bWVu
dCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAg
ICAgICAgdm9pZCBzZXRVbmlmaWVkVGV4dENoZWNraW5nRW5hYmxlZChpbiBEb2N1bWVudCBkb2N1
bWVudCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CiAgICAgICAg
IGJvb2xlYW4gdW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoaW4gRG9jdW1lbnQgZG9jdW1lbnQp
IHJhaXNlcyAoRE9NRXhjZXB0aW9uKTsKKworICAgICAgICBmbG9hdCBnZXRQYWdlU2NhbGVGYWN0
b3IoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2
b2lkIHNldFBhZ2VTY2FsZUZhY3RvcihpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gZmxvYXQgc2Nh
bGVGYWN0b3IsIGluIGxvbmcgeCwgaW4gbG9uZyB5KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAg
ICB9OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9T
b3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKaW5kZXggYjQ2ZjE1OWJhOGRhYzRjNjlmZWIw
NjFiMjM4OTY4MTg3Y2ZmNmM4MC4uZDNhMzJjMjVhOTA3YzRhY2I5MDNhMmIxMDZiZjkxMTA4Mzcz
MWNiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgpAQCAtMTcyLDYgKzE3Miw3IEBAIEVYUE9SVFMK
ICAgICAgICAgP3NldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWVARnJh
bWVWaWV3QFdlYkNvcmVAQFFBRVhfTkBaCiAgICAgICAgID9zZXRET01FeGNlcHRpb25AV2ViQ29y
ZUBAWUFYUEFWRXhlY1N0YXRlQEpTQ0BASEBaCiAgICAgICAgID9zZXRNb2NrU2Nyb2xsYmFyc0Vu
YWJsZWRAU2V0dGluZ3NAV2ViQ29yZUBAU0FYX05AWgorICAgICAgICA/c2V0UGFnZVNjYWxlRmFj
dG9yQFBhZ2VAV2ViQ29yZUBAUUFFWE1BQlZJbnRQb2ludEAyQEBaCiAgICAgICAgID9zZXRQYWdp
bmF0aW9uQFBhZ2VAV2ViQ29yZUBAUUFFWEFCVVBhZ2luYXRpb25AMTJAQFoKICAgICAgICAgP3Nl
dFJlc291cmNlc0RhdGFTaXplTGltaXRzRnJvbUludGVybmFsc0BJbnNwZWN0b3JDb250cm9sbGVy
QFdlYkNvcmVAQFFBRVhISEBaCiAgICAgICAgID9zZXRTY3JvbGxiYXJzU3VwcHJlc3NlZEBTY3Jv
bGxWaWV3QFdlYkNvcmVAQFFBRVhfTjBAWgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDJDRkxpdGUuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVm
CmluZGV4IGU1N2RjZGI4NmY2ZGE5ODBkNTBjNGUxYjBkNmM4NjU5YTQ0MmM1M2MuLmU0ZTczMWRm
ZmI2NTBmZTc2NzVhZDcwMjNiNDZmZDU1N2ZjYWVmZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0
MkNGTGl0ZS5kZWYKQEAgLTE2NSw2ICsxNjUsNyBAQCBFWFBPUlRTCiAgICAgICAgID9zZXRTaG91
bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVsYXRpdmVUb0ZyYW1lQEZyYW1lVmlld0BXZWJDb3JlQEBR
QUVYX05AWgogICAgICAgICA/c2V0RE9NRXhjZXB0aW9uQFdlYkNvcmVAQFlBWFBBVkV4ZWNTdGF0
ZUBKU0NAQEhAWgogICAgICAgICA/c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkQFNldHRpbmdzQFdl
YkNvcmVAQFNBWF9OQFoKKyAgICAgICAgP3NldFBhZ2VTY2FsZUZhY3RvckBQYWdlQFdlYkNvcmVA
QFFBRVhNQUJWSW50UG9pbnRAMkBAWgogICAgICAgICA/c2V0UGFnaW5hdGlvbkBQYWdlQFdlYkNv
cmVAQFFBRVhBQlVQYWdpbmF0aW9uQDEyQEBaCiAgICAgICAgID9zZXRSZXNvdXJjZXNEYXRhU2l6
ZUxpbWl0c0Zyb21JbnRlcm5hbHNASW5zcGVjdG9yQ29udHJvbGxlckBXZWJDb3JlQEBRQUVYSEhA
WgogICAgICAgICA/c2V0U2Nyb2xsYmFyc1N1cHByZXNzZWRAU2Nyb2xsVmlld0BXZWJDb3JlQEBR
QUVYX04wQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9T
b3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IDQwY2I3OGJiNTNmZTQ0OTYyMDZi
YTBmM2ExNDk5OThiNWY5ZGQ3NzguLjIxYzMwNzZjMTRhZTNjYWExNjMzM2VkMTZlZWU3ZDFjOGYz
ZjRkMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIv
U291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtMjYsNiArMjYsNyBAQCBfWk4zV1RG
N0NTdHJpbmdDMkVQS2NtOwogX1pOM1dURjdDU3RyaW5nRDFFdjsKIF9aTjNXVEY3Q1N0cmluZ2FT
RVJLUzBfOwogX1pOMjREdW1wUmVuZGVyVHJlZVN1cHBvcnRHdGsqOworX1pON1dlYkNvcmU0UGFn
ZTE4c2V0UGFnZVNjYWxlRmFjdG9yRWZSS05TXzhJbnRQb2ludEU7CiBfWk43V2ViQ29yZTRQYWdl
MTNzZXRQYWdpbmF0aW9uRVJLTlMwXzEwUGFnaW5hdGlvbkU7CiBfWk43V2ViQ29yZTR0b0pTRVBO
M0pTQzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzEwQ2xpZW50UmVjdEU7
CiBfWk43V2ViQ29yZTR0b0pTRVBOM0pTQzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmpl
Y3RFUE5TXzVSYW5nZUU7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTZkNDJlMmZjMzUyYTY2N2VkNmNiNGE1MmQ2ZTMyY2E3
Y2E2MTZlOC4uZTc5YTliMDQwMjBhODFmYjBmN2I2YmVhMDU3NzhiOWMyNTY4YmZkNiAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDM5IEBACisyMDExLTEyLTAzICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIE1vdmUgc2NhbGVQYWdlQnkgZnJvbSBldmVudFNlbmRlciB0byB3
aW5kb3cuaW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD02NDUxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVwZGF0ZWQgbGF5b3V0IHRlc3RzIHRvIHVzZSB3aW5kb3cuaW50ZXJuYWxzLnNldFBh
Z2VTY2FsZUZhY3Rvci4KKworICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBv
c2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWw6CisgICAgICAgICogY29tcG9z
aXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWw6
CisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNv
bXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvZ2Vv
bWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sOgor
ICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1j
b21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dl
b21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRt
bDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9zY2FsaW5nL3RpbGVkLWxheWVyLXJlY3Vyc2lvbi5o
dG1sOgorICAgICAgICAqIGZhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1ib3VuZGluZy1jbGll
bnQtcmVjdC5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1jbGll
bnQtcmVjdHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWJvdW5k
aW5nLWNsaWVudC1yZWN0Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFn
ZS1jbGllbnQtcmVjdHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Ny
b2xsLWJvZHkuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlm
cmFtZS1ib2R5Lmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1p
ZnJhbWUtd2luZG93Lmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9s
bC13aW5kb3cuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1z
Y2FsZWQtbW91c2UtY2xpY2staWZyYW1lLmpzOgorICAgICAgICAoaWZyYW1lTG9hZGVkKToKKyAg
ICAgICAgKiBmYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2su
anM6CisgICAgICAgICogZmFzdC9ldmVudHMvc2Nyb2xsLWluLXNjYWxlZC1wYWdlLXdpdGgtb3Zl
cmZsb3ctaGlkZGVuLmh0bWw6CisgICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvcGFnZS1zY2Fs
ZWQtdG91Y2gtZ2VzdHVyZS1jbGljay5odG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVzL2ZyYW1l
LXNldC1yb3RhdGlvbi1oaXQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9mcmFtZS1zZXQt
c2NhbGluZy1oaXQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9pZnJhbWUtZG91YmxlLXNj
YWxlLWNvbnRlbnRzLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2Nh
bGluZy5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9zY2FsZS1wYWdlLXNocmluay5odG1s
OgorICAgICAgICAqIGZhc3QvdHJhbnNmb3Jtcy9zZWxlY3Rpb24tYm91bmRzLWluLXRyYW5zZm9y
bWVkLXZpZXcuaHRtbDoKKwogMjAxMS0xMi0wMyAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5k
QGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgc2tpcCBuZXcgZmFpbGluZyB0ZXN0
cyBvbiBHVEsuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9m
aXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sIGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNj
YWxlLWRvd24uaHRtbAppbmRleCBmODg2NjZjYTM0NWQwZjlmMzIxNWExNmZiODcwZTg5NzNjNThh
MTMxLi4zNzcxZjVlNzNlOGFjZjA2YmMwZWM3Y2IyMmY3MTZiOWMxYTJiZGY5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3Np
dGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dl
b21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKQEAg
LTE4LDEyICsxOCwxMiBAQAogPC9zdHlsZT4KIDxzY3JpcHQ+CiAgIGZ1bmN0aW9uIHNjYWxlKCkg
ewotICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7
CiAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3Np
dGlvbihkb2N1bWVudCwgdHJ1ZSk7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikgewotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKLSAgICAg
IGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDAuNSwgMCwgMCk7CisgICAgICB3aW5kb3cuaW50ZXJu
YWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMC41LCAwLCAwKTsKICAgICB9CisgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQodHJ1ZSk7CiAgIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9z
aXRlZC1wYWdlLXNjYWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9m
aXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbAppbmRleCBhNzU1ZGRhNjA4
Mzg2NDhjYjg4MWYzYTMzMDM1NmEzNzlkNjViODg4Li4wYzU4NTQxYWZjMDcxMmM5OThkOGM0Yzll
MDlkOTA3Njk2OTA1M2JhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9t
ZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBh
Z2Utc2NhbGUuaHRtbApAQCAtMTgsMTIgKzE4LDEyIEBACiA8L3N0eWxlPgogPHNjcmlwdD4KICAg
ZnVuY3Rpb24gc2NhbGUoKSB7Ci0gICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpIHsKICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9z
aXRpbmdGb3JGaXhlZFBvc2l0aW9uKGRvY3VtZW50LCB0cnVlKTsKLSAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNU
ZXh0KHRydWUpOwotICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMiwgMCwgMCk7CisgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMiwgMCwgMCk7
CiAgICAgfQorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwogICB9CiA8L3NjcmlwdD4KIDwvaGVh
ZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBv
c2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sIGIvTGF5b3V0VGVz
dHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQt
cGFnZS1zY2FsZS1kb3duLmh0bWwKaW5kZXggYWRmNjllNjYzZGE4ZjIzYjk4NTNiZTQwYjVlMThi
MDZjN2FmZDAwYi4uM2M3MjVkYWUxNDFkNWEzYzU3ZTVhNjQyNDFjNTY5MDFiNDA4ZmYwMyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
aWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFn
ZS1zY2FsZS1kb3duLmh0bWwKQEAgLTE4LDEyICsxOCwxMiBAQAogPC9zdHlsZT4KIDxzY3JpcHQ+
CiAgIGZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0RW5hYmxlQ29t
cG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGRvY3VtZW50LCB0cnVlKTsKLSAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1w
QXNUZXh0KHRydWUpOwotICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMC41LCAwLCAwKTsK
KyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjUs
IDAsIDApOwogICAgIH0KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKIAogICAgIHZhciBkID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZyYW1lJykuY29udGVudERvY3VtZW50Lm9wZW4oKTsK
ICAgICBkLndyaXRlKCI8ZGl2IHN0eWxlPSdwb3NpdGlvbjpmaXhlZDsgei1pbmRleDogMTsgbGVm
dDsgMTBweDsnPlRFU1Q8L2Rpdj4iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0
aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUu
aHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlm
cmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbAppbmRleCAwODVmNjFlOWMwNGQyNTkzOTY0
ODg0YzZlMjA5MzI0ODBkZGU0YTdiLi4xNmFiMDc1MWNiZDAzMGYyNGVjY2FkMWY1NzYxMDFmMDg1
NGQ2MzYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhl
ZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0
ZWQtcGFnZS1zY2FsZS5odG1sCkBAIC0xOCwxMiArMTgsMTIgQEAKIDwvc3R5bGU+CiA8c2NyaXB0
PgogICBmdW5jdGlvbiB0ZXN0KCkgewotICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNv
bXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7Ci0gICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCh0cnVlKTsKLSAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDIsIDAsIDApOwor
ICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIsIDAs
IDApOwogICAgIH0KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKIAogICAgIHZhciBkID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZyYW1lJykuY29udGVudERvY3VtZW50Lm9wZW4oKTsKICAg
ICBkLndyaXRlKCI8ZGl2IHN0eWxlPSdwb3NpdGlvbjpmaXhlZDsgei1pbmRleDogMTsgbGVmdDsg
MTBweDsnPlRFU1Q8L2Rpdj4iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUt
ZG93bi5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRp
b24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKaW5kZXggYmU5ZDlj
YzMzM2ExYzg3ZTczMWVjNTQzMGQ0ODhjZjZkYzRkODEwNi4uNDVjZTAzNWYyOTIyOTQ2MGUzMzQy
NzgwY2JmNGMxZmI1NmVjMjM2NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
Z2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1k
b3duLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9z
aXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKQEAgLTIwLDEy
ICsyMCwxMiBAQAogPC9zdHlsZT4KIDxzY3JpcHQ+CiAgIGZ1bmN0aW9uIHNjYWxlKCkgewotICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihk
b2N1bWVudCwgdHJ1ZSk7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewot
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKLSAgICAgIGV2ZW50
U2VuZGVyLnNjYWxlUGFnZUJ5KDAuNSwgMCwgMCk7CisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMC41LCAwLCAwKTsKICAgICB9CisgICAgaWYgKHdp
bmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1
bXBBc1RleHQodHJ1ZSk7CiAgIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNv
bXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0
cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCmlu
ZGV4IGY3ZmIzZGZhYmQzNzEyMWY4MzBmMzlmZmJjMDU3ZjA5MDZmNmMwZWEuLmRmODY2N2IxYTI0
ZDkzZWQyMzE5YzljNDk1YTE1OTc2Y2FkOGRhZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBh
Z2Utc2NhbGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhl
ZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKQEAgLTIwLDEy
ICsyMCwxMiBAQAogPC9zdHlsZT4KIDxzY3JpcHQ+CiAgIGZ1bmN0aW9uIHNjYWxlKCkgewotICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihk
b2N1bWVudCwgdHJ1ZSk7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewot
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKLSAgICAgIGV2ZW50
U2VuZGVyLnNjYWxlUGFnZUJ5KDIsIDAsIDApOworICAgICAgd2luZG93LmludGVybmFscy5zZXRQ
YWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIsIDAsIDApOwogICAgIH0KKyAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCh0cnVlKTsKICAgfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9zY2FsaW5nL3RpbGVkLWxheWVyLXJlY3Vyc2lvbi5odG1sIGIvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvc2NhbGluZy90aWxlZC1sYXllci1yZWN1cnNpb24uaHRtbApp
bmRleCBmOGIxODlmZDkwMTg0MjI1OGMxNTg5NmY4MTdjNjNhZTNmZmE1YmMwLi4zOTlkMGUwZjA0
NmViNGFhZjE4YTUzZjFlYTNlMTBjZDJlYmJiZjZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9zY2FsaW5nL3RpbGVkLWxheWVyLXJlY3Vyc2lvbi5odG1sCisrKyBiL0xheW91
dFRlc3RzL2NvbXBvc2l0aW5nL3NjYWxpbmcvdGlsZWQtbGF5ZXItcmVjdXJzaW9uLmh0bWwKQEAg
LTE2LDcgKzE2LDggQEAKIAogICAgIGZ1bmN0aW9uIHNjYWxlUGFnZSgpCiAgICAgewotICAgICAg
ZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMS41MDAyNSwgMCwgMCk7CisgICAgICBpZiAod2luZG93
LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3Io
ZG9jdW1lbnQsIDEuNTAwMjUsIDAsIDApOwogICAgIH0KICAgCiAgICAgd2luZG93LmFkZEV2ZW50
TGlzdGVuZXIoJ2xvYWQnLCBzY2FsZVBhZ2UsIGZhbHNlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1s
IGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdlLWJvdW5kaW5nLWNsaWVu
dC1yZWN0Lmh0bWwKaW5kZXggZTQ5NjZkMzI4YzY2NDdiZTE2Mjk4YjQwNjA3OGI0OTNmZDMxNmZh
MS4uNjAyMjg5YjMzNTEyOTE1YWViOWRlNjUyZmVlNzU4MjlkMDk5Y2E3MyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdlLWJvdW5kaW5nLWNsaWVudC1y
ZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdlLWJv
dW5kaW5nLWNsaWVudC1yZWN0Lmh0bWwKQEAgLTMsMTMgKzMsMTMgQEAKIDxzY3JpcHQ+CiBmdW5j
dGlvbiB0ZXN0UmVjdHMoKQogewotICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyIHx8ICF3aW5kb3cuaW50ZXJu
YWxzKQogICAgICAgICByZXR1cm47CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCgpOwogICAgIAogICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2Iik7
CiAgICAgdmFyIHJlY3QgPSBkaXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7Ci0gICAgZXZlbnRT
ZW5kZXIuc2NhbGVQYWdlQnkoMiwwLDApOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNj
YWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAwKTsKICAgICB2YXIgc2NhbGVkUmVjdCA9IGRpdi5n
ZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKIAogICAgIHZhciByZXN1bHQgPSBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgicmVzdWx0Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9F
bGVtZW50L3NjYWxlLXBhZ2UtY2xpZW50LXJlY3RzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9FbGVtZW50L3NjYWxlLXBhZ2UtY2xpZW50LXJlY3RzLmh0bWwKaW5kZXggNzRkMDI4YThjOTA2
ZTNlMTQ0NWY2ODI3MzA5OTkyYWRhODY4Nzc3Zi4uOGZhMmEzMTEwNWFhNzY4OGJjMzU4ZTliNTM4
ZDEwMzQ4YzdlOGFmMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9z
Y2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0Vs
ZW1lbnQvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbApAQCAtMywxMyArMywxMyBAQAogPHNj
cmlwdD4KIGZ1bmN0aW9uIHRlc3RSZWN0cygpCiB7Ci0gICAgaWYgKCF3aW5kb3cubGF5b3V0VGVz
dENvbnRyb2xsZXIpCisgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgfHwgIXdp
bmRvdy5pbnRlcm5hbHMpCiAgICAgICAgIHJldHVybjsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxl
ci5kdW1wQXNUZXh0KCk7CiAgICAgCiAgICAgdmFyIGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJkaXYiKTsKICAgICB2YXIgcmVjdExpc3QgPSBkaXYuZ2V0Q2xpZW50UmVjdHMoKTsKLSAg
ICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgyLDAsMCk7CisgICAgd2luZG93LmludGVybmFscy5z
ZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIsIDAsIDApOwogICAgIHZhciBzY2FsZWRSZWN0
TGlzdCA9IGRpdi5nZXRDbGllbnRSZWN0cygpOwogCiAgICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL1JhbmdlL3NjYWxlLXBhZ2UtYm91bmRpbmctY2xpZW50LXJlY3QuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1JhbmdlL3NjYWxlLXBhZ2UtYm91bmRpbmctY2xpZW50LXJlY3QuaHRtbApp
bmRleCA5YTNlMjEwNzljYWY3ZmE5ZjA3NDE5Y2M2MDIyMzFhZjQ0ZmYzZWUzLi5mMTJjMGZkNzgz
MTgzYmM1OGJiODRiMDhkNmMwODc5MjBhNWU2OWU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWJvdW5kaW5nLWNsaWVudC1yZWN0Lmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1ib3VuZGluZy1jbGllbnQtcmVj
dC5odG1sCkBAIC0zLDcgKzMsNyBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHRlc3RSZWN0cygpCiB7
Ci0gICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgaWYgKCF3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIgfHwgIXdpbmRvdy5pbnRlcm5hbHMpCiAgICAgICAgIHJldHVy
bjsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAKQEAgLTExLDcgKzEx
LDcgQEAgZnVuY3Rpb24gdGVzdFJlY3RzKCkKICAgICByYW5nZS5zZWxlY3ROb2RlQ29udGVudHMo
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpdicpKTsKICAgICB2YXIgcmVjdCA9IHJhbmdlLmdl
dEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgCi0gICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnko
MiwwLDApOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50
LCAyLCAwLCAwKTsKICAgICB2YXIgc2NhbGVkUmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgp
OwogICAgIHNjYWxlZFJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnZGl2JykpOwogICAgIHZhciBzY2FsZWRSZWN0ID0gc2NhbGVkUmFuZ2UuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9z
Y2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2Uv
c2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbAppbmRleCA1Y2YyYmQzMDUwODFmNWFmMzM5NjI1
YzMyY2Q1MjcxOTZmMDEyZGEyLi4zZWYzNjc5NTU2MzIyM2E4Yjc0M2RiMjBkZjgwNDAxMWQ4ZmQw
ODEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWNs
aWVudC1yZWN0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL3NjYWxlLXBh
Z2UtY2xpZW50LXJlY3RzLmh0bWwKQEAgLTMsNyArMyw3IEBACiA8c2NyaXB0PgogZnVuY3Rpb24g
dGVzdFJlY3RzKCkKIHsKLSAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciB8fCAgIXdpbmRvdy5pbnRlcm5hbHMp
CiAgICAgICAgIHJldHVybjsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
CiAKQEAgLTEyLDcgKzEyLDcgQEAgZnVuY3Rpb24gdGVzdFJlY3RzKCkKICAgICB2YXIgcmVjdExp
c3QgPSByYW5nZS5nZXRDbGllbnRSZWN0cygpOwogICAgIHZhciByZWN0ID0gcmVjdExpc3RbMF07
CiAgICAKLSAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgyLDAsMCk7CisgICAgd2luZG93Lmlu
dGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIsIDAsIDApOwogICAgIHZhciBz
Y2FsZWRSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CiAgICAgc2NhbGVkUmFuZ2Uuc2Vs
ZWN0Tm9kZUNvbnRlbnRzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXYnKSk7CiAgICAgdmFy
IHNjYWxlZFJlY3RMaXN0ID0gc2NhbGVkUmFuZ2UuZ2V0Q2xpZW50UmVjdHMoKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtYm9keS5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1ib2R5Lmh0bWwKaW5kZXgg
N2E4N2VmNGU1MDk1OWYyZDQxNWMzOTk5MDgyY2VkNjQ3MmQ1NGQwNS4uYTU3MGQ3OTMzZjYwYWU2
OGNjN2Y5Y2EwZmQwZDUzOGM3M2E5ZWNhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc2NhbGUtYW5kLXNjcm9sbC1ib2R5Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc2NhbGUtYW5kLXNjcm9sbC1ib2R5Lmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAKICAgICAg
IHdpbmRvdy5lbmFibGVQaXhlbFRlc3RpbmcgPSB0cnVlOwogCiAgICAgICBmdW5jdGlvbiBzY3Jv
bGwoKSB7Ci0gICAgICAgICAgLy8gVGhlIHBhZ2Ugc2NhbGUsIGFzIHNldCBieSBFdmVudFNlbmRl
ci5zY2FsZVBhZ2VCeSBzaG91bGQgbm90IGJlIGFwcGFyZW50CisgICAgICAgICAgLy8gVGhlIHBh
Z2Ugc2NhbGUsIGFzIHNldCBieSB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3RvciBz
aG91bGQgbm90IGJlIGFwcGFyZW50CiAgICAgICAgICAgLy8gdG8gamF2YXNjcmlwdC4gU28sIHdl
IGV4cGVjdCBzY3JvbGxpbmcgdG8gKDEwMCwxMDApIHRvIGJlIHBhZ2UgY29vcmRpbmF0ZXMsIHJh
dGhlcgogICAgICAgICAgIC8vIHRoYW4gZGV2aWNlIHBpeGVscy4KICAgICAgICAgICBkb2N1bWVu
dC5ib2R5LnNjcm9sbExlZnQgPSAxMDA7CkBAIC0yNSw4ICsyNSw4IEBACiAgICAgICBmdW5jdGlv
biBzY2FsZVdpdGhFdmVudFNlbmRlcigpIHsKICAgICAgICAgICB2YXIgc2NhbGVGYWN0b3IgPSAy
LjA7CiAgICAgICAgICAgdmFyIHNjYWxlT2Zmc2V0ID0gMDsKLSAgICAgICAgICBpZiAod2luZG93
LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoc2Nh
bGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CisgICAgICAgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2Fs
ZUZhY3Rvcihkb2N1bWVudCwgc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7
CiAgICAgICAgICAgfQogICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS1ib2R5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS1ib2R5Lmh0bWwKaW5kZXggMGE1MThjN2E1
ZjM3NTZmNmZhN2ZhNzBiYWYzNzg0MmJkZDg5ZTlhNC4uODE5NWI5OWZjYWVlZmI4YWZlYTZhMmZm
YmIyNjJhYWY3ZmMyYTI4OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2Nh
bGUtYW5kLXNjcm9sbC1pZnJhbWUtYm9keS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3NjYWxlLWFuZC1zY3JvbGwtaWZyYW1lLWJvZHkuaHRtbApAQCAtMjQsOCArMjQsOCBAQAog
ICAgICAgICBmdW5jdGlvbiBzY2FsZVdpdGhFdmVudFNlbmRlcigpIHsKICAgICAgICAgICAgIHZh
ciBzY2FsZUZhY3RvciA9IDAuNTsKICAgICAgICAgICAgIHZhciBzY2FsZU9mZnNldCA9IDA7Ci0g
ICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgICAgICAgICAgIGV2
ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZz
ZXQpOworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAg
ICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIHNjYWxlRmFj
dG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQpOwogICAgICAgICAgICAgfQogICAgICAgICB9
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwt
aWZyYW1lLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNj
cm9sbC1pZnJhbWUtd2luZG93Lmh0bWwKaW5kZXggNDFjZWFjN2FkNjMyZjI5YmRhMmFlOTM3ZTdi
M2EyMmM1MjM3YWFkMS4uNzc5MzU4MTJhMTY1MDEyZjgyNTU2NjJjOWRlZjBjNjI3YjIwNjcyNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJh
bWUtd2luZG93Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNj
cm9sbC1pZnJhbWUtd2luZG93Lmh0bWwKQEAgLTIzLDggKzIzLDggQEAKICAgICAgICAgZnVuY3Rp
b24gc2NhbGVXaXRoRXZlbnRTZW5kZXIoKSB7CiAgICAgICAgICAgICB2YXIgc2NhbGVGYWN0b3Ig
PSAwLjU7CiAgICAgICAgICAgICB2YXIgc2NhbGVPZmZzZXQgPSAwOwotICAgICAgICAgICAgaWYg
KHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICAgICAgICAgICBldmVudFNlbmRlci5zY2Fs
ZVBhZ2VCeShzY2FsZUZhY3Rvciwgc2NhbGVPZmZzZXQsIHNjYWxlT2Zmc2V0KTsKKyAgICAgICAg
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCBzY2FsZUZhY3Rvciwgc2NhbGVPZmZz
ZXQsIHNjYWxlT2Zmc2V0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLXdpbmRvdy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC13aW5kb3cuaHRtbAppbmRl
eCBjNTU1MTE1MjUzNDI5ZTFiNGMwODYxNjMwYTA5MmM5MTgyNDQyZTBjLi41YzM1ZTY1Y2NhMThl
YTQyNzIyNDA4ZDQyNDIxMDJhYTA1NWM1NmIxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLXdpbmRvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtd2luZG93Lmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAK
ICAgICAgIHdpbmRvdy5lbmFibGVQaXhlbFRlc3RpbmcgPSB0cnVlOwogCiAgICAgICBmdW5jdGlv
biBzY3JvbGwoKSB7Ci0gICAgICAgICAgLy8gVGhlIHBhZ2Ugc2NhbGUsIGFzIHNldCBieSBFdmVu
dFNlbmRlci5zY2FsZVBhZ2VCeSBzaG91bGQgbm90IGJlIGFwcGFyZW50CisgICAgICAgICAgLy8g
VGhlIHBhZ2Ugc2NhbGUsIGFzIHNldCBieSB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZh
Y3RvciBzaG91bGQgbm90IGJlIGFwcGFyZW50CiAgICAgICAgICAgLy8gdG8gamF2YXNjcmlwdC4g
U28sIHdlIGV4cGVjdCBzY3JvbGxpbmcgdG8gKDEwMCwxMDApIHRvIGJlIHBhZ2UgY29vcmRpbmF0
ZXMsIHJhdGhlcgogICAgICAgICAgIC8vIHRoYW4gZGV2aWNlIHBpeGVscy4KICAgICAgICAgICB3
aW5kb3cuc2Nyb2xsVG8oMTAwLDEwMCk7CkBAIC0yNCw4ICsyNCw4IEBACiAgICAgICBmdW5jdGlv
biBzY2FsZVdpdGhFdmVudFNlbmRlcigpIHsKICAgICAgICAgICB2YXIgc2NhbGVGYWN0b3IgPSAy
LjA7CiAgICAgICAgICAgdmFyIHNjYWxlT2Zmc2V0ID0gMDsKLSAgICAgICAgICBpZiAod2luZG93
LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoc2Nh
bGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CisgICAgICAgICAgaWYgKHdpbmRv
dy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2Fs
ZUZhY3Rvcihkb2N1bWVudCwgc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7
CiAgICAgICAgICAgfQogICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2
ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2staWZyYW1lLmpzIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL3BhZ2Utc2NhbGVkLW1vdXNlLWNsaWNr
LWlmcmFtZS5qcwppbmRleCBiZDk2M2U4ZTAwYThiMGRlMDcxY2Q5YTQ4ZGI1YjBhNjBjMzUyYjBk
Li4zOTdmOGRlMzdjODczNzVjYjk0NDQ2ZjUwMjRlNWRiNzk0ZWE2MTIyIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xp
Y2staWZyYW1lLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9w
YWdlLXNjYWxlZC1tb3VzZS1jbGljay1pZnJhbWUuanMKQEAgLTUyLDcgKzUyLDcgQEAgZnVuY3Rp
b24gaWZyYW1lTG9hZGVkKCkgewogICBkaXYuYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhcHBl
bmRFdmVudExvZywgZmFsc2UpOwogICBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1bWVudC5ib2R5
Lmluc2VydEJlZm9yZShkaXYsIGlmcmFtZS5jb250ZW50V2luZG93LmRvY3VtZW50LmJvZHkuZmly
c3RDaGlsZCk7CiAKLSAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICBpZiAod2luZG93LmV2
ZW50U2VuZGVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICBldmVudFNlbmRlci5tb3VzZU1v
dmVUbygxMCwgMTApOwogICAgIC8vIFdlIGFyZSBjbGlja2luZyBpbiB0aGUgc2FtZSBwb3NpdGlv
biBvbiBzY3JlZW4uIEFzIHdlIHNjYWxlIG9yIHRyYW5zZm9ybSB0aGUgcGFnZSwKICAgICAvLyB3
ZSBleHBlY3QgdGhlIHBhZ2VYIGFuZCBwYWdlWSBldmVudCBjb29yZGluYXRlcyB0byBjaGFuZ2Ug
YmVjYXVzZSBkaWZmZXJlbnQKQEAgLTYwLDE1ICs2MCwxNSBAQCBmdW5jdGlvbiBpZnJhbWVMb2Fk
ZWQoKSB7CiAKICAgICB0ZXN0RXZlbnRzKDAsICJVbnNjYWxlZCIsICJjbGljaygxMCwgMTApIik7
CiAKLSAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgwLjUsIDAsIDApOworICAgIHdpbmRvdy5p
bnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjUsIDAsIDApOwogICAgIHRl
c3RFdmVudHMoMCwgInNldFBhZ2VTY2FsZSgwLjUpIiwgImNsaWNrKDIwLCAyMCkiKTsKIAotICAg
IGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDEuMCwgMCwgMCk7CisgICAgd2luZG93LmludGVybmFs
cy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDEuMCwgMCwgMCk7CiAgICAgaHRtbC5zdHls
ZVsiLXdlYmtpdC10cmFuc2Zvcm0iXSA9ICJzY2FsZSgwLjUsIDIuMCkiOwogICAgIGh0bWwuc3R5
bGVbIi13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbiJdID0gIjAgMCI7CiAgICAgdGVzdEV2ZW50cygw
LCAiQ1NTIHNjYWxlKDAuNSwgMi4wKSIsICJjbGljaygyMCwgNSkiKTsKIAotICAgIGV2ZW50U2Vu
ZGVyLnNjYWxlUGFnZUJ5KDAuNSwgMCwgMCk7CisgICAgd2luZG93LmludGVybmFscy5zZXRQYWdl
U2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwgMCwgMCk7CiAgICAgdGVzdEV2ZW50cygwLCAic2V0
UGFnZVNjYWxlKDAuNSksIENTUyBzY2FsZSgwLjUsIDIuMCkiLCAiY2xpY2soNDAsIDEwKSIpOwog
ICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9w
YWdlLXNjYWxlZC1tb3VzZS1jbGljay5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcmlw
dC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGljay5qcwppbmRleCA5Nzg3Zjk1MjQ0YmZjZjQz
NDE2MGUzOWMxNDJmYmUwMTk1OTM5MzFjLi40NGU2ODNjYzY0ZWU5YmY3YmY5NTVhNmNmMGY3MDY4
MDlkNmY1OGMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVz
dHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2suanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc2NyaXB0LXRlc3RzL3BhZ2Utc2NhbGVkLW1vdXNlLWNsaWNrLmpzCkBAIC00MywxMyArNDMs
MTMgQEAgZnVuY3Rpb24gdGVzdEV2ZW50cyhidXR0b24sIGRlc2NyaXB0aW9uLCBleHBlY3RlZFN0
cmluZykgewogICAgIGNsZWFyRXZlbnRMb2coKTsKIH0KIAotaWYgKHdpbmRvdy5ldmVudFNlbmRl
cikgeworaWYgKHdpbmRvdy5ldmVudFNlbmRlciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAsIDEwKTsKICAgICAvLyBXZSBhcmUgY2xpY2tpbmcg
aW4gdGhlIHNhbWUgcG9zaXRpb24gb24gc2NyZWVuLiBBcyB3ZSBzY2FsZSBvciB0cmFuc2Zvcm0g
dGhlIHBhZ2UsCiAgICAgLy8gd2UgZXhwZWN0IHRoZSBwYWdlWCBhbmQgcGFnZVkgZXZlbnQgY29v
cmRpbmF0ZXMgdG8gY2hhbmdlIGJlY2F1c2UgZGlmZmVyZW50CiAgICAgLy8gcGFydHMgb2YgdGhl
IGRvY3VtZW50IGFyZSB1bmRlciB0aGUgbW91c2UuCiAgICAgdGVzdEV2ZW50cygwLCAiVW5zY2Fs
ZWQiLCAiY2xpY2soMTAsIDEwKSIpOwogCi0gICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMC41
LCAwLCAwKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVu
dCwgMC41LCAwLCAwKTsKICAgICB0ZXN0RXZlbnRzKDAsICJzZXRQYWdlU2NhbGUoMC41KSIsICJj
bGljaygyMCwgMjApIik7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
Y3JvbGwtaW4tc2NhbGVkLXBhZ2Utd2l0aC1vdmVyZmxvdy1oaWRkZW4uaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3Njcm9sbC1pbi1zY2FsZWQtcGFnZS13aXRoLW92ZXJmbG93LWhpZGRl
bi5odG1sCmluZGV4IDAzMGFjMTZkZWM3MGVkZDJiYzY2NDgzYmQ1NTNhODIzY2MyZWMzZGMuLmZm
NmQyYzk5MDlmNjkyY2Y0ZTk4NWFlNjk2ZDIzZmNmYmViMjkwNmQgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbC1pbi1zY2FsZWQtcGFnZS13aXRoLW92ZXJmbG93LWhp
ZGRlbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbC1pbi1zY2FsZWQt
cGFnZS13aXRoLW92ZXJmbG93LWhpZGRlbi5odG1sCkBAIC0yMiw4ICsyMiw4IEBACiAgICAgICAg
IC8vIEZvcmNlIGEgbGF5b3V0LgogICAgICAgICBkb2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7CiAK
LSAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKLSAgICAgICAgICAgIGV2ZW50U2VuZGVy
LnNjYWxlUGFnZUJ5KDIsIDAsIDApOworICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAg
ICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAy
LCAwLCAwKTsKIAogICAgICAgICBzaG91bGRCZSgid2luZG93LmRvY3VtZW50LmJvZHkuc2Nyb2xs
VG9wIiwgIjAiKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gv
cGFnZS1zY2FsZWQtdG91Y2gtZ2VzdHVyZS1jbGljay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvdG91Y2gvcGFnZS1zY2FsZWQtdG91Y2gtZ2VzdHVyZS1jbGljay5odG1sCmluZGV4IDI4
Yjk4YmJiMzM0MzExZTU5MDcxOGU2ZTBlYTMzMGVhZjQ1NmRmMjAuLjBkYjk1NWIwMDk5OWViN2I5
YWVlODJhYWZjMTY3ODEwYTQ3ZmQ4NDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL3RvdWNoL3BhZ2Utc2NhbGVkLXRvdWNoLWdlc3R1cmUtY2xpY2suaHRtbAorKysgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9wYWdlLXNjYWxlZC10b3VjaC1nZXN0dXJlLWNsaWNr
Lmh0bWwKQEAgLTgzLDggKzgzLDggQEAgZnVuY3Rpb24gZW5kVGVzdCgpCiB9CiAKIGZ1bmN0aW9u
IHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICBldmVu
dFNlbmRlci5zY2FsZVBhZ2VCeSgwLjUsIDAsIDApOworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KSB7CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50
LCAwLjUsIDAsIDApOwogICAgIH0KIAogICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgndG91Y2h0YXJnZXQnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVz
L2ZyYW1lLXNldC1yb3RhdGlvbi1oaXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2Zy
YW1lLXNldC1yb3RhdGlvbi1oaXQuaHRtbAppbmRleCBiMTk3NzRkM2VjMzRiZDE4NjE0YTlhZGU3
ZjE4NzJhOGMxMzI5YTIyLi5jYzJjMjE0YWQyMjYxNzdmOWE5NmQ1MmVjOTQxYTYzZDQ4MzZlMTYy
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1zZXQtcm90YXRpb24t
aGl0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUtc2V0LXJvdGF0aW9u
LWhpdC5odG1sCkBAIC00LDEwICs0LDEwIEBACiAKICAgICA8c2NyaXB0PgogICAgICAgICBmdW5j
dGlvbiBpbml0KCkgewotICAgICAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAg
ICAgICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlciB8fCAhd2luZG93LmludGVybmFscykKICAg
ICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAvLyBTY2FsZSB0aGUgcGFnZSBhbmQg
cmVzaXplIHRoZSBmcmFtZXMgdG8gdmVyaWZ5IGhpdCB0ZXN0aW5nIG9uIHRoZSBmcmFtZXNldAot
ICAgICAgICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMC41LCAwLCAwKTsKKyAgICAgICAg
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjUsIDAs
IDApOwogICAgICAgICAgICAgdmFyIGxlZnRQYW5lbFdpZHRoID0gd2luZG93LmlubmVyV2lkdGgg
LyA4OwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8od2luZG93LmlubmVyV2lk
dGggLyA0LCBsZWZ0UGFuZWxXaWR0aCk7CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURv
d24oKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1zY2Fs
aW5nLWhpdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUtc2V0LXNjYWxpbmct
aGl0Lmh0bWwKaW5kZXggMzNiY2VhYjgzNGY4YWU4Mzk5ZTAyZTdhN2Y0YjljYzgzNzI4NDg3My4u
YjIyMTFiNmI4YjlmZjZkOWExYTMwZjNkZmQ2YTkzNjE1M2QzNzEwMCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUtc2V0LXNjYWxpbmctaGl0Lmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUtc2V0LXNjYWxpbmctaGl0Lmh0bWwKQEAgLTQsMTEg
KzQsMTEgQEAKIAogICAgIDxzY3JpcHQ+CiAgICAgICAgIGZ1bmN0aW9uIGluaXQoKSB7Ci0gICAg
ICAgICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAgIGlmICghd2luZG93
LmV2ZW50U2VuZGVyIHx8ICF3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICAgICAgICAgIHJldHVy
bjsKICAgICAgICAgICAgIC8vIFNjYWxlIHRoZSBwYWdlIGFuZCByZXNpemUgdGhlIGZyYW1lcyB0
byB2ZXJpZnkgaGl0IHRlc3Rpbmcgb24gdGhlIGZyYW1lc2V0CiAgICAgICAgICAgICB2YXIgbGVm
dFBhbmVsV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCAvIDg7Ci0gICAgICAgICAgICBldmVudFNl
bmRlci5zY2FsZVBhZ2VCeSgwLjUsIDAsIDApOworICAgICAgICAgICAgd2luZG93LmludGVybmFs
cy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwgMCwgMCk7CiAgICAgICAgICAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbyhsZWZ0UGFuZWxXaWR0aCwgd2luZG93LmlubmVySGVpZ2h0
IC8gNCk7CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKICAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIgKiBsZWZ0UGFuZWxXaWR0aCwgd2luZG93LmlubmVy
SGVpZ2h0IC8gNCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUt
ZG91YmxlLXNjYWxlLWNvbnRlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJh
bWUtZG91YmxlLXNjYWxlLWNvbnRlbnRzLmh0bWwKaW5kZXggOTE1YzBiNWZmMGZmNGNkOTRjYmNi
ZWQ3ODU1OGFlMGUzNmNkMWQ4Yy4uZDNhZjVmNjk3YjA3NjBmNTdkNWYyMDc1YTEwNGQyMDQxNjc1
ZmIwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLWRvdWJsZS1z
Y2FsZS1jb250ZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2lmcmFtZS1k
b3VibGUtc2NhbGUtY29udGVudHMuaHRtbApAQCAtMjIsOCArMjIsOCBAQAogCiAgICAgICBmdW5j
dGlvbiBzY2FsZVBhZ2Uoc2NhbGVGYWN0b3IpIHsKICAgICAgICAgICB2YXIgc2NhbGVPZmZzZXQg
PSAwOwotICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICAgICAgICAgIGV2
ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZz
ZXQpOworICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICB3aW5k
b3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgc2NhbGVGYWN0b3IsIHNj
YWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CiAgICAgICAgICAgfQogICAgICAgfQogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvYmFja2dyb3VuZC1zY2FsaW5nLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvYmFja2dyb3VuZC1zY2FsaW5nLmh0bWwKaW5kZXggYWU1
NTNhMTQxZDllNjlhNzUzY2I4M2ZiMGM1NzYyNjFlNjlhNDFmMy4uZThjZmYwZDE2NTZiNTViZTg2
ODQ0NjI1MDU1NzEzMzk3MTM4N2EzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBh
aW50L2JhY2tncm91bmQtc2NhbGluZy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWlu
dC9iYWNrZ3JvdW5kLXNjYWxpbmcuaHRtbApAQCAtNCw4ICs0LDggQEAKIDxzY3JpcHQgdHlwZT0i
dGV4dC9qYXZhc2NyaXB0Ij4gCiAgICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQogICAgIHsKLSAg
ICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAgIGV2ZW50
U2VuZGVyLnNjYWxlUGFnZUJ5KDAuMiwwLDApOworICAgICAgICBpZiAod2luZG93LmludGVybmFs
cykKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3Vt
ZW50LCAwLjI1LCAwLCAwKTsKICAgICB9CiA8L3NjcmlwdD4gCiA8L2hlYWQ+IApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NjYWxlLXBhZ2Utc2hyaW5rLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L3JlcGFpbnQvc2NhbGUtcGFnZS1zaHJpbmsuaHRtbAppbmRleCBjMWNhNTc2
ZjM1YjQzZDY4OTk2NTVhZGM2NGRkZjhlOWFlNjU4OTY5Li45MmYzZTNkNWY2ZjY2ZTFjOTllMTk3
YmZlN2UxNGZhYTAyZjBkMDQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
c2NhbGUtcGFnZS1zaHJpbmsuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2Nh
bGUtcGFnZS1zaHJpbmsuaHRtbApAQCAtNCw4ICs0LDggQEAKIDxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4KICAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpCiAgICAgewotICAgICAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAgZXZlbnRTZW5kZXIu
c2NhbGVQYWdlQnkoMC4yLDAsMCk7CisgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAg
ICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAu
MjUsIDAsIDApOwogICAgIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC90cmFuc2Zvcm1zL3NlbGVjdGlvbi1ib3VuZHMtaW4tdHJhbnNmb3JtZWQtdmll
dy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90cmFuc2Zvcm1zL3NlbGVjdGlvbi1ib3VuZHMtaW4t
dHJhbnNmb3JtZWQtdmlldy5odG1sCmluZGV4IGExMGE0ZDFkZTFkYjI2MTFkNjE3YTA1ZmU0YWU1
YzUxYzdmMzUwZDEuLjEwZTI2YmI4OTE3MmRiZmIwNzcwNzBiNmRiMDFkMDAwZTI5ODIwNzEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdHJhbnNmb3Jtcy9zZWxlY3Rpb24tYm91bmRzLWlu
LXRyYW5zZm9ybWVkLXZpZXcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RyYW5zZm9ybXMv
c2VsZWN0aW9uLWJvdW5kcy1pbi10cmFuc2Zvcm1lZC12aWV3Lmh0bWwKQEAgLTQsMTAgKzQsOSBA
QAogICAgIDxkaXYgc3R5bGU9ImhlaWdodDogMTAwcHg7Ij50YXJnZXQ8L2Rpdj4KICAgICA8ZGl2
IHN0eWxlPSJoZWlnaHQ6IDEwMDBweDsiPjwvZGl2PgogICAgIDxzY3JpcHQ+Ci0gICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlv
dXRUZXN0Q29udHJvbGxlciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICAgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0KLSAgICAgICAgICAgIGV2ZW50U2VuZGVy
LnNjYWxlUGFnZUJ5KDIsIDAsIDApOworICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQ
YWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIsIDAsIDApOwogICAgICAgICB9CiAKICAgICAgICAg
ZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkZpbmRTdHJpbmciLCBmYWxzZSwgInRhcmdldCIpOwpkaWZm
IC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IDk5NGM3OWMxZTgyMDA5ZTIyODA4
Yzg2ZGZmYTliMTEyYTQ0MjVmODUuLjExZDgyOGY3NmQ1OGYyNmFjNTNlMTRiYWZhYzAyMTlhZDcx
ZjZhOTkgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAxMS0xMi0wMyAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBNb3ZlIHNjYWxlUGFnZUJ5IGZyb20gZXZlbnRTZW5kZXIgdG8gd2luZG93LmludGVy
bmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1
MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNv
dXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXI6CisKIDIwMTEtMTItMDMgIERhbiBXaW5zaGlw
ICA8ZGFud0Bnbm9tZS5vcmc+CiAKICAgICAgICAgW0dUS10gVXBkYXRlIHJlcXVpcmVkIGxpYnNv
dXAgdmVyc2lvbgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118269</attachid>
            <date>2011-12-07 13:46:19 -0800</date>
            <delta_ts>2011-12-08 00:02:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-64512-20111207164617.patch</filename>
            <type>text/plain</type>
            <size>33761</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMjQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY5ODc0YWEwZjk3MDJm
NTczYzNmZmIyMTcxYjM2MzVhNzFiNzgwMy4uYTgwYjljZTliYTdmMTY2Yzc4ZWU1MWQxY2ExNjg1
ODliNjI2OTViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTEyLTA3ICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgc2NhbGVQYWdl
QnkgZnJvbSBldmVudFNlbmRlciB0byB3aW5kb3cuaW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDUxMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIHNldFBhZ2VTY2FsZUZhY3RvciB0
byB3aW5kb3cuaW50ZXJuYWxzLgorICAgICAgICBSZW5hbWVkIHdpbmRvdy5pbnRlcm5hbHMuZ2V0
UGFnZVNjYWxlRmFjdG9yIHRvIHdpbmRvdy5pbnRlcm5hbHMucGFnZVNjYWxlRmFjdG9yCisgICAg
ICAgIHRvIG1hdGNoIHRoZSB3ZWJraXQgc3R5bGUuCisKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVy
bmFscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnBhZ2VTY2FsZUZhY3Rvcik6
CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnNldFBhZ2VTY2FsZUZhY3Rvcik6CisgICAg
ICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDoKKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5p
ZGw6CisKIDIwMTEtMTItMDcgIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vMTA1NDIwOTU+IEZvY3VzIHJpbmdzIGFyZSBub3QgZHJhd24g
YXJvdW5kIHB1c2ggYnV0dG9ucywgcmFkaW8gYnV0dG9ucyBhbmQgY2hlY2tib3hlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
CmluZGV4IDVmZTkyNzZkMGI5NDJkMjUxMDUwY2EwZmE5MTdkYWRlM2RlYTZlOTkuLmNiOWQzMTMz
YThkZDJiNzk5NTdiZmRjM2QwYjBkZjNhNWM4NjU4OWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAxMS0xMi0wNyAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBNb3ZlIHNjYWxlUGFnZUJ5IGZyb20gZXZlbnRTZW5kZXIgdG8gd2luZG93LmludGVy
bmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1
MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdp
bi9XZWJLaXQyLmRlZjoKKyAgICAgICAgKiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKIDIwMTEt
MTItMDcgIE1hcnkgV3UgIDxtYXJ5Lnd1QHRvcmNobW9iaWxlLmNvbS5jbj4KIAogICAgICAgICBD
aGFuZ2UgZnVuY3Rpb24gbmFtZSBJbml0aWFsaXplTG9nZ2luZ0NoYW5uZWxzSWZOZWNlc3Nhcnkg
dG8gZm9sbG93IGNvZGluZyBzdHlsZSBndWlkZWxpbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmNwcAppbmRleCAzZjA2MDZmYTNkN2MxZmEyNTlmODJiYTQwOTFiOGM4Y2RiZDEzYjk5Li41
M2I1YzczZWJiMDk1NTQ3ZWUwN2ZiOWMxYjhkYjAyNzkyNzIyZDA3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuY3BwCkBAIC0zNjQsMTYgKzM2NCw2IEBAIHZvaWQgSW50ZXJuYWxzOjpz
ZXRab29tQW5pbWF0b3JUcmFuc2Zvcm0oRG9jdW1lbnQgKmRvY3VtZW50LCBmbG9hdCBzY2FsZSwg
ZmxvYXQKICNlbmRpZgogfQogCi1mbG9hdCBJbnRlcm5hbHM6OmdldFBhZ2VTY2FsZUZhY3RvcihE
b2N1bWVudCAqZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghZG9jdW1l
bnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19F
UlI7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIHJldHVybiBkb2N1bWVudC0+cGFn
ZSgpLT5wYWdlU2NhbGVGYWN0b3IoKTsKLX0KLQogdm9pZCBJbnRlcm5hbHM6OnNldFpvb21QYXJh
bWV0ZXJzKERvY3VtZW50KiBkb2N1bWVudCwgZmxvYXQgc2NhbGUsIGZsb2F0IHgsIGZsb2F0IHks
IEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT52
aWV3KCkgfHwgIWRvY3VtZW50LT52aWV3KCktPmZyYW1lKCkpIHsKQEAgLTYyNyw2ICs2MTcsMjUg
QEAgYm9vbCBJbnRlcm5hbHM6OnVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKERvY3VtZW50KiBk
b2N1bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMKICAgICByZXR1cm4gZG9jdW1lbnQtPmZyYW1lKCkt
PnNldHRpbmdzKCktPnVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQoKTsKIH0KIAorZmxvYXQgSW50
ZXJuYWxzOjpwYWdlU2NhbGVGYWN0b3IoRG9jdW1lbnQgKmRvY3VtZW50LCBFeGNlcHRpb25Db2Rl
JiBlYykKK3sKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKSB7CisgICAg
ICAgIGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisK
KyAgICByZXR1cm4gZG9jdW1lbnQtPnBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCk7Cit9CisKK3Zv
aWQgSW50ZXJuYWxzOjpzZXRQYWdlU2NhbGVGYWN0b3IoRG9jdW1lbnQqIGRvY3VtZW50LCBmbG9h
dCBzY2FsZUZhY3RvciwgaW50IHgsIGludCB5LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBp
ZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKSB7CisgICAgICAgIGVjID0gSU5WQUxJ
RF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGRvY3VtZW50LT5wYWdl
KCktPnNldFBhZ2VTY2FsZUZhY3RvcihzY2FsZUZhY3RvciwgSW50UG9pbnQoeCwgeSkpOworfQor
CiBpbnQgSW50ZXJuYWxzOjpsYXN0U3BlbGxDaGVja1JlcXVlc3RTZXF1ZW5jZShEb2N1bWVudCog
ZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFNwZWxsQ2hlY2tlciogY2hlY2tl
ciA9IHNwZWxsY2hlY2tlcihkb2N1bWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApp
bmRleCAxNGQ5ZGZkZjNiMWQ4ZDRhNDE3ZmQyZmZlOGIzYTU3NTNiNDhjNzMyLi4zYTc1ODU2ODlj
YmU5MjYxMDM5MjUzNmQ5YzA1MzY4MjlkNGFhODI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmgKQEAgLTgzLDcgKzgzLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRFbmFibGVTY3Jv
bGxBbmltYXRvcihEb2N1bWVudCosIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAg
IHZvaWQgc2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKERvY3VtZW50KiwgZmxvYXQgc2NhbGUsIGZs
b2F0IHR4LCBmbG9hdCB0eSwgRXhjZXB0aW9uQ29kZSYpOwotICAgIGZsb2F0IGdldFBhZ2VTY2Fs
ZUZhY3RvcihEb2N1bWVudCosICBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRab29tUGFy
YW1ldGVycyhEb2N1bWVudCosIGZsb2F0IHNjYWxlLCBmbG9hdCB4LCBmbG9hdCB5LCBFeGNlcHRp
b25Db2RlJik7CiAKICAgICB2b2lkIHNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChEb2N1bWVudCos
IGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtMTEyLDYgKzExMSw5IEBAIHB1Ymxp
YzoKIAogICAgIGludCBsYXN0U3BlbGxDaGVja1JlcXVlc3RTZXF1ZW5jZShEb2N1bWVudCosIEV4
Y2VwdGlvbkNvZGUmKTsKICAgICBpbnQgbGFzdFNwZWxsQ2hlY2tQcm9jZXNzZWRTZXF1ZW5jZShE
b2N1bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAKKyAgICBmbG9hdCBwYWdlU2NhbGVGYWN0
b3IoRG9jdW1lbnQqLCAgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0UGFnZVNjYWxlRmFj
dG9yKERvY3VtZW50KiwgZmxvYXQgc2NhbGVGYWN0b3IsIGludCB4LCBpbnQgeSwgRXhjZXB0aW9u
Q29kZSYpOwogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIGludGVybmFsc0lkOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggZDYyMjI2MDQzMGE3MTY5YzRjNmEzNTFlNjA2
MTkwNTBmNjkyYTIzMS4uZjU2ZDFhZjc0YThlMzVkZDQ3YmQ0ZTZjNDlmMTI1ZTdlYWFjM2E1NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtNTUsNyArNTUsNiBAQCBtb2R1
bGUgd2luZG93IHsKICAgICAgICAgdm9pZCBzZXRBY2NlbGVyYXRlZEZpbHRlcnNFbmFibGVkKGlu
IERvY3VtZW50IGRvY3VtZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRp
b24pOwogICAgICAgICB2b2lkIHNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKGluIERvY3VtZW50IGRv
Y3VtZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogICAgICAg
ICB2b2lkIHNldFpvb21BbmltYXRvclRyYW5zZm9ybShpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4g
ZmxvYXQgc2NhbGUsIGluIGZsb2F0IHR4LCBpbiBmbG9hdCB0eSkgcmFpc2VzKERPTUV4Y2VwdGlv
bik7Ci0gICAgICAgIGZsb2F0IGdldFBhZ2VTY2FsZUZhY3RvcihpbiBEb2N1bWVudCBkb2N1bWVu
dCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0Wm9vbVBhcmFtZXRlcnMo
aW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGZsb2F0IHNjYWxlLCBpbiBmbG9hdCB4LCBpbiBmbG9h
dCB5KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRNb2NrU2Nyb2xsYmFy
c0VuYWJsZWQoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2Vz
KERPTUV4Y2VwdGlvbik7CiAKQEAgLTg0LDYgKzgzLDkgQEAgbW9kdWxlIHdpbmRvdyB7CiAKICAg
ICAgICAgbG9uZyBsYXN0U3BlbGxDaGVja1JlcXVlc3RTZXF1ZW5jZShpbiBEb2N1bWVudCBkb2N1
bWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOwogICAgICAgICBsb25nIGxhc3RTcGVsbENoZWNr
UHJvY2Vzc2VkU2VxdWVuY2UoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyAoRE9NRXhjZXB0
aW9uKTsKKworICAgICAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3IoaW4gRG9jdW1lbnQgZG9jdW1l
bnQpIHJhaXNlcyhET01FeGNlcHRpb24pOworICAgICAgICB2b2lkIHNldFBhZ2VTY2FsZUZhY3Rv
cihpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gZmxvYXQgc2NhbGVGYWN0b3IsIGluIGxvbmcgeCwg
aW4gbG9uZyB5KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICB9OwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2Vi
S2l0Mi5kZWYKaW5kZXggYjQ2ZjE1OWJhOGRhYzRjNjlmZWIwNjFiMjM4OTY4MTg3Y2ZmNmM4MC4u
ZDNhMzJjMjVhOTA3YzRhY2I5MDNhMmIxMDZiZjkxMTA4MzczMWNiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJL
aXQyLmRlZgpAQCAtMTcyLDYgKzE3Miw3IEBAIEVYUE9SVFMKICAgICAgICAgP3NldFNob3VsZExh
eW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJhbWVARnJhbWVWaWV3QFdlYkNvcmVAQFFBRVhf
TkBaCiAgICAgICAgID9zZXRET01FeGNlcHRpb25AV2ViQ29yZUBAWUFYUEFWRXhlY1N0YXRlQEpT
Q0BASEBaCiAgICAgICAgID9zZXRNb2NrU2Nyb2xsYmFyc0VuYWJsZWRAU2V0dGluZ3NAV2ViQ29y
ZUBAU0FYX05AWgorICAgICAgICA/c2V0UGFnZVNjYWxlRmFjdG9yQFBhZ2VAV2ViQ29yZUBAUUFF
WE1BQlZJbnRQb2ludEAyQEBaCiAgICAgICAgID9zZXRQYWdpbmF0aW9uQFBhZ2VAV2ViQ29yZUBA
UUFFWEFCVVBhZ2luYXRpb25AMTJAQFoKICAgICAgICAgP3NldFJlc291cmNlc0RhdGFTaXplTGlt
aXRzRnJvbUludGVybmFsc0BJbnNwZWN0b3JDb250cm9sbGVyQFdlYkNvcmVAQFFBRVhISEBaCiAg
ICAgICAgID9zZXRTY3JvbGxiYXJzU3VwcHJlc3NlZEBTY3JvbGxWaWV3QFdlYkNvcmVAQFFBRVhf
TjBAWgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmIGIv
U291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCmluZGV4IGU1N2RjZGI4NmY2ZGE5
ODBkNTBjNGUxYjBkNmM4NjU5YTQ0MmM1M2MuLmU0ZTczMWRmZmI2NTBmZTc2NzVhZDcwMjNiNDZm
ZDU1N2ZjYWVmZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRl
LmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKQEAgLTE2NSw2
ICsxNjUsNyBAQCBFWFBPUlRTCiAgICAgICAgID9zZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRz
UmVsYXRpdmVUb0ZyYW1lQEZyYW1lVmlld0BXZWJDb3JlQEBRQUVYX05AWgogICAgICAgICA/c2V0
RE9NRXhjZXB0aW9uQFdlYkNvcmVAQFlBWFBBVkV4ZWNTdGF0ZUBKU0NAQEhAWgogICAgICAgICA/
c2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkQFNldHRpbmdzQFdlYkNvcmVAQFNBWF9OQFoKKyAgICAg
ICAgP3NldFBhZ2VTY2FsZUZhY3RvckBQYWdlQFdlYkNvcmVAQFFBRVhNQUJWSW50UG9pbnRAMkBA
WgogICAgICAgICA/c2V0UGFnaW5hdGlvbkBQYWdlQFdlYkNvcmVAQFFBRVhBQlVQYWdpbmF0aW9u
QDEyQEBaCiAgICAgICAgID9zZXRSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0c0Zyb21JbnRlcm5hbHNA
SW5zcGVjdG9yQ29udHJvbGxlckBXZWJDb3JlQEBRQUVYSEhAWgogICAgICAgICA/c2V0U2Nyb2xs
YmFyc1N1cHByZXNzZWRAU2Nyb2xsVmlld0BXZWJDb3JlQEBRQUVYX04wQFoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJv
bHMuZmlsdGVyCmluZGV4IDQwY2I3OGJiNTNmZTQ0OTYyMDZiYTBmM2ExNDk5OThiNWY5ZGQ3Nzgu
LjIxYzMwNzZjMTRhZTNjYWExNjMzM2VkMTZlZWU3ZDFjOGYzZjRkMTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291cmNlL2F1dG90b29scy9zeW1i
b2xzLmZpbHRlcgpAQCAtMjYsNiArMjYsNyBAQCBfWk4zV1RGN0NTdHJpbmdDMkVQS2NtOwogX1pO
M1dURjdDU3RyaW5nRDFFdjsKIF9aTjNXVEY3Q1N0cmluZ2FTRVJLUzBfOwogX1pOMjREdW1wUmVu
ZGVyVHJlZVN1cHBvcnRHdGsqOworX1pON1dlYkNvcmU0UGFnZTE4c2V0UGFnZVNjYWxlRmFjdG9y
RWZSS05TXzhJbnRQb2ludEU7CiBfWk43V2ViQ29yZTRQYWdlMTNzZXRQYWdpbmF0aW9uRVJLTlMw
XzEwUGFnaW5hdGlvbkU7CiBfWk43V2ViQ29yZTR0b0pTRVBOM0pTQzlFeGVjU3RhdGVFUE5TXzE3
SlNET01HbG9iYWxPYmplY3RFUE5TXzEwQ2xpZW50UmVjdEU7CiBfWk43V2ViQ29yZTR0b0pTRVBO
M0pTQzlFeGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzVSYW5nZUU7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggNjY1NjRkNDAwYzI2MDU5ODE1MWYyMDg1NjFjZDRkNzUxOTFlNmZhMC4uZDM1YjRmMjdjMzZl
MDViODYyMzgxYjk4MDE3MmFmZTA2NGZjZjFhMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDEx
LTEyLTA3ICBGYWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1v
dmUgc2NhbGVQYWdlQnkgZnJvbSBldmVudFNlbmRlciB0byB3aW5kb3cuaW50ZXJuYWxzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDUxMgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVwZGF0ZWQgbGF5b3V0
IHRlc3RzIHRvIHVzZSB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvci4KKworICAg
ICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFn
ZS1zY2FsZS1kb3duLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQt
cG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWw6CisgICAgICAgICogY29tcG9zaXRp
bmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1k
b3duLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
aWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5n
L2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUt
ZG93bi5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9u
LXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbDoKKyAgICAgICAgKiBjb21wb3Np
dGluZy9zY2FsaW5nL3RpbGVkLWxheWVyLXJlY3Vyc2lvbi5odG1sOgorICAgICAgICAqIGZhc3Qv
ZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1sOgorICAgICAg
ICAqIGZhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWJvdW5kaW5nLWNsaWVudC1yZWN0Lmh0bWw6
CisgICAgICAgICogZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbDoK
KyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWJvZHkuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS1ib2R5Lmh0bWw6CisgICAg
ICAgICogZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtd2luZG93Lmh0bWw6Cisg
ICAgICAgICogZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC13aW5kb3cuaHRtbDoKKyAgICAg
ICAgKiBmYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2staWZy
YW1lLmpzOgorICAgICAgICAoaWZyYW1lTG9hZGVkKToKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9z
Y3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2suanM6CisgICAgICAgICogZmFzdC9l
dmVudHMvc2Nyb2xsLWluLXNjYWxlZC1wYWdlLXdpdGgtb3ZlcmZsb3ctaGlkZGVuLmh0bWw6Cisg
ICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvcGFnZS1zY2FsZWQtdG91Y2gtZ2VzdHVyZS1jbGlj
ay5odG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVzL2ZyYW1lLXNldC1yb3RhdGlvbi1oaXQuaHRt
bDoKKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9mcmFtZS1zZXQtc2NhbGluZy1oaXQuaHRtbDoKKyAg
ICAgICAgKiBmYXN0L2ZyYW1lcy9pZnJhbWUtZG91YmxlLXNjYWxlLWNvbnRlbnRzLmh0bWw6Cisg
ICAgICAgICogZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2NhbGluZy5odG1sOgorICAgICAgICAq
IGZhc3QvcmVwYWludC9zY2FsZS1wYWdlLXNocmluay5odG1sOgorICAgICAgICAqIGZhc3QvdHJh
bnNmb3Jtcy9zZWxlY3Rpb24tYm91bmRzLWluLXRyYW5zZm9ybWVkLXZpZXcuaHRtbDoKKwogMjAx
MS0xMi0wNyAgQmFsYXpzIEtlbGVtZW4gIDxrYmFsYXpzQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
VW5yZXZpZXdlZCBnYXJkZW5pbmcuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1s
IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9z
aXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbAppbmRleCBmODg2NjZjYTM0NWQwZjlmMzIxNWExNmZi
ODcwZTg5NzNjNThhMTMxLi4zNzcxZjVlNzNlOGFjZjA2YmMwZWM3Y2IyMmY3MTZiOWMxYTJiZGY5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3Np
dGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1k
b3duLmh0bWwKQEAgLTE4LDEyICsxOCwxMiBAQAogPC9zdHlsZT4KIDxzY3JpcHQ+CiAgIGZ1bmN0
aW9uIHNjYWxlKCkgewotICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGlmICh3aW5kb3cu
aW50ZXJuYWxzKSB7CiAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5n
Rm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikgewotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0
cnVlKTsKLSAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDAuNSwgMCwgMCk7CisgICAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMC41LCAwLCAwKTsK
ICAgICB9CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgIGxheW91
dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CiAgIH0KIDwvc2NyaXB0PgogPC9oZWFk
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9z
aXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGlu
Zy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbAppbmRl
eCBhNzU1ZGRhNjA4Mzg2NDhjYjg4MWYzYTMzMDM1NmEzNzlkNjViODg4Li4wYzU4NTQxYWZjMDcx
MmM5OThkOGM0YzllMDlkOTA3Njk2OTA1M2JhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21w
b3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1j
b21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbApAQCAtMTgsMTIgKzE4LDEyIEBACiA8L3N0eWxlPgog
PHNjcmlwdD4KICAgZnVuY3Rpb24gc2NhbGUoKSB7Ci0gICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMp
CisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGRvY3VtZW50LCB0cnVlKTsKLSAgICBp
ZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KHRydWUpOwotICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMiwg
MCwgMCk7CisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVu
dCwgMiwgMCwgMCk7CiAgICAgfQorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
CisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwogICB9CiA8L3Nj
cmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21l
dHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1s
IGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1l
LWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKaW5kZXggYWRmNjllNjYzZGE4ZjIzYjk4
NTNiZTQwYjVlMThiMDZjN2FmZDAwYi4uM2M3MjVkYWUxNDFkNWEzYzU3ZTVhNjQyNDFjNTY5MDFi
NDA4ZmYwMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4
ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNv
bXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKQEAgLTE4LDEyICsxOCwxMiBAQAogPC9zdHls
ZT4KIDxzY3JpcHQ+CiAgIGZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGRvY3VtZW50LCB0cnVlKTsKLSAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwotICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnko
MC41LCAwLCAwKTsKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRv
Y3VtZW50LCAwLjUsIDAsIDApOwogICAgIH0KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyKQorICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKIAog
ICAgIHZhciBkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZyYW1lJykuY29udGVudERvY3Vt
ZW50Lm9wZW4oKTsKICAgICBkLndyaXRlKCI8ZGl2IHN0eWxlPSdwb3NpdGlvbjpmaXhlZDsgei1p
bmRleDogMTsgbGVmdDsgMTBweDsnPlRFU1Q8L2Rpdj4iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVk
LXBhZ2Utc2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVk
LXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbAppbmRleCAwODVmNjFl
OWMwNGQyNTkzOTY0ODg0YzZlMjA5MzI0ODBkZGU0YTdiLi4xNmFiMDc1MWNiZDAzMGYyNGVjY2Fk
MWY1NzYxMDFmMDg1NGQ2MzYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9n
ZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZy
YW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCkBAIC0xOCwxMiArMTgsMTIgQEAKIDwvc3R5
bGU+CiA8c2NyaXB0PgogICBmdW5jdGlvbiB0ZXN0KCkgewotICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7Ci0g
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKLSAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5
KDIsIDAsIDApOworICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9j
dW1lbnQsIDIsIDAsIDApOwogICAgIH0KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9s
bGVyKQorICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKIAogICAg
IHZhciBkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZyYW1lJykuY29udGVudERvY3VtZW50
Lm9wZW4oKTsKICAgICBkLndyaXRlKCI8ZGl2IHN0eWxlPSdwb3NpdGlvbjpmaXhlZDsgei1pbmRl
eDogMTsgbGVmdDsgMTBweDsnPlRFU1Q8L2Rpdj4iKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVk
LXBhZ2Utc2NhbGUtZG93bi5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkv
Zml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwK
aW5kZXggYmU5ZDljYzMzM2ExYzg3ZTczMWVjNTQzMGQ0ODhjZjZkYzRkODEwNi4uNDVjZTAzNWYy
OTIyOTQ2MGUzMzQyNzgwY2JmNGMxZmI1NmVjMjM2NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Y29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQt
cGFnZS1zY2FsZS1kb3duLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0
cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0
bWwKQEAgLTIwLDEyICsyMCwxMiBAQAogPC9zdHlsZT4KIDxzY3JpcHQ+CiAgIGZ1bmN0aW9uIHNj
YWxlKCkgewotICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKSB7CiAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4
ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgewotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsK
LSAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDAuNSwgMCwgMCk7CisgICAgICB3aW5kb3cu
aW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMC41LCAwLCAwKTsKICAgICB9
CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CiAgIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
dHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1z
Y2FsZS5odG1sCmluZGV4IGY3ZmIzZGZhYmQzNzEyMWY4MzBmMzlmZmJjMDU3ZjA5MDZmNmMwZWEu
LmRmODY2N2IxYTI0ZDkzZWQyMzE5YzljNDk1YTE1OTc2Y2FkOGRhZGQgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1j
b21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9n
ZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0
bWwKQEAgLTIwLDEyICsyMCwxMiBAQAogPC9zdHlsZT4KIDxzY3JpcHQ+CiAgIGZ1bmN0aW9uIHNj
YWxlKCkgewotICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKSB7CiAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4
ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikgewotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsK
LSAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDIsIDAsIDApOworICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIsIDAsIDApOwogICAgIH0KKyAg
ICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9zY2FsaW5nL3RpbGVkLWxheWVyLXJlY3Vyc2lv
bi5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvc2NhbGluZy90aWxlZC1sYXllci1yZWN1
cnNpb24uaHRtbAppbmRleCBmOGIxODlmZDkwMTg0MjI1OGMxNTg5NmY4MTdjNjNhZTNmZmE1YmMw
Li4zOTlkMGUwZjA0NmViNGFhZjE4YTUzZjFlYTNlMTBjZDJlYmJiZjZlIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9zY2FsaW5nL3RpbGVkLWxheWVyLXJlY3Vyc2lvbi5odG1s
CisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3NjYWxpbmcvdGlsZWQtbGF5ZXItcmVjdXJz
aW9uLmh0bWwKQEAgLTE2LDcgKzE2LDggQEAKIAogICAgIGZ1bmN0aW9uIHNjYWxlUGFnZSgpCiAg
ICAgewotICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMS41MDAyNSwgMCwgMCk7CisgICAg
ICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdl
U2NhbGVGYWN0b3IoZG9jdW1lbnQsIDEuNTAwMjUsIDAsIDApOwogICAgIH0KICAgCiAgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBzY2FsZVBhZ2UsIGZhbHNlKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1ib3VuZGluZy1jbGll
bnQtcmVjdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdlLWJv
dW5kaW5nLWNsaWVudC1yZWN0Lmh0bWwKaW5kZXggZTQ5NjZkMzI4YzY2NDdiZTE2Mjk4YjQwNjA3
OGI0OTNmZDMxNmZhMS4uNjAyMjg5YjMzNTEyOTE1YWViOWRlNjUyZmVlNzU4MjlkMDk5Y2E3MyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdlLWJvdW5k
aW5nLWNsaWVudC1yZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9z
Y2FsZS1wYWdlLWJvdW5kaW5nLWNsaWVudC1yZWN0Lmh0bWwKQEAgLTMsMTMgKzMsMTMgQEAKIDxz
Y3JpcHQ+CiBmdW5jdGlvbiB0ZXN0UmVjdHMoKQogewotICAgIGlmICghd2luZG93LmxheW91dFRl
c3RDb250cm9sbGVyKQorICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyIHx8ICF3
aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICByZXR1cm47CiAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCgpOwogICAgIAogICAgIHZhciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgiZGl2Iik7CiAgICAgdmFyIHJlY3QgPSBkaXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7
Ci0gICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMiwwLDApOworICAgIHdpbmRvdy5pbnRlcm5h
bHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAwKTsKICAgICB2YXIgc2NhbGVk
UmVjdCA9IGRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKIAogICAgIHZhciByZXN1bHQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9FbGVtZW50L3NjYWxlLXBhZ2UtY2xpZW50LXJlY3RzLmh0bWwgYi9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9FbGVtZW50L3NjYWxlLXBhZ2UtY2xpZW50LXJlY3RzLmh0bWwKaW5kZXgg
NzRkMDI4YThjOTA2ZTNlMTQ0NWY2ODI3MzA5OTkyYWRhODY4Nzc3Zi4uOGZhMmEzMTEwNWFhNzY4
OGJjMzU4ZTliNTM4ZDEwMzQ4YzdlOGFmMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9k
b20vRWxlbWVudC9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbApAQCAtMywxMyAr
MywxMyBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHRlc3RSZWN0cygpCiB7Ci0gICAgaWYgKCF3aW5k
b3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRy
b2xsZXIgfHwgIXdpbmRvdy5pbnRlcm5hbHMpCiAgICAgICAgIHJldHVybjsKICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAgICAgCiAgICAgdmFyIGRpdiA9IGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCJkaXYiKTsKICAgICB2YXIgcmVjdExpc3QgPSBkaXYuZ2V0Q2xpZW50
UmVjdHMoKTsKLSAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgyLDAsMCk7CisgICAgd2luZG93
LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIsIDAsIDApOwogICAgIHZh
ciBzY2FsZWRSZWN0TGlzdCA9IGRpdi5nZXRDbGllbnRSZWN0cygpOwogCiAgICAgdmFyIHJlc3Vs
dCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL3NjYWxlLXBhZ2UtYm91bmRpbmctY2xpZW50LXJlY3QuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL3NjYWxlLXBhZ2UtYm91bmRpbmctY2xpZW50
LXJlY3QuaHRtbAppbmRleCA5YTNlMjEwNzljYWY3ZmE5ZjA3NDE5Y2M2MDIyMzFhZjQ0ZmYzZWUz
Li5mMTJjMGZkNzgzMTgzYmM1OGJiODRiMDhkNmMwODc5MjBhNWU2OWU4IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWJvdW5kaW5nLWNsaWVudC1yZWN0
Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1ib3VuZGlu
Zy1jbGllbnQtcmVjdC5odG1sCkBAIC0zLDcgKzMsNyBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHRl
c3RSZWN0cygpCiB7Ci0gICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAg
aWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgfHwgIXdpbmRvdy5pbnRlcm5hbHMpCiAg
ICAgICAgIHJldHVybjsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAK
QEAgLTExLDcgKzExLDcgQEAgZnVuY3Rpb24gdGVzdFJlY3RzKCkKICAgICByYW5nZS5zZWxlY3RO
b2RlQ29udGVudHMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2RpdicpKTsKICAgICB2YXIgcmVj
dCA9IHJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgCi0gICAgZXZlbnRTZW5kZXIu
c2NhbGVQYWdlQnkoMiwwLDApOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFj
dG9yKGRvY3VtZW50LCAyLCAwLCAwKTsKICAgICB2YXIgc2NhbGVkUmFuZ2UgPSBkb2N1bWVudC5j
cmVhdGVSYW5nZSgpOwogICAgIHNjYWxlZFJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnZGl2JykpOwogICAgIHZhciBzY2FsZWRSZWN0ID0gc2NhbGVkUmFu
Z2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbAppbmRleCA1Y2YyYmQzMDUw
ODFmNWFmMzM5NjI1YzMyY2Q1MjcxOTZmMDEyZGEyLi4zZWYzNjc5NTU2MzIyM2E4Yjc0M2RiMjBk
ZjgwNDAxMWQ4ZmQwODEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9z
Y2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1Jh
bmdlL3NjYWxlLXBhZ2UtY2xpZW50LXJlY3RzLmh0bWwKQEAgLTMsNyArMyw3IEBACiA8c2NyaXB0
PgogZnVuY3Rpb24gdGVzdFJlY3RzKCkKIHsKLSAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciB8fCAgIXdpbmRv
dy5pbnRlcm5hbHMpCiAgICAgICAgIHJldHVybjsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CiAKQEAgLTEyLDcgKzEyLDcgQEAgZnVuY3Rpb24gdGVzdFJlY3RzKCkKICAg
ICB2YXIgcmVjdExpc3QgPSByYW5nZS5nZXRDbGllbnRSZWN0cygpOwogICAgIHZhciByZWN0ID0g
cmVjdExpc3RbMF07CiAgICAKLSAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgyLDAsMCk7Cisg
ICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIsIDAsIDAp
OwogICAgIHZhciBzY2FsZWRSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJhbmdlKCk7CiAgICAgc2Nh
bGVkUmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXYn
KSk7CiAgICAgdmFyIHNjYWxlZFJlY3RMaXN0ID0gc2NhbGVkUmFuZ2UuZ2V0Q2xpZW50UmVjdHMo
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwt
Ym9keS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1ib2R5
Lmh0bWwKaW5kZXggN2E4N2VmNGU1MDk1OWYyZDQxNWMzOTk5MDgyY2VkNjQ3MmQ1NGQwNS4uYTU3
MGQ3OTMzZjYwYWU2OGNjN2Y5Y2EwZmQwZDUzOGM3M2E5ZWNhMyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1ib2R5Lmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1ib2R5Lmh0bWwKQEAgLTEwLDcgKzEw
LDcgQEAKICAgICAgIHdpbmRvdy5lbmFibGVQaXhlbFRlc3RpbmcgPSB0cnVlOwogCiAgICAgICBm
dW5jdGlvbiBzY3JvbGwoKSB7Ci0gICAgICAgICAgLy8gVGhlIHBhZ2Ugc2NhbGUsIGFzIHNldCBi
eSBFdmVudFNlbmRlci5zY2FsZVBhZ2VCeSBzaG91bGQgbm90IGJlIGFwcGFyZW50CisgICAgICAg
ICAgLy8gVGhlIHBhZ2Ugc2NhbGUsIGFzIHNldCBieSB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VT
Y2FsZUZhY3RvciBzaG91bGQgbm90IGJlIGFwcGFyZW50CiAgICAgICAgICAgLy8gdG8gamF2YXNj
cmlwdC4gU28sIHdlIGV4cGVjdCBzY3JvbGxpbmcgdG8gKDEwMCwxMDApIHRvIGJlIHBhZ2UgY29v
cmRpbmF0ZXMsIHJhdGhlcgogICAgICAgICAgIC8vIHRoYW4gZGV2aWNlIHBpeGVscy4KICAgICAg
ICAgICBkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQgPSAxMDA7CkBAIC0yNSw4ICsyNSw4IEBACiAg
ICAgICBmdW5jdGlvbiBzY2FsZVdpdGhFdmVudFNlbmRlcigpIHsKICAgICAgICAgICB2YXIgc2Nh
bGVGYWN0b3IgPSAyLjA7CiAgICAgICAgICAgdmFyIHNjYWxlT2Zmc2V0ID0gMDsKLSAgICAgICAg
ICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgICAgICAgZXZlbnRTZW5kZXIuc2Nh
bGVQYWdlQnkoc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CisgICAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBz
Y2FsZU9mZnNldCk7CiAgICAgICAgICAgfQogICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS1ib2R5Lmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS1ib2R5Lmh0bWwKaW5k
ZXggMGE1MThjN2E1ZjM3NTZmNmZhN2ZhNzBiYWYzNzg0MmJkZDg5ZTlhNC4uODE5NWI5OWZjYWVl
ZmI4YWZlYTZhMmZmYmIyNjJhYWY3ZmMyYTI4OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFz
dC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtYm9keS5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtaWZyYW1lLWJvZHkuaHRtbApAQCAtMjQs
OCArMjQsOCBAQAogICAgICAgICBmdW5jdGlvbiBzY2FsZVdpdGhFdmVudFNlbmRlcigpIHsKICAg
ICAgICAgICAgIHZhciBzY2FsZUZhY3RvciA9IDAuNTsKICAgICAgICAgICAgIHZhciBzY2FsZU9m
ZnNldCA9IDA7Ci0gICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNl
dCwgc2NhbGVPZmZzZXQpOworICAgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAg
ICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1l
bnQsIHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQpOwogICAgICAgICAgICAg
fQogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxl
LWFuZC1zY3JvbGwtaWZyYW1lLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
c2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtd2luZG93Lmh0bWwKaW5kZXggNDFjZWFjN2FkNjMyZjI5
YmRhMmFlOTM3ZTdiM2EyMmM1MjM3YWFkMS4uNzc5MzU4MTJhMTY1MDEyZjgyNTU2NjJjOWRlZjBj
NjI3YjIwNjcyNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5k
LXNjcm9sbC1pZnJhbWUtd2luZG93Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
c2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtd2luZG93Lmh0bWwKQEAgLTIzLDggKzIzLDggQEAKICAg
ICAgICAgZnVuY3Rpb24gc2NhbGVXaXRoRXZlbnRTZW5kZXIoKSB7CiAgICAgICAgICAgICB2YXIg
c2NhbGVGYWN0b3IgPSAwLjU7CiAgICAgICAgICAgICB2YXIgc2NhbGVPZmZzZXQgPSAwOwotICAg
ICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICAgICAgICAgICBldmVu
dFNlbmRlci5zY2FsZVBhZ2VCeShzY2FsZUZhY3Rvciwgc2NhbGVPZmZzZXQsIHNjYWxlT2Zmc2V0
KTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgICAg
IHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCBzY2FsZUZhY3Rv
ciwgc2NhbGVPZmZzZXQsIHNjYWxlT2Zmc2V0KTsKICAgICAgICAgICAgIH0KICAgICAgICAgfQog
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLXdp
bmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC13aW5k
b3cuaHRtbAppbmRleCBjNTU1MTE1MjUzNDI5ZTFiNGMwODYxNjMwYTA5MmM5MTgyNDQyZTBjLi41
YzM1ZTY1Y2NhMThlYTQyNzIyNDA4ZDQyNDIxMDJhYTA1NWM1NmIxIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLXdpbmRvdy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtd2luZG93Lmh0bWwKQEAgLTEw
LDcgKzEwLDcgQEAKICAgICAgIHdpbmRvdy5lbmFibGVQaXhlbFRlc3RpbmcgPSB0cnVlOwogCiAg
ICAgICBmdW5jdGlvbiBzY3JvbGwoKSB7Ci0gICAgICAgICAgLy8gVGhlIHBhZ2Ugc2NhbGUsIGFz
IHNldCBieSBFdmVudFNlbmRlci5zY2FsZVBhZ2VCeSBzaG91bGQgbm90IGJlIGFwcGFyZW50Cisg
ICAgICAgICAgLy8gVGhlIHBhZ2Ugc2NhbGUsIGFzIHNldCBieSB3aW5kb3cuaW50ZXJuYWxzLnNl
dFBhZ2VTY2FsZUZhY3RvciBzaG91bGQgbm90IGJlIGFwcGFyZW50CiAgICAgICAgICAgLy8gdG8g
amF2YXNjcmlwdC4gU28sIHdlIGV4cGVjdCBzY3JvbGxpbmcgdG8gKDEwMCwxMDApIHRvIGJlIHBh
Z2UgY29vcmRpbmF0ZXMsIHJhdGhlcgogICAgICAgICAgIC8vIHRoYW4gZGV2aWNlIHBpeGVscy4K
ICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMTAwLDEwMCk7CkBAIC0yNCw4ICsyNCw4IEBACiAg
ICAgICBmdW5jdGlvbiBzY2FsZVdpdGhFdmVudFNlbmRlcigpIHsKICAgICAgICAgICB2YXIgc2Nh
bGVGYWN0b3IgPSAyLjA7CiAgICAgICAgICAgdmFyIHNjYWxlT2Zmc2V0ID0gMDsKLSAgICAgICAg
ICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgICAgICAgZXZlbnRTZW5kZXIuc2Nh
bGVQYWdlQnkoc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CisgICAgICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBz
Y2FsZU9mZnNldCk7CiAgICAgICAgICAgfQogICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2staWZy
YW1lLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL3BhZ2Utc2NhbGVk
LW1vdXNlLWNsaWNrLWlmcmFtZS5qcwppbmRleCBiZDk2M2U4ZTAwYThiMGRlMDcxY2Q5YTQ4ZGI1
YjBhNjBjMzUyYjBkLi4zOTdmOGRlMzdjODczNzVjYjk0NDQ2ZjUwMjRlNWRiNzk0ZWE2MTIyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2Fs
ZWQtbW91c2UtY2xpY2staWZyYW1lLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nj
cmlwdC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGljay1pZnJhbWUuanMKQEAgLTUyLDcgKzUy
LDcgQEAgZnVuY3Rpb24gaWZyYW1lTG9hZGVkKCkgewogICBkaXYuYWRkRXZlbnRMaXN0ZW5lcigi
Y2xpY2siLCBhcHBlbmRFdmVudExvZywgZmFsc2UpOwogICBpZnJhbWUuY29udGVudFdpbmRvdy5k
b2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZShkaXYsIGlmcmFtZS5jb250ZW50V2luZG93LmRvY3Vt
ZW50LmJvZHkuZmlyc3RDaGlsZCk7CiAKLSAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICBp
ZiAod2luZG93LmV2ZW50U2VuZGVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICBldmVudFNl
bmRlci5tb3VzZU1vdmVUbygxMCwgMTApOwogICAgIC8vIFdlIGFyZSBjbGlja2luZyBpbiB0aGUg
c2FtZSBwb3NpdGlvbiBvbiBzY3JlZW4uIEFzIHdlIHNjYWxlIG9yIHRyYW5zZm9ybSB0aGUgcGFn
ZSwKICAgICAvLyB3ZSBleHBlY3QgdGhlIHBhZ2VYIGFuZCBwYWdlWSBldmVudCBjb29yZGluYXRl
cyB0byBjaGFuZ2UgYmVjYXVzZSBkaWZmZXJlbnQKQEAgLTYwLDE1ICs2MCwxNSBAQCBmdW5jdGlv
biBpZnJhbWVMb2FkZWQoKSB7CiAKICAgICB0ZXN0RXZlbnRzKDAsICJVbnNjYWxlZCIsICJjbGlj
aygxMCwgMTApIik7CiAKLSAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgwLjUsIDAsIDApOwor
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjUsIDAs
IDApOwogICAgIHRlc3RFdmVudHMoMCwgInNldFBhZ2VTY2FsZSgwLjUpIiwgImNsaWNrKDIwLCAy
MCkiKTsKIAotICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDEuMCwgMCwgMCk7CisgICAgd2lu
ZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDEuMCwgMCwgMCk7CiAg
ICAgaHRtbC5zdHlsZVsiLXdlYmtpdC10cmFuc2Zvcm0iXSA9ICJzY2FsZSgwLjUsIDIuMCkiOwog
ICAgIGh0bWwuc3R5bGVbIi13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbiJdID0gIjAgMCI7CiAgICAg
dGVzdEV2ZW50cygwLCAiQ1NTIHNjYWxlKDAuNSwgMi4wKSIsICJjbGljaygyMCwgNSkiKTsKIAot
ICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDAuNSwgMCwgMCk7CisgICAgd2luZG93LmludGVy
bmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwgMCwgMCk7CiAgICAgdGVzdEV2
ZW50cygwLCAic2V0UGFnZVNjYWxlKDAuNSksIENTUyBzY2FsZSgwLjUsIDIuMCkiLCAiY2xpY2so
NDAsIDEwKSIpOwogICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nj
cmlwdC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGljay5qcyBiL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGljay5qcwppbmRleCA5Nzg3
Zjk1MjQ0YmZjZjQzNDE2MGUzOWMxNDJmYmUwMTk1OTM5MzFjLi40NGU2ODNjYzY0ZWU5YmY3YmY5
NTVhNmNmMGY3MDY4MDlkNmY1OGMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2suanMKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL3BhZ2Utc2NhbGVkLW1vdXNlLWNsaWNrLmpzCkBA
IC00MywxMyArNDMsMTMgQEAgZnVuY3Rpb24gdGVzdEV2ZW50cyhidXR0b24sIGRlc2NyaXB0aW9u
LCBleHBlY3RlZFN0cmluZykgewogICAgIGNsZWFyRXZlbnRMb2coKTsKIH0KIAotaWYgKHdpbmRv
dy5ldmVudFNlbmRlcikgeworaWYgKHdpbmRvdy5ldmVudFNlbmRlciAmJiB3aW5kb3cuaW50ZXJu
YWxzKSB7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAsIDEwKTsKICAgICAvLyBXZSBh
cmUgY2xpY2tpbmcgaW4gdGhlIHNhbWUgcG9zaXRpb24gb24gc2NyZWVuLiBBcyB3ZSBzY2FsZSBv
ciB0cmFuc2Zvcm0gdGhlIHBhZ2UsCiAgICAgLy8gd2UgZXhwZWN0IHRoZSBwYWdlWCBhbmQgcGFn
ZVkgZXZlbnQgY29vcmRpbmF0ZXMgdG8gY2hhbmdlIGJlY2F1c2UgZGlmZmVyZW50CiAgICAgLy8g
cGFydHMgb2YgdGhlIGRvY3VtZW50IGFyZSB1bmRlciB0aGUgbW91c2UuCiAgICAgdGVzdEV2ZW50
cygwLCAiVW5zY2FsZWQiLCAiY2xpY2soMTAsIDEwKSIpOwogCi0gICAgZXZlbnRTZW5kZXIuc2Nh
bGVQYWdlQnkoMC41LCAwLCAwKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZh
Y3Rvcihkb2N1bWVudCwgMC41LCAwLCAwKTsKICAgICB0ZXN0RXZlbnRzKDAsICJzZXRQYWdlU2Nh
bGUoMC41KSIsICJjbGljaygyMCwgMjApIik7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9m
YXN0L2V2ZW50cy9zY3JvbGwtaW4tc2NhbGVkLXBhZ2Utd2l0aC1vdmVyZmxvdy1oaWRkZW4uaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbC1pbi1zY2FsZWQtcGFnZS13aXRoLW92
ZXJmbG93LWhpZGRlbi5odG1sCmluZGV4IDAzMGFjMTZkZWM3MGVkZDJiYzY2NDgzYmQ1NTNhODIz
Y2MyZWMzZGMuLmZmNmQyYzk5MDlmNjkyY2Y0ZTk4NWFlNjk2ZDIzZmNmYmViMjkwNmQgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbC1pbi1zY2FsZWQtcGFnZS13aXRo
LW92ZXJmbG93LWhpZGRlbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9s
bC1pbi1zY2FsZWQtcGFnZS13aXRoLW92ZXJmbG93LWhpZGRlbi5odG1sCkBAIC0yMiw4ICsyMiw4
IEBACiAgICAgICAgIC8vIEZvcmNlIGEgbGF5b3V0LgogICAgICAgICBkb2N1bWVudC5ib2R5Lm9m
ZnNldExlZnQ7CiAKLSAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikKLSAgICAgICAgICAg
IGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDIsIDAsIDApOworICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9y
KGRvY3VtZW50LCAyLCAwLCAwKTsKIAogICAgICAgICBzaG91bGRCZSgid2luZG93LmRvY3VtZW50
LmJvZHkuc2Nyb2xsVG9wIiwgIjAiKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvdG91Y2gvcGFnZS1zY2FsZWQtdG91Y2gtZ2VzdHVyZS1jbGljay5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvcGFnZS1zY2FsZWQtdG91Y2gtZ2VzdHVyZS1jbGljay5o
dG1sCmluZGV4IDI4Yjk4YmJiMzM0MzExZTU5MDcxOGU2ZTBlYTMzMGVhZjQ1NmRmMjAuLjBkYjk1
NWIwMDk5OWViN2I5YWVlODJhYWZjMTY3ODEwYTQ3ZmQ4NDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3BhZ2Utc2NhbGVkLXRvdWNoLWdlc3R1cmUtY2xpY2suaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9wYWdlLXNjYWxlZC10b3VjaC1n
ZXN0dXJlLWNsaWNrLmh0bWwKQEAgLTgzLDggKzgzLDggQEAgZnVuY3Rpb24gZW5kVGVzdCgpCiB9
CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewot
ICAgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgwLjUsIDAsIDApOworICAgIGlmICh3aW5k
b3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFj
dG9yKGRvY3VtZW50LCAwLjUsIDAsIDApOwogICAgIH0KIAogICAgIHZhciBkaXYgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgndG91Y2h0YXJnZXQnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1yb3RhdGlvbi1oaXQuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZnJhbWVzL2ZyYW1lLXNldC1yb3RhdGlvbi1oaXQuaHRtbAppbmRleCBiMTk3NzRkM2VjMzRi
ZDE4NjE0YTlhZGU3ZjE4NzJhOGMxMzI5YTIyLi5jYzJjMjE0YWQyMjYxNzdmOWE5NmQ1MmVjOTQx
YTYzZDQ4MzZlMTYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9mcmFtZS1z
ZXQtcm90YXRpb24taGl0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUt
c2V0LXJvdGF0aW9uLWhpdC5odG1sCkBAIC00LDEwICs0LDEwIEBACiAKICAgICA8c2NyaXB0Pgog
ICAgICAgICBmdW5jdGlvbiBpbml0KCkgewotICAgICAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRT
ZW5kZXIpCisgICAgICAgICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlciB8fCAhd2luZG93Lmlu
dGVybmFscykKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAvLyBTY2FsZSB0
aGUgcGFnZSBhbmQgcmVzaXplIHRoZSBmcmFtZXMgdG8gdmVyaWZ5IGhpdCB0ZXN0aW5nIG9uIHRo
ZSBmcmFtZXNldAotICAgICAgICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMC41LCAwLCAw
KTsKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3Vt
ZW50LCAwLjUsIDAsIDApOwogICAgICAgICAgICAgdmFyIGxlZnRQYW5lbFdpZHRoID0gd2luZG93
LmlubmVyV2lkdGggLyA4OwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8od2lu
ZG93LmlubmVyV2lkdGggLyA0LCBsZWZ0UGFuZWxXaWR0aCk7CiAgICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZURvd24oKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2Zy
YW1lLXNldC1zY2FsaW5nLWhpdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUt
c2V0LXNjYWxpbmctaGl0Lmh0bWwKaW5kZXggMzNiY2VhYjgzNGY4YWU4Mzk5ZTAyZTdhN2Y0Yjlj
YzgzNzI4NDg3My4uYjIyMTFiNmI4YjlmZjZkOWExYTMwZjNkZmQ2YTkzNjE1M2QzNzEwMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUtc2V0LXNjYWxpbmctaGl0Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUtc2V0LXNjYWxpbmctaGl0Lmh0
bWwKQEAgLTQsMTEgKzQsMTEgQEAKIAogICAgIDxzY3JpcHQ+CiAgICAgICAgIGZ1bmN0aW9uIGlu
aXQoKSB7Ci0gICAgICAgICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlcikKKyAgICAgICAgICAg
IGlmICghd2luZG93LmV2ZW50U2VuZGVyIHx8ICF3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIC8vIFNjYWxlIHRoZSBwYWdlIGFuZCByZXNpemUg
dGhlIGZyYW1lcyB0byB2ZXJpZnkgaGl0IHRlc3Rpbmcgb24gdGhlIGZyYW1lc2V0CiAgICAgICAg
ICAgICB2YXIgbGVmdFBhbmVsV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aCAvIDg7Ci0gICAgICAg
ICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgwLjUsIDAsIDApOworICAgICAgICAgICAgd2lu
ZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwgMCwgMCk7CiAg
ICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhsZWZ0UGFuZWxXaWR0aCwgd2luZG93
LmlubmVySGVpZ2h0IC8gNCk7CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsK
ICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIgKiBsZWZ0UGFuZWxXaWR0aCwg
d2luZG93LmlubmVySGVpZ2h0IC8gNCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9pZnJhbWUtZG91YmxlLXNjYWxlLWNvbnRlbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2ZyYW1lcy9pZnJhbWUtZG91YmxlLXNjYWxlLWNvbnRlbnRzLmh0bWwKaW5kZXggOTE1YzBiNWZm
MGZmNGNkOTRjYmNiZWQ3ODU1OGFlMGUzNmNkMWQ4Yy4uZDNhZjVmNjk3YjA3NjBmNTdkNWYyMDc1
YTEwNGQyMDQxNjc1ZmIwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZy
YW1lLWRvdWJsZS1zY2FsZS1jb250ZW50cy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL2lmcmFtZS1kb3VibGUtc2NhbGUtY29udGVudHMuaHRtbApAQCAtMjIsOCArMjIsOCBAQAog
CiAgICAgICBmdW5jdGlvbiBzY2FsZVBhZ2Uoc2NhbGVGYWN0b3IpIHsKICAgICAgICAgICB2YXIg
c2NhbGVPZmZzZXQgPSAwOwotICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNl
dCwgc2NhbGVPZmZzZXQpOworICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAg
ICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgc2Nh
bGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CiAgICAgICAgICAgfQogICAgICAg
fQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvYmFja2dyb3VuZC1zY2Fs
aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvYmFja2dyb3VuZC1zY2FsaW5nLmh0
bWwKaW5kZXggYWU1NTNhMTQxZDllNjlhNzUzY2I4M2ZiMGM1NzYyNjFlNjlhNDFmMy4uZThjZmYw
ZDE2NTZiNTViZTg2ODQ0NjI1MDU1NzEzMzk3MTM4N2EzZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2NhbGluZy5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvcmVwYWludC9iYWNrZ3JvdW5kLXNjYWxpbmcuaHRtbApAQCAtNCw4ICs0LDggQEAKIDxz
Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4gCiAgICAgZnVuY3Rpb24gcmVwYWludFRlc3Qo
KQogICAgIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDAuMiwwLDApOworICAgICAgICBpZiAod2lu
ZG93LmludGVybmFscykKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxl
RmFjdG9yKGRvY3VtZW50LCAwLjI1LCAwLCAwKTsKICAgICB9CiA8L3NjcmlwdD4gCiA8L2hlYWQ+
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NjYWxlLXBhZ2Utc2hyaW5r
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2NhbGUtcGFnZS1zaHJpbmsuaHRtbApp
bmRleCBjMWNhNTc2ZjM1YjQzZDY4OTk2NTVhZGM2NGRkZjhlOWFlNjU4OTY5Li45MmYzZTNkNWY2
ZjY2ZTFjOTllMTk3YmZlN2UxNGZhYTAyZjBkMDQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L3JlcGFpbnQvc2NhbGUtcGFnZS1zaHJpbmsuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlcGFpbnQvc2NhbGUtcGFnZS1zaHJpbmsuaHRtbApAQCAtNCw4ICs0LDggQEAKIDxzY3JpcHQg
dHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgICBmdW5jdGlvbiByZXBhaW50VGVzdCgpCiAgICAg
ewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQotICAgICAgICAgICAg
ZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMC4yLDAsMCk7CisgICAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKQorICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3Io
ZG9jdW1lbnQsIDAuMjUsIDAsIDApOwogICAgIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90cmFuc2Zvcm1zL3NlbGVjdGlvbi1ib3VuZHMtaW4tdHJh
bnNmb3JtZWQtdmlldy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90cmFuc2Zvcm1zL3NlbGVjdGlv
bi1ib3VuZHMtaW4tdHJhbnNmb3JtZWQtdmlldy5odG1sCmluZGV4IGExMGE0ZDFkZTFkYjI2MTFk
NjE3YTA1ZmU0YWU1YzUxYzdmMzUwZDEuLjEwZTI2YmI4OTE3MmRiZmIwNzcwNzBiNmRiMDFkMDAw
ZTI5ODIwNzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdHJhbnNmb3Jtcy9zZWxlY3Rp
b24tYm91bmRzLWluLXRyYW5zZm9ybWVkLXZpZXcuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L3RyYW5zZm9ybXMvc2VsZWN0aW9uLWJvdW5kcy1pbi10cmFuc2Zvcm1lZC12aWV3Lmh0bWwKQEAg
LTQsMTAgKzQsOSBAQAogICAgIDxkaXYgc3R5bGU9ImhlaWdodDogMTAwcHg7Ij50YXJnZXQ8L2Rp
dj4KICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDEwMDBweDsiPjwvZGl2PgogICAgIDxzY3JpcHQ+
Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKKyAgICAgICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAg
ICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7Ci0KLSAgICAgICAgICAg
IGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDIsIDAsIDApOworICAgICAgICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIsIDAsIDApOwogICAgICAgICB9
CiAKICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkZpbmRTdHJpbmciLCBmYWxzZSwgInRh
cmdldCIpOwpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9nCmluZGV4IGNlNTBiN2Zi
MDdiMTEyOTQ5MzI5YWExZmIxMGNlYWUzMjNhMzRhN2IuLjkxZTcyMzQyZTQxZDQ4ZDU3MzA0ZWYy
OTNlOTBjYWM4NGM0NTk5NmYgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZworKysgYi9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMiBAQAorMjAxMS0xMi0wNyAgRmFkeSBTYW11ZWwgIDxmc2FtdWVsQGNocm9t
aXVtLm9yZz4KKworICAgICAgICBNb3ZlIHNjYWxlUGFnZUJ5IGZyb20gZXZlbnRTZW5kZXIgdG8g
d2luZG93LmludGVybmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NjQ1MTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIFNvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXI6CisKIDIwMTEtMTItMDYg
IERpcmsgUHJhbmtlICA8ZHByYW5rZUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWRkIFRvb2xz
L1Rvb2wueGNvZGVwcm9qLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>118341</attachid>
            <date>2011-12-08 00:02:40 -0800</date>
            <delta_ts>2012-01-05 08:27:14 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-64512-20111208030239.patch</filename>
            <type>text/plain</type>
            <size>33660</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAyMzIwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTY5MTc0ODFhYzU5ZjJj
MWJjNGVkZTMzOGNiOTY0YmMyZDVmNDY3OC4uZGYzMGQwN2NiMjFkZTJiYjJmZGNlZDRjZDExZTEz
YmUwNjgyM2M5ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDExLTEyLTA4ICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgc2NhbGVQYWdl
QnkgZnJvbSBldmVudFNlbmRlciB0byB3aW5kb3cuaW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDUxMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBBZGRlZCBzZXRQYWdlU2NhbGVGYWN0b3IgdG8g
d2luZG93LmludGVybmFscy4KKyAgICAgICAgUmVuYW1lZCB3aW5kb3cuaW50ZXJuYWxzLmdldFBh
Z2VTY2FsZUZhY3RvciB0byB3aW5kb3cuaW50ZXJuYWxzLnBhZ2VTY2FsZUZhY3RvcgorICAgICAg
ICB0byBtYXRjaCB0aGUgd2Via2l0IHN0eWxlLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwYWdlU2NhbGVGYWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRQYWdlU2NhbGVGYWN0b3IpOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRs
OgorCiAyMDExLTEyLTA3ICBZb3NpZnVtaSBJbm91ZSAgPHlvc2luQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBDU1MgY29sb3IgZ2V0cyBhZGp1c3RlZCBmb3IgZGlzYWJsZWQgaW5wdXQgZWxlbWVu
dHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwppbmRleCA3NWExNjc4ZmFiNjkyOWU1MzAyM2Y3ZmRjMWJhMmI5NDhjMTU1ZmIy
Li4zYWMyMzgxZDRjZWY2NWFhMzE1YjZhMjAzNDU5NGE2ODhkZDUyYjhjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMTEtMTItMDggIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgTW92ZSBzY2FsZVBhZ2VCeSBmcm9tIGV2ZW50U2VuZGVyIHRvIHdp
bmRvdy5pbnRlcm5hbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTY0NTEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisgICAg
ICAgICogd2luL1dlYktpdDIuZGVmOgorICAgICAgICAqIHdpbi9XZWJLaXQyQ0ZMaXRlLmRlZjoK
KwogMjAxMS0xMi0wNyAgTWFyayBSb3dlICA8bXJvd2VAYXBwbGUuY29tPgogCiAgICAgICAgIEZp
eCB0aGUgMzItYml0IGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4
IDNmMDYwNmZhM2Q3YzFmYTI1OWY4MmJhNDA5MWI4YzhjZGJkMTNiOTkuLjUzYjVjNzNlYmIwOTU1
NDdlZTA3ZmI5YzFiOGRiMDI3OTI3MjJkMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFs
cy5jcHAKQEAgLTM2NCwxNiArMzY0LDYgQEAgdm9pZCBJbnRlcm5hbHM6OnNldFpvb21BbmltYXRv
clRyYW5zZm9ybShEb2N1bWVudCAqZG9jdW1lbnQsIGZsb2F0IHNjYWxlLCBmbG9hdAogI2VuZGlm
CiB9CiAKLWZsb2F0IEludGVybmFsczo6Z2V0UGFnZVNjYWxlRmFjdG9yKERvY3VtZW50ICpkb2N1
bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMpCi17Ci0gICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1l
bnQtPnBhZ2UoKSkgewotICAgICAgICBlYyA9IElOVkFMSURfQUNDRVNTX0VSUjsKLSAgICAgICAg
cmV0dXJuIDA7Ci0gICAgfQotCi0gICAgcmV0dXJuIGRvY3VtZW50LT5wYWdlKCktPnBhZ2VTY2Fs
ZUZhY3RvcigpOwotfQotCiB2b2lkIEludGVybmFsczo6c2V0Wm9vbVBhcmFtZXRlcnMoRG9jdW1l
bnQqIGRvY3VtZW50LCBmbG9hdCBzY2FsZSwgZmxvYXQgeCwgZmxvYXQgeSwgRXhjZXB0aW9uQ29k
ZSYgZWMpCiB7CiAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnZpZXcoKSB8fCAhZG9j
dW1lbnQtPnZpZXcoKS0+ZnJhbWUoKSkgewpAQCAtNjI3LDYgKzYxNywyNSBAQCBib29sIEludGVy
bmFsczo6dW5pZmllZFRleHRDaGVja2luZ0VuYWJsZWQoRG9jdW1lbnQqIGRvY3VtZW50LCBFeGNl
cHRpb25Db2RlJiBlYwogICAgIHJldHVybiBkb2N1bWVudC0+ZnJhbWUoKS0+c2V0dGluZ3MoKS0+
dW5pZmllZFRleHRDaGVja2VyRW5hYmxlZCgpOwogfQogCitmbG9hdCBJbnRlcm5hbHM6OnBhZ2VT
Y2FsZUZhY3RvcihEb2N1bWVudCAqZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAg
IGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT5wYWdlKCkpIHsKKyAgICAgICAgZWMgPSBJTlZB
TElEX0FDQ0VTU19FUlI7CisgICAgICAgIHJldHVybiAwOworICAgIH0KKworICAgIHJldHVybiBk
b2N1bWVudC0+cGFnZSgpLT5wYWdlU2NhbGVGYWN0b3IoKTsKK30KKwordm9pZCBJbnRlcm5hbHM6
OnNldFBhZ2VTY2FsZUZhY3RvcihEb2N1bWVudCogZG9jdW1lbnQsIGZsb2F0IHNjYWxlRmFjdG9y
LCBpbnQgeCwgaW50IHksIEV4Y2VwdGlvbkNvZGUmIGVjKQoreworICAgIGlmICghZG9jdW1lbnQg
fHwgIWRvY3VtZW50LT5wYWdlKCkpIHsKKyAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7
CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgZG9jdW1lbnQtPnBhZ2UoKS0+c2V0UGFnZVNj
YWxlRmFjdG9yKHNjYWxlRmFjdG9yLCBJbnRQb2ludCh4LCB5KSk7Cit9CisKIGludCBJbnRlcm5h
bHM6Omxhc3RTcGVsbENoZWNrUmVxdWVzdFNlcXVlbmNlKERvY3VtZW50KiBkb2N1bWVudCwgRXhj
ZXB0aW9uQ29kZSYgZWMpCiB7CiAgICAgU3BlbGxDaGVja2VyKiBjaGVja2VyID0gc3BlbGxjaGVj
a2VyKGRvY3VtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJu
YWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDE0ZDlkZmRm
M2IxZDhkNGE0MTdmZDJmZmU4YjNhNTc1M2I0OGM3MzIuLjNhNzU4NTY4OWNiZTkyNjEwMzkyNTM2
ZDljMDUzNjgyOWQ0YWE4MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtODMs
NyArODMsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldEVuYWJsZVNjcm9sbEFuaW1hdG9yKERv
Y3VtZW50KiwgYm9vbCBlbmFibGVkLCBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRab29t
QW5pbWF0b3JUcmFuc2Zvcm0oRG9jdW1lbnQqLCBmbG9hdCBzY2FsZSwgZmxvYXQgdHgsIGZsb2F0
IHR5LCBFeGNlcHRpb25Db2RlJik7Ci0gICAgZmxvYXQgZ2V0UGFnZVNjYWxlRmFjdG9yKERvY3Vt
ZW50KiwgIEV4Y2VwdGlvbkNvZGUmKTsKICAgICB2b2lkIHNldFpvb21QYXJhbWV0ZXJzKERvY3Vt
ZW50KiwgZmxvYXQgc2NhbGUsIGZsb2F0IHgsIGZsb2F0IHksIEV4Y2VwdGlvbkNvZGUmKTsKIAog
ICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKERvY3VtZW50KiwgYm9vbCBlbmFibGVk
LCBFeGNlcHRpb25Db2RlJik7CkBAIC0xMTIsNiArMTExLDkgQEAgcHVibGljOgogCiAgICAgaW50
IGxhc3RTcGVsbENoZWNrUmVxdWVzdFNlcXVlbmNlKERvY3VtZW50KiwgRXhjZXB0aW9uQ29kZSYp
OwogICAgIGludCBsYXN0U3BlbGxDaGVja1Byb2Nlc3NlZFNlcXVlbmNlKERvY3VtZW50KiwgRXhj
ZXB0aW9uQ29kZSYpOworICAgIAorICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcihEb2N1bWVudCos
ICBFeGNlcHRpb25Db2RlJik7CisgICAgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3IoRG9jdW1lbnQq
LCBmbG9hdCBzY2FsZUZhY3RvciwgaW50IHgsIGludCB5LCBFeGNlcHRpb25Db2RlJik7CiAKICAg
ICBzdGF0aWMgY29uc3QgY2hhciogaW50ZXJuYWxzSWQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbAppbmRleCBkNjIyMjYwNDMwYTcxNjljNGM2YTM1MWU2MDYxOTA1MGY2OTJhMjMx
Li5mNTZkMWFmNzRhOGUzNWRkNDdiZDRlNmM0OWYxMjVlN2VhYWMzYTU1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCkBAIC01NSw3ICs1NSw2IEBAIG1vZHVsZSB3aW5kb3cgewog
ICAgICAgICB2b2lkIHNldEFjY2VsZXJhdGVkRmlsdGVyc0VuYWJsZWQoaW4gRG9jdW1lbnQgZG9j
dW1lbnQsIGluIGJvb2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAg
IHZvaWQgc2V0RW5hYmxlU2Nyb2xsQW5pbWF0b3IoaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGJv
b2xlYW4gZW5hYmxlZCkgcmFpc2VzKERPTUV4Y2VwdGlvbik7CiAgICAgICAgIHZvaWQgc2V0Wm9v
bUFuaW1hdG9yVHJhbnNmb3JtKGluIERvY3VtZW50IGRvY3VtZW50LCBpbiBmbG9hdCBzY2FsZSwg
aW4gZmxvYXQgdHgsIGluIGZsb2F0IHR5KSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKLSAgICAgICAg
ZmxvYXQgZ2V0UGFnZVNjYWxlRmFjdG9yKGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMoRE9N
RXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRab29tUGFyYW1ldGVycyhpbiBEb2N1bWVudCBk
b2N1bWVudCwgaW4gZmxvYXQgc2NhbGUsIGluIGZsb2F0IHgsIGluIGZsb2F0IHkpIHJhaXNlcyhE
T01FeGNlcHRpb24pOwogICAgICAgICB2b2lkIHNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChpbiBE
b2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9u
KTsKIApAQCAtODQsNiArODMsOSBAQCBtb2R1bGUgd2luZG93IHsKIAogICAgICAgICBsb25nIGxh
c3RTcGVsbENoZWNrUmVxdWVzdFNlcXVlbmNlKGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMg
KERPTUV4Y2VwdGlvbik7CiAgICAgICAgIGxvbmcgbGFzdFNwZWxsQ2hlY2tQcm9jZXNzZWRTZXF1
ZW5jZShpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzIChET01FeGNlcHRpb24pOworCisgICAg
ICAgIGZsb2F0IHBhZ2VTY2FsZUZhY3RvcihpbiBEb2N1bWVudCBkb2N1bWVudCkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CisgICAgICAgIHZvaWQgc2V0UGFnZVNjYWxlRmFjdG9yKGluIERvY3VtZW50
IGRvY3VtZW50LCBpbiBmbG9hdCBzY2FsZUZhY3RvciwgaW4gbG9uZyB4LCBpbiBsb25nIHkpIHJh
aXNlcyhET01FeGNlcHRpb24pOwogICAgIH07CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgppbmRl
eCBiNDZmMTU5YmE4ZGFjNGM2OWZlYjA2MWIyMzg5NjgxODdjZmY2YzgwLi5kM2EzMmMyNWE5MDdj
NGFjYjkwM2EyYjEwNmJmOTExMDgzNzMxY2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93
aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCkBAIC0x
NzIsNiArMTcyLDcgQEAgRVhQT1JUUwogICAgICAgICA/c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVt
ZW50c1JlbGF0aXZlVG9GcmFtZUBGcmFtZVZpZXdAV2ViQ29yZUBAUUFFWF9OQFoKICAgICAgICAg
P3NldERPTUV4Y2VwdGlvbkBXZWJDb3JlQEBZQVhQQVZFeGVjU3RhdGVASlNDQEBIQFoKICAgICAg
ICAgP3NldE1vY2tTY3JvbGxiYXJzRW5hYmxlZEBTZXR0aW5nc0BXZWJDb3JlQEBTQVhfTkBaCisg
ICAgICAgID9zZXRQYWdlU2NhbGVGYWN0b3JAUGFnZUBXZWJDb3JlQEBRQUVYTUFCVkludFBvaW50
QDJAQFoKICAgICAgICAgP3NldFBhZ2luYXRpb25AUGFnZUBXZWJDb3JlQEBRQUVYQUJVUGFnaW5h
dGlvbkAxMkBAWgogICAgICAgICA/c2V0UmVzb3VyY2VzRGF0YVNpemVMaW1pdHNGcm9tSW50ZXJu
YWxzQEluc3BlY3RvckNvbnRyb2xsZXJAV2ViQ29yZUBAUUFFWEhIQFoKICAgICAgICAgP3NldFNj
cm9sbGJhcnNTdXBwcmVzc2VkQFNjcm9sbFZpZXdAV2ViQ29yZUBAUUFFWF9OMEBaCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYgYi9Tb3VyY2UvV2ViS2l0
Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKaW5kZXggZTU3ZGNkYjg2ZjZkYTk4MGQ1MGM0ZTFiMGQ2
Yzg2NTlhNDQyYzUzYy4uZTRlNzMxZGZmYjY1MGZlNzY3NWFkNzAyM2I0NmZkNTU3ZmNhZWZlMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZgpAQCAtMTY1LDYgKzE2NSw3IEBAIEVY
UE9SVFMKICAgICAgICAgP3NldFNob3VsZExheW91dEZpeGVkRWxlbWVudHNSZWxhdGl2ZVRvRnJh
bWVARnJhbWVWaWV3QFdlYkNvcmVAQFFBRVhfTkBaCiAgICAgICAgID9zZXRET01FeGNlcHRpb25A
V2ViQ29yZUBAWUFYUEFWRXhlY1N0YXRlQEpTQ0BASEBaCiAgICAgICAgID9zZXRNb2NrU2Nyb2xs
YmFyc0VuYWJsZWRAU2V0dGluZ3NAV2ViQ29yZUBAU0FYX05AWgorICAgICAgICA/c2V0UGFnZVNj
YWxlRmFjdG9yQFBhZ2VAV2ViQ29yZUBAUUFFWE1BQlZJbnRQb2ludEAyQEBaCiAgICAgICAgID9z
ZXRQYWdpbmF0aW9uQFBhZ2VAV2ViQ29yZUBAUUFFWEFCVVBhZ2luYXRpb25AMTJAQFoKICAgICAg
ICAgP3NldFJlc291cmNlc0RhdGFTaXplTGltaXRzRnJvbUludGVybmFsc0BJbnNwZWN0b3JDb250
cm9sbGVyQFdlYkNvcmVAQFFBRVhISEBaCiAgICAgICAgID9zZXRTY3JvbGxiYXJzU3VwcHJlc3Nl
ZEBTY3JvbGxWaWV3QFdlYkNvcmVAQFFBRVhfTjBAWgpkaWZmIC0tZ2l0IGEvU291cmNlL2F1dG90
b29scy9zeW1ib2xzLmZpbHRlciBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKaW5k
ZXggNDBjYjc4YmI1M2ZlNDQ5NjIwNmJhMGYzYTE0OTk5OGI1ZjlkZDc3OC4uMjFjMzA3NmMxNGFl
M2NhYTE2MzMzZWQxNmVlZTdkMWM4ZjNmNGQxNCAxMDA2NDQKLS0tIGEvU291cmNlL2F1dG90b29s
cy9zeW1ib2xzLmZpbHRlcgorKysgYi9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCkBA
IC0yNiw2ICsyNiw3IEBAIF9aTjNXVEY3Q1N0cmluZ0MyRVBLY207CiBfWk4zV1RGN0NTdHJpbmdE
MUV2OwogX1pOM1dURjdDU3RyaW5nYVNFUktTMF87CiBfWk4yNER1bXBSZW5kZXJUcmVlU3VwcG9y
dEd0ayo7CitfWk43V2ViQ29yZTRQYWdlMThzZXRQYWdlU2NhbGVGYWN0b3JFZlJLTlNfOEludFBv
aW50RTsKIF9aTjdXZWJDb3JlNFBhZ2UxM3NldFBhZ2luYXRpb25FUktOUzBfMTBQYWdpbmF0aW9u
RTsKIF9aTjdXZWJDb3JlNHRvSlNFUE4zSlNDOUV4ZWNTdGF0ZUVQTlNfMTdKU0RPTUdsb2JhbE9i
amVjdEVQTlNfMTBDbGllbnRSZWN0RTsKIF9aTjdXZWJDb3JlNHRvSlNFUE4zSlNDOUV4ZWNTdGF0
ZUVQTlNfMTdKU0RPTUdsb2JhbE9iamVjdEVQTlNfNVJhbmdlRTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBiN2QyOGJiYTMw
MzY4MzhlYTU5YTQ1MzM0MmUwNzcxMDM2ZmEwMTY1Li5lNTY3MmMxYjFjOWJhYzA3MzRlMmM0M2Q1
ZDU5Mjg5NjFiNzk1NWVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMTEtMTItMDggIEZhZHkg
U2FtdWVsICA8ZnNhbXVlbEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBzY2FsZVBhZ2VC
eSBmcm9tIGV2ZW50U2VuZGVyIHRvIHdpbmRvdy5pbnRlcm5hbHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY0NTEyCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgU2ltb24gRnJhc2VyLgorCisgICAgICAgIFVwZGF0ZWQgbGF5b3V0IHRlc3RzIHRvIHVzZSB3
aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvci4KKworICAgICAgICAqIGNvbXBvc2l0
aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0
bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9z
aXRlZC1wYWdlLXNjYWxlLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4
ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWw6CisgICAg
ICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0
ZWQtcGFnZS1zY2FsZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVk
LXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sOgorICAg
ICAgICAqIGNvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21w
b3NpdGVkLXBhZ2Utc2NhbGUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9zY2FsaW5nL3Rp
bGVkLWxheWVyLXJlY3Vyc2lvbi5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL0VsZW1lbnQvc2Nh
bGUtcGFnZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL0Vs
ZW1lbnQvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9S
YW5nZS9zY2FsZS1wYWdlLWJvdW5kaW5nLWNsaWVudC1yZWN0Lmh0bWw6CisgICAgICAgICogZmFz
dC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbDoKKyAgICAgICAgKiBmYXN0
L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWJvZHkuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50
cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS1ib2R5Lmh0bWw6CisgICAgICAgICogZmFzdC9ldmVu
dHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtd2luZG93Lmh0bWw6CisgICAgICAgICogZmFzdC9l
dmVudHMvc2NhbGUtYW5kLXNjcm9sbC13aW5kb3cuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50
cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2staWZyYW1lLmpzOgorICAgICAg
ICAoaWZyYW1lTG9hZGVkKToKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFn
ZS1zY2FsZWQtbW91c2UtY2xpY2suanM6CisgICAgICAgICogZmFzdC9ldmVudHMvc2Nyb2xsLWlu
LXNjYWxlZC1wYWdlLXdpdGgtb3ZlcmZsb3ctaGlkZGVuLmh0bWw6CisgICAgICAgICogZmFzdC9l
dmVudHMvdG91Y2gvcGFnZS1zY2FsZWQtdG91Y2gtZ2VzdHVyZS1jbGljay5odG1sOgorICAgICAg
ICAqIGZhc3QvZnJhbWVzL2ZyYW1lLXNldC1yb3RhdGlvbi1oaXQuaHRtbDoKKyAgICAgICAgKiBm
YXN0L2ZyYW1lcy9mcmFtZS1zZXQtc2NhbGluZy1oaXQuaHRtbDoKKyAgICAgICAgKiBmYXN0L2Zy
YW1lcy9pZnJhbWUtZG91YmxlLXNjYWxlLWNvbnRlbnRzLmh0bWw6CisgICAgICAgICogZmFzdC9y
ZXBhaW50L2JhY2tncm91bmQtc2NhbGluZy5odG1sOgorICAgICAgICAqIGZhc3QvcmVwYWludC9z
Y2FsZS1wYWdlLXNocmluay5odG1sOgorICAgICAgICAqIGZhc3QvdHJhbnNmb3Jtcy9zZWxlY3Rp
b24tYm91bmRzLWluLXRyYW5zZm9ybWVkLXZpZXcuaHRtbDoKKwogMjAxMS0xMi0wNyAgWW9zaWZ1
bWkgSW5vdWUgIDx5b3NpbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgQ1NTIGNvbG9yIGdldHMg
YWRqdXN0ZWQgZm9yIGRpc2FibGVkIGlucHV0IGVsZW1lbnRzCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Ut
c2NhbGUtZG93bi5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQt
cG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbAppbmRleCBmODg2NjZjYTM0
NWQwZjlmMzIxNWExNmZiODcwZTg5NzNjNThhMTMxLi4zNzcxZjVlNzNlOGFjZjA2YmMwZWM3Y2Iy
MmY3MTZiOWMxYTJiZGY5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9t
ZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBvc2l0
ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKQEAgLTE4LDEyICsxOCwxMiBAQAogPC9zdHlsZT4KIDxz
Y3JpcHQ+CiAgIGZ1bmN0aW9uIHNjYWxlKCkgewotICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQor
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVu
YWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7Ci0gICAgaWYg
KHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgbGF5b3V0VGVzdENvbnRyb2xs
ZXIuZHVtcEFzVGV4dCh0cnVlKTsKLSAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDAuNSwg
MCwgMCk7CisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVu
dCwgMC41LCAwLCAwKTsKICAgICB9CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxl
cikKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CiAgIH0KIDwv
c2NyaXB0PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2Vv
bWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwgYi9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Ut
c2NhbGUuaHRtbAppbmRleCBhNzU1ZGRhNjA4Mzg2NDhjYjg4MWYzYTMzMDM1NmEzNzlkNjViODg4
Li4wYzU4NTQxYWZjMDcxMmM5OThkOGM0YzllMDlkOTA3Njk2OTA1M2JhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVk
LXBhZ2Utc2NhbGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9m
aXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbApAQCAtMTgsMTIgKzE4LDEy
IEBACiA8L3N0eWxlPgogPHNjcmlwdD4KICAgZnVuY3Rpb24gc2NhbGUoKSB7Ci0gICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGRvY3VtZW50
LCB0cnVlKTsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwotICAgICAgZXZlbnRTZW5kZXIu
c2NhbGVQYWdlQnkoMiwgMCwgMCk7CisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2Fs
ZUZhY3Rvcihkb2N1bWVudCwgMiwgMCwgMCk7CiAgICAgfQorICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpCisgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRy
dWUpOwogICB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Nv
bXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Ut
c2NhbGUtZG93bi5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQt
cG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKaW5kZXggYWRm
NjllNjYzZGE4ZjIzYjk4NTNiZTQwYjVlMThiMDZjN2FmZDAwYi4uM2M3MjVkYWUxNDFkNWEzYzU3
ZTVhNjQyNDFjNTY5MDFiNDA4ZmYwMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1k
b3duLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9z
aXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKQEAgLTE4LDEyICsx
OCwxMiBAQAogPC9zdHlsZT4KIDxzY3JpcHQ+CiAgIGZ1bmN0aW9uIHRlc3QoKSB7Ci0gICAgaWYg
KHdpbmRvdy5pbnRlcm5hbHMpCisgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKICAgICAgIHdp
bmRvdy5pbnRlcm5hbHMuc2V0RW5hYmxlQ29tcG9zaXRpbmdGb3JGaXhlZFBvc2l0aW9uKGRvY3Vt
ZW50LCB0cnVlKTsKLSAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7Ci0gICAg
ICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwotICAgICAgZXZlbnRTZW5k
ZXIuc2NhbGVQYWdlQnkoMC41LCAwLCAwKTsKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFn
ZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjUsIDAsIDApOwogICAgIH0KKyAgICBpZiAod2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFz
VGV4dCh0cnVlKTsKIAogICAgIHZhciBkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZyYW1l
JykuY29udGVudERvY3VtZW50Lm9wZW4oKTsKICAgICBkLndyaXRlKCI8ZGl2IHN0eWxlPSdwb3Np
dGlvbjpmaXhlZDsgei1pbmRleDogMTsgbGVmdDsgMTBweDsnPlRFU1Q8L2Rpdj4iKTsKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlm
cmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5n
L2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRt
bAppbmRleCAwODVmNjFlOWMwNGQyNTkzOTY0ODg0YzZlMjA5MzI0ODBkZGU0YTdiLi4xNmFiMDc1
MWNiZDAzMGYyNGVjY2FkMWY1NzYxMDFmMDg1NGQ2MzYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1w
YWdlLXNjYWxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4
ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCkBAIC0xOCwxMiAr
MTgsMTIgQEAKIDwvc3R5bGU+CiA8c2NyaXB0PgogICBmdW5jdGlvbiB0ZXN0KCkgewotICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1
bWVudCwgdHJ1ZSk7Ci0gICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAg
ICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKLSAgICAgIGV2ZW50U2Vu
ZGVyLnNjYWxlUGFnZUJ5KDIsIDAsIDApOworICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdl
U2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIsIDAsIDApOwogICAgIH0KKyAgICBpZiAod2luZG93Lmxh
eW91dFRlc3RDb250cm9sbGVyKQorICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4
dCh0cnVlKTsKIAogICAgIHZhciBkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ZyYW1lJyku
Y29udGVudERvY3VtZW50Lm9wZW4oKTsKICAgICBkLndyaXRlKCI8ZGl2IHN0eWxlPSdwb3NpdGlv
bjpmaXhlZDsgei1pbmRleDogMTsgbGVmdDsgMTBweDsnPlRFU1Q8L2Rpdj4iKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5z
Zm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9z
aXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1z
Y2FsZS1kb3duLmh0bWwKaW5kZXggYmU5ZDljYzMzM2ExYzg3ZTczMWVjNTQzMGQ0ODhjZjZkYzRk
ODEwNi4uNDVjZTAzNWYyOTIyOTQ2MGUzMzQyNzgwY2JmNGMxZmI1NmVjMjM2NiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNm
b3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFn
ZS1zY2FsZS1kb3duLmh0bWwKQEAgLTIwLDEyICsyMCwxMiBAQAogPC9zdHlsZT4KIDxzY3JpcHQ+
CiAgIGZ1bmN0aW9uIHNjYWxlKCkgewotICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNv
bXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7Ci0gICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCh0cnVlKTsKLSAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDAuNSwgMCwgMCk7
CisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMC41
LCAwLCAwKTsKICAgICB9CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CiAgIH0KIDwvc2NyaXB0
PgogPC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkv
Zml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sIGIvTGF5
b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNv
bXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sCmluZGV4IGY3ZmIzZGZhYmQzNzEyMWY4MzBmMzlmZmJj
MDU3ZjA5MDZmNmMwZWEuLmRmODY2N2IxYTI0ZDkzZWQyMzE5YzljNDk1YTE1OTc2Y2FkOGRhZGQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0
aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRl
ZC1wYWdlLXNjYWxlLmh0bWwKQEAgLTIwLDEyICsyMCwxMiBAQAogPC9zdHlsZT4KIDxzY3JpcHQ+
CiAgIGZ1bmN0aW9uIHNjYWxlKCkgewotICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIGlm
ICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldEVuYWJsZUNv
bXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7Ci0gICAgaWYgKHdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVt
cEFzVGV4dCh0cnVlKTsKLSAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDIsIDAsIDApOwor
ICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIsIDAs
IDApOwogICAgIH0KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgfQogPC9zY3JpcHQ+CiA8
L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9zY2FsaW5nL3RpbGVk
LWxheWVyLXJlY3Vyc2lvbi5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvc2NhbGluZy90
aWxlZC1sYXllci1yZWN1cnNpb24uaHRtbAppbmRleCBmOGIxODlmZDkwMTg0MjI1OGMxNTg5NmY4
MTdjNjNhZTNmZmE1YmMwLi4zOTlkMGUwZjA0NmViNGFhZjE4YTUzZjFlYTNlMTBjZDJlYmJiZjZl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9zY2FsaW5nL3RpbGVkLWxheWVy
LXJlY3Vyc2lvbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3NjYWxpbmcvdGls
ZWQtbGF5ZXItcmVjdXJzaW9uLmh0bWwKQEAgLTE2LDcgKzE2LDggQEAKIAogICAgIGZ1bmN0aW9u
IHNjYWxlUGFnZSgpCiAgICAgewotICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMS41MDAy
NSwgMCwgMCk7CisgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgd2luZG93Lmlu
dGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDEuNTAwMjUsIDAsIDApOwogICAg
IH0KICAgCiAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBzY2FsZVBhZ2UsIGZh
bHNlKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFn
ZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVu
dC9zY2FsZS1wYWdlLWJvdW5kaW5nLWNsaWVudC1yZWN0Lmh0bWwKaW5kZXggZTQ5NjZkMzI4YzY2
NDdiZTE2Mjk4YjQwNjA3OGI0OTNmZDMxNmZhMS4uNjAyMjg5YjMzNTEyOTE1YWViOWRlNjUyZmVl
NzU4MjlkMDk5Y2E3MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9z
Y2FsZS1wYWdlLWJvdW5kaW5nLWNsaWVudC1yZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9kb20vRWxlbWVudC9zY2FsZS1wYWdlLWJvdW5kaW5nLWNsaWVudC1yZWN0Lmh0bWwKQEAgLTMs
MTMgKzMsMTMgQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiB0ZXN0UmVjdHMoKQogewotICAgIGlmICgh
d2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGlmICghd2luZG93LmxheW91dFRlc3RD
b250cm9sbGVyIHx8ICF3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICByZXR1cm47CiAgICAgbGF5
b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgIAogICAgIHZhciBkaXYgPSBkb2N1
bWVudC5nZXRFbGVtZW50QnlJZCgiZGl2Iik7CiAgICAgdmFyIHJlY3QgPSBkaXYuZ2V0Qm91bmRp
bmdDbGllbnRSZWN0KCk7Ci0gICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMiwwLDApOworICAg
IHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAwKTsK
ICAgICB2YXIgc2NhbGVkUmVjdCA9IGRpdi5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKIAogICAg
IHZhciByZXN1bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iik7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbGVtZW50L3NjYWxlLXBhZ2UtY2xpZW50LXJlY3Rz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbGVtZW50L3NjYWxlLXBhZ2UtY2xpZW50LXJl
Y3RzLmh0bWwKaW5kZXggNzRkMDI4YThjOTA2ZTNlMTQ0NWY2ODI3MzA5OTkyYWRhODY4Nzc3Zi4u
OGZhMmEzMTEwNWFhNzY4OGJjMzU4ZTliNTM4ZDEwMzQ4YzdlOGFmMyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMu
aHRtbApAQCAtMywxMyArMywxMyBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHRlc3RSZWN0cygpCiB7
Ci0gICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgaWYgKCF3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIgfHwgIXdpbmRvdy5pbnRlcm5hbHMpCiAgICAgICAgIHJldHVy
bjsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAgICAgCiAgICAgdmFy
IGRpdiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJkaXYiKTsKICAgICB2YXIgcmVjdExpc3Qg
PSBkaXYuZ2V0Q2xpZW50UmVjdHMoKTsKLSAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgyLDAs
MCk7CisgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIs
IDAsIDApOwogICAgIHZhciBzY2FsZWRSZWN0TGlzdCA9IGRpdi5nZXRDbGllbnRSZWN0cygpOwog
CiAgICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJyZXN1bHQiKTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL3NjYWxlLXBhZ2UtYm91bmRpbmct
Y2xpZW50LXJlY3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL3NjYWxlLXBhZ2Ut
Ym91bmRpbmctY2xpZW50LXJlY3QuaHRtbAppbmRleCA5YTNlMjEwNzljYWY3ZmE5ZjA3NDE5Y2M2
MDIyMzFhZjQ0ZmYzZWUzLi5mMTJjMGZkNzgzMTgzYmM1OGJiODRiMDhkNmMwODc5MjBhNWU2OWU4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWJvdW5k
aW5nLWNsaWVudC1yZWN0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2Uvc2Nh
bGUtcGFnZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1sCkBAIC0zLDcgKzMsNyBAQAogPHNjcmlw
dD4KIGZ1bmN0aW9uIHRlc3RSZWN0cygpCiB7Ci0gICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgfHwgIXdpbmRv
dy5pbnRlcm5hbHMpCiAgICAgICAgIHJldHVybjsKICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5k
dW1wQXNUZXh0KCk7CiAKQEAgLTExLDcgKzExLDcgQEAgZnVuY3Rpb24gdGVzdFJlY3RzKCkKICAg
ICByYW5nZS5zZWxlY3ROb2RlQ29udGVudHMoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Rpdicp
KTsKICAgICB2YXIgcmVjdCA9IHJhbmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwogICAgCi0g
ICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMiwwLDApOworICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAwKTsKICAgICB2YXIgc2NhbGVkUmFu
Z2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOwogICAgIHNjYWxlZFJhbmdlLnNlbGVjdE5vZGVD
b250ZW50cyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGl2JykpOwogICAgIHZhciBzY2FsZWRS
ZWN0ID0gc2NhbGVkUmFuZ2UuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbApp
bmRleCA1Y2YyYmQzMDUwODFmNWFmMzM5NjI1YzMyY2Q1MjcxOTZmMDEyZGEyLi4zZWYzNjc5NTU2
MzIyM2E4Yjc0M2RiMjBkZjgwNDAxMWQ4ZmQwODEzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9m
YXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1JhbmdlL3NjYWxlLXBhZ2UtY2xpZW50LXJlY3RzLmh0bWwKQEAgLTMsNyAr
Myw3IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gdGVzdFJlY3RzKCkKIHsKLSAgICBpZiAoIXdpbmRv
dy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlciB8fCAgIXdpbmRvdy5pbnRlcm5hbHMpCiAgICAgICAgIHJldHVybjsKICAgICBsYXlvdXRU
ZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CiAKQEAgLTEyLDcgKzEyLDcgQEAgZnVuY3Rpb24g
dGVzdFJlY3RzKCkKICAgICB2YXIgcmVjdExpc3QgPSByYW5nZS5nZXRDbGllbnRSZWN0cygpOwog
ICAgIHZhciByZWN0ID0gcmVjdExpc3RbMF07CiAgICAKLSAgICBldmVudFNlbmRlci5zY2FsZVBh
Z2VCeSgyLDAsMCk7CisgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9j
dW1lbnQsIDIsIDAsIDApOwogICAgIHZhciBzY2FsZWRSYW5nZSA9IGRvY3VtZW50LmNyZWF0ZVJh
bmdlKCk7CiAgICAgc2NhbGVkUmFuZ2Uuc2VsZWN0Tm9kZUNvbnRlbnRzKGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdkaXYnKSk7CiAgICAgdmFyIHNjYWxlZFJlY3RMaXN0ID0gc2NhbGVkUmFuZ2Uu
Z2V0Q2xpZW50UmVjdHMoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Nj
YWxlLWFuZC1zY3JvbGwtYm9keS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUt
YW5kLXNjcm9sbC1ib2R5Lmh0bWwKaW5kZXggN2E4N2VmNGU1MDk1OWYyZDQxNWMzOTk5MDgyY2Vk
NjQ3MmQ1NGQwNS4uYTU3MGQ3OTMzZjYwYWU2OGNjN2Y5Y2EwZmQwZDUzOGM3M2E5ZWNhMyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1ib2R5Lmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1ib2R5Lmh0
bWwKQEAgLTEwLDcgKzEwLDcgQEAKICAgICAgIHdpbmRvdy5lbmFibGVQaXhlbFRlc3RpbmcgPSB0
cnVlOwogCiAgICAgICBmdW5jdGlvbiBzY3JvbGwoKSB7Ci0gICAgICAgICAgLy8gVGhlIHBhZ2Ug
c2NhbGUsIGFzIHNldCBieSBFdmVudFNlbmRlci5zY2FsZVBhZ2VCeSBzaG91bGQgbm90IGJlIGFw
cGFyZW50CisgICAgICAgICAgLy8gVGhlIHBhZ2Ugc2NhbGUsIGFzIHNldCBieSB3aW5kb3cuaW50
ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3RvciBzaG91bGQgbm90IGJlIGFwcGFyZW50CiAgICAgICAg
ICAgLy8gdG8gamF2YXNjcmlwdC4gU28sIHdlIGV4cGVjdCBzY3JvbGxpbmcgdG8gKDEwMCwxMDAp
IHRvIGJlIHBhZ2UgY29vcmRpbmF0ZXMsIHJhdGhlcgogICAgICAgICAgIC8vIHRoYW4gZGV2aWNl
IHBpeGVscy4KICAgICAgICAgICBkb2N1bWVudC5ib2R5LnNjcm9sbExlZnQgPSAxMDA7CkBAIC0y
NSw4ICsyNSw4IEBACiAgICAgICBmdW5jdGlvbiBzY2FsZVdpdGhFdmVudFNlbmRlcigpIHsKICAg
ICAgICAgICB2YXIgc2NhbGVGYWN0b3IgPSAyLjA7CiAgICAgICAgICAgdmFyIHNjYWxlT2Zmc2V0
ID0gMDsKLSAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgICAgICAg
ZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9m
ZnNldCk7CisgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgc2NhbGVGYWN0b3Is
IHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CiAgICAgICAgICAgfQogICAgICAgfQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS1i
b2R5Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFt
ZS1ib2R5Lmh0bWwKaW5kZXggMGE1MThjN2E1ZjM3NTZmNmZhN2ZhNzBiYWYzNzg0MmJkZDg5ZTlh
NC4uODE5NWI5OWZjYWVlZmI4YWZlYTZhMmZmYmIyNjJhYWY3ZmMyYTI4OCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtYm9keS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtaWZyYW1lLWJv
ZHkuaHRtbApAQCAtMjQsOCArMjQsOCBAQAogICAgICAgICBmdW5jdGlvbiBzY2FsZVdpdGhFdmVu
dFNlbmRlcigpIHsKICAgICAgICAgICAgIHZhciBzY2FsZUZhY3RvciA9IDAuNTsKICAgICAgICAg
ICAgIHZhciBzY2FsZU9mZnNldCA9IDA7Ci0gICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2Vu
ZGVyKSB7Ci0gICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KHNjYWxlRmFj
dG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQpOworICAgICAgICAgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpIHsKKyAgICAgICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2Nh
bGVGYWN0b3IoZG9jdW1lbnQsIHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQp
OwogICAgICAgICAgICAgfQogICAgICAgICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtaWZyYW1lLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtd2luZG93Lmh0bWwKaW5kZXgg
NDFjZWFjN2FkNjMyZjI5YmRhMmFlOTM3ZTdiM2EyMmM1MjM3YWFkMS4uNzc5MzU4MTJhMTY1MDEy
ZjgyNTU2NjJjOWRlZjBjNjI3YjIwNjcyNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtd2luZG93Lmh0bWwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtd2luZG93Lmh0bWwKQEAgLTIz
LDggKzIzLDggQEAKICAgICAgICAgZnVuY3Rpb24gc2NhbGVXaXRoRXZlbnRTZW5kZXIoKSB7CiAg
ICAgICAgICAgICB2YXIgc2NhbGVGYWN0b3IgPSAwLjU7CiAgICAgICAgICAgICB2YXIgc2NhbGVP
ZmZzZXQgPSAwOwotICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAg
ICAgICAgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeShzY2FsZUZhY3Rvciwgc2NhbGVPZmZz
ZXQsIHNjYWxlT2Zmc2V0KTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Cisg
ICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3Vt
ZW50LCBzY2FsZUZhY3Rvciwgc2NhbGVPZmZzZXQsIHNjYWxlT2Zmc2V0KTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2Fs
ZS1hbmQtc2Nyb2xsLXdpbmRvdy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUt
YW5kLXNjcm9sbC13aW5kb3cuaHRtbAppbmRleCBjNTU1MTE1MjUzNDI5ZTFiNGMwODYxNjMwYTA5
MmM5MTgyNDQyZTBjLi41YzM1ZTY1Y2NhMThlYTQyNzIyNDA4ZDQyNDIxMDJhYTA1NWM1NmIxIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLXdpbmRv
dy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtd2lu
ZG93Lmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAKICAgICAgIHdpbmRvdy5lbmFibGVQaXhlbFRlc3Rp
bmcgPSB0cnVlOwogCiAgICAgICBmdW5jdGlvbiBzY3JvbGwoKSB7Ci0gICAgICAgICAgLy8gVGhl
IHBhZ2Ugc2NhbGUsIGFzIHNldCBieSBFdmVudFNlbmRlci5zY2FsZVBhZ2VCeSBzaG91bGQgbm90
IGJlIGFwcGFyZW50CisgICAgICAgICAgLy8gVGhlIHBhZ2Ugc2NhbGUsIGFzIHNldCBieSB3aW5k
b3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3RvciBzaG91bGQgbm90IGJlIGFwcGFyZW50CiAg
ICAgICAgICAgLy8gdG8gamF2YXNjcmlwdC4gU28sIHdlIGV4cGVjdCBzY3JvbGxpbmcgdG8gKDEw
MCwxMDApIHRvIGJlIHBhZ2UgY29vcmRpbmF0ZXMsIHJhdGhlcgogICAgICAgICAgIC8vIHRoYW4g
ZGV2aWNlIHBpeGVscy4KICAgICAgICAgICB3aW5kb3cuc2Nyb2xsVG8oMTAwLDEwMCk7CkBAIC0y
NCw4ICsyNCw4IEBACiAgICAgICBmdW5jdGlvbiBzY2FsZVdpdGhFdmVudFNlbmRlcigpIHsKICAg
ICAgICAgICB2YXIgc2NhbGVGYWN0b3IgPSAyLjA7CiAgICAgICAgICAgdmFyIHNjYWxlT2Zmc2V0
ID0gMDsKLSAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0gICAgICAgICAgICAg
ZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9m
ZnNldCk7CisgICAgICAgICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICAgICAgICAgICB3
aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgc2NhbGVGYWN0b3Is
IHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CiAgICAgICAgICAgfQogICAgICAgfQogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQt
bW91c2UtY2xpY2staWZyYW1lLmpzIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NyaXB0LXRl
c3RzL3BhZ2Utc2NhbGVkLW1vdXNlLWNsaWNrLWlmcmFtZS5qcwppbmRleCBiZDk2M2U4ZTAwYThi
MGRlMDcxY2Q5YTQ4ZGI1YjBhNjBjMzUyYjBkLi4zOTdmOGRlMzdjODczNzVjYjk0NDQ2ZjUwMjRl
NWRiNzk0ZWE2MTIyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQt
dGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2staWZyYW1lLmpzCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGljay1pZnJhbWUu
anMKQEAgLTUyLDcgKzUyLDcgQEAgZnVuY3Rpb24gaWZyYW1lTG9hZGVkKCkgewogICBkaXYuYWRk
RXZlbnRMaXN0ZW5lcigiY2xpY2siLCBhcHBlbmRFdmVudExvZywgZmFsc2UpOwogICBpZnJhbWUu
Y29udGVudFdpbmRvdy5kb2N1bWVudC5ib2R5Lmluc2VydEJlZm9yZShkaXYsIGlmcmFtZS5jb250
ZW50V2luZG93LmRvY3VtZW50LmJvZHkuZmlyc3RDaGlsZCk7CiAKLSAgaWYgKHdpbmRvdy5ldmVu
dFNlbmRlcikgeworICBpZiAod2luZG93LmV2ZW50U2VuZGVyICYmIHdpbmRvdy5pbnRlcm5hbHMp
IHsKICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxMCwgMTApOwogICAgIC8vIFdlIGFyZSBj
bGlja2luZyBpbiB0aGUgc2FtZSBwb3NpdGlvbiBvbiBzY3JlZW4uIEFzIHdlIHNjYWxlIG9yIHRy
YW5zZm9ybSB0aGUgcGFnZSwKICAgICAvLyB3ZSBleHBlY3QgdGhlIHBhZ2VYIGFuZCBwYWdlWSBl
dmVudCBjb29yZGluYXRlcyB0byBjaGFuZ2UgYmVjYXVzZSBkaWZmZXJlbnQKQEAgLTYwLDE1ICs2
MCwxNSBAQCBmdW5jdGlvbiBpZnJhbWVMb2FkZWQoKSB7CiAKICAgICB0ZXN0RXZlbnRzKDAsICJV
bnNjYWxlZCIsICJjbGljaygxMCwgMTApIik7CiAKLSAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VC
eSgwLjUsIDAsIDApOworICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRv
Y3VtZW50LCAwLjUsIDAsIDApOwogICAgIHRlc3RFdmVudHMoMCwgInNldFBhZ2VTY2FsZSgwLjUp
IiwgImNsaWNrKDIwLCAyMCkiKTsKIAotICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDEuMCwg
MCwgMCk7CisgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQs
IDEuMCwgMCwgMCk7CiAgICAgaHRtbC5zdHlsZVsiLXdlYmtpdC10cmFuc2Zvcm0iXSA9ICJzY2Fs
ZSgwLjUsIDIuMCkiOwogICAgIGh0bWwuc3R5bGVbIi13ZWJraXQtdHJhbnNmb3JtLW9yaWdpbiJd
ID0gIjAgMCI7CiAgICAgdGVzdEV2ZW50cygwLCAiQ1NTIHNjYWxlKDAuNSwgMi4wKSIsICJjbGlj
aygyMCwgNSkiKTsKIAotICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDAuNSwgMCwgMCk7Cisg
ICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwgMCwg
MCk7CiAgICAgdGVzdEV2ZW50cygwLCAic2V0UGFnZVNjYWxlKDAuNSksIENTUyBzY2FsZSgwLjUs
IDIuMCkiLCAiY2xpY2soNDAsIDEwKSIpOwogICB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGljay5qcyBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGlj
ay5qcwppbmRleCA5Nzg3Zjk1MjQ0YmZjZjQzNDE2MGUzOWMxNDJmYmUwMTk1OTM5MzFjLi40NGU2
ODNjYzY0ZWU5YmY3YmY5NTVhNmNmMGY3MDY4MDlkNmY1OGMzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2suanMK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL3BhZ2Utc2NhbGVkLW1v
dXNlLWNsaWNrLmpzCkBAIC00MywxMyArNDMsMTMgQEAgZnVuY3Rpb24gdGVzdEV2ZW50cyhidXR0
b24sIGRlc2NyaXB0aW9uLCBleHBlY3RlZFN0cmluZykgewogICAgIGNsZWFyRXZlbnRMb2coKTsK
IH0KIAotaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworaWYgKHdpbmRvdy5ldmVudFNlbmRlciAm
JiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTAsIDEw
KTsKICAgICAvLyBXZSBhcmUgY2xpY2tpbmcgaW4gdGhlIHNhbWUgcG9zaXRpb24gb24gc2NyZWVu
LiBBcyB3ZSBzY2FsZSBvciB0cmFuc2Zvcm0gdGhlIHBhZ2UsCiAgICAgLy8gd2UgZXhwZWN0IHRo
ZSBwYWdlWCBhbmQgcGFnZVkgZXZlbnQgY29vcmRpbmF0ZXMgdG8gY2hhbmdlIGJlY2F1c2UgZGlm
ZmVyZW50CiAgICAgLy8gcGFydHMgb2YgdGhlIGRvY3VtZW50IGFyZSB1bmRlciB0aGUgbW91c2Uu
CiAgICAgdGVzdEV2ZW50cygwLCAiVW5zY2FsZWQiLCAiY2xpY2soMTAsIDEwKSIpOwogCi0gICAg
ZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMC41LCAwLCAwKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMC41LCAwLCAwKTsKICAgICB0ZXN0RXZlbnRz
KDAsICJzZXRQYWdlU2NhbGUoMC41KSIsICJjbGljaygyMCwgMjApIik7CiB9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGwtaW4tc2NhbGVkLXBhZ2Utd2l0aC1vdmVy
Zmxvdy1oaWRkZW4uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbC1pbi1zY2Fs
ZWQtcGFnZS13aXRoLW92ZXJmbG93LWhpZGRlbi5odG1sCmluZGV4IDAzMGFjMTZkZWM3MGVkZDJi
YzY2NDgzYmQ1NTNhODIzY2MyZWMzZGMuLmZmNmQyYzk5MDlmNjkyY2Y0ZTk4NWFlNjk2ZDIzZmNm
YmViMjkwNmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3Njcm9sbC1pbi1z
Y2FsZWQtcGFnZS13aXRoLW92ZXJmbG93LWhpZGRlbi5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3Njcm9sbC1pbi1zY2FsZWQtcGFnZS13aXRoLW92ZXJmbG93LWhpZGRlbi5odG1s
CkBAIC0yMiw4ICsyMiw4IEBACiAgICAgICAgIC8vIEZvcmNlIGEgbGF5b3V0LgogICAgICAgICBk
b2N1bWVudC5ib2R5Lm9mZnNldExlZnQ7CiAKLSAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRl
cikKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDIsIDAsIDApOworICAgICAg
ICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0
UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAwKTsKIAogICAgICAgICBzaG91bGRCZSgi
d2luZG93LmRvY3VtZW50LmJvZHkuc2Nyb2xsVG9wIiwgIjAiKTsKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvcGFnZS1zY2FsZWQtdG91Y2gtZ2VzdHVyZS1jbGlj
ay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvcGFnZS1zY2FsZWQtdG91Y2gt
Z2VzdHVyZS1jbGljay5odG1sCmluZGV4IDI4Yjk4YmJiMzM0MzExZTU5MDcxOGU2ZTBlYTMzMGVh
ZjQ1NmRmMjAuLjBkYjk1NWIwMDk5OWViN2I5YWVlODJhYWZjMTY3ODEwYTQ3ZmQ4NDMgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3BhZ2Utc2NhbGVkLXRvdWNoLWdl
c3R1cmUtY2xpY2suaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9wYWdl
LXNjYWxlZC10b3VjaC1nZXN0dXJlLWNsaWNrLmh0bWwKQEAgLTgzLDggKzgzLDggQEAgZnVuY3Rp
b24gZW5kVGVzdCgpCiB9CiAKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgaWYgKHdpbmRvdy5l
dmVudFNlbmRlcikgewotICAgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgwLjUsIDAsIDAp
OworICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMu
c2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjUsIDAsIDApOwogICAgIH0KIAogICAgIHZh
ciBkaXYgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndG91Y2h0YXJnZXQnKTsKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1yb3RhdGlvbi1oaXQuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1yb3RhdGlvbi1oaXQuaHRtbAppbmRl
eCBiMTk3NzRkM2VjMzRiZDE4NjE0YTlhZGU3ZjE4NzJhOGMxMzI5YTIyLi5jYzJjMjE0YWQyMjYx
NzdmOWE5NmQ1MmVjOTQxYTYzZDQ4MzZlMTYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0
L2ZyYW1lcy9mcmFtZS1zZXQtcm90YXRpb24taGl0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9mcmFtZXMvZnJhbWUtc2V0LXJvdGF0aW9uLWhpdC5odG1sCkBAIC00LDEwICs0LDEwIEBACiAK
ICAgICA8c2NyaXB0PgogICAgICAgICBmdW5jdGlvbiBpbml0KCkgewotICAgICAgICAgICAgaWYg
KCF3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRl
ciB8fCAhd2luZG93LmludGVybmFscykKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICAvLyBTY2FsZSB0aGUgcGFnZSBhbmQgcmVzaXplIHRoZSBmcmFtZXMgdG8gdmVyaWZ5IGhp
dCB0ZXN0aW5nIG9uIHRoZSBmcmFtZXNldAotICAgICAgICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQ
YWdlQnkoMC41LCAwLCAwKTsKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNj
YWxlRmFjdG9yKGRvY3VtZW50LCAwLjUsIDAsIDApOwogICAgICAgICAgICAgdmFyIGxlZnRQYW5l
bFdpZHRoID0gd2luZG93LmlubmVyV2lkdGggLyA4OwogICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8od2luZG93LmlubmVyV2lkdGggLyA0LCBsZWZ0UGFuZWxXaWR0aCk7CiAgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1zY2FsaW5nLWhpdC5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9mcmFtZXMvZnJhbWUtc2V0LXNjYWxpbmctaGl0Lmh0bWwKaW5kZXggMzNiY2VhYjgzNGY4YWU4
Mzk5ZTAyZTdhN2Y0YjljYzgzNzI4NDg3My4uYjIyMTFiNmI4YjlmZjZkOWExYTMwZjNkZmQ2YTkz
NjE1M2QzNzEwMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUtc2V0
LXNjYWxpbmctaGl0Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUtc2V0
LXNjYWxpbmctaGl0Lmh0bWwKQEAgLTQsMTEgKzQsMTEgQEAKIAogICAgIDxzY3JpcHQ+CiAgICAg
ICAgIGZ1bmN0aW9uIGluaXQoKSB7Ci0gICAgICAgICAgICBpZiAoIXdpbmRvdy5ldmVudFNlbmRl
cikKKyAgICAgICAgICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyIHx8ICF3aW5kb3cuaW50ZXJu
YWxzKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIC8vIFNjYWxlIHRoZSBw
YWdlIGFuZCByZXNpemUgdGhlIGZyYW1lcyB0byB2ZXJpZnkgaGl0IHRlc3Rpbmcgb24gdGhlIGZy
YW1lc2V0CiAgICAgICAgICAgICB2YXIgbGVmdFBhbmVsV2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0
aCAvIDg7Ci0gICAgICAgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgwLjUsIDAsIDApOwor
ICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQs
IDAuNSwgMCwgMCk7CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhsZWZ0UGFu
ZWxXaWR0aCwgd2luZG93LmlubmVySGVpZ2h0IC8gNCk7CiAgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZURvd24oKTsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIgKiBs
ZWZ0UGFuZWxXaWR0aCwgd2luZG93LmlubmVySGVpZ2h0IC8gNCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZG91YmxlLXNjYWxlLWNvbnRlbnRzLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZG91YmxlLXNjYWxlLWNvbnRlbnRzLmh0bWwK
aW5kZXggOTE1YzBiNWZmMGZmNGNkOTRjYmNiZWQ3ODU1OGFlMGUzNmNkMWQ4Yy4uZDNhZjVmNjk3
YjA3NjBmNTdkNWYyMDc1YTEwNGQyMDQxNjc1ZmIwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9mcmFtZXMvaWZyYW1lLWRvdWJsZS1zY2FsZS1jb250ZW50cy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZnJhbWVzL2lmcmFtZS1kb3VibGUtc2NhbGUtY29udGVudHMuaHRtbApAQCAt
MjIsOCArMjIsOCBAQAogCiAgICAgICBmdW5jdGlvbiBzY2FsZVBhZ2Uoc2NhbGVGYWN0b3IpIHsK
ICAgICAgICAgICB2YXIgc2NhbGVPZmZzZXQgPSAwOwotICAgICAgICAgIGlmICh3aW5kb3cuZXZl
bnRTZW5kZXIpIHsKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KHNjYWxlRmFj
dG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQpOworICAgICAgICAgIGlmICh3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rv
cihkb2N1bWVudCwgc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CiAgICAg
ICAgICAgfQogICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQv
YmFja2dyb3VuZC1zY2FsaW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvYmFja2dy
b3VuZC1zY2FsaW5nLmh0bWwKaW5kZXggYWU1NTNhMTQxZDllNjlhNzUzY2I4M2ZiMGM1NzYyNjFl
NjlhNDFmMy4uZThjZmYwZDE2NTZiNTViZTg2ODQ0NjI1MDU1NzEzMzk3MTM4N2EzZCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2NhbGluZy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9iYWNrZ3JvdW5kLXNjYWxpbmcuaHRtbApAQCAt
NCw4ICs0LDggQEAKIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4gCiAgICAgZnVuY3Rp
b24gcmVwYWludFRlc3QoKQogICAgIHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDAuMiwwLDApOwor
ICAgICAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5h
bHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjI1LCAwLCAwKTsKICAgICB9CiA8L3Nj
cmlwdD4gCiA8L2hlYWQ+IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3Nj
YWxlLXBhZ2Utc2hyaW5rLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2NhbGUtcGFn
ZS1zaHJpbmsuaHRtbAppbmRleCBjMWNhNTc2ZjM1YjQzZDY4OTk2NTVhZGM2NGRkZjhlOWFlNjU4
OTY5Li45MmYzZTNkNWY2ZjY2ZTFjOTllMTk3YmZlN2UxNGZhYTAyZjBkMDQwIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2NhbGUtcGFnZS1zaHJpbmsuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3JlcGFpbnQvc2NhbGUtcGFnZS1zaHJpbmsuaHRtbApAQCAtNCw4ICs0
LDggQEAKIDxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KICAgICBmdW5jdGlvbiByZXBh
aW50VGVzdCgpCiAgICAgewotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQotICAgICAgICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMC4yLDAsMCk7CisgICAgICAg
IGlmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQ
YWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuMjUsIDAsIDApOwogICAgIH0KIDwvc2NyaXB0Pgog
PC9oZWFkPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90cmFuc2Zvcm1zL3NlbGVjdGlv
bi1ib3VuZHMtaW4tdHJhbnNmb3JtZWQtdmlldy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90cmFu
c2Zvcm1zL3NlbGVjdGlvbi1ib3VuZHMtaW4tdHJhbnNmb3JtZWQtdmlldy5odG1sCmluZGV4IGEx
MGE0ZDFkZTFkYjI2MTFkNjE3YTA1ZmU0YWU1YzUxYzdmMzUwZDEuLjEwZTI2YmI4OTE3MmRiZmIw
NzcwNzBiNmRiMDFkMDAwZTI5ODIwNzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvdHJh
bnNmb3Jtcy9zZWxlY3Rpb24tYm91bmRzLWluLXRyYW5zZm9ybWVkLXZpZXcuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L3RyYW5zZm9ybXMvc2VsZWN0aW9uLWJvdW5kcy1pbi10cmFuc2Zvcm1l
ZC12aWV3Lmh0bWwKQEAgLTQsMTAgKzQsOSBAQAogICAgIDxkaXYgc3R5bGU9ImhlaWdodDogMTAw
cHg7Ij50YXJnZXQ8L2Rpdj4KICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDEwMDBweDsiPjwvZGl2
PgogICAgIDxzY3JpcHQ+Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIp
IHsKKyAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciAmJiB3aW5kb3cuaW50
ZXJuYWxzKSB7CiAgICAgICAgICAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7
Ci0KLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDIsIDAsIDApOworICAgICAg
ICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDIsIDAs
IDApOwogICAgICAgICB9CiAKICAgICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoIkZpbmRTdHJp
bmciLCBmYWxzZSwgInRhcmdldCIpOwpkaWZmIC0tZ2l0IGEvQ2hhbmdlTG9nIGIvQ2hhbmdlTG9n
CmluZGV4IGNlNTBiN2ZiMDdiMTEyOTQ5MzI5YWExZmIxMGNlYWUzMjNhMzRhN2IuLjczMmYwYTM3
MWM1MmZmMTUwMmQzMzcwOTAzODdjMzZlODFjODgzOTUgMTAwNjQ0Ci0tLSBhL0NoYW5nZUxvZwor
KysgYi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAxMS0xMi0wOCAgRmFkeSBTYW11ZWwg
IDxmc2FtdWVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIHNjYWxlUGFnZUJ5IGZyb20g
ZXZlbnRTZW5kZXIgdG8gd2luZG93LmludGVybmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1MTIKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1v
biBGcmFzZXIuCisKKyAgICAgICAgKiBTb3VyY2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyOgor
CiAyMDExLTEyLTA2ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIEFkZCBUb29scy9Ub29sLnhjb2RlcHJvaiwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>121282</attachid>
            <date>2012-01-05 08:27:20 -0800</date>
            <delta_ts>2012-01-05 10:17:03 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-64512-20120105112719.patch</filename>
            <type>text/plain</type>
            <size>33804</size>
            <attacher name="Fady Samuel">fsamuel</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTA0MTY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjM2ZTc3NjYyZTI3ZTA4
ZTAyMmVkYWU2YmU4NjI1NTZjZWM5ZTM1NS4uMzY2ODc3MDE4MTk1MzM4Mjk4YTA1ZmE2YjE0Njcw
Yzg2NmNmOTJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDEyLTAxLTA1ICBGYWR5
IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgc2NhbGVQYWdl
QnkgZnJvbSBldmVudFNlbmRlciB0byB3aW5kb3cuaW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDUxMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBBZGRlZCBzZXRQYWdlU2NhbGVGYWN0b3IgdG8g
d2luZG93LmludGVybmFscy4KKyAgICAgICAgUmVuYW1lZCB3aW5kb3cuaW50ZXJuYWxzLmdldFBh
Z2VTY2FsZUZhY3RvciB0byB3aW5kb3cuaW50ZXJuYWxzLnBhZ2VTY2FsZUZhY3RvcgorICAgICAg
ICB0byBtYXRjaCB0aGUgd2Via2l0IHN0eWxlLgorCisgICAgICAgICogdGVzdGluZy9JbnRlcm5h
bHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpwYWdlU2NhbGVGYWN0b3IpOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpzZXRQYWdlU2NhbGVGYWN0b3IpOgorICAgICAg
ICAqIHRlc3RpbmcvSW50ZXJuYWxzLmg6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRs
OgorCiAyMDEyLTAxLTA1ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIERPTSBBdHRyaWJ1dGUgdGVzdHMgb24gRHJvbWFlbyBzcGVuZHMgMi43JSBvZiB0aW1lIGlu
IGhhc1NlbGVjdG9yRm9yQXR0cmlidXRlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNjJkNjRiMjEyOThlMzFmYmVk
NzRlMGYzY2NkNzU5ZjM0MGFjOWVlNy4uY2M5MjgwYzUyZDk3NmFjMTlkNGUwN2QzZGFkMjhkOGNl
MzFmMDg3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEyLTAxLTA1ICBGYWR5IFNh
bXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgorCisgICAgICAgIE1vdmUgc2NhbGVQYWdlQnkg
ZnJvbSBldmVudFNlbmRlciB0byB3aW5kb3cuaW50ZXJuYWxzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NDUxMgorCisgICAgICAgIFJldmlld2VkIGJ5
IFNpbW9uIEZyYXNlci4KKworICAgICAgICAqIHdpbi9XZWJLaXQyLmRlZjoKKyAgICAgICAgKiB3
aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKIDIwMTItMDEtMDUgIEtlbm5ldGggUm9oZGUgQ2hyaXN0
aWFuc2VuICA8a2VubmV0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF0gSW1wbGVtZW50IFFR
dWlja1dlYlZpZXc6OmlucHV0TWV0aG9kUXVlcnkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAppbmRleCAxOTVmNTcwZWZmMThhNTNmZWRlYTdkZWZjMGE0ZmQ2ODlkOTg5NDNlLi43ODNj
MzgwNTY5M2FlYzYzZDRkOTg1YmQ3OGMzODRmZDQ0ODRjNGVjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9JbnRlcm5hbHMuY3BwCkBAIC0zNjQsMTYgKzM2NCw2IEBAIHZvaWQgSW50ZXJuYWxzOjpzZXRa
b29tQW5pbWF0b3JUcmFuc2Zvcm0oRG9jdW1lbnQgKmRvY3VtZW50LCBmbG9hdCBzY2FsZSwgZmxv
YXQKICNlbmRpZgogfQogCi1mbG9hdCBJbnRlcm5hbHM6OmdldFBhZ2VTY2FsZUZhY3RvcihEb2N1
bWVudCAqZG9jdW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQotewotICAgIGlmICghZG9jdW1lbnQg
fHwgIWRvY3VtZW50LT5wYWdlKCkpIHsKLSAgICAgICAgZWMgPSBJTlZBTElEX0FDQ0VTU19FUlI7
Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KLQotICAgIHJldHVybiBkb2N1bWVudC0+cGFnZSgp
LT5wYWdlU2NhbGVGYWN0b3IoKTsKLX0KLQogdm9pZCBJbnRlcm5hbHM6OnNldFpvb21QYXJhbWV0
ZXJzKERvY3VtZW50KiBkb2N1bWVudCwgZmxvYXQgc2NhbGUsIGZsb2F0IHgsIGZsb2F0IHksIEV4
Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIGlmICghZG9jdW1lbnQgfHwgIWRvY3VtZW50LT52aWV3
KCkgfHwgIWRvY3VtZW50LT52aWV3KCktPmZyYW1lKCkpIHsKQEAgLTYyNyw2ICs2MTcsMjUgQEAg
Ym9vbCBJbnRlcm5hbHM6OnVuaWZpZWRUZXh0Q2hlY2tpbmdFbmFibGVkKERvY3VtZW50KiBkb2N1
bWVudCwgRXhjZXB0aW9uQ29kZSYgZWMKICAgICByZXR1cm4gZG9jdW1lbnQtPmZyYW1lKCktPnNl
dHRpbmdzKCktPnVuaWZpZWRUZXh0Q2hlY2tlckVuYWJsZWQoKTsKIH0KIAorZmxvYXQgSW50ZXJu
YWxzOjpwYWdlU2NhbGVGYWN0b3IoRG9jdW1lbnQgKmRvY3VtZW50LCBFeGNlcHRpb25Db2RlJiBl
YykKK3sKKyAgICBpZiAoIWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKSB7CisgICAgICAg
IGVjID0gSU5WQUxJRF9BQ0NFU1NfRVJSOworICAgICAgICByZXR1cm4gMDsKKyAgICB9CisKKyAg
ICByZXR1cm4gZG9jdW1lbnQtPnBhZ2UoKS0+cGFnZVNjYWxlRmFjdG9yKCk7Cit9CisKK3ZvaWQg
SW50ZXJuYWxzOjpzZXRQYWdlU2NhbGVGYWN0b3IoRG9jdW1lbnQqIGRvY3VtZW50LCBmbG9hdCBz
Y2FsZUZhY3RvciwgaW50IHgsIGludCB5LCBFeGNlcHRpb25Db2RlJiBlYykKK3sKKyAgICBpZiAo
IWRvY3VtZW50IHx8ICFkb2N1bWVudC0+cGFnZSgpKSB7CisgICAgICAgIGVjID0gSU5WQUxJRF9B
Q0NFU1NfRVJSOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGRvY3VtZW50LT5wYWdlKCkt
PnNldFBhZ2VTY2FsZUZhY3RvcihzY2FsZUZhY3RvciwgSW50UG9pbnQoeCwgeSkpOworfQorCiBp
bnQgSW50ZXJuYWxzOjpsYXN0U3BlbGxDaGVja1JlcXVlc3RTZXF1ZW5jZShEb2N1bWVudCogZG9j
dW1lbnQsIEV4Y2VwdGlvbkNvZGUmIGVjKQogewogICAgIFNwZWxsQ2hlY2tlciogY2hlY2tlciA9
IHNwZWxsY2hlY2tlcihkb2N1bWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRl
eCBlYTAwZDE1OGRiNjc3OTA4OWI3ZjUzM2YwZjRkNTI2MTNlYjYxMTM3Li5lZDQ3MzcwNTViOTkz
ODNkYTliMjgwMjFhZjNmNjk1OWM2MWQzNWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmgKQEAgLTgzLDcgKzgzLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBzZXRFbmFibGVTY3JvbGxB
bmltYXRvcihEb2N1bWVudCosIGJvb2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwogICAgIHZv
aWQgc2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKERvY3VtZW50KiwgZmxvYXQgc2NhbGUsIGZsb2F0
IHR4LCBmbG9hdCB0eSwgRXhjZXB0aW9uQ29kZSYpOwotICAgIGZsb2F0IGdldFBhZ2VTY2FsZUZh
Y3RvcihEb2N1bWVudCosICBFeGNlcHRpb25Db2RlJik7CiAgICAgdm9pZCBzZXRab29tUGFyYW1l
dGVycyhEb2N1bWVudCosIGZsb2F0IHNjYWxlLCBmbG9hdCB4LCBmbG9hdCB5LCBFeGNlcHRpb25D
b2RlJik7CiAKICAgICB2b2lkIHNldE1vY2tTY3JvbGxiYXJzRW5hYmxlZChEb2N1bWVudCosIGJv
b2wgZW5hYmxlZCwgRXhjZXB0aW9uQ29kZSYpOwpAQCAtMTEyLDYgKzExMSw5IEBAIHB1YmxpYzoK
IAogICAgIGludCBsYXN0U3BlbGxDaGVja1JlcXVlc3RTZXF1ZW5jZShEb2N1bWVudCosIEV4Y2Vw
dGlvbkNvZGUmKTsKICAgICBpbnQgbGFzdFNwZWxsQ2hlY2tQcm9jZXNzZWRTZXF1ZW5jZShEb2N1
bWVudCosIEV4Y2VwdGlvbkNvZGUmKTsKKyAgICAKKyAgICBmbG9hdCBwYWdlU2NhbGVGYWN0b3Io
RG9jdW1lbnQqLCAgRXhjZXB0aW9uQ29kZSYpOworICAgIHZvaWQgc2V0UGFnZVNjYWxlRmFjdG9y
KERvY3VtZW50KiwgZmxvYXQgc2NhbGVGYWN0b3IsIGludCB4LCBpbnQgeSwgRXhjZXB0aW9uQ29k
ZSYpOwogCiAgICAgdm9pZCBzZXRQZXJUaWxlRHJhd2luZ0VuYWJsZWQoRG9jdW1lbnQqLCBib29s
IGVuYWJsZWQsIEV4Y2VwdGlvbkNvZGUmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCmluZGV4IGQ2MjIyNjA0MzBhNzE2OWM0YzZhMzUxZTYwNjE5MDUwZjY5MmEyMzEuLmY1NmQx
YWY3NGE4ZTM1ZGQ0N2JkNGU2YzQ5ZjEyNWU3ZWFhYzNhNTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFscy5pZGwKQEAgLTU1LDcgKzU1LDYgQEAgbW9kdWxlIHdpbmRvdyB7CiAgICAgICAg
IHZvaWQgc2V0QWNjZWxlcmF0ZWRGaWx0ZXJzRW5hYmxlZChpbiBEb2N1bWVudCBkb2N1bWVudCwg
aW4gYm9vbGVhbiBlbmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBz
ZXRFbmFibGVTY3JvbGxBbmltYXRvcihpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gYm9vbGVhbiBl
bmFibGVkKSByYWlzZXMoRE9NRXhjZXB0aW9uKTsKICAgICAgICAgdm9pZCBzZXRab29tQW5pbWF0
b3JUcmFuc2Zvcm0oaW4gRG9jdW1lbnQgZG9jdW1lbnQsIGluIGZsb2F0IHNjYWxlLCBpbiBmbG9h
dCB0eCwgaW4gZmxvYXQgdHkpIHJhaXNlcyhET01FeGNlcHRpb24pOwotICAgICAgICBmbG9hdCBn
ZXRQYWdlU2NhbGVGYWN0b3IoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyhET01FeGNlcHRp
b24pOwogICAgICAgICB2b2lkIHNldFpvb21QYXJhbWV0ZXJzKGluIERvY3VtZW50IGRvY3VtZW50
LCBpbiBmbG9hdCBzY2FsZSwgaW4gZmxvYXQgeCwgaW4gZmxvYXQgeSkgcmFpc2VzKERPTUV4Y2Vw
dGlvbik7CiAgICAgICAgIHZvaWQgc2V0TW9ja1Njcm9sbGJhcnNFbmFibGVkKGluIERvY3VtZW50
IGRvY3VtZW50LCBpbiBib29sZWFuIGVuYWJsZWQpIHJhaXNlcyhET01FeGNlcHRpb24pOwogCkBA
IC04NCw2ICs4Myw5IEBAIG1vZHVsZSB3aW5kb3cgewogCiAgICAgICAgIGxvbmcgbGFzdFNwZWxs
Q2hlY2tSZXF1ZXN0U2VxdWVuY2UoaW4gRG9jdW1lbnQgZG9jdW1lbnQpIHJhaXNlcyAoRE9NRXhj
ZXB0aW9uKTsKICAgICAgICAgbG9uZyBsYXN0U3BlbGxDaGVja1Byb2Nlc3NlZFNlcXVlbmNlKGlu
IERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisKKyAgICAgICAgZmxv
YXQgcGFnZVNjYWxlRmFjdG9yKGluIERvY3VtZW50IGRvY3VtZW50KSByYWlzZXMoRE9NRXhjZXB0
aW9uKTsKKyAgICAgICAgdm9pZCBzZXRQYWdlU2NhbGVGYWN0b3IoaW4gRG9jdW1lbnQgZG9jdW1l
bnQsIGluIGZsb2F0IHNjYWxlRmFjdG9yLCBpbiBsb25nIHgsIGluIGxvbmcgeSkgcmFpc2VzKERP
TUV4Y2VwdGlvbik7CiAgICAgfTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvd2lu
L1dlYktpdDIuZGVmIGIvU291cmNlL1dlYktpdDIvd2luL1dlYktpdDIuZGVmCmluZGV4IDdkNTNh
Y2IwNTE2YWQyOTk1ZWUyNTgwMmY0ZWU2NGZiMzNjZWRmNzQuLjFhYTg0ODE2N2JlZGM4NTY0OGVj
NGY0YTdlN2ZiYTFiNDIyODJjZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJL
aXQyLmRlZgorKysgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKQEAgLTE3Myw2ICsx
NzMsNyBAQCBFWFBPUlRTCiAgICAgICAgID9zZXRTaG91bGRMYXlvdXRGaXhlZEVsZW1lbnRzUmVs
YXRpdmVUb0ZyYW1lQEZyYW1lVmlld0BXZWJDb3JlQEBRQUVYX05AWgogICAgICAgICA/c2V0RE9N
RXhjZXB0aW9uQFdlYkNvcmVAQFlBWFBBVkV4ZWNTdGF0ZUBKU0NAQEhAWgogICAgICAgICA/c2V0
TW9ja1Njcm9sbGJhcnNFbmFibGVkQFNldHRpbmdzQFdlYkNvcmVAQFNBWF9OQFoKKyAgICAgICAg
P3NldFBhZ2VTY2FsZUZhY3RvckBQYWdlQFdlYkNvcmVAQFFBRVhNQUJWSW50UG9pbnRAMkBAWgog
ICAgICAgICA/c2V0UGFnaW5hdGlvbkBQYWdlQFdlYkNvcmVAQFFBRVhBQlVQYWdpbmF0aW9uQDEy
QEBaCiAgICAgICAgID9zZXRSZXNvdXJjZXNEYXRhU2l6ZUxpbWl0c0Zyb21JbnRlcm5hbHNASW5z
cGVjdG9yQ29udHJvbGxlckBXZWJDb3JlQEBRQUVYSEhAWgogICAgICAgICA/c2V0U2Nyb2xsYmFy
c1N1cHByZXNzZWRAU2Nyb2xsVmlld0BXZWJDb3JlQEBRQUVYX04wQFoKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyQ0ZMaXRlLmRlZiBiL1NvdXJjZS9XZWJLaXQyL3dpbi9X
ZWJLaXQyQ0ZMaXRlLmRlZgppbmRleCA5YzNmYTA0YWU4YjZhMTBmMjIzOTI1Nzk5ZTM1OTQzNDMz
YTdjMmQ1Li42YjY0NDhkYjE2MWFlYjY3MTg5MDZkNjJmNzcwYjlhN2U0YThlYzBkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYKKysrIGIvU291cmNlL1dl
YktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCkBAIC0xNjYsNiArMTY2LDcgQEAgRVhQT1JUUwog
ICAgICAgICA/c2V0U2hvdWxkTGF5b3V0Rml4ZWRFbGVtZW50c1JlbGF0aXZlVG9GcmFtZUBGcmFt
ZVZpZXdAV2ViQ29yZUBAUUFFWF9OQFoKICAgICAgICAgP3NldERPTUV4Y2VwdGlvbkBXZWJDb3Jl
QEBZQVhQQVZFeGVjU3RhdGVASlNDQEBIQFoKICAgICAgICAgP3NldE1vY2tTY3JvbGxiYXJzRW5h
YmxlZEBTZXR0aW5nc0BXZWJDb3JlQEBTQVhfTkBaCisgICAgICAgID9zZXRQYWdlU2NhbGVGYWN0
b3JAUGFnZUBXZWJDb3JlQEBRQUVYTUFCVkludFBvaW50QDJAQFoKICAgICAgICAgP3NldFBhZ2lu
YXRpb25AUGFnZUBXZWJDb3JlQEBRQUVYQUJVUGFnaW5hdGlvbkAxMkBAWgogICAgICAgICA/c2V0
UmVzb3VyY2VzRGF0YVNpemVMaW1pdHNGcm9tSW50ZXJuYWxzQEluc3BlY3RvckNvbnRyb2xsZXJA
V2ViQ29yZUBAUUFFWEhIQFoKICAgICAgICAgP3NldFNjcm9sbGJhcnNTdXBwcmVzc2VkQFNjcm9s
bFZpZXdAV2ViQ29yZUBAUUFFWF9OMEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5
bWJvbHMuZmlsdGVyIGIvU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgppbmRleCAzMmEy
Y2E5OTVjZDE2MWMzNTlhMGNmMmI1MTU0YTI0YmYyNWFlYWU1Li4xNWI2OTU3YTllMjQyMzE5MGJh
YzFkZDIxY2ZiMTY3M2ZkNzMxOGRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvYXV0b3Rvb2xzL3N5bWJv
bHMuZmlsdGVyCisrKyBiL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKQEAgLTI2LDYg
KzI2LDcgQEAgX1pOM1dURjdDU3RyaW5nQzJFUEtjbTsKIF9aTjNXVEY3Q1N0cmluZ0QxRXY7CiBf
Wk4zV1RGN0NTdHJpbmdhU0VSS1MwXzsKIF9aTjI0RHVtcFJlbmRlclRyZWVTdXBwb3J0R3RrKjsK
K19aTjdXZWJDb3JlNFBhZ2UxOHNldFBhZ2VTY2FsZUZhY3RvckVmUktOU184SW50UG9pbnRFOwog
X1pON1dlYkNvcmU0UGFnZTEzc2V0UGFnaW5hdGlvbkVSS05TMF8xMFBhZ2luYXRpb25FOwogX1pO
N1dlYkNvcmU0dG9KU0VQTjNKU0M5RXhlY1N0YXRlRVBOU18xN0pTRE9NR2xvYmFsT2JqZWN0RVBO
U18xMENsaWVudFJlY3RFOwogX1pON1dlYkNvcmU0dG9KU0VQTjNKU0M5RXhlY1N0YXRlRVBOU18x
N0pTRE9NR2xvYmFsT2JqZWN0RVBOU181UmFuZ2VFOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDk3NjZkZTVhNmI1NjJkNDU0
ZGE3NjUxM2M3ZWMyNTUxNmVmNjkzYWQuLjY2NTk2N2NlMGQwMGQ0NWQ4YTJmZDhjZWYyMjc0ZGRl
ODRkMmJmYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAxMi0wMS0wNSAgRmFkeSBTYW11ZWwg
IDxmc2FtdWVsQGNocm9taXVtLm9yZz4KKworICAgICAgICBNb3ZlIHNjYWxlUGFnZUJ5IGZyb20g
ZXZlbnRTZW5kZXIgdG8gd2luZG93LmludGVybmFscworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjQ1MTIKKworICAgICAgICBSZXZpZXdlZCBieSBTaW1v
biBGcmFzZXIuCisKKyAgICAgICAgVXBkYXRlZCBsYXlvdXQgdGVzdHMgdG8gdXNlIHdpbmRvdy5p
bnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yLgorCisgICAgICAgICogY29tcG9zaXRpbmcvZ2Vv
bWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbDoKKyAg
ICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBh
Z2Utc2NhbGUuaHRtbDoKKyAgICAgICAgKiBjb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3Np
dGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbDoKKyAgICAgICAgKiBj
b21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdl
LXNjYWxlLmh0bWw6CisgICAgICAgICogY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRp
b24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWw6CisgICAgICAgICog
Y29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQt
cGFnZS1zY2FsZS5odG1sOgorICAgICAgICAqIGNvbXBvc2l0aW5nL3NjYWxpbmcvdGlsZWQtbGF5
ZXItcmVjdXJzaW9uLmh0bWw6CisgICAgICAgICogZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdl
LWJvdW5kaW5nLWNsaWVudC1yZWN0Lmh0bWw6CisgICAgICAgICogZmFzdC9kb20vRWxlbWVudC9z
Y2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sOgorICAgICAgICAqIGZhc3QvZG9tL1JhbmdlL3Nj
YWxlLXBhZ2UtYm91bmRpbmctY2xpZW50LXJlY3QuaHRtbDoKKyAgICAgICAgKiBmYXN0L2RvbS9S
YW5nZS9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRz
L3NjYWxlLWFuZC1zY3JvbGwtYm9keS5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NjYWxl
LWFuZC1zY3JvbGwtaWZyYW1lLWJvZHkuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY2Fs
ZS1hbmQtc2Nyb2xsLWlmcmFtZS13aW5kb3cuaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9z
Y2FsZS1hbmQtc2Nyb2xsLXdpbmRvdy5odG1sOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Njcmlw
dC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGljay1pZnJhbWUuanM6CisgICAgICAgIChpZnJh
bWVMb2FkZWQpOgorICAgICAgICAqIGZhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxl
ZC1tb3VzZS1jbGljay5qczoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy9zY3JvbGwtaW4tc2NhbGVk
LXBhZ2Utd2l0aC1vdmVyZmxvdy1oaWRkZW4uaHRtbDoKKyAgICAgICAgKiBmYXN0L2V2ZW50cy90
b3VjaC9wYWdlLXNjYWxlZC10b3VjaC1nZXN0dXJlLWNsaWNrLmh0bWw6CisgICAgICAgICogZmFz
dC9mcmFtZXMvZnJhbWUtc2V0LXJvdGF0aW9uLWhpdC5odG1sOgorICAgICAgICAqIGZhc3QvZnJh
bWVzL2ZyYW1lLXNldC1zY2FsaW5nLWhpdC5odG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVzL2lm
cmFtZS1kb3VibGUtc2NhbGUtY29udGVudHMuaHRtbDoKKyAgICAgICAgKiBmYXN0L3JlcGFpbnQv
YmFja2dyb3VuZC1zY2FsaW5nLmh0bWw6CisgICAgICAgICogZmFzdC9yZXBhaW50L3NjYWxlLXBh
Z2Utc2hyaW5rLmh0bWw6CisgICAgICAgICogZmFzdC90cmFuc2Zvcm1zL3NlbGVjdGlvbi1ib3Vu
ZHMtaW4tdHJhbnNmb3JtZWQtdmlldy5odG1sOgorCiAyMDEyLTAxLTA1ICBQaGlsaXBwZSBOb3Jt
YW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBHVEsgdGVz
dF9leHBlY3RhdGlvbnMgdXBkYXRlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRt
bCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWNvbXBv
c2l0ZWQtcGFnZS1zY2FsZS1kb3duLmh0bWwKaW5kZXggZjg4NjY2Y2EzNDVkMGY5ZjMyMTVhMTZm
Yjg3MGU4OTczYzU4YTEzMS4uMzc3MWY1ZTczZThhY2YwNmJjMGVjN2NiMjJmNzE2YjljMWEyYmRm
OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9z
aXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9j
b21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1jb21wb3NpdGVkLXBhZ2Utc2NhbGUt
ZG93bi5odG1sCkBAIC0xOCwxMiArMTgsMTIgQEAKIDwvc3R5bGU+CiA8c2NyaXB0PgogICBmdW5j
dGlvbiBzY2FsZSgpIHsKLSAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICBpZiAod2luZG93
LmludGVybmFscykgewogICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGlu
Z0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOwotICAgIGlmICh3aW5kb3cubGF5b3V0
VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQo
dHJ1ZSk7Ci0gICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgwLjUsIDAsIDApOworICAgICAg
d2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwgMCwgMCk7
CiAgICAgfQorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBsYXlv
dXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwogICB9CiA8L3NjcmlwdD4KIDwvaGVh
ZD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBv
c2l0aW9uLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1sIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRp
bmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKaW5k
ZXggYTc1NWRkYTYwODM4NjQ4Y2I4ODFmM2EzMzAzNTZhMzc5ZDY1Yjg4OC4uMGM1ODU0MWFmYzA3
MTJjOTk4ZDhjNGM5ZTA5ZDkwNzY5NjkwNTNiYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29t
cG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvZ2VvbWV0cnkvZml4ZWQtcG9zaXRpb24t
Y29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKQEAgLTE4LDEyICsxOCwxMiBAQAogPC9zdHlsZT4K
IDxzY3JpcHQ+CiAgIGZ1bmN0aW9uIHNjYWxlKCkgewotICAgIGlmICh3aW5kb3cuaW50ZXJuYWxz
KQorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNl
dEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7Ci0gICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKLSAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDIs
IDAsIDApOworICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1l
bnQsIDIsIDAsIDApOwogICAgIH0KKyAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKICAgfQogPC9z
Y3JpcHQ+CiA8L2hlYWQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9t
ZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLWRvd24uaHRt
bCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFt
ZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCmluZGV4IGFkZjY5ZTY2M2RhOGYyM2I5
ODUzYmU0MGI1ZTE4YjA2YzdhZmQwMGIuLjNjNzI1ZGFlMTQxZDVhM2M1N2U1YTY0MjQxYzU2OTAx
YjQwOGZmMDMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2Zp
eGVkLXBvc2l0aW9uLWlmcmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCisrKyBi
L0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlmcmFtZS1j
b21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1sCkBAIC0xOCwxMiArMTgsMTIgQEAKIDwvc3R5
bGU+CiA8c2NyaXB0PgogICBmdW5jdGlvbiB0ZXN0KCkgewotICAgIGlmICh3aW5kb3cuaW50ZXJu
YWxzKQorICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgICB3aW5kb3cuaW50ZXJuYWxz
LnNldEVuYWJsZUNvbXBvc2l0aW5nRm9yRml4ZWRQb3NpdGlvbihkb2N1bWVudCwgdHJ1ZSk7Ci0g
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikgewotICAgICAgbGF5b3V0VGVzdENv
bnRyb2xsZXIuZHVtcEFzVGV4dCh0cnVlKTsKLSAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5
KDAuNSwgMCwgMCk7CisgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihk
b2N1bWVudCwgMC41LCAwLCAwKTsKICAgICB9CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29u
dHJvbGxlcikKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CiAK
ICAgICB2YXIgZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFtZScpLmNvbnRlbnREb2N1
bWVudC5vcGVuKCk7CiAgICAgZC53cml0ZSgiPGRpdiBzdHlsZT0ncG9zaXRpb246Zml4ZWQ7IHot
aW5kZXg6IDE7IGxlZnQ7IDEwcHg7Jz5URVNUPC9kaXY+Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRl
ZC1wYWdlLXNjYWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhl
ZC1wb3NpdGlvbi1pZnJhbWUtY29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKaW5kZXggMDg1ZjYx
ZTljMDRkMjU5Mzk2NDg4NGM2ZTIwOTMyNDgwZGRlNGE3Yi4uMTZhYjA3NTFjYmQwMzBmMjRlY2Nh
ZDFmNTc2MTAxZjA4NTRkNjM2MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
Z2VvbWV0cnkvZml4ZWQtcG9zaXRpb24taWZyYW1lLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5odG1s
CisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLWlm
cmFtZS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbApAQCAtMTgsMTIgKzE4LDEyIEBACiA8L3N0
eWxlPgogPHNjcmlwdD4KICAgZnVuY3Rpb24gdGVzdCgpIHsKLSAgICBpZiAod2luZG93LmludGVy
bmFscykKKyAgICBpZiAod2luZG93LmludGVybmFscykgewogICAgICAgd2luZG93LmludGVybmFs
cy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZpeGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOwot
ICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpIHsKLSAgICAgIGxheW91dFRlc3RD
b250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7Ci0gICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VC
eSgyLCAwLCAwKTsKKyAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRv
Y3VtZW50LCAyLCAwLCAwKTsKICAgICB9CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJv
bGxlcikKKyAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CiAKICAg
ICB2YXIgZCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdmcmFtZScpLmNvbnRlbnREb2N1bWVu
dC5vcGVuKCk7CiAgICAgZC53cml0ZSgiPGRpdiBzdHlsZT0ncG9zaXRpb246Zml4ZWQ7IHotaW5k
ZXg6IDE7IGxlZnQ7IDEwcHg7Jz5URVNUPC9kaXY+Iik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0tY29tcG9zaXRl
ZC1wYWdlLXNjYWxlLWRvd24uaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5
L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5odG1s
CmluZGV4IGJlOWQ5Y2MzMzNhMWM4N2U3MzFlYzU0MzBkNDg4Y2Y2ZGM0ZDgxMDYuLjQ1Y2UwMzVm
MjkyMjk0NjBlMzM0Mjc4MGNiZjRjMWZiNTZlYzIzNjYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVk
LXBhZ2Utc2NhbGUtZG93bi5odG1sCisrKyBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21l
dHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUtZG93bi5o
dG1sCkBAIC0yMCwxMiArMjAsMTIgQEAKIDwvc3R5bGU+CiA8c2NyaXB0PgogICBmdW5jdGlvbiBz
Y2FsZSgpIHsKLSAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICBpZiAod2luZG93LmludGVy
bmFscykgewogICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZp
eGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7
Ci0gICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgwLjUsIDAsIDApOworICAgICAgd2luZG93
LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIDAuNSwgMCwgMCk7CiAgICAg
fQorICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KHRydWUpOwogICB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9u
LXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Utc2NhbGUuaHRtbCBiL0xheW91dFRlc3RzL2NvbXBv
c2l0aW5nL2dlb21ldHJ5L2ZpeGVkLXBvc2l0aW9uLXRyYW5zZm9ybS1jb21wb3NpdGVkLXBhZ2Ut
c2NhbGUuaHRtbAppbmRleCBmN2ZiM2RmYWJkMzcxMjFmODMwZjM5ZmZiYzA1N2YwOTA2ZjZjMGVh
Li5kZjg2NjdiMWEyNGQ5M2VkMjMxOWM5YzQ5NWExNTk3NmNhZDhkYWRkIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9jb21wb3NpdGluZy9nZW9tZXRyeS9maXhlZC1wb3NpdGlvbi10cmFuc2Zvcm0t
Y29tcG9zaXRlZC1wYWdlLXNjYWxlLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcv
Z2VvbWV0cnkvZml4ZWQtcG9zaXRpb24tdHJhbnNmb3JtLWNvbXBvc2l0ZWQtcGFnZS1zY2FsZS5o
dG1sCkBAIC0yMCwxMiArMjAsMTIgQEAKIDwvc3R5bGU+CiA8c2NyaXB0PgogICBmdW5jdGlvbiBz
Y2FsZSgpIHsKLSAgICBpZiAod2luZG93LmludGVybmFscykKKyAgICBpZiAod2luZG93LmludGVy
bmFscykgewogICAgICAgd2luZG93LmludGVybmFscy5zZXRFbmFibGVDb21wb3NpdGluZ0ZvckZp
eGVkUG9zaXRpb24oZG9jdW1lbnQsIHRydWUpOwotICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpIHsKLSAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7
Ci0gICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgyLCAwLCAwKTsKKyAgICAgIHdpbmRvdy5p
bnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAwKTsKICAgICB9Cisg
ICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgIGxheW91dFRlc3RDb250
cm9sbGVyLmR1bXBBc1RleHQodHJ1ZSk7CiAgIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvc2NhbGluZy90aWxlZC1sYXllci1yZWN1cnNp
b24uaHRtbCBiL0xheW91dFRlc3RzL2NvbXBvc2l0aW5nL3NjYWxpbmcvdGlsZWQtbGF5ZXItcmVj
dXJzaW9uLmh0bWwKaW5kZXggZjhiMTg5ZmQ5MDE4NDIyNThjMTU4OTZmODE3YzYzYWUzZmZhNWJj
MC4uMzk5ZDBlMGYwNDZlYjRhYWYxOGE1M2YxZWEzZTEwY2QyZWJiYmY2ZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvY29tcG9zaXRpbmcvc2NhbGluZy90aWxlZC1sYXllci1yZWN1cnNpb24uaHRt
bAorKysgYi9MYXlvdXRUZXN0cy9jb21wb3NpdGluZy9zY2FsaW5nL3RpbGVkLWxheWVyLXJlY3Vy
c2lvbi5odG1sCkBAIC0xNiw3ICsxNiw4IEBACiAKICAgICBmdW5jdGlvbiBzY2FsZVBhZ2UoKQog
ICAgIHsKLSAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDEuNTAwMjUsIDAsIDApOworICAg
ICAgaWYgKHdpbmRvdy5pbnRlcm5hbHMpCisgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFn
ZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAxLjUwMDI1LCAwLCAwKTsKICAgICB9CiAgIAogICAgIHdp
bmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgc2NhbGVQYWdlLCBmYWxzZSk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9FbGVtZW50L3NjYWxlLXBhZ2UtYm91bmRpbmctY2xp
ZW50LXJlY3QuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1i
b3VuZGluZy1jbGllbnQtcmVjdC5odG1sCmluZGV4IGU0OTY2ZDMyOGM2NjQ3YmUxNjI5OGI0MDYw
NzhiNDkzZmQzMTZmYTEuLjYwMjI4OWIzMzUxMjkxNWFlYjlkZTY1MmZlZTc1ODI5ZDA5OWNhNzMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1ib3Vu
ZGluZy1jbGllbnQtcmVjdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0VsZW1lbnQv
c2NhbGUtcGFnZS1ib3VuZGluZy1jbGllbnQtcmVjdC5odG1sCkBAIC0zLDEzICszLDEzIEBACiA8
c2NyaXB0PgogZnVuY3Rpb24gdGVzdFJlY3RzKCkKIHsKLSAgICBpZiAoIXdpbmRvdy5sYXlvdXRU
ZXN0Q29udHJvbGxlcikKKyAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlciB8fCAh
d2luZG93LmludGVybmFscykKICAgICAgICAgcmV0dXJuOwogICAgIGxheW91dFRlc3RDb250cm9s
bGVyLmR1bXBBc1RleHQoKTsKICAgICAKICAgICB2YXIgZGl2ID0gZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoImRpdiIpOwogICAgIHZhciByZWN0ID0gZGl2LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgp
OwotICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDIsMCwwKTsKKyAgICB3aW5kb3cuaW50ZXJu
YWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMiwgMCwgMCk7CiAgICAgdmFyIHNjYWxl
ZFJlY3QgPSBkaXYuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7CiAKICAgICB2YXIgcmVzdWx0ID0g
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInJlc3VsdCIpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vRWxlbWVudC9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sCmluZGV4
IDc0ZDAyOGE4YzkwNmUzZTE0NDVmNjgyNzMwOTk5MmFkYTg2ODc3N2YuLjhmYTJhMzExMDVhYTc2
ODhiYzM1OGU5YjUzOGQxMDM0OGM3ZThhZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3Qv
ZG9tL0VsZW1lbnQvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9FbGVtZW50L3NjYWxlLXBhZ2UtY2xpZW50LXJlY3RzLmh0bWwKQEAgLTMsMTMg
KzMsMTMgQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiB0ZXN0UmVjdHMoKQogewotICAgIGlmICghd2lu
ZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250
cm9sbGVyIHx8ICF3aW5kb3cuaW50ZXJuYWxzKQogICAgICAgICByZXR1cm47CiAgICAgbGF5b3V0
VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwogICAgIAogICAgIHZhciBkaXYgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiZGl2Iik7CiAgICAgdmFyIHJlY3RMaXN0ID0gZGl2LmdldENsaWVu
dFJlY3RzKCk7Ci0gICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMiwwLDApOworICAgIHdpbmRv
dy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAwKTsKICAgICB2
YXIgc2NhbGVkUmVjdExpc3QgPSBkaXYuZ2V0Q2xpZW50UmVjdHMoKTsKIAogICAgIHZhciByZXN1
bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicmVzdWx0Iik7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWJvdW5kaW5nLWNsaWVudC1yZWN0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9SYW5nZS9zY2FsZS1wYWdlLWJvdW5kaW5nLWNsaWVu
dC1yZWN0Lmh0bWwKaW5kZXggOWEzZTIxMDc5Y2FmN2ZhOWYwNzQxOWNjNjAyMjMxYWY0NGZmM2Vl
My4uZjEyYzBmZDc4MzE4M2JjNThiYjg0YjA4ZDZjMDg3OTIwYTVlNjllOCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1ib3VuZGluZy1jbGllbnQtcmVj
dC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1JhbmdlL3NjYWxlLXBhZ2UtYm91bmRp
bmctY2xpZW50LXJlY3QuaHRtbApAQCAtMyw3ICszLDcgQEAKIDxzY3JpcHQ+CiBmdW5jdGlvbiB0
ZXN0UmVjdHMoKQogewotICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKQorICAg
IGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVyIHx8ICF3aW5kb3cuaW50ZXJuYWxzKQog
ICAgICAgICByZXR1cm47CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwog
CkBAIC0xMSw3ICsxMSw3IEBAIGZ1bmN0aW9uIHRlc3RSZWN0cygpCiAgICAgcmFuZ2Uuc2VsZWN0
Tm9kZUNvbnRlbnRzKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdkaXYnKSk7CiAgICAgdmFyIHJl
Y3QgPSByYW5nZS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTsKICAgIAotICAgIGV2ZW50U2VuZGVy
LnNjYWxlUGFnZUJ5KDIsMCwwKTsKKyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZh
Y3Rvcihkb2N1bWVudCwgMiwgMCwgMCk7CiAgICAgdmFyIHNjYWxlZFJhbmdlID0gZG9jdW1lbnQu
Y3JlYXRlUmFuZ2UoKTsKICAgICBzY2FsZWRSYW5nZS5zZWxlY3ROb2RlQ29udGVudHMoZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2RpdicpKTsKICAgICB2YXIgc2NhbGVkUmVjdCA9IHNjYWxlZFJh
bmdlLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9kb20vUmFuZ2Uvc2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvZG9tL1JhbmdlL3NjYWxlLXBhZ2UtY2xpZW50LXJlY3RzLmh0bWwKaW5kZXggNWNmMmJkMzA1
MDgxZjVhZjMzOTYyNWMzMmNkNTI3MTk2ZjAxMmRhMi4uM2VmMzY3OTU1NjMyMjNhOGI3NDNkYjIw
ZGY4MDQwMTFkOGZkMDgxMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vUmFuZ2Uv
c2NhbGUtcGFnZS1jbGllbnQtcmVjdHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9S
YW5nZS9zY2FsZS1wYWdlLWNsaWVudC1yZWN0cy5odG1sCkBAIC0zLDcgKzMsNyBAQAogPHNjcmlw
dD4KIGZ1bmN0aW9uIHRlc3RSZWN0cygpCiB7Ci0gICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENv
bnRyb2xsZXIpCisgICAgaWYgKCF3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgfHwgICF3aW5k
b3cuaW50ZXJuYWxzKQogICAgICAgICByZXR1cm47CiAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIu
ZHVtcEFzVGV4dCgpOwogCkBAIC0xMiw3ICsxMiw3IEBAIGZ1bmN0aW9uIHRlc3RSZWN0cygpCiAg
ICAgdmFyIHJlY3RMaXN0ID0gcmFuZ2UuZ2V0Q2xpZW50UmVjdHMoKTsKICAgICB2YXIgcmVjdCA9
IHJlY3RMaXN0WzBdOwogICAgCi0gICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMiwwLDApOwor
ICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAw
KTsKICAgICB2YXIgc2NhbGVkUmFuZ2UgPSBkb2N1bWVudC5jcmVhdGVSYW5nZSgpOwogICAgIHNj
YWxlZFJhbmdlLnNlbGVjdE5vZGVDb250ZW50cyhkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZGl2
JykpOwogICAgIHZhciBzY2FsZWRSZWN0TGlzdCA9IHNjYWxlZFJhbmdlLmdldENsaWVudFJlY3Rz
KCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xs
LWJvZHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtYm9k
eS5odG1sCmluZGV4IDdhODdlZjRlNTA5NTlmMmQ0MTVjMzk5OTA4MmNlZDY0NzJkNTRkMDUuLmE1
NzBkNzkzM2Y2MGFlNjhjYzdmOWNhMGZkMGQ1MzhjNzNhOWVjYTMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtYm9keS5odG1sCisrKyBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtYm9keS5odG1sCkBAIC0xMCw3ICsx
MCw3IEBACiAgICAgICB3aW5kb3cuZW5hYmxlUGl4ZWxUZXN0aW5nID0gdHJ1ZTsKIAogICAgICAg
ZnVuY3Rpb24gc2Nyb2xsKCkgewotICAgICAgICAgIC8vIFRoZSBwYWdlIHNjYWxlLCBhcyBzZXQg
YnkgRXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkgc2hvdWxkIG5vdCBiZSBhcHBhcmVudAorICAgICAg
ICAgIC8vIFRoZSBwYWdlIHNjYWxlLCBhcyBzZXQgYnkgd2luZG93LmludGVybmFscy5zZXRQYWdl
U2NhbGVGYWN0b3Igc2hvdWxkIG5vdCBiZSBhcHBhcmVudAogICAgICAgICAgIC8vIHRvIGphdmFz
Y3JpcHQuIFNvLCB3ZSBleHBlY3Qgc2Nyb2xsaW5nIHRvICgxMDAsMTAwKSB0byBiZSBwYWdlIGNv
b3JkaW5hdGVzLCByYXRoZXIKICAgICAgICAgICAvLyB0aGFuIGRldmljZSBwaXhlbHMuCiAgICAg
ICAgICAgZG9jdW1lbnQuYm9keS5zY3JvbGxMZWZ0ID0gMTAwOwpAQCAtMjUsOCArMjUsOCBAQAog
ICAgICAgZnVuY3Rpb24gc2NhbGVXaXRoRXZlbnRTZW5kZXIoKSB7CiAgICAgICAgICAgdmFyIHNj
YWxlRmFjdG9yID0gMi4wOwogICAgICAgICAgIHZhciBzY2FsZU9mZnNldCA9IDA7Ci0gICAgICAg
ICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICAgICAgIGV2ZW50U2VuZGVyLnNj
YWxlUGFnZUJ5KHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQpOworICAgICAg
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgd2luZG93LmludGVybmFs
cy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwg
c2NhbGVPZmZzZXQpOwogICAgICAgICAgIH0KICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtYm9keS5odG1sIGIvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC1pZnJhbWUtYm9keS5odG1sCmlu
ZGV4IDBhNTE4YzdhNWYzNzU2ZjZmYTdmYTcwYmFmMzc4NDJiZGQ4OWU5YTQuLjgxOTViOTlmY2Fl
ZWZiOGFmZWE2YTJmZmJiMjYyYWFmN2ZjMmEyODggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtaWZyYW1lLWJvZHkuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLWlmcmFtZS1ib2R5Lmh0bWwKQEAgLTI0
LDggKzI0LDggQEAKICAgICAgICAgZnVuY3Rpb24gc2NhbGVXaXRoRXZlbnRTZW5kZXIoKSB7CiAg
ICAgICAgICAgICB2YXIgc2NhbGVGYWN0b3IgPSAwLjU7CiAgICAgICAgICAgICB2YXIgc2NhbGVP
ZmZzZXQgPSAwOwotICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAg
ICAgICAgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeShzY2FsZUZhY3Rvciwgc2NhbGVPZmZz
ZXQsIHNjYWxlT2Zmc2V0KTsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7Cisg
ICAgICAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3Vt
ZW50LCBzY2FsZUZhY3Rvciwgc2NhbGVPZmZzZXQsIHNjYWxlT2Zmc2V0KTsKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2Fs
ZS1hbmQtc2Nyb2xsLWlmcmFtZS13aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3NjYWxlLWFuZC1zY3JvbGwtaWZyYW1lLXdpbmRvdy5odG1sCmluZGV4IDQxY2VhYzdhZDYzMmYy
OWJkYTJhZTkzN2U3YjNhMjJjNTIzN2FhZDEuLjc3OTM1ODEyYTE2NTAxMmY4MjU1NjYyYzlkZWYw
YzYyN2IyMDY3MjUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFu
ZC1zY3JvbGwtaWZyYW1lLXdpbmRvdy5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRz
L3NjYWxlLWFuZC1zY3JvbGwtaWZyYW1lLXdpbmRvdy5odG1sCkBAIC0yMyw4ICsyMyw4IEBACiAg
ICAgICAgIGZ1bmN0aW9uIHNjYWxlV2l0aEV2ZW50U2VuZGVyKCkgewogICAgICAgICAgICAgdmFy
IHNjYWxlRmFjdG9yID0gMC41OwogICAgICAgICAgICAgdmFyIHNjYWxlT2Zmc2V0ID0gMDsKLSAg
ICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKLSAgICAgICAgICAgICAgICAgZXZl
bnRTZW5kZXIuc2NhbGVQYWdlQnkoc2NhbGVGYWN0b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNl
dCk7CisgICAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAgICAgICAgICAgICAg
ICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgc2NhbGVGYWN0
b3IsIHNjYWxlT2Zmc2V0LCBzY2FsZU9mZnNldCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0K
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC13
aW5kb3cuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjYWxlLWFuZC1zY3JvbGwtd2lu
ZG93Lmh0bWwKaW5kZXggYzU1NTExNTI1MzQyOWUxYjRjMDg2MTYzMGEwOTJjOTE4MjQ0MmUwYy4u
NWMzNWU2NWNjYTE4ZWE0MjcyMjQwOGQ0MjQyMTAyYWEwNTVjNTZiMSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NhbGUtYW5kLXNjcm9sbC13aW5kb3cuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY2FsZS1hbmQtc2Nyb2xsLXdpbmRvdy5odG1sCkBAIC0x
MCw3ICsxMCw3IEBACiAgICAgICB3aW5kb3cuZW5hYmxlUGl4ZWxUZXN0aW5nID0gdHJ1ZTsKIAog
ICAgICAgZnVuY3Rpb24gc2Nyb2xsKCkgewotICAgICAgICAgIC8vIFRoZSBwYWdlIHNjYWxlLCBh
cyBzZXQgYnkgRXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkgc2hvdWxkIG5vdCBiZSBhcHBhcmVudAor
ICAgICAgICAgIC8vIFRoZSBwYWdlIHNjYWxlLCBhcyBzZXQgYnkgd2luZG93LmludGVybmFscy5z
ZXRQYWdlU2NhbGVGYWN0b3Igc2hvdWxkIG5vdCBiZSBhcHBhcmVudAogICAgICAgICAgIC8vIHRv
IGphdmFzY3JpcHQuIFNvLCB3ZSBleHBlY3Qgc2Nyb2xsaW5nIHRvICgxMDAsMTAwKSB0byBiZSBw
YWdlIGNvb3JkaW5hdGVzLCByYXRoZXIKICAgICAgICAgICAvLyB0aGFuIGRldmljZSBwaXhlbHMu
CiAgICAgICAgICAgd2luZG93LnNjcm9sbFRvKDEwMCwxMDApOwpAQCAtMjQsOCArMjQsOCBAQAog
ICAgICAgZnVuY3Rpb24gc2NhbGVXaXRoRXZlbnRTZW5kZXIoKSB7CiAgICAgICAgICAgdmFyIHNj
YWxlRmFjdG9yID0gMi4wOwogICAgICAgICAgIHZhciBzY2FsZU9mZnNldCA9IDA7Ci0gICAgICAg
ICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgewotICAgICAgICAgICAgIGV2ZW50U2VuZGVyLnNj
YWxlUGFnZUJ5KHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQpOworICAgICAg
ICAgIGlmICh3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgICAgICAgICAgd2luZG93LmludGVybmFs
cy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIHNjYWxlRmFjdG9yLCBzY2FsZU9mZnNldCwg
c2NhbGVPZmZzZXQpOwogICAgICAgICAgIH0KICAgICAgIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL3BhZ2Utc2NhbGVkLW1vdXNlLWNsaWNrLWlm
cmFtZS5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxl
ZC1tb3VzZS1jbGljay1pZnJhbWUuanMKaW5kZXggYmQ5NjNlOGUwMGE4YjBkZTA3MWNkOWE0OGRi
NWIwYTYwYzM1MmIwZC4uMzk3ZjhkZTM3Yzg3Mzc1Y2I5NDQ0NmY1MDI0ZTVkYjc5NGVhNjEyMiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvc2NyaXB0LXRlc3RzL3BhZ2Utc2Nh
bGVkLW1vdXNlLWNsaWNrLWlmcmFtZS5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
Y3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2staWZyYW1lLmpzCkBAIC01Miw3ICs1
Miw3IEBAIGZ1bmN0aW9uIGlmcmFtZUxvYWRlZCgpIHsKICAgZGl2LmFkZEV2ZW50TGlzdGVuZXIo
ImNsaWNrIiwgYXBwZW5kRXZlbnRMb2csIGZhbHNlKTsKICAgaWZyYW1lLmNvbnRlbnRXaW5kb3cu
ZG9jdW1lbnQuYm9keS5pbnNlcnRCZWZvcmUoZGl2LCBpZnJhbWUuY29udGVudFdpbmRvdy5kb2N1
bWVudC5ib2R5LmZpcnN0Q2hpbGQpOwogCi0gIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAg
aWYgKHdpbmRvdy5ldmVudFNlbmRlciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CiAgICAgZXZlbnRT
ZW5kZXIubW91c2VNb3ZlVG8oMTAsIDEwKTsKICAgICAvLyBXZSBhcmUgY2xpY2tpbmcgaW4gdGhl
IHNhbWUgcG9zaXRpb24gb24gc2NyZWVuLiBBcyB3ZSBzY2FsZSBvciB0cmFuc2Zvcm0gdGhlIHBh
Z2UsCiAgICAgLy8gd2UgZXhwZWN0IHRoZSBwYWdlWCBhbmQgcGFnZVkgZXZlbnQgY29vcmRpbmF0
ZXMgdG8gY2hhbmdlIGJlY2F1c2UgZGlmZmVyZW50CkBAIC02MCwxNSArNjAsMTUgQEAgZnVuY3Rp
b24gaWZyYW1lTG9hZGVkKCkgewogCiAgICAgdGVzdEV2ZW50cygwLCAiVW5zY2FsZWQiLCAiY2xp
Y2soMTAsIDEwKSIpOwogCi0gICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMC41LCAwLCAwKTsK
KyAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1bWVudCwgMC41LCAw
LCAwKTsKICAgICB0ZXN0RXZlbnRzKDAsICJzZXRQYWdlU2NhbGUoMC41KSIsICJjbGljaygyMCwg
MjApIik7CiAKLSAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgxLjAsIDAsIDApOworICAgIHdp
bmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAxLjAsIDAsIDApOwog
ICAgIGh0bWwuc3R5bGVbIi13ZWJraXQtdHJhbnNmb3JtIl0gPSAic2NhbGUoMC41LCAyLjApIjsK
ICAgICBodG1sLnN0eWxlWyItd2Via2l0LXRyYW5zZm9ybS1vcmlnaW4iXSA9ICIwIDAiOwogICAg
IHRlc3RFdmVudHMoMCwgIkNTUyBzY2FsZSgwLjUsIDIuMCkiLCAiY2xpY2soMjAsIDUpIik7CiAK
LSAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgwLjUsIDAsIDApOworICAgIHdpbmRvdy5pbnRl
cm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjUsIDAsIDApOwogICAgIHRlc3RF
dmVudHMoMCwgInNldFBhZ2VTY2FsZSgwLjUpLCBDU1Mgc2NhbGUoMC41LCAyLjApIiwgImNsaWNr
KDQwLCAxMCkiKTsKICAgfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9z
Y3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2suanMgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9zY3JpcHQtdGVzdHMvcGFnZS1zY2FsZWQtbW91c2UtY2xpY2suanMKaW5kZXggOTc4
N2Y5NTI0NGJmY2Y0MzQxNjBlMzljMTQyZmJlMDE5NTkzOTMxYy4uNDRlNjgzY2M2NGVlOWJmN2Jm
OTU1YTZjZjBmNzA2ODA5ZDZmNThjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVu
dHMvc2NyaXB0LXRlc3RzL3BhZ2Utc2NhbGVkLW1vdXNlLWNsaWNrLmpzCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL3NjcmlwdC10ZXN0cy9wYWdlLXNjYWxlZC1tb3VzZS1jbGljay5qcwpA
QCAtNDMsMTMgKzQzLDEzIEBAIGZ1bmN0aW9uIHRlc3RFdmVudHMoYnV0dG9uLCBkZXNjcmlwdGlv
biwgZXhwZWN0ZWRTdHJpbmcpIHsKICAgICBjbGVhckV2ZW50TG9nKCk7CiB9CiAKLWlmICh3aW5k
b3cuZXZlbnRTZW5kZXIpIHsKK2lmICh3aW5kb3cuZXZlbnRTZW5kZXIgJiYgd2luZG93LmludGVy
bmFscykgewogICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDEwLCAxMCk7CiAgICAgLy8gV2Ug
YXJlIGNsaWNraW5nIGluIHRoZSBzYW1lIHBvc2l0aW9uIG9uIHNjcmVlbi4gQXMgd2Ugc2NhbGUg
b3IgdHJhbnNmb3JtIHRoZSBwYWdlLAogICAgIC8vIHdlIGV4cGVjdCB0aGUgcGFnZVggYW5kIHBh
Z2VZIGV2ZW50IGNvb3JkaW5hdGVzIHRvIGNoYW5nZSBiZWNhdXNlIGRpZmZlcmVudAogICAgIC8v
IHBhcnRzIG9mIHRoZSBkb2N1bWVudCBhcmUgdW5kZXIgdGhlIG1vdXNlLgogICAgIHRlc3RFdmVu
dHMoMCwgIlVuc2NhbGVkIiwgImNsaWNrKDEwLCAxMCkiKTsKIAotICAgIGV2ZW50U2VuZGVyLnNj
YWxlUGFnZUJ5KDAuNSwgMCwgMCk7CisgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVG
YWN0b3IoZG9jdW1lbnQsIDAuNSwgMCwgMCk7CiAgICAgdGVzdEV2ZW50cygwLCAic2V0UGFnZVNj
YWxlKDAuNSkiLCAiY2xpY2soMjAsIDIwKSIpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvc2Nyb2xsLWluLXNjYWxlZC1wYWdlLXdpdGgtb3ZlcmZsb3ctaGlkZGVuLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGwtaW4tc2NhbGVkLXBhZ2Utd2l0aC1v
dmVyZmxvdy1oaWRkZW4uaHRtbAppbmRleCAwMzBhYzE2ZGVjNzBlZGQyYmM2NjQ4M2JkNTUzYTgy
M2NjMmVjM2RjLi5mZjZkMmM5OTA5ZjY5MmNmNGU5ODVhZTY5NmQyM2ZjZmJlYjI5MDZkIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3JvbGwtaW4tc2NhbGVkLXBhZ2Utd2l0
aC1vdmVyZmxvdy1oaWRkZW4uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9zY3Jv
bGwtaW4tc2NhbGVkLXBhZ2Utd2l0aC1vdmVyZmxvdy1oaWRkZW4uaHRtbApAQCAtMjIsOCArMjIs
OCBAQAogICAgICAgICAvLyBGb3JjZSBhIGxheW91dC4KICAgICAgICAgZG9jdW1lbnQuYm9keS5v
ZmZzZXRMZWZ0OwogCi0gICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpCi0gICAgICAgICAg
ICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgyLCAwLCAwKTsKKyAgICAgICAgaWYgKHdpbmRvdy5p
bnRlcm5hbHMpCisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rv
cihkb2N1bWVudCwgMiwgMCwgMCk7CiAKICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5kb2N1bWVu
dC5ib2R5LnNjcm9sbFRvcCIsICIwIik7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3RvdWNoL3BhZ2Utc2NhbGVkLXRvdWNoLWdlc3R1cmUtY2xpY2suaHRtbCBiL0xheW91
dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL3BhZ2Utc2NhbGVkLXRvdWNoLWdlc3R1cmUtY2xpY2su
aHRtbAppbmRleCAyOGI5OGJiYjMzNDMxMWU1OTA3MThlNmUwZWEzMzBlYWY0NTZkZjIwLi4wZGI5
NTViMDA5OTllYjdiOWFlZTgyYWFmYzE2NzgxMGE0N2ZkODQzIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9wYWdlLXNjYWxlZC10b3VjaC1nZXN0dXJlLWNsaWNrLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvcGFnZS1zY2FsZWQtdG91Y2gt
Z2VzdHVyZS1jbGljay5odG1sCkBAIC04Myw4ICs4Myw4IEBAIGZ1bmN0aW9uIGVuZFRlc3QoKQog
fQogCiBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsK
LSAgICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMC41LCAwLCAwKTsKKyAgICBpZiAod2lu
ZG93LmludGVybmFscykgeworICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZh
Y3Rvcihkb2N1bWVudCwgMC41LCAwLCAwKTsKICAgICB9CiAKICAgICB2YXIgZGl2ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ3RvdWNodGFyZ2V0Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2ZyYW1lcy9mcmFtZS1zZXQtcm90YXRpb24taGl0Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2ZyYW1lcy9mcmFtZS1zZXQtcm90YXRpb24taGl0Lmh0bWwKaW5kZXggYjE5Nzc0ZDNlYzM0
YmQxODYxNGE5YWRlN2YxODcyYThjMTMyOWEyMi4uY2MyYzIxNGFkMjI2MTc3ZjlhOTZkNTJlYzk0
MWE2M2Q0ODM2ZTE2MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvZnJhbWUt
c2V0LXJvdGF0aW9uLWhpdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1l
LXNldC1yb3RhdGlvbi1oaXQuaHRtbApAQCAtNCwxMCArNCwxMCBAQAogCiAgICAgPHNjcmlwdD4K
ICAgICAgICAgZnVuY3Rpb24gaW5pdCgpIHsKLSAgICAgICAgICAgIGlmICghd2luZG93LmV2ZW50
U2VuZGVyKQorICAgICAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIgfHwgIXdpbmRvdy5p
bnRlcm5hbHMpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgLy8gU2NhbGUg
dGhlIHBhZ2UgYW5kIHJlc2l6ZSB0aGUgZnJhbWVzIHRvIHZlcmlmeSBoaXQgdGVzdGluZyBvbiB0
aGUgZnJhbWVzZXQKLSAgICAgICAgICAgIGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDAuNSwgMCwg
MCk7CisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2FsZUZhY3Rvcihkb2N1
bWVudCwgMC41LCAwLCAwKTsKICAgICAgICAgICAgIHZhciBsZWZ0UGFuZWxXaWR0aCA9IHdpbmRv
dy5pbm5lcldpZHRoIC8gODsKICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHdp
bmRvdy5pbm5lcldpZHRoIC8gNCwgbGVmdFBhbmVsV2lkdGgpOwogICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VEb3duKCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9m
cmFtZS1zZXQtc2NhbGluZy1oaXQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1l
LXNldC1zY2FsaW5nLWhpdC5odG1sCmluZGV4IDMzYmNlYWI4MzRmOGFlODM5OWUwMmU3YTdmNGI5
Y2M4MzcyODQ4NzMuLmIyMjExYjZiOGI5ZmY2ZDlhMWEzMGYzZGZkNmE5MzYxNTNkMzcxMDAgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1zY2FsaW5nLWhpdC5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2ZyYW1lLXNldC1zY2FsaW5nLWhpdC5o
dG1sCkBAIC00LDExICs0LDExIEBACiAKICAgICA8c2NyaXB0PgogICAgICAgICBmdW5jdGlvbiBp
bml0KCkgewotICAgICAgICAgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5kZXIpCisgICAgICAgICAg
ICBpZiAoIXdpbmRvdy5ldmVudFNlbmRlciB8fCAhd2luZG93LmludGVybmFscykKICAgICAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAvLyBTY2FsZSB0aGUgcGFnZSBhbmQgcmVzaXpl
IHRoZSBmcmFtZXMgdG8gdmVyaWZ5IGhpdCB0ZXN0aW5nIG9uIHRoZSBmcmFtZXNldAogICAgICAg
ICAgICAgdmFyIGxlZnRQYW5lbFdpZHRoID0gd2luZG93LmlubmVyV2lkdGggLyA4OwotICAgICAg
ICAgICAgZXZlbnRTZW5kZXIuc2NhbGVQYWdlQnkoMC41LCAwLCAwKTsKKyAgICAgICAgICAgIHdp
bmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAwLjUsIDAsIDApOwog
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8obGVmdFBhbmVsV2lkdGgsIHdpbmRv
dy5pbm5lckhlaWdodCAvIDQpOwogICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7
CiAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygyICogbGVmdFBhbmVsV2lkdGgs
IHdpbmRvdy5pbm5lckhlaWdodCAvIDQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
cmFtZXMvaWZyYW1lLWRvdWJsZS1zY2FsZS1jb250ZW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFz
dC9mcmFtZXMvaWZyYW1lLWRvdWJsZS1zY2FsZS1jb250ZW50cy5odG1sCmluZGV4IDkxNWMwYjVm
ZjBmZjRjZDk0Y2JjYmVkNzg1NThhZTBlMzZjZDFkOGMuLmQzYWY1ZjY5N2IwNzYwZjU3ZDVmMjA3
NWExMDRkMjA0MTY3NWZiMDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2lm
cmFtZS1kb3VibGUtc2NhbGUtY29udGVudHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9pZnJhbWUtZG91YmxlLXNjYWxlLWNvbnRlbnRzLmh0bWwKQEAgLTIyLDggKzIyLDggQEAK
IAogICAgICAgZnVuY3Rpb24gc2NhbGVQYWdlKHNjYWxlRmFjdG9yKSB7CiAgICAgICAgICAgdmFy
IHNjYWxlT2Zmc2V0ID0gMDsKLSAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7Ci0g
ICAgICAgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeShzY2FsZUZhY3Rvciwgc2NhbGVPZmZz
ZXQsIHNjYWxlT2Zmc2V0KTsKKyAgICAgICAgICBpZiAod2luZG93LmludGVybmFscykgeworICAg
ICAgICAgICAgd2luZG93LmludGVybmFscy5zZXRQYWdlU2NhbGVGYWN0b3IoZG9jdW1lbnQsIHNj
YWxlRmFjdG9yLCBzY2FsZU9mZnNldCwgc2NhbGVPZmZzZXQpOwogICAgICAgICAgIH0KICAgICAg
IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2Nh
bGluZy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L2JhY2tncm91bmQtc2NhbGluZy5o
dG1sCmluZGV4IGFlNTUzYTE0MWQ5ZTY5YTc1M2NiODNmYjBjNTc2MjYxZTY5YTQxZjMuLmU4Y2Zm
MGQxNjU2YjU1YmU4Njg0NDYyNTA1NTcxMzM5NzEzODdhM2QgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvcmVwYWludC9iYWNrZ3JvdW5kLXNjYWxpbmcuaHRtbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L3JlcGFpbnQvYmFja2dyb3VuZC1zY2FsaW5nLmh0bWwKQEAgLTQsOCArNCw4IEBACiA8
c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+IAogICAgIGZ1bmN0aW9uIHJlcGFpbnRUZXN0
KCkKICAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIpCi0gICAg
ICAgICAgICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgwLjIsMCwwKTsKKyAgICAgICAgaWYgKHdp
bmRvdy5pbnRlcm5hbHMpCisgICAgICAgICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldFBhZ2VTY2Fs
ZUZhY3Rvcihkb2N1bWVudCwgMC4yNSwgMCwgMCk7CiAgICAgfQogPC9zY3JpcHQ+IAogPC9oZWFk
PiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvcmVwYWludC9zY2FsZS1wYWdlLXNocmlu
ay5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9yZXBhaW50L3NjYWxlLXBhZ2Utc2hyaW5rLmh0bWwK
aW5kZXggYzFjYTU3NmYzNWI0M2Q2ODk5NjU1YWRjNjRkZGY4ZTlhZTY1ODk2OS4uOTJmM2UzZDVm
NmY2NmUxYzk5ZTE5N2JmZTdlMTRmYWEwMmYwZDA0MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9yZXBhaW50L3NjYWxlLXBhZ2Utc2hyaW5rLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9yZXBhaW50L3NjYWxlLXBhZ2Utc2hyaW5rLmh0bWwKQEAgLTQsOCArNCw4IEBACiA8c2NyaXB0
IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CiAgICAgZnVuY3Rpb24gcmVwYWludFRlc3QoKQogICAg
IHsKLSAgICAgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKLSAgICAgICAgICAg
IGV2ZW50U2VuZGVyLnNjYWxlUGFnZUJ5KDAuMiwwLDApOworICAgICAgICBpZiAod2luZG93Lmlu
dGVybmFscykKKyAgICAgICAgICAgIHdpbmRvdy5pbnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9y
KGRvY3VtZW50LCAwLjI1LCAwLCAwKTsKICAgICB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdHJhbnNmb3Jtcy9zZWxlY3Rpb24tYm91bmRzLWluLXRy
YW5zZm9ybWVkLXZpZXcuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdHJhbnNmb3Jtcy9zZWxlY3Rp
b24tYm91bmRzLWluLXRyYW5zZm9ybWVkLXZpZXcuaHRtbAppbmRleCBhMTBhNGQxZGUxZGIyNjEx
ZDYxN2EwNWZlNGFlNWM1MWM3ZjM1MGQxLi4xMGUyNmJiODkxNzJkYmZiMDc3MDcwYjZkYjAxZDAw
MGUyOTgyMDcxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RyYW5zZm9ybXMvc2VsZWN0
aW9uLWJvdW5kcy1pbi10cmFuc2Zvcm1lZC12aWV3Lmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC90cmFuc2Zvcm1zL3NlbGVjdGlvbi1ib3VuZHMtaW4tdHJhbnNmb3JtZWQtdmlldy5odG1sCkBA
IC00LDEwICs0LDkgQEAKICAgICA8ZGl2IHN0eWxlPSJoZWlnaHQ6IDEwMHB4OyI+dGFyZ2V0PC9k
aXY+CiAgICAgPGRpdiBzdHlsZT0iaGVpZ2h0OiAxMDAwcHg7Ij48L2Rpdj4KICAgICA8c2NyaXB0
PgotICAgICAgICBpZiAod2luZG93LmxheW91dFRlc3RDb250cm9sbGVyKSB7CisgICAgICAgIGlm
ICh3aW5kb3cubGF5b3V0VGVzdENvbnRyb2xsZXIgJiYgd2luZG93LmludGVybmFscykgewogICAg
ICAgICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOwotCi0gICAgICAgICAg
ICBldmVudFNlbmRlci5zY2FsZVBhZ2VCeSgyLCAwLCAwKTsKKyAgICAgICAgICAgIHdpbmRvdy5p
bnRlcm5hbHMuc2V0UGFnZVNjYWxlRmFjdG9yKGRvY3VtZW50LCAyLCAwLCAwKTsKICAgICAgICAg
fQogCiAgICAgICAgIGRvY3VtZW50LmV4ZWNDb21tYW5kKCJGaW5kU3RyaW5nIiwgZmFsc2UsICJ0
YXJnZXQiKTsKZGlmZiAtLWdpdCBhL0NoYW5nZUxvZyBiL0NoYW5nZUxvZwppbmRleCBmMzllMGQ1
NGM5ZTlkYmQzNDEyODUwZDZkZmY3MTc1ZjQ4M2FlOWJkLi4xYzI5MjgyMmNlMzg2ZjI0ZDc4NDQx
YTRjNDQ4ZGZiNmJiNWUwMjRkIDEwMDY0NAotLS0gYS9DaGFuZ2VMb2cKKysrIGIvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMTIgQEAKKzIwMTItMDEtMDUgIEZhZHkgU2FtdWVsICA8ZnNhbXVlbEBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgTW92ZSBzY2FsZVBhZ2VCeSBmcm9tIGV2ZW50U2VuZGVyIHRv
IHdpbmRvdy5pbnRlcm5hbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTY0NTEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgorCisg
ICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcjoKKwogMjAxMi0wMS0wNCAg
SmFtZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtjaHJvbWl1
bV0gTW92ZSBXZWJNaW1lUmVnaXN0cnkgYW5kIGRlcGVuZGVuY2llcyB0byBTb3VyY2UvUGxhdGZv
cm0K
</data>

          </attachment>
      

    </bug>

</bugzilla>