<?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>56558</bug_id>
          
          <creation_ts>2011-03-17 06:38:29 -0700</creation_ts>
          <short_desc>Web Inspector: add support for formating source files in debugger presentation model.</short_desc>
          <delta_ts>2011-03-23 08:06:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter name="Pavel Podivilov">podivilov</reporter>
          <assigned_to name="Pavel Podivilov">podivilov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>369032</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-03-17 06:38:29 -0700</bug_when>
    <thetext>Web Inspector: add support for formating source files in debugger presentation model.

This is still behind the flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>369033</commentid>
    <comment_count>1</comment_count>
      <attachid>86052</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-03-17 06:39:08 -0700</bug_when>
    <thetext>Created attachment 86052
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>370813</commentid>
    <comment_count>2</comment_count>
      <attachid>86348</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-03-21 12:02:23 -0700</bug_when>
    <thetext>Created attachment 86348
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>371416</commentid>
    <comment_count>3</comment_count>
      <attachid>86348</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2011-03-22 09:23:25 -0700</bug_when>
    <thetext>Comment on attachment 86348
Patch.

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

&gt; Source/WebCore/inspector/front-end/DebuggerPresentationModel.js:164
&gt; +        this._refreshBreakpoints();

All breakpoints are already updated by _addScript, why do you need this call?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372143</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-03-23 08:05:22 -0700</bug_when>
    <thetext>Committed r81774: &lt;http://trac.webkit.org/changeset/81774&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>372144</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2011-03-23 08:06:23 -0700</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 86348 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=86348&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/front-end/DebuggerPresentationModel.js:164
&gt; &gt; +        this._refreshBreakpoints();
&gt; 
&gt; All breakpoints are already updated by _addScript, why do you need this call?

Removed call to _refreshBreakpoints from _addScript to add all breakpoints at once.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86052</attachid>
            <date>2011-03-17 06:39:08 -0700</date>
            <delta_ts>2011-03-21 12:02:23 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>16566</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAyN2U2YTE1Li5iNDgwZjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzgg
QEAKKzIwMTEtMDMtMTcgIFBhdmVsIFBvZGl2aWxvdiAgPHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV2ViIElu
c3BlY3RvcjogYWRkIHN1cHBvcnQgZm9yIGZvcm1hdGluZyBzb3VyY2UgZmlsZXMgaW4gZGVidWdn
ZXIgcHJlc2VudGF0aW9uIG1vZGVsLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTY1NTgKKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVi
dWdnZXJNb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3Rv
dHlwZS5yZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5
cGUuZ2V0IHNjcmlwdHMpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNl
bnRhdGlvbk1vZGVsKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLnByb3RvdHlwZS5zZXRGb3JtYXRTb3VyY2VGaWxlcyk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuY29udGludWVUb0xpbmUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90
eXBlLnNldEJyZWFrcG9pbnQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwucHJvdG90eXBlLl9yZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291
cmNlRmlsZVByb3ZpZGVyLnByb3RvdHlwZS5zY3JpcHRMb2NhdGlvblRvU291cmNlTG9jYXRpb24p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZpbGVQcm92aWRlci5wcm90b3R5cGUuc291
cmNlTG9jYXRpb25Ub1NjcmlwdExvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3Vy
Y2VGaWxlUHJvdmlkZXIucHJvdG90eXBlLnJlc2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5G
b3JtYXR0ZWRTb3VyY2VGaWxlUHJvdmlkZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZvcm1h
dHRlZFNvdXJjZUZpbGVQcm92aWRlci5wcm90b3R5cGUuYWRkU2NyaXB0KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5Gb3JtYXR0ZWRTb3VyY2VGaWxlUHJvdmlkZXIucHJvdG90eXBlLnJlcXVlc3RT
b3VyY2VGaWxlQ29udGVudC5kaWRSZXF1ZXN0U291cmNlRmlsZUNvbnRlbnQuZGlkRm9ybWF0Q29u
dGVudCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRm9ybWF0dGVkU291cmNlRmlsZVByb3ZpZGVy
LnByb3RvdHlwZS5yZXF1ZXN0U291cmNlRmlsZUNvbnRlbnQpOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLkZvcm1hdHRlZFNvdXJjZUZpbGVQcm92aWRlci5wcm90b3R5cGUuc2NyaXB0TG9jYXRpb25U
b1NvdXJjZUxvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Gb3JtYXR0ZWRTb3VyY2VG
aWxlUHJvdmlkZXIucHJvdG90eXBlLnNvdXJjZUxvY2F0aW9uVG9TY3JpcHRMb2NhdGlvbik6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuRm9ybWF0dGVkU291cmNlRmlsZVByb3ZpZGVyLnByb3RvdHlw
ZS5yZXNldCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXIu
anM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLnByb3RvdHlwZS5mb3Jt
YXRDb250ZW50LmRpZEZvcm1hdENodW5rcyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0
Rm9ybWF0dGVyLnByb3RvdHlwZS5mb3JtYXRDb250ZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRz
UGFuZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUucmVz
ZXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbC5wcm90b3R5cGUuX3RvZ2ds
ZUZvcm1hdFNvdXJjZUZpbGVzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJj
ZUZyYW1lLmpzOgorCiAyMDExLTAzLTE2ICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hy
b21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpz
IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlck1vZGVsLmpzCmlu
ZGV4IDNjYjM3YzYuLmNjZDFmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKQEAgLTQ1LDcgKzQ1LDggQEAgV2ViSW5zcGVj
dG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzID0gewogICAgIFBhcnNlZFNjcmlwdFNvdXJjZTogInBh
cnNlZC1zY3JpcHQtc291cmNlIiwKICAgICBGYWlsZWRUb1BhcnNlU2NyaXB0U291cmNlOiAiZmFp
bGVkLXRvLXBhcnNlLXNjcmlwdC1zb3VyY2UiLAogICAgIFNjcmlwdFNvdXJjZUNoYW5nZWQ6ICJz
Y3JpcHQtc291cmNlLWNoYW5nZWQiLAotICAgIEJyZWFrcG9pbnRSZXNvbHZlZDogImJyZWFrcG9p
bnQtcmVzb2x2ZWQiCisgICAgQnJlYWtwb2ludFJlc29sdmVkOiAiYnJlYWtwb2ludC1yZXNvbHZl
ZCIsCisgICAgUmVzZXQ6ICJyZXNldCIKIH0KIAogV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwu
cHJvdG90eXBlID0gewpAQCAtMTQ1LDYgKzE0NiwxMiBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJN
b2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgYnJlYWtwb2ludC5sb2NhdGlvbnMg
PSBbXTsKICAgICAgICAgfQogICAgICAgICB0aGlzLl9zY3JpcHRzID0ge307CisgICAgICAgIHRo
aXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2
ZW50cy5SZXNldCk7CisgICAgfSwKKworICAgIGdldCBzY3JpcHRzKCkKKyAgICB7CisgICAgICAg
IHJldHVybiB0aGlzLl9zY3JpcHRzOwogICAgIH0sCiAKICAgICBzY3JpcHRGb3JTb3VyY2VJRDog
ZnVuY3Rpb24oc291cmNlSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKaW5kZXggZWQ0
N2VkOS4uNWVhOTZjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5qcwpAQCAtMzgsNiAr
MzgsNyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCA9IGZ1bmN0aW9u
KCkKICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYklu
c3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5GYWlsZWRUb1BhcnNlU2NyaXB0U291cmNlLCB0
aGlzLl9mYWlsZWRUb1BhcnNlU2NyaXB0U291cmNlLCB0aGlzKTsKICAgICBXZWJJbnNwZWN0b3Iu
ZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVs
LkV2ZW50cy5TY3JpcHRTb3VyY2VDaGFuZ2VkLCB0aGlzLl9zY3JpcHRTb3VyY2VDaGFuZ2VkLCB0
aGlzKTsKICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5hZGRFdmVudExpc3RlbmVyKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5CcmVha3BvaW50UmVzb2x2ZWQsIHRoaXMu
X2JyZWFrcG9pbnRSZXNvbHZlZCwgdGhpcyk7CisgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9k
ZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuUmVz
ZXQsIHRoaXMuX3Jlc2V0LCB0aGlzKTsKIH0KIAogV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwuRXZlbnRzID0gewpAQCAtMTM0LDEwICsxMzUsMjQgQEAgV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLmRp
c3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25N
b2RlbC5FdmVudHMuU291cmNlRmlsZUNoYW5nZWQsIHNvdXJjZUZpbGUpOwogICAgIH0sCiAKKyAg
ICBzZXRGb3JtYXRTb3VyY2VGaWxlczogZnVuY3Rpb24oZm9ybWF0KQorICAgIHsKKyAgICAgICAg
dGhpcy5fcHJlc2VudGF0aW9uQnJlYWtwb2ludHMgPSB7fTsKKworICAgICAgICBpZiAoZm9ybWF0
KQorICAgICAgICAgICAgdGhpcy5fc291cmNlRmlsZVByb3ZpZGVyID0gbmV3IFdlYkluc3BlY3Rv
ci5Gb3JtYXR0ZWRTb3VyY2VGaWxlUHJvdmlkZXIodGhpcy5fc291cmNlRmlsZUFkZGVkLmJpbmQo
dGhpcyksIHRoaXMuX3NvdXJjZUZpbGVDaGFuZ2VkLmJpbmQodGhpcykpOworICAgICAgICBlbHNl
CisgICAgICAgICAgICB0aGlzLl9zb3VyY2VGaWxlUHJvdmlkZXIgPSBuZXcgV2ViSW5zcGVjdG9y
LlNvdXJjZUZpbGVQcm92aWRlcih0aGlzLl9zb3VyY2VGaWxlQWRkZWQuYmluZCh0aGlzKSwgdGhp
cy5fc291cmNlRmlsZUNoYW5nZWQuYmluZCh0aGlzKSk7CisKKyAgICAgICAgdmFyIHNjcmlwdHMg
PSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRzOworICAgICAgICBmb3IgKHZhciBp
ZCBpbiBzY3JpcHRzKQorICAgICAgICAgICAgdGhpcy5fc291cmNlRmlsZVByb3ZpZGVyLmFkZFNj
cmlwdChzY3JpcHRzW2lkXSk7CisgICAgfSwKKwogICAgIGNvbnRpbnVlVG9MaW5lOiBmdW5jdGlv
bihzb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIpCiAgICAgewotICAgICAgICB2YXIgbG9jYXRpb24g
PSB0aGlzLl9zb3VyY2VGaWxlUHJvdmlkZXIuc291cmNlTG9jYXRpb25Ub1NjcmlwdExvY2F0aW9u
KHNvdXJjZUZpbGVJZCwgbGluZU51bWJlcik7Ci0gICAgICAgIGlmIChsb2NhdGlvbi5zb3VyY2VJ
RCkKKyAgICAgICAgdmFyIGxvY2F0aW9uID0gdGhpcy5fc291cmNlRmlsZVByb3ZpZGVyLnNvdXJj
ZUxvY2F0aW9uVG9TY3JpcHRMb2NhdGlvbihzb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIsIDApOwor
ICAgICAgICBpZiAobG9jYXRpb24pCiAgICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJN
b2RlbC5jb250aW51ZVRvTG9jYXRpb24obG9jYXRpb24uc291cmNlSUQsIGxvY2F0aW9uLmxpbmVO
dW1iZXIsIGxvY2F0aW9uLmNvbHVtbk51bWJlcik7CiAgICAgfSwKIApAQCAtMTYxLDExICsxNzYs
MTQgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0g
ewogICAgICAgICAgICAgICAgIHRoaXMuX3NhdmVCcmVha3BvaW50cygpOwogICAgICAgICAgICAg
fQogICAgICAgICB9Ci0gICAgICAgIHZhciBsb2NhdGlvbiA9IHRoaXMuX3NvdXJjZUZpbGVQcm92
aWRlci5zb3VyY2VMb2NhdGlvblRvU2NyaXB0TG9jYXRpb24oc291cmNlRmlsZUlkLCBsaW5lTnVt
YmVyKTsKLSAgICAgICAgaWYgKGxvY2F0aW9uLnVybCkKLSAgICAgICAgICAgIFdlYkluc3BlY3Rv
ci5kZWJ1Z2dlck1vZGVsLnNldEJyZWFrcG9pbnQobG9jYXRpb24udXJsLCBsb2NhdGlvbi5saW5l
TnVtYmVyLCBsb2NhdGlvbi5jb2x1bW5OdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCwgZGlkU2V0
QnJlYWtwb2ludC5iaW5kKHRoaXMpKTsKKyAgICAgICAgdmFyIGxvY2F0aW9uID0gdGhpcy5fc291
cmNlRmlsZVByb3ZpZGVyLnNvdXJjZUxvY2F0aW9uVG9TY3JpcHRMb2NhdGlvbihzb3VyY2VGaWxl
SWQsIGxpbmVOdW1iZXIsIDApOworICAgICAgICBpZiAoIWxvY2F0aW9uKQorICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICB2YXIgc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwu
c2NyaXB0Rm9yU291cmNlSUQobG9jYXRpb24uc291cmNlSUQpOworICAgICAgICBpZiAoc2NyaXB0
LnNvdXJjZVVSTCkKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNldEJy
ZWFrcG9pbnQoc2NyaXB0LnNvdXJjZVVSTCwgbG9jYXRpb24ubGluZU51bWJlciwgbG9jYXRpb24u
Y29sdW1uTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQsIGRpZFNldEJyZWFrcG9pbnQuYmluZCh0
aGlzKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1v
ZGVsLnNldEJyZWFrcG9pbnRCeVNvdXJjZUlkKGxvY2F0aW9uLnNvdXJjZUlELCBsb2NhdGlvbi5s
aW5lTnVtYmVyLCBsb2NhdGlvbi5jb2x1bW5OdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCwgZGlk
U2V0QnJlYWtwb2ludC5iaW5kKHRoaXMpKTsKKyAgICAgICAgICAgIFdlYkluc3BlY3Rvci5kZWJ1
Z2dlck1vZGVsLnNldEJyZWFrcG9pbnRCeVNvdXJjZUlkKHNjcmlwdC5zb3VyY2VJRCwgbG9jYXRp
b24ubGluZU51bWJlciwgbG9jYXRpb24uY29sdW1uTnVtYmVyLCBjb25kaXRpb24sIGVuYWJsZWQs
IGRpZFNldEJyZWFrcG9pbnQuYmluZCh0aGlzKSk7CiAgICAgfSwKIAogICAgIHNldEJyZWFrcG9p
bnRFbmFibGVkOiBmdW5jdGlvbihzb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIsIGVuYWJsZWQpCkBA
IC0yOTYsNyArMzE0LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwu
cHJvdG90eXBlID0gewogICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRDYWxsRnJhbWU7CiAg
ICAgfSwKIAotICAgIHJlc2V0OiBmdW5jdGlvbigpCisgICAgX3Jlc2V0OiBmdW5jdGlvbigpCiAg
ICAgewogICAgICAgICB0aGlzLl9zb3VyY2VGaWxlUHJvdmlkZXIucmVzZXQoKTsKICAgICAgICAg
dGhpcy5fcHJlc2VudGF0aW9uQnJlYWtwb2ludHMgPSB7fTsKQEAgLTM5MywyNSArNDExLDg2IEBA
IFdlYkluc3BlY3Rvci5Tb3VyY2VGaWxlUHJvdmlkZXIucHJvdG90eXBlID0gewogCiAgICAgc2Ny
aXB0TG9jYXRpb25Ub1NvdXJjZUxvY2F0aW9uOiBmdW5jdGlvbihzY3JpcHRVUkwsIHNjcmlwdElk
LCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpCiAgICAgewotICAgICAgICAvLyBUT0RPOiB1c2Ug
c291cmNlIG1hcHBpbmcgdG8gb2J0YWluIHNvdXJjZSBsb2NhdGlvbi4KICAgICAgICAgdmFyIHNv
dXJjZUZpbGUgPSB0aGlzLl9zb3VyY2VGaWxlc1tzY3JpcHRVUkwgfHwgc2NyaXB0SWRdOwogICAg
ICAgICBpZiAoc291cmNlRmlsZSAmJiAhc291cmNlRmlsZS5fcGVuZGluZykKICAgICAgICAgICAg
IHJldHVybiB7IHNvdXJjZUZpbGVJZDogc291cmNlRmlsZS5pZCwgbGluZU51bWJlcjogbGluZU51
bWJlciwgY29sdW1uTnVtYmVyOiBjb2x1bW5OdW1iZXIgfTsKICAgICB9LAogCi0gICAgc291cmNl
TG9jYXRpb25Ub1NjcmlwdExvY2F0aW9uOiBmdW5jdGlvbihzb3VyY2VGaWxlSWQsIGxpbmVOdW1i
ZXIpCisgICAgc291cmNlTG9jYXRpb25Ub1NjcmlwdExvY2F0aW9uOiBmdW5jdGlvbihzb3VyY2VG
aWxlSWQsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikKKyAgICB7CisgICAgICAgIHZhciBzb3Vy
Y2VGaWxlID0gdGhpcy5fc291cmNlRmlsZXNbc291cmNlRmlsZUlkXTsKKyAgICAgICAgcmV0dXJu
IHsgc291cmNlSUQ6IHNvdXJjZUZpbGUuX3NjcmlwdC5zb3VyY2VJRCwgbGluZU51bWJlcjogbGlu
ZU51bWJlciwgY29sdW1uTnVtYmVyOiBjb2x1bW5OdW1iZXIgfTsKKyAgICB9LAorCisgICAgcmVz
ZXQ6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIC8vIFRPRE86IHVzZSBzb3VyY2UgbWFwcGlu
ZyB0byBvYnRhaW4gYWN0dWFsIGxvY2F0aW9uLgotICAgICAgICBmdW5jdGlvbiBmaWx0ZXIoc2Ny
aXB0KQorICAgICAgICB0aGlzLl9zb3VyY2VGaWxlcyA9IHt9OworICAgICAgICB0aGlzLl9zY3Jp
cHRzID0gW107CisgICAgfQorfQorCisKK1dlYkluc3BlY3Rvci5Gb3JtYXR0ZWRTb3VyY2VGaWxl
UHJvdmlkZXIgPSBmdW5jdGlvbihzb3VyY2VGaWxlQWRkZWREZWxlZ2F0ZSwgc291cmNlRmlsZUNo
YW5nZWREZWxlZ2F0ZSkKK3sKKyAgICBXZWJJbnNwZWN0b3IuU291cmNlRmlsZVByb3ZpZGVyLmNh
bGwodGhpcywgc291cmNlRmlsZUFkZGVkRGVsZWdhdGUsIHNvdXJjZUZpbGVDaGFuZ2VkRGVsZWdh
dGUpOworICAgIHRoaXMuX2Zvcm1hdHRlciA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0
dGVyKCk7CisgICAgdGhpcy5fc2NyaXB0cyA9IFtdOworfQorCitXZWJJbnNwZWN0b3IuRm9ybWF0
dGVkU291cmNlRmlsZVByb3ZpZGVyLnByb3RvdHlwZSA9IHsKKyAgICBhZGRTY3JpcHQ6IGZ1bmN0
aW9uKHNjcmlwdCkKKyAgICB7CisgICAgICAgIHRoaXMuX3NjcmlwdHMucHVzaChzY3JpcHQpOwor
ICAgICAgICBXZWJJbnNwZWN0b3IuU291cmNlRmlsZVByb3ZpZGVyLnByb3RvdHlwZS5hZGRTY3Jp
cHQuY2FsbCh0aGlzLCBzY3JpcHQpOworICAgIH0sCisKKyAgICByZXF1ZXN0U291cmNlRmlsZUNv
bnRlbnQ6IGZ1bmN0aW9uKHNvdXJjZUZpbGVJZCwgY2FsbGJhY2spCisgICAgeworICAgICAgICBm
dW5jdGlvbiBkaWRSZXF1ZXN0U291cmNlRmlsZUNvbnRlbnQobWltZVR5cGUsIHRleHQpCiAgICAg
ICAgIHsKLSAgICAgICAgICAgIHJldHVybiAoc2NyaXB0LnNvdXJjZVVSTCB8fCBzY3JpcHQuc291
cmNlSUQpID09PSBzb3VyY2VGaWxlSWQ7CisgICAgICAgICAgICB2YXIgc2NyaXB0cyA9IFtdOwor
ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0aGlzLl9zY3JpcHRzLmxlbmd0aDsgKytp
KSB7CisgICAgICAgICAgICAgICAgdmFyIHNjcmlwdCA9IHRoaXMuX3NjcmlwdHNbaV07CisgICAg
ICAgICAgICAgICAgaWYgKChzY3JpcHQuc291cmNlVVJMIHx8IHNjcmlwdC5zb3VyY2VJRCkgPT09
IHNvdXJjZUZpbGVJZCkKKyAgICAgICAgICAgICAgICAgICAgc2NyaXB0cy5wdXNoKHNjcmlwdCk7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YXIgc2NyaXB0UmFuZ2VzID0gV2ViSW5zcGVj
dG9yLlNjcmlwdEZvcm1hdHRlci5maW5kU2NyaXB0UmFuZ2VzKHRleHQubGluZUVuZGluZ3MoKSwg
c2NyaXB0cyk7CisKKyAgICAgICAgICAgIGZ1bmN0aW9uIGRpZEZvcm1hdENvbnRlbnQodGV4dCwg
b3JpZ2luYWxUb0Zvcm1hdHRlZCwgZm9ybWF0dGVkVG9PcmlnaW5hbCkKKyAgICAgICAgICAgIHsK
KyAgICAgICAgICAgICAgICB2YXIgc291cmNlRmlsZSA9IHRoaXMuc291cmNlRmlsZShzb3VyY2VG
aWxlSWQpOworICAgICAgICAgICAgICAgIHNvdXJjZUZpbGUuX29yaWdpbmFsVG9Gb3JtYXR0ZWQg
PSBvcmlnaW5hbFRvRm9ybWF0dGVkOworICAgICAgICAgICAgICAgIHNvdXJjZUZpbGUuX2Zvcm1h
dHRlZFRvT3JpZ2luYWwgPSBmb3JtYXR0ZWRUb09yaWdpbmFsOworICAgICAgICAgICAgICAgIGNh
bGxiYWNrKG1pbWVUeXBlLCB0ZXh0KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMu
X2Zvcm1hdHRlci5mb3JtYXRDb250ZW50KHsgdGV4dDogdGV4dCwgc2NyaXB0UmFuZ2VzOiBzY3Jp
cHRSYW5nZXMgfSwgZGlkRm9ybWF0Q29udGVudC5iaW5kKHRoaXMpKTsKICAgICAgICAgfQotICAg
ICAgICB2YXIgc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwucXVlcnlTY3JpcHRz
KGZpbHRlcilbMF07Ci0gICAgICAgIHJldHVybiB7IHVybDogc2NyaXB0LnNvdXJjZVVSTCwgc291
cmNlSUQ6IHNjcmlwdC5zb3VyY2VJRCwgbGluZU51bWJlcjogbGluZU51bWJlciwgY29sdW1uTnVt
YmVyOiAwIH07CisgICAgICAgIFdlYkluc3BlY3Rvci5Tb3VyY2VGaWxlUHJvdmlkZXIucHJvdG90
eXBlLnJlcXVlc3RTb3VyY2VGaWxlQ29udGVudC5jYWxsKHRoaXMsIHNvdXJjZUZpbGVJZCwgZGlk
UmVxdWVzdFNvdXJjZUZpbGVDb250ZW50LmJpbmQodGhpcykpOworICAgIH0sCisKKyAgICBzY3Jp
cHRMb2NhdGlvblRvU291cmNlTG9jYXRpb246IGZ1bmN0aW9uKHNjcmlwdFVSTCwgc2NyaXB0SWQs
IGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikKKyAgICB7CisgICAgICAgIHZhciBsb2NhdGlvbiA9
IFdlYkluc3BlY3Rvci5Tb3VyY2VGaWxlUHJvdmlkZXIucHJvdG90eXBlLnNjcmlwdExvY2F0aW9u
VG9Tb3VyY2VMb2NhdGlvbi5jYWxsKHRoaXMsIHNjcmlwdFVSTCwgc2NyaXB0SWQsIGxpbmVOdW1i
ZXIsIGNvbHVtbk51bWJlcik7CisgICAgICAgIGlmICghbG9jYXRpb24pCisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIHZhciBzb3VyY2VGaWxlID0gdGhpcy5fc291cmNlRmlsZXNbbG9jYXRp
b24uc291cmNlRmlsZUlkXTsKKyAgICAgICAgdmFyIGZvcm1hdHRlZExvY2F0aW9uID0gc291cmNl
RmlsZS5fb3JpZ2luYWxUb0Zvcm1hdHRlZChsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpOworICAg
ICAgICBmb3JtYXR0ZWRMb2NhdGlvbi5zb3VyY2VGaWxlSWQgPSBsb2NhdGlvbi5zb3VyY2VGaWxl
SWQ7CisgICAgICAgIHJldHVybiBmb3JtYXR0ZWRMb2NhdGlvbjsKKyAgICB9LAorCisgICAgc291
cmNlTG9jYXRpb25Ub1NjcmlwdExvY2F0aW9uOiBmdW5jdGlvbihzb3VyY2VGaWxlSWQsIGxpbmVO
dW1iZXIsIGNvbHVtbk51bWJlcikKKyAgICB7CisgICAgICAgIHZhciBzb3VyY2VGaWxlID0gdGhp
cy5fc291cmNlRmlsZXNbc291cmNlRmlsZUlkXTsKKyAgICAgICAgdmFyIG9yaWdpbmFsTG9jYXRp
b24gPSBzb3VyY2VGaWxlLl9mb3JtYXR0ZWRUb09yaWdpbmFsKGxpbmVOdW1iZXIsIGNvbHVtbk51
bWJlcik7CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuU291cmNlRmlsZVByb3ZpZGVyLnBy
b3RvdHlwZS5zb3VyY2VMb2NhdGlvblRvU2NyaXB0TG9jYXRpb24uY2FsbCh0aGlzLCBzb3VyY2VG
aWxlSWQsIG9yaWdpbmFsTG9jYXRpb24ubGluZU51bWJlciwgb3JpZ2luYWxMb2NhdGlvbi5jb2x1
bW5OdW1iZXIpOwogICAgIH0sCiAKICAgICByZXNldDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAg
ICAgdGhpcy5fc291cmNlRmlsZXMgPSB7fTsKKyAgICAgICAgIHRoaXMuX3NjcmlwdHMgPSBbXTsK
KyAgICAgICAgIFdlYkluc3BlY3Rvci5Tb3VyY2VGaWxlUHJvdmlkZXIucHJvdG90eXBlLnJlc2V0
LmNhbGwodGhpcyk7CiAgICAgfQogfQorCitXZWJJbnNwZWN0b3IuRm9ybWF0dGVkU291cmNlRmls
ZVByb3ZpZGVyLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuU291cmNlRmlsZVBy
b3ZpZGVyLnByb3RvdHlwZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvU2NyaXB0Rm9ybWF0dGVyLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHRGb3JtYXR0ZXIuanMKaW5kZXggZjcwZDZjNi4uZmM3YjA1NyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0ZXIu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRGb3JtYXR0
ZXIuanMKQEAgLTc2LDE4ICs3NiwxMCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgZnVuY3Rpb24gZGlkRm9ybWF0Q2h1bmtzKCkKICAgICAgICAg
ewogICAgICAgICAgICAgdmFyIHJlc3VsdCA9IHRoaXMuX2J1aWxkQ29udGVudEZyb21DaHVua3Mo
Y2h1bmtzKTsKLQogICAgICAgICAgICAgdmFyIHNvdXJjZU1hcHBpbmcgPSBuZXcgV2ViSW5zcGVj
dG9yLlNvdXJjZU1hcHBpbmdGb3JGb3JtYXR0ZWRTY3JpcHQoY29udGVudC50ZXh0LmxpbmVFbmRp
bmdzKCksIHJlc3VsdC50ZXh0LmxpbmVFbmRpbmdzKCksIHJlc3VsdC5tYXBwaW5nKTsKLSAgICAg
ICAgICAgIHZhciBmb3JtYXR0ZWRTY3JpcHRSYW5nZXMgPSBbXTsKLSAgICAgICAgICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgY29udGVudC5zY3JpcHRSYW5nZXMubGVuZ3RoOyArK2kpIHsKLSAgICAg
ICAgICAgICAgICB2YXIgc2NyaXB0UmFuZ2UgPSBjb250ZW50LnNjcmlwdFJhbmdlc1tpXTsKLSAg
ICAgICAgICAgICAgICBmb3JtYXR0ZWRTY3JpcHRSYW5nZSA9IHt9OwotICAgICAgICAgICAgICAg
IGZvcm1hdHRlZFNjcmlwdFJhbmdlLnN0YXJ0ID0gc291cmNlTWFwcGluZy5vcmlnaW5hbFBvc2l0
aW9uVG9Gb3JtYXR0ZWRMb2NhdGlvbihzY3JpcHRSYW5nZS5zdGFydC5wb3NpdGlvbik7Ci0gICAg
ICAgICAgICAgICAgZm9ybWF0dGVkU2NyaXB0UmFuZ2UuZW5kID0gc291cmNlTWFwcGluZy5vcmln
aW5hbFBvc2l0aW9uVG9Gb3JtYXR0ZWRMb2NhdGlvbihzY3JpcHRSYW5nZS5lbmQucG9zaXRpb24p
OwotICAgICAgICAgICAgICAgIGZvcm1hdHRlZFNjcmlwdFJhbmdlLnNvdXJjZUlEID0gc2NyaXB0
UmFuZ2Uuc291cmNlSUQ7Ci0gICAgICAgICAgICAgICAgZm9ybWF0dGVkU2NyaXB0UmFuZ2VzLnB1
c2goZm9ybWF0dGVkU2NyaXB0UmFuZ2UpOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgY2Fs
bGJhY2sobmV3IFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZUNvbnRlbnQocmVzdWx0LnRleHQsIHNv
dXJjZU1hcHBpbmcsIGZvcm1hdHRlZFNjcmlwdFJhbmdlcykpOworICAgICAgICAgICAgdmFyIG9y
aWdpbmFsVG9Gb3JtYXR0ZWQgPSBzb3VyY2VNYXBwaW5nLmFjdHVhbExvY2F0aW9uVG9Tb3VyY2VM
b2NhdGlvbi5iaW5kKHNvdXJjZU1hcHBpbmcpOworICAgICAgICAgICAgdmFyIGZvcm1hdHRlZFRv
T3JpZ2luYWwgPSBzb3VyY2VNYXBwaW5nLnNvdXJjZUxvY2F0aW9uVG9BY3R1YWxMb2NhdGlvbi5i
aW5kKHNvdXJjZU1hcHBpbmcpOworICAgICAgICAgICAgY2FsbGJhY2socmVzdWx0LnRleHQsIG9y
aWdpbmFsVG9Gb3JtYXR0ZWQsIGZvcm1hdHRlZFRvT3JpZ2luYWwpOwogICAgICAgICB9CiAgICAg
ICAgIHRoaXMuX2Zvcm1hdENodW5rcyhjaHVua3MsIDAsIGRpZEZvcm1hdENodW5rcy5iaW5kKHRo
aXMpKTsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9TY3JpcHRzUGFuZWwuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdHNQYW5lbC5qcwppbmRleCA0MGQ1ZjZiLi5lMTNiOTIzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpAQCAtNjUsMTQg
KzY1LDE1IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwgPSBmdW5jdGlvbigpCiAgICAgLy8g
RklYTUU6IGFwcGVuZCB0aGUgZnVuY3Rpb25zIHNlbGVjdCBlbGVtZW50IHRvIHRoZSB0b3Agc3Rh
dHVzIGJhciB3aGVuIGl0IGlzIGltcGxlbWVudGVkLgogICAgIC8vIHRoaXMudG9wU3RhdHVzQmFy
LmFwcGVuZENoaWxkKHRoaXMuZnVuY3Rpb25zU2VsZWN0RWxlbWVudCk7CiAKLSAgICB0aGlzLmZv
cm1hdEJ1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOwotICAgIHRoaXMu
Zm9ybWF0QnV0dG9uLmNsYXNzTmFtZSA9ICJzdGF0dXMtYmFyLWl0ZW0iOwotICAgIHRoaXMuZm9y
bWF0QnV0dG9uLmlkID0gImZvcm1hdC1zY3JpcHQiOwotICAgIHRoaXMuZm9ybWF0QnV0dG9uLnRp
dGxlID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJGb3JtYXQgc2NyaXB0LiIpOwotICAgIHRoaXMu
Zm9ybWF0QnV0dG9uLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImltZyIpKTsK
LSAgICB0aGlzLmZvcm1hdEJ1dHRvbi5hZGRFdmVudExpc3RlbmVyKCJjbGljayIsIHRoaXMuX2Zv
cm1hdFNjcmlwdC5iaW5kKHRoaXMpLCBmYWxzZSk7CisgICAgdGhpcy50b2dnbGVGb3JtYXRTb3Vy
Y2VGaWxlc0J1dHRvbiA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImJ1dHRvbiIpOworICAgIHRo
aXMudG9nZ2xlRm9ybWF0U291cmNlRmlsZXNCdXR0b24uY2xhc3NOYW1lID0gInN0YXR1cy1iYXIt
aXRlbSI7CisgICAgdGhpcy50b2dnbGVGb3JtYXRTb3VyY2VGaWxlc0J1dHRvbi5pZCA9ICJmb3Jt
YXQtc2NyaXB0IjsKKyAgICB0aGlzLnRvZ2dsZUZvcm1hdFNvdXJjZUZpbGVzQnV0dG9uLnRpdGxl
ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJGb3JtYXQgc2NyaXB0LiIpOworICAgIHRoaXMudG9n
Z2xlRm9ybWF0U291cmNlRmlsZXNCdXR0b24uYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxl
bWVudCgiaW1nIikpOworICAgIHRoaXMudG9nZ2xlRm9ybWF0U291cmNlRmlsZXNCdXR0b24udG9n
Z2xlZCA9IGZhbHNlOworICAgIHRoaXMudG9nZ2xlRm9ybWF0U291cmNlRmlsZXNCdXR0b24uYWRk
RXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl90b2dnbGVGb3JtYXRTb3VyY2VGaWxlcy5iaW5k
KHRoaXMpLCBmYWxzZSk7CiAgICAgaWYgKFByZWZlcmVuY2VzLmRlYnVnTW9kZSkKLSAgICAgICAg
dGhpcy50b3BTdGF0dXNCYXIuYXBwZW5kQ2hpbGQodGhpcy5mb3JtYXRCdXR0b24pOworICAgICAg
ICB0aGlzLnRvcFN0YXR1c0Jhci5hcHBlbmRDaGlsZCh0aGlzLnRvZ2dsZUZvcm1hdFNvdXJjZUZp
bGVzQnV0dG9uKTsKIAogICAgIHRoaXMuc2lkZWJhckJ1dHRvbnNFbGVtZW50ID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiZGl2Iik7CiAgICAgdGhpcy5zaWRlYmFyQnV0dG9uc0VsZW1lbnQuaWQg
PSAic2NyaXB0cy1zaWRlYmFyLWJ1dHRvbnMiOwpAQCAtNDA3LDggKzQwOCw2IEBAIFdlYkluc3Bl
Y3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAgcmVzZXQ6IGZ1bmN0aW9uKHBy
ZXNlcnZlSXRlbXMpCiAgICAgewotICAgICAgICB0aGlzLl9wcmVzZW50YXRpb25Nb2RlbC5yZXNl
dCgpOwotCiAgICAgICAgIHRoaXMudmlzaWJsZVZpZXcgPSBudWxsOwogCiAgICAgICAgIGRlbGV0
ZSB0aGlzLmN1cnJlbnRRdWVyeTsKQEAgLTc1NywxMCArNzU2LDExIEBAIFdlYkluc3BlY3Rvci5T
Y3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl91cGRhdGVCYWNrQW5kRm9y
d2FyZEJ1dHRvbnMoKTsKICAgICB9LAogCi0gICAgX2Zvcm1hdFNjcmlwdDogZnVuY3Rpb24oKQor
ICAgIF90b2dnbGVGb3JtYXRTb3VyY2VGaWxlczogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAg
aWYgKHRoaXMudmlzaWJsZVZpZXcpCi0gICAgICAgICAgICB0aGlzLnZpc2libGVWaWV3LmZvcm1h
dFNvdXJjZSgpOworICAgICAgICB0aGlzLnJlc2V0KCk7CisgICAgICAgIHRoaXMudG9nZ2xlRm9y
bWF0U291cmNlRmlsZXNCdXR0b24udG9nZ2xlZCA9ICF0aGlzLnRvZ2dsZUZvcm1hdFNvdXJjZUZp
bGVzQnV0dG9uLnRvZ2dsZWQ7CisgICAgICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLnNldEZv
cm1hdFNvdXJjZUZpbGVzKHRoaXMudG9nZ2xlRm9ybWF0U291cmNlRmlsZXNCdXR0b24udG9nZ2xl
ZCk7CiAgICAgfSwKIAogICAgIF9lbmFibGVEZWJ1Z2dpbmc6IGZ1bmN0aW9uKCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCmluZGV4IGMw
YzI3MmQuLjVjYTJhYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvU291cmNlRnJhbWUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Tb3VyY2VGcmFtZS5qcwpAQCAtNzU0LDIxICs3NTQsNiBAQCBXZWJJbnNwZWN0b3IuU291
cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fdGV4dFZpZXdlci5yZXNp
emUoKTsKICAgICB9LAogCi0gICAgZm9ybWF0U291cmNlOiBmdW5jdGlvbigpCi0gICAgewotICAg
ICAgICBpZiAoIXRoaXMuX2NvbnRlbnQpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
ZnVuY3Rpb24gZGlkRm9ybWF0KGZvcm1hdHRlZENvbnRlbnQpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIHRoaXMuX2NvbnRlbnQgPSBmb3JtYXR0ZWRDb250ZW50OwotICAgICAgICAgICAgdGhpcy5f
dGV4dE1vZGVsLnNldFRleHQobnVsbCwgZm9ybWF0dGVkQ29udGVudC50ZXh0KTsKLSAgICAgICAg
ICAgIHRoaXMuX3NldFRleHRWaWV3ZXJEZWNvcmF0aW9ucygpOwotICAgICAgICB9Ci0gICAgICAg
IHZhciBmb3JtYXR0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlNjcmlwdEZvcm1hdHRlcigpOwotICAg
ICAgICBmb3JtYXR0ZXIuZm9ybWF0Q29udGVudCh0aGlzLl9jb250ZW50LCBkaWRGb3JtYXQuYmlu
ZCh0aGlzKSkKLSAgICB9LAotCiAgICAgX3JlZ2lzdGVyU2hvcnRjdXRzOiBmdW5jdGlvbigpCiAg
ICAgewogICAgICAgICB0aGlzLl9zaG9ydGN1dHMgPSB7fTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>86348</attachid>
            <date>2011-03-21 12:02:23 -0700</date>
            <delta_ts>2011-03-22 09:23:25 -0700</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>20065</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBmOTI1ZjhiLi43YWRmOWM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0yLDYgKzIsNDMg
QEAKIAogICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KIAorICAgICAgICBXZWIg
SW5zcGVjdG9yOiBhZGQgc3VwcG9ydCBmb3IgZm9ybWF0aW5nIHNvdXJjZSBmaWxlcyBpbiBkZWJ1
Z2dlciBwcmVzZW50YXRpb24gbW9kZWwuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01NjU1OAorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9E
ZWJ1Z2dlck1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwucHJv
dG90eXBlLnJlc2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLnByb3Rv
dHlwZS5nZXQgc2NyaXB0cyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJl
c2VudGF0aW9uTW9kZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0
aW9uTW9kZWwucHJvdG90eXBlLl9hZGRTY3JpcHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl9yZWZyZXNoQnJlYWtwb2ludHMpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBl
LnRvZ2dsZUZvcm1hdFNvdXJjZUZpbGVzKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5jb250aW51ZVRvTGluZSk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuc2V0QnJlYWtw
b2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5w
cm90b3R5cGUuX2JyZWFrcG9pbnRBZGRlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuc2V0IHNlbGVjdGVkQ2FsbEZyYW1lKToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5f
c291cmNlRmlsZUZvclNjcmlwdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVz
ZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX3Jlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1NjcmlwdEZvcm1hdHRlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRG
b3JtYXR0ZXIucHJvdG90eXBlLmZvcm1hdENvbnRlbnQuZGlkRm9ybWF0Q2h1bmtzKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIucHJvdG90eXBlLmZvcm1hdENvbnRlbnQp
OgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2Ny
aXB0c1BhbmVsLnByb3RvdHlwZS5yZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0
c1BhbmVsLnByb3RvdHlwZS5fdG9nZ2xlRm9ybWF0U291cmNlRmlsZXMpOgorICAgICAgICAqIGlu
c3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanM6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9Tb3VyY2VGaWxlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZpbGUucHJv
dG90eXBlLnNjcmlwdExvY2F0aW9uVG9Tb3VyY2VMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuU291cmNlRmlsZS5wcm90b3R5cGUuc291cmNlTG9jYXRpb25Ub1NjcmlwdExvY2F0aW9u
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Gb3JtYXR0ZWRTb3VyY2VGaWxlKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Gb3JtYXR0ZWRTb3VyY2VGaWxlLnByb3RvdHlwZS5zY3JpcHRMb2NhdGlv
blRvU291cmNlTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkZvcm1hdHRlZFNvdXJj
ZUZpbGUucHJvdG90eXBlLnNvdXJjZUxvY2F0aW9uVG9TY3JpcHRMb2NhdGlvbik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuRm9ybWF0dGVkU291cmNlRmlsZS5wcm90b3R5cGUuX2RpZFJlcXVlc3RD
b250ZW50KToKKworMjAxMS0wMy0yMSAgUGF2ZWwgUG9kaXZpbG92ICA8cG9kaXZpbG92QGNocm9t
aXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwogICAgICAg
ICBXZWIgSW5zcGVjdG9yOiBtb3ZlIHNjcmlwdHMgY29uY2F0ZW5hdGlvbiBsb2dpYyB0byBTb3Vy
Y2VGaWxlLgogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTY3NTYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9E
ZWJ1Z2dlck1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1
Z2dlck1vZGVsLmpzCmluZGV4IDNjYjM3YzYuLmNjZDFmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJNb2RlbC5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyTW9kZWwuanMKQEAgLTQ1LDcgKzQ1
LDggQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzID0gewogICAgIFBhcnNlZFNj
cmlwdFNvdXJjZTogInBhcnNlZC1zY3JpcHQtc291cmNlIiwKICAgICBGYWlsZWRUb1BhcnNlU2Ny
aXB0U291cmNlOiAiZmFpbGVkLXRvLXBhcnNlLXNjcmlwdC1zb3VyY2UiLAogICAgIFNjcmlwdFNv
dXJjZUNoYW5nZWQ6ICJzY3JpcHQtc291cmNlLWNoYW5nZWQiLAotICAgIEJyZWFrcG9pbnRSZXNv
bHZlZDogImJyZWFrcG9pbnQtcmVzb2x2ZWQiCisgICAgQnJlYWtwb2ludFJlc29sdmVkOiAiYnJl
YWtwb2ludC1yZXNvbHZlZCIsCisgICAgUmVzZXQ6ICJyZXNldCIKIH0KIAogV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyTW9kZWwucHJvdG90eXBlID0gewpAQCAtMTQ1LDYgKzE0NiwxMiBAQCBXZWJJbnNw
ZWN0b3IuRGVidWdnZXJNb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgYnJlYWtw
b2ludC5sb2NhdGlvbnMgPSBbXTsKICAgICAgICAgfQogICAgICAgICB0aGlzLl9zY3JpcHRzID0g
e307CisgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5E
ZWJ1Z2dlck1vZGVsLkV2ZW50cy5SZXNldCk7CisgICAgfSwKKworICAgIGdldCBzY3JpcHRzKCkK
KyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9zY3JpcHRzOwogICAgIH0sCiAKICAgICBzY3Jp
cHRGb3JTb3VyY2VJRDogZnVuY3Rpb24oc291cmNlSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9k
ZWwuanMKaW5kZXggZDcxYzRhZi4uNDg2MmE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2Rl
bC5qcwpAQCAtMzAsMTMgKzMwLDE2IEBACiAKIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRh
dGlvbk1vZGVsID0gZnVuY3Rpb24oKQogewotICAgIHRoaXMucmVzZXQoKTsKKyAgICB0aGlzLl9z
b3VyY2VGaWxlcyA9IHt9OworICAgIHRoaXMuX3ByZXNlbnRhdGlvbkJyZWFrcG9pbnRzID0ge307
CisgICAgdGhpcy5fZm9ybWF0dGVyID0gbmV3IFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIo
KTsKIAogICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50TGlzdGVuZXIoV2Vi
SW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLkRlYnVnZ2VyV2FzRW5hYmxlZCwgdGhpcy5f
ZGVidWdnZXJXYXNFbmFibGVkLCB0aGlzKTsKICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2Rl
bC5hZGRFdmVudExpc3RlbmVyKFdlYkluc3BlY3Rvci5EZWJ1Z2dlck1vZGVsLkV2ZW50cy5QYXJz
ZWRTY3JpcHRTb3VyY2UsIHRoaXMuX3BhcnNlZFNjcmlwdFNvdXJjZSwgdGhpcyk7CiAgICAgV2Vi
SW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVi
dWdnZXJNb2RlbC5FdmVudHMuRmFpbGVkVG9QYXJzZVNjcmlwdFNvdXJjZSwgdGhpcy5fZmFpbGVk
VG9QYXJzZVNjcmlwdFNvdXJjZSwgdGhpcyk7CiAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9k
ZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVidWdnZXJNb2RlbC5FdmVudHMuU2Ny
aXB0U291cmNlQ2hhbmdlZCwgdGhpcy5fc2NyaXB0U291cmNlQ2hhbmdlZCwgdGhpcyk7CiAgICAg
V2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
RGVidWdnZXJNb2RlbC5FdmVudHMuQnJlYWtwb2ludFJlc29sdmVkLCB0aGlzLl9icmVha3BvaW50
UmVzb2x2ZWQsIHRoaXMpOworICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLmFkZEV2ZW50
TGlzdGVuZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyTW9kZWwuRXZlbnRzLlJlc2V0LCB0aGlzLl9y
ZXNldCwgdGhpcyk7CiB9CiAKIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
LkV2ZW50cyA9IHsKQEAgLTg1LDE4ICs4OCwyNCBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVz
ZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgIHsKICAgICAgICAgICAgIHRoaXMu
ZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLkV2ZW50cy5Tb3VyY2VGaWxlQ2hhbmdlZCwgdGhpcy5fc291cmNlRmlsZXNbc291cmNl
RmlsZUlkXSk7CiAgICAgICAgIH0KLSAgICAgICAgc291cmNlRmlsZSA9IG5ldyBXZWJJbnNwZWN0
b3IuU291cmNlRmlsZShzY3JpcHQsIGNvbnRlbnRDaGFuZ2VkLmJpbmQodGhpcykpOworICAgICAg
ICBpZiAoIXRoaXMuX2Zvcm1hdFNvdXJjZUZpbGVzKQorICAgICAgICAgICAgc291cmNlRmlsZSA9
IG5ldyBXZWJJbnNwZWN0b3IuU291cmNlRmlsZShzY3JpcHQsIGNvbnRlbnRDaGFuZ2VkLmJpbmQo
dGhpcykpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBzb3VyY2VGaWxlID0gbmV3IFdlYklu
c3BlY3Rvci5Gb3JtYXR0ZWRTb3VyY2VGaWxlKHNjcmlwdCwgY29udGVudENoYW5nZWQuYmluZCh0
aGlzKSwgdGhpcy5fZm9ybWF0dGVyKTsKICAgICAgICAgc291cmNlRmlsZS5pZCA9IHNvdXJjZUZp
bGVJZDsKICAgICAgICAgc291cmNlRmlsZS5fYnJlYWtwb2ludHMgPSBbXTsKICAgICAgICAgdGhp
cy5fc291cmNlRmlsZXNbc291cmNlRmlsZUlkXSA9IHNvdXJjZUZpbGU7CisgICAgICAgIHRoaXMu
X3JlZnJlc2hCcmVha3BvaW50cygpOworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3Rl
bmVycyhXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMuU291cmNl
RmlsZUFkZGVkLCBzb3VyY2VGaWxlKTsKKyAgICB9LAogCisgICAgX3JlZnJlc2hCcmVha3BvaW50
czogZnVuY3Rpb24oKQorICAgIHsKICAgICAgICAgdmFyIGJyZWFrcG9pbnRzID0gV2ViSW5zcGVj
dG9yLmRlYnVnZ2VyTW9kZWwuYnJlYWtwb2ludHM7CiAgICAgICAgIGZvciAodmFyIGlkIGluIGJy
ZWFrcG9pbnRzKSB7CiAgICAgICAgICAgICBpZiAoIShpZCBpbiB0aGlzLl9wcmVzZW50YXRpb25C
cmVha3BvaW50cykpCiAgICAgICAgICAgICAgICAgdGhpcy5fYnJlYWtwb2ludEFkZGVkKGJyZWFr
cG9pbnRzW2lkXSk7CiAgICAgICAgIH0KLQotICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xp
c3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMuU291
cmNlRmlsZUFkZGVkLCBzb3VyY2VGaWxlKTsKICAgICB9LAogCiAgICAgX3NjcmlwdFNvdXJjZUNo
YW5nZWQ6IGZ1bmN0aW9uKGV2ZW50KQpAQCAtMTQzLDExICsxNTIsMjMgQEAgV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9z
b3VyY2VGaWxlc1tzb3VyY2VGaWxlSWRdLnJlbG9hZCgpOwogICAgIH0sCiAKKyAgICB0b2dnbGVG
b3JtYXRTb3VyY2VGaWxlczogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fZm9ybWF0
U291cmNlRmlsZXMgPSAhdGhpcy5fZm9ybWF0U291cmNlRmlsZXM7CisKKyAgICAgICAgdGhpcy5f
cmVzZXQoKTsKKyAgICAgICAgdmFyIHNjcmlwdHMgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2Rl
bC5zY3JpcHRzOworICAgICAgICBmb3IgKHZhciBpZCBpbiBzY3JpcHRzKQorICAgICAgICAgICAg
dGhpcy5fYWRkU2NyaXB0KHNjcmlwdHNbaWRdKTsKKworICAgICAgICB0aGlzLl9yZWZyZXNoQnJl
YWtwb2ludHMoKTsKKyAgICB9LAorCiAgICAgY29udGludWVUb0xpbmU6IGZ1bmN0aW9uKHNvdXJj
ZUZpbGVJZCwgbGluZU51bWJlcikKICAgICB7Ci0gICAgICAgIHZhciBsb2NhdGlvbiA9IHRoaXMu
X3NvdXJjZUxvY2F0aW9uVG9BY3R1YWxMb2NhdGlvbihzb3VyY2VGaWxlSWQsIGxpbmVOdW1iZXIp
OwotICAgICAgICBpZiAobG9jYXRpb24uc291cmNlSUQpCi0gICAgICAgICAgICBXZWJJbnNwZWN0
b3IuZGVidWdnZXJNb2RlbC5jb250aW51ZVRvTG9jYXRpb24obG9jYXRpb24uc291cmNlSUQsIGxv
Y2F0aW9uLmxpbmVOdW1iZXIsIGxvY2F0aW9uLmNvbHVtbk51bWJlcik7CisgICAgICAgIHZhciBs
b2NhdGlvbiA9IHRoaXMuX3NvdXJjZUZpbGVzW3NvdXJjZUZpbGVJZF0uc291cmNlTG9jYXRpb25U
b1NjcmlwdExvY2F0aW9uKGxpbmVOdW1iZXIsIDApOworICAgICAgICBpZiAobG9jYXRpb24pCisg
ICAgICAgICAgICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5jb250aW51ZVRvTG9jYXRpb24o
bG9jYXRpb24uc2NyaXB0SWQsIGxvY2F0aW9uLmxpbmVOdW1iZXIsIGxvY2F0aW9uLmNvbHVtbk51
bWJlcik7CiAgICAgfSwKIAogICAgIGJyZWFrcG9pbnRzRm9yU291cmNlRmlsZUlkOiBmdW5jdGlv
bihzb3VyY2VGaWxlSWQpCkBAIC0xNzAsMTEgKzE5MSwxNSBAQCBXZWJJbnNwZWN0b3IuRGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgdGhpcy5f
c2F2ZUJyZWFrcG9pbnRzKCk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KLSAgICAgICAgdmFy
IGxvY2F0aW9uID0gdGhpcy5fc291cmNlTG9jYXRpb25Ub0FjdHVhbExvY2F0aW9uKHNvdXJjZUZp
bGVJZCwgbGluZU51bWJlcik7Ci0gICAgICAgIGlmIChsb2NhdGlvbi51cmwpCi0gICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zZXRCcmVha3BvaW50KGxvY2F0aW9uLnVybCwg
bG9jYXRpb24ubGluZU51bWJlciwgbG9jYXRpb24uY29sdW1uTnVtYmVyLCBjb25kaXRpb24sIGVu
YWJsZWQsIGRpZFNldEJyZWFrcG9pbnQuYmluZCh0aGlzKSk7CisKKyAgICAgICAgdmFyIGxvY2F0
aW9uID0gdGhpcy5fc291cmNlRmlsZXNbc291cmNlRmlsZUlkXS5zb3VyY2VMb2NhdGlvblRvU2Ny
aXB0TG9jYXRpb24obGluZU51bWJlciwgMCk7CisgICAgICAgIGlmICghbG9jYXRpb24pCisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIHZhciBzY3JpcHQgPSBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJNb2RlbC5zY3JpcHRGb3JTb3VyY2VJRChsb2NhdGlvbi5zY3JpcHRJZCk7CisgICAgICAgIGlm
IChzY3JpcHQuc291cmNlVVJMKQorICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9k
ZWwuc2V0QnJlYWtwb2ludChzY3JpcHQuc291cmNlVVJMLCBsb2NhdGlvbi5saW5lTnVtYmVyLCBs
b2NhdGlvbi5jb2x1bW5OdW1iZXIsIGNvbmRpdGlvbiwgZW5hYmxlZCwgZGlkU2V0QnJlYWtwb2lu
dC5iaW5kKHRoaXMpKTsKICAgICAgICAgZWxzZQotICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyTW9kZWwuc2V0QnJlYWtwb2ludEJ5U291cmNlSWQobG9jYXRpb24uc291cmNlSUQsIGxv
Y2F0aW9uLmxpbmVOdW1iZXIsIGxvY2F0aW9uLmNvbHVtbk51bWJlciwgY29uZGl0aW9uLCBlbmFi
bGVkLCBkaWRTZXRCcmVha3BvaW50LmJpbmQodGhpcykpOworICAgICAgICAgICAgV2ViSW5zcGVj
dG9yLmRlYnVnZ2VyTW9kZWwuc2V0QnJlYWtwb2ludEJ5U291cmNlSWQoc2NyaXB0LnNvdXJjZUlE
LCBsb2NhdGlvbi5saW5lTnVtYmVyLCBsb2NhdGlvbi5jb2x1bW5OdW1iZXIsIGNvbmRpdGlvbiwg
ZW5hYmxlZCwgZGlkU2V0QnJlYWtwb2ludC5iaW5kKHRoaXMpKTsKICAgICB9LAogCiAgICAgc2V0
QnJlYWtwb2ludEVuYWJsZWQ6IGZ1bmN0aW9uKHNvdXJjZUZpbGVJZCwgbGluZU51bWJlciwgZW5h
YmxlZCkKQEAgLTIwNywxOSArMjMyLDI1IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRh
dGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKIAogICAgIF9icmVha3BvaW50QWRkZWQ6IGZ1bmN0aW9u
KGJyZWFrcG9pbnQpCiAgICAgewotICAgICAgICB2YXIgbG9jYXRpb24gPSBicmVha3BvaW50Lmxv
Y2F0aW9ucy5sZW5ndGggPyBicmVha3BvaW50LmxvY2F0aW9uc1swXSA6IGJyZWFrcG9pbnQ7Ci0g
ICAgICAgIHZhciBzb3VyY2VMb2NhdGlvbiA9IHRoaXMuX2FjdHVhbExvY2F0aW9uVG9Tb3VyY2VM
b2NhdGlvbihicmVha3BvaW50LnVybCwgYnJlYWtwb2ludC5zb3VyY2VJRCwgbG9jYXRpb24ubGlu
ZU51bWJlciwgbG9jYXRpb24uY29sdW1uTnVtYmVyKTsKLSAgICAgICAgaWYgKCFzb3VyY2VMb2Nh
dGlvbikKKyAgICAgICAgdmFyIHNjcmlwdDsKKyAgICAgICAgaWYgKGJyZWFrcG9pbnQudXJsKQor
ICAgICAgICAgICAgc2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0c0Zv
clVSTChicmVha3BvaW50LnVybClbMF07CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIHNjcmlw
dCA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlck1vZGVsLnNjcmlwdEZvclNvdXJjZUlEKGJyZWFrcG9p
bnQuc291cmNlSUQpOworICAgICAgICBpZiAoIXNjcmlwdCkKICAgICAgICAgICAgIHJldHVybjsK
IAotICAgICAgICBpZiAodGhpcy5maW5kQnJlYWtwb2ludChzb3VyY2VMb2NhdGlvbi5zb3VyY2VG
aWxlSWQsIHNvdXJjZUxvY2F0aW9uLmxpbmVOdW1iZXIpKSB7CisgICAgICAgIHZhciBzb3VyY2VG
aWxlID0gdGhpcy5fc291cmNlRmlsZUZvclNjcmlwdChzY3JpcHQpOworICAgICAgICB2YXIgbG9j
YXRpb24gPSBicmVha3BvaW50LmxvY2F0aW9ucy5sZW5ndGggPyBicmVha3BvaW50LmxvY2F0aW9u
c1swXSA6IGJyZWFrcG9pbnQ7CisgICAgICAgIHZhciBzb3VyY2VMb2NhdGlvbiA9IHNvdXJjZUZp
bGUuc2NyaXB0TG9jYXRpb25Ub1NvdXJjZUxvY2F0aW9uKGxvY2F0aW9uLmxpbmVOdW1iZXIsIGxv
Y2F0aW9uLmNvbHVtbk51bWJlcik7CisgICAgICAgIGlmICh0aGlzLmZpbmRCcmVha3BvaW50KHNv
dXJjZUZpbGUuaWQsIHNvdXJjZUxvY2F0aW9uLmxpbmVOdW1iZXIpKSB7CiAgICAgICAgICAgICAv
LyBXZSBjYW4ndCBzaG93IG1vcmUgdGhhbiBvbmUgYnJlYWtwb2ludCBvbiBhIHNpbmdsZSBzb3Vy
Y2UgZmlsZSBsaW5lLgogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwucmVt
b3ZlQnJlYWtwb2ludChicmVha3BvaW50LmlkKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAg
ICAgfQogCiAgICAgICAgIHZhciBwcmVzZW50YXRpb25CcmVha3BvaW50ID0gewotICAgICAgICAg
ICAgc291cmNlRmlsZUlkOiBzb3VyY2VMb2NhdGlvbi5zb3VyY2VGaWxlSWQsCisgICAgICAgICAg
ICBzb3VyY2VGaWxlSWQ6IHNvdXJjZUZpbGUuaWQsCiAgICAgICAgICAgICBsaW5lTnVtYmVyOiBz
b3VyY2VMb2NhdGlvbi5saW5lTnVtYmVyLAogICAgICAgICAgICAgdXJsOiBicmVha3BvaW50LnVy
bCwKICAgICAgICAgICAgIHJlc29sdmVkOiAhIWJyZWFrcG9pbnQubG9jYXRpb25zLmxlbmd0aCwK
QEAgLTIzMyw3ICsyNjQsNiBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2Rl
bC5wcm90b3R5cGUgPSB7CiAgICAgICAgIH0KIAogICAgICAgICB0aGlzLl9wcmVzZW50YXRpb25C
cmVha3BvaW50c1ticmVha3BvaW50LmlkXSA9IHByZXNlbnRhdGlvbkJyZWFrcG9pbnQ7Ci0gICAg
ICAgIHZhciBzb3VyY2VGaWxlID0gdGhpcy5zb3VyY2VGaWxlKHNvdXJjZUxvY2F0aW9uLnNvdXJj
ZUZpbGVJZCk7CiAgICAgICAgIHNvdXJjZUZpbGUuX2JyZWFrcG9pbnRzW3NvdXJjZUxvY2F0aW9u
LmxpbmVOdW1iZXJdID0gcHJlc2VudGF0aW9uQnJlYWtwb2ludDsKICAgICAgICAgdGhpcy5kaXNw
YXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9k
ZWwuRXZlbnRzLkJyZWFrcG9pbnRBZGRlZCwgcHJlc2VudGF0aW9uQnJlYWtwb2ludCk7CiAgICAg
fSwKQEAgLTI5NiwxMCArMzI2LDEyIEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlv
bk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICB2YXIg
c2NyaXB0ID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9yU291cmNlSUQoY2Fs
bEZyYW1lLnNvdXJjZUlEKTsKLSAgICAgICAgdmFyIHNvdXJjZUZpbGUgPSB0aGlzLl9zb3VyY2VG
aWxlc1tzY3JpcHQuc291cmNlVVJMIHx8IHNjcmlwdC5zb3VyY2VJRF07Ci0gICAgICAgIGlmIChz
b3VyY2VGaWxlKQorICAgICAgICB2YXIgc291cmNlRmlsZSA9IHRoaXMuX3NvdXJjZUZpbGVGb3JT
Y3JpcHQoc2NyaXB0KTsKKyAgICAgICAgaWYgKHNvdXJjZUZpbGUpIHsKICAgICAgICAgICAgIHNv
dXJjZUZpbGUuZm9yY2VMb2FkQ29udGVudChzY3JpcHQpOwotICAgICAgICBjYWxsRnJhbWUuc291
cmNlTG9jYXRpb24gPSB0aGlzLl9hY3R1YWxMb2NhdGlvblRvU291cmNlTG9jYXRpb24oc2NyaXB0
LnNvdXJjZVVSTCwgc2NyaXB0LnNvdXJjZUlELCBjYWxsRnJhbWUubGluZSwgY2FsbEZyYW1lLmNv
bHVtbik7CisgICAgICAgICAgICBjYWxsRnJhbWUuc291cmNlTG9jYXRpb24gPSBzb3VyY2VGaWxl
LnNjcmlwdExvY2F0aW9uVG9Tb3VyY2VMb2NhdGlvbihjYWxsRnJhbWUubGluZSwgY2FsbEZyYW1l
LmNvbHVtbik7CisgICAgICAgICAgICBjYWxsRnJhbWUuc291cmNlTG9jYXRpb24uc291cmNlRmls
ZUlkID0gc291cmNlRmlsZS5pZDsKKyAgICAgICAgfQogICAgICAgICB0aGlzLmRpc3BhdGNoRXZl
bnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVu
dHMuQ2FsbEZyYW1lU2VsZWN0ZWQsIGNhbGxGcmFtZSk7CiAgICAgfSwKIApAQCAtMzA4LDI2ICsz
NDAsMTIgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBl
ID0gewogICAgICAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRDYWxsRnJhbWU7CiAgICAgfSwKIAot
ICAgIF9hY3R1YWxMb2NhdGlvblRvU291cmNlTG9jYXRpb246IGZ1bmN0aW9uKHNjcmlwdFVSTCwg
c2NyaXB0SWQsIGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikKLSAgICB7Ci0gICAgICAgIC8vIFRP
RE86IHVzZSBzb3VyY2UgbWFwcGluZyB0byBvYnRhaW4gc291cmNlIGxvY2F0aW9uLgotICAgICAg
ICB2YXIgc291cmNlRmlsZSA9IHRoaXMuX3NvdXJjZUZpbGVzW3NjcmlwdFVSTCB8fCBzY3JpcHRJ
ZF07Ci0gICAgICAgIGlmIChzb3VyY2VGaWxlICYmICFzb3VyY2VGaWxlLl9wZW5kaW5nKQotICAg
ICAgICAgICAgcmV0dXJuIHsgc291cmNlRmlsZUlkOiBzb3VyY2VGaWxlLmlkLCBsaW5lTnVtYmVy
OiBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXI6IGNvbHVtbk51bWJlciB9OwotICAgIH0sCi0KLSAg
ICBfc291cmNlTG9jYXRpb25Ub0FjdHVhbExvY2F0aW9uOiBmdW5jdGlvbihzb3VyY2VGaWxlSWQs
IGxpbmVOdW1iZXIpCisgICAgX3NvdXJjZUZpbGVGb3JTY3JpcHQ6IGZ1bmN0aW9uKHNjcmlwdCkK
ICAgICB7Ci0gICAgICAgIC8vIFRPRE86IHVzZSBzb3VyY2UgbWFwcGluZyB0byBvYnRhaW4gYWN0
dWFsIGxvY2F0aW9uLgotICAgICAgICBmdW5jdGlvbiBmaWx0ZXIoc2NyaXB0KQotICAgICAgICB7
Ci0gICAgICAgICAgICByZXR1cm4gKHNjcmlwdC5zb3VyY2VVUkwgfHwgc2NyaXB0LnNvdXJjZUlE
KSA9PT0gc291cmNlRmlsZUlkOwotICAgICAgICB9Ci0gICAgICAgIHZhciBzY3JpcHQgPSBXZWJJ
bnNwZWN0b3IuZGVidWdnZXJNb2RlbC5xdWVyeVNjcmlwdHMoZmlsdGVyKVswXTsKLSAgICAgICAg
cmV0dXJuIHsgdXJsOiBzY3JpcHQuc291cmNlVVJMLCBzb3VyY2VJRDogc2NyaXB0LnNvdXJjZUlE
LCBsaW5lTnVtYmVyOiBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXI6IDAgfTsKKyAgICAgICAgcmV0
dXJuIHRoaXMuX3NvdXJjZUZpbGVzW3NjcmlwdC5zb3VyY2VVUkwgfHwgc2NyaXB0LnNvdXJjZUlE
XTsKICAgICB9LAogCi0gICAgcmVzZXQ6IGZ1bmN0aW9uKCkKKyAgICBfcmVzZXQ6IGZ1bmN0aW9u
KCkKICAgICB7CiAgICAgICAgIHRoaXMuX3NvdXJjZUZpbGVzID0ge307CiAgICAgICAgIHRoaXMu
X3ByZXNlbnRhdGlvbkJyZWFrcG9pbnRzID0ge307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdEZvcm1hdHRlci5qcyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0Rm9ybWF0dGVyLmpzCmluZGV4IGY3MGQ2YzYuLmZi
ODA5Y2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0Rm9ybWF0dGVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQv
U2NyaXB0Rm9ybWF0dGVyLmpzCkBAIC02OSwyNSArNjksMTggQEAgV2ViSW5zcGVjdG9yLlNjcmlw
dEZvcm1hdHRlci5maW5kU2NyaXB0UmFuZ2VzID0gZnVuY3Rpb24obGluZUVuZGluZ3MsIHNjcmlw
dHMpCiB9CiAKIFdlYkluc3BlY3Rvci5TY3JpcHRGb3JtYXR0ZXIucHJvdG90eXBlID0gewotICAg
IGZvcm1hdENvbnRlbnQ6IGZ1bmN0aW9uKGNvbnRlbnQsIGNhbGxiYWNrKQorICAgIGZvcm1hdENv
bnRlbnQ6IGZ1bmN0aW9uKHRleHQsIHNjcmlwdHMsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAg
dmFyIGNodW5rcyA9IHRoaXMuX3NwbGl0Q29udGVudEludG9DaHVua3MoY29udGVudC50ZXh0LCBj
b250ZW50LnNjcmlwdFJhbmdlcyk7CisgICAgICAgIHZhciBzY3JpcHRSYW5nZXMgPSBXZWJJbnNw
ZWN0b3IuU2NyaXB0Rm9ybWF0dGVyLmZpbmRTY3JpcHRSYW5nZXModGV4dC5saW5lRW5kaW5ncygp
LCBzY3JpcHRzKTsKKyAgICAgICAgdmFyIGNodW5rcyA9IHRoaXMuX3NwbGl0Q29udGVudEludG9D
aHVua3ModGV4dCwgc2NyaXB0UmFuZ2VzKTsKIAogICAgICAgICBmdW5jdGlvbiBkaWRGb3JtYXRD
aHVua3MoKQogICAgICAgICB7CiAgICAgICAgICAgICB2YXIgcmVzdWx0ID0gdGhpcy5fYnVpbGRD
b250ZW50RnJvbUNodW5rcyhjaHVua3MpOwotCi0gICAgICAgICAgICB2YXIgc291cmNlTWFwcGlu
ZyA9IG5ldyBXZWJJbnNwZWN0b3IuU291cmNlTWFwcGluZ0ZvckZvcm1hdHRlZFNjcmlwdChjb250
ZW50LnRleHQubGluZUVuZGluZ3MoKSwgcmVzdWx0LnRleHQubGluZUVuZGluZ3MoKSwgcmVzdWx0
Lm1hcHBpbmcpOwotICAgICAgICAgICAgdmFyIGZvcm1hdHRlZFNjcmlwdFJhbmdlcyA9IFtdOwot
ICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjb250ZW50LnNjcmlwdFJhbmdlcy5sZW5n
dGg7ICsraSkgewotICAgICAgICAgICAgICAgIHZhciBzY3JpcHRSYW5nZSA9IGNvbnRlbnQuc2Ny
aXB0UmFuZ2VzW2ldOwotICAgICAgICAgICAgICAgIGZvcm1hdHRlZFNjcmlwdFJhbmdlID0ge307
Ci0gICAgICAgICAgICAgICAgZm9ybWF0dGVkU2NyaXB0UmFuZ2Uuc3RhcnQgPSBzb3VyY2VNYXBw
aW5nLm9yaWdpbmFsUG9zaXRpb25Ub0Zvcm1hdHRlZExvY2F0aW9uKHNjcmlwdFJhbmdlLnN0YXJ0
LnBvc2l0aW9uKTsKLSAgICAgICAgICAgICAgICBmb3JtYXR0ZWRTY3JpcHRSYW5nZS5lbmQgPSBz
b3VyY2VNYXBwaW5nLm9yaWdpbmFsUG9zaXRpb25Ub0Zvcm1hdHRlZExvY2F0aW9uKHNjcmlwdFJh
bmdlLmVuZC5wb3NpdGlvbik7Ci0gICAgICAgICAgICAgICAgZm9ybWF0dGVkU2NyaXB0UmFuZ2Uu
c291cmNlSUQgPSBzY3JpcHRSYW5nZS5zb3VyY2VJRDsKLSAgICAgICAgICAgICAgICBmb3JtYXR0
ZWRTY3JpcHRSYW5nZXMucHVzaChmb3JtYXR0ZWRTY3JpcHRSYW5nZSk7Ci0gICAgICAgICAgICB9
Ci0gICAgICAgICAgICBjYWxsYmFjayhuZXcgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lQ29udGVu
dChyZXN1bHQudGV4dCwgc291cmNlTWFwcGluZywgZm9ybWF0dGVkU2NyaXB0UmFuZ2VzKSk7Cisg
ICAgICAgICAgICB2YXIgc291cmNlTWFwcGluZyA9IG5ldyBXZWJJbnNwZWN0b3IuU291cmNlTWFw
cGluZ0ZvckZvcm1hdHRlZFNjcmlwdCh0ZXh0LmxpbmVFbmRpbmdzKCksIHJlc3VsdC50ZXh0Lmxp
bmVFbmRpbmdzKCksIHJlc3VsdC5tYXBwaW5nKTsKKyAgICAgICAgICAgIHZhciBvcmlnaW5hbFRv
Rm9ybWF0dGVkID0gc291cmNlTWFwcGluZy5hY3R1YWxMb2NhdGlvblRvU291cmNlTG9jYXRpb24u
YmluZChzb3VyY2VNYXBwaW5nKTsKKyAgICAgICAgICAgIHZhciBmb3JtYXR0ZWRUb09yaWdpbmFs
ID0gc291cmNlTWFwcGluZy5zb3VyY2VMb2NhdGlvblRvQWN0dWFsTG9jYXRpb24uYmluZChzb3Vy
Y2VNYXBwaW5nKTsKKyAgICAgICAgICAgIGNhbGxiYWNrKHJlc3VsdC50ZXh0LCBvcmlnaW5hbFRv
Rm9ybWF0dGVkLCBmb3JtYXR0ZWRUb09yaWdpbmFsKTsKICAgICAgICAgfQogICAgICAgICB0aGlz
Ll9mb3JtYXRDaHVua3MoY2h1bmtzLCAwLCBkaWRGb3JtYXRDaHVua3MuYmluZCh0aGlzKSk7CiAg
ICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2Ny
aXB0c1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRz
UGFuZWwuanMKaW5kZXggMWEwNzc4NS4uNDJmNTFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMKQEAgLTcwLDcgKzcwLDcgQEAg
V2ViSW5zcGVjdG9yLlNjcmlwdHNQYW5lbCA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLmZvcm1hdEJ1
dHRvbi5pZCA9ICJmb3JtYXQtc2NyaXB0IjsKICAgICB0aGlzLmZvcm1hdEJ1dHRvbi50aXRsZSA9
IFdlYkluc3BlY3Rvci5VSVN0cmluZygiRm9ybWF0IHNjcmlwdC4iKTsKICAgICB0aGlzLmZvcm1h
dEJ1dHRvbi5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpbWciKSk7Ci0gICAg
dGhpcy5mb3JtYXRCdXR0b24uYWRkRXZlbnRMaXN0ZW5lcigiY2xpY2siLCB0aGlzLl9mb3JtYXRT
Y3JpcHQuYmluZCh0aGlzKSwgZmFsc2UpOworICAgIHRoaXMuZm9ybWF0QnV0dG9uLmFkZEV2ZW50
TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5fdG9nZ2xlRm9ybWF0U291cmNlRmlsZXMuYmluZCh0aGlz
KSwgZmFsc2UpOwogICAgIGlmIChQcmVmZXJlbmNlcy5kZWJ1Z01vZGUpCiAgICAgICAgIHRoaXMu
dG9wU3RhdHVzQmFyLmFwcGVuZENoaWxkKHRoaXMuZm9ybWF0QnV0dG9uKTsKIApAQCAtNDIwLDgg
KzQyMCw2IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogCiAgICAg
cmVzZXQ6IGZ1bmN0aW9uKHByZXNlcnZlSXRlbXMpCiAgICAgewotICAgICAgICB0aGlzLl9wcmVz
ZW50YXRpb25Nb2RlbC5yZXNldCgpOwotCiAgICAgICAgIHRoaXMudmlzaWJsZVZpZXcgPSBudWxs
OwogCiAgICAgICAgIGRlbGV0ZSB0aGlzLmN1cnJlbnRRdWVyeTsKQEAgLTc3MCwxMCArNzY4LDEw
IEBAIFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJvdG90eXBlID0gewogICAgICAgICB0aGlz
Ll91cGRhdGVCYWNrQW5kRm9yd2FyZEJ1dHRvbnMoKTsKICAgICB9LAogCi0gICAgX2Zvcm1hdFNj
cmlwdDogZnVuY3Rpb24oKQorICAgIF90b2dnbGVGb3JtYXRTb3VyY2VGaWxlczogZnVuY3Rpb24o
KQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMudmlzaWJsZVZpZXcpCi0gICAgICAgICAgICB0aGlz
LnZpc2libGVWaWV3LmZvcm1hdFNvdXJjZSgpOworICAgICAgICB0aGlzLnJlc2V0KCk7CisgICAg
ICAgIHRoaXMuX3ByZXNlbnRhdGlvbk1vZGVsLnRvZ2dsZUZvcm1hdFNvdXJjZUZpbGVzKCk7CiAg
ICAgfSwKIAogICAgIF9lbmFibGVEZWJ1Z2dpbmc6IGZ1bmN0aW9uKCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGluZ3MuanMgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NldHRpbmdzLmpzCmluZGV4IDUxYmQyYWEuLmI5MThi
N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2V0dGlu
Z3MuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TZXR0aW5ncy5q
cwpAQCAtNDcsNyArNDcsNyBAQCB2YXIgUHJlZmVyZW5jZXMgPSB7CiAgICAgdXNlRGF0YVVSTEZv
clJlc291cmNlSW1hZ2VJY29uczogdHJ1ZSwKICAgICBzaG93VGltaW5nVGFiOiBmYWxzZSwKICAg
ICBzaG93Q29va2llc1RhYjogZmFsc2UsCi0gICAgZGVidWdNb2RlOiBmYWxzZSwKKyAgICBkZWJ1
Z01vZGU6IHRydWUsCiAgICAgaGVhcFByb2ZpbGVyUHJlc2VudDogZmFsc2UsCiAgICAgZGV0YWls
ZWRIZWFwUHJvZmlsZXM6IGZhbHNlCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZpbGUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL1NvdXJjZUZpbGUuanMKaW5kZXggYWI5ZGVhMi4uYTBjODNjNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGaWxlLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRmlsZS5qcwpAQCAtOTAs
NiArOTAsMjQgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZpbGUucHJvdG90eXBlID0gewogICAgICAg
ICAgICAgdGhpcy5fcmVxdWVzdENvbnRlbnQoKTsKICAgICB9LAogCisgICAgc2NyaXB0TG9jYXRp
b25Ub1NvdXJjZUxvY2F0aW9uOiBmdW5jdGlvbihsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpCisg
ICAgeworICAgICAgICByZXR1cm4geyBsaW5lTnVtYmVyOiBsaW5lTnVtYmVyLCBjb2x1bW5OdW1i
ZXI6IGNvbHVtbk51bWJlciB9OworICAgIH0sCisKKyAgICBzb3VyY2VMb2NhdGlvblRvU2NyaXB0
TG9jYXRpb246IGZ1bmN0aW9uKGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikKKyAgICB7CisgICAg
ICAgIHZhciBjbG9zZXN0U2NyaXB0OworICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMu
X3NjcmlwdHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgICAgIHNjcmlwdCA9IHRoaXMuX3Njcmlw
dHNbaV07CisgICAgICAgICAgICBpZiAoc2NyaXB0LmxpbmVPZmZzZXQgPiBsaW5lTnVtYmVyIHx8
IChzY3JpcHQubGluZU9mZnNldCA9PT0gbGluZU51bWJlciAmJiBzY3JpcHQuY29sdW1uT2Zmc2V0
ID4gY29sdW1uTnVtYmVyKSkKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNs
b3Nlc3RTY3JpcHQgPSBzY3JpcHQ7CisgICAgICAgIH0KKyAgICAgICAgaWYgKGNsb3Nlc3RTY3Jp
cHQpCisgICAgICAgICAgICByZXR1cm4geyBzY3JpcHRJZDogc2NyaXB0LnNvdXJjZUlELCBsaW5l
TnVtYmVyOiBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXI6IGNvbHVtbk51bWJlciB9OworICAgIH0s
CisKICAgICBfcmVxdWVzdENvbnRlbnQ6IGZ1bmN0aW9uKCkKICAgICB7CiAgICAgICAgIGlmICh0
aGlzLl9jb250ZW50UmVxdWVzdGVkKQpAQCAtMjAyLDMgKzIyMCw0MSBAQCBXZWJJbnNwZWN0b3Iu
U291cmNlRmlsZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIHJldHVybiB0aGlzLl9yZXNvdXJjZSAm
JiAhdGhpcy5fcmVzb3VyY2UuZmluaXNoZWQ7CiAgICAgfQogfQorCitXZWJJbnNwZWN0b3IuRm9y
bWF0dGVkU291cmNlRmlsZSA9IGZ1bmN0aW9uKHNjcmlwdCwgY29udGVudENoYW5nZWREZWxlZ2F0
ZSwgZm9ybWF0dGVyKQoreworICAgIFdlYkluc3BlY3Rvci5Tb3VyY2VGaWxlLmNhbGwodGhpcywg
c2NyaXB0LCBjb250ZW50Q2hhbmdlZERlbGVnYXRlKTsKKyAgICB0aGlzLl9mb3JtYXR0ZXIgPSBm
b3JtYXR0ZXI7Cit9CisKK1dlYkluc3BlY3Rvci5Gb3JtYXR0ZWRTb3VyY2VGaWxlLnByb3RvdHlw
ZSA9IHsKKyAgICBzY3JpcHRMb2NhdGlvblRvU291cmNlTG9jYXRpb246IGZ1bmN0aW9uKGxpbmVO
dW1iZXIsIGNvbHVtbk51bWJlcikKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiB0aGlzIG1ldGhv
ZCBzaG91bGQgZm9yY2UgY29udGVudCBmb3JtYXR0aW5nIHRvIG9idGFpbiB0aGUgbWFwcGluZy4K
KyAgICAgICAgaWYgKCF0aGlzLl9vcmlnaW5hbFRvRm9ybWF0dGVkKQorICAgICAgICAgICAgcmV0
dXJuIFdlYkluc3BlY3Rvci5Tb3VyY2VGaWxlLnByb3RvdHlwZS5zY3JpcHRMb2NhdGlvblRvU291
cmNlTG9jYXRpb24uY2FsbCh0aGlzLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpOworICAgICAg
ICByZXR1cm4gdGhpcy5fb3JpZ2luYWxUb0Zvcm1hdHRlZChsaW5lTnVtYmVyLCBjb2x1bW5OdW1i
ZXIpOworICAgIH0sCisKKyAgICBzb3VyY2VMb2NhdGlvblRvU2NyaXB0TG9jYXRpb246IGZ1bmN0
aW9uKGxpbmVOdW1iZXIsIGNvbHVtbk51bWJlcikKKyAgICB7CisgICAgICAgIC8vIEZJWE1FOiB0
aGlzIG1ldGhvZCBzaG91bGQgZm9yY2UgY29udGVudCBmb3JtYXR0aW5nIHRvIG9idGFpbiB0aGUg
bWFwcGluZy4KKyAgICAgICAgaWYgKCF0aGlzLl9mb3JtYXR0ZWRUb09yaWdpbmFsKQorICAgICAg
ICAgICAgcmV0dXJuIFdlYkluc3BlY3Rvci5Tb3VyY2VGaWxlLnByb3RvdHlwZS5zb3VyY2VMb2Nh
dGlvblRvU2NyaXB0TG9jYXRpb24uY2FsbCh0aGlzLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIp
OworICAgICAgICB2YXIgbG9jYXRpb24gPSB0aGlzLl9mb3JtYXR0ZWRUb09yaWdpbmFsKGxpbmVO
dW1iZXIsIGNvbHVtbk51bWJlcik7CisgICAgICAgIHJldHVybiBXZWJJbnNwZWN0b3IuU291cmNl
RmlsZS5wcm90b3R5cGUuc291cmNlTG9jYXRpb25Ub1NjcmlwdExvY2F0aW9uLmNhbGwodGhpcywg
bG9jYXRpb24ubGluZU51bWJlciwgbG9jYXRpb24uY29sdW1uTnVtYmVyKTsKKyAgICB9LAorCisg
ICAgX2RpZFJlcXVlc3RDb250ZW50OiBmdW5jdGlvbihtaW1lVHlwZSwgdGV4dCkKKyAgICB7Cisg
ICAgICAgIGZ1bmN0aW9uIGRpZEZvcm1hdENvbnRlbnQodGV4dCwgb3JpZ2luYWxUb0Zvcm1hdHRl
ZCwgZm9ybWF0dGVkVG9PcmlnaW5hbCkKKyAgICAgICAgeworICAgICAgICAgICAgdGhpcy5fb3Jp
Z2luYWxUb0Zvcm1hdHRlZCA9IG9yaWdpbmFsVG9Gb3JtYXR0ZWQ7CisgICAgICAgICAgICB0aGlz
Ll9mb3JtYXR0ZWRUb09yaWdpbmFsID0gZm9ybWF0dGVkVG9PcmlnaW5hbDsKKyAgICAgICAgICAg
IFdlYkluc3BlY3Rvci5Tb3VyY2VGaWxlLnByb3RvdHlwZS5fZGlkUmVxdWVzdENvbnRlbnQuY2Fs
bCh0aGlzLCBtaW1lVHlwZSwgdGV4dCk7CisgICAgICAgIH0KKyAgICAgICAgdGhpcy5fZm9ybWF0
dGVyLmZvcm1hdENvbnRlbnQodGV4dCwgdGhpcy5fc2NyaXB0cywgZGlkRm9ybWF0Q29udGVudC5i
aW5kKHRoaXMpKTsKKyAgICB9Cit9CisKK1dlYkluc3BlY3Rvci5Gb3JtYXR0ZWRTb3VyY2VGaWxl
LnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuU291cmNlRmlsZS5wcm90b3R5cGU7
Cg==
</data>
<flag name="review"
          id="78591"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>