<?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>96830</bug_id>
          
          <creation_ts>2012-09-14 15:19:31 -0700</creation_ts>
          <short_desc>Revert r127457 and following fixes due to several hit-testing regressions</short_desc>
          <delta_ts>2012-09-18 03:30:24 -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>UI Events</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>96929</dependson>
          <blocked>95204</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Allan Sandfeld Jensen">allan.jensen</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>ap</cc>
    
    <cc>cdumez</cc>
    
    <cc>eric</cc>
    
    <cc>jamesr</cc>
    
    <cc>jberlin</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>721179</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-09-14 15:19:31 -0700</bug_when>
    <thetext>After experiencing several serious regressions on Chromium [1], [2] (and likely on other platforms [3]) and talking with Antonio, it appears that the approach in bug 95204 is not adequate.

This change will revert r127457 and the follow-up fixes.

[1] https://bugs.webkit.org/show_bug.cgi?id=96593
[2] http://code.google.com/p/chromium/issues/detail?id=148670 and http://code.google.com/p/chromium/issues/detail?id=149696 (probably related)
[3] https://bugs.webkit.org/show_bug.cgi?id=96593#c14</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721186</commentid>
    <comment_count>1</comment_count>
      <attachid>164236</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-09-14 15:26:08 -0700</bug_when>
    <thetext>Created attachment 164236
Proposed revert.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721298</commentid>
    <comment_count>2</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-09-14 18:24:17 -0700</bug_when>
    <thetext>Committed r128677: &lt;http://trac.webkit.org/changeset/128677&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721595</commentid>
    <comment_count>3</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-09-16 07:35:32 -0700</bug_when>
    <thetext>Technically there are also two lines of code the patch moving Document::updateActiveHoverState that should be reverted. It is the two lines that find the inner node of the current document. They don&apos;t do anything wrong, but are unnecessary now that innerNode is always in the current document again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721746</commentid>
    <comment_count>4</comment_count>
      <attachid>164355</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-09-17 01:34:16 -0700</bug_when>
    <thetext>Created attachment 164355
Follow-up Patch

Revert two additional lines of code. Keeping these would have been confusing, and they would have been essentially dead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721747</commentid>
    <comment_count>5</comment_count>
      <attachid>164236</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-17 01:36:44 -0700</bug_when>
    <thetext>Comment on attachment 164236
Proposed revert.

Rejecting attachment 164236 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
frame.html,
which does not exist!  Applying it anyway.
patching file LayoutTests/touchadjustment/resources/inner-navigation-frame.html
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file LayoutTests/touchadjustment/resources/inner-navigation-frame.html.rej
patching file ChangeLog
Hunk #1 succeeded at 1 with fuzz 3.

Failed to run &quot;[u&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/svn-apply&apos;, u&apos;--force&apos;, u&apos;--reviewer&apos;, u&apos;Antonio Go...&quot; exit_code: 1 cwd: /mnt/git/webkit-commit-queue

Full output: http://queues.webkit.org/results/13868381</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721758</commentid>
    <comment_count>6</comment_count>
      <attachid>164236</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-09-17 02:02:33 -0700</bug_when>
    <thetext>Comment on attachment 164236
Proposed revert.

clearing flags for landed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721939</commentid>
    <comment_count>7</comment_count>
      <attachid>164355</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-17 08:04:20 -0700</bug_when>
    <thetext>Comment on attachment 164355
Follow-up Patch

Clearing flags on attachment: 164355

Committed r128759: &lt;http://trac.webkit.org/changeset/128759&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721940</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-17 08:04:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721974</commentid>
    <comment_count>9</comment_count>
      <attachid>164355</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-17 09:02:46 -0700</bug_when>
    <thetext>Comment on attachment 164355
Follow-up Patch

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

&gt; Source/WebCore/dom/Document.cpp:6157
&gt; +    ASSERT(innerNodeInDocument-&gt;document() == this);

We are hitting this assertion in several tests now (at least on EFL port) :
http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug/r128762%20(5986)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721983</commentid>
    <comment_count>10</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-09-17 09:17:17 -0700</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 164355 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=164355&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/dom/Document.cpp:6157
&gt; &gt; +    ASSERT(innerNodeInDocument-&gt;document() == this);
&gt; 
&gt; We are hitting this assertion in several tests now (at least on EFL port) :
&gt; http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug/r128762%20(5986)/results.html

It seems to hit the assertion on Mac as well:
http://build.webkit.org/builders/Apple%20MountainLion%20Debug%20WK1%20%28Tests%29/builds/924

Exited early after 20 crashes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>721988</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-17 09:21:20 -0700</bug_when>
    <thetext>Re-opened since this is blocked by 96929</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722130</commentid>
    <comment_count>12</comment_count>
      <attachid>164355</attachid>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-09-17 11:54:24 -0700</bug_when>
    <thetext>Comment on attachment 164355
Follow-up Patch

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

&gt;&gt;&gt; Source/WebCore/dom/Document.cpp:6157
&gt;&gt;&gt; +    ASSERT(innerNodeInDocument-&gt;document() == this);
&gt;&gt; 
&gt;&gt; We are hitting this assertion in several tests now (at least on EFL port) :
&gt;&gt; http://build.webkit.org/results/EFL%20Linux%2064-bit%20Debug/r128762%20(5986)/results.html
&gt; 
&gt; It seems to hit the assertion on Mac as well:
&gt; http://build.webkit.org/builders/Apple%20MountainLion%20Debug%20WK1%20%28Tests%29/builds/924
&gt; 
&gt; Exited early after 20 crashes.

The assertion forgets to check for innerNode being null. ASSERT(!innerNodeInDocument || innerNodeInDocument-&gt;document() == this);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>722628</commentid>
    <comment_count>13</comment_count>
    <who name="Allan Sandfeld Jensen">allan.jensen</who>
    <bug_when>2012-09-18 03:30:24 -0700</bug_when>
    <thetext>Last patch landed as http://trac.webkit.org/changeset/128869</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164236</attachid>
            <date>2012-09-14 15:26:08 -0700</date>
            <delta_ts>2012-09-17 02:02:33 -0700</delta_ts>
            <desc>Proposed revert.</desc>
            <filename>bug-96830-20120914152540.patch</filename>
            <type>text/plain</type>
            <size>40892</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4NjU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjBlMWU2MWY4YzNhZTJh
MzliYTk4YTgwMmZkNjhkODI0MjZmYjliMS4uOWRmODZmZjI3MTgyYTdlMTIxZGU4ZTQ3Mjg0NjVk
NDYyM2E1OTQyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEyLTA5LTE0ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmVydCBy
MTI3NDU3IGFuZCBmb2xsb3dpbmcgZml4ZXMgZHVlIHRvIHNldmVyYWwgaGl0LXRlc3RpbmcgcmVn
cmVzc2lvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTk2ODMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyBjaGFuZ2UgcmV2ZXJ0cyByMTI3NDU3LCByMTI3ODYzIGFuZCByMTI4NTA1LgorCisgICAg
ICAgICogV2ViQ29yZS5leHAuaW46CisgICAgICAgICogV2ViQ29yZS5vcmRlcjoKKyAgICAgICAg
KiBkb20vRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om5vZGVzRnJv
bVJlY3QpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAoRG9jdW1lbnQpOgor
ICAgICAgICAqIHBhZ2UvRXZlbnRIYW5kbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkV2ZW50
SGFuZGxlcjo6aGl0VGVzdFJlc3VsdEF0UG9pbnQpOgorICAgICAgICAqIHJlbmRlcmluZy9IaXRU
ZXN0UmVxdWVzdC5oOgorICAgICAgICAqIHJlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhpdFRlc3RMb2NhdGlvbjo6SGl0VGVzdExvY2F0aW9uKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oOgorICAgICAgICAoSGl0VGVzdExvY2F0aW9u
KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRnJhbWVCYXNlLmNwcDoKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyRnJhbWVCYXNlLmg6CisgICAgICAgIChSZW5kZXJGcmFtZUJhc2UpOgor
ICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJMYXllci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJMYXllcjo6aGl0VGVzdCk6CisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjpub2Rlc0Zyb21SZWN0KToKKyAgICAgICAgKiB0
ZXN0aW5nL0ludGVybmFscy5oOgorICAgICAgICAoSW50ZXJuYWxzKToKKyAgICAgICAgKiB0ZXN0
aW5nL0ludGVybmFscy5pZGw6CisKIDIwMTItMDktMTQgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZy
YXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTjogdHJhbnNpdGlvbiBkb2VzbuKA
mXQgYWx3YXlzIG92ZXJyaWRlIHRyYW5zaXRpb24tcHJvcGVydHkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKaW5kZXggNzQ2NWI0MjljY2ZlM2QyZTA0MzI0OWI2OGUxOTUxMGQzNDFiMWZhMS4uNDlh
ZDlmNTI3ZjEwMmEyYTk3YTI0ZGI0ZTE0NzFlYjEwNDA5ZjE4YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wOS0xNCAgSnVsaWVuIENoYWZmcmFpeCAg
PGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZlcnQgcjEyNzQ1NyBhbmQgZm9s
bG93aW5nIGZpeGVzIGR1ZSB0byBzZXZlcmFsIGhpdC10ZXN0aW5nIHJlZ3Jlc3Npb25zCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjgzMAorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIHJl
dmVydHMgcjEyNzQ1NywgcjEyNzg2MyBhbmQgcjEyODUwNS4KKworICAgICAgICAqIHNyYy9Db250
ZXh0TWVudUNsaWVudEltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpDb250ZXh0TWVudUNsaWVu
dEltcGw6OmdldEN1c3RvbU1lbnVGcm9tRGVmYXVsdEl0ZW1zKToKKwogMjAxMi0wOS0xNCAgU2hl
cmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBnbWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZC4gIFJvbGxlZCBERVBTLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDk2YmQ0MjdhNzZmNTllNGE5MWI0MDUx
ZTgzNzkyYjdjZmM5YjY4YmEuLjMwY2QyZWE3ZDY3ZThjYzRhZjZkNWQ0MTJiYTQ5MjBiYWQyZTYy
MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxMi0wOS0xNCAgSnVsaWVuIENoYWZm
cmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZlcnQgcjEyNzQ1NyBh
bmQgZm9sbG93aW5nIGZpeGVzIGR1ZSB0byBzZXZlcmFsIGhpdC10ZXN0aW5nIHJlZ3Jlc3Npb25z
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NjgzMAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hh
bmdlIHJldmVydHMgcjEyNzQ1NywgcjEyNzg2MyBhbmQgcjEyODUwNS4KKworICAgICAgICAqIHdp
bi9XZWJLaXQyLmRlZjoKKyAgICAgICAgKiB3aW4vV2ViS2l0MkNGTGl0ZS5kZWY6CisKIDIwMTIt
MDktMTQgIEplZmZyZXkgUGZhdSAgPGpwZmF1QGFwcGxlLmNvbT4KIAogICAgICAgICBBbGxvdyB0
aGlyZC1wYXJ0eSBzdG9yYWdlIGJsb2NraW5nIHNldHRpbmcgdG8gY2hhbmdlIHdoaWxlIGEgcGFn
ZSBpcyBsb2FkZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZXhwLmluIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KaW5kZXggOWZmODViYmUxNDkzZGM2OTkwYWVl
OWIyY2NlZTBmZTA4MjBkZmI4Yy4uNGM2MmIzZTg2OWE0NWY3NDBkMTBmNmI4MjdmZjU1ZjU0OWZi
ODAwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4KQEAgLTEzNjAsNyArMTM2MCw3IEBAIF9fWk5LN1dl
YkNvcmU3UnVuTG9vcDlUaW1lckJhc2U4aXNBY3RpdmVFdgogX19aTks3V2ViQ29yZThEb2N1bWVu
dDEwcmVuZGVyVmlld0V2CiBfX1pOSzdXZWJDb3JlOERvY3VtZW50MTFjb21wbGV0ZVVSTEVSS04z
V1RGNlN0cmluZ0UKIF9fWk5LN1dlYkNvcmU4RG9jdW1lbnQxM2F4T2JqZWN0Q2FjaGVFdgotX19a
Tks3V2ViQ29yZThEb2N1bWVudDEzbm9kZXNGcm9tUmVjdEVpaWpqampiYmIKK19fWk5LN1dlYkNv
cmU4RG9jdW1lbnQxM25vZGVzRnJvbVJlY3RFaWlqampqYmIKIF9fWk5LN1dlYkNvcmU4RG9jdW1l
bnQxNGdldEVsZW1lbnRCeUlkRVJLTjNXVEYxMkF0b21pY1N0cmluZ0UKIF9fWk5LN1dlYkNvcmU4
RG9jdW1lbnQzMWRpc3BsYXlTdHJpbmdNb2RpZmllZEJ5RW5jb2RpbmdFUktOM1dURjZTdHJpbmdF
CiBfX1pOSzdXZWJDb3JlOERvY3VtZW50NGJvZHlFdgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS5vcmRlciBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUub3JkZXIKaW5kZXggYTI0
MzQzMjlmOWYwODlhMjYyMTVmNjZmZWU0ZGZiZTNiMTYxNDdiZS4uNTc0NGMwN2VmZWVhYzFkYmE0
NzVhZmE5OWU3ZjExN2E4NjQyNDc5YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS5vcmRlcgorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLm9yZGVyCkBAIC0yMjc4NSw3ICsy
Mjc4NSw3IEBAIF9fWk5LN1dlYkNvcmUxMk5vZGVJdGVyYXRvcjIwdXBkYXRlRm9yTm9kZVJlbW92
YWxFUE5TXzROb2RlRVJOUzBfMTFOb2RlUG9pbnRlckUKIF9fWk43V2ViQ29yZTI3anNOb2RlSXRl
cmF0b3JSZWZlcmVuY2VOb2RlRVBOM0pTQzlFeGVjU3RhdGVFTlMwXzdKU1ZhbHVlRVJLTlMwXzEw
SWRlbnRpZmllckUKIF9fWk5LN1dlYkNvcmU0Tm9kZTIwdHJhdmVyc2VQcmV2aW91c05vZGVFUEtT
MF8KIF9fWk43V2ViQ29yZTM3anNOb2RlSXRlcmF0b3JQcm90b3R5cGVGdW5jdGlvbkRldGFjaEVQ
TjNKU0M5RXhlY1N0YXRlRQotX19aTks3V2ViQ29yZThEb2N1bWVudDEzbm9kZXNGcm9tUmVjdEVp
aWpqampiYmIKK19fWk5LN1dlYkNvcmU4RG9jdW1lbnQxM25vZGVzRnJvbVJlY3RFaWlqampqYgog
X19aTks3V2ViQ29yZThEb2N1bWVudDE3aGFuZGxlWmVyb1BhZGRpbmdFUktOU18xNEhpdFRlc3RS
ZXF1ZXN0RVJOU18xM0hpdFRlc3RSZXN1bHRFCiBfX1pOM1dURjIxTGlzdEhhc2hTZXRUcmFuc2xh
dG9ySU5TXzZSZWZQdHJJTjdXZWJDb3JlNE5vZGVFRUVMbTI1NkVOU183UHRySGFzaElTNF9FRUU5
dHJhbnNsYXRlRVJQTlNfMTVMaXN0SGFzaFNldE5vZGVJUzRfTG0yNTZFRUVSS1M0X1BOU18yNExp
c3RIYXNoU2V0Tm9kZUFsbG9jYXRvcklTNF9MbTI1NkVFRQogX19aTjdXZWJDb3JlMjFTdGF0aWNI
YXNoU2V0Tm9kZUxpc3RDMUVSTjNXVEYxMUxpc3RIYXNoU2V0SU5TMV82UmVmUHRySU5TXzROb2Rl
RUVFTG0yNTZFTlMxXzdQdHJIYXNoSVM1X0VFRUUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4
IDQ1NDZmZjVlMzg3OTlhOTY4MjY1NzczMzY5NTc4ZTU0ZDMxNzlkZTYuLmMxODJkODEwZTlkNzU4
MzFlMmNhYzg0NTVmZWRiZTAxYjI0YmE4MmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAt
MTM4Nyw3ICsxMzg3LDcgQEAgU3RyaW5nIERvY3VtZW50OjpzdWdnZXN0ZWRNSU1FVHlwZSgpIGNv
bnN0CiAvLyAqIG1ha2luZyBpdCByZWNlaXZlIGEgcmVjdCBhcyBwYXJhbWV0ZXIsIGkuZS4gbm9k
ZXNGcm9tUmVjdCh4LCB5LCB3LCBoKTsKIC8vICogbWFraW5nIGl0IHJlY2VpdmUgdGhlIGV4cGFk
aW5nIHNpemUgb2YgZWFjaCBkaXJlY3Rpb24gc2VwYXJhdGVseSwKIC8vICAgaS5lLiBub2Rlc0Zy
b21SZWN0KHgsIHksIHRvcFNpemUsIHJpZ2h0U2l6ZSwgYm90dG9tU2l6ZSwgbGVmdFNpemUpOwot
UGFzc1JlZlB0cjxOb2RlTGlzdD4gRG9jdW1lbnQ6Om5vZGVzRnJvbVJlY3QoaW50IGNlbnRlclgs
IGludCBjZW50ZXJZLCB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdodFBhZGRpbmcs
IHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5nLCBib29sIGlnbm9y
ZUNsaXBwaW5nLCBib29sIGFsbG93U2hhZG93Q29udGVudCwgYm9vbCBhbGxvd0NoaWxkRnJhbWVD
b250ZW50KSBjb25zdAorUGFzc1JlZlB0cjxOb2RlTGlzdD4gRG9jdW1lbnQ6Om5vZGVzRnJvbVJl
Y3QoaW50IGNlbnRlclgsIGludCBjZW50ZXJZLCB1bnNpZ25lZCB0b3BQYWRkaW5nLCB1bnNpZ25l
ZCByaWdodFBhZGRpbmcsIHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRk
aW5nLCBib29sIGlnbm9yZUNsaXBwaW5nLCBib29sIGFsbG93U2hhZG93Q29udGVudCkgY29uc3QK
IHsKICAgICAvLyBGSVhNRTogU2hhcmUgY29kZSBiZXR3ZWVuIHRoaXMsIGVsZW1lbnRGcm9tUG9p
bnQgYW5kIGNhcmV0UmFuZ2VGcm9tUG9pbnQuCiAgICAgaWYgKCFyZW5kZXJlcigpKQpAQCAtMTQx
MSw4ICsxNDExLDYgQEAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gRG9jdW1lbnQ6Om5vZGVzRnJvbVJl
Y3QoaW50IGNlbnRlclgsIGludCBjZW50ZXJZLCB1bnNpZ25lZAogICAgICAgICByZXR1cm4gMDsK
ICAgICBpZiAoYWxsb3dTaGFkb3dDb250ZW50KQogICAgICAgICB0eXBlIHw9IEhpdFRlc3RSZXF1
ZXN0OjpBbGxvd1NoYWRvd0NvbnRlbnQ7Ci0gICAgaWYgKGFsbG93Q2hpbGRGcmFtZUNvbnRlbnQp
Ci0gICAgICAgIHR5cGUgfD0gSGl0VGVzdFJlcXVlc3Q6OkFsbG93Q2hpbGRGcmFtZUNvbnRlbnQ7
CiAKICAgICBIaXRUZXN0UmVxdWVzdCByZXF1ZXN0KHR5cGUpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CmluZGV4IDUwZjdlYjIwMjYwYWU4NjNlZTkwOWYxMzQ3N2Q5NGExYjE2YTNkMmUuLmNiZDAyNGMz
NGMzMDM0MjA0ZGM3M2RiMTJmNTk1ZTBmYzQxNGU1N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBA
IC0zODAsOSArMzgwLDggQEAgcHVibGljOgogICAgICAqIEBwYXJhbSBpZ25vcmVDbGlwcGluZyB3
aGV0aGVyIG9yIG5vdCB0byBpZ25vcmUgdGhlIHJvb3Qgc2Nyb2xsIGZyYW1lIHdoZW4gcmV0cmll
dmluZyB0aGUgZWxlbWVudC4KICAgICAgKiAgICAgICAgSWYgZmFsc2UsIHRoaXMgbWV0aG9kIHJl
dHVybnMgbnVsbCBmb3IgY29vcmRpbmF0ZXMgb3V0c2lkZSBvZiB0aGUgdmlld3BvcnQuCiAgICAg
ICovCi0gICAgUGFzc1JlZlB0cjxOb2RlTGlzdD4gbm9kZXNGcm9tUmVjdChpbnQgY2VudGVyWCwg
aW50IGNlbnRlclksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1bnNp
Z25lZCB0b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdodFBhZGRpbmcsIHVuc2lnbmVkIGJvdHRvbVBh
ZGRpbmcsIHVuc2lnbmVkIGxlZnRQYWRkaW5nLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgYm9vbCBpZ25vcmVDbGlwcGluZywgYm9vbCBhbGxvd1NoYWRvd0NvbnRlbnQs
IGJvb2wgYWxsb3dDaGlsZEZyYW1lQ29udGVudCA9IGZhbHNlKSBjb25zdDsKKyAgICBQYXNzUmVm
UHRyPE5vZGVMaXN0PiBub2Rlc0Zyb21SZWN0KGludCBjZW50ZXJYLCBpbnQgY2VudGVyWSwgdW5z
aWduZWQgdG9wUGFkZGluZywgdW5zaWduZWQgcmlnaHRQYWRkaW5nLAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgdW5zaWduZWQgYm90dG9tUGFkZGluZywgdW5zaWduZWQg
bGVmdFBhZGRpbmcsIGJvb2wgaWdub3JlQ2xpcHBpbmcsIGJvb2wgYWxsb3dTaGFkb3dDb250ZW50
KSBjb25zdDsKICAgICBFbGVtZW50KiBlbGVtZW50RnJvbVBvaW50KGludCB4LCBpbnQgeSkgY29u
c3Q7CiAgICAgUGFzc1JlZlB0cjxSYW5nZT4gY2FyZXRSYW5nZUZyb21Qb2ludChpbnQgeCwgaW50
IHkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKaW5kZXggNDhkMDc5ZTIyYjcx
YzQxYTVkOTMwNGQ4YmUyMWJhMjZiOGIzODkyMS4uMmRlODJiZGUzYTA2OGVjZmI1ZTI3OGYwMjZj
YTY3ZTQ4ZGFmMjNhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9FdmVudEhhbmRs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcApAQCAtMTA0
OSwxMyArMTA0OSwzMyBAQCBIaXRUZXN0UmVzdWx0IEV2ZW50SGFuZGxlcjo6aGl0VGVzdFJlc3Vs
dEF0UG9pbnQoY29uc3QgTGF5b3V0UG9pbnQmIHBvaW50LCBib29sCiAgICAgICAgIGhpdFR5cGUg
fD0gSGl0VGVzdFJlcXVlc3Q6Oklnbm9yZUNsaXBwaW5nOwogICAgIGlmIChhbGxvd1NoYWRvd0Nv
bnRlbnQpCiAgICAgICAgIGhpdFR5cGUgfD0gSGl0VGVzdFJlcXVlc3Q6OkFsbG93U2hhZG93Q29u
dGVudDsKLSAgICBpZiAodGVzdFNjcm9sbGJhcnMgPT0gU2hvdWxkSGl0VGVzdFNjcm9sbGJhcnMp
Ci0gICAgICAgIGhpdFR5cGUgfD0gSGl0VGVzdFJlcXVlc3Q6OlRlc3RDaGlsZEZyYW1lU2Nyb2xs
QmFyczsKLSAgICAvLyBXZSBhbHdheXMgbmVlZCB0byBoYW5kbGUgY2hpbGQgZnJhbWUgY29udGVu
dC4KLSAgICBoaXRUeXBlIHw9IEhpdFRlc3RSZXF1ZXN0OjpBbGxvd0NoaWxkRnJhbWVDb250ZW50
OwotCiAgICAgbV9mcmFtZS0+Y29udGVudFJlbmRlcmVyKCktPmhpdFRlc3QoSGl0VGVzdFJlcXVl
c3QoaGl0VHlwZSksIHJlc3VsdCk7CiAKKyAgICB3aGlsZSAodHJ1ZSkgeworICAgICAgICBOb2Rl
KiBuID0gcmVzdWx0LmlubmVyTm9kZSgpOworICAgICAgICBpZiAoIXJlc3VsdC5pc092ZXJXaWRn
ZXQoKSB8fCAhbiB8fCAhbi0+cmVuZGVyZXIoKSB8fCAhbi0+cmVuZGVyZXIoKS0+aXNXaWRnZXQo
KSkKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBSZW5kZXJXaWRnZXQqIHJlbmRlcldpZGdl
dCA9IHRvUmVuZGVyV2lkZ2V0KG4tPnJlbmRlcmVyKCkpOworICAgICAgICBXaWRnZXQqIHdpZGdl
dCA9IHJlbmRlcldpZGdldC0+d2lkZ2V0KCk7CisgICAgICAgIGlmICghd2lkZ2V0IHx8ICF3aWRn
ZXQtPmlzRnJhbWVWaWV3KCkpCisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgRnJhbWUqIGZy
YW1lID0gc3RhdGljX2Nhc3Q8SFRNTEZyYW1lRWxlbWVudEJhc2UqPihuKS0+Y29udGVudEZyYW1l
KCk7CisgICAgICAgIGlmICghZnJhbWUgfHwgIWZyYW1lLT5jb250ZW50UmVuZGVyZXIoKSkKKyAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICBGcmFtZVZpZXcqIHZpZXcgPSBzdGF0aWNfY2FzdDxG
cmFtZVZpZXcqPih3aWRnZXQpOworICAgICAgICBMYXlvdXRQb2ludCB3aWRnZXRQb2ludChyZXN1
bHQubG9jYWxQb2ludCgpLngoKSArIHZpZXctPnNjcm9sbFgoKSAtIHJlbmRlcldpZGdldC0+Ym9y
ZGVyTGVmdCgpIC0gcmVuZGVyV2lkZ2V0LT5wYWRkaW5nTGVmdCgpLCAKKyAgICAgICAgICAgIHJl
c3VsdC5sb2NhbFBvaW50KCkueSgpICsgdmlldy0+c2Nyb2xsWSgpIC0gcmVuZGVyV2lkZ2V0LT5i
b3JkZXJUb3AoKSAtIHJlbmRlcldpZGdldC0+cGFkZGluZ1RvcCgpKTsKKyAgICAgICAgSGl0VGVz
dFJlc3VsdCB3aWRnZXRIaXRUZXN0UmVzdWx0KHdpZGdldFBvaW50LCBwYWRkaW5nLmhlaWdodCgp
LCBwYWRkaW5nLndpZHRoKCksIHBhZGRpbmcuaGVpZ2h0KCksIHBhZGRpbmcud2lkdGgoKSk7Cisg
ICAgICAgIGZyYW1lLT5jb250ZW50UmVuZGVyZXIoKS0+aGl0VGVzdChIaXRUZXN0UmVxdWVzdCho
aXRUeXBlKSwgd2lkZ2V0SGl0VGVzdFJlc3VsdCk7CisgICAgICAgIHJlc3VsdCA9IHdpZGdldEhp
dFRlc3RSZXN1bHQ7CisKKyAgICAgICAgaWYgKHRlc3RTY3JvbGxiYXJzID09IFNob3VsZEhpdFRl
c3RTY3JvbGxiYXJzKSB7CisgICAgICAgICAgICBTY3JvbGxiYXIqIGV2ZW50U2Nyb2xsYmFyID0g
dmlldy0+c2Nyb2xsYmFyQXRQb2ludChyb3VuZGVkSW50UG9pbnQocG9pbnQpKTsKKyAgICAgICAg
ICAgIGlmIChldmVudFNjcm9sbGJhcikKKyAgICAgICAgICAgICAgICByZXN1bHQuc2V0U2Nyb2xs
YmFyKGV2ZW50U2Nyb2xsYmFyKTsKKyAgICAgICAgfQorICAgIH0KKyAgICAKICAgICAvLyBJZiBv
dXIgSGl0VGVzdFJlc3VsdCBpcyBub3QgdmlzaWJsZSwgdGhlbiB3ZSBzdGFydGVkIGhpdCB0ZXN0
aW5nIHRvbyBmYXIgZG93biB0aGUgZnJhbWUgY2hhaW4uIAogICAgIC8vIEFub3RoZXIgaGl0IHRl
c3QgYXQgdGhlIG1haW4gZnJhbWUgbGV2ZWwgc2hvdWxkIGdldCB1cyB0aGUgY29ycmVjdCB2aXNp
YmxlIHJlc3VsdC4KICAgICBGcmFtZSogcmVzdWx0RnJhbWUgPSByZXN1bHQuaW5uZXJOb25TaGFy
ZWROb2RlKCkgPyByZXN1bHQuaW5uZXJOb25TaGFyZWROb2RlKCktPmRvY3VtZW50KCktPmZyYW1l
KCkgOiAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXF1
ZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlcXVlc3QuaAppbmRleCAz
ZmFmODhhOWY5MTM3NjFlYzAxM2Q2ZTdkMmNkZGFmMzJmODRkNzlmLi5kOTM3YzI1MDQ2OTM5NmI3
NGI3NDRlMmQyMDAzNjRhOWQ3YjA0MTcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSGl0VGVzdFJlcXVlc3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0
VGVzdFJlcXVlc3QuaApAQCAtMzUsMTAgKzM1LDcgQEAgcHVibGljOgogICAgICAgICBJZ25vcmVD
bGlwcGluZyA9IDEgPDwgNSwKICAgICAgICAgU1ZHQ2xpcENvbnRlbnQgPSAxIDw8IDYsCiAgICAg
ICAgIFRvdWNoRXZlbnQgPSAxIDw8IDcsCi0gICAgICAgIEFsbG93U2hhZG93Q29udGVudCA9IDEg
PDwgOCwKLSAgICAgICAgQWxsb3dDaGlsZEZyYW1lQ29udGVudCA9IDEgPDwgOSwKLSAgICAgICAg
Q2hpbGRGcmFtZUhpdFRlc3QgPSAxIDw8IDEwLAotICAgICAgICBUZXN0Q2hpbGRGcmFtZVNjcm9s
bEJhcnMgPSAxIDw8IDExCisgICAgICAgIEFsbG93U2hhZG93Q29udGVudCA9IDEgPDwgOAogICAg
IH07CiAKICAgICB0eXBlZGVmIHVuc2lnbmVkIEhpdFRlc3RSZXF1ZXN0VHlwZTsKQEAgLTU3LDkg
KzU0LDYgQEAgcHVibGljOgogICAgIGJvb2wgdG91Y2hFdmVudCgpIGNvbnN0IHsgcmV0dXJuIG1f
cmVxdWVzdFR5cGUgJiBUb3VjaEV2ZW50OyB9CiAgICAgYm9vbCBtb3VzZUV2ZW50KCkgY29uc3Qg
eyByZXR1cm4gIXRvdWNoRXZlbnQoKTsgfQogICAgIGJvb2wgYWxsb3dzU2hhZG93Q29udGVudCgp
IGNvbnN0IHsgcmV0dXJuIG1fcmVxdWVzdFR5cGUgJiBBbGxvd1NoYWRvd0NvbnRlbnQ7IH0KLSAg
ICBib29sIGFsbG93c0NoaWxkRnJhbWVDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0
VHlwZSAmIEFsbG93Q2hpbGRGcmFtZUNvbnRlbnQ7IH0KLSAgICBib29sIGlzQ2hpbGRGcmFtZUhp
dFRlc3QoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3RUeXBlICYgQ2hpbGRGcmFtZUhpdFRlc3Q7
IH0KLSAgICBib29sIHNob3VsZFRlc3RDaGlsZEZyYW1lU2Nyb2xsQmFycygpIGNvbnN0IHsgcmV0
dXJuIG1fcmVxdWVzdFR5cGUgJiBUZXN0Q2hpbGRGcmFtZVNjcm9sbEJhcnM7IH0KIAogICAgIC8v
IENvbnZlbmllbmNlIGZ1bmN0aW9ucwogICAgIGJvb2wgdG91Y2hNb3ZlKCkgY29uc3QgeyByZXR1
cm4gbW92ZSgpICYmIHRvdWNoRXZlbnQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hp
dFRlc3RSZXN1bHQuY3BwCmluZGV4IDgwNjNjODEyZWExNmVmY2ZjMWE1ZWE0YmVhMTE3NGZjMDI4
YTgzYzEuLmNjMzkwNTY4Y2UwMjk4NmQyMGJiYjFjZmZjMTAxM2JlMDllZjNjYTMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5jcHAKQEAgLTEwNCw3ICsxMDQsNyBA
QCBIaXRUZXN0TG9jYXRpb246OkhpdFRlc3RMb2NhdGlvbihjb25zdCBIaXRUZXN0TG9jYXRpb24m
IG90aGVyLCBjb25zdCBMYXlvdXRTaXplJgogICAgICwgbV9ib3VuZGluZ0JveChvdGhlci5tX2Jv
dW5kaW5nQm94KQogICAgICwgbV90cmFuc2Zvcm1lZFBvaW50KG90aGVyLm1fdHJhbnNmb3JtZWRQ
b2ludCkKICAgICAsIG1fdHJhbnNmb3JtZWRSZWN0KG90aGVyLm1fdHJhbnNmb3JtZWRSZWN0KQot
ICAgICwgbV9yZWdpb24ocmVnaW9uID8gcmVnaW9uIDogb3RoZXIubV9yZWdpb24pCisgICAgLCBt
X3JlZ2lvbihyZWdpb24pCiAgICAgLCBtX2lzUmVjdEJhc2VkKG90aGVyLm1faXNSZWN0QmFzZWQp
CiAgICAgLCBtX2lzUmVjdGlsaW5lYXIob3RoZXIubV9pc1JlY3RpbGluZWFyKQogewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1bHQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9IaXRUZXN0UmVzdWx0LmgKaW5kZXggYmFjOTZhMmIxZjkyYTY1NTU4
Y2ZlYjM3MWIwYTJhMmY3YmE1MzM3Yi4uOTEyOWVlZDQ0MTFhMDAwNTAzMTA5ZjYxNDNiMWRiNTNk
ZjJmMjAwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpdFRlc3RSZXN1
bHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGl0VGVzdFJlc3VsdC5oCkBAIC01
NSw3ICs1NSw3IEBAIHB1YmxpYzoKICAgICAvLyBQYXNzIG5vbi16ZXJvIHBhZGRpbmcgdmFsdWVz
IHRvIHBlcmZvcm0gYSByZWN0LWJhc2VkIGhpdCB0ZXN0LgogICAgIEhpdFRlc3RMb2NhdGlvbihj
b25zdCBMYXlvdXRQb2ludCYgY2VudGVyUG9pbnQsIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2ln
bmVkIHJpZ2h0UGFkZGluZywgdW5zaWduZWQgYm90dG9tUGFkZGluZywgdW5zaWduZWQgbGVmdFBh
ZGRpbmcpOwogICAgIC8vIE1ha2UgYSBjb3B5IHRoZSBIaXRUZXN0TG9jYXRpb24gaW4gYSBuZXcg
cmVnaW9uIGJ5IGFwcGx5aW5nIGdpdmVuIG9mZnNldCB0byBpbnRlcm5hbCBwb2ludCBhbmQgYXJl
YS4KLSAgICBIaXRUZXN0TG9jYXRpb24oY29uc3QgSGl0VGVzdExvY2F0aW9uJiwgY29uc3QgTGF5
b3V0U2l6ZSYgb2Zmc2V0LCBSZW5kZXJSZWdpb24qID0gMCk7CisgICAgSGl0VGVzdExvY2F0aW9u
KGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYsIGNvbnN0IExheW91dFNpemUmIG9mZnNldCwgUmVuZGVy
UmVnaW9uKik7CiAgICAgSGl0VGVzdExvY2F0aW9uKGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYpOwog
ICAgIH5IaXRUZXN0TG9jYXRpb24oKTsKICAgICBIaXRUZXN0TG9jYXRpb24mIG9wZXJhdG9yPShj
b25zdCBIaXRUZXN0TG9jYXRpb24mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGcmFtZUJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckZyYW1lQmFzZS5jcHAKaW5kZXggZGEyZGM1YTEyMzFmMjk4NGQ0YTRhMTlhOWFjZGFkZmMyYjIw
ZTIxNS4uYWE4Mjg3MGQ0ZWZhOGFkYmM4MTk2ZmRkNmE1MDZmNTk4Y2IwNzUzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lQmFzZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lQmFzZS5jcHAKQEAgLTI5LDggKzI5LDYg
QEAKICNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2luY2x1ZGUg
IkhUTUxGcmFtZUVsZW1lbnRCYXNlLmgiCi0jaW5jbHVkZSAiSGl0VGVzdFJlc3VsdC5oIgotI2lu
Y2x1ZGUgIlJlbmRlckxheWVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CkBAIC0xMDYsMzQgKzEwNCw0IEBAIHZvaWQgUmVuZGVyRnJhbWVCYXNlOjps
YXlvdXRXaXRoRmxhdHRlbmluZyhib29sIGhhc0ZpeGVkV2lkdGgsIGJvb2wgaGFzRml4ZWRIZWln
CiAgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQogCi1ib29sIFJlbmRlckZyYW1lQmFzZTo6
bm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQm
IHJlc3VsdCwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25z
dCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24gYWN0aW9uKQot
ewotICAgIGlmIChyZXF1ZXN0LmFsbG93c0NoaWxkRnJhbWVDb250ZW50KCkpIHsKLSAgICAgICAg
RnJhbWVWaWV3KiBjaGlsZEZyYW1lVmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHdpZGdl
dCgpKTsKLSAgICAgICAgUmVuZGVyVmlldyogY2hpbGRSb290ID0gY2hpbGRGcmFtZVZpZXcgPyBz
dGF0aWNfY2FzdDxSZW5kZXJWaWV3Kj4oY2hpbGRGcmFtZVZpZXctPmZyYW1lKCktPmNvbnRlbnRS
ZW5kZXJlcigpKSA6IDA7Ci0KLSAgICAgICAgaWYgKGNoaWxkUm9vdCkgewotICAgICAgICAgICAg
TGF5b3V0UG9pbnQgYWRqdXN0ZWRMb2NhdGlvbiA9IGFjY3VtdWxhdGVkT2Zmc2V0ICsgbG9jYXRp
b24oKTsKLSAgICAgICAgICAgIExheW91dFBvaW50IGNvbnRlbnRPZmZzZXQgPSBMYXlvdXRQb2lu
dChib3JkZXJMZWZ0KCkgKyBwYWRkaW5nTGVmdCgpLCBib3JkZXJUb3AoKSArIHBhZGRpbmdUb3Ao
KSkgLSBjaGlsZEZyYW1lVmlldy0+c2Nyb2xsT2Zmc2V0KCk7Ci0gICAgICAgICAgICBIaXRUZXN0
TG9jYXRpb24gbmV3SGl0VGVzdExvY2F0aW9uKGxvY2F0aW9uSW5Db250YWluZXIsIC1hZGp1c3Rl
ZExvY2F0aW9uIC0gY29udGVudE9mZnNldCk7Ci0gICAgICAgICAgICBIaXRUZXN0UmVxdWVzdCBu
ZXdIaXRUZXN0UmVxdWVzdChyZXF1ZXN0LnR5cGUoKSB8IEhpdFRlc3RSZXF1ZXN0OjpDaGlsZEZy
YW1lSGl0VGVzdCk7Ci0KLSAgICAgICAgICAgIGJvb2wgaXNJbnNpZGVDaGlsZEZyYW1lID0gY2hp
bGRSb290LT5oaXRUZXN0KG5ld0hpdFRlc3RSZXF1ZXN0LCBuZXdIaXRUZXN0TG9jYXRpb24sIHJl
c3VsdCk7Ci0gICAgICAgICAgICBpZiAoaXNJbnNpZGVDaGlsZEZyYW1lKQotICAgICAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotCi0gICAgICAgICAgICBpZiAocmVxdWVzdC5zaG91bGRUZXN0Q2hp
bGRGcmFtZVNjcm9sbEJhcnMoKSkgewotICAgICAgICAgICAgICAgIC8vIFNjcm9sbFZpZXcgc2Ny
b2xsYmFycyBhcmUgbm90IHRoZSBzYW1lIGFzIFJlbmRlckxheWVyIHNjcm9sbGJhcnMgdGVzdGVk
IGJ5IFJlbmRlckxheWVyOjpoaXRUZXN0T3ZlcmZsb3dDb250cm9scywKLSAgICAgICAgICAgICAg
ICAvLyBzbyB3ZSBuZWVkIHRvIHRlc3QgU2Nyb2xsVmlldyBzY3JvbGxiYXJzIHNlcGFyYXRlbHkg
aGVyZS4KLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogQ29uc2lkZXIgaWYgdGhpcyB0ZXN0IGNv
dWxkIGJlIGRvbmUgdW5jb25kaXRpb25hbGx5LgotICAgICAgICAgICAgICAgIFNjcm9sbGJhciog
ZnJhbWVTY3JvbGxiYXIgPSBjaGlsZEZyYW1lVmlldy0+c2Nyb2xsYmFyQXRQb2ludChuZXdIaXRU
ZXN0TG9jYXRpb24ucm91bmRlZFBvaW50KCkpOwotICAgICAgICAgICAgICAgIGlmIChmcmFtZVNj
cm9sbGJhcikKLSAgICAgICAgICAgICAgICAgICAgcmVzdWx0LnNldFNjcm9sbGJhcihmcmFtZVNj
cm9sbGJhcik7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICByZXR1cm4g
UmVuZGVyUGFydDo6bm9kZUF0UG9pbnQocmVxdWVzdCwgcmVzdWx0LCBsb2NhdGlvbkluQ29udGFp
bmVyLCBhY2N1bXVsYXRlZE9mZnNldCwgYWN0aW9uKTsKLX0KLQogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZyYW1lQmFzZS5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZyYW1lQmFzZS5oCmluZGV4IGE3ZGVlZGFiMTAyODNkZjY5NTQxOGVk
ZTBmYmI5NGQ0OWUxMmU0OTEuLjRmYWQ1NjBjNWIzMzdmOTZiODEzYjBjYjc5MDU0NTM2MmRjNjY4
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGcmFtZUJhc2Uu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRnJhbWVCYXNlLmgKQEAgLTM2
LDcgKzM2LDYgQEAgcHJvdGVjdGVkOgogICAgIGV4cGxpY2l0IFJlbmRlckZyYW1lQmFzZShFbGVt
ZW50Kik7CiAKIHB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0
VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2Nh
dGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhp
dFRlc3RBY3Rpb24pIE9WRVJSSURFOwogICAgIHZvaWQgbGF5b3V0V2l0aEZsYXR0ZW5pbmcoYm9v
bCBmaXhlZFdpZHRoLCBib29sIGZpeGVkSGVpZ2h0KTsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCmluZGV4IDRkYWVlY2Y5MzZjMjllZmNhOGNjZmQ4MTY2NzA3
MjFjNDY5MDU1ZGIuLjAyZTFmMTdlNDU4OGM2M2UwZWEzMGMwNTg0NWU5Mzc3YWIyYTE3N2EgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcApAQCAtMzQ2MSw3ICszNDYx
LDcgQEAgYm9vbCBSZW5kZXJMYXllcjo6aGl0VGVzdChjb25zdCBIaXRUZXN0UmVxdWVzdCYgcmVx
dWVzdCwgY29uc3QgSGl0VGVzdExvY2F0aW9uJgogICAgICAgICAvLyBXZSBkaWRuJ3QgaGl0IGFu
eSBsYXllci4gSWYgd2UgYXJlIHRoZSByb290IGxheWVyIGFuZCB0aGUgbW91c2UgaXMgLS0gb3Ig
anVzdCB3YXMgLS0gZG93biwgCiAgICAgICAgIC8vIHJldHVybiBvdXJzZWx2ZXMuIFdlIGRvIHRo
aXMgc28gbW91c2UgZXZlbnRzIGNvbnRpbnVlIGdldHRpbmcgZGVsaXZlcmVkIGFmdGVyIGEgZHJh
ZyBoYXMgCiAgICAgICAgIC8vIGV4aXRlZCB0aGUgV2ViVmlldywgYW5kIHNvIGhpdCB0ZXN0aW5n
IG92ZXIgYSBzY3JvbGxiYXIgaGl0cyB0aGUgY29udGVudCBkb2N1bWVudC4KLSAgICAgICAgaWYg
KCFyZXF1ZXN0LmlzQ2hpbGRGcmFtZUhpdFRlc3QoKSAmJiAocmVxdWVzdC5hY3RpdmUoKSB8fCBy
ZXF1ZXN0LnJlbGVhc2UoKSkgJiYgaXNSb290TGF5ZXIoKSkgeworICAgICAgICBpZiAoKHJlcXVl
c3QuYWN0aXZlKCkgfHwgcmVxdWVzdC5yZWxlYXNlKCkpICYmIGlzUm9vdExheWVyKCkpIHsKICAg
ICAgICAgICAgIHJlbmRlcmVyKCktPnVwZGF0ZUhpdFRlc3RSZXN1bHQocmVzdWx0LCB0b1JlbmRl
clZpZXcocmVuZGVyZXIoKSktPmZsaXBGb3JXcml0aW5nTW9kZShyZXN1bHQucG9pbnQoKSkpOwog
ICAgICAgICAgICAgaW5zaWRlTGF5ZXIgPSB0aGlzOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAKaW5kZXggMzY5NDgxNDIyZjZjYTJmY2UwMmY1NDg4ZjVhNWIwODI3
Mzg4NDI3OS4uM2FmYjMzNDdhZWQxYjU1NDZiYTFlMDRlZGJjMjFhYzVlMjQxYTA0ZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtOTY2LDE0ICs5NjYsMTQgQEAgdW5zaWdu
ZWQgSW50ZXJuYWxzOjp0b3VjaEV2ZW50SGFuZGxlckNvdW50KERvY3VtZW50KiBkb2N1bWVudCwg
RXhjZXB0aW9uQ29kZSYgZWMKIH0KIAogUGFzc1JlZlB0cjxOb2RlTGlzdD4gSW50ZXJuYWxzOjpu
b2Rlc0Zyb21SZWN0KERvY3VtZW50KiBkb2N1bWVudCwgaW50IHgsIGludCB5LCB1bnNpZ25lZCB0
b3BQYWRkaW5nLCB1bnNpZ25lZCByaWdodFBhZGRpbmcsCi0gICAgdW5zaWduZWQgYm90dG9tUGFk
ZGluZywgdW5zaWduZWQgbGVmdFBhZGRpbmcsIGJvb2wgaWdub3JlQ2xpcHBpbmcsIGJvb2wgYWxs
b3dTaGFkb3dDb250ZW50LCBib29sIGFsbG93Q2hpbGRGcmFtZUNvbnRlbnQsIEV4Y2VwdGlvbkNv
ZGUmIGVjKSBjb25zdAorICAgIHVuc2lnbmVkIGJvdHRvbVBhZGRpbmcsIHVuc2lnbmVkIGxlZnRQ
YWRkaW5nLCBib29sIGlnbm9yZUNsaXBwaW5nLCBib29sIGFsbG93U2hhZG93Q29udGVudCwgRXhj
ZXB0aW9uQ29kZSYgZWMpIGNvbnN0CiB7CiAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQt
PmZyYW1lKCkgfHwgIWRvY3VtZW50LT5mcmFtZSgpLT52aWV3KCkpIHsKICAgICAgICAgZWMgPSBJ
TlZBTElEX0FDQ0VTU19FUlI7CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIHJldHVy
biBkb2N1bWVudC0+bm9kZXNGcm9tUmVjdCh4LCB5LCB0b3BQYWRkaW5nLCByaWdodFBhZGRpbmcs
IGJvdHRvbVBhZGRpbmcsIGxlZnRQYWRkaW5nLCBpZ25vcmVDbGlwcGluZywgYWxsb3dTaGFkb3dD
b250ZW50LCBhbGxvd0NoaWxkRnJhbWVDb250ZW50KTsKKyAgICByZXR1cm4gZG9jdW1lbnQtPm5v
ZGVzRnJvbVJlY3QoeCwgeSwgdG9wUGFkZGluZywgcmlnaHRQYWRkaW5nLCBib3R0b21QYWRkaW5n
LCBsZWZ0UGFkZGluZywgaWdub3JlQ2xpcHBpbmcsIGFsbG93U2hhZG93Q29udGVudCk7CiB9CiAK
IHZvaWQgSW50ZXJuYWxzOjplbWl0SW5zcGVjdG9yRGlkQmVnaW5GcmFtZSgpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaAppbmRleCBiMGYxNjA0Yjk3NTVjYTg2YWRmNmVlNjA0Y2ExNjZjMzFi
ZDM3YWYyLi5kMmQ0NTJlYTk1YTBlZTdkNjM5ODk1MDAyZjc2YzQwMDAwMzE0ODI5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTE2MCw3ICsxNjAsNyBAQCBwdWJsaWM6CiAgICAg
dW5zaWduZWQgdG91Y2hFdmVudEhhbmRsZXJDb3VudChEb2N1bWVudCosIEV4Y2VwdGlvbkNvZGUm
KTsKIAogICAgIFBhc3NSZWZQdHI8Tm9kZUxpc3Q+IG5vZGVzRnJvbVJlY3QoRG9jdW1lbnQqLCBp
bnQgeCwgaW50IHksIHVuc2lnbmVkIHRvcFBhZGRpbmcsIHVuc2lnbmVkIHJpZ2h0UGFkZGluZywK
LSAgICAgICAgdW5zaWduZWQgYm90dG9tUGFkZGluZywgdW5zaWduZWQgbGVmdFBhZGRpbmcsIGJv
b2wgaWdub3JlQ2xpcHBpbmcsIGJvb2wgYWxsb3dTaGFkb3dDb250ZW50LCBib29sIGFsbG93Q2hp
bGRGcmFtZUNvbnRlbnQsIEV4Y2VwdGlvbkNvZGUmKSBjb25zdDsKKyAgICAgICAgdW5zaWduZWQg
Ym90dG9tUGFkZGluZywgdW5zaWduZWQgbGVmdFBhZGRpbmcsIGJvb2wgaWdub3JlQ2xpcHBpbmcs
IGJvb2wgYWxsb3dTaGFkb3dDb250ZW50LCBFeGNlcHRpb25Db2RlJikgY29uc3Q7CiAKICAgICB2
b2lkIGVtaXRJbnNwZWN0b3JEaWRCZWdpbkZyYW1lKCk7CiAgICAgdm9pZCBlbWl0SW5zcGVjdG9y
RGlkQ2FuY2VsRnJhbWUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAppbmRleCBm
NjJjZWFjODU3ZjE4Y2NiYWZjZmMwMmU2MzdjY2U5YTdlMzBjZjcwLi4zYmQ5MTI5OWYwYTU1NzQ2
NjI1Y2ZjOTFkNTI5YTFmOGZhM2IxZWNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aWRsCkBAIC0xMzgsNyArMTM4LDcgQEAgbW9kdWxlIHdpbmRvdyB7CiAKICAgICAgICAgTm9kZUxp
c3Qgbm9kZXNGcm9tUmVjdChpbiBEb2N1bWVudCBkb2N1bWVudCwgaW4gbG9uZyB4LCBpbiBsb25n
IHksCiAgICAgICAgICAgICBpbiB1bnNpZ25lZCBsb25nIHRvcFBhZGRpbmcsIGluIHVuc2lnbmVk
IGxvbmcgcmlnaHRQYWRkaW5nLCBpbiB1bnNpZ25lZCBsb25nIGJvdHRvbVBhZGRpbmcsIGluIHVu
c2lnbmVkIGxvbmcgbGVmdFBhZGRpbmcsCi0gICAgICAgICAgICBpbiBib29sZWFuIGlnbm9yZUNs
aXBwaW5nLCBpbiBib29sZWFuIGFsbG93U2hhZG93Q29udGVudCwgaW4gYm9vbGVhbiBhbGxvd0No
aWxkRnJhbWVDb250ZW50KSByYWlzZXMgKERPTUV4Y2VwdGlvbik7CisgICAgICAgICAgICBpbiBi
b29sZWFuIGlnbm9yZUNsaXBwaW5nLCBpbiBib29sZWFuIGFsbG93U2hhZG93Q29udGVudCkgcmFp
c2VzIChET01FeGNlcHRpb24pOwogCiAgICAgICAgIHZvaWQgZW1pdEluc3BlY3RvckRpZEJlZ2lu
RnJhbWUoKTsKICAgICAgICAgdm9pZCBlbWl0SW5zcGVjdG9yRGlkQ2FuY2VsRnJhbWUoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRNZW51Q2xpZW50SW1w
bC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9Db250ZXh0TWVudUNsaWVudEltcGwu
Y3BwCmluZGV4IDViMGIwMTAxNGE5YTdhN2FjZjBjYTU2YzA0NzkyYzI5NWZmMGUzYjMuLjY0MWE1
ODVhMDE4OTQ1ZGEyMzYwZGJmZjk2YWZjMjZjMmQxNTlkMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL0NvbnRleHRNZW51Q2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvQ29udGV4dE1lbnVDbGllbnRJbXBsLmNwcApAQCAtMTYwLDcg
KzE2MCw3IEBAIFBsYXRmb3JtTWVudURlc2NyaXB0aW9uIENvbnRleHRNZW51Q2xpZW50SW1wbDo6
Z2V0Q3VzdG9tTWVudUZyb21EZWZhdWx0SXRlbXMoCiAgICAgRnJhbWUqIHNlbGVjdGVkRnJhbWUg
PSByLmlubmVyTm9uU2hhcmVkTm9kZSgpLT5kb2N1bWVudCgpLT5mcmFtZSgpOwogCiAgICAgV2Vi
Q29udGV4dE1lbnVEYXRhIGRhdGE7Ci0gICAgZGF0YS5tb3VzZVBvc2l0aW9uID0gci5yb3VuZGVk
UG9pbnQoKTsKKyAgICBkYXRhLm1vdXNlUG9zaXRpb24gPSBzZWxlY3RlZEZyYW1lLT52aWV3KCkt
PmNvbnRlbnRzVG9XaW5kb3coci5yb3VuZGVkUG9pbnQoKSk7CiAKICAgICAvLyBDb21wdXRlIGVk
aXQgZmxhZ3MuCiAgICAgZGF0YS5lZGl0RmxhZ3MgPSBXZWJDb250ZXh0TWVudURhdGE6OkNhbkRv
Tm9uZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZiBiL1NvdXJj
ZS9XZWJLaXQyL3dpbi9XZWJLaXQyLmRlZgppbmRleCA4NDIzYWEzZGE3NWMxMjY3Yjc5ZTMxZDhm
NjRjN2Q0ZjExOTlkYzFmLi5mYmZiOWQ1NDVkNWJlYTNjOWJkMjYyMGY0NjNjNjlkZWU5MmYzYTA3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0Mi5kZWYKKysrIGIvU291cmNl
L1dlYktpdDIvd2luL1dlYktpdDIuZGVmCkBAIC0yNjYsNyArMjY2LDcgQEAgRVhQT1JUUwogICAg
ICAgICA/PzFDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlckBXZWJDb3JlQEBNQUVAWFoKICAgICAg
ICAgP2NvbnRleHREZXN0cm95ZWRAQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXJAV2ViQ29yZUBA
VUFFWFhaCiAgICAgICAgID8/MENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyQFdlYkNvcmVAQFFB
RUBQQVZTY3JpcHRFeGVjdXRpb25Db250ZXh0QDFAQFoKLSAgICAgICAgP25vZGVzRnJvbVJlY3RA
RG9jdW1lbnRAV2ViQ29yZUBAUUJFP0FWPyRQYXNzUmVmUHRyQFZOb2RlTGlzdEBXZWJDb3JlQEBA
V1RGQEBISElJSUlfTjAwQFoKKyAgICAgICAgP25vZGVzRnJvbVJlY3RARG9jdW1lbnRAV2ViQ29y
ZUBAUUJFP0FWPyRQYXNzUmVmUHRyQFZOb2RlTGlzdEBXZWJDb3JlQEBAV1RGQEBISElJSUlfTjBA
WgogICAgICAgICA/c2VsZWN0aW9uU3RhcnRIYXNNYXJrZXJGb3JARWRpdG9yQFdlYkNvcmVAQFFC
RV9OVzRNYXJrZXJUeXBlQERvY3VtZW50TWFya2VyQDJASEhAWgogICAgICAgICA/d2Via2l0V2ls
bEVudGVyRnVsbFNjcmVlbkZvckVsZW1lbnRARG9jdW1lbnRAV2ViQ29yZUBAUUFFWFBBVkVsZW1l
bnRAMkBAWgogICAgICAgICA/d2Via2l0RGlkRW50ZXJGdWxsU2NyZWVuRm9yRWxlbWVudEBEb2N1
bWVudEBXZWJDb3JlQEBRQUVYUEFWRWxlbWVudEAyQEBaCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi93aW4vV2ViS2l0MkNGTGl0ZS5kZWYgYi9Tb3VyY2UvV2ViS2l0Mi93aW4vV2ViS2l0MkNG
TGl0ZS5kZWYKaW5kZXggM2VjNWI1NWY1NjlmMTJmYjFlMmQyN2JkMWU0ZTUwMzJjNGI3NTg2Ny4u
MjhjZTQ5NTY5N2M3ZDg1NThjMGQyYjkxMGMwY2M1NzM4NjE5Y2I5NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvd2luL1dlYktpdDJDRkxpdGUuZGVmCisrKyBiL1NvdXJjZS9XZWJLaXQyL3dp
bi9XZWJLaXQyQ0ZMaXRlLmRlZgpAQCAtMjU3LDcgKzI1Nyw3IEBAIEVYUE9SVFMKICAgICAgICAg
Pz8xQ29udGV4dERlc3RydWN0aW9uT2JzZXJ2ZXJAV2ViQ29yZUBATUFFQFhaCiAgICAgICAgID9j
b250ZXh0RGVzdHJveWVkQENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyQFdlYkNvcmVAQFVBRVhY
WgogICAgICAgICA/PzBDb250ZXh0RGVzdHJ1Y3Rpb25PYnNlcnZlckBXZWJDb3JlQEBRQUVAUEFW
U2NyaXB0RXhlY3V0aW9uQ29udGV4dEAxQEBaCi0gICAgICAgID9ub2Rlc0Zyb21SZWN0QERvY3Vt
ZW50QFdlYkNvcmVAQFFCRT9BVj8kUGFzc1JlZlB0ckBWTm9kZUxpc3RAV2ViQ29yZUBAQFdURkBA
SEhJSUlJX04wMEBaCisgICAgICAgID9ub2Rlc0Zyb21SZWN0QERvY3VtZW50QFdlYkNvcmVAQFFC
RT9BVj8kUGFzc1JlZlB0ckBWTm9kZUxpc3RAV2ViQ29yZUBAQFdURkBASEhJSUlJX04wQFoKICAg
ICAgICAgP3NlbGVjdGlvblN0YXJ0SGFzTWFya2VyRm9yQEVkaXRvckBXZWJDb3JlQEBRQkVfTlc0
TWFya2VyVHlwZUBEb2N1bWVudE1hcmtlckAyQEhIQFoKICAgICAgICAgP3Jlc3RyaWN0U2NhbGVG
YWN0b3JUb0luaXRpYWxTY2FsZUlmTm90VXNlclNjYWxhYmxlQFdlYkNvcmVAQFlBWEFBVVZpZXdw
b3J0QXR0cmlidXRlc0AxQEBaCiAgICAgICAgID9yZXN0cmljdE1pbmltdW1TY2FsZUZhY3RvclRv
Vmlld3BvcnRTaXplQFdlYkNvcmVAQFlBWEFBVVZpZXdwb3J0QXR0cmlidXRlc0AxQFZJbnRTaXpl
QDFAQFoKZGlmZiAtLWdpdCBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIgYi9Tb3Vy
Y2UvYXV0b3Rvb2xzL3N5bWJvbHMuZmlsdGVyCmluZGV4IGM3ZjU3NWU3OGI1MTMzYWRiMGRlNWM5
NGZmODljZmFkY2E4M2Q5OWIuLjJhZjdlNzYwN2ZkZjQ4MGIzNzMxM2MzZTJlNDhkMTNlZTUzYTE1
ZDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9hdXRvdG9vbHMvc3ltYm9scy5maWx0ZXIKKysrIGIvU291
cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRlcgpAQCAtMTY2LDcgKzE2Niw3IEBAIF9aTjdXZWJD
b3JlMjJSdW50aW1lRW5hYmxlZEZlYXR1cmVzMjJpc0NTU0V4Y2x1c2lvbnNFbmFibGVkRTsKIF9a
TjdXZWJDb3JlMjJSdW50aW1lRW5hYmxlZEZlYXR1cmVzNDBpc0xhbmdBdHRyaWJ1dGVBd2FyZUZv
cm1Db250cm9sVUlFbmFibGVkRTsKIF9aTjdXZWJDb3JlMjJSdW50aW1lRW5hYmxlZEZlYXR1cmVz
MjJpc0RpYWxvZ0VsZW1lbnRFbmFibGVkRTsKIF9aTjdXZWJDb3JlMjJSdW50aW1lRW5hYmxlZEZl
YXR1cmVzMzdpc0F1dGhvclNoYWRvd0RPTUZvckFueUVsZW1lbnRFbmFibGVkRTsKLV9aTks3V2Vi
Q29yZThEb2N1bWVudDEzbm9kZXNGcm9tUmVjdEVpaWpqampiYmI7CitfWk5LN1dlYkNvcmU4RG9j
dW1lbnQxM25vZGVzRnJvbVJlY3RFaWlqampqYmI7CiBfWk43V2ViQ29yZTR0b0pTRVBOM0pTQzlF
eGVjU3RhdGVFUE5TXzE3SlNET01HbG9iYWxPYmplY3RFUE5TXzhOb2RlTGlzdEU7CiBfWk5LN1dl
YkNvcmU2RWRpdG9yMjZzZWxlY3Rpb25TdGFydEhhc01hcmtlckZvckVOU18xNERvY3VtZW50TWFy
a2VyMTBNYXJrZXJUeXBlRWlpOwogX1pON1dlYkNvcmU4RG9jdW1lbnQzM3dlYmtpdERpZEV4aXRG
dWxsU2NyZWVuRm9yRWxlbWVudEVQTlNfN0VsZW1lbnRFOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDA2ZDZiYzNlOTJhYTBh
Zjg0OTM5M2Y3NjgxNmZlMTNhYWZmZGY3Y2EuLjYzZTk2ZWExY2U1MzZkNzY4MDAxZDJmZmI1N2M0
MzQ1OWJkYzI4MTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAxMi0wOS0xNCAgSnVsaWVuIENo
YWZmcmFpeCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KKworICAgICAgICBSZXZlcnQgcjEyNzQ1
NyBhbmQgZm9sbG93aW5nIGZpeGVzIGR1ZSB0byBzZXZlcmFsIGhpdC10ZXN0aW5nIHJlZ3Jlc3Np
b25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05Njgz
MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMg
Y2hhbmdlIHJldmVydHMgcjEyNzQ1NywgcjEyNzg2MyBhbmQgcjEyODUwNS4gQXMgdGhlIHRlc3Rz
IHJlbGllcyBvbiB0aGUgZXh0ZW5kZWQgQVBJCisgICAgICAgIGFmdGVyIHIxMjc0NTcsIHdlIGNh
bm5vdCBrZWVwIHRoZW0uCisKKyAgICAgICAgKiBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0L25vZGVz
RnJvbVJlY3QtY2hpbGQtZnJhbWUtY29udGVudC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAg
ICAgICogZmFzdC9kb20vbm9kZXNGcm9tUmVjdC9ub2Rlc0Zyb21SZWN0LWNoaWxkLWZyYW1lLWNv
bnRlbnQuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiBmYXN0L2RvbS9ub2Rlc0Zyb21SZWN0L3Jl
c291cmNlcy9jaGlsZC1mcmFtZS5odG1sOiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvZG9tL25v
ZGVzRnJvbVJlY3QvcmVzb3VyY2VzL25vZGVzRnJvbVJlY3QuanM6CisgICAgICAgIChjaGVjayk6
CisgICAgICAgIChjaGVja1NoYWRvd0NvbnRlbnQpOgorICAgICAgICAqIHRvdWNoYWRqdXN0bWVu
dC9pZnJhbWUtYm91bmRhcnktZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIHRvdWNo
YWRqdXN0bWVudC9pZnJhbWUtYm91bmRhcnkuaHRtbDogUmVtb3ZlZC4KKyAgICAgICAgKiB0b3Vj
aGFkanVzdG1lbnQvcmVzb3VyY2VzL2lubmVyLWNvbnRlbnQtcGFnZS5odG1sOiBSZW1vdmVkLgor
ICAgICAgICAqIHRvdWNoYWRqdXN0bWVudC9yZXNvdXJjZXMvaW5uZXItbmF2aWdhdGlvbi1mcmFt
ZS5odG1sOiBSZW1vdmVkLgorCiAyMDEyLTA5LTE0ICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFz
ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT046IHRyYW5zaXRpb24gZG9lc27igJl0
IGFsd2F5cyBvdmVycmlkZSB0cmFuc2l0aW9uLXByb3BlcnR5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0L25vZGVzRnJvbVJlY3QtY2hpbGQtZnJhbWUtY29u
dGVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0L25v
ZGVzRnJvbVJlY3QtY2hpbGQtZnJhbWUtY29udGVudC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDljMWM5NzAwYzI1OWJkMjI0OTAwM2EzZTgwMzU0N2UxMjRkY2Zm
ZmYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC9ub2Rlc0Zyb21SZWN0LWNoaWxkLWZyYW1lLWNv
bnRlbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTggKzAsMCBAQAotCi1Eb2N1
bWVudDo6bm9kZXNGcm9tUmVjdCA6IEFsbG93IGNoaWxkLWZyYW1lIGNvbnRlbnQgLSBidWcgOTUy
MDQKLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBBU1MgQWxsIGNvcnJlY3Qgbm9k
ZXMgZm91bmQgZm9yIHJlY3QKLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QK
LVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QKLVBBU1MgQWxsIGNvcnJlY3Qg
bm9kZXMgZm91bmQgZm9yIHJlY3QKLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJl
Y3QKLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QKLVBBU1MgQWxsIGNvcnJl
Y3Qgbm9kZXMgZm91bmQgZm9yIHJlY3QKLVBBU1MgQWxsIGNvcnJlY3Qgbm9kZXMgZm91bmQgZm9y
IHJlY3QKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0L25vZGVzRnJv
bVJlY3QtY2hpbGQtZnJhbWUtY29udGVudC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vbm9k
ZXNGcm9tUmVjdC9ub2Rlc0Zyb21SZWN0LWNoaWxkLWZyYW1lLWNvbnRlbnQuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWRiNDE2N2IxNzgwMmRjZWI5ZTM4NmM1NGUzMWU1NDY4
NWM1MWU5NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0L25vZGVzRnJvbVJlY3QtY2hpbGQtZnJh
bWUtY29udGVudC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNzcgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotICAgIDx0aXRsZT5Eb2N1bWVudDo6bm9kZXNGcm9tUmVj
dCA6IEFsbG93IGNoaWxkLWZyYW1lIGNvbnRlbnQgLSBidWcgOTUyMDQ8L3RpdGxlPgotICAgIDxz
Y3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0Pgot
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvbm9kZXNGcm9tUmVjdC5qcyI+PC9zY3JpcHQ+Ci0g
ICAgPHN0eWxlPgotICAgICAgICBib2R5IHsgbWFyZ2luOiAwcHg7IH0KLSAgICAgICAgI3NhbmRi
b3ggewotICAgICAgICAgICAgd2lkdGg6IDQwMHB4OwotICAgICAgICAgICAgaGVpZ2h0OiAyMDBw
eDsKLSAgICAgICAgfQotICAgICAgICAjc2FuZGJveCAjbGF5ZXIgewotICAgICAgICAgICAgZmxv
YXQ6IHJpZ2h0OwotICAgICAgICB9Ci0gICAgICAgICNzYW5kYm94IGlmcmFtZSB7Ci0gICAgICAg
ICAgICBkaXNwbGF5OiBibG9jazsKLSAgICAgICAgICAgIGJveC1zaXppbmc6IGJvcmRlci1ib3g7
Ci0gICAgICAgICAgICB3aWR0aDogMjAwcHg7Ci0gICAgICAgICAgICBoZWlnaHQ6IDIwMHB4Owot
ICAgICAgICAgICAgYm9yZGVyOiBub25lOwotICAgICAgICB9Ci0gICAgICAgIC5yb3RhdGUxODAg
eyAtd2Via2l0LXRyYW5zZm9ybTogcm90YXRlKDE4MGRlZyk7IH0KLSAgICAgICAgLnJvdGF0ZTkw
IHsgLXdlYmtpdC10cmFuc2Zvcm06IHJvdGF0ZSg5MGRlZyk7IH0KLSAgICAgICAgI3NhbmRib3gg
LmJveCB7Ci0gICAgICAgICAgICBib3gtc2l6aW5nOiBib3JkZXItYm94OwotICAgICAgICAgICAg
aGVpZ2h0OiAxMDBweDsKLSAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKLSAgICAgICAgICAgIGJv
cmRlcjogMXB4IHNvbGlkIGJsYWNrOwotICAgICAgICB9Ci0gICAgPC9zdHlsZT4KLTwvaGVhZD4K
LTxib2R5IGlkPSJib2R5Ij4KLSAgICA8ZGl2IGlkPXNhbmRib3g+Ci0gICAgICAgIDxkaXYgaWQ9
bGF5ZXI+Ci0gICAgICAgICAgICA8aWZyYW1lIGlkPSJpZnJhbWUxIiBzcmM9InJlc291cmNlcy9j
aGlsZC1mcmFtZS5odG1sIj48L2lmcmFtZT4KLSAgICAgICAgPC9kaXY+Ci0gICAgICAgIDxkaXYg
aWQ9ZGl2MSBjbGFzcz1ib3g+PC9kaXY+Ci0gICAgICAgIDxkaXYgaWQ9ZGl2MiBjbGFzcz1ib3g+
PC9kaXY+Ci0gICAgPC9kaXY+Ci0KLSAgICA8cCBpZD0nZGVzY3JpcHRpb24nPjwvcD4KLSAgICA8
ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KLSAgICA8c2NyaXB0IHR5cGU9ImFwcGxpY2F0aW9uL2ph
dmFzY3JpcHQiPgotICAgICAgICBmdW5jdGlvbiBydW5UZXN0KCkKLSAgICAgICAgewotICAgICAg
ICAgICAgZGVzY3JpcHRpb24oZG9jdW1lbnQudGl0bGUpOwotCi0gICAgICAgICAgICAvLyBTZXQg
dXAgc2hvcnRjdXQgYWNjZXNzIHRvIGVsZW1lbnRzCi0gICAgICAgICAgICB2YXIgZSA9IHt9Owot
ICAgICAgICAgICAgWydzYW5kYm94JywgJ2xheWVyJ10uZm9yRWFjaChmdW5jdGlvbihhKSB7Ci0g
ICAgICAgICAgICAgICAgZVthXSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGEpOwotICAgICAg
ICAgICAgfSk7Ci0KLSAgICAgICAgICAgIGNoZWNrUmVjdCgyNSwgMjUsIDEwMCwgMTAwLCAiRElW
I2RpdjIsIERJViNkaXYxLCBESVYjc2FuZGJveCIpOwotICAgICAgICAgICAgY2hlY2tSZWN0KDIy
MCwgMjAsIDcwLCA3MCwgIkRJViNsZWZ0Iik7Ci0gICAgICAgICAgICBjaGVja1JlY3QoMjUwLCAy
MCwgMTAwLCA3MCwgIkRJViNyaWdodCwgRElWI2xlZnQsIEhUTUwiKTsKLQotICAgICAgICAgICAg
Y2hlY2tSZWN0KDE1MCwgNTAsIDEwMCwgMTAwLCAiRElWI2xlZnQsIEhUTUwsICNkb2N1bWVudCwg
SUZSQU1FI2lmcmFtZTEsIERJViNsYXllciwgRElWI2RpdjIsIERJViNkaXYxLCBESVYjc2FuZGJv
eCIpOwotCi0gICAgICAgICAgICBlLmxheWVyLnNldEF0dHJpYnV0ZSgnY2xhc3MnLCAncm90YXRl
MTgwJyk7Ci0gICAgICAgICAgICBjaGVja1JlY3QoMjIwLCAyMCwgNzAsIDcwLCAiRElWI3JpZ2h0
Iik7Ci0gICAgICAgICAgICBjaGVja1JlY3QoMTUwLCA1MCwgMTAwLCAxMDAsICJESVYjcmlnaHQs
IEhUTUwsICNkb2N1bWVudCwgSUZSQU1FI2lmcmFtZTEsIERJViNsYXllciwgRElWI2RpdjIsIERJ
ViNkaXYxLCBESVYjc2FuZGJveCIpOwotCi0gICAgICAgICAgICBlLmxheWVyLnNldEF0dHJpYnV0
ZSgnY2xhc3MnLCAncm90YXRlOTAnKTsKLSAgICAgICAgICAgIGNoZWNrUmVjdCgyNTAsIDIwLCAx
MDAsIDcwLCAiRElWI2xlZnQiKTsKLSAgICAgICAgICAgIGNoZWNrUmVjdCgxNTAsIDIwLCAyMDAs
IDYwLCAiRElWI2xlZnQsIEhUTUwsICNkb2N1bWVudCwgSUZSQU1FI2lmcmFtZTEsIERJViNsYXll
ciwgRElWI2RpdjEsIERJViNzYW5kYm94Iik7Ci0KLSAgICAgICAgICAgIGUuc2FuZGJveC5kaXNw
bGF5ID0gJ25vbmUnOwotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgIH0KLSAg
ICAgICAganNUZXN0SXNBc3luYyA9IHRydWU7Ci0gICAgICAgIHdpbmRvdy5vbmxvYWQgPSBydW5U
ZXN0OwotICAgIDwvc2NyaXB0PgotICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9qcy9yZXNvdXJjZXMv
anMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QvcmVzb3VyY2VzL2NoaWxkLWZyYW1l
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0L3Jlc291cmNlcy9jaGls
ZC1mcmFtZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAyMDRkN2ZhYWRiYjk4
NjY3YmZlYzRhNDcyN2M4ZGEyODczNjMzZTY5Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QvcmVz
b3VyY2VzL2NoaWxkLWZyYW1lLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c3R5bGUgdHlwZT0idGV4dC9jc3MiPgot
ICAgIGJvZHkgeyBtYXJnaW46IDBweDsgfQotICAgIGRpdiB7IAotICAgICAgICBib3gtc2l6aW5n
OiBib3JkZXItYm94OwotICAgICAgICBib3JkZXI6IDFweCBzb2xpZCBibGFjazsKLSAgICB9Ci0g
ICAgI2xlZnQgewotICAgICAgICBmbG9hdDpsZWZ0OwotICAgICAgICB3aWR0aDogOTBweDsKLSAg
ICAgICAgaGVpZ2h0OiAxOTBweDsKLSAgICB9Ci0gICAgI3JpZ2h0IHsKLSAgICAgICAgZmxvYXQ6
cmlnaHQ7Ci0gICAgICAgIHdpZHRoOiA5MHB4OwotICAgICAgICBoZWlnaHQ6IDE5MHB4OwotICAg
IH0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLSAgICA8ZGl2IGlkPWxlZnQ+PC9kaXY+Ci0g
ICAgPGRpdiBpZD1yaWdodD48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4KLQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC9yZXNvdXJjZXMvbm9kZXNGcm9tUmVj
dC5qcyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL25vZGVzRnJvbVJlY3QvcmVzb3VyY2VzL25vZGVz
RnJvbVJlY3QuanMKaW5kZXggMTRjY2Y2MmRmYTYxNzZkMDhiZmE0Mjk0Y2Y5ODc3NjMzOWZlNDY5
NC4uMmU4M2E3NTY3YWEwYTYxMzg0YjM0YjEzMjI4MDA5YzIzZjAxNzdlMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC9kb20vbm9kZXNGcm9tUmVjdC9yZXNvdXJjZXMvbm9kZXNGcm9tUmVj
dC5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9ub2Rlc0Zyb21SZWN0L3Jlc291cmNlcy9u
b2Rlc0Zyb21SZWN0LmpzCkBAIC0xLDggKzEsNyBAQAogLyoKICAqIENvbnRyaWJ1dG9yczoKICAq
ICAgICAqIEFudG9uaW8gR29tZXMgPHRvbmlraXRvb0B3ZWJraXQub3JnPgotICogICAgICogQWxs
YW4gU2FuZGZlbGQgSmVuc2VuIDxhbGxhbi5qZW5zZW5Abm9raWEuY29tPgotKiovCisgKiovCiAK
IGZ1bmN0aW9uIGNoZWNrKHgsIHksIHRvcFBhZGRpbmcsIHJpZ2h0UGFkZGluZywgYm90dG9tUGFk
ZGluZywgbGVmdFBhZGRpbmcsIGxpc3QsIGRvYykKIHsKQEAgLTEyLDcgKzExLDcgQEAgZnVuY3Rp
b24gY2hlY2soeCwgeSwgdG9wUGFkZGluZywgcmlnaHRQYWRkaW5nLCBib3R0b21QYWRkaW5nLCBs
ZWZ0UGFkZGluZywgbGlzdCwKICAgaWYgKCFkb2MpCiAgICAgZG9jID0gZG9jdW1lbnQ7CiAKLSAg
dmFyIG5vZGVzID0gaW50ZXJuYWxzLm5vZGVzRnJvbVJlY3QoZG9jLCB4LCB5LCB0b3BQYWRkaW5n
LCByaWdodFBhZGRpbmcsIGJvdHRvbVBhZGRpbmcsIGxlZnRQYWRkaW5nLCB0cnVlIC8qIGlnbm9y
ZUNsaXBwaW5nICovLCBmYWxzZSAvKiBhbGxvdyBzaGFkb3cgY29udGVudCAqLywgZmFsc2UgLyog
YWxsb3cgY2hpbGQtZnJhbWUgY29udGVudCAqLyk7CisgIHZhciBub2RlcyA9IGludGVybmFscy5u
b2Rlc0Zyb21SZWN0KGRvYywgeCwgeSwgdG9wUGFkZGluZywgcmlnaHRQYWRkaW5nLCBib3R0b21Q
YWRkaW5nLCBsZWZ0UGFkZGluZywgdHJ1ZSAvKiBpZ25vcmVDbGlwcGluZyAqLywgZmFsc2UgLyog
YWxsb3cgc2hhZG93IGNvbnRlbnQgKi8pOwogICBpZiAoIW5vZGVzKQogICAgIHJldHVybjsKIApA
QCAtNDYsNyArNDUsNyBAQCBmdW5jdGlvbiBjaGVja1NoYWRvd0NvbnRlbnQoeCwgeSwgdG9wUGFk
ZGluZywgcmlnaHRQYWRkaW5nLCBib3R0b21QYWRkaW5nLCBsZWZ0UAogICBpZiAoIWRvYykKICAg
ICBkb2MgPSBkb2N1bWVudDsKIAotICB2YXIgbm9kZXMgPSBpbnRlcm5hbHMubm9kZXNGcm9tUmVj
dChkb2MsIHgsIHksIHRvcFBhZGRpbmcsIHJpZ2h0UGFkZGluZywgYm90dG9tUGFkZGluZywgbGVm
dFBhZGRpbmcsIHRydWUgLyogaWdub3JlQ2xpcHBpbmcgKi8sIHRydWUgLyogYWxsb3dTaGFkb3dD
b250ZW50ICovLCBmYWxzZSAvKiBhbGxvdyBjaGlsZC1mcmFtZSBjb250ZW50ICovKTsKKyAgdmFy
IG5vZGVzID0gaW50ZXJuYWxzLm5vZGVzRnJvbVJlY3QoZG9jLCB4LCB5LCB0b3BQYWRkaW5nLCBy
aWdodFBhZGRpbmcsIGJvdHRvbVBhZGRpbmcsIGxlZnRQYWRkaW5nLCB0cnVlIC8qIGlnbm9yZUNs
aXBwaW5nICovLCB0cnVlIC8qIGFsbG93U2hhZG93Q29udGVudCAqLyk7CiAgIGlmICghbm9kZXMp
CiAgICAgcmV0dXJuOwogCkBAIC02OCw2MSArNjcsNiBAQCBmdW5jdGlvbiBjaGVja1NoYWRvd0Nv
bnRlbnQoeCwgeSwgdG9wUGFkZGluZywgcmlnaHRQYWRkaW5nLCBib3R0b21QYWRkaW5nLCBsZWZ0
UAogICB0ZXN0UGFzc2VkKCJBbGwgY29ycmVjdCBub2RlcyBmb3VuZCBmb3IgcmVjdCIpOwogfQog
Ci1mdW5jdGlvbiBjaGVja1JlY3QobGVmdCwgdG9wLCB3aWR0aCwgaGVpZ2h0LCBleHBlY3RlZE5v
ZGVTdHJpbmcsIGRvYykKLXsKLSAgICBpZiAoIXdpbmRvdy5pbnRlcm5hbHMpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIGlmIChoZWlnaHQgPD0wIHx8IHdpZHRoIDw9IDApCi0gICAgICAgIHJldHVy
bjsKLQotICAgIGlmICghZG9jKQotICAgICAgICBkb2MgPSBkb2N1bWVudDsKLQotICAgIHZhciB0
b3BQYWRkaW5nID0gaGVpZ2h0IC8gMjsKLSAgICB2YXIgbGVmdFBhZGRpbmcgPSAgd2lkdGggLyAy
OwotICAgIC8vIEZJWE1FOiBXaGVuIG5vZGVzRnJvbVJlY3QgaXMgY2hhbmdlZCB0byBub3QgYWRk
IDEgdG8gd2lkdGggYW5kIGhlaWdodCwgcmVtb3ZlIHRoZSBjb3JyZWN0aW9uIGhlcmUuCi0gICAg
dmFyIGJvdHRvbVBhZGRpbmcgPSAoaGVpZ2h0IC0gMSkgLSB0b3BQYWRkaW5nOwotICAgIHZhciBy
aWdodFBhZGRpbmcgPSAod2lkdGggLSAxKSAtIGxlZnRQYWRkaW5nOwotCi0gICAgdmFyIG5vZGVT
dHJpbmcgPSBub2Rlc0Zyb21SZWN0QXNTdHJpbmcoZG9jLCBsZWZ0ICsgbGVmdFBhZGRpbmcsIHRv
cCArIHRvcFBhZGRpbmcsIHRvcFBhZGRpbmcsIHJpZ2h0UGFkZGluZywgYm90dG9tUGFkZGluZywg
bGVmdFBhZGRpbmcpOwotCi0gICAgaWYgKG5vZGVTdHJpbmcgPT0gZXhwZWN0ZWROb2RlU3RyaW5n
KSB7Ci0gICAgICAgIHRlc3RQYXNzZWQoIkFsbCBjb3JyZWN0IG5vZGVzIGZvdW5kIGZvciByZWN0
Iik7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgdGVzdEZhaWxlZCgiTm9kZXNGcm9tUmVjdCBzaG91
bGQgYmUgWyIgKyBleHBlY3RlZE5vZGVTdHJpbmcgKyAiXSB3YXMgWyIgKyBub2RlU3RyaW5nICsg
Il0iKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIG5vZGVzRnJvbVJlY3RBc1N0cmluZyhkb2MsIHgs
IHksIHRvcFBhZGRpbmcsIHJpZ2h0UGFkZGluZywgYm90dG9tUGFkZGluZywgbGVmdFBhZGRpbmcp
Ci17Ci0gICAgdmFyIG5vZGVTdHJpbmcgPSAiIjsKLSAgICB2YXIgbm9kZXMgPSBpbnRlcm5hbHMu
bm9kZXNGcm9tUmVjdChkb2MsIHgsIHksIHRvcFBhZGRpbmcsIHJpZ2h0UGFkZGluZywgYm90dG9t
UGFkZGluZywgbGVmdFBhZGRpbmcsIHRydWUgLyogaWdub3JlQ2xpcHBpbmcgKi8sIHRydWUgLyog
YWxsb3cgc2hhZG93IGNvbnRlbnQgKi8sIHRydWUgLyogYWxsb3cgY2hpbGQtZnJhbWUgY29udGVu
dCAqLyk7Ci0gICAgaWYgKCFub2RlcykKLSAgICAgICAgcmV0dXJuIG5vZGVTdHJpbmc7Ci0KLSAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7Ci0gICAgICAgIGlmIChu
b2Rlc1tpXS5ub2RlVHlwZSA9PSAxKSB7Ci0gICAgICAgICAgICBub2RlU3RyaW5nICs9IG5vZGVz
W2ldLm5vZGVOYW1lOwotICAgICAgICAgICAgaWYgKG5vZGVzW2ldLmlkKQotICAgICAgICAgICAg
ICAgIG5vZGVTdHJpbmcgKz0gJyMnICsgbm9kZXNbaV0uaWQ7Ci0gICAgICAgICAgICBlbHNlIGlm
IChub2Rlc1tpXS5jbGFzcykgewotICAgICAgICAgICAgICAgIG5vZGVTdHJpbmcgKz0gJy4nICsg
bm9kZXNbaV0uY2xhc3M7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAobm9kZXNb
aV0ubm9kZVR5cGUgPT0gMykgewotICAgICAgICAgICAgbm9kZVN0cmluZyArPSAiJyIgKyBub2Rl
c1tpXS5kYXRhICsgIiciOwotICAgICAgICB9IGVsc2UgaWYgKG5vZGVzW2ldLm5vZGVUeXBlID09
IDkpIHsKLSAgICAgICAgICAgIG5vZGVTdHJpbmcgKz0gIiNkb2N1bWVudCI7Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgfQotICAgICAgICBpZiAoaSAr
IDEgPCBub2Rlcy5sZW5ndGgpIHsKLSAgICAgICAgICAgIG5vZGVTdHJpbmcgKz0gIiwgIjsKLSAg
ICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gbm9kZVN0cmluZzsKLX0KLQogZnVuY3Rpb24gZ2V0
Q2VudGVyRm9yKGVsZW1lbnQpCiB7CiAgIHZhciByZWN0ID0gZWxlbWVudC5nZXRCb3VuZGluZ0Ns
aWVudFJlY3QoKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9pZnJh
bWUtYm91bmRhcnktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3RtZW50L2lm
cmFtZS1ib3VuZGFyeS1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDc2MWQzNjk0YjAzOWU0ZTFhMmUxOThhMDI5YjFkMmNmZWQ4NzI2YWEuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvdG91Y2hhZGp1c3Rt
ZW50L2lmcmFtZS1ib3VuZGFyeS1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwyNiAr
MCwwIEBACi0gCi1UZXN0IHRvdWNoLWFkanVzdG1lbnQgYXQgdGhlIGJvdW5kYXJ5IG9mIGFuIAot
Ci0KLVRlc3QgZGlyZWN0IHRvdWNoZXMuCi1QQVNTIGFkanVzdGVkTm9kZS5pZCBpcyAiY2hlY2ti
b3gtMSIKLVBBU1MgYWRqdXN0ZWROb2RlLmlkIGlzICJidXR0b24tMSIKLVBBU1MgYWRqdXN0ZWRO
b2RlLmlkIGlzICJjaGVja2JveC0yIgotUEFTUyBhZGp1c3RlZE5vZGUuaWQgaXMgImJ1dHRvbi0y
IgotUEFTUyBhZGp1c3RlZE5vZGUuaWQgaXMgImNoZWNrYm94LTMiCi1QQVNTIGFkanVzdGVkTm9k
ZS5pZCBpcyAiYnV0dG9uLTMiCi1QQVNTIGFkanVzdGVkTm9kZS5pZCBpcyAiY2hlY2tib3gtNCIK
LVBBU1MgYWRqdXN0ZWROb2RlLmlkIGlzICJidXR0b24tNCIKLVRlc3QgaW5kaXJlY3QgdG91Y2hl
cy4KLVBBU1MgYWRqdXN0ZWROb2RlLmlkIGlzICJjaGVja2JveC0xIgotUEFTUyBhZGp1c3RlZE5v
ZGUuaWQgaXMgImJ1dHRvbi0xIgotUEFTUyBhZGp1c3RlZE5vZGUuaWQgaXMgImNoZWNrYm94LTIi
Ci1QQVNTIGFkanVzdGVkTm9kZS5pZCBpcyAiYnV0dG9uLTIiCi1QQVNTIGFkanVzdGVkTm9kZS5p
ZCBpcyAiY2hlY2tib3gtMyIKLVBBU1MgYWRqdXN0ZWROb2RlLmlkIGlzICJidXR0b24tMyIKLVBB
U1MgYWRqdXN0ZWROb2RlLmlkIGlzICJjaGVja2JveC00IgotUEFTUyBhZGp1c3RlZE5vZGUuaWQg
aXMgImJ1dHRvbi00IgotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENP
TVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9pZnJhbWUt
Ym91bmRhcnkuaHRtbCBiL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9pZnJhbWUtYm91bmRh
cnkuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggODYzNDA4M2E2NjFhZmQ2MDE1
MTgxMjFlNTc5NGM5MTlhYWVlNTg0Mi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvaWZyYW1lLWJvdW5kYXJ5
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwxMDAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08
aHRtbD4KLTxoZWFkPgotICAgIDx0aXRsZT5Ub3VjaCBBZGp1c3RtZW50IDogVGVzdCB0b3VjaCBh
ZGp1c3RtZW50IGF0IGFuIGlmcmFtZSBib3VuZGFyeSAtIGJ1ZyA5NDkzNjwvdGl0bGU+Ci0gICAg
PHNjcmlwdCBzcmM9Ii4uL2Zhc3QvanMvcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3RvdWNoYWRqdXN0bWVudC5qcyI+PC9zY3Jp
cHQ+Ci0gICAgPHN0eWxlPgotICAgICAgICAjbmF2YmFyIHsKLSAgICAgICAgICAgIGJhY2tncm91
bmQ6ICNlZWU7Ci0gICAgICAgICAgICBoZWlnaHQ6IDEwMCU7Ci0gICAgICAgICAgICBsZWZ0OiAw
OwotICAgICAgICAgICAgcGFkZGluZzogMDsKLSAgICAgICAgICAgIHBvc2l0aW9uOiBhYnNvbHV0
ZTsKLSAgICAgICAgICAgIG1hcmdpbjogMDsKLSAgICAgICAgICAgIHRvcDogMDsKLSAgICAgICAg
ICAgIHdpZHRoOiAxMDBweDsKLSAgICAgICAgfQotCi0gICAgICAgICNjb250ZW50LXBhZ2Ugewot
ICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOwotICAgICAgICAgICAgbGVmdDogMTAwcHg7Ci0gICAg
ICAgICAgICBwb3NpdGlvbjogYWJzb2x1dGU7Ci0gICAgICAgICAgICByaWdodDogMDsKLSAgICAg
ICAgICAgIHRvcDogMDsKLSAgICAgICAgfQotCi0gICAgICAgIGlmcmFtZSB7Ci0gICAgICAgICAg
ICBib3JkZXI6IG5vbmU7Ci0gICAgICAgICAgICB3aWR0aDogMTAwJTsKLSAgICAgICAgICAgIGhl
aWdodDogMTAwJTsKLSAgICAgICAgICAgIG1hcmdpbjogMDsKLSAgICAgICAgICAgIHBhZGRpbmc6
IDA7Ci0gICAgICAgIH0KLSAgICA8L3N0eWxlPgotPC9oZWFkPgotPGJvZHkgaWQ9Im1haW4iIG9u
bG9hZD0icnVuVGVzdHMoKSI+Ci08ZGl2IGlkPSJuYXZiYXIiICBzdHlsZT0iLXdlYmtpdC10cmFu
c2Zvcm06IHRyYW5zbGF0ZVgoMHB4KTsiPgotICAgIDxpZnJhbWUgaWQ9Im5hdi1mcmFtZSIgc3Jj
PSJyZXNvdXJjZXMvaW5uZXItbmF2aWdhdGlvbi1mcmFtZS5odG1sIj48L2lmcmFtZT4KLTwvZGl2
PgotPGRpdiBpZD0iY29udGVudC1wYWdlIj4KLSAgICA8aWZyYW1lIGlkPSJjb250ZW50LWZyYW1l
IiBzcmM9InJlc291cmNlcy9pbm5lci1jb250ZW50LXBhZ2UuaHRtbCI+PC9pZnJhbWU+Ci08L2Rp
dj4KLQotPHAgaWQ9J2Rlc2NyaXB0aW9uJz48L3A+Ci08ZGl2IGlkPSdjb25zb2xlJz48L2Rpdj4K
LQotPHNjcmlwdD4gCi0gICAgdmFyIGl0ZW1IZWlnaHQgPSAzMjsKLSAgICB2YXIgYm9yZGVyT2Zm
c2V0ID0gMTAwOwotICAgIHZhciBjaGVja2JveE9mZnNldCA9IDE1OwotICAgIHZhciBsaW5rT2Zm
c2V0ID0gLTE1OwotICAgIHZhciBjaGVja2JveE9mZnNldEluZGlyZWN0ID0gNTsKLSAgICB2YXIg
bGlua09mZnNldEluZGlyZWN0ID0gLTU7Ci0gICAgdmFyIHRvdWNoUmFkaXVzID0gMzA7Ci0KLSAg
ICBmdW5jdGlvbiB0ZXN0Um91bmRUb3VjaCh4LCB5LCByYWRpdXMpCi0gICAgewotICAgICAgICB2
YXIgeCA9IHggLSByYWRpdXM7Ci0gICAgICAgIHZhciB5ID0geSAtIHJhZGl1czsKLSAgICAgICAg
dmFyIHdpZHRoID0gcmFkaXVzICogMjsKLSAgICAgICAgdmFyIGhlaWdodCA9IHJhZGl1cyAqIDI7
Ci0gICAgICAgIHZhciBhZGp1c3RlZE5vZGUgPSBpbnRlcm5hbHMudG91Y2hOb2RlQWRqdXN0ZWRU
b0Jlc3RDbGlja2FibGVOb2RlKHgsIHksIHdpZHRoLCBoZWlnaHQsIGRvY3VtZW50KTsKLSAgICAg
ICAgaWYgKGFkanVzdGVkTm9kZS5ub2RlVHlwZSA9PSAzKSAvLyBURVhUIG5vZGUKLSAgICAgICAg
ICAgIGFkanVzdGVkTm9kZSA9IGFkanVzdGVkTm9kZS5wYXJlbnROb2RlOwotICAgICAgICByZXR1
cm4gYWRqdXN0ZWROb2RlOwotICAgIH0KLSAgICBmdW5jdGlvbiB0ZXN0RGlyZWN0VG91Y2hlcygp
Ci0gICAgewotICAgICAgICBkZWJ1ZygnVGVzdCBkaXJlY3QgdG91Y2hlcy4nKTsKLSAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCA0OyBpKyspIHsKLSAgICAgICAgICAgIGFkanVzdGVkTm9kZSA9
IHRlc3RSb3VuZFRvdWNoKGJvcmRlck9mZnNldCArIGNoZWNrYm94T2Zmc2V0LCAoaSArIDAuNSkg
KiBpdGVtSGVpZ2h0LCB0b3VjaFJhZGl1cyk7Ci0gICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoJ2FkanVzdGVkTm9kZS5pZCcsICdjaGVja2JveC0nICsgKGkgKyAxKSk7Ci0gICAgICAg
ICAgICBhZGp1c3RlZE5vZGUgPSB0ZXN0Um91bmRUb3VjaChib3JkZXJPZmZzZXQgKyBsaW5rT2Zm
c2V0LCAoaSArIDAuNSkgKiBpdGVtSGVpZ2h0LCB0b3VjaFJhZGl1cyk7Ci0gICAgICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoJ2FkanVzdGVkTm9kZS5pZCcsICdidXR0b24tJyArIChpICsg
MSkpOwotICAgICAgICB9Ci0gICAgfQotICAgIGZ1bmN0aW9uIHRlc3RJbmRpcmVjdFRvdWNoZXMo
KSB7Ci0gICAgICAgICBkZWJ1ZygnVGVzdCBpbmRpcmVjdCB0b3VjaGVzLicpOwotICAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCA0OyBpKyspIHsKLSAgICAgICAgICAgIGFkanVzdGVkTm9kZSA9
IHRlc3RSb3VuZFRvdWNoKGJvcmRlck9mZnNldCArIGNoZWNrYm94T2Zmc2V0SW5kaXJlY3QsIChp
ICsgMC41KSAqIGl0ZW1IZWlnaHQsIHRvdWNoUmFkaXVzKTsKLSAgICAgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygnYWRqdXN0ZWROb2RlLmlkJywgJ2NoZWNrYm94LScgKyAoaSArIDEpKTsK
LSAgICAgICAgICAgIGFkanVzdGVkTm9kZSA9IHRlc3RSb3VuZFRvdWNoKGJvcmRlck9mZnNldCAr
IGxpbmtPZmZzZXRJbmRpcmVjdCwgKGkgKyAwLjUpICogaXRlbUhlaWdodCwgdG91Y2hSYWRpdXMp
OwotICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCdhZGp1c3RlZE5vZGUuaWQnLCAn
YnV0dG9uLScgKyAoaSArIDEpKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1bmN0aW9uIHJ1
blRlc3RzKCkKLSAgICB7Ci0gICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cu
aW50ZXJuYWxzICYmIGludGVybmFscy50b3VjaE5vZGVBZGp1c3RlZFRvQmVzdENsaWNrYWJsZU5v
ZGUpIHsKLSAgICAgICAgICAgIGRlc2NyaXB0aW9uKCdUZXN0IHRvdWNoLWFkanVzdG1lbnQgYXQg
dGhlIGJvdW5kYXJ5IG9mIGFuIDxpZnJhbWU+LiAgRW5zdXJlIHRoYXQgdG91Y2ggYWRqdXN0bWVu
dCBwcm9wYWdhdGVzIGludG8gY2hpbGRyZW4gb2YgYW4gPGlmcmFtZT4uICBUZXN0IGV4cGVjdGVk
IHRvIGNvbnRhaW4gZmFpbHVyZXMgdW50aWwgYnVnIDk1MjA0IGlzIGZpeGVkLicpOwotICAgICAg
ICAgICAgdGVzdERpcmVjdFRvdWNoZXMoKTsKLSAgICAgICAgICAgIHRlc3RJbmRpcmVjdFRvdWNo
ZXMoKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICB9Ci0gICAgfQotICAg
IGpzVGVzdElzQXN5bmMgPSB0cnVlOwotPC9zY3JpcHQ+Ci08c2NyaXB0IHNyYz0iLi4vZmFzdC9q
cy9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9yZXNvdXJjZXMvaW5uZXIt
Y29udGVudC1wYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvcmVzb3VyY2Vz
L2lubmVyLWNvbnRlbnQtcGFnZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA3
ZGViNTA3MzUxYjM3OTkwMjY3ZTFiMDRiNTNhNzRmNGI4YjRmYTQxLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVu
dC9yZXNvdXJjZXMvaW5uZXItY29udGVudC1wYWdlLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwy
NSArMCwwIEBACi08IURPQ1RZUEU9Imh0bWwiPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8c3R5bGU+
Ci0gICAgICAgIGJvZHkgewotICAgICAgICAgICAgYmFja2dyb3VuZDogd2hpdGU7Ci0gICAgICAg
ICAgICBwYWRkaW5nOiAwOwotICAgICAgICAgICAgbWFyZ2luOiAwOwotICAgICAgICAgICAgbWFy
Z2luLWxlZnQ6IDEwcHg7Ci0gICAgICAgIH0KLQotICAgICAgICBsYWJlbCB7Ci0gICAgICAgICAg
ICBkaXNwbGF5OiBibG9jazsKLSAgICAgICAgICAgIGxpbmUtaGVpZ2h0OiAyMnB4OwotICAgICAg
ICAgICAgbWFyZ2luOiA1cHg7Ci0gICAgICAgIH0KLSAgICA8L3N0eWxlPgotPC9oZWFkPgotPGJv
ZHk+Ci08bGFiZWw+PGlucHV0IGlkPSJjaGVja2JveC0xIiB0eXBlPSJjaGVja2JveCI+Q2hlY2ti
b3ggMTwvbGFiZWw+Ci08bGFiZWw+PGlucHV0IGlkPSJjaGVja2JveC0yIiB0eXBlPSJjaGVja2Jv
eCI+Q2hlY2tib3ggMjwvbGFiZWw+Ci08bGFiZWw+PGlucHV0IGlkPSJjaGVja2JveC0zIiB0eXBl
PSJjaGVja2JveCI+Q2hlY2tib3ggMzwvbGFiZWw+Ci08bGFiZWw+PGlucHV0IGlkPSJjaGVja2Jv
eC00IiB0eXBlPSJjaGVja2JveCI+Q2hlY2tib3ggNDwvbGFiZWw+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90b3VjaGFkanVzdG1lbnQvcmVzb3VyY2VzL2lubmVy
LW5hdmlnYXRpb24tZnJhbWUuaHRtbCBiL0xheW91dFRlc3RzL3RvdWNoYWRqdXN0bWVudC9yZXNv
dXJjZXMvaW5uZXItbmF2aWdhdGlvbi1mcmFtZS5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAzM2RjMTNhYTg0MGJlZmJjMmNhYWI5OWIxMzU1ODhmOTgwMjI4MTUwLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL3RvdWNo
YWRqdXN0bWVudC9yZXNvdXJjZXMvaW5uZXItbmF2aWdhdGlvbi1mcmFtZS5odG1sCisrKyAvZGV2
L251bGwKQEAgLTEsMzIgKzAsMCBAQAotPCFET0NUWVBFPSJodG1sIj4KLTxodG1sPgotPGhlYWQ+
Ci0gICAgPHN0eWxlPgotICAgICAgICBib2R5IHsKLSAgICAgICAgICAgIHBhZGRpbmc6IDA7Ci0g
ICAgICAgICAgICBtYXJnaW46IDA7Ci0gICAgICAgIH0KLQotICAgICAgICBkaXYuYnV0dG9uIHsK
LSAgICAgICAgICAgIGRpc3BsYXk6IGJsb2NrOwotICAgICAgICAgICAgdGV4dC1hbGlnbjogY2Vu
dGVyOwotICAgICAgICAgICAgbGluZS1oZWlnaHQ6IDE4cHg7Ci0gICAgICAgICAgICBtYXJnaW46
IDVweDsKLSAgICAgICAgICAgIHdpZHRoOiA4NXB4OwotICAgICAgICAgICAgcGFkZGluZzogNHB4
OwotICAgICAgICAgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Ci0gICAgICAgICAgICBib3Jk
ZXItcmFkaXVzOiA1cHg7Ci0gICAgICAgIH0KLSAgICA8L3N0eWxlPgotPC9oZWFkPgotPGJvZHk+
Ci08c2NyaXB0PgotICAgIGZ1bmN0aW9uIG9uQ2xpY2soKSB7Ci0gICAgfQotPC9zY3JpcHQ+Ci08
ZGl2IGNsYXNzPSJidXR0b24iIGlkPSJidXR0b24tMSIgb25jbGljaz1vbkNsaWNrPkJ1dHRvbiAx
PC9kaXY+Ci08ZGl2IGNsYXNzPSJidXR0b24iIGlkPSJidXR0b24tMiIgb25jbGljaz1vbkNsaWNr
PkJ1dHRvbiAyPC9kaXY+Ci08ZGl2IGNsYXNzPSJidXR0b24iIGlkPSJidXR0b24tMyIgb25jbGlj
az1vbkNsaWNrPkJ1dHRvbiAzPC9kaXY+Ci08ZGl2IGNsYXNzPSJidXR0b24iIGlkPSJidXR0b24t
NCIgb25jbGljaz1vbkNsaWNrPkJ1dHRvbiA0PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFuZ2VMb2cKaW5kZXggMGYzMjU5MTE4Nzc4ZWQyZThhYzcy
NzAzM2QyYjY1YjI3MzNiOTcxZC4uYWQ3NDlhMzBhN2Q0MjIxNzYyYTVmMDhjMDc1NzczYmNjMjRh
NTlhZSAxMDA2NDQKLS0tIGEvQ2hhbmdlTG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDEyLTA5LTE0ICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3Jn
PgorCisgICAgICAgIFJldmVydCByMTI3NDU3IGFuZCBmb2xsb3dpbmcgZml4ZXMgZHVlIHRvIHNl
dmVyYWwgaGl0LXRlc3RpbmcgcmVncmVzc2lvbnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTk2ODMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgcmV2ZXJ0cyByMTI3NDU3LCByMTI3ODYz
IGFuZCByMTI4NTA1LgorCisgICAgICAgICogU291cmNlL2F1dG90b29scy9zeW1ib2xzLmZpbHRl
cjoKKwogMjAxMi0wOS0xNCAgSmVmZnJleSBQZmF1ICA8anBmYXVAYXBwbGUuY29tPgogCiAgICAg
ICAgIEFsbG93IHRoaXJkLXBhcnR5IHN0b3JhZ2UgYmxvY2tpbmcgc2V0dGluZyB0byBjaGFuZ2Ug
d2hpbGUgYSBwYWdlIGlzIGxvYWRlZAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>164355</attachid>
            <date>2012-09-17 01:34:16 -0700</date>
            <delta_ts>2012-09-17 11:54:24 -0700</delta_ts>
            <desc>Follow-up Patch</desc>
            <filename>Patch</filename>
            <type>text/plain</type>
            <size>1380</size>
            <attacher name="Allan Sandfeld Jensen">allan.jensen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1ZTQ1NDkxLi4zNDAwZWIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUg
QEAKKzIwMTItMDktMTcgIEFsbGFuIFNhbmRmZWxkIEplbnNlbiAgPGFsbGFuLmplbnNlbkBub2tp
YS5jb20+CisKKyAgICAgICAgUmV2ZXJ0IHIxMjc0NTcgYW5kIGZvbGxvd2luZyBmaXhlcyBkdWUg
dG8gc2V2ZXJhbCBoaXQtdGVzdGluZyByZWdyZXNzaW9ucworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTY4MzAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgcmV2ZXJ0IG1pc3NzZWQgb25lIHJlbGF0ZWQg
Zm9sbG93LXVwLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OkRvY3VtZW50Ojp1cGRhdGVIb3ZlckFjdGl2ZVN0YXRlKToKKwogMjAxMi0wOS0xNiAgSmFt
ZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIENocm9taXVtIHdp
biBidWlsZCBmaXggLSBsaXN0aW5nIGEgZmlsZSB0aGF0IGRvZXNuJ3QgZXhpc3QgaXMgYSBmYXRh
bCBlcnJvcnMgaW4gdGhlIG1zdnMgZ3lwIGdlbmVyYXRvci4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CmluZGV4IGI3YWZkNmEuLjQ4NTAzMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNjE1
NCw4ICs2MTU0LDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlSG92ZXJBY3RpdmVTdGF0ZShjb25z
dCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3UKICAgICAgICAgcmV0dXJuOwog
CiAgICAgTm9kZSogaW5uZXJOb2RlSW5Eb2N1bWVudCA9IHJlc3VsdC5pbm5lck5vZGUoKTsKLSAg
ICB3aGlsZSAoaW5uZXJOb2RlSW5Eb2N1bWVudCAmJiBpbm5lck5vZGVJbkRvY3VtZW50LT5kb2N1
bWVudCgpICE9IHRoaXMpCi0gICAgICAgIGlubmVyTm9kZUluRG9jdW1lbnQgPSBpbm5lck5vZGVJ
bkRvY3VtZW50LT5kb2N1bWVudCgpLT5vd25lckVsZW1lbnQoKTsKKyAgICBBU1NFUlQoaW5uZXJO
b2RlSW5Eb2N1bWVudC0+ZG9jdW1lbnQoKSA9PSB0aGlzKTsKIAogICAgIE5vZGUqIG9sZEFjdGl2
ZU5vZGUgPSBhY3RpdmVOb2RlKCk7CiAgICAgaWYgKG9sZEFjdGl2ZU5vZGUgJiYgIXJlcXVlc3Qu
YWN0aXZlKCkpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>