<?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>66858</bug_id>
          
          <creation_ts>2011-08-24 07:54:51 -0700</creation_ts>
          <short_desc>Web Inspector: [refactoring] use PopoverHelper to implement popup in the SourceFrame</short_desc>
          <delta_ts>2011-08-25 08:48:01 -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>1</everconfirmed>
          <reporter name="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</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>456099</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-08-24 07:54:51 -0700</bug_when>
    <thetext>This replaces custom popover logic in the SourceFrame with the usage of PopoverHelper.
This also fixes a problem where popup is hidden when mouse is moved from one expression to another.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456101</commentid>
    <comment_count>1</comment_count>
      <attachid>104999</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-08-24 07:57:39 -0700</bug_when>
    <thetext>Created attachment 104999
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456682</commentid>
    <comment_count>2</comment_count>
      <attachid>104999</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-25 00:09:43 -0700</bug_when>
    <thetext>Comment on attachment 104999
patch

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

&gt; Source/WebCore/inspector/front-end/Popover.js:185
&gt; +        this._popup = value;

You should not expose popup setter.

&gt; Source/WebCore/inspector/front-end/SourceFrame.js:695
&gt; +        return element;

For the expression

foo.bar.baz, the anchor element should be &quot;foo&quot; span.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456730</commentid>
    <comment_count>3</comment_count>
      <attachid>105150</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-08-25 02:57:13 -0700</bug_when>
    <thetext>Created attachment 105150
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456732</commentid>
    <comment_count>4</comment_count>
      <attachid>105151</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-08-25 03:03:23 -0700</bug_when>
    <thetext>Created attachment 105151
patch (!= =&gt; !===)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456812</commentid>
    <comment_count>5</comment_count>
      <attachid>105171</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-08-25 06:35:09 -0700</bug_when>
    <thetext>Created attachment 105171
patch

- move content element from Popover constructor to Popover.show()
- create popover in PopoverHelper rather than in client code
- rename most occurrences of &quot;popup&quot; to popover.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456848</commentid>
    <comment_count>6</comment_count>
      <attachid>105171</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-25 07:38:05 -0700</bug_when>
    <thetext>Comment on attachment 105171
patch

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

&gt; Source/WebCore/inspector/front-end/SourceFrame.js:725
&gt; +            if (wasThrown || !this._delegate.debuggerPaused()) {

Should you check for popover.disposed as a start?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456853</commentid>
    <comment_count>7</comment_count>
      <attachid>105190</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-08-25 07:46:07 -0700</bug_when>
    <thetext>Created attachment 105190
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456880</commentid>
    <comment_count>8</comment_count>
      <attachid>105190</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-08-25 08:47:53 -0700</bug_when>
    <thetext>Comment on attachment 105190
patch

Clearing flags on attachment: 105190

Committed r93789: &lt;http://trac.webkit.org/changeset/93789&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>456882</commentid>
    <comment_count>9</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-08-25 08:48:01 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>104999</attachid>
            <date>2011-08-24 07:57:39 -0700</date>
            <delta_ts>2011-08-25 02:57:13 -0700</delta_ts>
            <desc>patch</desc>
            <filename>sourceframe-popover.diff</filename>
            <type>text/plain</type>
            <size>13331</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzYTMzOGU1Li5iMmIzZTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTEtMDgtMjQgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBbcmVmYWN0b3JpbmddIHVzZSBQb3BvdmVySGVscGVyIHRv
IGltcGxlbWVudCBwb3B1cCBpbiB0aGUgU291cmNlRnJhbWUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2ODU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQ
YW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUu
aW5pdGlhbGl6ZVZpZXcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUG9wb3Zlci5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Qb3BvdmVySGVscGVyLnByb3RvdHlwZS5zZXQgcG9wdXApOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlBvcG92ZXJIZWxwZXIucHJvdG90eXBlLl9tb3VzZUhvdmVyKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS53aWxsSGlkZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9pbml0aWFsaXplVGV4dFZpZXdlcik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9zY3JvbGwpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fbW91c2VEb3duKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX29uSGlkZVBvcHVwKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX3Nob3VsZFNob3dQb3B1cCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9nZXRQb3BvdmVy
QW5jaG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX2hp
Z2hsaWdodEV4cHJlc3Npb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnBy
b3RvdHlwZS5fb25TaG93UG9wdXAuc2hvd09iamVjdFBvcHVwKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX29uU2hvd1BvcHVwKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGltZWxpbmVQYW5lbCk6CisKIDIwMTEtMDgtMjQgIFRhdGlhbmEgTWVzaGtvdmEgIDx0YXRpYW5h
Lm1lc2hrb3ZhQG5va2lhLmNvbT4KIAogICAgICAgICBQYWludCBTbGlkZXJUcmFjayBhbmQgU2xp
ZGVyVGh1bWIgaW5kZXBlbmRlbnRseS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMKaW5kZXggMzM1NjRhMy4uOTZjNTY1NCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwuanMK
QEAgLTgwLDcgKzgwLDcgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3LnByb3RvdHlwZSA9
IHsKICAgICAgICAgICAgIHRoaXMuX3NldExhcmdlclJlc291cmNlcyh0aGlzLnVzZUxhcmdlUm93
cyk7CiAKICAgICAgICAgdGhpcy5fYWxsb3dQb3BvdmVyID0gdHJ1ZTsKLSAgICAgICAgdGhpcy5f
cG9wb3ZlckhlbHBlciA9IG5ldyBXZWJJbnNwZWN0b3IuUG9wb3ZlckhlbHBlcih0aGlzLmVsZW1l
bnQsIHRoaXMuX2dldFBvcG92ZXJBbmNob3IuYmluZCh0aGlzKSwgdGhpcy5fc2hvd1BvcG92ZXIu
YmluZCh0aGlzKSwgdHJ1ZSk7CisgICAgICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIgPSBuZXcgV2Vi
SW5zcGVjdG9yLlBvcG92ZXJIZWxwZXIodGhpcy5lbGVtZW50LCB0aGlzLl9nZXRQb3BvdmVyQW5j
aG9yLmJpbmQodGhpcyksIHRoaXMuX3Nob3dQb3BvdmVyLmJpbmQodGhpcykpOwogICAgICAgICAv
LyBFbmFibGUgZmFzdGVyIGhpbnQuCiAgICAgICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIuc2V0VGlt
ZW91dCgxMDApOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL1BvcG92ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BvcG92
ZXIuanMKaW5kZXggNTZhNWFkYi4uMzYzZmI1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL2Zyb250LWVuZC9Qb3BvdmVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvUG9wb3Zlci5qcwpAQCAtMTYzLDEyICsxNjMsMTEgQEAgV2ViSW5zcGVj
dG9yLlBvcG92ZXIucHJvdG90eXBlID0gewogLyoqCiAgKiBAY29uc3RydWN0b3IKICAqLwotV2Vi
SW5zcGVjdG9yLlBvcG92ZXJIZWxwZXIgPSBmdW5jdGlvbihwYW5lbEVsZW1lbnQsIGdldEFuY2hv
ciwgc2hvd1BvcHVwLCBzaG93T25DbGljaywgb25IaWRlKQorV2ViSW5zcGVjdG9yLlBvcG92ZXJI
ZWxwZXIgPSBmdW5jdGlvbihwYW5lbEVsZW1lbnQsIGdldEFuY2hvciwgc2hvd1BvcHVwLCBvbkhp
ZGUpCiB7CiAgICAgdGhpcy5fcGFuZWxFbGVtZW50ID0gcGFuZWxFbGVtZW50OwogICAgIHRoaXMu
X2dldEFuY2hvciA9IGdldEFuY2hvcjsKICAgICB0aGlzLl9zaG93UG9wdXAgPSBzaG93UG9wdXA7
Ci0gICAgdGhpcy5fc2hvd09uQ2xpY2sgPSBzaG93T25DbGljazsKICAgICB0aGlzLl9vbkhpZGUg
PSBvbkhpZGU7CiAgICAgcGFuZWxFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIs
IHRoaXMuX21vdXNlRG93bi5iaW5kKHRoaXMpLCBmYWxzZSk7CiAgICAgcGFuZWxFbGVtZW50LmFk
ZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIHRoaXMuX21vdXNlTW92ZS5iaW5kKHRoaXMpLCBm
YWxzZSk7CkBAIC0xODEsNiArMTgwLDEzIEBAIFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgdGhpcy5fdGltZW91dCA9IHRpbWVvdXQ7CiAgICAgfSwKIAor
ICAgIHNldCBwb3B1cCh2YWx1ZSkKKyAgICB7CisgICAgICAgIHRoaXMuX3BvcHVwID0gdmFsdWU7
CisgICAgICAgIGlmICh0aGlzLl9wb3B1cCkKKyAgICAgICAgICAgIHRoaXMuX3BvcHVwLmNvbnRl
bnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIHRoaXMuX2tpbGxIaWRlUG9w
dXBUaW1lci5iaW5kKHRoaXMpLCB0cnVlKTsKKyAgICB9LAorCiAgICAgX21vdXNlRG93bjogZnVu
Y3Rpb24oZXZlbnQpCiAgICAgewogICAgICAgICB0aGlzLl9raWxsSGlkZVBvcHVwVGltZXIoKTsK
QEAgLTI0OSw5ICsyNTUsOCBAQCBXZWJJbnNwZWN0b3IuUG9wb3ZlckhlbHBlci5wcm90b3R5cGUg
PSB7CiAgICAgewogICAgICAgICBkZWxldGUgdGhpcy5faG92ZXJUaW1lcjsKIAotICAgICAgICB0
aGlzLl9wb3B1cCA9IHRoaXMuX3Nob3dQb3B1cChlbGVtZW50KTsKLSAgICAgICAgaWYgKHRoaXMu
X3BvcHVwKQotICAgICAgICAgICAgdGhpcy5fcG9wdXAuY29udGVudEVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcy5fa2lsbEhpZGVQb3B1cFRpbWVyLmJpbmQodGhpcyks
IHRydWUpOworICAgICAgICB0aGlzLl9oaWRlUG9wdXAoKTsKKyAgICAgICAgdGhpcy5wb3B1cCA9
IHRoaXMuX3Nob3dQb3B1cChlbGVtZW50KTsKICAgICB9LAogCiAgICAgX2tpbGxIaWRlUG9wdXBU
aW1lcjogZnVuY3Rpb24oKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Tb3VyY2VGcmFtZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvU291cmNlRnJhbWUuanMKaW5kZXggMzI5OGRkYS4uZDExNDczMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCkBAIC05MSw3ICs5
MSw4IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIGlm
ICh0aGlzLmxvYWRlZCkKICAgICAgICAgICAgIHRoaXMuX3RleHRWaWV3ZXIuZnJlZUNhY2hlZEVs
ZW1lbnRzKCk7CiAKLSAgICAgICAgdGhpcy5faGlkZVBvcHVwKCk7CisgICAgICAgIGlmICh0aGlz
Ll9wb3BvdmVySGVscGVyKQorICAgICAgICAgICAgdGhpcy5fcG9wb3ZlckhlbHBlci5oaWRlUG9w
dXAoKTsKICAgICAgICAgdGhpcy5fY2xlYXJMaW5lSGlnaGxpZ2h0KCk7CiAgICAgfSwKIApAQCAt
MjgwLDggKzI4MSw5IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAK
ICAgICAgICAgdmFyIGVsZW1lbnQgPSB0aGlzLl90ZXh0Vmlld2VyLmVsZW1lbnQ7CiAgICAgICAg
IGlmICh0aGlzLl9kZWxlZ2F0ZS5kZWJ1Z2dpbmdTdXBwb3J0ZWQoKSkgeworICAgICAgICAgICAg
dGhpcy5fcG9wb3ZlckhlbHBlciA9IG5ldyBXZWJJbnNwZWN0b3IuUG9wb3ZlckhlbHBlcihlbGVt
ZW50LAorICAgICAgICAgICAgICAgIHRoaXMuX2dldFBvcG92ZXJBbmNob3IuYmluZCh0aGlzKSwg
dGhpcy5fb25TaG93UG9wdXAuYmluZCh0aGlzKSwgdGhpcy5fb25IaWRlUG9wdXAuYmluZCh0aGlz
KSk7CiAgICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlZG93biIsIHRo
aXMuX21vdXNlRG93bi5iaW5kKHRoaXMpLCB0cnVlKTsKLSAgICAgICAgICAgIGVsZW1lbnQuYWRk
RXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcy5fbW91c2VNb3ZlLmJpbmQodGhpcyksIHRy
dWUpOwogICAgICAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJzY3JvbGwiLCB0aGlz
Ll9zY3JvbGwuYmluZCh0aGlzKSwgdHJ1ZSk7CiAgICAgICAgIH0KIApAQCAtNjMxLDEyICs2MzMs
MTQgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKIAogICAgIF9zY3Jv
bGw6IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdGhpcy5faGlkZVBvcHVwKCk7Cisg
ICAgICAgIGlmICh0aGlzLl9wb3BvdmVySGVscGVyKQorICAgICAgICAgICAgdGhpcy5fcG9wb3Zl
ckhlbHBlci5oaWRlUG9wdXAoKTsKICAgICB9LAogCiAgICAgX21vdXNlRG93bjogZnVuY3Rpb24o
ZXZlbnQpCiAgICAgewotICAgICAgICB0aGlzLl9oaWRlUG9wdXAoKTsKKyAgICAgICAgaWYgKHRo
aXMuX3BvcG92ZXJIZWxwZXIpCisgICAgICAgICAgICB0aGlzLl9wb3BvdmVySGVscGVyLmhpZGVQ
b3B1cCgpOwogICAgICAgICBpZiAoZXZlbnQuYnV0dG9uICE9IDAgfHwgZXZlbnQuYWx0S2V5IHx8
IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSkKICAgICAgICAgICAgIHJldHVybjsKICAg
ICAgICAgdmFyIHRhcmdldCA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENs
YXNzKCJ3ZWJraXQtbGluZS1udW1iZXIiKTsKQEAgLTY1NSw3OSArNjU5LDQ0IEBAIFdlYkluc3Bl
Y3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIGV2ZW50LnByZXZlbnREZWZh
dWx0KCk7CiAgICAgfSwKIAotICAgIF9tb3VzZU1vdmU6IGZ1bmN0aW9uKGV2ZW50KQorICAgIF9v
bkhpZGVQb3B1cDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgLy8gUHJldGVuZCB0aGF0IG5v
dGhpbmcgaGFzIGhhcHBlbmVkLgotICAgICAgICBpZiAodGhpcy5faG92ZXJFbGVtZW50ID09PSBl
dmVudC50YXJnZXQgfHwgZXZlbnQudGFyZ2V0Lmhhc1N0eWxlQ2xhc3MoInNvdXJjZS1mcmFtZS1l
dmFsLWV4cHJlc3Npb24iKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB0aGlzLl9y
ZXNldEhvdmVyVGltZXIoKTsKLSAgICAgICAgLy8gVXNlciBoYXMgNTAwbXMgdG8gcmVhY2ggdGhl
IHBvcHVwLgotICAgICAgICBpZiAodGhpcy5fcG9wdXApIHsKLSAgICAgICAgICAgIHZhciBzZWxm
ID0gdGhpczsKLSAgICAgICAgICAgIGZ1bmN0aW9uIGRvSGlkZSgpCi0gICAgICAgICAgICB7Ci0g
ICAgICAgICAgICAgICAgc2VsZi5faGlkZVBvcHVwKCk7Ci0gICAgICAgICAgICAgICAgZGVsZXRl
IHNlbGYuX2hpZGVQb3B1cFRpbWVyOwotICAgICAgICAgICAgfQotICAgICAgICAgICAgaWYgKCEo
Il9oaWRlUG9wdXBUaW1lciIgaW4gdGhpcykpCi0gICAgICAgICAgICAgICAgdGhpcy5faGlkZVBv
cHVwVGltZXIgPSBzZXRUaW1lb3V0KGRvSGlkZSwgNTAwKTsKKyAgICAgICAgLy8gUmVwbGFjZSBo
aWdsaWdodCBlbGVtZW50IHdpdGggaXRzIGNvbnRlbnRzIGlucGxhY2UuCisgICAgICAgIHZhciBo
aWdobGlnaHRFbGVtZW50ID0gdGhpcy5faGlnaGxpZ2h0RWxlbWVudDsKKyAgICAgICAgdmFyIHBh
cmVudEVsZW1lbnQgPSBoaWdobGlnaHRFbGVtZW50LnBhcmVudEVsZW1lbnQ7CisgICAgICAgIHZh
ciBjaGlsZCA9IGhpZ2hsaWdodEVsZW1lbnQuZmlyc3RDaGlsZDsKKyAgICAgICAgd2hpbGUgKGNo
aWxkKSB7CisgICAgICAgICAgICB2YXIgbmV4dFNpYmxpbmcgPSBjaGlsZC5uZXh0U2libGluZzsK
KyAgICAgICAgICAgIHBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKGNoaWxkLCBoaWdobGlnaHRF
bGVtZW50KTsKKyAgICAgICAgICAgIGNoaWxkID0gbmV4dFNpYmxpbmc7CiAgICAgICAgIH0KKyAg
ICAgICAgcGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZChoaWdobGlnaHRFbGVtZW50KTsKKyAgICAg
ICAgdGhpcy5fZGVsZWdhdGUucmVsZWFzZUV2YWx1YXRpb25SZXN1bHQoKTsKKyAgICB9LAogCi0g
ICAgICAgIHRoaXMuX2hvdmVyRWxlbWVudCA9IGV2ZW50LnRhcmdldDsKLQotICAgICAgICAvLyBO
b3cgdGhhdCBjbGVhbnVwIHJvdXRpbmVzIGFyZSBzZXQgdXAgYWJvdmUsIGxlYXZlIHRoaXMgaW4g
Y2FzZSB3ZSBhcmUgbm90IG9uIGEgYnJlYWsuCisgICAgX3Nob3VsZFNob3dQb3B1cDogZnVuY3Rp
b24oZWxlbWVudCkKKyAgICB7CiAgICAgICAgIGlmICghdGhpcy5fZGVsZWdhdGUuZGVidWdnZXJQ
YXVzZWQoKSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK
KyAgICAgICAgaWYgKCFlbGVtZW50LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoIndlYmtp
dC1saW5lLWNvbnRlbnQiKSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKIAogICAgICAgICAv
LyBXZSBhcmUgaW50ZXJlc3RlZCBpbiBpZGVudGlmaWVycyBhbmQgInRoaXMiIGtleXdvcmQuCi0g
ICAgICAgIGlmICh0aGlzLl9ob3ZlckVsZW1lbnQuaGFzU3R5bGVDbGFzcygid2Via2l0LWphdmFz
Y3JpcHQta2V5d29yZCIpKSB7Ci0gICAgICAgICAgICBpZiAodGhpcy5faG92ZXJFbGVtZW50LnRl
eHRDb250ZW50ICE9PSAidGhpcyIpCi0gICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9
IGVsc2UgaWYgKCF0aGlzLl9ob3ZlckVsZW1lbnQuaGFzU3R5bGVDbGFzcygid2Via2l0LWphdmFz
Y3JpcHQtaWRlbnQiKSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgaWYgKGVsZW1lbnQu
aGFzU3R5bGVDbGFzcygid2Via2l0LWphdmFzY3JpcHQta2V5d29yZCIpKQorICAgICAgICAgICAg
cmV0dXJuIGVsZW1lbnQudGV4dENvbnRlbnQgPT09ICJ0aGlzIjsKIAotICAgICAgICBjb25zdCB0
b29sVGlwRGVsYXkgPSB0aGlzLl9wb3B1cCA/IDYwMCA6IDEwMDA7Ci0gICAgICAgIHRoaXMuX2hv
dmVyVGltZXIgPSBzZXRUaW1lb3V0KHRoaXMuX21vdXNlSG92ZXIuYmluZCh0aGlzLCB0aGlzLl9o
b3ZlckVsZW1lbnQpLCB0b29sVGlwRGVsYXkpOwotICAgIH0sCi0KLSAgICBfcmVzZXRIb3ZlclRp
bWVyOiBmdW5jdGlvbigpCi0gICAgewotICAgICAgICBpZiAodGhpcy5faG92ZXJUaW1lcikgewot
ICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2hvdmVyVGltZXIpOwotICAgICAgICAgICAg
ZGVsZXRlIHRoaXMuX2hvdmVyVGltZXI7Ci0gICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGVsZW1l
bnQuaGFzU3R5bGVDbGFzcygid2Via2l0LWphdmFzY3JpcHQtaWRlbnQiKTsKICAgICB9LAogCi0g
ICAgX2hpZGVQb3B1cDogZnVuY3Rpb24oKQorICAgIF9nZXRQb3BvdmVyQW5jaG9yOiBmdW5jdGlv
bihlbGVtZW50KQogICAgIHsKLSAgICAgICAgdGhpcy5fcmVzZXRIb3ZlclRpbWVyKCk7Ci0gICAg
ICAgIGlmICghdGhpcy5fcG9wdXApCisgICAgICAgIGlmICghdGhpcy5fc2hvdWxkU2hvd1BvcHVw
KGVsZW1lbnQpKQogICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIC8vIFJlcGxhY2UgaGln
bGlnaHQgZWxlbWVudCB3aXRoIGl0cyBjb250ZW50cyBpbnBsYWNlLgotICAgICAgICB2YXIgcGFy
ZW50RWxlbWVudCA9IHRoaXMuX3BvcHVwLmhpZ2hsaWdodEVsZW1lbnQucGFyZW50RWxlbWVudDsK
LSAgICAgICAgdmFyIGNoaWxkID0gdGhpcy5fcG9wdXAuaGlnaGxpZ2h0RWxlbWVudC5maXJzdENo
aWxkOwotICAgICAgICB3aGlsZSAoY2hpbGQpIHsKLSAgICAgICAgICAgIHZhciBuZXh0U2libGlu
ZyA9IGNoaWxkLm5leHRTaWJsaW5nOwotICAgICAgICAgICAgcGFyZW50RWxlbWVudC5pbnNlcnRC
ZWZvcmUoY2hpbGQsIHRoaXMuX3BvcHVwLmhpZ2hsaWdodEVsZW1lbnQpOwotICAgICAgICAgICAg
Y2hpbGQgPSBuZXh0U2libGluZzsKLSAgICAgICAgfQotICAgICAgICBwYXJlbnRFbGVtZW50LnJl
bW92ZUNoaWxkKHRoaXMuX3BvcHVwLmhpZ2hsaWdodEVsZW1lbnQpOwotCi0gICAgICAgIHRoaXMu
X3BvcHVwLmhpZGUoKTsKLSAgICAgICAgZGVsZXRlIHRoaXMuX3BvcHVwOwotICAgICAgICB0aGlz
Ll9kZWxlZ2F0ZS5yZWxlYXNlRXZhbHVhdGlvblJlc3VsdCgpOworICAgICAgICByZXR1cm4gZWxl
bWVudDsKICAgICB9LAogCi0gICAgX21vdXNlSG92ZXI6IGZ1bmN0aW9uKGVsZW1lbnQpCisgICAg
X2hpZ2hsaWdodEV4cHJlc3Npb246IGZ1bmN0aW9uKGVsZW1lbnQpCiAgICAgewotICAgICAgICBk
ZWxldGUgdGhpcy5faG92ZXJUaW1lcjsKLQotICAgICAgICB2YXIgbGluZVJvdyA9IGVsZW1lbnQu
ZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygid2Via2l0LWxpbmUtY29udGVudCIpOwotICAg
ICAgICBpZiAoIWxpbmVSb3cpCi0gICAgICAgICAgICByZXR1cm47Ci0KICAgICAgICAgLy8gQ29s
bGVjdCB0b2tlbnMgYmVsb25naW5nIHRvIGV2YWx1YXRlZCBleHJlc3Npb24uCiAgICAgICAgIHZh
ciB0b2tlbnMgPSBbIGVsZW1lbnQgXTsKICAgICAgICAgdmFyIHRva2VuID0gZWxlbWVudC5wcmV2
aW91c1NpYmxpbmc7CkBAIC03NDQsMjUgKzcxMywxMiBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJh
bWUucHJvdG90eXBlID0gewogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRva2Vucy5sZW5n
dGg7ICsraSkKICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZCh0b2tlbnNbaV0pOwog
ICAgICAgICBwYXJlbnRFbGVtZW50Lmluc2VydEJlZm9yZShjb250YWluZXIsIG5leHRFbGVtZW50
KTsKLSAgICAgICAgdGhpcy5fc2hvd1BvcHVwKGNvbnRhaW5lcik7CisgICAgICAgIHJldHVybiBj
b250YWluZXI7CiAgICAgfSwKIAotICAgIF9zaG93UG9wdXA6IGZ1bmN0aW9uKGVsZW1lbnQpCisg
ICAgX29uU2hvd1BvcHVwOiBmdW5jdGlvbihlbGVtZW50KQogICAgIHsKLSAgICAgICAgaWYgKCF0
aGlzLl9kZWxlZ2F0ZS5kZWJ1Z2dlclBhdXNlZCgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgIGZ1bmN0aW9uIGtpbGxIaWRlUG9wdXBUaW1lcigpCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGlmICh0aGlzLl9oaWRlUG9wdXBUaW1lcikgewotICAgICAgICAgICAgICAgIGNsZWFyVGlt
ZW91dCh0aGlzLl9oaWRlUG9wdXBUaW1lcik7Ci0gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMu
X2hpZGVQb3B1cFRpbWVyOwotCi0gICAgICAgICAgICAgICAgLy8gV2Uga25vdyB0aGF0IHdlIHJl
YWNoZWQgdGhlIHBvcHVwLCBidXQgd2UgbWlnaHQgaGF2ZSBtb3ZlZCBvdmVyIG90aGVyIGVsZW1l
bnRzLgotICAgICAgICAgICAgICAgIC8vIERpc2NhcmQgcGVuZGluZyBjb21tYW5kLgotICAgICAg
ICAgICAgICAgIHRoaXMuX3Jlc2V0SG92ZXJUaW1lcigpOwotICAgICAgICAgICAgfQotICAgICAg
ICB9CisgICAgICAgIHZhciBoaWdobGlnaHRFbGVtZW50ID0gdGhpcy5faGlnaGxpZ2h0RXhwcmVz
c2lvbihlbGVtZW50KTsKIAogICAgICAgICBmdW5jdGlvbiBzaG93T2JqZWN0UG9wdXAocmVzdWx0
LCB3YXNUaHJvd24pCiAgICAgICAgIHsKQEAgLTc3Nyw4ICs3MzMsOCBAQCBXZWJJbnNwZWN0b3Iu
U291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHBvcHVwQ29udGVudEVs
ZW1lbnQudGV4dENvbnRlbnQgPSByZXN1bHQuZGVzY3JpcHRpb247CiAgICAgICAgICAgICAgICAg
aWYgKHJlc3VsdC50eXBlID09PSAic3RyaW5nIikKICAgICAgICAgICAgICAgICAgICAgcG9wdXBD
b250ZW50RWxlbWVudC50ZXh0Q29udGVudCA9ICJcIiIgKyBwb3B1cENvbnRlbnRFbGVtZW50LnRl
eHRDb250ZW50ICsgIlwiIjsKLSAgICAgICAgICAgICAgICB0aGlzLl9wb3B1cCA9IG5ldyBXZWJJ
bnNwZWN0b3IuUG9wb3Zlcihwb3B1cENvbnRlbnRFbGVtZW50KTsKLSAgICAgICAgICAgICAgICB0
aGlzLl9wb3B1cC5zaG93KGVsZW1lbnQpOworICAgICAgICAgICAgICAgIHZhciBwb3B1cCA9IG5l
dyBXZWJJbnNwZWN0b3IuUG9wb3Zlcihwb3B1cENvbnRlbnRFbGVtZW50KTsKKyAgICAgICAgICAg
ICAgICBwb3B1cC5zaG93KGVsZW1lbnQpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAg
ICAgICAgICB2YXIgcG9wdXBDb250ZW50RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQo
ImRpdiIpOwogCkBAIC03OTMsMTcgKzc0OSwxNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUu
cHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHNlY3Rpb24uaGVhZGVyRWxlbWVudC5hZGRT
dHlsZUNsYXNzKCJoaWRkZW4iKTsKICAgICAgICAgICAgICAgICBwb3B1cENvbnRlbnRFbGVtZW50
LmFwcGVuZENoaWxkKHNlY3Rpb24uZWxlbWVudCk7CiAKLSAgICAgICAgICAgICAgICB0aGlzLl9w
b3B1cCA9IG5ldyBXZWJJbnNwZWN0b3IuUG9wb3Zlcihwb3B1cENvbnRlbnRFbGVtZW50KTsKKyAg
ICAgICAgICAgICAgICB2YXIgcG9wdXAgPSBuZXcgV2ViSW5zcGVjdG9yLlBvcG92ZXIocG9wdXBD
b250ZW50RWxlbWVudCk7CiAgICAgICAgICAgICAgICAgY29uc3QgcG9wdXBXaWR0aCA9IDMwMDsK
ICAgICAgICAgICAgICAgICBjb25zdCBwb3B1cEhlaWdodCA9IDI1MDsKLSAgICAgICAgICAgICAg
ICB0aGlzLl9wb3B1cC5zaG93KGVsZW1lbnQsIHBvcHVwV2lkdGgsIHBvcHVwSGVpZ2h0KTsKKyAg
ICAgICAgICAgICAgICBwb3B1cC5zaG93KGVsZW1lbnQsIHBvcHVwV2lkdGgsIHBvcHVwSGVpZ2h0
KTsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIHRoaXMuX3BvcHVwLmhpZ2hsaWdodEVsZW1l
bnQgPSBlbGVtZW50OwotICAgICAgICAgICAgdGhpcy5fcG9wdXAuaGlnaGxpZ2h0RWxlbWVudC5h
ZGRTdHlsZUNsYXNzKCJzb3VyY2UtZnJhbWUtZXZhbC1leHByZXNzaW9uIik7Ci0gICAgICAgICAg
ICBwb3B1cENvbnRlbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIGtpbGxI
aWRlUG9wdXBUaW1lci5iaW5kKHRoaXMpLCB0cnVlKTsKKyAgICAgICAgICAgIHRoaXMuX2hpZ2hs
aWdodEVsZW1lbnQgPSBoaWdobGlnaHRFbGVtZW50OworICAgICAgICAgICAgdGhpcy5faGlnaGxp
Z2h0RWxlbWVudC5hZGRTdHlsZUNsYXNzKCJzb3VyY2UtZnJhbWUtZXZhbC1leHByZXNzaW9uIik7
CisgICAgICAgICAgICB0aGlzLl9wb3BvdmVySGVscGVyLnBvcHVwID0gcG9wdXA7CiAgICAgICAg
IH0KLQotICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5ldmFsdWF0ZUluU2VsZWN0ZWRDYWxsRnJhbWUo
ZWxlbWVudC50ZXh0Q29udGVudCwgc2hvd09iamVjdFBvcHVwLmJpbmQodGhpcykpOworICAgICAg
ICAKKyAgICAgICAgdGhpcy5fZGVsZWdhdGUuZXZhbHVhdGVJblNlbGVjdGVkQ2FsbEZyYW1lKGhp
Z2hsaWdodEVsZW1lbnQudGV4dENvbnRlbnQsIHNob3dPYmplY3RQb3B1cC5iaW5kKHRoaXMpKTsK
ICAgICB9LAogCiAgICAgX2VkaXRCcmVha3BvaW50Q29uZGl0aW9uOiBmdW5jdGlvbihsaW5lTnVt
YmVyLCBjb25kaXRpb24sIGNhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpzCmluZGV4IGQyNWQ5YmEuLmUwZTEwM2MgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5l
bC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFu
ZWwuanMKQEAgLTkzLDcgKzkzLDcgQEAgV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwgPSBmdW5j
dGlvbigpCiAgICAgdGhpcy5fYm91bmRhcmllc0FyZVZhbGlkID0gdHJ1ZTsKICAgICB0aGlzLl9z
Y3JvbGxUb3AgPSAwOwogCi0gICAgdGhpcy5fcG9wb3ZlckhlbHBlciA9IG5ldyBXZWJJbnNwZWN0
b3IuUG9wb3ZlckhlbHBlcih0aGlzLl9jb250YWluZXJFbGVtZW50LCB0aGlzLl9nZXRQb3BvdmVy
QW5jaG9yLmJpbmQodGhpcyksIHRoaXMuX3Nob3dQb3BvdmVyLmJpbmQodGhpcyksIHRydWUpOwor
ICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlBvcG92ZXJIZWxwZXIo
dGhpcy5fY29udGFpbmVyRWxlbWVudCwgdGhpcy5fZ2V0UG9wb3ZlckFuY2hvci5iaW5kKHRoaXMp
LCB0aGlzLl9zaG93UG9wb3Zlci5iaW5kKHRoaXMpKTsKICAgICB0aGlzLl9jb250YWluZXJFbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIHRoaXMuX21vdXNlTW92ZS5iaW5kKHRo
aXMpLCBmYWxzZSk7CiAgICAgdGhpcy5fY29udGFpbmVyRWxlbWVudC5hZGRFdmVudExpc3RlbmVy
KCJtb3VzZW91dCIsIHRoaXMuX21vdXNlT3V0LmJpbmQodGhpcyksIGZhbHNlKTsKIAo=
</data>
<flag name="review"
          id="101023"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105150</attachid>
            <date>2011-08-25 02:57:13 -0700</date>
            <delta_ts>2011-08-25 03:03:23 -0700</delta_ts>
            <desc>patch</desc>
            <filename>sourceframe-popover.diff</filename>
            <type>text/plain</type>
            <size>13692</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2NDI3NDEzLi5mMjdhMDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTEtMDgtMjQgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBbcmVmYWN0b3JpbmddIHVzZSBQb3BvdmVySGVscGVyIHRv
IGltcGxlbWVudCBwb3B1cCBpbiB0aGUgU291cmNlRnJhbWUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2ODU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQ
YW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUu
aW5pdGlhbGl6ZVZpZXcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUG9wb3Zlci5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Qb3BvdmVySGVscGVyLnByb3RvdHlwZS5zZXQgcG9wdXApOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlBvcG92ZXJIZWxwZXIucHJvdG90eXBlLl9tb3VzZUhvdmVyKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS53aWxsSGlkZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9pbml0aWFsaXplVGV4dFZpZXdlcik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9zY3JvbGwpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fbW91c2VEb3duKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX29uSGlkZVBvcHVwKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX3Nob3VsZFNob3dQb3B1cCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9nZXRQb3BvdmVy
QW5jaG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX2hp
Z2hsaWdodEV4cHJlc3Npb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnBy
b3RvdHlwZS5fb25TaG93UG9wdXAuc2hvd09iamVjdFBvcHVwKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX29uU2hvd1BvcHVwKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGltZWxpbmVQYW5lbCk6CisKIDIwMTEtMDgtMjUgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdv
b2dsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjkzNzYyLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcwpp
bmRleCAzMzU2NGEzLi45NmM1NjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcwpAQCAtODAsNyArODAsNyBAQCBXZWJJbnNwZWN0
b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fc2V0TGFy
Z2VyUmVzb3VyY2VzKHRoaXMudXNlTGFyZ2VSb3dzKTsKIAogICAgICAgICB0aGlzLl9hbGxvd1Bv
cG92ZXIgPSB0cnVlOwotICAgICAgICB0aGlzLl9wb3BvdmVySGVscGVyID0gbmV3IFdlYkluc3Bl
Y3Rvci5Qb3BvdmVySGVscGVyKHRoaXMuZWxlbWVudCwgdGhpcy5fZ2V0UG9wb3ZlckFuY2hvci5i
aW5kKHRoaXMpLCB0aGlzLl9zaG93UG9wb3Zlci5iaW5kKHRoaXMpLCB0cnVlKTsKKyAgICAgICAg
dGhpcy5fcG9wb3ZlckhlbHBlciA9IG5ldyBXZWJJbnNwZWN0b3IuUG9wb3ZlckhlbHBlcih0aGlz
LmVsZW1lbnQsIHRoaXMuX2dldFBvcG92ZXJBbmNob3IuYmluZCh0aGlzKSwgdGhpcy5fc2hvd1Bv
cG92ZXIuYmluZCh0aGlzKSk7CiAgICAgICAgIC8vIEVuYWJsZSBmYXN0ZXIgaGludC4KICAgICAg
ICAgdGhpcy5fcG9wb3ZlckhlbHBlci5zZXRUaW1lb3V0KDEwMCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUG9wb3Zlci5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUG9wb3Zlci5qcwppbmRleCA1NmE1YWRiLi5kNmVjODQx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BvcG92ZXIu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qb3BvdmVyLmpzCkBA
IC0xNjMsMTIgKzE2MywxMSBAQCBXZWJJbnNwZWN0b3IuUG9wb3Zlci5wcm90b3R5cGUgPSB7CiAv
KioKICAqIEBjb25zdHJ1Y3RvcgogICovCi1XZWJJbnNwZWN0b3IuUG9wb3ZlckhlbHBlciA9IGZ1
bmN0aW9uKHBhbmVsRWxlbWVudCwgZ2V0QW5jaG9yLCBzaG93UG9wdXAsIHNob3dPbkNsaWNrLCBv
bkhpZGUpCitXZWJJbnNwZWN0b3IuUG9wb3ZlckhlbHBlciA9IGZ1bmN0aW9uKHBhbmVsRWxlbWVu
dCwgZ2V0QW5jaG9yLCBzaG93UG9wdXAsIG9uSGlkZSkKIHsKICAgICB0aGlzLl9wYW5lbEVsZW1l
bnQgPSBwYW5lbEVsZW1lbnQ7CiAgICAgdGhpcy5fZ2V0QW5jaG9yID0gZ2V0QW5jaG9yOwogICAg
IHRoaXMuX3Nob3dQb3B1cCA9IHNob3dQb3B1cDsKLSAgICB0aGlzLl9zaG93T25DbGljayA9IHNo
b3dPbkNsaWNrOwogICAgIHRoaXMuX29uSGlkZSA9IG9uSGlkZTsKICAgICBwYW5lbEVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcy5fbW91c2VEb3duLmJpbmQodGhpcyks
IGZhbHNlKTsKICAgICBwYW5lbEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwg
dGhpcy5fbW91c2VNb3ZlLmJpbmQodGhpcyksIGZhbHNlKTsKQEAgLTIzNSw2ICsyMzQsNyBAQCBX
ZWJJbnNwZWN0b3IuUG9wb3ZlckhlbHBlci5wcm90b3R5cGUgPSB7CiAKICAgICBfaGlkZVBvcHVw
OiBmdW5jdGlvbigpCiAgICAgeworICAgICAgICBkZWxldGUgdGhpcy5fcG9wdXBJbnN0YW5jZU1h
cmtlcjsKICAgICAgICAgaWYgKCF0aGlzLl9wb3B1cCkKICAgICAgICAgICAgIHJldHVybjsKIApA
QCAtMjQ5LDkgKzI0OSwyMCBAQCBXZWJJbnNwZWN0b3IuUG9wb3ZlckhlbHBlci5wcm90b3R5cGUg
PSB7CiAgICAgewogICAgICAgICBkZWxldGUgdGhpcy5faG92ZXJUaW1lcjsKIAotICAgICAgICB0
aGlzLl9wb3B1cCA9IHRoaXMuX3Nob3dQb3B1cChlbGVtZW50KTsKLSAgICAgICAgaWYgKHRoaXMu
X3BvcHVwKQotICAgICAgICAgICAgdGhpcy5fcG9wdXAuY29udGVudEVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcy5fa2lsbEhpZGVQb3B1cFRpbWVyLmJpbmQodGhpcyks
IHRydWUpOworICAgICAgICB0aGlzLl9oaWRlUG9wdXAoKTsKKyAgICAgICAgdGhpcy5fcG9wdXBJ
bnN0YW5jZU1hcmtlciA9IHt9OyAvLyBBc3N1cmUgd2UgZ2V0IGNhbGxiYWNrIGJlZm9yZSBwb3B1
cCBpcyBoaWRkZW4gKG9yIGFub3RoZXIgaW5zdGFuY2UgaXMgc2hvd24pLgorICAgICAgICBmdW5j
dGlvbiBjYWxsYmFjayhpbnN0YW5jZU1hcmtlciwgcG9wdXApCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGlmIChpbnN0YW5jZU1hcmtlciAhPSB0aGlzLl9wb3B1cEluc3RhbmNlTWFya2VyKQorICAg
ICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9wb3B1cEluc3Rh
bmNlTWFya2VyOworICAgICAgICAgICAgdGhpcy5fcG9wdXAgPSBwb3B1cDsKKyAgICAgICAgICAg
IGlmICh0aGlzLl9wb3B1cCkKKyAgICAgICAgICAgICAgICB0aGlzLl9wb3B1cC5jb250ZW50RWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0aGlzLl9raWxsSGlkZVBvcHVwVGlt
ZXIuYmluZCh0aGlzKSwgdHJ1ZSk7CisgICAgICAgIH0KKyAgICAgICAgdmFyIHBvcHVwID0gdGhp
cy5fc2hvd1BvcHVwKGVsZW1lbnQsIGNhbGxiYWNrLmJpbmQodGhpcywgdGhpcy5fcG9wdXBJbnN0
YW5jZU1hcmtlcikpOworICAgICAgICBpZiAocG9wdXApCisgICAgICAgICAgICBjYWxsYmFjayhw
b3B1cCk7CiAgICAgfSwKIAogICAgIF9raWxsSGlkZVBvcHVwVGltZXI6IGZ1bmN0aW9uKCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCmlu
ZGV4IDMyOThkZGEuLjBiNGI1ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwpAQCAtOTEsNyArOTEsOCBAQCBXZWJJbnNwZWN0b3Iu
U291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAgICBpZiAodGhpcy5sb2FkZWQpCiAgICAg
ICAgICAgICB0aGlzLl90ZXh0Vmlld2VyLmZyZWVDYWNoZWRFbGVtZW50cygpOwogCi0gICAgICAg
IHRoaXMuX2hpZGVQb3B1cCgpOworICAgICAgICBpZiAodGhpcy5fcG9wb3ZlckhlbHBlcikKKyAg
ICAgICAgICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIuaGlkZVBvcHVwKCk7CiAgICAgICAgIHRoaXMu
X2NsZWFyTGluZUhpZ2hsaWdodCgpOwogICAgIH0sCiAKQEAgLTI4MCw4ICsyODEsOSBAQCBXZWJJ
bnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogCiAgICAgICAgIHZhciBlbGVtZW50
ID0gdGhpcy5fdGV4dFZpZXdlci5lbGVtZW50OwogICAgICAgICBpZiAodGhpcy5fZGVsZWdhdGUu
ZGVidWdnaW5nU3VwcG9ydGVkKCkpIHsKKyAgICAgICAgICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIg
PSBuZXcgV2ViSW5zcGVjdG9yLlBvcG92ZXJIZWxwZXIoZWxlbWVudCwKKyAgICAgICAgICAgICAg
ICB0aGlzLl9nZXRQb3BvdmVyQW5jaG9yLmJpbmQodGhpcyksIHRoaXMuX29uU2hvd1BvcHVwLmJp
bmQodGhpcyksIHRoaXMuX29uSGlkZVBvcHVwLmJpbmQodGhpcykpOwogICAgICAgICAgICAgZWxl
bWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZWRvd24iLCB0aGlzLl9tb3VzZURvd24uYmluZCh0
aGlzKSwgdHJ1ZSk7Ci0gICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNl
bW92ZSIsIHRoaXMuX21vdXNlTW92ZS5iaW5kKHRoaXMpLCB0cnVlKTsKICAgICAgICAgICAgIGVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigic2Nyb2xsIiwgdGhpcy5fc2Nyb2xsLmJpbmQodGhpcyks
IHRydWUpOwogICAgICAgICB9CiAKQEAgLTYzMSwxMiArNjMzLDE0IEBAIFdlYkluc3BlY3Rvci5T
b3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAKICAgICBfc2Nyb2xsOiBmdW5jdGlvbihldmVudCkK
ICAgICB7Ci0gICAgICAgIHRoaXMuX2hpZGVQb3B1cCgpOworICAgICAgICBpZiAodGhpcy5fcG9w
b3ZlckhlbHBlcikKKyAgICAgICAgICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIuaGlkZVBvcHVwKCk7
CiAgICAgfSwKIAogICAgIF9tb3VzZURvd246IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAg
ICAgdGhpcy5faGlkZVBvcHVwKCk7CisgICAgICAgIGlmICh0aGlzLl9wb3BvdmVySGVscGVyKQor
ICAgICAgICAgICAgdGhpcy5fcG9wb3ZlckhlbHBlci5oaWRlUG9wdXAoKTsKICAgICAgICAgaWYg
KGV2ZW50LmJ1dHRvbiAhPSAwIHx8IGV2ZW50LmFsdEtleSB8fCBldmVudC5jdHJsS2V5IHx8IGV2
ZW50Lm1ldGFLZXkpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIHZhciB0YXJnZXQgPSBl
dmVudC50YXJnZXQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygid2Via2l0LWxpbmUtbnVt
YmVyIik7CkBAIC02NTUsNzkgKzY1OSw0NCBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJv
dG90eXBlID0gewogICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwogICAgIH0sCiAKLSAg
ICBfbW91c2VNb3ZlOiBmdW5jdGlvbihldmVudCkKKyAgICBfb25IaWRlUG9wdXA6IGZ1bmN0aW9u
KCkKICAgICB7Ci0gICAgICAgIC8vIFByZXRlbmQgdGhhdCBub3RoaW5nIGhhcyBoYXBwZW5lZC4K
LSAgICAgICAgaWYgKHRoaXMuX2hvdmVyRWxlbWVudCA9PT0gZXZlbnQudGFyZ2V0IHx8IGV2ZW50
LnRhcmdldC5oYXNTdHlsZUNsYXNzKCJzb3VyY2UtZnJhbWUtZXZhbC1leHByZXNzaW9uIikpCi0g
ICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdGhpcy5fcmVzZXRIb3ZlclRpbWVyKCk7Ci0g
ICAgICAgIC8vIFVzZXIgaGFzIDUwMG1zIHRvIHJlYWNoIHRoZSBwb3B1cC4KLSAgICAgICAgaWYg
KHRoaXMuX3BvcHVwKSB7Ci0gICAgICAgICAgICB2YXIgc2VsZiA9IHRoaXM7Ci0gICAgICAgICAg
ICBmdW5jdGlvbiBkb0hpZGUoKQotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIHNlbGYu
X2hpZGVQb3B1cCgpOwotICAgICAgICAgICAgICAgIGRlbGV0ZSBzZWxmLl9oaWRlUG9wdXBUaW1l
cjsKLSAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGlmICghKCJfaGlkZVBvcHVwVGltZXIiIGlu
IHRoaXMpKQotICAgICAgICAgICAgICAgIHRoaXMuX2hpZGVQb3B1cFRpbWVyID0gc2V0VGltZW91
dChkb0hpZGUsIDUwMCk7CisgICAgICAgIC8vIFJlcGxhY2UgaGlnbGlnaHQgZWxlbWVudCB3aXRo
IGl0cyBjb250ZW50cyBpbnBsYWNlLgorICAgICAgICB2YXIgaGlnaGxpZ2h0RWxlbWVudCA9IHRo
aXMuX2hpZ2hsaWdodEVsZW1lbnQ7CisgICAgICAgIHZhciBwYXJlbnRFbGVtZW50ID0gaGlnaGxp
Z2h0RWxlbWVudC5wYXJlbnRFbGVtZW50OworICAgICAgICB2YXIgY2hpbGQgPSBoaWdobGlnaHRF
bGVtZW50LmZpcnN0Q2hpbGQ7CisgICAgICAgIHdoaWxlIChjaGlsZCkgeworICAgICAgICAgICAg
dmFyIG5leHRTaWJsaW5nID0gY2hpbGQubmV4dFNpYmxpbmc7CisgICAgICAgICAgICBwYXJlbnRF
bGVtZW50Lmluc2VydEJlZm9yZShjaGlsZCwgaGlnaGxpZ2h0RWxlbWVudCk7CisgICAgICAgICAg
ICBjaGlsZCA9IG5leHRTaWJsaW5nOwogICAgICAgICB9CisgICAgICAgIHBhcmVudEVsZW1lbnQu
cmVtb3ZlQ2hpbGQoaGlnaGxpZ2h0RWxlbWVudCk7CisgICAgICAgIHRoaXMuX2RlbGVnYXRlLnJl
bGVhc2VFdmFsdWF0aW9uUmVzdWx0KCk7CisgICAgfSwKIAotICAgICAgICB0aGlzLl9ob3ZlckVs
ZW1lbnQgPSBldmVudC50YXJnZXQ7Ci0KLSAgICAgICAgLy8gTm93IHRoYXQgY2xlYW51cCByb3V0
aW5lcyBhcmUgc2V0IHVwIGFib3ZlLCBsZWF2ZSB0aGlzIGluIGNhc2Ugd2UgYXJlIG5vdCBvbiBh
IGJyZWFrLgorICAgIF9zaG91bGRTaG93UG9wdXA6IGZ1bmN0aW9uKGVsZW1lbnQpCisgICAgewog
ICAgICAgICBpZiAoIXRoaXMuX2RlbGVnYXRlLmRlYnVnZ2VyUGF1c2VkKCkpCi0gICAgICAgICAg
ICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZWxlbWVu
dC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNzKCJ3ZWJraXQtbGluZS1jb250ZW50IikpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICAgICAgLy8gV2UgYXJlIGludGVyZXN0ZWQg
aW4gaWRlbnRpZmllcnMgYW5kICJ0aGlzIiBrZXl3b3JkLgotICAgICAgICBpZiAodGhpcy5faG92
ZXJFbGVtZW50Lmhhc1N0eWxlQ2xhc3MoIndlYmtpdC1qYXZhc2NyaXB0LWtleXdvcmQiKSkgewot
ICAgICAgICAgICAgaWYgKHRoaXMuX2hvdmVyRWxlbWVudC50ZXh0Q29udGVudCAhPT0gInRoaXMi
KQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfSBlbHNlIGlmICghdGhpcy5faG92
ZXJFbGVtZW50Lmhhc1N0eWxlQ2xhc3MoIndlYmtpdC1qYXZhc2NyaXB0LWlkZW50IikpCi0gICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChlbGVtZW50Lmhhc1N0eWxlQ2xhc3MoIndlYmtp
dC1qYXZhc2NyaXB0LWtleXdvcmQiKSkKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50LnRleHRD
b250ZW50ID09PSAidGhpcyI7CiAKLSAgICAgICAgY29uc3QgdG9vbFRpcERlbGF5ID0gdGhpcy5f
cG9wdXAgPyA2MDAgOiAxMDAwOwotICAgICAgICB0aGlzLl9ob3ZlclRpbWVyID0gc2V0VGltZW91
dCh0aGlzLl9tb3VzZUhvdmVyLmJpbmQodGhpcywgdGhpcy5faG92ZXJFbGVtZW50KSwgdG9vbFRp
cERlbGF5KTsKLSAgICB9LAotCi0gICAgX3Jlc2V0SG92ZXJUaW1lcjogZnVuY3Rpb24oKQotICAg
IHsKLSAgICAgICAgaWYgKHRoaXMuX2hvdmVyVGltZXIpIHsKLSAgICAgICAgICAgIGNsZWFyVGlt
ZW91dCh0aGlzLl9ob3ZlclRpbWVyKTsKLSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9ob3ZlclRp
bWVyOwotICAgICAgICB9CisgICAgICAgIHJldHVybiBlbGVtZW50Lmhhc1N0eWxlQ2xhc3MoIndl
YmtpdC1qYXZhc2NyaXB0LWlkZW50Iik7CiAgICAgfSwKIAotICAgIF9oaWRlUG9wdXA6IGZ1bmN0
aW9uKCkKKyAgICBfZ2V0UG9wb3ZlckFuY2hvcjogZnVuY3Rpb24oZWxlbWVudCkKICAgICB7Ci0g
ICAgICAgIHRoaXMuX3Jlc2V0SG92ZXJUaW1lcigpOwotICAgICAgICBpZiAoIXRoaXMuX3BvcHVw
KQorICAgICAgICBpZiAoIXRoaXMuX3Nob3VsZFNob3dQb3B1cChlbGVtZW50KSkKICAgICAgICAg
ICAgIHJldHVybjsKLQotICAgICAgICAvLyBSZXBsYWNlIGhpZ2xpZ2h0IGVsZW1lbnQgd2l0aCBp
dHMgY29udGVudHMgaW5wbGFjZS4KLSAgICAgICAgdmFyIHBhcmVudEVsZW1lbnQgPSB0aGlzLl9w
b3B1cC5oaWdobGlnaHRFbGVtZW50LnBhcmVudEVsZW1lbnQ7Ci0gICAgICAgIHZhciBjaGlsZCA9
IHRoaXMuX3BvcHVwLmhpZ2hsaWdodEVsZW1lbnQuZmlyc3RDaGlsZDsKLSAgICAgICAgd2hpbGUg
KGNoaWxkKSB7Ci0gICAgICAgICAgICB2YXIgbmV4dFNpYmxpbmcgPSBjaGlsZC5uZXh0U2libGlu
ZzsKLSAgICAgICAgICAgIHBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKGNoaWxkLCB0aGlzLl9w
b3B1cC5oaWdobGlnaHRFbGVtZW50KTsKLSAgICAgICAgICAgIGNoaWxkID0gbmV4dFNpYmxpbmc7
Ci0gICAgICAgIH0KLSAgICAgICAgcGFyZW50RWxlbWVudC5yZW1vdmVDaGlsZCh0aGlzLl9wb3B1
cC5oaWdobGlnaHRFbGVtZW50KTsKLQotICAgICAgICB0aGlzLl9wb3B1cC5oaWRlKCk7Ci0gICAg
ICAgIGRlbGV0ZSB0aGlzLl9wb3B1cDsKLSAgICAgICAgdGhpcy5fZGVsZWdhdGUucmVsZWFzZUV2
YWx1YXRpb25SZXN1bHQoKTsKKyAgICAgICAgcmV0dXJuIGVsZW1lbnQ7CiAgICAgfSwKIAotICAg
IF9tb3VzZUhvdmVyOiBmdW5jdGlvbihlbGVtZW50KQorICAgIF9oaWdobGlnaHRFeHByZXNzaW9u
OiBmdW5jdGlvbihlbGVtZW50KQogICAgIHsKLSAgICAgICAgZGVsZXRlIHRoaXMuX2hvdmVyVGlt
ZXI7Ci0KLSAgICAgICAgdmFyIGxpbmVSb3cgPSBlbGVtZW50LmVuY2xvc2luZ05vZGVPclNlbGZX
aXRoQ2xhc3MoIndlYmtpdC1saW5lLWNvbnRlbnQiKTsKLSAgICAgICAgaWYgKCFsaW5lUm93KQot
ICAgICAgICAgICAgcmV0dXJuOwotCiAgICAgICAgIC8vIENvbGxlY3QgdG9rZW5zIGJlbG9uZ2lu
ZyB0byBldmFsdWF0ZWQgZXhyZXNzaW9uLgogICAgICAgICB2YXIgdG9rZW5zID0gWyBlbGVtZW50
IF07CiAgICAgICAgIHZhciB0b2tlbiA9IGVsZW1lbnQucHJldmlvdXNTaWJsaW5nOwpAQCAtNzQ0
LDI1ICs3MTMsMTIgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0b2tlbnMubGVuZ3RoOyArK2kpCiAgICAgICAgICAg
ICBjb250YWluZXIuYXBwZW5kQ2hpbGQodG9rZW5zW2ldKTsKICAgICAgICAgcGFyZW50RWxlbWVu
dC5pbnNlcnRCZWZvcmUoY29udGFpbmVyLCBuZXh0RWxlbWVudCk7Ci0gICAgICAgIHRoaXMuX3No
b3dQb3B1cChjb250YWluZXIpOworICAgICAgICByZXR1cm4gY29udGFpbmVyOwogICAgIH0sCiAK
LSAgICBfc2hvd1BvcHVwOiBmdW5jdGlvbihlbGVtZW50KQorICAgIF9vblNob3dQb3B1cDogZnVu
Y3Rpb24oZWxlbWVudCwgY2FsbGJhY2spCiAgICAgewotICAgICAgICBpZiAoIXRoaXMuX2RlbGVn
YXRlLmRlYnVnZ2VyUGF1c2VkKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZnVu
Y3Rpb24ga2lsbEhpZGVQb3B1cFRpbWVyKCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKHRo
aXMuX2hpZGVQb3B1cFRpbWVyKSB7Ci0gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMu
X2hpZGVQb3B1cFRpbWVyKTsKLSAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5faGlkZVBvcHVw
VGltZXI7Ci0KLSAgICAgICAgICAgICAgICAvLyBXZSBrbm93IHRoYXQgd2UgcmVhY2hlZCB0aGUg
cG9wdXAsIGJ1dCB3ZSBtaWdodCBoYXZlIG1vdmVkIG92ZXIgb3RoZXIgZWxlbWVudHMuCi0gICAg
ICAgICAgICAgICAgLy8gRGlzY2FyZCBwZW5kaW5nIGNvbW1hbmQuCi0gICAgICAgICAgICAgICAg
dGhpcy5fcmVzZXRIb3ZlclRpbWVyKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICAg
ICAgdmFyIGhpZ2hsaWdodEVsZW1lbnQgPSB0aGlzLl9oaWdobGlnaHRFeHByZXNzaW9uKGVsZW1l
bnQpOwogCiAgICAgICAgIGZ1bmN0aW9uIHNob3dPYmplY3RQb3B1cChyZXN1bHQsIHdhc1Rocm93
bikKICAgICAgICAgewpAQCAtNzc3LDggKzczMyw4IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFt
ZS5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgcG9wdXBDb250ZW50RWxlbWVudC50ZXh0
Q29udGVudCA9IHJlc3VsdC5kZXNjcmlwdGlvbjsKICAgICAgICAgICAgICAgICBpZiAocmVzdWx0
LnR5cGUgPT09ICJzdHJpbmciKQogICAgICAgICAgICAgICAgICAgICBwb3B1cENvbnRlbnRFbGVt
ZW50LnRleHRDb250ZW50ID0gIlwiIiArIHBvcHVwQ29udGVudEVsZW1lbnQudGV4dENvbnRlbnQg
KyAiXCIiOwotICAgICAgICAgICAgICAgIHRoaXMuX3BvcHVwID0gbmV3IFdlYkluc3BlY3Rvci5Q
b3BvdmVyKHBvcHVwQ29udGVudEVsZW1lbnQpOwotICAgICAgICAgICAgICAgIHRoaXMuX3BvcHVw
LnNob3coZWxlbWVudCk7CisgICAgICAgICAgICAgICAgdmFyIHBvcHVwID0gbmV3IFdlYkluc3Bl
Y3Rvci5Qb3BvdmVyKHBvcHVwQ29udGVudEVsZW1lbnQpOworICAgICAgICAgICAgICAgIHBvcHVw
LnNob3coZWxlbWVudCk7CiAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgIHZh
ciBwb3B1cENvbnRlbnRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CiAK
QEAgLTc5MywxNyArNzQ5LDE3IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICAgICAgc2VjdGlvbi5oZWFkZXJFbGVtZW50LmFkZFN0eWxlQ2xhc3Mo
ImhpZGRlbiIpOwogICAgICAgICAgICAgICAgIHBvcHVwQ29udGVudEVsZW1lbnQuYXBwZW5kQ2hp
bGQoc2VjdGlvbi5lbGVtZW50KTsKIAotICAgICAgICAgICAgICAgIHRoaXMuX3BvcHVwID0gbmV3
IFdlYkluc3BlY3Rvci5Qb3BvdmVyKHBvcHVwQ29udGVudEVsZW1lbnQpOworICAgICAgICAgICAg
ICAgIHZhciBwb3B1cCA9IG5ldyBXZWJJbnNwZWN0b3IuUG9wb3Zlcihwb3B1cENvbnRlbnRFbGVt
ZW50KTsKICAgICAgICAgICAgICAgICBjb25zdCBwb3B1cFdpZHRoID0gMzAwOwogICAgICAgICAg
ICAgICAgIGNvbnN0IHBvcHVwSGVpZ2h0ID0gMjUwOwotICAgICAgICAgICAgICAgIHRoaXMuX3Bv
cHVwLnNob3coZWxlbWVudCwgcG9wdXBXaWR0aCwgcG9wdXBIZWlnaHQpOworICAgICAgICAgICAg
ICAgIHBvcHVwLnNob3coZWxlbWVudCwgcG9wdXBXaWR0aCwgcG9wdXBIZWlnaHQpOwogICAgICAg
ICAgICAgfQotICAgICAgICAgICAgdGhpcy5fcG9wdXAuaGlnaGxpZ2h0RWxlbWVudCA9IGVsZW1l
bnQ7Ci0gICAgICAgICAgICB0aGlzLl9wb3B1cC5oaWdobGlnaHRFbGVtZW50LmFkZFN0eWxlQ2xh
c3MoInNvdXJjZS1mcmFtZS1ldmFsLWV4cHJlc3Npb24iKTsKLSAgICAgICAgICAgIHBvcHVwQ29u
dGVudEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwga2lsbEhpZGVQb3B1cFRp
bWVyLmJpbmQodGhpcyksIHRydWUpOworICAgICAgICAgICAgdGhpcy5faGlnaGxpZ2h0RWxlbWVu
dCA9IGhpZ2hsaWdodEVsZW1lbnQ7CisgICAgICAgICAgICB0aGlzLl9oaWdobGlnaHRFbGVtZW50
LmFkZFN0eWxlQ2xhc3MoInNvdXJjZS1mcmFtZS1ldmFsLWV4cHJlc3Npb24iKTsKKyAgICAgICAg
ICAgIGNhbGxiYWNrKHBvcHVwKTsKICAgICAgICAgfQogCi0gICAgICAgIHRoaXMuX2RlbGVnYXRl
LmV2YWx1YXRlSW5TZWxlY3RlZENhbGxGcmFtZShlbGVtZW50LnRleHRDb250ZW50LCBzaG93T2Jq
ZWN0UG9wdXAuYmluZCh0aGlzKSk7CisgICAgICAgIHRoaXMuX2RlbGVnYXRlLmV2YWx1YXRlSW5T
ZWxlY3RlZENhbGxGcmFtZShoaWdobGlnaHRFbGVtZW50LnRleHRDb250ZW50LCBzaG93T2JqZWN0
UG9wdXAuYmluZCh0aGlzKSk7CiAgICAgfSwKIAogICAgIF9lZGl0QnJlYWtwb2ludENvbmRpdGlv
bjogZnVuY3Rpb24obGluZU51bWJlciwgY29uZGl0aW9uLCBjYWxsYmFjaykKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwppbmRleCBk
MjVkOWJhLi5lMGUxMDNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9UaW1lbGluZVBhbmVsLmpzCkBAIC05Myw3ICs5Myw3IEBAIFdlYkluc3BlY3Rvci5U
aW1lbGluZVBhbmVsID0gZnVuY3Rpb24oKQogICAgIHRoaXMuX2JvdW5kYXJpZXNBcmVWYWxpZCA9
IHRydWU7CiAgICAgdGhpcy5fc2Nyb2xsVG9wID0gMDsKIAotICAgIHRoaXMuX3BvcG92ZXJIZWxw
ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlBvcG92ZXJIZWxwZXIodGhpcy5fY29udGFpbmVyRWxlbWVu
dCwgdGhpcy5fZ2V0UG9wb3ZlckFuY2hvci5iaW5kKHRoaXMpLCB0aGlzLl9zaG93UG9wb3Zlci5i
aW5kKHRoaXMpLCB0cnVlKTsKKyAgICB0aGlzLl9wb3BvdmVySGVscGVyID0gbmV3IFdlYkluc3Bl
Y3Rvci5Qb3BvdmVySGVscGVyKHRoaXMuX2NvbnRhaW5lckVsZW1lbnQsIHRoaXMuX2dldFBvcG92
ZXJBbmNob3IuYmluZCh0aGlzKSwgdGhpcy5fc2hvd1BvcG92ZXIuYmluZCh0aGlzKSk7CiAgICAg
dGhpcy5fY29udGFpbmVyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0aGlz
Ll9tb3VzZU1vdmUuYmluZCh0aGlzKSwgZmFsc2UpOwogICAgIHRoaXMuX2NvbnRhaW5lckVsZW1l
bnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2VvdXQiLCB0aGlzLl9tb3VzZU91dC5iaW5kKHRoaXMp
LCBmYWxzZSk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105151</attachid>
            <date>2011-08-25 03:03:23 -0700</date>
            <delta_ts>2011-08-25 06:35:09 -0700</delta_ts>
            <desc>patch (!= =&gt; !===)</desc>
            <filename>sourceframe-popover.diff</filename>
            <type>text/plain</type>
            <size>13693</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2NDI3NDEzLi5mMjdhMDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTEtMDgtMjQgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBbcmVmYWN0b3JpbmddIHVzZSBQb3BvdmVySGVscGVyIHRv
IGltcGxlbWVudCBwb3B1cCBpbiB0aGUgU291cmNlRnJhbWUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2ODU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQ
YW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUu
aW5pdGlhbGl6ZVZpZXcpOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvUG9wb3Zlci5q
czoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5Qb3BvdmVySGVscGVyLnByb3RvdHlwZS5zZXQgcG9wdXApOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLlBvcG92ZXJIZWxwZXIucHJvdG90eXBlLl9tb3VzZUhvdmVyKToKKyAgICAgICAg
KiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzOgorICAgICAgICAoV2ViSW5zcGVj
dG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS53aWxsSGlkZSk6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9pbml0aWFsaXplVGV4dFZpZXdlcik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9zY3JvbGwpOgorICAgICAgICAo
V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fbW91c2VEb3duKToKKyAgICAgICAg
KFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX29uSGlkZVBvcHVwKToKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX3Nob3VsZFNob3dQb3B1cCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9nZXRQb3BvdmVy
QW5jaG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX2hp
Z2hsaWdodEV4cHJlc3Npb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnBy
b3RvdHlwZS5fb25TaG93UG9wdXAuc2hvd09iamVjdFBvcHVwKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX29uU2hvd1BvcHVwKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3Iu
VGltZWxpbmVQYW5lbCk6CisKIDIwMTEtMDgtMjUgIE1PUklUQSBIYWppbWUgIDxtb3JyaXRhQGdv
b2dsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjkzNzYyLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9OZXR3b3JrUGFuZWwu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcwpp
bmRleCAzMzU2NGEzLi45NmM1NjU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcwpAQCAtODAsNyArODAsNyBAQCBXZWJJbnNwZWN0
b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlID0gewogICAgICAgICAgICAgdGhpcy5fc2V0TGFy
Z2VyUmVzb3VyY2VzKHRoaXMudXNlTGFyZ2VSb3dzKTsKIAogICAgICAgICB0aGlzLl9hbGxvd1Bv
cG92ZXIgPSB0cnVlOwotICAgICAgICB0aGlzLl9wb3BvdmVySGVscGVyID0gbmV3IFdlYkluc3Bl
Y3Rvci5Qb3BvdmVySGVscGVyKHRoaXMuZWxlbWVudCwgdGhpcy5fZ2V0UG9wb3ZlckFuY2hvci5i
aW5kKHRoaXMpLCB0aGlzLl9zaG93UG9wb3Zlci5iaW5kKHRoaXMpLCB0cnVlKTsKKyAgICAgICAg
dGhpcy5fcG9wb3ZlckhlbHBlciA9IG5ldyBXZWJJbnNwZWN0b3IuUG9wb3ZlckhlbHBlcih0aGlz
LmVsZW1lbnQsIHRoaXMuX2dldFBvcG92ZXJBbmNob3IuYmluZCh0aGlzKSwgdGhpcy5fc2hvd1Bv
cG92ZXIuYmluZCh0aGlzKSk7CiAgICAgICAgIC8vIEVuYWJsZSBmYXN0ZXIgaGludC4KICAgICAg
ICAgdGhpcy5fcG9wb3ZlckhlbHBlci5zZXRUaW1lb3V0KDEwMCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUG9wb3Zlci5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUG9wb3Zlci5qcwppbmRleCA1NmE1YWRiLi5hOTViNWFi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1BvcG92ZXIu
anMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qb3BvdmVyLmpzCkBA
IC0xNjMsMTIgKzE2MywxMSBAQCBXZWJJbnNwZWN0b3IuUG9wb3Zlci5wcm90b3R5cGUgPSB7CiAv
KioKICAqIEBjb25zdHJ1Y3RvcgogICovCi1XZWJJbnNwZWN0b3IuUG9wb3ZlckhlbHBlciA9IGZ1
bmN0aW9uKHBhbmVsRWxlbWVudCwgZ2V0QW5jaG9yLCBzaG93UG9wdXAsIHNob3dPbkNsaWNrLCBv
bkhpZGUpCitXZWJJbnNwZWN0b3IuUG9wb3ZlckhlbHBlciA9IGZ1bmN0aW9uKHBhbmVsRWxlbWVu
dCwgZ2V0QW5jaG9yLCBzaG93UG9wdXAsIG9uSGlkZSkKIHsKICAgICB0aGlzLl9wYW5lbEVsZW1l
bnQgPSBwYW5lbEVsZW1lbnQ7CiAgICAgdGhpcy5fZ2V0QW5jaG9yID0gZ2V0QW5jaG9yOwogICAg
IHRoaXMuX3Nob3dQb3B1cCA9IHNob3dQb3B1cDsKLSAgICB0aGlzLl9zaG93T25DbGljayA9IHNo
b3dPbkNsaWNrOwogICAgIHRoaXMuX29uSGlkZSA9IG9uSGlkZTsKICAgICBwYW5lbEVsZW1lbnQu
YWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcy5fbW91c2VEb3duLmJpbmQodGhpcyks
IGZhbHNlKTsKICAgICBwYW5lbEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwg
dGhpcy5fbW91c2VNb3ZlLmJpbmQodGhpcyksIGZhbHNlKTsKQEAgLTIzNSw2ICsyMzQsNyBAQCBX
ZWJJbnNwZWN0b3IuUG9wb3ZlckhlbHBlci5wcm90b3R5cGUgPSB7CiAKICAgICBfaGlkZVBvcHVw
OiBmdW5jdGlvbigpCiAgICAgeworICAgICAgICBkZWxldGUgdGhpcy5fcG9wdXBJbnN0YW5jZU1h
cmtlcjsKICAgICAgICAgaWYgKCF0aGlzLl9wb3B1cCkKICAgICAgICAgICAgIHJldHVybjsKIApA
QCAtMjQ5LDkgKzI0OSwyMCBAQCBXZWJJbnNwZWN0b3IuUG9wb3ZlckhlbHBlci5wcm90b3R5cGUg
PSB7CiAgICAgewogICAgICAgICBkZWxldGUgdGhpcy5faG92ZXJUaW1lcjsKIAotICAgICAgICB0
aGlzLl9wb3B1cCA9IHRoaXMuX3Nob3dQb3B1cChlbGVtZW50KTsKLSAgICAgICAgaWYgKHRoaXMu
X3BvcHVwKQotICAgICAgICAgICAgdGhpcy5fcG9wdXAuY29udGVudEVsZW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcy5fa2lsbEhpZGVQb3B1cFRpbWVyLmJpbmQodGhpcyks
IHRydWUpOworICAgICAgICB0aGlzLl9oaWRlUG9wdXAoKTsKKyAgICAgICAgdGhpcy5fcG9wdXBJ
bnN0YW5jZU1hcmtlciA9IHt9OyAvLyBBc3N1cmUgd2UgZ2V0IGNhbGxiYWNrIGJlZm9yZSBwb3B1
cCBpcyBoaWRkZW4gKG9yIGFub3RoZXIgaW5zdGFuY2UgaXMgc2hvd24pLgorICAgICAgICBmdW5j
dGlvbiBjYWxsYmFjayhpbnN0YW5jZU1hcmtlciwgcG9wdXApCisgICAgICAgIHsKKyAgICAgICAg
ICAgIGlmIChpbnN0YW5jZU1hcmtlciAhPT0gdGhpcy5fcG9wdXBJbnN0YW5jZU1hcmtlcikKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBkZWxldGUgdGhpcy5fcG9wdXBJbnN0
YW5jZU1hcmtlcjsKKyAgICAgICAgICAgIHRoaXMuX3BvcHVwID0gcG9wdXA7CisgICAgICAgICAg
ICBpZiAodGhpcy5fcG9wdXApCisgICAgICAgICAgICAgICAgdGhpcy5fcG9wdXAuY29udGVudEVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcy5fa2lsbEhpZGVQb3B1cFRp
bWVyLmJpbmQodGhpcyksIHRydWUpOworICAgICAgICB9CisgICAgICAgIHZhciBwb3B1cCA9IHRo
aXMuX3Nob3dQb3B1cChlbGVtZW50LCBjYWxsYmFjay5iaW5kKHRoaXMsIHRoaXMuX3BvcHVwSW5z
dGFuY2VNYXJrZXIpKTsKKyAgICAgICAgaWYgKHBvcHVwKQorICAgICAgICAgICAgY2FsbGJhY2so
cG9wdXApOwogICAgIH0sCiAKICAgICBfa2lsbEhpZGVQb3B1cFRpbWVyOiBmdW5jdGlvbigpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1l
LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3VyY2VGcmFtZS5qcwpp
bmRleCAzMjk4ZGRhLi4wYjRiNWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKQEAgLTkxLDcgKzkxLDggQEAgV2ViSW5zcGVjdG9y
LlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKHRoaXMubG9hZGVkKQogICAg
ICAgICAgICAgdGhpcy5fdGV4dFZpZXdlci5mcmVlQ2FjaGVkRWxlbWVudHMoKTsKIAotICAgICAg
ICB0aGlzLl9oaWRlUG9wdXAoKTsKKyAgICAgICAgaWYgKHRoaXMuX3BvcG92ZXJIZWxwZXIpCisg
ICAgICAgICAgICB0aGlzLl9wb3BvdmVySGVscGVyLmhpZGVQb3B1cCgpOwogICAgICAgICB0aGlz
Ll9jbGVhckxpbmVIaWdobGlnaHQoKTsKICAgICB9LAogCkBAIC0yODAsOCArMjgxLDkgQEAgV2Vi
SW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKIAogICAgICAgICB2YXIgZWxlbWVu
dCA9IHRoaXMuX3RleHRWaWV3ZXIuZWxlbWVudDsKICAgICAgICAgaWYgKHRoaXMuX2RlbGVnYXRl
LmRlYnVnZ2luZ1N1cHBvcnRlZCgpKSB7CisgICAgICAgICAgICB0aGlzLl9wb3BvdmVySGVscGVy
ID0gbmV3IFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyKGVsZW1lbnQsCisgICAgICAgICAgICAg
ICAgdGhpcy5fZ2V0UG9wb3ZlckFuY2hvci5iaW5kKHRoaXMpLCB0aGlzLl9vblNob3dQb3B1cC5i
aW5kKHRoaXMpLCB0aGlzLl9vbkhpZGVQb3B1cC5iaW5kKHRoaXMpKTsKICAgICAgICAgICAgIGVs
ZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcy5fbW91c2VEb3duLmJpbmQo
dGhpcyksIHRydWUpOwotICAgICAgICAgICAgZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3Vz
ZW1vdmUiLCB0aGlzLl9tb3VzZU1vdmUuYmluZCh0aGlzKSwgdHJ1ZSk7CiAgICAgICAgICAgICBl
bGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHRoaXMuX3Njcm9sbC5iaW5kKHRoaXMp
LCB0cnVlKTsKICAgICAgICAgfQogCkBAIC02MzEsMTIgKzYzMywxNCBAQCBXZWJJbnNwZWN0b3Iu
U291cmNlRnJhbWUucHJvdG90eXBlID0gewogCiAgICAgX3Njcm9sbDogZnVuY3Rpb24oZXZlbnQp
CiAgICAgewotICAgICAgICB0aGlzLl9oaWRlUG9wdXAoKTsKKyAgICAgICAgaWYgKHRoaXMuX3Bv
cG92ZXJIZWxwZXIpCisgICAgICAgICAgICB0aGlzLl9wb3BvdmVySGVscGVyLmhpZGVQb3B1cCgp
OwogICAgIH0sCiAKICAgICBfbW91c2VEb3duOiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAg
ICAgIHRoaXMuX2hpZGVQb3B1cCgpOworICAgICAgICBpZiAodGhpcy5fcG9wb3ZlckhlbHBlcikK
KyAgICAgICAgICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIuaGlkZVBvcHVwKCk7CiAgICAgICAgIGlm
IChldmVudC5idXR0b24gIT0gMCB8fCBldmVudC5hbHRLZXkgfHwgZXZlbnQuY3RybEtleSB8fCBl
dmVudC5tZXRhS2V5KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB2YXIgdGFyZ2V0ID0g
ZXZlbnQudGFyZ2V0LmVuY2xvc2luZ05vZGVPclNlbGZXaXRoQ2xhc3MoIndlYmtpdC1saW5lLW51
bWJlciIpOwpAQCAtNjU1LDc5ICs2NTksNDQgQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnBy
b3RvdHlwZSA9IHsKICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKICAgICB9LAogCi0g
ICAgX21vdXNlTW92ZTogZnVuY3Rpb24oZXZlbnQpCisgICAgX29uSGlkZVBvcHVwOiBmdW5jdGlv
bigpCiAgICAgewotICAgICAgICAvLyBQcmV0ZW5kIHRoYXQgbm90aGluZyBoYXMgaGFwcGVuZWQu
Ci0gICAgICAgIGlmICh0aGlzLl9ob3ZlckVsZW1lbnQgPT09IGV2ZW50LnRhcmdldCB8fCBldmVu
dC50YXJnZXQuaGFzU3R5bGVDbGFzcygic291cmNlLWZyYW1lLWV2YWwtZXhwcmVzc2lvbiIpKQot
ICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRoaXMuX3Jlc2V0SG92ZXJUaW1lcigpOwot
ICAgICAgICAvLyBVc2VyIGhhcyA1MDBtcyB0byByZWFjaCB0aGUgcG9wdXAuCi0gICAgICAgIGlm
ICh0aGlzLl9wb3B1cCkgewotICAgICAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwotICAgICAgICAg
ICAgZnVuY3Rpb24gZG9IaWRlKCkKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBzZWxm
Ll9oaWRlUG9wdXAoKTsKLSAgICAgICAgICAgICAgICBkZWxldGUgc2VsZi5faGlkZVBvcHVwVGlt
ZXI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBpZiAoISgiX2hpZGVQb3B1cFRpbWVyIiBp
biB0aGlzKSkKLSAgICAgICAgICAgICAgICB0aGlzLl9oaWRlUG9wdXBUaW1lciA9IHNldFRpbWVv
dXQoZG9IaWRlLCA1MDApOworICAgICAgICAvLyBSZXBsYWNlIGhpZ2xpZ2h0IGVsZW1lbnQgd2l0
aCBpdHMgY29udGVudHMgaW5wbGFjZS4KKyAgICAgICAgdmFyIGhpZ2hsaWdodEVsZW1lbnQgPSB0
aGlzLl9oaWdobGlnaHRFbGVtZW50OworICAgICAgICB2YXIgcGFyZW50RWxlbWVudCA9IGhpZ2hs
aWdodEVsZW1lbnQucGFyZW50RWxlbWVudDsKKyAgICAgICAgdmFyIGNoaWxkID0gaGlnaGxpZ2h0
RWxlbWVudC5maXJzdENoaWxkOworICAgICAgICB3aGlsZSAoY2hpbGQpIHsKKyAgICAgICAgICAg
IHZhciBuZXh0U2libGluZyA9IGNoaWxkLm5leHRTaWJsaW5nOworICAgICAgICAgICAgcGFyZW50
RWxlbWVudC5pbnNlcnRCZWZvcmUoY2hpbGQsIGhpZ2hsaWdodEVsZW1lbnQpOworICAgICAgICAg
ICAgY2hpbGQgPSBuZXh0U2libGluZzsKICAgICAgICAgfQorICAgICAgICBwYXJlbnRFbGVtZW50
LnJlbW92ZUNoaWxkKGhpZ2hsaWdodEVsZW1lbnQpOworICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5y
ZWxlYXNlRXZhbHVhdGlvblJlc3VsdCgpOworICAgIH0sCiAKLSAgICAgICAgdGhpcy5faG92ZXJF
bGVtZW50ID0gZXZlbnQudGFyZ2V0OwotCi0gICAgICAgIC8vIE5vdyB0aGF0IGNsZWFudXAgcm91
dGluZXMgYXJlIHNldCB1cCBhYm92ZSwgbGVhdmUgdGhpcyBpbiBjYXNlIHdlIGFyZSBub3Qgb24g
YSBicmVhay4KKyAgICBfc2hvdWxkU2hvd1BvcHVwOiBmdW5jdGlvbihlbGVtZW50KQorICAgIHsK
ICAgICAgICAgaWYgKCF0aGlzLl9kZWxlZ2F0ZS5kZWJ1Z2dlclBhdXNlZCgpKQotICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICBpZiAoIWVsZW1l
bnQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygid2Via2l0LWxpbmUtY29udGVudCIpKQor
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgICAgIC8vIFdlIGFyZSBpbnRlcmVzdGVk
IGluIGlkZW50aWZpZXJzIGFuZCAidGhpcyIga2V5d29yZC4KLSAgICAgICAgaWYgKHRoaXMuX2hv
dmVyRWxlbWVudC5oYXNTdHlsZUNsYXNzKCJ3ZWJraXQtamF2YXNjcmlwdC1rZXl3b3JkIikpIHsK
LSAgICAgICAgICAgIGlmICh0aGlzLl9ob3ZlckVsZW1lbnQudGV4dENvbnRlbnQgIT09ICJ0aGlz
IikKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0gZWxzZSBpZiAoIXRoaXMuX2hv
dmVyRWxlbWVudC5oYXNTdHlsZUNsYXNzKCJ3ZWJraXQtamF2YXNjcmlwdC1pZGVudCIpKQotICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICBpZiAoZWxlbWVudC5oYXNTdHlsZUNsYXNzKCJ3ZWJr
aXQtamF2YXNjcmlwdC1rZXl3b3JkIikpCisgICAgICAgICAgICByZXR1cm4gZWxlbWVudC50ZXh0
Q29udGVudCA9PT0gInRoaXMiOwogCi0gICAgICAgIGNvbnN0IHRvb2xUaXBEZWxheSA9IHRoaXMu
X3BvcHVwID8gNjAwIDogMTAwMDsKLSAgICAgICAgdGhpcy5faG92ZXJUaW1lciA9IHNldFRpbWVv
dXQodGhpcy5fbW91c2VIb3Zlci5iaW5kKHRoaXMsIHRoaXMuX2hvdmVyRWxlbWVudCksIHRvb2xU
aXBEZWxheSk7Ci0gICAgfSwKLQotICAgIF9yZXNldEhvdmVyVGltZXI6IGZ1bmN0aW9uKCkKLSAg
ICB7Ci0gICAgICAgIGlmICh0aGlzLl9ob3ZlclRpbWVyKSB7Ci0gICAgICAgICAgICBjbGVhclRp
bWVvdXQodGhpcy5faG92ZXJUaW1lcik7Ci0gICAgICAgICAgICBkZWxldGUgdGhpcy5faG92ZXJU
aW1lcjsKLSAgICAgICAgfQorICAgICAgICByZXR1cm4gZWxlbWVudC5oYXNTdHlsZUNsYXNzKCJ3
ZWJraXQtamF2YXNjcmlwdC1pZGVudCIpOwogICAgIH0sCiAKLSAgICBfaGlkZVBvcHVwOiBmdW5j
dGlvbigpCisgICAgX2dldFBvcG92ZXJBbmNob3I6IGZ1bmN0aW9uKGVsZW1lbnQpCiAgICAgewot
ICAgICAgICB0aGlzLl9yZXNldEhvdmVyVGltZXIoKTsKLSAgICAgICAgaWYgKCF0aGlzLl9wb3B1
cCkKKyAgICAgICAgaWYgKCF0aGlzLl9zaG91bGRTaG93UG9wdXAoZWxlbWVudCkpCiAgICAgICAg
ICAgICByZXR1cm47Ci0KLSAgICAgICAgLy8gUmVwbGFjZSBoaWdsaWdodCBlbGVtZW50IHdpdGgg
aXRzIGNvbnRlbnRzIGlucGxhY2UuCi0gICAgICAgIHZhciBwYXJlbnRFbGVtZW50ID0gdGhpcy5f
cG9wdXAuaGlnaGxpZ2h0RWxlbWVudC5wYXJlbnRFbGVtZW50OwotICAgICAgICB2YXIgY2hpbGQg
PSB0aGlzLl9wb3B1cC5oaWdobGlnaHRFbGVtZW50LmZpcnN0Q2hpbGQ7Ci0gICAgICAgIHdoaWxl
IChjaGlsZCkgewotICAgICAgICAgICAgdmFyIG5leHRTaWJsaW5nID0gY2hpbGQubmV4dFNpYmxp
bmc7Ci0gICAgICAgICAgICBwYXJlbnRFbGVtZW50Lmluc2VydEJlZm9yZShjaGlsZCwgdGhpcy5f
cG9wdXAuaGlnaGxpZ2h0RWxlbWVudCk7Ci0gICAgICAgICAgICBjaGlsZCA9IG5leHRTaWJsaW5n
OwotICAgICAgICB9Ci0gICAgICAgIHBhcmVudEVsZW1lbnQucmVtb3ZlQ2hpbGQodGhpcy5fcG9w
dXAuaGlnaGxpZ2h0RWxlbWVudCk7Ci0KLSAgICAgICAgdGhpcy5fcG9wdXAuaGlkZSgpOwotICAg
ICAgICBkZWxldGUgdGhpcy5fcG9wdXA7Ci0gICAgICAgIHRoaXMuX2RlbGVnYXRlLnJlbGVhc2VF
dmFsdWF0aW9uUmVzdWx0KCk7CisgICAgICAgIHJldHVybiBlbGVtZW50OwogICAgIH0sCiAKLSAg
ICBfbW91c2VIb3ZlcjogZnVuY3Rpb24oZWxlbWVudCkKKyAgICBfaGlnaGxpZ2h0RXhwcmVzc2lv
bjogZnVuY3Rpb24oZWxlbWVudCkKICAgICB7Ci0gICAgICAgIGRlbGV0ZSB0aGlzLl9ob3ZlclRp
bWVyOwotCi0gICAgICAgIHZhciBsaW5lUm93ID0gZWxlbWVudC5lbmNsb3NpbmdOb2RlT3JTZWxm
V2l0aENsYXNzKCJ3ZWJraXQtbGluZS1jb250ZW50Iik7Ci0gICAgICAgIGlmICghbGluZVJvdykK
LSAgICAgICAgICAgIHJldHVybjsKLQogICAgICAgICAvLyBDb2xsZWN0IHRva2VucyBiZWxvbmdp
bmcgdG8gZXZhbHVhdGVkIGV4cmVzc2lvbi4KICAgICAgICAgdmFyIHRva2VucyA9IFsgZWxlbWVu
dCBdOwogICAgICAgICB2YXIgdG9rZW4gPSBlbGVtZW50LnByZXZpb3VzU2libGluZzsKQEAgLTc0
NCwyNSArNzEzLDEyIEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aDsgKytpKQogICAgICAgICAg
ICAgY29udGFpbmVyLmFwcGVuZENoaWxkKHRva2Vuc1tpXSk7CiAgICAgICAgIHBhcmVudEVsZW1l
bnQuaW5zZXJ0QmVmb3JlKGNvbnRhaW5lciwgbmV4dEVsZW1lbnQpOwotICAgICAgICB0aGlzLl9z
aG93UG9wdXAoY29udGFpbmVyKTsKKyAgICAgICAgcmV0dXJuIGNvbnRhaW5lcjsKICAgICB9LAog
Ci0gICAgX3Nob3dQb3B1cDogZnVuY3Rpb24oZWxlbWVudCkKKyAgICBfb25TaG93UG9wdXA6IGZ1
bmN0aW9uKGVsZW1lbnQsIGNhbGxiYWNrKQogICAgIHsKLSAgICAgICAgaWYgKCF0aGlzLl9kZWxl
Z2F0ZS5kZWJ1Z2dlclBhdXNlZCgpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGZ1
bmN0aW9uIGtpbGxIaWRlUG9wdXBUaW1lcigpCi0gICAgICAgIHsKLSAgICAgICAgICAgIGlmICh0
aGlzLl9oaWRlUG9wdXBUaW1lcikgewotICAgICAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlz
Ll9oaWRlUG9wdXBUaW1lcik7Ci0gICAgICAgICAgICAgICAgZGVsZXRlIHRoaXMuX2hpZGVQb3B1
cFRpbWVyOwotCi0gICAgICAgICAgICAgICAgLy8gV2Uga25vdyB0aGF0IHdlIHJlYWNoZWQgdGhl
IHBvcHVwLCBidXQgd2UgbWlnaHQgaGF2ZSBtb3ZlZCBvdmVyIG90aGVyIGVsZW1lbnRzLgotICAg
ICAgICAgICAgICAgIC8vIERpc2NhcmQgcGVuZGluZyBjb21tYW5kLgotICAgICAgICAgICAgICAg
IHRoaXMuX3Jlc2V0SG92ZXJUaW1lcigpOwotICAgICAgICAgICAgfQotICAgICAgICB9CisgICAg
ICAgIHZhciBoaWdobGlnaHRFbGVtZW50ID0gdGhpcy5faGlnaGxpZ2h0RXhwcmVzc2lvbihlbGVt
ZW50KTsKIAogICAgICAgICBmdW5jdGlvbiBzaG93T2JqZWN0UG9wdXAocmVzdWx0LCB3YXNUaHJv
d24pCiAgICAgICAgIHsKQEAgLTc3Nyw4ICs3MzMsOCBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJh
bWUucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIHBvcHVwQ29udGVudEVsZW1lbnQudGV4
dENvbnRlbnQgPSByZXN1bHQuZGVzY3JpcHRpb247CiAgICAgICAgICAgICAgICAgaWYgKHJlc3Vs
dC50eXBlID09PSAic3RyaW5nIikKICAgICAgICAgICAgICAgICAgICAgcG9wdXBDb250ZW50RWxl
bWVudC50ZXh0Q29udGVudCA9ICJcIiIgKyBwb3B1cENvbnRlbnRFbGVtZW50LnRleHRDb250ZW50
ICsgIlwiIjsKLSAgICAgICAgICAgICAgICB0aGlzLl9wb3B1cCA9IG5ldyBXZWJJbnNwZWN0b3Iu
UG9wb3Zlcihwb3B1cENvbnRlbnRFbGVtZW50KTsKLSAgICAgICAgICAgICAgICB0aGlzLl9wb3B1
cC5zaG93KGVsZW1lbnQpOworICAgICAgICAgICAgICAgIHZhciBwb3B1cCA9IG5ldyBXZWJJbnNw
ZWN0b3IuUG9wb3Zlcihwb3B1cENvbnRlbnRFbGVtZW50KTsKKyAgICAgICAgICAgICAgICBwb3B1
cC5zaG93KGVsZW1lbnQpOwogICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICB2
YXIgcG9wdXBDb250ZW50RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwog
CkBAIC03OTMsMTcgKzc0OSwxNyBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBl
ID0gewogICAgICAgICAgICAgICAgIHNlY3Rpb24uaGVhZGVyRWxlbWVudC5hZGRTdHlsZUNsYXNz
KCJoaWRkZW4iKTsKICAgICAgICAgICAgICAgICBwb3B1cENvbnRlbnRFbGVtZW50LmFwcGVuZENo
aWxkKHNlY3Rpb24uZWxlbWVudCk7CiAKLSAgICAgICAgICAgICAgICB0aGlzLl9wb3B1cCA9IG5l
dyBXZWJJbnNwZWN0b3IuUG9wb3Zlcihwb3B1cENvbnRlbnRFbGVtZW50KTsKKyAgICAgICAgICAg
ICAgICB2YXIgcG9wdXAgPSBuZXcgV2ViSW5zcGVjdG9yLlBvcG92ZXIocG9wdXBDb250ZW50RWxl
bWVudCk7CiAgICAgICAgICAgICAgICAgY29uc3QgcG9wdXBXaWR0aCA9IDMwMDsKICAgICAgICAg
ICAgICAgICBjb25zdCBwb3B1cEhlaWdodCA9IDI1MDsKLSAgICAgICAgICAgICAgICB0aGlzLl9w
b3B1cC5zaG93KGVsZW1lbnQsIHBvcHVwV2lkdGgsIHBvcHVwSGVpZ2h0KTsKKyAgICAgICAgICAg
ICAgICBwb3B1cC5zaG93KGVsZW1lbnQsIHBvcHVwV2lkdGgsIHBvcHVwSGVpZ2h0KTsKICAgICAg
ICAgICAgIH0KLSAgICAgICAgICAgIHRoaXMuX3BvcHVwLmhpZ2hsaWdodEVsZW1lbnQgPSBlbGVt
ZW50OwotICAgICAgICAgICAgdGhpcy5fcG9wdXAuaGlnaGxpZ2h0RWxlbWVudC5hZGRTdHlsZUNs
YXNzKCJzb3VyY2UtZnJhbWUtZXZhbC1leHByZXNzaW9uIik7Ci0gICAgICAgICAgICBwb3B1cENv
bnRlbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIGtpbGxIaWRlUG9wdXBU
aW1lci5iaW5kKHRoaXMpLCB0cnVlKTsKKyAgICAgICAgICAgIHRoaXMuX2hpZ2hsaWdodEVsZW1l
bnQgPSBoaWdobGlnaHRFbGVtZW50OworICAgICAgICAgICAgdGhpcy5faGlnaGxpZ2h0RWxlbWVu
dC5hZGRTdHlsZUNsYXNzKCJzb3VyY2UtZnJhbWUtZXZhbC1leHByZXNzaW9uIik7CisgICAgICAg
ICAgICBjYWxsYmFjayhwb3B1cCk7CiAgICAgICAgIH0KIAotICAgICAgICB0aGlzLl9kZWxlZ2F0
ZS5ldmFsdWF0ZUluU2VsZWN0ZWRDYWxsRnJhbWUoZWxlbWVudC50ZXh0Q29udGVudCwgc2hvd09i
amVjdFBvcHVwLmJpbmQodGhpcykpOworICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5ldmFsdWF0ZUlu
U2VsZWN0ZWRDYWxsRnJhbWUoaGlnaGxpZ2h0RWxlbWVudC50ZXh0Q29udGVudCwgc2hvd09iamVj
dFBvcHVwLmJpbmQodGhpcykpOwogICAgIH0sCiAKICAgICBfZWRpdEJyZWFrcG9pbnRDb25kaXRp
b246IGZ1bmN0aW9uKGxpbmVOdW1iZXIsIGNvbmRpdGlvbiwgY2FsbGJhY2spCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMKaW5kZXgg
ZDI1ZDliYS4uZTBlMTAzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9UaW1lbGluZVBhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwpAQCAtOTMsNyArOTMsNyBAQCBXZWJJbnNwZWN0b3Iu
VGltZWxpbmVQYW5lbCA9IGZ1bmN0aW9uKCkKICAgICB0aGlzLl9ib3VuZGFyaWVzQXJlVmFsaWQg
PSB0cnVlOwogICAgIHRoaXMuX3Njcm9sbFRvcCA9IDA7CiAKLSAgICB0aGlzLl9wb3BvdmVySGVs
cGVyID0gbmV3IFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyKHRoaXMuX2NvbnRhaW5lckVsZW1l
bnQsIHRoaXMuX2dldFBvcG92ZXJBbmNob3IuYmluZCh0aGlzKSwgdGhpcy5fc2hvd1BvcG92ZXIu
YmluZCh0aGlzKSwgdHJ1ZSk7CisgICAgdGhpcy5fcG9wb3ZlckhlbHBlciA9IG5ldyBXZWJJbnNw
ZWN0b3IuUG9wb3ZlckhlbHBlcih0aGlzLl9jb250YWluZXJFbGVtZW50LCB0aGlzLl9nZXRQb3Bv
dmVyQW5jaG9yLmJpbmQodGhpcyksIHRoaXMuX3Nob3dQb3BvdmVyLmJpbmQodGhpcykpOwogICAg
IHRoaXMuX2NvbnRhaW5lckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhp
cy5fbW91c2VNb3ZlLmJpbmQodGhpcyksIGZhbHNlKTsKICAgICB0aGlzLl9jb250YWluZXJFbGVt
ZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlb3V0IiwgdGhpcy5fbW91c2VPdXQuYmluZCh0aGlz
KSwgZmFsc2UpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105171</attachid>
            <date>2011-08-25 06:35:09 -0700</date>
            <delta_ts>2011-08-25 07:46:07 -0700</delta_ts>
            <desc>patch</desc>
            <filename>sourceframe-popover.diff</filename>
            <type>text/plain</type>
            <size>22508</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2NDI3NDEzLi5hZDJkMjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUg
QEAKKzIwMTEtMDgtMjUgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBbcmVmYWN0b3JpbmddIHVzZSBQb3BvdmVySGVscGVyIHRv
IGltcGxlbWVudCBwb3B1cCBpbiB0aGUgU291cmNlRnJhbWUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2ODU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVk
SGVhcHNob3RWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRldGFpbGVkSGVhcHNob3RW
aWV3LnByb3RvdHlwZS5fc2hvd1N0cmluZ0NvbnRlbnRQb3BvdmVyKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5O
ZXR3b3JrTG9nVmlldy5wcm90b3R5cGUuaW5pdGlhbGl6ZVZpZXcpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLk5ldHdvcmtMb2dWaWV3LnByb3RvdHlwZS53aWxsSGlkZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlLl9yZXNldCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlLnN3aXRjaFRvQnJpZWZWaWV3KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUuX3Nob3dQb3BvdmVy
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1BvcG92ZXIuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUG9wb3Zlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUG9wb3Zlci5wcm90
b3R5cGUuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUG9wb3Zlci5wcm90b3R5cGUuZGlz
cG9zZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUG9wb3ZlckhlbHBlcik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUG9wb3ZlckhlbHBlci5wcm90b3R5cGUuX21vdXNlTW92ZS5kb0hpZGUpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlBvcG92ZXJIZWxwZXIucHJvdG90eXBlLl9tb3VzZU1vdmUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBvcG92ZXJIZWxwZXIucHJvdG90eXBlLmhpZGVQb3Bv
dmVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyLnByb3RvdHlwZS5faGlk
ZVBvcG92ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBvcG92ZXJIZWxwZXIucHJvdG90eXBl
Ll9tb3VzZUhvdmVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyLnByb3Rv
dHlwZS5fa2lsbEhpZGVQb3B1cFRpbWVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1NvdXJjZUZyYW1lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3Rv
dHlwZS53aWxsSGlkZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90
eXBlLl9pbml0aWFsaXplVGV4dFZpZXdlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNl
RnJhbWUucHJvdG90eXBlLl9zY3JvbGwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZy
YW1lLnByb3RvdHlwZS5fbW91c2VEb3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VG
cmFtZS5wcm90b3R5cGUuX29uSGlkZVBvcG92ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNv
dXJjZUZyYW1lLnByb3RvdHlwZS5fc2hvdWxkU2hvd1BvcG92ZXIpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fZ2V0UG9wb3ZlckFuY2hvcik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9oaWdobGlnaHRFeHByZXNzaW9u
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX29uU2hvd1Bv
cG92ZXIuc2hvd09iamVjdFBvcG92ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZy
YW1lLnByb3RvdHlwZS5fb25TaG93UG9wb3Zlcik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9UaW1lbGluZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFu
ZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9zaG93
UG9wb3Zlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUu
X2Nsb3NlUmVjb3JkRGV0YWlscyk6CisKIDIwMTEtMDgtMjUgIE1PUklUQSBIYWppbWUgIDxtb3Jy
aXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjkzNzYy
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZXRhaWxl
ZEhlYXBzaG90Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGV0
YWlsZWRIZWFwc2hvdFZpZXcuanMKaW5kZXggODVmMzBmMi4uZDhkZmQxZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZXRhaWxlZEhlYXBzaG90Vmlldy5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNo
b3RWaWV3LmpzCkBAIC02MTgsNyArNjE4LDcgQEAgV2ViSW5zcGVjdG9yLkRldGFpbGVkSGVhcHNo
b3RWaWV3ID0gZnVuY3Rpb24ocGFyZW50LCBwcm9maWxlKQogICAgIHRoaXMuaGVscEJ1dHRvbiA9
IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKCIiLCAiaGVhcHNob3QtaGVscC1zdGF0
dXMtYmFyLWl0ZW0gc3RhdHVzLWJhci1pdGVtIik7CiAgICAgdGhpcy5oZWxwQnV0dG9uLmFkZEV2
ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5faGVscENsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2Up
OwogCi0gICAgdmFyIHBvcG92ZXJIZWxwZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlBvcG92ZXJIZWxw
ZXIodGhpcy5lbGVtZW50LCB0aGlzLl9nZXRIb3ZlckFuY2hvci5iaW5kKHRoaXMpLCB0aGlzLl9z
aG93U3RyaW5nQ29udGVudFBvcHVwLmJpbmQodGhpcykpOworICAgIHZhciBwb3BvdmVySGVscGVy
ID0gbmV3IFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyKHRoaXMuZWxlbWVudCwgdGhpcy5fZ2V0
SG92ZXJBbmNob3IuYmluZCh0aGlzKSwgdGhpcy5fc2hvd1N0cmluZ0NvbnRlbnRQb3BvdmVyLmJp
bmQodGhpcykpOwogCiAgICAgdGhpcy5fbG9hZFByb2ZpbGUodGhpcy5fcHJvZmlsZVVpZCwgcHJv
ZmlsZUNhbGxiYWNrLmJpbmQodGhpcykpOwogCkBAIC0xMDQyLDIxICsxMDQyLDE5IEBAIFdlYklu
c3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMu
cmVmcmVzaFNob3dBc1BlcmNlbnRzKCk7CiAgICAgfSwKIAotICAgIF9zaG93U3RyaW5nQ29udGVu
dFBvcHVwOiBmdW5jdGlvbihzcGFuKQorICAgIF9zaG93U3RyaW5nQ29udGVudFBvcG92ZXI6IGZ1
bmN0aW9uKGFuY2hvciwgcG9wb3ZlcikKICAgICB7CiAgICAgICAgIHZhciBzdHJpbmdDb250ZW50
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICAgc3RyaW5n
Q29udGVudEVsZW1lbnQuY2xhc3NOYW1lID0gIm1vbm9zcGFjZSI7CiAgICAgICAgIHN0cmluZ0Nv
bnRlbnRFbGVtZW50LnN0eWxlLndoaXRlU3BhY2UgPSAicHJlIjsKIAotICAgICAgICB2YXIgcG9w
b3ZlciA9IG5ldyBXZWJJbnNwZWN0b3IuUG9wb3ZlcihzdHJpbmdDb250ZW50RWxlbWVudCk7CiAg
ICAgICAgIGZ1bmN0aW9uIGRpc3BsYXlTdHJpbmcobmFtZSwgY2xhc3NOYW1lKQogICAgICAgICB7
CiAgICAgICAgICAgICBzdHJpbmdDb250ZW50RWxlbWVudC50ZXh0Q29udGVudCA9IG5hbWU7CiAg
ICAgICAgICAgICBzdHJpbmdDb250ZW50RWxlbWVudC5jbGFzc05hbWUgKz0gIiAiICsgY2xhc3NO
YW1lOwotICAgICAgICAgICAgcG9wb3Zlci5zaG93KHNwYW4pOworICAgICAgICAgICAgcG9wb3Zl
ci5zaG93KHN0cmluZ0NvbnRlbnRFbGVtZW50LCBhbmNob3IpOwogICAgICAgICB9Ci0gICAgICAg
IHNwYW4ubm9kZS5ob3Zlck1lc3NhZ2UoZGlzcGxheVN0cmluZyk7Ci0gICAgICAgIHJldHVybiBw
b3BvdmVyOworICAgICAgICBhbmNob3Iubm9kZS5ob3Zlck1lc3NhZ2UoZGlzcGxheVN0cmluZyk7
CiAgICAgfSwKIAogICAgIF9oZWxwQ2xpY2tlZDogZnVuY3Rpb24oZXZlbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCmluZGV4IDMz
NTY0YTMuLjhiMzg1NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvTmV0d29ya1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvTmV0d29ya1BhbmVsLmpzCkBAIC04MCw3ICs4MCw3IEBAIFdlYkluc3BlY3Rvci5OZXR3
b3JrTG9nVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLl9zZXRMYXJnZXJSZXNv
dXJjZXModGhpcy51c2VMYXJnZVJvd3MpOwogCiAgICAgICAgIHRoaXMuX2FsbG93UG9wb3ZlciA9
IHRydWU7Ci0gICAgICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlBv
cG92ZXJIZWxwZXIodGhpcy5lbGVtZW50LCB0aGlzLl9nZXRQb3BvdmVyQW5jaG9yLmJpbmQodGhp
cyksIHRoaXMuX3Nob3dQb3BvdmVyLmJpbmQodGhpcyksIHRydWUpOworICAgICAgICB0aGlzLl9w
b3BvdmVySGVscGVyID0gbmV3IFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyKHRoaXMuZWxlbWVu
dCwgdGhpcy5fZ2V0UG9wb3ZlckFuY2hvci5iaW5kKHRoaXMpLCB0aGlzLl9zaG93UG9wb3Zlci5i
aW5kKHRoaXMpKTsKICAgICAgICAgLy8gRW5hYmxlIGZhc3RlciBoaW50LgogICAgICAgICB0aGlz
Ll9wb3BvdmVySGVscGVyLnNldFRpbWVvdXQoMTAwKTsKIApAQCAtNjQzLDcgKzY0Myw3IEBAIFdl
Ykluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUgPSB7CiAgICAgd2lsbEhpZGU6IGZ1
bmN0aW9uKCkKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5JRnJhbWVWaWV3LnByb3RvdHlw
ZS53aWxsSGlkZS5jYWxsKHRoaXMpOwotICAgICAgICB0aGlzLl9wb3BvdmVySGVscGVyLmhpZGVQ
b3B1cCgpOworICAgICAgICB0aGlzLl9wb3BvdmVySGVscGVyLmhpZGVQb3BvdmVyKCk7CiAgICAg
fSwKIAogICAgIHJlZnJlc2g6IGZ1bmN0aW9uKCkKQEAgLTcwNSw3ICs3MDUsNyBAQCBXZWJJbnNw
ZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlID0gewogCiAgICAgICAgIHRoaXMuX2NsZWFy
U2VhcmNoTWF0Y2hlZExpc3QoKTsKICAgICAgICAgaWYgKHRoaXMuX3BvcG92ZXJIZWxwZXIpCi0g
ICAgICAgICAgICB0aGlzLl9wb3BvdmVySGVscGVyLmhpZGVQb3B1cCgpOworICAgICAgICAgICAg
dGhpcy5fcG9wb3ZlckhlbHBlci5oaWRlUG9wb3ZlcigpOwogCiAgICAgICAgIGlmICh0aGlzLl9j
YWxjdWxhdG9yKQogICAgICAgICAgICAgdGhpcy5fY2FsY3VsYXRvci5yZXNldCgpOwpAQCAtODYy
LDcgKzg2Miw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHdpZHRocy5uYW1lID0gMTAwOwogICAgICAgICB0aGlzLl9kYXRhR3JpZC5hcHBseUNv
bHVtbldpZHRoc01hcCh3aWR0aHMpOwogCi0gICAgICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIuaGlk
ZVBvcHVwKCk7CisgICAgICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIuaGlkZVBvcG92ZXIoKTsKICAg
ICB9LAogCiAgICAgX3RvZ2dsZUxhcmdlclJlc291cmNlczogZnVuY3Rpb24oKQpAQCAtODk4LDEz
ICs4OTgsMTEgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgcmV0dXJuIHJlc291cmNlICYmIHJlc291cmNlLnRpbWluZyA/IGFuY2hvciA6IG51bGw7
CiAgICAgfSwKIAotICAgIF9zaG93UG9wb3ZlcjogZnVuY3Rpb24oYW5jaG9yKQorICAgIF9zaG93
UG9wb3ZlcjogZnVuY3Rpb24oYW5jaG9yLCBwb3BvdmVyKQogICAgIHsKICAgICAgICAgdmFyIHJl
c291cmNlID0gYW5jaG9yLnBhcmVudEVsZW1lbnQucmVzb3VyY2U7CiAgICAgICAgIHZhciB0YWJs
ZUVsZW1lbnQgPSBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUaW1pbmdWaWV3LmNyZWF0ZVRpbWluZ1Rh
YmxlKHJlc291cmNlKTsKLSAgICAgICAgdmFyIHBvcG92ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlBv
cG92ZXIodGFibGVFbGVtZW50KTsKLSAgICAgICAgcG9wb3Zlci5zaG93KGFuY2hvcik7Ci0gICAg
ICAgIHJldHVybiBwb3BvdmVyOworICAgICAgICBwb3BvdmVyLnNob3codGFibGVFbGVtZW50LCBh
bmNob3IpOwogICAgIH0sCiAKICAgICBfdG9nZ2xlR3JpZE1vZGU6IGZ1bmN0aW9uKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUG9wb3Zlci5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUG9wb3Zlci5qcwppbmRleCA1NmE1YWRi
Li5mYTE1MzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1BvcG92ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qb3Bv
dmVyLmpzCkBAIC0zMiw3ICszMiw3IEBACiAgKiBAY29uc3RydWN0b3IKICAqIEBwYXJhbSB7RWxl
bWVudH0gY29udGVudEVsZW1lbnQKICAqLwotV2ViSW5zcGVjdG9yLlBvcG92ZXIgPSBmdW5jdGlv
bihjb250ZW50RWxlbWVudCkKK1dlYkluc3BlY3Rvci5Qb3BvdmVyID0gZnVuY3Rpb24oKQogewog
ICAgIHRoaXMuZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgIHRo
aXMuZWxlbWVudC5jbGFzc05hbWUgPSAicG9wb3ZlciI7CkBAIC00MSwxNSArNDEsMTggQEAgV2Vi
SW5zcGVjdG9yLlBvcG92ZXIgPSBmdW5jdGlvbihjb250ZW50RWxlbWVudCkKICAgICB0aGlzLl9w
b3B1cEFycm93RWxlbWVudC5jbGFzc05hbWUgPSAiYXJyb3ciOwogICAgIHRoaXMuZWxlbWVudC5h
cHBlbmRDaGlsZCh0aGlzLl9wb3B1cEFycm93RWxlbWVudCk7CiAKLSAgICB0aGlzLmNvbnRlbnRF
bGVtZW50ID0gY29udGVudEVsZW1lbnQ7CiAgICAgdGhpcy5fY29udGVudERpdiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgIHRoaXMuX2NvbnRlbnREaXYuY2xhc3NOYW1lID0g
ImNvbnRlbnQiOwogICAgIHRoaXMuX3Zpc2libGUgPSBmYWxzZTsKIH0KIAogV2ViSW5zcGVjdG9y
LlBvcG92ZXIucHJvdG90eXBlID0gewotICAgIHNob3c6IGZ1bmN0aW9uKGFuY2hvciwgcHJlZmVy
cmVkV2lkdGgsIHByZWZlcnJlZEhlaWdodCkKKyAgICBzaG93OiBmdW5jdGlvbihjb250ZW50RWxl
bWVudCwgYW5jaG9yLCBwcmVmZXJyZWRXaWR0aCwgcHJlZmVycmVkSGVpZ2h0KQogICAgIHsKKyAg
ICAgICAgaWYgKHRoaXMuX2Rpc3Bvc2VkKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB0
aGlzLmNvbnRlbnRFbGVtZW50ID0gY29udGVudEVsZW1lbnQ7CisKICAgICAgICAgLy8gVGhpcyBz
aG91bGQgbm90IGhhcHBlbiwgYnV0IHdlIGhpZGUgcHJldmlvdXMgcG9wdXAgdG8gYmUgb24gdGhl
IHNhZmUgc2lkZS4KICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5Qb3BvdmVyLl9wb3BvdmVyRWxl
bWVudCkKICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoV2ViSW5zcGVjdG9y
LlBvcG92ZXIuX3BvcG92ZXJFbGVtZW50KTsKQEAgLTgyLDYgKzg1LDEzIEBAIFdlYkluc3BlY3Rv
ci5Qb3BvdmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7CiAg
ICAgfSwKIAorICAgIGRpc3Bvc2U6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIGlmICh0aGlz
LnZpc2libGUpCisgICAgICAgICAgICB0aGlzLmhpZGUoKTsKKyAgICAgICAgdGhpcy5fZGlzcG9z
ZWQgPSB0cnVlOworICAgIH0sCisKICAgICBfcG9zaXRpb25FbGVtZW50OiBmdW5jdGlvbihhbmNo
b3JFbGVtZW50LCBwcmVmZXJyZWRXaWR0aCwgcHJlZmVycmVkSGVpZ2h0KQogICAgIHsKICAgICAg
ICAgY29uc3QgYm9yZGVyV2lkdGggPSAyNTsKQEAgLTE2MywxMiArMTczLDExIEBAIFdlYkluc3Bl
Y3Rvci5Qb3BvdmVyLnByb3RvdHlwZSA9IHsKIC8qKgogICogQGNvbnN0cnVjdG9yCiAgKi8KLVdl
Ykluc3BlY3Rvci5Qb3BvdmVySGVscGVyID0gZnVuY3Rpb24ocGFuZWxFbGVtZW50LCBnZXRBbmNo
b3IsIHNob3dQb3B1cCwgc2hvd09uQ2xpY2ssIG9uSGlkZSkKK1dlYkluc3BlY3Rvci5Qb3BvdmVy
SGVscGVyID0gZnVuY3Rpb24ocGFuZWxFbGVtZW50LCBnZXRBbmNob3IsIHNob3dQb3BvdmVyLCBv
bkhpZGUpCiB7CiAgICAgdGhpcy5fcGFuZWxFbGVtZW50ID0gcGFuZWxFbGVtZW50OwogICAgIHRo
aXMuX2dldEFuY2hvciA9IGdldEFuY2hvcjsKLSAgICB0aGlzLl9zaG93UG9wdXAgPSBzaG93UG9w
dXA7Ci0gICAgdGhpcy5fc2hvd09uQ2xpY2sgPSBzaG93T25DbGljazsKKyAgICB0aGlzLl9zaG93
UG9wb3ZlciA9IHNob3dQb3BvdmVyOwogICAgIHRoaXMuX29uSGlkZSA9IG9uSGlkZTsKICAgICBw
YW5lbEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhpcy5fbW91c2VEb3du
LmJpbmQodGhpcyksIGZhbHNlKTsKICAgICBwYW5lbEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigi
bW91c2Vtb3ZlIiwgdGhpcy5fbW91c2VNb3ZlLmJpbmQodGhpcyksIGZhbHNlKTsKQEAgLTE5NCwx
NCArMjAzLDE0IEBAIFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyLnByb3RvdHlwZSA9IHsKICAg
ICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAvLyBVc2VyIGhhcyA1MDBtcyAodGhpcy5fdGlt
ZW91dCAvIDIpIHRvIHJlYWNoIHRoZSBwb3B1cC4KLSAgICAgICAgaWYgKHRoaXMuX3BvcHVwICYm
ICF0aGlzLl9oaWRlUG9wdXBUaW1lcikgeworICAgICAgICBpZiAodGhpcy5fcG9wb3ZlciAmJiAh
dGhpcy5faGlkZVBvcG92ZXJUaW1lcikgewogICAgICAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwog
ICAgICAgICAgICAgZnVuY3Rpb24gZG9IaWRlKCkKICAgICAgICAgICAgIHsKLSAgICAgICAgICAg
ICAgICBzZWxmLl9oaWRlUG9wdXAoKTsKLSAgICAgICAgICAgICAgICBkZWxldGUgc2VsZi5faGlk
ZVBvcHVwVGltZXI7CisgICAgICAgICAgICAgICAgc2VsZi5faGlkZVBvcG92ZXIoKTsKKyAgICAg
ICAgICAgICAgICBkZWxldGUgc2VsZi5faGlkZVBvcG92ZXJUaW1lcjsKICAgICAgICAgICAgIH0K
LSAgICAgICAgICAgIHRoaXMuX2hpZGVQb3B1cFRpbWVyID0gc2V0VGltZW91dChkb0hpZGUsIHRo
aXMuX3RpbWVvdXQgLyAyKTsKKyAgICAgICAgICAgIHRoaXMuX2hpZGVQb3BvdmVyVGltZXIgPSBz
ZXRUaW1lb3V0KGRvSGlkZSwgdGhpcy5fdGltZW91dCAvIDIpOwogICAgICAgICB9CiAKICAgICAg
ICAgdGhpcy5faGFuZGxlTW91c2VBY3Rpb24oZXZlbnQpOwpAQCAtMjI3LDM3ICsyMzYsMzggQEAg
V2ViSW5zcGVjdG9yLlBvcG92ZXJIZWxwZXIucHJvdG90eXBlID0gewogICAgICAgICB9CiAgICAg
fSwKIAotICAgIGhpZGVQb3B1cDogZnVuY3Rpb24oKQorICAgIGhpZGVQb3BvdmVyOiBmdW5jdGlv
bigpCiAgICAgewogICAgICAgICB0aGlzLl9yZXNldEhvdmVyVGltZXIoKTsKLSAgICAgICAgdGhp
cy5faGlkZVBvcHVwKCk7CisgICAgICAgIHRoaXMuX2hpZGVQb3BvdmVyKCk7CiAgICAgfSwKIAot
ICAgIF9oaWRlUG9wdXA6IGZ1bmN0aW9uKCkKKyAgICBfaGlkZVBvcG92ZXI6IGZ1bmN0aW9uKCkK
ICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fcG9wdXApCisgICAgICAgIGRlbGV0ZSB0aGlzLl9w
b3B1cEluc3RhbmNlTWFya2VyOworICAgICAgICBpZiAoIXRoaXMuX3BvcG92ZXIpCiAgICAgICAg
ICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKHRoaXMuX29uSGlkZSkKICAgICAgICAgICAgIHRo
aXMuX29uSGlkZSgpOwogCi0gICAgICAgIHRoaXMuX3BvcHVwLmhpZGUoKTsKLSAgICAgICAgZGVs
ZXRlIHRoaXMuX3BvcHVwOworICAgICAgICB0aGlzLl9wb3BvdmVyLmRpc3Bvc2UoKTsKKyAgICAg
ICAgZGVsZXRlIHRoaXMuX3BvcG92ZXI7CiAgICAgfSwKIAogICAgIF9tb3VzZUhvdmVyOiBmdW5j
dGlvbihlbGVtZW50KQogICAgIHsKICAgICAgICAgZGVsZXRlIHRoaXMuX2hvdmVyVGltZXI7CiAK
LSAgICAgICAgdGhpcy5fcG9wdXAgPSB0aGlzLl9zaG93UG9wdXAoZWxlbWVudCk7Ci0gICAgICAg
IGlmICh0aGlzLl9wb3B1cCkKLSAgICAgICAgICAgIHRoaXMuX3BvcHVwLmNvbnRlbnRFbGVtZW50
LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIHRoaXMuX2tpbGxIaWRlUG9wdXBUaW1lci5i
aW5kKHRoaXMpLCB0cnVlKTsKKyAgICAgICAgdGhpcy5faGlkZVBvcG92ZXIoKTsKKyAgICAgICAg
dGhpcy5fcG9wb3ZlciA9IG5ldyBXZWJJbnNwZWN0b3IuUG9wb3ZlcigpOworICAgICAgICB0aGlz
Ll9zaG93UG9wb3ZlcihlbGVtZW50LCB0aGlzLl9wb3BvdmVyKTsKICAgICB9LAogCiAgICAgX2tp
bGxIaWRlUG9wdXBUaW1lcjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2hp
ZGVQb3B1cFRpbWVyKSB7Ci0gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5faGlkZVBvcHVw
VGltZXIpOworICAgICAgICBpZiAodGhpcy5faGlkZVBvcG92ZXJUaW1lcikgeworICAgICAgICAg
ICAgY2xlYXJUaW1lb3V0KHRoaXMuX2hpZGVQb3BvdmVyVGltZXIpOwogICAgICAgICAgICAgZGVs
ZXRlIHRoaXMuX2hpZGVQb3B1cFRpbWVyOwogCiAgICAgICAgICAgICAvLyBXZSBrbm93IHRoYXQg
d2UgcmVhY2hlZCB0aGUgcG9wdXAsIGJ1dCB3ZSBtaWdodCBoYXZlIG1vdmVkIG92ZXIgb3RoZXIg
ZWxlbWVudHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1NvdXJjZUZyYW1lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Tb3Vy
Y2VGcmFtZS5qcwppbmRleCAzMjk4ZGRhLi5mNjRjN2ZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKQEAgLTkxLDcgKzkxLDggQEAg
V2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAgICAgaWYgKHRoaXMu
bG9hZGVkKQogICAgICAgICAgICAgdGhpcy5fdGV4dFZpZXdlci5mcmVlQ2FjaGVkRWxlbWVudHMo
KTsKIAotICAgICAgICB0aGlzLl9oaWRlUG9wdXAoKTsKKyAgICAgICAgaWYgKHRoaXMuX3BvcG92
ZXJIZWxwZXIpCisgICAgICAgICAgICB0aGlzLl9wb3BvdmVySGVscGVyLmhpZGVQb3BvdmVyKCk7
CiAgICAgICAgIHRoaXMuX2NsZWFyTGluZUhpZ2hsaWdodCgpOwogICAgIH0sCiAKQEAgLTI4MCw4
ICsyODEsOSBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogCiAgICAg
ICAgIHZhciBlbGVtZW50ID0gdGhpcy5fdGV4dFZpZXdlci5lbGVtZW50OwogICAgICAgICBpZiAo
dGhpcy5fZGVsZWdhdGUuZGVidWdnaW5nU3VwcG9ydGVkKCkpIHsKKyAgICAgICAgICAgIHRoaXMu
X3BvcG92ZXJIZWxwZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlBvcG92ZXJIZWxwZXIoZWxlbWVudCwK
KyAgICAgICAgICAgICAgICB0aGlzLl9nZXRQb3BvdmVyQW5jaG9yLmJpbmQodGhpcyksIHRoaXMu
X29uU2hvd1BvcG92ZXIuYmluZCh0aGlzKSwgdGhpcy5fb25IaWRlUG9wb3Zlci5iaW5kKHRoaXMp
KTsKICAgICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhp
cy5fbW91c2VEb3duLmJpbmQodGhpcyksIHRydWUpOwotICAgICAgICAgICAgZWxlbWVudC5hZGRF
dmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0aGlzLl9tb3VzZU1vdmUuYmluZCh0aGlzKSwgdHJ1
ZSk7CiAgICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNjcm9sbCIsIHRoaXMu
X3Njcm9sbC5iaW5kKHRoaXMpLCB0cnVlKTsKICAgICAgICAgfQogCkBAIC02MzEsMTIgKzYzMywx
NCBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogCiAgICAgX3Njcm9s
bDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICB0aGlzLl9oaWRlUG9wdXAoKTsKKyAg
ICAgICAgaWYgKHRoaXMuX3BvcG92ZXJIZWxwZXIpCisgICAgICAgICAgICB0aGlzLl9wb3BvdmVy
SGVscGVyLmhpZGVQb3BvdmVyKCk7CiAgICAgfSwKIAogICAgIF9tb3VzZURvd246IGZ1bmN0aW9u
KGV2ZW50KQogICAgIHsKLSAgICAgICAgdGhpcy5faGlkZVBvcHVwKCk7CisgICAgICAgIGlmICh0
aGlzLl9wb3BvdmVySGVscGVyKQorICAgICAgICAgICAgdGhpcy5fcG9wb3ZlckhlbHBlci5oaWRl
UG9wb3ZlcigpOwogICAgICAgICBpZiAoZXZlbnQuYnV0dG9uICE9IDAgfHwgZXZlbnQuYWx0S2V5
IHx8IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSkKICAgICAgICAgICAgIHJldHVybjsK
ICAgICAgICAgdmFyIHRhcmdldCA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0
aENsYXNzKCJ3ZWJraXQtbGluZS1udW1iZXIiKTsKQEAgLTY1NSw3OSArNjU5LDQ0IEBAIFdlYklu
c3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIGV2ZW50LnByZXZlbnRE
ZWZhdWx0KCk7CiAgICAgfSwKIAotICAgIF9tb3VzZU1vdmU6IGZ1bmN0aW9uKGV2ZW50KQorICAg
IF9vbkhpZGVQb3BvdmVyOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICAvLyBQcmV0ZW5kIHRo
YXQgbm90aGluZyBoYXMgaGFwcGVuZWQuCi0gICAgICAgIGlmICh0aGlzLl9ob3ZlckVsZW1lbnQg
PT09IGV2ZW50LnRhcmdldCB8fCBldmVudC50YXJnZXQuaGFzU3R5bGVDbGFzcygic291cmNlLWZy
YW1lLWV2YWwtZXhwcmVzc2lvbiIpKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIHRo
aXMuX3Jlc2V0SG92ZXJUaW1lcigpOwotICAgICAgICAvLyBVc2VyIGhhcyA1MDBtcyB0byByZWFj
aCB0aGUgcG9wdXAuCi0gICAgICAgIGlmICh0aGlzLl9wb3B1cCkgewotICAgICAgICAgICAgdmFy
IHNlbGYgPSB0aGlzOwotICAgICAgICAgICAgZnVuY3Rpb24gZG9IaWRlKCkKLSAgICAgICAgICAg
IHsKLSAgICAgICAgICAgICAgICBzZWxmLl9oaWRlUG9wdXAoKTsKLSAgICAgICAgICAgICAgICBk
ZWxldGUgc2VsZi5faGlkZVBvcHVwVGltZXI7Ci0gICAgICAgICAgICB9Ci0gICAgICAgICAgICBp
ZiAoISgiX2hpZGVQb3B1cFRpbWVyIiBpbiB0aGlzKSkKLSAgICAgICAgICAgICAgICB0aGlzLl9o
aWRlUG9wdXBUaW1lciA9IHNldFRpbWVvdXQoZG9IaWRlLCA1MDApOworICAgICAgICAvLyBSZXBs
YWNlIGhpZ2xpZ2h0IGVsZW1lbnQgd2l0aCBpdHMgY29udGVudHMgaW5wbGFjZS4KKyAgICAgICAg
dmFyIGhpZ2hsaWdodEVsZW1lbnQgPSB0aGlzLl9oaWdobGlnaHRFbGVtZW50OworICAgICAgICB2
YXIgcGFyZW50RWxlbWVudCA9IGhpZ2hsaWdodEVsZW1lbnQucGFyZW50RWxlbWVudDsKKyAgICAg
ICAgdmFyIGNoaWxkID0gaGlnaGxpZ2h0RWxlbWVudC5maXJzdENoaWxkOworICAgICAgICB3aGls
ZSAoY2hpbGQpIHsKKyAgICAgICAgICAgIHZhciBuZXh0U2libGluZyA9IGNoaWxkLm5leHRTaWJs
aW5nOworICAgICAgICAgICAgcGFyZW50RWxlbWVudC5pbnNlcnRCZWZvcmUoY2hpbGQsIGhpZ2hs
aWdodEVsZW1lbnQpOworICAgICAgICAgICAgY2hpbGQgPSBuZXh0U2libGluZzsKICAgICAgICAg
fQorICAgICAgICBwYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGhpZ2hsaWdodEVsZW1lbnQpOwor
ICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5yZWxlYXNlRXZhbHVhdGlvblJlc3VsdCgpOworICAgIH0s
CiAKLSAgICAgICAgdGhpcy5faG92ZXJFbGVtZW50ID0gZXZlbnQudGFyZ2V0OwotCi0gICAgICAg
IC8vIE5vdyB0aGF0IGNsZWFudXAgcm91dGluZXMgYXJlIHNldCB1cCBhYm92ZSwgbGVhdmUgdGhp
cyBpbiBjYXNlIHdlIGFyZSBub3Qgb24gYSBicmVhay4KKyAgICBfc2hvdWxkU2hvd1BvcG92ZXI6
IGZ1bmN0aW9uKGVsZW1lbnQpCisgICAgewogICAgICAgICBpZiAoIXRoaXMuX2RlbGVnYXRlLmRl
YnVnZ2VyUGF1c2VkKCkpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CisgICAgICAgIGlmICghZWxlbWVudC5lbmNsb3NpbmdOb2RlT3JTZWxmV2l0aENsYXNz
KCJ3ZWJraXQtbGluZS1jb250ZW50IikpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAg
ICAgICAgLy8gV2UgYXJlIGludGVyZXN0ZWQgaW4gaWRlbnRpZmllcnMgYW5kICJ0aGlzIiBrZXl3
b3JkLgotICAgICAgICBpZiAodGhpcy5faG92ZXJFbGVtZW50Lmhhc1N0eWxlQ2xhc3MoIndlYmtp
dC1qYXZhc2NyaXB0LWtleXdvcmQiKSkgewotICAgICAgICAgICAgaWYgKHRoaXMuX2hvdmVyRWxl
bWVudC50ZXh0Q29udGVudCAhPT0gInRoaXMiKQotICAgICAgICAgICAgICAgIHJldHVybjsKLSAg
ICAgICAgfSBlbHNlIGlmICghdGhpcy5faG92ZXJFbGVtZW50Lmhhc1N0eWxlQ2xhc3MoIndlYmtp
dC1qYXZhc2NyaXB0LWlkZW50IikpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgIGlmIChl
bGVtZW50Lmhhc1N0eWxlQ2xhc3MoIndlYmtpdC1qYXZhc2NyaXB0LWtleXdvcmQiKSkKKyAgICAg
ICAgICAgIHJldHVybiBlbGVtZW50LnRleHRDb250ZW50ID09PSAidGhpcyI7CiAKLSAgICAgICAg
Y29uc3QgdG9vbFRpcERlbGF5ID0gdGhpcy5fcG9wdXAgPyA2MDAgOiAxMDAwOwotICAgICAgICB0
aGlzLl9ob3ZlclRpbWVyID0gc2V0VGltZW91dCh0aGlzLl9tb3VzZUhvdmVyLmJpbmQodGhpcywg
dGhpcy5faG92ZXJFbGVtZW50KSwgdG9vbFRpcERlbGF5KTsKKyAgICAgICAgcmV0dXJuIGVsZW1l
bnQuaGFzU3R5bGVDbGFzcygid2Via2l0LWphdmFzY3JpcHQtaWRlbnQiKTsKICAgICB9LAogCi0g
ICAgX3Jlc2V0SG92ZXJUaW1lcjogZnVuY3Rpb24oKQorICAgIF9nZXRQb3BvdmVyQW5jaG9yOiBm
dW5jdGlvbihlbGVtZW50KQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2hvdmVyVGltZXIpIHsK
LSAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9ob3ZlclRpbWVyKTsKLSAgICAgICAgICAg
IGRlbGV0ZSB0aGlzLl9ob3ZlclRpbWVyOwotICAgICAgICB9Ci0gICAgfSwKLQotICAgIF9oaWRl
UG9wdXA6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3Jlc2V0SG92ZXJUaW1lcigp
OwotICAgICAgICBpZiAoIXRoaXMuX3BvcHVwKQorICAgICAgICBpZiAoIXRoaXMuX3Nob3VsZFNo
b3dQb3BvdmVyKGVsZW1lbnQpKQogICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIC8vIFJl
cGxhY2UgaGlnbGlnaHQgZWxlbWVudCB3aXRoIGl0cyBjb250ZW50cyBpbnBsYWNlLgotICAgICAg
ICB2YXIgcGFyZW50RWxlbWVudCA9IHRoaXMuX3BvcHVwLmhpZ2hsaWdodEVsZW1lbnQucGFyZW50
RWxlbWVudDsKLSAgICAgICAgdmFyIGNoaWxkID0gdGhpcy5fcG9wdXAuaGlnaGxpZ2h0RWxlbWVu
dC5maXJzdENoaWxkOwotICAgICAgICB3aGlsZSAoY2hpbGQpIHsKLSAgICAgICAgICAgIHZhciBu
ZXh0U2libGluZyA9IGNoaWxkLm5leHRTaWJsaW5nOwotICAgICAgICAgICAgcGFyZW50RWxlbWVu
dC5pbnNlcnRCZWZvcmUoY2hpbGQsIHRoaXMuX3BvcHVwLmhpZ2hsaWdodEVsZW1lbnQpOwotICAg
ICAgICAgICAgY2hpbGQgPSBuZXh0U2libGluZzsKLSAgICAgICAgfQotICAgICAgICBwYXJlbnRF
bGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuX3BvcHVwLmhpZ2hsaWdodEVsZW1lbnQpOwotCi0gICAg
ICAgIHRoaXMuX3BvcHVwLmhpZGUoKTsKLSAgICAgICAgZGVsZXRlIHRoaXMuX3BvcHVwOwotICAg
ICAgICB0aGlzLl9kZWxlZ2F0ZS5yZWxlYXNlRXZhbHVhdGlvblJlc3VsdCgpOworICAgICAgICBy
ZXR1cm4gZWxlbWVudDsKICAgICB9LAogCi0gICAgX21vdXNlSG92ZXI6IGZ1bmN0aW9uKGVsZW1l
bnQpCisgICAgX2hpZ2hsaWdodEV4cHJlc3Npb246IGZ1bmN0aW9uKGVsZW1lbnQpCiAgICAgewot
ICAgICAgICBkZWxldGUgdGhpcy5faG92ZXJUaW1lcjsKLQotICAgICAgICB2YXIgbGluZVJvdyA9
IGVsZW1lbnQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygid2Via2l0LWxpbmUtY29udGVu
dCIpOwotICAgICAgICBpZiAoIWxpbmVSb3cpCi0gICAgICAgICAgICByZXR1cm47Ci0KICAgICAg
ICAgLy8gQ29sbGVjdCB0b2tlbnMgYmVsb25naW5nIHRvIGV2YWx1YXRlZCBleHJlc3Npb24uCiAg
ICAgICAgIHZhciB0b2tlbnMgPSBbIGVsZW1lbnQgXTsKICAgICAgICAgdmFyIHRva2VuID0gZWxl
bWVudC5wcmV2aW91c1NpYmxpbmc7CkBAIC03NDQsNjYgKzcxMyw1MCBAQCBXZWJJbnNwZWN0b3Iu
U291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRv
a2Vucy5sZW5ndGg7ICsraSkKICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZCh0b2tl
bnNbaV0pOwogICAgICAgICBwYXJlbnRFbGVtZW50Lmluc2VydEJlZm9yZShjb250YWluZXIsIG5l
eHRFbGVtZW50KTsKLSAgICAgICAgdGhpcy5fc2hvd1BvcHVwKGNvbnRhaW5lcik7CisgICAgICAg
IHJldHVybiBjb250YWluZXI7CiAgICAgfSwKIAotICAgIF9zaG93UG9wdXA6IGZ1bmN0aW9uKGVs
ZW1lbnQpCisgICAgX29uU2hvd1BvcG92ZXI6IGZ1bmN0aW9uKGVsZW1lbnQsIHBvcG92ZXIpCiAg
ICAgewotICAgICAgICBpZiAoIXRoaXMuX2RlbGVnYXRlLmRlYnVnZ2VyUGF1c2VkKCkpCi0gICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIHRoaXMuX2hpZ2hsaWdodEVsZW1lbnQgPSB0aGlzLl9o
aWdobGlnaHRFeHByZXNzaW9uKGVsZW1lbnQpOwogCi0gICAgICAgIGZ1bmN0aW9uIGtpbGxIaWRl
UG9wdXBUaW1lcigpCisgICAgICAgIGZ1bmN0aW9uIHNob3dPYmplY3RQb3BvdmVyKHJlc3VsdCwg
d2FzVGhyb3duKQogICAgICAgICB7Ci0gICAgICAgICAgICBpZiAodGhpcy5faGlkZVBvcHVwVGlt
ZXIpIHsKLSAgICAgICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5faGlkZVBvcHVwVGltZXIp
OwotICAgICAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9oaWRlUG9wdXBUaW1lcjsKLQotICAgICAg
ICAgICAgICAgIC8vIFdlIGtub3cgdGhhdCB3ZSByZWFjaGVkIHRoZSBwb3B1cCwgYnV0IHdlIG1p
Z2h0IGhhdmUgbW92ZWQgb3ZlciBvdGhlciBlbGVtZW50cy4KLSAgICAgICAgICAgICAgICAvLyBE
aXNjYXJkIHBlbmRpbmcgY29tbWFuZC4KLSAgICAgICAgICAgICAgICB0aGlzLl9yZXNldEhvdmVy
VGltZXIoKTsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotCi0gICAgICAgIGZ1bmN0aW9uIHNo
b3dPYmplY3RQb3B1cChyZXN1bHQsIHdhc1Rocm93bikKLSAgICAgICAgewotICAgICAgICAgICAg
aWYgKHdhc1Rocm93biB8fCAhdGhpcy5fZGVsZWdhdGUuZGVidWdnZXJQYXVzZWQoKSkKKyAgICAg
ICAgICAgIGlmICh3YXNUaHJvd24gfHwgIXRoaXMuX2RlbGVnYXRlLmRlYnVnZ2VyUGF1c2VkKCkp
IHsKKyAgICAgICAgICAgICAgICB0aGlzLl9wb3BvdmVySGVscGVyLmhpZGVQb3BvdmVyKCk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgICAgICB2YXIgcG9wdXBDb250ZW50RWxl
bWVudCA9IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2YXIgcG9wb3ZlckNvbnRl
bnRFbGVtZW50ID0gbnVsbDsKICAgICAgICAgICAgIGlmIChyZXN1bHQudHlwZSAhPT0gIm9iamVj
dCIpIHsKLSAgICAgICAgICAgICAgICBwb3B1cENvbnRlbnRFbGVtZW50ID0gZG9jdW1lbnQuY3Jl
YXRlRWxlbWVudCgic3BhbiIpOwotICAgICAgICAgICAgICAgIHBvcHVwQ29udGVudEVsZW1lbnQu
Y2xhc3NOYW1lID0gIm1vbm9zcGFjZSBjb25zb2xlLWZvcm1hdHRlZC0iICsgcmVzdWx0LnR5cGU7
Ci0gICAgICAgICAgICAgICAgcG9wdXBDb250ZW50RWxlbWVudC5zdHlsZS53aGl0ZVNwYWNlID0g
InByZSI7Ci0gICAgICAgICAgICAgICAgcG9wdXBDb250ZW50RWxlbWVudC50ZXh0Q29udGVudCA9
IHJlc3VsdC5kZXNjcmlwdGlvbjsKKyAgICAgICAgICAgICAgICBwb3BvdmVyQ29udGVudEVsZW1l
bnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAgICAgICAgICAgICAgcG9w
b3ZlckNvbnRlbnRFbGVtZW50LmNsYXNzTmFtZSA9ICJtb25vc3BhY2UgY29uc29sZS1mb3JtYXR0
ZWQtIiArIHJlc3VsdC50eXBlOworICAgICAgICAgICAgICAgIHBvcG92ZXJDb250ZW50RWxlbWVu
dC5zdHlsZS53aGl0ZVNwYWNlID0gInByZSI7CisgICAgICAgICAgICAgICAgcG9wb3ZlckNvbnRl
bnRFbGVtZW50LnRleHRDb250ZW50ID0gcmVzdWx0LmRlc2NyaXB0aW9uOwogICAgICAgICAgICAg
ICAgIGlmIChyZXN1bHQudHlwZSA9PT0gInN0cmluZyIpCi0gICAgICAgICAgICAgICAgICAgIHBv
cHVwQ29udGVudEVsZW1lbnQudGV4dENvbnRlbnQgPSAiXCIiICsgcG9wdXBDb250ZW50RWxlbWVu
dC50ZXh0Q29udGVudCArICJcIiI7Ci0gICAgICAgICAgICAgICAgdGhpcy5fcG9wdXAgPSBuZXcg
V2ViSW5zcGVjdG9yLlBvcG92ZXIocG9wdXBDb250ZW50RWxlbWVudCk7Ci0gICAgICAgICAgICAg
ICAgdGhpcy5fcG9wdXAuc2hvdyhlbGVtZW50KTsKKyAgICAgICAgICAgICAgICAgICAgcG9wb3Zl
ckNvbnRlbnRFbGVtZW50LnRleHRDb250ZW50ID0gIlwiIiArIHBvcG92ZXJDb250ZW50RWxlbWVu
dC50ZXh0Q29udGVudCArICJcIiI7CisgICAgICAgICAgICAgICAgcG9wb3Zlci5zaG93KHBvcG92
ZXJDb250ZW50RWxlbWVudCwgZWxlbWVudCk7CiAgICAgICAgICAgICB9IGVsc2UgewotICAgICAg
ICAgICAgICAgIHZhciBwb3B1cENvbnRlbnRFbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiZGl2Iik7CisgICAgICAgICAgICAgICAgdmFyIHBvcG92ZXJDb250ZW50RWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogCiAgICAgICAgICAgICAgICAgdmFyIHRpdGxl
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgICAgICAgICAgICAg
IHRpdGxlRWxlbWVudC5jbGFzc05hbWUgPSAic291cmNlLWZyYW1lLXBvcG92ZXItdGl0bGUgbW9u
b3NwYWNlIjsKICAgICAgICAgICAgICAgICB0aXRsZUVsZW1lbnQudGV4dENvbnRlbnQgPSByZXN1
bHQuZGVzY3JpcHRpb247Ci0gICAgICAgICAgICAgICAgcG9wdXBDb250ZW50RWxlbWVudC5hcHBl
bmRDaGlsZCh0aXRsZUVsZW1lbnQpOworICAgICAgICAgICAgICAgIHBvcG92ZXJDb250ZW50RWxl
bWVudC5hcHBlbmRDaGlsZCh0aXRsZUVsZW1lbnQpOwogCiAgICAgICAgICAgICAgICAgdmFyIHNl
Y3Rpb24gPSBuZXcgV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnRpZXNTZWN0aW9uKHJlc3VsdCk7
CiAgICAgICAgICAgICAgICAgc2VjdGlvbi5leHBhbmRlZCA9IHRydWU7CiAgICAgICAgICAgICAg
ICAgc2VjdGlvbi5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoInNvdXJjZS1mcmFtZS1wb3BvdmVyLXRy
ZWUiKTsKICAgICAgICAgICAgICAgICBzZWN0aW9uLmhlYWRlckVsZW1lbnQuYWRkU3R5bGVDbGFz
cygiaGlkZGVuIik7Ci0gICAgICAgICAgICAgICAgcG9wdXBDb250ZW50RWxlbWVudC5hcHBlbmRD
aGlsZChzZWN0aW9uLmVsZW1lbnQpOworICAgICAgICAgICAgICAgIHBvcG92ZXJDb250ZW50RWxl
bWVudC5hcHBlbmRDaGlsZChzZWN0aW9uLmVsZW1lbnQpOwogCi0gICAgICAgICAgICAgICAgdGhp
cy5fcG9wdXAgPSBuZXcgV2ViSW5zcGVjdG9yLlBvcG92ZXIocG9wdXBDb250ZW50RWxlbWVudCk7
Ci0gICAgICAgICAgICAgICAgY29uc3QgcG9wdXBXaWR0aCA9IDMwMDsKLSAgICAgICAgICAgICAg
ICBjb25zdCBwb3B1cEhlaWdodCA9IDI1MDsKLSAgICAgICAgICAgICAgICB0aGlzLl9wb3B1cC5z
aG93KGVsZW1lbnQsIHBvcHVwV2lkdGgsIHBvcHVwSGVpZ2h0KTsKKyAgICAgICAgICAgICAgICBj
b25zdCBwb3BvdmVyV2lkdGggPSAzMDA7CisgICAgICAgICAgICAgICAgY29uc3QgcG9wb3Zlckhl
aWdodCA9IDI1MDsKKyAgICAgICAgICAgICAgICBwb3BvdmVyLnNob3cocG9wb3ZlckNvbnRlbnRF
bGVtZW50LCBlbGVtZW50LCBwb3BvdmVyV2lkdGgsIHBvcG92ZXJIZWlnaHQpOwogICAgICAgICAg
ICAgfQotICAgICAgICAgICAgdGhpcy5fcG9wdXAuaGlnaGxpZ2h0RWxlbWVudCA9IGVsZW1lbnQ7
Ci0gICAgICAgICAgICB0aGlzLl9wb3B1cC5oaWdobGlnaHRFbGVtZW50LmFkZFN0eWxlQ2xhc3Mo
InNvdXJjZS1mcmFtZS1ldmFsLWV4cHJlc3Npb24iKTsKLSAgICAgICAgICAgIHBvcHVwQ29udGVu
dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwga2lsbEhpZGVQb3B1cFRpbWVy
LmJpbmQodGhpcyksIHRydWUpOworICAgICAgICAgICAgdGhpcy5faGlnaGxpZ2h0RWxlbWVudC5h
ZGRTdHlsZUNsYXNzKCJzb3VyY2UtZnJhbWUtZXZhbC1leHByZXNzaW9uIik7CiAgICAgICAgIH0K
IAotICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5ldmFsdWF0ZUluU2VsZWN0ZWRDYWxsRnJhbWUoZWxl
bWVudC50ZXh0Q29udGVudCwgc2hvd09iamVjdFBvcHVwLmJpbmQodGhpcykpOworICAgICAgICB0
aGlzLl9kZWxlZ2F0ZS5ldmFsdWF0ZUluU2VsZWN0ZWRDYWxsRnJhbWUodGhpcy5faGlnaGxpZ2h0
RWxlbWVudC50ZXh0Q29udGVudCwgc2hvd09iamVjdFBvcG92ZXIuYmluZCh0aGlzKSk7CiAgICAg
fSwKIAogICAgIF9lZGl0QnJlYWtwb2ludENvbmRpdGlvbjogZnVuY3Rpb24obGluZU51bWJlciwg
Y29uZGl0aW9uLCBjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwppbmRleCBkMjVkOWJhLi5lZDNhMGE3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RpbWVsaW5lUGFuZWwuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UaW1lbGluZVBhbmVsLmpz
CkBAIC05Myw3ICs5Myw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsID0gZnVuY3Rpb24o
KQogICAgIHRoaXMuX2JvdW5kYXJpZXNBcmVWYWxpZCA9IHRydWU7CiAgICAgdGhpcy5fc2Nyb2xs
VG9wID0gMDsKIAotICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlBv
cG92ZXJIZWxwZXIodGhpcy5fY29udGFpbmVyRWxlbWVudCwgdGhpcy5fZ2V0UG9wb3ZlckFuY2hv
ci5iaW5kKHRoaXMpLCB0aGlzLl9zaG93UG9wb3Zlci5iaW5kKHRoaXMpLCB0cnVlKTsKKyAgICB0
aGlzLl9wb3BvdmVySGVscGVyID0gbmV3IFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyKHRoaXMu
X2NvbnRhaW5lckVsZW1lbnQsIHRoaXMuX2dldFBvcG92ZXJBbmNob3IuYmluZCh0aGlzKSwgdGhp
cy5fc2hvd1BvcG92ZXIuYmluZCh0aGlzKSk7CiAgICAgdGhpcy5fY29udGFpbmVyRWxlbWVudC5h
ZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0aGlzLl9tb3VzZU1vdmUuYmluZCh0aGlzKSwg
ZmFsc2UpOwogICAgIHRoaXMuX2NvbnRhaW5lckVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91
c2VvdXQiLCB0aGlzLl9tb3VzZU91dC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKQEAgLTc0OCwxNyAr
NzQ4LDE1IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgfQogICAgIH0sCiAKLSAgICBfc2hvd1BvcG92ZXI6IGZ1bmN0aW9uKGFuY2hvcikKKyAgICBf
c2hvd1BvcG92ZXI6IGZ1bmN0aW9uKGFuY2hvciwgcG9wb3ZlcikKICAgICB7CiAgICAgICAgIHZh
ciByZWNvcmQgPSBhbmNob3Iucm93Ll9yZWNvcmQ7Ci0gICAgICAgIHZhciBwb3BvdmVyID0gbmV3
IFdlYkluc3BlY3Rvci5Qb3BvdmVyKHJlY29yZC5fZ2VuZXJhdGVQb3B1cENvbnRlbnQodGhpcy5f
Y2FsY3VsYXRvciwgdGhpcy5jYXRlZ29yaWVzKSk7Ci0gICAgICAgIHBvcG92ZXIuc2hvdyhhbmNo
b3IpOwotICAgICAgICByZXR1cm4gcG9wb3ZlcjsKKyAgICAgICAgcG9wb3Zlci5zaG93KHJlY29y
ZC5fZ2VuZXJhdGVQb3B1cENvbnRlbnQodGhpcy5fY2FsY3VsYXRvciwgdGhpcy5jYXRlZ29yaWVz
KSwgYW5jaG9yKTsKICAgICB9LAogCiAgICAgX2Nsb3NlUmVjb3JkRGV0YWlsczogZnVuY3Rpb24o
KQogICAgIHsKLSAgICAgICAgdGhpcy5fcG9wb3ZlckhlbHBlci5oaWRlUG9wdXAoKTsKKyAgICAg
ICAgdGhpcy5fcG9wb3ZlckhlbHBlci5oaWRlUG9wb3ZlcigpOwogICAgIH0KIH0KIAo=
</data>
<flag name="review"
          id="101237"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>105190</attachid>
            <date>2011-08-25 07:46:07 -0700</date>
            <delta_ts>2011-08-25 08:47:52 -0700</delta_ts>
            <desc>patch</desc>
            <filename>sourceframe-popover.diff</filename>
            <type>text/plain</type>
            <size>22637</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2NDI3NDEzLi5hZDJkMjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDUg
QEAKKzIwMTEtMDgtMjUgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBbcmVmYWN0b3JpbmddIHVzZSBQb3BvdmVySGVscGVyIHRv
IGltcGxlbWVudCBwb3B1cCBpbiB0aGUgU291cmNlRnJhbWUKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY2ODU4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVk
SGVhcHNob3RWaWV3LmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkRldGFpbGVkSGVhcHNob3RW
aWV3LnByb3RvdHlwZS5fc2hvd1N0cmluZ0NvbnRlbnRQb3BvdmVyKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5O
ZXR3b3JrTG9nVmlldy5wcm90b3R5cGUuaW5pdGlhbGl6ZVZpZXcpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLk5ldHdvcmtMb2dWaWV3LnByb3RvdHlwZS53aWxsSGlkZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlLl9yZXNldCk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlLnN3aXRjaFRvQnJpZWZWaWV3KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUuX3Nob3dQb3BvdmVy
KToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1BvcG92ZXIuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUG9wb3Zlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUG9wb3Zlci5wcm90
b3R5cGUuc2hvdyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUG9wb3Zlci5wcm90b3R5cGUuZGlz
cG9zZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuUG9wb3ZlckhlbHBlcik6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuUG9wb3ZlckhlbHBlci5wcm90b3R5cGUuX21vdXNlTW92ZS5kb0hpZGUpOgor
ICAgICAgICAoV2ViSW5zcGVjdG9yLlBvcG92ZXJIZWxwZXIucHJvdG90eXBlLl9tb3VzZU1vdmUp
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBvcG92ZXJIZWxwZXIucHJvdG90eXBlLmhpZGVQb3Bv
dmVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyLnByb3RvdHlwZS5faGlk
ZVBvcG92ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlBvcG92ZXJIZWxwZXIucHJvdG90eXBl
Ll9tb3VzZUhvdmVyKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyLnByb3Rv
dHlwZS5fa2lsbEhpZGVQb3B1cFRpbWVyKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5k
L1NvdXJjZUZyYW1lLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3Rv
dHlwZS53aWxsSGlkZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90
eXBlLl9pbml0aWFsaXplVGV4dFZpZXdlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU291cmNl
RnJhbWUucHJvdG90eXBlLl9zY3JvbGwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZy
YW1lLnByb3RvdHlwZS5fbW91c2VEb3duKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VG
cmFtZS5wcm90b3R5cGUuX29uSGlkZVBvcG92ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNv
dXJjZUZyYW1lLnByb3RvdHlwZS5fc2hvdWxkU2hvd1BvcG92ZXIpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZS5fZ2V0UG9wb3ZlckFuY2hvcik6CisgICAgICAg
IChXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlLl9oaWdobGlnaHRFeHByZXNzaW9u
KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUuX29uU2hvd1Bv
cG92ZXIuc2hvd09iamVjdFBvcG92ZXIpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNvdXJjZUZy
YW1lLnByb3RvdHlwZS5fb25TaG93UG9wb3Zlcik6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250
LWVuZC9UaW1lbGluZVBhbmVsLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFu
ZWwpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRpbWVsaW5lUGFuZWwucHJvdG90eXBlLl9zaG93
UG9wb3Zlcik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGltZWxpbmVQYW5lbC5wcm90b3R5cGUu
X2Nsb3NlUmVjb3JkRGV0YWlscyk6CisKIDIwMTEtMDgtMjUgIE1PUklUQSBIYWppbWUgIDxtb3Jy
aXRhQGdvb2dsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjkzNzYy
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZXRhaWxl
ZEhlYXBzaG90Vmlldy5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGV0
YWlsZWRIZWFwc2hvdFZpZXcuanMKaW5kZXggODVmMzBmMi4uZDhkZmQxZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZXRhaWxlZEhlYXBzaG90Vmlldy5q
cworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RldGFpbGVkSGVhcHNo
b3RWaWV3LmpzCkBAIC02MTgsNyArNjE4LDcgQEAgV2ViSW5zcGVjdG9yLkRldGFpbGVkSGVhcHNo
b3RWaWV3ID0gZnVuY3Rpb24ocGFyZW50LCBwcm9maWxlKQogICAgIHRoaXMuaGVscEJ1dHRvbiA9
IG5ldyBXZWJJbnNwZWN0b3IuU3RhdHVzQmFyQnV0dG9uKCIiLCAiaGVhcHNob3QtaGVscC1zdGF0
dXMtYmFyLWl0ZW0gc3RhdHVzLWJhci1pdGVtIik7CiAgICAgdGhpcy5oZWxwQnV0dG9uLmFkZEV2
ZW50TGlzdGVuZXIoImNsaWNrIiwgdGhpcy5faGVscENsaWNrZWQuYmluZCh0aGlzKSwgZmFsc2Up
OwogCi0gICAgdmFyIHBvcG92ZXJIZWxwZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlBvcG92ZXJIZWxw
ZXIodGhpcy5lbGVtZW50LCB0aGlzLl9nZXRIb3ZlckFuY2hvci5iaW5kKHRoaXMpLCB0aGlzLl9z
aG93U3RyaW5nQ29udGVudFBvcHVwLmJpbmQodGhpcykpOworICAgIHZhciBwb3BvdmVySGVscGVy
ID0gbmV3IFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyKHRoaXMuZWxlbWVudCwgdGhpcy5fZ2V0
SG92ZXJBbmNob3IuYmluZCh0aGlzKSwgdGhpcy5fc2hvd1N0cmluZ0NvbnRlbnRQb3BvdmVyLmJp
bmQodGhpcykpOwogCiAgICAgdGhpcy5fbG9hZFByb2ZpbGUodGhpcy5fcHJvZmlsZVVpZCwgcHJv
ZmlsZUNhbGxiYWNrLmJpbmQodGhpcykpOwogCkBAIC0xMDQyLDIxICsxMDQyLDE5IEBAIFdlYklu
c3BlY3Rvci5EZXRhaWxlZEhlYXBzaG90Vmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgIHRoaXMu
cmVmcmVzaFNob3dBc1BlcmNlbnRzKCk7CiAgICAgfSwKIAotICAgIF9zaG93U3RyaW5nQ29udGVu
dFBvcHVwOiBmdW5jdGlvbihzcGFuKQorICAgIF9zaG93U3RyaW5nQ29udGVudFBvcG92ZXI6IGZ1
bmN0aW9uKGFuY2hvciwgcG9wb3ZlcikKICAgICB7CiAgICAgICAgIHZhciBzdHJpbmdDb250ZW50
RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoInNwYW4iKTsKICAgICAgICAgc3RyaW5n
Q29udGVudEVsZW1lbnQuY2xhc3NOYW1lID0gIm1vbm9zcGFjZSI7CiAgICAgICAgIHN0cmluZ0Nv
bnRlbnRFbGVtZW50LnN0eWxlLndoaXRlU3BhY2UgPSAicHJlIjsKIAotICAgICAgICB2YXIgcG9w
b3ZlciA9IG5ldyBXZWJJbnNwZWN0b3IuUG9wb3ZlcihzdHJpbmdDb250ZW50RWxlbWVudCk7CiAg
ICAgICAgIGZ1bmN0aW9uIGRpc3BsYXlTdHJpbmcobmFtZSwgY2xhc3NOYW1lKQogICAgICAgICB7
CiAgICAgICAgICAgICBzdHJpbmdDb250ZW50RWxlbWVudC50ZXh0Q29udGVudCA9IG5hbWU7CiAg
ICAgICAgICAgICBzdHJpbmdDb250ZW50RWxlbWVudC5jbGFzc05hbWUgKz0gIiAiICsgY2xhc3NO
YW1lOwotICAgICAgICAgICAgcG9wb3Zlci5zaG93KHNwYW4pOworICAgICAgICAgICAgcG9wb3Zl
ci5zaG93KHN0cmluZ0NvbnRlbnRFbGVtZW50LCBhbmNob3IpOwogICAgICAgICB9Ci0gICAgICAg
IHNwYW4ubm9kZS5ob3Zlck1lc3NhZ2UoZGlzcGxheVN0cmluZyk7Ci0gICAgICAgIHJldHVybiBw
b3BvdmVyOworICAgICAgICBhbmNob3Iubm9kZS5ob3Zlck1lc3NhZ2UoZGlzcGxheVN0cmluZyk7
CiAgICAgfSwKIAogICAgIF9oZWxwQ2xpY2tlZDogZnVuY3Rpb24oZXZlbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL05ldHdvcmtQYW5lbC5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvTmV0d29ya1BhbmVsLmpzCmluZGV4IDMz
NTY0YTMuLjhiMzg1NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvTmV0d29ya1BhbmVsLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvTmV0d29ya1BhbmVsLmpzCkBAIC04MCw3ICs4MCw3IEBAIFdlYkluc3BlY3Rvci5OZXR3
b3JrTG9nVmlldy5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICB0aGlzLl9zZXRMYXJnZXJSZXNv
dXJjZXModGhpcy51c2VMYXJnZVJvd3MpOwogCiAgICAgICAgIHRoaXMuX2FsbG93UG9wb3ZlciA9
IHRydWU7Ci0gICAgICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlBv
cG92ZXJIZWxwZXIodGhpcy5lbGVtZW50LCB0aGlzLl9nZXRQb3BvdmVyQW5jaG9yLmJpbmQodGhp
cyksIHRoaXMuX3Nob3dQb3BvdmVyLmJpbmQodGhpcyksIHRydWUpOworICAgICAgICB0aGlzLl9w
b3BvdmVySGVscGVyID0gbmV3IFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyKHRoaXMuZWxlbWVu
dCwgdGhpcy5fZ2V0UG9wb3ZlckFuY2hvci5iaW5kKHRoaXMpLCB0aGlzLl9zaG93UG9wb3Zlci5i
aW5kKHRoaXMpKTsKICAgICAgICAgLy8gRW5hYmxlIGZhc3RlciBoaW50LgogICAgICAgICB0aGlz
Ll9wb3BvdmVySGVscGVyLnNldFRpbWVvdXQoMTAwKTsKIApAQCAtNjQzLDcgKzY0Myw3IEBAIFdl
Ykluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUgPSB7CiAgICAgd2lsbEhpZGU6IGZ1
bmN0aW9uKCkKICAgICB7CiAgICAgICAgIFdlYkluc3BlY3Rvci5JRnJhbWVWaWV3LnByb3RvdHlw
ZS53aWxsSGlkZS5jYWxsKHRoaXMpOwotICAgICAgICB0aGlzLl9wb3BvdmVySGVscGVyLmhpZGVQ
b3B1cCgpOworICAgICAgICB0aGlzLl9wb3BvdmVySGVscGVyLmhpZGVQb3BvdmVyKCk7CiAgICAg
fSwKIAogICAgIHJlZnJlc2g6IGZ1bmN0aW9uKCkKQEAgLTcwNSw3ICs3MDUsNyBAQCBXZWJJbnNw
ZWN0b3IuTmV0d29ya0xvZ1ZpZXcucHJvdG90eXBlID0gewogCiAgICAgICAgIHRoaXMuX2NsZWFy
U2VhcmNoTWF0Y2hlZExpc3QoKTsKICAgICAgICAgaWYgKHRoaXMuX3BvcG92ZXJIZWxwZXIpCi0g
ICAgICAgICAgICB0aGlzLl9wb3BvdmVySGVscGVyLmhpZGVQb3B1cCgpOworICAgICAgICAgICAg
dGhpcy5fcG9wb3ZlckhlbHBlci5oaWRlUG9wb3ZlcigpOwogCiAgICAgICAgIGlmICh0aGlzLl9j
YWxjdWxhdG9yKQogICAgICAgICAgICAgdGhpcy5fY2FsY3VsYXRvci5yZXNldCgpOwpAQCAtODYy
LDcgKzg2Miw3IEBAIFdlYkluc3BlY3Rvci5OZXR3b3JrTG9nVmlldy5wcm90b3R5cGUgPSB7CiAg
ICAgICAgIHdpZHRocy5uYW1lID0gMTAwOwogICAgICAgICB0aGlzLl9kYXRhR3JpZC5hcHBseUNv
bHVtbldpZHRoc01hcCh3aWR0aHMpOwogCi0gICAgICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIuaGlk
ZVBvcHVwKCk7CisgICAgICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIuaGlkZVBvcG92ZXIoKTsKICAg
ICB9LAogCiAgICAgX3RvZ2dsZUxhcmdlclJlc291cmNlczogZnVuY3Rpb24oKQpAQCAtODk4LDEz
ICs4OTgsMTEgQEAgV2ViSW5zcGVjdG9yLk5ldHdvcmtMb2dWaWV3LnByb3RvdHlwZSA9IHsKICAg
ICAgICAgcmV0dXJuIHJlc291cmNlICYmIHJlc291cmNlLnRpbWluZyA/IGFuY2hvciA6IG51bGw7
CiAgICAgfSwKIAotICAgIF9zaG93UG9wb3ZlcjogZnVuY3Rpb24oYW5jaG9yKQorICAgIF9zaG93
UG9wb3ZlcjogZnVuY3Rpb24oYW5jaG9yLCBwb3BvdmVyKQogICAgIHsKICAgICAgICAgdmFyIHJl
c291cmNlID0gYW5jaG9yLnBhcmVudEVsZW1lbnQucmVzb3VyY2U7CiAgICAgICAgIHZhciB0YWJs
ZUVsZW1lbnQgPSBXZWJJbnNwZWN0b3IuUmVzb3VyY2VUaW1pbmdWaWV3LmNyZWF0ZVRpbWluZ1Rh
YmxlKHJlc291cmNlKTsKLSAgICAgICAgdmFyIHBvcG92ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlBv
cG92ZXIodGFibGVFbGVtZW50KTsKLSAgICAgICAgcG9wb3Zlci5zaG93KGFuY2hvcik7Ci0gICAg
ICAgIHJldHVybiBwb3BvdmVyOworICAgICAgICBwb3BvdmVyLnNob3codGFibGVFbGVtZW50LCBh
bmNob3IpOwogICAgIH0sCiAKICAgICBfdG9nZ2xlR3JpZE1vZGU6IGZ1bmN0aW9uKCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUG9wb3Zlci5qcyBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvUG9wb3Zlci5qcwppbmRleCA1NmE1YWRi
Li41NTFkOGM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5k
L1BvcG92ZXIuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Qb3Bv
dmVyLmpzCkBAIC0zMiw3ICszMiw3IEBACiAgKiBAY29uc3RydWN0b3IKICAqIEBwYXJhbSB7RWxl
bWVudH0gY29udGVudEVsZW1lbnQKICAqLwotV2ViSW5zcGVjdG9yLlBvcG92ZXIgPSBmdW5jdGlv
bihjb250ZW50RWxlbWVudCkKK1dlYkluc3BlY3Rvci5Qb3BvdmVyID0gZnVuY3Rpb24oKQogewog
ICAgIHRoaXMuZWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgIHRo
aXMuZWxlbWVudC5jbGFzc05hbWUgPSAicG9wb3ZlciI7CkBAIC00MSwxNSArNDEsMTggQEAgV2Vi
SW5zcGVjdG9yLlBvcG92ZXIgPSBmdW5jdGlvbihjb250ZW50RWxlbWVudCkKICAgICB0aGlzLl9w
b3B1cEFycm93RWxlbWVudC5jbGFzc05hbWUgPSAiYXJyb3ciOwogICAgIHRoaXMuZWxlbWVudC5h
cHBlbmRDaGlsZCh0aGlzLl9wb3B1cEFycm93RWxlbWVudCk7CiAKLSAgICB0aGlzLmNvbnRlbnRF
bGVtZW50ID0gY29udGVudEVsZW1lbnQ7CiAgICAgdGhpcy5fY29udGVudERpdiA9IGRvY3VtZW50
LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogICAgIHRoaXMuX2NvbnRlbnREaXYuY2xhc3NOYW1lID0g
ImNvbnRlbnQiOwogICAgIHRoaXMuX3Zpc2libGUgPSBmYWxzZTsKIH0KIAogV2ViSW5zcGVjdG9y
LlBvcG92ZXIucHJvdG90eXBlID0gewotICAgIHNob3c6IGZ1bmN0aW9uKGFuY2hvciwgcHJlZmVy
cmVkV2lkdGgsIHByZWZlcnJlZEhlaWdodCkKKyAgICBzaG93OiBmdW5jdGlvbihjb250ZW50RWxl
bWVudCwgYW5jaG9yLCBwcmVmZXJyZWRXaWR0aCwgcHJlZmVycmVkSGVpZ2h0KQogICAgIHsKKyAg
ICAgICAgaWYgKHRoaXMuX2Rpc3Bvc2VkKQorICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB0
aGlzLmNvbnRlbnRFbGVtZW50ID0gY29udGVudEVsZW1lbnQ7CisKICAgICAgICAgLy8gVGhpcyBz
aG91bGQgbm90IGhhcHBlbiwgYnV0IHdlIGhpZGUgcHJldmlvdXMgcG9wdXAgdG8gYmUgb24gdGhl
IHNhZmUgc2lkZS4KICAgICAgICAgaWYgKFdlYkluc3BlY3Rvci5Qb3BvdmVyLl9wb3BvdmVyRWxl
bWVudCkKICAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoV2ViSW5zcGVjdG9y
LlBvcG92ZXIuX3BvcG92ZXJFbGVtZW50KTsKQEAgLTgyLDYgKzg1LDE4IEBAIFdlYkluc3BlY3Rv
ci5Qb3BvdmVyLnByb3RvdHlwZSA9IHsKICAgICAgICAgcmV0dXJuIHRoaXMuX3Zpc2libGU7CiAg
ICAgfSwKIAorICAgIGdldCBkaXNwb3NlZCgpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5f
ZGlzcG9zZWQ7CisgICAgfSwKKworICAgIGRpc3Bvc2U6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAg
ICAgIGlmICh0aGlzLnZpc2libGUpCisgICAgICAgICAgICB0aGlzLmhpZGUoKTsKKyAgICAgICAg
dGhpcy5fZGlzcG9zZWQgPSB0cnVlOworICAgIH0sCisKICAgICBfcG9zaXRpb25FbGVtZW50OiBm
dW5jdGlvbihhbmNob3JFbGVtZW50LCBwcmVmZXJyZWRXaWR0aCwgcHJlZmVycmVkSGVpZ2h0KQog
ICAgIHsKICAgICAgICAgY29uc3QgYm9yZGVyV2lkdGggPSAyNTsKQEAgLTE2MywxMiArMTc4LDEx
IEBAIFdlYkluc3BlY3Rvci5Qb3BvdmVyLnByb3RvdHlwZSA9IHsKIC8qKgogICogQGNvbnN0cnVj
dG9yCiAgKi8KLVdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyID0gZnVuY3Rpb24ocGFuZWxFbGVt
ZW50LCBnZXRBbmNob3IsIHNob3dQb3B1cCwgc2hvd09uQ2xpY2ssIG9uSGlkZSkKK1dlYkluc3Bl
Y3Rvci5Qb3BvdmVySGVscGVyID0gZnVuY3Rpb24ocGFuZWxFbGVtZW50LCBnZXRBbmNob3IsIHNo
b3dQb3BvdmVyLCBvbkhpZGUpCiB7CiAgICAgdGhpcy5fcGFuZWxFbGVtZW50ID0gcGFuZWxFbGVt
ZW50OwogICAgIHRoaXMuX2dldEFuY2hvciA9IGdldEFuY2hvcjsKLSAgICB0aGlzLl9zaG93UG9w
dXAgPSBzaG93UG9wdXA7Ci0gICAgdGhpcy5fc2hvd09uQ2xpY2sgPSBzaG93T25DbGljazsKKyAg
ICB0aGlzLl9zaG93UG9wb3ZlciA9IHNob3dQb3BvdmVyOwogICAgIHRoaXMuX29uSGlkZSA9IG9u
SGlkZTsKICAgICBwYW5lbEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vkb3duIiwgdGhp
cy5fbW91c2VEb3duLmJpbmQodGhpcyksIGZhbHNlKTsKICAgICBwYW5lbEVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwgdGhpcy5fbW91c2VNb3ZlLmJpbmQodGhpcyksIGZhbHNl
KTsKQEAgLTE5NCwxNCArMjA4LDE0IEBAIFdlYkluc3BlY3Rvci5Qb3BvdmVySGVscGVyLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgICAgIHJldHVybjsKIAogICAgICAgICAvLyBVc2VyIGhhcyA1MDBt
cyAodGhpcy5fdGltZW91dCAvIDIpIHRvIHJlYWNoIHRoZSBwb3B1cC4KLSAgICAgICAgaWYgKHRo
aXMuX3BvcHVwICYmICF0aGlzLl9oaWRlUG9wdXBUaW1lcikgeworICAgICAgICBpZiAodGhpcy5f
cG9wb3ZlciAmJiAhdGhpcy5faGlkZVBvcG92ZXJUaW1lcikgewogICAgICAgICAgICAgdmFyIHNl
bGYgPSB0aGlzOwogICAgICAgICAgICAgZnVuY3Rpb24gZG9IaWRlKCkKICAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBzZWxmLl9oaWRlUG9wdXAoKTsKLSAgICAgICAgICAgICAgICBkZWxl
dGUgc2VsZi5faGlkZVBvcHVwVGltZXI7CisgICAgICAgICAgICAgICAgc2VsZi5faGlkZVBvcG92
ZXIoKTsKKyAgICAgICAgICAgICAgICBkZWxldGUgc2VsZi5faGlkZVBvcG92ZXJUaW1lcjsKICAg
ICAgICAgICAgIH0KLSAgICAgICAgICAgIHRoaXMuX2hpZGVQb3B1cFRpbWVyID0gc2V0VGltZW91
dChkb0hpZGUsIHRoaXMuX3RpbWVvdXQgLyAyKTsKKyAgICAgICAgICAgIHRoaXMuX2hpZGVQb3Bv
dmVyVGltZXIgPSBzZXRUaW1lb3V0KGRvSGlkZSwgdGhpcy5fdGltZW91dCAvIDIpOwogICAgICAg
ICB9CiAKICAgICAgICAgdGhpcy5faGFuZGxlTW91c2VBY3Rpb24oZXZlbnQpOwpAQCAtMjI3LDM3
ICsyNDEsMzggQEAgV2ViSW5zcGVjdG9yLlBvcG92ZXJIZWxwZXIucHJvdG90eXBlID0gewogICAg
ICAgICB9CiAgICAgfSwKIAotICAgIGhpZGVQb3B1cDogZnVuY3Rpb24oKQorICAgIGhpZGVQb3Bv
dmVyOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB0aGlzLl9yZXNldEhvdmVyVGltZXIoKTsK
LSAgICAgICAgdGhpcy5faGlkZVBvcHVwKCk7CisgICAgICAgIHRoaXMuX2hpZGVQb3BvdmVyKCk7
CiAgICAgfSwKIAotICAgIF9oaWRlUG9wdXA6IGZ1bmN0aW9uKCkKKyAgICBfaGlkZVBvcG92ZXI6
IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAgIGlmICghdGhpcy5fcG9wdXApCisgICAgICAgIGRl
bGV0ZSB0aGlzLl9wb3B1cEluc3RhbmNlTWFya2VyOworICAgICAgICBpZiAoIXRoaXMuX3BvcG92
ZXIpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKHRoaXMuX29uSGlkZSkKICAg
ICAgICAgICAgIHRoaXMuX29uSGlkZSgpOwogCi0gICAgICAgIHRoaXMuX3BvcHVwLmhpZGUoKTsK
LSAgICAgICAgZGVsZXRlIHRoaXMuX3BvcHVwOworICAgICAgICB0aGlzLl9wb3BvdmVyLmRpc3Bv
c2UoKTsKKyAgICAgICAgZGVsZXRlIHRoaXMuX3BvcG92ZXI7CiAgICAgfSwKIAogICAgIF9tb3Vz
ZUhvdmVyOiBmdW5jdGlvbihlbGVtZW50KQogICAgIHsKICAgICAgICAgZGVsZXRlIHRoaXMuX2hv
dmVyVGltZXI7CiAKLSAgICAgICAgdGhpcy5fcG9wdXAgPSB0aGlzLl9zaG93UG9wdXAoZWxlbWVu
dCk7Ci0gICAgICAgIGlmICh0aGlzLl9wb3B1cCkKLSAgICAgICAgICAgIHRoaXMuX3BvcHVwLmNv
bnRlbnRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoIm1vdXNlbW92ZSIsIHRoaXMuX2tpbGxIaWRl
UG9wdXBUaW1lci5iaW5kKHRoaXMpLCB0cnVlKTsKKyAgICAgICAgdGhpcy5faGlkZVBvcG92ZXIo
KTsKKyAgICAgICAgdGhpcy5fcG9wb3ZlciA9IG5ldyBXZWJJbnNwZWN0b3IuUG9wb3ZlcigpOwor
ICAgICAgICB0aGlzLl9zaG93UG9wb3ZlcihlbGVtZW50LCB0aGlzLl9wb3BvdmVyKTsKICAgICB9
LAogCiAgICAgX2tpbGxIaWRlUG9wdXBUaW1lcjogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAg
aWYgKHRoaXMuX2hpZGVQb3B1cFRpbWVyKSB7Ci0gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhp
cy5faGlkZVBvcHVwVGltZXIpOworICAgICAgICBpZiAodGhpcy5faGlkZVBvcG92ZXJUaW1lcikg
eworICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2hpZGVQb3BvdmVyVGltZXIpOwogICAg
ICAgICAgICAgZGVsZXRlIHRoaXMuX2hpZGVQb3B1cFRpbWVyOwogCiAgICAgICAgICAgICAvLyBX
ZSBrbm93IHRoYXQgd2UgcmVhY2hlZCB0aGUgcG9wdXAsIGJ1dCB3ZSBtaWdodCBoYXZlIG1vdmVk
IG92ZXIgb3RoZXIgZWxlbWVudHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0
b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9Tb3VyY2VGcmFtZS5qcwppbmRleCAzMjk4ZGRhLi5iYjMwNDVjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1NvdXJjZUZyYW1lLmpzCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvU291cmNlRnJhbWUuanMKQEAgLTkx
LDcgKzkxLDggQEAgV2ViSW5zcGVjdG9yLlNvdXJjZUZyYW1lLnByb3RvdHlwZSA9IHsKICAgICAg
ICAgaWYgKHRoaXMubG9hZGVkKQogICAgICAgICAgICAgdGhpcy5fdGV4dFZpZXdlci5mcmVlQ2Fj
aGVkRWxlbWVudHMoKTsKIAotICAgICAgICB0aGlzLl9oaWRlUG9wdXAoKTsKKyAgICAgICAgaWYg
KHRoaXMuX3BvcG92ZXJIZWxwZXIpCisgICAgICAgICAgICB0aGlzLl9wb3BvdmVySGVscGVyLmhp
ZGVQb3BvdmVyKCk7CiAgICAgICAgIHRoaXMuX2NsZWFyTGluZUhpZ2hsaWdodCgpOwogICAgIH0s
CiAKQEAgLTI4MCw4ICsyODEsOSBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBl
ID0gewogCiAgICAgICAgIHZhciBlbGVtZW50ID0gdGhpcy5fdGV4dFZpZXdlci5lbGVtZW50Owog
ICAgICAgICBpZiAodGhpcy5fZGVsZWdhdGUuZGVidWdnaW5nU3VwcG9ydGVkKCkpIHsKKyAgICAg
ICAgICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlBvcG92ZXJIZWxw
ZXIoZWxlbWVudCwKKyAgICAgICAgICAgICAgICB0aGlzLl9nZXRQb3BvdmVyQW5jaG9yLmJpbmQo
dGhpcyksIHRoaXMuX29uU2hvd1BvcG92ZXIuYmluZCh0aGlzKSwgdGhpcy5fb25IaWRlUG9wb3Zl
ci5iaW5kKHRoaXMpKTsKICAgICAgICAgICAgIGVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91
c2Vkb3duIiwgdGhpcy5fbW91c2VEb3duLmJpbmQodGhpcyksIHRydWUpOwotICAgICAgICAgICAg
ZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0aGlzLl9tb3VzZU1vdmUuYmlu
ZCh0aGlzKSwgdHJ1ZSk7CiAgICAgICAgICAgICBlbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoInNj
cm9sbCIsIHRoaXMuX3Njcm9sbC5iaW5kKHRoaXMpLCB0cnVlKTsKICAgICAgICAgfQogCkBAIC02
MzEsMTIgKzYzMywxNCBAQCBXZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewog
CiAgICAgX3Njcm9sbDogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAgICB0aGlzLl9oaWRl
UG9wdXAoKTsKKyAgICAgICAgaWYgKHRoaXMuX3BvcG92ZXJIZWxwZXIpCisgICAgICAgICAgICB0
aGlzLl9wb3BvdmVySGVscGVyLmhpZGVQb3BvdmVyKCk7CiAgICAgfSwKIAogICAgIF9tb3VzZURv
d246IGZ1bmN0aW9uKGV2ZW50KQogICAgIHsKLSAgICAgICAgdGhpcy5faGlkZVBvcHVwKCk7Cisg
ICAgICAgIGlmICh0aGlzLl9wb3BvdmVySGVscGVyKQorICAgICAgICAgICAgdGhpcy5fcG9wb3Zl
ckhlbHBlci5oaWRlUG9wb3ZlcigpOwogICAgICAgICBpZiAoZXZlbnQuYnV0dG9uICE9IDAgfHwg
ZXZlbnQuYWx0S2V5IHx8IGV2ZW50LmN0cmxLZXkgfHwgZXZlbnQubWV0YUtleSkKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgdmFyIHRhcmdldCA9IGV2ZW50LnRhcmdldC5lbmNsb3NpbmdO
b2RlT3JTZWxmV2l0aENsYXNzKCJ3ZWJraXQtbGluZS1udW1iZXIiKTsKQEAgLTY1NSw3OSArNjU5
LDQ0IEBAIFdlYkluc3BlY3Rvci5Tb3VyY2VGcmFtZS5wcm90b3R5cGUgPSB7CiAgICAgICAgIGV2
ZW50LnByZXZlbnREZWZhdWx0KCk7CiAgICAgfSwKIAotICAgIF9tb3VzZU1vdmU6IGZ1bmN0aW9u
KGV2ZW50KQorICAgIF9vbkhpZGVQb3BvdmVyOiBmdW5jdGlvbigpCiAgICAgewotICAgICAgICAv
LyBQcmV0ZW5kIHRoYXQgbm90aGluZyBoYXMgaGFwcGVuZWQuCi0gICAgICAgIGlmICh0aGlzLl9o
b3ZlckVsZW1lbnQgPT09IGV2ZW50LnRhcmdldCB8fCBldmVudC50YXJnZXQuaGFzU3R5bGVDbGFz
cygic291cmNlLWZyYW1lLWV2YWwtZXhwcmVzc2lvbiIpKQotICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgIHRoaXMuX3Jlc2V0SG92ZXJUaW1lcigpOwotICAgICAgICAvLyBVc2VyIGhhcyA1
MDBtcyB0byByZWFjaCB0aGUgcG9wdXAuCi0gICAgICAgIGlmICh0aGlzLl9wb3B1cCkgewotICAg
ICAgICAgICAgdmFyIHNlbGYgPSB0aGlzOwotICAgICAgICAgICAgZnVuY3Rpb24gZG9IaWRlKCkK
LSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBzZWxmLl9oaWRlUG9wdXAoKTsKLSAgICAg
ICAgICAgICAgICBkZWxldGUgc2VsZi5faGlkZVBvcHVwVGltZXI7Ci0gICAgICAgICAgICB9Ci0g
ICAgICAgICAgICBpZiAoISgiX2hpZGVQb3B1cFRpbWVyIiBpbiB0aGlzKSkKLSAgICAgICAgICAg
ICAgICB0aGlzLl9oaWRlUG9wdXBUaW1lciA9IHNldFRpbWVvdXQoZG9IaWRlLCA1MDApOworICAg
ICAgICAvLyBSZXBsYWNlIGhpZ2xpZ2h0IGVsZW1lbnQgd2l0aCBpdHMgY29udGVudHMgaW5wbGFj
ZS4KKyAgICAgICAgdmFyIGhpZ2hsaWdodEVsZW1lbnQgPSB0aGlzLl9oaWdobGlnaHRFbGVtZW50
OworICAgICAgICB2YXIgcGFyZW50RWxlbWVudCA9IGhpZ2hsaWdodEVsZW1lbnQucGFyZW50RWxl
bWVudDsKKyAgICAgICAgdmFyIGNoaWxkID0gaGlnaGxpZ2h0RWxlbWVudC5maXJzdENoaWxkOwor
ICAgICAgICB3aGlsZSAoY2hpbGQpIHsKKyAgICAgICAgICAgIHZhciBuZXh0U2libGluZyA9IGNo
aWxkLm5leHRTaWJsaW5nOworICAgICAgICAgICAgcGFyZW50RWxlbWVudC5pbnNlcnRCZWZvcmUo
Y2hpbGQsIGhpZ2hsaWdodEVsZW1lbnQpOworICAgICAgICAgICAgY2hpbGQgPSBuZXh0U2libGlu
ZzsKICAgICAgICAgfQorICAgICAgICBwYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKGhpZ2hsaWdo
dEVsZW1lbnQpOworICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5yZWxlYXNlRXZhbHVhdGlvblJlc3Vs
dCgpOworICAgIH0sCiAKLSAgICAgICAgdGhpcy5faG92ZXJFbGVtZW50ID0gZXZlbnQudGFyZ2V0
OwotCi0gICAgICAgIC8vIE5vdyB0aGF0IGNsZWFudXAgcm91dGluZXMgYXJlIHNldCB1cCBhYm92
ZSwgbGVhdmUgdGhpcyBpbiBjYXNlIHdlIGFyZSBub3Qgb24gYSBicmVhay4KKyAgICBfc2hvdWxk
U2hvd1BvcG92ZXI6IGZ1bmN0aW9uKGVsZW1lbnQpCisgICAgewogICAgICAgICBpZiAoIXRoaXMu
X2RlbGVnYXRlLmRlYnVnZ2VyUGF1c2VkKCkpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIGlmICghZWxlbWVudC5lbmNsb3NpbmdOb2RlT3JT
ZWxmV2l0aENsYXNzKCJ3ZWJraXQtbGluZS1jb250ZW50IikpCisgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAKICAgICAgICAgLy8gV2UgYXJlIGludGVyZXN0ZWQgaW4gaWRlbnRpZmllcnMgYW5k
ICJ0aGlzIiBrZXl3b3JkLgotICAgICAgICBpZiAodGhpcy5faG92ZXJFbGVtZW50Lmhhc1N0eWxl
Q2xhc3MoIndlYmtpdC1qYXZhc2NyaXB0LWtleXdvcmQiKSkgewotICAgICAgICAgICAgaWYgKHRo
aXMuX2hvdmVyRWxlbWVudC50ZXh0Q29udGVudCAhPT0gInRoaXMiKQotICAgICAgICAgICAgICAg
IHJldHVybjsKLSAgICAgICAgfSBlbHNlIGlmICghdGhpcy5faG92ZXJFbGVtZW50Lmhhc1N0eWxl
Q2xhc3MoIndlYmtpdC1qYXZhc2NyaXB0LWlkZW50IikpCi0gICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIGlmIChlbGVtZW50Lmhhc1N0eWxlQ2xhc3MoIndlYmtpdC1qYXZhc2NyaXB0LWtleXdv
cmQiKSkKKyAgICAgICAgICAgIHJldHVybiBlbGVtZW50LnRleHRDb250ZW50ID09PSAidGhpcyI7
CiAKLSAgICAgICAgY29uc3QgdG9vbFRpcERlbGF5ID0gdGhpcy5fcG9wdXAgPyA2MDAgOiAxMDAw
OwotICAgICAgICB0aGlzLl9ob3ZlclRpbWVyID0gc2V0VGltZW91dCh0aGlzLl9tb3VzZUhvdmVy
LmJpbmQodGhpcywgdGhpcy5faG92ZXJFbGVtZW50KSwgdG9vbFRpcERlbGF5KTsKKyAgICAgICAg
cmV0dXJuIGVsZW1lbnQuaGFzU3R5bGVDbGFzcygid2Via2l0LWphdmFzY3JpcHQtaWRlbnQiKTsK
ICAgICB9LAogCi0gICAgX3Jlc2V0SG92ZXJUaW1lcjogZnVuY3Rpb24oKQorICAgIF9nZXRQb3Bv
dmVyQW5jaG9yOiBmdW5jdGlvbihlbGVtZW50KQogICAgIHsKLSAgICAgICAgaWYgKHRoaXMuX2hv
dmVyVGltZXIpIHsKLSAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLl9ob3ZlclRpbWVyKTsK
LSAgICAgICAgICAgIGRlbGV0ZSB0aGlzLl9ob3ZlclRpbWVyOwotICAgICAgICB9Ci0gICAgfSwK
LQotICAgIF9oaWRlUG9wdXA6IGZ1bmN0aW9uKCkKLSAgICB7Ci0gICAgICAgIHRoaXMuX3Jlc2V0
SG92ZXJUaW1lcigpOwotICAgICAgICBpZiAoIXRoaXMuX3BvcHVwKQorICAgICAgICBpZiAoIXRo
aXMuX3Nob3VsZFNob3dQb3BvdmVyKGVsZW1lbnQpKQogICAgICAgICAgICAgcmV0dXJuOwotCi0g
ICAgICAgIC8vIFJlcGxhY2UgaGlnbGlnaHQgZWxlbWVudCB3aXRoIGl0cyBjb250ZW50cyBpbnBs
YWNlLgotICAgICAgICB2YXIgcGFyZW50RWxlbWVudCA9IHRoaXMuX3BvcHVwLmhpZ2hsaWdodEVs
ZW1lbnQucGFyZW50RWxlbWVudDsKLSAgICAgICAgdmFyIGNoaWxkID0gdGhpcy5fcG9wdXAuaGln
aGxpZ2h0RWxlbWVudC5maXJzdENoaWxkOwotICAgICAgICB3aGlsZSAoY2hpbGQpIHsKLSAgICAg
ICAgICAgIHZhciBuZXh0U2libGluZyA9IGNoaWxkLm5leHRTaWJsaW5nOwotICAgICAgICAgICAg
cGFyZW50RWxlbWVudC5pbnNlcnRCZWZvcmUoY2hpbGQsIHRoaXMuX3BvcHVwLmhpZ2hsaWdodEVs
ZW1lbnQpOwotICAgICAgICAgICAgY2hpbGQgPSBuZXh0U2libGluZzsKLSAgICAgICAgfQotICAg
ICAgICBwYXJlbnRFbGVtZW50LnJlbW92ZUNoaWxkKHRoaXMuX3BvcHVwLmhpZ2hsaWdodEVsZW1l
bnQpOwotCi0gICAgICAgIHRoaXMuX3BvcHVwLmhpZGUoKTsKLSAgICAgICAgZGVsZXRlIHRoaXMu
X3BvcHVwOwotICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5yZWxlYXNlRXZhbHVhdGlvblJlc3VsdCgp
OworICAgICAgICByZXR1cm4gZWxlbWVudDsKICAgICB9LAogCi0gICAgX21vdXNlSG92ZXI6IGZ1
bmN0aW9uKGVsZW1lbnQpCisgICAgX2hpZ2hsaWdodEV4cHJlc3Npb246IGZ1bmN0aW9uKGVsZW1l
bnQpCiAgICAgewotICAgICAgICBkZWxldGUgdGhpcy5faG92ZXJUaW1lcjsKLQotICAgICAgICB2
YXIgbGluZVJvdyA9IGVsZW1lbnQuZW5jbG9zaW5nTm9kZU9yU2VsZldpdGhDbGFzcygid2Via2l0
LWxpbmUtY29udGVudCIpOwotICAgICAgICBpZiAoIWxpbmVSb3cpCi0gICAgICAgICAgICByZXR1
cm47Ci0KICAgICAgICAgLy8gQ29sbGVjdCB0b2tlbnMgYmVsb25naW5nIHRvIGV2YWx1YXRlZCBl
eHJlc3Npb24uCiAgICAgICAgIHZhciB0b2tlbnMgPSBbIGVsZW1lbnQgXTsKICAgICAgICAgdmFy
IHRva2VuID0gZWxlbWVudC5wcmV2aW91c1NpYmxpbmc7CkBAIC03NDQsNjYgKzcxMyw1MiBAQCBX
ZWJJbnNwZWN0b3IuU291cmNlRnJhbWUucHJvdG90eXBlID0gewogICAgICAgICBmb3IgKHZhciBp
ID0gMDsgaSA8IHRva2Vucy5sZW5ndGg7ICsraSkKICAgICAgICAgICAgIGNvbnRhaW5lci5hcHBl
bmRDaGlsZCh0b2tlbnNbaV0pOwogICAgICAgICBwYXJlbnRFbGVtZW50Lmluc2VydEJlZm9yZShj
b250YWluZXIsIG5leHRFbGVtZW50KTsKLSAgICAgICAgdGhpcy5fc2hvd1BvcHVwKGNvbnRhaW5l
cik7CisgICAgICAgIHJldHVybiBjb250YWluZXI7CiAgICAgfSwKIAotICAgIF9zaG93UG9wdXA6
IGZ1bmN0aW9uKGVsZW1lbnQpCisgICAgX29uU2hvd1BvcG92ZXI6IGZ1bmN0aW9uKGVsZW1lbnQs
IHBvcG92ZXIpCiAgICAgewotICAgICAgICBpZiAoIXRoaXMuX2RlbGVnYXRlLmRlYnVnZ2VyUGF1
c2VkKCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgZnVuY3Rpb24ga2lsbEhpZGVQ
b3B1cFRpbWVyKCkKLSAgICAgICAgewotICAgICAgICAgICAgaWYgKHRoaXMuX2hpZGVQb3B1cFRp
bWVyKSB7Ci0gICAgICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuX2hpZGVQb3B1cFRpbWVy
KTsKLSAgICAgICAgICAgICAgICBkZWxldGUgdGhpcy5faGlkZVBvcHVwVGltZXI7Ci0KLSAgICAg
ICAgICAgICAgICAvLyBXZSBrbm93IHRoYXQgd2UgcmVhY2hlZCB0aGUgcG9wdXAsIGJ1dCB3ZSBt
aWdodCBoYXZlIG1vdmVkIG92ZXIgb3RoZXIgZWxlbWVudHMuCi0gICAgICAgICAgICAgICAgLy8g
RGlzY2FyZCBwZW5kaW5nIGNvbW1hbmQuCi0gICAgICAgICAgICAgICAgdGhpcy5fcmVzZXRIb3Zl
clRpbWVyKCk7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KKyAgICAgICAgdGhpcy5faGlnaGxp
Z2h0RWxlbWVudCA9IHRoaXMuX2hpZ2hsaWdodEV4cHJlc3Npb24oZWxlbWVudCk7CiAKLSAgICAg
ICAgZnVuY3Rpb24gc2hvd09iamVjdFBvcHVwKHJlc3VsdCwgd2FzVGhyb3duKQorICAgICAgICBm
dW5jdGlvbiBzaG93T2JqZWN0UG9wb3ZlcihyZXN1bHQsIHdhc1Rocm93bikKICAgICAgICAgewot
ICAgICAgICAgICAgaWYgKHdhc1Rocm93biB8fCAhdGhpcy5fZGVsZWdhdGUuZGVidWdnZXJQYXVz
ZWQoKSkKKyAgICAgICAgICAgIGlmIChwb3BvdmVyLmRpc3Bvc2VkKQogICAgICAgICAgICAgICAg
IHJldHVybjsKLQotICAgICAgICAgICAgdmFyIHBvcHVwQ29udGVudEVsZW1lbnQgPSBudWxsOwor
ICAgICAgICAgICAgaWYgKHdhc1Rocm93biB8fCAhdGhpcy5fZGVsZWdhdGUuZGVidWdnZXJQYXVz
ZWQoKSkgeworICAgICAgICAgICAgICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIuaGlkZVBvcG92ZXIo
KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICB2
YXIgcG9wb3ZlckNvbnRlbnRFbGVtZW50ID0gbnVsbDsKICAgICAgICAgICAgIGlmIChyZXN1bHQu
dHlwZSAhPT0gIm9iamVjdCIpIHsKLSAgICAgICAgICAgICAgICBwb3B1cENvbnRlbnRFbGVtZW50
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgic3BhbiIpOwotICAgICAgICAgICAgICAgIHBvcHVw
Q29udGVudEVsZW1lbnQuY2xhc3NOYW1lID0gIm1vbm9zcGFjZSBjb25zb2xlLWZvcm1hdHRlZC0i
ICsgcmVzdWx0LnR5cGU7Ci0gICAgICAgICAgICAgICAgcG9wdXBDb250ZW50RWxlbWVudC5zdHls
ZS53aGl0ZVNwYWNlID0gInByZSI7Ci0gICAgICAgICAgICAgICAgcG9wdXBDb250ZW50RWxlbWVu
dC50ZXh0Q29udGVudCA9IHJlc3VsdC5kZXNjcmlwdGlvbjsKKyAgICAgICAgICAgICAgICBwb3Bv
dmVyQ29udGVudEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzcGFuIik7CisgICAg
ICAgICAgICAgICAgcG9wb3ZlckNvbnRlbnRFbGVtZW50LmNsYXNzTmFtZSA9ICJtb25vc3BhY2Ug
Y29uc29sZS1mb3JtYXR0ZWQtIiArIHJlc3VsdC50eXBlOworICAgICAgICAgICAgICAgIHBvcG92
ZXJDb250ZW50RWxlbWVudC5zdHlsZS53aGl0ZVNwYWNlID0gInByZSI7CisgICAgICAgICAgICAg
ICAgcG9wb3ZlckNvbnRlbnRFbGVtZW50LnRleHRDb250ZW50ID0gcmVzdWx0LmRlc2NyaXB0aW9u
OwogICAgICAgICAgICAgICAgIGlmIChyZXN1bHQudHlwZSA9PT0gInN0cmluZyIpCi0gICAgICAg
ICAgICAgICAgICAgIHBvcHVwQ29udGVudEVsZW1lbnQudGV4dENvbnRlbnQgPSAiXCIiICsgcG9w
dXBDb250ZW50RWxlbWVudC50ZXh0Q29udGVudCArICJcIiI7Ci0gICAgICAgICAgICAgICAgdGhp
cy5fcG9wdXAgPSBuZXcgV2ViSW5zcGVjdG9yLlBvcG92ZXIocG9wdXBDb250ZW50RWxlbWVudCk7
Ci0gICAgICAgICAgICAgICAgdGhpcy5fcG9wdXAuc2hvdyhlbGVtZW50KTsKKyAgICAgICAgICAg
ICAgICAgICAgcG9wb3ZlckNvbnRlbnRFbGVtZW50LnRleHRDb250ZW50ID0gIlwiIiArIHBvcG92
ZXJDb250ZW50RWxlbWVudC50ZXh0Q29udGVudCArICJcIiI7CisgICAgICAgICAgICAgICAgcG9w
b3Zlci5zaG93KHBvcG92ZXJDb250ZW50RWxlbWVudCwgZWxlbWVudCk7CiAgICAgICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgICAgIHZhciBwb3B1cENvbnRlbnRFbGVtZW50ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICAgICAgICAgICAgdmFyIHBvcG92ZXJDb250
ZW50RWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwogCiAgICAgICAgICAg
ICAgICAgdmFyIHRpdGxlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOwog
ICAgICAgICAgICAgICAgIHRpdGxlRWxlbWVudC5jbGFzc05hbWUgPSAic291cmNlLWZyYW1lLXBv
cG92ZXItdGl0bGUgbW9ub3NwYWNlIjsKICAgICAgICAgICAgICAgICB0aXRsZUVsZW1lbnQudGV4
dENvbnRlbnQgPSByZXN1bHQuZGVzY3JpcHRpb247Ci0gICAgICAgICAgICAgICAgcG9wdXBDb250
ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aXRsZUVsZW1lbnQpOworICAgICAgICAgICAgICAgIHBv
cG92ZXJDb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZCh0aXRsZUVsZW1lbnQpOwogCiAgICAgICAg
ICAgICAgICAgdmFyIHNlY3Rpb24gPSBuZXcgV2ViSW5zcGVjdG9yLk9iamVjdFByb3BlcnRpZXNT
ZWN0aW9uKHJlc3VsdCk7CiAgICAgICAgICAgICAgICAgc2VjdGlvbi5leHBhbmRlZCA9IHRydWU7
CiAgICAgICAgICAgICAgICAgc2VjdGlvbi5lbGVtZW50LmFkZFN0eWxlQ2xhc3MoInNvdXJjZS1m
cmFtZS1wb3BvdmVyLXRyZWUiKTsKICAgICAgICAgICAgICAgICBzZWN0aW9uLmhlYWRlckVsZW1l
bnQuYWRkU3R5bGVDbGFzcygiaGlkZGVuIik7Ci0gICAgICAgICAgICAgICAgcG9wdXBDb250ZW50
RWxlbWVudC5hcHBlbmRDaGlsZChzZWN0aW9uLmVsZW1lbnQpOworICAgICAgICAgICAgICAgIHBv
cG92ZXJDb250ZW50RWxlbWVudC5hcHBlbmRDaGlsZChzZWN0aW9uLmVsZW1lbnQpOwogCi0gICAg
ICAgICAgICAgICAgdGhpcy5fcG9wdXAgPSBuZXcgV2ViSW5zcGVjdG9yLlBvcG92ZXIocG9wdXBD
b250ZW50RWxlbWVudCk7Ci0gICAgICAgICAgICAgICAgY29uc3QgcG9wdXBXaWR0aCA9IDMwMDsK
LSAgICAgICAgICAgICAgICBjb25zdCBwb3B1cEhlaWdodCA9IDI1MDsKLSAgICAgICAgICAgICAg
ICB0aGlzLl9wb3B1cC5zaG93KGVsZW1lbnQsIHBvcHVwV2lkdGgsIHBvcHVwSGVpZ2h0KTsKKyAg
ICAgICAgICAgICAgICBjb25zdCBwb3BvdmVyV2lkdGggPSAzMDA7CisgICAgICAgICAgICAgICAg
Y29uc3QgcG9wb3ZlckhlaWdodCA9IDI1MDsKKyAgICAgICAgICAgICAgICBwb3BvdmVyLnNob3co
cG9wb3ZlckNvbnRlbnRFbGVtZW50LCBlbGVtZW50LCBwb3BvdmVyV2lkdGgsIHBvcG92ZXJIZWln
aHQpOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgdGhpcy5fcG9wdXAuaGlnaGxpZ2h0RWxl
bWVudCA9IGVsZW1lbnQ7Ci0gICAgICAgICAgICB0aGlzLl9wb3B1cC5oaWdobGlnaHRFbGVtZW50
LmFkZFN0eWxlQ2xhc3MoInNvdXJjZS1mcmFtZS1ldmFsLWV4cHJlc3Npb24iKTsKLSAgICAgICAg
ICAgIHBvcHVwQ29udGVudEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigibW91c2Vtb3ZlIiwga2ls
bEhpZGVQb3B1cFRpbWVyLmJpbmQodGhpcyksIHRydWUpOworICAgICAgICAgICAgdGhpcy5faGln
aGxpZ2h0RWxlbWVudC5hZGRTdHlsZUNsYXNzKCJzb3VyY2UtZnJhbWUtZXZhbC1leHByZXNzaW9u
Iik7CiAgICAgICAgIH0KIAotICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5ldmFsdWF0ZUluU2VsZWN0
ZWRDYWxsRnJhbWUoZWxlbWVudC50ZXh0Q29udGVudCwgc2hvd09iamVjdFBvcHVwLmJpbmQodGhp
cykpOworICAgICAgICB0aGlzLl9kZWxlZ2F0ZS5ldmFsdWF0ZUluU2VsZWN0ZWRDYWxsRnJhbWUo
dGhpcy5faGlnaGxpZ2h0RWxlbWVudC50ZXh0Q29udGVudCwgc2hvd09iamVjdFBvcG92ZXIuYmlu
ZCh0aGlzKSk7CiAgICAgfSwKIAogICAgIF9lZGl0QnJlYWtwb2ludENvbmRpdGlvbjogZnVuY3Rp
b24obGluZU51bWJlciwgY29uZGl0aW9uLCBjYWxsYmFjaykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcyBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVGltZWxpbmVQYW5lbC5qcwppbmRleCBkMjVkOWJhLi5l
ZDNhMGE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1Rp
bWVsaW5lUGFuZWwuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9U
aW1lbGluZVBhbmVsLmpzCkBAIC05Myw3ICs5Myw3IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBh
bmVsID0gZnVuY3Rpb24oKQogICAgIHRoaXMuX2JvdW5kYXJpZXNBcmVWYWxpZCA9IHRydWU7CiAg
ICAgdGhpcy5fc2Nyb2xsVG9wID0gMDsKIAotICAgIHRoaXMuX3BvcG92ZXJIZWxwZXIgPSBuZXcg
V2ViSW5zcGVjdG9yLlBvcG92ZXJIZWxwZXIodGhpcy5fY29udGFpbmVyRWxlbWVudCwgdGhpcy5f
Z2V0UG9wb3ZlckFuY2hvci5iaW5kKHRoaXMpLCB0aGlzLl9zaG93UG9wb3Zlci5iaW5kKHRoaXMp
LCB0cnVlKTsKKyAgICB0aGlzLl9wb3BvdmVySGVscGVyID0gbmV3IFdlYkluc3BlY3Rvci5Qb3Bv
dmVySGVscGVyKHRoaXMuX2NvbnRhaW5lckVsZW1lbnQsIHRoaXMuX2dldFBvcG92ZXJBbmNob3Iu
YmluZCh0aGlzKSwgdGhpcy5fc2hvd1BvcG92ZXIuYmluZCh0aGlzKSk7CiAgICAgdGhpcy5fY29u
dGFpbmVyRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCJtb3VzZW1vdmUiLCB0aGlzLl9tb3VzZU1v
dmUuYmluZCh0aGlzKSwgZmFsc2UpOwogICAgIHRoaXMuX2NvbnRhaW5lckVsZW1lbnQuYWRkRXZl
bnRMaXN0ZW5lcigibW91c2VvdXQiLCB0aGlzLl9tb3VzZU91dC5iaW5kKHRoaXMpLCBmYWxzZSk7
CiAKQEAgLTc0OCwxNyArNzQ4LDE1IEBAIFdlYkluc3BlY3Rvci5UaW1lbGluZVBhbmVsLnByb3Rv
dHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKLSAgICBfc2hvd1BvcG92ZXI6IGZ1bmN0aW9u
KGFuY2hvcikKKyAgICBfc2hvd1BvcG92ZXI6IGZ1bmN0aW9uKGFuY2hvciwgcG9wb3ZlcikKICAg
ICB7CiAgICAgICAgIHZhciByZWNvcmQgPSBhbmNob3Iucm93Ll9yZWNvcmQ7Ci0gICAgICAgIHZh
ciBwb3BvdmVyID0gbmV3IFdlYkluc3BlY3Rvci5Qb3BvdmVyKHJlY29yZC5fZ2VuZXJhdGVQb3B1
cENvbnRlbnQodGhpcy5fY2FsY3VsYXRvciwgdGhpcy5jYXRlZ29yaWVzKSk7Ci0gICAgICAgIHBv
cG92ZXIuc2hvdyhhbmNob3IpOwotICAgICAgICByZXR1cm4gcG9wb3ZlcjsKKyAgICAgICAgcG9w
b3Zlci5zaG93KHJlY29yZC5fZ2VuZXJhdGVQb3B1cENvbnRlbnQodGhpcy5fY2FsY3VsYXRvciwg
dGhpcy5jYXRlZ29yaWVzKSwgYW5jaG9yKTsKICAgICB9LAogCiAgICAgX2Nsb3NlUmVjb3JkRGV0
YWlsczogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAgdGhpcy5fcG9wb3ZlckhlbHBlci5oaWRl
UG9wdXAoKTsKKyAgICAgICAgdGhpcy5fcG9wb3ZlckhlbHBlci5oaWRlUG9wb3ZlcigpOwogICAg
IH0KIH0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>