<?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>108161</bug_id>
          
          <creation_ts>2013-01-29 00:26:26 -0800</creation_ts>
          <short_desc>Web Inspector: introduce HighlightDescriptor interface in DTE.</short_desc>
          <delta_ts>2013-01-29 07:53:38 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrey Lushnikov">lushnikov</reporter>
          <assigned_to name="Andrey Lushnikov">lushnikov</assigned_to>
          <cc>apavlov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>vsevik</cc>
    
    <cc>web-inspector-bugs</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>818659</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Lushnikov">lushnikov</who>
    <bug_when>2013-01-29 00:26:26 -0800</bug_when>
    <thetext>Introduce HighlightDescriptor interface and refactor highlight regex implementation to use RegexHighlightDescriptor class. 
This will make it possible to add &quot;highlight range&quot; functionality easily in future.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818660</commentid>
    <comment_count>1</comment_count>
      <attachid>185185</attachid>
    <who name="Andrey Lushnikov">lushnikov</who>
    <bug_when>2013-01-29 00:31:25 -0800</bug_when>
    <thetext>Created attachment 185185
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818760</commentid>
    <comment_count>2</comment_count>
      <attachid>185185</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-01-29 02:50:12 -0800</bug_when>
    <thetext>Comment on attachment 185185
Patch

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

&gt; Source/WebCore/inspector/front-end/DefaultTextEditor.js:1379
&gt; +        this._highlightDescriptors[regex] = highlightDescriptor;

Now you should simply store it in the array.

&gt; Source/WebCore/inspector/front-end/DefaultTextEditor.js:1389
&gt; +        var result = delete this._highlightDescriptors[regex];

... and remove it by instance.

&gt; Source/WebCore/inspector/front-end/DefaultTextEditor.js:2661
&gt; +    testLine: function(lineNumber, line) { return false; },

Consider renaming - I can&apos;t tell what it does from its name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818820</commentid>
    <comment_count>3</comment_count>
      <attachid>185216</attachid>
    <who name="Andrey Lushnikov">lushnikov</who>
    <bug_when>2013-01-29 04:08:05 -0800</bug_when>
    <thetext>Created attachment 185216
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818826</commentid>
    <comment_count>4</comment_count>
      <attachid>185216</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-01-29 04:27:05 -0800</bug_when>
    <thetext>Comment on attachment 185216
Patch

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

&gt; Source/WebCore/inspector/front-end/DefaultTextEditor.js:1375
&gt; +     * @regex {WebInspector.TextEditorMainPanel.HighlightDescriptor}

@return</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818934</commentid>
    <comment_count>5</comment_count>
      <attachid>185244</attachid>
    <who name="Andrey Lushnikov">lushnikov</who>
    <bug_when>2013-01-29 07:30:14 -0800</bug_when>
    <thetext>Created attachment 185244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818946</commentid>
    <comment_count>6</comment_count>
      <attachid>185244</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-29 07:53:34 -0800</bug_when>
    <thetext>Comment on attachment 185244
Patch

Clearing flags on attachment: 185244

Committed r141111: &lt;http://trac.webkit.org/changeset/141111&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818947</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-29 07:53:38 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185185</attachid>
            <date>2013-01-29 00:31:25 -0800</date>
            <delta_ts>2013-01-29 04:08:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108161-20130129122811.patch</filename>
            <type>text/plain</type>
            <size>8148</size>
            <attacher name="Andrey Lushnikov">lushnikov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwOTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDIzMjIwOTJhOTNjY2Zl
ZmMyMjEyN2M3MzliZmRkZDgxY2U4OWZmMi4uM2Q0YThiZWUwZGE2NWFkZGFiYjVhOThlYjVhNTc2
YzE4OGY1NDMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEzLTAxLTI5ICBBbmRy
ZXkgTHVzaG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBpbnRyb2R1Y2UgSGlnaGxpZ2h0RGVzY3JpcHRvciBpbnRlcmZhY2UgaW4gRFRFLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTYxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNl
IG5ldyBIaWdobGlnaHREZXNjcmlwdG9yIGludGVyZmFjZSBhbmQgaXRzCisgICAgICAgIFJlZ2V4
SGlnaGxpZ2h0RGVzY3JpcHRvciBpbXBsZW1lbnRhdGlvbiBhbmQgdXNlIGl0IGluIERURSB0bwor
ICAgICAgICBzdXBwb3J0IG92ZXJsYXkgaGlnaGxpZ2h0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0
czogbm8gY2hhbmdlIGluIGJlaGF2aW91ci4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvRGVmYXVsdFRleHRFZGl0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRv
ck1haW5QYW5lbCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5w
cm90b3R5cGUuaGlnaGxpZ2h0UmVnZXgpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0
b3JNYWluUGFuZWwucHJvdG90eXBlLnJlbW92ZVJlZ2V4SGlnaGxpZ2h0KToKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZS5fcGFpbnRMaW5lcyk6Cisg
ICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUuX21lYXN1
cmVIaWdobGlnaHREZXNjcmlwdG9yKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9y
TWFpblBhbmVsLkhpZ2hsaWdodERlc2NyaXB0b3IpOiBBZGRlZC4KKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLkhpZ2hsaWdodERlc2NyaXB0b3IucHJvdG90eXBlLnRl
c3RMaW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLkhpZ2hs
aWdodERlc2NyaXB0b3IucHJvdG90eXBlLnJhbmdlc0ZvckxpbmUpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwuSGlnaGxpZ2h0RGVzY3JpcHRvci5wcm90b3R5cGUu
Y3NzQ2xhc3MpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwuUmVn
ZXhIaWdobGlnaHREZXNjcmlwdG9yKTogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4
dEVkaXRvck1haW5QYW5lbC5SZWdleEhpZ2hsaWdodERlc2NyaXB0b3IucHJvdG90eXBlLnRlc3RM
aW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLlJlZ2V4SGln
aGxpZ2h0RGVzY3JpcHRvci5wcm90b3R5cGUucmFuZ2VzRm9yTGluZSk6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5SZWdleEhpZ2hsaWdodERlc2NyaXB0b3IucHJv
dG90eXBlLmNzc0NsYXNzKToKKwogMjAxMy0wMS0yNyAgU2hpbnlhIEthd2FuYWthICA8c2hpbnlh
a0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW1NoYWRvdyBET01dIFNlbGVjdGluZyBhIG5vZGUg
dG8gYW5vdGhlciBub2RlIGluIFNoYWRvd0RPTSBmaXJlcyAnY2xpY2snIGV2ZW50IHVuZXhwZWN0
ZWRseQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWZh
dWx0VGV4dEVkaXRvci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVm
YXVsdFRleHRFZGl0b3IuanMKaW5kZXggZjAwZDkwNGQ3ZjU4ZTk3NGYxYTU4YTE1NmU4YTMwZTU4
Mjc5ODAzNC4uYjNjODFiYzNhZDBhNTU1YjhlOTA2N2YwZDBmMmQ3ZTU5ODFmNDk3MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWZhdWx0VGV4dEVkaXRv
ci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlZmF1bHRUZXh0
RWRpdG9yLmpzCkBAIC0xMzYwLDcgKzEzNjAsNyBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1h
aW5QYW5lbCA9IGZ1bmN0aW9uKGRlbGVnYXRlLCB0ZXh0TW9kZWwsIHVybCwgc3luY1Njcm9sbAog
CiAgICAgdGhpcy5fY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgdGhpcy5faGFu
ZGxlRm9jdXNlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKLSAgICB0aGlzLl9oaWdobGlnaHRSZWdl
eHMgPSB7fTsKKyAgICB0aGlzLl9oaWdobGlnaHREZXNjcmlwdG9ycyA9IHt9OwogCiAgICAgdGhp
cy5fdG9rZW5IaWdobGlnaHRlciA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5l
bC5Ub2tlbkhpZ2hsaWdodGVyKHRoaXMsIHRleHRNb2RlbCk7CiAKQEAgLTEzNzUsMTAgKzEzNzUs
OCBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAgICAg
ICovCiAgICAgaGlnaGxpZ2h0UmVnZXg6IGZ1bmN0aW9uKHJlZ2V4LCBjc3NDbGFzcykKICAgICB7
Ci0gICAgICAgIHRoaXMuX2hpZ2hsaWdodFJlZ2V4c1tyZWdleF0gPSB7Ci0gICAgICAgICAgICBy
ZWdleDogbmV3IFJlZ0V4cChyZWdleCwgImciKSwKLSAgICAgICAgICAgIGNzc0NsYXNzOiBjc3ND
bGFzcwotICAgICAgICB9OworICAgICAgICB2YXIgaGlnaGxpZ2h0RGVzY3JpcHRvciA9IG5ldyBX
ZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5SZWdleEhpZ2hsaWdodERlc2NyaXB0b3Io
bmV3IFJlZ0V4cChyZWdleCwgImciKSwgY3NzQ2xhc3MpOworICAgICAgICB0aGlzLl9oaWdobGln
aHREZXNjcmlwdG9yc1tyZWdleF0gPSBoaWdobGlnaHREZXNjcmlwdG9yOwogICAgICAgICB0aGlz
Ll9yZXBhaW50VmlzaWJsZUNodW5rcygpOwogICAgIH0sCiAKQEAgLTEzODgsNyArMTM4Niw3IEBA
IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKICAgICAgKi8K
ICAgICByZW1vdmVSZWdleEhpZ2hsaWdodDogZnVuY3Rpb24ocmVnZXgpCiAgICAgewotICAgICAg
ICB2YXIgcmVzdWx0ID0gZGVsZXRlIHRoaXMuX2hpZ2hsaWdodFJlZ2V4c1tyZWdleF07CisgICAg
ICAgIHZhciByZXN1bHQgPSBkZWxldGUgdGhpcy5faGlnaGxpZ2h0RGVzY3JpcHRvcnNbcmVnZXhd
OwogICAgICAgICB0aGlzLl9yZXBhaW50VmlzaWJsZUNodW5rcygpOwogICAgICAgICByZXR1cm4g
cmVzdWx0OwogICAgIH0sCkBAIC0xODEzLDkgKzE4MTEsOSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVk
aXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiAKICAgICAgICAgdmFyIGhpZ2hsaWdodCA9IHt9
OwogICAgICAgICB0aGlzLmJlZ2luRG9tVXBkYXRlcygpOwotICAgICAgICBmb3IodmFyIHJlZ2V4
U3RyaW5nIGluIHRoaXMuX2hpZ2hsaWdodFJlZ2V4cykgewotICAgICAgICAgICAgdmFyIHJlZ2V4
SGlnaGxpZ2h0RGVzY3JpcHRvciA9IHRoaXMuX2hpZ2hsaWdodFJlZ2V4c1tyZWdleFN0cmluZ107
Ci0gICAgICAgICAgICB0aGlzLl9tZWFzdXJlUmVnZXhIaWdobGlnaHQoaGlnaGxpZ2h0LCBsaW5l
Um93cywgcmVnZXhIaWdobGlnaHREZXNjcmlwdG9yLnJlZ2V4LCByZWdleEhpZ2hsaWdodERlc2Ny
aXB0b3IuY3NzQ2xhc3MpOworICAgICAgICBmb3IodmFyIGRlc2NyaXB0b3JTdHJpbmcgaW4gdGhp
cy5faGlnaGxpZ2h0RGVzY3JpcHRvcnMpIHsKKyAgICAgICAgICAgIHZhciBoaWdobGlnaHREZXNj
cmlwdG9yID0gdGhpcy5faGlnaGxpZ2h0RGVzY3JpcHRvcnNbZGVzY3JpcHRvclN0cmluZ107Cisg
ICAgICAgICAgICB0aGlzLl9tZWFzdXJlSGlnaGxpZ2h0RGVzY3JpcHRvcihoaWdobGlnaHQsIGxp
bmVSb3dzLCBoaWdobGlnaHREZXNjcmlwdG9yKTsKICAgICAgICAgfQogCiAgICAgICAgIGZvcih2
YXIgaSA9IDA7IGkgPCBsaW5lUm93cy5sZW5ndGg7ICsraSkKQEAgLTE4MjgsMzYgKzE4MjYsMTcg
QEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0gewogICAgIH0s
CiAKICAgICAvKioKLSAgICAgKiBAcGFyYW0ge3N0cmluZ30gbGluZQotICAgICAqIEBwYXJhbSB7
UmVnRXhwfSByZWdleAotICAgICAqIEByZXR1cm4ge0FycmF5Ljx7c3RhcnRDb2x1bW46IG51bWJl
ciwgZW5kQ29sdW1uOiBudW1iZXJ9Pn0KLSAgICAgKi8KLSAgICBfZmluZFJlZ2V4T2NjdXJyZW5j
ZXM6IGZ1bmN0aW9uKGxpbmUsIHJlZ2V4KQotICAgIHsKLSAgICAgICAgdmFyIHJhbmdlcyA9IFtd
OwotICAgICAgICB2YXIgcmVnZXhSZXN1bHQ7Ci0gICAgICAgIHdoaWxlIChyZWdleFJlc3VsdCA9
IHJlZ2V4LmV4ZWMobGluZSkpIHsKLSAgICAgICAgICAgIHJhbmdlcy5wdXNoKHsKLSAgICAgICAg
ICAgICAgICBzdGFydENvbHVtbjogcmVnZXhSZXN1bHQuaW5kZXgsCi0gICAgICAgICAgICAgICAg
ZW5kQ29sdW1uOiByZWdleFJlc3VsdC5pbmRleCArIHJlZ2V4UmVzdWx0WzBdLmxlbmd0aCAtIDEK
LSAgICAgICAgICAgIH0pOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByYW5nZXM7Ci0gICAg
fSwKLQotICAgIC8qKgogICAgICAqIEBwYXJhbSB7T2JqZWN0LjxudW1iZXIsIEFycmF5LjxXZWJJ
bnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5MaW5lT3ZlcmxheUhpZ2hsaWdodD4+fSBoaWdo
bGlnaHQKICAgICAgKiBAcGFyYW0ge0FycmF5LjxFbGVtZW50Pn0gbGluZVJvd3MKLSAgICAgKiBA
cGFyYW0ge1JlZ0V4cH0gcmVnZXgKLSAgICAgKiBAcGFyYW0ge3N0cmluZ30gY3NzQ2xhc3MKKyAg
ICAgKiBAcGFyYW0ge1dlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLkhpZ2hsaWdodERl
c2NyaXB0b3J9IGhpZ2hsaWdodERlc2NyaXB0b3IKICAgICAgKi8KLSAgICBfbWVhc3VyZVJlZ2V4
SGlnaGxpZ2h0OiBmdW5jdGlvbihoaWdobGlnaHQsIGxpbmVSb3dzLCByZWdleCwgY3NzQ2xhc3Mp
CisgICAgX21lYXN1cmVIaWdobGlnaHREZXNjcmlwdG9yOiBmdW5jdGlvbihoaWdobGlnaHQsIGxp
bmVSb3dzLCBoaWdobGlnaHREZXNjcmlwdG9yKQogICAgIHsKICAgICAgICAgdmFyIHJvd3NUb01l
YXN1cmUgPSBbXTsKICAgICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGxpbmVSb3dzLmxlbmd0aDsg
KytpKSB7CiAgICAgICAgICAgICB2YXIgbGluZVJvdyA9IGxpbmVSb3dzW2ldOwogICAgICAgICAg
ICAgdmFyIGxpbmUgPSB0aGlzLl90ZXh0TW9kZWwubGluZShsaW5lUm93LmxpbmVOdW1iZXIpOwot
ICAgICAgICAgICAgdmFyIHJhbmdlcyA9IHRoaXMuX2ZpbmRSZWdleE9jY3VycmVuY2VzKGxpbmUs
IHJlZ2V4KTsKKyAgICAgICAgICAgIHZhciByYW5nZXMgPSBoaWdobGlnaHREZXNjcmlwdG9yLnJh
bmdlc0ZvckxpbmUobGluZVJvdy5saW5lTnVtYmVyLCBsaW5lKTsKICAgICAgICAgICAgIGlmIChy
YW5nZXMubGVuZ3RoID09PSAwKQogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBAIC0xODcz
LDcgKzE4NTIsNyBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgICAgICAgICBpZiAoIWhpZ2hsaWdodFtsaW5lTnVtYmVyXSkKICAgICAgICAgICAg
ICAgICBoaWdobGlnaHRbbGluZU51bWJlcl0gPSBbXTsKIAotICAgICAgICAgICAgaGlnaGxpZ2h0
W2xpbmVOdW1iZXJdLnB1c2gobmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLkxp
bmVPdmVybGF5SGlnaGxpZ2h0KG1ldHJpY3MsIGNzc0NsYXNzKSk7CisgICAgICAgICAgICBoaWdo
bGlnaHRbbGluZU51bWJlcl0ucHVzaChuZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFu
ZWwuTGluZU92ZXJsYXlIaWdobGlnaHQobWV0cmljcywgaGlnaGxpZ2h0RGVzY3JpcHRvci5jc3ND
bGFzcygpKSk7CiAgICAgICAgIH0KICAgICB9LAogCkBAIC0yNjY5LDYgKzI2NDgsODIgQEAgV2Vi
SW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0gewogfQogCiAvKioKKyAq
IEBpbnRlcmZhY2UKKyAqLworV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwuSGlnaGxp
Z2h0RGVzY3JpcHRvciA9IGZ1bmN0aW9uKCkgeyB9CisKK1dlYkluc3BlY3Rvci5UZXh0RWRpdG9y
TWFpblBhbmVsLkhpZ2hsaWdodERlc2NyaXB0b3IucHJvdG90eXBlID0geworICAgIC8qKgorICAg
ICAqIEBwYXJhbSB7bnVtYmVyfSBsaW5lTnVtYmVyCisgICAgICogQHBhcmFtIHtzdHJpbmd9IGxp
bmUKKyAgICAgKiBAcmV0dXJuIHtib29sZWFufQorICAgICAqLworICAgIHRlc3RMaW5lOiBmdW5j
dGlvbihsaW5lTnVtYmVyLCBsaW5lKSB7IHJldHVybiBmYWxzZTsgfSwKKworICAgIC8qKgorICAg
ICAqIEBwYXJhbSB7bnVtYmVyfSBsaW5lTnVtYmVyCisgICAgICogQHBhcmFtIHtzdHJpbmd9IGxp
bmUKKyAgICAgKiBAcmV0dXJuIHtBcnJheS48e3N0YXJ0Q29sdW1uOiBudW1iZXIsIGVuZENvbHVt
bjogbnVtYmVyfT59CisgICAgICovCisgICAgcmFuZ2VzRm9yTGluZTogZnVuY3Rpb24obGluZU51
bWJlciwgbGluZSkgeyByZXR1cm4gW107IH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtz
dHJpbmd9CisgICAgICovCisgICAgY3NzQ2xhc3M6IGZ1bmN0aW9uKCkgeyByZXR1cm4gIiI7IH0s
Cit9CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKiBAaW1wbGVtZW50cyB7V2ViSW5zcGVjdG9y
LlRleHRFZGl0b3JNYWluUGFuZWwuSGlnaGxpZ2h0RGVzY3JpcHRvcn0KKyAqLworV2ViSW5zcGVj
dG9yLlRleHRFZGl0b3JNYWluUGFuZWwuUmVnZXhIaWdobGlnaHREZXNjcmlwdG9yID0gZnVuY3Rp
b24ocmVnZXgsIGNzc0NsYXNzKQoreworICAgIHRoaXMuX2Nzc0NsYXNzID0gY3NzQ2xhc3M7Cisg
ICAgdGhpcy5fcmVnZXggPSByZWdleDsKK30KKworV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWlu
UGFuZWwuUmVnZXhIaWdobGlnaHREZXNjcmlwdG9yLnByb3RvdHlwZSA9IHsKKyAgICAvKioKKyAg
ICAgKiBAcGFyYW0ge251bWJlcn0gbGluZU51bWJlcgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBs
aW5lCisgICAgICogQHJldHVybiB7Ym9vbGVhbn0KKyAgICAgKi8KKyAgICB0ZXN0TGluZTogZnVu
Y3Rpb24obGluZU51bWJlciwgbGluZSkKKyAgICB7CisgICAgICAgIHRoaXMuX3JlZ2V4Lmxhc3RJ
bmRleCA9IDA7CisgICAgICAgIHJldHVybiB0aGlzLl9yZWdleC50ZXN0KGxpbmUpOworICAgIH0s
CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gbGluZU51bWJlcgorICAgICAqIEBw
YXJhbSB7c3RyaW5nfSBsaW5lCisgICAgICogQHJldHVybiB7QXJyYXkuPHtzdGFydENvbHVtbjog
bnVtYmVyLCBlbmRDb2x1bW46IG51bWJlcn0+fQorICAgICAqLworICAgIHJhbmdlc0ZvckxpbmU6
IGZ1bmN0aW9uKGxpbmVOdW1iZXIsIGxpbmUpCisgICAgeworICAgICAgICB2YXIgcmFuZ2VzID0g
W107CisgICAgICAgIHZhciByZWdleFJlc3VsdDsKKyAgICAgICAgdGhpcy5fcmVnZXgubGFzdElu
ZGV4ID0gMDsKKyAgICAgICAgd2hpbGUgKHJlZ2V4UmVzdWx0ID0gdGhpcy5fcmVnZXguZXhlYyhs
aW5lKSkgeworICAgICAgICAgICAgcmFuZ2VzLnB1c2goeworICAgICAgICAgICAgICAgIHN0YXJ0
Q29sdW1uOiByZWdleFJlc3VsdC5pbmRleCwKKyAgICAgICAgICAgICAgICBlbmRDb2x1bW46IHJl
Z2V4UmVzdWx0LmluZGV4ICsgcmVnZXhSZXN1bHRbMF0ubGVuZ3RoIC0gMQorICAgICAgICAgICAg
fSk7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHJhbmdlczsKKyAgICB9LAorCisgICAgLyoq
CisgICAgICogQHJldHVybiB7c3RyaW5nfQorICAgICAqLworICAgIGNzc0NsYXNzOiBmdW5jdGlv
bigpCisgICAgeworICAgICAgICByZXR1cm4gdGhpcy5fY3NzQ2xhc3M7CisgICAgfQorfQorCisv
KioKICAqIEBjb25zdHJ1Y3RvcgogICogQHBhcmFtIHtFbGVtZW50fSBlbGVtZW50CiAgKi8K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185216</attachid>
            <date>2013-01-29 04:08:05 -0800</date>
            <delta_ts>2013-01-29 07:30:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108161-20130129160451.patch</filename>
            <type>text/plain</type>
            <size>13315</size>
            <attacher name="Andrey Lushnikov">lushnikov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwOTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDIzMjIwOTJhOTNjY2Zl
ZmMyMjEyN2M3MzliZmRkZDgxY2U4OWZmMi4uY2UzN2VlNTU3NmVjODM3Y2IzODgyMGQ4NzFjOTRk
NTZjNzY0MTM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEzLTAxLTI5ICBBbmRy
ZXkgTHVzaG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBpbnRyb2R1Y2UgSGlnaGxpZ2h0RGVzY3JpcHRvciBpbnRlcmZhY2UgaW4gRFRFLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTYxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNl
IG5ldyBIaWdobGlnaHREZXNjcmlwdG9yIGludGVyZmFjZSBhbmQgaXRzCisgICAgICAgIFJlZ2V4
SGlnaGxpZ2h0RGVzY3JpcHRvciBpbXBsZW1lbnRhdGlvbiBhbmQgdXNlIGl0IGluIERURSB0bwor
ICAgICAgICBzdXBwb3J0IG92ZXJsYXkgaGlnaGxpZ2h0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0
czogbm8gY2hhbmdlIGluIGJlaGF2aW91ci4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvRGVmYXVsdFRleHRFZGl0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVmYXVsdFRl
eHRFZGl0b3IucHJvdG90eXBlLmhpZ2hsaWdodFJlZ2V4KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5EZWZhdWx0VGV4dEVkaXRvci5wcm90b3R5cGUucmVtb3ZlUmVnZXhIaWdobGlnaHQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlLmhpZ2hsaWdodFJlZ2V4KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZS5yZW1vdmVS
ZWdleEhpZ2hsaWdodCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5l
bC5wcm90b3R5cGUuX3BhaW50TGluZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0
b3JNYWluUGFuZWwucHJvdG90eXBlLl9tZWFzdXJlSGlnaGxpZ2h0RGVzY3JpcHRvcik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5IaWdobGlnaHREZXNjcmlwdG9y
KTogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5IaWdo
bGlnaHREZXNjcmlwdG9yLnByb3RvdHlwZS5hZmZlY3RzTGluZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5IaWdobGlnaHREZXNjcmlwdG9yLnByb3RvdHlwZS5y
YW5nZXNGb3JMaW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVs
LkhpZ2hsaWdodERlc2NyaXB0b3IucHJvdG90eXBlLmNzc0NsYXNzKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLlJlZ2V4SGlnaGxpZ2h0RGVzY3JpcHRvcik6IEFk
ZGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwuUmVnZXhIaWdo
bGlnaHREZXNjcmlwdG9yLnByb3RvdHlwZS5hZmZlY3RzTGluZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5SZWdleEhpZ2hsaWdodERlc2NyaXB0b3IucHJvdG90
eXBlLnJhbmdlc0ZvckxpbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWlu
UGFuZWwuUmVnZXhIaWdobGlnaHREZXNjcmlwdG9yLnByb3RvdHlwZS5jc3NDbGFzcyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5Ub2tlbkhpZ2hsaWdodGVyLnBy
b3RvdHlwZS5faGlnaGxpZ2h0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFp
blBhbmVsLlRva2VuSGlnaGxpZ2h0ZXIucHJvdG90eXBlLl9yZW1vdmVIaWdobGlnaHQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGV4dEVkaXRvci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5yZW1vdmVSZWdleEhpZ2hsaWdodCk6CisKIDIw
MTMtMDEtMjcgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFtTaGFkb3cgRE9NXSBTZWxlY3RpbmcgYSBub2RlIHRvIGFub3RoZXIgbm9kZSBpbiBTaGFk
b3dET00gZmlyZXMgJ2NsaWNrJyBldmVudCB1bmV4cGVjdGVkbHkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVmYXVsdFRleHRFZGl0b3IuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlZmF1bHRUZXh0RWRpdG9yLmpzCmluZGV4
IGYwMGQ5MDRkN2Y1OGU5NzRmMWE1OGExNTZlOGEzMGU1ODI3OTgwMzQuLmQ3OTk1ZDZkMWZmMThj
Y2QwYTY4OTZmNjU3ZjYwZjJmNWUzZDdiOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGVmYXVsdFRleHRFZGl0b3IuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWZhdWx0VGV4dEVkaXRvci5qcwpAQCAtMTEyLDE5ICsx
MTIsMTkgQEAgV2ViSW5zcGVjdG9yLkRlZmF1bHRUZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAg
ICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gcmVnZXgKICAgICAgKiBAcGFyYW0ge3N0cmlu
Z30gY3NzQ2xhc3MKKyAgICAgKiBAcmVnZXgge1dlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBh
bmVsLkhpZ2hsaWdodERlc2NyaXB0b3J9CiAgICAgICovCiAgICAgaGlnaGxpZ2h0UmVnZXg6IGZ1
bmN0aW9uKHJlZ2V4LCBjc3NDbGFzcykKICAgICB7Ci0gICAgICAgIHRoaXMuX21haW5QYW5lbC5o
aWdobGlnaHRSZWdleChyZWdleCwgY3NzQ2xhc3MpOworICAgICAgICByZXR1cm4gdGhpcy5fbWFp
blBhbmVsLmhpZ2hsaWdodFJlZ2V4KHJlZ2V4LCBjc3NDbGFzcyk7CiAgICAgfSwKIAogICAgIC8q
KgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSByZWdleAotICAgICAqIEByZXR1cm4ge2Jvb2xlYW59
CisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5IaWdobGln
aHREZXNjcmlwdG9yfSBoaWdobGlnaHREZXNjcmlwdG9yCiAgICAgICovCi0gICAgcmVtb3ZlUmVn
ZXhIaWdobGlnaHQ6IGZ1bmN0aW9uKHJlZ2V4KQorICAgIHJlbW92ZVJlZ2V4SGlnaGxpZ2h0OiBm
dW5jdGlvbihoaWdobGlnaHREZXNjcmlwdG9yKQogICAgIHsKLSAgICAgICAgcmV0dXJuIHRoaXMu
X21haW5QYW5lbC5yZW1vdmVSZWdleEhpZ2hsaWdodChyZWdleCk7CisgICAgICAgIHRoaXMuX21h
aW5QYW5lbC5yZW1vdmVSZWdleEhpZ2hsaWdodChoaWdobGlnaHREZXNjcmlwdG9yKTsKICAgICB9
LAogCiAgICAgLyoqCkBAIC0xMzYwLDcgKzEzNjAsNyBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRv
ck1haW5QYW5lbCA9IGZ1bmN0aW9uKGRlbGVnYXRlLCB0ZXh0TW9kZWwsIHVybCwgc3luY1Njcm9s
bAogCiAgICAgdGhpcy5fY29udGFpbmVyLmFkZEV2ZW50TGlzdGVuZXIoImZvY3VzIiwgdGhpcy5f
aGFuZGxlRm9jdXNlZC5iaW5kKHRoaXMpLCBmYWxzZSk7CiAKLSAgICB0aGlzLl9oaWdobGlnaHRS
ZWdleHMgPSB7fTsKKyAgICB0aGlzLl9oaWdobGlnaHREZXNjcmlwdG9ycyA9IFtdOwogCiAgICAg
dGhpcy5fdG9rZW5IaWdobGlnaHRlciA9IG5ldyBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5Q
YW5lbC5Ub2tlbkhpZ2hsaWdodGVyKHRoaXMsIHRleHRNb2RlbCk7CiAKQEAgLTEzNzIsMjUgKzEz
NzIsMjMgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0gewog
ICAgIC8qKgogICAgICAqIEBwYXJhbSB7c3RyaW5nfSByZWdleAogICAgICAqIEBwYXJhbSB7c3Ry
aW5nfSBjc3NDbGFzcworICAgICAqIEByZWdleCB7V2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWlu
UGFuZWwuSGlnaGxpZ2h0RGVzY3JpcHRvcn0KICAgICAgKi8KICAgICBoaWdobGlnaHRSZWdleDog
ZnVuY3Rpb24ocmVnZXgsIGNzc0NsYXNzKQogICAgIHsKLSAgICAgICAgdGhpcy5faGlnaGxpZ2h0
UmVnZXhzW3JlZ2V4XSA9IHsKLSAgICAgICAgICAgIHJlZ2V4OiBuZXcgUmVnRXhwKHJlZ2V4LCAi
ZyIpLAotICAgICAgICAgICAgY3NzQ2xhc3M6IGNzc0NsYXNzCi0gICAgICAgIH07CisgICAgICAg
IHZhciBoaWdobGlnaHREZXNjcmlwdG9yID0gbmV3IFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFp
blBhbmVsLlJlZ2V4SGlnaGxpZ2h0RGVzY3JpcHRvcihuZXcgUmVnRXhwKHJlZ2V4LCAiZyIpLCBj
c3NDbGFzcyk7CisgICAgICAgIHRoaXMuX2hpZ2hsaWdodERlc2NyaXB0b3JzLnB1c2goaGlnaGxp
Z2h0RGVzY3JpcHRvcik7CiAgICAgICAgIHRoaXMuX3JlcGFpbnRWaXNpYmxlQ2h1bmtzKCk7Cisg
ICAgICAgIHJldHVybiBoaWdobGlnaHREZXNjcmlwdG9yOwogICAgIH0sCiAKICAgICAvKioKLSAg
ICAgKiBAcGFyYW0ge3N0cmluZ30gcmVnZXgKLSAgICAgKiBAcmV0dXJuIHtib29sZWFufQorICAg
ICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwuSGlnaGxpZ2h0RGVz
Y3JpcHRvcn0gaGlnaGxpZ2h0RGVzY3JpcHRvcgogICAgICAqLwotICAgIHJlbW92ZVJlZ2V4SGln
aGxpZ2h0OiBmdW5jdGlvbihyZWdleCkKKyAgICByZW1vdmVSZWdleEhpZ2hsaWdodDogZnVuY3Rp
b24oaGlnaGxpZ2h0RGVzY3JpcHRvcikKICAgICB7Ci0gICAgICAgIHZhciByZXN1bHQgPSBkZWxl
dGUgdGhpcy5faGlnaGxpZ2h0UmVnZXhzW3JlZ2V4XTsKKyAgICAgICAgdGhpcy5faGlnaGxpZ2h0
RGVzY3JpcHRvcnMucmVtb3ZlKGhpZ2hsaWdodERlc2NyaXB0b3IpOwogICAgICAgICB0aGlzLl9y
ZXBhaW50VmlzaWJsZUNodW5rcygpOwotICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0sCiAK
ICAgICBfcmVwYWludFZpc2libGVDaHVua3M6IGZ1bmN0aW9uKCkKQEAgLTE4MTMsOSArMTgxMSw5
IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsKIAogICAg
ICAgICB2YXIgaGlnaGxpZ2h0ID0ge307CiAgICAgICAgIHRoaXMuYmVnaW5Eb21VcGRhdGVzKCk7
Ci0gICAgICAgIGZvcih2YXIgcmVnZXhTdHJpbmcgaW4gdGhpcy5faGlnaGxpZ2h0UmVnZXhzKSB7
Ci0gICAgICAgICAgICB2YXIgcmVnZXhIaWdobGlnaHREZXNjcmlwdG9yID0gdGhpcy5faGlnaGxp
Z2h0UmVnZXhzW3JlZ2V4U3RyaW5nXTsKLSAgICAgICAgICAgIHRoaXMuX21lYXN1cmVSZWdleEhp
Z2hsaWdodChoaWdobGlnaHQsIGxpbmVSb3dzLCByZWdleEhpZ2hsaWdodERlc2NyaXB0b3IucmVn
ZXgsIHJlZ2V4SGlnaGxpZ2h0RGVzY3JpcHRvci5jc3NDbGFzcyk7CisgICAgICAgIGZvcih2YXIg
aSA9IDA7IGkgPCB0aGlzLl9oaWdobGlnaHREZXNjcmlwdG9ycy5sZW5ndGg7ICsraSkgeworICAg
ICAgICAgICAgdmFyIGhpZ2hsaWdodERlc2NyaXB0b3IgPSB0aGlzLl9oaWdobGlnaHREZXNjcmlw
dG9yc1tpXTsKKyAgICAgICAgICAgIHRoaXMuX21lYXN1cmVIaWdobGlnaHREZXNjcmlwdG9yKGhp
Z2hsaWdodCwgbGluZVJvd3MsIGhpZ2hsaWdodERlc2NyaXB0b3IpOwogICAgICAgICB9CiAKICAg
ICAgICAgZm9yKHZhciBpID0gMDsgaSA8IGxpbmVSb3dzLmxlbmd0aDsgKytpKQpAQCAtMTgyOCwz
NiArMTgyNiwxNyBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUg
PSB7CiAgICAgfSwKIAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSBsaW5lCi0gICAg
ICogQHBhcmFtIHtSZWdFeHB9IHJlZ2V4Ci0gICAgICogQHJldHVybiB7QXJyYXkuPHtzdGFydENv
bHVtbjogbnVtYmVyLCBlbmRDb2x1bW46IG51bWJlcn0+fQotICAgICAqLwotICAgIF9maW5kUmVn
ZXhPY2N1cnJlbmNlczogZnVuY3Rpb24obGluZSwgcmVnZXgpCi0gICAgewotICAgICAgICB2YXIg
cmFuZ2VzID0gW107Ci0gICAgICAgIHZhciByZWdleFJlc3VsdDsKLSAgICAgICAgd2hpbGUgKHJl
Z2V4UmVzdWx0ID0gcmVnZXguZXhlYyhsaW5lKSkgewotICAgICAgICAgICAgcmFuZ2VzLnB1c2go
ewotICAgICAgICAgICAgICAgIHN0YXJ0Q29sdW1uOiByZWdleFJlc3VsdC5pbmRleCwKLSAgICAg
ICAgICAgICAgICBlbmRDb2x1bW46IHJlZ2V4UmVzdWx0LmluZGV4ICsgcmVnZXhSZXN1bHRbMF0u
bGVuZ3RoIC0gMQotICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0KLSAgICAgICAgcmV0dXJuIHJh
bmdlczsKLSAgICB9LAotCi0gICAgLyoqCiAgICAgICogQHBhcmFtIHtPYmplY3QuPG51bWJlciwg
QXJyYXkuPFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLkxpbmVPdmVybGF5SGlnaGxp
Z2h0Pj59IGhpZ2hsaWdodAogICAgICAqIEBwYXJhbSB7QXJyYXkuPEVsZW1lbnQ+fSBsaW5lUm93
cwotICAgICAqIEBwYXJhbSB7UmVnRXhwfSByZWdleAotICAgICAqIEBwYXJhbSB7c3RyaW5nfSBj
c3NDbGFzcworICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwu
SGlnaGxpZ2h0RGVzY3JpcHRvcn0gaGlnaGxpZ2h0RGVzY3JpcHRvcgogICAgICAqLwotICAgIF9t
ZWFzdXJlUmVnZXhIaWdobGlnaHQ6IGZ1bmN0aW9uKGhpZ2hsaWdodCwgbGluZVJvd3MsIHJlZ2V4
LCBjc3NDbGFzcykKKyAgICBfbWVhc3VyZUhpZ2hsaWdodERlc2NyaXB0b3I6IGZ1bmN0aW9uKGhp
Z2hsaWdodCwgbGluZVJvd3MsIGhpZ2hsaWdodERlc2NyaXB0b3IpCiAgICAgewogICAgICAgICB2
YXIgcm93c1RvTWVhc3VyZSA9IFtdOwogICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgbGluZVJv
d3MubGVuZ3RoOyArK2kpIHsKICAgICAgICAgICAgIHZhciBsaW5lUm93ID0gbGluZVJvd3NbaV07
CiAgICAgICAgICAgICB2YXIgbGluZSA9IHRoaXMuX3RleHRNb2RlbC5saW5lKGxpbmVSb3cubGlu
ZU51bWJlcik7Ci0gICAgICAgICAgICB2YXIgcmFuZ2VzID0gdGhpcy5fZmluZFJlZ2V4T2NjdXJy
ZW5jZXMobGluZSwgcmVnZXgpOworICAgICAgICAgICAgdmFyIHJhbmdlcyA9IGhpZ2hsaWdodERl
c2NyaXB0b3IucmFuZ2VzRm9yTGluZShsaW5lUm93LmxpbmVOdW1iZXIsIGxpbmUpOwogICAgICAg
ICAgICAgaWYgKHJhbmdlcy5sZW5ndGggPT09IDApCiAgICAgICAgICAgICAgICAgY29udGludWU7
CiAKQEAgLTE4NzMsNyArMTg1Miw3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVs
LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgIGlmICghaGlnaGxpZ2h0W2xpbmVOdW1iZXJdKQog
ICAgICAgICAgICAgICAgIGhpZ2hsaWdodFtsaW5lTnVtYmVyXSA9IFtdOwogCi0gICAgICAgICAg
ICBoaWdobGlnaHRbbGluZU51bWJlcl0ucHVzaChuZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JN
YWluUGFuZWwuTGluZU92ZXJsYXlIaWdobGlnaHQobWV0cmljcywgY3NzQ2xhc3MpKTsKKyAgICAg
ICAgICAgIGhpZ2hsaWdodFtsaW5lTnVtYmVyXS5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuVGV4dEVk
aXRvck1haW5QYW5lbC5MaW5lT3ZlcmxheUhpZ2hsaWdodChtZXRyaWNzLCBoaWdobGlnaHREZXNj
cmlwdG9yLmNzc0NsYXNzKCkpKTsKICAgICAgICAgfQogICAgIH0sCiAKQEAgLTI2NjksNiArMjY0
OCw4MiBAQCBXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5wcm90b3R5cGUgPSB7CiB9
CiAKIC8qKgorICogQGludGVyZmFjZQorICovCitXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5Q
YW5lbC5IaWdobGlnaHREZXNjcmlwdG9yID0gZnVuY3Rpb24oKSB7IH0KKworV2ViSW5zcGVjdG9y
LlRleHRFZGl0b3JNYWluUGFuZWwuSGlnaGxpZ2h0RGVzY3JpcHRvci5wcm90b3R5cGUgPSB7Cisg
ICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKKyAgICAgKiBAcGFyYW0g
e3N0cmluZ30gbGluZQorICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CisgICAgICovCisgICAgYWZm
ZWN0c0xpbmU6IGZ1bmN0aW9uKGxpbmVOdW1iZXIsIGxpbmUpIHsgcmV0dXJuIGZhbHNlOyB9LAor
CisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKKyAgICAgKiBAcGFy
YW0ge3N0cmluZ30gbGluZQorICAgICAqIEByZXR1cm4ge0FycmF5Ljx7c3RhcnRDb2x1bW46IG51
bWJlciwgZW5kQ29sdW1uOiBudW1iZXJ9Pn0KKyAgICAgKi8KKyAgICByYW5nZXNGb3JMaW5lOiBm
dW5jdGlvbihsaW5lTnVtYmVyLCBsaW5lKSB7IHJldHVybiBbXTsgfSwKKworICAgIC8qKgorICAg
ICAqIEByZXR1cm4ge3N0cmluZ30KKyAgICAgKi8KKyAgICBjc3NDbGFzczogZnVuY3Rpb24oKSB7
IHJldHVybiAiIjsgfSwKK30KKworLyoqCisgKiBAY29uc3RydWN0b3IKKyAqIEBpbXBsZW1lbnRz
IHtXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5IaWdobGlnaHREZXNjcmlwdG9yfQor
ICovCitXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5SZWdleEhpZ2hsaWdodERlc2Ny
aXB0b3IgPSBmdW5jdGlvbihyZWdleCwgY3NzQ2xhc3MpCit7CisgICAgdGhpcy5fY3NzQ2xhc3Mg
PSBjc3NDbGFzczsKKyAgICB0aGlzLl9yZWdleCA9IHJlZ2V4OworfQorCitXZWJJbnNwZWN0b3Iu
VGV4dEVkaXRvck1haW5QYW5lbC5SZWdleEhpZ2hsaWdodERlc2NyaXB0b3IucHJvdG90eXBlID0g
eworICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsaW5lTnVtYmVyCisgICAgICogQHBh
cmFtIHtzdHJpbmd9IGxpbmUKKyAgICAgKiBAcmV0dXJuIHtib29sZWFufQorICAgICAqLworICAg
IGFmZmVjdHNMaW5lOiBmdW5jdGlvbihsaW5lTnVtYmVyLCBsaW5lKQorICAgIHsKKyAgICAgICAg
dGhpcy5fcmVnZXgubGFzdEluZGV4ID0gMDsKKyAgICAgICAgcmV0dXJuIHRoaXMuX3JlZ2V4LnRl
c3QobGluZSk7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsaW5l
TnVtYmVyCisgICAgICogQHBhcmFtIHtzdHJpbmd9IGxpbmUKKyAgICAgKiBAcmV0dXJuIHtBcnJh
eS48e3N0YXJ0Q29sdW1uOiBudW1iZXIsIGVuZENvbHVtbjogbnVtYmVyfT59CisgICAgICovCisg
ICAgcmFuZ2VzRm9yTGluZTogZnVuY3Rpb24obGluZU51bWJlciwgbGluZSkKKyAgICB7CisgICAg
ICAgIHZhciByYW5nZXMgPSBbXTsKKyAgICAgICAgdmFyIHJlZ2V4UmVzdWx0OworICAgICAgICB0
aGlzLl9yZWdleC5sYXN0SW5kZXggPSAwOworICAgICAgICB3aGlsZSAocmVnZXhSZXN1bHQgPSB0
aGlzLl9yZWdleC5leGVjKGxpbmUpKSB7CisgICAgICAgICAgICByYW5nZXMucHVzaCh7CisgICAg
ICAgICAgICAgICAgc3RhcnRDb2x1bW46IHJlZ2V4UmVzdWx0LmluZGV4LAorICAgICAgICAgICAg
ICAgIGVuZENvbHVtbjogcmVnZXhSZXN1bHQuaW5kZXggKyByZWdleFJlc3VsdFswXS5sZW5ndGgg
LSAxCisgICAgICAgICAgICB9KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gcmFuZ2VzOwor
ICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0dXJuIHtzdHJpbmd9CisgICAgICovCisgICAg
Y3NzQ2xhc3M6IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9jc3NDbGFz
czsKKyAgICB9Cit9CisKKy8qKgogICogQGNvbnN0cnVjdG9yCiAgKiBAcGFyYW0ge0VsZW1lbnR9
IGVsZW1lbnQKICAqLwpAQCAtMzAwOSwxNCArMzA2NCwxNSBAQCBXZWJJbnNwZWN0b3IuVGV4dEVk
aXRvck1haW5QYW5lbC5Ub2tlbkhpZ2hsaWdodGVyLnByb3RvdHlwZSA9IHsKICAgICB7CiAgICAg
ICAgIHRoaXMuX3JlbW92ZUhpZ2hsaWdodCgpOwogICAgICAgICB0aGlzLl9zZWxlY3RlZFdvcmQg
PSBzZWxlY3RlZFdvcmQ7Ci0gICAgICAgIHRoaXMuX21haW5QYW5lbC5oaWdobGlnaHRSZWdleCh0
aGlzLl9yZWdleFN0cmluZyhzZWxlY3RlZFdvcmQpLCAidGV4dC1lZGl0b3ItdG9rZW4taGlnaGxp
Z2h0IikKKyAgICAgICAgdGhpcy5faGlnaGxpZ2h0RGVzY3JpcHRvciA9IHRoaXMuX21haW5QYW5l
bC5oaWdobGlnaHRSZWdleCh0aGlzLl9yZWdleFN0cmluZyhzZWxlY3RlZFdvcmQpLCAidGV4dC1l
ZGl0b3ItdG9rZW4taGlnaGxpZ2h0IikKICAgICB9LAogCiAgICAgX3JlbW92ZUhpZ2hsaWdodDog
ZnVuY3Rpb24oKQogICAgIHsKICAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkV29yZCkgewotICAg
ICAgICAgICAgdGhpcy5fbWFpblBhbmVsLnJlbW92ZVJlZ2V4SGlnaGxpZ2h0KHRoaXMuX3JlZ2V4
U3RyaW5nKHRoaXMuX3NlbGVjdGVkV29yZCkpOworICAgICAgICAgICAgdGhpcy5fbWFpblBhbmVs
LnJlbW92ZVJlZ2V4SGlnaGxpZ2h0KHRoaXMuX2hpZ2hsaWdodERlc2NyaXB0b3IpOwogICAgICAg
ICAgICAgZGVsZXRlIHRoaXMuX3NlbGVjdGVkV29yZDsKKyAgICAgICAgICAgIGRlbGV0ZSB0aGlz
Ll9oaWdobGlnaHREZXNjcmlwdG9yOwogICAgICAgICB9CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0RWRpdG9yLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9UZXh0RWRpdG9yLmpzCmluZGV4IGUxMTYzNGE3
YmEwYjk5NDU3MDBmNTE2MTJkNjRlZTljYzA1YWQ2YmYuLmNmZDI0ZjcwYzQ0MzJiN2RkYzI2NjZl
OWE5ZDRjZTE3Mjc3NDdmMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGV4dEVkaXRvci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1RleHRFZGl0b3IuanMKQEAgLTYzLDE0ICs2MywxNCBAQCBXZWJJbnNwZWN0b3IuVGV4
dEVkaXRvci5wcm90b3R5cGUgPSB7CiAgICAgLyoqCiAgICAgICogQHBhcmFtIHtzdHJpbmd9IHJl
Z2V4CiAgICAgICogQHBhcmFtIHtzdHJpbmd9IGNzc0NsYXNzCisgICAgICogQHJlZ2V4IHtXZWJJ
bnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5IaWdobGlnaHREZXNjcmlwdG9yfQogICAgICAq
LwogICAgIGhpZ2hsaWdodFJlZ2V4OiBmdW5jdGlvbihyZWdleCwgY3NzQ2xhc3MpIHsgfSwKIAog
ICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSByZWdleAotICAgICAqIEByZXR1cm4ge2Jv
b2xlYW59CisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5I
aWdobGlnaHREZXNjcmlwdG9yfSBoaWdobGlnaHREZXNjcmlwdG9yCiAgICAgICovCi0gICAgcmVt
b3ZlUmVnZXhIaWdobGlnaHQ6IGZ1bmN0aW9uKHJlZ2V4KSB7IH0sCisgICAgcmVtb3ZlUmVnZXhI
aWdobGlnaHQ6IGZ1bmN0aW9uKGhpZ2hsaWdodERlc2NyaXB0b3IpIHsgfSwKIAogICAgIC8qKgog
ICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsaW5lTnVtYmVyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmYxNTA4ODY4OTE3MDYz
NDc4NWRkMjAzOTFjYWQ1MjJlNmVmMzA0OC4uODFmMzM1MTFiZTczN2RjNDQxMmYzMWM2NTgyNzA1
MGI3MjMxZmFiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91
dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTAxLTI5ICBBbmRyZXkgTHVz
aG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBpbnRyb2R1Y2UgSGlnaGxpZ2h0RGVzY3JpcHRvciBpbnRlcmZhY2UgaW4gRFRFLgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTYxCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29ycmVjdCBsYXlvdXQg
dGVzdCBhY2NvcmRpbmcgdG8gcmVmYWN0b3JpbmcgY2hhbmdlcy4KKworICAgICAgICAqIGluc3Bl
Y3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItaGlnaGxpZ2h0LXJlZ2V4cC5odG1sOgorCiAyMDEzLTAx
LTI3ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtDaHJv
bWl1bV0gTWFya2luZyB0d28gZmFzdC9mb3JtcyB0ZXN0cyBhcyBzbG93IG9uIGRlYnVnIG1hYy4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItaGln
aGxpZ2h0LXJlZ2V4cC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVk
aXRvci1oaWdobGlnaHQtcmVnZXhwLmh0bWwKaW5kZXggZTIyYjA2NDc0M2M3N2E1MGFmMjljZWNm
MmJmMzQzYTJiNWQxMDhhMC4uM2Y1ZDBhOGE2NDMyM2RmODhlZmIyMzA3MzFmNzUwYjc1YWYyZTU5
ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRvci1o
aWdobGlnaHQtcmVnZXhwLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90
ZXh0LWVkaXRvci1oaWdobGlnaHQtcmVnZXhwLmh0bWwKQEAgLTIxLDExICsyMSwxMSBAQCBmdW5j
dGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHRleHRFZGl0b3Iuc2V0VGV4dCh0ZXh0LmpvaW4oIlxu
IikpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlxuQmVmb3JlIGhpZ2hs
aWdodCIpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9ySFRNTCh0ZXh0RWRp
dG9yLCB0cnVlKTsKLSAgICAgICAgICAgIHRleHRFZGl0b3IuaGlnaGxpZ2h0UmVnZXgoImZvb18u
IiwgInNvbWUtY3NzLWNsYXNzIik7CisgICAgICAgICAgICB2YXIgaGlnaGxpZ2h0RGVzY3JpcHRv
ciA9IHRleHRFZGl0b3IuaGlnaGxpZ2h0UmVnZXgoImZvb18uIiwgInNvbWUtY3NzLWNsYXNzIik7
CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiXG5BZGQgaGlnaGxpZ2h0IGZv
ciByZWdleHAgL2Zvb18uLyIpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9y
SFRNTCh0ZXh0RWRpdG9yLCB0cnVlKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRkUmVz
dWx0KCJcblJlbW92ZSBoaWdobGlnaHQgZm9yIHJlZ2V4cCAvZm9vXy4vIik7Ci0gICAgICAgICAg
ICB0ZXh0RWRpdG9yLnJlbW92ZVJlZ2V4SGlnaGxpZ2h0KCJmb29fLiIpOworICAgICAgICAgICAg
dGV4dEVkaXRvci5yZW1vdmVSZWdleEhpZ2hsaWdodChoaWdobGlnaHREZXNjcmlwdG9yKTsKICAg
ICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVkaXRvckhUTUwodGV4dEVkaXRvciwgdHJ1ZSk7
CiAgICAgICAgICAgICBuZXh0KCk7CiAgICAgICAgIH0sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185244</attachid>
            <date>2013-01-29 07:30:14 -0800</date>
            <delta_ts>2013-01-29 07:53:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108161-20130129192700.patch</filename>
            <type>text/plain</type>
            <size>13318</size>
            <attacher name="Andrey Lushnikov">lushnikov</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwOTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDIzMjIwOTJhOTNjY2Zl
ZmMyMjEyN2M3MzliZmRkZDgxY2U4OWZmMi4uY2UzN2VlNTU3NmVjODM3Y2IzODgyMGQ4NzFjOTRk
NTZjNzY0MTM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDEzLTAxLTI5ICBBbmRy
ZXkgTHVzaG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5z
cGVjdG9yOiBpbnRyb2R1Y2UgSGlnaGxpZ2h0RGVzY3JpcHRvciBpbnRlcmZhY2UgaW4gRFRFLgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTYxCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNl
IG5ldyBIaWdobGlnaHREZXNjcmlwdG9yIGludGVyZmFjZSBhbmQgaXRzCisgICAgICAgIFJlZ2V4
SGlnaGxpZ2h0RGVzY3JpcHRvciBpbXBsZW1lbnRhdGlvbiBhbmQgdXNlIGl0IGluIERURSB0bwor
ICAgICAgICBzdXBwb3J0IG92ZXJsYXkgaGlnaGxpZ2h0LgorCisgICAgICAgIE5vIG5ldyB0ZXN0
czogbm8gY2hhbmdlIGluIGJlaGF2aW91ci4KKworICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1l
bmQvRGVmYXVsdFRleHRFZGl0b3IuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRGVmYXVsdFRl
eHRFZGl0b3IucHJvdG90eXBlLmhpZ2hsaWdodFJlZ2V4KToKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5EZWZhdWx0VGV4dEVkaXRvci5wcm90b3R5cGUucmVtb3ZlUmVnZXhIaWdobGlnaHQpOgorICAg
ICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwpOgorICAgICAgICAoV2ViSW5z
cGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlLmhpZ2hsaWdodFJlZ2V4KToKKyAg
ICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZS5yZW1vdmVS
ZWdleEhpZ2hsaWdodCk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5l
bC5wcm90b3R5cGUuX3BhaW50TGluZXMpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0
b3JNYWluUGFuZWwucHJvdG90eXBlLl9tZWFzdXJlSGlnaGxpZ2h0RGVzY3JpcHRvcik6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5IaWdobGlnaHREZXNjcmlwdG9y
KTogQWRkZWQuCisgICAgICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5IaWdo
bGlnaHREZXNjcmlwdG9yLnByb3RvdHlwZS5hZmZlY3RzTGluZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5IaWdobGlnaHREZXNjcmlwdG9yLnByb3RvdHlwZS5y
YW5nZXNGb3JMaW5lKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVs
LkhpZ2hsaWdodERlc2NyaXB0b3IucHJvdG90eXBlLmNzc0NsYXNzKToKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLlJlZ2V4SGlnaGxpZ2h0RGVzY3JpcHRvcik6IEFk
ZGVkLgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwuUmVnZXhIaWdo
bGlnaHREZXNjcmlwdG9yLnByb3RvdHlwZS5hZmZlY3RzTGluZSk6CisgICAgICAgIChXZWJJbnNw
ZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5SZWdleEhpZ2hsaWdodERlc2NyaXB0b3IucHJvdG90
eXBlLnJhbmdlc0ZvckxpbmUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWlu
UGFuZWwuUmVnZXhIaWdobGlnaHREZXNjcmlwdG9yLnByb3RvdHlwZS5jc3NDbGFzcyk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5Ub2tlbkhpZ2hsaWdodGVyLnBy
b3RvdHlwZS5faGlnaGxpZ2h0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFp
blBhbmVsLlRva2VuSGlnaGxpZ2h0ZXIucHJvdG90eXBlLl9yZW1vdmVIaWdobGlnaHQpOgorICAg
ICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVGV4dEVkaXRvci5qczoKKyAgICAgICAgKFdlYklu
c3BlY3Rvci5UZXh0RWRpdG9yLnByb3RvdHlwZS5yZW1vdmVSZWdleEhpZ2hsaWdodCk6CisKIDIw
MTMtMDEtMjcgIFNoaW55YSBLYXdhbmFrYSAgPHNoaW55YWtAY2hyb21pdW0ub3JnPgogCiAgICAg
ICAgIFtTaGFkb3cgRE9NXSBTZWxlY3RpbmcgYSBub2RlIHRvIGFub3RoZXIgbm9kZSBpbiBTaGFk
b3dET00gZmlyZXMgJ2NsaWNrJyBldmVudCB1bmV4cGVjdGVkbHkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRGVmYXVsdFRleHRFZGl0b3IuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0RlZmF1bHRUZXh0RWRpdG9yLmpzCmluZGV4
IGYwMGQ5MDRkN2Y1OGU5NzRmMWE1OGExNTZlOGEzMGU1ODI3OTgwMzQuLmQ2ZmZkYjNjMDNiY2Jl
NDkyMWE4Mzk4NjU4OTAyMzc3NjI1YmM3N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRGVmYXVsdFRleHRFZGl0b3IuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9EZWZhdWx0VGV4dEVkaXRvci5qcwpAQCAtMTEyLDE5ICsx
MTIsMTkgQEAgV2ViSW5zcGVjdG9yLkRlZmF1bHRUZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAg
ICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gcmVnZXgKICAgICAgKiBAcGFyYW0ge3N0cmlu
Z30gY3NzQ2xhc3MKKyAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5Q
YW5lbC5IaWdobGlnaHREZXNjcmlwdG9yfQogICAgICAqLwogICAgIGhpZ2hsaWdodFJlZ2V4OiBm
dW5jdGlvbihyZWdleCwgY3NzQ2xhc3MpCiAgICAgewotICAgICAgICB0aGlzLl9tYWluUGFuZWwu
aGlnaGxpZ2h0UmVnZXgocmVnZXgsIGNzc0NsYXNzKTsKKyAgICAgICAgcmV0dXJuIHRoaXMuX21h
aW5QYW5lbC5oaWdobGlnaHRSZWdleChyZWdleCwgY3NzQ2xhc3MpOwogICAgIH0sCiAKICAgICAv
KioKLSAgICAgKiBAcGFyYW0ge3N0cmluZ30gcmVnZXgKLSAgICAgKiBAcmV0dXJuIHtib29sZWFu
fQorICAgICAqIEBwYXJhbSB7V2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwuSGlnaGxp
Z2h0RGVzY3JpcHRvcn0gaGlnaGxpZ2h0RGVzY3JpcHRvcgogICAgICAqLwotICAgIHJlbW92ZVJl
Z2V4SGlnaGxpZ2h0OiBmdW5jdGlvbihyZWdleCkKKyAgICByZW1vdmVSZWdleEhpZ2hsaWdodDog
ZnVuY3Rpb24oaGlnaGxpZ2h0RGVzY3JpcHRvcikKICAgICB7Ci0gICAgICAgIHJldHVybiB0aGlz
Ll9tYWluUGFuZWwucmVtb3ZlUmVnZXhIaWdobGlnaHQocmVnZXgpOworICAgICAgICB0aGlzLl9t
YWluUGFuZWwucmVtb3ZlUmVnZXhIaWdobGlnaHQoaGlnaGxpZ2h0RGVzY3JpcHRvcik7CiAgICAg
fSwKIAogICAgIC8qKgpAQCAtMTM2MCw3ICsxMzYwLDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0
b3JNYWluUGFuZWwgPSBmdW5jdGlvbihkZWxlZ2F0ZSwgdGV4dE1vZGVsLCB1cmwsIHN5bmNTY3Jv
bGwKIAogICAgIHRoaXMuX2NvbnRhaW5lci5hZGRFdmVudExpc3RlbmVyKCJmb2N1cyIsIHRoaXMu
X2hhbmRsZUZvY3VzZWQuYmluZCh0aGlzKSwgZmFsc2UpOwogCi0gICAgdGhpcy5faGlnaGxpZ2h0
UmVnZXhzID0ge307CisgICAgdGhpcy5faGlnaGxpZ2h0RGVzY3JpcHRvcnMgPSBbXTsKIAogICAg
IHRoaXMuX3Rva2VuSGlnaGxpZ2h0ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWlu
UGFuZWwuVG9rZW5IaWdobGlnaHRlcih0aGlzLCB0ZXh0TW9kZWwpOwogCkBAIC0xMzcyLDI1ICsx
MzcyLDIzIEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsK
ICAgICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gcmVnZXgKICAgICAgKiBAcGFyYW0ge3N0
cmluZ30gY3NzQ2xhc3MKKyAgICAgKiBAcmV0dXJuIHtXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1h
aW5QYW5lbC5IaWdobGlnaHREZXNjcmlwdG9yfQogICAgICAqLwogICAgIGhpZ2hsaWdodFJlZ2V4
OiBmdW5jdGlvbihyZWdleCwgY3NzQ2xhc3MpCiAgICAgewotICAgICAgICB0aGlzLl9oaWdobGln
aHRSZWdleHNbcmVnZXhdID0gewotICAgICAgICAgICAgcmVnZXg6IG5ldyBSZWdFeHAocmVnZXgs
ICJnIiksCi0gICAgICAgICAgICBjc3NDbGFzczogY3NzQ2xhc3MKLSAgICAgICAgfTsKKyAgICAg
ICAgdmFyIGhpZ2hsaWdodERlc2NyaXB0b3IgPSBuZXcgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JN
YWluUGFuZWwuUmVnZXhIaWdobGlnaHREZXNjcmlwdG9yKG5ldyBSZWdFeHAocmVnZXgsICJnIiks
IGNzc0NsYXNzKTsKKyAgICAgICAgdGhpcy5faGlnaGxpZ2h0RGVzY3JpcHRvcnMucHVzaChoaWdo
bGlnaHREZXNjcmlwdG9yKTsKICAgICAgICAgdGhpcy5fcmVwYWludFZpc2libGVDaHVua3MoKTsK
KyAgICAgICAgcmV0dXJuIGhpZ2hsaWdodERlc2NyaXB0b3I7CiAgICAgfSwKIAogICAgIC8qKgot
ICAgICAqIEBwYXJhbSB7c3RyaW5nfSByZWdleAotICAgICAqIEByZXR1cm4ge2Jvb2xlYW59Cisg
ICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5IaWdobGlnaHRE
ZXNjcmlwdG9yfSBoaWdobGlnaHREZXNjcmlwdG9yCiAgICAgICovCi0gICAgcmVtb3ZlUmVnZXhI
aWdobGlnaHQ6IGZ1bmN0aW9uKHJlZ2V4KQorICAgIHJlbW92ZVJlZ2V4SGlnaGxpZ2h0OiBmdW5j
dGlvbihoaWdobGlnaHREZXNjcmlwdG9yKQogICAgIHsKLSAgICAgICAgdmFyIHJlc3VsdCA9IGRl
bGV0ZSB0aGlzLl9oaWdobGlnaHRSZWdleHNbcmVnZXhdOworICAgICAgICB0aGlzLl9oaWdobGln
aHREZXNjcmlwdG9ycy5yZW1vdmUoaGlnaGxpZ2h0RGVzY3JpcHRvcik7CiAgICAgICAgIHRoaXMu
X3JlcGFpbnRWaXNpYmxlQ2h1bmtzKCk7Ci0gICAgICAgIHJldHVybiByZXN1bHQ7CiAgICAgfSwK
IAogICAgIF9yZXBhaW50VmlzaWJsZUNodW5rczogZnVuY3Rpb24oKQpAQCAtMTgxMyw5ICsxODEx
LDkgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwucHJvdG90eXBlID0gewogCiAg
ICAgICAgIHZhciBoaWdobGlnaHQgPSB7fTsKICAgICAgICAgdGhpcy5iZWdpbkRvbVVwZGF0ZXMo
KTsKLSAgICAgICAgZm9yKHZhciByZWdleFN0cmluZyBpbiB0aGlzLl9oaWdobGlnaHRSZWdleHMp
IHsKLSAgICAgICAgICAgIHZhciByZWdleEhpZ2hsaWdodERlc2NyaXB0b3IgPSB0aGlzLl9oaWdo
bGlnaHRSZWdleHNbcmVnZXhTdHJpbmddOwotICAgICAgICAgICAgdGhpcy5fbWVhc3VyZVJlZ2V4
SGlnaGxpZ2h0KGhpZ2hsaWdodCwgbGluZVJvd3MsIHJlZ2V4SGlnaGxpZ2h0RGVzY3JpcHRvci5y
ZWdleCwgcmVnZXhIaWdobGlnaHREZXNjcmlwdG9yLmNzc0NsYXNzKTsKKyAgICAgICAgZm9yKHZh
ciBpID0gMDsgaSA8IHRoaXMuX2hpZ2hsaWdodERlc2NyaXB0b3JzLmxlbmd0aDsgKytpKSB7Cisg
ICAgICAgICAgICB2YXIgaGlnaGxpZ2h0RGVzY3JpcHRvciA9IHRoaXMuX2hpZ2hsaWdodERlc2Ny
aXB0b3JzW2ldOworICAgICAgICAgICAgdGhpcy5fbWVhc3VyZUhpZ2hsaWdodERlc2NyaXB0b3Io
aGlnaGxpZ2h0LCBsaW5lUm93cywgaGlnaGxpZ2h0RGVzY3JpcHRvcik7CiAgICAgICAgIH0KIAog
ICAgICAgICBmb3IodmFyIGkgPSAwOyBpIDwgbGluZVJvd3MubGVuZ3RoOyArK2kpCkBAIC0xODI4
LDM2ICsxODI2LDE3IEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlw
ZSA9IHsKICAgICB9LAogCiAgICAgLyoqCi0gICAgICogQHBhcmFtIHtzdHJpbmd9IGxpbmUKLSAg
ICAgKiBAcGFyYW0ge1JlZ0V4cH0gcmVnZXgKLSAgICAgKiBAcmV0dXJuIHtBcnJheS48e3N0YXJ0
Q29sdW1uOiBudW1iZXIsIGVuZENvbHVtbjogbnVtYmVyfT59Ci0gICAgICovCi0gICAgX2ZpbmRS
ZWdleE9jY3VycmVuY2VzOiBmdW5jdGlvbihsaW5lLCByZWdleCkKLSAgICB7Ci0gICAgICAgIHZh
ciByYW5nZXMgPSBbXTsKLSAgICAgICAgdmFyIHJlZ2V4UmVzdWx0OwotICAgICAgICB3aGlsZSAo
cmVnZXhSZXN1bHQgPSByZWdleC5leGVjKGxpbmUpKSB7Ci0gICAgICAgICAgICByYW5nZXMucHVz
aCh7Ci0gICAgICAgICAgICAgICAgc3RhcnRDb2x1bW46IHJlZ2V4UmVzdWx0LmluZGV4LAotICAg
ICAgICAgICAgICAgIGVuZENvbHVtbjogcmVnZXhSZXN1bHQuaW5kZXggKyByZWdleFJlc3VsdFsw
XS5sZW5ndGggLSAxCi0gICAgICAgICAgICB9KTsKLSAgICAgICAgfQotICAgICAgICByZXR1cm4g
cmFuZ2VzOwotICAgIH0sCi0KLSAgICAvKioKICAgICAgKiBAcGFyYW0ge09iamVjdC48bnVtYmVy
LCBBcnJheS48V2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFuZWwuTGluZU92ZXJsYXlIaWdo
bGlnaHQ+Pn0gaGlnaGxpZ2h0CiAgICAgICogQHBhcmFtIHtBcnJheS48RWxlbWVudD59IGxpbmVS
b3dzCi0gICAgICogQHBhcmFtIHtSZWdFeHB9IHJlZ2V4Ci0gICAgICogQHBhcmFtIHtzdHJpbmd9
IGNzc0NsYXNzCisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5l
bC5IaWdobGlnaHREZXNjcmlwdG9yfSBoaWdobGlnaHREZXNjcmlwdG9yCiAgICAgICovCi0gICAg
X21lYXN1cmVSZWdleEhpZ2hsaWdodDogZnVuY3Rpb24oaGlnaGxpZ2h0LCBsaW5lUm93cywgcmVn
ZXgsIGNzc0NsYXNzKQorICAgIF9tZWFzdXJlSGlnaGxpZ2h0RGVzY3JpcHRvcjogZnVuY3Rpb24o
aGlnaGxpZ2h0LCBsaW5lUm93cywgaGlnaGxpZ2h0RGVzY3JpcHRvcikKICAgICB7CiAgICAgICAg
IHZhciByb3dzVG9NZWFzdXJlID0gW107CiAgICAgICAgIGZvcih2YXIgaSA9IDA7IGkgPCBsaW5l
Um93cy5sZW5ndGg7ICsraSkgewogICAgICAgICAgICAgdmFyIGxpbmVSb3cgPSBsaW5lUm93c1tp
XTsKICAgICAgICAgICAgIHZhciBsaW5lID0gdGhpcy5fdGV4dE1vZGVsLmxpbmUobGluZVJvdy5s
aW5lTnVtYmVyKTsKLSAgICAgICAgICAgIHZhciByYW5nZXMgPSB0aGlzLl9maW5kUmVnZXhPY2N1
cnJlbmNlcyhsaW5lLCByZWdleCk7CisgICAgICAgICAgICB2YXIgcmFuZ2VzID0gaGlnaGxpZ2h0
RGVzY3JpcHRvci5yYW5nZXNGb3JMaW5lKGxpbmVSb3cubGluZU51bWJlciwgbGluZSk7CiAgICAg
ICAgICAgICBpZiAocmFuZ2VzLmxlbmd0aCA9PT0gMCkKICAgICAgICAgICAgICAgICBjb250aW51
ZTsKIApAQCAtMTg3Myw3ICsxODUyLDcgQEAgV2ViSW5zcGVjdG9yLlRleHRFZGl0b3JNYWluUGFu
ZWwucHJvdG90eXBlID0gewogICAgICAgICAgICAgaWYgKCFoaWdobGlnaHRbbGluZU51bWJlcl0p
CiAgICAgICAgICAgICAgICAgaGlnaGxpZ2h0W2xpbmVOdW1iZXJdID0gW107CiAKLSAgICAgICAg
ICAgIGhpZ2hsaWdodFtsaW5lTnVtYmVyXS5wdXNoKG5ldyBXZWJJbnNwZWN0b3IuVGV4dEVkaXRv
ck1haW5QYW5lbC5MaW5lT3ZlcmxheUhpZ2hsaWdodChtZXRyaWNzLCBjc3NDbGFzcykpOworICAg
ICAgICAgICAgaGlnaGxpZ2h0W2xpbmVOdW1iZXJdLnB1c2gobmV3IFdlYkluc3BlY3Rvci5UZXh0
RWRpdG9yTWFpblBhbmVsLkxpbmVPdmVybGF5SGlnaGxpZ2h0KG1ldHJpY3MsIGhpZ2hsaWdodERl
c2NyaXB0b3IuY3NzQ2xhc3MoKSkpOwogICAgICAgICB9CiAgICAgfSwKIApAQCAtMjY2OSw2ICsy
NjQ4LDgyIEBAIFdlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLnByb3RvdHlwZSA9IHsK
IH0KIAogLyoqCisgKiBAaW50ZXJmYWNlCisgKi8KK1dlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFp
blBhbmVsLkhpZ2hsaWdodERlc2NyaXB0b3IgPSBmdW5jdGlvbigpIHsgfQorCitXZWJJbnNwZWN0
b3IuVGV4dEVkaXRvck1haW5QYW5lbC5IaWdobGlnaHREZXNjcmlwdG9yLnByb3RvdHlwZSA9IHsK
KyAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gbGluZU51bWJlcgorICAgICAqIEBwYXJh
bSB7c3RyaW5nfSBsaW5lCisgICAgICogQHJldHVybiB7Ym9vbGVhbn0KKyAgICAgKi8KKyAgICBh
ZmZlY3RzTGluZTogZnVuY3Rpb24obGluZU51bWJlciwgbGluZSkgeyByZXR1cm4gZmFsc2U7IH0s
CisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge251bWJlcn0gbGluZU51bWJlcgorICAgICAqIEBw
YXJhbSB7c3RyaW5nfSBsaW5lCisgICAgICogQHJldHVybiB7QXJyYXkuPHtzdGFydENvbHVtbjog
bnVtYmVyLCBlbmRDb2x1bW46IG51bWJlcn0+fQorICAgICAqLworICAgIHJhbmdlc0ZvckxpbmU6
IGZ1bmN0aW9uKGxpbmVOdW1iZXIsIGxpbmUpIHsgcmV0dXJuIFtdOyB9LAorCisgICAgLyoqCisg
ICAgICogQHJldHVybiB7c3RyaW5nfQorICAgICAqLworICAgIGNzc0NsYXNzOiBmdW5jdGlvbigp
IHsgcmV0dXJuICIiOyB9LAorfQorCisvKioKKyAqIEBjb25zdHJ1Y3RvcgorICogQGltcGxlbWVu
dHMge1dlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLkhpZ2hsaWdodERlc2NyaXB0b3J9
CisgKi8KK1dlYkluc3BlY3Rvci5UZXh0RWRpdG9yTWFpblBhbmVsLlJlZ2V4SGlnaGxpZ2h0RGVz
Y3JpcHRvciA9IGZ1bmN0aW9uKHJlZ2V4LCBjc3NDbGFzcykKK3sKKyAgICB0aGlzLl9jc3NDbGFz
cyA9IGNzc0NsYXNzOworICAgIHRoaXMuX3JlZ2V4ID0gcmVnZXg7Cit9CisKK1dlYkluc3BlY3Rv
ci5UZXh0RWRpdG9yTWFpblBhbmVsLlJlZ2V4SGlnaGxpZ2h0RGVzY3JpcHRvci5wcm90b3R5cGUg
PSB7CisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGxpbmVOdW1iZXIKKyAgICAgKiBA
cGFyYW0ge3N0cmluZ30gbGluZQorICAgICAqIEByZXR1cm4ge2Jvb2xlYW59CisgICAgICovCisg
ICAgYWZmZWN0c0xpbmU6IGZ1bmN0aW9uKGxpbmVOdW1iZXIsIGxpbmUpCisgICAgeworICAgICAg
ICB0aGlzLl9yZWdleC5sYXN0SW5kZXggPSAwOworICAgICAgICByZXR1cm4gdGhpcy5fcmVnZXgu
dGVzdChsaW5lKTsKKyAgICB9LAorCisgICAgLyoqCisgICAgICogQHBhcmFtIHtudW1iZXJ9IGxp
bmVOdW1iZXIKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gbGluZQorICAgICAqIEByZXR1cm4ge0Fy
cmF5Ljx7c3RhcnRDb2x1bW46IG51bWJlciwgZW5kQ29sdW1uOiBudW1iZXJ9Pn0KKyAgICAgKi8K
KyAgICByYW5nZXNGb3JMaW5lOiBmdW5jdGlvbihsaW5lTnVtYmVyLCBsaW5lKQorICAgIHsKKyAg
ICAgICAgdmFyIHJhbmdlcyA9IFtdOworICAgICAgICB2YXIgcmVnZXhSZXN1bHQ7CisgICAgICAg
IHRoaXMuX3JlZ2V4Lmxhc3RJbmRleCA9IDA7CisgICAgICAgIHdoaWxlIChyZWdleFJlc3VsdCA9
IHRoaXMuX3JlZ2V4LmV4ZWMobGluZSkpIHsKKyAgICAgICAgICAgIHJhbmdlcy5wdXNoKHsKKyAg
ICAgICAgICAgICAgICBzdGFydENvbHVtbjogcmVnZXhSZXN1bHQuaW5kZXgsCisgICAgICAgICAg
ICAgICAgZW5kQ29sdW1uOiByZWdleFJlc3VsdC5pbmRleCArIHJlZ2V4UmVzdWx0WzBdLmxlbmd0
aCAtIDEKKyAgICAgICAgICAgIH0pOworICAgICAgICB9CisgICAgICAgIHJldHVybiByYW5nZXM7
CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEByZXR1cm4ge3N0cmluZ30KKyAgICAgKi8KKyAg
ICBjc3NDbGFzczogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgcmV0dXJuIHRoaXMuX2Nzc0Ns
YXNzOworICAgIH0KK30KKworLyoqCiAgKiBAY29uc3RydWN0b3IKICAqIEBwYXJhbSB7RWxlbWVu
dH0gZWxlbWVudAogICovCkBAIC0zMDA5LDE0ICszMDY0LDE1IEBAIFdlYkluc3BlY3Rvci5UZXh0
RWRpdG9yTWFpblBhbmVsLlRva2VuSGlnaGxpZ2h0ZXIucHJvdG90eXBlID0gewogICAgIHsKICAg
ICAgICAgdGhpcy5fcmVtb3ZlSGlnaGxpZ2h0KCk7CiAgICAgICAgIHRoaXMuX3NlbGVjdGVkV29y
ZCA9IHNlbGVjdGVkV29yZDsKLSAgICAgICAgdGhpcy5fbWFpblBhbmVsLmhpZ2hsaWdodFJlZ2V4
KHRoaXMuX3JlZ2V4U3RyaW5nKHNlbGVjdGVkV29yZCksICJ0ZXh0LWVkaXRvci10b2tlbi1oaWdo
bGlnaHQiKQorICAgICAgICB0aGlzLl9oaWdobGlnaHREZXNjcmlwdG9yID0gdGhpcy5fbWFpblBh
bmVsLmhpZ2hsaWdodFJlZ2V4KHRoaXMuX3JlZ2V4U3RyaW5nKHNlbGVjdGVkV29yZCksICJ0ZXh0
LWVkaXRvci10b2tlbi1oaWdobGlnaHQiKQogICAgIH0sCiAKICAgICBfcmVtb3ZlSGlnaGxpZ2h0
OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWRXb3JkKSB7Ci0g
ICAgICAgICAgICB0aGlzLl9tYWluUGFuZWwucmVtb3ZlUmVnZXhIaWdobGlnaHQodGhpcy5fcmVn
ZXhTdHJpbmcodGhpcy5fc2VsZWN0ZWRXb3JkKSk7CisgICAgICAgICAgICB0aGlzLl9tYWluUGFu
ZWwucmVtb3ZlUmVnZXhIaWdobGlnaHQodGhpcy5faGlnaGxpZ2h0RGVzY3JpcHRvcik7CiAgICAg
ICAgICAgICBkZWxldGUgdGhpcy5fc2VsZWN0ZWRXb3JkOworICAgICAgICAgICAgZGVsZXRlIHRo
aXMuX2hpZ2hsaWdodERlc2NyaXB0b3I7CiAgICAgICAgIH0KICAgICB9LAogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3IuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1RleHRFZGl0b3IuanMKaW5kZXggZTExNjM0
YTdiYTBiOTk0NTcwMGY1MTYxMmQ2NGVlOWNjMDVhZDZiZi4uYmQ2YTU1YmQwODQ5MmI2ZTY2MmY4
MTIxOWVlODc5NzQxMzkwYmE2ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9UZXh0RWRpdG9yLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvVGV4dEVkaXRvci5qcwpAQCAtNjMsMTQgKzYzLDE0IEBAIFdlYkluc3BlY3Rvci5U
ZXh0RWRpdG9yLnByb3RvdHlwZSA9IHsKICAgICAvKioKICAgICAgKiBAcGFyYW0ge3N0cmluZ30g
cmVnZXgKICAgICAgKiBAcGFyYW0ge3N0cmluZ30gY3NzQ2xhc3MKKyAgICAgKiBAcmV0dXJuIHtX
ZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5lbC5IaWdobGlnaHREZXNjcmlwdG9yfQogICAg
ICAqLwogICAgIGhpZ2hsaWdodFJlZ2V4OiBmdW5jdGlvbihyZWdleCwgY3NzQ2xhc3MpIHsgfSwK
IAogICAgIC8qKgotICAgICAqIEBwYXJhbSB7c3RyaW5nfSByZWdleAotICAgICAqIEByZXR1cm4g
e2Jvb2xlYW59CisgICAgICogQHBhcmFtIHtXZWJJbnNwZWN0b3IuVGV4dEVkaXRvck1haW5QYW5l
bC5IaWdobGlnaHREZXNjcmlwdG9yfSBoaWdobGlnaHREZXNjcmlwdG9yCiAgICAgICovCi0gICAg
cmVtb3ZlUmVnZXhIaWdobGlnaHQ6IGZ1bmN0aW9uKHJlZ2V4KSB7IH0sCisgICAgcmVtb3ZlUmVn
ZXhIaWdobGlnaHQ6IGZ1bmN0aW9uKGhpZ2hsaWdodERlc2NyaXB0b3IpIHsgfSwKIAogICAgIC8q
KgogICAgICAqIEBwYXJhbSB7bnVtYmVyfSBsaW5lTnVtYmVyCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNmYxNTA4ODY4OTE3
MDYzNDc4NWRkMjAzOTFjYWQ1MjJlNmVmMzA0OC4uODFmMzM1MTFiZTczN2RjNDQxMmYzMWM2NTgy
NzA1MGI3MjMxZmFiMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDEzLTAxLTI5ICBBbmRyZXkg
THVzaG5pa292ICA8bHVzaG5pa292QGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBpbnRyb2R1Y2UgSGlnaGxpZ2h0RGVzY3JpcHRvciBpbnRlcmZhY2UgaW4gRFRFLgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTA4MTYxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ29ycmVjdCBsYXlv
dXQgdGVzdCBhY2NvcmRpbmcgdG8gcmVmYWN0b3JpbmcgY2hhbmdlcy4KKworICAgICAgICAqIGlu
c3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3ItaGlnaGxpZ2h0LXJlZ2V4cC5odG1sOgorCiAyMDEz
LTAxLTI3ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtD
aHJvbWl1bV0gTWFya2luZyB0d28gZmFzdC9mb3JtcyB0ZXN0cyBhcyBzbG93IG9uIGRlYnVnIG1h
Yy4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9lZGl0b3IvdGV4dC1lZGl0b3It
aGlnaGxpZ2h0LXJlZ2V4cC5odG1sIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0
LWVkaXRvci1oaWdobGlnaHQtcmVnZXhwLmh0bWwKaW5kZXggZTIyYjA2NDc0M2M3N2E1MGFmMjlj
ZWNmMmJmMzQzYTJiNWQxMDhhMC4uM2Y1ZDBhOGE2NDMyM2RmODhlZmIyMzA3MzFmNzUwYjc1YWYy
ZTU5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRvci90ZXh0LWVkaXRv
ci1oaWdobGlnaHQtcmVnZXhwLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2VkaXRv
ci90ZXh0LWVkaXRvci1oaWdobGlnaHQtcmVnZXhwLmh0bWwKQEAgLTIxLDExICsyMSwxMSBAQCBm
dW5jdGlvbiB0ZXN0KCkKICAgICAgICAgICAgIHRleHRFZGl0b3Iuc2V0VGV4dCh0ZXh0LmpvaW4o
IlxuIikpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5hZGRSZXN1bHQoIlxuQmVmb3JlIGhp
Z2hsaWdodCIpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWRpdG9ySFRNTCh0ZXh0
RWRpdG9yLCB0cnVlKTsKLSAgICAgICAgICAgIHRleHRFZGl0b3IuaGlnaGxpZ2h0UmVnZXgoImZv
b18uIiwgInNvbWUtY3NzLWNsYXNzIik7CisgICAgICAgICAgICB2YXIgaGlnaGxpZ2h0RGVzY3Jp
cHRvciA9IHRleHRFZGl0b3IuaGlnaGxpZ2h0UmVnZXgoImZvb18uIiwgInNvbWUtY3NzLWNsYXNz
Iik7CiAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmFkZFJlc3VsdCgiXG5BZGQgaGlnaGxpZ2h0
IGZvciByZWdleHAgL2Zvb18uLyIpOwogICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5kdW1wRWRp
dG9ySFRNTCh0ZXh0RWRpdG9yLCB0cnVlKTsKICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuYWRk
UmVzdWx0KCJcblJlbW92ZSBoaWdobGlnaHQgZm9yIHJlZ2V4cCAvZm9vXy4vIik7Ci0gICAgICAg
ICAgICB0ZXh0RWRpdG9yLnJlbW92ZVJlZ2V4SGlnaGxpZ2h0KCJmb29fLiIpOworICAgICAgICAg
ICAgdGV4dEVkaXRvci5yZW1vdmVSZWdleEhpZ2hsaWdodChoaWdobGlnaHREZXNjcmlwdG9yKTsK
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuZHVtcEVkaXRvckhUTUwodGV4dEVkaXRvciwgdHJ1
ZSk7CiAgICAgICAgICAgICBuZXh0KCk7CiAgICAgICAgIH0sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>