<?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>81031</bug_id>
          
          <creation_ts>2012-03-13 13:37:04 -0700</creation_ts>
          <short_desc>Web Inspector: MainScriptMapping should detect snippet scripts by means of sourceURL set before evaluation.</short_desc>
          <delta_ts>2012-03-15 11:27:02 -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>
          
          <blocked>75094</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Vsevolod Vlasov">vsevik</reporter>
          <assigned_to name="Vsevolod Vlasov">vsevik</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>podivilov</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>577757</commentid>
    <comment_count>0</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-03-13 13:37:04 -0700</bug_when>
    <thetext>MainScriptMapping should detect snippet scripts by means of sourceURL set before evaluation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578675</commentid>
    <comment_count>1</comment_count>
      <attachid>131901</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-03-14 12:58:41 -0700</bug_when>
    <thetext>Created attachment 131901
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578677</commentid>
    <comment_count>2</comment_count>
      <attachid>131902</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-03-14 13:01:17 -0700</bug_when>
    <thetext>Created attachment 131902
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>578889</commentid>
    <comment_count>3</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-03-14 16:06:40 -0700</bug_when>
    <thetext>podivilov@, could you please take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579225</commentid>
    <comment_count>4</comment_count>
      <attachid>131902</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2012-03-15 02:27:06 -0700</bug_when>
    <thetext>Comment on attachment 131902
Patch

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

&gt; Source/WebCore/inspector/front-end/SnippetsModel.js:140
&gt; +        var sourceURL = this.sourceURLForSnippet(snippet, evaluationIndex);

Please inline sourceURLForSnippet here and set snippet.sourceURL = sourceURL.

&gt; Source/WebCore/inspector/front-end/SnippetsModel.js:153
&gt; +        for (var i = 0; i &lt; this._snippets.length; ++i) {

Why not making this._snippets a map?

&gt; Source/WebCore/inspector/front-end/SnippetsModel.js:192
&gt; +        var snippetId = this.snippetIdForSourceURL(sourceURL);

Please inline snippetIdForSourceURL here.

&gt; Source/WebCore/inspector/front-end/SnippetsModel.js:240
&gt; +    get lastEvaluationSourceURL()

Please remove this public getter, all you need is a private field that is used solely by SnippetModel.

&gt; Source/WebCore/inspector/front-end/SnippetsModel.js:414
&gt; +        uiSourceCode.snippet = snippet;

This looks wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579430</commentid>
    <comment_count>5</comment_count>
      <attachid>132060</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-03-15 09:15:10 -0700</bug_when>
    <thetext>Created attachment 132060
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579467</commentid>
    <comment_count>6</comment_count>
      <attachid>132060</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2012-03-15 10:12:20 -0700</bug_when>
    <thetext>Comment on attachment 132060
Patch

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

looks good!

&gt; Source/WebCore/inspector/front-end/SnippetsModel.js:153
&gt;      snippetIdForSourceURL: function(sourceURL)

Please make it private.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579473</commentid>
    <comment_count>7</comment_count>
      <attachid>132068</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-03-15 10:17:21 -0700</bug_when>
    <thetext>Created attachment 132068
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579505</commentid>
    <comment_count>8</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-03-15 10:46:00 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebCore/inspector/front-end/SnippetsModel.js:153
&gt; &gt;      snippetIdForSourceURL: function(sourceURL)
&gt; 
&gt; Please make it private.

It is used in MainScriptMapping to detect snippet scripts.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>579564</commentid>
    <comment_count>9</comment_count>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-03-15 11:27:02 -0700</bug_when>
    <thetext>Committed r110864: &lt;http://trac.webkit.org/changeset/110864&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131901</attachid>
            <date>2012-03-14 12:58:41 -0700</date>
            <delta_ts>2012-03-14 13:00:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81031-20120314235839.patch</filename>
            <type>text/plain</type>
            <size>20086</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYwNmFiMDIyMzRkNGY2
OTA4OGRhN2YyZTk5MDFiMjBiMjkzNWZkMS4uMjUyNWY5ZTRhN2VlZjJjZDYxYzUxMWUxZTdjZDMz
OTMyOTRlNWFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMwIEBACiAyMDEyLTAzLTE0ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IE1haW5TY3JpcHRNYXBwaW5nIHNob3VsZCBkZXRlY3Qgc25pcHBldCBzY3JpcHRzIGJ5IG1l
YW5zIG9mIHNvdXJjZVVSTCBzZXQgYmVmb3JlIGV2YWx1YXRpb24uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTAzMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tbmlw
cGV0c01vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlLmRlbGV0ZVNuaXBwZXQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlLnNuaXBwZXRG
b3JJZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5wcm90b3R5cGUuc291
cmNlVVJMRm9yU25pcHBldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5w
cm90b3R5cGUuc25pcHBldElkRm9yU291cmNlVVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
bmlwcGV0c01vZGVsLnByb3RvdHlwZS5zbmlwcGV0Rm9yU291cmNlVVJMKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TbmlwcGV0LnByb3RvdHlwZS5nZXQgbGFzdEV2YWx1YXRpb25Tb3VyY2VVUkwp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXQucHJvdG90eXBlLmV2YWx1YXRlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TbmlwcGV0c1NjcmlwdE1hcHBpbmcpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNuaXBwZXRzU2NyaXB0TWFwcGluZy5wcm90b3R5cGUudWlMb2NhdGlvblRvUmF3
TG9jYXRpb24uZ2V0IGlmKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TbmlwcGV0c1NjcmlwdE1h
cHBpbmcucHJvdG90eXBlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TbmlwcGV0c1NjcmlwdE1hcHBpbmcucHJvdG90eXBlLl9yZWxlYXNlZFVJU291cmNl
Q29kZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzU2NyaXB0TWFwcGluZy5wcm90
b3R5cGUuX3NuaXBwZXRBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU25pcHBldHNTY3Jp
cHRNYXBwaW5nLnByb3RvdHlwZS5fc25pcHBldFdpbGxCZUV2YWx1YXRlZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU25pcHBldHNTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fc25pcHBldFJlbW92
ZWQuZ2V0IHRoaXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzU2NyaXB0TWFwcGlu
Zy5wcm90b3R5cGUuX3NuaXBwZXRSZW1vdmVkKToKKworMjAxMi0wMy0xNCAgVnNldm9sb2QgVmxh
c292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQg
c25pcHBldHMgdGFiIHRvIHNjcmlwdHMgbmF2aWdhdG9yLgogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEwMTgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TbmlwcGV0c01vZGVsLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TbmlwcGV0c01vZGVsLmpzCmluZGV4IDc4ZjRhYjM4M2Q2
NTkxYzliYTA1M2ZmZmY3MDFmMzFhNDg1MGU4ZTAuLjEyYWZhYmIyNzc5NGZmMjVmMWMyNjJhYzRm
NzdlZTRmNjUzODMxODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU25pcHBldHNNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NuaXBwZXRzTW9kZWwuanMKQEAgLTM2LDEyICszNiwxNiBAQCBXZWJJbnNwZWN0b3Iu
U25pcHBldHNNb2RlbCA9IGZ1bmN0aW9uKCkKIAogICAgIHRoaXMuX2xhc3RTbmlwcGV0SWRlbnRp
ZmllclNldHRpbmcgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuY3JlYXRlU2V0dGluZygibGFzdFNu
aXBwZXRJZGVudGlmaWVyIiwgMCk7CiAgICAgdGhpcy5fc25pcHBldHNTZXR0aW5nID0gV2ViSW5z
cGVjdG9yLnNldHRpbmdzLmNyZWF0ZVNldHRpbmcoInNuaXBwZXRzIiwgW10pOworICAgIHRoaXMu
X2xhc3RTbmlwcGV0RXZhbHVhdGlvbkluZGV4U2V0dGluZyA9IFdlYkluc3BlY3Rvci5zZXR0aW5n
cy5jcmVhdGVTZXR0aW5nKCJsYXN0U25pcHBldEV2YWx1YXRpb25JbmRleCIsIDApOwogCiAgICAg
dGhpcy5fbG9hZFNldHRpbmdzKCk7CiB9CiAKK1dlYkluc3BlY3Rvci5TbmlwcGV0c01vZGVsLnNu
aXBwZXRzU291cmNlVVJMUHJlZml4ID0gInNuaXBwZXRzOi8vIjsKKwogV2ViSW5zcGVjdG9yLlNu
aXBwZXRzTW9kZWwuRXZlbnRUeXBlcyA9IHsKICAgICBTbmlwcGV0QWRkZWQ6ICJTbmlwcGV0QWRk
ZWQiLAorICAgIFNuaXBwZXRXaWxsQmVFdmFsdWF0ZWQ6ICJTbmlwcGV0V2lsbEJlRXZhbHVhdGVk
IiwKICAgICBTbmlwcGV0UmVuYW1lZDogIlNuaXBwZXRSZW5hbWVkIiwKICAgICBTbmlwcGV0UmVt
b3ZlZDogIlNuaXBwZXRSZW1vdmVkIiwKIH0KQEAgLTc3LDE0ICs4MSwxMCBAQCBXZWJJbnNwZWN0
b3IuU25pcHBldHNNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgZGVsZXRlU25pcHBl
dDogZnVuY3Rpb24oc25pcHBldCkKICAgICB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
dGhpcy5fc25pcHBldHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGlmIChzbmlwcGV0Lmlk
ID09PSB0aGlzLl9zbmlwcGV0c1tpXS5pZCkgewotICAgICAgICAgICAgICAgIHRoaXMuX3NuaXBw
ZXRzLnNwbGljZShpLCAxKTsKLSAgICAgICAgICAgICAgICB0aGlzLl9zYXZlU2V0dGluZ3MoKTsK
LSAgICAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0
b3IuU25pcHBldHNNb2RlbC5FdmVudFR5cGVzLlNuaXBwZXRSZW1vdmVkLCBzbmlwcGV0KTsKLSAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAgICB2
YXIgaW5kZXggPSB0aGlzLl9zbmlwcGV0cy5pbmRleE9mKHNuaXBwZXQpOworICAgICAgICB0aGlz
Ll9zbmlwcGV0cy5zcGxpY2UoaW5kZXgsIDEpOworICAgICAgICB0aGlzLl9zYXZlU2V0dGluZ3Mo
KTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlNu
aXBwZXRzTW9kZWwuRXZlbnRUeXBlcy5TbmlwcGV0UmVtb3ZlZCwgc25pcHBldCk7CiAgICAgfSwK
IAogICAgIC8qKgpAQCAtOTIsOCArOTIsOSBAQCBXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5w
cm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgY3JlYXRlU25pcHBldDogZnVuY3Rpb24oKQogICAg
IHsKLSAgICAgICAgdmFyIHNuaXBwZXRJZCA9IHRoaXMuX2xhc3RTbmlwcGV0SWRlbnRpZmllclNl
dHRpbmcuZ2V0KCkgKyAxOwotICAgICAgICB0aGlzLl9sYXN0U25pcHBldElkZW50aWZpZXJTZXR0
aW5nLnNldChzbmlwcGV0SWQpOworICAgICAgICB2YXIgbmV4dElkID0gdGhpcy5fbGFzdFNuaXBw
ZXRJZGVudGlmaWVyU2V0dGluZy5nZXQoKSArIDE7CisgICAgICAgIHZhciBzbmlwcGV0SWQgPSBT
dHJpbmcobmV4dElkKTsKKyAgICAgICAgdGhpcy5fbGFzdFNuaXBwZXRJZGVudGlmaWVyU2V0dGlu
Zy5zZXQobmV4dElkKTsKICAgICAgICAgdmFyIHNuaXBwZXQgPSBuZXcgV2ViSW5zcGVjdG9yLlNu
aXBwZXQodGhpcywgc25pcHBldElkKTsKICAgICAgICAgdGhpcy5fc25pcHBldEFkZGVkKHNuaXBw
ZXQpOwogICAgICAgICB0aGlzLl9zYXZlU2V0dGluZ3MoKTsKQEAgLTEyOCwxMiArMTI5LDQ0IEBA
IFdlYkluc3BlY3Rvci5TbmlwcGV0c01vZGVsLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAg
LyoqCi0gICAgICogQHBhcmFtIHtudW1iZXJ9IHNuaXBwZXRJZAotICAgICAqIEByZXR1cm4ge1dl
Ykluc3BlY3Rvci5TbmlwcGV0fHVuZGVmaW5lZH0KKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5TbmlwcGV0fSBzbmlwcGV0CisgICAgICovCisgICAgX2V2YWx1YXRlU25pcHBldDogZnVuY3Rp
b24oc25pcHBldCkKKyAgICB7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJz
KFdlYkluc3BlY3Rvci5TbmlwcGV0c01vZGVsLkV2ZW50VHlwZXMuU25pcHBldFdpbGxCZUV2YWx1
YXRlZCwgc25pcHBldCk7CisgICAgICAgIHZhciBldmFsdWF0aW9uSW5kZXggPSB0aGlzLl9sYXN0
U25pcHBldEV2YWx1YXRpb25JbmRleFNldHRpbmcuZ2V0KCkgKyAxOworICAgICAgICB0aGlzLl9s
YXN0U25pcHBldEV2YWx1YXRpb25JbmRleFNldHRpbmcuc2V0KGV2YWx1YXRpb25JbmRleCk7CisK
KyAgICAgICAgdmFyIHNvdXJjZVVSTCA9IHRoaXMuc291cmNlVVJMRm9yU25pcHBldChzbmlwcGV0
LCBldmFsdWF0aW9uSW5kZXgpOworICAgICAgICB2YXIgZXhwcmVzc2lvbiA9ICJcbi8vQCBzb3Vy
Y2VVUkw9IiArIHNvdXJjZVVSTCArICJcbiIgKyBzbmlwcGV0LmNvbnRlbnQ7CisgICAgICAgIC8v
IEZJWE1FOiBldmFsdWF0ZSBzbmlwcGV0IGhlcmUuCisKKyAgICAgICAgcmV0dXJuIGV2YWx1YXRp
b25JbmRleDsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHNuaXBw
ZXRJZAorICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5TbmlwcGV0fG51bGx9CiAgICAgICov
CiAgICAgc25pcHBldEZvcklkOiBmdW5jdGlvbihzbmlwcGV0SWQpCiAgICAgewotICAgICAgICBy
ZXR1cm4gdGhpcy5fc25pcHBldHNbc25pcHBldElkXTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCB0aGlzLl9zbmlwcGV0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKHNuaXBw
ZXRJZCA9PT0gdGhpcy5fc25pcHBldHNbaV0uaWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRo
aXMuX3NuaXBwZXRzW2ldOworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0s
CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TbmlwcGV0fSBzbmlwcGV0
CisgICAgICogQHBhcmFtIHtzdHJpbmd9IGV2YWx1YXRpb25JbmRleAorICAgICAqIEByZXR1cm4g
e3N0cmluZ30KKyAgICAgKi8KKyAgICBzb3VyY2VVUkxGb3JTbmlwcGV0OiBmdW5jdGlvbihzbmlw
cGV0LCBldmFsdWF0aW9uSW5kZXgpCisgICAgeworICAgICAgICB2YXIgc25pcHBldHNQcmVmaXgg
PSBXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5zbmlwcGV0c1NvdXJjZVVSTFByZWZpeDsKKyAg
ICAgICAgdmFyIGV2YWx1YXRpb25TdWZmaXggPSBldmFsdWF0aW9uSW5kZXggPyAiXyIgKyBldmFs
dWF0aW9uSW5kZXggOiAiIjsKKyAgICAgICAgcmV0dXJuIHNuaXBwZXRzUHJlZml4ICsgc25pcHBl
dC5pZCArIGV2YWx1YXRpb25TdWZmaXg7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMTQyLDggKzE3
NSwxMiBAQCBXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICov
CiAgICAgc25pcHBldElkRm9yU291cmNlVVJMOiBmdW5jdGlvbihzb3VyY2VVUkwpCiAgICAgewot
ICAgICAgICAvLyBGSVhNRTogdG8gYmUgaW1wbGVtZW50ZWQuCi0gICAgICAgIHJldHVybiBudWxs
OworICAgICAgICB2YXIgc25pcHBldHNQcmVmaXggPSBXZWJJbnNwZWN0b3IuU25pcHBldHNNb2Rl
bC5zbmlwcGV0c1NvdXJjZVVSTFByZWZpeDsKKyAgICAgICAgaWYgKHNvdXJjZVVSTC5pbmRleE9m
KHNuaXBwZXRzUHJlZml4KSAhPT0gMCkKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAg
ICB2YXIgc3BsaXR0ZWRVUkwgPSBzb3VyY2VVUkwuc3Vic3RyaW5nKHNuaXBwZXRzUHJlZml4Lmxl
bmd0aCkuc3BsaXQoIl8iKTsKKyAgICAgICAgdmFyIHNuaXBwZXRJZCA9IHNwbGl0dGVkVVJMWzBd
OworICAgICAgICByZXR1cm4gc25pcHBldElkOwogICAgIH0sCiAKICAgICAvKioKQEAgLTE1Miw4
ICsxODksMTEgQEAgV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlID0gewogICAg
ICAqLwogICAgIHNuaXBwZXRGb3JTb3VyY2VVUkw6IGZ1bmN0aW9uKHNvdXJjZVVSTCkKICAgICB7
Ci0gICAgICAgIC8vIEZJWE1FOiB0byBiZSBpbXBsZW1lbnRlZC4KLSAgICAgICAgcmV0dXJuIG51
bGw7CisgICAgICAgIHZhciBzbmlwcGV0SWQgPSB0aGlzLnNuaXBwZXRJZEZvclNvdXJjZVVSTChz
b3VyY2VVUkwpOworICAgICAgICB2YXIgc25pcHBldCA9IHRoaXMuc25pcHBldEZvcklkKHNuaXBw
ZXRJZCk7CisgICAgICAgIGlmICghc25pcHBldCB8fCBzbmlwcGV0Lmxhc3RFdmFsdWF0aW9uU291
cmNlVVJMICE9PSBzb3VyY2VVUkwpCisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAg
cmV0dXJuIHNuaXBwZXQ7CiAgICAgfQogfQogCkBAIC0xNjMsNyArMjAzLDcgQEAgV2ViSW5zcGVj
dG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmpl
Y3QucHJvdG90eXBlOwogICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9y
Lk9iamVjdH0KICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWx9IG1vZGVsCi0g
KiBAcGFyYW0ge251bWJlcn0gaWQKKyAqIEBwYXJhbSB7c3RyaW5nfSBpZAogICogQHBhcmFtIHtz
dHJpbmc9fSBuYW1lCiAgKiBAcGFyYW0ge3N0cmluZz19IGNvbnRlbnQKICAqLwpAQCAtMTk1LDYg
KzIzNSwxMyBAQCBXZWJJbnNwZWN0b3IuU25pcHBldC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJl
dHVybiB0aGlzLl9pZDsKICAgICB9LAogCisgICAgZ2V0IGxhc3RFdmFsdWF0aW9uU291cmNlVVJM
KCkKKyAgICB7CisgICAgICAgIGlmICghdGhpcy5fbGFzdEV2YWx1YXRpb25JbmRleCkKKyAgICAg
ICAgICAgIHJldHVybiBudWxsOworICAgICAgICByZXR1cm4gdGhpcy5fbW9kZWwuc291cmNlVVJM
Rm9yU25pcHBldCh0aGlzLCB0aGlzLl9sYXN0RXZhbHVhdGlvbkluZGV4KTsKKyAgICB9LAorCiAg
ICAgLyoqCiAgICAgICogQHR5cGUge3N0cmluZ30KICAgICAgKi8KQEAgLTIyOSw2ICsyNzYsMTEg
QEAgV2ViSW5zcGVjdG9yLlNuaXBwZXQucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9tb2Rl
bC5fc25pcHBldENvbnRlbnRVcGRhdGVkKHRoaXMuX2lkKTsKICAgICB9LAogCisgICAgZXZhbHVh
dGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX2xhc3RFdmFsdWF0aW9uSW5kZXgg
PSB0aGlzLl9tb2RlbC5fZXZhbHVhdGVTbmlwcGV0KHRoaXMpOworICAgIH0sCisKICAgICAvKioK
ICAgICAgKiBAcmV0dXJuIHtPYmplY3R9CiAgICAgICovCkBAIC0yNTMsMTAgKzMwNSwxMCBAQCBX
ZWJJbnNwZWN0b3IuU25pcHBldHNTY3JpcHRNYXBwaW5nID0gZnVuY3Rpb24oKQogICAgIHRoaXMu
X3NuaXBwZXRGb3JTY3JpcHRJZCA9IHt9OwogICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclNjcmlw
dElkID0ge307CiAgICAgdGhpcy5fc2NyaXB0Rm9yVUlTb3VyY2VDb2RlID0gbmV3IE1hcCgpOwot
ICAgIHRoaXMuX3NuaXBwZXRGb3JVSVNvdXJjZUNvZGUgPSBuZXcgTWFwKCk7CiAgICAgdGhpcy5f
dWlTb3VyY2VDb2RlRm9yU25pcHBldCA9IG5ldyBNYXAoKTsKICAgICAKICAgICBXZWJJbnNwZWN0
b3Iuc25pcHBldHNNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5TbmlwcGV0c01v
ZGVsLkV2ZW50VHlwZXMuU25pcHBldEFkZGVkLCB0aGlzLl9zbmlwcGV0QWRkZWQuYmluZCh0aGlz
KSk7CisgICAgV2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuU25pcHBldHNNb2RlbC5FdmVudFR5cGVzLlNuaXBwZXRXaWxsQmVFdmFsdWF0ZWQs
IHRoaXMuX3NuaXBwZXRXaWxsQmVFdmFsdWF0ZWQuYmluZCh0aGlzKSk7CiAgICAgV2ViSW5zcGVj
dG9yLnNuaXBwZXRzTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU25pcHBldHNN
b2RlbC5FdmVudFR5cGVzLlNuaXBwZXRSZW1vdmVkLCB0aGlzLl9zbmlwcGV0UmVtb3ZlZC5iaW5k
KHRoaXMpKTsKIH0KIApAQCAtMjkwLDggKzM0Miw3IEBAIFdlYkluc3BlY3Rvci5TbmlwcGV0c1Nj
cmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAgICBpZiAoIXNjcmlwdCkKICAgICAgICAg
ICAgIHJldHVybiBudWxsOwogCi0gICAgICAgIHZhciBzbmlwcGV0ID0gdGhpcy5fc25pcHBldEZv
clVJU291cmNlQ29kZS5nZXQodWlTb3VyY2VDb2RlKTsKLSAgICAgICAgaWYgKHNuaXBwZXQpIHsK
KyAgICAgICAgaWYgKHVpU291cmNlQ29kZS5pc1NuaXBwZXQpIHsKICAgICAgICAgICAgIHZhciBy
YXdMaW5lTnVtYmVyID0gbGluZU51bWJlciArIFdlYkluc3BlY3Rvci5TbmlwcGV0LmV2YWx1YXRl
ZFNuaXBwZXRFeHRyYUxpbmVzQ291bnQ7CiAgICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyTW9kZWwuY3JlYXRlUmF3TG9jYXRpb24oc2NyaXB0LCByYXdMaW5lTnVtYmVyLCBj
b2x1bW5OdW1iZXIpOwogICAgICAgICB9CkBAIC0zMTksNyArMzcwLDcgQEAgV2ViSW5zcGVjdG9y
LlNuaXBwZXRzU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciByZXN1bHQg
PSBbXTsKICAgICAgICAgZm9yICh2YXIgc2NyaXB0SWQgaW4gdGhpcy5fdWlTb3VyY2VDb2RlRm9y
U2NyaXB0SWQpIHsKICAgICAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB0aGlzLl91aVNvdXJj
ZUNvZGVGb3JTY3JpcHRJZFtzY3JpcHRJZF07Ci0gICAgICAgICAgICBpZiAodGhpcy5fc25pcHBl
dEZvclVJU291cmNlQ29kZS5nZXQodWlTb3VyY2VDb2RlKSkKKyAgICAgICAgICAgIGlmICh1aVNv
dXJjZUNvZGUuaXNTbmlwcGV0KQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAg
ICAgcmVzdWx0LnB1c2godWlTb3VyY2VDb2RlKTsKICAgICAgICAgfQpAQCAtMzM2LDggKzM4Nyw5
IEBAIFdlYkluc3BlY3Rvci5TbmlwcGV0c1NjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAg
ICAgICAgICAgdGhpcy5fY3JlYXRlVUlTb3VyY2VDb2RlRm9yU2NyaXB0KHNjcmlwdCk7CiAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgdGhpcy5fcmVsZWFzZVNuaXBwZXRT
Y3JpcHQoc25pcHBldCk7ICAgICAgICAKICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMu
X3VpU291cmNlQ29kZUZvclNuaXBwZXQuZ2V0KHNuaXBwZXQpOworICAgICAgICBjb25zb2xlLmFz
c2VydCghdGhpcy5fc2NyaXB0Rm9yVUlTb3VyY2VDb2RlLmdldCh1aVNvdXJjZUNvZGUpKTsKKwog
ICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVGb3JTY3JpcHRJZFtzY3JpcHQuc2NyaXB0SWRdID0g
dWlTb3VyY2VDb2RlOwogICAgICAgICB0aGlzLl9zbmlwcGV0Rm9yU2NyaXB0SWRbc2NyaXB0LnNj
cmlwdElkXSA9IHNuaXBwZXQ7CiAgICAgICAgIHRoaXMuX3NjcmlwdEZvclVJU291cmNlQ29kZS5w
dXQodWlTb3VyY2VDb2RlLCBzY3JpcHQpOwpAQCAtMzU3LDEyICs0MDksMjEgQEAgV2ViSW5zcGVj
dG9yLlNuaXBwZXRzU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHVpU291cmNl
Q29kZS5pc1NuaXBwZXQgPSB0cnVlOwogICAgICAgICB1aVNvdXJjZUNvZGUuaXNFZGl0YWJsZSA9
IHRydWU7CiAgICAgICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclNuaXBwZXQucHV0KHNuaXBwZXQs
IHVpU291cmNlQ29kZSk7Ci0gICAgICAgIHRoaXMuX3NuaXBwZXRGb3JVSVNvdXJjZUNvZGUucHV0
KHVpU291cmNlQ29kZSwgc25pcHBldCk7CisgICAgICAgIHVpU291cmNlQ29kZS5zbmlwcGV0ID0g
c25pcHBldDsKICAgICAgICAgdmFyIGRhdGEgPSB7IHJlbW92ZWRJdGVtczogW10sIGFkZGVkSXRl
bXM6IFt1aVNvdXJjZUNvZGVdLCBzY3JpcHRJZHM6IFtdIH07CiAgICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5TY3JpcHRNYXBwaW5nLkV2ZW50cy5VSVNv
dXJjZUNvZGVMaXN0Q2hhbmdlZCwgZGF0YSk7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAqIEBw
YXJhbSB7V2ViSW5zcGVjdG9yLkV2ZW50fSBldmVudAorICAgICAqLworICAgIF9zbmlwcGV0V2ls
bEJlRXZhbHVhdGVkOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAgICAgIHZhciBzbmlwcGV0
ID0gLyoqIEB0eXBlIHtXZWJJbnNwZWN0b3IuU25pcHBldH0gKi8gZXZlbnQuZGF0YTsKKyAgICAg
ICAgdGhpcy5fcmVsZWFzZVNuaXBwZXRTY3JpcHQoc25pcHBldCk7ICAgICAgICAKKyAgICB9LAor
CisgICAgLyoqCiAgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU2NyaXB0fSBzY3JpcHQKICAg
ICAgKi8KICAgICBfY3JlYXRlVUlTb3VyY2VDb2RlRm9yU2NyaXB0OiBmdW5jdGlvbihzY3JpcHQp
CkBAIC00MDEsNyArNDYyLDYgQEAgV2ViSW5zcGVjdG9yLlNuaXBwZXRzU2NyaXB0TWFwcGluZy5w
cm90b3R5cGUgPSB7CiAgICAgICAgIHZhciB1aVNvdXJjZUNvZGUgPSB0aGlzLl91aVNvdXJjZUNv
ZGVGb3JTbmlwcGV0LmdldChzbmlwcGV0KTsKICAgICAgICAgdGhpcy5fcmVsZWFzZVNuaXBwZXRT
Y3JpcHQoc25pcHBldCk7CiAgICAgICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclNuaXBwZXQucmVt
b3ZlKHNuaXBwZXQpOwotICAgICAgICB0aGlzLl9zbmlwcGV0Rm9yVUlTb3VyY2VDb2RlLnJlbW92
ZSh1aVNvdXJjZUNvZGUpOwogICAgICAgICB2YXIgZGF0YSA9IHsgcmVtb3ZlZEl0ZW1zOiBbdWlT
b3VyY2VDb2RlXSwgYWRkZWRJdGVtczogW10sIHNjcmlwdElkczogW10gfTsKICAgICAgICAgdGhp
cy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlNjcmlwdE1hcHBpbmcuRXZl
bnRzLlVJU291cmNlQ29kZUxpc3RDaGFuZ2VkLCBkYXRhKTsKICAgICB9LApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNhZTJj
NzMwYzRjMWE5OTQ3MjZkY2ZmNzdlNTNmOTE5ZjMyYTM5ZmUuLjc1YTM4MDcyYTFjNzMzNWI2YTFm
MmZiMTI1NjMxYzU3OTA0N2NiOWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZwor
KysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsNSArMSwxNSBAQAogMjAxMi0wMy0xNCAg
VnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KIAorICAgICAgICBXZWIgSW5z
cGVjdG9yOiBNYWluU2NyaXB0TWFwcGluZyBzaG91bGQgZGV0ZWN0IHNuaXBwZXQgc2NyaXB0cyBi
eSBtZWFucyBvZiBzb3VyY2VVUkwgc2V0IGJlZm9yZSBldmFsdWF0aW9uLgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEwMzEKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9z
bmlwcGV0cy1tb2RlbC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2Vy
L3NuaXBwZXRzLW1vZGVsLmh0bWw6CisKKzIwMTItMDMtMTQgIFZzZXZvbG9kIFZsYXNvdiAgPHZz
ZXZpa0BjaHJvbWl1bS5vcmc+CisKICAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIHNuaXBwZXRz
IHRhYiB0byBzY3JpcHRzIG5hdmlnYXRvci4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTgxMDE4CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9zbmlwcGV0cy1tb2RlbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bnNwZWN0b3IvZGVidWdnZXIvc25pcHBldHMtbW9kZWwtZXhwZWN0ZWQudHh0CmluZGV4IGQ0Mzkz
NTEzOWJiN2JmODNkNzM3NGQ5NmY2NDFkMzNlZjEzMDM5ZDYuLmUyM2QxODQxYjUzNzkyZTI2ZDhk
YWQwZWMxOTE4NTg2ZGMwYzllOTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9zbmlwcGV0cy1tb2RlbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL3NuaXBwZXRzLW1vZGVsLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDcg
QEAKLVRlc3RzIGhvdyBzbmlwcGV0cyBtb2RlbCBzdG9yZXMsIHNhdmVzIGFuZCBsb2FkcyBzbmlw
cGV0cworVGVzdHMgc25pcHBldHMgbW9kZWwuCiAKKworUnVubmluZzogdGVzdENyZWF0ZVJlbmFt
ZUVkaXREZWxldGUKIER1bXBpbmcgc2F2ZWQgc25pcHBldHM6CiBEdW1waW5nIG1vZGVsIHNuaXBw
ZXRzOgogU25pcHBldCBjcmVhdGVkLgpAQCAtMzMsMyArMzUsMTQgQEAgQW5vdGhlciBzbmlwcGV0
IGRlbGV0ZWQuCiBEdW1waW5nIHNhdmVkIHNuaXBwZXRzOgogRHVtcGluZyBtb2RlbCBzbmlwcGV0
czoKIAorUnVubmluZzogdGVzdEV2YWx1YXRlCitEdW1waW5nIHNuaXBwZXQ6CisgICAgX2xhc3RF
dmFsdWF0aW9uSW5kZXggPSAxCisgICAgbGFzdEV2YWx1YXRpb25Tb3VyY2VVUkwgPSBzbmlwcGV0
czovLzFfMQorRHVtcGluZyBzbmlwcGV0OgorICAgIF9sYXN0RXZhbHVhdGlvbkluZGV4ID0gMgor
ICAgIGxhc3RFdmFsdWF0aW9uU291cmNlVVJMID0gc25pcHBldHM6Ly8yXzIKK0R1bXBpbmcgc25p
cHBldDoKKyAgICBfbGFzdEV2YWx1YXRpb25JbmRleCA9IDMKKyAgICBsYXN0RXZhbHVhdGlvblNv
dXJjZVVSTCA9IHNuaXBwZXRzOi8vMV8zCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci9kZWJ1Z2dlci9zbmlwcGV0cy1tb2RlbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL3NuaXBwZXRzLW1vZGVsLmh0bWwKaW5kZXggY2JjZGZjNDQ5M2JkNmYwZGE2YjNj
Yzc1MzI1MzYxMzFhNjNkNTQxNy4uM2U4Yjg5M2FhNmJhMjRlZDhlODUwNzZmMjgyODIyOThiZmZl
NmFiYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NuaXBwZXRz
LW1vZGVsLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NuaXBwZXRz
LW1vZGVsLmh0bWwKQEAgLTQsNjIgKzQsMTI2IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gdGVzdCgp
CiB7Ci0gICAgZnVuY3Rpb24gZHVtcFNuaXBwZXRzKHNuaXBwZXRzKQorICAgIGZ1bmN0aW9uIHJl
c2V0U25pcHBldHNTZXR0aW5ncygpCiAgICAgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8
IHNuaXBwZXRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICB2YXIgc25pcHBldCA9IHNuaXBw
ZXRzW2ldOwotICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBTbmlwcGV0
OiBpZCA9ICIgKyBzbmlwcGV0LmlkICsgIiwgbmFtZSA9ICciICsgc25pcHBldC5uYW1lICsgIics
IGNvbnRlbnQgPSAnIiArIHNuaXBwZXQuY29udGVudCArICInLiIpOwotICAgICAgICB9Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gZHVtcFNhdmVkU25pcHBldHMoKQotICAgIHsKLSAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkR1bXBpbmcgc2F2ZWQgc25pcHBldHM6Iik7Ci0gICAgICAg
IGR1bXBTbmlwcGV0cyhXZWJJbnNwZWN0b3Iuc25pcHBldHNNb2RlbC5fc25pcHBldHNTZXR0aW5n
LmdldCgpKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkdW1wTW9kZWxTbmlwcGV0cygpCi0gICAg
ewotICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRHVtcGluZyBtb2RlbCBzbmlwcGV0
czoiKTsKLSAgICAgICAgZHVtcFNuaXBwZXRzKFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLnNu
aXBwZXRzKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuX2xhc3RTbmlwcGV0
SWRlbnRpZmllclNldHRpbmcuc2V0KDApOworICAgICAgICBXZWJJbnNwZWN0b3Iuc25pcHBldHNN
b2RlbC5fc25pcHBldHNTZXR0aW5nLnNldChbXSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5zbmlw
cGV0c01vZGVsLl9sYXN0U25pcHBldEV2YWx1YXRpb25JbmRleFNldHRpbmcuc2V0KDApOwogICAg
IH0KIAogICAgIC8vIEZJWE1FOiBSZW1vdmUgb25jZSBzbmlwcGV0cyBhcmUgdGFrZW4gb3V0IG9m
IGV4cGVyaW1lbnRzLgogICAgIGlmICghV2ViSW5zcGVjdG9yLmV4cGVyaW1lbnRzU2V0dGluZ3Mu
c25pcHBldHNTdXBwb3J0LmlzRW5hYmxlZCgpKQogICAgICAgICBXZWJJbnNwZWN0b3Iuc25pcHBl
dHNNb2RlbCA9IG5ldyBXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbCgpOwogCi0gICAgZHVtcFNh
dmVkU25pcHBldHMoKTsKLSAgICBkdW1wTW9kZWxTbmlwcGV0cygpOwotICAgIHZhciBzbmlwcGV0
ID0gV2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuY3JlYXRlU25pcHBldCgpOwotICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJTbmlwcGV0IGNyZWF0ZWQuIik7Ci0gICAgZHVtcFNhdmVkU25p
cHBldHMoKTsKLSAgICBkdW1wTW9kZWxTbmlwcGV0cygpOwotICAgIHNuaXBwZXQubmFtZSA9ICJO
ZXcgc25pcHBldCBuYW1lIjsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU25pcHBldCBy
ZW5hbWVkLiIpOwotICAgIGR1bXBTYXZlZFNuaXBwZXRzKCk7Ci0gICAgZHVtcE1vZGVsU25pcHBl
dHMoKTsKLSAgICBzbmlwcGV0LmNvbnRlbnQgPSAiTmV3IHNuaXBwZXQgY29udGVudCI7Ci0gICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNuaXBwZXQgY29udGVudCBjaGFuZ2VkLiIpOwotICAg
IGR1bXBTYXZlZFNuaXBwZXRzKCk7Ci0gICAgZHVtcE1vZGVsU25pcHBldHMoKTsKLSAgICB2YXIg
YW5vdGhlclNuaXBwZXQgPSBXZWJJbnNwZWN0b3Iuc25pcHBldHNNb2RlbC5jcmVhdGVTbmlwcGV0
KCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFub3RoZXIgc25pcHBldCBjcmVhdGVk
LiIpOwotICAgIGR1bXBTYXZlZFNuaXBwZXRzKCk7Ci0gICAgZHVtcE1vZGVsU25pcHBldHMoKTsK
LSAgICBXZWJJbnNwZWN0b3Iuc25pcHBldHNNb2RlbC5kZWxldGVTbmlwcGV0KHNuaXBwZXQpOwot
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTbmlwcGV0IGRlbGV0ZWQuIik7Ci0gICAgZHVt
cFNhdmVkU25pcHBldHMoKTsKLSAgICBkdW1wTW9kZWxTbmlwcGV0cygpOwotICAgIFdlYkluc3Bl
Y3Rvci5zbmlwcGV0c01vZGVsLmRlbGV0ZVNuaXBwZXQoYW5vdGhlclNuaXBwZXQpOwotICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBbm90aGVyIHNuaXBwZXQgZGVsZXRlZC4iKTsKLSAgICBk
dW1wU2F2ZWRTbmlwcGV0cygpOwotICAgIGR1bXBNb2RlbFNuaXBwZXRzKCk7CisgICAgSW5zcGVj
dG9yVGVzdC5ydW5UZXN0U3VpdGUoWworICAgICAgICBmdW5jdGlvbiB0ZXN0Q3JlYXRlUmVuYW1l
RWRpdERlbGV0ZShuZXh0KQorICAgICAgICB7CisgICAgICAgICAgICBmdW5jdGlvbiBkdW1wU25p
cHBldHMoc25pcHBldHMpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZm9yICh2YXIg
aSA9IDA7IGkgPCBzbmlwcGV0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICB2
YXIgc25pcHBldCA9IHNuaXBwZXRzW2ldOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiICAgIFNuaXBwZXQ6IGlkID0gIiArIHNuaXBwZXQuaWQgKyAiLCBuYW1l
ID0gJyIgKyBzbmlwcGV0Lm5hbWUgKyAiJywgY29udGVudCA9ICciICsgc25pcHBldC5jb250ZW50
ICsgIicuIik7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICBmdW5jdGlvbiBkdW1wU2F2ZWRTbmlwcGV0cygpCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkR1bXBpbmcgc2F2ZWQgc25pcHBldHM6Iik7
CisgICAgICAgICAgICAgICAgZHVtcFNuaXBwZXRzKFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVs
Ll9zbmlwcGV0c1NldHRpbmcuZ2V0KCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBm
dW5jdGlvbiBkdW1wTW9kZWxTbmlwcGV0cygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkR1bXBpbmcgbW9kZWwgc25pcHBldHM6Iik7Cisg
ICAgICAgICAgICAgICAgZHVtcFNuaXBwZXRzKFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLnNu
aXBwZXRzKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVzZXRTbmlwcGV0c1NldHRp
bmdzKCk7CiAKLSAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAg
ZHVtcFNhdmVkU25pcHBldHMoKTsKKyAgICAgICAgICAgIGR1bXBNb2RlbFNuaXBwZXRzKCk7Cisg
ICAgICAgICAgICB2YXIgc25pcHBldCA9IFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLmNyZWF0
ZVNuaXBwZXQoKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTbmlwcGV0
IGNyZWF0ZWQuIik7CisgICAgICAgICAgICBkdW1wU2F2ZWRTbmlwcGV0cygpOworICAgICAgICAg
ICAgZHVtcE1vZGVsU25pcHBldHMoKTsKKyAgICAgICAgICAgIHNuaXBwZXQubmFtZSA9ICJOZXcg
c25pcHBldCBuYW1lIjsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTbmlw
cGV0IHJlbmFtZWQuIik7CisgICAgICAgICAgICBkdW1wU2F2ZWRTbmlwcGV0cygpOworICAgICAg
ICAgICAgZHVtcE1vZGVsU25pcHBldHMoKTsKKyAgICAgICAgICAgIHNuaXBwZXQuY29udGVudCA9
ICJOZXcgc25pcHBldCBjb250ZW50IjsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJTbmlwcGV0IGNvbnRlbnQgY2hhbmdlZC4iKTsKKyAgICAgICAgICAgIGR1bXBTYXZlZFNu
aXBwZXRzKCk7CisgICAgICAgICAgICBkdW1wTW9kZWxTbmlwcGV0cygpOworICAgICAgICAgICAg
dmFyIGFub3RoZXJTbmlwcGV0ID0gV2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuY3JlYXRlU25p
cHBldCgpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFub3RoZXIgc25p
cHBldCBjcmVhdGVkLiIpOworICAgICAgICAgICAgZHVtcFNhdmVkU25pcHBldHMoKTsKKyAgICAg
ICAgICAgIGR1bXBNb2RlbFNuaXBwZXRzKCk7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc25p
cHBldHNNb2RlbC5kZWxldGVTbmlwcGV0KHNuaXBwZXQpOworICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5hZGRSZXN1bHQoIlNuaXBwZXQgZGVsZXRlZC4iKTsKKyAgICAgICAgICAgIGR1bXBTYXZl
ZFNuaXBwZXRzKCk7CisgICAgICAgICAgICBkdW1wTW9kZWxTbmlwcGV0cygpOworICAgICAgICAg
ICAgV2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuZGVsZXRlU25pcHBldChhbm90aGVyU25pcHBl
dCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQW5vdGhlciBzbmlwcGV0
IGRlbGV0ZWQuIik7CisgICAgICAgICAgICBkdW1wU2F2ZWRTbmlwcGV0cygpOworICAgICAgICAg
ICAgZHVtcE1vZGVsU25pcHBldHMoKTsKKworICAgICAgICAgICAgbmV4dCgpOworICAgICAgICB9
LAorCisgICAgICAgIGZ1bmN0aW9uIHRlc3RFdmFsdWF0ZShuZXh0KQorICAgICAgICB7CisgICAg
ICAgICAgICByZXNldFNuaXBwZXRzU2V0dGluZ3MoKTsKKworICAgICAgICAgICAgdmFyIHNuaXBw
ZXQxID0gV2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuY3JlYXRlU25pcHBldCgpOworICAgICAg
ICAgICAgc25pcHBldDEubmFtZSA9ICJTbmlwcGV0MSI7CisgICAgICAgICAgICBzbmlwcGV0MS5j
b250ZW50ID0gIiI7CisgICAgICAgICAgICBzbmlwcGV0MS5jb250ZW50ICs9ICIvLyBUaGlzIHNu
aXBwZXQgZG9lcyBub3RoaW5nLlxuIjsKKyAgICAgICAgICAgIHNuaXBwZXQxLmNvbnRlbnQgKz0g
InZhciBpID0gMisyO1xuIjsKKyAgICAgICAgICAgIHZhciBzbmlwcGV0MiA9IFdlYkluc3BlY3Rv
ci5zbmlwcGV0c01vZGVsLmNyZWF0ZVNuaXBwZXQoKTsKKyAgICAgICAgICAgIHNuaXBwZXQyLm5h
bWUgPSAiU25pcHBldDIiOworICAgICAgICAgICAgc25pcHBldDIuY29udGVudCA9ICIiOworICAg
ICAgICAgICAgc25pcHBldDIuY29udGVudCArPSAiLy8gVGhpcyBzbmlwcGV0IGNyZWF0ZXMgYSBm
dW5jdGlvbiB0aGF0IGRvZXMgbm90aGluZy5cbiI7CisgICAgICAgICAgICBzbmlwcGV0Mi5jb250
ZW50ICs9ICJmdW5jdGlvbiBkb2VzTm90aGluZygpXG4iOworICAgICAgICAgICAgc25pcHBldDIu
Y29udGVudCArPSAie1xuIjsKKyAgICAgICAgICAgIHNuaXBwZXQyLmNvbnRlbnQgKz0gIiAgICB2
YXIgIGkgPSAyKzI7XG4iOworICAgICAgICAgICAgc25pcHBldDIuY29udGVudCArPSAifVxuIjsK
KworICAgICAgICAgICAgZnVuY3Rpb24gZXZhbHVhdGVTbmlwcGV0QW5kRHVtcEV2YWx1YXRpb25E
ZXRhaWxzKHNuaXBwZXQsIGNhbGxiYWNrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuU25pcHBldHNTY3JpcHRNYXBw
aW5nLnByb3RvdHlwZSwgImFkZFNjcmlwdCIsIGR1bXBTY3JpcHQpOworICAgICAgICAgICAgICAg
IHNuaXBwZXQuZXZhbHVhdGUoKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiRHVtcGluZyBzbmlwcGV0OiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCIgICAgX2xhc3RFdmFsdWF0aW9uSW5kZXggPSAiICsgc25pcHBldC5fbGFzdEV2
YWx1YXRpb25JbmRleCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IiAgICBsYXN0RXZhbHVhdGlvblNvdXJjZVVSTCA9ICIgKyBzbmlwcGV0Lmxhc3RFdmFsdWF0aW9u
U291cmNlVVJMKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhz
bmlwcGV0LCBXZWJJbnNwZWN0b3Iuc25pcHBldHNNb2RlbC5zbmlwcGV0Rm9yU291cmNlVVJMKHNu
aXBwZXQubGFzdEV2YWx1YXRpb25Tb3VyY2VVUkwpLCAiU25pcHBldCBjYW4gbm90IGJlIGlkZW50
aWZpZWQgYnkgaXRzIGV2YWx1YXRpb24gc291cmNlVVJMLiIpOworCisgICAgICAgICAgICAgICAg
ZnVuY3Rpb24gZHVtcFNjcmlwdChzY3JpcHQpCisgICAgICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU25pcHBldCBzY3JpcHQgYWRkZWQs
IHNvdXJjZVVSTCA9ICIgKyBzY3JpcHQuc291cmNlVVJMKTsKKyAgICAgICAgICAgICAgICAgICAg
Y2FsbGJhY2soKTsKKyAgICAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBGSVhN
RTogVGhpcyBzaG91bGQgYmUgcmVtb3ZlZCBvbmNlIHNuaXBwZXRzIGV2YWx1YXRpb24gaXRzZWxm
IGlzIGltcGxlbWVudGVkLgorICAgICAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIGV2YWx1YXRlU25pcHBldEFuZER1bXBFdmFsdWF0aW9uRGV0YWls
cyhzbmlwcGV0MSwgc3RlcDIpOworCisgICAgICAgICAgICBmdW5jdGlvbiBzdGVwMigpCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgZXZhbHVhdGVTbmlwcGV0QW5kRHVtcEV2YWx1YXRp
b25EZXRhaWxzKHNuaXBwZXQyLCBzdGVwMyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGZ1bmN0aW9uIHN0ZXAzKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBldmFsdWF0
ZVNuaXBwZXRBbmREdW1wRXZhbHVhdGlvbkRldGFpbHMoc25pcHBldDEsIG5leHQpOworICAgICAg
ICAgICAgfQorICAgICAgICB9CisgICAgXSk7CiB9OwogPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9k
eSBvbmxvYWQ9InJ1blRlc3QoKSI+Ci08cD5UZXN0cyBob3cgc25pcHBldHMgbW9kZWwgc3RvcmVz
LCBzYXZlcyBhbmQgbG9hZHMgc25pcHBldHM8L3A+Cis8cD5UZXN0cyBzbmlwcGV0cyBtb2RlbC48
L3A+CiA8L2JvZHk+CiA8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131902</attachid>
            <date>2012-03-14 13:01:17 -0700</date>
            <delta_ts>2012-03-15 09:14:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81031-20120315000115.patch</filename>
            <type>text/plain</type>
            <size>20350</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwNjk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYwNmFiMDIyMzRkNGY2
OTA4OGRhN2YyZTk5MDFiMjBiMjkzNWZkMS4uMjUyNWY5ZTRhN2VlZjJjZDYxYzUxMWUxZTdjZDMz
OTMyOTRlNWFjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMwIEBACiAyMDEyLTAzLTE0ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgogCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IE1haW5TY3JpcHRNYXBwaW5nIHNob3VsZCBkZXRlY3Qgc25pcHBldCBzY3JpcHRzIGJ5IG1l
YW5zIG9mIHNvdXJjZVVSTCBzZXQgYmVmb3JlIGV2YWx1YXRpb24uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTAzMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tbmlw
cGV0c01vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlLmRlbGV0ZVNuaXBwZXQp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlLnNuaXBwZXRG
b3JJZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5wcm90b3R5cGUuc291
cmNlVVJMRm9yU25pcHBldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5w
cm90b3R5cGUuc25pcHBldElkRm9yU291cmNlVVJMKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5T
bmlwcGV0c01vZGVsLnByb3RvdHlwZS5zbmlwcGV0Rm9yU291cmNlVVJMKToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5TbmlwcGV0LnByb3RvdHlwZS5nZXQgbGFzdEV2YWx1YXRpb25Tb3VyY2VVUkwp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXQucHJvdG90eXBlLmV2YWx1YXRlKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5TbmlwcGV0c1NjcmlwdE1hcHBpbmcpOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlNuaXBwZXRzU2NyaXB0TWFwcGluZy5wcm90b3R5cGUudWlMb2NhdGlvblRvUmF3
TG9jYXRpb24uZ2V0IGlmKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TbmlwcGV0c1NjcmlwdE1h
cHBpbmcucHJvdG90eXBlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5TbmlwcGV0c1NjcmlwdE1hcHBpbmcucHJvdG90eXBlLl9yZWxlYXNlZFVJU291cmNl
Q29kZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzU2NyaXB0TWFwcGluZy5wcm90
b3R5cGUuX3NuaXBwZXRBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU25pcHBldHNTY3Jp
cHRNYXBwaW5nLnByb3RvdHlwZS5fc25pcHBldFdpbGxCZUV2YWx1YXRlZCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuU25pcHBldHNTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fc25pcHBldFJlbW92
ZWQuZ2V0IHRoaXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzU2NyaXB0TWFwcGlu
Zy5wcm90b3R5cGUuX3NuaXBwZXRSZW1vdmVkKToKKworMjAxMi0wMy0xNCAgVnNldm9sb2QgVmxh
c292ICA8dnNldmlrQGNocm9taXVtLm9yZz4KKwogICAgICAgICBXZWIgSW5zcGVjdG9yOiBBZGQg
c25pcHBldHMgdGFiIHRvIHNjcmlwdHMgbmF2aWdhdG9yLgogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODEwMTgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TbmlwcGV0c01vZGVsLmpzIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TbmlwcGV0c01vZGVsLmpzCmluZGV4IDc4ZjRhYjM4M2Q2
NTkxYzliYTA1M2ZmZmY3MDFmMzFhNDg1MGU4ZTAuLjFlNmQwY2JmZGE2ZTljNzg0ZWE1NWZiMWFl
MzY0YWQxM2Q0MGQ0MTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU25pcHBldHNNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NuaXBwZXRzTW9kZWwuanMKQEAgLTM2LDEyICszNiwxNiBAQCBXZWJJbnNwZWN0b3Iu
U25pcHBldHNNb2RlbCA9IGZ1bmN0aW9uKCkKIAogICAgIHRoaXMuX2xhc3RTbmlwcGV0SWRlbnRp
ZmllclNldHRpbmcgPSBXZWJJbnNwZWN0b3Iuc2V0dGluZ3MuY3JlYXRlU2V0dGluZygibGFzdFNu
aXBwZXRJZGVudGlmaWVyIiwgMCk7CiAgICAgdGhpcy5fc25pcHBldHNTZXR0aW5nID0gV2ViSW5z
cGVjdG9yLnNldHRpbmdzLmNyZWF0ZVNldHRpbmcoInNuaXBwZXRzIiwgW10pOworICAgIHRoaXMu
X2xhc3RTbmlwcGV0RXZhbHVhdGlvbkluZGV4U2V0dGluZyA9IFdlYkluc3BlY3Rvci5zZXR0aW5n
cy5jcmVhdGVTZXR0aW5nKCJsYXN0U25pcHBldEV2YWx1YXRpb25JbmRleCIsIDApOwogCiAgICAg
dGhpcy5fbG9hZFNldHRpbmdzKCk7CiB9CiAKK1dlYkluc3BlY3Rvci5TbmlwcGV0c01vZGVsLnNu
aXBwZXRzU291cmNlVVJMUHJlZml4ID0gInNuaXBwZXRzOi8vIjsKKwogV2ViSW5zcGVjdG9yLlNu
aXBwZXRzTW9kZWwuRXZlbnRUeXBlcyA9IHsKICAgICBTbmlwcGV0QWRkZWQ6ICJTbmlwcGV0QWRk
ZWQiLAorICAgIFNuaXBwZXRXaWxsQmVFdmFsdWF0ZWQ6ICJTbmlwcGV0V2lsbEJlRXZhbHVhdGVk
IiwKICAgICBTbmlwcGV0UmVuYW1lZDogIlNuaXBwZXRSZW5hbWVkIiwKICAgICBTbmlwcGV0UmVt
b3ZlZDogIlNuaXBwZXRSZW1vdmVkIiwKIH0KQEAgLTc3LDE0ICs4MSwxMCBAQCBXZWJJbnNwZWN0
b3IuU25pcHBldHNNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgZGVsZXRlU25pcHBl
dDogZnVuY3Rpb24oc25pcHBldCkKICAgICB7Ci0gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
dGhpcy5fc25pcHBldHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIGlmIChzbmlwcGV0Lmlk
ID09PSB0aGlzLl9zbmlwcGV0c1tpXS5pZCkgewotICAgICAgICAgICAgICAgIHRoaXMuX3NuaXBw
ZXRzLnNwbGljZShpLCAxKTsKLSAgICAgICAgICAgICAgICB0aGlzLl9zYXZlU2V0dGluZ3MoKTsK
LSAgICAgICAgICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0
b3IuU25pcHBldHNNb2RlbC5FdmVudFR5cGVzLlNuaXBwZXRSZW1vdmVkLCBzbmlwcGV0KTsKLSAg
ICAgICAgICAgICAgICBicmVhazsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQorICAgICAgICB2
YXIgaW5kZXggPSB0aGlzLl9zbmlwcGV0cy5pbmRleE9mKHNuaXBwZXQpOworICAgICAgICB0aGlz
Ll9zbmlwcGV0cy5zcGxpY2UoaW5kZXgsIDEpOworICAgICAgICB0aGlzLl9zYXZlU2V0dGluZ3Mo
KTsKKyAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlNu
aXBwZXRzTW9kZWwuRXZlbnRUeXBlcy5TbmlwcGV0UmVtb3ZlZCwgc25pcHBldCk7CiAgICAgfSwK
IAogICAgIC8qKgpAQCAtOTIsOCArOTIsOSBAQCBXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5w
cm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgY3JlYXRlU25pcHBldDogZnVuY3Rpb24oKQogICAg
IHsKLSAgICAgICAgdmFyIHNuaXBwZXRJZCA9IHRoaXMuX2xhc3RTbmlwcGV0SWRlbnRpZmllclNl
dHRpbmcuZ2V0KCkgKyAxOwotICAgICAgICB0aGlzLl9sYXN0U25pcHBldElkZW50aWZpZXJTZXR0
aW5nLnNldChzbmlwcGV0SWQpOworICAgICAgICB2YXIgbmV4dElkID0gdGhpcy5fbGFzdFNuaXBw
ZXRJZGVudGlmaWVyU2V0dGluZy5nZXQoKSArIDE7CisgICAgICAgIHZhciBzbmlwcGV0SWQgPSBT
dHJpbmcobmV4dElkKTsKKyAgICAgICAgdGhpcy5fbGFzdFNuaXBwZXRJZGVudGlmaWVyU2V0dGlu
Zy5zZXQobmV4dElkKTsKICAgICAgICAgdmFyIHNuaXBwZXQgPSBuZXcgV2ViSW5zcGVjdG9yLlNu
aXBwZXQodGhpcywgc25pcHBldElkKTsKICAgICAgICAgdGhpcy5fc25pcHBldEFkZGVkKHNuaXBw
ZXQpOwogICAgICAgICB0aGlzLl9zYXZlU2V0dGluZ3MoKTsKQEAgLTExMSw3ICsxMTIsNyBAQCBX
ZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgfSwKIAogICAgIC8q
KgotICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzbmlwcGV0SWQKKyAgICAgKiBAcGFyYW0ge3N0cmlu
Z30gc25pcHBldElkCiAgICAgICovCiAgICAgX3NuaXBwZXRDb250ZW50VXBkYXRlZDogZnVuY3Rp
b24oc25pcHBldElkKQogICAgIHsKQEAgLTEyOCwxMiArMTI5LDQ0IEBAIFdlYkluc3BlY3Rvci5T
bmlwcGV0c01vZGVsLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBh
cmFtIHtudW1iZXJ9IHNuaXBwZXRJZAotICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5Tbmlw
cGV0fHVuZGVmaW5lZH0KKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TbmlwcGV0fSBzbmlw
cGV0CisgICAgICovCisgICAgX2V2YWx1YXRlU25pcHBldDogZnVuY3Rpb24oc25pcHBldCkKKyAg
ICB7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5T
bmlwcGV0c01vZGVsLkV2ZW50VHlwZXMuU25pcHBldFdpbGxCZUV2YWx1YXRlZCwgc25pcHBldCk7
CisgICAgICAgIHZhciBldmFsdWF0aW9uSW5kZXggPSB0aGlzLl9sYXN0U25pcHBldEV2YWx1YXRp
b25JbmRleFNldHRpbmcuZ2V0KCkgKyAxOworICAgICAgICB0aGlzLl9sYXN0U25pcHBldEV2YWx1
YXRpb25JbmRleFNldHRpbmcuc2V0KGV2YWx1YXRpb25JbmRleCk7CisKKyAgICAgICAgdmFyIHNv
dXJjZVVSTCA9IHRoaXMuc291cmNlVVJMRm9yU25pcHBldChzbmlwcGV0LCBldmFsdWF0aW9uSW5k
ZXgpOworICAgICAgICB2YXIgZXhwcmVzc2lvbiA9ICJcbi8vQCBzb3VyY2VVUkw9IiArIHNvdXJj
ZVVSTCArICJcbiIgKyBzbmlwcGV0LmNvbnRlbnQ7CisgICAgICAgIC8vIEZJWE1FOiBldmFsdWF0
ZSBzbmlwcGV0IGhlcmUuCisKKyAgICAgICAgcmV0dXJuIGV2YWx1YXRpb25JbmRleDsKKyAgICB9
LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtzdHJpbmd9IHNuaXBwZXRJZAorICAgICAqIEBy
ZXR1cm4ge1dlYkluc3BlY3Rvci5TbmlwcGV0fG51bGx9CiAgICAgICovCiAgICAgc25pcHBldEZv
cklkOiBmdW5jdGlvbihzbmlwcGV0SWQpCiAgICAgewotICAgICAgICByZXR1cm4gdGhpcy5fc25p
cHBldHNbc25pcHBldElkXTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9zbmlw
cGV0cy5sZW5ndGg7ICsraSkgeworICAgICAgICAgICAgaWYgKHNuaXBwZXRJZCA9PT0gdGhpcy5f
c25pcHBldHNbaV0uaWQpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3NuaXBwZXRzW2ld
OworICAgICAgICB9CisgICAgICAgIHJldHVybiBudWxsOworICAgIH0sCisKKyAgICAvKioKKyAg
ICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TbmlwcGV0fSBzbmlwcGV0CisgICAgICogQHBhcmFt
IHtzdHJpbmd9IGV2YWx1YXRpb25JbmRleAorICAgICAqIEByZXR1cm4ge3N0cmluZ30KKyAgICAg
Ki8KKyAgICBzb3VyY2VVUkxGb3JTbmlwcGV0OiBmdW5jdGlvbihzbmlwcGV0LCBldmFsdWF0aW9u
SW5kZXgpCisgICAgeworICAgICAgICB2YXIgc25pcHBldHNQcmVmaXggPSBXZWJJbnNwZWN0b3Iu
U25pcHBldHNNb2RlbC5zbmlwcGV0c1NvdXJjZVVSTFByZWZpeDsKKyAgICAgICAgdmFyIGV2YWx1
YXRpb25TdWZmaXggPSBldmFsdWF0aW9uSW5kZXggPyAiXyIgKyBldmFsdWF0aW9uSW5kZXggOiAi
IjsKKyAgICAgICAgcmV0dXJuIHNuaXBwZXRzUHJlZml4ICsgc25pcHBldC5pZCArIGV2YWx1YXRp
b25TdWZmaXg7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMTQyLDggKzE3NSwxMiBAQCBXZWJJbnNw
ZWN0b3IuU25pcHBldHNNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgc25pcHBldElk
Rm9yU291cmNlVVJMOiBmdW5jdGlvbihzb3VyY2VVUkwpCiAgICAgewotICAgICAgICAvLyBGSVhN
RTogdG8gYmUgaW1wbGVtZW50ZWQuCi0gICAgICAgIHJldHVybiBudWxsOworICAgICAgICB2YXIg
c25pcHBldHNQcmVmaXggPSBXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5zbmlwcGV0c1NvdXJj
ZVVSTFByZWZpeDsKKyAgICAgICAgaWYgKHNvdXJjZVVSTC5pbmRleE9mKHNuaXBwZXRzUHJlZml4
KSAhPT0gMCkKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB2YXIgc3BsaXR0ZWRV
UkwgPSBzb3VyY2VVUkwuc3Vic3RyaW5nKHNuaXBwZXRzUHJlZml4Lmxlbmd0aCkuc3BsaXQoIl8i
KTsKKyAgICAgICAgdmFyIHNuaXBwZXRJZCA9IHNwbGl0dGVkVVJMWzBdOworICAgICAgICByZXR1
cm4gc25pcHBldElkOwogICAgIH0sCiAKICAgICAvKioKQEAgLTE1Miw4ICsxODksMTMgQEAgV2Vi
SW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlID0gewogICAgICAqLwogICAgIHNuaXBw
ZXRGb3JTb3VyY2VVUkw6IGZ1bmN0aW9uKHNvdXJjZVVSTCkKICAgICB7Ci0gICAgICAgIC8vIEZJ
WE1FOiB0byBiZSBpbXBsZW1lbnRlZC4KLSAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIHZh
ciBzbmlwcGV0SWQgPSB0aGlzLnNuaXBwZXRJZEZvclNvdXJjZVVSTChzb3VyY2VVUkwpOworICAg
ICAgICBpZiAoIXNuaXBwZXRJZCkKKyAgICAgICAgICAgIHJldHVybiBudWxsOworICAgICAgICB2
YXIgc25pcHBldCA9IHRoaXMuc25pcHBldEZvcklkKHNuaXBwZXRJZCk7CisgICAgICAgIGlmICgh
c25pcHBldCB8fCBzbmlwcGV0Lmxhc3RFdmFsdWF0aW9uU291cmNlVVJMICE9PSBzb3VyY2VVUkwp
CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgcmV0dXJuIHNuaXBwZXQ7CiAgICAg
fQogfQogCkBAIC0xNjMsNyArMjA1LDcgQEAgV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJv
dG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlOwogICogQGNv
bnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9iamVjdH0KICAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWx9IG1vZGVsCi0gKiBAcGFyYW0ge251bWJlcn0gaWQK
KyAqIEBwYXJhbSB7c3RyaW5nfSBpZAogICogQHBhcmFtIHtzdHJpbmc9fSBuYW1lCiAgKiBAcGFy
YW0ge3N0cmluZz19IGNvbnRlbnQKICAqLwpAQCAtMTk1LDYgKzIzNywxMyBAQCBXZWJJbnNwZWN0
b3IuU25pcHBldC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl9pZDsKICAgICB9
LAogCisgICAgZ2V0IGxhc3RFdmFsdWF0aW9uU291cmNlVVJMKCkKKyAgICB7CisgICAgICAgIGlm
ICghdGhpcy5fbGFzdEV2YWx1YXRpb25JbmRleCkKKyAgICAgICAgICAgIHJldHVybiBudWxsOwor
ICAgICAgICByZXR1cm4gdGhpcy5fbW9kZWwuc291cmNlVVJMRm9yU25pcHBldCh0aGlzLCB0aGlz
Ll9sYXN0RXZhbHVhdGlvbkluZGV4KTsKKyAgICB9LAorCiAgICAgLyoqCiAgICAgICogQHR5cGUg
e3N0cmluZ30KICAgICAgKi8KQEAgLTIyOSw2ICsyNzgsMTEgQEAgV2ViSW5zcGVjdG9yLlNuaXBw
ZXQucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9tb2RlbC5fc25pcHBldENvbnRlbnRVcGRh
dGVkKHRoaXMuX2lkKTsKICAgICB9LAogCisgICAgZXZhbHVhdGU6IGZ1bmN0aW9uKCkKKyAgICB7
CisgICAgICAgIHRoaXMuX2xhc3RFdmFsdWF0aW9uSW5kZXggPSB0aGlzLl9tb2RlbC5fZXZhbHVh
dGVTbmlwcGV0KHRoaXMpOworICAgIH0sCisKICAgICAvKioKICAgICAgKiBAcmV0dXJuIHtPYmpl
Y3R9CiAgICAgICovCkBAIC0yNTMsMTAgKzMwNywxMCBAQCBXZWJJbnNwZWN0b3IuU25pcHBldHNT
Y3JpcHRNYXBwaW5nID0gZnVuY3Rpb24oKQogICAgIHRoaXMuX3NuaXBwZXRGb3JTY3JpcHRJZCA9
IHt9OwogICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclNjcmlwdElkID0ge307CiAgICAgdGhpcy5f
c2NyaXB0Rm9yVUlTb3VyY2VDb2RlID0gbmV3IE1hcCgpOwotICAgIHRoaXMuX3NuaXBwZXRGb3JV
SVNvdXJjZUNvZGUgPSBuZXcgTWFwKCk7CiAgICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yU25pcHBl
dCA9IG5ldyBNYXAoKTsKICAgICAKICAgICBXZWJJbnNwZWN0b3Iuc25pcHBldHNNb2RlbC5hZGRF
dmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5TbmlwcGV0c01vZGVsLkV2ZW50VHlwZXMuU25pcHBl
dEFkZGVkLCB0aGlzLl9zbmlwcGV0QWRkZWQuYmluZCh0aGlzKSk7CisgICAgV2ViSW5zcGVjdG9y
LnNuaXBwZXRzTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU25pcHBldHNNb2Rl
bC5FdmVudFR5cGVzLlNuaXBwZXRXaWxsQmVFdmFsdWF0ZWQsIHRoaXMuX3NuaXBwZXRXaWxsQmVF
dmFsdWF0ZWQuYmluZCh0aGlzKSk7CiAgICAgV2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuYWRk
RXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5FdmVudFR5cGVzLlNuaXBw
ZXRSZW1vdmVkLCB0aGlzLl9zbmlwcGV0UmVtb3ZlZC5iaW5kKHRoaXMpKTsKIH0KIApAQCAtMjkw
LDggKzM0NCw3IEBAIFdlYkluc3BlY3Rvci5TbmlwcGV0c1NjcmlwdE1hcHBpbmcucHJvdG90eXBl
ID0gewogICAgICAgICBpZiAoIXNjcmlwdCkKICAgICAgICAgICAgIHJldHVybiBudWxsOwogCi0g
ICAgICAgIHZhciBzbmlwcGV0ID0gdGhpcy5fc25pcHBldEZvclVJU291cmNlQ29kZS5nZXQodWlT
b3VyY2VDb2RlKTsKLSAgICAgICAgaWYgKHNuaXBwZXQpIHsKKyAgICAgICAgaWYgKHVpU291cmNl
Q29kZS5pc1NuaXBwZXQpIHsKICAgICAgICAgICAgIHZhciByYXdMaW5lTnVtYmVyID0gbGluZU51
bWJlciArIFdlYkluc3BlY3Rvci5TbmlwcGV0LmV2YWx1YXRlZFNuaXBwZXRFeHRyYUxpbmVzQ291
bnQ7CiAgICAgICAgICAgICByZXR1cm4gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuY3JlYXRl
UmF3TG9jYXRpb24oc2NyaXB0LCByYXdMaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpOwogICAgICAg
ICB9CkBAIC0zMTksNyArMzcyLDcgQEAgV2ViSW5zcGVjdG9yLlNuaXBwZXRzU2NyaXB0TWFwcGlu
Zy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciByZXN1bHQgPSBbXTsKICAgICAgICAgZm9yICh2
YXIgc2NyaXB0SWQgaW4gdGhpcy5fdWlTb3VyY2VDb2RlRm9yU2NyaXB0SWQpIHsKICAgICAgICAg
ICAgIHZhciB1aVNvdXJjZUNvZGUgPSB0aGlzLl91aVNvdXJjZUNvZGVGb3JTY3JpcHRJZFtzY3Jp
cHRJZF07Ci0gICAgICAgICAgICBpZiAodGhpcy5fc25pcHBldEZvclVJU291cmNlQ29kZS5nZXQo
dWlTb3VyY2VDb2RlKSkKKyAgICAgICAgICAgIGlmICh1aVNvdXJjZUNvZGUuaXNTbmlwcGV0KQog
ICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgcmVzdWx0LnB1c2godWlTb3Vy
Y2VDb2RlKTsKICAgICAgICAgfQpAQCAtMzM2LDggKzM4OSw5IEBAIFdlYkluc3BlY3Rvci5Tbmlw
cGV0c1NjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fY3JlYXRl
VUlTb3VyY2VDb2RlRm9yU2NyaXB0KHNjcmlwdCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KLSAgICAgICAgdGhpcy5fcmVsZWFzZVNuaXBwZXRTY3JpcHQoc25pcHBldCk7ICAgICAg
ICAKICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3VpU291cmNlQ29kZUZvclNuaXBw
ZXQuZ2V0KHNuaXBwZXQpOworICAgICAgICBjb25zb2xlLmFzc2VydCghdGhpcy5fc2NyaXB0Rm9y
VUlTb3VyY2VDb2RlLmdldCh1aVNvdXJjZUNvZGUpKTsKKwogICAgICAgICB0aGlzLl91aVNvdXJj
ZUNvZGVGb3JTY3JpcHRJZFtzY3JpcHQuc2NyaXB0SWRdID0gdWlTb3VyY2VDb2RlOwogICAgICAg
ICB0aGlzLl9zbmlwcGV0Rm9yU2NyaXB0SWRbc2NyaXB0LnNjcmlwdElkXSA9IHNuaXBwZXQ7CiAg
ICAgICAgIHRoaXMuX3NjcmlwdEZvclVJU291cmNlQ29kZS5wdXQodWlTb3VyY2VDb2RlLCBzY3Jp
cHQpOwpAQCAtMzU3LDEyICs0MTEsMjEgQEAgV2ViSW5zcGVjdG9yLlNuaXBwZXRzU2NyaXB0TWFw
cGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHVpU291cmNlQ29kZS5pc1NuaXBwZXQgPSB0cnVl
OwogICAgICAgICB1aVNvdXJjZUNvZGUuaXNFZGl0YWJsZSA9IHRydWU7CiAgICAgICAgIHRoaXMu
X3VpU291cmNlQ29kZUZvclNuaXBwZXQucHV0KHNuaXBwZXQsIHVpU291cmNlQ29kZSk7Ci0gICAg
ICAgIHRoaXMuX3NuaXBwZXRGb3JVSVNvdXJjZUNvZGUucHV0KHVpU291cmNlQ29kZSwgc25pcHBl
dCk7CisgICAgICAgIHVpU291cmNlQ29kZS5zbmlwcGV0ID0gc25pcHBldDsKICAgICAgICAgdmFy
IGRhdGEgPSB7IHJlbW92ZWRJdGVtczogW10sIGFkZGVkSXRlbXM6IFt1aVNvdXJjZUNvZGVdLCBz
Y3JpcHRJZHM6IFtdIH07CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdl
Ykluc3BlY3Rvci5TY3JpcHRNYXBwaW5nLkV2ZW50cy5VSVNvdXJjZUNvZGVMaXN0Q2hhbmdlZCwg
ZGF0YSk7CiAgICAgfSwKIAogICAgIC8qKgorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkV2
ZW50fSBldmVudAorICAgICAqLworICAgIF9zbmlwcGV0V2lsbEJlRXZhbHVhdGVkOiBmdW5jdGlv
bihldmVudCkKKyAgICB7CisgICAgICAgIHZhciBzbmlwcGV0ID0gLyoqIEB0eXBlIHtXZWJJbnNw
ZWN0b3IuU25pcHBldH0gKi8gZXZlbnQuZGF0YTsKKyAgICAgICAgdGhpcy5fcmVsZWFzZVNuaXBw
ZXRTY3JpcHQoc25pcHBldCk7ICAgICAgICAKKyAgICB9LAorCisgICAgLyoqCiAgICAgICogQHBh
cmFtIHtXZWJJbnNwZWN0b3IuU2NyaXB0fSBzY3JpcHQKICAgICAgKi8KICAgICBfY3JlYXRlVUlT
b3VyY2VDb2RlRm9yU2NyaXB0OiBmdW5jdGlvbihzY3JpcHQpCkBAIC00MDEsNyArNDY0LDYgQEAg
V2ViSW5zcGVjdG9yLlNuaXBwZXRzU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAg
IHZhciB1aVNvdXJjZUNvZGUgPSB0aGlzLl91aVNvdXJjZUNvZGVGb3JTbmlwcGV0LmdldChzbmlw
cGV0KTsKICAgICAgICAgdGhpcy5fcmVsZWFzZVNuaXBwZXRTY3JpcHQoc25pcHBldCk7CiAgICAg
ICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclNuaXBwZXQucmVtb3ZlKHNuaXBwZXQpOwotICAgICAg
ICB0aGlzLl9zbmlwcGV0Rm9yVUlTb3VyY2VDb2RlLnJlbW92ZSh1aVNvdXJjZUNvZGUpOwogICAg
ICAgICB2YXIgZGF0YSA9IHsgcmVtb3ZlZEl0ZW1zOiBbdWlTb3VyY2VDb2RlXSwgYWRkZWRJdGVt
czogW10sIHNjcmlwdElkczogW10gfTsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0
ZW5lcnMoV2ViSW5zcGVjdG9yLlNjcmlwdE1hcHBpbmcuRXZlbnRzLlVJU291cmNlQ29kZUxpc3RD
aGFuZ2VkLCBkYXRhKTsKICAgICB9LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGNhZTJjNzMwYzRjMWE5OTQ3MjZkY2ZmNzdl
NTNmOTE5ZjMyYTM5ZmUuLjc1YTM4MDcyYTFjNzMzNWI2YTFmMmZiMTI1NjMxYzU3OTA0N2NiOWQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsNSArMSwxNSBAQAogMjAxMi0wMy0xNCAgVnNldm9sb2QgVmxhc292ICA8dnNl
dmlrQGNocm9taXVtLm9yZz4KIAorICAgICAgICBXZWIgSW5zcGVjdG9yOiBNYWluU2NyaXB0TWFw
cGluZyBzaG91bGQgZGV0ZWN0IHNuaXBwZXQgc2NyaXB0cyBieSBtZWFucyBvZiBzb3VyY2VVUkwg
c2V0IGJlZm9yZSBldmFsdWF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODEwMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zbmlwcGV0cy1tb2RlbC1leHBlY3Rl
ZC50eHQ6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NuaXBwZXRzLW1vZGVsLmh0bWw6
CisKKzIwMTItMDMtMTQgIFZzZXZvbG9kIFZsYXNvdiAgPHZzZXZpa0BjaHJvbWl1bS5vcmc+CisK
ICAgICAgICAgV2ViIEluc3BlY3RvcjogQWRkIHNuaXBwZXRzIHRhYiB0byBzY3JpcHRzIG5hdmln
YXRvci4KICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgx
MDE4CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zbmlwcGV0
cy1tb2RlbC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc25p
cHBldHMtbW9kZWwtZXhwZWN0ZWQudHh0CmluZGV4IGQ0MzkzNTEzOWJiN2JmODNkNzM3NGQ5NmY2
NDFkMzNlZjEzMDM5ZDYuLmUyM2QxODQxYjUzNzkyZTI2ZDhkYWQwZWMxOTE4NTg2ZGMwYzllOTUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zbmlwcGV0cy1tb2Rl
bC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NuaXBw
ZXRzLW1vZGVsLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDcgQEAKLVRlc3RzIGhvdyBzbmlwcGV0
cyBtb2RlbCBzdG9yZXMsIHNhdmVzIGFuZCBsb2FkcyBzbmlwcGV0cworVGVzdHMgc25pcHBldHMg
bW9kZWwuCiAKKworUnVubmluZzogdGVzdENyZWF0ZVJlbmFtZUVkaXREZWxldGUKIER1bXBpbmcg
c2F2ZWQgc25pcHBldHM6CiBEdW1waW5nIG1vZGVsIHNuaXBwZXRzOgogU25pcHBldCBjcmVhdGVk
LgpAQCAtMzMsMyArMzUsMTQgQEAgQW5vdGhlciBzbmlwcGV0IGRlbGV0ZWQuCiBEdW1waW5nIHNh
dmVkIHNuaXBwZXRzOgogRHVtcGluZyBtb2RlbCBzbmlwcGV0czoKIAorUnVubmluZzogdGVzdEV2
YWx1YXRlCitEdW1waW5nIHNuaXBwZXQ6CisgICAgX2xhc3RFdmFsdWF0aW9uSW5kZXggPSAxCisg
ICAgbGFzdEV2YWx1YXRpb25Tb3VyY2VVUkwgPSBzbmlwcGV0czovLzFfMQorRHVtcGluZyBzbmlw
cGV0OgorICAgIF9sYXN0RXZhbHVhdGlvbkluZGV4ID0gMgorICAgIGxhc3RFdmFsdWF0aW9uU291
cmNlVVJMID0gc25pcHBldHM6Ly8yXzIKK0R1bXBpbmcgc25pcHBldDoKKyAgICBfbGFzdEV2YWx1
YXRpb25JbmRleCA9IDMKKyAgICBsYXN0RXZhbHVhdGlvblNvdXJjZVVSTCA9IHNuaXBwZXRzOi8v
MV8zCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zbmlwcGV0
cy1tb2RlbC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NuaXBwZXRzLW1v
ZGVsLmh0bWwKaW5kZXggY2JjZGZjNDQ5M2JkNmYwZGE2YjNjYzc1MzI1MzYxMzFhNjNkNTQxNy4u
M2U4Yjg5M2FhNmJhMjRlZDhlODUwNzZmMjgyODIyOThiZmZlNmFiYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NuaXBwZXRzLW1vZGVsLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NuaXBwZXRzLW1vZGVsLmh0bWwKQEAgLTQsNjIg
KzQsMTI2IEBACiA8c2NyaXB0PgogZnVuY3Rpb24gdGVzdCgpCiB7Ci0gICAgZnVuY3Rpb24gZHVt
cFNuaXBwZXRzKHNuaXBwZXRzKQorICAgIGZ1bmN0aW9uIHJlc2V0U25pcHBldHNTZXR0aW5ncygp
CiAgICAgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHNuaXBwZXRzLmxlbmd0aDsgKytp
KSB7Ci0gICAgICAgICAgICB2YXIgc25pcHBldCA9IHNuaXBwZXRzW2ldOwotICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBTbmlwcGV0OiBpZCA9ICIgKyBzbmlwcGV0Lmlk
ICsgIiwgbmFtZSA9ICciICsgc25pcHBldC5uYW1lICsgIicsIGNvbnRlbnQgPSAnIiArIHNuaXBw
ZXQuY29udGVudCArICInLiIpOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gZHVt
cFNhdmVkU25pcHBldHMoKQotICAgIHsKLSAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQo
IkR1bXBpbmcgc2F2ZWQgc25pcHBldHM6Iik7Ci0gICAgICAgIGR1bXBTbmlwcGV0cyhXZWJJbnNw
ZWN0b3Iuc25pcHBldHNNb2RlbC5fc25pcHBldHNTZXR0aW5nLmdldCgpKTsKLSAgICB9Ci0KLSAg
ICBmdW5jdGlvbiBkdW1wTW9kZWxTbmlwcGV0cygpCi0gICAgewotICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiRHVtcGluZyBtb2RlbCBzbmlwcGV0czoiKTsKLSAgICAgICAgZHVtcFNu
aXBwZXRzKFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLnNuaXBwZXRzKTsKKyAgICAgICAgV2Vi
SW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuX2xhc3RTbmlwcGV0SWRlbnRpZmllclNldHRpbmcuc2V0
KDApOworICAgICAgICBXZWJJbnNwZWN0b3Iuc25pcHBldHNNb2RlbC5fc25pcHBldHNTZXR0aW5n
LnNldChbXSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLl9sYXN0U25pcHBl
dEV2YWx1YXRpb25JbmRleFNldHRpbmcuc2V0KDApOwogICAgIH0KIAogICAgIC8vIEZJWE1FOiBS
ZW1vdmUgb25jZSBzbmlwcGV0cyBhcmUgdGFrZW4gb3V0IG9mIGV4cGVyaW1lbnRzLgogICAgIGlm
ICghV2ViSW5zcGVjdG9yLmV4cGVyaW1lbnRzU2V0dGluZ3Muc25pcHBldHNTdXBwb3J0LmlzRW5h
YmxlZCgpKQogICAgICAgICBXZWJJbnNwZWN0b3Iuc25pcHBldHNNb2RlbCA9IG5ldyBXZWJJbnNw
ZWN0b3IuU25pcHBldHNNb2RlbCgpOwogCi0gICAgZHVtcFNhdmVkU25pcHBldHMoKTsKLSAgICBk
dW1wTW9kZWxTbmlwcGV0cygpOwotICAgIHZhciBzbmlwcGV0ID0gV2ViSW5zcGVjdG9yLnNuaXBw
ZXRzTW9kZWwuY3JlYXRlU25pcHBldCgpOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJT
bmlwcGV0IGNyZWF0ZWQuIik7Ci0gICAgZHVtcFNhdmVkU25pcHBldHMoKTsKLSAgICBkdW1wTW9k
ZWxTbmlwcGV0cygpOwotICAgIHNuaXBwZXQubmFtZSA9ICJOZXcgc25pcHBldCBuYW1lIjsKLSAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU25pcHBldCByZW5hbWVkLiIpOwotICAgIGR1bXBT
YXZlZFNuaXBwZXRzKCk7Ci0gICAgZHVtcE1vZGVsU25pcHBldHMoKTsKLSAgICBzbmlwcGV0LmNv
bnRlbnQgPSAiTmV3IHNuaXBwZXQgY29udGVudCI7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIlNuaXBwZXQgY29udGVudCBjaGFuZ2VkLiIpOwotICAgIGR1bXBTYXZlZFNuaXBwZXRzKCk7
Ci0gICAgZHVtcE1vZGVsU25pcHBldHMoKTsKLSAgICB2YXIgYW5vdGhlclNuaXBwZXQgPSBXZWJJ
bnNwZWN0b3Iuc25pcHBldHNNb2RlbC5jcmVhdGVTbmlwcGV0KCk7Ci0gICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIkFub3RoZXIgc25pcHBldCBjcmVhdGVkLiIpOwotICAgIGR1bXBTYXZlZFNu
aXBwZXRzKCk7Ci0gICAgZHVtcE1vZGVsU25pcHBldHMoKTsKLSAgICBXZWJJbnNwZWN0b3Iuc25p
cHBldHNNb2RlbC5kZWxldGVTbmlwcGV0KHNuaXBwZXQpOwotICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJTbmlwcGV0IGRlbGV0ZWQuIik7Ci0gICAgZHVtcFNhdmVkU25pcHBldHMoKTsKLSAg
ICBkdW1wTW9kZWxTbmlwcGV0cygpOwotICAgIFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLmRl
bGV0ZVNuaXBwZXQoYW5vdGhlclNuaXBwZXQpOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJBbm90aGVyIHNuaXBwZXQgZGVsZXRlZC4iKTsKLSAgICBkdW1wU2F2ZWRTbmlwcGV0cygpOwot
ICAgIGR1bXBNb2RlbFNuaXBwZXRzKCk7CisgICAgSW5zcGVjdG9yVGVzdC5ydW5UZXN0U3VpdGUo
WworICAgICAgICBmdW5jdGlvbiB0ZXN0Q3JlYXRlUmVuYW1lRWRpdERlbGV0ZShuZXh0KQorICAg
ICAgICB7CisgICAgICAgICAgICBmdW5jdGlvbiBkdW1wU25pcHBldHMoc25pcHBldHMpCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzbmlwcGV0cy5s
ZW5ndGg7ICsraSkgeworICAgICAgICAgICAgICAgICAgICB2YXIgc25pcHBldCA9IHNuaXBwZXRz
W2ldOworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiICAgIFNu
aXBwZXQ6IGlkID0gIiArIHNuaXBwZXQuaWQgKyAiLCBuYW1lID0gJyIgKyBzbmlwcGV0Lm5hbWUg
KyAiJywgY29udGVudCA9ICciICsgc25pcHBldC5jb250ZW50ICsgIicuIik7CisgICAgICAgICAg
ICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBkdW1wU2F2ZWRT
bmlwcGV0cygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIkR1bXBpbmcgc2F2ZWQgc25pcHBldHM6Iik7CisgICAgICAgICAgICAgICAgZHVt
cFNuaXBwZXRzKFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLl9zbmlwcGV0c1NldHRpbmcuZ2V0
KCkpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlvbiBkdW1wTW9kZWxTbmlw
cGV0cygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRS
ZXN1bHQoIkR1bXBpbmcgbW9kZWwgc25pcHBldHM6Iik7CisgICAgICAgICAgICAgICAgZHVtcFNu
aXBwZXRzKFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLnNuaXBwZXRzKTsKKyAgICAgICAgICAg
IH0KKworICAgICAgICAgICAgcmVzZXRTbmlwcGV0c1NldHRpbmdzKCk7CiAKLSAgICBJbnNwZWN0
b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAgZHVtcFNhdmVkU25pcHBldHMoKTsK
KyAgICAgICAgICAgIGR1bXBNb2RlbFNuaXBwZXRzKCk7CisgICAgICAgICAgICB2YXIgc25pcHBl
dCA9IFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLmNyZWF0ZVNuaXBwZXQoKTsKKyAgICAgICAg
ICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTbmlwcGV0IGNyZWF0ZWQuIik7CisgICAgICAg
ICAgICBkdW1wU2F2ZWRTbmlwcGV0cygpOworICAgICAgICAgICAgZHVtcE1vZGVsU25pcHBldHMo
KTsKKyAgICAgICAgICAgIHNuaXBwZXQubmFtZSA9ICJOZXcgc25pcHBldCBuYW1lIjsKKyAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTbmlwcGV0IHJlbmFtZWQuIik7CisgICAg
ICAgICAgICBkdW1wU2F2ZWRTbmlwcGV0cygpOworICAgICAgICAgICAgZHVtcE1vZGVsU25pcHBl
dHMoKTsKKyAgICAgICAgICAgIHNuaXBwZXQuY29udGVudCA9ICJOZXcgc25pcHBldCBjb250ZW50
IjsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTbmlwcGV0IGNvbnRlbnQg
Y2hhbmdlZC4iKTsKKyAgICAgICAgICAgIGR1bXBTYXZlZFNuaXBwZXRzKCk7CisgICAgICAgICAg
ICBkdW1wTW9kZWxTbmlwcGV0cygpOworICAgICAgICAgICAgdmFyIGFub3RoZXJTbmlwcGV0ID0g
V2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuY3JlYXRlU25pcHBldCgpOworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFub3RoZXIgc25pcHBldCBjcmVhdGVkLiIpOworICAg
ICAgICAgICAgZHVtcFNhdmVkU25pcHBldHMoKTsKKyAgICAgICAgICAgIGR1bXBNb2RlbFNuaXBw
ZXRzKCk7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc25pcHBldHNNb2RlbC5kZWxldGVTbmlw
cGV0KHNuaXBwZXQpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNuaXBw
ZXQgZGVsZXRlZC4iKTsKKyAgICAgICAgICAgIGR1bXBTYXZlZFNuaXBwZXRzKCk7CisgICAgICAg
ICAgICBkdW1wTW9kZWxTbmlwcGV0cygpOworICAgICAgICAgICAgV2ViSW5zcGVjdG9yLnNuaXBw
ZXRzTW9kZWwuZGVsZXRlU25pcHBldChhbm90aGVyU25pcHBldCk7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiQW5vdGhlciBzbmlwcGV0IGRlbGV0ZWQuIik7CisgICAgICAg
ICAgICBkdW1wU2F2ZWRTbmlwcGV0cygpOworICAgICAgICAgICAgZHVtcE1vZGVsU25pcHBldHMo
KTsKKworICAgICAgICAgICAgbmV4dCgpOworICAgICAgICB9LAorCisgICAgICAgIGZ1bmN0aW9u
IHRlc3RFdmFsdWF0ZShuZXh0KQorICAgICAgICB7CisgICAgICAgICAgICByZXNldFNuaXBwZXRz
U2V0dGluZ3MoKTsKKworICAgICAgICAgICAgdmFyIHNuaXBwZXQxID0gV2ViSW5zcGVjdG9yLnNu
aXBwZXRzTW9kZWwuY3JlYXRlU25pcHBldCgpOworICAgICAgICAgICAgc25pcHBldDEubmFtZSA9
ICJTbmlwcGV0MSI7CisgICAgICAgICAgICBzbmlwcGV0MS5jb250ZW50ID0gIiI7CisgICAgICAg
ICAgICBzbmlwcGV0MS5jb250ZW50ICs9ICIvLyBUaGlzIHNuaXBwZXQgZG9lcyBub3RoaW5nLlxu
IjsKKyAgICAgICAgICAgIHNuaXBwZXQxLmNvbnRlbnQgKz0gInZhciBpID0gMisyO1xuIjsKKyAg
ICAgICAgICAgIHZhciBzbmlwcGV0MiA9IFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLmNyZWF0
ZVNuaXBwZXQoKTsKKyAgICAgICAgICAgIHNuaXBwZXQyLm5hbWUgPSAiU25pcHBldDIiOworICAg
ICAgICAgICAgc25pcHBldDIuY29udGVudCA9ICIiOworICAgICAgICAgICAgc25pcHBldDIuY29u
dGVudCArPSAiLy8gVGhpcyBzbmlwcGV0IGNyZWF0ZXMgYSBmdW5jdGlvbiB0aGF0IGRvZXMgbm90
aGluZy5cbiI7CisgICAgICAgICAgICBzbmlwcGV0Mi5jb250ZW50ICs9ICJmdW5jdGlvbiBkb2Vz
Tm90aGluZygpXG4iOworICAgICAgICAgICAgc25pcHBldDIuY29udGVudCArPSAie1xuIjsKKyAg
ICAgICAgICAgIHNuaXBwZXQyLmNvbnRlbnQgKz0gIiAgICB2YXIgIGkgPSAyKzI7XG4iOworICAg
ICAgICAgICAgc25pcHBldDIuY29udGVudCArPSAifVxuIjsKKworICAgICAgICAgICAgZnVuY3Rp
b24gZXZhbHVhdGVTbmlwcGV0QW5kRHVtcEV2YWx1YXRpb25EZXRhaWxzKHNuaXBwZXQsIGNhbGxi
YWNrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkU25p
ZmZlcihXZWJJbnNwZWN0b3IuU25pcHBldHNTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSwgImFkZFNj
cmlwdCIsIGR1bXBTY3JpcHQpOworICAgICAgICAgICAgICAgIHNuaXBwZXQuZXZhbHVhdGUoKTsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRHVtcGluZyBzbmlwcGV0
OiIpOworICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgX2xhc3RF
dmFsdWF0aW9uSW5kZXggPSAiICsgc25pcHBldC5fbGFzdEV2YWx1YXRpb25JbmRleCk7CisgICAg
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIiAgICBsYXN0RXZhbHVhdGlvblNv
dXJjZVVSTCA9ICIgKyBzbmlwcGV0Lmxhc3RFdmFsdWF0aW9uU291cmNlVVJMKTsKKyAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhzbmlwcGV0LCBXZWJJbnNwZWN0b3Iu
c25pcHBldHNNb2RlbC5zbmlwcGV0Rm9yU291cmNlVVJMKHNuaXBwZXQubGFzdEV2YWx1YXRpb25T
b3VyY2VVUkwpLCAiU25pcHBldCBjYW4gbm90IGJlIGlkZW50aWZpZWQgYnkgaXRzIGV2YWx1YXRp
b24gc291cmNlVVJMLiIpOworCisgICAgICAgICAgICAgICAgZnVuY3Rpb24gZHVtcFNjcmlwdChz
Y3JpcHQpCisgICAgICAgICAgICAgICAgeworICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JU
ZXN0LmFkZFJlc3VsdCgiU25pcHBldCBzY3JpcHQgYWRkZWQsIHNvdXJjZVVSTCA9ICIgKyBzY3Jp
cHQuc291cmNlVVJMKTsKKyAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soKTsKKyAgICAgICAg
ICAgICAgICB9CisKKyAgICAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyBzaG91bGQgYmUgcmVt
b3ZlZCBvbmNlIHNuaXBwZXRzIGV2YWx1YXRpb24gaXRzZWxmIGlzIGltcGxlbWVudGVkLgorICAg
ICAgICAgICAgICAgIGNhbGxiYWNrKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGV2
YWx1YXRlU25pcHBldEFuZER1bXBFdmFsdWF0aW9uRGV0YWlscyhzbmlwcGV0MSwgc3RlcDIpOwor
CisgICAgICAgICAgICBmdW5jdGlvbiBzdGVwMigpCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgZXZhbHVhdGVTbmlwcGV0QW5kRHVtcEV2YWx1YXRpb25EZXRhaWxzKHNuaXBwZXQyLCBz
dGVwMyk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIHN0ZXAzKCkKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBldmFsdWF0ZVNuaXBwZXRBbmREdW1wRXZhbHVh
dGlvbkRldGFpbHMoc25pcHBldDEsIG5leHQpOworICAgICAgICAgICAgfQorICAgICAgICB9Cisg
ICAgXSk7CiB9OwogPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+
Ci08cD5UZXN0cyBob3cgc25pcHBldHMgbW9kZWwgc3RvcmVzLCBzYXZlcyBhbmQgbG9hZHMgc25p
cHBldHM8L3A+Cis8cD5UZXN0cyBzbmlwcGV0cyBtb2RlbC48L3A+CiA8L2JvZHk+CiA8L2h0bWw+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132060</attachid>
            <date>2012-03-15 09:15:10 -0700</date>
            <delta_ts>2012-03-15 10:17:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81031-20120315201508.patch</filename>
            <type>text/plain</type>
            <size>20591</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQ3Njc1M2NjODRkZjgz
MDgzYWVlNDI2ZjY2ODllN2I3NDNmYjMyNS4uZWQ3NWE5MWFmMDUwMzVmOWUxNGRiMzk3MjdjYzg0
ZWFiNDE4MDVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAzLTE1ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IE1haW5TY3JpcHRNYXBwaW5nIHNob3VsZCBkZXRlY3Qgc25pcHBldCBzY3JpcHRzIGJ5IG1l
YW5zIG9mIHNvdXJjZVVSTCBzZXQgYmVmb3JlIGV2YWx1YXRpb24uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTAzMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tbmlw
cGV0c01vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlLl9zYXZlU2V0dGluZ3Mp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlLmRlbGV0ZVNu
aXBwZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlLl9z
bmlwcGV0QWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90
eXBlLl9zb3VyY2VVUkxGb3JTbmlwcGV0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TbmlwcGV0
c01vZGVsLnByb3RvdHlwZS5zbmlwcGV0SWRGb3JTb3VyY2VVUkwpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlLnNuaXBwZXRGb3JTb3VyY2VVUkwpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXQucHJvdG90eXBlLmV2YWx1YXRlKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TbmlwcGV0c1NjcmlwdE1hcHBpbmcpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNuaXBwZXRzU2NyaXB0TWFwcGluZy5wcm90b3R5cGUudWlMb2NhdGlvblRvUmF3TG9jYXRp
b24uZ2V0IGlmKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TbmlwcGV0c1NjcmlwdE1hcHBpbmcu
cHJvdG90eXBlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TbmlwcGV0c1NjcmlwdE1hcHBpbmcucHJvdG90eXBlLl9yZWxlYXNlZFVJU291cmNlQ29kZXMp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzU2NyaXB0TWFwcGluZy5wcm90b3R5cGUu
X3NuaXBwZXRBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU25pcHBldHNTY3JpcHRNYXBw
aW5nLnByb3RvdHlwZS5fc25pcHBldFdpbGxCZUV2YWx1YXRlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU25pcHBldHNTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fc25pcHBldFJlbW92ZWQuZ2V0
IHRoaXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzU2NyaXB0TWFwcGluZy5wcm90
b3R5cGUuX3NuaXBwZXRSZW1vdmVkKToKKwogMjAxMi0wMy0xNSAgTmlrb2xhcyBaaW1tZXJtYW5u
ICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBFbmFibGUgYW5pbVZhbCBzdXBwb3J0
IGZvciBTVkdOdW1iZXJMaXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NuaXBwZXRzTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NuaXBwZXRzTW9kZWwuanMKaW5kZXggNzhmNGFiMzgzZDY1OTFjOWJhMDUzZmZmZjcw
MWYzMWE0ODUwZThlMC4uYTNjOGM3YTNkNTUxNTdjNmUxNDY5OTdhYzE1Y2YwODhlNDFiMTUxYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TbmlwcGV0c01v
ZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU25pcHBldHNN
b2RlbC5qcwpAQCAtMzIsNDEgKzMyLDM1IEBACiAgKi8KIFdlYkluc3BlY3Rvci5TbmlwcGV0c01v
ZGVsID0gZnVuY3Rpb24oKQogewotICAgIC8qKiBAdHlwZSB7QXJyYXkuPFdlYkluc3BlY3Rvci5T
bmlwcGV0Pn0gKi8gdGhpcy5fc25pcHBldHM7CisgICAgdGhpcy5fc25pcHBldHMgPSB7fTsKIAog
ICAgIHRoaXMuX2xhc3RTbmlwcGV0SWRlbnRpZmllclNldHRpbmcgPSBXZWJJbnNwZWN0b3Iuc2V0
dGluZ3MuY3JlYXRlU2V0dGluZygibGFzdFNuaXBwZXRJZGVudGlmaWVyIiwgMCk7CiAgICAgdGhp
cy5fc25pcHBldHNTZXR0aW5nID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLmNyZWF0ZVNldHRpbmco
InNuaXBwZXRzIiwgW10pOworICAgIHRoaXMuX2xhc3RTbmlwcGV0RXZhbHVhdGlvbkluZGV4U2V0
dGluZyA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5jcmVhdGVTZXR0aW5nKCJsYXN0U25pcHBldEV2
YWx1YXRpb25JbmRleCIsIDApOwogCiAgICAgdGhpcy5fbG9hZFNldHRpbmdzKCk7CiB9CiAKK1dl
Ykluc3BlY3Rvci5TbmlwcGV0c01vZGVsLnNuaXBwZXRzU291cmNlVVJMUHJlZml4ID0gInNuaXBw
ZXRzOi8vIjsKKwogV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwuRXZlbnRUeXBlcyA9IHsKICAg
ICBTbmlwcGV0QWRkZWQ6ICJTbmlwcGV0QWRkZWQiLAorICAgIFNuaXBwZXRXaWxsQmVFdmFsdWF0
ZWQ6ICJTbmlwcGV0V2lsbEJlRXZhbHVhdGVkIiwKICAgICBTbmlwcGV0UmVuYW1lZDogIlNuaXBw
ZXRSZW5hbWVkIiwKICAgICBTbmlwcGV0UmVtb3ZlZDogIlNuaXBwZXRSZW1vdmVkIiwKIH0KIAog
V2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlID0gewotICAgIC8qKgotICAgICAq
IEByZXR1cm4ge0FycmF5LjxXZWJJbnNwZWN0b3IuU25pcHBldD59Ci0gICAgICovCi0gICAgZ2V0
IHNuaXBwZXRzKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9zbmlwcGV0cy5zbGljZSgp
OwotICAgIH0sCi0KICAgICBfc2F2ZVNldHRpbmdzOiBmdW5jdGlvbigpCiAgICAgewogICAgICAg
ICB2YXIgc2F2ZWRTbmlwcGV0cyA9IFtdOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRo
aXMuX3NuaXBwZXRzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgc2F2ZWRTbmlwcGV0cy5wdXNo
KHRoaXMuX3NuaXBwZXRzW2ldLnNlcmlhbGl6ZVRvT2JqZWN0KCkpOwotCisgICAgICAgIGZvciAo
dmFyIGlkIGluIHRoaXMuX3NuaXBwZXRzKQorICAgICAgICAgICAgc2F2ZWRTbmlwcGV0cy5wdXNo
KHRoaXMuX3NuaXBwZXRzW2lkXS5zZXJpYWxpemVUb09iamVjdCgpKTsKICAgICAgICAgdGhpcy5f
c25pcHBldHNTZXR0aW5nLnNldChzYXZlZFNuaXBwZXRzKTsKICAgICB9LAogCiAgICAgX2xvYWRT
ZXR0aW5nczogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5fc25pcHBldHMgPSBbXTsK
ICAgICAgICAgdmFyIHNhdmVkU25pcHBldHMgPSB0aGlzLl9zbmlwcGV0c1NldHRpbmcuZ2V0KCk7
CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2F2ZWRTbmlwcGV0cy5sZW5ndGg7ICsraSkK
ICAgICAgICAgICAgIHRoaXMuX3NuaXBwZXRBZGRlZChXZWJJbnNwZWN0b3IuU25pcHBldC5mcm9t
T2JqZWN0KHNhdmVkU25pcHBldHNbaV0pKTsKQEAgLTc3LDE0ICs3MSw5IEBAIFdlYkluc3BlY3Rv
ci5TbmlwcGV0c01vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBkZWxldGVTbmlwcGV0
OiBmdW5jdGlvbihzbmlwcGV0KQogICAgIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0
aGlzLl9zbmlwcGV0cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgaWYgKHNuaXBwZXQuaWQg
PT09IHRoaXMuX3NuaXBwZXRzW2ldLmlkKSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5fc25pcHBl
dHMuc3BsaWNlKGksIDEpOwotICAgICAgICAgICAgICAgIHRoaXMuX3NhdmVTZXR0aW5ncygpOwot
ICAgICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rv
ci5TbmlwcGV0c01vZGVsLkV2ZW50VHlwZXMuU25pcHBldFJlbW92ZWQsIHNuaXBwZXQpOwotICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgICAgIGRl
bGV0ZSB0aGlzLl9zbmlwcGV0c1tzbmlwcGV0LmlkXTsKKyAgICAgICAgdGhpcy5fc2F2ZVNldHRp
bmdzKCk7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rv
ci5TbmlwcGV0c01vZGVsLkV2ZW50VHlwZXMuU25pcHBldFJlbW92ZWQsIHNuaXBwZXQpOwogICAg
IH0sCiAKICAgICAvKioKQEAgLTkyLDggKzgxLDkgQEAgV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9k
ZWwucHJvdG90eXBlID0gewogICAgICAqLwogICAgIGNyZWF0ZVNuaXBwZXQ6IGZ1bmN0aW9uKCkK
ICAgICB7Ci0gICAgICAgIHZhciBzbmlwcGV0SWQgPSB0aGlzLl9sYXN0U25pcHBldElkZW50aWZp
ZXJTZXR0aW5nLmdldCgpICsgMTsKLSAgICAgICAgdGhpcy5fbGFzdFNuaXBwZXRJZGVudGlmaWVy
U2V0dGluZy5zZXQoc25pcHBldElkKTsKKyAgICAgICAgdmFyIG5leHRJZCA9IHRoaXMuX2xhc3RT
bmlwcGV0SWRlbnRpZmllclNldHRpbmcuZ2V0KCkgKyAxOworICAgICAgICB2YXIgc25pcHBldElk
ID0gU3RyaW5nKG5leHRJZCk7CisgICAgICAgIHRoaXMuX2xhc3RTbmlwcGV0SWRlbnRpZmllclNl
dHRpbmcuc2V0KG5leHRJZCk7CiAgICAgICAgIHZhciBzbmlwcGV0ID0gbmV3IFdlYkluc3BlY3Rv
ci5TbmlwcGV0KHRoaXMsIHNuaXBwZXRJZCk7CiAgICAgICAgIHRoaXMuX3NuaXBwZXRBZGRlZChz
bmlwcGV0KTsKICAgICAgICAgdGhpcy5fc2F2ZVNldHRpbmdzKCk7CkBAIC0xMDYsMTIgKzk2LDEy
IEBAIFdlYkluc3BlY3Rvci5TbmlwcGV0c01vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAg
ICBfc25pcHBldEFkZGVkOiBmdW5jdGlvbihzbmlwcGV0KQogICAgIHsKLSAgICAgICAgdGhpcy5f
c25pcHBldHMucHVzaChzbmlwcGV0KTsKKyAgICAgICAgdGhpcy5fc25pcHBldHNbc25pcHBldC5p
ZF0gPSBzbmlwcGV0OwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJ
bnNwZWN0b3IuU25pcHBldHNNb2RlbC5FdmVudFR5cGVzLlNuaXBwZXRBZGRlZCwgc25pcHBldCk7
CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzbmlwcGV0SWQKKyAg
ICAgKiBAcGFyYW0ge3N0cmluZ30gc25pcHBldElkCiAgICAgICovCiAgICAgX3NuaXBwZXRDb250
ZW50VXBkYXRlZDogZnVuY3Rpb24oc25pcHBldElkKQogICAgIHsKQEAgLTEyOCwxMiArMTE4LDMy
IEBAIFdlYkluc3BlY3Rvci5TbmlwcGV0c01vZGVsLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAg
ICAgLyoqCi0gICAgICogQHBhcmFtIHtudW1iZXJ9IHNuaXBwZXRJZAotICAgICAqIEByZXR1cm4g
e1dlYkluc3BlY3Rvci5TbmlwcGV0fHVuZGVmaW5lZH0KKyAgICAgKiBAcGFyYW0ge1dlYkluc3Bl
Y3Rvci5TbmlwcGV0fSBzbmlwcGV0CisgICAgICovCisgICAgX2V2YWx1YXRlU25pcHBldDogZnVu
Y3Rpb24oc25pcHBldCkKKyAgICB7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKFdlYkluc3BlY3Rvci5TbmlwcGV0c01vZGVsLkV2ZW50VHlwZXMuU25pcHBldFdpbGxCZUV2
YWx1YXRlZCwgc25pcHBldCk7CisgICAgICAgIHZhciBldmFsdWF0aW9uSW5kZXggPSB0aGlzLl9s
YXN0U25pcHBldEV2YWx1YXRpb25JbmRleFNldHRpbmcuZ2V0KCkgKyAxOworICAgICAgICB0aGlz
Ll9sYXN0U25pcHBldEV2YWx1YXRpb25JbmRleFNldHRpbmcuc2V0KGV2YWx1YXRpb25JbmRleCk7
CisKKyAgICAgICAgdmFyIHNvdXJjZVVSTCA9IHRoaXMuX3NvdXJjZVVSTEZvclNuaXBwZXQoc25p
cHBldCwgZXZhbHVhdGlvbkluZGV4KTsKKyAgICAgICAgc25pcHBldC5fbGFzdEV2YWx1YXRpb25T
b3VyY2VVUkwgPSBzb3VyY2VVUkw7CisgICAgICAgIHZhciBleHByZXNzaW9uID0gIlxuLy9AIHNv
dXJjZVVSTD0iICsgc291cmNlVVJMICsgIlxuIiArIHNuaXBwZXQuY29udGVudDsKKyAgICAgICAg
Ly8gRklYTUU6IGV2YWx1YXRlIHNuaXBwZXQgaGVyZS4KKworICAgICAgICByZXR1cm4gZXZhbHVh
dGlvbkluZGV4OworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rv
ci5TbmlwcGV0fSBzbmlwcGV0CisgICAgICogQHBhcmFtIHtzdHJpbmd9IGV2YWx1YXRpb25JbmRl
eAorICAgICAqIEByZXR1cm4ge3N0cmluZ30KICAgICAgKi8KLSAgICBzbmlwcGV0Rm9ySWQ6IGZ1
bmN0aW9uKHNuaXBwZXRJZCkKKyAgICBfc291cmNlVVJMRm9yU25pcHBldDogZnVuY3Rpb24oc25p
cHBldCwgZXZhbHVhdGlvbkluZGV4KQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMuX3NuaXBw
ZXRzW3NuaXBwZXRJZF07CisgICAgICAgIHZhciBzbmlwcGV0c1ByZWZpeCA9IFdlYkluc3BlY3Rv
ci5TbmlwcGV0c01vZGVsLnNuaXBwZXRzU291cmNlVVJMUHJlZml4OworICAgICAgICB2YXIgZXZh
bHVhdGlvblN1ZmZpeCA9IGV2YWx1YXRpb25JbmRleCA/ICJfIiArIGV2YWx1YXRpb25JbmRleCA6
ICIiOworICAgICAgICByZXR1cm4gc25pcHBldHNQcmVmaXggKyBzbmlwcGV0LmlkICsgZXZhbHVh
dGlvblN1ZmZpeDsKICAgICB9LAogCiAgICAgLyoqCkBAIC0xNDIsOCArMTUyLDEyIEBAIFdlYklu
c3BlY3Rvci5TbmlwcGV0c01vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBzbmlwcGV0
SWRGb3JTb3VyY2VVUkw6IGZ1bmN0aW9uKHNvdXJjZVVSTCkKICAgICB7Ci0gICAgICAgIC8vIEZJ
WE1FOiB0byBiZSBpbXBsZW1lbnRlZC4KLSAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIHZh
ciBzbmlwcGV0c1ByZWZpeCA9IFdlYkluc3BlY3Rvci5TbmlwcGV0c01vZGVsLnNuaXBwZXRzU291
cmNlVVJMUHJlZml4OworICAgICAgICBpZiAoc291cmNlVVJMLmluZGV4T2Yoc25pcHBldHNQcmVm
aXgpICE9PSAwKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAgIHZhciBzcGxpdHRl
ZFVSTCA9IHNvdXJjZVVSTC5zdWJzdHJpbmcoc25pcHBldHNQcmVmaXgubGVuZ3RoKS5zcGxpdCgi
XyIpOworICAgICAgICB2YXIgc25pcHBldElkID0gc3BsaXR0ZWRVUkxbMF07CisgICAgICAgIHJl
dHVybiBzbmlwcGV0SWQ7CiAgICAgfSwKIAogICAgIC8qKgpAQCAtMTUyLDggKzE2NiwxMyBAQCBX
ZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgc25p
cHBldEZvclNvdXJjZVVSTDogZnVuY3Rpb24oc291cmNlVVJMKQogICAgIHsKLSAgICAgICAgLy8g
RklYTUU6IHRvIGJlIGltcGxlbWVudGVkLgotICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAg
dmFyIHNuaXBwZXRJZCA9IHRoaXMuc25pcHBldElkRm9yU291cmNlVVJMKHNvdXJjZVVSTCk7Cisg
ICAgICAgIGlmICghc25pcHBldElkKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAg
IHZhciBzbmlwcGV0ID0gdGhpcy5fc25pcHBldHNbc25pcHBldElkXTsKKyAgICAgICAgaWYgKCFz
bmlwcGV0IHx8IHNuaXBwZXQuX2xhc3RFdmFsdWF0aW9uU291cmNlVVJMICE9PSBzb3VyY2VVUkwp
CisgICAgICAgICAgICByZXR1cm4gbnVsbDsKKyAgICAgICAgcmV0dXJuIHNuaXBwZXQ7CiAgICAg
fQogfQogCkBAIC0xNjMsNyArMTgyLDcgQEAgV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJv
dG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3QucHJvdG90eXBlOwogICogQGNv
bnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9yLk9iamVjdH0KICAqIEBwYXJhbSB7
V2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWx9IG1vZGVsCi0gKiBAcGFyYW0ge251bWJlcn0gaWQK
KyAqIEBwYXJhbSB7c3RyaW5nfSBpZAogICogQHBhcmFtIHtzdHJpbmc9fSBuYW1lCiAgKiBAcGFy
YW0ge3N0cmluZz19IGNvbnRlbnQKICAqLwpAQCAtMjI5LDYgKzI0OCwxMSBAQCBXZWJJbnNwZWN0
b3IuU25pcHBldC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMuX21vZGVsLl9zbmlwcGV0Q29u
dGVudFVwZGF0ZWQodGhpcy5faWQpOwogICAgIH0sCiAKKyAgICBldmFsdWF0ZTogZnVuY3Rpb24o
KQorICAgIHsKKyAgICAgICAgdGhpcy5fbW9kZWwuX2V2YWx1YXRlU25pcHBldCh0aGlzKTsKKyAg
ICB9LAorCiAgICAgLyoqCiAgICAgICogQHJldHVybiB7T2JqZWN0fQogICAgICAqLwpAQCAtMjUz
LDEwICsyNzcsMTAgQEAgV2ViSW5zcGVjdG9yLlNuaXBwZXRzU2NyaXB0TWFwcGluZyA9IGZ1bmN0
aW9uKCkKICAgICB0aGlzLl9zbmlwcGV0Rm9yU2NyaXB0SWQgPSB7fTsKICAgICB0aGlzLl91aVNv
dXJjZUNvZGVGb3JTY3JpcHRJZCA9IHt9OwogICAgIHRoaXMuX3NjcmlwdEZvclVJU291cmNlQ29k
ZSA9IG5ldyBNYXAoKTsKLSAgICB0aGlzLl9zbmlwcGV0Rm9yVUlTb3VyY2VDb2RlID0gbmV3IE1h
cCgpOwogICAgIHRoaXMuX3VpU291cmNlQ29kZUZvclNuaXBwZXQgPSBuZXcgTWFwKCk7CiAgICAg
CiAgICAgV2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNw
ZWN0b3IuU25pcHBldHNNb2RlbC5FdmVudFR5cGVzLlNuaXBwZXRBZGRlZCwgdGhpcy5fc25pcHBl
dEFkZGVkLmJpbmQodGhpcykpOworICAgIFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLmFkZEV2
ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwuRXZlbnRUeXBlcy5TbmlwcGV0
V2lsbEJlRXZhbHVhdGVkLCB0aGlzLl9zbmlwcGV0V2lsbEJlRXZhbHVhdGVkLmJpbmQodGhpcykp
OwogICAgIFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5z
cGVjdG9yLlNuaXBwZXRzTW9kZWwuRXZlbnRUeXBlcy5TbmlwcGV0UmVtb3ZlZCwgdGhpcy5fc25p
cHBldFJlbW92ZWQuYmluZCh0aGlzKSk7CiB9CiAKQEAgLTI5MCw4ICszMTQsNyBAQCBXZWJJbnNw
ZWN0b3IuU25pcHBldHNTY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKCFz
Y3JpcHQpCiAgICAgICAgICAgICByZXR1cm4gbnVsbDsKIAotICAgICAgICB2YXIgc25pcHBldCA9
IHRoaXMuX3NuaXBwZXRGb3JVSVNvdXJjZUNvZGUuZ2V0KHVpU291cmNlQ29kZSk7Ci0gICAgICAg
IGlmIChzbmlwcGV0KSB7CisgICAgICAgIGlmICh1aVNvdXJjZUNvZGUuaXNTbmlwcGV0KSB7CiAg
ICAgICAgICAgICB2YXIgcmF3TGluZU51bWJlciA9IGxpbmVOdW1iZXIgKyBXZWJJbnNwZWN0b3Iu
U25pcHBldC5ldmFsdWF0ZWRTbmlwcGV0RXh0cmFMaW5lc0NvdW50OwogICAgICAgICAgICAgcmV0
dXJuIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmNyZWF0ZVJhd0xvY2F0aW9uKHNjcmlwdCwg
cmF3TGluZU51bWJlciwgY29sdW1uTnVtYmVyKTsKICAgICAgICAgfQpAQCAtMzE5LDcgKzM0Miw3
IEBAIFdlYkluc3BlY3Rvci5TbmlwcGV0c1NjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAg
ICAgICB2YXIgcmVzdWx0ID0gW107CiAgICAgICAgIGZvciAodmFyIHNjcmlwdElkIGluIHRoaXMu
X3VpU291cmNlQ29kZUZvclNjcmlwdElkKSB7CiAgICAgICAgICAgICB2YXIgdWlTb3VyY2VDb2Rl
ID0gdGhpcy5fdWlTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2NyaXB0SWRdOwotICAgICAgICAgICAg
aWYgKHRoaXMuX3NuaXBwZXRGb3JVSVNvdXJjZUNvZGUuZ2V0KHVpU291cmNlQ29kZSkpCisgICAg
ICAgICAgICBpZiAodWlTb3VyY2VDb2RlLmlzU25pcHBldCkKICAgICAgICAgICAgICAgICBjb250
aW51ZTsKICAgICAgICAgICAgIHJlc3VsdC5wdXNoKHVpU291cmNlQ29kZSk7CiAgICAgICAgIH0K
QEAgLTMzNiw4ICszNTksOSBAQCBXZWJJbnNwZWN0b3IuU25pcHBldHNTY3JpcHRNYXBwaW5nLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuX2NyZWF0ZVVJU291cmNlQ29kZUZvclNjcmlw
dChzY3JpcHQpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHRoaXMu
X3JlbGVhc2VTbmlwcGV0U2NyaXB0KHNuaXBwZXQpOyAgICAgICAgCiAgICAgICAgIHZhciB1aVNv
dXJjZUNvZGUgPSB0aGlzLl91aVNvdXJjZUNvZGVGb3JTbmlwcGV0LmdldChzbmlwcGV0KTsKKyAg
ICAgICAgY29uc29sZS5hc3NlcnQoIXRoaXMuX3NjcmlwdEZvclVJU291cmNlQ29kZS5nZXQodWlT
b3VyY2VDb2RlKSk7CisKICAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yU2NyaXB0SWRbc2Ny
aXB0LnNjcmlwdElkXSA9IHVpU291cmNlQ29kZTsKICAgICAgICAgdGhpcy5fc25pcHBldEZvclNj
cmlwdElkW3NjcmlwdC5zY3JpcHRJZF0gPSBzbmlwcGV0OwogICAgICAgICB0aGlzLl9zY3JpcHRG
b3JVSVNvdXJjZUNvZGUucHV0KHVpU291cmNlQ29kZSwgc2NyaXB0KTsKQEAgLTM1NywxMiArMzgx
LDIxIEBAIFdlYkluc3BlY3Rvci5TbmlwcGV0c1NjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewog
ICAgICAgICB1aVNvdXJjZUNvZGUuaXNTbmlwcGV0ID0gdHJ1ZTsKICAgICAgICAgdWlTb3VyY2VD
b2RlLmlzRWRpdGFibGUgPSB0cnVlOwogICAgICAgICB0aGlzLl91aVNvdXJjZUNvZGVGb3JTbmlw
cGV0LnB1dChzbmlwcGV0LCB1aVNvdXJjZUNvZGUpOwotICAgICAgICB0aGlzLl9zbmlwcGV0Rm9y
VUlTb3VyY2VDb2RlLnB1dCh1aVNvdXJjZUNvZGUsIHNuaXBwZXQpOworICAgICAgICB1aVNvdXJj
ZUNvZGUuc25pcHBldCA9IHNuaXBwZXQ7CiAgICAgICAgIHZhciBkYXRhID0geyByZW1vdmVkSXRl
bXM6IFtdLCBhZGRlZEl0ZW1zOiBbdWlTb3VyY2VDb2RlXSwgc2NyaXB0SWRzOiBbXSB9OwogICAg
ICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuU2NyaXB0TWFw
cGluZy5FdmVudHMuVUlTb3VyY2VDb2RlTGlzdENoYW5nZWQsIGRhdGEpOwogICAgIH0sCiAKICAg
ICAvKioKKyAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5FdmVudH0gZXZlbnQKKyAgICAgKi8K
KyAgICBfc25pcHBldFdpbGxCZUV2YWx1YXRlZDogZnVuY3Rpb24oZXZlbnQpCisgICAgeworICAg
ICAgICB2YXIgc25pcHBldCA9IC8qKiBAdHlwZSB7V2ViSW5zcGVjdG9yLlNuaXBwZXR9ICovIGV2
ZW50LmRhdGE7CisgICAgICAgIHRoaXMuX3JlbGVhc2VTbmlwcGV0U2NyaXB0KHNuaXBwZXQpOwor
ICAgIH0sCisKKyAgICAvKioKICAgICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TY3JpcHR9IHNj
cmlwdAogICAgICAqLwogICAgIF9jcmVhdGVVSVNvdXJjZUNvZGVGb3JTY3JpcHQ6IGZ1bmN0aW9u
KHNjcmlwdCkKQEAgLTQwMSw3ICs0MzQsNiBAQCBXZWJJbnNwZWN0b3IuU25pcHBldHNTY3JpcHRN
YXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3Vp
U291cmNlQ29kZUZvclNuaXBwZXQuZ2V0KHNuaXBwZXQpOwogICAgICAgICB0aGlzLl9yZWxlYXNl
U25pcHBldFNjcmlwdChzbmlwcGV0KTsKICAgICAgICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yU25p
cHBldC5yZW1vdmUoc25pcHBldCk7Ci0gICAgICAgIHRoaXMuX3NuaXBwZXRGb3JVSVNvdXJjZUNv
ZGUucmVtb3ZlKHVpU291cmNlQ29kZSk7CiAgICAgICAgIHZhciBkYXRhID0geyByZW1vdmVkSXRl
bXM6IFt1aVNvdXJjZUNvZGVdLCBhZGRlZEl0ZW1zOiBbXSwgc2NyaXB0SWRzOiBbXSB9OwogICAg
ICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuU2NyaXB0TWFw
cGluZy5FdmVudHMuVUlTb3VyY2VDb2RlTGlzdENoYW5nZWQsIGRhdGEpOwogICAgIH0sCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggZDkzNmUzZjJlZGJjZmE0MWEyYjAyZmM3NWQ2ZDhjNDIzOTVjNDU5NS4uM2FiMjYzZGM0ZGQ4
MTAyNDIyYTVmOTM0ZDgyYjYzYjRiZDhkOGQ3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDEy
LTAzLTE1ICBWc2V2b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFdlYiBJbnNwZWN0b3I6IE1haW5TY3JpcHRNYXBwaW5nIHNob3VsZCBkZXRlY3Qgc25pcHBldCBz
Y3JpcHRzIGJ5IG1lYW5zIG9mIHNvdXJjZVVSTCBzZXQgYmVmb3JlIGV2YWx1YXRpb24uCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTAzMQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Rl
YnVnZ2VyL3NuaXBwZXRzLW1vZGVsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZGVidWdnZXIvc25pcHBldHMtbW9kZWwuaHRtbDoKKwogMjAxMi0wMy0xNSAgU3RlcGhlbiBXaGl0
ZSAgPHNlbm9yYmxhbmNvQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbY2hyb21pdW1dIFVucmV2
aWV3ZWQgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL3NuaXBwZXRzLW1vZGVsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9zbmlwcGV0cy1tb2RlbC1leHBlY3RlZC50eHQKaW5kZXggZDQzOTM1MTM5YmI3YmY4
M2Q3Mzc0ZDk2ZjY0MWQzM2VmMTMwMzlkNi4uZmYyNjdmZGRjY2Q4MTU2NTViMWI4OGY5Njg5OTZj
ZmExNzgyYjMzOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3Nu
aXBwZXRzLW1vZGVsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvc25pcHBldHMtbW9kZWwtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNyBAQAotVGVzdHMg
aG93IHNuaXBwZXRzIG1vZGVsIHN0b3Jlcywgc2F2ZXMgYW5kIGxvYWRzIHNuaXBwZXRzCitUZXN0
cyBzbmlwcGV0cyBtb2RlbC4KIAorCitSdW5uaW5nOiB0ZXN0Q3JlYXRlUmVuYW1lRWRpdERlbGV0
ZQogRHVtcGluZyBzYXZlZCBzbmlwcGV0czoKIER1bXBpbmcgbW9kZWwgc25pcHBldHM6CiBTbmlw
cGV0IGNyZWF0ZWQuCkBAIC0zMywzICszNSw4IEBAIEFub3RoZXIgc25pcHBldCBkZWxldGVkLgog
RHVtcGluZyBzYXZlZCBzbmlwcGV0czoKIER1bXBpbmcgbW9kZWwgc25pcHBldHM6CiAKK1J1bm5p
bmc6IHRlc3RFdmFsdWF0ZQorTGFzdCBldmFsdWF0aW9uIHNvdXJjZSB1cmwgZm9yIHNuaXBwZXQ6
IHNuaXBwZXRzOi8vMV8xCitMYXN0IGV2YWx1YXRpb24gc291cmNlIHVybCBmb3Igc25pcHBldDog
c25pcHBldHM6Ly8yXzIKK0xhc3QgZXZhbHVhdGlvbiBzb3VyY2UgdXJsIGZvciBzbmlwcGV0OiBz
bmlwcGV0czovLzFfMworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvc25pcHBldHMtbW9kZWwuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9z
bmlwcGV0cy1tb2RlbC5odG1sCmluZGV4IGNiY2RmYzQ0OTNiZDZmMGRhNmIzY2M3NTMyNTM2MTMx
YTYzZDU0MTcuLmRhYTYwYzJjMDRjMjI2ZDM4NmU4ZTA0ZjFjNGE2ODMyNTY0Y2IxZGIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zbmlwcGV0cy1tb2RlbC5odG1s
CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zbmlwcGV0cy1tb2RlbC5odG1s
CkBAIC00LDYyICs0LDEyNyBAQAogPHNjcmlwdD4KIGZ1bmN0aW9uIHRlc3QoKQogewotICAgIGZ1
bmN0aW9uIGR1bXBTbmlwcGV0cyhzbmlwcGV0cykKKyAgICBmdW5jdGlvbiByZXNldFNuaXBwZXRz
U2V0dGluZ3MoKQogICAgIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBzbmlwcGV0cy5s
ZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIHNuaXBwZXQgPSBzbmlwcGV0c1tpXTsKLSAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgU25pcHBldDogaWQgPSAiICsg
c25pcHBldC5pZCArICIsIG5hbWUgPSAnIiArIHNuaXBwZXQubmFtZSArICInLCBjb250ZW50ID0g
JyIgKyBzbmlwcGV0LmNvbnRlbnQgKyAiJy4iKTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGZ1
bmN0aW9uIGR1bXBTYXZlZFNuaXBwZXRzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJEdW1waW5nIHNhdmVkIHNuaXBwZXRzOiIpOwotICAgICAgICBkdW1wU25pcHBl
dHMoV2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuX3NuaXBwZXRzU2V0dGluZy5nZXQoKSk7Ci0g
ICAgfQotCi0gICAgZnVuY3Rpb24gZHVtcE1vZGVsU25pcHBldHMoKQotICAgIHsKLSAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkR1bXBpbmcgbW9kZWwgc25pcHBldHM6Iik7Ci0gICAg
ICAgIGR1bXBTbmlwcGV0cyhXZWJJbnNwZWN0b3Iuc25pcHBldHNNb2RlbC5zbmlwcGV0cyk7Cisg
ICAgICAgIFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLl9sYXN0U25pcHBldElkZW50aWZpZXJT
ZXR0aW5nLnNldCgwKTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuX3NuaXBw
ZXRzU2V0dGluZy5zZXQoW10pOworICAgICAgICBXZWJJbnNwZWN0b3Iuc25pcHBldHNNb2RlbC5f
bGFzdFNuaXBwZXRFdmFsdWF0aW9uSW5kZXhTZXR0aW5nLnNldCgwKTsKICAgICB9CiAKICAgICAv
LyBGSVhNRTogUmVtb3ZlIG9uY2Ugc25pcHBldHMgYXJlIHRha2VuIG91dCBvZiBleHBlcmltZW50
cy4KICAgICBpZiAoIVdlYkluc3BlY3Rvci5leHBlcmltZW50c1NldHRpbmdzLnNuaXBwZXRzU3Vw
cG9ydC5pc0VuYWJsZWQoKSkKICAgICAgICAgV2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwgPSBu
ZXcgV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwoKTsKIAotICAgIGR1bXBTYXZlZFNuaXBwZXRz
KCk7Ci0gICAgZHVtcE1vZGVsU25pcHBldHMoKTsKLSAgICB2YXIgc25pcHBldCA9IFdlYkluc3Bl
Y3Rvci5zbmlwcGV0c01vZGVsLmNyZWF0ZVNuaXBwZXQoKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiU25pcHBldCBjcmVhdGVkLiIpOwotICAgIGR1bXBTYXZlZFNuaXBwZXRzKCk7Ci0g
ICAgZHVtcE1vZGVsU25pcHBldHMoKTsKLSAgICBzbmlwcGV0Lm5hbWUgPSAiTmV3IHNuaXBwZXQg
bmFtZSI7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNuaXBwZXQgcmVuYW1lZC4iKTsK
LSAgICBkdW1wU2F2ZWRTbmlwcGV0cygpOwotICAgIGR1bXBNb2RlbFNuaXBwZXRzKCk7Ci0gICAg
c25pcHBldC5jb250ZW50ID0gIk5ldyBzbmlwcGV0IGNvbnRlbnQiOwotICAgIEluc3BlY3RvclRl
c3QuYWRkUmVzdWx0KCJTbmlwcGV0IGNvbnRlbnQgY2hhbmdlZC4iKTsKLSAgICBkdW1wU2F2ZWRT
bmlwcGV0cygpOwotICAgIGR1bXBNb2RlbFNuaXBwZXRzKCk7Ci0gICAgdmFyIGFub3RoZXJTbmlw
cGV0ID0gV2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuY3JlYXRlU25pcHBldCgpOwotICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJBbm90aGVyIHNuaXBwZXQgY3JlYXRlZC4iKTsKLSAgICBk
dW1wU2F2ZWRTbmlwcGV0cygpOwotICAgIGR1bXBNb2RlbFNuaXBwZXRzKCk7Ci0gICAgV2ViSW5z
cGVjdG9yLnNuaXBwZXRzTW9kZWwuZGVsZXRlU25pcHBldChzbmlwcGV0KTsKLSAgICBJbnNwZWN0
b3JUZXN0LmFkZFJlc3VsdCgiU25pcHBldCBkZWxldGVkLiIpOwotICAgIGR1bXBTYXZlZFNuaXBw
ZXRzKCk7Ci0gICAgZHVtcE1vZGVsU25pcHBldHMoKTsKLSAgICBXZWJJbnNwZWN0b3Iuc25pcHBl
dHNNb2RlbC5kZWxldGVTbmlwcGV0KGFub3RoZXJTbmlwcGV0KTsKLSAgICBJbnNwZWN0b3JUZXN0
LmFkZFJlc3VsdCgiQW5vdGhlciBzbmlwcGV0IGRlbGV0ZWQuIik7Ci0gICAgZHVtcFNhdmVkU25p
cHBldHMoKTsKLSAgICBkdW1wTW9kZWxTbmlwcGV0cygpOworICAgIEluc3BlY3RvclRlc3QucnVu
VGVzdFN1aXRlKFsKKyAgICAgICAgZnVuY3Rpb24gdGVzdENyZWF0ZVJlbmFtZUVkaXREZWxldGUo
bmV4dCkKKyAgICAgICAgeworICAgICAgICAgICAgZnVuY3Rpb24gZHVtcFNuaXBwZXRzKHNuaXBw
ZXRzKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
c25pcHBldHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgICAgICAgICAgdmFyIHNuaXBwZXQg
PSBzbmlwcGV0c1tpXTsKKyAgICAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1
bHQoIiAgICBTbmlwcGV0OiBpZCA9ICIgKyBzbmlwcGV0LmlkICsgIiwgbmFtZSA9ICciICsgc25p
cHBldC5uYW1lICsgIicsIGNvbnRlbnQgPSAnIiArIHNuaXBwZXQuY29udGVudCArICInLiIpOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24g
ZHVtcFNhdmVkU25pcHBldHMoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEluc3Bl
Y3RvclRlc3QuYWRkUmVzdWx0KCJEdW1waW5nIHNhdmVkIHNuaXBwZXRzOiIpOworICAgICAgICAg
ICAgICAgIGR1bXBTbmlwcGV0cyhXZWJJbnNwZWN0b3Iuc25pcHBldHNNb2RlbC5fc25pcHBldHNT
ZXR0aW5nLmdldCgpKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZnVuY3Rpb24gZHVt
cE1vZGVsU25pcHBldHMoKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJEdW1waW5nIG1vZGVsIHNuaXBwZXRzOiIpOworICAgICAgICAgICAg
ICAgIHZhciBzbmlwcGV0cyA9IFtdOworICAgICAgICAgICAgICAgIGZvciAodmFyIGlkIGluIFdl
Ykluc3BlY3Rvci5zbmlwcGV0c01vZGVsLl9zbmlwcGV0cykKKyAgICAgICAgICAgICAgICAgICAg
c25pcHBldHMucHVzaChXZWJJbnNwZWN0b3Iuc25pcHBldHNNb2RlbC5fc25pcHBldHNbaWRdKTsK
KyAgICAgICAgICAgICAgICBkdW1wU25pcHBldHMoc25pcHBldHMpOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICByZXNldFNuaXBwZXRzU2V0dGluZ3MoKTsKIAotICAgIEluc3BlY3RvclRl
c3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgICAgICBkdW1wU2F2ZWRTbmlwcGV0cygpOworICAg
ICAgICAgICAgZHVtcE1vZGVsU25pcHBldHMoKTsKKyAgICAgICAgICAgIHZhciBzbmlwcGV0ID0g
V2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuY3JlYXRlU25pcHBldCgpOworICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNuaXBwZXQgY3JlYXRlZC4iKTsKKyAgICAgICAgICAg
IGR1bXBTYXZlZFNuaXBwZXRzKCk7CisgICAgICAgICAgICBkdW1wTW9kZWxTbmlwcGV0cygpOwor
ICAgICAgICAgICAgc25pcHBldC5uYW1lID0gIk5ldyBzbmlwcGV0IG5hbWUiOworICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNuaXBwZXQgcmVuYW1lZC4iKTsKKyAgICAgICAg
ICAgIGR1bXBTYXZlZFNuaXBwZXRzKCk7CisgICAgICAgICAgICBkdW1wTW9kZWxTbmlwcGV0cygp
OworICAgICAgICAgICAgc25pcHBldC5jb250ZW50ID0gIk5ldyBzbmlwcGV0IGNvbnRlbnQiOwor
ICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNuaXBwZXQgY29udGVudCBjaGFu
Z2VkLiIpOworICAgICAgICAgICAgZHVtcFNhdmVkU25pcHBldHMoKTsKKyAgICAgICAgICAgIGR1
bXBNb2RlbFNuaXBwZXRzKCk7CisgICAgICAgICAgICB2YXIgYW5vdGhlclNuaXBwZXQgPSBXZWJJ
bnNwZWN0b3Iuc25pcHBldHNNb2RlbC5jcmVhdGVTbmlwcGV0KCk7CisgICAgICAgICAgICBJbnNw
ZWN0b3JUZXN0LmFkZFJlc3VsdCgiQW5vdGhlciBzbmlwcGV0IGNyZWF0ZWQuIik7CisgICAgICAg
ICAgICBkdW1wU2F2ZWRTbmlwcGV0cygpOworICAgICAgICAgICAgZHVtcE1vZGVsU25pcHBldHMo
KTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLmRlbGV0ZVNuaXBwZXQo
c25pcHBldCk7CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU25pcHBldCBk
ZWxldGVkLiIpOworICAgICAgICAgICAgZHVtcFNhdmVkU25pcHBldHMoKTsKKyAgICAgICAgICAg
IGR1bXBNb2RlbFNuaXBwZXRzKCk7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc25pcHBldHNN
b2RlbC5kZWxldGVTbmlwcGV0KGFub3RoZXJTbmlwcGV0KTsKKyAgICAgICAgICAgIEluc3BlY3Rv
clRlc3QuYWRkUmVzdWx0KCJBbm90aGVyIHNuaXBwZXQgZGVsZXRlZC4iKTsKKyAgICAgICAgICAg
IGR1bXBTYXZlZFNuaXBwZXRzKCk7CisgICAgICAgICAgICBkdW1wTW9kZWxTbmlwcGV0cygpOwor
CisgICAgICAgICAgICBuZXh0KCk7CisgICAgICAgIH0sCisKKyAgICAgICAgZnVuY3Rpb24gdGVz
dEV2YWx1YXRlKG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIHJlc2V0U25pcHBldHNTZXR0
aW5ncygpOworCisgICAgICAgICAgICB2YXIgc25pcHBldDEgPSBXZWJJbnNwZWN0b3Iuc25pcHBl
dHNNb2RlbC5jcmVhdGVTbmlwcGV0KCk7CisgICAgICAgICAgICBzbmlwcGV0MS5uYW1lID0gIlNu
aXBwZXQxIjsKKyAgICAgICAgICAgIHNuaXBwZXQxLmNvbnRlbnQgPSAiIjsKKyAgICAgICAgICAg
IHNuaXBwZXQxLmNvbnRlbnQgKz0gIi8vIFRoaXMgc25pcHBldCBkb2VzIG5vdGhpbmcuXG4iOwor
ICAgICAgICAgICAgc25pcHBldDEuY29udGVudCArPSAidmFyIGkgPSAyKzI7XG4iOworICAgICAg
ICAgICAgdmFyIHNuaXBwZXQyID0gV2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuY3JlYXRlU25p
cHBldCgpOworICAgICAgICAgICAgc25pcHBldDIubmFtZSA9ICJTbmlwcGV0MiI7CisgICAgICAg
ICAgICBzbmlwcGV0Mi5jb250ZW50ID0gIiI7CisgICAgICAgICAgICBzbmlwcGV0Mi5jb250ZW50
ICs9ICIvLyBUaGlzIHNuaXBwZXQgY3JlYXRlcyBhIGZ1bmN0aW9uIHRoYXQgZG9lcyBub3RoaW5n
LlxuIjsKKyAgICAgICAgICAgIHNuaXBwZXQyLmNvbnRlbnQgKz0gImZ1bmN0aW9uIGRvZXNOb3Ro
aW5nKClcbiI7CisgICAgICAgICAgICBzbmlwcGV0Mi5jb250ZW50ICs9ICJ7XG4iOworICAgICAg
ICAgICAgc25pcHBldDIuY29udGVudCArPSAiICAgIHZhciAgaSA9IDIrMjtcbiI7CisgICAgICAg
ICAgICBzbmlwcGV0Mi5jb250ZW50ICs9ICJ9XG4iOworCisgICAgICAgICAgICBmdW5jdGlvbiBl
dmFsdWF0ZVNuaXBwZXRBbmREdW1wRXZhbHVhdGlvbkRldGFpbHMoc25pcHBldCwgY2FsbGJhY2sp
CisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRTbmlmZmVy
KFdlYkluc3BlY3Rvci5TbmlwcGV0c1NjcmlwdE1hcHBpbmcucHJvdG90eXBlLCAiYWRkU2NyaXB0
IiwgZHVtcFNjcmlwdCk7CisgICAgICAgICAgICAgICAgc25pcHBldC5ldmFsdWF0ZSgpOworICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJMYXN0IGV2YWx1YXRpb24gc291
cmNlIHVybCBmb3Igc25pcHBldDogIiArIHNuaXBwZXQuX2xhc3RFdmFsdWF0aW9uU291cmNlVVJM
KTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFzc2VydEVxdWFscyhzbmlwcGV0LCBX
ZWJJbnNwZWN0b3Iuc25pcHBldHNNb2RlbC5zbmlwcGV0Rm9yU291cmNlVVJMKHNuaXBwZXQuX2xh
c3RFdmFsdWF0aW9uU291cmNlVVJMKSwgIlNuaXBwZXQgY2FuIG5vdCBiZSBpZGVudGlmaWVkIGJ5
IGl0cyBldmFsdWF0aW9uIHNvdXJjZVVSTC4iKTsKKworICAgICAgICAgICAgICAgIGZ1bmN0aW9u
IGR1bXBTY3JpcHQoc2NyaXB0KQorICAgICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNuaXBwZXQgc2NyaXB0IGFkZGVkLCBzb3VyY2VV
UkwgPSAiICsgc2NyaXB0LnNvdXJjZVVSTCk7CisgICAgICAgICAgICAgICAgICAgIGNhbGxiYWNr
KCk7CisgICAgICAgICAgICAgICAgfQorCisgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMg
c2hvdWxkIGJlIHJlbW92ZWQgb25jZSBzbmlwcGV0cyBldmFsdWF0aW9uIGl0c2VsZiBpcyBpbXBs
ZW1lbnRlZC4KKyAgICAgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICBldmFsdWF0ZVNuaXBwZXRBbmREdW1wRXZhbHVhdGlvbkRldGFpbHMoc25pcHBl
dDEsIHN0ZXAyKTsKKworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDIoKQorICAgICAgICAgICAg
eworICAgICAgICAgICAgICAgIGV2YWx1YXRlU25pcHBldEFuZER1bXBFdmFsdWF0aW9uRGV0YWls
cyhzbmlwcGV0Miwgc3RlcDMpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBmdW5jdGlv
biBzdGVwMygpCisgICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgZXZhbHVhdGVTbmlwcGV0
QW5kRHVtcEV2YWx1YXRpb25EZXRhaWxzKHNuaXBwZXQxLCBuZXh0KTsKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfQorICAgIF0pOwogfTsKIDwvc2NyaXB0PgogPC9oZWFkPgogPGJvZHkgb25sb2Fk
PSJydW5UZXN0KCkiPgotPHA+VGVzdHMgaG93IHNuaXBwZXRzIG1vZGVsIHN0b3Jlcywgc2F2ZXMg
YW5kIGxvYWRzIHNuaXBwZXRzPC9wPgorPHA+VGVzdHMgc25pcHBldHMgbW9kZWwuPC9wPgogPC9i
b2R5PgogPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>132068</attachid>
            <date>2012-03-15 10:17:21 -0700</date>
            <delta_ts>2012-03-15 11:22:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-81031-20120315211719.patch</filename>
            <type>text/plain</type>
            <size>20556</size>
            <attacher name="Vsevolod Vlasov">vsevik</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwODQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQ3Njc1M2NjODRkZjgz
MDgzYWVlNDI2ZjY2ODllN2I3NDNmYjMyNS4uZWQ3NWE5MWFmMDUwMzVmOWUxNGRiMzk3MjdjYzg0
ZWFiNDE4MDVlYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAzLTE1ICBWc2V2
b2xvZCBWbGFzb3YgIDx2c2V2aWtAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0
b3I6IE1haW5TY3JpcHRNYXBwaW5nIHNob3VsZCBkZXRlY3Qgc25pcHBldCBzY3JpcHRzIGJ5IG1l
YW5zIG9mIHNvdXJjZVVSTCBzZXQgYmVmb3JlIGV2YWx1YXRpb24uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTAzMQorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9Tbmlw
cGV0c01vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlLl9zYXZlU2V0dGluZ3Mp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlLmRlbGV0ZVNu
aXBwZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlLl9z
bmlwcGV0QWRkZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90
eXBlLl9zb3VyY2VVUkxGb3JTbmlwcGV0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TbmlwcGV0
c01vZGVsLnByb3RvdHlwZS5zbmlwcGV0SWRGb3JTb3VyY2VVUkwpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlLnNuaXBwZXRGb3JTb3VyY2VVUkwpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXQucHJvdG90eXBlLmV2YWx1YXRlKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5TbmlwcGV0c1NjcmlwdE1hcHBpbmcpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNuaXBwZXRzU2NyaXB0TWFwcGluZy5wcm90b3R5cGUudWlMb2NhdGlvblRvUmF3TG9jYXRp
b24uZ2V0IGlmKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TbmlwcGV0c1NjcmlwdE1hcHBpbmcu
cHJvdG90eXBlLnVpTG9jYXRpb25Ub1Jhd0xvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5TbmlwcGV0c1NjcmlwdE1hcHBpbmcucHJvdG90eXBlLl9yZWxlYXNlZFVJU291cmNlQ29kZXMp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzU2NyaXB0TWFwcGluZy5wcm90b3R5cGUu
X3NuaXBwZXRBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU25pcHBldHNTY3JpcHRNYXBw
aW5nLnByb3RvdHlwZS5fc25pcHBldFdpbGxCZUV2YWx1YXRlZCk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU25pcHBldHNTY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fc25pcHBldFJlbW92ZWQuZ2V0
IHRoaXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNuaXBwZXRzU2NyaXB0TWFwcGluZy5wcm90
b3R5cGUuX3NuaXBwZXRSZW1vdmVkKToKKwogMjAxMi0wMy0xNSAgTmlrb2xhcyBaaW1tZXJtYW5u
ICA8bnppbW1lcm1hbm5AcmltLmNvbT4KIAogICAgICAgICBFbmFibGUgYW5pbVZhbCBzdXBwb3J0
IGZvciBTVkdOdW1iZXJMaXN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NuaXBwZXRzTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1NuaXBwZXRzTW9kZWwuanMKaW5kZXggNzhmNGFiMzgzZDY1OTFjOWJhMDUzZmZmZjcw
MWYzMWE0ODUwZThlMC4uOWM3ZTQ4ZGU5NzU0YjUxNWE0NDg5Y2U2ZjhhMzVjNDhiZTFlOWUyOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TbmlwcGV0c01v
ZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU25pcHBldHNN
b2RlbC5qcwpAQCAtMzIsNDEgKzMyLDM1IEBACiAgKi8KIFdlYkluc3BlY3Rvci5TbmlwcGV0c01v
ZGVsID0gZnVuY3Rpb24oKQogewotICAgIC8qKiBAdHlwZSB7QXJyYXkuPFdlYkluc3BlY3Rvci5T
bmlwcGV0Pn0gKi8gdGhpcy5fc25pcHBldHM7CisgICAgdGhpcy5fc25pcHBldHMgPSB7fTsKIAog
ICAgIHRoaXMuX2xhc3RTbmlwcGV0SWRlbnRpZmllclNldHRpbmcgPSBXZWJJbnNwZWN0b3Iuc2V0
dGluZ3MuY3JlYXRlU2V0dGluZygibGFzdFNuaXBwZXRJZGVudGlmaWVyIiwgMCk7CiAgICAgdGhp
cy5fc25pcHBldHNTZXR0aW5nID0gV2ViSW5zcGVjdG9yLnNldHRpbmdzLmNyZWF0ZVNldHRpbmco
InNuaXBwZXRzIiwgW10pOworICAgIHRoaXMuX2xhc3RTbmlwcGV0RXZhbHVhdGlvbkluZGV4U2V0
dGluZyA9IFdlYkluc3BlY3Rvci5zZXR0aW5ncy5jcmVhdGVTZXR0aW5nKCJsYXN0U25pcHBldEV2
YWx1YXRpb25JbmRleCIsIDApOwogCiAgICAgdGhpcy5fbG9hZFNldHRpbmdzKCk7CiB9CiAKK1dl
Ykluc3BlY3Rvci5TbmlwcGV0c01vZGVsLnNuaXBwZXRzU291cmNlVVJMUHJlZml4ID0gInNuaXBw
ZXRzOi8vIjsKKwogV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwuRXZlbnRUeXBlcyA9IHsKICAg
ICBTbmlwcGV0QWRkZWQ6ICJTbmlwcGV0QWRkZWQiLAorICAgIFNuaXBwZXRXaWxsQmVFdmFsdWF0
ZWQ6ICJTbmlwcGV0V2lsbEJlRXZhbHVhdGVkIiwKICAgICBTbmlwcGV0UmVuYW1lZDogIlNuaXBw
ZXRSZW5hbWVkIiwKICAgICBTbmlwcGV0UmVtb3ZlZDogIlNuaXBwZXRSZW1vdmVkIiwKIH0KIAog
V2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBlID0gewotICAgIC8qKgotICAgICAq
IEByZXR1cm4ge0FycmF5LjxXZWJJbnNwZWN0b3IuU25pcHBldD59Ci0gICAgICovCi0gICAgZ2V0
IHNuaXBwZXRzKCkKLSAgICB7Ci0gICAgICAgIHJldHVybiB0aGlzLl9zbmlwcGV0cy5zbGljZSgp
OwotICAgIH0sCi0KICAgICBfc2F2ZVNldHRpbmdzOiBmdW5jdGlvbigpCiAgICAgewogICAgICAg
ICB2YXIgc2F2ZWRTbmlwcGV0cyA9IFtdOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRo
aXMuX3NuaXBwZXRzLmxlbmd0aDsgKytpKQotICAgICAgICAgICAgc2F2ZWRTbmlwcGV0cy5wdXNo
KHRoaXMuX3NuaXBwZXRzW2ldLnNlcmlhbGl6ZVRvT2JqZWN0KCkpOwotCisgICAgICAgIGZvciAo
dmFyIGlkIGluIHRoaXMuX3NuaXBwZXRzKQorICAgICAgICAgICAgc2F2ZWRTbmlwcGV0cy5wdXNo
KHRoaXMuX3NuaXBwZXRzW2lkXS5zZXJpYWxpemVUb09iamVjdCgpKTsKICAgICAgICAgdGhpcy5f
c25pcHBldHNTZXR0aW5nLnNldChzYXZlZFNuaXBwZXRzKTsKICAgICB9LAogCiAgICAgX2xvYWRT
ZXR0aW5nczogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5fc25pcHBldHMgPSBbXTsK
ICAgICAgICAgdmFyIHNhdmVkU25pcHBldHMgPSB0aGlzLl9zbmlwcGV0c1NldHRpbmcuZ2V0KCk7
CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2F2ZWRTbmlwcGV0cy5sZW5ndGg7ICsraSkK
ICAgICAgICAgICAgIHRoaXMuX3NuaXBwZXRBZGRlZChXZWJJbnNwZWN0b3IuU25pcHBldC5mcm9t
T2JqZWN0KHNhdmVkU25pcHBldHNbaV0pKTsKQEAgLTc3LDE0ICs3MSw5IEBAIFdlYkluc3BlY3Rv
ci5TbmlwcGV0c01vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAgICBkZWxldGVTbmlwcGV0
OiBmdW5jdGlvbihzbmlwcGV0KQogICAgIHsKLSAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0
aGlzLl9zbmlwcGV0cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgaWYgKHNuaXBwZXQuaWQg
PT09IHRoaXMuX3NuaXBwZXRzW2ldLmlkKSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5fc25pcHBl
dHMuc3BsaWNlKGksIDEpOwotICAgICAgICAgICAgICAgIHRoaXMuX3NhdmVTZXR0aW5ncygpOwot
ICAgICAgICAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rv
ci5TbmlwcGV0c01vZGVsLkV2ZW50VHlwZXMuU25pcHBldFJlbW92ZWQsIHNuaXBwZXQpOwotICAg
ICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAgICAgIGRl
bGV0ZSB0aGlzLl9zbmlwcGV0c1tzbmlwcGV0LmlkXTsKKyAgICAgICAgdGhpcy5fc2F2ZVNldHRp
bmdzKCk7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rv
ci5TbmlwcGV0c01vZGVsLkV2ZW50VHlwZXMuU25pcHBldFJlbW92ZWQsIHNuaXBwZXQpOwogICAg
IH0sCiAKICAgICAvKioKQEAgLTkyLDggKzgxLDkgQEAgV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9k
ZWwucHJvdG90eXBlID0gewogICAgICAqLwogICAgIGNyZWF0ZVNuaXBwZXQ6IGZ1bmN0aW9uKCkK
ICAgICB7Ci0gICAgICAgIHZhciBzbmlwcGV0SWQgPSB0aGlzLl9sYXN0U25pcHBldElkZW50aWZp
ZXJTZXR0aW5nLmdldCgpICsgMTsKLSAgICAgICAgdGhpcy5fbGFzdFNuaXBwZXRJZGVudGlmaWVy
U2V0dGluZy5zZXQoc25pcHBldElkKTsKKyAgICAgICAgdmFyIG5leHRJZCA9IHRoaXMuX2xhc3RT
bmlwcGV0SWRlbnRpZmllclNldHRpbmcuZ2V0KCkgKyAxOworICAgICAgICB2YXIgc25pcHBldElk
ID0gU3RyaW5nKG5leHRJZCk7CisgICAgICAgIHRoaXMuX2xhc3RTbmlwcGV0SWRlbnRpZmllclNl
dHRpbmcuc2V0KG5leHRJZCk7CiAgICAgICAgIHZhciBzbmlwcGV0ID0gbmV3IFdlYkluc3BlY3Rv
ci5TbmlwcGV0KHRoaXMsIHNuaXBwZXRJZCk7CiAgICAgICAgIHRoaXMuX3NuaXBwZXRBZGRlZChz
bmlwcGV0KTsKICAgICAgICAgdGhpcy5fc2F2ZVNldHRpbmdzKCk7CkBAIC0xMDYsMTIgKzk2LDEy
IEBAIFdlYkluc3BlY3Rvci5TbmlwcGV0c01vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8KICAg
ICBfc25pcHBldEFkZGVkOiBmdW5jdGlvbihzbmlwcGV0KQogICAgIHsKLSAgICAgICAgdGhpcy5f
c25pcHBldHMucHVzaChzbmlwcGV0KTsKKyAgICAgICAgdGhpcy5fc25pcHBldHNbc25pcHBldC5p
ZF0gPSBzbmlwcGV0OwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJ
bnNwZWN0b3IuU25pcHBldHNNb2RlbC5FdmVudFR5cGVzLlNuaXBwZXRBZGRlZCwgc25pcHBldCk7
CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7bnVtYmVyfSBzbmlwcGV0SWQKKyAg
ICAgKiBAcGFyYW0ge3N0cmluZ30gc25pcHBldElkCiAgICAgICovCiAgICAgX3NuaXBwZXRDb250
ZW50VXBkYXRlZDogZnVuY3Rpb24oc25pcHBldElkKQogICAgIHsKQEAgLTEyOCwxMiArMTE4LDMw
IEBAIFdlYkluc3BlY3Rvci5TbmlwcGV0c01vZGVsLnByb3RvdHlwZSA9IHsKICAgICB9LAogCiAg
ICAgLyoqCi0gICAgICogQHBhcmFtIHtudW1iZXJ9IHNuaXBwZXRJZAotICAgICAqIEByZXR1cm4g
e1dlYkluc3BlY3Rvci5TbmlwcGV0fHVuZGVmaW5lZH0KKyAgICAgKiBAcGFyYW0ge1dlYkluc3Bl
Y3Rvci5TbmlwcGV0fSBzbmlwcGV0CisgICAgICovCisgICAgX2V2YWx1YXRlU25pcHBldDogZnVu
Y3Rpb24oc25pcHBldCkKKyAgICB7CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVu
ZXJzKFdlYkluc3BlY3Rvci5TbmlwcGV0c01vZGVsLkV2ZW50VHlwZXMuU25pcHBldFdpbGxCZUV2
YWx1YXRlZCwgc25pcHBldCk7CisgICAgICAgIHZhciBldmFsdWF0aW9uSW5kZXggPSB0aGlzLl9s
YXN0U25pcHBldEV2YWx1YXRpb25JbmRleFNldHRpbmcuZ2V0KCkgKyAxOworICAgICAgICB0aGlz
Ll9sYXN0U25pcHBldEV2YWx1YXRpb25JbmRleFNldHRpbmcuc2V0KGV2YWx1YXRpb25JbmRleCk7
CisKKyAgICAgICAgdmFyIHNvdXJjZVVSTCA9IHRoaXMuX3NvdXJjZVVSTEZvclNuaXBwZXQoc25p
cHBldCwgZXZhbHVhdGlvbkluZGV4KTsKKyAgICAgICAgc25pcHBldC5fbGFzdEV2YWx1YXRpb25T
b3VyY2VVUkwgPSBzb3VyY2VVUkw7CisgICAgICAgIHZhciBleHByZXNzaW9uID0gIlxuLy9AIHNv
dXJjZVVSTD0iICsgc291cmNlVVJMICsgIlxuIiArIHNuaXBwZXQuY29udGVudDsKKyAgICAgICAg
Ly8gRklYTUU6IGV2YWx1YXRlIHNuaXBwZXQgaGVyZS4KKyAgICB9LAorCisgICAgLyoqCisgICAg
ICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuU25pcHBldH0gc25pcHBldAorICAgICAqIEBwYXJhbSB7
c3RyaW5nfSBldmFsdWF0aW9uSW5kZXgKKyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CiAgICAgICov
Ci0gICAgc25pcHBldEZvcklkOiBmdW5jdGlvbihzbmlwcGV0SWQpCisgICAgX3NvdXJjZVVSTEZv
clNuaXBwZXQ6IGZ1bmN0aW9uKHNuaXBwZXQsIGV2YWx1YXRpb25JbmRleCkKICAgICB7Ci0gICAg
ICAgIHJldHVybiB0aGlzLl9zbmlwcGV0c1tzbmlwcGV0SWRdOworICAgICAgICB2YXIgc25pcHBl
dHNQcmVmaXggPSBXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5zbmlwcGV0c1NvdXJjZVVSTFBy
ZWZpeDsKKyAgICAgICAgdmFyIGV2YWx1YXRpb25TdWZmaXggPSBldmFsdWF0aW9uSW5kZXggPyAi
XyIgKyBldmFsdWF0aW9uSW5kZXggOiAiIjsKKyAgICAgICAgcmV0dXJuIHNuaXBwZXRzUHJlZml4
ICsgc25pcHBldC5pZCArIGV2YWx1YXRpb25TdWZmaXg7CiAgICAgfSwKIAogICAgIC8qKgpAQCAt
MTQyLDggKzE1MCwxMiBAQCBXZWJJbnNwZWN0b3IuU25pcHBldHNNb2RlbC5wcm90b3R5cGUgPSB7
CiAgICAgICovCiAgICAgc25pcHBldElkRm9yU291cmNlVVJMOiBmdW5jdGlvbihzb3VyY2VVUkwp
CiAgICAgewotICAgICAgICAvLyBGSVhNRTogdG8gYmUgaW1wbGVtZW50ZWQuCi0gICAgICAgIHJl
dHVybiBudWxsOworICAgICAgICB2YXIgc25pcHBldHNQcmVmaXggPSBXZWJJbnNwZWN0b3IuU25p
cHBldHNNb2RlbC5zbmlwcGV0c1NvdXJjZVVSTFByZWZpeDsKKyAgICAgICAgaWYgKHNvdXJjZVVS
TC5pbmRleE9mKHNuaXBwZXRzUHJlZml4KSAhPT0gMCkKKyAgICAgICAgICAgIHJldHVybiBudWxs
OworICAgICAgICB2YXIgc3BsaXR0ZWRVUkwgPSBzb3VyY2VVUkwuc3Vic3RyaW5nKHNuaXBwZXRz
UHJlZml4Lmxlbmd0aCkuc3BsaXQoIl8iKTsKKyAgICAgICAgdmFyIHNuaXBwZXRJZCA9IHNwbGl0
dGVkVVJMWzBdOworICAgICAgICByZXR1cm4gc25pcHBldElkOwogICAgIH0sCiAKICAgICAvKioK
QEAgLTE1Miw4ICsxNjQsMTMgQEAgV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwucHJvdG90eXBl
ID0gewogICAgICAqLwogICAgIHNuaXBwZXRGb3JTb3VyY2VVUkw6IGZ1bmN0aW9uKHNvdXJjZVVS
TCkKICAgICB7Ci0gICAgICAgIC8vIEZJWE1FOiB0byBiZSBpbXBsZW1lbnRlZC4KLSAgICAgICAg
cmV0dXJuIG51bGw7CisgICAgICAgIHZhciBzbmlwcGV0SWQgPSB0aGlzLnNuaXBwZXRJZEZvclNv
dXJjZVVSTChzb3VyY2VVUkwpOworICAgICAgICBpZiAoIXNuaXBwZXRJZCkKKyAgICAgICAgICAg
IHJldHVybiBudWxsOworICAgICAgICB2YXIgc25pcHBldCA9IHRoaXMuX3NuaXBwZXRzW3NuaXBw
ZXRJZF07CisgICAgICAgIGlmICghc25pcHBldCB8fCBzbmlwcGV0Ll9sYXN0RXZhbHVhdGlvblNv
dXJjZVVSTCAhPT0gc291cmNlVVJMKQorICAgICAgICAgICAgcmV0dXJuIG51bGw7CisgICAgICAg
IHJldHVybiBzbmlwcGV0OwogICAgIH0KIH0KIApAQCAtMTYzLDcgKzE4MCw3IEBAIFdlYkluc3Bl
Y3Rvci5TbmlwcGV0c01vZGVsLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2Jq
ZWN0LnByb3RvdHlwZTsKICAqIEBjb25zdHJ1Y3RvcgogICogQGV4dGVuZHMge1dlYkluc3BlY3Rv
ci5PYmplY3R9CiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5TbmlwcGV0c01vZGVsfSBtb2RlbAot
ICogQHBhcmFtIHtudW1iZXJ9IGlkCisgKiBAcGFyYW0ge3N0cmluZ30gaWQKICAqIEBwYXJhbSB7
c3RyaW5nPX0gbmFtZQogICogQHBhcmFtIHtzdHJpbmc9fSBjb250ZW50CiAgKi8KQEAgLTIyOSw2
ICsyNDYsMTEgQEAgV2ViSW5zcGVjdG9yLlNuaXBwZXQucHJvdG90eXBlID0gewogICAgICAgICB0
aGlzLl9tb2RlbC5fc25pcHBldENvbnRlbnRVcGRhdGVkKHRoaXMuX2lkKTsKICAgICB9LAogCisg
ICAgZXZhbHVhdGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRoaXMuX21vZGVsLl9ldmFs
dWF0ZVNuaXBwZXQodGhpcyk7CisgICAgfSwKKwogICAgIC8qKgogICAgICAqIEByZXR1cm4ge09i
amVjdH0KICAgICAgKi8KQEAgLTI1MywxMCArMjc1LDEwIEBAIFdlYkluc3BlY3Rvci5TbmlwcGV0
c1NjcmlwdE1hcHBpbmcgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5fc25pcHBldEZvclNjcmlwdElk
ID0ge307CiAgICAgdGhpcy5fdWlTb3VyY2VDb2RlRm9yU2NyaXB0SWQgPSB7fTsKICAgICB0aGlz
Ll9zY3JpcHRGb3JVSVNvdXJjZUNvZGUgPSBuZXcgTWFwKCk7Ci0gICAgdGhpcy5fc25pcHBldEZv
clVJU291cmNlQ29kZSA9IG5ldyBNYXAoKTsKICAgICB0aGlzLl91aVNvdXJjZUNvZGVGb3JTbmlw
cGV0ID0gbmV3IE1hcCgpOwogICAgIAogICAgIFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLmFk
ZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlNuaXBwZXRzTW9kZWwuRXZlbnRUeXBlcy5Tbmlw
cGV0QWRkZWQsIHRoaXMuX3NuaXBwZXRBZGRlZC5iaW5kKHRoaXMpKTsKKyAgICBXZWJJbnNwZWN0
b3Iuc25pcHBldHNNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5TbmlwcGV0c01v
ZGVsLkV2ZW50VHlwZXMuU25pcHBldFdpbGxCZUV2YWx1YXRlZCwgdGhpcy5fc25pcHBldFdpbGxC
ZUV2YWx1YXRlZC5iaW5kKHRoaXMpKTsKICAgICBXZWJJbnNwZWN0b3Iuc25pcHBldHNNb2RlbC5h
ZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5TbmlwcGV0c01vZGVsLkV2ZW50VHlwZXMuU25p
cHBldFJlbW92ZWQsIHRoaXMuX3NuaXBwZXRSZW1vdmVkLmJpbmQodGhpcykpOwogfQogCkBAIC0y
OTAsOCArMzEyLDcgQEAgV2ViSW5zcGVjdG9yLlNuaXBwZXRzU2NyaXB0TWFwcGluZy5wcm90b3R5
cGUgPSB7CiAgICAgICAgIGlmICghc2NyaXB0KQogICAgICAgICAgICAgcmV0dXJuIG51bGw7CiAK
LSAgICAgICAgdmFyIHNuaXBwZXQgPSB0aGlzLl9zbmlwcGV0Rm9yVUlTb3VyY2VDb2RlLmdldCh1
aVNvdXJjZUNvZGUpOwotICAgICAgICBpZiAoc25pcHBldCkgeworICAgICAgICBpZiAodWlTb3Vy
Y2VDb2RlLmlzU25pcHBldCkgewogICAgICAgICAgICAgdmFyIHJhd0xpbmVOdW1iZXIgPSBsaW5l
TnVtYmVyICsgV2ViSW5zcGVjdG9yLlNuaXBwZXQuZXZhbHVhdGVkU25pcHBldEV4dHJhTGluZXND
b3VudDsKICAgICAgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5jcmVh
dGVSYXdMb2NhdGlvbihzY3JpcHQsIHJhd0xpbmVOdW1iZXIsIGNvbHVtbk51bWJlcik7CiAgICAg
ICAgIH0KQEAgLTMxOSw3ICszNDAsNyBAQCBXZWJJbnNwZWN0b3IuU25pcHBldHNTY3JpcHRNYXBw
aW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIHJlc3VsdCA9IFtdOwogICAgICAgICBmb3Ig
KHZhciBzY3JpcHRJZCBpbiB0aGlzLl91aVNvdXJjZUNvZGVGb3JTY3JpcHRJZCkgewogICAgICAg
ICAgICAgdmFyIHVpU291cmNlQ29kZSA9IHRoaXMuX3VpU291cmNlQ29kZUZvclNjcmlwdElkW3Nj
cmlwdElkXTsKLSAgICAgICAgICAgIGlmICh0aGlzLl9zbmlwcGV0Rm9yVUlTb3VyY2VDb2RlLmdl
dCh1aVNvdXJjZUNvZGUpKQorICAgICAgICAgICAgaWYgKHVpU291cmNlQ29kZS5pc1NuaXBwZXQp
CiAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICByZXN1bHQucHVzaCh1aVNv
dXJjZUNvZGUpOwogICAgICAgICB9CkBAIC0zMzYsOCArMzU3LDkgQEAgV2ViSW5zcGVjdG9yLlNu
aXBwZXRzU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLl9jcmVh
dGVVSVNvdXJjZUNvZGVGb3JTY3JpcHQoc2NyaXB0KTsKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgfQotICAgICAgICB0aGlzLl9yZWxlYXNlU25pcHBldFNjcmlwdChzbmlwcGV0KTsgICAg
ICAgIAogICAgICAgICB2YXIgdWlTb3VyY2VDb2RlID0gdGhpcy5fdWlTb3VyY2VDb2RlRm9yU25p
cHBldC5nZXQoc25pcHBldCk7CisgICAgICAgIGNvbnNvbGUuYXNzZXJ0KCF0aGlzLl9zY3JpcHRG
b3JVSVNvdXJjZUNvZGUuZ2V0KHVpU291cmNlQ29kZSkpOworCiAgICAgICAgIHRoaXMuX3VpU291
cmNlQ29kZUZvclNjcmlwdElkW3NjcmlwdC5zY3JpcHRJZF0gPSB1aVNvdXJjZUNvZGU7CiAgICAg
ICAgIHRoaXMuX3NuaXBwZXRGb3JTY3JpcHRJZFtzY3JpcHQuc2NyaXB0SWRdID0gc25pcHBldDsK
ICAgICAgICAgdGhpcy5fc2NyaXB0Rm9yVUlTb3VyY2VDb2RlLnB1dCh1aVNvdXJjZUNvZGUsIHNj
cmlwdCk7CkBAIC0zNTcsMTIgKzM3OSwyMSBAQCBXZWJJbnNwZWN0b3IuU25pcHBldHNTY3JpcHRN
YXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICAgICAgdWlTb3VyY2VDb2RlLmlzU25pcHBldCA9IHRy
dWU7CiAgICAgICAgIHVpU291cmNlQ29kZS5pc0VkaXRhYmxlID0gdHJ1ZTsKICAgICAgICAgdGhp
cy5fdWlTb3VyY2VDb2RlRm9yU25pcHBldC5wdXQoc25pcHBldCwgdWlTb3VyY2VDb2RlKTsKLSAg
ICAgICAgdGhpcy5fc25pcHBldEZvclVJU291cmNlQ29kZS5wdXQodWlTb3VyY2VDb2RlLCBzbmlw
cGV0KTsKKyAgICAgICAgdWlTb3VyY2VDb2RlLnNuaXBwZXQgPSBzbmlwcGV0OwogICAgICAgICB2
YXIgZGF0YSA9IHsgcmVtb3ZlZEl0ZW1zOiBbXSwgYWRkZWRJdGVtczogW3VpU291cmNlQ29kZV0s
IHNjcmlwdElkczogW10gfTsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
V2ViSW5zcGVjdG9yLlNjcmlwdE1hcHBpbmcuRXZlbnRzLlVJU291cmNlQ29kZUxpc3RDaGFuZ2Vk
LCBkYXRhKTsKICAgICB9LAogCiAgICAgLyoqCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3Iu
RXZlbnR9IGV2ZW50CisgICAgICovCisgICAgX3NuaXBwZXRXaWxsQmVFdmFsdWF0ZWQ6IGZ1bmN0
aW9uKGV2ZW50KQorICAgIHsKKyAgICAgICAgdmFyIHNuaXBwZXQgPSAvKiogQHR5cGUge1dlYklu
c3BlY3Rvci5TbmlwcGV0fSAqLyBldmVudC5kYXRhOworICAgICAgICB0aGlzLl9yZWxlYXNlU25p
cHBldFNjcmlwdChzbmlwcGV0KTsKKyAgICB9LAorCisgICAgLyoqCiAgICAgICogQHBhcmFtIHtX
ZWJJbnNwZWN0b3IuU2NyaXB0fSBzY3JpcHQKICAgICAgKi8KICAgICBfY3JlYXRlVUlTb3VyY2VD
b2RlRm9yU2NyaXB0OiBmdW5jdGlvbihzY3JpcHQpCkBAIC00MDEsNyArNDMyLDYgQEAgV2ViSW5z
cGVjdG9yLlNuaXBwZXRzU2NyaXB0TWFwcGluZy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciB1
aVNvdXJjZUNvZGUgPSB0aGlzLl91aVNvdXJjZUNvZGVGb3JTbmlwcGV0LmdldChzbmlwcGV0KTsK
ICAgICAgICAgdGhpcy5fcmVsZWFzZVNuaXBwZXRTY3JpcHQoc25pcHBldCk7CiAgICAgICAgIHRo
aXMuX3VpU291cmNlQ29kZUZvclNuaXBwZXQucmVtb3ZlKHNuaXBwZXQpOwotICAgICAgICB0aGlz
Ll9zbmlwcGV0Rm9yVUlTb3VyY2VDb2RlLnJlbW92ZSh1aVNvdXJjZUNvZGUpOwogICAgICAgICB2
YXIgZGF0YSA9IHsgcmVtb3ZlZEl0ZW1zOiBbdWlTb3VyY2VDb2RlXSwgYWRkZWRJdGVtczogW10s
IHNjcmlwdElkczogW10gfTsKICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMo
V2ViSW5zcGVjdG9yLlNjcmlwdE1hcHBpbmcuRXZlbnRzLlVJU291cmNlQ29kZUxpc3RDaGFuZ2Vk
LCBkYXRhKTsKICAgICB9LApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ5MzZlM2YyZWRiY2ZhNDFhMmIwMmZjNzVkNmQ4YzQy
Mzk1YzQ1OTUuLjNhYjI2M2RjNGRkODEwMjQyMmE1ZjkzNGQ4MmI2M2I0YmQ4ZDhkNzggMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxMyBAQAorMjAxMi0wMy0xNSAgVnNldm9sb2QgVmxhc292ICA8dnNldmlrQGNo
cm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBNYWluU2NyaXB0TWFwcGluZyBz
aG91bGQgZGV0ZWN0IHNuaXBwZXQgc2NyaXB0cyBieSBtZWFucyBvZiBzb3VyY2VVUkwgc2V0IGJl
Zm9yZSBldmFsdWF0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODEwMzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9zbmlwcGV0cy1tb2RlbC1leHBlY3RlZC50eHQ6
CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL3NuaXBwZXRzLW1vZGVsLmh0bWw6CisKIDIw
MTItMDMtMTUgIFN0ZXBoZW4gV2hpdGUgIDxzZW5vcmJsYW5jb0BjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW2Nocm9taXVtXSBVbnJldmlld2VkIGdhcmRlbmluZy4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9zbmlwcGV0cy1tb2RlbC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvc25pcHBldHMtbW9kZWwtZXhwZWN0ZWQudHh0
CmluZGV4IGQ0MzkzNTEzOWJiN2JmODNkNzM3NGQ5NmY2NDFkMzNlZjEzMDM5ZDYuLmZmMjY3ZmRk
Y2NkODE1NjU1YjFiODhmOTY4OTk2Y2ZhMTc4MmIzMzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9zbmlwcGV0cy1tb2RlbC1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NuaXBwZXRzLW1vZGVsLWV4cGVjdGVkLnR4dApA
QCAtMSw1ICsxLDcgQEAKLVRlc3RzIGhvdyBzbmlwcGV0cyBtb2RlbCBzdG9yZXMsIHNhdmVzIGFu
ZCBsb2FkcyBzbmlwcGV0cworVGVzdHMgc25pcHBldHMgbW9kZWwuCiAKKworUnVubmluZzogdGVz
dENyZWF0ZVJlbmFtZUVkaXREZWxldGUKIER1bXBpbmcgc2F2ZWQgc25pcHBldHM6CiBEdW1waW5n
IG1vZGVsIHNuaXBwZXRzOgogU25pcHBldCBjcmVhdGVkLgpAQCAtMzMsMyArMzUsOCBAQCBBbm90
aGVyIHNuaXBwZXQgZGVsZXRlZC4KIER1bXBpbmcgc2F2ZWQgc25pcHBldHM6CiBEdW1waW5nIG1v
ZGVsIHNuaXBwZXRzOgogCitSdW5uaW5nOiB0ZXN0RXZhbHVhdGUKK0xhc3QgZXZhbHVhdGlvbiBz
b3VyY2UgdXJsIGZvciBzbmlwcGV0OiBzbmlwcGV0czovLzFfMQorTGFzdCBldmFsdWF0aW9uIHNv
dXJjZSB1cmwgZm9yIHNuaXBwZXQ6IHNuaXBwZXRzOi8vMl8yCitMYXN0IGV2YWx1YXRpb24gc291
cmNlIHVybCBmb3Igc25pcHBldDogc25pcHBldHM6Ly8xXzMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL3NuaXBwZXRzLW1vZGVsLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbnNwZWN0b3IvZGVidWdnZXIvc25pcHBldHMtbW9kZWwuaHRtbAppbmRleCBjYmNkZmM0NDkz
YmQ2ZjBkYTZiM2NjNzUzMjUzNjEzMWE2M2Q1NDE3Li5kYWE2MGMyYzA0YzIyNmQzODZlOGUwNGYx
YzRhNjgzMjU2NGNiMWRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvc25pcHBldHMtbW9kZWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvc25pcHBldHMtbW9kZWwuaHRtbApAQCAtNCw2MiArNCwxMjcgQEAKIDxzY3JpcHQ+CiBmdW5j
dGlvbiB0ZXN0KCkKIHsKLSAgICBmdW5jdGlvbiBkdW1wU25pcHBldHMoc25pcHBldHMpCisgICAg
ZnVuY3Rpb24gcmVzZXRTbmlwcGV0c1NldHRpbmdzKCkKICAgICB7Ci0gICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgc25pcHBldHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgIHZhciBzbmlw
cGV0ID0gc25pcHBldHNbaV07Ci0gICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgi
ICAgIFNuaXBwZXQ6IGlkID0gIiArIHNuaXBwZXQuaWQgKyAiLCBuYW1lID0gJyIgKyBzbmlwcGV0
Lm5hbWUgKyAiJywgY29udGVudCA9ICciICsgc25pcHBldC5jb250ZW50ICsgIicuIik7Ci0gICAg
ICAgIH0KLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBkdW1wU2F2ZWRTbmlwcGV0cygpCi0gICAgewot
ICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRHVtcGluZyBzYXZlZCBzbmlwcGV0czoi
KTsKLSAgICAgICAgZHVtcFNuaXBwZXRzKFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLl9zbmlw
cGV0c1NldHRpbmcuZ2V0KCkpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGR1bXBNb2RlbFNuaXBw
ZXRzKCkKLSAgICB7Ci0gICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJEdW1waW5nIG1v
ZGVsIHNuaXBwZXRzOiIpOwotICAgICAgICBkdW1wU25pcHBldHMoV2ViSW5zcGVjdG9yLnNuaXBw
ZXRzTW9kZWwuc25pcHBldHMpOworICAgICAgICBXZWJJbnNwZWN0b3Iuc25pcHBldHNNb2RlbC5f
bGFzdFNuaXBwZXRJZGVudGlmaWVyU2V0dGluZy5zZXQoMCk7CisgICAgICAgIFdlYkluc3BlY3Rv
ci5zbmlwcGV0c01vZGVsLl9zbmlwcGV0c1NldHRpbmcuc2V0KFtdKTsKKyAgICAgICAgV2ViSW5z
cGVjdG9yLnNuaXBwZXRzTW9kZWwuX2xhc3RTbmlwcGV0RXZhbHVhdGlvbkluZGV4U2V0dGluZy5z
ZXQoMCk7CiAgICAgfQogCiAgICAgLy8gRklYTUU6IFJlbW92ZSBvbmNlIHNuaXBwZXRzIGFyZSB0
YWtlbiBvdXQgb2YgZXhwZXJpbWVudHMuCiAgICAgaWYgKCFXZWJJbnNwZWN0b3IuZXhwZXJpbWVu
dHNTZXR0aW5ncy5zbmlwcGV0c1N1cHBvcnQuaXNFbmFibGVkKCkpCiAgICAgICAgIFdlYkluc3Bl
Y3Rvci5zbmlwcGV0c01vZGVsID0gbmV3IFdlYkluc3BlY3Rvci5TbmlwcGV0c01vZGVsKCk7CiAK
LSAgICBkdW1wU2F2ZWRTbmlwcGV0cygpOwotICAgIGR1bXBNb2RlbFNuaXBwZXRzKCk7Ci0gICAg
dmFyIHNuaXBwZXQgPSBXZWJJbnNwZWN0b3Iuc25pcHBldHNNb2RlbC5jcmVhdGVTbmlwcGV0KCk7
Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNuaXBwZXQgY3JlYXRlZC4iKTsKLSAgICBk
dW1wU2F2ZWRTbmlwcGV0cygpOwotICAgIGR1bXBNb2RlbFNuaXBwZXRzKCk7Ci0gICAgc25pcHBl
dC5uYW1lID0gIk5ldyBzbmlwcGV0IG5hbWUiOwotICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJTbmlwcGV0IHJlbmFtZWQuIik7Ci0gICAgZHVtcFNhdmVkU25pcHBldHMoKTsKLSAgICBkdW1w
TW9kZWxTbmlwcGV0cygpOwotICAgIHNuaXBwZXQuY29udGVudCA9ICJOZXcgc25pcHBldCBjb250
ZW50IjsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiU25pcHBldCBjb250ZW50IGNoYW5n
ZWQuIik7Ci0gICAgZHVtcFNhdmVkU25pcHBldHMoKTsKLSAgICBkdW1wTW9kZWxTbmlwcGV0cygp
OwotICAgIHZhciBhbm90aGVyU25pcHBldCA9IFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLmNy
ZWF0ZVNuaXBwZXQoKTsKLSAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQW5vdGhlciBzbmlw
cGV0IGNyZWF0ZWQuIik7Ci0gICAgZHVtcFNhdmVkU25pcHBldHMoKTsKLSAgICBkdW1wTW9kZWxT
bmlwcGV0cygpOwotICAgIFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLmRlbGV0ZVNuaXBwZXQo
c25pcHBldCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlNuaXBwZXQgZGVsZXRlZC4i
KTsKLSAgICBkdW1wU2F2ZWRTbmlwcGV0cygpOwotICAgIGR1bXBNb2RlbFNuaXBwZXRzKCk7Ci0g
ICAgV2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuZGVsZXRlU25pcHBldChhbm90aGVyU25pcHBl
dCk7Ci0gICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFub3RoZXIgc25pcHBldCBkZWxldGVk
LiIpOwotICAgIGR1bXBTYXZlZFNuaXBwZXRzKCk7Ci0gICAgZHVtcE1vZGVsU25pcHBldHMoKTsK
KyAgICBJbnNwZWN0b3JUZXN0LnJ1blRlc3RTdWl0ZShbCisgICAgICAgIGZ1bmN0aW9uIHRlc3RD
cmVhdGVSZW5hbWVFZGl0RGVsZXRlKG5leHQpCisgICAgICAgIHsKKyAgICAgICAgICAgIGZ1bmN0
aW9uIGR1bXBTbmlwcGV0cyhzbmlwcGV0cykKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHNuaXBwZXRzLmxlbmd0aDsgKytpKSB7CisgICAgICAgICAg
ICAgICAgICAgIHZhciBzbmlwcGV0ID0gc25pcHBldHNbaV07CisgICAgICAgICAgICAgICAgICAg
IEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCIgICAgU25pcHBldDogaWQgPSAiICsgc25pcHBldC5p
ZCArICIsIG5hbWUgPSAnIiArIHNuaXBwZXQubmFtZSArICInLCBjb250ZW50ID0gJyIgKyBzbmlw
cGV0LmNvbnRlbnQgKyAiJy4iKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGZ1bmN0aW9uIGR1bXBTYXZlZFNuaXBwZXRzKCkKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRHVtcGluZyBzYXZlZCBz
bmlwcGV0czoiKTsKKyAgICAgICAgICAgICAgICBkdW1wU25pcHBldHMoV2ViSW5zcGVjdG9yLnNu
aXBwZXRzTW9kZWwuX3NuaXBwZXRzU2V0dGluZy5nZXQoKSk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGZ1bmN0aW9uIGR1bXBNb2RlbFNuaXBwZXRzKCkKKyAgICAgICAgICAgIHsKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRHVtcGluZyBtb2RlbCBzbmlw
cGV0czoiKTsKKyAgICAgICAgICAgICAgICB2YXIgc25pcHBldHMgPSBbXTsKKyAgICAgICAgICAg
ICAgICBmb3IgKHZhciBpZCBpbiBXZWJJbnNwZWN0b3Iuc25pcHBldHNNb2RlbC5fc25pcHBldHMp
CisgICAgICAgICAgICAgICAgICAgIHNuaXBwZXRzLnB1c2goV2ViSW5zcGVjdG9yLnNuaXBwZXRz
TW9kZWwuX3NuaXBwZXRzW2lkXSk7CisgICAgICAgICAgICAgICAgZHVtcFNuaXBwZXRzKHNuaXBw
ZXRzKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgcmVzZXRTbmlwcGV0c1NldHRpbmdz
KCk7CiAKLSAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAgZHVt
cFNhdmVkU25pcHBldHMoKTsKKyAgICAgICAgICAgIGR1bXBNb2RlbFNuaXBwZXRzKCk7CisgICAg
ICAgICAgICB2YXIgc25pcHBldCA9IFdlYkluc3BlY3Rvci5zbmlwcGV0c01vZGVsLmNyZWF0ZVNu
aXBwZXQoKTsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTbmlwcGV0IGNy
ZWF0ZWQuIik7CisgICAgICAgICAgICBkdW1wU2F2ZWRTbmlwcGV0cygpOworICAgICAgICAgICAg
ZHVtcE1vZGVsU25pcHBldHMoKTsKKyAgICAgICAgICAgIHNuaXBwZXQubmFtZSA9ICJOZXcgc25p
cHBldCBuYW1lIjsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTbmlwcGV0
IHJlbmFtZWQuIik7CisgICAgICAgICAgICBkdW1wU2F2ZWRTbmlwcGV0cygpOworICAgICAgICAg
ICAgZHVtcE1vZGVsU25pcHBldHMoKTsKKyAgICAgICAgICAgIHNuaXBwZXQuY29udGVudCA9ICJO
ZXcgc25pcHBldCBjb250ZW50IjsKKyAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0
KCJTbmlwcGV0IGNvbnRlbnQgY2hhbmdlZC4iKTsKKyAgICAgICAgICAgIGR1bXBTYXZlZFNuaXBw
ZXRzKCk7CisgICAgICAgICAgICBkdW1wTW9kZWxTbmlwcGV0cygpOworICAgICAgICAgICAgdmFy
IGFub3RoZXJTbmlwcGV0ID0gV2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuY3JlYXRlU25pcHBl
dCgpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIkFub3RoZXIgc25pcHBl
dCBjcmVhdGVkLiIpOworICAgICAgICAgICAgZHVtcFNhdmVkU25pcHBldHMoKTsKKyAgICAgICAg
ICAgIGR1bXBNb2RlbFNuaXBwZXRzKCk7CisgICAgICAgICAgICBXZWJJbnNwZWN0b3Iuc25pcHBl
dHNNb2RlbC5kZWxldGVTbmlwcGV0KHNuaXBwZXQpOworICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5hZGRSZXN1bHQoIlNuaXBwZXQgZGVsZXRlZC4iKTsKKyAgICAgICAgICAgIGR1bXBTYXZlZFNu
aXBwZXRzKCk7CisgICAgICAgICAgICBkdW1wTW9kZWxTbmlwcGV0cygpOworICAgICAgICAgICAg
V2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuZGVsZXRlU25pcHBldChhbm90aGVyU25pcHBldCk7
CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiQW5vdGhlciBzbmlwcGV0IGRl
bGV0ZWQuIik7CisgICAgICAgICAgICBkdW1wU2F2ZWRTbmlwcGV0cygpOworICAgICAgICAgICAg
ZHVtcE1vZGVsU25pcHBldHMoKTsKKworICAgICAgICAgICAgbmV4dCgpOworICAgICAgICB9LAor
CisgICAgICAgIGZ1bmN0aW9uIHRlc3RFdmFsdWF0ZShuZXh0KQorICAgICAgICB7CisgICAgICAg
ICAgICByZXNldFNuaXBwZXRzU2V0dGluZ3MoKTsKKworICAgICAgICAgICAgdmFyIHNuaXBwZXQx
ID0gV2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuY3JlYXRlU25pcHBldCgpOworICAgICAgICAg
ICAgc25pcHBldDEubmFtZSA9ICJTbmlwcGV0MSI7CisgICAgICAgICAgICBzbmlwcGV0MS5jb250
ZW50ID0gIiI7CisgICAgICAgICAgICBzbmlwcGV0MS5jb250ZW50ICs9ICIvLyBUaGlzIHNuaXBw
ZXQgZG9lcyBub3RoaW5nLlxuIjsKKyAgICAgICAgICAgIHNuaXBwZXQxLmNvbnRlbnQgKz0gInZh
ciBpID0gMisyO1xuIjsKKyAgICAgICAgICAgIHZhciBzbmlwcGV0MiA9IFdlYkluc3BlY3Rvci5z
bmlwcGV0c01vZGVsLmNyZWF0ZVNuaXBwZXQoKTsKKyAgICAgICAgICAgIHNuaXBwZXQyLm5hbWUg
PSAiU25pcHBldDIiOworICAgICAgICAgICAgc25pcHBldDIuY29udGVudCA9ICIiOworICAgICAg
ICAgICAgc25pcHBldDIuY29udGVudCArPSAiLy8gVGhpcyBzbmlwcGV0IGNyZWF0ZXMgYSBmdW5j
dGlvbiB0aGF0IGRvZXMgbm90aGluZy5cbiI7CisgICAgICAgICAgICBzbmlwcGV0Mi5jb250ZW50
ICs9ICJmdW5jdGlvbiBkb2VzTm90aGluZygpXG4iOworICAgICAgICAgICAgc25pcHBldDIuY29u
dGVudCArPSAie1xuIjsKKyAgICAgICAgICAgIHNuaXBwZXQyLmNvbnRlbnQgKz0gIiAgICB2YXIg
IGkgPSAyKzI7XG4iOworICAgICAgICAgICAgc25pcHBldDIuY29udGVudCArPSAifVxuIjsKKwor
ICAgICAgICAgICAgZnVuY3Rpb24gZXZhbHVhdGVTbmlwcGV0QW5kRHVtcEV2YWx1YXRpb25EZXRh
aWxzKHNuaXBwZXQsIGNhbGxiYWNrKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkU25pZmZlcihXZWJJbnNwZWN0b3IuU25pcHBldHNTY3JpcHRNYXBwaW5n
LnByb3RvdHlwZSwgImFkZFNjcmlwdCIsIGR1bXBTY3JpcHQpOworICAgICAgICAgICAgICAgIHNu
aXBwZXQuZXZhbHVhdGUoKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3Vs
dCgiTGFzdCBldmFsdWF0aW9uIHNvdXJjZSB1cmwgZm9yIHNuaXBwZXQ6ICIgKyBzbmlwcGV0Ll9s
YXN0RXZhbHVhdGlvblNvdXJjZVVSTCk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
c3NlcnRFcXVhbHMoc25pcHBldCwgV2ViSW5zcGVjdG9yLnNuaXBwZXRzTW9kZWwuc25pcHBldEZv
clNvdXJjZVVSTChzbmlwcGV0Ll9sYXN0RXZhbHVhdGlvblNvdXJjZVVSTCksICJTbmlwcGV0IGNh
biBub3QgYmUgaWRlbnRpZmllZCBieSBpdHMgZXZhbHVhdGlvbiBzb3VyY2VVUkwuIik7CisKKyAg
ICAgICAgICAgICAgICBmdW5jdGlvbiBkdW1wU2NyaXB0KHNjcmlwdCkKKyAgICAgICAgICAgICAg
ICB7CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJTbmlwcGV0
IHNjcmlwdCBhZGRlZCwgc291cmNlVVJMID0gIiArIHNjcmlwdC5zb3VyY2VVUkwpOworICAgICAg
ICAgICAgICAgICAgICBjYWxsYmFjaygpOworICAgICAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgICAgIC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSByZW1vdmVkIG9uY2Ugc25pcHBldHMgZXZh
bHVhdGlvbiBpdHNlbGYgaXMgaW1wbGVtZW50ZWQuCisgICAgICAgICAgICAgICAgY2FsbGJhY2so
KTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgZXZhbHVhdGVTbmlwcGV0QW5kRHVtcEV2
YWx1YXRpb25EZXRhaWxzKHNuaXBwZXQxLCBzdGVwMik7CisKKyAgICAgICAgICAgIGZ1bmN0aW9u
IHN0ZXAyKCkKKyAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICBldmFsdWF0ZVNuaXBwZXRB
bmREdW1wRXZhbHVhdGlvbkRldGFpbHMoc25pcHBldDIsIHN0ZXAzKTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgZnVuY3Rpb24gc3RlcDMoKQorICAgICAgICAgICAgeworICAgICAgICAg
ICAgICAgIGV2YWx1YXRlU25pcHBldEFuZER1bXBFdmFsdWF0aW9uRGV0YWlscyhzbmlwcGV0MSwg
bmV4dCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICBdKTsKIH07CiA8L3NjcmlwdD4K
IDwvaGVhZD4KIDxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KLTxwPlRlc3RzIGhvdyBzbmlwcGV0
cyBtb2RlbCBzdG9yZXMsIHNhdmVzIGFuZCBsb2FkcyBzbmlwcGV0czwvcD4KKzxwPlRlc3RzIHNu
aXBwZXRzIG1vZGVsLjwvcD4KIDwvYm9keT4KIDwvaHRtbD4K
</data>
<flag name="review"
          id="135591"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>