<?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>80785</bug_id>
          
          <creation_ts>2012-03-11 04:42:05 -0700</creation_ts>
          <short_desc>Web Inspector: decouple LiveLocation from RawSourceCode.</short_desc>
          <delta_ts>2012-03-12 01:33:15 -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>575683</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2012-03-11 04:42:05 -0700</bug_when>
    <thetext>Web Inspector: decouple LiveLocation from RawSourceCode.

Another step to get rid of RawSourceCode.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575684</commentid>
    <comment_count>1</comment_count>
      <attachid>131216</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2012-03-11 04:43:31 -0700</bug_when>
    <thetext>Created attachment 131216
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575699</commentid>
    <comment_count>2</comment_count>
      <attachid>131216</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-03-11 06:25:03 -0700</bug_when>
    <thetext>Comment on attachment 131216
Patch

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

&gt; Source/WebCore/inspector/front-end/DebuggerPresentationModel.js:642
&gt; +WebInspector.LiveLocation = function(model, rawLocation, updateDelegate)

This belongs to ScriptMapping.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575704</commentid>
    <comment_count>3</comment_count>
      <attachid>131222</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2012-03-11 06:41:12 -0700</bug_when>
    <thetext>Created attachment 131222
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575708</commentid>
    <comment_count>4</comment_count>
      <attachid>131222</attachid>
    <who name="Vsevolod Vlasov">vsevik</who>
    <bug_when>2012-03-11 07:00:02 -0700</bug_when>
    <thetext>Comment on attachment 131222
Patch

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

&gt; LayoutTests/inspector/debugger/callstack-placards-discarded.html:58
&gt; +        var count = 0;

Object.keys(...).length

&gt; LayoutTests/inspector/debugger/linkifier.html:71
&gt;          var count = 0;

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575993</commentid>
    <comment_count>5</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2012-03-12 01:33:15 -0700</bug_when>
    <thetext>Committed r110413: &lt;http://trac.webkit.org/changeset/110413&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131216</attachid>
            <date>2012-03-11 04:43:31 -0700</date>
            <delta_ts>2012-03-11 06:41:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80785-20120311154330.patch</filename>
            <type>text/plain</type>
            <size>20359</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDI3NThjZjYxMTU5YmYy
MDAwOGExZTU1MTk4NTkzZWM3OTY0MjViMC4uYWViZTMxNjdkYWYwM2U4NmEwMWJiNWNlNGM3OTQy
OTI3NTIxMGVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTAzLTExICBQYXZl
bCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IGRlY291cGxlIExpdmVMb2NhdGlvbiBmcm9tIFJhd1NvdXJjZUNvZGUuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDc4NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVn
Z2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLmNyZWF0ZVBsYWNhcmQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLmNyZWF0ZUxp
dmVMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25N
b2RlbC5wcm90b3R5cGUuX3JlZ2lzdGVyTGl2ZUxvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLnByb3RvdHlwZS5fdW5yZWdpc3RlckxpdmVM
b2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2Rl
bC5wcm90b3R5cGUuX3BhcnNlZFNjcmlwdFNvdXJjZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5cGUuX2hhbmRsZVVJU291cmNlQ29kZUxp
c3RDaGFuZ2VkKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1v
ZGVsLnByb3RvdHlwZS5fZGVidWdnZXJQYXVzZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl9kZWJ1Z2dlclJlc2V0KToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5MaXZlTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxp
dmVMb2NhdGlvbi5wcm90b3R5cGUuaW5pdCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTGl2ZUxv
Y2F0aW9uLnByb3RvdHlwZS5kaXNwb3NlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5MaXZlTG9j
YXRpb24ucHJvdG90eXBlLl91cGRhdGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlByZXNlbnRh
dGlvbkNhbGxGcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQ2FsbEZy
YW1lLnByb3RvdHlwZS51aUxvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLkNhbGxGcmFtZVBsYWNhcmQpOgorICAgICAgICAqIGluc3BlY3Rv
ci9mcm9udC1lbmQvUmF3U291cmNlQ29kZS5qczoKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQt
ZW5kL1NjcmlwdE1hcHBpbmcuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTWFpblNjcmlwdE1h
cHBpbmcucHJvdG90eXBlLl91aVNvdXJjZUNvZGVMaXN0Q2hhbmdlZCk6CisKIDIwMTItMDMtMTEg
IFZpYXRjaGVzbGF2IE9zdGFwZW5rbyAgPG9zdGFwZW5rby52aWF0Y2hlc2xhdkBub2tpYS5jb20+
CiAKICAgICAgICAgW1F0XSBbV0syXSBTdXBwb3J0IHRocmVhZGVkIHJlbmRlcmVyIGluIFdLMgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclBy
ZXNlbnRhdGlvbk1vZGVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9E
ZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCmluZGV4IDI2YWQyYzYyZWNlM2Y4ODZhMTkzZWQy
MzhkNTEwNDBlYjg4Y2UwYTMuLjIyMDJlZmE1ZjVlMTQ4Y2ZhNjc0ZTU3ZGNkYWQwYzgwOWJjNjkw
ODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKQEAgLTM3LDEwICszNywxMCBAQCBX
ZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbCA9IGZ1bmN0aW9uKCkKICAgICB0
aGlzLl9zY3JpcHRNYXBwaW5nID0gbmV3IFdlYkluc3BlY3Rvci5NYWluU2NyaXB0TWFwcGluZygp
OwogICAgIHRoaXMuX3NjcmlwdE1hcHBpbmcuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3Iu
TWFpblNjcmlwdE1hcHBpbmcuRXZlbnRzLlVJU291cmNlQ29kZUxpc3RDaGFuZ2VkLCB0aGlzLl9o
YW5kbGVVSVNvdXJjZUNvZGVMaXN0Q2hhbmdlZCwgdGhpcyk7CiAKLSAgICB0aGlzLl9wcmVzZW50
YXRpb25DYWxsRnJhbWVzID0gW107Ci0KICAgICB0aGlzLl9icmVha3BvaW50TWFuYWdlciA9IG5l
dyBXZWJJbnNwZWN0b3IuQnJlYWtwb2ludE1hbmFnZXIoV2ViSW5zcGVjdG9yLnNldHRpbmdzLmJy
ZWFrcG9pbnRzLCB0aGlzLl9icmVha3BvaW50QWRkZWQuYmluZCh0aGlzKSwgdGhpcy5fYnJlYWtw
b2ludFJlbW92ZWQuYmluZCh0aGlzKSwgV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwsIHRoaXMu
X3NjcmlwdE1hcHBpbmcpOwogCisgICAgdGhpcy5fbGl2ZUxvY2F0aW9uc0ZvclNjcmlwdElkID0g
e307CisgICAgdGhpcy5fcHJlc2VudGF0aW9uQ2FsbEZyYW1lcyA9IFtdOwogICAgIHRoaXMuX3Bl
bmRpbmdDb25zb2xlTWVzc2FnZXMgPSB7fTsKICAgICB0aGlzLl9jb25zb2xlTWVzc2FnZUxpdmVM
b2NhdGlvbnMgPSBbXTsKICAgICB0aGlzLl9wcmVzZW50YXRpb25Db25zb2xlTWVzc2FnZXMgPSBb
XTsKQEAgLTg4LDcgKzg4LDcgQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9k
ZWwucHJvdG90eXBlID0gewogICAgICAqLwogICAgIGNyZWF0ZVBsYWNhcmQ6IGZ1bmN0aW9uKGNh
bGxGcmFtZSkKICAgICB7Ci0gICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkRlYnVnZ2Vy
UHJlc2VudGF0aW9uTW9kZWwuQ2FsbEZyYW1lUGxhY2FyZChjYWxsRnJhbWUsIHRoaXMuX3Njcmlw
dE1hcHBpbmcpOworICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNl
bnRhdGlvbk1vZGVsLkNhbGxGcmFtZVBsYWNhcmQoY2FsbEZyYW1lLCB0aGlzKTsKICAgICB9LAog
CiAgICAgLyoqCkBAIC0xMTQsMTEgKzExNCwyMiBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVz
ZW50YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtEZWJ1
Z2dlckFnZW50LkxvY2F0aW9ufSByYXdMb2NhdGlvbgogICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24o
V2ViSW5zcGVjdG9yLlVJTG9jYXRpb24pfSB1cGRhdGVEZWxlZ2F0ZQotICAgICAqIEByZXR1cm4g
e1dlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLkxpdmVMb2NhdGlvbn0KKyAgICAgKiBAcmV0dXJu
IHtXZWJJbnNwZWN0b3IuTGl2ZUxvY2F0aW9ufQogICAgICAqLwogICAgIGNyZWF0ZUxpdmVMb2Nh
dGlvbjogZnVuY3Rpb24ocmF3TG9jYXRpb24sIHVwZGF0ZURlbGVnYXRlKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIHRoaXMuX3NjcmlwdE1hcHBpbmcuY3JlYXRlTGl2ZUxvY2F0aW9uKHJhd0xvY2F0
aW9uLCB1cGRhdGVEZWxlZ2F0ZSk7CisgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkxp
dmVMb2NhdGlvbih0aGlzLCByYXdMb2NhdGlvbiwgdXBkYXRlRGVsZWdhdGUpOworICAgIH0sCisK
KyAgICBfcmVnaXN0ZXJMaXZlTG9jYXRpb246IGZ1bmN0aW9uKHNjcmlwdElkLCBsaXZlTG9jYXRp
b24pCisgICAgeworICAgICAgICB0aGlzLl9saXZlTG9jYXRpb25zRm9yU2NyaXB0SWRbc2NyaXB0
SWRdLnB1c2gobGl2ZUxvY2F0aW9uKQorICAgICAgICBsaXZlTG9jYXRpb24uX3VwZGF0ZSgpOwor
ICAgIH0sCisKKyAgICBfdW5yZWdpc3RlckxpdmVMb2NhdGlvbjogZnVuY3Rpb24oc2NyaXB0SWQs
IGxpdmVMb2NhdGlvbikKKyAgICB7CisgICAgICAgIHRoaXMuX2xpdmVMb2NhdGlvbnNGb3JTY3Jp
cHRJZFtzY3JpcHRJZF0ucmVtb3ZlKGxpdmVMb2NhdGlvbik7CiAgICAgfSwKIAogICAgIC8qKgpA
QCAtMTI3LDYgKzEzOCw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
LnByb3RvdHlwZSA9IHsKICAgICBfcGFyc2VkU2NyaXB0U291cmNlOiBmdW5jdGlvbihldmVudCkK
ICAgICB7CiAgICAgICAgIHZhciBzY3JpcHQgPSAvKiogQHR5cGUge1dlYkluc3BlY3Rvci5TY3Jp
cHR9ICovIGV2ZW50LmRhdGE7CisgICAgICAgIHRoaXMuX2xpdmVMb2NhdGlvbnNGb3JTY3JpcHRJ
ZFtzY3JpcHQuc2NyaXB0SWRdID0gW107CiAgICAgICAgIHRoaXMuX3NjcmlwdE1hcHBpbmcuYWRk
U2NyaXB0KHNjcmlwdCk7CiAgICAgICAgIHRoaXMuX2FkZFBlbmRpbmdDb25zb2xlTWVzc2FnZXNU
b1NjcmlwdChzY3JpcHQpOwogICAgIH0sCkBAIC0xNTQsNiArMTY2LDcgQEAgV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAg
dmFyIHJlbW92ZWRJdGVtcyA9IC8qKiBAdHlwZSB7QXJyYXkuPFdlYkluc3BlY3Rvci5VSVNvdXJj
ZUNvZGU+fSAqLyBldmVudC5kYXRhWyJyZW1vdmVkSXRlbXMiXTsKICAgICAgICAgdmFyIGFkZGVk
SXRlbXMgPSAvKiogQHR5cGUge0FycmF5LjxXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlPn0gKi8g
ZXZlbnQuZGF0YVsiYWRkZWRJdGVtcyJdOworICAgICAgICB2YXIgc2NyaXB0SWRzID0gLyoqIEB0
eXBlIHtBcnJheS48V2ViSW5zcGVjdG9yLlNjcmlwdD59ICovIGV2ZW50LmRhdGFbInNjcmlwdElk
cyJdOwogCiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcmVtb3ZlZEl0ZW1zLmxlbmd0aDsg
KytpKSB7CiAgICAgICAgICAgICB2YXIgYnJlYWtwb2ludHMgPSB0aGlzLl9icmVha3BvaW50TWFu
YWdlci5icmVha3BvaW50c0ZvclVJU291cmNlQ29kZShyZW1vdmVkSXRlbXNbaV0pOwpAQCAtMTc2
LDYgKzE4OSwxMiBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90
b3R5cGUgPSB7CiAgICAgICAgICAgICB2YXIgZXZlbnREYXRhID0geyB1aVNvdXJjZUNvZGVMaXN0
OiBhZGRlZEl0ZW1zLCBvbGRVSVNvdXJjZUNvZGVMaXN0OiByZW1vdmVkSXRlbXMgfTsKICAgICAg
ICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5EZWJ1Z2dl
clByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5VSVNvdXJjZUNvZGVSZXBsYWNlZCwgZXZlbnREYXRh
KTsKICAgICAgICAgfQorCisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0SWRzLmxl
bmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgbGl2ZUxvY2F0aW9ucyA9IHRoaXMuX2xpdmVM
b2NhdGlvbnNGb3JTY3JpcHRJZFtzY3JpcHRJZHNbaV1dOworICAgICAgICAgICAgZm9yICh2YXIg
aiA9IDA7IGogPCBsaXZlTG9jYXRpb25zLmxlbmd0aDsgKytqKQorICAgICAgICAgICAgICAgIGxp
dmVMb2NhdGlvbnNbal0uX3VwZGF0ZSgpOworICAgICAgICB9CiAgICAgfSwKIAogICAgIC8qKgpA
QCAtNDgyLDcgKzUwMSw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBjYWxsRnJhbWVzLmxl
bmd0aDsgKytpKSB7CiAgICAgICAgICAgICB2YXIgY2FsbEZyYW1lID0gY2FsbEZyYW1lc1tpXTsK
ICAgICAgICAgICAgIGlmIChXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRGb3JTb3Vy
Y2VJRChjYWxsRnJhbWUubG9jYXRpb24uc2NyaXB0SWQpKQotICAgICAgICAgICAgICAgIHRoaXMu
X3ByZXNlbnRhdGlvbkNhbGxGcmFtZXMucHVzaChuZXcgV2ViSW5zcGVjdG9yLlByZXNlbnRhdGlv
bkNhbGxGcmFtZShjYWxsRnJhbWUsIGksIHRoaXMuX3NjcmlwdE1hcHBpbmcpKTsKKyAgICAgICAg
ICAgICAgICB0aGlzLl9wcmVzZW50YXRpb25DYWxsRnJhbWVzLnB1c2gobmV3IFdlYkluc3BlY3Rv
ci5QcmVzZW50YXRpb25DYWxsRnJhbWUoY2FsbEZyYW1lLCBpLCB0aGlzKSk7CiAgICAgICAgIH0K
ICAgICAgICAgdmFyIGRldGFpbHMgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5kZWJ1Z2dl
clBhdXNlZERldGFpbHM7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKFdl
Ykluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLkV2ZW50cy5EZWJ1Z2dlclBhdXNl
ZCwgeyBjYWxsRnJhbWVzOiB0aGlzLl9wcmVzZW50YXRpb25DYWxsRnJhbWVzLCBkZXRhaWxzOiBk
ZXRhaWxzIH0pOwpAQCAtNjAxLDYgKzYyMCw3IEBAIFdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNl
bnRhdGlvbk1vZGVsLnByb3RvdHlwZSA9IHsKICAgICBfZGVidWdnZXJSZXNldDogZnVuY3Rpb24o
KQogICAgIHsKICAgICAgICAgdGhpcy5fc2NyaXB0TWFwcGluZy5yZXNldCgpOworICAgICAgICB0
aGlzLl9saXZlTG9jYXRpb25zRm9yU2NyaXB0SWQgPSB7fTsKICAgICAgICAgdGhpcy5fcHJlc2Vu
dGF0aW9uQ2FsbEZyYW1lcyA9IFtdOwogICAgICAgICB0aGlzLl9zZWxlY3RlZENhbGxGcmFtZSA9
IG51bGw7CiAgICAgICAgIHRoaXMuX2JyZWFrcG9pbnRNYW5hZ2VyLmRlYnVnZ2VyUmVzZXQoKTsK
QEAgLTYxNSw2ICs2MzUsMzggQEAgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9k
ZWwucHJvdG90eXBlLl9fcHJvdG9fXyA9IFdlYkluc3BlY3Rvci5PYmplY3QKIAogLyoqCiAgKiBA
Y29uc3RydWN0b3IKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWx9IG1vZGVsCisgKiBAcGFyYW0ge0RlYnVnZ2VyQWdlbnQuTG9jYXRpb259IHJhd0xvY2F0
aW9uCisgKiBAcGFyYW0ge2Z1bmN0aW9uKFdlYkluc3BlY3Rvci5VSUxvY2F0aW9uKX0gdXBkYXRl
RGVsZWdhdGUKKyAqLworV2ViSW5zcGVjdG9yLkxpdmVMb2NhdGlvbiA9IGZ1bmN0aW9uKG1vZGVs
LCByYXdMb2NhdGlvbiwgdXBkYXRlRGVsZWdhdGUpCit7CisgICAgdGhpcy5fbW9kZWwgPSBtb2Rl
bDsKKyAgICB0aGlzLl9yYXdMb2NhdGlvbiA9IHJhd0xvY2F0aW9uOworICAgIHRoaXMuX3VwZGF0
ZURlbGVnYXRlID0gdXBkYXRlRGVsZWdhdGU7Cit9CisKK1dlYkluc3BlY3Rvci5MaXZlTG9jYXRp
b24ucHJvdG90eXBlID0geworICAgIGluaXQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHRo
aXMuX21vZGVsLl9yZWdpc3RlckxpdmVMb2NhdGlvbih0aGlzLl9yYXdMb2NhdGlvbi5zY3JpcHRJ
ZCwgdGhpcyk7CisgICAgfSwKKworICAgIGRpc3Bvc2U6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAg
ICAgIHRoaXMuX21vZGVsLl91bnJlZ2lzdGVyTGl2ZUxvY2F0aW9uKHRoaXMuX3Jhd0xvY2F0aW9u
LnNjcmlwdElkLCB0aGlzKTsKKyAgICB9LAorCisgICAgX3VwZGF0ZTogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgdmFyIHVpTG9jYXRpb24gPSB0aGlzLl9tb2RlbC5yYXdMb2NhdGlvblRvVUlM
b2NhdGlvbih0aGlzLl9yYXdMb2NhdGlvbik7CisgICAgICAgIGlmICh1aUxvY2F0aW9uKQorICAg
ICAgICAgICAgdGhpcy5fdXBkYXRlRGVsZWdhdGUodWlMb2NhdGlvbik7CisgICAgfQorfQorCisv
KioKKyAqIEBjb25zdHJ1Y3RvcgogICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
fSB1aVNvdXJjZUNvZGUKICAqIEBwYXJhbSB7bnVtYmVyfSBsaW5lTnVtYmVyCiAgKiBAcGFyYW0g
e1dlYkluc3BlY3Rvci5Db25zb2xlTWVzc2FnZX0gb3JpZ2luYWxNZXNzYWdlCkBAIC02MzAsMTMg
KzY4MiwxMyBAQCBXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQ29uc29sZU1lc3NhZ2UgPSBmdW5j
dGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIsIG9yaQogICogQGNvbnN0cnVjdG9yCiAgKiBA
cGFyYW0ge0RlYnVnZ2VyQWdlbnQuQ2FsbEZyYW1lfSBjYWxsRnJhbWUKICAqIEBwYXJhbSB7bnVt
YmVyfSBpbmRleAotICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuTWFpblNjcmlwdE1hcHBpbmd9IHNj
cmlwdE1hcHBpbmcKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWx9IG1vZGVsCiAgKi8KLVdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25DYWxsRnJhbWUgPSBm
dW5jdGlvbihjYWxsRnJhbWUsIGluZGV4LCBzY3JpcHRNYXBwaW5nKQorV2ViSW5zcGVjdG9yLlBy
ZXNlbnRhdGlvbkNhbGxGcmFtZSA9IGZ1bmN0aW9uKGNhbGxGcmFtZSwgaW5kZXgsIG1vZGVsKQog
ewogICAgIHRoaXMuX2NhbGxGcmFtZSA9IGNhbGxGcmFtZTsKICAgICB0aGlzLl9pbmRleCA9IGlu
ZGV4OwotICAgIHRoaXMuX3NjcmlwdE1hcHBpbmcgPSBzY3JpcHRNYXBwaW5nOworICAgIHRoaXMu
X21vZGVsID0gbW9kZWw7CiB9CiAKIFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25DYWxsRnJhbWUu
cHJvdG90eXBlID0gewpAQCAtNzA5LDcgKzc2MSw3IEBAIFdlYkluc3BlY3Rvci5QcmVzZW50YXRp
b25DYWxsRnJhbWUucHJvdG90eXBlID0gewogICAgICAgICAgICAgY2FsbGJhY2sodWlMb2NhdGlv
bik7CiAgICAgICAgICAgICBsaXZlTG9jYXRpb24uZGlzcG9zZSgpOwogICAgICAgICB9Ci0gICAg
ICAgIHZhciBsaXZlTG9jYXRpb24gPSB0aGlzLl9zY3JpcHRNYXBwaW5nLmNyZWF0ZUxpdmVMb2Nh
dGlvbih0aGlzLl9jYWxsRnJhbWUubG9jYXRpb24sIGxvY2F0aW9uVXBkYXRlZC5iaW5kKHRoaXMp
KTsKKyAgICAgICAgdmFyIGxpdmVMb2NhdGlvbiA9IHRoaXMuX21vZGVsLmNyZWF0ZUxpdmVMb2Nh
dGlvbih0aGlzLl9jYWxsRnJhbWUubG9jYXRpb24sIGxvY2F0aW9uVXBkYXRlZC5iaW5kKHRoaXMp
KTsKICAgICAgICAgbGl2ZUxvY2F0aW9uLmluaXQoKTsKICAgICB9CiB9CkBAIC03MTgsMTIgKzc3
MCwxMiBAQCBXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQ2FsbEZyYW1lLnByb3RvdHlwZSA9IHsK
ICAqIEBjb25zdHJ1Y3RvcgogICogQGV4dGVuZHMge1dlYkluc3BlY3Rvci5QbGFjYXJkfQogICog
QHBhcmFtIHtXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQ2FsbEZyYW1lfSBjYWxsRnJhbWUKLSAq
IEBwYXJhbSB7V2ViSW5zcGVjdG9yLk1haW5TY3JpcHRNYXBwaW5nfSBzY3JpcHRNYXBwaW5nCisg
KiBAcGFyYW0ge1dlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsfSBtb2RlbAog
ICovCi1XZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5DYWxsRnJhbWVQbGFj
YXJkID0gZnVuY3Rpb24oY2FsbEZyYW1lLCBzY3JpcHRNYXBwaW5nKQorV2ViSW5zcGVjdG9yLkRl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuQ2FsbEZyYW1lUGxhY2FyZCA9IGZ1bmN0aW9uKGNhbGxG
cmFtZSwgbW9kZWwpCiB7CiAgICAgV2ViSW5zcGVjdG9yLlBsYWNhcmQuY2FsbCh0aGlzLCBjYWxs
RnJhbWUuX2NhbGxGcmFtZS5mdW5jdGlvbk5hbWUgfHwgV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCIo
YW5vbnltb3VzIGZ1bmN0aW9uKSIpLCAiIik7Ci0gICAgdGhpcy5fbGl2ZUxvY2F0aW9uID0gc2Ny
aXB0TWFwcGluZy5jcmVhdGVMaXZlTG9jYXRpb24oY2FsbEZyYW1lLl9jYWxsRnJhbWUubG9jYXRp
b24sIHRoaXMuX3VwZGF0ZS5iaW5kKHRoaXMpKTsKKyAgICB0aGlzLl9saXZlTG9jYXRpb24gPSBt
b2RlbC5jcmVhdGVMaXZlTG9jYXRpb24oY2FsbEZyYW1lLl9jYWxsRnJhbWUubG9jYXRpb24sIHRo
aXMuX3VwZGF0ZS5iaW5kKHRoaXMpKTsKICAgICB0aGlzLl9saXZlTG9jYXRpb24uaW5pdCgpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jhd1Nv
dXJjZUNvZGUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jhd1NvdXJj
ZUNvZGUuanMKaW5kZXggMTM1NDRlNmI3ZmEwZDZhNTZkYTc4YmMxZTcyYzc2MTliZWZhZWY0Mi4u
M2VkNGMzMDg4NTMwZmE3NjNmZDg3ZGNhY2M4MjU0ZmYyODA3MzkwMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SYXdTb3VyY2VDb2RlLmpzCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUmF3U291cmNlQ29kZS5qcwpAQCAtMTA4
LDExICsxMDgsNiBAQCBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHJldHVybiBbXTsKICAgICB9LAogCi0gICAgY3JlYXRlTGl2ZUxvY2F0aW9uOiBmdW5j
dGlvbihyYXdMb2NhdGlvbiwgdXBkYXRlRGVsZWdhdGUpCi0gICAgewotICAgICAgICByZXR1cm4g
bmV3IFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLkxpdmVMb2NhdGlvbih0aGlzLCByYXdMb2Nh
dGlvbiwgdXBkYXRlRGVsZWdhdGUpOwotICAgIH0sCi0KICAgICAvKioKICAgICAgKiBAcGFyYW0g
e2Jvb2xlYW59IGZvcm1hdHRlZAogICAgICAqLwpAQCAtMjg0LDM5ICsyNzksNiBAQCBXZWJJbnNw
ZWN0b3IuUmF3U291cmNlQ29kZS5wcm90b3R5cGUgPSB7CiBXZWJJbnNwZWN0b3IuUmF3U291cmNl
Q29kZS5wcm90b3R5cGUuX19wcm90b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7
CiAKIC8qKgotICogQGNvbnN0cnVjdG9yCi0gKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5SYXdTb3Vy
Y2VDb2RlfSByYXdTb3VyY2VDb2RlCi0gKiBAcGFyYW0ge0RlYnVnZ2VyQWdlbnQuTG9jYXRpb259
IHJhd0xvY2F0aW9uCi0gKiBAcGFyYW0ge2Z1bmN0aW9uKFdlYkluc3BlY3Rvci5VSUxvY2F0aW9u
KX0gdXBkYXRlRGVsZWdhdGUKLSAqLwotV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuTGl2ZUxv
Y2F0aW9uID0gZnVuY3Rpb24ocmF3U291cmNlQ29kZSwgcmF3TG9jYXRpb24sIHVwZGF0ZURlbGVn
YXRlKQotewotICAgIHRoaXMuX3Jhd1NvdXJjZUNvZGUgPSByYXdTb3VyY2VDb2RlOwotICAgIHRo
aXMuX3Jhd0xvY2F0aW9uID0gcmF3TG9jYXRpb247Ci0gICAgdGhpcy5fdXBkYXRlRGVsZWdhdGUg
PSB1cGRhdGVEZWxlZ2F0ZTsKLX0KLQotV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuTGl2ZUxv
Y2F0aW9uLnByb3RvdHlwZSA9IHsKLSAgICBpbml0OiBmdW5jdGlvbigpCi0gICAgewotICAgICAg
ICB0aGlzLl9yYXdTb3VyY2VDb2RlLmFkZEV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJhd1Nv
dXJjZUNvZGUuRXZlbnRzLlVJU291cmNlQ29kZUxpc3RDaGFuZ2VkLCB0aGlzLl91cGRhdGUsIHRo
aXMpOwotICAgICAgICB0aGlzLl91cGRhdGUoKTsKLSAgICB9LAotCi0gICAgZGlzcG9zZTogZnVu
Y3Rpb24oKQotICAgIHsKLSAgICAgICAgdGhpcy5fcmF3U291cmNlQ29kZS5yZW1vdmVFdmVudExp
c3RlbmVyKFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLkV2ZW50cy5VSVNvdXJjZUNvZGVMaXN0
Q2hhbmdlZCwgdGhpcy5fdXBkYXRlLCB0aGlzKTsKLSAgICB9LAotCi0gICAgX3VwZGF0ZTogZnVu
Y3Rpb24oKQotICAgIHsKLSAgICAgICAgdmFyIHVpTG9jYXRpb24gPSB0aGlzLl9yYXdTb3VyY2VD
b2RlLnJhd0xvY2F0aW9uVG9VSUxvY2F0aW9uKHRoaXMuX3Jhd0xvY2F0aW9uKTsKLSAgICAgICAg
aWYgKHVpTG9jYXRpb24pCi0gICAgICAgICAgICB0aGlzLl91cGRhdGVEZWxlZ2F0ZSh1aUxvY2F0
aW9uKTsKLSAgICB9Ci19Ci0KLS8qKgogICogQGludGVyZmFjZQogICovCiBXZWJJbnNwZWN0b3Iu
UmF3U291cmNlQ29kZS5Tb3VyY2VNYXBwaW5nID0gZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRNYXBwaW5nLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRNYXBwaW5nLmpzCmluZGV4IGI5ZjIx
OTdiNTJmYmI4MTkwNjNhNmZlOGYxY2NmODU2OTg2OGE2YmUuLjUxOTE3Y2E5NGZmYmY0Y2Y4MmVj
ZDQ4OWRlM2NlMTUwZjA5NzA1N2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0TWFwcGluZy5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NjcmlwdE1hcHBpbmcuanMKQEAgLTU2LDEzICs1Niw2IEBAIFdlYkluc3Bl
Y3Rvci5TY3JpcHRNYXBwaW5nLnByb3RvdHlwZSA9IHsKICAgICB1aUxvY2F0aW9uVG9SYXdMb2Nh
dGlvbjogZnVuY3Rpb24odWlTb3VyY2VDb2RlLCBsaW5lTnVtYmVyLCBjb2x1bW5OdW1iZXIpIHt9
LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtEZWJ1Z2dlckFnZW50LkxvY2F0aW9ufSByYXdM
b2NhdGlvbgotICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oV2ViSW5zcGVjdG9yLlVJTG9jYXRpb24p
fSB1cGRhdGVEZWxlZ2F0ZQotICAgICAqIEByZXR1cm4ge1dlYkluc3BlY3Rvci5SYXdTb3VyY2VD
b2RlLkxpdmVMb2NhdGlvbn0KLSAgICAgKi8KLSAgICBjcmVhdGVMaXZlTG9jYXRpb246IGZ1bmN0
aW9uKHJhd0xvY2F0aW9uLCB1cGRhdGVEZWxlZ2F0ZSkge30sCi0KLSAgICAvKioKICAgICAgKiBA
cmV0dXJuIHtBcnJheS48V2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZT59CiAgICAgICovCiAgICAg
dWlTb3VyY2VDb2RlTGlzdDogZnVuY3Rpb24oKSB7fQpAQCAtMTEzLDE3ICsxMDYsNiBAQCBXZWJJ
bnNwZWN0b3IuTWFpblNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAgIH0sCiAKICAgICAv
KioKLSAgICAgKiBAcGFyYW0ge0RlYnVnZ2VyQWdlbnQuTG9jYXRpb259IHJhd0xvY2F0aW9uCi0g
ICAgICogQHBhcmFtIHtmdW5jdGlvbihXZWJJbnNwZWN0b3IuVUlMb2NhdGlvbil9IHVwZGF0ZURl
bGVnYXRlCi0gICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuTGl2ZUxv
Y2F0aW9ufQotICAgICAqLwotICAgIGNyZWF0ZUxpdmVMb2NhdGlvbjogZnVuY3Rpb24ocmF3TG9j
YXRpb24sIHVwZGF0ZURlbGVnYXRlKQotICAgIHsKLSAgICAgICAgdmFyIHJhd1NvdXJjZUNvZGUg
PSB0aGlzLl9yYXdTb3VyY2VDb2RlRm9yU2NyaXB0SWRbcmF3TG9jYXRpb24uc2NyaXB0SWRdOwot
ICAgICAgICByZXR1cm4gbmV3IFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLkxpdmVMb2NhdGlv
bihyYXdTb3VyY2VDb2RlLCByYXdMb2NhdGlvbiwgdXBkYXRlRGVsZWdhdGUpOwotICAgIH0sCi0K
LSAgICAvKioKICAgICAgKiBAcmV0dXJuIHtBcnJheS48V2ViSW5zcGVjdG9yLlVJU291cmNlQ29k
ZT59CiAgICAgICovCiAgICAgdWlTb3VyY2VDb2RlTGlzdDogZnVuY3Rpb24oKQpAQCAtMTk0LDcg
KzE3NiwxMSBAQCBXZWJJbnNwZWN0b3IuTWFpblNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewog
ICAgICAgICAgICAgdGhpcy5fcmF3U291cmNlQ29kZUZvclVJU291cmNlQ29kZS5yZW1vdmUocmVt
b3ZlZEl0ZW1zW2ldKTsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhZGRlZEl0ZW1zLmxl
bmd0aDsgKytpKQogICAgICAgICAgICAgdGhpcy5fcmF3U291cmNlQ29kZUZvclVJU291cmNlQ29k
ZS5wdXQoYWRkZWRJdGVtc1tpXSwgcmF3U291cmNlQ29kZSk7Ci0gICAgICAgIHRoaXMuZGlzcGF0
Y2hFdmVudFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5TY3JpcHRNYXBwaW5nLkV2ZW50cy5VSVNv
dXJjZUNvZGVMaXN0Q2hhbmdlZCwgeyByZW1vdmVkSXRlbXM6IHJlbW92ZWRJdGVtcywgYWRkZWRJ
dGVtczogYWRkZWRJdGVtcyB9KTsKKyAgICAgICAgdmFyIHNjcmlwdElkcyA9IFtdOworICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IHJhd1NvdXJjZUNvZGUuX3NjcmlwdHMubGVuZ3RoOyArK2kp
CisgICAgICAgICAgICBzY3JpcHRJZHMucHVzaChyYXdTb3VyY2VDb2RlLl9zY3JpcHRzW2ldLnNj
cmlwdElkKTsKKyAgICAgICAgdmFyIGRhdGEgPSAgeyByZW1vdmVkSXRlbXM6IHJlbW92ZWRJdGVt
cywgYWRkZWRJdGVtczogYWRkZWRJdGVtcywgc2NyaXB0SWRzOiBzY3JpcHRJZHMgfTsKKyAgICAg
ICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoV2ViSW5zcGVjdG9yLlNjcmlwdE1hcHBp
bmcuRXZlbnRzLlVJU291cmNlQ29kZUxpc3RDaGFuZ2VkLCBkYXRhKTsKICAgICB9LAogCiAgICAg
LyoqCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggOGEwZmU0OWNiMjUzZTVlNjdmZWJmOGUyZDkwMDhlYjU0NTFkNmFhOC4uMjU5
OGIxYzNkZTkxY2VjOGQ0N2FkMDY3MTUwYzEwNmFkNzgwM2JkMSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0
IEBACisyMDEyLTAzLTExICBQYXZlbCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3Jn
PgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IGRlY291cGxlIExpdmVMb2NhdGlvbiBmcm9tIFJh
d1NvdXJjZUNvZGUuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04MDc4NQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGxzdGFjay1wbGFjYXJkcy1kaXNjYXJkZWQtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9jYWxsc3RhY2stcGxhY2Fy
ZHMtZGlzY2FyZGVkLmh0bWw6CisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2xpbmtpZmll
ci5odG1sOgorCiAyMDEyLTAzLTEwICBKdWxpZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJr
aXQub3JnPgogCiAgICAgICAgIFJlbmRlck9iamVjdCB3aXRoICdyZXNpemUnIGRpZmZlcmVudCBm
cm9tICdub25lJyBzaG91bGQgaGF2ZSBhIFJlbmRlckxheWVyCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY2FsbHN0YWNrLXBsYWNhcmRzLWRpc2NhcmRlZC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY2FsbHN0YWNrLXBsYWNh
cmRzLWRpc2NhcmRlZC1leHBlY3RlZC50eHQKaW5kZXggZTE2NjQwMDY4Y2ExZDAyODJhZGQ2Yjky
NDU2ZDk5OTVkNjIxMzJlOS4uMjQ0ZjBiZjdlYzFjNGVmNzk1NmRjMDIzOTk0OGQzMTIzMTU1NjAx
NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGxzdGFjay1w
bGFjYXJkcy1kaXNjYXJkZWQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rv
ci9kZWJ1Z2dlci9jYWxsc3RhY2stcGxhY2FyZHMtZGlzY2FyZGVkLWV4cGVjdGVkLnR4dApAQCAt
NywxMyArNywxMSBAQCBTY3JpcHQgc291cmNlIHdhcyBzaG93bi4KIFNldCB0aW1lciBmb3IgdGVz
dCBmdW5jdGlvbi4KIFJlY2VpdmVkIERlYnVnZ2VyUGF1c2VkIGV2ZW50LgogRnVuY3Rpb24gbmFt
ZTogdGVzdEZ1bmN0aW9uCi1MaXN0ZW5lcnMgbGVuZ3RoOiAyCiBTY3JpcHQgZXhlY3V0aW9uIHBh
dXNlZC4KIFNjcmlwdCBleGVjdXRpb24gcmVzdW1lZC4KIFNldCB0aW1lciBmb3IgdGVzdCBmdW5j
dGlvbi4KIFJlY2VpdmVkIERlYnVnZ2VyUGF1c2VkIGV2ZW50LgogRnVuY3Rpb24gbmFtZTogdGVz
dEZ1bmN0aW9uCi1MaXN0ZW5lcnMgbGVuZ3RoOiAyCiBTY3JpcHQgZXhlY3V0aW9uIHBhdXNlZC4K
IFNjcmlwdCBleGVjdXRpb24gcmVzdW1lZC4KIERlYnVnZ2VyIHdhcyBkaXNhYmxlZC4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxsc3RhY2stcGxhY2FyZHMt
ZGlzY2FyZGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY2FsbHN0YWNr
LXBsYWNhcmRzLWRpc2NhcmRlZC5odG1sCmluZGV4IDEzYjk1MDQwNjY5YmFhZGM5MWY5MGQ5NDA3
YzA0NWYyMDc2Y2E0MDEuLjlmY2VjNWU1YzNkMmMwYzVkMzUyNjExNTI3NTllODIzOTZlYzFiYTUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxsc3RhY2stcGxh
Y2FyZHMtZGlzY2FyZGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2Vy
L2NhbGxzdGFjay1wbGFjYXJkcy1kaXNjYXJkZWQuaHRtbApAQCAtMTUsMTggKzE1LDE2IEBAIHZh
ciB0ZXN0ID0gZnVuY3Rpb24oKQogICAgICAgICBmdW5jdGlvbiB0ZXN0Q2FsbFN0YWNrUGxhY2Fy
ZHNEaXNjYXJkZWQobmV4dCkKICAgICAgICAgewogICAgICAgICAgICAgV2ViSW5zcGVjdG9yLmRl
YnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuYWRkRXZlbnRMaXN0ZW5lcihXZWJJbnNwZWN0b3IuRGVi
dWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMuRGVidWdnZXJQYXVzZWQsIGRpZFBhdXNlLCB0
aGlzKTsKLSAgICAgICAgICAgIHZhciBwcmV2aW91c0xpc3RlbmVyTGVuZ3RoID0gdW5kZWZpbmVk
OworICAgICAgICAgICAgdmFyIHByZXZpb3VzQ291bnQgPSB1bmRlZmluZWQ7CiAgICAgICAgICAg
ICBmdW5jdGlvbiBkaWRQYXVzZShldmVudCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAg
ICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiUmVjZWl2ZWQgRGVidWdnZXJQYXVzZWQgZXZlbnQu
Iik7CiAgICAgICAgICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IGV2ZW50LmRhdGEuY2FsbEZyYW1l
c1swXTsKICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiRnVuY3Rpb24g
bmFtZTogIiArIGNhbGxGcmFtZS5fY2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSk7Ci0gICAgICAgICAg
ICAgICAgdmFyIHJhd1NvdXJjZUNvZGUgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJQcmVzZW50YXRp
b25Nb2RlbC5fc2NyaXB0TWFwcGluZy5fcmF3U291cmNlQ29kZUZvclNjcmlwdElkW2NhbGxGcmFt
ZS5fY2FsbEZyYW1lLmxvY2F0aW9uLnNjcmlwdElkXTsKLSAgICAgICAgICAgICAgICB2YXIgbGlz
dGVuZXJzID0gcmF3U291cmNlQ29kZS5fbGlzdGVuZXJzW1dlYkluc3BlY3Rvci5SYXdTb3VyY2VD
b2RlLkV2ZW50cy5VSVNvdXJjZUNvZGVMaXN0Q2hhbmdlZF07Ci0gICAgICAgICAgICAgICAgSW5z
cGVjdG9yVGVzdC5hZGRSZXN1bHQoIkxpc3RlbmVycyBsZW5ndGg6ICIgKyBsaXN0ZW5lcnMubGVu
Z3RoKTsKLSAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNMaXN0ZW5lckxlbmd0aCAhPT0gdW5k
ZWZpbmVkICYmIGxpc3RlbmVycy5sZW5ndGggIT09IHByZXZpb3VzTGlzdGVuZXJMZW5ndGgpCi0g
ICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGQUlMRUQ6IFJhd1Nv
dXJjZUNvZGUgbGlzdGVuZXJzIGNvdW50IGhhcyBjaGFuZ2VkISIpOwotICAgICAgICAgICAgICAg
IHByZXZpb3VzTGlzdGVuZXJMZW5ndGggPSBsaXN0ZW5lcnMubGVuZ3RoOworICAgICAgICAgICAg
ICAgIHZhciBjb3VudCA9IGxpdmVMb2NhdGlvbnNDb3VudCgpOworICAgICAgICAgICAgICAgIGlm
IChwcmV2aW91c0NvdW50ICE9PSB1bmRlZmluZWQgJiYgY291bnQgIT09IHByZXZpb3VzQ291bnQp
CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJGQUlMRUQ6IExp
dmUgbG9jYXRpb25zIGNvdW50IGhhcyBjaGFuZ2VkISIpOworICAgICAgICAgICAgICAgIHByZXZp
b3VzQ291bnQgPSBjb3VudDsKICAgICAgICAgICAgIH0KIAogICAgICAgICAgICAgSW5zcGVjdG9y
VGVzdC5zaG93U2NyaXB0U291cmNlKCJjYWxsc3RhY2stcGxhY2FyZHMtZGlzY2FyZGVkLmh0bWwi
LCBkaWRTaG93U2NyaXB0U291cmNlKTsKQEAgLTUzLDYgKzUxLDE1IEBAIHZhciB0ZXN0ID0gZnVu
Y3Rpb24oKQogICAgICAgICAgICAgfQogICAgICAgICB9LAogICAgIF0pOworCisgICAgZnVuY3Rp
b24gbGl2ZUxvY2F0aW9uc0NvdW50KCkKKyAgICB7CisgICAgICAgIHZhciBsb2NhdGlvbnMgPSBX
ZWJJbnNwZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5fbGl2ZUxvY2F0aW9uc0ZvclNj
cmlwdElkOworICAgICAgICB2YXIgY291bnQgPSAwOworICAgICAgICBmb3IgKGlkIGluIGxvY2F0
aW9ucykKKyAgICAgICAgICAgIGNvdW50ICs9IGxvY2F0aW9uc1tpZF0ubGVuZ3RoOworICAgICAg
ICByZXR1cm4gY291bnQ7CisgICAgfQogfQogCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saW5raWZpZXIuaHRtbCBiL0xheW91dFRlc3RzL2lu
c3BlY3Rvci9kZWJ1Z2dlci9saW5raWZpZXIuaHRtbAppbmRleCA0MGYwMDY3YTVkYTQ1Yzc4YWM3
OWM1NmU1YjUwMGZjMTk1YTExODUwLi44NDE5MTdhZjcwZWY2OWIyMjgwMDJjN2IzMTI0ZjhhZDFj
OGJjZDM0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGlua2lm
aWVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpbmtpZmllci5o
dG1sCkBAIC0xMCw3ICsxMCw2IEBAIGZ1bmN0aW9uIHRlc3QoKQogCiAgICAgdmFyIGxpbmtpZmll
cjsKICAgICB2YXIgbGluazsKLSAgICB2YXIgcmF3U291cmNlQ29kZTsKIAogICAgIGZ1bmN0aW9u
IHdhaXRGb3JTY3JpcHRzKCkKICAgICB7CkBAIC0zNCwxMSArMzMsMTAgQEAgZnVuY3Rpb24gdGVz
dCgpCiAgICAgZnVuY3Rpb24gZGVidWdnZXJUZXN0KCkKICAgICB7CiAgICAgICAgIGxpbmtpZmll
ciA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmNyZWF0ZUxpbmtpZmll
cigpOwotICAgICAgICByYXdTb3VyY2VDb2RlID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwuX3NjcmlwdE1hcHBpbmcuX3Jhd1NvdXJjZUNvZGVGb3JVUkxbV2ViSW5zcGVj
dG9yLmluc3BlY3RlZFBhZ2VVUkxdOwogCi0gICAgICAgIHZhciBjb3VudDEgPSBsaXN0ZW5lcnND
b3VudChyYXdTb3VyY2VDb2RlKTsKKyAgICAgICAgdmFyIGNvdW50MSA9IGxpdmVMb2NhdGlvbnND
b3VudCgpOwogICAgICAgICBsaW5rID0gbGlua2lmaWVyLmxpbmtpZnlMb2NhdGlvbihXZWJJbnNw
ZWN0b3IuaW5zcGVjdGVkUGFnZVVSTCwgMjAsIDAsICJkdW1teS1jbGFzcyIpOwotICAgICAgICB2
YXIgY291bnQyID0gbGlzdGVuZXJzQ291bnQocmF3U291cmNlQ29kZSk7CisgICAgICAgIHZhciBj
b3VudDIgPSBsaXZlTG9jYXRpb25zQ291bnQoKTsKIAogICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgibGlzdGVuZXJzIGFkZGVkIG9uIHJhdyBzb3VyY2UgY29kZTogIiArIChjb3VudDIg
LSBjb3VudDEpKTsKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIm9yaWdpbmFsIGxv
Y2F0aW9uOiAiICsgbGluay50ZXh0Q29udGVudCk7CkBAIC01OCwyMyArNTYsMjEgQEAgZnVuY3Rp
b24gdGVzdCgpCiAgICAgewogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgicmV2ZXJ0
ZWQgbG9jYXRpb246ICIgKyBsaW5rLnRleHRDb250ZW50KTsKIAotICAgICAgICB2YXIgY291bnQx
ID0gbGlzdGVuZXJzQ291bnQocmF3U291cmNlQ29kZSk7CisgICAgICAgIHZhciBjb3VudDEgPSBs
aXZlTG9jYXRpb25zQ291bnQoKTsKICAgICAgICAgbGlua2lmaWVyLnJlc2V0KCk7Ci0gICAgICAg
IHZhciBjb3VudDIgPSBsaXN0ZW5lcnNDb3VudChyYXdTb3VyY2VDb2RlKTsKKyAgICAgICAgdmFy
IGNvdW50MiA9IGxpdmVMb2NhdGlvbnNDb3VudCgpOwogCiAgICAgICAgIEluc3BlY3RvclRlc3Qu
YWRkUmVzdWx0KCJsaXN0ZW5lcnMgcmVtb3ZlZCBmcm9tIHJhdyBzb3VyY2UgY29kZTogIiArIChj
b3VudDEgLSBjb3VudDIpKTsKIAogICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlRGVidWdn
ZXJUZXN0KCk7CiAgICAgfQogCi0gICAgZnVuY3Rpb24gbGlzdGVuZXJzQ291bnQob2JqZWN0KQor
ICAgIGZ1bmN0aW9uIGxpdmVMb2NhdGlvbnNDb3VudCgpCiAgICAgewotICAgICAgICB2YXIgbGlz
dGVuZXJzID0gb2JqZWN0Ll9saXN0ZW5lcnM7CisgICAgICAgIHZhciBsb2NhdGlvbnMgPSBXZWJJ
bnNwZWN0b3IuZGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5fbGl2ZUxvY2F0aW9uc0ZvclNjcmlw
dElkOwogICAgICAgICB2YXIgY291bnQgPSAwOwotICAgICAgICBmb3IgKHZhciBldmVudFR5cGVz
IGluIGxpc3RlbmVycykgewotICAgICAgICAgICAgdmFyIGxpc3RlbmVyc0FycmF5ID0gbGlzdGVu
ZXJzW2V2ZW50VHlwZXNdOwotICAgICAgICAgICAgY291bnQgKz0gbGlzdGVuZXJzQXJyYXkubGVu
Z3RoOwotICAgICAgICB9CisgICAgICAgIGZvciAoaWQgaW4gbG9jYXRpb25zKQorICAgICAgICAg
ICAgY291bnQgKz0gbG9jYXRpb25zW2lkXS5sZW5ndGg7CiAgICAgICAgIHJldHVybiBjb3VudDsK
ICAgICB9CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131222</attachid>
            <date>2012-03-11 06:41:12 -0700</date>
            <delta_ts>2012-03-11 07:00:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-80785-20120311174110.patch</filename>
            <type>text/plain</type>
            <size>18299</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMzg5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDI3NThjZjYxMTU5YmYy
MDAwOGExZTU1MTk4NTkzZWM3OTY0MjViMC4uNTMwMzhlNzUwNGNlNjEzYjY5OGUwYTQ4NzUwYWIz
ZmNlZWUxNzZiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEyLTAzLTExICBQYXZl
bCBQb2Rpdmlsb3YgIDxwb2Rpdmlsb3ZAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNw
ZWN0b3I6IGRlY291cGxlIExpdmVMb2NhdGlvbiBmcm9tIFJhd1NvdXJjZUNvZGUuCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MDc4NQorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9y
LkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLmNyZWF0ZVBsYWNhcmQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwucHJvdG90eXBlLl9k
ZWJ1Z2dlclBhdXNlZCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQ2FsbEZy
YW1lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25DYWxsRnJhbWUucHJvdG90
eXBlLnVpTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0
aW9uTW9kZWwuQ2FsbEZyYW1lUGxhY2FyZCk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVu
ZC9SYXdTb3VyY2VDb2RlLmpzOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0
TWFwcGluZy5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5NYWluU2NyaXB0TWFwcGluZyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuTWFpblNjcmlwdE1hcHBpbmcucHJvdG90eXBlLmNyZWF0ZUxp
dmVMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTWFpblNjcmlwdE1hcHBpbmcucHJv
dG90eXBlLl9yZWdpc3RlckxpdmVMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTWFp
blNjcmlwdE1hcHBpbmcucHJvdG90eXBlLl91bnJlZ2lzdGVyTGl2ZUxvY2F0aW9uKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5NYWluU2NyaXB0TWFwcGluZy5wcm90b3R5cGUuX3VwZGF0ZUxpdmVM
b2NhdGlvbnMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk1haW5TY3JpcHRNYXBwaW5nLnByb3Rv
dHlwZS5fdWlTb3VyY2VDb2RlTGlzdENoYW5nZWQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLk1h
aW5TY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5yZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
TGl2ZUxvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5MaXZlTG9jYXRpb24ucHJvdG90
eXBlLmluaXQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxpdmVMb2NhdGlvbi5wcm90b3R5cGUu
ZGlzcG9zZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTGl2ZUxvY2F0aW9uLnByb3RvdHlwZS5f
dXBkYXRlKToKKwogMjAxMi0wMy0xMSAgVmlhdGNoZXNsYXYgT3N0YXBlbmtvICA8b3N0YXBlbmtv
LnZpYXRjaGVzbGF2QG5va2lhLmNvbT4KIAogICAgICAgICBbUXRdIFtXSzJdIFN1cHBvcnQgdGhy
ZWFkZWQgcmVuZGVyZXIgaW4gV0syCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuanMKaW5kZXgg
MjZhZDJjNjJlY2UzZjg4NmExOTNlZDIzOGQ1MTA0MGViODhjZTBhMy4uNDcxODJlZTliNTU2OTc3
YzhkNjJmZjRkZTY5ZjI1ZTJmNzFmM2I2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmpzCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5q
cwpAQCAtODgsNyArODgsNyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2Rl
bC5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgY3JlYXRlUGxhY2FyZDogZnVuY3Rpb24oY2Fs
bEZyYW1lKQogICAgIHsKLSAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuRGVidWdnZXJQ
cmVzZW50YXRpb25Nb2RlbC5DYWxsRnJhbWVQbGFjYXJkKGNhbGxGcmFtZSwgdGhpcy5fc2NyaXB0
TWFwcGluZyk7CisgICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwuQ2FsbEZyYW1lUGxhY2FyZChjYWxsRnJhbWUsIHRoaXMpOwogICAgIH0sCiAK
ICAgICAvKioKQEAgLTExNCw3ICsxMTQsNyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50
YXRpb25Nb2RlbC5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtEZWJ1Z2dl
ckFnZW50LkxvY2F0aW9ufSByYXdMb2NhdGlvbgogICAgICAqIEBwYXJhbSB7ZnVuY3Rpb24oV2Vi
SW5zcGVjdG9yLlVJTG9jYXRpb24pfSB1cGRhdGVEZWxlZ2F0ZQotICAgICAqIEByZXR1cm4ge1dl
Ykluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLkxpdmVMb2NhdGlvbn0KKyAgICAgKiBAcmV0dXJuIHtX
ZWJJbnNwZWN0b3IuTGl2ZUxvY2F0aW9ufQogICAgICAqLwogICAgIGNyZWF0ZUxpdmVMb2NhdGlv
bjogZnVuY3Rpb24ocmF3TG9jYXRpb24sIHVwZGF0ZURlbGVnYXRlKQogICAgIHsKQEAgLTQ4Miw3
ICs0ODIsNyBAQCBXZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5wcm90b3R5
cGUgPSB7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2FsbEZyYW1lcy5sZW5ndGg7ICsr
aSkgewogICAgICAgICAgICAgdmFyIGNhbGxGcmFtZSA9IGNhbGxGcmFtZXNbaV07CiAgICAgICAg
ICAgICBpZiAoV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuc2NyaXB0Rm9yU291cmNlSUQoY2Fs
bEZyYW1lLmxvY2F0aW9uLnNjcmlwdElkKSkKLSAgICAgICAgICAgICAgICB0aGlzLl9wcmVzZW50
YXRpb25DYWxsRnJhbWVzLnB1c2gobmV3IFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25DYWxsRnJh
bWUoY2FsbEZyYW1lLCBpLCB0aGlzLl9zY3JpcHRNYXBwaW5nKSk7CisgICAgICAgICAgICAgICAg
dGhpcy5fcHJlc2VudGF0aW9uQ2FsbEZyYW1lcy5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuUHJlc2Vu
dGF0aW9uQ2FsbEZyYW1lKGNhbGxGcmFtZSwgaSwgdGhpcykpOwogICAgICAgICB9CiAgICAgICAg
IHZhciBkZXRhaWxzID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyTW9kZWwuZGVidWdnZXJQYXVzZWRE
ZXRhaWxzOwogICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRUb0xpc3RlbmVycyhXZWJJbnNwZWN0
b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5FdmVudHMuRGVidWdnZXJQYXVzZWQsIHsgY2Fs
bEZyYW1lczogdGhpcy5fcHJlc2VudGF0aW9uQ2FsbEZyYW1lcywgZGV0YWlsczogZGV0YWlscyB9
KTsKQEAgLTYzMCwxMyArNjMwLDEzIEBAIFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25Db25zb2xl
TWVzc2FnZSA9IGZ1bmN0aW9uKHVpU291cmNlQ29kZSwgbGluZU51bWJlciwgb3JpCiAgKiBAY29u
c3RydWN0b3IKICAqIEBwYXJhbSB7RGVidWdnZXJBZ2VudC5DYWxsRnJhbWV9IGNhbGxGcmFtZQog
ICogQHBhcmFtIHtudW1iZXJ9IGluZGV4Ci0gKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5NYWluU2Ny
aXB0TWFwcGluZ30gc2NyaXB0TWFwcGluZworICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuRGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbH0gbW9kZWwKICAqLwotV2ViSW5zcGVjdG9yLlByZXNlbnRhdGlv
bkNhbGxGcmFtZSA9IGZ1bmN0aW9uKGNhbGxGcmFtZSwgaW5kZXgsIHNjcmlwdE1hcHBpbmcpCitX
ZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQ2FsbEZyYW1lID0gZnVuY3Rpb24oY2FsbEZyYW1lLCBp
bmRleCwgbW9kZWwpCiB7CiAgICAgdGhpcy5fY2FsbEZyYW1lID0gY2FsbEZyYW1lOwogICAgIHRo
aXMuX2luZGV4ID0gaW5kZXg7Ci0gICAgdGhpcy5fc2NyaXB0TWFwcGluZyA9IHNjcmlwdE1hcHBp
bmc7CisgICAgdGhpcy5fbW9kZWwgPSBtb2RlbDsKIH0KIAogV2ViSW5zcGVjdG9yLlByZXNlbnRh
dGlvbkNhbGxGcmFtZS5wcm90b3R5cGUgPSB7CkBAIC03MDksNyArNzA5LDcgQEAgV2ViSW5zcGVj
dG9yLlByZXNlbnRhdGlvbkNhbGxGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICBjYWxs
YmFjayh1aUxvY2F0aW9uKTsKICAgICAgICAgICAgIGxpdmVMb2NhdGlvbi5kaXNwb3NlKCk7CiAg
ICAgICAgIH0KLSAgICAgICAgdmFyIGxpdmVMb2NhdGlvbiA9IHRoaXMuX3NjcmlwdE1hcHBpbmcu
Y3JlYXRlTGl2ZUxvY2F0aW9uKHRoaXMuX2NhbGxGcmFtZS5sb2NhdGlvbiwgbG9jYXRpb25VcGRh
dGVkLmJpbmQodGhpcykpOworICAgICAgICB2YXIgbGl2ZUxvY2F0aW9uID0gdGhpcy5fbW9kZWwu
Y3JlYXRlTGl2ZUxvY2F0aW9uKHRoaXMuX2NhbGxGcmFtZS5sb2NhdGlvbiwgbG9jYXRpb25VcGRh
dGVkLmJpbmQodGhpcykpOwogICAgICAgICBsaXZlTG9jYXRpb24uaW5pdCgpOwogICAgIH0KIH0K
QEAgLTcxOCwxMiArNzE4LDEyIEBAIFdlYkluc3BlY3Rvci5QcmVzZW50YXRpb25DYWxsRnJhbWUu
cHJvdG90eXBlID0gewogICogQGNvbnN0cnVjdG9yCiAgKiBAZXh0ZW5kcyB7V2ViSW5zcGVjdG9y
LlBsYWNhcmR9CiAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5QcmVzZW50YXRpb25DYWxsRnJhbWV9
IGNhbGxGcmFtZQotICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuTWFpblNjcmlwdE1hcHBpbmd9IHNj
cmlwdE1hcHBpbmcKKyAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9u
TW9kZWx9IG1vZGVsCiAgKi8KLVdlYkluc3BlY3Rvci5EZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVs
LkNhbGxGcmFtZVBsYWNhcmQgPSBmdW5jdGlvbihjYWxsRnJhbWUsIHNjcmlwdE1hcHBpbmcpCitX
ZWJJbnNwZWN0b3IuRGVidWdnZXJQcmVzZW50YXRpb25Nb2RlbC5DYWxsRnJhbWVQbGFjYXJkID0g
ZnVuY3Rpb24oY2FsbEZyYW1lLCBtb2RlbCkKIHsKICAgICBXZWJJbnNwZWN0b3IuUGxhY2FyZC5j
YWxsKHRoaXMsIGNhbGxGcmFtZS5fY2FsbEZyYW1lLmZ1bmN0aW9uTmFtZSB8fCBXZWJJbnNwZWN0
b3IuVUlTdHJpbmcoIihhbm9ueW1vdXMgZnVuY3Rpb24pIiksICIiKTsKLSAgICB0aGlzLl9saXZl
TG9jYXRpb24gPSBzY3JpcHRNYXBwaW5nLmNyZWF0ZUxpdmVMb2NhdGlvbihjYWxsRnJhbWUuX2Nh
bGxGcmFtZS5sb2NhdGlvbiwgdGhpcy5fdXBkYXRlLmJpbmQodGhpcykpOworICAgIHRoaXMuX2xp
dmVMb2NhdGlvbiA9IG1vZGVsLmNyZWF0ZUxpdmVMb2NhdGlvbihjYWxsRnJhbWUuX2NhbGxGcmFt
ZS5sb2NhdGlvbiwgdGhpcy5fdXBkYXRlLmJpbmQodGhpcykpOwogICAgIHRoaXMuX2xpdmVMb2Nh
dGlvbi5pbml0KCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvUmF3U291cmNlQ29kZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvUmF3U291cmNlQ29kZS5qcwppbmRleCAxMzU0NGU2YjdmYTBkNmE1NmRhNzhiYzFlNzJj
NzYxOWJlZmFlZjQyLi4zZWQ0YzMwODg1MzBmYTc2M2ZkODdkY2FjYzgyNTRmZjI4MDczOTAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Jhd1NvdXJjZUNv
ZGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9SYXdTb3VyY2VD
b2RlLmpzCkBAIC0xMDgsMTEgKzEwOCw2IEBAIFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIFtdOwogICAgIH0sCiAKLSAgICBjcmVhdGVMaXZl
TG9jYXRpb246IGZ1bmN0aW9uKHJhd0xvY2F0aW9uLCB1cGRhdGVEZWxlZ2F0ZSkKLSAgICB7Ci0g
ICAgICAgIHJldHVybiBuZXcgV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuTGl2ZUxvY2F0aW9u
KHRoaXMsIHJhd0xvY2F0aW9uLCB1cGRhdGVEZWxlZ2F0ZSk7Ci0gICAgfSwKLQogICAgIC8qKgog
ICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gZm9ybWF0dGVkCiAgICAgICovCkBAIC0yODQsMzkgKzI3
OSw2IEBAIFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZSA9IHsKIFdlYkluc3Bl
Y3Rvci5SYXdTb3VyY2VDb2RlLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNwZWN0b3IuT2Jq
ZWN0LnByb3RvdHlwZTsKIAogLyoqCi0gKiBAY29uc3RydWN0b3IKLSAqIEBwYXJhbSB7V2ViSW5z
cGVjdG9yLlJhd1NvdXJjZUNvZGV9IHJhd1NvdXJjZUNvZGUKLSAqIEBwYXJhbSB7RGVidWdnZXJB
Z2VudC5Mb2NhdGlvbn0gcmF3TG9jYXRpb24KLSAqIEBwYXJhbSB7ZnVuY3Rpb24oV2ViSW5zcGVj
dG9yLlVJTG9jYXRpb24pfSB1cGRhdGVEZWxlZ2F0ZQotICovCi1XZWJJbnNwZWN0b3IuUmF3U291
cmNlQ29kZS5MaXZlTG9jYXRpb24gPSBmdW5jdGlvbihyYXdTb3VyY2VDb2RlLCByYXdMb2NhdGlv
biwgdXBkYXRlRGVsZWdhdGUpCi17Ci0gICAgdGhpcy5fcmF3U291cmNlQ29kZSA9IHJhd1NvdXJj
ZUNvZGU7Ci0gICAgdGhpcy5fcmF3TG9jYXRpb24gPSByYXdMb2NhdGlvbjsKLSAgICB0aGlzLl91
cGRhdGVEZWxlZ2F0ZSA9IHVwZGF0ZURlbGVnYXRlOwotfQotCi1XZWJJbnNwZWN0b3IuUmF3U291
cmNlQ29kZS5MaXZlTG9jYXRpb24ucHJvdG90eXBlID0gewotICAgIGluaXQ6IGZ1bmN0aW9uKCkK
LSAgICB7Ci0gICAgICAgIHRoaXMuX3Jhd1NvdXJjZUNvZGUuYWRkRXZlbnRMaXN0ZW5lcihXZWJJ
bnNwZWN0b3IuUmF3U291cmNlQ29kZS5FdmVudHMuVUlTb3VyY2VDb2RlTGlzdENoYW5nZWQsIHRo
aXMuX3VwZGF0ZSwgdGhpcyk7Ci0gICAgICAgIHRoaXMuX3VwZGF0ZSgpOwotICAgIH0sCi0KLSAg
ICBkaXNwb3NlOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB0aGlzLl9yYXdTb3VyY2VDb2Rl
LnJlbW92ZUV2ZW50TGlzdGVuZXIoV2ViSW5zcGVjdG9yLlJhd1NvdXJjZUNvZGUuRXZlbnRzLlVJ
U291cmNlQ29kZUxpc3RDaGFuZ2VkLCB0aGlzLl91cGRhdGUsIHRoaXMpOwotICAgIH0sCi0KLSAg
ICBfdXBkYXRlOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICB2YXIgdWlMb2NhdGlvbiA9IHRo
aXMuX3Jhd1NvdXJjZUNvZGUucmF3TG9jYXRpb25Ub1VJTG9jYXRpb24odGhpcy5fcmF3TG9jYXRp
b24pOwotICAgICAgICBpZiAodWlMb2NhdGlvbikKLSAgICAgICAgICAgIHRoaXMuX3VwZGF0ZURl
bGVnYXRlKHVpTG9jYXRpb24pOwotICAgIH0KLX0KLQotLyoqCiAgKiBAaW50ZXJmYWNlCiAgKi8K
IFdlYkluc3BlY3Rvci5SYXdTb3VyY2VDb2RlLlNvdXJjZU1hcHBpbmcgPSBmdW5jdGlvbigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdE1hcHBp
bmcuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdE1hcHBpbmcu
anMKaW5kZXggYjlmMjE5N2I1MmZiYjgxOTA2M2E2ZmU4ZjFjY2Y4NTY5ODY4YTZiZS4uNzcxNTM1
YmY3N2MwMDlmYmQ1NDc4ZjQ4MzM5MDVhOGYwOTZkZDY3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRNYXBwaW5nLmpzCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0TWFwcGluZy5qcwpAQCAtNTYsMTMgKzU2
LDYgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdE1hcHBpbmcucHJvdG90eXBlID0gewogICAgIHVpTG9j
YXRpb25Ub1Jhd0xvY2F0aW9uOiBmdW5jdGlvbih1aVNvdXJjZUNvZGUsIGxpbmVOdW1iZXIsIGNv
bHVtbk51bWJlcikge30sCiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge0RlYnVnZ2VyQWdlbnQu
TG9jYXRpb259IHJhd0xvY2F0aW9uCi0gICAgICogQHBhcmFtIHtmdW5jdGlvbihXZWJJbnNwZWN0
b3IuVUlMb2NhdGlvbil9IHVwZGF0ZURlbGVnYXRlCi0gICAgICogQHJldHVybiB7V2ViSW5zcGVj
dG9yLlJhd1NvdXJjZUNvZGUuTGl2ZUxvY2F0aW9ufQotICAgICAqLwotICAgIGNyZWF0ZUxpdmVM
b2NhdGlvbjogZnVuY3Rpb24ocmF3TG9jYXRpb24sIHVwZGF0ZURlbGVnYXRlKSB7fSwKLQotICAg
IC8qKgogICAgICAqIEByZXR1cm4ge0FycmF5LjxXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlPn0K
ICAgICAgKi8KICAgICB1aVNvdXJjZUNvZGVMaXN0OiBmdW5jdGlvbigpIHt9CkBAIC04Myw2ICs3
Niw3IEBAIFdlYkluc3BlY3Rvci5NYWluU2NyaXB0TWFwcGluZyA9IGZ1bmN0aW9uKCkKICAgICB0
aGlzLl9yYXdTb3VyY2VDb2RlRm9yVUlTb3VyY2VDb2RlID0gbmV3IE1hcCgpOwogICAgIHRoaXMu
X2Zvcm1hdHRlciA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0Rm9ybWF0dGVyKCk7CiAgICAgdGhp
cy5fZm9ybWF0U291cmNlID0gZmFsc2U7CisgICAgdGhpcy5fbGl2ZUxvY2F0aW9uc0ZvclNjcmlw
dElkID0ge307CiB9CiAKIFdlYkluc3BlY3Rvci5NYWluU2NyaXB0TWFwcGluZy5FdmVudHMgPSB7
CkBAIC0xMTUsMTIgKzEwOSwzMSBAQCBXZWJJbnNwZWN0b3IuTWFpblNjcmlwdE1hcHBpbmcucHJv
dG90eXBlID0gewogICAgIC8qKgogICAgICAqIEBwYXJhbSB7RGVidWdnZXJBZ2VudC5Mb2NhdGlv
bn0gcmF3TG9jYXRpb24KICAgICAgKiBAcGFyYW0ge2Z1bmN0aW9uKFdlYkluc3BlY3Rvci5VSUxv
Y2F0aW9uKX0gdXBkYXRlRGVsZWdhdGUKLSAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuUmF3
U291cmNlQ29kZS5MaXZlTG9jYXRpb259CisgICAgICogQHJldHVybiB7V2ViSW5zcGVjdG9yLkxp
dmVMb2NhdGlvbn0KICAgICAgKi8KICAgICBjcmVhdGVMaXZlTG9jYXRpb246IGZ1bmN0aW9uKHJh
d0xvY2F0aW9uLCB1cGRhdGVEZWxlZ2F0ZSkKICAgICB7Ci0gICAgICAgIHZhciByYXdTb3VyY2VD
b2RlID0gdGhpcy5fcmF3U291cmNlQ29kZUZvclNjcmlwdElkW3Jhd0xvY2F0aW9uLnNjcmlwdElk
XTsKLSAgICAgICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuUmF3U291cmNlQ29kZS5MaXZlTG9j
YXRpb24ocmF3U291cmNlQ29kZSwgcmF3TG9jYXRpb24sIHVwZGF0ZURlbGVnYXRlKTsKKyAgICAg
ICAgcmV0dXJuIG5ldyBXZWJJbnNwZWN0b3IuTGl2ZUxvY2F0aW9uKHRoaXMsIHJhd0xvY2F0aW9u
LCB1cGRhdGVEZWxlZ2F0ZSk7CisgICAgfSwKKworICAgIF9yZWdpc3RlckxpdmVMb2NhdGlvbjog
ZnVuY3Rpb24oc2NyaXB0SWQsIGxpdmVMb2NhdGlvbikKKyAgICB7CisgICAgICAgIHRoaXMuX2xp
dmVMb2NhdGlvbnNGb3JTY3JpcHRJZFtzY3JpcHRJZF0ucHVzaChsaXZlTG9jYXRpb24pCisgICAg
ICAgIGxpdmVMb2NhdGlvbi5fdXBkYXRlKCk7CisgICAgfSwKKworICAgIF91bnJlZ2lzdGVyTGl2
ZUxvY2F0aW9uOiBmdW5jdGlvbihzY3JpcHRJZCwgbGl2ZUxvY2F0aW9uKQorICAgIHsKKyAgICAg
ICAgdGhpcy5fbGl2ZUxvY2F0aW9uc0ZvclNjcmlwdElkW3NjcmlwdElkXS5yZW1vdmUobGl2ZUxv
Y2F0aW9uKTsKKyAgICB9LAorCisgICAgX3VwZGF0ZUxpdmVMb2NhdGlvbnM6IGZ1bmN0aW9uKHNj
cmlwdElkcykKKyAgICB7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgc2NyaXB0SWRzLmxl
bmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgbGl2ZUxvY2F0aW9ucyA9IHRoaXMuX2xpdmVM
b2NhdGlvbnNGb3JTY3JpcHRJZFtzY3JpcHRJZHNbaV1dOworICAgICAgICAgICAgZm9yICh2YXIg
aiA9IDA7IGogPCBsaXZlTG9jYXRpb25zLmxlbmd0aDsgKytqKQorICAgICAgICAgICAgICAgIGxp
dmVMb2NhdGlvbnNbal0uX3VwZGF0ZSgpOworICAgICAgICB9CiAgICAgfSwKIAogICAgIC8qKgpA
QCAtMTQyLDYgKzE1NSw4IEBAIFdlYkluc3BlY3Rvci5NYWluU2NyaXB0TWFwcGluZy5wcm90b3R5
cGUgPSB7CiAgICAgICovCiAgICAgYWRkU2NyaXB0OiBmdW5jdGlvbihzY3JpcHQpCiAgICAgewor
ICAgICAgICB0aGlzLl9saXZlTG9jYXRpb25zRm9yU2NyaXB0SWRbc2NyaXB0LnNjcmlwdElkXSA9
IFtdOworCiAgICAgICAgIHZhciByZXNvdXJjZSA9IG51bGw7CiAgICAgICAgIHZhciBpc0lubGlu
ZVNjcmlwdCA9IGZhbHNlOwogICAgICAgICBpZiAoc2NyaXB0LmlzSW5saW5lU2NyaXB0KCkpIHsK
QEAgLTE5NSw2ICsyMTAsMTEgQEAgV2ViSW5zcGVjdG9yLk1haW5TY3JpcHRNYXBwaW5nLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBhZGRlZEl0ZW1zLmxlbmd0aDsg
KytpKQogICAgICAgICAgICAgdGhpcy5fcmF3U291cmNlQ29kZUZvclVJU291cmNlQ29kZS5wdXQo
YWRkZWRJdGVtc1tpXSwgcmF3U291cmNlQ29kZSk7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVu
dFRvTGlzdGVuZXJzKFdlYkluc3BlY3Rvci5TY3JpcHRNYXBwaW5nLkV2ZW50cy5VSVNvdXJjZUNv
ZGVMaXN0Q2hhbmdlZCwgeyByZW1vdmVkSXRlbXM6IHJlbW92ZWRJdGVtcywgYWRkZWRJdGVtczog
YWRkZWRJdGVtcyB9KTsKKworICAgICAgICB2YXIgc2NyaXB0SWRzID0gW107CisgICAgICAgIGZv
ciAodmFyIGkgPSAwOyBpIDwgcmF3U291cmNlQ29kZS5fc2NyaXB0cy5sZW5ndGg7ICsraSkKKyAg
ICAgICAgICAgIHNjcmlwdElkcy5wdXNoKHJhd1NvdXJjZUNvZGUuX3NjcmlwdHNbaV0uc2NyaXB0
SWQpOworICAgICAgICB0aGlzLl91cGRhdGVMaXZlTG9jYXRpb25zKHNjcmlwdElkcyk7CiAgICAg
fSwKIAogICAgIC8qKgpAQCAtMjQxLDcgKzI2MSw0MCBAQCBXZWJJbnNwZWN0b3IuTWFpblNjcmlw
dE1hcHBpbmcucHJvdG90eXBlID0gewogICAgICAgICB0aGlzLl9yYXdTb3VyY2VDb2RlRm9yVVJM
ID0ge307CiAgICAgICAgIHRoaXMuX3Jhd1NvdXJjZUNvZGVGb3JEb2N1bWVudFVSTCA9IHt9Owog
ICAgICAgICB0aGlzLl9yYXdTb3VyY2VDb2RlRm9yVUlTb3VyY2VDb2RlLmNsZWFyKCk7CisgICAg
ICAgIHRoaXMuX2xpdmVMb2NhdGlvbnNGb3JTY3JpcHRJZCA9IHt9OwogICAgIH0KIH0KIAogV2Vi
SW5zcGVjdG9yLk1haW5TY3JpcHRNYXBwaW5nLnByb3RvdHlwZS5fX3Byb3RvX18gPSBXZWJJbnNw
ZWN0b3IuT2JqZWN0LnByb3RvdHlwZTsKKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBwYXJh
bSB7V2ViSW5zcGVjdG9yLk1haW5TY3JpcHRNYXBwaW5nfSBzY3JpcHRNYXBwaW5nCisgKiBAcGFy
YW0ge0RlYnVnZ2VyQWdlbnQuTG9jYXRpb259IHJhd0xvY2F0aW9uCisgKiBAcGFyYW0ge2Z1bmN0
aW9uKFdlYkluc3BlY3Rvci5VSUxvY2F0aW9uKX0gdXBkYXRlRGVsZWdhdGUKKyAqLworV2ViSW5z
cGVjdG9yLkxpdmVMb2NhdGlvbiA9IGZ1bmN0aW9uKHNjcmlwdE1hcHBpbmcsIHJhd0xvY2F0aW9u
LCB1cGRhdGVEZWxlZ2F0ZSkKK3sKKyAgICB0aGlzLl9zY3JpcHRNYXBwaW5nID0gc2NyaXB0TWFw
cGluZzsKKyAgICB0aGlzLl9yYXdMb2NhdGlvbiA9IHJhd0xvY2F0aW9uOworICAgIHRoaXMuX3Vw
ZGF0ZURlbGVnYXRlID0gdXBkYXRlRGVsZWdhdGU7Cit9CisKK1dlYkluc3BlY3Rvci5MaXZlTG9j
YXRpb24ucHJvdG90eXBlID0geworICAgIGluaXQ6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAg
IHRoaXMuX3NjcmlwdE1hcHBpbmcuX3JlZ2lzdGVyTGl2ZUxvY2F0aW9uKHRoaXMuX3Jhd0xvY2F0
aW9uLnNjcmlwdElkLCB0aGlzKTsKKyAgICB9LAorCisgICAgZGlzcG9zZTogZnVuY3Rpb24oKQor
ICAgIHsKKyAgICAgICAgdGhpcy5fc2NyaXB0TWFwcGluZy5fdW5yZWdpc3RlckxpdmVMb2NhdGlv
bih0aGlzLl9yYXdMb2NhdGlvbi5zY3JpcHRJZCwgdGhpcyk7CisgICAgfSwKKworICAgIF91cGRh
dGU6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHZhciB1aUxvY2F0aW9uID0gdGhpcy5fc2Ny
aXB0TWFwcGluZy5yYXdMb2NhdGlvblRvVUlMb2NhdGlvbih0aGlzLl9yYXdMb2NhdGlvbik7Cisg
ICAgICAgIGlmICh1aUxvY2F0aW9uKQorICAgICAgICAgICAgdGhpcy5fdXBkYXRlRGVsZWdhdGUo
dWlMb2NhdGlvbik7CisgICAgfQorfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDhhMGZlNDljYjI1M2U1ZTY3ZmViZjhlMmQ5
MDA4ZWI1NDUxZDZhYTguLjI1OThiMWMzZGU5MWNlYzhkNDdhZDA2NzE1MGMxMDZhZDc4MDNiZDEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0wMy0xMSAgUGF2ZWwgUG9kaXZpbG92ICA8cG9k
aXZpbG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBkZWNvdXBsZSBM
aXZlTG9jYXRpb24gZnJvbSBSYXdTb3VyY2VDb2RlLgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODA3ODUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGluc3BlY3Rvci9kZWJ1Z2dlci9jYWxsc3RhY2stcGxh
Y2FyZHMtZGlzY2FyZGVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdn
ZXIvY2FsbHN0YWNrLXBsYWNhcmRzLWRpc2NhcmRlZC5odG1sOgorICAgICAgICAqIGluc3BlY3Rv
ci9kZWJ1Z2dlci9saW5raWZpZXIuaHRtbDoKKwogMjAxMi0wMy0xMCAgSnVsaWVuIENoYWZmcmFp
eCAgPGpjaGFmZnJhaXhAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZW5kZXJPYmplY3Qgd2l0aCAn
cmVzaXplJyBkaWZmZXJlbnQgZnJvbSAnbm9uZScgc2hvdWxkIGhhdmUgYSBSZW5kZXJMYXllcgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGxzdGFjay1wbGFj
YXJkcy1kaXNjYXJkZWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVn
Z2VyL2NhbGxzdGFjay1wbGFjYXJkcy1kaXNjYXJkZWQtZXhwZWN0ZWQudHh0CmluZGV4IGUxNjY0
MDA2OGNhMWQwMjgyYWRkNmI5MjQ1NmQ5OTk1ZDYyMTMyZTkuLjI0NGYwYmY3ZWMxYzRlZjc5NTZk
YzAyMzk5NDhkMzEyMzE1NTYwMTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9k
ZWJ1Z2dlci9jYWxsc3RhY2stcGxhY2FyZHMtZGlzY2FyZGVkLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvY2FsbHN0YWNrLXBsYWNhcmRzLWRpc2NhcmRl
ZC1leHBlY3RlZC50eHQKQEAgLTcsMTMgKzcsMTEgQEAgU2NyaXB0IHNvdXJjZSB3YXMgc2hvd24u
CiBTZXQgdGltZXIgZm9yIHRlc3QgZnVuY3Rpb24uCiBSZWNlaXZlZCBEZWJ1Z2dlclBhdXNlZCBl
dmVudC4KIEZ1bmN0aW9uIG5hbWU6IHRlc3RGdW5jdGlvbgotTGlzdGVuZXJzIGxlbmd0aDogMgog
U2NyaXB0IGV4ZWN1dGlvbiBwYXVzZWQuCiBTY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCiBTZXQg
dGltZXIgZm9yIHRlc3QgZnVuY3Rpb24uCiBSZWNlaXZlZCBEZWJ1Z2dlclBhdXNlZCBldmVudC4K
IEZ1bmN0aW9uIG5hbWU6IHRlc3RGdW5jdGlvbgotTGlzdGVuZXJzIGxlbmd0aDogMgogU2NyaXB0
IGV4ZWN1dGlvbiBwYXVzZWQuCiBTY3JpcHQgZXhlY3V0aW9uIHJlc3VtZWQuCiBEZWJ1Z2dlciB3
YXMgZGlzYWJsZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIv
Y2FsbHN0YWNrLXBsYWNhcmRzLWRpc2NhcmRlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2NhbGxzdGFjay1wbGFjYXJkcy1kaXNjYXJkZWQuaHRtbAppbmRleCAxM2I5NTA0
MDY2OWJhYWRjOTFmOTBkOTQwN2MwNDVmMjA3NmNhNDAxLi40NjNkMTRmYWI5YjA4N2U5MGYzOTNk
MDM4MWQ2YjQxMzBmNWQ3MWNmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvY2FsbHN0YWNrLXBsYWNhcmRzLWRpc2NhcmRlZC5odG1sCisrKyBiL0xheW91dFRlc3Rz
L2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxsc3RhY2stcGxhY2FyZHMtZGlzY2FyZGVkLmh0bWwKQEAg
LTE1LDE4ICsxNSwxNiBAQCB2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgZnVuY3Rpb24g
dGVzdENhbGxTdGFja1BsYWNhcmRzRGlzY2FyZGVkKG5leHQpCiAgICAgICAgIHsKICAgICAgICAg
ICAgIFdlYkluc3BlY3Rvci5kZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLmFkZEV2ZW50TGlzdGVu
ZXIoV2ViSW5zcGVjdG9yLkRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuRXZlbnRzLkRlYnVnZ2Vy
UGF1c2VkLCBkaWRQYXVzZSwgdGhpcyk7Ci0gICAgICAgICAgICB2YXIgcHJldmlvdXNMaXN0ZW5l
ckxlbmd0aCA9IHVuZGVmaW5lZDsKKyAgICAgICAgICAgIHZhciBwcmV2aW91c0NvdW50ID0gdW5k
ZWZpbmVkOwogICAgICAgICAgICAgZnVuY3Rpb24gZGlkUGF1c2UoZXZlbnQpCiAgICAgICAgICAg
ICB7CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlJlY2VpdmVkIERl
YnVnZ2VyUGF1c2VkIGV2ZW50LiIpOwogICAgICAgICAgICAgICAgIHZhciBjYWxsRnJhbWUgPSBl
dmVudC5kYXRhLmNhbGxGcmFtZXNbMF07CiAgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5h
ZGRSZXN1bHQoIkZ1bmN0aW9uIG5hbWU6ICIgKyBjYWxsRnJhbWUuX2NhbGxGcmFtZS5mdW5jdGlv
bk5hbWUpOwotICAgICAgICAgICAgICAgIHZhciByYXdTb3VyY2VDb2RlID0gV2ViSW5zcGVjdG9y
LmRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwuX3NjcmlwdE1hcHBpbmcuX3Jhd1NvdXJjZUNvZGVG
b3JTY3JpcHRJZFtjYWxsRnJhbWUuX2NhbGxGcmFtZS5sb2NhdGlvbi5zY3JpcHRJZF07Ci0gICAg
ICAgICAgICAgICAgdmFyIGxpc3RlbmVycyA9IHJhd1NvdXJjZUNvZGUuX2xpc3RlbmVyc1tXZWJJ
bnNwZWN0b3IuUmF3U291cmNlQ29kZS5FdmVudHMuVUlTb3VyY2VDb2RlTGlzdENoYW5nZWRdOwot
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVzdWx0KCJMaXN0ZW5lcnMgbGVuZ3Ro
OiAiICsgbGlzdGVuZXJzLmxlbmd0aCk7Ci0gICAgICAgICAgICAgICAgaWYgKHByZXZpb3VzTGlz
dGVuZXJMZW5ndGggIT09IHVuZGVmaW5lZCAmJiBsaXN0ZW5lcnMubGVuZ3RoICE9PSBwcmV2aW91
c0xpc3RlbmVyTGVuZ3RoKQotICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJl
c3VsdCgiRkFJTEVEOiBSYXdTb3VyY2VDb2RlIGxpc3RlbmVycyBjb3VudCBoYXMgY2hhbmdlZCEi
KTsKLSAgICAgICAgICAgICAgICBwcmV2aW91c0xpc3RlbmVyTGVuZ3RoID0gbGlzdGVuZXJzLmxl
bmd0aDsKKyAgICAgICAgICAgICAgICB2YXIgY291bnQgPSBsaXZlTG9jYXRpb25zQ291bnQoKTsK
KyAgICAgICAgICAgICAgICBpZiAocHJldmlvdXNDb3VudCAhPT0gdW5kZWZpbmVkICYmIGNvdW50
ICE9PSBwcmV2aW91c0NvdW50KQorICAgICAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFk
ZFJlc3VsdCgiRkFJTEVEOiBMaXZlIGxvY2F0aW9ucyBjb3VudCBoYXMgY2hhbmdlZCEiKTsKKyAg
ICAgICAgICAgICAgICBwcmV2aW91c0NvdW50ID0gY291bnQ7CiAgICAgICAgICAgICB9CiAKICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3Quc2hvd1NjcmlwdFNvdXJjZSgiY2FsbHN0YWNrLXBsYWNh
cmRzLWRpc2NhcmRlZC5odG1sIiwgZGlkU2hvd1NjcmlwdFNvdXJjZSk7CkBAIC01Myw2ICs1MSwx
NSBAQCB2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgICAgIH0KICAgICAgICAgfSwKICAg
ICBdKTsKKworICAgIGZ1bmN0aW9uIGxpdmVMb2NhdGlvbnNDb3VudCgpCisgICAgeworICAgICAg
ICB2YXIgbG9jYXRpb25zID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyUHJlc2VudGF0aW9uTW9kZWwu
X3NjcmlwdE1hcHBpbmcuX2xpdmVMb2NhdGlvbnNGb3JTY3JpcHRJZDsKKyAgICAgICAgdmFyIGNv
dW50ID0gMDsKKyAgICAgICAgZm9yIChpZCBpbiBsb2NhdGlvbnMpCisgICAgICAgICAgICBjb3Vu
dCArPSBsb2NhdGlvbnNbaWRdLmxlbmd0aDsKKyAgICAgICAgcmV0dXJuIGNvdW50OworICAgIH0K
IH0KIAogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdn
ZXIvbGlua2lmaWVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVidWdnZXIvbGlua2lm
aWVyLmh0bWwKaW5kZXggNDBmMDA2N2E1ZGE0NWM3OGFjNzljNTZlNWI1MDBmYzE5NWExMTg1MC4u
YjEwMzhhMDA2NWVmOTVjMzk2MjdjZDYyNzhiMzhhYzJhMWM5YWQxZSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW5zcGVjdG9yL2RlYnVnZ2VyL2xpbmtpZmllci5odG1sCisrKyBiL0xheW91dFRl
c3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saW5raWZpZXIuaHRtbApAQCAtMTAsNyArMTAsNiBAQCBm
dW5jdGlvbiB0ZXN0KCkKIAogICAgIHZhciBsaW5raWZpZXI7CiAgICAgdmFyIGxpbms7Ci0gICAg
dmFyIHJhd1NvdXJjZUNvZGU7CiAKICAgICBmdW5jdGlvbiB3YWl0Rm9yU2NyaXB0cygpCiAgICAg
ewpAQCAtMzQsMTEgKzMzLDEwIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIGZ1bmN0aW9uIGRlYnVn
Z2VyVGVzdCgpCiAgICAgewogICAgICAgICBsaW5raWZpZXIgPSBXZWJJbnNwZWN0b3IuZGVidWdn
ZXJQcmVzZW50YXRpb25Nb2RlbC5jcmVhdGVMaW5raWZpZXIoKTsKLSAgICAgICAgcmF3U291cmNl
Q29kZSA9IFdlYkluc3BlY3Rvci5kZWJ1Z2dlclByZXNlbnRhdGlvbk1vZGVsLl9zY3JpcHRNYXBw
aW5nLl9yYXdTb3VyY2VDb2RlRm9yVVJMW1dlYkluc3BlY3Rvci5pbnNwZWN0ZWRQYWdlVVJMXTsK
IAotICAgICAgICB2YXIgY291bnQxID0gbGlzdGVuZXJzQ291bnQocmF3U291cmNlQ29kZSk7Cisg
ICAgICAgIHZhciBjb3VudDEgPSBsaXZlTG9jYXRpb25zQ291bnQoKTsKICAgICAgICAgbGluayA9
IGxpbmtpZmllci5saW5raWZ5TG9jYXRpb24oV2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2VVUkws
IDIwLCAwLCAiZHVtbXktY2xhc3MiKTsKLSAgICAgICAgdmFyIGNvdW50MiA9IGxpc3RlbmVyc0Nv
dW50KHJhd1NvdXJjZUNvZGUpOworICAgICAgICB2YXIgY291bnQyID0gbGl2ZUxvY2F0aW9uc0Nv
dW50KCk7CiAKICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoImxpc3RlbmVycyBhZGRl
ZCBvbiByYXcgc291cmNlIGNvZGU6ICIgKyAoY291bnQyIC0gY291bnQxKSk7CiAgICAgICAgIElu
c3BlY3RvclRlc3QuYWRkUmVzdWx0KCJvcmlnaW5hbCBsb2NhdGlvbjogIiArIGxpbmsudGV4dENv
bnRlbnQpOwpAQCAtNTgsMjMgKzU2LDIxIEBAIGZ1bmN0aW9uIHRlc3QoKQogICAgIHsKICAgICAg
ICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoInJldmVydGVkIGxvY2F0aW9uOiAiICsgbGluay50
ZXh0Q29udGVudCk7CiAKLSAgICAgICAgdmFyIGNvdW50MSA9IGxpc3RlbmVyc0NvdW50KHJhd1Nv
dXJjZUNvZGUpOworICAgICAgICB2YXIgY291bnQxID0gbGl2ZUxvY2F0aW9uc0NvdW50KCk7CiAg
ICAgICAgIGxpbmtpZmllci5yZXNldCgpOwotICAgICAgICB2YXIgY291bnQyID0gbGlzdGVuZXJz
Q291bnQocmF3U291cmNlQ29kZSk7CisgICAgICAgIHZhciBjb3VudDIgPSBsaXZlTG9jYXRpb25z
Q291bnQoKTsKIAogICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgibGlzdGVuZXJzIHJl
bW92ZWQgZnJvbSByYXcgc291cmNlIGNvZGU6ICIgKyAoY291bnQxIC0gY291bnQyKSk7CiAKICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZURlYnVnZ2VyVGVzdCgpOwogICAgIH0KIAotICAg
IGZ1bmN0aW9uIGxpc3RlbmVyc0NvdW50KG9iamVjdCkKKyAgICBmdW5jdGlvbiBsaXZlTG9jYXRp
b25zQ291bnQoKQogICAgIHsKLSAgICAgICAgdmFyIGxpc3RlbmVycyA9IG9iamVjdC5fbGlzdGVu
ZXJzOworICAgICAgICB2YXIgbG9jYXRpb25zID0gV2ViSW5zcGVjdG9yLmRlYnVnZ2VyUHJlc2Vu
dGF0aW9uTW9kZWwuX3NjcmlwdE1hcHBpbmcuX2xpdmVMb2NhdGlvbnNGb3JTY3JpcHRJZDsKICAg
ICAgICAgdmFyIGNvdW50ID0gMDsKLSAgICAgICAgZm9yICh2YXIgZXZlbnRUeXBlcyBpbiBsaXN0
ZW5lcnMpIHsKLSAgICAgICAgICAgIHZhciBsaXN0ZW5lcnNBcnJheSA9IGxpc3RlbmVyc1tldmVu
dFR5cGVzXTsKLSAgICAgICAgICAgIGNvdW50ICs9IGxpc3RlbmVyc0FycmF5Lmxlbmd0aDsKLSAg
ICAgICAgfQorICAgICAgICBmb3IgKGlkIGluIGxvY2F0aW9ucykKKyAgICAgICAgICAgIGNvdW50
ICs9IGxvY2F0aW9uc1tpZF0ubGVuZ3RoOwogICAgICAgICByZXR1cm4gY291bnQ7CiAgICAgfQog
fQo=
</data>
<flag name="review"
          id="134458"
          type_id="1"
          status="+"
          setter="vsevik"
    />
          </attachment>
      

    </bug>

</bugzilla>