<?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>110696</bug_id>
          
          <creation_ts>2013-02-23 13:32:22 -0800</creation_ts>
          <short_desc>Web Inspector: Improve speed of Linkifier.reset operation.</short_desc>
          <delta_ts>2013-02-25 01:52:01 -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="Ilya Tikhonovsky">loislo</reporter>
          <assigned_to name="Ilya Tikhonovsky">loislo</assigned_to>
          <cc>aandrey</cc>
    
    <cc>apavlov</cc>
    
    <cc>buildbot</cc>
    
    <cc>dglazkov</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rniwa</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>840442</commentid>
    <comment_count>0</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-02-23 13:32:22 -0800</bug_when>
    <thetext>Linkifier.reset has complexity O(N^2) where N is the number of LiveLocation objects.
It indirectly calls Array.remove operation which scan entire array and does shift operation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840444</commentid>
    <comment_count>1</comment_count>
      <attachid>189935</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-02-23 13:40:23 -0800</bug_when>
    <thetext>Created attachment 189935
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840447</commentid>
    <comment_count>2</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2013-02-23 13:56:53 -0800</bug_when>
    <thetext>You should use new Map() instead - it generates ids automatically.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840452</commentid>
    <comment_count>3</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-02-23 14:12:41 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; You should use new Map() instead - it generates ids automatically.

We have two different maps. One in Script.js the other in UISourceCode.js
So we need to have a guarantee that the identifiers are unique.
Also Map uses at least 50% more memory because actually it maps number to the array of two elements, Key and Value.

Probably we need to introduce Set.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840470</commentid>
    <comment_count>4</comment_count>
      <attachid>189935</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-23 15:26:32 -0800</bug_when>
    <thetext>Comment on attachment 189935
Patch

Attachment 189935 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16723855

New failing tests:
inspector/debugger/script-formatter-console.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840485</commentid>
    <comment_count>5</comment_count>
      <attachid>189935</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-02-23 16:22:10 -0800</bug_when>
    <thetext>Comment on attachment 189935
Patch

Attachment 189935 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/16729030

New failing tests:
inspector/debugger/callstack-placards-discarded.html
inspector/debugger/script-formatter-console.html
inspector/debugger/script-formatter-breakpoints.html
inspector/debugger/linkifier.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840565</commentid>
    <comment_count>6</comment_count>
      <attachid>189935</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-02-24 01:45:14 -0800</bug_when>
    <thetext>Comment on attachment 189935
Patch

Attachment 189935 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/16737251

New failing tests:
platform/mac/editing/deleting/deletionUI-single-instance.html
inspector/debugger/script-formatter-console.html
inspector/debugger/script-formatter-breakpoints.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840746</commentid>
    <comment_count>7</comment_count>
      <attachid>190006</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-02-25 00:06:30 -0800</bug_when>
    <thetext>Created attachment 190006
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840759</commentid>
    <comment_count>8</comment_count>
      <attachid>190006</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2013-02-25 00:29:26 -0800</bug_when>
    <thetext>Comment on attachment 190006
Patch

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

&gt; Source/WebCore/inspector/front-end/utilities.js:707
&gt; +    // It has to be string for better performance.

Please explain that it is done to make sure that the object is not converted into an Array by VM because of consecutive integer keys.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840765</commentid>
    <comment_count>9</comment_count>
      <attachid>190011</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-02-25 00:36:39 -0800</bug_when>
    <thetext>Created attachment 190011
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840771</commentid>
    <comment_count>10</comment_count>
      <attachid>190012</attachid>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-02-25 00:43:16 -0800</bug_when>
    <thetext>Created attachment 190012
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840780</commentid>
    <comment_count>11</comment_count>
      <attachid>190012</attachid>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2013-02-25 00:57:40 -0800</bug_when>
    <thetext>Comment on attachment 190012
Patch

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

&gt; Source/WebCore/inspector/front-end/UISourceCode.js:55
&gt; +     * @type {Object.&lt;number, WebInspector.LiveLocation&gt;}

wrong @type?

&gt; Source/WebCore/inspector/front-end/utilities.js:705
&gt; +var createObjectIdentifier = function()

/** @return {string} */

&gt; Source/WebCore/inspector/front-end/utilities.js:708
&gt; +    return &apos;_&apos; + ++createObjectIdentifier._last;

&apos; -&gt; &quot;

&gt; Source/WebCore/inspector/front-end/utilities.js:718
&gt; +    this._set = {};

plz add @type !Object.&lt;...&gt;

&gt; Source/WebCore/inspector/front-end/utilities.js:739
&gt; +     * @param {Object} item

{Object} -&gt; {!Object}

&gt; Source/WebCore/inspector/front-end/utilities.js:743
&gt; +        if (this._set[item.__identifier]) {

maybe a check on item.__identifier for consistency with the #add method

&gt; Source/WebCore/inspector/front-end/utilities.js:750
&gt; +     * @return {Array.&lt;Object&gt;}

Array -&gt; !Array

&gt; Source/WebCore/inspector/front-end/utilities.js:762
&gt; +     * @param {Object} item

@return is missing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840783</commentid>
    <comment_count>12</comment_count>
    <who name="Andrey Adaikin">aandrey</who>
    <bug_when>2013-02-25 00:58:47 -0800</bug_when>
    <thetext>Oops, I must have removed Pavel&apos;s r+ due to a collision.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840786</commentid>
    <comment_count>13</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-02-25 01:12:09 -0800</bug_when>
    <thetext>Committed r143889: &lt;http://trac.webkit.org/changeset/143889&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>840807</commentid>
    <comment_count>14</comment_count>
    <who name="Ilya Tikhonovsky">loislo</who>
    <bug_when>2013-02-25 01:52:01 -0800</bug_when>
    <thetext>comments addressed</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>189935</attachid>
            <date>2013-02-23 13:40:23 -0800</date>
            <delta_ts>2013-02-25 00:06:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110696-20130224013640.patch</filename>
            <type>text/plain</type>
            <size>5566</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzODQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTUyNWMwYzNiNjk5YjYx
YzAyMTA2ZDQwNWZiNWM2ZDVkYWQwZDFlZC4uZjgxNGI4ZDc5MmU0NDE3MDY1NjUwMWViOWViYjcy
YjJjZmExZjRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDEzLTAyLTIzICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBJbXByb3ZlIHNwZWVkIG9mIExpbmtpZmllci5yZXNldCBvcGVyYXRpb24uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA2OTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMaW5raWZpZXIgY2FsbHMg
QXJyYXkucmVtb3ZlIE4gdGltZXMgYW5kIGVhY2ggcmVtb3ZlIGNhbGwgc2NhbnMKKyAgICAgICAg
ZW50aXJlIGFycmF5IGFuZCBkb2VzIHNwbGljZS4gU28gdGhlIGNvbXBsZXhpdHkgb2YgTGlua2lm
aWVyLnJlc2V0CisgICAgICAgIGlzIE8oTl4yKS4gSSByZXBsYWNlZCB0aGUgYXJyYXlzIHdpdGgg
b2JqZWN0cyBhbmQgZ290IE8oTikgY29tcGxleGl0eS4KKworICAgICAgICAqIGluc3BlY3Rvci9m
cm9udC1lbmQvUHJvZmlsZXNQYW5lbC5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5Qcm9maWxl
c1BhbmVsKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL1NjcmlwdC5qczoKKyAgICAg
ICAgKFdlYkluc3BlY3Rvci5TY3JpcHQpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlNjcmlwdC5w
cm90b3R5cGUudXBkYXRlTG9jYXRpb25zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHQu
cHJvdG90eXBlLmNyZWF0ZUxpdmVMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2Ny
aXB0LkxvY2F0aW9uLnByb3RvdHlwZS5kaXNwb3NlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJv
bnQtZW5kL1VJU291cmNlQ29kZS5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNv
ZGUpOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5cGUuYWRkTGl2
ZUxvY2F0aW9uKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBl
LnJlbW92ZUxpdmVMb2NhdGlvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2Rl
LnByb3RvdHlwZS51cGRhdGVMaXZlTG9jYXRpb25zKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5M
aXZlTG9jYXRpb24pOgorICAgICAgICAoV2ViSW5zcGVjdG9yLkxpdmVMb2NhdGlvbi5wcm90b3R5
cGUuZGlzcG9zZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuTGl2ZUxvY2F0aW9uLnByb3RvdHlw
ZS5pZCk6CisKIDIwMTMtMDItMjMgIEFkYW0gQmFydGggIDxhYmFydGhAd2Via2l0Lm9yZz4KIAog
ICAgICAgICBUaHJlYWRlZCBIVE1MIHBhcnNlciBzaG91bGQgcGFzcyBmYXN0L3BhcnNlci9wYXJz
ZXIteWllbGQtdGltaW5nLmh0bWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9mcm9udC1lbmQvU2NyaXB0LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVu
ZC9TY3JpcHQuanMKaW5kZXggMDI3Y2Y1ZDkyODNhNGViNzE1MDAyNDkzODNiZDFhZWM5NWQxZDE3
NS4uNzAwYzcxNmE1MTg4Y2Y4NzRmMGVlYmIwNWUzOTc1M2YwYzUyZGM2YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKQEAgLTQ4LDcgKzQ4LDcgQEAg
V2ViSW5zcGVjdG9yLlNjcmlwdCA9IGZ1bmN0aW9uKHNjcmlwdElkLCBzb3VyY2VVUkwsIHN0YXJ0
TGluZSwgc3RhcnRDb2x1bW4sIGVuZEwKICAgICB0aGlzLmlzQ29udGVudFNjcmlwdCA9IGlzQ29u
dGVudFNjcmlwdDsKICAgICB0aGlzLnNvdXJjZU1hcFVSTCA9IHNvdXJjZU1hcFVSTDsKICAgICB0
aGlzLmhhc1NvdXJjZVVSTCA9IGhhc1NvdXJjZVVSTDsKLSAgICB0aGlzLl9sb2NhdGlvbnMgPSBb
XTsKKyAgICB0aGlzLl9sb2NhdGlvbnMgPSB7fTsKICAgICB0aGlzLl9zb3VyY2VNYXBwaW5ncyA9
IFtdOwogfQogCkBAIC0yODgsOCArMjg4LDkgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdC5wcm90b3R5
cGUgPSB7CiAKICAgICB1cGRhdGVMb2NhdGlvbnM6IGZ1bmN0aW9uKCkKICAgICB7Ci0gICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgdGhpcy5fbG9jYXRpb25zLmxlbmd0aDsgKytpKQotICAgICAg
ICAgICAgdGhpcy5fbG9jYXRpb25zW2ldLnVwZGF0ZSgpOworICAgICAgICB2YXIga2V5cyA9IE9i
amVjdC5rZXlzKHRoaXMuX2xvY2F0aW9ucyk7CisgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
a2V5cy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIHRoaXMuX2xvY2F0aW9uc1trZXlzW2ldXS51
cGRhdGUoKTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0zMDEsNyArMzAyLDcgQEAgV2ViSW5zcGVj
dG9yLlNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydChy
YXdMb2NhdGlvbi5zY3JpcHRJZCA9PT0gdGhpcy5zY3JpcHRJZCk7CiAgICAgICAgIHZhciBsb2Nh
dGlvbiA9IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0LkxvY2F0aW9uKHRoaXMsIHJhd0xvY2F0aW9u
LCB1cGRhdGVEZWxlZ2F0ZSk7Ci0gICAgICAgIHRoaXMuX2xvY2F0aW9ucy5wdXNoKGxvY2F0aW9u
KTsKKyAgICAgICAgdGhpcy5fbG9jYXRpb25zW2xvY2F0aW9uLmlkKCldID0gbG9jYXRpb247CiAg
ICAgICAgIGxvY2F0aW9uLnVwZGF0ZSgpOwogICAgICAgICByZXR1cm4gbG9jYXRpb247CiAgICAg
fSwKQEAgLTMzNSw3ICszMzYsNyBAQCBXZWJJbnNwZWN0b3IuU2NyaXB0LkxvY2F0aW9uLnByb3Rv
dHlwZSA9IHsKICAgICBkaXNwb3NlOiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICBXZWJJbnNw
ZWN0b3IuTGl2ZUxvY2F0aW9uLnByb3RvdHlwZS5kaXNwb3NlLmNhbGwodGhpcyk7Ci0gICAgICAg
IHRoaXMuX3NjcmlwdC5fbG9jYXRpb25zLnJlbW92ZSh0aGlzKTsKKyAgICAgICAgZGVsZXRlIHRo
aXMuX3NjcmlwdC5fbG9jYXRpb25zW3RoaXMuaWQoKV07CiAgICAgfSwKIAogICAgIF9fcHJvdG9f
XzogV2ViSW5zcGVjdG9yLkxpdmVMb2NhdGlvbi5wcm90b3R5cGUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKaW5kZXggYjBjOGJkMzZj
YTI5ZTE0Y2UxNTE5MTIwNWE4OGZhNzY3ZjQ2ODlkZi4uNzY0Y2IzZmY0YjhlNWU5N2Y5NjExYWMx
ZTZlY2FiNjYwZDU2YjJjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9VSVNvdXJjZUNvZGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9VSVNvdXJjZUNvZGUuanMKQEAgLTUyLDkgKzUyLDkgQEAgV2ViSW5zcGVjdG9yLlVJ
U291cmNlQ29kZSA9IGZ1bmN0aW9uKHByb2plY3QsIHBhdGgsIG9yaWdpblVSTCwgdXJsLCBjb250
ZW50VHlwZSwKICAgICAgKi8KICAgICB0aGlzLl9yZXF1ZXN0Q29udGVudENhbGxiYWNrcyA9IFtd
OwogICAgIC8qKgotICAgICAqIEB0eXBlIEFycmF5LjxXZWJJbnNwZWN0b3IuTGl2ZUxvY2F0aW9u
PgorICAgICAqIEB0eXBlIHtPYmplY3QuPG51bWJlciwgV2ViSW5zcGVjdG9yLkxpdmVMb2NhdGlv
bj59CiAgICAgICovCi0gICAgdGhpcy5fbGl2ZUxvY2F0aW9ucyA9IFtdOworICAgIHRoaXMuX2xp
dmVMb2NhdGlvbnMgPSB7fTsKICAgICAvKioKICAgICAgKiBAdHlwZSB7QXJyYXkuPFdlYkluc3Bl
Y3Rvci5QcmVzZW50YXRpb25Db25zb2xlTWVzc2FnZT59CiAgICAgICovCkBAIC00OTIsNyArNDky
LDcgQEAgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAg
ICAgYWRkTGl2ZUxvY2F0aW9uOiBmdW5jdGlvbihsaXZlTG9jYXRpb24pCiAgICAgewotICAgICAg
ICB0aGlzLl9saXZlTG9jYXRpb25zLnB1c2gobGl2ZUxvY2F0aW9uKTsKKyAgICAgICAgdGhpcy5f
bGl2ZUxvY2F0aW9uc1tsaXZlTG9jYXRpb25dID0gbGl2ZUxvY2F0aW9uLmlkKCk7CiAgICAgfSwK
IAogICAgIC8qKgpAQCAtNTAwLDE0ICs1MDAsMTQgQEAgV2ViSW5zcGVjdG9yLlVJU291cmNlQ29k
ZS5wcm90b3R5cGUgPSB7CiAgICAgICovCiAgICAgcmVtb3ZlTGl2ZUxvY2F0aW9uOiBmdW5jdGlv
bihsaXZlTG9jYXRpb24pCiAgICAgewotICAgICAgICB0aGlzLl9saXZlTG9jYXRpb25zLnJlbW92
ZShsaXZlTG9jYXRpb24pOworICAgICAgICBkZWxldGUgdGhpcy5fbGl2ZUxvY2F0aW9uc1tsaXZl
TG9jYXRpb24uaWQoKV07CiAgICAgfSwKIAogICAgIHVwZGF0ZUxpdmVMb2NhdGlvbnM6IGZ1bmN0
aW9uKCkKICAgICB7Ci0gICAgICAgIHZhciBsb2NhdGlvbnNDb3B5ID0gdGhpcy5fbGl2ZUxvY2F0
aW9ucy5zbGljZSgpOwotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxvY2F0aW9uc0NvcHku
bGVuZ3RoOyArK2kpCi0gICAgICAgICAgICBsb2NhdGlvbnNDb3B5W2ldLnVwZGF0ZSgpOworICAg
ICAgICB2YXIga2V5cyA9IE9iamVjdC5rZXlzKHRoaXMuX2xpdmVMb2NhdGlvbnMpOworICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGtleXMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICB0aGlz
Ll9saXZlTG9jYXRpb25zW2tleXNbaV1dLnVwZGF0ZSgpOwogICAgIH0sCiAKICAgICAvKioKQEAg
LTcxNCw4ICs3MTQsMTEgQEAgV2ViSW5zcGVjdG9yLkxpdmVMb2NhdGlvbiA9IGZ1bmN0aW9uKHJh
d0xvY2F0aW9uLCB1cGRhdGVEZWxlZ2F0ZSkKICAgICB0aGlzLl9yYXdMb2NhdGlvbiA9IHJhd0xv
Y2F0aW9uOwogICAgIHRoaXMuX3VwZGF0ZURlbGVnYXRlID0gdXBkYXRlRGVsZWdhdGU7CiAgICAg
dGhpcy5fdWlTb3VyY2VDb2RlcyA9IFtdOworICAgIHRoaXMuX2lkID0gKytXZWJJbnNwZWN0b3Iu
TGl2ZUxvY2F0aW9uLl9uZXh0SWQ7CiB9CiAKK1dlYkluc3BlY3Rvci5MaXZlTG9jYXRpb24uX25l
eHRJZCA9IDA7CisKIFdlYkluc3BlY3Rvci5MaXZlTG9jYXRpb24ucHJvdG90eXBlID0gewogICAg
IHVwZGF0ZTogZnVuY3Rpb24oKQogICAgIHsKQEAgLTc1Myw2ICs3NTYsMTEgQEAgV2ViSW5zcGVj
dG9yLkxpdmVMb2NhdGlvbi5wcm90b3R5cGUgPSB7CiAgICAgICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgdGhpcy5fdWlTb3VyY2VDb2Rlcy5sZW5ndGg7ICsraSkKICAgICAgICAgICAgIHRoaXMuX3Vp
U291cmNlQ29kZXNbaV0ucmVtb3ZlTGl2ZUxvY2F0aW9uKHRoaXMpOwogICAgICAgICB0aGlzLl91
aVNvdXJjZUNvZGVzID0gW107CisgICAgfSwKKworICAgIGlkOiBmdW5jdGlvbigpCisgICAgewor
ICAgICAgICByZXR1cm4gdGhpcy5faWQ7CiAgICAgfQogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190006</attachid>
            <date>2013-02-25 00:06:30 -0800</date>
            <delta_ts>2013-02-25 00:36:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110696-20130225120245.patch</filename>
            <type>text/plain</type>
            <size>6841</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzODg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDIxMWFhMWEyNjNhYWNi
ZDgyNDIyODJlZDYxZjRiYWMyZjZhZWFmZC4uMTJmMGEwZDFkNjNiMjQ4ZTZhY2QzMGMzOTQ2NDg2
NDUxN2VlMzg4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAyLTI0ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBJbXByb3ZlIHNwZWVkIG9mIExpbmtpZmllci5yZXNldCBvcGVyYXRpb24uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA2OTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMaW5raWZpZXIgY2FsbHMg
TG9jYXRpb24uZGlzcG9zZSBOIHRpbWVzIGFuZCBlYWNoIGRpc3Bvc2UgbWV0aG9kIGNhbGxzIEFy
cmF5LnJlbW92ZQorICAgICAgICB3aGljaCBzY2FucyBlbnRpcmUgYXJyYXkgYW5kIGRvZXMgc3Bs
aWNlLiBTbyB0aGUgY29tcGxleGl0eSBvZiBMaW5raWZpZXIucmVzZXQKKyAgICAgICAgaXMgTyhO
XjIpLiBJIHJlcGxhY2VkIHRoZSBhcnJheXMgd2l0aCBTZXQgYW5kIGdvdCBPKE4pIGNvbXBsZXhp
dHkuCisKKyAgICAgICAgRHJpdmUgYnkgZml4OiBUaGUgaWRlbnRpZmllciBnZW5lcmF0b3Igd2Fz
IHNsaWdodGx5IGNoYW5nZWQuCisgICAgICAgIE5vdyBpdCBwcm9kdWNlcyBpZGVudGlmaWVycyB0
aGF0IGNvdWxkbid0IGJlIGNvbnZlcnRlZCBpbnRvIGEgbnVtYmVyLgorICAgICAgICBTbyB0aGUg
ZW5naW5lIHdpbGwgbmV2ZXIgY29udmVydCBTZXQvTWFwIG9iamVjdCBpbnRvIGFuIGFycmF5Lgor
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU2NyaXB0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHQucHJvdG90eXBl
LnVwZGF0ZUxvY2F0aW9ucyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0LnByb3RvdHlw
ZS5jcmVhdGVMaXZlTG9jYXRpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVUlT
b3VyY2VDb2RlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZS5hZGRMaXZlTG9jYXRpb24p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5cGUudXBkYXRlTGl2
ZUxvY2F0aW9ucyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanM6
CisKIDIwMTMtMDItMjQgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW01hY10gY2xlYW51cCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24gYW5k
IEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHQuanMKaW5kZXggMDI3Y2Y1ZDkyODNhNGViNzE1MDAyNDkzODNiZDFhZWM5
NWQxZDE3NS4uZTNiYmFkMTI3N2VhMjI3M2NiYTE4NmQ3NDVkYTNiNjI4YWNkYzcyMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKQEAgLTQ4LDcgKzQ4
LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdCA9IGZ1bmN0aW9uKHNjcmlwdElkLCBzb3VyY2VVUkws
IHN0YXJ0TGluZSwgc3RhcnRDb2x1bW4sIGVuZEwKICAgICB0aGlzLmlzQ29udGVudFNjcmlwdCA9
IGlzQ29udGVudFNjcmlwdDsKICAgICB0aGlzLnNvdXJjZU1hcFVSTCA9IHNvdXJjZU1hcFVSTDsK
ICAgICB0aGlzLmhhc1NvdXJjZVVSTCA9IGhhc1NvdXJjZVVSTDsKLSAgICB0aGlzLl9sb2NhdGlv
bnMgPSBbXTsKKyAgICB0aGlzLl9sb2NhdGlvbnMgPSBuZXcgU2V0KCk7CiAgICAgdGhpcy5fc291
cmNlTWFwcGluZ3MgPSBbXTsKIH0KIApAQCAtMjg4LDggKzI4OCw5IEBAIFdlYkluc3BlY3Rvci5T
Y3JpcHQucHJvdG90eXBlID0gewogCiAgICAgdXBkYXRlTG9jYXRpb25zOiBmdW5jdGlvbigpCiAg
ICAgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2xvY2F0aW9ucy5sZW5ndGg7
ICsraSkKLSAgICAgICAgICAgIHRoaXMuX2xvY2F0aW9uc1tpXS51cGRhdGUoKTsKKyAgICAgICAg
dmFyIGl0ZW1zID0gdGhpcy5fbG9jYXRpb25zLml0ZW1zKCk7CisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgaXRlbXMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBpdGVtc1tpXS51cGRhdGUo
KTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0zMDEsNyArMzAyLDcgQEAgV2ViSW5zcGVjdG9yLlNj
cmlwdC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydChyYXdMb2Nh
dGlvbi5zY3JpcHRJZCA9PT0gdGhpcy5zY3JpcHRJZCk7CiAgICAgICAgIHZhciBsb2NhdGlvbiA9
IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0LkxvY2F0aW9uKHRoaXMsIHJhd0xvY2F0aW9uLCB1cGRh
dGVEZWxlZ2F0ZSk7Ci0gICAgICAgIHRoaXMuX2xvY2F0aW9ucy5wdXNoKGxvY2F0aW9uKTsKKyAg
ICAgICAgdGhpcy5fbG9jYXRpb25zLnB1dChsb2NhdGlvbik7CiAgICAgICAgIGxvY2F0aW9uLnVw
ZGF0ZSgpOwogICAgICAgICByZXR1cm4gbG9jYXRpb247CiAgICAgfSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKaW5kZXggYjBjOGJk
MzZjYTI5ZTE0Y2UxNTE5MTIwNWE4OGZhNzY3ZjQ2ODlkZi4uZTcyOWQ2ZjgwYjZlZjA1YjRlYWJh
ZTczNGFhZjhjYjM2MWE2YjExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKQEAgLTUyLDkgKzUyLDkgQEAgV2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZSA9IGZ1bmN0aW9uKHByb2plY3QsIHBhdGgsIG9yaWdpblVSTCwgdXJsLCBj
b250ZW50VHlwZSwKICAgICAgKi8KICAgICB0aGlzLl9yZXF1ZXN0Q29udGVudENhbGxiYWNrcyA9
IFtdOwogICAgIC8qKgotICAgICAqIEB0eXBlIEFycmF5LjxXZWJJbnNwZWN0b3IuTGl2ZUxvY2F0
aW9uPgorICAgICAqIEB0eXBlIHtPYmplY3QuPG51bWJlciwgV2ViSW5zcGVjdG9yLkxpdmVMb2Nh
dGlvbj59CiAgICAgICovCi0gICAgdGhpcy5fbGl2ZUxvY2F0aW9ucyA9IFtdOworICAgIHRoaXMu
X2xpdmVMb2NhdGlvbnMgPSBuZXcgU2V0KCk7CiAgICAgLyoqCiAgICAgICogQHR5cGUge0FycmF5
LjxXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQ29uc29sZU1lc3NhZ2U+fQogICAgICAqLwpAQCAt
NDkyLDcgKzQ5Miw3IEBAIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlID0gewog
ICAgICAqLwogICAgIGFkZExpdmVMb2NhdGlvbjogZnVuY3Rpb24obGl2ZUxvY2F0aW9uKQogICAg
IHsKLSAgICAgICAgdGhpcy5fbGl2ZUxvY2F0aW9ucy5wdXNoKGxpdmVMb2NhdGlvbik7CisgICAg
ICAgIHRoaXMuX2xpdmVMb2NhdGlvbnMucHV0KGxpdmVMb2NhdGlvbik7CiAgICAgfSwKIAogICAg
IC8qKgpAQCAtNTA1LDkgKzUwNSw5IEBAIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90
eXBlID0gewogCiAgICAgdXBkYXRlTGl2ZUxvY2F0aW9uczogZnVuY3Rpb24oKQogICAgIHsKLSAg
ICAgICAgdmFyIGxvY2F0aW9uc0NvcHkgPSB0aGlzLl9saXZlTG9jYXRpb25zLnNsaWNlKCk7Ci0g
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbG9jYXRpb25zQ29weS5sZW5ndGg7ICsraSkKLSAg
ICAgICAgICAgIGxvY2F0aW9uc0NvcHlbaV0udXBkYXRlKCk7CisgICAgICAgIHZhciBpdGVtcyA9
IHRoaXMuX2xpdmVMb2NhdGlvbnMuaXRlbXMoKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBpdGVtcy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGl0ZW1zW2ldLnVwZGF0ZSgpOwogICAg
IH0sCiAKICAgICAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvdXRpbGl0aWVzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91
dGlsaXRpZXMuanMKaW5kZXggODkwY2EyZWVhNTkzZGU5ZDBjODkyMjE0Njg3YjQ4OWU1YjhkNjUx
Mi4uNTc2OGU2NjljNzQyNzBjYjFiODEzMDBhZjFiY2NkNTVjNDU3YmM1YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKQEAgLTcwMiw2ICs3
MDIsODUgQEAgZnVuY3Rpb24gbnVtYmVyVG9TdHJpbmdXaXRoU3BhY2VzUGFkZGluZyh2YWx1ZSwg
c3ltYm9sc0NvdW50KQogICAgIHJldHVybiBwYWRkaW5nU3RyaW5nICsgbnVtYmVyU3RyaW5nOwog
fQogCit2YXIgY3JlYXRlT2JqZWN0SWRlbnRpZmllciA9IGZ1bmN0aW9uKCkKK3sKKyAgICAvLyBJ
dCBoYXMgdG8gYmUgc3RyaW5nIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuCisgICAgcmV0dXJuICsr
Y3JlYXRlT2JqZWN0SWRlbnRpZmllci5fbGFzdCArICJBIjsKK30KKworY3JlYXRlT2JqZWN0SWRl
bnRpZmllci5fbGFzdCA9IDA7CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKi8KK3ZhciBTZXQg
PSBmdW5jdGlvbigpCit7CisgICAgdGhpcy5fc2V0ID0ge307CisgICAgdGhpcy5fc2l6ZSA9IDA7
Cit9CisKK1NldC5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHBhcmFtIHtPYmplY3R9
IGl0ZW0KKyAgICAgKi8KKyAgICBwdXQ6IGZ1bmN0aW9uKGl0ZW0pCisgICAgeworICAgICAgICB2
YXIgb2JqZWN0SWRlbnRpZmllciA9IGl0ZW0uX19pZGVudGlmaWVyOworICAgICAgICBpZiAoIW9i
amVjdElkZW50aWZpZXIpIHsKKyAgICAgICAgICAgIG9iamVjdElkZW50aWZpZXIgPSBjcmVhdGVP
YmplY3RJZGVudGlmaWVyKCk7CisgICAgICAgICAgICBpdGVtLl9faWRlbnRpZmllciA9IG9iamVj
dElkZW50aWZpZXI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCF0aGlzLl9zZXRbb2JqZWN0SWRl
bnRpZmllcl0pCisgICAgICAgICAgICArK3RoaXMuX3NpemU7CisgICAgICAgIHRoaXMuX3NldFtv
YmplY3RJZGVudGlmaWVyXSA9IGl0ZW07CisgICAgfSwKKyAgICAKKyAgICAvKioKKyAgICAgKiBA
cGFyYW0ge09iamVjdH0gaXRlbQorICAgICAqLworICAgIHJlbW92ZTogZnVuY3Rpb24oaXRlbSkK
KyAgICB7CisgICAgICAgIGlmICh0aGlzLl9zZXRbaXRlbS5fX2lkZW50aWZpZXJdKSB7CisgICAg
ICAgICAgICAtLXRoaXMuX3NpemU7CisgICAgICAgICAgICBkZWxldGUgdGhpcy5fc2V0W2l0ZW0u
X19pZGVudGlmaWVyXTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0
dXJuIHtBcnJheS48T2JqZWN0Pn0KKyAgICAgKi8KKyAgICBpdGVtczogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBBcnJheSh0aGlzLl9zaXplKTsKKyAgICAgICAg
dmFyIGkgPSAwOworICAgICAgICBmb3IgKHZhciBvYmplY3RJZGVudGlmaWVyIGluIHRoaXMuX3Nl
dCkKKyAgICAgICAgICAgIHJlc3VsdFtpKytdID0gdGhpcy5fc2V0W29iamVjdElkZW50aWZpZXJd
OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0ge09iamVjdH0gaXRlbQorICAgICAqLworICAgIGhhc0l0ZW06IGZ1bmN0aW9uKGl0ZW0pCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy5fc2V0W2l0ZW0uX19pZGVudGlmaWVyXTsKKyAgICB9
LAorCisgICAgLyoqCisgICAgICogQHJldHVybiB7bnVtYmVyfQorICAgICAqLworICAgIHNpemU6
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9zaXplOworICAgIH0sCisK
KyAgICBjbGVhcjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fc2V0ID0ge307Cisg
ICAgICAgIHRoaXMuX3NpemUgPSAwOworICAgIH0KK30KKwogLyoqCiAgKiBAY29uc3RydWN0b3IK
ICAqLwpAQCAtNzExLDggKzc5MCw2IEBAIHZhciBNYXAgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5f
c2l6ZSA9IDA7CiB9CiAKLU1hcC5fbGFzdE9iamVjdElkZW50aWZpZXIgPSAwOwotCiBNYXAucHJv
dG90eXBlID0gewogICAgIC8qKgogICAgICAqIEBwYXJhbSB7T2JqZWN0fSBrZXkKQEAgLTcyMiw3
ICs3OTksNyBAQCBNYXAucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIG9iamVjdElk
ZW50aWZpZXIgPSBrZXkuX19pZGVudGlmaWVyOwogICAgICAgICBpZiAoIW9iamVjdElkZW50aWZp
ZXIpIHsKLSAgICAgICAgICAgIG9iamVjdElkZW50aWZpZXIgPSArK01hcC5fbGFzdE9iamVjdElk
ZW50aWZpZXI7CisgICAgICAgICAgICBvYmplY3RJZGVudGlmaWVyID0gY3JlYXRlT2JqZWN0SWRl
bnRpZmllcigpOwogICAgICAgICAgICAga2V5Ll9faWRlbnRpZmllciA9IG9iamVjdElkZW50aWZp
ZXI7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCF0aGlzLl9tYXBbb2JqZWN0SWRlbnRpZmllcl0p
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190011</attachid>
            <date>2013-02-25 00:36:39 -0800</date>
            <delta_ts>2013-02-25 00:43:08 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110696-20130225123255.patch</filename>
            <type>text/plain</type>
            <size>9148</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzODg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDIxMWFhMWEyNjNhYWNi
ZDgyNDIyODJlZDYxZjRiYWMyZjZhZWFmZC4uMTJmMGEwZDFkNjNiMjQ4ZTZhY2QzMGMzOTQ2NDg2
NDUxN2VlMzg4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAyLTI0ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBJbXByb3ZlIHNwZWVkIG9mIExpbmtpZmllci5yZXNldCBvcGVyYXRpb24uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA2OTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMaW5raWZpZXIgY2FsbHMg
TG9jYXRpb24uZGlzcG9zZSBOIHRpbWVzIGFuZCBlYWNoIGRpc3Bvc2UgbWV0aG9kIGNhbGxzIEFy
cmF5LnJlbW92ZQorICAgICAgICB3aGljaCBzY2FucyBlbnRpcmUgYXJyYXkgYW5kIGRvZXMgc3Bs
aWNlLiBTbyB0aGUgY29tcGxleGl0eSBvZiBMaW5raWZpZXIucmVzZXQKKyAgICAgICAgaXMgTyhO
XjIpLiBJIHJlcGxhY2VkIHRoZSBhcnJheXMgd2l0aCBTZXQgYW5kIGdvdCBPKE4pIGNvbXBsZXhp
dHkuCisKKyAgICAgICAgRHJpdmUgYnkgZml4OiBUaGUgaWRlbnRpZmllciBnZW5lcmF0b3Igd2Fz
IHNsaWdodGx5IGNoYW5nZWQuCisgICAgICAgIE5vdyBpdCBwcm9kdWNlcyBpZGVudGlmaWVycyB0
aGF0IGNvdWxkbid0IGJlIGNvbnZlcnRlZCBpbnRvIGEgbnVtYmVyLgorICAgICAgICBTbyB0aGUg
ZW5naW5lIHdpbGwgbmV2ZXIgY29udmVydCBTZXQvTWFwIG9iamVjdCBpbnRvIGFuIGFycmF5Lgor
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU2NyaXB0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHQucHJvdG90eXBl
LnVwZGF0ZUxvY2F0aW9ucyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0LnByb3RvdHlw
ZS5jcmVhdGVMaXZlTG9jYXRpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVUlT
b3VyY2VDb2RlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZS5hZGRMaXZlTG9jYXRpb24p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5cGUudXBkYXRlTGl2
ZUxvY2F0aW9ucyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanM6
CisKIDIwMTMtMDItMjQgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW01hY10gY2xlYW51cCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24gYW5k
IEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHQuanMKaW5kZXggMDI3Y2Y1ZDkyODNhNGViNzE1MDAyNDkzODNiZDFhZWM5
NWQxZDE3NS4uZTNiYmFkMTI3N2VhMjI3M2NiYTE4NmQ3NDVkYTNiNjI4YWNkYzcyMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKQEAgLTQ4LDcgKzQ4
LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdCA9IGZ1bmN0aW9uKHNjcmlwdElkLCBzb3VyY2VVUkws
IHN0YXJ0TGluZSwgc3RhcnRDb2x1bW4sIGVuZEwKICAgICB0aGlzLmlzQ29udGVudFNjcmlwdCA9
IGlzQ29udGVudFNjcmlwdDsKICAgICB0aGlzLnNvdXJjZU1hcFVSTCA9IHNvdXJjZU1hcFVSTDsK
ICAgICB0aGlzLmhhc1NvdXJjZVVSTCA9IGhhc1NvdXJjZVVSTDsKLSAgICB0aGlzLl9sb2NhdGlv
bnMgPSBbXTsKKyAgICB0aGlzLl9sb2NhdGlvbnMgPSBuZXcgU2V0KCk7CiAgICAgdGhpcy5fc291
cmNlTWFwcGluZ3MgPSBbXTsKIH0KIApAQCAtMjg4LDggKzI4OCw5IEBAIFdlYkluc3BlY3Rvci5T
Y3JpcHQucHJvdG90eXBlID0gewogCiAgICAgdXBkYXRlTG9jYXRpb25zOiBmdW5jdGlvbigpCiAg
ICAgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2xvY2F0aW9ucy5sZW5ndGg7
ICsraSkKLSAgICAgICAgICAgIHRoaXMuX2xvY2F0aW9uc1tpXS51cGRhdGUoKTsKKyAgICAgICAg
dmFyIGl0ZW1zID0gdGhpcy5fbG9jYXRpb25zLml0ZW1zKCk7CisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgaXRlbXMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBpdGVtc1tpXS51cGRhdGUo
KTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0zMDEsNyArMzAyLDcgQEAgV2ViSW5zcGVjdG9yLlNj
cmlwdC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydChyYXdMb2Nh
dGlvbi5zY3JpcHRJZCA9PT0gdGhpcy5zY3JpcHRJZCk7CiAgICAgICAgIHZhciBsb2NhdGlvbiA9
IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0LkxvY2F0aW9uKHRoaXMsIHJhd0xvY2F0aW9uLCB1cGRh
dGVEZWxlZ2F0ZSk7Ci0gICAgICAgIHRoaXMuX2xvY2F0aW9ucy5wdXNoKGxvY2F0aW9uKTsKKyAg
ICAgICAgdGhpcy5fbG9jYXRpb25zLnB1dChsb2NhdGlvbik7CiAgICAgICAgIGxvY2F0aW9uLnVw
ZGF0ZSgpOwogICAgICAgICByZXR1cm4gbG9jYXRpb247CiAgICAgfSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKaW5kZXggYjBjOGJk
MzZjYTI5ZTE0Y2UxNTE5MTIwNWE4OGZhNzY3ZjQ2ODlkZi4uZTcyOWQ2ZjgwYjZlZjA1YjRlYWJh
ZTczNGFhZjhjYjM2MWE2YjExNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKQEAgLTUyLDkgKzUyLDkgQEAgV2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZSA9IGZ1bmN0aW9uKHByb2plY3QsIHBhdGgsIG9yaWdpblVSTCwgdXJsLCBj
b250ZW50VHlwZSwKICAgICAgKi8KICAgICB0aGlzLl9yZXF1ZXN0Q29udGVudENhbGxiYWNrcyA9
IFtdOwogICAgIC8qKgotICAgICAqIEB0eXBlIEFycmF5LjxXZWJJbnNwZWN0b3IuTGl2ZUxvY2F0
aW9uPgorICAgICAqIEB0eXBlIHtPYmplY3QuPG51bWJlciwgV2ViSW5zcGVjdG9yLkxpdmVMb2Nh
dGlvbj59CiAgICAgICovCi0gICAgdGhpcy5fbGl2ZUxvY2F0aW9ucyA9IFtdOworICAgIHRoaXMu
X2xpdmVMb2NhdGlvbnMgPSBuZXcgU2V0KCk7CiAgICAgLyoqCiAgICAgICogQHR5cGUge0FycmF5
LjxXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQ29uc29sZU1lc3NhZ2U+fQogICAgICAqLwpAQCAt
NDkyLDcgKzQ5Miw3IEBAIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlID0gewog
ICAgICAqLwogICAgIGFkZExpdmVMb2NhdGlvbjogZnVuY3Rpb24obGl2ZUxvY2F0aW9uKQogICAg
IHsKLSAgICAgICAgdGhpcy5fbGl2ZUxvY2F0aW9ucy5wdXNoKGxpdmVMb2NhdGlvbik7CisgICAg
ICAgIHRoaXMuX2xpdmVMb2NhdGlvbnMucHV0KGxpdmVMb2NhdGlvbik7CiAgICAgfSwKIAogICAg
IC8qKgpAQCAtNTA1LDkgKzUwNSw5IEBAIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90
eXBlID0gewogCiAgICAgdXBkYXRlTGl2ZUxvY2F0aW9uczogZnVuY3Rpb24oKQogICAgIHsKLSAg
ICAgICAgdmFyIGxvY2F0aW9uc0NvcHkgPSB0aGlzLl9saXZlTG9jYXRpb25zLnNsaWNlKCk7Ci0g
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbG9jYXRpb25zQ29weS5sZW5ndGg7ICsraSkKLSAg
ICAgICAgICAgIGxvY2F0aW9uc0NvcHlbaV0udXBkYXRlKCk7CisgICAgICAgIHZhciBpdGVtcyA9
IHRoaXMuX2xpdmVMb2NhdGlvbnMuaXRlbXMoKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBpdGVtcy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGl0ZW1zW2ldLnVwZGF0ZSgpOwogICAg
IH0sCiAKICAgICAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvdXRpbGl0aWVzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91
dGlsaXRpZXMuanMKaW5kZXggODkwY2EyZWVhNTkzZGU5ZDBjODkyMjE0Njg3YjQ4OWU1YjhkNjUx
Mi4uNTc2OGU2NjljNzQyNzBjYjFiODEzMDBhZjFiY2NkNTVjNDU3YmM1YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKQEAgLTcwMiw2ICs3
MDIsODUgQEAgZnVuY3Rpb24gbnVtYmVyVG9TdHJpbmdXaXRoU3BhY2VzUGFkZGluZyh2YWx1ZSwg
c3ltYm9sc0NvdW50KQogICAgIHJldHVybiBwYWRkaW5nU3RyaW5nICsgbnVtYmVyU3RyaW5nOwog
fQogCit2YXIgY3JlYXRlT2JqZWN0SWRlbnRpZmllciA9IGZ1bmN0aW9uKCkKK3sKKyAgICAvLyBJ
dCBoYXMgdG8gYmUgc3RyaW5nIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuCisgICAgcmV0dXJuICsr
Y3JlYXRlT2JqZWN0SWRlbnRpZmllci5fbGFzdCArICJBIjsKK30KKworY3JlYXRlT2JqZWN0SWRl
bnRpZmllci5fbGFzdCA9IDA7CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKi8KK3ZhciBTZXQg
PSBmdW5jdGlvbigpCit7CisgICAgdGhpcy5fc2V0ID0ge307CisgICAgdGhpcy5fc2l6ZSA9IDA7
Cit9CisKK1NldC5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHBhcmFtIHtPYmplY3R9
IGl0ZW0KKyAgICAgKi8KKyAgICBwdXQ6IGZ1bmN0aW9uKGl0ZW0pCisgICAgeworICAgICAgICB2
YXIgb2JqZWN0SWRlbnRpZmllciA9IGl0ZW0uX19pZGVudGlmaWVyOworICAgICAgICBpZiAoIW9i
amVjdElkZW50aWZpZXIpIHsKKyAgICAgICAgICAgIG9iamVjdElkZW50aWZpZXIgPSBjcmVhdGVP
YmplY3RJZGVudGlmaWVyKCk7CisgICAgICAgICAgICBpdGVtLl9faWRlbnRpZmllciA9IG9iamVj
dElkZW50aWZpZXI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCF0aGlzLl9zZXRbb2JqZWN0SWRl
bnRpZmllcl0pCisgICAgICAgICAgICArK3RoaXMuX3NpemU7CisgICAgICAgIHRoaXMuX3NldFtv
YmplY3RJZGVudGlmaWVyXSA9IGl0ZW07CisgICAgfSwKKyAgICAKKyAgICAvKioKKyAgICAgKiBA
cGFyYW0ge09iamVjdH0gaXRlbQorICAgICAqLworICAgIHJlbW92ZTogZnVuY3Rpb24oaXRlbSkK
KyAgICB7CisgICAgICAgIGlmICh0aGlzLl9zZXRbaXRlbS5fX2lkZW50aWZpZXJdKSB7CisgICAg
ICAgICAgICAtLXRoaXMuX3NpemU7CisgICAgICAgICAgICBkZWxldGUgdGhpcy5fc2V0W2l0ZW0u
X19pZGVudGlmaWVyXTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0
dXJuIHtBcnJheS48T2JqZWN0Pn0KKyAgICAgKi8KKyAgICBpdGVtczogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBBcnJheSh0aGlzLl9zaXplKTsKKyAgICAgICAg
dmFyIGkgPSAwOworICAgICAgICBmb3IgKHZhciBvYmplY3RJZGVudGlmaWVyIGluIHRoaXMuX3Nl
dCkKKyAgICAgICAgICAgIHJlc3VsdFtpKytdID0gdGhpcy5fc2V0W29iamVjdElkZW50aWZpZXJd
OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0ge09iamVjdH0gaXRlbQorICAgICAqLworICAgIGhhc0l0ZW06IGZ1bmN0aW9uKGl0ZW0pCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy5fc2V0W2l0ZW0uX19pZGVudGlmaWVyXTsKKyAgICB9
LAorCisgICAgLyoqCisgICAgICogQHJldHVybiB7bnVtYmVyfQorICAgICAqLworICAgIHNpemU6
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9zaXplOworICAgIH0sCisK
KyAgICBjbGVhcjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fc2V0ID0ge307Cisg
ICAgICAgIHRoaXMuX3NpemUgPSAwOworICAgIH0KK30KKwogLyoqCiAgKiBAY29uc3RydWN0b3IK
ICAqLwpAQCAtNzExLDggKzc5MCw2IEBAIHZhciBNYXAgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5f
c2l6ZSA9IDA7CiB9CiAKLU1hcC5fbGFzdE9iamVjdElkZW50aWZpZXIgPSAwOwotCiBNYXAucHJv
dG90eXBlID0gewogICAgIC8qKgogICAgICAqIEBwYXJhbSB7T2JqZWN0fSBrZXkKQEAgLTcyMiw3
ICs3OTksNyBAQCBNYXAucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIG9iamVjdElk
ZW50aWZpZXIgPSBrZXkuX19pZGVudGlmaWVyOwogICAgICAgICBpZiAoIW9iamVjdElkZW50aWZp
ZXIpIHsKLSAgICAgICAgICAgIG9iamVjdElkZW50aWZpZXIgPSArK01hcC5fbGFzdE9iamVjdElk
ZW50aWZpZXI7CisgICAgICAgICAgICBvYmplY3RJZGVudGlmaWVyID0gY3JlYXRlT2JqZWN0SWRl
bnRpZmllcigpOwogICAgICAgICAgICAga2V5Ll9faWRlbnRpZmllciA9IG9iamVjdElkZW50aWZp
ZXI7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCF0aGlzLl9tYXBbb2JqZWN0SWRlbnRpZmllcl0p
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggOGZiYzU3Y2YyYzhmMTMyN2U4NmIwZTRmOTI4ZWE4OGYyM2Y4NGFiNS4uY2JkOTU0
MTgyZDRmODgxMWU3MzM5N2YzZWZjN2QzZGIzNmQwMWY4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBA
CisyMDEzLTAyLTI1ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbXByb3ZlIHNwZWVkIG9mIExpbmtpZmllci5yZXNldCBv
cGVyYXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTA2OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBMaW5raWZpZXIgY2FsbHMgTG9jYXRpb24uZGlzcG9zZSBOIHRpbWVzIGFuZCBlYWNoIGRpc3Bv
c2UgbWV0aG9kIGNhbGxzIEFycmF5LnJlbW92ZQorICAgICAgICB3aGljaCBzY2FucyBlbnRpcmUg
YXJyYXkgYW5kIGRvZXMgc3BsaWNlLiBTbyB0aGUgY29tcGxleGl0eSBvZiBMaW5raWZpZXIucmVz
ZXQKKyAgICAgICAgaXMgTyhOXjIpLiBJIHJlcGxhY2VkIHRoZSBhcnJheXMgd2l0aCBTZXQgYW5k
IGdvdCBPKE4pIGNvbXBsZXhpdHkuCisKKyAgICAgICAgRHJpdmUgYnkgZml4OiBUaGUgaWRlbnRp
ZmllciBnZW5lcmF0b3Igd2FzIHNsaWdodGx5IGNoYW5nZWQuCisgICAgICAgIE5vdyBpdCBwcm9k
dWNlcyBpZGVudGlmaWVycyB0aGF0IGNvdWxkbid0IGJlIGNvbnZlcnRlZCBpbnRvIGEgbnVtYmVy
LgorICAgICAgICBTbyB0aGUgZW5naW5lIHdpbGwgbmV2ZXIgY29udmVydCBTZXQvTWFwIG9iamVj
dCBpbnRvIGFuIGFycmF5LgorCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGxzdGFj
ay1wbGFjYXJkcy1kaXNjYXJkZWQuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
bGlua2lmaWVyLmh0bWw6CisKIDIwMTMtMDItMjQgIEtpaG9uZyBLd29uICA8a2lob25nLmt3b25A
c2Ftc3VuZy5jb20+CiAKICAgICAgICAgQWRkIGFuIEFTU0VSVCB0byBkaWRDaGFuZ2VEZXZpY2VQ
cm94aW1pdHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxs
c3RhY2stcGxhY2FyZHMtZGlzY2FyZGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvY2FsbHN0YWNrLXBsYWNhcmRzLWRpc2NhcmRlZC5odG1sCmluZGV4IDM0ZjQ1YTUxZjE4
NGZmYzZiMjNhYThkMWEzNjEwOGM5MDk2ZGI4MDYuLjIwNTQ5ZmI3ZGE4MWM0NDViNzU1OTdlNGIy
Zjc2N2YxY2ZlODNmYWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9jYWxsc3RhY2stcGxhY2FyZHMtZGlzY2FyZGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2NhbGxzdGFjay1wbGFjYXJkcy1kaXNjYXJkZWQuaHRtbApAQCAtNTcs
NyArNTcsNyBAQCB2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgdmFyIGNvdW50ID0gMDsK
ICAgICAgICAgdmFyIHNjcmlwdHMgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRz
OwogICAgICAgICBmb3IgKHZhciBpZCBpbiBzY3JpcHRzKQotICAgICAgICAgICAgY291bnQgKz0g
c2NyaXB0c1tpZF0uX2xvY2F0aW9ucy5sZW5ndGg7CisgICAgICAgICAgICBjb3VudCArPSBzY3Jp
cHRzW2lkXS5fbG9jYXRpb25zLnNpemUoKTsKICAgICAgICAgcmV0dXJuIGNvdW50OwogICAgIH0K
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saW5raWZpZXIu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saW5raWZpZXIuaHRtbAppbmRl
eCAyMDRjYTRhYmVlOGExOWIwYmIzZDJkNzkzODZjMzIyYTgwYjI1MjNhLi41ZGZkYWVkZjYzYjg0
YTFiMWI2NjdmNzVkYzFjMDlkODkzNDNhNDA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvbGlua2lmaWVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2xpbmtpZmllci5odG1sCkBAIC03NSw3ICs3NSw3IEBAIGZ1bmN0aW9uIHRlc3Qo
KQogCiAgICAgZnVuY3Rpb24gbGl2ZUxvY2F0aW9uc0NvdW50KCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBzY3JpcHQuX2xvY2F0aW9ucy5sZW5ndGg7CisgICAgICAgIHJldHVybiBzY3JpcHQuX2xv
Y2F0aW9ucy5zaXplKCk7CiAgICAgfQogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>190012</attachid>
            <date>2013-02-25 00:43:16 -0800</date>
            <delta_ts>2013-02-25 01:03:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-110696-20130225123931.patch</filename>
            <type>text/plain</type>
            <size>9148</size>
            <attacher name="Ilya Tikhonovsky">loislo</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQzODg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDIxMWFhMWEyNjNhYWNi
ZDgyNDIyODJlZDYxZjRiYWMyZjZhZWFmZC4uMTJmMGEwZDFkNjNiMjQ4ZTZhY2QzMGMzOTQ2NDg2
NDUxN2VlMzg4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEzLTAyLTI0ICBJbHlh
IFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVj
dG9yOiBJbXByb3ZlIHNwZWVkIG9mIExpbmtpZmllci5yZXNldCBvcGVyYXRpb24uCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTA2OTYKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBMaW5raWZpZXIgY2FsbHMg
TG9jYXRpb24uZGlzcG9zZSBOIHRpbWVzIGFuZCBlYWNoIGRpc3Bvc2UgbWV0aG9kIGNhbGxzIEFy
cmF5LnJlbW92ZQorICAgICAgICB3aGljaCBzY2FucyBlbnRpcmUgYXJyYXkgYW5kIGRvZXMgc3Bs
aWNlLiBTbyB0aGUgY29tcGxleGl0eSBvZiBMaW5raWZpZXIucmVzZXQKKyAgICAgICAgaXMgTyhO
XjIpLiBJIHJlcGxhY2VkIHRoZSBhcnJheXMgd2l0aCBTZXQgYW5kIGdvdCBPKE4pIGNvbXBsZXhp
dHkuCisKKyAgICAgICAgRHJpdmUgYnkgZml4OiBUaGUgaWRlbnRpZmllciBnZW5lcmF0b3Igd2Fz
IHNsaWdodGx5IGNoYW5nZWQuCisgICAgICAgIE5vdyBpdCBwcm9kdWNlcyBpZGVudGlmaWVycyB0
aGF0IGNvdWxkbid0IGJlIGNvbnZlcnRlZCBpbnRvIGEgbnVtYmVyLgorICAgICAgICBTbyB0aGUg
ZW5naW5lIHdpbGwgbmV2ZXIgY29udmVydCBTZXQvTWFwIG9iamVjdCBpbnRvIGFuIGFycmF5Lgor
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanM6CisgICAgICAgIChXZWJJ
bnNwZWN0b3IuU2NyaXB0KToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5TY3JpcHQucHJvdG90eXBl
LnVwZGF0ZUxvY2F0aW9ucyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuU2NyaXB0LnByb3RvdHlw
ZS5jcmVhdGVMaXZlTG9jYXRpb24pOgorICAgICAgICAqIGluc3BlY3Rvci9mcm9udC1lbmQvVUlT
b3VyY2VDb2RlLmpzOgorICAgICAgICAoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZSk6CisgICAg
ICAgIChXZWJJbnNwZWN0b3IuVUlTb3VyY2VDb2RlLnByb3RvdHlwZS5hZGRMaXZlTG9jYXRpb24p
OgorICAgICAgICAoV2ViSW5zcGVjdG9yLlVJU291cmNlQ29kZS5wcm90b3R5cGUudXBkYXRlTGl2
ZUxvY2F0aW9ucyk6CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanM6
CisKIDIwMTMtMDItMjQgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgW01hY10gY2xlYW51cCBNZWRpYVBsYXllclByaXZhdGVBVkZvdW5kYXRpb24gYW5k
IEluYmFuZFRleHRUcmFja1ByaXZhdGVBVkYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvU2NyaXB0LmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zy
b250LWVuZC9TY3JpcHQuanMKaW5kZXggMDI3Y2Y1ZDkyODNhNGViNzE1MDAyNDkzODNiZDFhZWM5
NWQxZDE3NS4uMTY2NmUyMGQxZWIzZTMwN2Y1MDI2YzZkZGRlZTVmZjQzNjYxN2I1YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9TY3JpcHQuanMKQEAgLTQ4LDcgKzQ4
LDcgQEAgV2ViSW5zcGVjdG9yLlNjcmlwdCA9IGZ1bmN0aW9uKHNjcmlwdElkLCBzb3VyY2VVUkws
IHN0YXJ0TGluZSwgc3RhcnRDb2x1bW4sIGVuZEwKICAgICB0aGlzLmlzQ29udGVudFNjcmlwdCA9
IGlzQ29udGVudFNjcmlwdDsKICAgICB0aGlzLnNvdXJjZU1hcFVSTCA9IHNvdXJjZU1hcFVSTDsK
ICAgICB0aGlzLmhhc1NvdXJjZVVSTCA9IGhhc1NvdXJjZVVSTDsKLSAgICB0aGlzLl9sb2NhdGlv
bnMgPSBbXTsKKyAgICB0aGlzLl9sb2NhdGlvbnMgPSBuZXcgU2V0KCk7CiAgICAgdGhpcy5fc291
cmNlTWFwcGluZ3MgPSBbXTsKIH0KIApAQCAtMjg4LDggKzI4OCw5IEBAIFdlYkluc3BlY3Rvci5T
Y3JpcHQucHJvdG90eXBlID0gewogCiAgICAgdXBkYXRlTG9jYXRpb25zOiBmdW5jdGlvbigpCiAg
ICAgewotICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IHRoaXMuX2xvY2F0aW9ucy5sZW5ndGg7
ICsraSkKLSAgICAgICAgICAgIHRoaXMuX2xvY2F0aW9uc1tpXS51cGRhdGUoKTsKKyAgICAgICAg
dmFyIGl0ZW1zID0gdGhpcy5fbG9jYXRpb25zLml0ZW1zKCk7CisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgaXRlbXMubGVuZ3RoOyArK2kpCisgICAgICAgICAgICBpdGVtc1tpXS51cGRhdGUo
KTsKICAgICB9LAogCiAgICAgLyoqCkBAIC0zMDEsNyArMzAyLDcgQEAgV2ViSW5zcGVjdG9yLlNj
cmlwdC5wcm90b3R5cGUgPSB7CiAgICAgewogICAgICAgICBjb25zb2xlLmFzc2VydChyYXdMb2Nh
dGlvbi5zY3JpcHRJZCA9PT0gdGhpcy5zY3JpcHRJZCk7CiAgICAgICAgIHZhciBsb2NhdGlvbiA9
IG5ldyBXZWJJbnNwZWN0b3IuU2NyaXB0LkxvY2F0aW9uKHRoaXMsIHJhd0xvY2F0aW9uLCB1cGRh
dGVEZWxlZ2F0ZSk7Ci0gICAgICAgIHRoaXMuX2xvY2F0aW9ucy5wdXNoKGxvY2F0aW9uKTsKKyAg
ICAgICAgdGhpcy5fbG9jYXRpb25zLmFkZChsb2NhdGlvbik7CiAgICAgICAgIGxvY2F0aW9uLnVw
ZGF0ZSgpOwogICAgICAgICByZXR1cm4gbG9jYXRpb247CiAgICAgfSwKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvVUlTb3VyY2VDb2RlLmpzIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKaW5kZXggYjBjOGJk
MzZjYTI5ZTE0Y2UxNTE5MTIwNWE4OGZhNzY3ZjQ2ODlkZi4uOGUwMDI4YmQ0ODA4NjA5ODdmNmJl
NDMyMWJhZTg4MTJlODZlY2FkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9VSVNvdXJjZUNvZGUuanMKQEAgLTUyLDkgKzUyLDkgQEAgV2ViSW5zcGVjdG9y
LlVJU291cmNlQ29kZSA9IGZ1bmN0aW9uKHByb2plY3QsIHBhdGgsIG9yaWdpblVSTCwgdXJsLCBj
b250ZW50VHlwZSwKICAgICAgKi8KICAgICB0aGlzLl9yZXF1ZXN0Q29udGVudENhbGxiYWNrcyA9
IFtdOwogICAgIC8qKgotICAgICAqIEB0eXBlIEFycmF5LjxXZWJJbnNwZWN0b3IuTGl2ZUxvY2F0
aW9uPgorICAgICAqIEB0eXBlIHtPYmplY3QuPG51bWJlciwgV2ViSW5zcGVjdG9yLkxpdmVMb2Nh
dGlvbj59CiAgICAgICovCi0gICAgdGhpcy5fbGl2ZUxvY2F0aW9ucyA9IFtdOworICAgIHRoaXMu
X2xpdmVMb2NhdGlvbnMgPSBuZXcgU2V0KCk7CiAgICAgLyoqCiAgICAgICogQHR5cGUge0FycmF5
LjxXZWJJbnNwZWN0b3IuUHJlc2VudGF0aW9uQ29uc29sZU1lc3NhZ2U+fQogICAgICAqLwpAQCAt
NDkyLDcgKzQ5Miw3IEBAIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90eXBlID0gewog
ICAgICAqLwogICAgIGFkZExpdmVMb2NhdGlvbjogZnVuY3Rpb24obGl2ZUxvY2F0aW9uKQogICAg
IHsKLSAgICAgICAgdGhpcy5fbGl2ZUxvY2F0aW9ucy5wdXNoKGxpdmVMb2NhdGlvbik7CisgICAg
ICAgIHRoaXMuX2xpdmVMb2NhdGlvbnMuYWRkKGxpdmVMb2NhdGlvbik7CiAgICAgfSwKIAogICAg
IC8qKgpAQCAtNTA1LDkgKzUwNSw5IEBAIFdlYkluc3BlY3Rvci5VSVNvdXJjZUNvZGUucHJvdG90
eXBlID0gewogCiAgICAgdXBkYXRlTGl2ZUxvY2F0aW9uczogZnVuY3Rpb24oKQogICAgIHsKLSAg
ICAgICAgdmFyIGxvY2F0aW9uc0NvcHkgPSB0aGlzLl9saXZlTG9jYXRpb25zLnNsaWNlKCk7Ci0g
ICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgbG9jYXRpb25zQ29weS5sZW5ndGg7ICsraSkKLSAg
ICAgICAgICAgIGxvY2F0aW9uc0NvcHlbaV0udXBkYXRlKCk7CisgICAgICAgIHZhciBpdGVtcyA9
IHRoaXMuX2xpdmVMb2NhdGlvbnMuaXRlbXMoKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBpdGVtcy5sZW5ndGg7ICsraSkKKyAgICAgICAgICAgIGl0ZW1zW2ldLnVwZGF0ZSgpOwogICAg
IH0sCiAKICAgICAvKioKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvdXRpbGl0aWVzLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91
dGlsaXRpZXMuanMKaW5kZXggODkwY2EyZWVhNTkzZGU5ZDBjODkyMjE0Njg3YjQ4OWU1YjhkNjUx
Mi4uYjJmMzk5OWEyM2UwMGM0YWZhZDEyYzAyMmFhYWEyMzhkY2I3OTk0ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC91dGlsaXRpZXMuanMKQEAgLTcwMiw2ICs3
MDIsODUgQEAgZnVuY3Rpb24gbnVtYmVyVG9TdHJpbmdXaXRoU3BhY2VzUGFkZGluZyh2YWx1ZSwg
c3ltYm9sc0NvdW50KQogICAgIHJldHVybiBwYWRkaW5nU3RyaW5nICsgbnVtYmVyU3RyaW5nOwog
fQogCit2YXIgY3JlYXRlT2JqZWN0SWRlbnRpZmllciA9IGZ1bmN0aW9uKCkKK3sKKyAgICAvLyBJ
dCBoYXMgdG8gYmUgc3RyaW5nIGZvciBiZXR0ZXIgcGVyZm9ybWFuY2UuCisgICAgcmV0dXJuICdf
JyArICsrY3JlYXRlT2JqZWN0SWRlbnRpZmllci5fbGFzdDsKK30KKworY3JlYXRlT2JqZWN0SWRl
bnRpZmllci5fbGFzdCA9IDA7CisKKy8qKgorICogQGNvbnN0cnVjdG9yCisgKi8KK3ZhciBTZXQg
PSBmdW5jdGlvbigpCit7CisgICAgdGhpcy5fc2V0ID0ge307CisgICAgdGhpcy5fc2l6ZSA9IDA7
Cit9CisKK1NldC5wcm90b3R5cGUgPSB7CisgICAgLyoqCisgICAgICogQHBhcmFtIHtPYmplY3R9
IGl0ZW0KKyAgICAgKi8KKyAgICBhZGQ6IGZ1bmN0aW9uKGl0ZW0pCisgICAgeworICAgICAgICB2
YXIgb2JqZWN0SWRlbnRpZmllciA9IGl0ZW0uX19pZGVudGlmaWVyOworICAgICAgICBpZiAoIW9i
amVjdElkZW50aWZpZXIpIHsKKyAgICAgICAgICAgIG9iamVjdElkZW50aWZpZXIgPSBjcmVhdGVP
YmplY3RJZGVudGlmaWVyKCk7CisgICAgICAgICAgICBpdGVtLl9faWRlbnRpZmllciA9IG9iamVj
dElkZW50aWZpZXI7CisgICAgICAgIH0KKyAgICAgICAgaWYgKCF0aGlzLl9zZXRbb2JqZWN0SWRl
bnRpZmllcl0pCisgICAgICAgICAgICArK3RoaXMuX3NpemU7CisgICAgICAgIHRoaXMuX3NldFtv
YmplY3RJZGVudGlmaWVyXSA9IGl0ZW07CisgICAgfSwKKyAgICAKKyAgICAvKioKKyAgICAgKiBA
cGFyYW0ge09iamVjdH0gaXRlbQorICAgICAqLworICAgIHJlbW92ZTogZnVuY3Rpb24oaXRlbSkK
KyAgICB7CisgICAgICAgIGlmICh0aGlzLl9zZXRbaXRlbS5fX2lkZW50aWZpZXJdKSB7CisgICAg
ICAgICAgICAtLXRoaXMuX3NpemU7CisgICAgICAgICAgICBkZWxldGUgdGhpcy5fc2V0W2l0ZW0u
X19pZGVudGlmaWVyXTsKKyAgICAgICAgfQorICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcmV0
dXJuIHtBcnJheS48T2JqZWN0Pn0KKyAgICAgKi8KKyAgICBpdGVtczogZnVuY3Rpb24oKQorICAg
IHsKKyAgICAgICAgdmFyIHJlc3VsdCA9IG5ldyBBcnJheSh0aGlzLl9zaXplKTsKKyAgICAgICAg
dmFyIGkgPSAwOworICAgICAgICBmb3IgKHZhciBvYmplY3RJZGVudGlmaWVyIGluIHRoaXMuX3Nl
dCkKKyAgICAgICAgICAgIHJlc3VsdFtpKytdID0gdGhpcy5fc2V0W29iamVjdElkZW50aWZpZXJd
OworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFy
YW0ge09iamVjdH0gaXRlbQorICAgICAqLworICAgIGhhc0l0ZW06IGZ1bmN0aW9uKGl0ZW0pCisg
ICAgeworICAgICAgICByZXR1cm4gdGhpcy5fc2V0W2l0ZW0uX19pZGVudGlmaWVyXTsKKyAgICB9
LAorCisgICAgLyoqCisgICAgICogQHJldHVybiB7bnVtYmVyfQorICAgICAqLworICAgIHNpemU6
IGZ1bmN0aW9uKCkKKyAgICB7CisgICAgICAgIHJldHVybiB0aGlzLl9zaXplOworICAgIH0sCisK
KyAgICBjbGVhcjogZnVuY3Rpb24oKQorICAgIHsKKyAgICAgICAgdGhpcy5fc2V0ID0ge307Cisg
ICAgICAgIHRoaXMuX3NpemUgPSAwOworICAgIH0KK30KKwogLyoqCiAgKiBAY29uc3RydWN0b3IK
ICAqLwpAQCAtNzExLDggKzc5MCw2IEBAIHZhciBNYXAgPSBmdW5jdGlvbigpCiAgICAgdGhpcy5f
c2l6ZSA9IDA7CiB9CiAKLU1hcC5fbGFzdE9iamVjdElkZW50aWZpZXIgPSAwOwotCiBNYXAucHJv
dG90eXBlID0gewogICAgIC8qKgogICAgICAqIEBwYXJhbSB7T2JqZWN0fSBrZXkKQEAgLTcyMiw3
ICs3OTksNyBAQCBNYXAucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgdmFyIG9iamVjdElk
ZW50aWZpZXIgPSBrZXkuX19pZGVudGlmaWVyOwogICAgICAgICBpZiAoIW9iamVjdElkZW50aWZp
ZXIpIHsKLSAgICAgICAgICAgIG9iamVjdElkZW50aWZpZXIgPSArK01hcC5fbGFzdE9iamVjdElk
ZW50aWZpZXI7CisgICAgICAgICAgICBvYmplY3RJZGVudGlmaWVyID0gY3JlYXRlT2JqZWN0SWRl
bnRpZmllcigpOwogICAgICAgICAgICAga2V5Ll9faWRlbnRpZmllciA9IG9iamVjdElkZW50aWZp
ZXI7CiAgICAgICAgIH0KICAgICAgICAgaWYgKCF0aGlzLl9tYXBbb2JqZWN0SWRlbnRpZmllcl0p
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggOGZiYzU3Y2YyYzhmMTMyN2U4NmIwZTRmOTI4ZWE4OGYyM2Y4NGFiNS4uY2JkOTU0
MTgyZDRmODgxMWU3MzM5N2YzZWZjN2QzZGIzNmQwMWY4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBA
CisyMDEzLTAyLTI1ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBJbXByb3ZlIHNwZWVkIG9mIExpbmtpZmllci5yZXNldCBv
cGVyYXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMTA2OTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBMaW5raWZpZXIgY2FsbHMgTG9jYXRpb24uZGlzcG9zZSBOIHRpbWVzIGFuZCBlYWNoIGRpc3Bv
c2UgbWV0aG9kIGNhbGxzIEFycmF5LnJlbW92ZQorICAgICAgICB3aGljaCBzY2FucyBlbnRpcmUg
YXJyYXkgYW5kIGRvZXMgc3BsaWNlLiBTbyB0aGUgY29tcGxleGl0eSBvZiBMaW5raWZpZXIucmVz
ZXQKKyAgICAgICAgaXMgTyhOXjIpLiBJIHJlcGxhY2VkIHRoZSBhcnJheXMgd2l0aCBTZXQgYW5k
IGdvdCBPKE4pIGNvbXBsZXhpdHkuCisKKyAgICAgICAgRHJpdmUgYnkgZml4OiBUaGUgaWRlbnRp
ZmllciBnZW5lcmF0b3Igd2FzIHNsaWdodGx5IGNoYW5nZWQuCisgICAgICAgIE5vdyBpdCBwcm9k
dWNlcyBpZGVudGlmaWVycyB0aGF0IGNvdWxkbid0IGJlIGNvbnZlcnRlZCBpbnRvIGEgbnVtYmVy
LgorICAgICAgICBTbyB0aGUgZW5naW5lIHdpbGwgbmV2ZXIgY29udmVydCBTZXQvTWFwIG9iamVj
dCBpbnRvIGFuIGFycmF5LgorCisgICAgICAgICogaW5zcGVjdG9yL2RlYnVnZ2VyL2NhbGxzdGFj
ay1wbGFjYXJkcy1kaXNjYXJkZWQuaHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvZGVidWdnZXIv
bGlua2lmaWVyLmh0bWw6CisKIDIwMTMtMDItMjQgIEtpaG9uZyBLd29uICA8a2lob25nLmt3b25A
c2Ftc3VuZy5jb20+CiAKICAgICAgICAgQWRkIGFuIEFTU0VSVCB0byBkaWRDaGFuZ2VEZXZpY2VQ
cm94aW1pdHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9jYWxs
c3RhY2stcGxhY2FyZHMtZGlzY2FyZGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZGVi
dWdnZXIvY2FsbHN0YWNrLXBsYWNhcmRzLWRpc2NhcmRlZC5odG1sCmluZGV4IDM0ZjQ1YTUxZjE4
NGZmYzZiMjNhYThkMWEzNjEwOGM5MDk2ZGI4MDYuLjIwNTQ5ZmI3ZGE4MWM0NDViNzU1OTdlNGIy
Zjc2N2YxY2ZlODNmYWEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dl
ci9jYWxsc3RhY2stcGxhY2FyZHMtZGlzY2FyZGVkLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5z
cGVjdG9yL2RlYnVnZ2VyL2NhbGxzdGFjay1wbGFjYXJkcy1kaXNjYXJkZWQuaHRtbApAQCAtNTcs
NyArNTcsNyBAQCB2YXIgdGVzdCA9IGZ1bmN0aW9uKCkKICAgICAgICAgdmFyIGNvdW50ID0gMDsK
ICAgICAgICAgdmFyIHNjcmlwdHMgPSBXZWJJbnNwZWN0b3IuZGVidWdnZXJNb2RlbC5zY3JpcHRz
OwogICAgICAgICBmb3IgKHZhciBpZCBpbiBzY3JpcHRzKQotICAgICAgICAgICAgY291bnQgKz0g
c2NyaXB0c1tpZF0uX2xvY2F0aW9ucy5sZW5ndGg7CisgICAgICAgICAgICBjb3VudCArPSBzY3Jp
cHRzW2lkXS5fbG9jYXRpb25zLnNpemUoKTsKICAgICAgICAgcmV0dXJuIGNvdW50OwogICAgIH0K
IH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saW5raWZpZXIu
aHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9kZWJ1Z2dlci9saW5raWZpZXIuaHRtbAppbmRl
eCAyMDRjYTRhYmVlOGExOWIwYmIzZDJkNzkzODZjMzIyYTgwYjI1MjNhLi41ZGZkYWVkZjYzYjg0
YTFiMWI2NjdmNzVkYzFjMDlkODkzNDNhNDA0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZGVidWdnZXIvbGlua2lmaWVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2RlYnVnZ2VyL2xpbmtpZmllci5odG1sCkBAIC03NSw3ICs3NSw3IEBAIGZ1bmN0aW9uIHRlc3Qo
KQogCiAgICAgZnVuY3Rpb24gbGl2ZUxvY2F0aW9uc0NvdW50KCkKICAgICB7Ci0gICAgICAgIHJl
dHVybiBzY3JpcHQuX2xvY2F0aW9ucy5sZW5ndGg7CisgICAgICAgIHJldHVybiBzY3JpcHQuX2xv
Y2F0aW9ucy5zaXplKCk7CiAgICAgfQogfQogCg==
</data>
<flag name="review"
          id="210594"
          type_id="1"
          status="+"
          setter="yurys"
    />
          </attachment>
      

    </bug>

</bugzilla>