<?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>65551</bug_id>
          
          <creation_ts>2011-08-02 11:04:33 -0700</creation_ts>
          <short_desc>Web Inspector: use source-file-replaced instead of source-file-changed event.</short_desc>
          <delta_ts>2011-08-11 05:21:22 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Podivilov">podivilov</reporter>
          <assigned_to name="Pavel Podivilov">podivilov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>445362</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-08-02 11:04:33 -0700</bug_when>
    <thetext>Web Inspector: use source-file-replaced instead of source-file-changed event.

This is needed to support 1 -&gt; n transitions when installing source mappings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445365</commentid>
    <comment_count>1</comment_count>
      <attachid>102667</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-08-02 11:08:46 -0700</bug_when>
    <thetext>Created attachment 102667
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446414</commentid>
    <comment_count>2</comment_count>
      <attachid>102667</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-04 02:47:00 -0700</bug_when>
    <thetext>Comment on attachment 102667
Patch

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

&gt; Source/WebCore/inspector/front-end/ScriptsPanel.js:651
&gt; +        this._sourceFileIdToFilesSelectOption[newSourceFile.id];

this._sourceFileIdToFilesSelectOption[newSourceFile.id] = option;

Test?

&gt; Source/WebCore/inspector/front-end/ScriptsPanel.js:662
&gt; +        var newSourceFrame = this._createSourceFrame(newSourceFile.id);

You should keep mapping bind/unbind close in the same location.

&gt; Source/WebCore/inspector/front-end/SourceFile.js:63
&gt; +            this._resource = WebInspector.networkManager.inflightResourceForURL(script.sourceURL) || WebInspector.resourceForURL(script.sourceURL);

Do we have a test that would track resource / script bindings?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446524</commentid>
    <comment_count>3</comment_count>
      <attachid>102922</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-08-04 08:54:46 -0700</bug_when>
    <thetext>Created attachment 102922
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446526</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-08-04 08:56:51 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 102667 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=102667&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/ScriptsPanel.js:651
&gt; &gt; +        this._sourceFileIdToFilesSelectOption[newSourceFile.id];
&gt; 
&gt; this._sourceFileIdToFilesSelectOption[newSourceFile.id] = option;
&gt; 
&gt; Test?

Added test to scripts-panel.html.

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/ScriptsPanel.js:662
&gt; &gt; +        var newSourceFrame = this._createSourceFrame(newSourceFile.id);
&gt; 
&gt; You should keep mapping bind/unbind close in the same location.

Done.

&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/SourceFile.js:63
&gt; &gt; +            this._resource = WebInspector.networkManager.inflightResourceForURL(script.sourceURL) || WebInspector.resourceForURL(script.sourceURL);
&gt; 
&gt; Do we have a test that would track resource / script bindings?

There are test that dump source frame content, they will definitely failed if script -&gt; resource binding is broken. I&apos;m going to add some more dedicated tests while switching to RawSourceCode&lt;-&gt;UISourceCode model.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>449705</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-08-11 05:21:22 -0700</bug_when>
    <thetext>Committed r92838: &lt;http://trac.webkit.org/changeset/92838&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102667</attachid>
            <date>2011-08-02 11:08:46 -0700</date>
            <delta_ts>2011-08-04 08:54:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65551-20110802220844.patch</filename>
            <type>text/plain</type>
            <size>15337</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIxOTYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4M2E4NWUwOGY5OGMzZjljZjZmMTkz
NTMyMmRjYTc1YjI3N2JjZDgxLi5kNGRkYWU5MTM5YTFlY2EyNWJlZTRhNWFkZWU4ZTQ4MWMxYzQ0
NDM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDgtMDIgIFBhdmVsIFBvZGl2aWxvdiAg
PHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogdXNlIHNv
dXJjZS1maWxlLXJlcGxhY2VkIGluc3RlYWQgb2Ygc291cmNlLWZpbGUtY2hhbmdlZCBldmVudC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1NTUxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvc291cmNlLWZpbGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rv
ci9kZWJ1Z2dlci9zb3VyY2UtZmlsZS5odG1sOgorCiAyMDExLTA3LTMwICBQYXZlbCBQb2Rpdmls
b3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1l
cmdlIEZvcm1hdHRlZFNvdXJjZUZpbGUgaW50byBTb3VyY2VGaWxlLgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1maWxlLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2UtZmlsZS1leHBlY3RlZC50eHQKaW5k
ZXggYTQyMGQwYjRhY2I1YWYzZjVkNDAxZDNhZTkxMzY2YTVhN2YzMTU5NC4uNWJkNjNkMGZlNzUy
NWFiNDg5MDg5MzlmNDgzMTIzZTI4Y2EyNWY0YSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1maWxlLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNlLWZpbGUtZXhwZWN0ZWQudHh0CkBAIC05LDMgKzks
NSBAQCBSdW5uaW5nOiB0ZXN0Rm9ybWF0dGVkQ29udmVydExvY2F0aW9uCiAKIFJ1bm5pbmc6IHRl
c3RDb25jYXRlbmF0ZWRGb3JtYXR0ZWRDb252ZXJ0TG9jYXRpb24KIAorUnVubmluZzogdGVzdFVJ
U291cmNlQ29kZUFkZGVkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1
Z2dlci9zb3VyY2UtZmlsZS5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Nv
dXJjZS1maWxlLmh0bWwKaW5kZXggODQyYTlmMzgxZTUxMzgwNTc4YzRjNzYzMDVmOWEyZDRmNmIz
Y2ExMS4uZTc5MWM1YjZjY2Q1NTU4YjNmOWFkMDY3MTRkYTViYjc4MDlhMmYyYSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1maWxlLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1maWxlLmh0bWwKQEAgLTU0LDcg
KzU0LDggQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RQbGFpbkNvbnZl
cnRMb2NhdGlvbihuZXh0KQogICAgICAgICB7CiAgICAgICAgICAgICB2YXIgc2NyaXB0ID0gbmV3
IFdlYkluc3BlY3Rvci5TY3JpcHQoIjEiLCAiZm9vLmpzIiwgMCwgMCwgMjAsIDgwLCB1bmRlZmlu
ZWQsIHVuZGVmaW5lZCwgZmFsc2UpOwotICAgICAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSBuZXcg
V2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUoImlkIiwgc2NyaXB0KTsKKyAgICAgICAgICAgIHZh
ciBzb3VyY2VGaWxlID0gbmV3IFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlKCJpZCIpOworICAg
ICAgICAgICAgc291cmNlRmlsZS5hZGRTY3JpcHQoc2NyaXB0KTsKIAogICAgICAgICAgICAgY2hl
Y2tVSUxvY2F0aW9uKHNvdXJjZUZpbGUsIDEwLCAyMCwgc291cmNlRmlsZS5yYXdMb2NhdGlvblRv
VUlMb2NhdGlvbihybCgxMCwgMjApKSk7CiAgICAgICAgICAgICBjaGVja1Jhd0xvY2F0aW9uKHNj
cmlwdCwgMzAsIDQwLCBzb3VyY2VGaWxlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKDMwLCA0MCkp
OwpAQCAtNjYsNyArNjcsOCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgewogICAgICAgICAg
ICAgdmFyIHNjcmlwdDEgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdCgiMSIsICJmb28uanMiLCAx
MCwgMjAsIDMwLCA0MCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGZhbHNlKTsKICAgICAgICAgICAg
IHZhciBzY3JpcHQyID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHQoIjIiLCAiZm9vLmpzIiwgNTAs
IDYwLCA3MCwgODAsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBmYWxzZSk7Ci0gICAgICAgICAgICB2
YXIgc291cmNlRmlsZSA9IG5ldyBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZSgiaWQiLCBzY3Jp
cHQxKTsKKyAgICAgICAgICAgIHZhciBzb3VyY2VGaWxlID0gbmV3IFdlYkluc3BlY3Rvci5SYXdT
b3VyY2VDb2RlKCJpZCIpOworICAgICAgICAgICAgc291cmNlRmlsZS5hZGRTY3JpcHQoc2NyaXB0
MSk7CiAgICAgICAgICAgICBzb3VyY2VGaWxlLmFkZFNjcmlwdChzY3JpcHQyKTsKIAogICAgICAg
ICAgICAgY2hlY2tVSUxvY2F0aW9uKHNvdXJjZUZpbGUsIDIwLCAwLCBzb3VyY2VGaWxlLnJhd0xv
Y2F0aW9uVG9VSUxvY2F0aW9uKHJsKDIwLCAwKSkpOwpAQCAtODEsOCArODMsOSBAQCBmdW5jdGlv
biB0ZXN0KCkKICAgICAgICAgZnVuY3Rpb24gdGVzdEZvcm1hdHRlZENvbnZlcnRMb2NhdGlvbihu
ZXh0KQogICAgICAgICB7CiAgICAgICAgICAgICB2YXIgc2NyaXB0ID0gbmV3IFdlYkluc3BlY3Rv
ci5TY3JpcHQoIjEiLCAiZm9vLmpzIiwgMCwgMCwgMjAsIDgwLCB1bmRlZmluZWQsIHVuZGVmaW5l
ZCwgZmFsc2UpOwotICAgICAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSBuZXcgV2ViSW5zcGVjdG9y
LlJhd1NvdXJjZUNvZGUoImlkIiwgc2NyaXB0LCBtb2NrU2NyaXB0Rm9ybWF0dGVyKTsKKyAgICAg
ICAgICAgIHZhciBzb3VyY2VGaWxlID0gbmV3IFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlKCJp
ZCIsIG1vY2tTY3JpcHRGb3JtYXR0ZXIpOwogICAgICAgICAgICAgc291cmNlRmlsZS5zZXRGb3Jt
YXR0ZWQodHJ1ZSk7CisgICAgICAgICAgICBzb3VyY2VGaWxlLmFkZFNjcmlwdChzY3JpcHQpOwog
CiAgICAgICAgICAgICBmdW5jdGlvbiBkaWRDcmVhdGVTb3VyY2VNYXBwaW5nKCkKICAgICAgICAg
ICAgIHsKQEAgLTk3LDggKzEwMCw5IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAg
ICAgICAgICB2YXIgc2NyaXB0MSA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0KCIxIiwgImZvby5q
cyIsIDEwLCAyMCwgMzAsIDQwLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZmFsc2UpOwogICAgICAg
ICAgICAgdmFyIHNjcmlwdDIgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdCgiMiIsICJmb28uanMi
LCA1MCwgNjAsIDcwLCA4MCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGZhbHNlKTsKLSAgICAgICAg
ICAgIHZhciBzb3VyY2VGaWxlID0gbmV3IFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlKCJpZCIs
IHNjcmlwdDEsIG1vY2tTY3JpcHRGb3JtYXR0ZXIpOworICAgICAgICAgICAgdmFyIHNvdXJjZUZp
bGUgPSBuZXcgV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUoImlkIiwgbW9ja1NjcmlwdEZvcm1h
dHRlcik7CiAgICAgICAgICAgICBzb3VyY2VGaWxlLnNldEZvcm1hdHRlZCh0cnVlKTsKKyAgICAg
ICAgICAgIHNvdXJjZUZpbGUuYWRkU2NyaXB0KHNjcmlwdDEpOwogICAgICAgICAgICAgc291cmNl
RmlsZS5hZGRTY3JpcHQoc2NyaXB0Mik7CiAKICAgICAgICAgICAgIGZ1bmN0aW9uIGRpZENyZWF0
ZVNvdXJjZU1hcHBpbmcoKQpAQCAtMTA5LDYgKzExMywyMCBAQCBmdW5jdGlvbiB0ZXN0KCkKICAg
ICAgICAgICAgICAgICBuZXh0KCk7CiAgICAgICAgICAgICB9CiAgICAgICAgICAgICBzb3VyY2VG
aWxlLmNyZWF0ZVNvdXJjZU1hcHBpbmdJZk5lZWRlZChkaWRDcmVhdGVTb3VyY2VNYXBwaW5nKTsK
KyAgICAgICAgfSwKKworICAgICAgICBmdW5jdGlvbiB0ZXN0VUlTb3VyY2VDb2RlQWRkZWQobmV4
dCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIHNjcmlwdCA9IG5ldyBXZWJJbnNwZWN0b3Iu
U2NyaXB0KCIxIiwgImZvby5qcyIsIDAsIDAsIDIwLCA4MCwgdW5kZWZpbmVkLCB1bmRlZmluZWQs
IGZhbHNlKTsKKyAgICAgICAgICAgIHZhciBzb3VyY2VGaWxlID0gbmV3IFdlYkluc3BlY3Rvci5S
YXdTb3VyY2VDb2RlKCJpZCIpOworICAgICAgICAgICAgZnVuY3Rpb24gdWlTb3VyY2VDb2RlQWRk
ZWQoZXZlbnQpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnRFcXVhbHMoImZvby5qcyIsIGV2ZW50LmRhdGEudXJsKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIHNvdXJjZUZpbGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuUmF3U291
cmNlQ29kZS5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIHVpU291cmNlQ29kZUFkZGVkLCB0aGlz
KTsKKyAgICAgICAgICAgIHNvdXJjZUZpbGUuYWRkU2NyaXB0KHNjcmlwdCk7CisKKyAgICAgICAg
ICAgIG5leHQoKTsKICAgICAgICAgfQogICAgIF0pOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4ZGI3OTZk
OWMyNzY3ZDA0MDFkZmM4ZDUyOWExZTU0NTAzNDRhNDZhLi5lYjAyNjk0OWRhNjk4YzdhY2RlZjRi
NjkwODcyMWEyNmY0ZWNjYTg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTEtMDgt
MDIgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAg
V2ViIEluc3BlY3RvcjogdXNlIHNvdXJjZS1maWxlLXJlcGxhY2VkIGluc3RlYWQgb2Ygc291cmNl
LWZpbGUtY2hhbmdlZCBldmVudC4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTY1NTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9k
ZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5w
cm90b3R5cGUuX2FkZFNjcmlwdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVz
ZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX3VpU291cmNlQ29kZUFkZGVkKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fdWlTb3VyY2VD
b2RlUmVwbGFjZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWwucHJvdG90eXBlLl9yZXN0b3JlQnJlYWtwb2ludHMpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlw
dHNQYW5lbC5wcm90b3R5cGUuX2ZvbGRlckFuZERpc3BsYXlOYW1lRm9yU2NyaXB0VVJMKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9zb3VyY2VGaWxlUmVw
bGFjZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5qczoKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZS5hZGRTY3JpcHQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlJhd1NvdXJjZUNvZGUucHJvdG90eXBlLnJlbG9hZCk6CisKIDIwMTEtMDctMzAgIFBhdmVs
IFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3Bl
Y3RvcjogbWVyZ2UgRm9ybWF0dGVkU291cmNlRmlsZSBpbnRvIFNvdXJjZUZpbGUuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0
aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2Vy
UHJlc2VudGF0aW9uTW9kZWwuanMKaW5kZXggMzMwYTQ1NDZmMDA0OGE4ODdkODQ2ZGIwNzIwNDcw
MjVkOTI4MDRhNS4uOTAxNTk1NGU0MmIxMTcxZjk0YzFkYjk2MTllZTQ0MTU2YjMyYjQ0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNl
bnRhdGlvbk1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
RGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcwpAQCAtNTcsNyArNTcsNyBAQCBXZWJJbnNwZWN0
b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCA9IGZ1bmN0aW9uKCkKIAogV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzID0gewogICAgIFNvdXJjZUZpbGVBZGRl
ZDogInNvdXJjZS1maWxlLWFkZGVkIiwKLSAgICBTb3VyY2VGaWxlQ2hhbmdlZDogInNvdXJjZS1m
aWxlLWNoYW5nZWQiLAorICAgIFNvdXJjZUZpbGVSZXBsYWNlZDogInNvdXJjZS1maWxlLXJlcGxh
Y2VkIiwKICAgICBDb25zb2xlTWVzc2FnZUFkZGVkOiAiY29uc29sZS1tZXNzYWdlLWFkZGVkIiwK
ICAgICBDb25zb2xlTWVzc2FnZXNDbGVhcmVkOiAiY29uc29sZS1tZXNzYWdlcy1jbGVhcmVkIiwK
ICAgICBCcmVha3BvaW50QWRkZWQ6ICJicmVha3BvaW50LWFkZGVkIiwKQEAgLTE1NCwyMiArMTU0
LDM2IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9
IHsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGZ1bmN0aW9uIGNv
bnRlbnRDaGFuZ2VkKHNvdXJjZUZpbGUpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICh0aGlz
Ll9zb3VyY2VGaWxlc1tzb3VyY2VGaWxlSWRdID09PSBzb3VyY2VGaWxlKQotICAgICAgICAgICAg
ICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5Tb3VyY2VGaWxlQ2hhbmdlZCwgdGhpcy5fc291cmNlRmls
ZXNbc291cmNlRmlsZUlkXSk7Ci0gICAgICAgIH0KLSAgICAgICAgc291cmNlRmlsZSA9IG5ldyBX
ZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZShzb3VyY2VGaWxlSWQsIHNjcmlwdCwgdGhpcy5fZm9y
bWF0dGVyLCBjb250ZW50Q2hhbmdlZC5iaW5kKHRoaXMpKTsKKyAgICAgICAgc291cmNlRmlsZSA9
IG5ldyBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZShzb3VyY2VGaWxlSWQsIHRoaXMuX2Zvcm1h
dHRlcik7CiAgICAgICAgIHNvdXJjZUZpbGUuc2V0Rm9ybWF0dGVkKHRoaXMuX2Zvcm1hdFNvdXJj
ZUZpbGVzKTsKICAgICAgICAgdGhpcy5fc291cmNlRmlsZXNbc291cmNlRmlsZUlkXSA9IHNvdXJj
ZUZpbGU7CisgICAgICAgIHNvdXJjZUZpbGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
UmF3U291cmNlQ29kZS5FdmVudHMuVUlTb3VyY2VDb2RlQWRkZWQsIHRoaXMuX3VpU291cmNlQ29k
ZUFkZGVkLCB0aGlzKTsKKyAgICAgICAgc291cmNlRmlsZS5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5SYXdTb3VyY2VDb2RlLkV2ZW50cy5VSVNvdXJjZUNvZGVSZXBsYWNlZCwgdGhpcy5f
dWlTb3VyY2VDb2RlUmVwbGFjZWQsIHRoaXMpOworICAgICAgICBzb3VyY2VGaWxlLmFkZFNjcmlw
dChzY3JpcHQpOworICAgIH0sCisKKyAgICBfdWlTb3VyY2VDb2RlQWRkZWQ6IGZ1bmN0aW9uKGV2
ZW50KQorICAgIHsKKyAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IGV2ZW50LmRhdGE7CisgICAg
ICAgIHRoaXMuX3Jlc3RvcmVCcmVha3BvaW50cyh1aVNvdXJjZUNvZGUpOworICAgICAgICB0aGlz
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRp
b25Nb2RlbC5FdmVudHMuU291cmNlRmlsZUFkZGVkLCB1aVNvdXJjZUNvZGUpOworICAgIH0sCisK
KyAgICBfdWlTb3VyY2VDb2RlUmVwbGFjZWQ6IGZ1bmN0aW9uKGV2ZW50KQorICAgIHsKKyAgICAg
ICAgdmFyIG9sZFVJU291cmNlQ29kZSA9IGV2ZW50LmRhdGEub2xkU291cmNlOworICAgICAgICB2
YXIgbmV3VUlTb3VyY2VDb2RlID0gZXZlbnQuZGF0YS5uZXdTb3VyY2U7CiAKLSAgICAgICAgdGhp
cy5fcmVzdG9yZUJyZWFrcG9pbnRzKHNvdXJjZUZpbGUpOworICAgICAgICBkZWxldGUgdGhpcy5f
c291cmNlRmlsZXNbb2xkVUlTb3VyY2VDb2RlLmlkXTsKKyAgICAgICAgdGhpcy5fc291cmNlRmls
ZXNbbmV3VUlTb3VyY2VDb2RlLmlkXSA9IG5ld1VJU291cmNlQ29kZTsKIAotICAgICAgICB0aGlz
LmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRp
b25Nb2RlbC5FdmVudHMuU291cmNlRmlsZUFkZGVkLCBzb3VyY2VGaWxlKTsKKyAgICAgICAgLy8g
RklYTUU6IHJlc3RvcmUgYnJlYWtwb2ludHMgaW4gbmV3IHNvdXJjZSBjb2RlIChjdXJyZW50bHkg
d2UganVzdCByZWNyZWF0ZSBldmVyeXRoaW5nIHdoZW4gc3dpdGNoaW5nIHRvIHByZXR0eS1wcmlu
dCBtb2RlKS4KKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLlNvdXJjZUZpbGVSZXBsYWNlZCwg
ZXZlbnQuZGF0YSk7CiAgICAgfSwKIAogICAgIF9yZXN0b3JlQnJlYWtwb2ludHM6IGZ1bmN0aW9u
KHNvdXJjZUZpbGUpCiAgICAgeworICAgICAgICAvLyBGSVhNRTogbW92ZSB0aGlzIGNvZGUgdG8g
VUlTb3VyY2VDb2RlIGNsYXNzLgogICAgICAgICB2YXIgcGVuZGluZ0JyZWFrcG9pbnRzID0gdGhp
cy5fYnJlYWtwb2ludHNXaXRob3V0U291cmNlRmlsZVtzb3VyY2VGaWxlLmlkXTsKICAgICAgICAg
aWYgKCFwZW5kaW5nQnJlYWtwb2ludHMpCiAgICAgICAgICAgICByZXR1cm47CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IDlj
ZmU0ZWEzNWM4MmRjM2E2ODI0MTRmYzBkYTBhYmQ4ZmMyYzJlYzguLmZjZDI2YjEwYWY4ZmQ4NjRk
MWM5NGViYjk2Y2ZkNTMxNzA4MjA5ZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCkBAIC0xNTcsNyArMTU3LDcgQEAgV2ViSW5z
cGVjdG9yLlNjcmlwdHNQYW5lbCA9IGZ1bmN0aW9uKCkKICAgICBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50
cy5EZWJ1Z2dlcldhc0Rpc2FibGVkLCB0aGlzLl9kZWJ1Z2dlcldhc0Rpc2FibGVkLCB0aGlzKTsK
IAogICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLlNvdXJjZUZpbGVBZGRlZCwgdGhp
cy5fc291cmNlRmlsZUFkZGVkLCB0aGlzKQotICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZl
bnRzLlNvdXJjZUZpbGVDaGFuZ2VkLCB0aGlzLl9zb3VyY2VGaWxlQ2hhbmdlZCwgdGhpcyk7Cisg
ICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
RGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMuU291cmNlRmlsZVJlcGxhY2VkLCB0aGlz
Ll9zb3VyY2VGaWxlUmVwbGFjZWQsIHRoaXMpOwogICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVs
LmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwu
RXZlbnRzLkNvbnNvbGVNZXNzYWdlQWRkZWQsIHRoaXMuX2NvbnNvbGVNZXNzYWdlQWRkZWQsIHRo
aXMpOwogICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLkNvbnNvbGVNZXNzYWdlc0Ns
ZWFyZWQsIHRoaXMuX2NvbnNvbGVNZXNzYWdlc0NsZWFyZWQsIHRoaXMpOwogICAgIHRoaXMuX3By
ZXNlbnRhdGlvbk1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwuRXZlbnRzLkJyZWFrcG9pbnRBZGRlZCwgdGhpcy5fYnJlYWtwb2ludEFk
ZGVkLCB0aGlzKTsKQEAgLTMyNCw3ICszMjQsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVs
LnByb3RvdHlwZSA9IHsKIAogICAgICAgICBpZiAoZm9sZGVyTmFtZS5sZW5ndGggPiA4MCkKICAg
ICAgICAgICAgIGZvbGRlck5hbWUgPSAiXHUyMDI2IiArIGZvbGRlck5hbWUuc3Vic3RyaW5nKGZv
bGRlck5hbWUubGVuZ3RoIC0gODApOwotIAorCiAgICAgICAgIHJldHVybiB7IGZvbGRlck5hbWU6
IGZvbGRlck5hbWUsIGRpc3BsYXlOYW1lOiBkaXNwbGF5TmFtZX07CiAgICAgfSwKIApAQCAtNjM5
LDE5ICs2MzksMjcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHJldHVybiBzb3VyY2VGcmFtZTsKICAgICB9LAogCi0gICAgX3NvdXJjZUZpbGVDaGFu
Z2VkOiBmdW5jdGlvbihldmVudCkKKyAgICBfc291cmNlRmlsZVJlcGxhY2VkOiBmdW5jdGlvbihl
dmVudCkKICAgICB7Ci0gICAgICAgIHZhciBzb3VyY2VGaWxlSWQgPSBldmVudC5kYXRhLmlkOwor
ICAgICAgICB2YXIgb2xkU291cmNlRmlsZSA9IGV2ZW50LmRhdGEub2xkU291cmNlOworICAgICAg
ICB2YXIgbmV3U291cmNlRmlsZSA9IGV2ZW50LmRhdGEubmV3U291cmNlOworCisgICAgICAgIC8v
IFJlLWJpbmQgZmlsZSBzZWxlY3Qgb3B0aW9uIGZyb20gb2xkIHNvdXJjZSBmaWxlIHRvIG5ldyBv
bmUuCisgICAgICAgIHZhciBvcHRpb24gPSB0aGlzLl9zb3VyY2VGaWxlSWRUb0ZpbGVzU2VsZWN0
T3B0aW9uW29sZFNvdXJjZUZpbGUuaWRdOworICAgICAgICBkZWxldGUgdGhpcy5fc291cmNlRmls
ZUlkVG9GaWxlc1NlbGVjdE9wdGlvbltvbGRTb3VyY2VGaWxlLmlkXTsKKyAgICAgICAgb3B0aW9u
LnNvdXJjZUZpbGVJZCA9IG5ld1NvdXJjZUZpbGUuaWQ7CisgICAgICAgIHRoaXMuX3NvdXJjZUZp
bGVJZFRvRmlsZXNTZWxlY3RPcHRpb25bbmV3U291cmNlRmlsZS5pZF07CiAKLSAgICAgICAgdmFy
IG9sZFNvdXJjZUZyYW1lID0gdGhpcy5fc291cmNlRmlsZUlkVG9Tb3VyY2VGcmFtZVtzb3VyY2VG
aWxlSWRdOworICAgICAgICAvLyBSZW1vdmUgb2xkIHNvdXJjZSBmcmFtZSBhbmQgY3JlYXRlIG5l
dyBvbmUgaWYgbmVlZGVkLgorICAgICAgICB2YXIgb2xkU291cmNlRnJhbWUgPSB0aGlzLl9zb3Vy
Y2VGaWxlSWRUb1NvdXJjZUZyYW1lW29sZFNvdXJjZUZpbGUuaWRdOwogICAgICAgICBpZiAoIW9s
ZFNvdXJjZUZyYW1lKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBvbGRTb3VyY2VGcmFt
ZS5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5FdmVudHMuTG9h
ZGVkLCB0aGlzLl9zb3VyY2VGcmFtZUxvYWRlZCwgdGhpcyk7Ci0gICAgICAgIGRlbGV0ZSB0aGlz
Ll9zb3VyY2VGaWxlSWRUb1NvdXJjZUZyYW1lW3NvdXJjZUZpbGVJZF07CisgICAgICAgIGRlbGV0
ZSB0aGlzLl9zb3VyY2VGaWxlSWRUb1NvdXJjZUZyYW1lW29sZFNvdXJjZUZpbGUuaWRdOwogICAg
ICAgICBpZiAodGhpcy52aXNpYmxlVmlldyAhPT0gb2xkU291cmNlRnJhbWUpCiAgICAgICAgICAg
ICByZXR1cm47CiAKLSAgICAgICAgdmFyIG5ld1NvdXJjZUZyYW1lID0gdGhpcy5fY3JlYXRlU291
cmNlRnJhbWUoc291cmNlRmlsZUlkKQorICAgICAgICB2YXIgbmV3U291cmNlRnJhbWUgPSB0aGlz
Ll9jcmVhdGVTb3VyY2VGcmFtZShuZXdTb3VyY2VGaWxlLmlkKTsKICAgICAgICAgbmV3U291cmNl
RnJhbWUuc2Nyb2xsVG9wID0gb2xkU291cmNlRnJhbWUuc2Nyb2xsVG9wOwogICAgICAgICB0aGlz
LnZpc2libGVWaWV3ID0gbmV3U291cmNlRnJhbWU7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5qcwppbmRleCAxOWY5YTQzODQyMDUz
MzdhZTE2ZDUwNjgxODZmNzRlYmQwNzg3OGFmLi42ZDgzZTMzZTg1MzBkYzAzYmZlYWNmOWRmM2Iy
OGIyN2Q5NmZiZDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1NvdXJjZUZpbGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9Tb3VyY2VGaWxlLmpzCkBAIC0zMCwzMCArMzAsNDMgQEAKIAogLy8gUmF3U291cmNlQ29kZSBy
ZXByZXNlbnRzIEphdmFTY3JpcHQgcmVzb3VyY2Ugb3IgSFRNTCByZXNvdXJjZSB3aXRoIGlubGlu
ZWQgc2NyaXB0cwogLy8gYXMgaXQgY2FtZSBmcm9tIG5ldHdvcmsuCi1XZWJJbnNwZWN0b3IuUmF3
U291cmNlQ29kZSA9IGZ1bmN0aW9uKGlkLCBzY3JpcHQsIGZvcm1hdHRlciwgY29udGVudENoYW5n
ZWREZWxlZ2F0ZSkKK1dlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlID0gZnVuY3Rpb24oaWQsIGZv
cm1hdHRlcikKIHsKLSAgICB0aGlzLl9zY3JpcHRzID0gW3NjcmlwdF07CisgICAgdGhpcy5pZCA9
IGlkOwogICAgIHRoaXMuX2Zvcm1hdHRlciA9IGZvcm1hdHRlcjsKICAgICB0aGlzLl9mb3JtYXR0
ZWQgPSBmYWxzZTsKLSAgICB0aGlzLl9jb250ZW50Q2hhbmdlZERlbGVnYXRlID0gY29udGVudENo
YW5nZWREZWxlZ2F0ZTsKLSAgICBpZiAoc2NyaXB0LnNvdXJjZVVSTCkKLSAgICAgICAgdGhpcy5f
cmVzb3VyY2UgPSBXZWJJbnNwZWN0b3IubmV0d29ya01hbmFnZXIuaW5mbGlnaHRSZXNvdXJjZUZv
clVSTChzY3JpcHQuc291cmNlVVJMKSB8fCBXZWJJbnNwZWN0b3IucmVzb3VyY2VGb3JVUkwoc2Ny
aXB0LnNvdXJjZVVSTCk7CisKKyAgICB0aGlzLl9zY3JpcHRzID0gW107CiAgICAgdGhpcy5fcmVx
dWVzdENvbnRlbnRDYWxsYmFja3MgPSBbXTsKIAotICAgIHRoaXMuaWQgPSBpZDsKLSAgICB0aGlz
LnVybCA9IHNjcmlwdC5zb3VyY2VVUkw7Ci0gICAgdGhpcy5pc0NvbnRlbnRTY3JpcHQgPSBzY3Jp
cHQuaXNDb250ZW50U2NyaXB0OwogICAgIHRoaXMubWVzc2FnZXMgPSBbXTsKICAgICB0aGlzLmJy
ZWFrcG9pbnRzID0ge307Cit9CiAKLSAgICBpZiAodGhpcy5faGFzUGVuZGluZ1Jlc291cmNlKCkp
Ci0gICAgICAgIHRoaXMuX3Jlc291cmNlLmFkZEV2ZW50TGlzdGVuZXIoImZpbmlzaGVkIiwgdGhp
cy5yZWxvYWQuYmluZCh0aGlzKSk7CitXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5FdmVudHMg
PSB7CisgICAgVUlTb3VyY2VDb2RlQWRkZWQ6ICJ1aS1zb3VyY2UtY29kZS1hZGRlZCIsCisgICAg
VUlTb3VyY2VDb2RlUmVwbGFjZWQ6ICJ1aS1zb3VyY2UtY29kZS1yZXBsYWNlZCIKIH0KIAogV2Vi
SW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUucHJvdG90eXBlID0gewogICAgIGFkZFNjcmlwdDogZnVu
Y3Rpb24oc2NyaXB0KQogICAgIHsKICAgICAgICAgdGhpcy5fc2NyaXB0cy5wdXNoKHNjcmlwdCk7
CisKKyAgICAgICAgaWYgKHRoaXMuX3NjcmlwdHMubGVuZ3RoID4gMSkKKyAgICAgICAgICAgIHJl
dHVybjsKKworICAgICAgICB0aGlzLnVybCA9IHNjcmlwdC5zb3VyY2VVUkw7CisgICAgICAgIHRo
aXMuaXNDb250ZW50U2NyaXB0ID0gc2NyaXB0LmlzQ29udGVudFNjcmlwdDsKKworICAgICAgICBp
ZiAoc2NyaXB0LnNvdXJjZVVSTCkKKyAgICAgICAgICAgIHRoaXMuX3Jlc291cmNlID0gV2ViSW5z
cGVjdG9yLm5ldHdvcmtNYW5hZ2VyLmluZmxpZ2h0UmVzb3VyY2VGb3JVUkwoc2NyaXB0LnNvdXJj
ZVVSTCkgfHwgV2ViSW5zcGVjdG9yLnJlc291cmNlRm9yVVJMKHNjcmlwdC5zb3VyY2VVUkwpOwor
CisgICAgICAgIGlmICh0aGlzLl9oYXNQZW5kaW5nUmVzb3VyY2UoKSkKKyAgICAgICAgICAgIHRo
aXMuX3Jlc291cmNlLmFkZEV2ZW50TGlzdGVuZXIoImZpbmlzaGVkIiwgdGhpcy5yZWxvYWQuYmlu
ZCh0aGlzKSk7CisKKyAgICAgICAgLy8gRklYTUU6IGV4dHJhY3QgVUlTb3VyY2VDb2RlIGZyb20g
UmF3U291cmNlQ29kZSAoY3VycmVudGx5IFJhd1NvdXJjZUNvZGUgaW1wbGVtZW50cyBtZXRob2Rz
IGZyb20gYm90aCBpbnRlcmZhY2VzKS4KKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVk
LCB0aGlzKTsKICAgICB9LAogCiAgICAgcmF3TG9jYXRpb25Ub1VJTG9jYXRpb246IGZ1bmN0aW9u
KHJhd0xvY2F0aW9uKQpAQCAtMTUzLDcgKzE2Niw4IEBAIFdlYkluc3BlY3Rvci5SYXdTb3VyY2VD
b2RlLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIGlmICh0aGlzLl9jb250ZW50TG9hZGVk
KSB7CiAgICAgICAgICAgICB0aGlzLl9jb250ZW50TG9hZGVkID0gZmFsc2U7Ci0gICAgICAgICAg
ICB0aGlzLl9jb250ZW50Q2hhbmdlZERlbGVnYXRlKHRoaXMpOworICAgICAgICAgICAgLy8gRklY
TUU6IGNyZWF0ZSBhbm90aGVyIFVJU291cmNlQ29kZSBpbnN0YW5jZSBoZXJlLCBVSVNvdXJjZUNv
ZGUgc2hvdWxkIGJlIGltbXV0YWJsZS4KKyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRv
TGlzdGVuZXJzKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLkV2ZW50cy5VSVNvdXJjZUNvZGVS
ZXBsYWNlZCwgeyBvbGRTb3VyY2U6IHRoaXMsIG5ld1NvdXJjZTogdGhpcyB9KTsKICAgICAgICAg
fSBlbHNlIGlmICh0aGlzLl9jb250ZW50UmVxdWVzdGVkKQogICAgICAgICAgICAgdGhpcy5fcmVs
b2FkQ29udGVudCA9IHRydWU7CiAgICAgICAgIGVsc2UgaWYgKHRoaXMuX3JlcXVlc3RDb250ZW50
Q2FsbGJhY2tzLmxlbmd0aCkKQEAgLTI5MSwzICszMDUsNSBAQCBXZWJJbnNwZWN0b3IuUmF3U291
cmNlQ29kZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZSAmJiAh
dGhpcy5fcmVzb3VyY2UuZmluaXNoZWQ7CiAgICAgfQogfQorCitXZWJJbnNwZWN0b3IuUmF3U291
cmNlQ29kZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5
cGU7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102922</attachid>
            <date>2011-08-04 08:54:46 -0700</date>
            <delta_ts>2011-08-05 08:49:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-65551-20110804195444.patch</filename>
            <type>text/plain</type>
            <size>32584</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTIzNzAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjOGNkNTI4M2RmN2FkNGZkNTE4ODQ2
ZjI4NTBmMzkyMmE2MzlkNTJlLi5kOTU1MDA1ODllMTk5OTVlMDM5M2RiYmJkMmQzMzFkNDMxZWVi
MWYyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTggQEAKKzIwMTEtMDgtMDQgIFBhdmVsIFBvZGl2aWxvdiAg
PHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogdXNlIHNv
dXJjZS1maWxlLXJlcGxhY2VkIGluc3RlYWQgb2Ygc291cmNlLWZpbGUtY2hhbmdlZCBldmVudC4K
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1NTUxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0
b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVj
dG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFuZWwuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVi
dWdnZXIvc291cmNlLWZpbGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1
Z2dlci9zb3VyY2UtZmlsZS5odG1sOgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zb3Vy
Y2UtZnJhbWUtY291bnQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvc291cmNlLWZyYW1lLWNvdW50Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dDoKKwogMjAxMS0wOC0wNCAgUGF2ZWwg
RmVsZG1hbiAgPHBmZWxkbWFuQGdvb2dsZS5jb20+CiAKICAgICAgICAgV2ViIEluc3BlY3Rvcjog
UmVuYW1lIHNvdXJjZUlkIC0+IHNjcmlwdElkIGluIHRoZSBwcm90b2NvbCBhbmQgdGhlIHNvdXJj
ZSBjb2RlLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Njcmlw
dHMtcGFuZWwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Nj
cmlwdHMtcGFuZWwtZXhwZWN0ZWQudHh0CmluZGV4IGMwYzNlZjIzNDIxNTc5Y2I3MmJkZGQ3OTQz
OTAwNzg0NmEwNDY2Y2YuLjlkNmY4OGY1NmYwZGI0YWU0NDQ2ZTcxMGEwZDc4NDYwZDgwMTA2ZTMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVs
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0
cy1wYW5lbC1leHBlY3RlZC50eHQKQEAgLTEsMjcgKzEsMzYgQEAKIFRlc3RzIHRoYXQgc2NyaXB0
cyBwYW5lbCBVSSBlbGVtZW50cyB3b3JrIGFzIGludGVuZGVkLgogCi1EZWJ1Z2dlciB3YXMgZW5h
YmxlZC4KIAogUnVubmluZzogdGVzdEluaXRpYWxMb2FkCitTb3VyY2UgcmVxdWVzdGVkIGZvciBm
b28uanMKK0R1bXAgZmlsZXMgc2VsZWN0OgorwqDCoMKgwqBiYXIuanMKK8KgwqDCoMKgYmF6Lmpz
CivCoMKgwqDCoGZvby5qcworU291cmNlIHJlcXVlc3RlZCBmb3IgYmF6LmpzCiAKIFJ1bm5pbmc6
IHRlc3RIaXN0b3J5Ci0KLVJ1bm5pbmc6IHRlc3RTb3VyY2VGcmFtZXNDb3VudAotUGFnZSByZWxv
YWRlZC4KK1NvdXJjZSByZXF1ZXN0ZWQgZm9yIGluZGV4Lmh0bWwKK1NvdXJjZSByZXF1ZXN0ZWQg
Zm9yIHNjcmlwdDEuanMKK1NvdXJjZSByZXF1ZXN0ZWQgZm9yIHNjcmlwdDIuanMKK1NvdXJjZSBy
ZXF1ZXN0ZWQgZm9yIHNjcmlwdDMuanMKIAogUnVubmluZzogdGVzdEZpbGVzU2VsZWN0Ci10ZXh0
OiDCoMKgwqDCoD9hPWIsIHRvb2x0aXA6ID9hPWIKLXRleHQ6IMKgwqDCoMKgP2E9YiwgdG9vbHRp
cDogaHR0cDovL2V4YW1wbGUuY29tLz9hPWIKLXRleHQ6IMKgwqDCoMKg4oCmb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29uZ191cmwsIHRvb2x0aXA6IHZlcnlfbG9vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb25nX3VybAordGV4dDogP2E9YiwgdG9vbHRpcDogP2E9YgordGV4dDogP2E9YiwgdG9v
bHRpcDogaHR0cDovL2V4YW1wbGUuY29tLz9hPWIKK3RleHQ6IOKApm9vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
bmdfdXJsLCB0b29sdGlwOiB2ZXJ5X2xvb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29vb29v
b29uZ191cmwKIHRleHQ6IExheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9mb28vYmFyLCB0
b29sdGlwOiAKLXRleHQ6IMKgwqDCoMKgc2NyaXB0LmpzLCB0b29sdGlwOiA8cm9vdD4vZm9vL2Jh
ci9zY3JpcHQuanMKLXRleHQ6IMKgwqDCoMKgc2NyaXB0LmpzP2E9MSwgdG9vbHRpcDogPHJvb3Q+
L2Zvby9iYXIvc2NyaXB0LmpzP2E9MQotdGV4dDogwqDCoMKgwqBzY3JpcHQuanM/YT0yLCB0b29s
dGlwOiA8cm9vdD4vZm9vL2Jhci9zY3JpcHQuanM/YT0yCit0ZXh0OiBzY3JpcHQuanMsIHRvb2x0
aXA6IDxyb290Pi9mb28vYmFyL3NjcmlwdC5qcwordGV4dDogc2NyaXB0LmpzP2E9MSwgdG9vbHRp
cDogPHJvb3Q+L2Zvby9iYXIvc2NyaXB0LmpzP2E9MQordGV4dDogc2NyaXB0LmpzP2E9MiwgdG9v
bHRpcDogPHJvb3Q+L2Zvby9iYXIvc2NyaXB0LmpzP2E9MgogdGV4dDogTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2Zvby9iYXosIHRvb2x0aXA6IAotdGV4dDogwqDCoMKgwqBzY3JpcHQu
anMsIHRvb2x0aXA6IDxyb290Pi9mb28vYmF6L3NjcmlwdC5qcwordGV4dDogc2NyaXB0LmpzLCB0
b29sdGlwOiA8cm9vdD4vZm9vL2Jhei9zY3JpcHQuanMKIHRleHQ6IENvbnRlbnQgc2NyaXB0cywg
dG9vbHRpcDogCi10ZXh0OiDCoMKgwqDCoGNvbnRlbnRTY3JpcHQuanM/YT0xLCB0b29sdGlwOiA8
cm9vdD4vZm9vL2Jhci9jb250ZW50U2NyaXB0LmpzP2E9MQotdGV4dDogwqDCoMKgwqBjb250ZW50
U2NyaXB0LmpzP2E9MiwgdG9vbHRpcDogPHJvb3Q+L2Zvby9iYXIvY29udGVudFNjcmlwdC5qcz9h
PTIKLXRleHQ6IMKgwqDCoMKgY29udGVudFNjcmlwdDIuanM/YT0xLCB0b29sdGlwOiA8cm9vdD4v
Zm9vL2Jhci9jb250ZW50U2NyaXB0Mi5qcz9hPTEKLURlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KK3Rl
eHQ6IGNvbnRlbnRTY3JpcHQuanM/YT0xLCB0b29sdGlwOiA8cm9vdD4vZm9vL2Jhci9jb250ZW50
U2NyaXB0LmpzP2E9MQordGV4dDogY29udGVudFNjcmlwdC5qcz9hPTIsIHRvb2x0aXA6IDxyb290
Pi9mb28vYmFyL2NvbnRlbnRTY3JpcHQuanM/YT0yCit0ZXh0OiBjb250ZW50U2NyaXB0Mi5qcz9h
PTEsIHRvb2x0aXA6IDxyb290Pi9mb28vYmFyL2NvbnRlbnRTY3JpcHQyLmpzP2E9MQorCitSdW5u
aW5nOiB0ZXN0U291cmNlUmVwbGFjZWQKK1NvdXJjZSByZXF1ZXN0ZWQgZm9yIGZvby5qcworU291
cmNlIHJlcXVlc3RlZCBmb3IgYmFyLmpzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBhbmVsLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sCmluZGV4IGQ1ODhjMzczNjJjZDYzNTc1ZDJkN2Zi
ZmJkMmQ5NDdkYzFkZmQ0ZjYuLjdmM2FjZWI4NGNiNzhkM2I0NjYyOTcxZDhjMjZlMmIxZGJiOWU1
NWMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zY3JpcHRzLXBh
bmVsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NjcmlwdHMtcGFu
ZWwuaHRtbApAQCAtMSwxMzAgKzEsMTE4IEBACiA8aHRtbD4KIDxoZWFkPgogPHNjcmlwdCBzcmM9
Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2luc3BlY3Rvci10ZXN0LmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQgc3JjPSIuLi8uLi9odHRwL3Rlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci10ZXN0Lmpz
Ij48L3NjcmlwdD4KLTxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvc2NyaXB0MS5qcyI+PC9zY3JpcHQ+
Ci08c2NyaXB0IHNyYz0icmVzb3VyY2VzL3NjcmlwdDIuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBz
cmM9InJlc291cmNlcy9zY3JpcHQzLmpzIj48L3NjcmlwdD4KIAogPHNjcmlwdD4KIAogZnVuY3Rp
b24gdGVzdCgpCiB7Ci0gICAgdmFyIHBhbmVsID0gV2ViSW5zcGVjdG9yLnBhbmVscy5zY3JpcHRz
OwotICAgIHZhciBzZWxlY3QgPSBwYW5lbC5fZmlsZXNTZWxlY3RFbGVtZW50OwotICAgIHZhciBm
aWxlcyA9IFsiZGVidWdnZXItdGVzdC5qcyIsICJpbnNwZWN0b3ItdGVzdC5qcyIsICJzY3JpcHQx
LmpzIiwgInNjcmlwdDIuanMiLCAic2NyaXB0My5qcyIsICJzY3JpcHRzLXBhbmVsLmh0bWwiXTsK
KyAgICBmdW5jdGlvbiBjcmVhdGVNb2NrU2NyaXB0KHVybCwgc2NyaXB0SWQpCisgICAgeworICAg
ICAgICByZXR1cm4geworICAgICAgICAgICAgc291cmNlVVJMOiB1cmwsCisgICAgICAgICAgICBz
Y3JpcHRJZDogc2NyaXB0SWQsCisgICAgICAgICAgICByZXF1ZXN0U291cmNlOiBmdW5jdGlvbihj
YWxsYmFjaykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiU291cmNlIHJlcXVlc3RlZCBmb3IgIiArIHVybCk7CisgICAgICAgICAgICAgICAg
Y2FsbGJhY2soIiIpOworICAgICAgICAgICAgfQorICAgICAgICB9OworICAgIH0KKworICAgIGZ1
bmN0aW9uIHNob3dTb3VyY2VGcmFtZShwYW5lbCwgZmlsZU5hbWUpCisgICAgeworICAgICAgICB2
YXIgc2VsZWN0ID0gcGFuZWwuX2ZpbGVzU2VsZWN0RWxlbWVudDsKKyAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBzZWxlY3QubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIGlmIChzZWxlY3Rb
aV0udGV4dC5pbmRleE9mKGZpbGVOYW1lKSA9PT0gLTEpCisgICAgICAgICAgICAgICAgY29udGlu
dWU7CisgICAgICAgICAgICBzZWxlY3Quc2VsZWN0ZWRJbmRleCA9IGk7CisgICAgICAgICAgICBw
YW5lbC5fZmlsZXNTZWxlY3RDaGFuZ2VkKCk7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
fQorICAgIH0KIAotICAgIEluc3BlY3RvclRlc3QucnVuRGVidWdnZXJUZXN0U3VpdGUoWworICAg
IEluc3BlY3RvclRlc3QucnVuVGVzdFN1aXRlKFsKICAgICAgICAgZnVuY3Rpb24gdGVzdEluaXRp
YWxMb2FkKG5leHQpCiAgICAgICAgIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uIGNoZWNrRmlsZXNM
aXN0KCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IGZpbGVzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICAgICAgICAgIHZhciBmb3VuZCA9IGZh
bHNlOwotICAgICAgICAgICAgICAgICAgICBmb3IgKHZhciBqID0gMDsgaiA8IHNlbGVjdC5sZW5n
dGg7ICsraikgewotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdFtqXS50ZXh0Lmlu
ZGV4T2YoZmlsZXNbaV0pICE9PSAtMSkgewotICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZv
dW5kID0gdHJ1ZTsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAg
ICAgICBpZiAoIWZvdW5kKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0
LmFkZFNuaWZmZXIocGFuZWwsICJfYWRkT3B0aW9uVG9GaWxlc1NlbGVjdCIsIGNoZWNrRmlsZXNM
aXN0KTsKLSAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICAg
ICAgfQotICAgICAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgICAgIHZhciBzb3VyY2VGcmFt
ZUNvdW50ID0gMDsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBzb3VyY2VGaWxlSWQgaW4gcGFu
ZWwuX3NvdXJjZUZpbGVJZFRvU291cmNlRnJhbWUpCi0gICAgICAgICAgICAgICAgICAgIHNvdXJj
ZUZyYW1lQ291bnQgKz0gMTsKLSAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVx
dWFscygxLCBzb3VyY2VGcmFtZUNvdW50LCAid3JvbmcgbnVtYmVyIG9mIHNvdXJjZSBmcmFtZXMg
Y3JlYXRlZCBkdXJpbmcgaW5pdGlhbCBsb2FkIik7Ci0KLSAgICAgICAgICAgICAgICBuZXh0KCk7
Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBjaGVja0ZpbGVzTGlzdCgpOworICAgICAgICAg
ICAgdmFyIHBhbmVsID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwoKTsKKyAgICAgICAg
ICAgIHZhciBtb2RlbCA9IHBhbmVsLl9wcmVzZW50YXRpb25Nb2RlbDsKKyAgICAgICAgICAgIG1v
ZGVsLl9hZGRTY3JpcHQoY3JlYXRlTW9ja1NjcmlwdCgiZm9vLmpzIiwgIjEiKSk7CisgICAgICAg
ICAgICBtb2RlbC5fYWRkU2NyaXB0KGNyZWF0ZU1vY2tTY3JpcHQoImJhci5qcyIsICIyIikpOwor
ICAgICAgICAgICAgbW9kZWwuX2FkZFNjcmlwdChjcmVhdGVNb2NrU2NyaXB0KCJiYXouanMiLCAi
MyIpKTsKKworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkR1bXAgZmlsZXMg
c2VsZWN0OiIpOworICAgICAgICAgICAgdmFyIHNlbGVjdCA9IHBhbmVsLl9maWxlc1NlbGVjdEVs
ZW1lbnQ7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdC5sZW5ndGg7ICsr
aSkKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdChzZWxlY3RbaV0udGV4
dCk7CisKKyAgICAgICAgICAgIC8vIFNlbGVjdGVkIGZpbGUgc2hvdWxkIGJlICJmb28uanMiLgor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoMiwgc2VsZWN0LnNlbGVjdGVk
SW5kZXgpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoImZvby5qcyIs
IHNlbGVjdFsyXS50ZXh0LnJlcGxhY2UoL1xzL2csICIiKSk7CisKKyAgICAgICAgICAgIC8vIFNl
bGVjdCAiYmF6LmpzIi4KKyAgICAgICAgICAgIHNlbGVjdC5zZWxlY3RlZEluZGV4ID0gMTsKKyAg
ICAgICAgICAgIHBhbmVsLl9maWxlc1NlbGVjdENoYW5nZWQoKTsKKworICAgICAgICAgICAgbmV4
dCgpOwogICAgICAgICB9LAogCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RIaXN0b3J5KG5leHQpCiAg
ICAgICAgIHsKLSAgICAgICAgICAgIGZ1bmN0aW9uIHNob3dTb3VyY2VGcmFtZShmaWxlTmFtZSkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVj
dC5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgICAgICAgICBpZiAoc2VsZWN0W2ldLnRleHQu
aW5kZXhPZihmaWxlTmFtZSkgPT09IC0xKQotICAgICAgICAgICAgICAgICAgICAgICAgY29udGlu
dWU7Ci0gICAgICAgICAgICAgICAgICAgIHNlbGVjdC5zZWxlY3RlZEluZGV4ID0gaTsKLSAgICAg
ICAgICAgICAgICAgICAgcGFuZWwuX2ZpbGVzU2VsZWN0Q2hhbmdlZCgpOwotICAgICAgICAgICAg
ICAgICAgICBicmVhazsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICB9CisgICAgICAg
ICAgICB2YXIgcGFuZWwgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbCgpOworICAgICAg
ICAgICAgdmFyIG1vZGVsID0gcGFuZWwuX3ByZXNlbnRhdGlvbk1vZGVsOworCisKKyAgICAgICAg
ICAgIHZhciBmaWxlcyA9IFsiaW5kZXguaHRtbCIsICJzY3JpcHQxLmpzIiwgInNjcmlwdDIuanMi
LCAic2NyaXB0My5qcyJdOworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWxlcy5s
ZW5ndGg7ICsraSkKKyAgICAgICAgICAgICAgICBtb2RlbC5fYWRkU2NyaXB0KGNyZWF0ZU1vY2tT
Y3JpcHQoZmlsZXNbaV0sIChpICsgMSkudG9TdHJpbmcoKSkpOwogCiAgICAgICAgICAgICBmdW5j
dGlvbiBjaGVja0N1cnJlbnRseVNlbGVjdGVkRmlsZU5hbWUoZmlsZU5hbWUpCiAgICAgICAgICAg
ICB7Ci0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRUcnVlKHNlbGVjdFtzZWxl
Y3Quc2VsZWN0ZWRJbmRleF0udGV4dC5pbmRleE9mKGZpbGVOYW1lKSAhPT0gLTEsICJPcHRpb24g
dGV4dCBzaG91bGQgY29udGFpbiBmaWxlIG5hbWU6ICIgKyBzZWxlY3Rbc2VsZWN0LnNlbGVjdGVk
SW5kZXhdLnRleHQgKyAiIHZzICIgKyBmaWxlTmFtZSk7CisgICAgICAgICAgICAgICAgdmFyIGlu
ZGV4ID0gcGFuZWwuX2ZpbGVzU2VsZWN0RWxlbWVudC5zZWxlY3RlZEluZGV4OworICAgICAgICAg
ICAgICAgIHZhciB0ZXh0ID0gcGFuZWwuX2ZpbGVzU2VsZWN0RWxlbWVudFtpbmRleF0udGV4dDsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydFRydWUodGV4dC5pbmRleE9mKGZp
bGVOYW1lKSAhPT0gLTEsCisgICAgICAgICAgICAgICAgICAgICJXcm9uZyBvcHRpb24gdGV4dC4g
RXhwZWN0ZWQgPCIgKyBmaWxlTmFtZSArICI+LCBmb3VuZCA8IiArIHRleHQgKyAiPi4iKTsKICAg
ICAgICAgICAgIH0KIAogICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBmaWxlcy5sZW5n
dGg7ICsraSkKLSAgICAgICAgICAgICAgICBzaG93U291cmNlRnJhbWUoZmlsZXNbaV0pOwotICAg
ICAgICAgICAgY2hlY2tDdXJyZW50bHlTZWxlY3RlZEZpbGVOYW1lKCJzY3JpcHRzLXBhbmVsLmh0
bWwiKTsKLSAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0RXF1YWxzKHRydWUsIHBhbmVs
LmZvcndhcmRCdXR0b24uZGlzYWJsZWQsICJGb3J3YXJkIHNob3VsZCBiZSBkaXNhYmxlZCBhdCBm
aXJzdC4iKTsKKyAgICAgICAgICAgICAgICBzaG93U291cmNlRnJhbWUocGFuZWwsIGZpbGVzW2ld
KTsKKyAgICAgICAgICAgIGNoZWNrQ3VycmVudGx5U2VsZWN0ZWRGaWxlTmFtZSgic2NyaXB0My5q
cyIpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgcGFuZWwu
Zm9yd2FyZEJ1dHRvbi5kaXNhYmxlZCwgIkZvcndhcmQgc2hvdWxkIGJlIGRpc2FibGVkLiIpOwog
CiAgICAgICAgICAgICBwYW5lbC5iYWNrQnV0dG9uLmNsaWNrKCk7Ci0gICAgICAgICAgICBjaGVj
a0N1cnJlbnRseVNlbGVjdGVkRmlsZU5hbWUoInNjcmlwdDMuanMiKTsKKyAgICAgICAgICAgIGNo
ZWNrQ3VycmVudGx5U2VsZWN0ZWRGaWxlTmFtZSgic2NyaXB0Mi5qcyIpOwogICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHMoZmFsc2UsIHBhbmVsLmZvcndhcmRCdXR0b24uZGlz
YWJsZWQsICJGb3J3YXJkIHNob3VsZCBiZSBlbmFibGVkIGFmdGVyIGJhY2sgYnV0dG9uIGNsaWNr
LiIpOwogCiAgICAgICAgICAgICBwYW5lbC5mb3J3YXJkQnV0dG9uLmNsaWNrKCk7Ci0gICAgICAg
ICAgICBjaGVja0N1cnJlbnRseVNlbGVjdGVkRmlsZU5hbWUoInNjcmlwdHMtcGFuZWwuaHRtbCIp
OworICAgICAgICAgICAgY2hlY2tDdXJyZW50bHlTZWxlY3RlZEZpbGVOYW1lKCJzY3JpcHQzLmpz
Iik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCBwYW5lbC5m
b3J3YXJkQnV0dG9uLmRpc2FibGVkLCAiRm9yd2FyZCBzaG91bGQgYmUgZGlzYWJsZWQgYWZ0ZXIg
Zm9yd2FyZCBidXR0b24gY2xpY2suIik7CiAKLSAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgZmlsZXMubGVuZ3RoIC0gMTsgKytpKQotICAgICAgICAgICAgICAgIHBhbmVsLmJhY2tCdXR0
b24uY2xpY2soKTsKKyAgICAgICAgICAgIHBhbmVsLmJhY2tCdXR0b24uY2xpY2soKTsKKyAgICAg
ICAgICAgIGNoZWNrQ3VycmVudGx5U2VsZWN0ZWRGaWxlTmFtZSgic2NyaXB0Mi5qcyIpOwogCi0g
ICAgICAgICAgICBjaGVja0N1cnJlbnRseVNlbGVjdGVkRmlsZU5hbWUoImRlYnVnZ2VyLXRlc3Qu
anMiKTsKKyAgICAgICAgICAgIHBhbmVsLmJhY2tCdXR0b24uY2xpY2soKTsKKyAgICAgICAgICAg
IGNoZWNrQ3VycmVudGx5U2VsZWN0ZWRGaWxlTmFtZSgic2NyaXB0MS5qcyIpOworCisgICAgICAg
ICAgICBwYW5lbC5iYWNrQnV0dG9uLmNsaWNrKCk7CisgICAgICAgICAgICBjaGVja0N1cnJlbnRs
eVNlbGVjdGVkRmlsZU5hbWUoImluZGV4Lmh0bWwiKTsKIAotICAgICAgICAgICAgcGFuZWwuZm9y
d2FyZEJ1dHRvbi5jbGljaygpOwogICAgICAgICAgICAgcGFuZWwuZm9yd2FyZEJ1dHRvbi5jbGlj
aygpOwogICAgICAgICAgICAgcGFuZWwuZm9yd2FyZEJ1dHRvbi5jbGljaygpOwogICAgICAgICAg
ICAgY2hlY2tDdXJyZW50bHlTZWxlY3RlZEZpbGVOYW1lKCJzY3JpcHQyLmpzIik7CiAKLSAgICAg
ICAgICAgIHNob3dTb3VyY2VGcmFtZSgiaW5zcGVjdG9yLXRlc3QuanMiKTsKLSAgICAgICAgICAg
IGNoZWNrQ3VycmVudGx5U2VsZWN0ZWRGaWxlTmFtZSgiaW5zcGVjdG9yLXRlc3QuanMiKTsKKyAg
ICAgICAgICAgIHNob3dTb3VyY2VGcmFtZShwYW5lbCwgInNjcmlwdDEuanMiKTsKKyAgICAgICAg
ICAgIGNoZWNrQ3VycmVudGx5U2VsZWN0ZWRGaWxlTmFtZSgic2NyaXB0MS5qcyIpOwogICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRFcXVhbHModHJ1ZSwgcGFuZWwuZm9yd2FyZEJ1dHRv
bi5kaXNhYmxlZCk7CiAKICAgICAgICAgICAgIHBhbmVsLmJhY2tCdXR0b24uY2xpY2soKTsKICAg
ICAgICAgICAgIGNoZWNrQ3VycmVudGx5U2VsZWN0ZWRGaWxlTmFtZSgic2NyaXB0Mi5qcyIpOwog
CiAgICAgICAgICAgICBwYW5lbC5iYWNrQnV0dG9uLmNsaWNrKCk7Ci0gICAgICAgICAgICBjaGVj
a0N1cnJlbnRseVNlbGVjdGVkRmlsZU5hbWUoInNjcmlwdDEuanMiKTsKLQotICAgICAgICAgICAg
cGFuZWwuYmFja0J1dHRvbi5jbGljaygpOwotICAgICAgICAgICAgY2hlY2tDdXJyZW50bHlTZWxl
Y3RlZEZpbGVOYW1lKCJkZWJ1Z2dlci10ZXN0LmpzIik7CisgICAgICAgICAgICBjaGVja0N1cnJl
bnRseVNlbGVjdGVkRmlsZU5hbWUoImluZGV4Lmh0bWwiKTsKIAogICAgICAgICAgICAgbmV4dCgp
OwogICAgICAgICB9LAogCi0gICAgICAgIGZ1bmN0aW9uIHRlc3RTb3VyY2VGcmFtZXNDb3VudChu
ZXh0KQotICAgICAgICB7Ci0gICAgICAgICAgICB2YXIgc291cmNlRnJhbWVDb3VudCA9IDA7Ci0K
LSAgICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgic2NyaXB0cy1wYW5l
bC5odG1sIiwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7Ci0KLSAgICAgICAgICAgIGZ1bmN0aW9uIGRp
ZFNob3dTY3JpcHRTb3VyY2UoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIGZ1bmN0
aW9uIGRpZENyZWF0ZVNvdXJjZUZyYW1lKCkKLSAgICAgICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgICAgIHNvdXJjZUZyYW1lQ291bnQgKz0gMTsKLSAgICAgICAgICAgICAgICB9Ci0gICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVyKHBhbmVsLCAiX2NyZWF0ZVNvdXJj
ZUZyYW1lIiwgZGlkQ3JlYXRlU291cmNlRnJhbWUsIHRydWUpOwotICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QucmVsb2FkUGFnZShkaWRSZWxvYWQpOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBmdW5jdGlvbiBkaWRSZWxvYWQoKQotICAgICAgICAgICAgewotICAgICAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZShzZWxlY3Rbc2VsZWN0LnNlbGVjdGVkSW5kZXhd
LnRleHQuaW5kZXhPZigic2NyaXB0cy1wYW5lbC5odG1sIikgIT09IC0xKTsKLSAgICAgICAgICAg
ICAgICAvLyBUaGVyZSBzaG91bGQgYmUgbWF4aW11bSAyIHNvdXJjZSBmcmFtZXM6IGZpcnN0IG9u
ZSBpcyB0aGUgZmlyc3Qgc2hvd24sIHNlY29uZCBvbmUgaXMgdGhlIGxhc3Qgdmlld2VkICgic2Ny
aXB0cy1wYW5lbC5odG1sIikuCi0gICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hc3NlcnRF
cXVhbHModHJ1ZSwgc291cmNlRnJhbWVDb3VudCA8PSAyLCAidG9vIG1hbnkgc291cmNlIGZyYW1l
cyBjcmVhdGVkIGFmdGVyIHBhZ2UgcmVsb2FkIik7Ci0gICAgICAgICAgICAgICAgbmV4dCgpOwot
ICAgICAgICAgICAgfQotICAgICAgICB9LAotCiAgICAgICAgIGZ1bmN0aW9uIHRlc3RGaWxlc1Nl
bGVjdChuZXh0KQogICAgICAgICB7CiAgICAgICAgICAgICB2YXIgcGFuZWwgPSBuZXcgV2ViSW5z
cGVjdG9yLlNjcmlwdHNQYW5lbCgpOwpAQCAtMTQ5LDM3ICsxMzcsMjkgQEAgZnVuY3Rpb24gdGVz
dCgpCiAgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNlbGVjdC5sZW5ndGg7ICsraSkg
ewogICAgICAgICAgICAgICAgIHZhciBvcHRpb24gPSBzZWxlY3RbaV07CiAgICAgICAgICAgICAg
ICAgdmFyIHRleHQgPSBvcHRpb24udGV4dC5yZXBsYWNlKC8uKkxheW91dFRlc3RzLywgIkxheW91
dFRlc3RzIik7CisgICAgICAgICAgICAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgvXlxzKy9nLCAi
Iik7CiAgICAgICAgICAgICAgICAgdmFyIHRvb2x0aXAgPSBvcHRpb24udGl0bGUucmVwbGFjZShy
b290VVJMLCAiPHJvb3Q+LyIpOwogICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJ0ZXh0OiAiICsgdGV4dCArICIsIHRvb2x0aXA6ICIgKyB0b29sdGlwKTsKICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgIG5leHQoKTsKKyAgICAgICAgfSwKKworICAgICAgICBmdW5jdGlv
biB0ZXN0U291cmNlUmVwbGFjZWQobmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgdmFyIHBh
bmVsID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwoKTsKKyAgICAgICAgICAgIHZhciBt
b2RlbCA9IHBhbmVsLl9wcmVzZW50YXRpb25Nb2RlbDsKKyAgICAgICAgICAgIG1vZGVsLl9hZGRT
Y3JpcHQoY3JlYXRlTW9ja1NjcmlwdCgiZm9vLmpzIiwgIjEiKSk7CisgICAgICAgICAgICBtb2Rl
bC5fYWRkU2NyaXB0KGNyZWF0ZU1vY2tTY3JpcHQoImJhci5qcyIsICIyIikpOworICAgICAgICAg
ICAgdmFyIHNvdXJjZUZpbGUgPSBtb2RlbC5fc291cmNlRmlsZUZvclNjcmlwdCgiYmFyLmpzIik7
CisgICAgICAgICAgICBwYW5lbC5fc291cmNlRmlsZVJlcGxhY2VkKHsgZGF0YTogeyBvbGRTb3Vy
Y2U6IHNvdXJjZUZpbGUsIG5ld1NvdXJjZTogc291cmNlRmlsZSB9fSk7CisgICAgICAgICAgICBz
aG93U291cmNlRnJhbWUocGFuZWwsICJiYXIuanMiKTsKKyAgICAgICAgICAgIG5leHQoKTsKICAg
ICAgICAgfQogICAgIF0pOwogfTsKIAogPC9zY3JpcHQ+CiAKLTxzY3JpcHQ+Ci1mdW5jdGlvbiBz
ZWNvbmRJbmxpbmVkU2NyaXB0SW5QYWdlKCkKLXsKLSAgICByZXR1cm4gMDsKLX0KLTwvc2NyaXB0
PgotCi08c2NyaXB0PgotZnVuY3Rpb24gdGhpcmRJbmxpbmVkU2NyaXB0SW5QYWdlKCkKLXsKLSAg
ICByZXR1cm4gMDsKLX0KLTwvc2NyaXB0PgotCi08c2NyaXB0PgotZnVuY3Rpb24gZm91cnRoSW5s
aW5lZFNjcmlwdEluUGFnZSgpCi17Ci0gICAgcmV0dXJuIDA7Ci19Ci08L3NjcmlwdD4KLQogPC9o
ZWFkPgogCiA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNlLWZpbGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1maWxlLWV4cGVjdGVkLnR4dAppbmRleCBhNDIw
ZDBiNGFjYjVhZjNmNWQ0MDFkM2FlOTEzNjZhNWE3ZjMxNTk0Li41YmQ2M2QwZmU3NTI1YWI0ODkw
ODkzOWY0ODMxMjNlMjhjYTI1ZjRhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZGVidWdnZXIvc291cmNlLWZpbGUtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9zb3VyY2UtZmlsZS1leHBlY3RlZC50eHQKQEAgLTksMyArOSw1IEBAIFJ1
bm5pbmc6IHRlc3RGb3JtYXR0ZWRDb252ZXJ0TG9jYXRpb24KIAogUnVubmluZzogdGVzdENvbmNh
dGVuYXRlZEZvcm1hdHRlZENvbnZlcnRMb2NhdGlvbgogCitSdW5uaW5nOiB0ZXN0VUlTb3VyY2VD
b2RlQWRkZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Nv
dXJjZS1maWxlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNlLWZp
bGUuaHRtbAppbmRleCAyOGFkNjIxYmNhZjgwYWFiOGEwZTY1ZTkxNTRlMGY4OWZiNGVjNjc5Li43
ZjI3NmM0ZWI2MGNjMjA1YjI5OWI3NjQ4YmE0ODdhNjFhYzU0ZTRjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNlLWZpbGUuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNlLWZpbGUuaHRtbApAQCAtNTQsNyArNTQsOCBA
QCBmdW5jdGlvbiB0ZXN0KCkKICAgICAgICAgZnVuY3Rpb24gdGVzdFBsYWluQ29udmVydExvY2F0
aW9uKG5leHQpCiAgICAgICAgIHsKICAgICAgICAgICAgIHZhciBzY3JpcHQgPSBuZXcgV2ViSW5z
cGVjdG9yLlNjcmlwdCgiMSIsICJmb28uanMiLCAwLCAwLCAyMCwgODAsIHVuZGVmaW5lZCwgdW5k
ZWZpbmVkLCBmYWxzZSk7Ci0gICAgICAgICAgICB2YXIgc291cmNlRmlsZSA9IG5ldyBXZWJJbnNw
ZWN0b3IuUmF3U291cmNlQ29kZSgiaWQiLCBzY3JpcHQpOworICAgICAgICAgICAgdmFyIHNvdXJj
ZUZpbGUgPSBuZXcgV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUoImlkIik7CisgICAgICAgICAg
ICBzb3VyY2VGaWxlLmFkZFNjcmlwdChzY3JpcHQpOwogCiAgICAgICAgICAgICBjaGVja1VJTG9j
YXRpb24oc291cmNlRmlsZSwgMTAsIDIwLCBzb3VyY2VGaWxlLnJhd0xvY2F0aW9uVG9VSUxvY2F0
aW9uKHJsKDEwLCAyMCkpKTsKICAgICAgICAgICAgIGNoZWNrUmF3TG9jYXRpb24oc2NyaXB0LCAz
MCwgNDAsIHNvdXJjZUZpbGUudWlMb2NhdGlvblRvUmF3TG9jYXRpb24oMzAsIDQwKSk7CkBAIC02
Niw3ICs2Nyw4IEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICB7CiAgICAgICAgICAgICB2YXIg
c2NyaXB0MSA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0KCIxIiwgImZvby5qcyIsIDEwLCAyMCwg
MzAsIDQwLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZmFsc2UpOwogICAgICAgICAgICAgdmFyIHNj
cmlwdDIgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdCgiMiIsICJmb28uanMiLCA1MCwgNjAsIDcw
LCA4MCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGZhbHNlKTsKLSAgICAgICAgICAgIHZhciBzb3Vy
Y2VGaWxlID0gbmV3IFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlKCJpZCIsIHNjcmlwdDEpOwor
ICAgICAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSBuZXcgV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNv
ZGUoImlkIik7CisgICAgICAgICAgICBzb3VyY2VGaWxlLmFkZFNjcmlwdChzY3JpcHQxKTsKICAg
ICAgICAgICAgIHNvdXJjZUZpbGUuYWRkU2NyaXB0KHNjcmlwdDIpOwogCiAgICAgICAgICAgICBj
aGVja1VJTG9jYXRpb24oc291cmNlRmlsZSwgMjAsIDAsIHNvdXJjZUZpbGUucmF3TG9jYXRpb25U
b1VJTG9jYXRpb24ocmwoMjAsIDApKSk7CkBAIC04MSw4ICs4Myw5IEBAIGZ1bmN0aW9uIHRlc3Qo
KQogICAgICAgICBmdW5jdGlvbiB0ZXN0Rm9ybWF0dGVkQ29udmVydExvY2F0aW9uKG5leHQpCiAg
ICAgICAgIHsKICAgICAgICAgICAgIHZhciBzY3JpcHQgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlw
dCgiMSIsICJmb28uanMiLCAwLCAwLCAyMCwgODAsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBmYWxz
ZSk7Ci0gICAgICAgICAgICB2YXIgc291cmNlRmlsZSA9IG5ldyBXZWJJbnNwZWN0b3IuUmF3U291
cmNlQ29kZSgiaWQiLCBzY3JpcHQsIG1vY2tTY3JpcHRGb3JtYXR0ZXIpOworICAgICAgICAgICAg
dmFyIHNvdXJjZUZpbGUgPSBuZXcgV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUoImlkIiwgbW9j
a1NjcmlwdEZvcm1hdHRlcik7CiAgICAgICAgICAgICBzb3VyY2VGaWxlLnNldEZvcm1hdHRlZCh0
cnVlKTsKKyAgICAgICAgICAgIHNvdXJjZUZpbGUuYWRkU2NyaXB0KHNjcmlwdCk7CiAKICAgICAg
ICAgICAgIGZ1bmN0aW9uIGRpZENyZWF0ZVNvdXJjZU1hcHBpbmcoKQogICAgICAgICAgICAgewpA
QCAtOTcsOCArMTAwLDkgQEAgZnVuY3Rpb24gdGVzdCgpCiAgICAgICAgIHsKICAgICAgICAgICAg
IHZhciBzY3JpcHQxID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHQoIjEiLCAiZm9vLmpzIiwgMTAs
IDIwLCAzMCwgNDAsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCBmYWxzZSk7CiAgICAgICAgICAgICB2
YXIgc2NyaXB0MiA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0KCIyIiwgImZvby5qcyIsIDUwLCA2
MCwgNzAsIDgwLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZmFsc2UpOwotICAgICAgICAgICAgdmFy
IHNvdXJjZUZpbGUgPSBuZXcgV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUoImlkIiwgc2NyaXB0
MSwgbW9ja1NjcmlwdEZvcm1hdHRlcik7CisgICAgICAgICAgICB2YXIgc291cmNlRmlsZSA9IG5l
dyBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZSgiaWQiLCBtb2NrU2NyaXB0Rm9ybWF0dGVyKTsK
ICAgICAgICAgICAgIHNvdXJjZUZpbGUuc2V0Rm9ybWF0dGVkKHRydWUpOworICAgICAgICAgICAg
c291cmNlRmlsZS5hZGRTY3JpcHQoc2NyaXB0MSk7CiAgICAgICAgICAgICBzb3VyY2VGaWxlLmFk
ZFNjcmlwdChzY3JpcHQyKTsKIAogICAgICAgICAgICAgZnVuY3Rpb24gZGlkQ3JlYXRlU291cmNl
TWFwcGluZygpCkBAIC0xMDksNiArMTEzLDIwIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgICAgICAg
ICAgICAgIG5leHQoKTsKICAgICAgICAgICAgIH0KICAgICAgICAgICAgIHNvdXJjZUZpbGUuY3Jl
YXRlU291cmNlTWFwcGluZ0lmTmVlZGVkKGRpZENyZWF0ZVNvdXJjZU1hcHBpbmcpOworICAgICAg
ICB9LAorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RVSVNvdXJjZUNvZGVBZGRlZChuZXh0KQorICAg
ICAgICB7CisgICAgICAgICAgICB2YXIgc2NyaXB0ID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHQo
IjEiLCAiZm9vLmpzIiwgMCwgMCwgMjAsIDgwLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZmFsc2Up
OworICAgICAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSBuZXcgV2ViSW5zcGVjdG9yLlJhd1NvdXJj
ZUNvZGUoImlkIik7CisgICAgICAgICAgICBmdW5jdGlvbiB1aVNvdXJjZUNvZGVBZGRlZChldmVu
dCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVx
dWFscygiZm9vLmpzIiwgZXZlbnQuZGF0YS51cmwpOworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgc291cmNlRmlsZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2Rl
LkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgdWlTb3VyY2VDb2RlQWRkZWQsIHRoaXMpOworICAg
ICAgICAgICAgc291cmNlRmlsZS5hZGRTY3JpcHQoc2NyaXB0KTsKKworICAgICAgICAgICAgbmV4
dCgpOwogICAgICAgICB9CiAgICAgXSk7CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS1jb3VudC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc291cmNlLWZyYW1lLWNvdW50LWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jMjI3YmQ3YTliNmEyZmI3NDRlMjYyYjIzYzk2YWQ5YTJjYWJiODc3Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFt
ZS1jb3VudC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitUZXN0cyB0aGF0IHNjcmlwdHMg
cGFuZWwgZG9lcyBub3QgY3JlYXRlIHRvbyBtYW55IHNvdXJjZSBmcmFtZXMuCisKK0RlYnVnZ2Vy
IHdhcyBlbmFibGVkLgorCitSdW5uaW5nOiB0ZXN0U291cmNlRnJhbWVzQ291bnQKK1BhZ2UgcmVs
b2FkZWQuCitEZWJ1Z2dlciB3YXMgZGlzYWJsZWQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2UtZnJhbWUtY291bnQuaHRtbCBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9zb3VyY2UtZnJhbWUtY291bnQuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4w
ZjI1Yjc1ZmI0MmNhZmNlMGJjMWZjNzFmNzc1OGJlZTc5N2UzMDMwCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NvdXJjZS1mcmFtZS1jb3VudC5odG1s
CkBAIC0wLDAgKzEsNTEgQEAKKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0
cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyLXRlc3QuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9zY3JpcHQxLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPSJyZXNvdXJjZXMvc2NyaXB0Mi5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3NjcmlwdDMuanMiPjwvc2NyaXB0PgorCis8c2NyaXB0PgorCitmdW5jdGlvbiB0ZXN0KCkK
K3sKKyAgICBJbnNwZWN0b3JUZXN0LnJ1bkRlYnVnZ2VyVGVzdFN1aXRlKFsKKyAgICAgICAgZnVu
Y3Rpb24gdGVzdFNvdXJjZUZyYW1lc0NvdW50KG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAg
IHZhciBwYW5lbCA9IFdlYkluc3BlY3Rvci5wYW5lbHMuc2NyaXB0czsKKyAgICAgICAgICAgIHZh
ciBzZWxlY3QgPSBwYW5lbC5fZmlsZXNTZWxlY3RFbGVtZW50OworICAgICAgICAgICAgdmFyIHNv
dXJjZUZyYW1lQ291bnQgPSAwOworCisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNob3dTY3Jp
cHRTb3VyY2UoInNvdXJjZS1mcmFtZS1jb3VudC5odG1sIiwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7
CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGRpZFNob3dTY3JpcHRTb3VyY2UoKQorICAgICAgICAg
ICAgeworICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGRpZENyZWF0ZVNvdXJjZUZyYW1lKCkKKyAg
ICAgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZUZyYW1lQ291bnQgKz0g
MTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRT
bmlmZmVyKHBhbmVsLCAiX2NyZWF0ZVNvdXJjZUZyYW1lIiwgZGlkQ3JlYXRlU291cmNlRnJhbWUs
IHRydWUpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QucmVsb2FkUGFnZShkaWRSZWxv
YWQpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBkaWRSZWxvYWQoKQor
ICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYXNzZXJ0VHJ1ZShz
ZWxlY3Rbc2VsZWN0LnNlbGVjdGVkSW5kZXhdLnRleHQuaW5kZXhPZigic291cmNlLWZyYW1lLWNv
dW50Lmh0bWwiKSAhPT0gLTEpOworICAgICAgICAgICAgICAgIC8vIFRoZXJlIHNob3VsZCBiZSBt
YXhpbXVtIDIgc291cmNlIGZyYW1lczogZmlyc3Qgb25lIGlzIHRoZSBmaXJzdCBzaG93biwgc2Vj
b25kIG9uZSBpcyB0aGUgbGFzdCB2aWV3ZWQgKCJzY3JpcHRzLXBhbmVsLmh0bWwiKS4KKyAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyh0cnVlLCBzb3VyY2VGcmFtZUNv
dW50IDw9IDIsICJ0b28gbWFueSBzb3VyY2UgZnJhbWVzIGNyZWF0ZWQgYWZ0ZXIgcGFnZSByZWxv
YWQiKTsKKyAgICAgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0K
KyAgICBdKTsKK307CisKKzwvc2NyaXB0PgorCis8L2hlYWQ+CisKKzxib2R5IG9ubG9hZD0icnVu
VGVzdCgpIj4KKzxwPlRlc3RzIHRoYXQgc2NyaXB0cyBwYW5lbCBkb2VzIG5vdCBjcmVhdGUgdG9v
IG1hbnkgc291cmNlIGZyYW1lcy48L3A+CisKKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dCBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAppbmRleCBj
YjE3YjQzNjE4OTEyNDZkZmVkNzhmNmUyOTVmYzZiNWNlNjcwZjhkLi4zODY3NmZjNmE5NDQyNDUy
ZjIzZTY3ZjY0MjQ1NDdiZGEyYjBjMDUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC0zNDQ5LDcgKzM0NDksNiBAQCBC
VUdDUjgzODY1IDogZmFzdC9mb3Jtcy9jb2xvciA9IEZBSUwgUEFTUwogLy8gTmV3IHRlc3QgYWRk
ZWQgaW4gcjg3MzI0CiBCVUdDUjgzOTk0IFdJTiA6IHBsYXRmb3JtL3dpbi9wbHVnaW5zL2NhbGwt
amF2YXNjcmlwdC10aGF0LWRlc3Ryb3lzLXBsdWdpbi5odG1sID0gQ1JBU0gKIAotQlVHV0s2MTUx
OSBXSU4gTElOVVggOiBpbnNwZWN0b3IvZGVidWdnZXIvc2NyaXB0cy1wYW5lbC5odG1sID0gVEVY
VCBUSU1FT1VUIFBBU1MKIEJVR0NSODQwMzEgOiBzdG9yYWdlL2RvbXN0b3JhZ2Uvc2Vzc2lvbnN0
b3JhZ2UvZGVsZXRlLXJlbW92YWwuaHRtbCA9IFRJTUVPVVQgUEFTUwogQlVHQ1I4NDAzMiBXSU4g
Q1BVIDogZmFzdC9kb20vb2JqZWN0LXBsdWdpbi1oaWRlcy1wcm9wZXJ0aWVzLmh0bWwgPSBUSU1F
T1VUIFBBU1MKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGM2YzBhMTlkOWZkYzk5M2M1NWYwMDk5NmVmZDM2ODcx
NzhjOTI0ZGIuLjdlY2U3Y2E0MDcyMGNjY2FhOTc3OTVhOTI0MDJjMWYzOTI4Y2I1ZjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxMS0wOC0wNCAgUGF2ZWwgUG9kaXZpbG92ICA8cG9k
aXZpbG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiB1c2Ugc291cmNl
LWZpbGUtcmVwbGFjZWQgaW5zdGVhZCBvZiBzb3VyY2UtZmlsZS1jaGFuZ2VkIGV2ZW50LgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU1NTEKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBpbnNwZWN0
b3IvZGVidWdnZXIvc291cmNlLWZyYW1lLWNvdW50Lmh0bWwKKworICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fYWRkU2NyaXB0KToK
KyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlw
ZS5fdWlTb3VyY2VDb2RlQWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl91aVNvdXJjZUNvZGVSZXBsYWNlZCk6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX3Jlc3Rv
cmVCcmVha3BvaW50cyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFu
ZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fZm9s
ZGVyQW5kRGlzcGxheU5hbWVGb3JTY3JpcHRVUkwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNj
cmlwdHNQYW5lbC5wcm90b3R5cGUuX3NvdXJjZUZyYW1lRm9yU291cmNlRmlsZUlkKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlLl9jcmVhdGVTb3VyY2VGcmFt
ZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZS5fc291cmNl
RmlsZVJlcGxhY2VkKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZpbGUu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90b3R5cGUuYWRkU2NyaXB0KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZS5yZWxvYWQpOgorCiAyMDExLTA4LTAz
ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RL
XSBmdWxsc2NyZWVuL3ZpZGVvLWNvbnRyb2xzLW92ZXJyaWRlLmh0bWwgZmFpbHMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRp
b25Nb2RlbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5qcwppbmRleCBhOGI1NjU0NGZlYWRhMGJkMzNhMGIyM2MzNDlmZDI0
NTBmMzFkNWZlLi43MjBkNGNiNWQxMzE4MjE0MDgzMzRhMmUzMWE1MDU0ZmUzNzVhY2Y4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9E
ZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCkBAIC01Nyw3ICs1Nyw3IEBAIFdlYkluc3BlY3Rv
ci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsID0gZnVuY3Rpb24oKQogCiBXZWJJbnNwZWN0b3Iu
RGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMgPSB7CiAgICAgU291cmNlRmlsZUFkZGVk
OiAic291cmNlLWZpbGUtYWRkZWQiLAotICAgIFNvdXJjZUZpbGVDaGFuZ2VkOiAic291cmNlLWZp
bGUtY2hhbmdlZCIsCisgICAgU291cmNlRmlsZVJlcGxhY2VkOiAic291cmNlLWZpbGUtcmVwbGFj
ZWQiLAogICAgIENvbnNvbGVNZXNzYWdlQWRkZWQ6ICJjb25zb2xlLW1lc3NhZ2UtYWRkZWQiLAog
ICAgIENvbnNvbGVNZXNzYWdlc0NsZWFyZWQ6ICJjb25zb2xlLW1lc3NhZ2VzLWNsZWFyZWQiLAog
ICAgIEJyZWFrcG9pbnRBZGRlZDogImJyZWFrcG9pbnQtYWRkZWQiLApAQCAtMTU0LDIyICsxNTQs
MzYgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgZnVuY3Rpb24gY29u
dGVudENoYW5nZWQoc291cmNlRmlsZSkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKHRoaXMu
X3NvdXJjZUZpbGVzW3NvdXJjZUZpbGVJZF0gPT09IHNvdXJjZUZpbGUpCi0gICAgICAgICAgICAg
ICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwuRXZlbnRzLlNvdXJjZUZpbGVDaGFuZ2VkLCB0aGlzLl9zb3VyY2VGaWxl
c1tzb3VyY2VGaWxlSWRdKTsKLSAgICAgICAgfQotICAgICAgICBzb3VyY2VGaWxlID0gbmV3IFdl
Ykluc3BlY3Rvci5SYXdTb3VyY2VDb2RlKHNvdXJjZUZpbGVJZCwgc2NyaXB0LCB0aGlzLl9mb3Jt
YXR0ZXIsIGNvbnRlbnRDaGFuZ2VkLmJpbmQodGhpcykpOworICAgICAgICBzb3VyY2VGaWxlID0g
bmV3IFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlKHNvdXJjZUZpbGVJZCwgdGhpcy5fZm9ybWF0
dGVyKTsKICAgICAgICAgc291cmNlRmlsZS5zZXRGb3JtYXR0ZWQodGhpcy5fZm9ybWF0U291cmNl
RmlsZXMpOwogICAgICAgICB0aGlzLl9zb3VyY2VGaWxlc1tzb3VyY2VGaWxlSWRdID0gc291cmNl
RmlsZTsKKyAgICAgICAgc291cmNlRmlsZS5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5S
YXdTb3VyY2VDb2RlLkV2ZW50cy5VSVNvdXJjZUNvZGVBZGRlZCwgdGhpcy5fdWlTb3VyY2VDb2Rl
QWRkZWQsIHRoaXMpOworICAgICAgICBzb3VyY2VGaWxlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLlJhd1NvdXJjZUNvZGUuRXZlbnRzLlVJU291cmNlQ29kZVJlcGxhY2VkLCB0aGlzLl91
aVNvdXJjZUNvZGVSZXBsYWNlZCwgdGhpcyk7CisgICAgICAgIHNvdXJjZUZpbGUuYWRkU2NyaXB0
KHNjcmlwdCk7CisgICAgfSwKKworICAgIF91aVNvdXJjZUNvZGVBZGRlZDogZnVuY3Rpb24oZXZl
bnQpCisgICAgeworICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gZXZlbnQuZGF0YTsKKyAgICAg
ICAgdGhpcy5fcmVzdG9yZUJyZWFrcG9pbnRzKHVpU291cmNlQ29kZSk7CisgICAgICAgIHRoaXMu
ZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLkV2ZW50cy5Tb3VyY2VGaWxlQWRkZWQsIHVpU291cmNlQ29kZSk7CisgICAgfSwKKwor
ICAgIF91aVNvdXJjZUNvZGVSZXBsYWNlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAgICAg
ICB2YXIgb2xkVUlTb3VyY2VDb2RlID0gZXZlbnQuZGF0YS5vbGRTb3VyY2U7CisgICAgICAgIHZh
ciBuZXdVSVNvdXJjZUNvZGUgPSBldmVudC5kYXRhLm5ld1NvdXJjZTsKIAotICAgICAgICB0aGlz
Ll9yZXN0b3JlQnJlYWtwb2ludHMoc291cmNlRmlsZSk7CisgICAgICAgIGRlbGV0ZSB0aGlzLl9z
b3VyY2VGaWxlc1tvbGRVSVNvdXJjZUNvZGUuaWRdOworICAgICAgICB0aGlzLl9zb3VyY2VGaWxl
c1tuZXdVSVNvdXJjZUNvZGUuaWRdID0gbmV3VUlTb3VyY2VDb2RlOwogCi0gICAgICAgIHRoaXMu
ZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLkV2ZW50cy5Tb3VyY2VGaWxlQWRkZWQsIHNvdXJjZUZpbGUpOworICAgICAgICAvLyBG
SVhNRTogcmVzdG9yZSBicmVha3BvaW50cyBpbiBuZXcgc291cmNlIGNvZGUgKGN1cnJlbnRseSB3
ZSBqdXN0IHJlY3JlYXRlIGV2ZXJ5dGhpbmcgd2hlbiBzd2l0Y2hpbmcgdG8gcHJldHR5LXByaW50
IG1vZGUpLgorICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0
b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMuU291cmNlRmlsZVJlcGxhY2VkLCBl
dmVudC5kYXRhKTsKICAgICB9LAogCiAgICAgX3Jlc3RvcmVCcmVha3BvaW50czogZnVuY3Rpb24o
c291cmNlRmlsZSkKICAgICB7CisgICAgICAgIC8vIEZJWE1FOiBtb3ZlIHRoaXMgY29kZSB0byBV
SVNvdXJjZUNvZGUgY2xhc3MuCiAgICAgICAgIHZhciBwZW5kaW5nQnJlYWtwb2ludHMgPSB0aGlz
Ll9icmVha3BvaW50c1dpdGhvdXRTb3VyY2VGaWxlW3NvdXJjZUZpbGUuaWRdOwogICAgICAgICBp
ZiAoIXBlbmRpbmdCcmVha3BvaW50cykKICAgICAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKaW5kZXggYTU2
MzI2ZDMzODVkNTUyYzA5YWI2MjI3NDZkNjEyZTkxMzc3Y2JjNS4uZDAxYjFhYTk4YTdmYWVjYTk5
OGRmNmYwNTdjZTA3MzMxN2JmZDMxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTE1Nyw3ICsxNTcsNyBAQCBXZWJJbnNw
ZWN0b3IuU2NyaXB0c1BhbmVsID0gZnVuY3Rpb24oKQogICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dl
ck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRz
LkRlYnVnZ2VyV2FzRGlzYWJsZWQsIHRoaXMuX2RlYnVnZ2VyV2FzRGlzYWJsZWQsIHRoaXMpOwog
CiAgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0
b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMuU291cmNlRmlsZUFkZGVkLCB0aGlz
Ll9zb3VyY2VGaWxlQWRkZWQsIHRoaXMpCi0gICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVu
dHMuU291cmNlRmlsZUNoYW5nZWQsIHRoaXMuX3NvdXJjZUZpbGVDaGFuZ2VkLCB0aGlzKTsKKyAg
ICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5Tb3VyY2VGaWxlUmVwbGFjZWQsIHRoaXMu
X3NvdXJjZUZpbGVSZXBsYWNlZCwgdGhpcyk7CiAgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwu
YWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5F
dmVudHMuQ29uc29sZU1lc3NhZ2VBZGRlZCwgdGhpcy5fY29uc29sZU1lc3NhZ2VBZGRlZCwgdGhp
cyk7CiAgICAgdGhpcy5fcHJlc2VudGF0aW9uTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMuQ29uc29sZU1lc3NhZ2VzQ2xl
YXJlZCwgdGhpcy5fY29uc29sZU1lc3NhZ2VzQ2xlYXJlZCwgdGhpcyk7CiAgICAgdGhpcy5fcHJl
c2VudGF0aW9uTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVz
ZW50YXRpb25Nb2RlbC5FdmVudHMuQnJlYWtwb2ludEFkZGVkLCB0aGlzLl9icmVha3BvaW50QWRk
ZWQsIHRoaXMpOwpAQCAtMzI0LDcgKzMyNCw3IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwu
cHJvdG90eXBlID0gewogCiAgICAgICAgIGlmIChmb2xkZXJOYW1lLmxlbmd0aCA+IDgwKQogICAg
ICAgICAgICAgZm9sZGVyTmFtZSA9ICJcdTIwMjYiICsgZm9sZGVyTmFtZS5zdWJzdHJpbmcoZm9s
ZGVyTmFtZS5sZW5ndGggLSA4MCk7Ci0gCisKICAgICAgICAgcmV0dXJuIHsgZm9sZGVyTmFtZTog
Zm9sZGVyTmFtZSwgZGlzcGxheU5hbWU6IGRpc3BsYXlOYW1lfTsKICAgICB9LAogCkBAIC02MjMs
NyArNjIzLDExIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAg
IF9zb3VyY2VGcmFtZUZvclNvdXJjZUZpbGVJZDogZnVuY3Rpb24oc291cmNlRmlsZUlkKQogICAg
IHsKICAgICAgICAgdmFyIHNvdXJjZUZyYW1lID0gdGhpcy5fc291cmNlRmlsZUlkVG9Tb3VyY2VG
cmFtZVtzb3VyY2VGaWxlSWRdOwotICAgICAgICByZXR1cm4gc291cmNlRnJhbWUgfHwgdGhpcy5f
Y3JlYXRlU291cmNlRnJhbWUoc291cmNlRmlsZUlkKTsKKyAgICAgICAgaWYgKCFzb3VyY2VGcmFt
ZSkgeworICAgICAgICAgICAgc291cmNlRnJhbWUgPSB0aGlzLl9jcmVhdGVTb3VyY2VGcmFtZShz
b3VyY2VGaWxlSWQpOworICAgICAgICAgICAgdGhpcy5fc291cmNlRmlsZUlkVG9Tb3VyY2VGcmFt
ZVtzb3VyY2VGaWxlSWRdID0gc291cmNlRnJhbWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJu
IHNvdXJjZUZyYW1lOwogICAgIH0sCiAKICAgICBfY3JlYXRlU291cmNlRnJhbWU6IGZ1bmN0aW9u
KHNvdXJjZUZpbGVJZCkKQEAgLTYzMywyMyArNjM3LDMxIEBAIFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB2YXIgc291cmNlRnJhbWUgPSBuZXcgV2ViSW5z
cGVjdG9yLlNvdXJjZUZyYW1lKGRlbGVnYXRlLCBzb3VyY2VGaWxlLnVybCk7CiAgICAgICAgIHNv
dXJjZUZyYW1lLl9zb3VyY2VGaWxlSWQgPSBzb3VyY2VGaWxlSWQ7CiAgICAgICAgIHNvdXJjZUZy
YW1lLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLkV2ZW50cy5Mb2Fk
ZWQsIHRoaXMuX3NvdXJjZUZyYW1lTG9hZGVkLCB0aGlzKTsKLSAgICAgICAgdGhpcy5fc291cmNl
RmlsZUlkVG9Tb3VyY2VGcmFtZVtzb3VyY2VGaWxlSWRdID0gc291cmNlRnJhbWU7CiAgICAgICAg
IHJldHVybiBzb3VyY2VGcmFtZTsKICAgICB9LAogCi0gICAgX3NvdXJjZUZpbGVDaGFuZ2VkOiBm
dW5jdGlvbihldmVudCkKKyAgICBfc291cmNlRmlsZVJlcGxhY2VkOiBmdW5jdGlvbihldmVudCkK
ICAgICB7Ci0gICAgICAgIHZhciBzb3VyY2VGaWxlSWQgPSBldmVudC5kYXRhLmlkOworICAgICAg
ICB2YXIgb2xkU291cmNlRmlsZSA9IGV2ZW50LmRhdGEub2xkU291cmNlOworICAgICAgICB2YXIg
bmV3U291cmNlRmlsZSA9IGV2ZW50LmRhdGEubmV3U291cmNlOworCisgICAgICAgIC8vIFJlLWJp
bmQgZmlsZSBzZWxlY3Qgb3B0aW9uIGZyb20gb2xkIHNvdXJjZSBmaWxlIHRvIG5ldyBvbmUuCisg
ICAgICAgIHZhciBvcHRpb24gPSB0aGlzLl9zb3VyY2VGaWxlSWRUb0ZpbGVzU2VsZWN0T3B0aW9u
W29sZFNvdXJjZUZpbGUuaWRdOworICAgICAgICBkZWxldGUgdGhpcy5fc291cmNlRmlsZUlkVG9G
aWxlc1NlbGVjdE9wdGlvbltvbGRTb3VyY2VGaWxlLmlkXTsKKyAgICAgICAgb3B0aW9uLnNvdXJj
ZUZpbGVJZCA9IG5ld1NvdXJjZUZpbGUuaWQ7CisgICAgICAgIHRoaXMuX3NvdXJjZUZpbGVJZFRv
RmlsZXNTZWxlY3RPcHRpb25bbmV3U291cmNlRmlsZS5pZF0gPSBvcHRpb247CiAKLSAgICAgICAg
dmFyIG9sZFNvdXJjZUZyYW1lID0gdGhpcy5fc291cmNlRmlsZUlkVG9Tb3VyY2VGcmFtZVtzb3Vy
Y2VGaWxlSWRdOworICAgICAgICAvLyBSZW1vdmUgb2xkIHNvdXJjZSBmcmFtZSBhbmQgY3JlYXRl
IG5ldyBvbmUgaWYgbmVlZGVkLgorICAgICAgICB2YXIgb2xkU291cmNlRnJhbWUgPSB0aGlzLl9z
b3VyY2VGaWxlSWRUb1NvdXJjZUZyYW1lW29sZFNvdXJjZUZpbGUuaWRdOwogICAgICAgICBpZiAo
IW9sZFNvdXJjZUZyYW1lKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBvbGRTb3VyY2VG
cmFtZS5yZW1vdmVFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5FdmVudHMu
TG9hZGVkLCB0aGlzLl9zb3VyY2VGcmFtZUxvYWRlZCwgdGhpcyk7Ci0gICAgICAgIGRlbGV0ZSB0
aGlzLl9zb3VyY2VGaWxlSWRUb1NvdXJjZUZyYW1lW3NvdXJjZUZpbGVJZF07CisgICAgICAgIGRl
bGV0ZSB0aGlzLl9zb3VyY2VGaWxlSWRUb1NvdXJjZUZyYW1lW29sZFNvdXJjZUZpbGUuaWRdOwog
ICAgICAgICBpZiAodGhpcy52aXNpYmxlVmlldyAhPT0gb2xkU291cmNlRnJhbWUpCiAgICAgICAg
ICAgICByZXR1cm47CiAKLSAgICAgICAgdmFyIG5ld1NvdXJjZUZyYW1lID0gdGhpcy5fY3JlYXRl
U291cmNlRnJhbWUoc291cmNlRmlsZUlkKQorICAgICAgICB2YXIgbmV3U291cmNlRnJhbWUgPSB0
aGlzLl9jcmVhdGVTb3VyY2VGcmFtZShuZXdTb3VyY2VGaWxlLmlkKTsKKyAgICAgICAgdGhpcy5f
c291cmNlRmlsZUlkVG9Tb3VyY2VGcmFtZVtuZXdTb3VyY2VGaWxlLmlkXSA9IG5ld1NvdXJjZUZy
YW1lOwogICAgICAgICBuZXdTb3VyY2VGcmFtZS5pbmhlcml0U2Nyb2xsUG9zaXRpb25zRnJvbVZp
ZXcob2xkU291cmNlRnJhbWUpOwogICAgICAgICB0aGlzLnZpc2libGVWaWV3ID0gbmV3U291cmNl
RnJhbWU7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU291cmNlRmlsZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U291cmNlRmlsZS5qcwppbmRleCAwZmYzOWY1ZDY5NjI0M2QyNzJhMDk0ODI1ZTI1NjU1NzU1NzZj
NDM4Li5lYzEzMTg1MjUwYzZjMTQ0YTg0NzU4ZTM3MWQ5YzdkZTY1NjM3MjBkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZpbGUuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGaWxlLmpzCkBAIC0zMCwz
MCArMzAsNDMgQEAKIAogLy8gUmF3U291cmNlQ29kZSByZXByZXNlbnRzIEphdmFTY3JpcHQgcmVz
b3VyY2Ugb3IgSFRNTCByZXNvdXJjZSB3aXRoIGlubGluZWQgc2NyaXB0cwogLy8gYXMgaXQgY2Ft
ZSBmcm9tIG5ldHdvcmsuCi1XZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZSA9IGZ1bmN0aW9uKGlk
LCBzY3JpcHQsIGZvcm1hdHRlciwgY29udGVudENoYW5nZWREZWxlZ2F0ZSkKK1dlYkluc3BlY3Rv
ci5SYXdTb3VyY2VDb2RlID0gZnVuY3Rpb24oaWQsIGZvcm1hdHRlcikKIHsKLSAgICB0aGlzLl9z
Y3JpcHRzID0gW3NjcmlwdF07CisgICAgdGhpcy5pZCA9IGlkOwogICAgIHRoaXMuX2Zvcm1hdHRl
ciA9IGZvcm1hdHRlcjsKICAgICB0aGlzLl9mb3JtYXR0ZWQgPSBmYWxzZTsKLSAgICB0aGlzLl9j
b250ZW50Q2hhbmdlZERlbGVnYXRlID0gY29udGVudENoYW5nZWREZWxlZ2F0ZTsKLSAgICBpZiAo
c2NyaXB0LnNvdXJjZVVSTCkKLSAgICAgICAgdGhpcy5fcmVzb3VyY2UgPSBXZWJJbnNwZWN0b3Iu
bmV0d29ya01hbmFnZXIuaW5mbGlnaHRSZXNvdXJjZUZvclVSTChzY3JpcHQuc291cmNlVVJMKSB8
fCBXZWJJbnNwZWN0b3IucmVzb3VyY2VGb3JVUkwoc2NyaXB0LnNvdXJjZVVSTCk7CisKKyAgICB0
aGlzLl9zY3JpcHRzID0gW107CiAgICAgdGhpcy5fcmVxdWVzdENvbnRlbnRDYWxsYmFja3MgPSBb
XTsKIAotICAgIHRoaXMuaWQgPSBpZDsKLSAgICB0aGlzLnVybCA9IHNjcmlwdC5zb3VyY2VVUkw7
Ci0gICAgdGhpcy5pc0NvbnRlbnRTY3JpcHQgPSBzY3JpcHQuaXNDb250ZW50U2NyaXB0OwogICAg
IHRoaXMubWVzc2FnZXMgPSBbXTsKICAgICB0aGlzLmJyZWFrcG9pbnRzID0ge307Cit9CiAKLSAg
ICBpZiAodGhpcy5faGFzUGVuZGluZ1Jlc291cmNlKCkpCi0gICAgICAgIHRoaXMuX3Jlc291cmNl
LmFkZEV2ZW50TGlzdGVuZXIoImZpbmlzaGVkIiwgdGhpcy5yZWxvYWQuYmluZCh0aGlzKSk7CitX
ZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5FdmVudHMgPSB7CisgICAgVUlTb3VyY2VDb2RlQWRk
ZWQ6ICJ1aS1zb3VyY2UtY29kZS1hZGRlZCIsCisgICAgVUlTb3VyY2VDb2RlUmVwbGFjZWQ6ICJ1
aS1zb3VyY2UtY29kZS1yZXBsYWNlZCIKIH0KIAogV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUu
cHJvdG90eXBlID0gewogICAgIGFkZFNjcmlwdDogZnVuY3Rpb24oc2NyaXB0KQogICAgIHsKICAg
ICAgICAgdGhpcy5fc2NyaXB0cy5wdXNoKHNjcmlwdCk7CisKKyAgICAgICAgaWYgKHRoaXMuX3Nj
cmlwdHMubGVuZ3RoID4gMSkKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB0aGlzLnVy
bCA9IHNjcmlwdC5zb3VyY2VVUkw7CisgICAgICAgIHRoaXMuaXNDb250ZW50U2NyaXB0ID0gc2Ny
aXB0LmlzQ29udGVudFNjcmlwdDsKKworICAgICAgICBpZiAoc2NyaXB0LnNvdXJjZVVSTCkKKyAg
ICAgICAgICAgIHRoaXMuX3Jlc291cmNlID0gV2ViSW5zcGVjdG9yLm5ldHdvcmtNYW5hZ2VyLmlu
ZmxpZ2h0UmVzb3VyY2VGb3JVUkwoc2NyaXB0LnNvdXJjZVVSTCkgfHwgV2ViSW5zcGVjdG9yLnJl
c291cmNlRm9yVVJMKHNjcmlwdC5zb3VyY2VVUkwpOworCisgICAgICAgIGlmICh0aGlzLl9oYXNQ
ZW5kaW5nUmVzb3VyY2UoKSkKKyAgICAgICAgICAgIHRoaXMuX3Jlc291cmNlLmFkZEV2ZW50TGlz
dGVuZXIoImZpbmlzaGVkIiwgdGhpcy5yZWxvYWQuYmluZCh0aGlzKSk7CisKKyAgICAgICAgLy8g
RklYTUU6IGV4dHJhY3QgVUlTb3VyY2VDb2RlIGZyb20gUmF3U291cmNlQ29kZSAoY3VycmVudGx5
IFJhd1NvdXJjZUNvZGUgaW1wbGVtZW50cyBtZXRob2RzIGZyb20gYm90aCBpbnRlcmZhY2VzKS4K
KyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlJhd1Nv
dXJjZUNvZGUuRXZlbnRzLlVJU291cmNlQ29kZUFkZGVkLCB0aGlzKTsKICAgICB9LAogCiAgICAg
cmF3TG9jYXRpb25Ub1VJTG9jYXRpb246IGZ1bmN0aW9uKHJhd0xvY2F0aW9uKQpAQCAtMTUzLDcg
KzE2Niw4IEBAIFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZSA9IHsKICAgICB7
CiAgICAgICAgIGlmICh0aGlzLl9jb250ZW50TG9hZGVkKSB7CiAgICAgICAgICAgICB0aGlzLl9j
b250ZW50TG9hZGVkID0gZmFsc2U7Ci0gICAgICAgICAgICB0aGlzLl9jb250ZW50Q2hhbmdlZERl
bGVnYXRlKHRoaXMpOworICAgICAgICAgICAgLy8gRklYTUU6IGNyZWF0ZSBhbm90aGVyIFVJU291
cmNlQ29kZSBpbnN0YW5jZSBoZXJlLCBVSVNvdXJjZUNvZGUgc2hvdWxkIGJlIGltbXV0YWJsZS4K
KyAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5S
YXdTb3VyY2VDb2RlLkV2ZW50cy5VSVNvdXJjZUNvZGVSZXBsYWNlZCwgeyBvbGRTb3VyY2U6IHRo
aXMsIG5ld1NvdXJjZTogdGhpcyB9KTsKICAgICAgICAgfSBlbHNlIGlmICh0aGlzLl9jb250ZW50
UmVxdWVzdGVkKQogICAgICAgICAgICAgdGhpcy5fcmVsb2FkQ29udGVudCA9IHRydWU7CiAgICAg
ICAgIGVsc2UgaWYgKHRoaXMuX3JlcXVlc3RDb250ZW50Q2FsbGJhY2tzLmxlbmd0aCkKQEAgLTI5
MSwzICszMDUsNSBAQCBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZSAmJiAhdGhpcy5fcmVzb3VyY2UuZmluaXNoZWQ7
CiAgICAgfQogfQorCitXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90b3R5cGUuX19wcm90
b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7Cg==
</data>
<flag name="review"
          id="98336"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>