<?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>190863</bug_id>
          
          <creation_ts>2018-10-23 22:32:15 -0700</creation_ts>
          <short_desc>Customizable test group form should not reset manually edited commit value sometimes.</short_desc>
          <delta_ts>2018-11-06 22:34:04 -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>New Bugs</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter>dewei_zhu</reporter>
          <assigned_to>dewei_zhu</assigned_to>
          <cc>dewei_zhu</cc>
    
    <cc>rniwa</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1471771</commentid>
    <comment_count>0</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2018-10-23 22:32:15 -0700</bug_when>
    <thetext>Customizable test group form should not reset manually edited commit value sometimes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471773</commentid>
    <comment_count>1</comment_count>
      <attachid>353022</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2018-10-23 22:56:42 -0700</bug_when>
    <thetext>Created attachment 353022
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471774</commentid>
    <comment_count>2</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2018-10-23 22:57:37 -0700</bug_when>
    <thetext>rdar://problem/45510389</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1471775</commentid>
    <comment_count>3</comment_count>
      <attachid>353022</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2018-10-23 23:03:37 -0700</bug_when>
    <thetext>Comment on attachment 353022
Patch

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

&gt; Websites/perf.webkit.org/public/v3/components/customizable-test-group-form.js:255
&gt; +                if (ownerRepository)

The correct logic should be avoid updating commit for repositories with owner.

&gt; Websites/perf.webkit.org/public/v3/components/customizable-test-group-form.js:270
&gt; +                    const originalCommit = originalCommitSetMap[labelToChoose].commitForRepository(repository) || commit;

If this repository exists in originalCommitSetMap, we the radio button should set the value from original commit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475395</commentid>
    <comment_count>4</comment_count>
      <attachid>353022</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-11-05 19:58:18 -0800</bug_when>
    <thetext>Comment on attachment 353022
Patch

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

&gt; Websites/perf.webkit.org/ChangeLog:7
&gt; +        After changing the radio button and manually editing the commit value, commit value should not be reset
&gt; +        while changing the name of the test group.

Why don&apos;t we add a test for this?
And let&apos;s split this patch into two since these two changes are pretty complex.

&gt; Websites/perf.webkit.org/ChangeLog:10
&gt; +        Reviewed by NOBODY (OOPS!).

This line should appear before the long description bug after the bug link.

&gt; Websites/perf.webkit.org/ChangeLog:22
&gt; +        (CustomizableTestGroupForm.prototype._constructRevisionRadioButtons):

Let&apos;s add a comment saying that this code change is the one which fixes the toggling A/B would not update the commit set.

&gt; Websites/perf.webkit.org/public/v3/components/customizable-test-group-form.js:20
&gt; +        this._originalCommitSetMap = map;

How about uncustomizedCommitSetMap to match the terminology?

&gt; Websites/perf.webkit.org/public/v3/components/customizable-test-group-form.js:258
&gt; +                commitSetMap.get(columnLabel).updateRevisionForOwnerRepository(repository, revisionEditor.value).catch(
&gt;                      () =&gt; revisionEditor.value = &apos;&apos;);

This needs to be updated to revert to the old value.
We should probably warn the user that the specified revision doesn&apos;t exist with a nice error message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475792</commentid>
    <comment_count>5</comment_count>
      <attachid>354038</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2018-11-06 17:37:45 -0800</bug_when>
    <thetext>Created attachment 354038
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475806</commentid>
    <comment_count>6</comment_count>
      <attachid>354038</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-11-06 18:04:01 -0800</bug_when>
    <thetext>Comment on attachment 354038
Patch

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

&gt; Websites/perf.webkit.org/browser-tests/customizable-test-group-form-tests.js:78
&gt; +        let revisionEditors = customizableTestGroupForm.content(&apos;custom-table&apos;).querySelectorAll(&apos;input:not([type=&quot;radio&quot;])&apos;);
&gt; +        expect(revisionEditors.length).to.be(2);
&gt; +        let revisionEditor = revisionEditors[0];

Use const?

&gt; Websites/perf.webkit.org/public/v3/components/customizable-test-group-form.js:259
&gt; +                        alert(`Commit &quot;${revisionEditor.value}&quot; from &quot;${repository.name()}&quot; does not exits.`);

I think a better error message would be `&quot;${revisionEditor.value}&quot; doesn&apos;t exist in &quot;${repository.name()}&quot;`.
Saying that it&apos;s a commit is both redundant for regular repositories and erroneous for OS versions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475811</commentid>
    <comment_count>7</comment_count>
      <attachid>354038</attachid>
    <who name="">dewei_zhu</who>
    <bug_when>2018-11-06 18:23:48 -0800</bug_when>
    <thetext>Comment on attachment 354038
Patch

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

&gt;&gt; Websites/perf.webkit.org/browser-tests/customizable-test-group-form-tests.js:78
&gt;&gt; +        let revisionEditor = revisionEditors[0];
&gt; 
&gt; Use const?

We need to querySelect another revision editor after form gets re-rendered. Line 89 re-assigned it.

&gt;&gt; Websites/perf.webkit.org/public/v3/components/customizable-test-group-form.js:259
&gt;&gt; +                        alert(`Commit &quot;${revisionEditor.value}&quot; from &quot;${repository.name()}&quot; does not exits.`);
&gt; 
&gt; I think a better error message would be `&quot;${revisionEditor.value}&quot; doesn&apos;t exist in &quot;${repository.name()}&quot;`.
&gt; Saying that it&apos;s a commit is both redundant for regular repositories and erroneous for OS versions.

Sure.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475874</commentid>
    <comment_count>8</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2018-11-06 21:58:48 -0800</bug_when>
    <thetext>Landed in r237915.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1475888</commentid>
    <comment_count>9</comment_count>
    <who name="">dewei_zhu</who>
    <bug_when>2018-11-06 22:34:04 -0800</bug_when>
    <thetext>rdar://problem/45510389</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>353022</attachid>
            <date>2018-10-23 22:56:42 -0700</date>
            <delta_ts>2018-11-06 17:37:43 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190863-20181023225641.patch</filename>
            <type>text/plain</type>
            <size>11449</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3Mzc1CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1MTk3M2ZkYjE1NzIyZWEyZmZkYTVmZGNiNDg5NGQ1Y2Y4MGFhZjEyLi40MDZhM2NmOTBl
NjlkOWRmYjdlNzkzMjRhN2E1MWQ2YzI2YzJlMzI5IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNiBAQAorMjAxOC0xMC0yMyAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBDdXN0b21pemFibGUgdGVzdCBncm91cCBmb3JtIHNob3Vs
ZCBub3QgcmVzZXQgbWFudWFsbHkgZWRpdGVkIGNvbW1pdCB2YWx1ZSBzb21ldGltZXMuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA4NjMKKworICAg
ICAgICBBZnRlciBjaGFuZ2luZyB0aGUgcmFkaW8gYnV0dG9uIGFuZCBtYW51YWxseSBlZGl0aW5n
IHRoZSBjb21taXQgdmFsdWUsIGNvbW1pdCB2YWx1ZSBzaG91bGQgbm90IGJlIHJlc2V0CisgICAg
ICAgIHdoaWxlIGNoYW5naW5nIHRoZSBuYW1lIG9mIHRoZSB0ZXN0IGdyb3VwLgorICAgICAgICBG
aXhlZCBhIGJ1ZyB0aGF0IFJhZGlvIGJ1dHRvbiBvbiBjdXN0b21pemFibGUgdGVzdCBncm91cCBm
b3JtIGRvZXMgbm90IHByZXNlcnZlIHRoZSBvcmlnaW5hbCBjb21taXQgdmFsdWUuCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvdjMvY29t
cG9uZW50cy9jdXN0b21pemFibGUtdGVzdC1ncm91cC1mb3JtLmpzOiBBZGRlZCBvcmlnaW5hbENv
bW1pdFNldCB0byBtYWtlIHN1cmUgcmFkaW8gYnV0dG9uCisgICAgICAgIGFsd2F5cyByZXNldHMg
dG8gdGhlIG9yaWdpbmFsIHZhbHVlLgorICAgICAgICBGaXhlZCB0aGUgYnVnIHRoZSByZXZpc2lv
biBlZGl0b3IgdmFsdWUgc29tZXRpbWVzIGdldHMgcmVzZXQuCisgICAgICAgIChDdXN0b21pemFi
bGVUZXN0R3JvdXBGb3JtKToKKyAgICAgICAgKEN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0ucHJv
dG90eXBlLnNldENvbW1pdFNldE1hcCk6CisgICAgICAgIChDdXN0b21pemFibGVUZXN0R3JvdXBG
b3JtLnByb3RvdHlwZS5yZW5kZXIpOgorICAgICAgICAoQ3VzdG9taXphYmxlVGVzdEdyb3VwRm9y
bS5wcm90b3R5cGUuX3JlbmRlckN1c3RvbVJldmlzaW9uVGFibGUpOgorICAgICAgICAoQ3VzdG9t
aXphYmxlVGVzdEdyb3VwRm9ybS5wcm90b3R5cGUuX2NvbnN0cnVjdFRhYmxlQm9keUxpc3QpOgor
ICAgICAgICAoQ3VzdG9taXphYmxlVGVzdEdyb3VwRm9ybS5wcm90b3R5cGUuX2NvbnN0cnVjdFRh
YmxlUm93Rm9yQ29tbWl0c1dpdGhvdXRPd25lcik6CisgICAgICAgIChDdXN0b21pemFibGVUZXN0
R3JvdXBGb3JtLnByb3RvdHlwZS5fY29uc3RydWN0VGFibGVSb3dGb3JDb21taXRzV2l0aE93bmVy
KToKKyAgICAgICAgKEN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0ucHJvdG90eXBlLl9jb25zdHJ1
Y3RSZXZpc2lvblJhZGlvQnV0dG9ucyk6CisKIDIwMTgtMTAtMTYgIERld2VpIFpodSAgPGRld2Vp
X3podUBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjIzNjk5
Ni4KZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9u
ZW50cy9jdXN0b21pemFibGUtdGVzdC1ncm91cC1mb3JtLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJr
aXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2N1c3RvbWl6YWJsZS10ZXN0LWdyb3VwLWZvcm0u
anMKaW5kZXggMjA0NDFjMTE4YjNkOWVkMTU5YWE5ZDdkN2NkZmQ5NzlkNTIxNTk1MS4uOTVjZmU1
OTU2MmJlZGE0MDA5MDM5NzRmMzUyYTM5MGMxZjBkYzRiZSAxMDA2NDQKLS0tIGEvV2Vic2l0ZXMv
cGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21wb25lbnRzL2N1c3RvbWl6YWJsZS10ZXN0LWdy
b3VwLWZvcm0uanMKKysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL3B1YmxpYy92My9jb21w
b25lbnRzL2N1c3RvbWl6YWJsZS10ZXN0LWdyb3VwLWZvcm0uanMKQEAgLTQsNiArNCw3IEBAIGNs
YXNzIEN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0gZXh0ZW5kcyBUZXN0R3JvdXBGb3JtIHsKICAg
ICB7CiAgICAgICAgIHN1cGVyKCdjdXN0b21pemFibGUtdGVzdC1ncm91cC1mb3JtJyk7CiAgICAg
ICAgIHRoaXMuX2NvbW1pdFNldE1hcCA9IG51bGw7CisgICAgICAgIHRoaXMuX29yaWdpbmFsQ29t
bWl0U2V0TWFwID0gbnVsbDsKICAgICAgICAgdGhpcy5fbmFtZSA9IG51bGw7CiAgICAgICAgIHRo
aXMuX2lzQ3VzdG9taXplZCA9IGZhbHNlOwogICAgICAgICB0aGlzLl9yZXZpc2lvbkVkaXRvck1h
cCA9IG51bGw7CkBAIC0xNiw2ICsxNyw3IEBAIGNsYXNzIEN1c3RvbWl6YWJsZVRlc3RHcm91cEZv
cm0gZXh0ZW5kcyBUZXN0R3JvdXBGb3JtIHsKICAgICBzZXRDb21taXRTZXRNYXAobWFwKQogICAg
IHsKICAgICAgICAgdGhpcy5fY29tbWl0U2V0TWFwID0gbWFwOworICAgICAgICB0aGlzLl9vcmln
aW5hbENvbW1pdFNldE1hcCA9IG1hcDsKICAgICAgICAgdGhpcy5faXNDdXN0b21pemVkID0gZmFs
c2U7CiAgICAgICAgIHRoaXMuX2ZldGNoaW5nQ29tbWl0UHJvbWlzZXMgPSBbXTsKICAgICAgICAg
dGhpcy5fY2hlY2tlZExhYmVsQnlQb3NpdGlvbiA9IG5ldyBNYXA7CkBAIC05MywxMCArOTUsMTAg
QEAgY2xhc3MgQ3VzdG9taXphYmxlVGVzdEdyb3VwRm9ybSBleHRlbmRzIFRlc3RHcm91cEZvcm0g
ewogICAgICAgICB0aGlzLmNvbnRlbnQoJ3N0YXJ0LWJ1dHRvbicpLmRpc2FibGVkID0gISh0aGlz
Ll9jb21taXRTZXRNYXAgJiYgdGhpcy5fbmFtZSk7CiAgICAgICAgIHRoaXMuY29udGVudCgnY3Vz
dG9taXplLWxpbmstY29udGFpbmVyJykuc3R5bGUuZGlzcGxheSA9ICF0aGlzLl9jb21taXRTZXRN
YXAgPyAnbm9uZScgOiBudWxsOwogCi0gICAgICAgIHRoaXMuX3JlbmRlckN1c3RvbVJldmlzaW9u
VGFibGUodGhpcy5fY29tbWl0U2V0TWFwLCB0aGlzLl9pc0N1c3RvbWl6ZWQpOworICAgICAgICB0
aGlzLl9yZW5kZXJDdXN0b21SZXZpc2lvblRhYmxlKHRoaXMuX2NvbW1pdFNldE1hcCwgdGhpcy5f
aXNDdXN0b21pemVkLCB0aGlzLl9vcmlnaW5hbENvbW1pdFNldE1hcCk7CiAgICAgfQogCi0gICAg
X3JlbmRlckN1c3RvbVJldmlzaW9uVGFibGUoY29tbWl0U2V0TWFwLCBpc0N1c3RvbWl6ZWQpCisg
ICAgX3JlbmRlckN1c3RvbVJldmlzaW9uVGFibGUoY29tbWl0U2V0TWFwLCBpc0N1c3RvbWl6ZWQs
IG9yaWdpbmFsQ29tbWl0U2V0TWFwKQogICAgIHsKICAgICAgICAgaWYgKCFjb21taXRTZXRNYXAg
fHwgIWlzQ3VzdG9taXplZCkgewogICAgICAgICAgICAgdGhpcy5yZW5kZXJSZXBsYWNlKHRoaXMu
Y29udGVudCgnY3VzdG9tLXRhYmxlJyksIFtdKTsKQEAgLTEzMywxMCArMTM1LDEwIEBAIGNsYXNz
IEN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0gZXh0ZW5kcyBUZXN0R3JvdXBGb3JtIHsKICAgICAg
ICAgICAgIGVsZW1lbnQoJ3RoZWFkJywKICAgICAgICAgICAgICAgICBlbGVtZW50KCd0cicsCiAg
ICAgICAgICAgICAgICAgICAgIFtlbGVtZW50KCd0ZCcsIHtjb2xzcGFuOiAyfSwgJ1JlcG9zaXRv
cnknKSwgY29tbWl0U2V0TGFiZWxzLm1hcCgobGFiZWwpID0+IGVsZW1lbnQoJ3RkJywge2NvbHNw
YW46IGNvbW1pdFNldExhYmVscy5sZW5ndGggKyAxfSwgbGFiZWwpKSwgZWxlbWVudCgndGQnKV0p
KSwKLSAgICAgICAgICAgIHRoaXMuX2NvbnN0cnVjdFRhYmxlQm9keUxpc3QocmVwb3NpdG9yeUxp
c3QsIGNvbW1pdFNldE1hcCwgb3duZWRSZXBvc2l0b3JpZXNCeVJlcG9zaXRvcnksIHRoaXMuX2hh
c0luY29tcGxldGVPd25lZFJlcG9zaXRvcnkpXSk7CisgICAgICAgICAgICB0aGlzLl9jb25zdHJ1
Y3RUYWJsZUJvZHlMaXN0KHJlcG9zaXRvcnlMaXN0LCBjb21taXRTZXRNYXAsIG93bmVkUmVwb3Np
dG9yaWVzQnlSZXBvc2l0b3J5LCB0aGlzLl9oYXNJbmNvbXBsZXRlT3duZWRSZXBvc2l0b3J5LCBv
cmlnaW5hbENvbW1pdFNldE1hcCldKTsKICAgICB9CiAKLSAgICBfY29uc3RydWN0VGFibGVCb2R5
TGlzdChyZXBvc2l0b3J5TGlzdCwgY29tbWl0U2V0TWFwLCBvd25lZFJlcG9zaXRvcmllc0J5UmVw
b3NpdG9yeSwgaGFzSW5jb21wbGV0ZU93bmVkUmVwb3NpdG9yeSkKKyAgICBfY29uc3RydWN0VGFi
bGVCb2R5TGlzdChyZXBvc2l0b3J5TGlzdCwgY29tbWl0U2V0TWFwLCBvd25lZFJlcG9zaXRvcmll
c0J5UmVwb3NpdG9yeSwgaGFzSW5jb21wbGV0ZU93bmVkUmVwb3NpdG9yeSwgb3JpZ2luYWxDb21t
aXRTZXRNYXApCiAgICAgewogICAgICAgICBjb25zdCBlbGVtZW50ID0gQ29tcG9uZW50QmFzZS5j
cmVhdGVFbGVtZW50OwogICAgICAgICBjb25zdCB0YWJsZUJvZHlMaXN0ID0gW107CkBAIC0xNDYs
NyArMTQ4LDcgQEAgY2xhc3MgQ3VzdG9taXphYmxlVGVzdEdyb3VwRm9ybSBleHRlbmRzIFRlc3RH
cm91cEZvcm0gewogICAgICAgICAgICAgY29uc3QgaGFzSW5jb21wbGV0ZVJvdyA9IGhhc0luY29t
cGxldGVPd25lZFJlcG9zaXRvcnkuZ2V0KHJlcG9zaXRvcnkpOwogICAgICAgICAgICAgY29uc3Qg
b3duZWRSZXBvc2l0b3JpZXMgPSBvd25lZFJlcG9zaXRvcmllc0J5UmVwb3NpdG9yeS5nZXQocmVw
b3NpdG9yeSk7CiAKLSAgICAgICAgICAgIHJvd3MucHVzaCh0aGlzLl9jb25zdHJ1Y3RUYWJsZVJv
d0ZvckNvbW1pdHNXaXRob3V0T3duZXIoY29tbWl0U2V0TWFwLCByZXBvc2l0b3J5LCBhbGxDb21t
aXRTZXRTcGVjaWZpZXNPd25lckNvbW1pdCwgaGFzSW5jb21wbGV0ZU93bmVkUmVwb3NpdG9yeSkp
OworICAgICAgICAgICAgcm93cy5wdXNoKHRoaXMuX2NvbnN0cnVjdFRhYmxlUm93Rm9yQ29tbWl0
c1dpdGhvdXRPd25lcihjb21taXRTZXRNYXAsIHJlcG9zaXRvcnksIGFsbENvbW1pdFNldFNwZWNp
Zmllc093bmVyQ29tbWl0LCBoYXNJbmNvbXBsZXRlT3duZWRSZXBvc2l0b3J5LCBvcmlnaW5hbENv
bW1pdFNldE1hcCkpOwogCiAgICAgICAgICAgICBpZiAoKCFvd25lZFJlcG9zaXRvcmllcyB8fCAh
b3duZWRSZXBvc2l0b3JpZXMuc2l6ZSkgJiYgIWhhc0luY29tcGxldGVSb3cpIHsKICAgICAgICAg
ICAgICAgICB0YWJsZUJvZHlMaXN0LnB1c2goZWxlbWVudCgndGJvZHknLCByb3dzKSk7CkBAIC0x
NTUsNyArMTU3LDcgQEAgY2xhc3MgQ3VzdG9taXphYmxlVGVzdEdyb3VwRm9ybSBleHRlbmRzIFRl
c3RHcm91cEZvcm0gewogCiAgICAgICAgICAgICBpZiAob3duZWRSZXBvc2l0b3JpZXMpIHsKICAg
ICAgICAgICAgICAgICBmb3IgKGNvbnN0IG93bmVkUmVwb3NpdG9yeSBvZiBvd25lZFJlcG9zaXRv
cmllcykKLSAgICAgICAgICAgICAgICAgICAgcm93cy5wdXNoKHRoaXMuX2NvbnN0cnVjdFRhYmxl
Um93Rm9yQ29tbWl0c1dpdGhPd25lcihjb21taXRTZXRNYXAsIG93bmVkUmVwb3NpdG9yeSwgcmVw
b3NpdG9yeSkpOworICAgICAgICAgICAgICAgICAgICByb3dzLnB1c2godGhpcy5fY29uc3RydWN0
VGFibGVSb3dGb3JDb21taXRzV2l0aE93bmVyKGNvbW1pdFNldE1hcCwgb3duZWRSZXBvc2l0b3J5
LCByZXBvc2l0b3J5LCBvcmlnaW5hbENvbW1pdFNldE1hcCkpOwogICAgICAgICAgICAgfQogCiAg
ICAgICAgICAgICBpZiAoaGFzSW5jb21wbGV0ZVJvdykgewpAQCAtMTY4LDEzICsxNzAsMTMgQEAg
Y2xhc3MgQ3VzdG9taXphYmxlVGVzdEdyb3VwRm9ybSBleHRlbmRzIFRlc3RHcm91cEZvcm0gewog
ICAgICAgICByZXR1cm4gdGFibGVCb2R5TGlzdDsKICAgICB9CiAKLSAgICBfY29uc3RydWN0VGFi
bGVSb3dGb3JDb21taXRzV2l0aG91dE93bmVyKGNvbW1pdFNldE1hcCwgcmVwb3NpdG9yeSwgb3du
c1JlcG9zaXRvcmllcywgaGFzSW5jb21wbGV0ZU93bmVkUmVwb3NpdG9yeSkKKyAgICBfY29uc3Ry
dWN0VGFibGVSb3dGb3JDb21taXRzV2l0aG91dE93bmVyKGNvbW1pdFNldE1hcCwgcmVwb3NpdG9y
eSwgb3duc1JlcG9zaXRvcmllcywgaGFzSW5jb21wbGV0ZU93bmVkUmVwb3NpdG9yeSwgb3JpZ2lu
YWxDb21taXRTZXRNYXApCiAgICAgewogICAgICAgICBjb25zdCBlbGVtZW50ID0gQ29tcG9uZW50
QmFzZS5jcmVhdGVFbGVtZW50OwogICAgICAgICBjb25zdCBjZWxscyA9IFtlbGVtZW50KCd0aCcs
IHtjb2xzcGFuOiAyfSwgcmVwb3NpdG9yeS5sYWJlbCgpKV07CiAKICAgICAgICAgZm9yIChjb25z
dCBsYWJlbCBvZiBjb21taXRTZXRNYXAua2V5cygpKQotICAgICAgICAgICAgY2VsbHMucHVzaCh0
aGlzLl9jb25zdHJ1Y3RSZXZpc2lvblJhZGlvQnV0dG9ucyhjb21taXRTZXRNYXAsIHJlcG9zaXRv
cnksIGxhYmVsLCBudWxsLCBvd25zUmVwb3NpdG9yaWVzKSk7CisgICAgICAgICAgICBjZWxscy5w
dXNoKHRoaXMuX2NvbnN0cnVjdFJldmlzaW9uUmFkaW9CdXR0b25zKGNvbW1pdFNldE1hcCwgcmVw
b3NpdG9yeSwgbGFiZWwsIG51bGwsIG9yaWdpbmFsQ29tbWl0U2V0TWFwKSk7CiAKICAgICAgICAg
aWYgKG93bnNSZXBvc2l0b3JpZXMpIHsKICAgICAgICAgICAgIGNvbnN0IHBsdXNCdXR0b24gPSBu
ZXcgUGx1c0J1dHRvbigpOwpAQCAtMTkwLDE0ICsxOTIsMTQgQEAgY2xhc3MgQ3VzdG9taXphYmxl
VGVzdEdyb3VwRm9ybSBleHRlbmRzIFRlc3RHcm91cEZvcm0gewogICAgICAgICByZXR1cm4gZWxl
bWVudCgndHInLCBjZWxscyk7CiAgICAgfQogCi0gICAgX2NvbnN0cnVjdFRhYmxlUm93Rm9yQ29t
bWl0c1dpdGhPd25lcihjb21taXRTZXRNYXAsIHJlcG9zaXRvcnksIG93bmVyUmVwb3NpdG9yeSkK
KyAgICBfY29uc3RydWN0VGFibGVSb3dGb3JDb21taXRzV2l0aE93bmVyKGNvbW1pdFNldE1hcCwg
cmVwb3NpdG9yeSwgb3duZXJSZXBvc2l0b3J5LCBvcmlnaW5hbENvbW1pdFNldE1hcCkKICAgICB7
CiAgICAgICAgIGNvbnN0IGVsZW1lbnQgPSBDb21wb25lbnRCYXNlLmNyZWF0ZUVsZW1lbnQ7CiAg
ICAgICAgIGNvbnN0IGNlbGxzID0gW2VsZW1lbnQoJ3RkJywge2NsYXNzOiAnb3duZXItcmVwb3Np
dG9yeS1sYWJlbCd9KSwgZWxlbWVudCgndGgnLCByZXBvc2l0b3J5LmxhYmVsKCkpXTsKICAgICAg
ICAgY29uc3QgbWludXNCdXR0b24gPSBuZXcgTWludXNCdXR0b24oKTsKIAogICAgICAgICBmb3Ig
KGNvbnN0IGxhYmVsIG9mIGNvbW1pdFNldE1hcC5rZXlzKCkpCi0gICAgICAgICAgICBjZWxscy5w
dXNoKHRoaXMuX2NvbnN0cnVjdFJldmlzaW9uUmFkaW9CdXR0b25zKGNvbW1pdFNldE1hcCwgcmVw
b3NpdG9yeSwgbGFiZWwsIG93bmVyUmVwb3NpdG9yeSwgZmFsc2UpKTsKKyAgICAgICAgICAgIGNl
bGxzLnB1c2godGhpcy5fY29uc3RydWN0UmV2aXNpb25SYWRpb0J1dHRvbnMoY29tbWl0U2V0TWFw
LCByZXBvc2l0b3J5LCBsYWJlbCwgb3duZXJSZXBvc2l0b3J5LCBvcmlnaW5hbENvbW1pdFNldE1h
cCkpOwogCiAgICAgICAgIG1pbnVzQnV0dG9uLmxpc3RlblRvQWN0aW9uKCdhY3RpdmF0ZScsICgp
ID0+IHsKICAgICAgICAgICAgIGZvciAoY29uc3QgY29tbWl0U2V0IG9mIGNvbW1pdFNldE1hcC52
YWx1ZXMoKSkKQEAgLTI0MCwzNyArMjQyLDM4IEBAIGNsYXNzIEN1c3RvbWl6YWJsZVRlc3RHcm91
cEZvcm0gZXh0ZW5kcyBUZXN0R3JvdXBGb3JtIHsKICAgICAgICAgcmV0dXJuIGVsZW1lbnQoJ3Ry
JywgY2VsbHMpOwogICAgIH0KIAotICAgIF9jb25zdHJ1Y3RSZXZpc2lvblJhZGlvQnV0dG9ucyhj
b21taXRTZXRNYXAsIHJlcG9zaXRvcnksIHJvd0xhYmVsLCBvd25lclJlcG9zaXRvcnksIG93bnNS
ZXBvc2l0b3JpZXMpCisgICAgX2NvbnN0cnVjdFJldmlzaW9uUmFkaW9CdXR0b25zKGNvbW1pdFNl
dE1hcCwgcmVwb3NpdG9yeSwgY29sdW1uTGFiZWwsIG93bmVyUmVwb3NpdG9yeSwgb3JpZ2luYWxD
b21taXRTZXRNYXApCiAgICAgewogICAgICAgICBjb25zdCBlbGVtZW50ID0gQ29tcG9uZW50QmFz
ZS5jcmVhdGVFbGVtZW50OwotICAgICAgICBjb25zdCByZXZpc2lvbkVkaXRvciA9IGVsZW1lbnQo
J2lucHV0Jywge2Rpc2FibGVkOiAhIW93bmVyUmVwb3NpdG9yeSwKKworICAgICAgICBjb25zdCBj
b21taXRGb3JDb2x1bW4gPSBjb21taXRTZXRNYXAuZ2V0KGNvbHVtbkxhYmVsKS5jb21taXRGb3JS
ZXBvc2l0b3J5KHJlcG9zaXRvcnkpOworICAgICAgICBpZiAoY29tbWl0Rm9yQ29sdW1uICYmIGNv
bW1pdEZvckNvbHVtbi5vd25lckNvbW1pdCgpKQorICAgICAgICAgICAgdGhpcy5fb3duZXJSZXZp
c2lvbk1hcC5nZXQoY29sdW1uTGFiZWwpLnNldChyZXBvc2l0b3J5LCBjb21taXRGb3JDb2x1bW4u
b3duZXJDb21taXQoKS5yZXZpc2lvbigpKTsKKworICAgICAgICBjb25zdCByZXZpc2lvbkVkaXRv
ciA9IGVsZW1lbnQoJ2lucHV0Jywge2Rpc2FibGVkOiAhIW93bmVyUmVwb3NpdG9yeSwgdmFsdWU6
IGNvbW1pdEZvckNvbHVtbiA/IGNvbW1pdEZvckNvbHVtbi5yZXZpc2lvbigpIDogJycsCiAgICAg
ICAgICAgICBvbmNoYW5nZTogKCkgPT4gewotICAgICAgICAgICAgICAgIGlmICghb3duc1JlcG9z
aXRvcmllcykKKyAgICAgICAgICAgICAgICBpZiAob3duZXJSZXBvc2l0b3J5KQogICAgICAgICAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgY29tbWl0U2V0TWFwLmdldChyb3dM
YWJlbCkudXBkYXRlUmV2aXNpb25Gb3JPd25lclJlcG9zaXRvcnkocmVwb3NpdG9yeSwgcmV2aXNp
b25FZGl0b3IudmFsdWUpLmNhdGNoKAorICAgICAgICAgICAgICAgIGNvbW1pdFNldE1hcC5nZXQo
Y29sdW1uTGFiZWwpLnVwZGF0ZVJldmlzaW9uRm9yT3duZXJSZXBvc2l0b3J5KHJlcG9zaXRvcnks
IHJldmlzaW9uRWRpdG9yLnZhbHVlKS5jYXRjaCgKICAgICAgICAgICAgICAgICAgICAgKCkgPT4g
cmV2aXNpb25FZGl0b3IudmFsdWUgPSAnJyk7CiAgICAgICAgICAgICB9fSk7CiAKLSAgICAgICAg
dGhpcy5fcmV2aXNpb25FZGl0b3JNYXAuZ2V0KHJvd0xhYmVsKS5zZXQocmVwb3NpdG9yeSwgcmV2
aXNpb25FZGl0b3IpOworICAgICAgICB0aGlzLl9yZXZpc2lvbkVkaXRvck1hcC5nZXQoY29sdW1u
TGFiZWwpLnNldChyZXBvc2l0b3J5LCByZXZpc2lvbkVkaXRvcik7CiAKICAgICAgICAgY29uc3Qg
bm9kZXMgPSBbXTsKLSAgICAgICAgZm9yIChjb25zdCBsYWJlbFRvQ2hvb3NlIG9mIGNvbW1pdFNl
dE1hcC5rZXlzKCkpIHsKLSAgICAgICAgICAgIGNvbnN0IGNvbW1pdCA9IGNvbW1pdFNldE1hcC5n
ZXQobGFiZWxUb0Nob29zZSkuY29tbWl0Rm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5KTsKLSAgICAg
ICAgICAgIGNvbnN0IGNoZWNrZWRMYWJlbCA9IHRoaXMuX2NoZWNrZWRMYWJlbEJ5UG9zaXRpb24u
Z2V0KHJvd0xhYmVsKS5nZXQocmVwb3NpdG9yeSkgfHwgcm93TGFiZWw7Ci0gICAgICAgICAgICBj
b25zdCBjaGVja2VkID0gIGxhYmVsVG9DaG9vc2UgPT0gY2hlY2tlZExhYmVsOwotICAgICAgICAg
ICAgY29uc3QgcmFkaW9CdXR0b24gPSBlbGVtZW50KCdpbnB1dCcsIHt0eXBlOiAncmFkaW8nLCBu
YW1lOiBgJHtyb3dMYWJlbH0tJHtyZXBvc2l0b3J5LmlkKCl9LXJhZGlvYCwgY2hlY2tlZCwKKyAg
ICAgICAgZm9yIChjb25zdCBbbGFiZWxUb0Nob29zZSwgY29tbWl0U2V0XSBvZiBjb21taXRTZXRN
YXApIHsKKyAgICAgICAgICAgIGNvbnN0IGNvbW1pdCA9IGNvbW1pdFNldC5jb21taXRGb3JSZXBv
c2l0b3J5KHJlcG9zaXRvcnkpOworICAgICAgICAgICAgY29uc3QgY2hlY2tlZExhYmVsID0gdGhp
cy5fY2hlY2tlZExhYmVsQnlQb3NpdGlvbi5nZXQoY29sdW1uTGFiZWwpLmdldChyZXBvc2l0b3J5
KSB8fCBjb2x1bW5MYWJlbDsKKyAgICAgICAgICAgIGNvbnN0IGNoZWNrZWQgPSBsYWJlbFRvQ2hv
b3NlID09IGNoZWNrZWRMYWJlbDsKKyAgICAgICAgICAgIGNvbnN0IHJhZGlvQnV0dG9uID0gZWxl
bWVudCgnaW5wdXQnLCB7dHlwZTogJ3JhZGlvJywgbmFtZTogYCR7Y29sdW1uTGFiZWx9LSR7cmVw
b3NpdG9yeS5pZCgpfS1yYWRpb2AsIGNoZWNrZWQsCiAgICAgICAgICAgICAgICAgb25jaGFuZ2U6
ICgpID0+IHsKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fY2hlY2tlZExhYmVsQnlQb3NpdGlv
bi5nZXQocm93TGFiZWwpLnNldChyZXBvc2l0b3J5LCBsYWJlbFRvQ2hvb3NlKTsKLSAgICAgICAg
ICAgICAgICAgICAgcmV2aXNpb25FZGl0b3IudmFsdWUgPSBjb21taXQgPyBjb21taXQucmV2aXNp
b24oKSA6ICcnOwotICAgICAgICAgICAgICAgICAgICBpZiAoY29tbWl0ICYmIGNvbW1pdC5vd25l
ckNvbW1pdCgpKQotICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3duZXJSZXZpc2lvbk1h
cC5nZXQocm93TGFiZWwpLnNldChyZXBvc2l0b3J5LCBjb21taXQub3duZXJDb21taXQoKS5yZXZp
c2lvbigpKTsKKyAgICAgICAgICAgICAgICAgICAgY29uc3Qgb3JpZ2luYWxDb21taXQgPSBvcmln
aW5hbENvbW1pdFNldE1hcFtsYWJlbFRvQ2hvb3NlXS5jb21taXRGb3JSZXBvc2l0b3J5KHJlcG9z
aXRvcnkpIHx8IGNvbW1pdDsKKyAgICAgICAgICAgICAgICAgICAgY29tbWl0U2V0TWFwLmdldChj
b2x1bW5MYWJlbCkuc2V0Q29tbWl0Rm9yUmVwb3NpdG9yeShyZXBvc2l0b3J5LCBvcmlnaW5hbENv
bW1pdCk7CisgICAgICAgICAgICAgICAgICAgIHRoaXMuX2NoZWNrZWRMYWJlbEJ5UG9zaXRpb24u
Z2V0KGNvbHVtbkxhYmVsKS5zZXQocmVwb3NpdG9yeSwgbGFiZWxUb0Nob29zZSk7CisgICAgICAg
ICAgICAgICAgICAgIHJldmlzaW9uRWRpdG9yLnZhbHVlID0gb3JpZ2luYWxDb21taXQgPyBvcmln
aW5hbENvbW1pdC5yZXZpc2lvbigpIDogJyc7CisgICAgICAgICAgICAgICAgICAgIGlmIChvcmln
aW5hbENvbW1pdCAmJiBvcmlnaW5hbENvbW1pdC5vd25lckNvbW1pdCgpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgdGhpcy5fb3duZXJSZXZpc2lvbk1hcC5nZXQoY29sdW1uTGFiZWwpLnNldChy
ZXBvc2l0b3J5LCBvcmlnaW5hbENvbW1pdC5vd25lckNvbW1pdCgpLnJldmlzaW9uKCkpOwogICAg
ICAgICAgICAgICAgIH19KTsKLQotICAgICAgICAgICAgaWYgKGNoZWNrZWQpIHsKLSAgICAgICAg
ICAgICAgICByZXZpc2lvbkVkaXRvci52YWx1ZSA9IGNvbW1pdCA/IGNvbW1pdC5yZXZpc2lvbigp
IDogJyc7Ci0gICAgICAgICAgICAgICAgaWYgKGNvbW1pdCAmJiBjb21taXQub3duZXJDb21taXQo
KSkKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5fb3duZXJSZXZpc2lvbk1hcC5nZXQocm93TGFi
ZWwpLnNldChyZXBvc2l0b3J5LCBjb21taXQub3duZXJDb21taXQoKS5yZXZpc2lvbigpKTsKLSAg
ICAgICAgICAgIH0KICAgICAgICAgICAgIG5vZGVzLnB1c2goZWxlbWVudCgndGQnLCBlbGVtZW50
KCdsYWJlbCcsIFtyYWRpb0J1dHRvbiwgbGFiZWxUb0Nob29zZV0pKSk7CiAgICAgICAgIH0KICAg
ICAgICAgbm9kZXMucHVzaChlbGVtZW50KCd0ZCcsIHJldmlzaW9uRWRpdG9yKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>354038</attachid>
            <date>2018-11-06 17:37:45 -0800</date>
            <delta_ts>2018-11-06 18:04:01 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-190863-20181106173745.patch</filename>
            <type>text/plain</type>
            <size>11837</size>
            <attacher>dewei_zhu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjM3OTAzCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvQ2hhbmdlTG9nIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL0NoYW5nZUxvZwpp
bmRleCA1MTk3M2ZkYjE1NzIyZWEyZmZkYTVmZGNiNDg5NGQ1Y2Y4MGFhZjEyLi4yMGRiNjZjZDFl
MWExNjFjYmFlNWQyNTA3Njk2MWY4YzYyNWE2NzM3IDEwMDY0NAotLS0gYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvQ2hhbmdlTG9nCisrKyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAxOC0xMS0wNiAgRGV3ZWkgWmh1ICA8ZGV3ZWlfemh1
QGFwcGxlLmNvbT4KKworICAgICAgICBDdXN0b21pemFibGUgdGVzdCBncm91cCBmb3JtIHNob3Vs
ZCBub3QgcmVzZXQgbWFudWFsbHkgZWRpdGVkIGNvbW1pdCB2YWx1ZSBzb21ldGltZXMuCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTA4NjMKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZnRlciBjaGFuZ2lu
ZyB0aGUgcmFkaW8gYnV0dG9uIGFuZCBtYW51YWxseSBlZGl0aW5nIHRoZSBjb21taXQgdmFsdWUs
IGNvbW1pdCB2YWx1ZSBzaG91bGQgbm90IGJlIHJlc2V0CisgICAgICAgIHdoaWxlIGNoYW5naW5n
IHRoZSBuYW1lIG9mIHRoZSB0ZXN0IGdyb3VwLgorICAgICAgICBBZGQgdGhlIGxvZ2ljIHRvIHBy
b21wdCB3YXJuaW5nIHdoZW4gbWFudWFsbHkgdHlwZWQgY29tbWl0IGRvZXMgbm90IGV4aXN0Lgor
CisgICAgICAgICogYnJvd3Nlci10ZXN0cy9jdXN0b21pemFibGUtdGVzdC1ncm91cC1mb3JtLXRl
c3RzLmpzOiBBZGRlZCBhIHVuaXQgdGVzdCBmb3IgdGhpcyBidWcuCisgICAgICAgICogYnJvd3Nl
ci10ZXN0cy9pbmRleC5odG1sOgorICAgICAgICAqIHB1YmxpYy92My9jb21wb25lbnRzL2N1c3Rv
bWl6YWJsZS10ZXN0LWdyb3VwLWZvcm0uanM6IFNob3VsZCBhbHdheXMgdXBkYXRlIGNvbW1pdCBz
ZXQgYXMgbG9uZyBhcworICAgICAgICB0aGUgcmVwb3NpdG9yeSBvZiB0aGF0IHJvdyBkb2VzIG5v
dCBoYXZlIGEgb3duZXIgcmVwb3NpdG9yeS4KKyAgICAgICAgKEN1c3RvbWl6YWJsZVRlc3RHcm91
cEZvcm0ucHJvdG90eXBlLl9jb25zdHJ1Y3RUYWJsZVJvd0ZvckNvbW1pdHNXaXRob3V0T3duZXIp
OgorICAgICAgICAoQ3VzdG9taXphYmxlVGVzdEdyb3VwRm9ybS5wcm90b3R5cGUuX2NvbnN0cnVj
dFRhYmxlUm93Rm9yQ29tbWl0c1dpdGhPd25lcik6CisgICAgICAgIChDdXN0b21pemFibGVUZXN0
R3JvdXBGb3JtLnByb3RvdHlwZS5fY29uc3RydWN0UmV2aXNpb25SYWRpb0J1dHRvbnMpOgorCiAy
MDE4LTEwLTE2ICBEZXdlaSBaaHUgIDxkZXdlaV96aHVAYXBwbGUuY29tPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMzY5OTYuCmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJm
LndlYmtpdC5vcmcvYnJvd3Nlci10ZXN0cy9jdXN0b21pemFibGUtdGVzdC1ncm91cC1mb3JtLXRl
c3RzLmpzIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY3VzdG9taXph
YmxlLXRlc3QtZ3JvdXAtZm9ybS10ZXN0cy5qcwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zYzVjYTVjN2UxNjJmYzE1
NDM0NGViYjYyYjFlNWRkNGNmNzZiN2Q2Ci0tLSAvZGV2L251bGwKKysrIGIvV2Vic2l0ZXMvcGVy
Zi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvY3VzdG9taXphYmxlLXRlc3QtZ3JvdXAtZm9ybS10
ZXN0cy5qcwpAQCAtMCwwICsxLDkyIEBACisKK2Rlc2NyaWJlKCdDdXN0b21pemFibGVUZXN0R3Jv
dXBGb3JtVGVzdHMnLCAoKSA9PiB7CisgICAgY29uc3Qgc2NyaXB0cyA9IFsnaW5zdHJ1bWVudGF0
aW9uLmpzJywgJy4uL3NoYXJlZC9jb21tb24tY29tcG9uZW50LWJhc2UuanMnLCAnY29tcG9uZW50
cy9iYXNlLmpzJywgJ21vZGVscy9kYXRhLW1vZGVsLmpzJywgJ21vZGVscy9jb21taXQtbG9nLmpz
JywKKyAgICAgICAgJ21vZGVscy9jb21taXQtc2V0LmpzJywgJ21vZGVscy9yZXBvc2l0b3J5Lmpz
JywgJ2NvbXBvbmVudHMvdGVzdC1ncm91cC1mb3JtLmpzJywgJ2NvbXBvbmVudHMvY3VzdG9taXph
YmxlLXRlc3QtZ3JvdXAtZm9ybS5qcyddOworCisgICAgYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ3Vz
dG9taXphYmxlVGVzdEdyb3VwRm9ybVdpdGhDb250ZXh0KGNvbnRleHQpCisgICAgeworICAgICAg
ICBhd2FpdCBjb250ZXh0LmltcG9ydFNjcmlwdHMoc2NyaXB0cywgJ0NvbXBvbmVudEJhc2UnLCAn
RGF0YU1vZGVsT2JqZWN0JywgJ1JlcG9zaXRvcnknLCAnQ29tbWl0TG9nJywgJ0NvbW1pdFNldCcs
ICdDdXN0b21pemFibGVUZXN0R3JvdXBGb3JtJywgJ01vY2tSZW1vdGVBUEknKTsKKyAgICAgICAg
Y29uc3QgY3VzdG9taXphYmxlVGVzdEdyb3VwRm9ybSA9IG5ldyBjb250ZXh0LnN5bWJvbHMuQ3Vz
dG9taXphYmxlVGVzdEdyb3VwRm9ybTsKKyAgICAgICAgY29udGV4dC5kb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0uZWxlbWVudCgpKTsKKyAgICAgICAg
cmV0dXJuIGN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm07CisgICAgfQorCisgICAgY29uc3QgY29t
bWl0T2JqZWN0QSA9IHsKKyAgICAgICAgImlkIjogIjE4NTMyNiIsCisgICAgICAgICJyZXZpc2lv
biI6ICIyMTA5NDgiLAorICAgICAgICAicmVwb3NpdG9yeSI6IDEsCisgICAgICAgICJwcmV2aW91
c0NvbW1pdCI6IG51bGwsCisgICAgICAgICJvd25zQ29tbWl0cyI6IGZhbHNlLAorICAgICAgICAi
dGltZSI6IDE1NDE0OTQ5NDk2ODEsCisgICAgICAgICJhdXRob3JOYW1lIjogIlphbGFuIEJ1anRh
cyIsCisgICAgICAgICJhdXRob3JFbWFpbCI6ICJ6YWxhbkBhcHBsZS5jb20iLAorICAgICAgICAi
bWVzc2FnZSI6ICJhIG1lc3NhZ2UiLAorICAgIH07CisKKyAgICBjb25zdCBjb21taXRPYmplY3RC
ID0geworICAgICAgICAiaWQiOiAiMTg1MzM0IiwKKyAgICAgICAgInJldmlzaW9uIjogIjIxMDk0
OSIsCisgICAgICAgICJyZXBvc2l0b3J5IjogMSwKKyAgICAgICAgInByZXZpb3VzQ29tbWl0Ijog
bnVsbCwKKyAgICAgICAgIm93bnNDb21taXRzIjogZmFsc2UsCisgICAgICAgICJ0aW1lIjogMTU0
MTQ5NDk0OTY4MiwKKyAgICAgICAgImF1dGhvck5hbWUiOiAiQ2hyaXMgRHVtZXoiLAorICAgICAg
ICAiYXV0aG9yRW1haWwiOiAiY2R1bWV6QGFwcGxlLmNvbSIsCisgICAgICAgICJtZXNzYWdlIjog
InNvbWUgbWVzc2FnZSIsCisgICAgfTsKKworICAgIGZ1bmN0aW9uIGNsb25lT2JqZWN0KG9iamVj
dCkKKyAgICB7CisgICAgICAgIGNvbnN0IGNsb25lID0ge307CisgICAgICAgIGZvciAoY29uc3Qg
W2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKG9iamVjdCkpCisgICAgICAgICAgICBjbG9u
ZVtrZXldID0gdmFsdWU7CisgICAgICAgIHJldHVybiBjbG9uZTsKKyAgICB9CisKKyAgICBpdCgn
Q2hhbmdpbmcgdGhlIHZhbHVlIGluIHJldmlzaW9uIGVkaXRvciBzaG91bGQgdXBkYXRlIGNvcnJl
c3BvbmRpbmcgY29tbWl0U2V0IGFzIGxvbmcgYXMgdGhlIHJlcG9zaXRvcnkgb2YgdGhhdCByb3cg
ZG9lcyBub3QgaGF2ZSBvd25lcicsIGFzeW5jICgpID0+IHsKKyAgICAgICAgY29uc3QgY29udGV4
dCA9IG5ldyBCcm93c2luZ0NvbnRleHQoKTsKKyAgICAgICAgY29uc3QgY3VzdG9taXphYmxlVGVz
dEdyb3VwRm9ybSA9IGF3YWl0IGNyZWF0ZUN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm1XaXRoQ29u
dGV4dChjb250ZXh0KTsKKyAgICAgICAgY29uc3QgcmVwb3NpdG9yeSA9IGNvbnRleHQuc3ltYm9s
cy5SZXBvc2l0b3J5LmVuc3VyZVNpbmdsZXRvbigxLCB7bmFtZTogJ1dlYktpdCd9KTsKKworICAg
ICAgICBjb25zdCBjb21taXRBID0gY2xvbmVPYmplY3QoY29tbWl0T2JqZWN0QSk7CisgICAgICAg
IGNvbnN0IGNvbW1pdEIgPSBjbG9uZU9iamVjdChjb21taXRPYmplY3RCKTsKKyAgICAgICAgY29t
bWl0QS5yZXBvc2l0b3J5ID0gcmVwb3NpdG9yeTsKKyAgICAgICAgY29tbWl0Qi5yZXBvc2l0b3J5
ID0gcmVwb3NpdG9yeTsKKyAgICAgICAgY29uc3Qgd2Via2l0Q29tbWl0QSA9IGNvbnRleHQuc3lt
Ym9scy5Db21taXRMb2cuZW5zdXJlU2luZ2xldG9uKDE4NTMyNiwgY29tbWl0QSk7CisgICAgICAg
IGNvbnN0IHdlYmtpdENvbW1pdEIgPSBjb250ZXh0LnN5bWJvbHMuQ29tbWl0TG9nLmVuc3VyZVNp
bmdsZXRvbigxODUzMzQsIGNvbW1pdEIpOworICAgICAgICBjb25zdCBjb21taXRTZXRBID0gY29u
dGV4dC5zeW1ib2xzLkNvbW1pdFNldC5lbnN1cmVTaW5nbGV0b24oMSwge3JldmlzaW9uSXRlbXM6
IFt7Y29tbWl0OiB3ZWJraXRDb21taXRBfV19KTsKKyAgICAgICAgY29uc3QgY29tbWl0U2V0QiA9
IGNvbnRleHQuc3ltYm9scy5Db21taXRTZXQuZW5zdXJlU2luZ2xldG9uKDIsIHtyZXZpc2lvbkl0
ZW1zOiBbe2NvbW1pdDogd2Via2l0Q29tbWl0Qn1dfSk7CisKKyAgICAgICAgY3VzdG9taXphYmxl
VGVzdEdyb3VwRm9ybS5zZXRDb21taXRTZXRNYXAoe0E6IGNvbW1pdFNldEEsIEI6IGNvbW1pdFNl
dEJ9KTsKKyAgICAgICAgY3VzdG9taXphYmxlVGVzdEdyb3VwRm9ybS5jb250ZW50KCdjdXN0b21p
emUtbGluaycpLmNsaWNrKCk7CisKKyAgICAgICAgY29uc3QgcmVxdWVzdHMgPSBjb250ZXh0LnN5
bWJvbHMuTW9ja1JlbW90ZUFQSS5yZXF1ZXN0czsKKyAgICAgICAgZXhwZWN0KHJlcXVlc3RzLmxl
bmd0aCkudG8uYmUoMik7CisgICAgICAgIGV4cGVjdChyZXF1ZXN0c1swXS51cmwpLnRvLmJlKCcv
YXBpL2NvbW1pdHMvMS8yMTA5NDgnKTsKKyAgICAgICAgZXhwZWN0KHJlcXVlc3RzWzFdLnVybCku
dG8uYmUoJy9hcGkvY29tbWl0cy8xLzIxMDk0OScpOworICAgICAgICByZXF1ZXN0c1swXS5yZXNv
bHZlKHtjb21taXRzOiBbY29tbWl0T2JqZWN0QV19KTsKKyAgICAgICAgcmVxdWVzdHNbMV0ucmVz
b2x2ZSh7Y29tbWl0czogW2NvbW1pdE9iamVjdEJdfSk7CisKKyAgICAgICAgYXdhaXQgd2FpdEZv
ckNvbXBvbmVudHNUb1JlbmRlcihjb250ZXh0KTsKKworICAgICAgICBjb25zdCByYWRpb0J1dHRv
biA9IGN1c3RvbWl6YWJsZVRlc3RHcm91cEZvcm0uY29udGVudCgnY3VzdG9tLXRhYmxlJykucXVl
cnlTZWxlY3RvcignaW5wdXRbdHlwZT0icmFkaW8iXVtuYW1lPSJBLTEtcmFkaW8iXTpub3QoOmNo
ZWNrZWQpJyk7CisgICAgICAgIHJhZGlvQnV0dG9uLmNsaWNrKCk7CisgICAgICAgIGV4cGVjdChy
YWRpb0J1dHRvbi5jaGVja2VkKS50by5iZSh0cnVlKTsKKworICAgICAgICBsZXQgcmV2aXNpb25F
ZGl0b3JzID0gY3VzdG9taXphYmxlVGVzdEdyb3VwRm9ybS5jb250ZW50KCdjdXN0b20tdGFibGUn
KS5xdWVyeVNlbGVjdG9yQWxsKCdpbnB1dDpub3QoW3R5cGU9InJhZGlvIl0pJyk7CisgICAgICAg
IGV4cGVjdChyZXZpc2lvbkVkaXRvcnMubGVuZ3RoKS50by5iZSgyKTsKKyAgICAgICAgbGV0IHJl
dmlzaW9uRWRpdG9yID0gcmV2aXNpb25FZGl0b3JzWzBdOworICAgICAgICBleHBlY3QocmV2aXNp
b25FZGl0b3IudmFsdWUpLnRvLmJlKCcyMTA5NDknKTsKKyAgICAgICAgcmV2aXNpb25FZGl0b3Iu
dmFsdWUgPSAnMjEwOTQ4JzsKKyAgICAgICAgcmV2aXNpb25FZGl0b3IuZGlzcGF0Y2hFdmVudChu
ZXcgRXZlbnQoJ2NoYW5nZScpKTsKKworICAgICAgICBjdXN0b21pemFibGVUZXN0R3JvdXBGb3Jt
LmNvbnRlbnQoJ25hbWUnKS52YWx1ZSA9ICdhL2IgdGVzdCc7CisgICAgICAgIGN1c3RvbWl6YWJs
ZVRlc3RHcm91cEZvcm0uY29udGVudCgnbmFtZScpLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdp
bnB1dCcpKTsKKworICAgICAgICBhd2FpdCB3YWl0Rm9yQ29tcG9uZW50c1RvUmVuZGVyKGNvbnRl
eHQpOworCisgICAgICAgIHJldmlzaW9uRWRpdG9ycyA9IGN1c3RvbWl6YWJsZVRlc3RHcm91cEZv
cm0uY29udGVudCgnY3VzdG9tLXRhYmxlJykucXVlcnlTZWxlY3RvckFsbCgnaW5wdXQ6bm90KFt0
eXBlPSJyYWRpbyJdKScpOworICAgICAgICByZXZpc2lvbkVkaXRvciA9IHJldmlzaW9uRWRpdG9y
c1swXTsKKyAgICAgICAgZXhwZWN0KHJldmlzaW9uRWRpdG9yLnZhbHVlKS50by5iZSgnMjEwOTQ4
Jyk7CisgICAgfSk7Cit9KTsKZGlmZiAtLWdpdCBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9i
cm93c2VyLXRlc3RzL2luZGV4Lmh0bWwgYi9XZWJzaXRlcy9wZXJmLndlYmtpdC5vcmcvYnJvd3Nl
ci10ZXN0cy9pbmRleC5odG1sCmluZGV4IDIxN2I5NjRmOWM4ODY4NTc0YzJiMjc5NzEyZWZmOWMz
MjVhODUzZmUuLjM1NDA0N2QzZjlmYjA2Zjc3NWRmMDNhNGM0NTMzMmNiZDQ5ODAyMTMgMTAwNjQ0
Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9icm93c2VyLXRlc3RzL2luZGV4Lmh0bWwK
KysrIGIvV2Vic2l0ZXMvcGVyZi53ZWJraXQub3JnL2Jyb3dzZXItdGVzdHMvaW5kZXguaHRtbApA
QCAtMjcsNiArMjcsNyBAQCBtb2NoYS5zZXR1cCgnYmRkJyk7CiA8c2NyaXB0IHNyYz0iY2hhcnQt
cmV2aXNpb24tcmFuZ2UtdGVzdHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9ImNvbW1pdC1s
b2ctdmlld2VyLXRlc3RzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJ0ZXN0LWdyb3VwLWZv
cm0tdGVzdHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9ImN1c3RvbWl6YWJsZS10ZXN0LWdy
b3VwLWZvcm0tdGVzdHMuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Im1hcmt1cC1wYWdlLXRl
c3RzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSJ0ZXN0LWdyb3VwLXJlc3VsdC1wYWdlLXRl
c3RzLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CmRpZmYgLS1naXQgYS9XZWJzaXRlcy9wZXJmLndl
YmtpdC5vcmcvcHVibGljL3YzL2NvbXBvbmVudHMvY3VzdG9taXphYmxlLXRlc3QtZ3JvdXAtZm9y
bS5qcyBiL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0
b21pemFibGUtdGVzdC1ncm91cC1mb3JtLmpzCmluZGV4IDIwNDQxYzExOGIzZDllZDE1OWFhOWQ3
ZDdjZGZkOTc5ZDUyMTU5NTEuLmEyZDQ2MDNjNTM4NzU1ZTJjNWI5NTc2M2E0M2NlYTBkZWE5MmM3
OWMgMTAwNjQ0Ci0tLSBhL1dlYnNpdGVzL3BlcmYud2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9u
ZW50cy9jdXN0b21pemFibGUtdGVzdC1ncm91cC1mb3JtLmpzCisrKyBiL1dlYnNpdGVzL3BlcmYu
d2Via2l0Lm9yZy9wdWJsaWMvdjMvY29tcG9uZW50cy9jdXN0b21pemFibGUtdGVzdC1ncm91cC1m
b3JtLmpzCkBAIC0xNzQsNyArMTc0LDcgQEAgY2xhc3MgQ3VzdG9taXphYmxlVGVzdEdyb3VwRm9y
bSBleHRlbmRzIFRlc3RHcm91cEZvcm0gewogICAgICAgICBjb25zdCBjZWxscyA9IFtlbGVtZW50
KCd0aCcsIHtjb2xzcGFuOiAyfSwgcmVwb3NpdG9yeS5sYWJlbCgpKV07CiAKICAgICAgICAgZm9y
IChjb25zdCBsYWJlbCBvZiBjb21taXRTZXRNYXAua2V5cygpKQotICAgICAgICAgICAgY2VsbHMu
cHVzaCh0aGlzLl9jb25zdHJ1Y3RSZXZpc2lvblJhZGlvQnV0dG9ucyhjb21taXRTZXRNYXAsIHJl
cG9zaXRvcnksIGxhYmVsLCBudWxsLCBvd25zUmVwb3NpdG9yaWVzKSk7CisgICAgICAgICAgICBj
ZWxscy5wdXNoKHRoaXMuX2NvbnN0cnVjdFJldmlzaW9uUmFkaW9CdXR0b25zKGNvbW1pdFNldE1h
cCwgcmVwb3NpdG9yeSwgbGFiZWwsIG51bGwpKTsKIAogICAgICAgICBpZiAob3duc1JlcG9zaXRv
cmllcykgewogICAgICAgICAgICAgY29uc3QgcGx1c0J1dHRvbiA9IG5ldyBQbHVzQnV0dG9uKCk7
CkBAIC0xOTcsNyArMTk3LDcgQEAgY2xhc3MgQ3VzdG9taXphYmxlVGVzdEdyb3VwRm9ybSBleHRl
bmRzIFRlc3RHcm91cEZvcm0gewogICAgICAgICBjb25zdCBtaW51c0J1dHRvbiA9IG5ldyBNaW51
c0J1dHRvbigpOwogCiAgICAgICAgIGZvciAoY29uc3QgbGFiZWwgb2YgY29tbWl0U2V0TWFwLmtl
eXMoKSkKLSAgICAgICAgICAgIGNlbGxzLnB1c2godGhpcy5fY29uc3RydWN0UmV2aXNpb25SYWRp
b0J1dHRvbnMoY29tbWl0U2V0TWFwLCByZXBvc2l0b3J5LCBsYWJlbCwgb3duZXJSZXBvc2l0b3J5
LCBmYWxzZSkpOworICAgICAgICAgICAgY2VsbHMucHVzaCh0aGlzLl9jb25zdHJ1Y3RSZXZpc2lv
blJhZGlvQnV0dG9ucyhjb21taXRTZXRNYXAsIHJlcG9zaXRvcnksIGxhYmVsLCBvd25lclJlcG9z
aXRvcnkpKTsKIAogICAgICAgICBtaW51c0J1dHRvbi5saXN0ZW5Ub0FjdGlvbignYWN0aXZhdGUn
LCAoKSA9PiB7CiAgICAgICAgICAgICBmb3IgKGNvbnN0IGNvbW1pdFNldCBvZiBjb21taXRTZXRN
YXAudmFsdWVzKCkpCkBAIC0yNDAsMzcgKzI0MCw0MSBAQCBjbGFzcyBDdXN0b21pemFibGVUZXN0
R3JvdXBGb3JtIGV4dGVuZHMgVGVzdEdyb3VwRm9ybSB7CiAgICAgICAgIHJldHVybiBlbGVtZW50
KCd0cicsIGNlbGxzKTsKICAgICB9CiAKLSAgICBfY29uc3RydWN0UmV2aXNpb25SYWRpb0J1dHRv
bnMoY29tbWl0U2V0TWFwLCByZXBvc2l0b3J5LCByb3dMYWJlbCwgb3duZXJSZXBvc2l0b3J5LCBv
d25zUmVwb3NpdG9yaWVzKQorICAgIF9jb25zdHJ1Y3RSZXZpc2lvblJhZGlvQnV0dG9ucyhjb21t
aXRTZXRNYXAsIHJlcG9zaXRvcnksIGNvbHVtbkxhYmVsLCBvd25lclJlcG9zaXRvcnkpCiAgICAg
ewogICAgICAgICBjb25zdCBlbGVtZW50ID0gQ29tcG9uZW50QmFzZS5jcmVhdGVFbGVtZW50Owot
ICAgICAgICBjb25zdCByZXZpc2lvbkVkaXRvciA9IGVsZW1lbnQoJ2lucHV0Jywge2Rpc2FibGVk
OiAhIW93bmVyUmVwb3NpdG9yeSwKKworICAgICAgICBjb25zdCBjb21taXRGb3JDb2x1bW4gPSBj
b21taXRTZXRNYXAuZ2V0KGNvbHVtbkxhYmVsKS5jb21taXRGb3JSZXBvc2l0b3J5KHJlcG9zaXRv
cnkpOworICAgICAgICBjb25zdCByZXZpc2lvbiA9IGNvbW1pdEZvckNvbHVtbiA/IGNvbW1pdEZv
ckNvbHVtbi5yZXZpc2lvbigpIDogJyc7CisgICAgICAgIGlmIChjb21taXRGb3JDb2x1bW4gJiYg
Y29tbWl0Rm9yQ29sdW1uLm93bmVyQ29tbWl0KCkpCisgICAgICAgICAgICB0aGlzLl9vd25lclJl
dmlzaW9uTWFwLmdldChjb2x1bW5MYWJlbCkuc2V0KHJlcG9zaXRvcnksIGNvbW1pdEZvckNvbHVt
bi5vd25lckNvbW1pdCgpLnJldmlzaW9uKCkpOworCisgICAgICAgIGNvbnN0IHJldmlzaW9uRWRp
dG9yID0gZWxlbWVudCgnaW5wdXQnLCB7ZGlzYWJsZWQ6ICEhb3duZXJSZXBvc2l0b3J5LCB2YWx1
ZTogcmV2aXNpb24sCiAgICAgICAgICAgICBvbmNoYW5nZTogKCkgPT4gewotICAgICAgICAgICAg
ICAgIGlmICghb3duc1JlcG9zaXRvcmllcykKKyAgICAgICAgICAgICAgICBpZiAob3duZXJSZXBv
c2l0b3J5KQogICAgICAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICAgICAgY29t
bWl0U2V0TWFwLmdldChyb3dMYWJlbCkudXBkYXRlUmV2aXNpb25Gb3JPd25lclJlcG9zaXRvcnko
cmVwb3NpdG9yeSwgcmV2aXNpb25FZGl0b3IudmFsdWUpLmNhdGNoKAotICAgICAgICAgICAgICAg
ICAgICAoKSA9PiByZXZpc2lvbkVkaXRvci52YWx1ZSA9ICcnKTsKKworICAgICAgICAgICAgICAg
IGNvbW1pdFNldE1hcC5nZXQoY29sdW1uTGFiZWwpLnVwZGF0ZVJldmlzaW9uRm9yT3duZXJSZXBv
c2l0b3J5KHJlcG9zaXRvcnksIHJldmlzaW9uRWRpdG9yLnZhbHVlKS5jYXRjaCgKKyAgICAgICAg
ICAgICAgICAgICAgKCkgPT4geworICAgICAgICAgICAgICAgICAgICAgICAgYWxlcnQoYENvbW1p
dCAiJHtyZXZpc2lvbkVkaXRvci52YWx1ZX0iIGZyb20gIiR7cmVwb3NpdG9yeS5uYW1lKCl9IiBk
b2VzIG5vdCBleGl0cy5gKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIHJldmlzaW9uRWRpdG9y
LnZhbHVlID0gcmV2aXNpb247CisgICAgICAgICAgICAgICAgICAgIH0pOwogICAgICAgICAgICAg
fX0pOwogCi0gICAgICAgIHRoaXMuX3JldmlzaW9uRWRpdG9yTWFwLmdldChyb3dMYWJlbCkuc2V0
KHJlcG9zaXRvcnksIHJldmlzaW9uRWRpdG9yKTsKKyAgICAgICAgdGhpcy5fcmV2aXNpb25FZGl0
b3JNYXAuZ2V0KGNvbHVtbkxhYmVsKS5zZXQocmVwb3NpdG9yeSwgcmV2aXNpb25FZGl0b3IpOwog
CiAgICAgICAgIGNvbnN0IG5vZGVzID0gW107CiAgICAgICAgIGZvciAoY29uc3QgbGFiZWxUb0No
b29zZSBvZiBjb21taXRTZXRNYXAua2V5cygpKSB7CiAgICAgICAgICAgICBjb25zdCBjb21taXQg
PSBjb21taXRTZXRNYXAuZ2V0KGxhYmVsVG9DaG9vc2UpLmNvbW1pdEZvclJlcG9zaXRvcnkocmVw
b3NpdG9yeSk7Ci0gICAgICAgICAgICBjb25zdCBjaGVja2VkTGFiZWwgPSB0aGlzLl9jaGVja2Vk
TGFiZWxCeVBvc2l0aW9uLmdldChyb3dMYWJlbCkuZ2V0KHJlcG9zaXRvcnkpIHx8IHJvd0xhYmVs
OworICAgICAgICAgICAgY29uc3QgY2hlY2tlZExhYmVsID0gdGhpcy5fY2hlY2tlZExhYmVsQnlQ
b3NpdGlvbi5nZXQoY29sdW1uTGFiZWwpLmdldChyZXBvc2l0b3J5KSB8fCBjb2x1bW5MYWJlbDsK
ICAgICAgICAgICAgIGNvbnN0IGNoZWNrZWQgPSAgbGFiZWxUb0Nob29zZSA9PSBjaGVja2VkTGFi
ZWw7Ci0gICAgICAgICAgICBjb25zdCByYWRpb0J1dHRvbiA9IGVsZW1lbnQoJ2lucHV0Jywge3R5
cGU6ICdyYWRpbycsIG5hbWU6IGAke3Jvd0xhYmVsfS0ke3JlcG9zaXRvcnkuaWQoKX0tcmFkaW9g
LCBjaGVja2VkLAorICAgICAgICAgICAgY29uc3QgcmFkaW9CdXR0b24gPSBlbGVtZW50KCdpbnB1
dCcsIHt0eXBlOiAncmFkaW8nLCBuYW1lOiBgJHtjb2x1bW5MYWJlbH0tJHtyZXBvc2l0b3J5Lmlk
KCl9LXJhZGlvYCwgY2hlY2tlZCwKICAgICAgICAgICAgICAgICBvbmNoYW5nZTogKCkgPT4gewot
ICAgICAgICAgICAgICAgICAgICB0aGlzLl9jaGVja2VkTGFiZWxCeVBvc2l0aW9uLmdldChyb3dM
YWJlbCkuc2V0KHJlcG9zaXRvcnksIGxhYmVsVG9DaG9vc2UpOworICAgICAgICAgICAgICAgICAg
ICB0aGlzLl9jaGVja2VkTGFiZWxCeVBvc2l0aW9uLmdldChjb2x1bW5MYWJlbCkuc2V0KHJlcG9z
aXRvcnksIGxhYmVsVG9DaG9vc2UpOwogICAgICAgICAgICAgICAgICAgICByZXZpc2lvbkVkaXRv
ci52YWx1ZSA9IGNvbW1pdCA/IGNvbW1pdC5yZXZpc2lvbigpIDogJyc7CiAgICAgICAgICAgICAg
ICAgICAgIGlmIChjb21taXQgJiYgY29tbWl0Lm93bmVyQ29tbWl0KCkpCi0gICAgICAgICAgICAg
ICAgICAgICAgICB0aGlzLl9vd25lclJldmlzaW9uTWFwLmdldChyb3dMYWJlbCkuc2V0KHJlcG9z
aXRvcnksIGNvbW1pdC5vd25lckNvbW1pdCgpLnJldmlzaW9uKCkpOworICAgICAgICAgICAgICAg
ICAgICAgICAgdGhpcy5fb3duZXJSZXZpc2lvbk1hcC5nZXQoY29sdW1uTGFiZWwpLnNldChyZXBv
c2l0b3J5LCBjb21taXQub3duZXJDb21taXQoKS5yZXZpc2lvbigpKTsKICAgICAgICAgICAgICAg
ICB9fSk7Ci0KLSAgICAgICAgICAgIGlmIChjaGVja2VkKSB7Ci0gICAgICAgICAgICAgICAgcmV2
aXNpb25FZGl0b3IudmFsdWUgPSBjb21taXQgPyBjb21taXQucmV2aXNpb24oKSA6ICcnOwotICAg
ICAgICAgICAgICAgIGlmIChjb21taXQgJiYgY29tbWl0Lm93bmVyQ29tbWl0KCkpCi0gICAgICAg
ICAgICAgICAgICAgIHRoaXMuX293bmVyUmV2aXNpb25NYXAuZ2V0KHJvd0xhYmVsKS5zZXQocmVw
b3NpdG9yeSwgY29tbWl0Lm93bmVyQ29tbWl0KCkucmV2aXNpb24oKSk7Ci0gICAgICAgICAgICB9
CiAgICAgICAgICAgICBub2Rlcy5wdXNoKGVsZW1lbnQoJ3RkJywgZWxlbWVudCgnbGFiZWwnLCBb
cmFkaW9CdXR0b24sIGxhYmVsVG9DaG9vc2VdKSkpOwogICAgICAgICB9CiAgICAgICAgIG5vZGVz
LnB1c2goZWxlbWVudCgndGQnLCByZXZpc2lvbkVkaXRvcikpOwo=
</data>
<flag name="review"
          id="371257"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
      

    </bug>

</bugzilla>