<?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>67840</bug_id>
          
          <creation_ts>2011-09-09 04:13:36 -0700</creation_ts>
          <short_desc>Web Inspector: [Extensions API] support extensions for remote inspector front-end</short_desc>
          <delta_ts>2011-09-16 08:51:39 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector (Deprecated)</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andrey Kosyakov">caseq</reporter>
          <assigned_to name="Andrey Kosyakov">caseq</assigned_to>
          <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>464726</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-09-09 04:13:36 -0700</bug_when>
    <thetext>This exposed a DOM-messaging based interface for a content script to request an extension to be added to the inspector front-end and receive extension API code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464727</commentid>
    <comment_count>1</comment_count>
      <attachid>106860</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-09-09 04:16:11 -0700</bug_when>
    <thetext>Created attachment 106860
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>464823</commentid>
    <comment_count>2</comment_count>
      <attachid>106860</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-09 09:16:20 -0700</bug_when>
    <thetext>Comment on attachment 106860
patch

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

New failing tests:
http/tests/inspector/console-resource-errors.html
http/tests/inspector/console-xhr-logging.html
http/tests/inspector/network/network-cachedresources-with-same-urls.html
http/tests/inspector/console-cd.html
http/tests/inspector/network/network-disable-cache-memory.html
http/tests/inspector/resource-har-headers.html
http/tests/inspector/network/network-disable-cache-xhrs.html
http/tests/inspector/network/download.html
http/tests/inspector-enabled/console-clear-arguments-on-frame-remove.html
http/tests/inspector/inspect-iframe-from-different-domain.html
http/tests/inspector-enabled/console-log-before-frame-navigation.html
http/tests/inspector/network-preflight-options.html
http/tests/inspector/network/network-content-replacement-xhr.html
http/tests/inspector/console-cd-completions.html
http/tests/inspector-enabled/dom-storage-open.html
http/tests/inspector/resource-har-conversion.html
http/tests/inspector/network/network-initiator-from-console.html
http/tests/inspector/resource-parameters.html
http/tests/inspector-enabled/database-open.html
http/tests/inspector/change-iframe-src.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>466994</commentid>
    <comment_count>3</comment_count>
      <attachid>106860</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-09-14 06:46:46 -0700</bug_when>
    <thetext>Comment on attachment 106860
patch

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

&gt; Source/WebCore/inspector/front-end/ExtensionServer.js:224
&gt; +            iframe.addEventListener(&quot;load&quot;, this._postExtensionAPI.bind(this), false);

This effectively declares that remote and non-remote extensions should be implemented differently. As is, it will result in more confusion than benefit.

&gt; Source/WebCore/inspector/front-end/ExtensionServer.js:536
&gt; +    _addExtension: function(startPage, onload)

I&apos;d expose this method so that it could be called from the bookmarklet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468402</commentid>
    <comment_count>4</comment_count>
      <attachid>107628</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-09-16 02:29:35 -0700</bug_when>
    <thetext>Created attachment 107628
patch

- do not expose messaging interface, rather expose an interface to scripts being injected to our context
- expose devtools-extension-api.js as a separate file for chromium builds, so it is accessible for remote extensions via HTTP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468403</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-16 02:32:32 -0700</bug_when>
    <thetext>Attachment 107628 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit/chromium/scripts/generate_devtools_extension_api.py:34:  expected 2 blank lines, found 1  [pep8/E302] [5]
Source/WebKit/chromium/scripts/generate_devtools_extension_api.py:37:  multiple statements on one line (semicolon)  [pep8/E702] [5]
Source/WebKit/chromium/scripts/generate_devtools_extension_api.py:45:  trailing whitespace  [pep8/W291] [5]
Source/WebKit/chromium/scripts/generate_devtools_extension_api.py:55:  multiple statements on one line (semicolon)  [pep8/E702] [5]
Source/WebKit/chromium/scripts/generate_devtools_extension_api.py:57:  expected 2 blank lines, found 1  [pep8/E302] [5]
Source/WebKit/chromium/scripts/generate_devtools_extension_api.py:66:  multiple statements on one line (semicolon)  [pep8/E702] [5]
Total errors found: 6 in 7 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468404</commentid>
    <comment_count>6</comment_count>
      <attachid>107628</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-09-16 02:47:12 -0700</bug_when>
    <thetext>Comment on attachment 107628
patch

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

&gt; Source/WebCore/WebCore.gypi:6464
&gt; +            &apos;inspector/front-end/ExtensionAPI.js&apos;,

Can we glue these together? They seem to be related.

&gt; Source/WebKit/chromium/scripts/generate_devtools_extension_api.py:34
&gt; +def write_devtools_extension_api(output, input_names):

I don&apos;t think you should diverge static API generation from dynamic API generation.

&gt; Source/WebKit/chromium/scripts/generate_devtools_extension_api.py:60
&gt; +        print(&apos;usage: %s output_js inpit_files_list ...&apos; % argv[0])

input</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468510</commentid>
    <comment_count>7</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-09-16 08:51:00 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 107628 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=107628&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/WebCore.gypi:6464
&gt; &gt; +            &apos;inspector/front-end/ExtensionAPI.js&apos;,
&gt; 
&gt; Can we glue these together? They seem to be related.

done!

&gt; 
&gt; &gt; Source/WebKit/chromium/scripts/generate_devtools_extension_api.py:34
&gt; &gt; +def write_devtools_extension_api(output, input_names):
&gt; 
&gt; I don&apos;t think you should diverge static API generation from dynamic API generation.

there are some inherent differences in the way we need the API for local and remote cases: in local case, we need script text to submit to back-end, in remote case we need the script that produces the API upon inclusion into the extension page; the identifier for the client is also passed/computed differently. So we won&apos;t be able to make this entirely uniform, though I&apos;ve done a bit to minimize the difference. There&apos;s still some overlap between DevTools.js and generate_devtools_extension_api.py, but given this is a few lines, I&apos;d rather keep it so, to avoid creating another file to reuse it.

&gt; &gt; Source/WebKit/chromium/scripts/generate_devtools_extension_api.py:60
&gt; &gt; +        print(&apos;usage: %s output_js inpit_files_list ...&apos; % argv[0])
&gt; 
&gt; input

fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>468512</commentid>
    <comment_count>8</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-09-16 08:51:39 -0700</bug_when>
    <thetext>Manually committed r95289: http://trac.webkit.org/changeset/95289</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106860</attachid>
            <date>2011-09-09 04:16:11 -0700</date>
            <delta_ts>2011-09-16 02:29:35 -0700</delta_ts>
            <desc>patch</desc>
            <filename>remote-extensions-api.diff</filename>
            <type>text/plain</type>
            <size>9154</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAwNTA4NTk5Li4yNGJhNmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTEtMDktMDkgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBbRXh0ZW5zaW9ucyBBUEldIHN1cHBvcnQgZXh0ZW5zaW9u
cyBmb3IgcmVtb3RlIGluc3BlY3RvciBmcm9udC1lbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNl
cnZlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBl
LmNyZWF0ZUNsaWVudElmcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2Vy
dmVyLnByb3RvdHlwZS5fYWRkRXh0ZW5zaW9ucyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0
ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fYWRkRXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9idWlsZEV4dGVuc2lvbkFQSVNjcmlwdCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fb25XaW5k
b3dNZXNzYWdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90
eXBlLl9yZWdpc3RlckV4dGVuc2lvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9u
U2VydmVyLnByb3RvdHlwZS5faGFuZGxlQWRkRXh0ZW5zaW9uUmVxdWVzdCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fcG9zdEV4dGVuc2lvbkFQSSk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuaXNSZW1vdGUpOgorCiAyMDExLTA5LTA3ICBBbmRyZXkgS29zeWFrb3YgIDxj
YXNlcUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgV2ViIEluc3BlY3RvcjogdHJ5aW5nIHRvIHNj
cm9sbCBtb3VzZSB3aGVlbCB3aGVuIGluIFRleHRWaWV3ZXIncyBndXR0ZXIgcGFuZSBjYXVzZXMg
RXZlbnRFeGNlcHRpb246OkRJU1BBVENIX1JFUVVFU1RfRVJSCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCmluZGV4IGIxNzYz
MzguLmM5MDdmMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1l
bmQvRXh0ZW5zaW9uU2VydmVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9u
dC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCkBAIC0yMjAsNiArMjIwLDggQEAgV2ViSW5zcGVjdG9y
LkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUgPSB7CiAgICAgICAgIHZhciBpZnJhbWUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKICAgICAgICAgaWZyYW1lLnNyYyA9IHVybDsK
ICAgICAgICAgaWZyYW1lLmFkZFN0eWxlQ2xhc3MoImV4dGVuc2lvbiIpOworICAgICAgICBpZiAo
V2ViSW5zcGVjdG9yLmlzUmVtb3RlKCkpCisgICAgICAgICAgICBpZnJhbWUuYWRkRXZlbnRMaXN0
ZW5lcigibG9hZCIsIHRoaXMuX3Bvc3RFeHRlbnNpb25BUEkuYmluZCh0aGlzKSwgZmFsc2UpOwog
ICAgICAgICBwYXJlbnQuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKICAgICAgICAgcmV0dXJuIGlmcmFt
ZTsKICAgICB9LApAQCAtNTI1LDMyICs1MjcsMzcgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNl
cnZlci5wcm90b3R5cGUgPSB7CiAKICAgICBfYWRkRXh0ZW5zaW9uczogZnVuY3Rpb24oZXh0ZW5z
aW9ucykKICAgICB7CisgICAgICAgIC8vIFNlZSBFeHRlbnNpb25BUEkuanMgYW5kIEV4dGVuc2lv
bkNvbW1vbi5qcyBmb3IgZGV0YWlscy4KKyAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnNl
dEV4dGVuc2lvbkFQSSh0aGlzLl9idWlsZEV4dGVuc2lvbkFQSVNjcmlwdCgpKTsKKyAgICAgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBleHRlbnNpb25zLmxlbmd0aDsgKytpKQorICAgICAgICAgICAg
dGhpcy5fYWRkRXh0ZW5zaW9uKGV4dGVuc2lvbnNbaV0uc3RhcnRQYWdlKTsKKyAgICB9LAorCisg
ICAgX2FkZEV4dGVuc2lvbjogZnVuY3Rpb24oc3RhcnRQYWdlLCBvbmxvYWQpCisgICAgewogICAg
ICAgICBjb25zdCB1cmxPcmlnaW5SZWdFeHAgPSBuZXcgUmVnRXhwKCIoW146XSs6XC9cL1teL10q
KVwvIik7IC8vIENhbid0IHVzZSByZWdleHAgbGl0ZXJhbCBoZXJlLCBNaW5KUyBjaG9rZXMgb24g
aXQuCiAKLSAgICAgICAgLy8gU2VlIEV4dGVuc2lvbkFQSS5qcyBhbmQgRXh0ZW5zaW9uQ29tbW9u
LmpzIGZvciBkZXRhaWxzLgotICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3Quc2V0RXh0ZW5z
aW9uQVBJKHRoaXMuX2J1aWxkRXh0ZW5zaW9uQVBJSW5qZWN0ZWRTY3JpcHQoKSk7Ci0gICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgZXh0ZW5zaW9ucy5sZW5ndGg7ICsraSkgewotICAgICAgICAg
ICAgdmFyIGV4dGVuc2lvbiA9IGV4dGVuc2lvbnNbaV07Ci0gICAgICAgICAgICB0cnkgewotICAg
ICAgICAgICAgICAgIGlmICghZXh0ZW5zaW9uLnN0YXJ0UGFnZSkKLSAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICAgICAgICAgIHZhciBvcmlnaW5NYXRjaCA9IHVybE9yaWdpblJl
Z0V4cC5leGVjKGV4dGVuc2lvbi5zdGFydFBhZ2UpOwotICAgICAgICAgICAgICAgIGlmICghb3Jp
Z2luTWF0Y2gpIHsKLSAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigiU2tpcHBpbmcg
ZXh0ZW5zaW9uIHdpdGggaW52YWxpZCBVUkw6ICIgKyBleHRlbnNpb24uc3RhcnRQYWdlKTsKLSAg
ICAgICAgICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAg
ICAgICAgIHRoaXMuX2FsbG93ZWRPcmlnaW5zW29yaWdpbk1hdGNoWzFdXSA9IHRydWU7Ci0gICAg
ICAgICAgICAgICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIp
OwotICAgICAgICAgICAgICAgIGlmcmFtZS5zcmMgPSBleHRlbnNpb24uc3RhcnRQYWdlOwotICAg
ICAgICAgICAgICAgIGlmcmFtZS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwotICAgICAgICAgICAg
ICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKLSAgICAgICAgICAgIH0gY2F0
Y2ggKGUpIHsKLSAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gaW5pdGlh
bGl6ZSBleHRlbnNpb24gIiArIGV4dGVuc2lvbi5zdGFydFBhZ2UgKyAiOiIgKyBlKTsKKyAgICAg
ICAgdHJ5IHsKKyAgICAgICAgICAgIHZhciBvcmlnaW5NYXRjaCA9IHVybE9yaWdpblJlZ0V4cC5l
eGVjKHN0YXJ0UGFnZSk7CisgICAgICAgICAgICBpZiAoIW9yaWdpbk1hdGNoKSB7CisgICAgICAg
ICAgICAgICAgY29uc29sZS5lcnJvcigiU2tpcHBpbmcgZXh0ZW5zaW9uIHdpdGggaW52YWxpZCBV
Ukw6ICIgKyBzdGFydFBhZ2UpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMuX2FsbG93ZWRPcmlnaW5zW29yaWdpbk1hdGNoWzFd
XSA9IHRydWU7CisgICAgICAgICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVu
dCgiaWZyYW1lIik7CisgICAgICAgICAgICBpZnJhbWUuc3JjID0gc3RhcnRQYWdlOworICAgICAg
ICAgICAgaWZyYW1lLnN0eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAgICAgICAgICBpZiAob25s
b2FkKQorICAgICAgICAgICAgICAgIGlmcmFtZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgb25s
b2FkLCBmYWxzZSk7CisgICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFt
ZSk7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIkZh
aWxlZCB0byBpbml0aWFsaXplIGV4dGVuc2lvbiAiICsgc3RhcnRQYWdlICsgIjoiICsgZSk7Cisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfSwKIAotICAgIF9idWlsZEV4dGVuc2lvbkFQSUluamVjdGVkU2NyaXB0OiBmdW5jdGlv
bigpCisgICAgX2J1aWxkRXh0ZW5zaW9uQVBJU2NyaXB0OiBmdW5jdGlvbigpCiAgICAgewogICAg
ICAgICB2YXIgcmVzb3VyY2VUeXBlcyA9IHt9OwogICAgICAgICB2YXIgcmVzb3VyY2VUeXBlUHJv
cGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKFdlYkluc3BlY3Rvci5SZXNvdXJj
ZS5UeXBlKTsKQEAgLTU3MSwxOSArNTc4LDUyIEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2
ZXIucHJvdG90eXBlID0gewogCiAgICAgX29uV2luZG93TWVzc2FnZTogZnVuY3Rpb24oZXZlbnQp
CiAgICAgewotICAgICAgICBpZiAoZXZlbnQuZGF0YSAhPT0gInJlZ2lzdGVyRXh0ZW5zaW9uIikK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgaWYgKCF0aGlzLl9hbGxvd2VkT3JpZ2lucy5o
YXNPd25Qcm9wZXJ0eShldmVudC5vcmlnaW4pKSB7Ci0gICAgICAgICAgICBpZiAoZXZlbnQub3Jp
Z2luICE9PSBsb2NhdGlvbi5vcmlnaW4pIC8vIEp1c3QgaWdub3JlIGluc3BlY3RvciBmcmFtZXMu
Ci0gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigiSWdub3JpbmcgdW5hdXRob3JpemVkIGNs
aWVudCByZXF1ZXN0IGZyb20gIiArIGV2ZW50Lm9yaWdpbik7CisgICAgICAgIGlmIChldmVudC5k
YXRhID09PSAicmVnaXN0ZXJFeHRlbnNpb24iKQorICAgICAgICAgICAgdGhpcy5fcmVnaXN0ZXJF
eHRlbnNpb24oZXZlbnQub3JpZ2luLCBldmVudC5wb3J0c1swXSk7CisgICAgICAgIGVsc2UgaWYg
KHR5cGVvZiBldmVudC5kYXRhID09PSAib2JqZWN0IiAmJiBldmVudC5kYXRhLmNvbW1hbmQgPT09
ICJhZGRFeHRlbnNpb24iKQorICAgICAgICAgICAgdGhpcy5faGFuZGxlQWRkRXh0ZW5zaW9uUmVx
dWVzdChldmVudC5vcmlnaW4sIGV2ZW50LmRhdGEudXJsKTsKKyAgICB9LAorCisgICAgX3JlZ2lz
dGVyRXh0ZW5zaW9uOiBmdW5jdGlvbihvcmlnaW4sIHBvcnQpCisgICAgeworICAgICAgICBpZiAo
IXRoaXMuX2FsbG93ZWRPcmlnaW5zLmhhc093blByb3BlcnR5KG9yaWdpbikpIHsKKyAgICAgICAg
ICAgIGlmIChvcmlnaW4gIT09IGxvY2F0aW9uLm9yaWdpbikgLy8gSnVzdCBpZ25vcmUgaW5zcGVj
dG9yIGZyYW1lcy4KKyAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKCJJZ25vcmluZyB1bmF1
dGhvcml6ZWQgY2xpZW50IHJlcXVlc3QgZnJvbSAiICsgb3JpZ2luKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQotICAgICAgICB2YXIgcG9ydCA9IGV2ZW50LnBvcnRzWzBdOwotICAg
ICAgICBwb3J0Ll9leHRlbnNpb25PcmlnaW4gPSBldmVudC5vcmlnaW47CisgICAgICAgIHBvcnQu
X2V4dGVuc2lvbk9yaWdpbiA9IG9yaWdpbjsKICAgICAgICAgcG9ydC5hZGRFdmVudExpc3RlbmVy
KCJtZXNzYWdlIiwgdGhpcy5fb25tZXNzYWdlLmJpbmQodGhpcyksIGZhbHNlKTsKICAgICAgICAg
cG9ydC5zdGFydCgpOwogICAgIH0sCiAKKyAgICBfaGFuZGxlQWRkRXh0ZW5zaW9uUmVxdWVzdDog
ZnVuY3Rpb24ob3JpZ2luLCB1cmwpCisgICAgeworICAgICAgICAvLyBPbmx5IGhvbm9yIGFkZEV4
dGVuc2lvbiByZXF1ZXN0cyB2aWEgRE9NIGluIGNhc2Ugd2hlbiB3ZSBydW4gcmVtb3RlbHkgYXMg
YSB3ZWIgYXBwLgorICAgICAgICBpZiAoIVdlYkluc3BlY3Rvci5pc1JlbW90ZSgpKSB7CisgICAg
ICAgICAgICBjb25zb2xlLmVycm9yKCJJZ25vcmluZyByZW1vdGUgZXh0ZW5zaW9uIGFkZCByZXF1
ZXN0LCBub3QgcnVubmluZyBpbiByZW1vdGUgbW9kZSIpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgICAgIC8vIE9ubHkgYWNjZXB0IHJlcXVlc3RzIGZyb20gYSBjb250ZW50
IHNjcmlwdCB0aGF0IHJlc2lkZXMgaW4gdGhlIHNhbWUgcGFnZS4KKyAgICAgICAgaWYgKG9yaWdp
biAhPT0gbG9jYXRpb24ub3JpZ2luKSB7CisgICAgICAgICAgICBjb25zb2xlLmVycm9yKCJJZ25v
cmluZyByZW1vdGUgZXh0ZW5zaW9uIGFkZCByZXF1ZXN0IGZyb20gYSBkaWZmZXJlbnQgcGFnZTog
IiArIG9yaWdpbik7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgLy8g
T25seSBhZGQgYWN0dWFsIGV4dGVuc2lvbiBVUkxzLgorICAgICAgICBpZiAodHlwZW9mIFdlYklu
c3BlY3Rvci5pc0V4dGVuc2lvblVSTCAhPT0gImZ1bmN0aW9uIiB8fCAhV2ViSW5zcGVjdG9yLmlz
RXh0ZW5zaW9uVVJMKHVybCkpIHsKKyAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIklnbm9yaW5n
IHJlbW90ZSBleHRlbnNpb24gYWRkIHJlcXVlc3QgZm9yIGEgbm9uLWV4dGVuc2lvbiBVUkw6ICIg
KyB1cmwpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHRoaXMuX2Fk
ZEV4dGVuc2lvbih1cmwsIHRoaXMuX3Bvc3RFeHRlbnNpb25BUEkuYmluZCh0aGlzKSk7CisgICAg
fSwKKworICAgIF9wb3N0RXh0ZW5zaW9uQVBJOiBmdW5jdGlvbihldmVudCkKKyAgICB7CisgICAg
ICAgIGV2ZW50LnRhcmdldC5jb250ZW50V2luZG93LnBvc3RNZXNzYWdlKHsKKyAgICAgICAgICAg
IGNvbW1hbmQ6ICJzZXRXZWJJbnNwZWN0b3JFeHRlbnNpb25BUEkiLAorICAgICAgICAgICAgYXBp
Q29kZTogdGhpcy5fYnVpbGRFeHRlbnNpb25BUElTY3JpcHQoKQorICAgICAgICB9LCAiKiIpOwor
ICAgIH0sCisKICAgICBfb25tZXNzYWdlOiBmdW5jdGlvbihldmVudCkKICAgICB7CiAgICAgICAg
IHZhciBtZXNzYWdlID0gZXZlbnQuZGF0YTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvaW5zcGVjdG9yLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9pbnNwZWN0b3IuanMKaW5kZXggZmFjNDYzMy4uYzU4NGMzNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanMKQEAgLTQ2Nyw2
ICs0NjcsMTEgQEAgV2ViSW5zcGVjdG9yLmxvYWRlZCA9IGZ1bmN0aW9uKCkKICAgICBXZWJJbnNw
ZWN0b3IuZG9Mb2FkZWREb25lKCk7CiB9CiAKK1dlYkluc3BlY3Rvci5pc1JlbW90ZSA9IGZ1bmN0
aW9uKCkKK3sKKyAgICByZXR1cm4gISFXZWJJbnNwZWN0b3Iuc29ja2V0OworfQorCiBXZWJJbnNw
ZWN0b3IuZG9Mb2FkZWREb25lID0gZnVuY3Rpb24oKQogewogICAgIEluc3BlY3RvckZyb250ZW5k
SG9zdC5sb2FkZWQoKTsKQEAgLTQ4MCw3ICs0ODUsNyBAQCBXZWJJbnNwZWN0b3IuZG9Mb2FkZWRE
b25lID0gZnVuY3Rpb24oKQogICAgICAgICBkb2N1bWVudC5ib2R5LmFkZFN0eWxlQ2xhc3MoInBs
YXRmb3JtLSIgKyBmbGF2b3IpOwogICAgIHZhciBwb3J0ID0gV2ViSW5zcGVjdG9yLnBvcnQ7CiAg
ICAgZG9jdW1lbnQuYm9keS5hZGRTdHlsZUNsYXNzKCJwb3J0LSIgKyBwb3J0KTsKLSAgICBpZiAo
V2ViSW5zcGVjdG9yLnNvY2tldCkKKyAgICBpZiAoV2ViSW5zcGVjdG9yLmlzUmVtb3RlKCkpCiAg
ICAgICAgIGRvY3VtZW50LmJvZHkuYWRkU3R5bGVDbGFzcygicmVtb3RlIik7CiAKICAgICB0aGlz
Ll9yZWdpc3RlclNob3J0Y3V0cygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBhNzRk
MWU4Li4zMzY4ZTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBA
CisyMDExLTA5LTA5ICBBbmRyZXkgS29zeWFrb3YgIDxjYXNlcUBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgV2ViIEluc3BlY3RvcjogW0V4dGVuc2lvbnMgQVBJXSBzdXBwb3J0IGV4dGVuc2lvbnMg
Zm9yIHJlbW90ZSBpbnNwZWN0b3IgZnJvbnQtZW5kCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02Nzg0MAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogc3JjL2pzL0RldlRvb2xzLmpzOgorICAgICAgICAoV2Vi
SW5zcGVjdG9yLmlzRXh0ZW5zaW9uVVJMKToKKwogMjAxMS0wOS0wNyAgQWRhbSBCYXJ0aCAgPGFi
YXJ0aEB3ZWJraXQub3JnPgogCiAgICAgICAgIEZyYW1lTG9hZGVyOjphZGRFeHRyYUZpZWxkc1Rv
UmVxdWVzdCBjYW4gY3Jhc2ggd2hlbiBjYWxsZWQgZnJvbSBvciBhZnRlciBGcmFtZUxvYWRlcjo6
ZGV0YWNoRnJvbVBhcmVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
anMvRGV2VG9vbHMuanMgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9qcy9EZXZUb29scy5q
cwppbmRleCAzYTdmZGZkLi5lOWU4ZWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9qcy9EZXZUb29scy5qcworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9q
cy9EZXZUb29scy5qcwpAQCAtMTg2LDYgKzE4NiwxMSBAQCBXZWJJbnNwZWN0b3Iuc2V0SW5zcGVj
dGVkVGFiSWQgPSBmdW5jdGlvbih0YWJJZCkKICAgICBXZWJJbnNwZWN0b3IuX2luc3BlY3RlZFRh
YklkID0gdGFiSWQ7CiB9CiAKK1dlYkluc3BlY3Rvci5pc0V4dGVuc2lvblVSTCA9IGZ1bmN0aW9u
KHVybCkKK3sKKyAgICByZXR1cm4gL2Nocm9tZS1leHRlbnNpb246XC9cLy8udGVzdCh1cmwpOwor
fQorCiBpZiAoV2ViSW5zcGVjdG9yLkluc3BlY3RvckZyb250ZW5kSG9zdFN0dWIpIHsKICAgICBX
ZWJJbnNwZWN0b3IuSW5zcGVjdG9yRnJvbnRlbmRIb3N0U3R1Yi5wcm90b3R5cGUuaW5zcGVjdGVk
VVJMQ2hhbmdlZCA9IGZ1bmN0aW9uKHVybCkKICAgICB7Cg==
</data>
<flag name="review"
          id="103391"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
    <flag name="commit-queue"
          id="103413"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>107628</attachid>
            <date>2011-09-16 02:29:35 -0700</date>
            <delta_ts>2011-09-16 02:47:12 -0700</delta_ts>
            <desc>patch</desc>
            <filename>remote-extensions-api.diff</filename>
            <type>text/plain</type>
            <size>16681</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1ODlmMWFmLi5hNTM2MDQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIg
QEAKKzIwMTEtMDktMDkgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBXZWIgSW5zcGVjdG9yOiBbRXh0ZW5zaW9ucyBBUEldIHN1cHBvcnQgZXh0ZW5zaW9u
cyBmb3IgcmVtb3RlIGluc3BlY3RvciBmcm9udC1lbmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNl
cnZlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBl
LmNyZWF0ZUNsaWVudElmcmFtZSk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2Vy
dmVyLnByb3RvdHlwZS5fYWRkRXh0ZW5zaW9ucyk6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0
ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fYWRkRXh0ZW5zaW9uKToKKyAgICAgICAgKFdlYkluc3Bl
Y3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9idWlsZEV4dGVuc2lvbkFQSVNjcmlwdCk6
CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fb25XaW5k
b3dNZXNzYWdlKToKKyAgICAgICAgKFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90
eXBlLl9yZWdpc3RlckV4dGVuc2lvbik6CisgICAgICAgIChXZWJJbnNwZWN0b3IuRXh0ZW5zaW9u
U2VydmVyLnByb3RvdHlwZS5faGFuZGxlQWRkRXh0ZW5zaW9uUmVxdWVzdCk6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZS5fcG9zdEV4dGVuc2lvbkFQSSk6
CisgICAgICAgICogaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3IuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuaXNSZW1vdGUpOgorCiAyMDExLTA5LTE1ICBLZWlzaGkgSGF0dG9yaSAgPGtl
aXNoaUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtjaHJvbWl1bV0gQnVpbGQgZml4OiBSZW1vdmUg
dXNlIG9mIEdyYXBoaWNzQ29udGV4dDo6c2V0SXNBY2NlbGVyYXRlZENvbnRleHQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
Z3lwaQppbmRleCAwOGY2MWY4Li5kOWZhYWQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLmd5cGkKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC02MzQ5LDkg
KzYzNDksNyBAQAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvRWxlbWVudHNUcmVl
T3V0bGluZS5qcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9FbXB0eVZpZXcu
anMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvRXZlbnRMaXN0ZW5lcnNTaWRl
YmFyUGFuZS5qcycsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25B
UEkuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uQXVkaXRD
YXRlZ29yeS5qcycsCi0gICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25D
b21tb24uanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uUGFu
ZWwuanMnLAogICAgICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uUmVnaXN0
cnlTdHViLmpzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNl
cnZlci5qcycsCkBAIC02NDU1LDEyICs2NDUzLDE3IEBACiAgICAgICAgICAgICAnaW5zcGVjdG9y
L2Zyb250LWVuZC9wb3BvdmVyLmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVu
ZC90ZXh0Vmlld2VyLmNzcycsCiAgICAgICAgICAgICAnPEAod2ViaW5zcGVjdG9yX3N0YW5kYWxv
bmVfY3NzX2ZpbGVzKScsCisgICAgICAgICAgICAnPEAod2ViaW5zcGVjdG9yX2V4dGVuc2lvbl9h
cGlfZmlsZXMpJywKICAgICAgICAgXSwKICAgICAgICAgJ3dlYmluc3BlY3Rvcl9zdGFuZGFsb25l
X2Nzc19maWxlcyc6IFsKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL2RhdGFHcmlk
LmNzcycsCiAgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9pbnNwZWN0b3JDb21tb24u
Y3NzJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL25ldHdvcmtMb2dWaWV3LmNz
cycsCiAgICAgICAgIF0sCisgICAgICAgICd3ZWJpbnNwZWN0b3JfZXh0ZW5zaW9uX2FwaV9maWxl
cyc6IFsKKyAgICAgICAgICAgICdpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qcycs
CisgICAgICAgICAgICAnaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25Db21tb24uanMnLAor
ICAgICAgICBdLAogICAgICAgICAnd2ViaW5zcGVjdG9yX3VnbGlmeWpzX2ZpbGVzJzogWwogICAg
ICAgICAgICAgJ2luc3BlY3Rvci9mcm9udC1lbmQvVWdsaWZ5SlMvcGFyc2UtanMuanMnLAogICAg
ICAgICBdLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9F
eHRlbnNpb25TZXJ2ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4
dGVuc2lvblNlcnZlci5qcwppbmRleCBiMTc2MzM4Li5lNjNiMWZkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcworKysgYi9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwpAQCAt
NTI1LDMyICs1MjUsMzcgQEAgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUg
PSB7CiAKICAgICBfYWRkRXh0ZW5zaW9uczogZnVuY3Rpb24oZXh0ZW5zaW9ucykKICAgICB7Cisg
ICAgICAgIC8vIFNlZSBFeHRlbnNpb25BUEkuanMgYW5kIEV4dGVuc2lvbkNvbW1vbi5qcyBmb3Ig
ZGV0YWlscy4KKyAgICAgICAgSW5zcGVjdG9yRnJvbnRlbmRIb3N0LnNldEV4dGVuc2lvbkFQSSh0
aGlzLl9idWlsZEV4dGVuc2lvbkFQSVNjcmlwdCgpKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBleHRlbnNpb25zLmxlbmd0aDsgKytpKQorICAgICAgICAgICAgdGhpcy5fYWRkRXh0ZW5z
aW9uKGV4dGVuc2lvbnNbaV0uc3RhcnRQYWdlKTsKKyAgICB9LAorCisgICAgX2FkZEV4dGVuc2lv
bjogZnVuY3Rpb24oc3RhcnRQYWdlLCBvbmxvYWQpCisgICAgewogICAgICAgICBjb25zdCB1cmxP
cmlnaW5SZWdFeHAgPSBuZXcgUmVnRXhwKCIoW146XSs6XC9cL1teL10qKVwvIik7IC8vIENhbid0
IHVzZSByZWdleHAgbGl0ZXJhbCBoZXJlLCBNaW5KUyBjaG9rZXMgb24gaXQuCiAKLSAgICAgICAg
Ly8gU2VlIEV4dGVuc2lvbkFQSS5qcyBhbmQgRXh0ZW5zaW9uQ29tbW9uLmpzIGZvciBkZXRhaWxz
LgotICAgICAgICBJbnNwZWN0b3JGcm9udGVuZEhvc3Quc2V0RXh0ZW5zaW9uQVBJKHRoaXMuX2J1
aWxkRXh0ZW5zaW9uQVBJSW5qZWN0ZWRTY3JpcHQoKSk7Ci0gICAgICAgIGZvciAodmFyIGkgPSAw
OyBpIDwgZXh0ZW5zaW9ucy5sZW5ndGg7ICsraSkgewotICAgICAgICAgICAgdmFyIGV4dGVuc2lv
biA9IGV4dGVuc2lvbnNbaV07Ci0gICAgICAgICAgICB0cnkgewotICAgICAgICAgICAgICAgIGlm
ICghZXh0ZW5zaW9uLnN0YXJ0UGFnZSkKLSAgICAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICAgICAgICAgIHZhciBvcmlnaW5NYXRjaCA9IHVybE9yaWdpblJlZ0V4cC5leGVjKGV4dGVu
c2lvbi5zdGFydFBhZ2UpOwotICAgICAgICAgICAgICAgIGlmICghb3JpZ2luTWF0Y2gpIHsKLSAg
ICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigiU2tpcHBpbmcgZXh0ZW5zaW9uIHdpdGgg
aW52YWxpZCBVUkw6ICIgKyBleHRlbnNpb24uc3RhcnRQYWdlKTsKLSAgICAgICAgICAgICAgICAg
ICAgY29udGludWU7Ci0gICAgICAgICAgICAgICAgfQotICAgICAgICAgICAgICAgIHRoaXMuX2Fs
bG93ZWRPcmlnaW5zW29yaWdpbk1hdGNoWzFdXSA9IHRydWU7Ci0gICAgICAgICAgICAgICAgdmFy
IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICAgICAgICAgICAg
ICAgIGlmcmFtZS5zcmMgPSBleHRlbnNpb24uc3RhcnRQYWdlOwotICAgICAgICAgICAgICAgIGlm
cmFtZS5zdHlsZS5kaXNwbGF5ID0gIm5vbmUiOwotICAgICAgICAgICAgICAgIGRvY3VtZW50LmJv
ZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKLSAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAg
ICAgICAgICAgICBjb25zb2xlLmVycm9yKCJGYWlsZWQgdG8gaW5pdGlhbGl6ZSBleHRlbnNpb24g
IiArIGV4dGVuc2lvbi5zdGFydFBhZ2UgKyAiOiIgKyBlKTsKKyAgICAgICAgdHJ5IHsKKyAgICAg
ICAgICAgIHZhciBvcmlnaW5NYXRjaCA9IHVybE9yaWdpblJlZ0V4cC5leGVjKHN0YXJ0UGFnZSk7
CisgICAgICAgICAgICBpZiAoIW9yaWdpbk1hdGNoKSB7CisgICAgICAgICAgICAgICAgY29uc29s
ZS5lcnJvcigiU2tpcHBpbmcgZXh0ZW5zaW9uIHdpdGggaW52YWxpZCBVUkw6ICIgKyBzdGFydFBh
Z2UpOworICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIH0KKyAgICAg
ICAgICAgIHRoaXMuX2FsbG93ZWRPcmlnaW5zW29yaWdpbk1hdGNoWzFdXSA9IHRydWU7CisgICAg
ICAgICAgICB2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Cisg
ICAgICAgICAgICBpZnJhbWUuc3JjID0gc3RhcnRQYWdlOworICAgICAgICAgICAgaWZyYW1lLnN0
eWxlLmRpc3BsYXkgPSAibm9uZSI7CisgICAgICAgICAgICBpZiAob25sb2FkKQorICAgICAgICAg
ICAgICAgIGlmcmFtZS5hZGRFdmVudExpc3RlbmVyKCJsb2FkIiwgb25sb2FkLCBmYWxzZSk7Cisg
ICAgICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CisgICAgICAgIH0g
Y2F0Y2ggKGUpIHsKKyAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoIkZhaWxlZCB0byBpbml0aWFs
aXplIGV4dGVuc2lvbiAiICsgc3RhcnRQYWdlICsgIjoiICsgZSk7CisgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfSwKIAotICAg
IF9idWlsZEV4dGVuc2lvbkFQSUluamVjdGVkU2NyaXB0OiBmdW5jdGlvbigpCisgICAgX2J1aWxk
RXh0ZW5zaW9uQVBJU2NyaXB0OiBmdW5jdGlvbigpCiAgICAgewogICAgICAgICB2YXIgcmVzb3Vy
Y2VUeXBlcyA9IHt9OwogICAgICAgICB2YXIgcmVzb3VyY2VUeXBlUHJvcGVydGllcyA9IE9iamVj
dC5nZXRPd25Qcm9wZXJ0eU5hbWVzKFdlYkluc3BlY3Rvci5SZXNvdXJjZS5UeXBlKTsKQEAgLTU3
MSwxNSArNTc2LDE4IEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlID0g
ewogCiAgICAgX29uV2luZG93TWVzc2FnZTogZnVuY3Rpb24oZXZlbnQpCiAgICAgewotICAgICAg
ICBpZiAoZXZlbnQuZGF0YSAhPT0gInJlZ2lzdGVyRXh0ZW5zaW9uIikKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgaWYgKCF0aGlzLl9hbGxvd2VkT3JpZ2lucy5oYXNPd25Qcm9wZXJ0eShl
dmVudC5vcmlnaW4pKSB7Ci0gICAgICAgICAgICBpZiAoZXZlbnQub3JpZ2luICE9PSBsb2NhdGlv
bi5vcmlnaW4pIC8vIEp1c3QgaWdub3JlIGluc3BlY3RvciBmcmFtZXMuCi0gICAgICAgICAgICAg
ICAgY29uc29sZS5lcnJvcigiSWdub3JpbmcgdW5hdXRob3JpemVkIGNsaWVudCByZXF1ZXN0IGZy
b20gIiArIGV2ZW50Lm9yaWdpbik7CisgICAgICAgIGlmIChldmVudC5kYXRhID09PSAicmVnaXN0
ZXJFeHRlbnNpb24iKQorICAgICAgICAgICAgdGhpcy5fcmVnaXN0ZXJFeHRlbnNpb24oZXZlbnQu
b3JpZ2luLCBldmVudC5wb3J0c1swXSk7CisgICAgfSwKKworICAgIF9yZWdpc3RlckV4dGVuc2lv
bjogZnVuY3Rpb24ob3JpZ2luLCBwb3J0KQorICAgIHsKKyAgICAgICAgaWYgKCF0aGlzLl9hbGxv
d2VkT3JpZ2lucy5oYXNPd25Qcm9wZXJ0eShvcmlnaW4pKSB7CisgICAgICAgICAgICBpZiAob3Jp
Z2luICE9PSBsb2NhdGlvbi5vcmlnaW4pIC8vIEp1c3QgaWdub3JlIGluc3BlY3RvciBmcmFtZXMu
CisgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcigiSWdub3JpbmcgdW5hdXRob3JpemVkIGNs
aWVudCByZXF1ZXN0IGZyb20gIiArIG9yaWdpbik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KLSAgICAgICAgdmFyIHBvcnQgPSBldmVudC5wb3J0c1swXTsKLSAgICAgICAgcG9ydC5f
ZXh0ZW5zaW9uT3JpZ2luID0gZXZlbnQub3JpZ2luOworICAgICAgICBwb3J0Ll9leHRlbnNpb25P
cmlnaW4gPSBvcmlnaW47CiAgICAgICAgIHBvcnQuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIs
IHRoaXMuX29ubWVzc2FnZS5iaW5kKHRoaXMpLCBmYWxzZSk7CiAgICAgICAgIHBvcnQuc3RhcnQo
KTsKICAgICB9LApAQCAtNjIwLDcgKzYyOCw3IEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2
ZXIucHJvdG90eXBlID0gewogICAgIHsKICAgICAgICAgaWYgKCFyZXNvdXJjZVBhdGgpCiAgICAg
ICAgICAgICByZXR1cm47Ci0gICAgICAgIHJldHVybiBleHRlbnNpb25QYXRoICsgZXNjYXBlKHRo
aXMuX25vcm1hbGl6ZVBhdGgocmVzb3VyY2VQYXRoKSk7CisgICAgICAgIHJldHVybiBleHRlbnNp
b25QYXRoICsgdGhpcy5fbm9ybWFsaXplUGF0aChyZXNvdXJjZVBhdGgpOwogICAgIH0sCiAKICAg
ICBfbm9ybWFsaXplUGF0aDogZnVuY3Rpb24ocGF0aCkKQEAgLTY3NywzICs2ODUsNSBAQCBXZWJJ
bnNwZWN0b3IuYWRkRXh0ZW5zaW9ucyA9IGZ1bmN0aW9uKGV4dGVuc2lvbnMpCiB9CiAKIFdlYklu
c3BlY3Rvci5leHRlbnNpb25TZXJ2ZXIgPSBuZXcgV2ViSW5zcGVjdG9yLkV4dGVuc2lvblNlcnZl
cigpOworCit3aW5kb3cuYWRkRXh0ZW5zaW9uID0gV2ViSW5zcGVjdG9yLmV4dGVuc2lvblNlcnZl
ci5fYWRkRXh0ZW5zaW9uLmJpbmQoV2ViSW5zcGVjdG9yLmV4dGVuc2lvblNlcnZlcik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IDdkZDJhYTcuLmRmNGUyNjggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDktMDkgIEFuZHJleSBLb3N5YWtv
diAgPGNhc2VxQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBbRXh0ZW5z
aW9ucyBBUEldIHN1cHBvcnQgZXh0ZW5zaW9ucyBmb3IgcmVtb3RlIGluc3BlY3RvciBmcm9udC1l
bmQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY3ODQw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBzcmMv
anMvRGV2VG9vbHMuanM6CisgICAgICAgIChXZWJJbnNwZWN0b3IuaXNFeHRlbnNpb25VUkwpOgor
CiAyMDExLTA5LTE0ICBIYW8gWmhlbmcgIDx6aGVuZ2hhb0BjaHJvbWl1bS5vcmc+CiAKICAgICAg
ICAgUmVtb3ZlIHNvbWUgZGVwZW5kZW5jaWVzIG9mIERSVCBmb3IgQW5kcm9pZC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vV2ViS2l0Lmd5cAppbmRleCBmNmE1NGU3Li4xZWNkOTA3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9XZWJLaXQuZ3lwCkBAIC04MjMsMTAgKzgyMywyNSBAQAogICAgICAgICAgICAgfV0sCiAgICAg
ICAgIH0sCiAgICAgICAgIHsKKyAgICAgICAgICAgICd0YXJnZXRfbmFtZSc6ICdkZXZ0b29sc19l
eHRlbnNpb25fYXBpJywKKyAgICAgICAgICAgICd0eXBlJzogJ25vbmUnLAorICAgICAgICAgICAg
J2FjdGlvbnMnOiBbeworICAgICAgICAgICAgICAgICdhY3Rpb25fbmFtZSc6ICdkZXZ0b29sc19o
dG1sJywKKyAgICAgICAgICAgICAgICAnc2NyaXB0X25hbWUnOiAnc2NyaXB0cy9nZW5lcmF0ZV9k
ZXZ0b29sc19leHRlbnNpb25fYXBpLnB5JywKKyAgICAgICAgICAgICAgICAnaW5wdXRzJzogWwor
ICAgICAgICAgICAgICAgICAgICAnPEAoX3NjcmlwdF9uYW1lKScsCisgICAgICAgICAgICAgICAg
ICAgICc8QCh3ZWJpbnNwZWN0b3JfZXh0ZW5zaW9uX2FwaV9maWxlcyknLAorICAgICAgICAgICAg
ICAgIF0sCisgICAgICAgICAgICAgICAgJ291dHB1dHMnOiBbJzwoUFJPRFVDVF9ESVIpL3Jlc291
cmNlcy9pbnNwZWN0b3IvZGV2dG9vbHNfZXh0ZW5zaW9uX2FwaS5qcyddLAorICAgICAgICAgICAg
ICAgICdhY3Rpb24nOiBbJ3B5dGhvbicsICc8QChfc2NyaXB0X25hbWUpJywgJzxAKF9vdXRwdXRz
KScsICc8QCh3ZWJpbnNwZWN0b3JfZXh0ZW5zaW9uX2FwaV9maWxlcyknXSwKKyAgICAgICAgICAg
IH1dLAorICAgICAgICB9LAorICAgICAgICB7CiAgICAgICAgICAgICAndGFyZ2V0X25hbWUnOiAn
Z2VuZXJhdGVfZGV2dG9vbHNfZ3JkJywKICAgICAgICAgICAgICd0eXBlJzogJ25vbmUnLAogICAg
ICAgICAgICAgJ2RlcGVuZGVuY2llcyc6IFsKICAgICAgICAgICAgICAgICAnZGV2dG9vbHNfaHRt
bCcsCisgICAgICAgICAgICAgICAgJ2RldnRvb2xzX2V4dGVuc2lvbl9hcGknCiAgICAgICAgICAg
ICBdLAogICAgICAgICAgICAgJ2NvbmRpdGlvbnMnOiBbCiAgICAgICAgICAgICAgICAgWydkZWJ1
Z19kZXZ0b29scz09MCcsIHsKQEAgLTg1MCw2ICs4NjUsNyBAQAogICAgICAgICAgICAgICAgICAg
ICAnPChQUk9EVUNUX0RJUikvcmVzb3VyY2VzL2luc3BlY3Rvci9IZWFwU25hcHNob3RXb3JrZXIu
anMnLAogICAgICAgICAgICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvcmVzb3VyY2VzL2luc3Bl
Y3Rvci9TY3JpcHRGb3JtYXR0ZXJXb3JrZXIuanMnLAogICAgICAgICAgICAgICAgICAgICAnPChQ
Uk9EVUNUX0RJUikvcmVzb3VyY2VzL2luc3BlY3Rvci9kZXZUb29scy5jc3MnLAorICAgICAgICAg
ICAgICAgICAgICAnPChQUk9EVUNUX0RJUikvcmVzb3VyY2VzL2luc3BlY3Rvci9kZXZ0b29sc19l
eHRlbnNpb25fYXBpLmpzJywKICAgICAgICAgICAgICAgICAgICAgJzxAKHdlYmluc3BlY3Rvcl9z
dGFuZGFsb25lX2Nzc19maWxlcyknLAogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAg
ICAgJ2ltYWdlcyc6IFsKQEAgLTg4OCw2ICs5MDQsNyBAQAogICAgICAgICAgICAgICAgICdpbnB1
dHMnOiBbCiAgICAgICAgICAgICAgICAgICAgICc8QChfc2NyaXB0X25hbWUpJywKICAgICAgICAg
ICAgICAgICAgICAgJ3NjcmlwdHMvZ2VuZXJhdGVfZGV2dG9vbHNfaHRtbC5weScsCisgICAgICAg
ICAgICAgICAgICAgICdzY3JpcHRzL2dlbmVyYXRlX2RldnRvb2xzX2V4dGVuc2lvbl9hcGkucHkn
LAogICAgICAgICAgICAgICAgICAgICAnPEAoX2luc3BlY3Rvcl9odG1sKScsCiAgICAgICAgICAg
ICAgICAgICAgICc8QChkZXZ0b29sc19maWxlcyknLAogICAgICAgICAgICAgICAgICAgICAnPEAo
d2ViaW5zcGVjdG9yX2ZpbGVzKScsCkBAIC04OTUsNiArOTEyLDcgQEAKICAgICAgICAgICAgICAg
ICAgICAgJzxAKF93b3JrZXJzX2ZpbGVzKScsCiAgICAgICAgICAgICAgICAgICAgICc8QCh3ZWJp
bnNwZWN0b3JfaW1hZ2VfZmlsZXMpJywKICAgICAgICAgICAgICAgICAgICAgJzxAKGRldnRvb2xz
X2ltYWdlX2ZpbGVzKScsCisgICAgICAgICAgICAgICAgICAgICc8QCh3ZWJpbnNwZWN0b3JfZXh0
ZW5zaW9uX2FwaV9maWxlcyknLAogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAg
J3NlYXJjaF9wYXRoJzogWwogICAgICAgICAgICAgICAgICAgICAnLi4vLi4vV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kJywKQEAgLTkwOSw2ICs5MjcsNyBAQAogICAgICAgICAgICAgICAgICdh
Y3Rpb24nOiBbJ3B5dGhvbicsICc8QChfc2NyaXB0X25hbWUpJywgJzxAKF9pbnNwZWN0b3JfaHRt
bCknLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLWRldnRvb2xzLWZp
bGVzJywgJzxAKGRldnRvb2xzX2ZpbGVzKScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgJy0td29ya2Vycy1maWxlcycsICc8QChfd29ya2Vyc19maWxlcyknLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICctLWV4dGVuc2lvbi1hcGktZmlsZXMnLCAn
PEAod2ViaW5zcGVjdG9yX2V4dGVuc2lvbl9hcGlfZmlsZXMpJywKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAnLS1zZWFyY2gtcGF0aCcsICc8QChfc2VhcmNoX3BhdGgpJywK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLS1pbWFnZS1zZWFyY2gtcGF0
aCcsICc8QChfaW1hZ2Vfc2VhcmNoX3BhdGgpJywKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAnLS1vdXRwdXQnLCAnPEAoX291dHB1dHMpJ10sCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NjcmlwdHMvZ2VuZXJhdGVfZGV2dG9vbHNfZXh0ZW5zaW9uX2Fw
aS5weSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc2NyaXB0cy9nZW5lcmF0ZV9kZXZ0b29sc19l
eHRlbnNpb25fYXBpLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjU2ZjE1
MjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NjcmlwdHMvZ2Vu
ZXJhdGVfZGV2dG9vbHNfZXh0ZW5zaW9uX2FwaS5weQpAQCAtMCwwICsxLDY5IEBACisjIS91c3Iv
YmluL2VudiBweXRob24KKyMKKyMgQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisjIG1ldDoK
KyMKKyMgICAgICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgICAgICAgICAqIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyMgY29weXJpZ2h0IG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
cgorIyBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlCisjIGRpc3RyaWJ1dGlvbi4KKyMgICAgICAgICAqIE5laXRoZXIgdGhlIG5hbWUg
b2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyMgY29udHJpYnV0b3JzIG1heSBi
ZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkIGZyb20KKyMgdGhp
cyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyMK
KyMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUgQ09QWVJJR0hUIEhPTERFUlMgQU5E
IENPTlRSSUJVVE9SUworIyAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorIyBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyMgQSBQQVJUSUNVTEFS
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRSBDT1BZUklHSFQK
KyMgT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsCisjIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyMgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0Yg
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsCisjIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WQorIyBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUCisjIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorIworCitpbXBv
cnQgc3lzCisKK2RlZiB3cml0ZV9kZXZ0b29sc19leHRlbnNpb25fYXBpKG91dHB1dCwgaW5wdXRf
bmFtZXMpOgorICAgIG91dHB1dC53cml0ZSgiIiIoZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBX
ZWJJbnNwZWN0b3IgPSB7fTsKKyAgICAiIiIpOworICAgIGZvciBpbnB1dF9uYW1lIGluIGlucHV0
X25hbWVzOgorICAgICAgICBpbnB1dCA9IG9wZW4oaW5wdXRfbmFtZSwgJ3InKQorICAgICAgICBv
dXRwdXQud3JpdGUoaW5wdXQucmVhZCgpKQorICAgIG91dHB1dC53cml0ZSgiIiIKKyAgICAgICAg
dmFyIGFwaVByaXZhdGUgPSB7fTsKKyAgICAgICAgV2ViSW5zcGVjdG9yLmNvbW1vbkV4dGVuc2lv
blN5bWJvbHMoYXBpUHJpdmF0ZSk7CisgICAgICAgIFdlYkluc3BlY3Rvci5pbmplY3RlZEV4dGVu
c2lvbkFQSShudWxsLCBudWxsLCAicmVtb3RlLSIgKyB0b3AuZnJhbWVzLmxlbmd0aCk7CisgICAK
KyAgICAgICAgY2hyb21lID0gd2luZG93LmNocm9tZSB8fCB7fTsKKyAgICAgICAgY2hyb21lLmV4
cGVyaW1lbnRhbCA9IGNocm9tZS5leHBlcmltZW50YWwgfHwge307CisgICAgICAgIGNocm9tZS5l
eHBlcmltZW50YWwuZGV2dG9vbHMgPSBjaHJvbWUuZXhwZXJpbWVudGFsLmRldnRvb2xzIHx8IHt9
OworCisgICAgICAgIHZhciBwcm9wZXJ0aWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMo
d2ViSW5zcGVjdG9yKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0aWVzLmxl
bmd0aDsgKytpKSB7CisgICAgICAgICAgICB2YXIgZGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Q
cm9wZXJ0eURlc2NyaXB0b3Iod2ViSW5zcGVjdG9yLCBwcm9wZXJ0aWVzW2ldKTsKKyAgICAgICAg
ICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShjaHJvbWUuZXhwZXJpbWVudGFsLmRldnRvb2xzLCBw
cm9wZXJ0aWVzW2ldLCBkZXNjcmlwdG9yKTsKKyAgICAgICAgfQorICAgIH0pKCk7IiIiKTsKKwor
ZGVmIG1haW4oYXJndik6CisKKyAgICBpZiBsZW4oYXJndikgPCAzOgorICAgICAgICBwcmludCgn
dXNhZ2U6ICVzIG91dHB1dF9qcyBpbnBpdF9maWxlc19saXN0IC4uLicgJSBhcmd2WzBdKQorICAg
ICAgICByZXR1cm4gMQorCisgICAgb3V0cHV0X25hbWUgPSBhcmd2WzFdCisgICAgb3V0cHV0ID0g
b3BlbihvdXRwdXRfbmFtZSwgJ3cnKQorICAgIHdyaXRlX2RldnRvb2xzX2V4dGVuc2lvbl9hcGko
b3V0cHV0LCBhcmd2WzI6XSkKKyAgICBvdXRwdXQuY2xvc2UoKTsKKworaWYgX19uYW1lX18gPT0g
J19fbWFpbl9fJzoKKyAgICBzeXMuZXhpdChtYWluKHN5cy5hcmd2KSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vc2NyaXB0cy9nZW5lcmF0ZV9kZXZ0b29sc196aXAucHkgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NjcmlwdHMvZ2VuZXJhdGVfZGV2dG9vbHNfemlwLnB5Cmlu
ZGV4IDQ1OWMzZTMuLjhjOGMxNzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c2NyaXB0cy9nZW5lcmF0ZV9kZXZ0b29sc196aXAucHkKKysrIGIvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9zY3JpcHRzL2dlbmVyYXRlX2RldnRvb2xzX3ppcC5weQpAQCAtNDQsMTQgKzQ0LDE2IEBA
IGltcG9ydCB6aXBmaWxlCiBpbXBvcnQgY29uY2F0ZW5hdGVfY3NzX2ZpbGVzCiBpbXBvcnQgY29u
Y2F0ZW5hdGVfanNfZmlsZXMKIGltcG9ydCBnZW5lcmF0ZV9kZXZ0b29sc19odG1sCitpbXBvcnQg
Z2VuZXJhdGVfZGV2dG9vbHNfZXh0ZW5zaW9uX2FwaQogCiAKIGNsYXNzIFBhcnNlZEFyZ3M6Ci0g
ICAgZGVmIF9faW5pdF9fKHNlbGYsIGluc3BlY3Rvcl9odG1sLCBkZXZ0b29sc19maWxlcywgd29y
a2Vyc19maWxlcywKKyAgICBkZWYgX19pbml0X18oc2VsZiwgaW5zcGVjdG9yX2h0bWwsIGRldnRv
b2xzX2ZpbGVzLCB3b3JrZXJzX2ZpbGVzLCBleHRlbnNpb25fYXBpX2ZpbGVzLAogICAgICAgICAg
ICAgICAgICBzZWFyY2hfZGlycywgaW1hZ2Vfc2VhcmNoX2RpcnMsIG91dHB1dF9maWxlbmFtZSk6
CiAgICAgICAgIHNlbGYuaW5zcGVjdG9yX2h0bWwgPSBpbnNwZWN0b3JfaHRtbAogICAgICAgICBz
ZWxmLmRldnRvb2xzX2ZpbGVzID0gZGV2dG9vbHNfZmlsZXMKICAgICAgICAgc2VsZi53b3JrZXJz
X2ZpbGVzID0gd29ya2Vyc19maWxlcworICAgICAgICBzZWxmLmV4dGVuc2lvbl9hcGlfZmlsZXMg
PSBleHRlbnNpb25fYXBpX2ZpbGVzCiAgICAgICAgIHNlbGYuc2VhcmNoX2RpcnMgPSBzZWFyY2hf
ZGlycwogICAgICAgICBzZWxmLmltYWdlX3NlYXJjaF9kaXJzID0gaW1hZ2Vfc2VhcmNoX2RpcnMK
ICAgICAgICAgc2VsZi5vdXRwdXRfZmlsZW5hbWUgPSBvdXRwdXRfZmlsZW5hbWUKQEAgLTYyLDE2
ICs2NCwxOCBAQCBkZWYgcGFyc2VfYXJncyhhcmd2KToKIAogICAgIGRldnRvb2xzX2ZpbGVzX3Bv
c2l0aW9uID0gYXJndi5pbmRleCgnLS1kZXZ0b29scy1maWxlcycpCiAgICAgd29ya2Vyc19maWxl
c19wb3NpdGlvbiA9IGFyZ3YuaW5kZXgoJy0td29ya2Vycy1maWxlcycpCisgICAgZXh0ZW5zaW9u
X2FwaV9maWxlc19wb3NpdGlvbiA9IGFyZ3YuaW5kZXgoJy0tZXh0ZW5zaW9uLWFwaS1maWxlcycp
CiAgICAgc2VhcmNoX3BhdGhfcG9zaXRpb24gPSBhcmd2LmluZGV4KCctLXNlYXJjaC1wYXRoJykK
ICAgICBpbWFnZV9zZWFyY2hfcGF0aF9wb3NpdGlvbiA9IGFyZ3YuaW5kZXgoJy0taW1hZ2Utc2Vh
cmNoLXBhdGgnKQogICAgIG91dHB1dF9wb3NpdGlvbiA9IGFyZ3YuaW5kZXgoJy0tb3V0cHV0JykK
IAogICAgIGRldnRvb2xzX2ZpbGVzID0gYXJndltkZXZ0b29sc19maWxlc19wb3NpdGlvbiArIDE6
d29ya2Vyc19maWxlc19wb3NpdGlvbl0KLSAgICB3b3JrZXJzX2ZpbGVzID0gYXJndlt3b3JrZXJz
X2ZpbGVzX3Bvc2l0aW9uICsgMTpzZWFyY2hfcGF0aF9wb3NpdGlvbl0KKyAgICB3b3JrZXJzX2Zp
bGVzID0gYXJndlt3b3JrZXJzX2ZpbGVzX3Bvc2l0aW9uICsgMTpleHRlbnNpb25fYXBpX2ZpbGVz
X3Bvc2l0aW9uXQorICAgIGV4dGVuc2lvbl9hcGlfZmlsZXMgPSBhcmd2W2V4dGVuc2lvbl9hcGlf
ZmlsZXNfcG9zaXRpb24gKyAxOnNlYXJjaF9wYXRoX3Bvc2l0aW9uXQogICAgIHNlYXJjaF9kaXJz
ID0gYXJndltzZWFyY2hfcGF0aF9wb3NpdGlvbiArIDE6aW1hZ2Vfc2VhcmNoX3BhdGhfcG9zaXRp
b25dCiAgICAgaW1hZ2Vfc2VhcmNoX2RpcnMgPSBhcmd2W2ltYWdlX3NlYXJjaF9wYXRoX3Bvc2l0
aW9uICsgMTpvdXRwdXRfcG9zaXRpb25dCiAKLSAgICByZXR1cm4gUGFyc2VkQXJncyhpbnNwZWN0
b3JfaHRtbCwgZGV2dG9vbHNfZmlsZXMsIHdvcmtlcnNfZmlsZXMsCisgICAgcmV0dXJuIFBhcnNl
ZEFyZ3MoaW5zcGVjdG9yX2h0bWwsIGRldnRvb2xzX2ZpbGVzLCB3b3JrZXJzX2ZpbGVzLCBleHRl
bnNpb25fYXBpX2ZpbGVzLAogICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaF9kaXJzLCBpbWFn
ZV9zZWFyY2hfZGlycywgYXJndltvdXRwdXRfcG9zaXRpb24gKyAxXSkKIAogCkBAIC04Niw2ICs5
MCwxMSBAQCBkZWYgbWFpbihhcmd2KToKICAgICB6aXAgPSB6aXBmaWxlLlppcEZpbGUocGFyc2Vk
X2FyZ3Mub3V0cHV0X2ZpbGVuYW1lLCAndycsIHppcGZpbGUuWklQX0RFRkxBVEVEKQogICAgIHpp
cC53cml0ZXN0cigiZGV2dG9vbHMuaHRtbCIsIGRldnRvb2xzX2h0bWwuZ2V0dmFsdWUoKSkKIAor
ICAgIGRldnRvb2xzX2V4dGVuc2lvbl9hcGkgPSBTdHJpbmdJTy5TdHJpbmdJTygpCisgICAgZ2Vu
ZXJhdGVfZGV2dG9vbHNfZXh0ZW5zaW9uX2FwaS53cml0ZV9kZXZ0b29sc19leHRlbnNpb25fYXBp
KAorICAgICAgICBkZXZ0b29sc19leHRlbnNpb25fYXBpLCBwYXJzZWRfYXJncy5leHRlbnNpb25f
YXBpX2ZpbGVzKQorICAgIHppcC53cml0ZXN0cigiZGV2dG9vbHNfZXh0ZW5zaW9uX2FwaS5qcyIs
IGRldnRvb2xzX2V4dGVuc2lvbl9hcGkuZ2V0dmFsdWUoKSkKKwogICAgIGNzc19leHRyYWN0b3Ig
PSBjb25jYXRlbmF0ZV9jc3NfZmlsZXMuT3JkZXJlZENTU0ZpbGVzRXh0cmFjdG9yKAogICAgICAg
ICBkZXZ0b29sc19odG1sLmdldHZhbHVlKCkpCiAgICAganNfZXh0cmFjdG9yID0gY29uY2F0ZW5h
dGVfanNfZmlsZXMuT3JkZXJlZEpTRmlsZXNFeHRyYWN0b3IoCg==
</data>
<flag name="review"
          id="104362"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>