<?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>50017</bug_id>
          
          <creation_ts>2010-11-24 04:51:34 -0800</creation_ts>
          <short_desc>Web Inspector: set DOM breakpoints by path</short_desc>
          <delta_ts>2010-11-25 08:11:58 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          <dependson>50084</dependson>
          
          <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>313235</commentid>
    <comment_count>0</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-11-24 04:51:34 -0800</bug_when>
    <thetext>Web Inspector: set DOM breakpoints by path</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313236</commentid>
    <comment_count>1</comment_count>
      <attachid>74748</attachid>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-11-24 04:52:17 -0800</bug_when>
    <thetext>Created attachment 74748
Patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313245</commentid>
    <comment_count>2</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-11-24 05:19:55 -0800</bug_when>
    <thetext>Currently, restoring breakpoint requires additional round-trip to convert path to nodeId. As a result, breakpoint won&apos;t hit on early event after page reload.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313284</commentid>
    <comment_count>3</comment_count>
      <attachid>74748</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2010-11-24 07:22:32 -0800</bug_when>
    <thetext>Comment on attachment 74748
Patch.

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

&gt; WebCore/ChangeLog:5
&gt; +        Web Inspector: set DOM breakpoints by path

Please provide more detailed description on the purpose of this change.

&gt; WebCore/inspector/InspectorDOMAgent.cpp:787
&gt; +    m_idToBreakpoint.set(breakpointId, breakpoint);

I&apos;d still rather use some compound id string instead of this two way mapping or even better use dedicated methods for set/remove/hit breakpoint for different breakpoint types. It may be more code but the design will be clearer than these mappings from surrogate ids to breakpoints and back.

&gt; WebCore/inspector/front-end/BreakpointManager.js:475
&gt; +        if (this._nodeId) {

Prefer early return.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>313724</commentid>
    <comment_count>4</comment_count>
    <who name="Pavel Podivilov">podivilov</who>
    <bug_when>2010-11-25 05:57:12 -0800</bug_when>
    <thetext>Committed r72727: &lt;http://trac.webkit.org/changeset/72727&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>74748</attachid>
            <date>2010-11-24 04:52:17 -0800</date>
            <delta_ts>2010-11-24 07:22:32 -0800</delta_ts>
            <desc>Patch.</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>22979</size>
            <attacher name="Pavel Podivilov">podivilov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OWE5YWNkNS4uOGUyZDYwNCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvV2Vi
Q29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0OCBAQAorMjAxMC0xMS0yNCAgUGF2ZWwgUG9kaXZp
bG92ICA8cG9kaXZpbG92QGNocm9taXVtLm9yZz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBzZXQgRE9NIGJyZWFrcG9pbnRz
IGJ5IHBhdGgKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTUwMDE3CisKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpzZXROYXRpdmVCcmVha3BvaW50
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6Okluc3BlY3RvckRPTUFnZW50KToKKyAgICAgICAg
KFdlYkNvcmU6Okluc3BlY3RvckRPTUFnZW50OjpkaXNjYXJkQmluZGluZ3MpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnNldERPTUJyZWFrcG9pbnQpOgorICAgICAgICAo
V2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnJlbW92ZURPTUJyZWFrcG9pbnQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OmRlc2NyaXB0aW9uRm9yRE9NRXZlbnQpOgor
ICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yRE9NQWdlbnQ6OnJlbW92ZUJyZWFrcG9pbnRzRm9y
Tm9kZSk6CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50Lmg6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9CcmVha3BvaW50TWFuYWdlci5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90b3R5cGUucmVzZXQpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZS5jcmVhdGVET01CcmVha3Bv
aW50KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90b3R5cGUu
X3VwZGF0ZU5hdGl2ZUJyZWFrcG9pbnRzSW5TZXR0aW5ncyk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuQnJlYWtwb2ludE1hbmFnZXIucHJvdG90eXBlLnJlc3RvcmVCcmVha3BvaW50cyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
RE9NQnJlYWtwb2ludC5wcm90b3R5cGUuX3NldE5vZGVJZCk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuRE9NQnJlYWtwb2ludC5wcm90b3R5cGUucG9wdWxhdGVMYWJlbEVsZW1lbnQpOgorICAgICAg
ICAoV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJCcmVha3BvaW50KToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5YSFJCcmVha3BvaW50KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0Jy
ZWFrcG9pbnRzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2lu
dHNTaWRlYmFyUGFuZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuQnJlYWtwb2ludHNTaWRlYmFy
UGFuZS5wcm90b3R5cGUuX3Jlc2V0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FdmVudExpc3Rl
bmVyQnJlYWtwb2ludHNTaWRlYmFyUGFuZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXZlbnRM
aXN0ZW5lckJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlLl9yZXNldCk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5ET01BZ2VudC5wcm90b3R5cGUuX3NldERvY3VtZW50KToKKyAgICAgICAgKiBpbnNwZWN0b3Iv
ZnJvbnQtZW5kL0VsZW1lbnRzUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRWxlbWVu
dHNQYW5lbC5wcm90b3R5cGUucmVzZXQpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQv
RWxlbWVudHNUcmVlT3V0bGluZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FbGVtZW50c1Ry
ZWVFbGVtZW50LnByb3RvdHlwZS5fcG9wdWxhdGVUYWdDb250ZXh0TWVudS5oYW5kbGVyRnVuY3Rp
b24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVsZW1lbnQucHJvdG90eXBl
Ll9wb3B1bGF0ZVRhZ0NvbnRleHRNZW51KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1NjcmlwdHNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHRzUGFuZWwucHJv
dG90eXBlLnJlc2V0KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5yZXNldCk6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
ZGlkQ29tbWl0TG9hZCk6CisKIDIwMTAtMTEtMjIgIEFiaGlzaGVrIEFyeWEgIDxpbmZlcm5vQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBBZGFtIEJhcnRoLgpkaWZmIC0tZ2l0
IGEvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAgYi9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAppbmRleCBjNDc2OTlmLi42NzdlY2Y0IDEw
MDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAorKysg
Yi9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcApAQCAtMTQyNiwxNSAr
MTQyNiwxMyBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6OnNldE5hdGl2ZUJyZWFrcG9pbnQo
UGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJyZWFrcAogICAgIH0gZWxzZSBpZiAodHlwZSA9
PSBkb21OYXRpdmVCcmVha3BvaW50VHlwZSkgewogICAgICAgICBpZiAoIW1fZG9tQWdlbnQpCiAg
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIGRvdWJsZSBub2RlSWROdW1iZXI7Ci0gICAgICAg
IGlmICghY29uZGl0aW9uLT5nZXROdW1iZXIoIm5vZGVJZCIsICZub2RlSWROdW1iZXIpKQorICAg
ICAgICBTdHJpbmcgcGF0aDsKKyAgICAgICAgaWYgKCFjb25kaXRpb24tPmdldFN0cmluZygicGF0
aCIsICZwYXRoKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgZG91YmxlIGRvbUJyZWFr
cG9pbnRUeXBlTnVtYmVyOwotICAgICAgICBpZiAoIWNvbmRpdGlvbi0+Z2V0TnVtYmVyKCJ0eXBl
IiwgJmRvbUJyZWFrcG9pbnRUeXBlTnVtYmVyKSkKKyAgICAgICAgZG91YmxlIGRvbUJyZWFrcG9p
bnRUeXBlOworICAgICAgICBpZiAoIWNvbmRpdGlvbi0+Z2V0TnVtYmVyKCJ0eXBlIiwgJmRvbUJy
ZWFrcG9pbnRUeXBlKSkKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgbG9uZyBub2RlSWQg
PSAobG9uZykgbm9kZUlkTnVtYmVyOwotICAgICAgICBsb25nIGRvbUJyZWFrcG9pbnRUeXBlID0g
KGxvbmcpIGRvbUJyZWFrcG9pbnRUeXBlTnVtYmVyOwotICAgICAgICAqYnJlYWtwb2ludElkID0g
bV9kb21BZ2VudC0+c2V0RE9NQnJlYWtwb2ludChub2RlSWQsIGRvbUJyZWFrcG9pbnRUeXBlKTsK
KyAgICAgICAgKmJyZWFrcG9pbnRJZCA9IG1fZG9tQWdlbnQtPnNldERPTUJyZWFrcG9pbnQocGF0
aCwgc3RhdGljX2Nhc3Q8bG9uZz4oZG9tQnJlYWtwb2ludFR5cGUpKTsKICAgICAgICAgaWYgKCFi
cmVha3BvaW50SWQtPmlzRW1wdHkoKSkKICAgICAgICAgICAgIG1fbmF0aXZlQnJlYWtwb2ludHMu
c2V0KCpicmVha3BvaW50SWQsIHR5cGUpOwogICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmNwcCBiL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rv
ckRPTUFnZW50LmNwcAppbmRleCA4OTRlNGIyLi40MWViOTBhIDEwMDY0NAotLS0gYS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JET01BZ2VudC5jcHAKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRE9NQWdlbnQuY3BwCkBAIC0yMjMsNiArMjIzLDcgQEAgSW5zcGVjdG9yRE9NQWdl
bnQ6Okluc3BlY3RvckRPTUFnZW50KEluc3BlY3RvckNTU1N0b3JlKiBjc3NTdG9yZSwgSW5zcGVj
dG9yRnJvbnQKICAgICAsIG1fZG9tTGlzdGVuZXIoMCkKICAgICAsIG1fbGFzdE5vZGVJZCgxKQog
ICAgICwgbV9tYXRjaEpvYnNUaW1lcih0aGlzLCAmSW5zcGVjdG9yRE9NQWdlbnQ6Om9uTWF0Y2hK
b2JzVGltZXIpCisgICAgLCBtX2xhc3RCcmVha3BvaW50SWQoMCkKIHsKIH0KIApAQCAtMzk4LDYg
KzM5OSw4IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6OmRpc2NhcmRCaW5kaW5ncygpCiAgICAg
bV9jaGlsZHJlblJlcXVlc3RlZC5jbGVhcigpOwogICAgIG1faW5zcGVjdGVkTm9kZXMuY2xlYXIo
KTsKICAgICBtX2JyZWFrcG9pbnRzLmNsZWFyKCk7CisgICAgbV9pZFRvQnJlYWtwb2ludC5jbGVh
cigpOworICAgIG1fYnJlYWtwb2ludFRvSWQuY2xlYXIoKTsKIH0KIAogTm9kZSogSW5zcGVjdG9y
RE9NQWdlbnQ6Om5vZGVGb3JJZChsb25nIGlkKQpAQCAtNzYyLDM2ICs3NjUsNDAgQEAgdm9pZCBJ
bnNwZWN0b3JET01BZ2VudDo6c2VhcmNoQ2FuY2VsZWQoKQogICAgIG1fc2VhcmNoUmVzdWx0cy5j
bGVhcigpOwogfQogCi1TdHJpbmcgSW5zcGVjdG9yRE9NQWdlbnQ6OnNldERPTUJyZWFrcG9pbnQo
bG9uZyBub2RlSWQsIGxvbmcgdHlwZSkKK1N0cmluZyBJbnNwZWN0b3JET01BZ2VudDo6c2V0RE9N
QnJlYWtwb2ludChjb25zdCBTdHJpbmcmIHBhdGgsIGxvbmcgdHlwZSkKIHsKLSAgICBOb2RlKiBu
b2RlID0gbm9kZUZvcklkKG5vZGVJZCk7CisgICAgTm9kZSogbm9kZSA9IG5vZGVGb3JQYXRoKHBh
dGgpOwogICAgIGlmICghbm9kZSkKICAgICAgICAgcmV0dXJuICIiOwogCi0gICAgU3RyaW5nIGJy
ZWFrcG9pbnRJZCA9IGNyZWF0ZUJyZWFrcG9pbnRJZChub2RlSWQsIHR5cGUpOwotICAgIGlmICht
X2lkVG9CcmVha3BvaW50LmNvbnRhaW5zKGJyZWFrcG9pbnRJZCkpCisgICAgdWludDMyX3Qgcm9v
dEJpdCA9IDEgPDwgdHlwZTsKKyAgICB1aW50MzJfdCBtYXNrID0gbV9icmVha3BvaW50cy5nZXQo
bm9kZSk7CisgICAgaWYgKG1hc2sgJiByb290Qml0KQogICAgICAgICByZXR1cm4gIiI7CiAKLSAg
ICBtX2lkVG9CcmVha3BvaW50LnNldChicmVha3BvaW50SWQsIHN0ZDo6bWFrZV9wYWlyKG5vZGVJ
ZCwgdHlwZSkpOwotCi0gICAgdWludDMyX3Qgcm9vdEJpdCA9IDEgPDwgdHlwZTsKLSAgICBtX2Jy
ZWFrcG9pbnRzLnNldChub2RlLCBtX2JyZWFrcG9pbnRzLmdldChub2RlKSB8IHJvb3RCaXQpOwor
ICAgIG1fYnJlYWtwb2ludHMuc2V0KG5vZGUsIG1hc2sgfCByb290Qml0KTsKICAgICBpZiAocm9v
dEJpdCAmIGluaGVyaXRhYmxlRE9NQnJlYWtwb2ludFR5cGVzTWFzaykgewogICAgICAgICBmb3Ig
KE5vZGUqIGNoaWxkID0gaW5uZXJGaXJzdENoaWxkKG5vZGUpOyBjaGlsZDsgY2hpbGQgPSBpbm5l
ck5leHRTaWJsaW5nKGNoaWxkKSkKICAgICAgICAgICAgIHVwZGF0ZVN1YnRyZWVCcmVha3BvaW50
cyhjaGlsZCwgcm9vdEJpdCwgdHJ1ZSk7CiAgICAgfQogCisgICAgU3RyaW5nIGJyZWFrcG9pbnRJ
ZCA9IG1ha2VTdHJpbmcoImRvbToiLCBTdHJpbmc6Om51bWJlcigrK21fbGFzdEJyZWFrcG9pbnRJ
ZCkpOworICAgIEJyZWFrcG9pbnQgYnJlYWtwb2ludChub2RlLCB0eXBlKTsKKyAgICBtX2lkVG9C
cmVha3BvaW50LnNldChicmVha3BvaW50SWQsIGJyZWFrcG9pbnQpOworICAgIG1fYnJlYWtwb2lu
dFRvSWQuc2V0KGJyZWFrcG9pbnQsIGJyZWFrcG9pbnRJZCk7CiAgICAgcmV0dXJuIGJyZWFrcG9p
bnRJZDsKIH0KIAogdm9pZCBJbnNwZWN0b3JET01BZ2VudDo6cmVtb3ZlRE9NQnJlYWtwb2ludChj
b25zdCBTdHJpbmcmIGJyZWFrcG9pbnRJZCkKIHsKLSAgICBCcmVha3BvaW50IGJyZWFrcG9pbnQg
PSBtX2lkVG9CcmVha3BvaW50LnRha2UoYnJlYWtwb2ludElkKTsKLQotICAgIE5vZGUqIG5vZGUg
PSBub2RlRm9ySWQoYnJlYWtwb2ludC5maXJzdCk7Ci0gICAgaWYgKCFub2RlKQorICAgIEhhc2hN
YXA8U3RyaW5nLCBCcmVha3BvaW50Pjo6aXRlcmF0b3IgaXQgPSBtX2lkVG9CcmVha3BvaW50LmZp
bmQoYnJlYWtwb2ludElkKTsKKyAgICBpZiAoaXQgPT0gbV9pZFRvQnJlYWtwb2ludC5lbmQoKSkK
ICAgICAgICAgcmV0dXJuOworICAgIEJyZWFrcG9pbnQgYnJlYWtwb2ludCA9IGl0LT5zZWNvbmQ7
CisgICAgbV9pZFRvQnJlYWtwb2ludC5yZW1vdmUoaXQpOworICAgIG1fYnJlYWtwb2ludFRvSWQu
cmVtb3ZlKGJyZWFrcG9pbnQpOwogCisgICAgTm9kZSogbm9kZSA9IGJyZWFrcG9pbnQuZmlyc3Q7
CiAgICAgdWludDMyX3Qgcm9vdEJpdCA9IDEgPDwgYnJlYWtwb2ludC5zZWNvbmQ7CiAgICAgdWlu
dDMyX3QgbWFzayA9IG1fYnJlYWtwb2ludHMuZ2V0KG5vZGUpICYgfnJvb3RCaXQ7CiAgICAgaWYg
KG1hc2spCkBAIC04NjIsOSArODY5LDggQEAgUGFzc1JlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gSW5z
cGVjdG9yRE9NQWdlbnQ6OmRlc2NyaXB0aW9uRm9yRE9NRXZlbnQoTm9kZSogdGFyZ2UKICAgICAg
ICAgICAgIGRlc2NyaXB0aW9uLT5zZXRCb29sZWFuKCJpbnNlcnRpb24iLCBpbnNlcnRpb24pOwog
ICAgIH0KIAotICAgIGxvbmcgYnJlYWtwb2ludE93bmVyTm9kZUlkID0gbV9kb2N1bWVudE5vZGVU
b0lkTWFwLmdldChicmVha3BvaW50T3duZXIpOwotICAgIEFTU0VSVChicmVha3BvaW50T3duZXJO
b2RlSWQpOwotICAgIGRlc2NyaXB0aW9uLT5zZXRTdHJpbmcoImJyZWFrcG9pbnRJZCIsIGNyZWF0
ZUJyZWFrcG9pbnRJZChicmVha3BvaW50T3duZXJOb2RlSWQsIGJyZWFrcG9pbnRUeXBlKSk7Cisg
ICAgU3RyaW5nIGJyZWFrcG9pbnRJZCA9IG1fYnJlYWtwb2ludFRvSWQuZ2V0KEJyZWFrcG9pbnQo
YnJlYWtwb2ludE93bmVyLCBicmVha3BvaW50VHlwZSkpOworICAgIGRlc2NyaXB0aW9uLT5zZXRT
dHJpbmcoImJyZWFrcG9pbnRJZCIsIGJyZWFrcG9pbnRJZCk7CiAKICAgICByZXR1cm4gZGVzY3Jp
cHRpb247CiB9CkBAIC0xMTg3LDIwICsxMTkzLDE1IEBAIHZvaWQgSW5zcGVjdG9yRE9NQWdlbnQ6
OnJlbW92ZUJyZWFrcG9pbnRzRm9yTm9kZShOb2RlKiBub2RlKQogICAgIHVpbnQzMl90IG1hc2sg
PSBtX2JyZWFrcG9pbnRzLnRha2Uobm9kZSk7CiAgICAgaWYgKCFtYXNrKQogICAgICAgICByZXR1
cm47Ci0gICAgbG9uZyBub2RlSWQgPSBtX2RvY3VtZW50Tm9kZVRvSWRNYXAuZ2V0KG5vZGUpOwot
ICAgIGlmICghbm9kZUlkKQotICAgICAgICByZXR1cm47CiAgICAgZm9yIChpbnQgdHlwZSA9IDA7
IHR5cGUgPCBET01CcmVha3BvaW50VHlwZXNDb3VudDsgKyt0eXBlKSB7Ci0gICAgICAgIGlmICht
YXNrICYmICgxIDw8IHR5cGUpKQotICAgICAgICAgICAgbV9pZFRvQnJlYWtwb2ludC5yZW1vdmUo
Y3JlYXRlQnJlYWtwb2ludElkKG5vZGVJZCwgdHlwZSkpOworICAgICAgICBpZiAobWFzayAmICgx
IDw8IHR5cGUpKSB7CisgICAgICAgICAgICBCcmVha3BvaW50IGJyZWFrcG9pbnQobm9kZSwgdHlw
ZSk7CisgICAgICAgICAgICBTdHJpbmcgYnJlYWtwb2ludElkID0gbV9icmVha3BvaW50VG9JZC50
YWtlKGJyZWFrcG9pbnQpOworICAgICAgICAgICAgbV9pZFRvQnJlYWtwb2ludC5yZW1vdmUoYnJl
YWtwb2ludElkKTsKKyAgICAgICAgfQogICAgIH0KIH0KIAotU3RyaW5nIEluc3BlY3RvckRPTUFn
ZW50OjpjcmVhdGVCcmVha3BvaW50SWQobG9uZyBub2RlSWQsIGxvbmcgdHlwZSkKLXsKLSAgICBy
ZXR1cm4gbWFrZVN0cmluZygiZG9tOiIsIFN0cmluZzo6bnVtYmVyKG5vZGVJZCksICc6JywgU3Ry
aW5nOjpudW1iZXIodHlwZSkpOwotfQotCiB2b2lkIEluc3BlY3RvckRPTUFnZW50OjpnZXRTdHls
ZXMobG9uZyBub2RlSWQsIGJvb2wgYXV0aG9yT25seSwgUmVmUHRyPEluc3BlY3RvclZhbHVlPiog
c3R5bGVzKQogewogICAgIE5vZGUqIG5vZGUgPSBub2RlRm9ySWQobm9kZUlkKTsKZGlmZiAtLWdp
dCBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmggYi9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JET01BZ2VudC5oCmluZGV4IDg0Y2EwMjcuLjY2NTU0NzYgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckRPTUFnZW50LmgKKysrIGIvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yRE9NQWdlbnQuaApAQCAtMTU4LDcgKzE1OCw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogICAgICAgICBTdHJpbmcgZG9jdW1lbnRVUkxTdHJpbmcoRG9jdW1lbnQq
IGRvY3VtZW50KSBjb25zdDsKIAotICAgICAgICBTdHJpbmcgc2V0RE9NQnJlYWtwb2ludChsb25n
IG5vZGVJZCwgbG9uZyB0eXBlKTsKKyAgICAgICAgU3RyaW5nIHNldERPTUJyZWFrcG9pbnQoY29u
c3QgU3RyaW5nJiBwYXRoLCBsb25nIHR5cGUpOwogICAgICAgICB2b2lkIHJlbW92ZURPTUJyZWFr
cG9pbnQoY29uc3QgU3RyaW5nJiBicmVha3BvaW50SWQpOwogCiAgICAgcHJpdmF0ZToKQEAgLTE3
OCw3ICsxNzgsNiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIHZvaWQgdXBkYXRlU3Vi
dHJlZUJyZWFrcG9pbnRzKE5vZGUqIHJvb3QsIHVpbnQzMl90IHJvb3RNYXNrLCBib29sIHZhbHVl
KTsKICAgICAgICAgdm9pZCByZW1vdmVCcmVha3BvaW50c0Zvck5vZGUoTm9kZSogbm9kZSk7CiAg
ICAgICAgIFBhc3NSZWZQdHI8SW5zcGVjdG9yVmFsdWU+IGRlc2NyaXB0aW9uRm9yRE9NRXZlbnQo
Tm9kZSogdGFyZ2V0LCBsb25nIGJyZWFrcG9pbnRUeXBlLCBib29sIGluc2VydGlvbik7Ci0gICAg
ICAgIFN0cmluZyBjcmVhdGVCcmVha3BvaW50SWQobG9uZyBub2RlSWQsIGxvbmcgdHlwZSk7CiAK
ICAgICAgICAgUGFzc1JlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IGJ1aWxkT2JqZWN0Rm9yQXR0cmli
dXRlU3R5bGVzKEVsZW1lbnQqIGVsZW1lbnQpOwogICAgICAgICBQYXNzUmVmUHRyPEluc3BlY3Rv
ckFycmF5PiBidWlsZEFycmF5Rm9yQ1NTUnVsZXMoRG9jdW1lbnQqIG93bmVyRG9jdW1lbnQsIENT
U1J1bGVMaXN0Kik7CkBAIC0yMzMsOCArMjMyLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAg
ICAgICAgSGFzaFNldDxSZWZQdHI8Tm9kZT4gPiBtX3NlYXJjaFJlc3VsdHM7CiAgICAgICAgIFZl
Y3Rvcjxsb25nPiBtX2luc3BlY3RlZE5vZGVzOwogICAgICAgICBIYXNoTWFwPE5vZGUqLCB1aW50
MzJfdD4gbV9icmVha3BvaW50czsKLSAgICAgICAgdHlwZWRlZiBwYWlyPGxvbmcsIGxvbmc+IEJy
ZWFrcG9pbnQ7CisgICAgICAgIHR5cGVkZWYgcGFpcjxOb2RlKiwgbG9uZz4gQnJlYWtwb2ludDsK
ICAgICAgICAgSGFzaE1hcDxTdHJpbmcsIEJyZWFrcG9pbnQ+IG1faWRUb0JyZWFrcG9pbnQ7Cisg
ICAgICAgIEhhc2hNYXA8QnJlYWtwb2ludCwgU3RyaW5nPiBtX2JyZWFrcG9pbnRUb0lkOworICAg
ICAgICB1bnNpZ25lZCBpbnQgbV9sYXN0QnJlYWtwb2ludElkOwogICAgIH07CiAKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2Vy
LmpzIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRNYW5hZ2VyLmpzCmlu
ZGV4IDNkNTEwOTIuLmE4ZTM5YWYgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9CcmVha3BvaW50TWFuYWdlci5qcworKysgYi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvQnJlYWtwb2ludE1hbmFnZXIuanMKQEAgLTg4LDYgKzg4LDcgQEAgV2ViSW5zcGVjdG9yLkJy
ZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fYnJlYWtwb2ludHMg
PSB7fTsKICAgICAgICAgZGVsZXRlIHRoaXMuX29uZVRpbWVCcmVha3BvaW50OwogICAgICAgICB0
aGlzLl9uYXRpdmVCcmVha3BvaW50cyA9IHt9OworICAgICAgICB0aGlzLmRpc3BhdGNoRXZlbnRU
b0xpc3RlbmVycygicmVzZXQiKTsKICAgICB9LAogCiAgICAgX3NldEJyZWFrcG9pbnQ6IGZ1bmN0
aW9uKHNvdXJjZUlELCB1cmwsIGxpbmUsIGVuYWJsZWQsIGNvbmRpdGlvbikKQEAgLTEyOCwxMyAr
MTI5LDEzIEBAIFdlYkluc3BlY3Rvci5CcmVha3BvaW50TWFuYWdlci5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIEluc3BlY3RvckJhY2tlbmQuc2V0QnJlYWtwb2ludChicmVha3BvaW50LnNvdXJjZUlE
LCBicmVha3BvaW50LmxpbmUsIGJyZWFrcG9pbnQuZW5hYmxlZCwgYnJlYWtwb2ludC5jb25kaXRp
b24sIGRpZFNldEJyZWFrcG9pbnQuYmluZCh0aGlzKSk7CiAgICAgfSwKIAotICAgIGNyZWF0ZURP
TUJyZWFrcG9pbnQ6IGZ1bmN0aW9uKG5vZGVJZCwgZG9tRXZlbnRUeXBlLCBkaXNhYmxlZCkKKyAg
ICBjcmVhdGVET01CcmVha3BvaW50OiBmdW5jdGlvbihwYXRoLCBkb21FdmVudFR5cGUsIGRpc2Fi
bGVkKQogICAgIHsKLSAgICAgICAgdmFyIGZyb250ZW5kSWQgPSAiZG9tOiIgKyBub2RlSWQgKyAi
OiIgKyBkb21FdmVudFR5cGU7CisgICAgICAgIHZhciBmcm9udGVuZElkID0gImRvbToiICsgcGF0
aCArICI6IiArIGRvbUV2ZW50VHlwZTsKICAgICAgICAgaWYgKGZyb250ZW5kSWQgaW4gdGhpcy5f
bmF0aXZlQnJlYWtwb2ludHMpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgdmFyIGJy
ZWFrcG9pbnQgPSBuZXcgV2ViSW5zcGVjdG9yLkRPTUJyZWFrcG9pbnQodGhpcywgZnJvbnRlbmRJ
ZCwgbm9kZUlkLCBkb21FdmVudFR5cGUpOworICAgICAgICB2YXIgYnJlYWtwb2ludCA9IG5ldyBX
ZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludCh0aGlzLCBmcm9udGVuZElkLCBwYXRoLCBkb21FdmVu
dFR5cGUpOwogICAgICAgICB0aGlzLl9uYXRpdmVCcmVha3BvaW50c1tmcm9udGVuZElkXSA9IGJy
ZWFrcG9pbnQ7CiAgICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudFRvTGlzdGVuZXJzKCJkb20tYnJl
YWtwb2ludC1hZGRlZCIsIGJyZWFrcG9pbnQpOwogICAgICAgICBicmVha3BvaW50LmVuYWJsZWQg
PSAhZGlzYWJsZWQ7CkBAIC0yMjIsOCArMjIzLDcgQEAgV2ViSW5zcGVjdG9yLkJyZWFrcG9pbnRN
YW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICAgICAgdmFyIHBlcnNpc3RlbnRCcmVha3BvaW50cyA9
IFtdOwogICAgICAgICBmb3IgKHZhciBpZCBpbiB0aGlzLl9uYXRpdmVCcmVha3BvaW50cykgewog
ICAgICAgICAgICAgdmFyIGJyZWFrcG9pbnQgPSB0aGlzLl9uYXRpdmVCcmVha3BvaW50c1tpZF07
Ci0gICAgICAgICAgICBpZiAoYnJlYWtwb2ludC5fcGVyc2lzdGVudENvbmRpdGlvbikKLSAgICAg
ICAgICAgICAgICBwZXJzaXN0ZW50QnJlYWtwb2ludHMucHVzaCh7IHR5cGU6IGJyZWFrcG9pbnQu
X3R5cGUsIGVuYWJsZWQ6IGJyZWFrcG9pbnQuZW5hYmxlZCwgY29uZGl0aW9uOiBicmVha3BvaW50
Ll9wZXJzaXN0ZW50Q29uZGl0aW9uIH0pOworICAgICAgICAgICAgcGVyc2lzdGVudEJyZWFrcG9p
bnRzLnB1c2goeyB0eXBlOiBicmVha3BvaW50Ll90eXBlLCBlbmFibGVkOiBicmVha3BvaW50LmVu
YWJsZWQsIGNvbmRpdGlvbjogYnJlYWtwb2ludC5fY29uZGl0aW9uIH0pOwogICAgICAgICB9CiAg
ICAgICAgIFdlYkluc3BlY3Rvci5zZXR0aW5ncy5uYXRpdmVCcmVha3BvaW50cyA9IHBlcnNpc3Rl
bnRCcmVha3BvaW50czsKICAgICB9LApAQCAtMjY0LDQxICsyNjQsMTQgQEAgV2ViSW5zcGVjdG9y
LkJyZWFrcG9pbnRNYW5hZ2VyLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAgICAgIHZhciBicmVh
a3BvaW50cyA9IHRoaXMuX3BlcnNpc3RlbnRCcmVha3BvaW50cygpOwogICAgICAgICBmb3IgKHZh
ciBpID0gMDsgaSA8IGJyZWFrcG9pbnRzLmxlbmd0aDsgKytpKSB7Ci0gICAgICAgICAgICBpZiAo
YnJlYWtwb2ludHNbaV0udHlwZSA9PT0gIkV2ZW50TGlzdGVuZXIiKQotICAgICAgICAgICAgICAg
IHRoaXMuY3JlYXRlRXZlbnRMaXN0ZW5lckJyZWFrcG9pbnQoYnJlYWtwb2ludHNbaV0uY29uZGl0
aW9uLmV2ZW50TmFtZSk7Ci0gICAgICAgICAgICBlbHNlIGlmIChicmVha3BvaW50c1tpXS50eXBl
ID09PSAiWEhSIikKLSAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVhIUkJyZWFrcG9pbnQoYnJl
YWtwb2ludHNbaV0uY29uZGl0aW9uLnVybCwgIWJyZWFrcG9pbnRzW2ldLmVuYWJsZWQpOwotICAg
ICAgICB9Ci0gICAgfSwKLQotICAgIHJlc3RvcmVET01CcmVha3BvaW50czogZnVuY3Rpb24oKQot
ICAgIHsKLSAgICAgICAgZnVuY3Rpb24gZGlkUHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKHBhdGgs
IG5vZGVJZCkKLSAgICAgICAgewotICAgICAgICAgICAgcGF0aFRvTm9kZUlkW3BhdGhdID0gbm9k
ZUlkOwotICAgICAgICAgICAgcGVuZGluZ0NhbGxzIC09IDE7Ci0gICAgICAgICAgICBpZiAocGVu
ZGluZ0NhbGxzKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgYnJlYWtwb2ludHMubGVuZ3RoOyArK2kpIHsKLSAgICAgICAgICAgICAgICB2
YXIgYnJlYWtwb2ludCA9IGJyZWFrcG9pbnRzW2ldOwotICAgICAgICAgICAgICAgIHZhciBub2Rl
SWQgPSBwYXRoVG9Ob2RlSWRbYnJlYWtwb2ludC5jb25kaXRpb24ucGF0aF07Ci0gICAgICAgICAg
ICAgICAgaWYgKG5vZGVJZCkKLSAgICAgICAgICAgICAgICAgICAgdGhpcy5jcmVhdGVET01CcmVh
a3BvaW50KG5vZGVJZCwgYnJlYWtwb2ludC5jb25kaXRpb24udHlwZSwgIWJyZWFrcG9pbnQuZW5h
YmxlZCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLQotICAgICAgICB2YXIgYnJlYWtwb2lu
dHMgPSB0aGlzLl9wZXJzaXN0ZW50QnJlYWtwb2ludHMoKTsKLSAgICAgICAgdmFyIHBhdGhUb05v
ZGVJZCA9IHt9OwotICAgICAgICB2YXIgcGVuZGluZ0NhbGxzID0gMDsKLSAgICAgICAgZm9yICh2
YXIgaSA9IDA7IGkgPCBicmVha3BvaW50cy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgaWYg
KGJyZWFrcG9pbnRzW2ldLnR5cGUgIT09ICJET00iKQotICAgICAgICAgICAgICAgIGNvbnRpbnVl
OwotICAgICAgICAgICAgdmFyIHBhdGggPSBicmVha3BvaW50c1tpXS5jb25kaXRpb24ucGF0aDsK
LSAgICAgICAgICAgIGlmIChwYXRoIGluIHBhdGhUb05vZGVJZCkKLSAgICAgICAgICAgICAgICBj
b250aW51ZTsKLSAgICAgICAgICAgIHBhdGhUb05vZGVJZFtwYXRoXSA9IDA7Ci0gICAgICAgICAg
ICBwZW5kaW5nQ2FsbHMgKz0gMTsKLSAgICAgICAgICAgIEluc3BlY3RvckJhY2tlbmQucHVzaE5v
ZGVCeVBhdGhUb0Zyb250ZW5kKHBhdGgsIGRpZFB1c2hOb2RlQnlQYXRoVG9Gcm9udGVuZC5iaW5k
KHRoaXMsIHBhdGgpKTsKKyAgICAgICAgICAgIHZhciB0eXBlID0gYnJlYWtwb2ludHNbaV0udHlw
ZTsKKyAgICAgICAgICAgIHZhciBjb25kaXRpb24gPSBicmVha3BvaW50c1tpXS5jb25kaXRpb247
CisgICAgICAgICAgICBpZiAodHlwZSA9PT0gIkRPTSIpCisgICAgICAgICAgICAgICAgdGhpcy5j
cmVhdGVET01CcmVha3BvaW50KGNvbmRpdGlvbi5wYXRoLCBjb25kaXRpb24udHlwZSwgIWJyZWFr
cG9pbnRzW2ldLmVuYWJsZWQpOworICAgICAgICAgICAgZWxzZSBpZiAodHlwZSA9PT0gIkV2ZW50
TGlzdGVuZXIiKQorICAgICAgICAgICAgICAgIHRoaXMuY3JlYXRlRXZlbnRMaXN0ZW5lckJyZWFr
cG9pbnQoY29uZGl0aW9uLmV2ZW50TmFtZSk7CisgICAgICAgICAgICBlbHNlIGlmICh0eXBlID09
PSAiWEhSIikKKyAgICAgICAgICAgICAgICB0aGlzLmNyZWF0ZVhIUkJyZWFrcG9pbnQoY29uZGl0
aW9uLnVybCwgIWJyZWFrcG9pbnRzW2ldLmVuYWJsZWQpOwogICAgICAgICB9CiAgICAgfSwKIApA
QCAtNDY5LDIxICs0NDIsMjggQEAgV2ViSW5zcGVjdG9yLk5hdGl2ZUJyZWFrcG9pbnQucHJvdG90
eXBlID0gewogCiBXZWJJbnNwZWN0b3IuTmF0aXZlQnJlYWtwb2ludC5wcm90b3R5cGUuX19wcm90
b19fID0gV2ViSW5zcGVjdG9yLk9iamVjdC5wcm90b3R5cGU7CiAKLVdlYkluc3BlY3Rvci5ET01C
cmVha3BvaW50ID0gZnVuY3Rpb24obWFuYWdlciwgZnJvbnRlbmRJZCwgbm9kZUlkLCBkb21FdmVu
dFR5cGUpCitXZWJJbnNwZWN0b3IuRE9NQnJlYWtwb2ludCA9IGZ1bmN0aW9uKG1hbmFnZXIsIGZy
b250ZW5kSWQsIHBhdGgsIGRvbUV2ZW50VHlwZSkKIHsKICAgICBXZWJJbnNwZWN0b3IuTmF0aXZl
QnJlYWtwb2ludC5jYWxsKHRoaXMsIG1hbmFnZXIsIGZyb250ZW5kSWQsICJET00iKTsKLSAgICB0
aGlzLl9ub2RlSWQgPSBub2RlSWQ7CisgICAgdGhpcy5fcGF0aCA9IHBhdGg7CiAgICAgdGhpcy5f
ZG9tRXZlbnRUeXBlID0gZG9tRXZlbnRUeXBlOwotICAgIHRoaXMuX2NvbmRpdGlvbiA9IHsgbm9k
ZUlkOiB0aGlzLl9ub2RlSWQsIHR5cGU6IHRoaXMuX2RvbUV2ZW50VHlwZSB9OworICAgIHRoaXMu
X2NvbmRpdGlvbiA9IHsgcGF0aDogdGhpcy5fcGF0aCwgdHlwZTogdGhpcy5fZG9tRXZlbnRUeXBl
IH07CiAKLSAgICB2YXIgbm9kZSA9IFdlYkluc3BlY3Rvci5kb21BZ2VudC5ub2RlRm9ySWQodGhp
cy5fbm9kZUlkKTsKLSAgICBpZiAobm9kZSkgewotICAgICAgICBub2RlLmJyZWFrcG9pbnRzW3Ro
aXMuX2RvbUV2ZW50VHlwZV0gPSB0aGlzOwotICAgICAgICB0aGlzLl9wZXJzaXN0ZW50Q29uZGl0
aW9uID0geyBwYXRoOiBub2RlLnBhdGgoKSwgdHlwZTogdGhpcy5fZG9tRXZlbnRUeXBlIH07Ci0g
ICAgfQorICAgIEluc3BlY3RvckJhY2tlbmQucHVzaE5vZGVCeVBhdGhUb0Zyb250ZW5kKHBhdGgs
IHRoaXMuX3NldE5vZGVJZC5iaW5kKHRoaXMpKTsKIH0KIAogV2ViSW5zcGVjdG9yLkRPTUJyZWFr
cG9pbnQucHJvdG90eXBlID0geworICAgIF9zZXROb2RlSWQ6IGZ1bmN0aW9uKG5vZGVJZCkKKyAg
ICB7CisgICAgICAgIHRoaXMuX25vZGVJZCA9IG5vZGVJZDsKKyAgICAgICAgdmFyIG5vZGUgPSBX
ZWJJbnNwZWN0b3IuZG9tQWdlbnQubm9kZUZvcklkKHRoaXMuX25vZGVJZCk7CisgICAgICAgIGlm
IChub2RlKSB7CisgICAgICAgICAgICBub2RlLmJyZWFrcG9pbnRzW3RoaXMuX2RvbUV2ZW50VHlw
ZV0gPSB0aGlzOworICAgICAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50VG9MaXN0ZW5lcnMoImxh
YmVsLWNoYW5nZWQiKTsKKyAgICAgICAgfSBlbHNlCisgICAgICAgICAgICB0aGlzLnJlbW92ZSgp
OworICAgIH0sCisKICAgICBjb21wYXJlVG86IGZ1bmN0aW9uKG90aGVyKQogICAgIHsKICAgICAg
ICAgcmV0dXJuIHRoaXMuX2NvbXBhcmUodGhpcy5fZG9tRXZlbnRUeXBlLCBvdGhlci5fZG9tRXZl
bnRUeXBlKTsKQEAgLTQ5MiwxMyArNDcyLDE1IEBAIFdlYkluc3BlY3Rvci5ET01CcmVha3BvaW50
LnByb3RvdHlwZSA9IHsKICAgICBwb3B1bGF0ZUxhYmVsRWxlbWVudDogZnVuY3Rpb24oZWxlbWVu
dCkKICAgICB7CiAgICAgICAgIC8vIEZJWE1FOiB0aGlzIHNob3VsZCBiZWxvbmcgdG8gdGhlIHZp
ZXcsIG5vdCB0aGUgbWFuYWdlci4KLSAgICAgICAgdmFyIGxpbmtpZmllZE5vZGUgPSBXZWJJbnNw
ZWN0b3IucGFuZWxzLmVsZW1lbnRzLmxpbmtpZnlOb2RlQnlJZCh0aGlzLl9ub2RlSWQpOwotICAg
ICAgICBsaW5raWZpZWROb2RlLmFkZFN0eWxlQ2xhc3MoIm1vbm9zcGFjZSIpOwotICAgICAgICBl
bGVtZW50LmFwcGVuZENoaWxkKGxpbmtpZmllZE5vZGUpOwotICAgICAgICB2YXIgZGVzY3JpcHRp
b24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKLSAgICAgICAgZGVzY3JpcHRpb24u
Y2xhc3NOYW1lID0gInNvdXJjZS10ZXh0IjsKLSAgICAgICAgZGVzY3JpcHRpb24udGV4dENvbnRl
bnQgPSBXZWJJbnNwZWN0b3IuZG9tQnJlYWtwb2ludFR5cGVMYWJlbCh0aGlzLl9kb21FdmVudFR5
cGUpOwotICAgICAgICBlbGVtZW50LmFwcGVuZENoaWxkKGRlc2NyaXB0aW9uKTsKKyAgICAgICAg
aWYgKHRoaXMuX25vZGVJZCkgeworICAgICAgICAgICAgdmFyIGxpbmtpZmllZE5vZGUgPSBXZWJJ
bnNwZWN0b3IucGFuZWxzLmVsZW1lbnRzLmxpbmtpZnlOb2RlQnlJZCh0aGlzLl9ub2RlSWQpOwor
ICAgICAgICAgICAgbGlua2lmaWVkTm9kZS5hZGRTdHlsZUNsYXNzKCJtb25vc3BhY2UiKTsKKyAg
ICAgICAgICAgIGVsZW1lbnQuYXBwZW5kQ2hpbGQobGlua2lmaWVkTm9kZSk7CisgICAgICAgICAg
ICB2YXIgZGVzY3JpcHRpb24gPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJkaXYiKTsKKyAgICAg
ICAgICAgIGRlc2NyaXB0aW9uLmNsYXNzTmFtZSA9ICJzb3VyY2UtdGV4dCI7CisgICAgICAgICAg
ICBkZXNjcmlwdGlvbi50ZXh0Q29udGVudCA9IFdlYkluc3BlY3Rvci5kb21CcmVha3BvaW50VHlw
ZUxhYmVsKHRoaXMuX2RvbUV2ZW50VHlwZSk7CisgICAgICAgICAgICBlbGVtZW50LmFwcGVuZENo
aWxkKGRlc2NyaXB0aW9uKTsKKyAgICAgICAgfQogICAgIH0sCiAKICAgICBwb3B1bGF0ZVN0YXR1
c01lc3NhZ2VFbGVtZW50OiBmdW5jdGlvbihlbGVtZW50LCBldmVudERhdGEpCkBAIC01NDQsNyAr
NTI2LDYgQEAgV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJCcmVha3BvaW50ID0gZnVuY3Rpb24o
bWFuYWdlciwgZnJvbnRlbmRJZCwgZXZlbnROYW1lKQogICAgIFdlYkluc3BlY3Rvci5OYXRpdmVC
cmVha3BvaW50LmNhbGwodGhpcywgbWFuYWdlciwgZnJvbnRlbmRJZCwgIkV2ZW50TGlzdGVuZXIi
KTsKICAgICB0aGlzLl9ldmVudE5hbWUgPSBldmVudE5hbWU7CiAgICAgdGhpcy5fY29uZGl0aW9u
ID0geyBldmVudE5hbWU6IHRoaXMuX2V2ZW50TmFtZSB9OwotICAgIHRoaXMuX3BlcnNpc3RlbnRD
b25kaXRpb24gPSB0aGlzLl9jb25kaXRpb247CiB9CiAKIFdlYkluc3BlY3Rvci5FdmVudExpc3Rl
bmVyQnJlYWtwb2ludC5ldmVudE5hbWVGb3JVSSA9IGZ1bmN0aW9uKGV2ZW50TmFtZSkKQEAgLTU4
OSw3ICs1NzAsNiBAQCBXZWJJbnNwZWN0b3IuWEhSQnJlYWtwb2ludCA9IGZ1bmN0aW9uKG1hbmFn
ZXIsIGZyb250ZW5kSWQsIHVybCkKICAgICBXZWJJbnNwZWN0b3IuTmF0aXZlQnJlYWtwb2ludC5j
YWxsKHRoaXMsIG1hbmFnZXIsIGZyb250ZW5kSWQsICJYSFIiKTsKICAgICB0aGlzLl91cmwgPSB1
cmw7CiAgICAgdGhpcy5fY29uZGl0aW9uID0geyB1cmw6IHRoaXMuX3VybCB9OwotICAgIHRoaXMu
X3BlcnNpc3RlbnRDb25kaXRpb24gPSB0aGlzLl9jb25kaXRpb247CiB9CiAKIFdlYkluc3BlY3Rv
ci5YSFJCcmVha3BvaW50LnByb3RvdHlwZSA9IHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9CcmVha3BvaW50c1NpZGViYXJQYW5lLmpzIGIvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRzU2lkZWJhclBhbmUuanMKaW5kZXggNDcxOTRkYS4uNTUy
ZmE4OCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9pbnRz
U2lkZWJhclBhbmUuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0JyZWFrcG9p
bnRzU2lkZWJhclBhbmUuanMKQEAgLTM1LDEwICszNSwxMiBAQCBXZWJJbnNwZWN0b3IuQnJlYWtw
b2ludHNTaWRlYmFyUGFuZSA9IGZ1bmN0aW9uKHRpdGxlKQogICAgIHRoaXMuZW1wdHlFbGVtZW50
LnRleHRDb250ZW50ID0gV2ViSW5zcGVjdG9yLlVJU3RyaW5nKCJObyBCcmVha3BvaW50cyIpOwog
CiAgICAgdGhpcy5ib2R5RWxlbWVudC5hcHBlbmRDaGlsZCh0aGlzLmVtcHR5RWxlbWVudCk7CisK
KyAgICBXZWJJbnNwZWN0b3IuYnJlYWtwb2ludE1hbmFnZXIuYWRkRXZlbnRMaXN0ZW5lcigicmVz
ZXQiLCB0aGlzLl9yZXNldCwgdGhpcyk7CiB9CiAKIFdlYkluc3BlY3Rvci5CcmVha3BvaW50c1Np
ZGViYXJQYW5lLnByb3RvdHlwZSA9IHsKLSAgICByZXNldDogZnVuY3Rpb24oKQorICAgIF9yZXNl
dDogZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgdGhpcy5saXN0RWxlbWVudC5yZW1vdmVDaGls
ZHJlbigpOwogICAgICAgICBpZiAodGhpcy5saXN0RWxlbWVudC5wYXJlbnRFbGVtZW50KSB7CkBA
IC0yNTcsNiArMjU5LDcgQEAgV2ViSW5zcGVjdG9yLkV2ZW50TGlzdGVuZXJCcmVha3BvaW50c1Np
ZGViYXJQYW5lID0gZnVuY3Rpb24oKQogICAgIHRoaXMuYm9keUVsZW1lbnQuYXBwZW5kQ2hpbGQo
dGhpcy5jYXRlZ29yaWVzRWxlbWVudCk7CiAKICAgICBXZWJJbnNwZWN0b3IuYnJlYWtwb2ludE1h
bmFnZXIuYWRkRXZlbnRMaXN0ZW5lcigiZXZlbnQtbGlzdGVuZXItYnJlYWtwb2ludC1hZGRlZCIs
IHRoaXMuX2JyZWFrcG9pbnRBZGRlZCwgdGhpcyk7CisgICAgV2ViSW5zcGVjdG9yLmJyZWFrcG9p
bnRNYW5hZ2VyLmFkZEV2ZW50TGlzdGVuZXIoInJlc2V0IiwgdGhpcy5fcmVzZXQsIHRoaXMpOwog
CiAgICAgdGhpcy5fYnJlYWtwb2ludEl0ZW1zID0ge307CiAgICAgdGhpcy5fY3JlYXRlQ2F0ZWdv
cnkoIktleWJvYXJkIiwgImxpc3RlbmVyIiwgWyJrZXlkb3duIiwgImtleXVwIiwgImtleXByZXNz
IiwgInRleHRJbnB1dCJdKTsKQEAgLTM4Myw3ICszODYsNyBAQCBXZWJJbnNwZWN0b3IuRXZlbnRM
aXN0ZW5lckJyZWFrcG9pbnRzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAgICAgICBjYXRl
Z29yeUl0ZW0uY2hlY2tib3guaW5kZXRlcm1pbmF0ZSA9IGhhc0VuYWJsZWQgJiYgaGFzRGlzYWJs
ZWQ7CiAgICAgfSwKIAotICAgIHJlc2V0OiBmdW5jdGlvbigpCisgICAgX3Jlc2V0OiBmdW5jdGlv
bigpCiAgICAgewogICAgICAgICBmb3IgKHZhciBldmVudE5hbWUgaW4gdGhpcy5fYnJlYWtwb2lu
dEl0ZW1zKSB7CiAgICAgICAgICAgICB2YXIgYnJlYWtwb2ludEl0ZW0gPSB0aGlzLl9icmVha3Bv
aW50SXRlbXNbZXZlbnROYW1lXTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9ET01BZ2VudC5qcyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9ET01BZ2VudC5q
cwppbmRleCAzN2JmNTQ5Li5hZDFlYjk0IDEwMDY0NAotLS0gYS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRE9NQWdlbnQuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RP
TUFnZW50LmpzCkBAIC0zNzksNyArMzc5LDYgQEAgV2ViSW5zcGVjdG9yLkRPTUFnZW50LnByb3Rv
dHlwZSA9IHsKICAgICAgICAgICAgIHRoaXMuZG9jdW1lbnQgPSBuZXcgV2ViSW5zcGVjdG9yLkRP
TURvY3VtZW50KHRoaXMsIHRoaXMuX3dpbmRvdywgcGF5bG9hZCk7CiAgICAgICAgICAgICB0aGlz
Ll9pZFRvRE9NTm9kZVtwYXlsb2FkLmlkXSA9IHRoaXMuZG9jdW1lbnQ7CiAgICAgICAgICAgICB0
aGlzLl9iaW5kTm9kZXModGhpcy5kb2N1bWVudC5jaGlsZHJlbik7Ci0gICAgICAgICAgICBXZWJJ
bnNwZWN0b3IuYnJlYWtwb2ludE1hbmFnZXIucmVzdG9yZURPTUJyZWFrcG9pbnRzKCk7CiAgICAg
ICAgIH0gZWxzZQogICAgICAgICAgICAgdGhpcy5kb2N1bWVudCA9IG51bGw7CiAgICAgICAgIFdl
Ykluc3BlY3Rvci5wYW5lbHMuZWxlbWVudHMuc2V0RG9jdW1lbnQodGhpcy5kb2N1bWVudCk7CmRp
ZmYgLS1naXQgYS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNQYW5lbC5qcyBi
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1BhbmVsLmpzCmluZGV4IDc2YzIy
YzUuLmZkMDE5ZTAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVt
ZW50c1BhbmVsLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1Bh
bmVsLmpzCkBAIC0xNjksOSArMTY5LDYgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzUGFuZWwucHJv
dG90eXBlID0gewogICAgICAgICB0aGlzLnJlY2VudGx5TW9kaWZpZWROb2RlcyA9IFtdOwogCiAg
ICAgICAgIGRlbGV0ZSB0aGlzLmN1cnJlbnRRdWVyeTsKLQotICAgICAgICBpZiAoUHJlZmVyZW5j
ZXMubmF0aXZlSW5zdHJ1bWVudGF0aW9uRW5hYmxlZCkKLSAgICAgICAgICAgIHRoaXMuc2lkZWJh
clBhbmVzLmRvbUJyZWFrcG9pbnRzLnJlc2V0KCk7CiAgICAgfSwKIAogICAgIHNldERvY3VtZW50
OiBmdW5jdGlvbihpbnNwZWN0ZWRSb290RG9jdW1lbnQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVlT3V0bGluZS5qcyBiL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVPdXRsaW5lLmpzCmluZGV4IGY4OTNjYTAuLjIwYjNh
YzUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVP
dXRsaW5lLmpzCisrKyBiL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FbGVtZW50c1RyZWVP
dXRsaW5lLmpzCkBAIC03NjUsOSArNzY1LDkgQEAgV2ViSW5zcGVjdG9yLkVsZW1lbnRzVHJlZUVs
ZW1lbnQucHJvdG90eXBlID0gewogICAgICAgICAgICAgLy8gQWRkIGRlYmJ1Z2luZy1yZWxhdGVk
IGFjdGlvbnMKICAgICAgICAgICAgIGNvbnRleHRNZW51LmFwcGVuZFNlcGFyYXRvcigpOwogCi0g
ICAgICAgICAgICBmdW5jdGlvbiBoYW5kbGVyRnVuY3Rpb24obm9kZUlkLCBicmVha1R5cGUpCisg
ICAgICAgICAgICBmdW5jdGlvbiBoYW5kbGVyRnVuY3Rpb24ocGF0aCwgYnJlYWtUeXBlKQogICAg
ICAgICAgICAgewotICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5icmVha3BvaW50TWFuYWdl
ci5jcmVhdGVET01CcmVha3BvaW50KG5vZGVJZCwgYnJlYWtUeXBlKTsKKyAgICAgICAgICAgICAg
ICBXZWJJbnNwZWN0b3IuYnJlYWtwb2ludE1hbmFnZXIuY3JlYXRlRE9NQnJlYWtwb2ludChwYXRo
LCBicmVha1R5cGUpOwogICAgICAgICAgICAgICAgIFdlYkluc3BlY3Rvci5wYW5lbHMuZWxlbWVu
dHMuc2lkZWJhclBhbmVzLmRvbUJyZWFrcG9pbnRzLmV4cGFuZCgpOwogICAgICAgICAgICAgfQog
ICAgICAgICAgICAgdmFyIG5vZGUgPSB0aGlzLnJlcHJlc2VudGVkT2JqZWN0OwpAQCAtNzc2LDcg
Kzc3Niw3IEBAIFdlYkluc3BlY3Rvci5FbGVtZW50c1RyZWVFbGVtZW50LnByb3RvdHlwZSA9IHsK
ICAgICAgICAgICAgICAgICB2YXIgbGFiZWwgPSBXZWJJbnNwZWN0b3IuZG9tQnJlYWtwb2ludFR5
cGVDb250ZXh0TWVudUxhYmVsKHR5cGUpOwogICAgICAgICAgICAgICAgIHZhciBicmVha3BvaW50
ID0gbm9kZS5icmVha3BvaW50c1t0eXBlXTsKICAgICAgICAgICAgICAgICBpZiAoIWJyZWFrcG9p
bnQpCi0gICAgICAgICAgICAgICAgICAgIHZhciBoYW5kbGVyID0gaGFuZGxlckZ1bmN0aW9uLmJp
bmQodGhpcywgbm9kZS5pZCwgdHlwZSk7CisgICAgICAgICAgICAgICAgICAgIHZhciBoYW5kbGVy
ID0gaGFuZGxlckZ1bmN0aW9uLmJpbmQodGhpcywgbm9kZS5wYXRoKCksIHR5cGUpOwogICAgICAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgdmFyIGhhbmRsZXIgPSBicmVha3Bv
aW50LnJlbW92ZS5iaW5kKGJyZWFrcG9pbnQpOwogICAgICAgICAgICAgICAgIGNvbnRleHRNZW51
LmFwcGVuZENoZWNrYm94SXRlbShsYWJlbCwgaGFuZGxlciwgISFicmVha3BvaW50KTsKZGlmZiAt
LWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFuZWwuanMgYi9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0c1BhbmVsLmpzCmluZGV4IDBkY2U5NWUuLjMw
OWI3YTQgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHRzUGFu
ZWwuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdHNQYW5lbC5qcwpA
QCAtNDU4LDE1ICs0NTgsOCBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0c1BhbmVsLnByb3RvdHlwZSA9
IHsKICAgICAgICAgdGhpcy5fc291cmNlSURNYXAgPSB7fTsKIAogICAgICAgICB0aGlzLnNpZGVi
YXJQYW5lcy53YXRjaEV4cHJlc3Npb25zLnJlZnJlc2hFeHByZXNzaW9ucygpOwotICAgICAgICBp
ZiAoIXByZXNlcnZlSXRlbXMpIHsKLSAgICAgICAgICAgIHRoaXMuc2lkZWJhclBhbmVzLmpzQnJl
YWtwb2ludHMucmVzZXQoKTsKLSAgICAgICAgICAgIGlmIChQcmVmZXJlbmNlcy5uYXRpdmVJbnN0
cnVtZW50YXRpb25FbmFibGVkKSB7Ci0gICAgICAgICAgICAgICAgdGhpcy5zaWRlYmFyUGFuZXMu
ZG9tQnJlYWtwb2ludHMucmVzZXQoKTsKLSAgICAgICAgICAgICAgICB0aGlzLnNpZGViYXJQYW5l
cy54aHJCcmVha3BvaW50cy5yZXNldCgpOwotICAgICAgICAgICAgICAgIHRoaXMuc2lkZWJhclBh
bmVzLmV2ZW50TGlzdGVuZXJCcmVha3BvaW50cy5yZXNldCgpOwotICAgICAgICAgICAgfQorICAg
ICAgICBpZiAoIXByZXNlcnZlSXRlbXMpCiAgICAgICAgICAgICB0aGlzLnNpZGViYXJQYW5lcy53
b3JrZXJzLnJlc2V0KCk7Ci0gICAgICAgIH0KICAgICB9LAogCiAgICAgZ2V0IHZpc2libGVWaWV3
KCkKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMg
Yi9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzCmluZGV4IDkyODA3ZTYu
LmM4OTljM2IgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0
b3IuanMKKysrIGIvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL2luc3BlY3Rvci5qcwpAQCAt
MTM3Myw4ICsxMzczLDYgQEAgV2ViSW5zcGVjdG9yLnJlc2V0ID0gZnVuY3Rpb24oKQogCiAgICAg
dGhpcy5jb25zb2xlLmNsZWFyTWVzc2FnZXMoKTsKICAgICB0aGlzLmV4dGVuc2lvblNlcnZlci5u
b3RpZnlJbnNwZWN0b3JSZXNldCgpOwotCi0gICAgdGhpcy5icmVha3BvaW50TWFuYWdlci5yZXN0
b3JlQnJlYWtwb2ludHMoKTsKIH0KIAogV2ViSW5zcGVjdG9yLnJlc2V0UHJvZmlsZXNQYW5lbCA9
IGZ1bmN0aW9uKCkKQEAgLTE0MDQsNiArMTQwMiw3IEBAIFdlYkluc3BlY3Rvci5kaWRDb21taXRM
b2FkID0gZnVuY3Rpb24oKQogICAgIC8vIENsZWFudXAgZWxlbWVudHMgcGFuZWwgZWFybHkgb24g
aW5zcGVjdGVkIHBhZ2UgcmVmcmVzaC4KICAgICBXZWJJbnNwZWN0b3Iuc2V0RG9jdW1lbnQobnVs
bCk7CiAgICAgdGhpcy5leHRlbnNpb25TZXJ2ZXIubm90aWZ5SW5zcGVjdGVkUGFnZUxvYWRlZCgp
OworICAgIHRoaXMuYnJlYWtwb2ludE1hbmFnZXIucmVzdG9yZUJyZWFrcG9pbnRzKCk7CiB9CiAK
IFdlYkluc3BlY3Rvci51cGRhdGVDb25zb2xlTWVzc2FnZUV4cGlyZWRDb3VudCA9IGZ1bmN0aW9u
KGNvdW50KQo=
</data>
<flag name="review"
          id="65415"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>