<?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>72402</bug_id>
          
          <creation_ts>2011-11-15 11:36:45 -0800</creation_ts>
          <short_desc>[chromium] Merge chromium-gpu layout test configurations into non-gpu versions</short_desc>
          <delta_ts>2011-11-16 01:25:07 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>72444</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrienne Walker">enne</reporter>
          <assigned_to name="James Robinson">jamesr</assigned_to>
          <cc>abarth</cc>
    
    <cc>dglazkov</cc>
    
    <cc>dpranke</cc>
    
    <cc>enne</cc>
    
    <cc>jamesr</cc>
    
    <cc>ojan</cc>
    
    <cc>scherkus</cc>
    
    <cc>senorblanco</cc>
    
    <cc>tkent</cc>
    
    <cc>vangelis</cc>
    
    <cc>vrk</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>503100</commentid>
    <comment_count>0</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-11-15 11:36:45 -0800</bug_when>
    <thetext>Chromium GPU tests have their own separate buildbot step and set of expectations.  This causes extra complexity, gardening pain, configuration overhead, and on-going confusion about who&apos;s responsible for them.  These tests should not be special.

There&apos;s no reason why these tests can&apos;t be part of the layout_tests step.  Arguably, we could just not disable hardware acceleration for all layout tests and let the GPU tests trigger hardware acceleration as-needed.

The only real sticking point is the canvas tests which are run in both hardware and software mode.  senorblanco argues that we could just run these in hardware, which would sidestep the problem entirely.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503167</commentid>
    <comment_count>1</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-15 12:42:48 -0800</bug_when>
    <thetext>Completely agree.  I think the best way to tackle this is piece-by-piece.  The easiest thing to tackle is the compositing/webgl/3d animation tests - they should just run as normal layout tests using osmesa as appropriate.  I&apos;ll take a look at doing this today.

We can leave canvas 2d in a split configuration for now, with the assumption that longer-term skia could be responsible for testing these different paths.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503174</commentid>
    <comment_count>2</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-15 13:01:34 -0800</bug_when>
    <thetext>I think I can just make DRT always enable compositing (with the normal compositing triggers) and then just run the compositing/ directories through the normal DRT path.  Our normal compositing triggers should not trip on any tests outside of these directories.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503182</commentid>
    <comment_count>3</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-15 13:10:09 -0800</bug_when>
    <thetext>Hm, another potential issue is media/ - currently we run that through the compositing and non-compositing paths separately and have separate baselines for the two.  If we think running these tests two times is valuable then I could rig up in the same way as canvas 2d to run without the compositor on the main layout test run and then run with the compositor triggered by media in webkit_gpu_tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503218</commentid>
    <comment_count>4</comment_count>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2011-11-15 13:44:00 -0800</bug_when>
    <thetext>Nutty idea: could we add a feature to DRT such that it mirrors a given directory, but with a variation like a js file forcibly injected into each one? Then we could have a virtual mirror of media/ called media-gpu/, and containing nothing but expectations.  With this, we could still run tests in both configs, wouldn&apos;t have to manually duplicate them, and could eliminate the separate buildbot step.  On the other hand, this forces different complexity into DRT and gardening tools.  But, maybe this feature would be useful in cases other than GPU land?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503228</commentid>
    <comment_count>5</comment_count>
      <attachid>115236</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-15 13:52:12 -0800</bug_when>
    <thetext>Created attachment 115236
work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503236</commentid>
    <comment_count>6</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-15 13:58:29 -0800</bug_when>
    <thetext>We currently have 562 files (expectations and tests) in LayoutTests/platform/chromium*gpu*/compositing/*.  I plan to do the following in order to land this:

1.) Copy all existing compositing expectations in gpu directories to the non-gpu-specific directory.  For example, everything in platform/chromium-gpu-win/compositing/ will be copied to platform/chromium-win/

2.) Land the code change to DumpRenderTree and our test scripts to run the compositing tests on the normal layout test run and not in the GPU run

3.) Remove the compositing expectations from platform/chromium-*gpu*/

4.) Remove the SKIP from these lines in test_expectations.txt:

WONTFIX SKIP CPU CPU-CG : compositing = PASS TIMEOUT FAIL
WONTFIX SKIP CPU CPU-CG : platform/chromium/compositing = PASS TIMEOUT FAIL
WONTFIX SKIP CPU CPU-CG : animations/3d = PASS TIMEOUT FAIL

to start running the tests.

5.) Garden the set of failures from these lines down to zero

6.) Remove the = FAIL lines for compositing/ and animations/3d from test_expectations.txt

7.) Profit</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503244</commentid>
    <comment_count>7</comment_count>
    <who name="Ojan Vafai">ojan</who>
    <bug_when>2011-11-15 14:06:19 -0800</bug_when>
    <thetext>6a) Remove run-webkit-tests support for the special -gpu configurations
6b) Remove all knowledge of the -gpu bots from the flakiness dashboard</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503247</commentid>
    <comment_count>8</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-15 14:08:18 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; 6a) Remove run-webkit-tests support for the special -gpu configurations
&gt; 6b) Remove all knowledge of the -gpu bots from the flakiness dashboard

Can&apos;t do those until the canvas 2d and media tests are resolved. I&apos;m only planning to move the compositing/ tests over right now since we only ever want to run those in one configuration (with compositing enabled via osmesa software rasterizer).  For canvas 2d and media we&apos;ll need to do a bit more work.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503255</commentid>
    <comment_count>9</comment_count>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-11-15 14:12:30 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Nutty idea: could we add a feature to DRT such that it mirrors a given directory, but with a variation like a js file forcibly injected into each one? Then we could have a virtual mirror of media/ called media-gpu/, and containing nothing but expectations.  With this, we could still run tests in both configs, wouldn&apos;t have to manually duplicate them, and could eliminate the separate buildbot step.  On the other hand, this forces different complexity into DRT and gardening tools.  But, maybe this feature would be useful in cases other than GPU land?

We&apos;d have to modify NRWT to know how to mirror the trees so that it &quot;found&quot; both sets of tests, but that is presumably doable.

Also, your idea would I think require us to have 2x the number of expectations. I don&apos;t know how many of our expectations are duplicated today, or whether this would be much of an issue. I am curious how many of these tests could be expressed as reference tests. I also wonder if we could figure out how to express CPU/GPU as a reference test (i.e., the CPU&apos;s version should match the GPU&apos;s version)?

[ If we didn&apos;t duplicate the expectations, we&apos;d have to define a fallback path and modifiers for what happens when you get differing results, which would put us back to where we are today. ]</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503310</commentid>
    <comment_count>10</comment_count>
      <attachid>115236</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-15 14:49:14 -0800</bug_when>
    <thetext>Comment on attachment 115236
work in progress

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

New failing tests:
fast/media/mq-transform-03.html
transitions/default-timing-function.html
animations/missing-values-first-keyframe.html
fast/repaint/block-selection-gap-in-composited-layer.html
fast/media/mq-transform-02.html
animations/opacity-transform-animation.html
animations/missing-values-last-keyframe.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503321</commentid>
    <comment_count>11</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-15 15:02:25 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/100329, http://trac.webkit.org/changeset/100333 and http://trac.webkit.org/changeset/100337 complete step 1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503347</commentid>
    <comment_count>12</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-15 15:23:35 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 115236 [details])
&gt; Attachment 115236 [details] did not pass chromium-ews (chromium-xvfb):
&gt; Output: http://queues.webkit.org/results/10372697
&gt; 
&gt; New failing tests:
&gt; fast/media/mq-transform-03.html
&gt; transitions/default-timing-function.html
&gt; animations/missing-values-first-keyframe.html
&gt; fast/repaint/block-selection-gap-in-composited-layer.html
&gt; fast/media/mq-transform-02.html
&gt; animations/opacity-transform-animation.html
&gt; animations/missing-values-last-keyframe.html

These are most likely failing due to the compositing trigger for animating a non-3d transform. Currently they run with compositing disabled on the main layout test run. With this patch, they would run with compositing enabled.  I think we should just rebaseline with the compositing expectations, since that&apos;s the mode we run in actual chromium.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503356</commentid>
    <comment_count>13</comment_count>
      <attachid>115263</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-15 15:37:05 -0800</bug_when>
    <thetext>Created attachment 115263
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503357</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-15 15:39:23 -0800</bug_when>
    <thetext>Attachment 115263 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;LayoutTests/ChangeLog&apos;, u&apos;LayoutTests/plat...&quot; exit_code: 1

ERROR: FAILURES FOR &lt;lucid, x86_64, release, cpu&gt; in LayoutTests/platform/chromium/test_expectations.txt
ERROR: Line:2735 Path does not exist. plugins/invalidate_rect.html
LayoutTests/platform/chromium/test_expectations.txt:2735:  Path does not exist. plugins/invalidate_rect.html  [test/expectations] [2]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503367</commentid>
    <comment_count>15</comment_count>
      <attachid>115263</attachid>
    <who name="Dirk Pranke">dpranke</who>
    <bug_when>2011-11-15 15:47:21 -0800</bug_when>
    <thetext>Comment on attachment 115263
Patch

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

&gt; Tools/ChangeLog:10
&gt; +        and video are still controlled by an explicit trigger so that they are true when platform=chromium-gpu and false

Nit: maybe say &quot;media&quot; instead of video (or both) for people that aren&apos;t aware that the two are synonymous?

&gt; Tools/Scripts/webkitpy/layout_tests/port/chromium.py:431
&gt; +            &apos;accelerated_video&apos;: &apos;--enable-accelerated-video&apos;,

I think you need to change --accelerated-compositing to --accelerated-video in run_webkit_tests.py as well (line220).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503384</commentid>
    <comment_count>16</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-15 16:02:46 -0800</bug_when>
    <thetext>Committed r100355: &lt;http://trac.webkit.org/changeset/100355&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503385</commentid>
    <comment_count>17</comment_count>
      <attachid>115263</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-15 16:03:11 -0800</bug_when>
    <thetext>Comment on attachment 115263
Patch

Clearing flags, this patch landed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503388</commentid>
    <comment_count>18</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-15 16:03:46 -0800</bug_when>
    <thetext>(In reply to comment #16)
&gt; Committed r100355: &lt;http://trac.webkit.org/changeset/100355&gt;

This completes step 2 from comment #6.  I&apos;m leaving this bug open to cover the rest of the steps there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503409</commentid>
    <comment_count>19</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-15 16:25:11 -0800</bug_when>
    <thetext>Committed r100360: &lt;http://trac.webkit.org/changeset/100360&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503411</commentid>
    <comment_count>20</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-15 16:25:59 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/100360 handles steps 3 and 4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503650</commentid>
    <comment_count>21</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-15 23:48:55 -0800</bug_when>
    <thetext>Committed r100415: &lt;http://trac.webkit.org/changeset/100415&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>503706</commentid>
    <comment_count>22</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2011-11-16 01:25:07 -0800</bug_when>
    <thetext>OK, the compositing tests are now running on the main webkit_tests run only and I&apos;ve gardened down to 16 failures, which seems small enough to handle by more specialized bugs.  I&apos;m going to mark this bug resolved.

Open issues are how to handle the canvas 2d and media tests.  Right now, those tests are still using webkit_gpu_tests.  I&apos;ll open up bugs for those two categories tomorrow to discuss options.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115236</attachid>
            <date>2011-11-15 13:52:12 -0800</date>
            <delta_ts>2011-11-15 15:37:01 -0800</delta_ts>
            <desc>work in progress</desc>
            <filename>bug-72402-20111115135211.patch</filename>
            <type>text/plain</type>
            <size>13140</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwMjAwCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggM2IyOTNlZTAwZDg3MzJjOWY3MWZkYmI1ZmQ0OWJkYjky
ODRiMDk2ZS4uNTc4MWYzZmQwZDU0MTdkYjM3NmFkNTFkOWEwNTgxMGViZTUwZjhlMiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1
IEBACisyMDExLTExLTE1ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgW2Nocm9taXVtXSBNZXJnZSBjaHJvbWl1bS1ncHUgbGF5b3V0IHRlc3QgY29uZmln
dXJhdGlvbnMgaW50byBub24tZ3B1IHZlcnNpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRl
clRyZWUuY3BwOgorICAgICAgICAobWFpbik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vVGVzdFNoZWxsLmNwcDoKKyAgICAgICAgKFRlc3RTaGVsbDo6VGVzdFNoZWxsKToKKyAg
ICAgICAgKFRlc3RTaGVsbDo6cmVzZXRXZWJTZXR0aW5ncyk6CisgICAgICAgICogRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmg6CisgICAgICAgIChUZXN0U2hlbGw6OnNldEFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdGb3JWaWRlb0VuYWJsZWQpOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2Vz
OjpyZXNldCk6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyk6CisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKiBTY3Jp
cHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5OgorICAgICAgICAqIFNj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fZ3B1LnB5OgorICAgICAg
ICAqIFNjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fZ3B1X3VuaXR0
ZXN0LnB5OgorCiAyMDExLTExLTE0ICBUb255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUmVtb3ZlIHRoZSBDU1MzX0ZMRVhCT1ggY29tcGlsZSB0aW1lIGZsYWcgYW5kIGVu
YWJsZSBvbiBhbGwgcG9ydHMKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL0R1bXBSZW5kZXJUcmVlLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1
bXBSZW5kZXJUcmVlLmNwcAppbmRleCAwMzI4MWQyY2VmODZjOTA2NjE3MGMzYTkxMzBkMzEzYTRm
ZjhmMmU4Li4yMjhkOGMyMDUzNDRkYjVkZmViNGI1NzdlNjExOTIyZGJlMjViNjJhIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwCkBAIC01
Myw3ICs1Myw3IEBAIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvblN0YXJ0dXBEaWFsb2dbXSA9ICIt
LXRlc3RzaGVsbC1zdGFydHVwLWRpYWxvZyI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25DaGVj
a0xheW91dFRlc3RTeXN0ZW1EZXBzW10gPSAiLS1jaGVjay1sYXlvdXQtdGVzdC1zeXMtZGVwcyI7
CiAKIHN0YXRpYyBjb25zdCBjaGFyIG9wdGlvbkhhcmR3YXJlQWNjZWxlcmF0ZWRHTFtdID0gIi0t
ZW5hYmxlLWhhcmR3YXJlLWdwdSI7Ci1zdGF0aWMgY29uc3QgY2hhciBvcHRpb25FbmFibGVBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nW10gPSAiLS1lbmFibGUtYWNjZWxlcmF0ZWQtY29tcG9zaXRpbmci
Oworc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWRDb21wb3NpdGluZ0Zv
clZpZGVvW10gPSAiLS1lbmFibGUtY29tcG9zaXRpbmctZm9yLXZpZGVvIjsKIHN0YXRpYyBjb25z
dCBjaGFyIG9wdGlvbkVuYWJsZVRocmVhZGVkQ29tcG9zaXRpbmdbXSA9ICItLWVuYWJsZS10aHJl
YWRlZC1jb21wb3NpdGluZyI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25Gb3JjZUNvbXBvc2l0
aW5nTW9kZVtdID0gIi0tZm9yY2UtY29tcG9zaXRpbmctbW9kZSI7CiBzdGF0aWMgY29uc3QgY2hh
ciBvcHRpb25FbmFibGVBY2NlbGVyYXRlZDJEQ2FudmFzW10gPSAiLS1lbmFibGUtYWNjZWxlcmF0
ZWQtMmQtY2FudmFzIjsKQEAgLTEzOCw3ICsxMzgsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hh
ciogYXJndltdKQogICAgIGJvb2wgdGVzdFNoZWxsTW9kZSA9IGZhbHNlOwogICAgIGJvb2wgYWxs
b3dFeHRlcm5hbFBhZ2VzID0gZmFsc2U7CiAgICAgYm9vbCBzdGFydHVwRGlhbG9nID0gZmFsc2U7
Ci0gICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCA9IGZhbHNlOworICAgIGJv
b2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclZpZGVvRW5hYmxlZCA9IGZhbHNlOwogICAgIGJv
b2wgdGhyZWFkZWRDb21wb3NpdGluZ0VuYWJsZWQgPSBmYWxzZTsKICAgICBib29sIGNvbXBvc2l0
ZVRvVGV4dHVyZSA9IGZhbHNlOwogICAgIGJvb2wgZm9yY2VDb21wb3NpdGluZ01vZGUgPSBmYWxz
ZTsKQEAgLTE3Niw4ICsxNzYsOCBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciogYXJndltdKQog
ICAgICAgICAgICAgcmV0dXJuIGNoZWNrTGF5b3V0VGVzdFN5c3RlbURlcGVuZGVuY2llcygpID8g
RVhJVF9TVUNDRVNTIDogRVhJVF9GQUlMVVJFOwogICAgICAgICBlbHNlIGlmIChhcmd1bWVudCA9
PSBvcHRpb25IYXJkd2FyZUFjY2VsZXJhdGVkR0wpCiAgICAgICAgICAgICBoYXJkd2FyZUFjY2Vs
ZXJhdGVkR0wgPSB0cnVlOwotICAgICAgICBlbHNlIGlmIChhcmd1bWVudCA9PSBvcHRpb25FbmFi
bGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nKQotICAgICAgICAgICAgYWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0VuYWJsZWQgPSB0cnVlOworICAgICAgICBlbHNlIGlmIChhcmd1bWVudCA9PSBvcHRpb25F
bmFibGVBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlkZW8pCisgICAgICAgICAgICBhY2NlbGVy
YXRlZENvbXBvc2l0aW5nRm9yVmlkZW9FbmFibGVkID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAo
YXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlVGhyZWFkZWRDb21wb3NpdGluZykKICAgICAgICAgICAg
IHRocmVhZGVkQ29tcG9zaXRpbmdFbmFibGVkID0gdHJ1ZTsKICAgICAgICAgZWxzZSBpZiAoYXJn
dW1lbnQgPT0gb3B0aW9uRW5hYmxlQ29tcG9zaXRlVG9UZXh0dXJlKQpAQCAtMjMxLDcgKzIzMSw3
IEBAIGludCBtYWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCiAgICAgeyAvLyBFeHBsaWNpdCBz
Y29wZSBmb3IgdGhlIFRlc3RTaGVsbCBpbnN0YW5jZS4KICAgICAgICAgVGVzdFNoZWxsIHNoZWxs
KHRlc3RTaGVsbE1vZGUpOwogICAgICAgICBzaGVsbC5zZXRBbGxvd0V4dGVybmFsUGFnZXMoYWxs
b3dFeHRlcm5hbFBhZ2VzKTsKLSAgICAgICAgc2hlbGwuc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQoYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQpOworICAgICAgICBzaGVsbC5z
ZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlkZW9FbmFibGVkKGFjY2VsZXJhdGVkQ29tcG9z
aXRpbmdGb3JWaWRlb0VuYWJsZWQpOwogICAgICAgICBzaGVsbC5zZXRUaHJlYWRlZENvbXBvc2l0
aW5nRW5hYmxlZCh0aHJlYWRlZENvbXBvc2l0aW5nRW5hYmxlZCk7CiAgICAgICAgIHNoZWxsLnNl
dENvbXBvc2l0ZVRvVGV4dHVyZShjb21wb3NpdGVUb1RleHR1cmUpOwogICAgICAgICBzaGVsbC5z
ZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShmb3JjZUNvbXBvc2l0aW5nTW9kZSk7CmRpZmYgLS1naXQg
YS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAppbmRleCBkZTJmMmM4YTI0ZGI1OTg2
M2Y2MmFmYTZhMTA5NWMwMmIxYjYwODI1Li40OTRhZjQwOWM5ZTUyNDA3OGYxNzdlZmJhNTlmNjEy
NTdiZGU0MjJhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0
U2hlbGwuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5j
cHAKQEAgLTEwMyw3ICsxMDMsNyBAQCBUZXN0U2hlbGw6OlRlc3RTaGVsbChib29sIHRlc3RTaGVs
bE1vZGUpCiAgICAgLCBtX3Rlc3RTaGVsbE1vZGUodGVzdFNoZWxsTW9kZSkKICAgICAsIG1fZGV2
VG9vbHMoMCkKICAgICAsIG1fYWxsb3dFeHRlcm5hbFBhZ2VzKGZhbHNlKQotICAgICwgbV9hY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChmYWxzZSkKKyAgICAsIG1fYWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0ZvclZpZGVvRW5hYmxlZChmYWxzZSkKICAgICAsIG1fdGhyZWFkZWRDb21wb3NpdGlu
Z0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX2NvbXBvc2l0ZVRvVGV4dHVyZShmYWxzZSkKICAgICAs
IG1fZm9yY2VDb21wb3NpdGluZ01vZGUoZmFsc2UpCkBAIC0xOTYsNyArMTk2LDggQEAgdm9pZCBU
ZXN0U2hlbGw6OmNsb3NlRGV2VG9vbHMoKQogdm9pZCBUZXN0U2hlbGw6OnJlc2V0V2ViU2V0dGlu
Z3MoV2ViVmlldyYgd2ViVmlldykKIHsKICAgICBtX3ByZWZzLnJlc2V0KCk7Ci0gICAgbV9wcmVm
cy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCA9IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQ7CisgICAgbV9wcmVmcy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZCA9IHRy
dWU7CisgICAgbV9wcmVmcy5hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlkZW9FbmFibGVkID0g
bV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlkZW9FbmFibGVkOwogICAgIG1fcHJlZnMudGhy
ZWFkZWRDb21wb3NpdGluZ0VuYWJsZWQgPSBtX3RocmVhZGVkQ29tcG9zaXRpbmdFbmFibGVkOwog
ICAgIG1fcHJlZnMuY29tcG9zaXRlVG9UZXh0dXJlID0gbV9jb21wb3NpdGVUb1RleHR1cmU7CiAg
ICAgbV9wcmVmcy5mb3JjZUNvbXBvc2l0aW5nTW9kZSA9IG1fZm9yY2VDb21wb3NpdGluZ01vZGU7
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaCBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5oCmluZGV4IGFmZjhjZDE5
N2JkNjI0ZjIxM2Q0YzkxYzE2YTQ1MGU5MmJlMjExMDcuLmIxOTRlYjBiMjM5NjMwZTEyM2RmYjQz
MTJkMGNmNzQxMzczODYyMTEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RTaGVsbC5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RT
aGVsbC5oCkBAIC0xMjgsNyArMTI4LDcgQEAgcHVibGljOgogICAgIGJvb2wgYWxsb3dFeHRlcm5h
bFBhZ2VzKCkgY29uc3QgeyByZXR1cm4gbV9hbGxvd0V4dGVybmFsUGFnZXM7IH0KICAgICB2b2lk
IHNldEFsbG93RXh0ZXJuYWxQYWdlcyhib29sIGFsbG93RXh0ZXJuYWxQYWdlcykgeyBtX2FsbG93
RXh0ZXJuYWxQYWdlcyA9IGFsbG93RXh0ZXJuYWxQYWdlczsgfQogCi0gICAgdm9pZCBzZXRBY2Nl
bGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZENv
bXBvc2l0aW5nRW5hYmxlZCA9IGVuYWJsZWQ7IH0KKyAgICB2b2lkIHNldEFjY2VsZXJhdGVkQ29t
cG9zaXRpbmdGb3JWaWRlb0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0ZvclZpZGVvRW5hYmxlZCA9IGVuYWJsZWQ7IH0KICAgICB2b2lkIHNldFRocmVhZGVk
Q29tcG9zaXRpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX3RocmVhZGVkQ29tcG9zaXRpbmdF
bmFibGVkID0gZW5hYmxlZDsgfQogICAgIHZvaWQgc2V0Q29tcG9zaXRlVG9UZXh0dXJlKGJvb2wg
ZW5hYmxlZCkgeyBtX2NvbXBvc2l0ZVRvVGV4dHVyZSA9IGVuYWJsZWQ7IH0KICAgICB2b2lkIHNl
dEZvcmNlQ29tcG9zaXRpbmdNb2RlKGJvb2wgZW5hYmxlZCkgeyBtX2ZvcmNlQ29tcG9zaXRpbmdN
b2RlID0gZW5hYmxlZDsgfQpAQCAtMjE1LDcgKzIxNSw3IEBAIHByaXZhdGU6CiAgICAgVGVzdFBh
cmFtcyBtX3BhcmFtczsKICAgICBpbnQgbV90aW1lb3V0OyAvLyB0aW1lb3V0IHZhbHVlIGluIG1p
bGxpc2Vjb25kCiAgICAgYm9vbCBtX2FsbG93RXh0ZXJuYWxQYWdlczsKLSAgICBib29sIG1fYWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ7CisgICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdGb3JWaWRlb0VuYWJsZWQ7CiAgICAgYm9vbCBtX3RocmVhZGVkQ29tcG9zaXRpbmdFbmFi
bGVkOwogICAgIGJvb2wgbV9jb21wb3NpdGVUb1RleHR1cmU7CiAgICAgYm9vbCBtX2ZvcmNlQ29t
cG9zaXRpbmdNb2RlOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViUHJlZmVyZW5jZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJl
ZmVyZW5jZXMuY3BwCmluZGV4IGZlNmM3MzZhYTgwOTUyNjI0ZjY4ZTNhMThkNDI4NGMwOTBhZTg3
MzQuLmEwMGE1YWIwZTJkMjQ1NDAyMTkwODJjZGNjMWJjYjFjNzMyMzY0OTEgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTEwNyw2
ICsxMDcsNyBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjpyZXNldCgpCiAKICAgICB0YWJzVG9MaW5r
cyA9IGZhbHNlOwogICAgIGh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCA9IGZhbHNlOworICAgIGFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JWaWRlb0VuYWJsZWQgPSBmYWxzZTsKICAgICBhY2NlbGVy
YXRlZENvbXBvc2l0aW5nRW5hYmxlZCA9IGZhbHNlOwogICAgIHRocmVhZGVkQ29tcG9zaXRpbmdF
bmFibGVkID0gZmFsc2U7CiAgICAgY29tcG9zaXRlVG9UZXh0dXJlID0gZmFsc2U7CkBAIC0yMTEs
NiArMjEyLDcgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyhXZWJWaWV3KiB3ZWJWaWV3
KQogICAgIHdlYlZpZXctPnNldFRhYnNUb0xpbmtzKHRhYnNUb0xpbmtzKTsKICAgICBzZXR0aW5n
cy0+c2V0Q2FyZXRCcm93c2luZ0VuYWJsZWQoY2FyZXRCcm93c2luZ0VuYWJsZWQpOwogICAgIHNl
dHRpbmdzLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRW5hYmxlZChhY2NlbGVyYXRlZENvbXBv
c2l0aW5nRW5hYmxlZCk7CisgICAgc2V0dGluZ3MtPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdG
b3JWaWRlb0VuYWJsZWQoYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclZpZGVvRW5hYmxlZCk7CiAg
ICAgc2V0dGluZ3MtPnNldFVzZVRocmVhZGVkQ29tcG9zaXRvcih0aHJlYWRlZENvbXBvc2l0aW5n
RW5hYmxlZCk7CiAgICAgc2V0dGluZ3MtPnNldENvbXBvc2l0ZVRvVGV4dHVyZUVuYWJsZWQoY29t
cG9zaXRlVG9UZXh0dXJlKTsKICAgICBzZXR0aW5ncy0+c2V0Rm9yY2VDb21wb3NpdGluZ01vZGUo
Zm9yY2VDb21wb3NpdGluZ01vZGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVt
L1dlYlByZWZlcmVuY2VzLmgKaW5kZXggNTE4ZjQ1YTljNmE0NjRiMGFlYWQ5MWY2ZjAxMGI5NzI5
MzE1MjczMy4uMjMzN2E0MDU1OWQwZThhYzRmYTc2NWU4NTM2MTY0OGIyMTNiMGE5YiAxMDA2NDQK
LS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5oCkBAIC0xMDAs
NiArMTAwLDcgQEAgc3RydWN0IFdlYlByZWZlcmVuY2VzIHsKICAgICBib29sIHRhYnNUb0xpbmtz
OwogICAgIGJvb2wgaHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkOwogICAgIGJvb2wgY2FyZXRCcm93
c2luZ0VuYWJsZWQ7CisgICAgYm9vbCBhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlkZW9FbmFi
bGVkOwogICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQ7CiAgICAgYm9vbCB0
aHJlYWRlZENvbXBvc2l0aW5nRW5hYmxlZDsKICAgICBib29sIGNvbXBvc2l0ZVRvVGV4dHVyZTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hy
b21pdW0ucHkgYi9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9t
aXVtLnB5CmluZGV4IDFlOTczMGQ1MzdhNDk3N2I4N2I2YjNlYzY2Njk3NzJiM2I0YTA0NGEuLmE0
MDU1YWViNmVkZDI1MmZkNjA0YjE0NDZjYjY2N2Y3MDNiZDViODQgMTAwNzU1Ci0tLSBhL1Rvb2xz
L1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkKKysrIGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQpAQCAtNDI2
LDEwICs0MjYsMTAgQEAgY2xhc3MgQ2hyb21pdW1Ecml2ZXIoRHJpdmVyKToKICAgICAgICAgICAg
ICdncF9mYXVsdF9lcnJvcl9ib3gnOiAnLS1ncC1mYXVsdC1lcnJvci1ib3gnLAogICAgICAgICAg
ICAgJ3N0cmVzc19vcHQnOiAnLS1zdHJlc3Mtb3B0JywKICAgICAgICAgICAgICdzdHJlc3NfZGVv
cHQnOiAnLS1zdHJlc3MtZGVvcHQnLAotICAgICAgICAgICAgJ2FjY2VsZXJhdGVkX2NvbXBvc2l0
aW5nJzogJy0tZW5hYmxlLWFjY2VsZXJhdGVkLWNvbXBvc2l0aW5nJywKICAgICAgICAgICAgICd0
aHJlYWRlZF9jb21wb3NpdGluZyc6ICctLWVuYWJsZS10aHJlYWRlZC1jb21wb3NpdGluZycsCiAg
ICAgICAgICAgICAnYWNjZWxlcmF0ZWRfMmRfY2FudmFzJzogJy0tZW5hYmxlLWFjY2VsZXJhdGVk
LTJkLWNhbnZhcycsCiAgICAgICAgICAgICAnYWNjZWxlcmF0ZWRfZHJhd2luZyc6ICctLWVuYWJs
ZS1hY2NlbGVyYXRlZC1kcmF3aW5nJywKKyAgICAgICAgICAgICdhY2NlbGVyYXRlZF92aWRlbyc6
ICctLWVuYWJsZS1hY2NlbGVyYXRlZC12aWRlbycsCiAgICAgICAgICAgICAnZW5hYmxlX2hhcmR3
YXJlX2dwdSc6ICctLWVuYWJsZS1oYXJkd2FyZS1ncHUnLAogICAgICAgICB9CiAgICAgICAgIGZv
ciBucnd0X29wdGlvbiwgZHJ0X29wdGlvbiBpbiBvcHRpb25fbWFwcGluZ3MuaXRlbXMoKToKZGlm
ZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21p
dW1fZ3B1LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJv
bWl1bV9ncHUucHkKaW5kZXggMmNmMjk0YTk0NmVjODY5NDk5NGMxMmU5NzVkNDgxN2RmYzVkMjNh
MS4uOGUzZTk5YmFkNjIyMWYzMGE1ZjczYzdlNTAzODVkMWQxNDZhNTU4NCAxMDA2NDQKLS0tIGEv
VG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9ncHUucHkK
KysrIGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9n
cHUucHkKQEAgLTYzLDEwICs2MywxMCBAQCBkZWYgZ2V0KGhvc3QsIHBsYXRmb3JtPU5vbmUsIHBv
cnRfbmFtZT0nY2hyb21pdW0tZ3B1JywgKiprd2FyZ3MpOgogCiBkZWYgX3NldF9ncHVfb3B0aW9u
cyhwb3J0LCBncmFwaGljc190eXBlPSdncHUnKToKICAgICBwb3J0Ll9ncmFwaGljc190eXBlID0g
Z3JhcGhpY3NfdHlwZQotICAgIGlmIHBvcnQuZ2V0X29wdGlvbignYWNjZWxlcmF0ZWRfY29tcG9z
aXRpbmcnKSBpcyBOb25lOgotICAgICAgICBwb3J0Ll9vcHRpb25zLmFjY2VsZXJhdGVkX2NvbXBv
c2l0aW5nID0gVHJ1ZQogICAgIGlmIHBvcnQuZ2V0X29wdGlvbignYWNjZWxlcmF0ZWRfMmRfY2Fu
dmFzJykgaXMgTm9uZToKICAgICAgICAgcG9ydC5fb3B0aW9ucy5hY2NlbGVyYXRlZF8yZF9jYW52
YXMgPSBUcnVlCisgICAgaWYgcG9ydC5nZXRfb3B0aW9uKCdhY2NlbGVyYXRlZF92aWRlbycpIGlz
IE5vbmU6CisgICAgICAgIHBvcnQuX29wdGlvbnMuYWNjZWxlcmF0ZWRfdmlkZW8gPSBUcnVlCiAg
ICAgaWYgcG9ydC5nZXRfb3B0aW9uKCdleHBlcmltZW50YWxfZnVsbHlfcGFyYWxsZWwnKSBpcyBO
b25lOgogICAgICAgICBwb3J0Ll9vcHRpb25zLmV4cGVyaW1lbnRhbF9mdWxseV9wYXJhbGxlbCA9
IFRydWUKIApAQCAtNzgsOCArNzgsNyBAQCBkZWYgX3NldF9ncHVfb3B0aW9ucyhwb3J0LCBncmFw
aGljc190eXBlPSdncHUnKToKIAogZGVmIF90ZXN0cyhwb3J0LCBwYXRocyk6CiAgICAgaWYgbm90
IHBhdGhzOgotICAgICAgICBwYXRocyA9IFsnY29tcG9zaXRpbmcnLCAncGxhdGZvcm0vY2hyb21p
dW0vY29tcG9zaXRpbmcnLCAnYW5pbWF0aW9ucy8zZCddCi0KKyAgICAgICAgcGF0aHMgPSBbXQog
ICAgICAgICBpZiAocG9ydC5uYW1lKCkgIT0gJ2Nocm9taXVtLWdwdS1tYWMtbGVvcGFyZCcgYW5k
CiAgICAgICAgICAgICBwb3J0Lm5hbWUoKSAhPSAnY2hyb21pdW0tZ3B1LWNnLW1hYy1sZW9wYXJk
Jyk6CiAgICAgICAgICAgICAjIE9ubHkgcnVuIHRlc3RzIHJlcXVpcmluZyBhY2NlbGVyYXRlZCBj
b21wb3NpdGluZyBvbiBwbGF0Zm9ybXMgdGhhdApAQCAtOTIsOSArOTEsNyBAQCBkZWYgX3Rlc3Rz
KHBvcnQsIHBhdGhzKToKICAgICAgICAgICAgICMgQ2FudmFzIGlzIG5vdCB5ZXQgYWNjZWxlcmF0
ZWQgb24gdGhlIE1hYywgc28gdGhlcmUncyBubyBwb2ludAogICAgICAgICAgICAgIyBpbiBydW5u
aW5nIHRoZSB0ZXN0cyB0aGVyZS4KICAgICAgICAgICAgIHBhdGhzICs9IFsnZmFzdC9jYW52YXMn
LCAnY2FudmFzL3BoaWxpcCddCi0gICAgICAgICMgaW52YWxpZGF0ZV9yZWN0Lmh0bWwgdGVzdHMg
YSBidWcgaW4gdGhlIGNvbXBvc2l0b3IuCi0gICAgICAgICMgU2VlIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD01MzExNwotICAgICAgICBwYXRocyArPSBbJ3BsdWdpbnMv
aW52YWxpZGF0ZV9yZWN0Lmh0bWwnXQorCiAgICAgcmV0dXJuIHNldChbcG9ydC5yZWxhdGl2ZV90
ZXN0X2ZpbGVuYW1lKGYpIGZvciBmIGluIHRlc3RfZmlsZXMuZmluZChwb3J0LCBwYXRocyldKQog
CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQv
Y2hyb21pdW1fZ3B1X3VuaXR0ZXN0LnB5IGIvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRf
dGVzdHMvcG9ydC9jaHJvbWl1bV9ncHVfdW5pdHRlc3QucHkKaW5kZXggYmUzY2ZkMmJjZTk5Mzdj
YTMxN2VhZmY4MzBhZDQyZTQyYjA4NDQwYy4uMmViYTdiYmI5MTk3MGM1NTBjMjdkYmU1N2EyYTdh
M2E3YWEyOGU4ZCAxMDA3NTUKLS0tIGEvVG9vbHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVz
dHMvcG9ydC9jaHJvbWl1bV9ncHVfdW5pdHRlc3QucHkKKysrIGIvVG9vbHMvU2NyaXB0cy93ZWJr
aXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bV9ncHVfdW5pdHRlc3QucHkKQEAgLTU2LDE1
ICs1NiwxMyBAQCBjbGFzcyBDaHJvbWl1bUdwdVRlc3QodW5pdHRlc3QuVGVzdENhc2UpOgogICAg
ICAgICBob3N0LmZpbGVzeXN0ZW0gPSBGaWxlU3lzdGVtKCkgICMgRklYTUU6IFRoaXMgdGVzdCBz
aG91bGQgbm90IHVzZSBhIHJlYWwgZmlsZXN5c3RlbSEKIAogICAgICAgICAjIHRlc3QgdGhhdCB3
ZSBnb3QgdGhlIHJpZ2h0IHBvcnQKLSAgICAgICAgbW9ja19vcHRpb25zID0gTW9ja09wdGlvbnMo
YWNjZWxlcmF0ZWRfY29tcG9zaXRpbmc9Tm9uZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgYWNjZWxlcmF0ZWRfMmRfY2FudmFzPU5vbmUsCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkZXJfbmFtZT0nZm9vJywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRfcHJvY2Vzc2Vz
PU5vbmUpCisgICAgICAgIG1vY2tfb3B0aW9ucyA9IE1vY2tPcHRpb25zKGFjY2VsZXJhdGVkXzJk
X2NhbnZhcz1Ob25lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBidWlsZGVy
X25hbWU9J2ZvbycsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkX3By
b2Nlc3Nlcz1Ob25lKQogICAgICAgICBpZiBpbnB1dF9uYW1lIGFuZCBwbGF0Zm9ybToKICAgICAg
ICAgICAgIHBvcnQgPSBjaHJvbWl1bV9ncHUuZ2V0KGhvc3QsIHBsYXRmb3JtPXBsYXRmb3JtLCBw
b3J0X25hbWU9aW5wdXRfbmFtZSwgb3B0aW9ucz1tb2NrX29wdGlvbnMpCiAgICAgICAgIGVsc2U6
CiAgICAgICAgICAgICBwb3J0ID0gY2hyb21pdW1fZ3B1LmdldChob3N0LCBwb3J0X25hbWU9cG9y
dF9uYW1lLCBvcHRpb25zPW1vY2tfb3B0aW9ucykKLSAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBv
cnQuX29wdGlvbnMuYWNjZWxlcmF0ZWRfY29tcG9zaXRpbmcpCiAgICAgICAgIHNlbGYuYXNzZXJ0
VHJ1ZShwb3J0Ll9vcHRpb25zLmFjY2VsZXJhdGVkXzJkX2NhbnZhcykKICAgICAgICAgc2VsZi5h
c3NlcnRUcnVlKHBvcnQuX29wdGlvbnMuZXhwZXJpbWVudGFsX2Z1bGx5X3BhcmFsbGVsKQogICAg
ICAgICBzZWxmLmFzc2VydEVxdWFsKHBvcnQuX29wdGlvbnMuYnVpbGRlcl9uYW1lLCAnZm9vIC0g
R1BVJykKQEAgLTg3LDEwICs4NSw2IEBAIGNsYXNzIENocm9taXVtR3B1VGVzdCh1bml0dGVzdC5U
ZXN0Q2FzZSk6CiAgICAgICAgICMgTm90ZSB0aGF0IHRoaXMgaXMgdXNpbmcgYSByZWFsIGZpbGVz
eXN0ZW0uCiAgICAgICAgIGZpbGVzID0gcG9ydC50ZXN0cyhOb25lKQogCi0gICAgICAgIHBhdGgg
PSAnY29tcG9zaXRpbmcvY2hlY2tlcmJvYXJkLmh0bWwnCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1
ZShwb3J0Ll9maWxlc3lzdGVtLmV4aXN0cyhwb3J0LmFic3BhdGhfZm9yX3Rlc3QocGF0aCkpKQot
ICAgICAgICBzZWxmLmFzc2VydFRydWUocGF0aCBpbiBmaWxlcykKLQogICAgICAgICBwYXRoID0g
J2Zhc3QvaHRtbC9rZXlnZW4uaHRtbCcKICAgICAgICAgc2VsZi5hc3NlcnRUcnVlKHBvcnQuX2Zp
bGVzeXN0ZW0uZXhpc3RzKHBvcnQuYWJzcGF0aF9mb3JfdGVzdChwYXRoKSkpCiAgICAgICAgIHNl
bGYuYXNzZXJ0RmFsc2UocGF0aCBpbiBmaWxlcykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>115263</attachid>
            <date>2011-11-15 15:37:05 -0800</date>
            <delta_ts>2011-11-15 16:03:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-72402-20111115153704.patch</filename>
            <type>text/plain</type>
            <size>15977</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAwMzM3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggYzcxNGYzNmY3NjdhOGY4YzZmMGVlNDYyYjYwNDI5Mzdk
OWVmYzMyNS4uZmUxNjE5ZDRjZGMyNjIxMjY3OWJiNmJhYjhiZTA4NDhlZTBiMWZhYyAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1
IEBACisyMDExLTExLTE1ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVzckBjaHJvbWl1bS5vcmc+CisK
KyAgICAgICAgW2Nocm9taXVtXSBNZXJnZSBjaHJvbWl1bS1ncHUgbGF5b3V0IHRlc3QgY29uZmln
dXJhdGlvbnMgaW50byBub24tZ3B1IHZlcnNpb25zCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQwMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFsbG93cyB0aGUgY29tcG9zaXRpbmcgbGF5b3V0IHRlc3Rz
IHRvIHJ1biBpbiB0aGUgbm9ybWFsIGxheW91dCB0ZXN0IHJ1bi4gVGhpcyBzZXRzIHRoZSBkZWZh
dWx0IGNvbXBvc2l0aW5nCisgICAgICAgIHRyaWdnZXJzIGluIER1bXBSZW5kZXJUcmVlIHRvIG1v
cmUgY2xvc2VseSBtYXRjaCB3aGF0IHdlIHVzZSBpbiBDaHJvbWl1bS4gVGhlcmUgYXJlIHR3byBl
eGNlcHRpb25zLCBjYW52YXMgMmQKKyAgICAgICAgYW5kIHZpZGVvIGFyZSBzdGlsbCBjb250cm9s
bGVkIGJ5IGFuIGV4cGxpY2l0IHRyaWdnZXIgc28gdGhhdCB0aGV5IGFyZSB0cnVlIHdoZW4gcGxh
dGZvcm09Y2hyb21pdW0tZ3B1IGFuZCBmYWxzZQorICAgICAgICBvdGhlcndpc2UsIHNvIHRoYXQg
d2UgY2FuIHJ1biB0aGUgc2FtZSBzZXQgb2YgdGVzdHMgaW4gYm90aCBjb25maWd1cmF0aW9ucy4g
VGhpcyBpc24ndCBuZWNlc3NhcnkgZm9yIHRoZSBub3JtYWwKKyAgICAgICAgY29tcG9zaXRpbmcg
dHJpZ2dlcnMgc2luY2Ugd2UgY3VycmVudGx5IHJ1biB0aGUgY29tcG9zaXRpbmcgdGVzdHMgaW4g
b25seSBvbmUgY29uZmlndXJhdGlvbiAtIHdpdGggY29tcG9zaXRpbmcKKyAgICAgICAgZW5hYmxl
ZC4KKworICAgICAgICBTaW5jZSB0aGUgY29tcG9zaXRpbmcgdGVzdHMgYXJlIGN1cnJlbnRseSBt
YXJrZWQgV09OVEZJWCBTS0lQIG9uIG5vbi1HUFUgcGxhdGZvcm1zIGluIHRlc3RfZXhwZWN0YXRp
b25zLnR4dCB0aGlzCisgICAgICAgIHBhdGNoIHNob3VsZCBub3QgaW1wYWN0IGFueSB0ZXN0cy4K
KworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcDoK
KyAgICAgICAgKG1haW4pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RT
aGVsbC5jcHA6CisgICAgICAgIChUZXN0U2hlbGw6OlRlc3RTaGVsbCk6CisgICAgICAgIChUZXN0
U2hlbGw6OnJlc2V0V2ViU2V0dGluZ3MpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9t
aXVtL1Rlc3RTaGVsbC5oOgorICAgICAgICAoVGVzdFNoZWxsOjpzZXRBY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yVmlkZW9FbmFibGVkKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6cmVzZXQpOgor
ICAgICAgICAoV2ViUHJlZmVyZW5jZXM6OmFwcGx5VG8pOgorICAgICAgICAqIER1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmg6CisgICAgICAgICogU2NyaXB0cy93ZWJraXRw
eS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weToKKyAgICAgICAgKiBTY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2dwdS5weToKKyAgICAgICAgKiBTY3JpcHRz
L3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2dwdV91bml0dGVzdC5weToKKwog
MjAxMS0xMS0xNCAgVG9ueSBDaGFuZyAgPHRvbnlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtO
UldUXSBSZWZ0ZXN0cyBzaG91bGQgcnVuIGV2ZW4gd2hlbiBwaXhlbCB0ZXN0cyBhcmUgZGlzYWJs
ZWQuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVy
VHJlZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EdW1wUmVuZGVyVHJlZS5j
cHAKaW5kZXggMDMyODFkMmNlZjg2YzkwNjYxNzBjM2E5MTMwZDMxM2E0ZmY4ZjJlOC4uMjI4ZDhj
MjA1MzQ0ZGI1ZGZlYjRiNTc3ZTYxMTkyMmRiZTI1YjYyYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vRHVtcFJlbmRlclRyZWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL2Nocm9taXVtL0R1bXBSZW5kZXJUcmVlLmNwcApAQCAtNTMsNyArNTMsNyBAQCBz
dGF0aWMgY29uc3QgY2hhciBvcHRpb25TdGFydHVwRGlhbG9nW10gPSAiLS10ZXN0c2hlbGwtc3Rh
cnR1cC1kaWFsb2ciOwogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uQ2hlY2tMYXlvdXRUZXN0U3lz
dGVtRGVwc1tdID0gIi0tY2hlY2stbGF5b3V0LXRlc3Qtc3lzLWRlcHMiOwogCiBzdGF0aWMgY29u
c3QgY2hhciBvcHRpb25IYXJkd2FyZUFjY2VsZXJhdGVkR0xbXSA9ICItLWVuYWJsZS1oYXJkd2Fy
ZS1ncHUiOwotc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWRDb21wb3Np
dGluZ1tdID0gIi0tZW5hYmxlLWFjY2VsZXJhdGVkLWNvbXBvc2l0aW5nIjsKK3N0YXRpYyBjb25z
dCBjaGFyIG9wdGlvbkVuYWJsZUFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JWaWRlb1tdID0gIi0t
ZW5hYmxlLWNvbXBvc2l0aW5nLWZvci12aWRlbyI7CiBzdGF0aWMgY29uc3QgY2hhciBvcHRpb25F
bmFibGVUaHJlYWRlZENvbXBvc2l0aW5nW10gPSAiLS1lbmFibGUtdGhyZWFkZWQtY29tcG9zaXRp
bmciOwogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRm9yY2VDb21wb3NpdGluZ01vZGVbXSA9ICIt
LWZvcmNlLWNvbXBvc2l0aW5nLW1vZGUiOwogc3RhdGljIGNvbnN0IGNoYXIgb3B0aW9uRW5hYmxl
QWNjZWxlcmF0ZWQyRENhbnZhc1tdID0gIi0tZW5hYmxlLWFjY2VsZXJhdGVkLTJkLWNhbnZhcyI7
CkBAIC0xMzgsNyArMTM4LDcgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAg
ICBib29sIHRlc3RTaGVsbE1vZGUgPSBmYWxzZTsKICAgICBib29sIGFsbG93RXh0ZXJuYWxQYWdl
cyA9IGZhbHNlOwogICAgIGJvb2wgc3RhcnR1cERpYWxvZyA9IGZhbHNlOwotICAgIGJvb2wgYWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgPSBmYWxzZTsKKyAgICBib29sIGFjY2VsZXJhdGVk
Q29tcG9zaXRpbmdGb3JWaWRlb0VuYWJsZWQgPSBmYWxzZTsKICAgICBib29sIHRocmVhZGVkQ29t
cG9zaXRpbmdFbmFibGVkID0gZmFsc2U7CiAgICAgYm9vbCBjb21wb3NpdGVUb1RleHR1cmUgPSBm
YWxzZTsKICAgICBib29sIGZvcmNlQ29tcG9zaXRpbmdNb2RlID0gZmFsc2U7CkBAIC0xNzYsOCAr
MTc2LDggQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIqIGFyZ3ZbXSkKICAgICAgICAgICAgIHJl
dHVybiBjaGVja0xheW91dFRlc3RTeXN0ZW1EZXBlbmRlbmNpZXMoKSA/IEVYSVRfU1VDQ0VTUyA6
IEVYSVRfRkFJTFVSRTsKICAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uSGFyZHdh
cmVBY2NlbGVyYXRlZEdMKQogICAgICAgICAgICAgaGFyZHdhcmVBY2NlbGVyYXRlZEdMID0gdHJ1
ZTsKLSAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlQWNjZWxlcmF0ZWRD
b21wb3NpdGluZykKLSAgICAgICAgICAgIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkID0g
dHJ1ZTsKKyAgICAgICAgZWxzZSBpZiAoYXJndW1lbnQgPT0gb3B0aW9uRW5hYmxlQWNjZWxlcmF0
ZWRDb21wb3NpdGluZ0ZvclZpZGVvKQorICAgICAgICAgICAgYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0ZvclZpZGVvRW5hYmxlZCA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50ID09IG9w
dGlvbkVuYWJsZVRocmVhZGVkQ29tcG9zaXRpbmcpCiAgICAgICAgICAgICB0aHJlYWRlZENvbXBv
c2l0aW5nRW5hYmxlZCA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKGFyZ3VtZW50ID09IG9wdGlv
bkVuYWJsZUNvbXBvc2l0ZVRvVGV4dHVyZSkKQEAgLTIzMSw3ICsyMzEsNyBAQCBpbnQgbWFpbihp
bnQgYXJnYywgY2hhciogYXJndltdKQogICAgIHsgLy8gRXhwbGljaXQgc2NvcGUgZm9yIHRoZSBU
ZXN0U2hlbGwgaW5zdGFuY2UuCiAgICAgICAgIFRlc3RTaGVsbCBzaGVsbCh0ZXN0U2hlbGxNb2Rl
KTsKICAgICAgICAgc2hlbGwuc2V0QWxsb3dFeHRlcm5hbFBhZ2VzKGFsbG93RXh0ZXJuYWxQYWdl
cyk7Ci0gICAgICAgIHNoZWxsLnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKGFjY2Vs
ZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKTsKKyAgICAgICAgc2hlbGwuc2V0QWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0ZvclZpZGVvRW5hYmxlZChhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlkZW9F
bmFibGVkKTsKICAgICAgICAgc2hlbGwuc2V0VGhyZWFkZWRDb21wb3NpdGluZ0VuYWJsZWQodGhy
ZWFkZWRDb21wb3NpdGluZ0VuYWJsZWQpOwogICAgICAgICBzaGVsbC5zZXRDb21wb3NpdGVUb1Rl
eHR1cmUoY29tcG9zaXRlVG9UZXh0dXJlKTsKICAgICAgICAgc2hlbGwuc2V0Rm9yY2VDb21wb3Np
dGluZ01vZGUoZm9yY2VDb21wb3NpdGluZ01vZGUpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RTaGVsbC5jcHAKaW5kZXggZGUyZjJjOGEyNGRiNTk4NjNmNjJhZmE2YTEwOTVj
MDJiMWI2MDgyNS4uNDk0YWY0MDljOWU1MjQwNzhmMTc3ZWZiYTU5ZjYxMjU3YmRlNDIyYSAxMDA2
NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcAorKysg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCkBAIC0xMDMsNyAr
MTAzLDcgQEAgVGVzdFNoZWxsOjpUZXN0U2hlbGwoYm9vbCB0ZXN0U2hlbGxNb2RlKQogICAgICwg
bV90ZXN0U2hlbGxNb2RlKHRlc3RTaGVsbE1vZGUpCiAgICAgLCBtX2RldlRvb2xzKDApCiAgICAg
LCBtX2FsbG93RXh0ZXJuYWxQYWdlcyhmYWxzZSkKLSAgICAsIG1fYWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0VuYWJsZWQoZmFsc2UpCisgICAgLCBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JWaWRl
b0VuYWJsZWQoZmFsc2UpCiAgICAgLCBtX3RocmVhZGVkQ29tcG9zaXRpbmdFbmFibGVkKGZhbHNl
KQogICAgICwgbV9jb21wb3NpdGVUb1RleHR1cmUoZmFsc2UpCiAgICAgLCBtX2ZvcmNlQ29tcG9z
aXRpbmdNb2RlKGZhbHNlKQpAQCAtMTk2LDcgKzE5Niw4IEBAIHZvaWQgVGVzdFNoZWxsOjpjbG9z
ZURldlRvb2xzKCkKIHZvaWQgVGVzdFNoZWxsOjpyZXNldFdlYlNldHRpbmdzKFdlYlZpZXcmIHdl
YlZpZXcpCiB7CiAgICAgbV9wcmVmcy5yZXNldCgpOwotICAgIG1fcHJlZnMuYWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0VuYWJsZWQgPSBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkOworICAg
IG1fcHJlZnMuYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQgPSB0cnVlOworICAgIG1fcHJl
ZnMuYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclZpZGVvRW5hYmxlZCA9IG1fYWNjZWxlcmF0ZWRD
b21wb3NpdGluZ0ZvclZpZGVvRW5hYmxlZDsKICAgICBtX3ByZWZzLnRocmVhZGVkQ29tcG9zaXRp
bmdFbmFibGVkID0gbV90aHJlYWRlZENvbXBvc2l0aW5nRW5hYmxlZDsKICAgICBtX3ByZWZzLmNv
bXBvc2l0ZVRvVGV4dHVyZSA9IG1fY29tcG9zaXRlVG9UZXh0dXJlOwogICAgIG1fcHJlZnMuZm9y
Y2VDb21wb3NpdGluZ01vZGUgPSBtX2ZvcmNlQ29tcG9zaXRpbmdNb2RlOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmggYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaAppbmRleCBhZmY4Y2QxOTdiZDYyNGYyMTNkNGM5
MWMxNmE0NTBlOTJiZTIxMTA3Li5iMTk0ZWIwYjIzOTYzMGUxMjNkZmI0MzEyZDBjZjc0MTM3Mzg2
MjExIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwu
aAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaApAQCAtMTI4
LDcgKzEyOCw3IEBAIHB1YmxpYzoKICAgICBib29sIGFsbG93RXh0ZXJuYWxQYWdlcygpIGNvbnN0
IHsgcmV0dXJuIG1fYWxsb3dFeHRlcm5hbFBhZ2VzOyB9CiAgICAgdm9pZCBzZXRBbGxvd0V4dGVy
bmFsUGFnZXMoYm9vbCBhbGxvd0V4dGVybmFsUGFnZXMpIHsgbV9hbGxvd0V4dGVybmFsUGFnZXMg
PSBhbGxvd0V4dGVybmFsUGFnZXM7IH0KIAotICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3Np
dGluZ0VuYWJsZWQoYm9vbCBlbmFibGVkKSB7IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJs
ZWQgPSBlbmFibGVkOyB9CisgICAgdm9pZCBzZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlk
ZW9FbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2FjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JWaWRl
b0VuYWJsZWQgPSBlbmFibGVkOyB9CiAgICAgdm9pZCBzZXRUaHJlYWRlZENvbXBvc2l0aW5nRW5h
YmxlZChib29sIGVuYWJsZWQpIHsgbV90aHJlYWRlZENvbXBvc2l0aW5nRW5hYmxlZCA9IGVuYWJs
ZWQ7IH0KICAgICB2b2lkIHNldENvbXBvc2l0ZVRvVGV4dHVyZShib29sIGVuYWJsZWQpIHsgbV9j
b21wb3NpdGVUb1RleHR1cmUgPSBlbmFibGVkOyB9CiAgICAgdm9pZCBzZXRGb3JjZUNvbXBvc2l0
aW5nTW9kZShib29sIGVuYWJsZWQpIHsgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZSA9IGVuYWJsZWQ7
IH0KQEAgLTIxNSw3ICsyMTUsNyBAQCBwcml2YXRlOgogICAgIFRlc3RQYXJhbXMgbV9wYXJhbXM7
CiAgICAgaW50IG1fdGltZW91dDsgLy8gdGltZW91dCB2YWx1ZSBpbiBtaWxsaXNlY29uZAogICAg
IGJvb2wgbV9hbGxvd0V4dGVybmFsUGFnZXM7Ci0gICAgYm9vbCBtX2FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdFbmFibGVkOworICAgIGJvb2wgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlkZW9F
bmFibGVkOwogICAgIGJvb2wgbV90aHJlYWRlZENvbXBvc2l0aW5nRW5hYmxlZDsKICAgICBib29s
IG1fY29tcG9zaXRlVG9UZXh0dXJlOwogICAgIGJvb2wgbV9mb3JjZUNvbXBvc2l0aW5nTW9kZTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2Vz
LmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcApp
bmRleCBmZTZjNzM2YWE4MDk1MjYyNGY2OGUzYTE4ZDQyODRjMDkwYWU4NzM0Li5hMDBhNWFiMGUy
ZDI0NTQwMjE5MDgyY2RjYzFiY2IxYzczMjM2NDkxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuY3BwCkBAIC0xMDcsNiArMTA3LDcgQEAgdm9p
ZCBXZWJQcmVmZXJlbmNlczo6cmVzZXQoKQogCiAgICAgdGFic1RvTGlua3MgPSBmYWxzZTsKICAg
ICBoeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQgPSBmYWxzZTsKKyAgICBhY2NlbGVyYXRlZENvbXBv
c2l0aW5nRm9yVmlkZW9FbmFibGVkID0gZmFsc2U7CiAgICAgYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0VuYWJsZWQgPSBmYWxzZTsKICAgICB0aHJlYWRlZENvbXBvc2l0aW5nRW5hYmxlZCA9IGZhbHNl
OwogICAgIGNvbXBvc2l0ZVRvVGV4dHVyZSA9IGZhbHNlOwpAQCAtMjExLDYgKzIxMiw3IEBAIHZv
aWQgV2ViUHJlZmVyZW5jZXM6OmFwcGx5VG8oV2ViVmlldyogd2ViVmlldykKICAgICB3ZWJWaWV3
LT5zZXRUYWJzVG9MaW5rcyh0YWJzVG9MaW5rcyk7CiAgICAgc2V0dGluZ3MtPnNldENhcmV0QnJv
d3NpbmdFbmFibGVkKGNhcmV0QnJvd3NpbmdFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0QWNj
ZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQoYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0VuYWJsZWQp
OworICAgIHNldHRpbmdzLT5zZXRBY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlkZW9FbmFibGVk
KGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JWaWRlb0VuYWJsZWQpOwogICAgIHNldHRpbmdzLT5z
ZXRVc2VUaHJlYWRlZENvbXBvc2l0b3IodGhyZWFkZWRDb21wb3NpdGluZ0VuYWJsZWQpOwogICAg
IHNldHRpbmdzLT5zZXRDb21wb3NpdGVUb1RleHR1cmVFbmFibGVkKGNvbXBvc2l0ZVRvVGV4dHVy
ZSk7CiAgICAgc2V0dGluZ3MtPnNldEZvcmNlQ29tcG9zaXRpbmdNb2RlKGZvcmNlQ29tcG9zaXRp
bmdNb2RlKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlBy
ZWZlcmVuY2VzLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNl
cy5oCmluZGV4IDUxOGY0NWE5YzZhNDY0YjBhZWFkOTFmNmYwMTBiOTcyOTMxNTI3MzMuLjIzMzdh
NDA1NTlkMGU4YWM0ZmE3NjVlODUzNjE2NDhiMjEzYjBhOWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmgKKysrIGIvVG9vbHMvRHVtcFJl
bmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaApAQCAtMTAwLDYgKzEwMCw3IEBAIHN0
cnVjdCBXZWJQcmVmZXJlbmNlcyB7CiAgICAgYm9vbCB0YWJzVG9MaW5rczsKICAgICBib29sIGh5
cGVybGlua0F1ZGl0aW5nRW5hYmxlZDsKICAgICBib29sIGNhcmV0QnJvd3NpbmdFbmFibGVkOwor
ICAgIGJvb2wgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclZpZGVvRW5hYmxlZDsKICAgICBib29s
IGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkOwogICAgIGJvb2wgdGhyZWFkZWRDb21wb3Np
dGluZ0VuYWJsZWQ7CiAgICAgYm9vbCBjb21wb3NpdGVUb1RleHR1cmU7CmRpZmYgLS1naXQgYS9U
b29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5IGIvVG9v
bHMvU2NyaXB0cy93ZWJraXRweS9sYXlvdXRfdGVzdHMvcG9ydC9jaHJvbWl1bS5weQppbmRleCA2
NDg2ZThlM2MzOWQyNWI3MDAyYTkwNGRkNzE4ODg3OTFmZTIzZDQ3Li4xYzc4NjUzYjZlMjg4NGUx
MDkwOTA5Yjk5Zjg4YWI5OWEwZmZiMWRkIDEwMDc1NQotLS0gYS9Ub29scy9TY3JpcHRzL3dlYmtp
dHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtLnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Vi
a2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW0ucHkKQEAgLTQyNSwxMCArNDI1LDEwIEBA
IGNsYXNzIENocm9taXVtRHJpdmVyKERyaXZlcik6CiAgICAgICAgICAgICAnZ3BfZmF1bHRfZXJy
b3JfYm94JzogJy0tZ3AtZmF1bHQtZXJyb3ItYm94JywKICAgICAgICAgICAgICdzdHJlc3Nfb3B0
JzogJy0tc3RyZXNzLW9wdCcsCiAgICAgICAgICAgICAnc3RyZXNzX2Rlb3B0JzogJy0tc3RyZXNz
LWRlb3B0JywKLSAgICAgICAgICAgICdhY2NlbGVyYXRlZF9jb21wb3NpdGluZyc6ICctLWVuYWJs
ZS1hY2NlbGVyYXRlZC1jb21wb3NpdGluZycsCiAgICAgICAgICAgICAndGhyZWFkZWRfY29tcG9z
aXRpbmcnOiAnLS1lbmFibGUtdGhyZWFkZWQtY29tcG9zaXRpbmcnLAogICAgICAgICAgICAgJ2Fj
Y2VsZXJhdGVkXzJkX2NhbnZhcyc6ICctLWVuYWJsZS1hY2NlbGVyYXRlZC0yZC1jYW52YXMnLAog
ICAgICAgICAgICAgJ2FjY2VsZXJhdGVkX2RyYXdpbmcnOiAnLS1lbmFibGUtYWNjZWxlcmF0ZWQt
ZHJhd2luZycsCisgICAgICAgICAgICAnYWNjZWxlcmF0ZWRfdmlkZW8nOiAnLS1lbmFibGUtYWNj
ZWxlcmF0ZWQtdmlkZW8nLAogICAgICAgICAgICAgJ2VuYWJsZV9oYXJkd2FyZV9ncHUnOiAnLS1l
bmFibGUtaGFyZHdhcmUtZ3B1JywKICAgICAgICAgfQogICAgICAgICBmb3IgbnJ3dF9vcHRpb24s
IGRydF9vcHRpb24gaW4gb3B0aW9uX21hcHBpbmdzLml0ZW1zKCk6CmRpZmYgLS1naXQgYS9Ub29s
cy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2dwdS5weSBiL1Rv
b2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fZ3B1LnB5Cmlu
ZGV4IDJjZjI5NGE5NDZlYzg2OTQ5OTRjMTJlOTc1ZDQ4MTdkZmM1ZDIzYTEuLjhlM2U5OWJhZDYy
MjFmMzBhNWY3M2M3ZTUwMzg1ZDFkMTQ2YTU1ODQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1NjcmlwdHMv
d2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fZ3B1LnB5CisrKyBiL1Rvb2xzL1Nj
cmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21pdW1fZ3B1LnB5CkBAIC02Mywx
MCArNjMsMTAgQEAgZGVmIGdldChob3N0LCBwbGF0Zm9ybT1Ob25lLCBwb3J0X25hbWU9J2Nocm9t
aXVtLWdwdScsICoqa3dhcmdzKToKIAogZGVmIF9zZXRfZ3B1X29wdGlvbnMocG9ydCwgZ3JhcGhp
Y3NfdHlwZT0nZ3B1Jyk6CiAgICAgcG9ydC5fZ3JhcGhpY3NfdHlwZSA9IGdyYXBoaWNzX3R5cGUK
LSAgICBpZiBwb3J0LmdldF9vcHRpb24oJ2FjY2VsZXJhdGVkX2NvbXBvc2l0aW5nJykgaXMgTm9u
ZToKLSAgICAgICAgcG9ydC5fb3B0aW9ucy5hY2NlbGVyYXRlZF9jb21wb3NpdGluZyA9IFRydWUK
ICAgICBpZiBwb3J0LmdldF9vcHRpb24oJ2FjY2VsZXJhdGVkXzJkX2NhbnZhcycpIGlzIE5vbmU6
CiAgICAgICAgIHBvcnQuX29wdGlvbnMuYWNjZWxlcmF0ZWRfMmRfY2FudmFzID0gVHJ1ZQorICAg
IGlmIHBvcnQuZ2V0X29wdGlvbignYWNjZWxlcmF0ZWRfdmlkZW8nKSBpcyBOb25lOgorICAgICAg
ICBwb3J0Ll9vcHRpb25zLmFjY2VsZXJhdGVkX3ZpZGVvID0gVHJ1ZQogICAgIGlmIHBvcnQuZ2V0
X29wdGlvbignZXhwZXJpbWVudGFsX2Z1bGx5X3BhcmFsbGVsJykgaXMgTm9uZToKICAgICAgICAg
cG9ydC5fb3B0aW9ucy5leHBlcmltZW50YWxfZnVsbHlfcGFyYWxsZWwgPSBUcnVlCiAKQEAgLTc4
LDggKzc4LDcgQEAgZGVmIF9zZXRfZ3B1X29wdGlvbnMocG9ydCwgZ3JhcGhpY3NfdHlwZT0nZ3B1
Jyk6CiAKIGRlZiBfdGVzdHMocG9ydCwgcGF0aHMpOgogICAgIGlmIG5vdCBwYXRoczoKLSAgICAg
ICAgcGF0aHMgPSBbJ2NvbXBvc2l0aW5nJywgJ3BsYXRmb3JtL2Nocm9taXVtL2NvbXBvc2l0aW5n
JywgJ2FuaW1hdGlvbnMvM2QnXQotCisgICAgICAgIHBhdGhzID0gW10KICAgICAgICAgaWYgKHBv
cnQubmFtZSgpICE9ICdjaHJvbWl1bS1ncHUtbWFjLWxlb3BhcmQnIGFuZAogICAgICAgICAgICAg
cG9ydC5uYW1lKCkgIT0gJ2Nocm9taXVtLWdwdS1jZy1tYWMtbGVvcGFyZCcpOgogICAgICAgICAg
ICAgIyBPbmx5IHJ1biB0ZXN0cyByZXF1aXJpbmcgYWNjZWxlcmF0ZWQgY29tcG9zaXRpbmcgb24g
cGxhdGZvcm1zIHRoYXQKQEAgLTkyLDkgKzkxLDcgQEAgZGVmIF90ZXN0cyhwb3J0LCBwYXRocyk6
CiAgICAgICAgICAgICAjIENhbnZhcyBpcyBub3QgeWV0IGFjY2VsZXJhdGVkIG9uIHRoZSBNYWMs
IHNvIHRoZXJlJ3Mgbm8gcG9pbnQKICAgICAgICAgICAgICMgaW4gcnVubmluZyB0aGUgdGVzdHMg
dGhlcmUuCiAgICAgICAgICAgICBwYXRocyArPSBbJ2Zhc3QvY2FudmFzJywgJ2NhbnZhcy9waGls
aXAnXQotICAgICAgICAjIGludmFsaWRhdGVfcmVjdC5odG1sIHRlc3RzIGEgYnVnIGluIHRoZSBj
b21wb3NpdG9yLgotICAgICAgICAjIFNlZSBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9NTMxMTcKLSAgICAgICAgcGF0aHMgKz0gWydwbHVnaW5zL2ludmFsaWRhdGVfcmVj
dC5odG1sJ10KKwogICAgIHJldHVybiBzZXQoW3BvcnQucmVsYXRpdmVfdGVzdF9maWxlbmFtZShm
KSBmb3IgZiBpbiB0ZXN0X2ZpbGVzLmZpbmQocG9ydCwgcGF0aHMpXSkKIAogCmRpZmYgLS1naXQg
YS9Ub29scy9TY3JpcHRzL3dlYmtpdHB5L2xheW91dF90ZXN0cy9wb3J0L2Nocm9taXVtX2dwdV91
bml0dGVzdC5weSBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hy
b21pdW1fZ3B1X3VuaXR0ZXN0LnB5CmluZGV4IGJlM2NmZDJiY2U5OTM3Y2EzMTdlYWZmODMwYWQ0
MmU0MmIwODQ0MGMuLjA3OTU5ODIyNDRmYTFjYTI4NWQ5N2YyZTJmNTM2MjRkNDQ0OWY3NDggMTAw
NzU1Ci0tLSBhL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rlc3RzL3BvcnQvY2hyb21p
dW1fZ3B1X3VuaXR0ZXN0LnB5CisrKyBiL1Rvb2xzL1NjcmlwdHMvd2Via2l0cHkvbGF5b3V0X3Rl
c3RzL3BvcnQvY2hyb21pdW1fZ3B1X3VuaXR0ZXN0LnB5CkBAIC01NiwxNiArNTYsMTYgQEAgY2xh
c3MgQ2hyb21pdW1HcHVUZXN0KHVuaXR0ZXN0LlRlc3RDYXNlKToKICAgICAgICAgaG9zdC5maWxl
c3lzdGVtID0gRmlsZVN5c3RlbSgpICAjIEZJWE1FOiBUaGlzIHRlc3Qgc2hvdWxkIG5vdCB1c2Ug
YSByZWFsIGZpbGVzeXN0ZW0hCiAKICAgICAgICAgIyB0ZXN0IHRoYXQgd2UgZ290IHRoZSByaWdo
dCBwb3J0Ci0gICAgICAgIG1vY2tfb3B0aW9ucyA9IE1vY2tPcHRpb25zKGFjY2VsZXJhdGVkX2Nv
bXBvc2l0aW5nPU5vbmUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGFjY2VsZXJhdGVkXzJkX2NhbnZhcz1Ob25lLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBidWlsZGVyX25hbWU9J2ZvbycsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkX3Byb2Nlc3Nlcz1Ob25lKQorICAgICAg
ICBtb2NrX29wdGlvbnMgPSBNb2NrT3B0aW9ucyhhY2NlbGVyYXRlZF8yZF9jYW52YXM9Tm9uZSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNjZWxlcmF0ZWRfdmlkZW89Tm9u
ZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnVpbGRlcl9uYW1lPSdmb28n
LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZF9wcm9jZXNzZXM9Tm9u
ZSkKICAgICAgICAgaWYgaW5wdXRfbmFtZSBhbmQgcGxhdGZvcm06CiAgICAgICAgICAgICBwb3J0
ID0gY2hyb21pdW1fZ3B1LmdldChob3N0LCBwbGF0Zm9ybT1wbGF0Zm9ybSwgcG9ydF9uYW1lPWlu
cHV0X25hbWUsIG9wdGlvbnM9bW9ja19vcHRpb25zKQogICAgICAgICBlbHNlOgogICAgICAgICAg
ICAgcG9ydCA9IGNocm9taXVtX2dwdS5nZXQoaG9zdCwgcG9ydF9uYW1lPXBvcnRfbmFtZSwgb3B0
aW9ucz1tb2NrX29wdGlvbnMpCi0gICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3J0Ll9vcHRpb25z
LmFjY2VsZXJhdGVkX2NvbXBvc2l0aW5nKQogICAgICAgICBzZWxmLmFzc2VydFRydWUocG9ydC5f
b3B0aW9ucy5hY2NlbGVyYXRlZF8yZF9jYW52YXMpCisgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShw
b3J0Ll9vcHRpb25zLmFjY2VsZXJhdGVkX3ZpZGVvKQogICAgICAgICBzZWxmLmFzc2VydFRydWUo
cG9ydC5fb3B0aW9ucy5leHBlcmltZW50YWxfZnVsbHlfcGFyYWxsZWwpCiAgICAgICAgIHNlbGYu
YXNzZXJ0RXF1YWwocG9ydC5fb3B0aW9ucy5idWlsZGVyX25hbWUsICdmb28gLSBHUFUnKQogCkBA
IC04NywxMCArODcsNiBAQCBjbGFzcyBDaHJvbWl1bUdwdVRlc3QodW5pdHRlc3QuVGVzdENhc2Up
OgogICAgICAgICAjIE5vdGUgdGhhdCB0aGlzIGlzIHVzaW5nIGEgcmVhbCBmaWxlc3lzdGVtLgog
ICAgICAgICBmaWxlcyA9IHBvcnQudGVzdHMoTm9uZSkKIAotICAgICAgICBwYXRoID0gJ2NvbXBv
c2l0aW5nL2NoZWNrZXJib2FyZC5odG1sJwotICAgICAgICBzZWxmLmFzc2VydFRydWUocG9ydC5f
ZmlsZXN5c3RlbS5leGlzdHMocG9ydC5hYnNwYXRoX2Zvcl90ZXN0KHBhdGgpKSkKLSAgICAgICAg
c2VsZi5hc3NlcnRUcnVlKHBhdGggaW4gZmlsZXMpCi0KICAgICAgICAgcGF0aCA9ICdmYXN0L2h0
bWwva2V5Z2VuLmh0bWwnCiAgICAgICAgIHNlbGYuYXNzZXJ0VHJ1ZShwb3J0Ll9maWxlc3lzdGVt
LmV4aXN0cyhwb3J0LmFic3BhdGhfZm9yX3Rlc3QocGF0aCkpKQogICAgICAgICBzZWxmLmFzc2Vy
dEZhbHNlKHBhdGggaW4gZmlsZXMpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjA1NzY5OTNjZTM2OWNlNzYxNTdhMzEzN2M0
NzRjZGRlYzIyZDQ5NS4uYTBkZDBhY2QwM2RiMGUxYjk2YWJlNzkzYzI1MTU2ZDQ3MmE2OTdiOCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwpAQCAtMSw1ICsxLDE0IEBACiAyMDExLTExLTE1ICBKYW1lcyBSb2JpbnNvbiAgPGphbWVz
ckBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgW2Nocm9taXVtXSBNZXJnZSBjaHJvbWl1bS1ncHUg
bGF5b3V0IHRlc3QgY29uZmlndXJhdGlvbnMgaW50byBub24tZ3B1IHZlcnNpb25zCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MjQwMgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0OgorCisyMDExLTExLTE1ICBKYW1lcyBSb2JpbnNvbiAg
PGphbWVzckBjaHJvbWl1bS5vcmc+CisKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTcyNDAyCiAgICAgICAgIFVucmV2aWV3ZWQgZXhwZWN0YXRpb25zIHNo
dWZmbGUuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3Rf
ZXhwZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhw
ZWN0YXRpb25zLnR4dAppbmRleCBiZWFiMGZlNjVlOGUxNTc2ZGE4MDkwYzY2NDRhODM5OGMwNzI4
ODI5Li43NDAzMmRhYjU1YTM4MzFkZjZiNGU3ZGNkMzRmMGFiMjRmNjI2OGJmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBA
IC0zODczLDYgKzM4NzMsMTYgQEAgQlVHTVNUQVJaSU5HRVIgOiBmYXN0L2pzL21vemlsbGEvc3Ry
aWN0LzE1LjQuNS4xLmh0bWwgPSBURVhUCiAKIEJVR19TRU5PUkJMQU5DTyBHUFUgOiBmYXN0L2Nh
bnZhcy9jYW52YXMtdHJhbnNmb3Jtcy1maWxsUmVjdC1zaGFkb3cuaHRtbCA9IFRFWFQKIAorLy8g
V2lsbCBuZWVkIGJhc2VsaW5lcyB1cGRhdGVkIHRvIHRha2UgY29tcG9zaXRpbmcgaW50byBhY2Nv
dW50IHdoZW4gdGhhdCBpcyBlbmFibGVkIGJ5IGRlZmF1bHQuCisvLyBTZWUgYnVnIGZvciBkZXRh
aWxzCitCVUdXSzcyNDAyIDogZmFzdC9tZWRpYS9tcS10cmFuc2Zvcm0tMDMuaHRtbCA9IFBBU1Mg
RkFJTAorQlVHV0s3MjQwMiA6IHRyYW5zaXRpb25zL2RlZmF1bHQtdGltaW5nLWZ1bmN0aW9uLmh0
bWwgPSBQQVNTIEZBSUwKK0JVR1dLNzI0MDIgOiBhbmltYXRpb25zL21pc3NpbmctdmFsdWVzLWZp
cnN0LWtleWZyYW1lLmh0bWwgPSBQQVNTIEZBSUwKK0JVR1dLNzI0MDIgOiBmYXN0L3JlcGFpbnQv
YmxvY2stc2VsZWN0aW9uLWdhcC1pbi1jb21wb3NpdGVkLWxheWVyLmh0bWwgPSBQQVNTIEZBSUwK
K0JVR1dLNzI0MDIgOiBmYXN0L21lZGlhL21xLXRyYW5zZm9ybS0wMi5odG1sID0gUEFTUyBGQUlM
CitCVUdXSzcyNDAyIDogYW5pbWF0aW9ucy9vcGFjaXR5LXRyYW5zZm9ybS1hbmltYXRpb24uaHRt
bCA9IFBBU1MgRkFJTAorQlVHV0s3MjQwMiA6IGFuaW1hdGlvbnMvbWlzc2luZy12YWx1ZXMtbGFz
dC1rZXlmcmFtZS5odG1sID0gUEFTUyBGQUlMCisKIC8vIE5lZWQgdG8gcmViYXNlbGluZSBvbiB3
aW4gYW5kIG1hYy4KIEJVR19UT05ZIE1BQyA6IGNzczMvZmxleGJveC9yZXBhaW50Lmh0bWwgPSBQ
QVNTIEZBSUwKIEJVR19UT05ZIE1BQyA6IGNzczMvZmxleGJveC9yZXBhaW50LXJ0bC1jb2x1bW4u
aHRtbCA9IFBBU1MgRkFJTAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>