<?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>70600</bug_id>
          
          <creation_ts>2011-10-21 04:43:18 -0700</creation_ts>
          <short_desc>Web Inspector: [Extensions API] allow extensions to specify script to be injected on reload</short_desc>
          <delta_ts>2011-10-25 05:59:41 -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>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>488310</commentid>
    <comment_count>0</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-10-21 04:43:18 -0700</bug_when>
    <thetext>This changes webInspector.inspectedWindow.reload() to accept an options object that lets caller to specify a script to inject upon reload in addition to user agent string. The old interface is supported, but passing string instead of object causes deprecation warning to be printed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488311</commentid>
    <comment_count>1</comment_count>
      <attachid>111941</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-10-21 04:45:27 -0700</bug_when>
    <thetext>Created attachment 111941
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488312</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-21 04:47:21 -0700</bug_when>
    <thetext>Attachment 111941 did not pass style-queue:

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

Source/WebCore/inspector/InspectorPageAgent.h:67:  This { should be at the end of the previous line  [whitespace/braces] [4]
Source/WebCore/inspector/InspectorPageAgent.h:85:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 2 in 10 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>488315</commentid>
    <comment_count>3</comment_count>
      <attachid>111944</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-10-21 04:49:24 -0700</bug_when>
    <thetext>Created attachment 111944
patch (fixed style)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>488342</commentid>
    <comment_count>4</comment_count>
      <attachid>111944</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-21 05:46:54 -0700</bug_when>
    <thetext>Comment on attachment 111944
patch (fixed style)

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

&gt; Source/WebCore/inspector/Inspector.json:164
&gt; +                    { &quot;name&quot;: &quot;removeOnReload&quot;, &quot;type&quot;: &quot;boolean&quot;, &quot;optional&quot;: true }

&quot;persistent&quot; + docs?

&gt; Source/WebCore/inspector/front-end/ExtensionAPI.js:497
&gt; +        else if (typeof optionsOrUserAgent === &quot;string&quot;) {

This will never compile.

&gt; Source/WebCore/inspector/front-end/WorkersSidebarPane.js:81
&gt; +        if (!enabled === !this._fakeWorkersScriptIdentifier)

Could you disable checkbox instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489372</commentid>
    <comment_count>5</comment_count>
      <attachid>112200</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-10-24 09:32:38 -0700</bug_when>
    <thetext>Created attachment 112200
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489380</commentid>
    <comment_count>6</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-10-24 09:35:07 -0700</bug_when>
    <thetext>(In reply to comment #4)

&gt; &gt; Source/WebCore/inspector/Inspector.json:164
&gt; &gt; +                    { &quot;name&quot;: &quot;removeOnReload&quot;, &quot;type&quot;: &quot;boolean&quot;, &quot;optional&quot;: true }
&gt; 
&gt; &quot;persistent&quot; + docs?

Dropped this altogether -- instead, we expose scriptToEvaluateOnLoad as a parameter in Page.reload().

&gt; &gt; Source/WebCore/inspector/front-end/ExtensionAPI.js:497
&gt; &gt; +        else if (typeof optionsOrUserAgent === &quot;string&quot;) {
&gt; 
&gt; This will never compile.

There are quite a few things in ExtensionAPI.js that won&apos;t compile. We need this as a compatibility hack, this will be gone in the future.

&gt; &gt; Source/WebCore/inspector/front-end/WorkersSidebarPane.js:81
&gt; &gt; +        if (!enabled === !this._fakeWorkersScriptIdentifier)
&gt; 
&gt; Could you disable checkbox instead?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489387</commentid>
    <comment_count>7</comment_count>
      <attachid>112200</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-24 09:43:39 -0700</bug_when>
    <thetext>Comment on attachment 112200
patch

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

&gt; Source/WebCore/inspector/InspectorPageAgent.cpp:342
&gt; +    m_pendingScriptToEvaluateOnLoadOnce = optionalScriptToEvaluateOnLoad ? *optionalScriptToEvaluateOnLoad : &quot;&quot;;

You don&apos;t need this pending script.

&gt; Source/WebCore/inspector/InspectorPageAgent.cpp:584
&gt; +    ScriptState* scriptState = 0; // Initialize lazily, as mainWorldScriptState() will create one if missing.

Early return in case of no front-end?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489392</commentid>
    <comment_count>8</comment_count>
      <attachid>112204</attachid>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-10-24 09:55:42 -0700</bug_when>
    <thetext>Created attachment 112204
patch

Perform script injection only in case there&apos;s an active front-end.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489395</commentid>
    <comment_count>9</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-10-24 09:59:25 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (From update of attachment 112200 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=112200&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/InspectorPageAgent.cpp:342
&gt; &gt; +    m_pendingScriptToEvaluateOnLoadOnce = optionalScriptToEvaluateOnLoad ? *optionalScriptToEvaluateOnLoad : &quot;&quot;;
&gt; 
&gt; You don&apos;t need this pending script.

I do need it: the script is only supposed to live during one reload cycle and we&apos;re clearing it upion main frame navigation, which happens between reload() and didClearWindowObject(), where the script is used.

&gt; &gt; Source/WebCore/inspector/InspectorPageAgent.cpp:584
&gt; &gt; +    ScriptState* scriptState = 0; // Initialize lazily, as mainWorldScriptState() will create one if missing.
&gt; 
&gt; Early return in case of no front-end?

Fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489400</commentid>
    <comment_count>10</comment_count>
      <attachid>112204</attachid>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-10-24 10:12:25 -0700</bug_when>
    <thetext>Comment on attachment 112204
patch

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

&gt; Source/WebCore/inspector/InspectorPageAgent.h:58
&gt; +class ScriptToEvaluateOnLoad;

Please remove.

&gt; Source/WebCore/inspector/InspectorPageAgent.h:66
&gt; +public:

Why this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>489986</commentid>
    <comment_count>11</comment_count>
    <who name="Andrey Kosyakov">caseq</who>
    <bug_when>2011-10-25 05:59:41 -0700</bug_when>
    <thetext>Manually committed r98328: as http://trac.webkit.org/changeset/98328</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111941</attachid>
            <date>2011-10-21 04:45:27 -0700</date>
            <delta_ts>2011-10-21 04:49:24 -0700</delta_ts>
            <desc>patch</desc>
            <filename>extensions-reload-script.diff</filename>
            <type>text/plain</type>
            <size>18161</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0YzBkODAzLi44MTUyMzYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTEtMTAt
MjEgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KIAorICAgICAgICBXZWIg
SW5zcGVjdG9yOiBbRXh0ZW5zaW9ucyBBUEldIGFsbG93IGV4dGVuc2lvbnMgdG8gc3BlY2lmeSBz
Y3JpcHQgdG8gYmUgaW5qZWN0ZWQgb24gcmVsb2FkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDYwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1y
ZWxvYWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9u
cy9leHRlbnNpb25zLXJlbG9hZC5odG1sOiBBZGRlZC4KKworMjAxMS0xMC0yMSAgQW5kcmV5IEtv
c3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFtRdF0gMiBpbnNwZWN0b3Iv
ZXh0ZW5zaW9ucyB0ZXN0cyB0aW1lcyBvdXQgb24gTWFjIGFuZCBsaW51eCBhZnRlciByOTc4NTAK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDE0CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMt
cmVsb2FkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4
dGVuc2lvbnMtcmVsb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4xZTk1NTM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1yZWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEg
QEAKK1Rlc3RzIHRoYXQgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5yZWxvYWQoKSBzdWNj
ZXNzZnVsbHkgaW5qZWN0cyB1c2VyJ3MgY29kZSB1cG9uIHJlbG9hZAorCitTdGFydGVkIGV4dGVu
c2lvbi4KK1J1bm5pbmcgdGVzdHMuLi4KK1JVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RSZWxv
YWRJbmplY3RzQ29kZQorUGFnZSByZWxvYWRlZC4KK1BhZ2UgcmVsb2FkZWQuCitXaXRoIGluamVj
dGVkIGNvZGU6IGZvbyA9IDQyCitXaXRob3V0IGluamVjdGVkIGNvZGU6IGZvbyA9IHVuZGVmaW5l
ZAorQWxsIHRlc3RzIGRvbmUuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
eHRlbnNpb25zL2V4dGVuc2lvbnMtcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjU1ZDBhN2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlbG9hZC5odG1sCkBAIC0wLDAgKzEsNDAgQEAK
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCI+CisKK3dpbmRvdy5iYXIgPSAiZm9vID0gIiArIHdpbmRvdy5mb287
CisKK2Z1bmN0aW9uIGV4dGVuc2lvbl90ZXN0UmVsb2FkSW5qZWN0c0NvZGUobmV4dFRlc3QpCit7
CisgICAgdmFyIHZhbHVlV2l0aEluamVjdGVkQ29kZTsKKworICAgIGZ1bmN0aW9uIG9uUGFnZVdp
dGhJbmplY3RlZENvZGVMb2FkZWQoKQorICAgIHsKKyAgICAgICAgd2ViSW5zcGVjdG9yLmluc3Bl
Y3RlZFdpbmRvdy5ldmFsKCJ3aW5kb3cuYmFyIiwgZnVuY3Rpb24odmFsdWUpIHsKKyAgICAgICAg
ICAgIHZhbHVlV2l0aEluamVjdGVkQ29kZSA9IHZhbHVlOworICAgICAgICAgICAgZXZhbHVhdGVP
bkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0LnJ1bldoZW5QYWdlTG9hZHMocmVwbHkpIiwgb25QYWdl
V2l0aG91dEluamVjdGVkQ29kZUxvYWRlZCk7CisgICAgICAgICAgICB3ZWJJbnNwZWN0b3IuaW5z
cGVjdGVkV2luZG93LnJlbG9hZCgpOworICAgICAgICB9KTsKKyAgICB9CisgICAgZnVuY3Rpb24g
b25QYWdlV2l0aG91dEluamVjdGVkQ29kZUxvYWRlZCgpCisgICAgeworICAgICAgICB3ZWJJbnNw
ZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWwoIndpbmRvdy5iYXIiLCBmdW5jdGlvbih2YWx1ZSkg
eworICAgICAgICAgICAgb3V0cHV0KCJXaXRoIGluamVjdGVkIGNvZGU6ICIgKyB2YWx1ZVdpdGhJ
bmplY3RlZENvZGUpOworICAgICAgICAgICAgb3V0cHV0KCJXaXRob3V0IGluamVjdGVkIGNvZGU6
ICIgKyB2YWx1ZSk7CisgICAgICAgICAgICBuZXh0VGVzdCgpOworICAgICAgICB9KTsKKyAgICB9
CisgICAgZXZhbHVhdGVPbkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0LnJ1bldoZW5QYWdlTG9hZHMo
cmVwbHkpIiwgb25QYWdlV2l0aEluamVjdGVkQ29kZUxvYWRlZCk7CisgICAgd2ViSW5zcGVjdG9y
Lmluc3BlY3RlZFdpbmRvdy5yZWxvYWQoeworICAgICAgICBpbmplY3RlZFNjcmlwdDogIndpbmRv
dy5mb28gPSA0MjsiCisgICAgfSk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMgdGhhdCB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2lu
ZG93LnJlbG9hZCgpIHN1Y2Nlc3NmdWxseSBpbmplY3RzIHVzZXIncyBjb2RlIHVwb24gcmVsb2Fk
PC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGRkMmFkYWMuLjQ5ZDc3ZDEgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMS0xMC0yMSAgQW5kcmV5IEtvc3lha292ICA8
Y2FzZXFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtFeHRlbnNpb25z
IEFQSV0gYWxsb3cgZXh0ZW5zaW9ucyB0byBzcGVjaWZ5IHNjcmlwdCB0byBiZSBpbmplY3RlZCBv
biByZWxvYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcwNjAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
LSBjaGFuZ2Ugd2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2UucmVsb2FkKCkgdG8gYWNjZXB0IG11
bHRpcGxlIG9wdGlvbnMgaW4gYW4gb2JqZWN0CisgICAgICAgIC0gYWRkIGFuIGFiaWxpdHkgdG8g
aW5qZWN0IGEgc2NyaXB0IHVwb2FuIGEgcGFnZSByZWxvYWQKKyAgICAgICAgLSByZXR1cm4gc2Ny
aXB0IGlkIGluIGFkZFNjcmlwdFRvRXZhbHVhdGVPbkxvYWQoKQorICAgICAgICAtIHByb3ZpZGUg
cmVtb3ZlU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZCgpCisgICAgICAgIC0gc3RvcmUgc2NyaXB0cyB0
byBldmFsdWF0ZSBvbiBsb2FkIGluIGluc3BlY3RvciBzdGF0ZSBjb29raWUKKworICAgICAgICBU
ZXN0OiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlbG9hZC5odG1sCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6
Okluc3BlY3RvclBhZ2VBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdl
bnQ6OnJlc3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjphZGRT
Y3JpcHRUb0V2YWx1YXRlT25Mb2FkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VB
Z2VudDo6cmVtb3ZlU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JQYWdlQWdlbnQ6OnJlbW92ZUFsbFNjcmlwdHNUb0V2YWx1YXRlT25Mb2FkKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RJ
bldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVOYXZp
Z2F0ZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qczoKKyAgICAgICAgKGluamVj
dGVkRXh0ZW5zaW9uQVBJLkluc3BlY3RlZFdpbmRvdy5wcm90b3R5cGUucmVsb2FkKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9vblJlbG9hZCk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuV29ya2Vyc1NpZGViYXJQYW5lLnByb3RvdHlwZS5zZXRJbnN0cnVtZW50YXRp
b24uY2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtlcnNTaWRlYmFyUGFuZS5w
cm90b3R5cGUuc2V0SW5zdHJ1bWVudGF0aW9uKToKKwogMjAxMS0xMC0yMCAgQW5kcmV5IEtvc3lh
a292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1ha2Ug
ZXh0ZW5zaW9uIHRlc3RzIHBhc3Mgb24gY2hyb21pdW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3IuanNvbgppbmRleCBjNTViZTQwLi4wZTMyZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0xNDAsNiArMTQwLDEyIEBACiAgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAic2Vzc2lvbiIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRp
b24iOiAiVHJ1ZSBpbiBjYXNlIG9mIHNlc3Npb24gY29va2llLiIgfQogICAgICAgICAgICAgICAg
IF0sCiAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgImlkIjogIlNjcmlwdElkZW50aWZpZXIiLAorICAg
ICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIlVuaXF1ZSBzY3JpcHQgaWRlbnRpZmllci4iLAorICAgICAgICAgICAgICAgICJoaWRk
ZW4iOiB0cnVlCiAgICAgICAgICAgICB9CiAgICAgICAgIF0sCiAgICAgICAgICJjb21tYW5kcyI6
IFsKQEAgLTE1NCw3ICsxNjAsMTEgQEAKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAi
bmFtZSI6ICJhZGRTY3JpcHRUb0V2YWx1YXRlT25Mb2FkIiwKICAgICAgICAgICAgICAgICAicGFy
YW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzY3JpcHRTb3VyY2Ui
LCAidHlwZSI6ICJzdHJpbmciIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzY3Jp
cHRTb3VyY2UiLCAidHlwZSI6ICJzdHJpbmciIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAicmVtb3ZlT25SZWxvYWQiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1
ZSB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpZGVudGlmaWVyIiwgIiRyZWYiOiAiU2NyaXB0
SWRlbnRpZmllciIsICJkZXNjcmlwdGlvbiI6ICJJZGVudGlmaWVyIG9mIHRoZSBhZGRlZCBzY3Jp
cHQuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1
ZQogICAgICAgICAgICAgfSwKQEAgLTE2Myw2ICsxNzMsMTMgQEAKICAgICAgICAgICAgICAgICAi
aGlkZGVuIjogdHJ1ZQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAibmFtZSI6ICJyZW1vdmVTY3JpcHRUb0V2YWx1YXRlT25Mb2FkIiwKKyAgICAgICAgICAg
ICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpZGVu
dGlmaWVyIiwgIiRyZWYiOiAiU2NyaXB0SWRlbnRpZmllciIgfQorICAgICAgICAgICAgICAgIF0s
CisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUiOiAicmVsb2FkIiwKICAgICAgICAgICAgICAg
ICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpZ25vcmVD
YWNoZSIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24i
OiAiSWYgdHJ1ZSwgYnJvd3NlciBjYWNoZSBpcyBpZ25vcmVkIChhcyBpZiB0aGUgdXNlciBwcmVz
c2VkIFNoaWZ0K3JlZnJlc2gpLiIgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCAyYzYyMDQ5Li5mYTMxMTdlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtNzMsNiArNzMs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSBQYWdlQWdlbnRTdGF0ZSB7CiBz
dGF0aWMgY29uc3QgY2hhciBwYWdlQWdlbnRFbmFibGVkW10gPSAicmVzb3VyY2VBZ2VudEVuYWJs
ZWQiOworc3RhdGljIGNvbnN0IGNoYXIgcGFnZUFnZW50U2NyaXB0c1RvRXZhbHVhdGVPbkxvYWRb
XSA9ICJwYWdlQWdlbnRTY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCI7CiB9CiAKIHN0YXRpYyBib29s
IGRlY29kZVNoYXJlZEJ1ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyLCBjb25z
dCBTdHJpbmcmIHRleHRFbmNvZGluZ05hbWUsIFN0cmluZyogcmVzdWx0KQpAQCAtMjc1LDYgKzI3
Niw3IEBAIEluc3BlY3RvclBhZ2VBZ2VudDo6SW5zcGVjdG9yUGFnZUFnZW50KEluc3RydW1lbnRp
bmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsCiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFu
YWdlcihpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgLCBtX3N0YXRlKHN0YXRlKQogICAgICwg
bV9mcm9udGVuZCgwKQorICAgICwgbV9sYXN0U2NyaXB0SWRlbnRpZmllcigwKQogewogfQogCkBA
IC0yOTYsNiArMjk4LDE1IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpyZXN0b3JlKCkKICAg
ICAgICAgRXJyb3JTdHJpbmcgZXJyb3I7CiAgICAgICAgIGVuYWJsZSgmZXJyb3IpOwogICAgIH0K
KyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBzY3JpcHRzID0gbV9zdGF0ZS0+Z2V0T2JqZWN0
KFBhZ2VBZ2VudFN0YXRlOjpwYWdlQWdlbnRTY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCk7CisgICAg
aWYgKHNjcmlwdHMpIHsKKyAgICAgICAgSW5zcGVjdG9yT2JqZWN0Ojpjb25zdF9pdGVyYXRvciBl
bmQgPSBzY3JpcHRzLT5lbmQoKTsKKyAgICAgICAgZm9yIChJbnNwZWN0b3JPYmplY3Q6OmNvbnN0
X2l0ZXJhdG9yIGl0ID0gc2NyaXB0cy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAg
ICAgICAgICBTdHJpbmcgc2NyaXB0VGV4dDsKKyAgICAgICAgICAgIGlmIChpdC0+c2Vjb25kLT5h
c1N0cmluZygmc2NyaXB0VGV4dCkpCisgICAgICAgICAgICAgICAgbV9zY3JpcHRzVG9FdmFsdWF0
ZU9uTG9hZC5hZGQoaXQtPmZpcnN0LCBTY3JpcHRUb0V2YWx1YXRlT25Mb2FkOjpjcmVhdGUoc2Ny
aXB0VGV4dCwgdHJ1ZSkpOworICAgICAgICB9CisgICAgfQogfQogCiB2b2lkIEluc3BlY3RvclBh
Z2VBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nKikKQEAgLTMxMCwxNCArMzIxLDQyIEBAIHZvaWQg
SW5zcGVjdG9yUGFnZUFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nKikKICAgICBtX2luc3RydW1l
bnRpbmdBZ2VudHMtPnNldEluc3BlY3RvclBhZ2VBZ2VudCgwKTsKIH0KIAotdm9pZCBJbnNwZWN0
b3JQYWdlQWdlbnQ6OmFkZFNjcmlwdFRvRXZhbHVhdGVPbkxvYWQoRXJyb3JTdHJpbmcqLCBjb25z
dCBTdHJpbmcmIHNvdXJjZSkKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjphZGRTY3JpcHRUb0V2
YWx1YXRlT25Mb2FkKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IGJv
b2wqIG9wdGlvbmFsUmVtb3ZlT25SZWxvYWQsIFN0cmluZyogaWRlbnRpZmllcikKIHsKLSAgICBt
X3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkLmFwcGVuZChzb3VyY2UpOworICAgIGJvb2wgcmVtb3Zl
T25SZWxvYWQgPSBvcHRpb25hbFJlbW92ZU9uUmVsb2FkICYmICpvcHRpb25hbFJlbW92ZU9uUmVs
b2FkOworICAgIFJlZlB0cjxTY3JpcHRUb0V2YWx1YXRlT25Mb2FkPiBzY3JpcHQgPSBTY3JpcHRU
b0V2YWx1YXRlT25Mb2FkOjpjcmVhdGUoc291cmNlLCAhcmVtb3ZlT25SZWxvYWQpOworCisgICAg
ZG8geworICAgICAgICAqaWRlbnRpZmllciA9IFN0cmluZzo6bnVtYmVyKCsrbV9sYXN0U2NyaXB0
SWRlbnRpZmllcik7CisgICAgfSB3aGlsZSAoIW1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQuYWRk
KCppZGVudGlmaWVyLCBzY3JpcHQpLnNlY29uZCk7CisKKyAgICBpZiAoIXJlbW92ZU9uUmVsb2Fk
KSB7CisgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHNjcmlwdHMgPSBtX3N0YXRlLT5n
ZXRPYmplY3QoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudFNjcmlwdHNUb0V2YWx1YXRlT25Mb2Fk
KTsKKyAgICAgICAgaWYgKCFzY3JpcHRzKSB7CisgICAgICAgICAgICBzY3JpcHRzID0gSW5zcGVj
dG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICAgICAgICAgIG1fc3RhdGUtPnNldE9iamVjdChQYWdl
QWdlbnRTdGF0ZTo6cGFnZUFnZW50U2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQsIHNjcmlwdHMpOwor
ICAgICAgICB9CisgICAgICAgIHNjcmlwdHMtPnNldFN0cmluZygqaWRlbnRpZmllciwgc291cmNl
KTsKKyAgICB9Cit9CisKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpyZW1vdmVTY3JpcHRUb0V2
YWx1YXRlT25Mb2FkKEVycm9yU3RyaW5nKiBlcnJvciwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVy
KQoreworICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8U2NyaXB0VG9FdmFsdWF0ZU9uTG9hZD4g
Pjo6aXRlcmF0b3IgaXQgPSBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkLmZpbmQoaWRlbnRpZmll
cik7CisgICAgaWYgKGl0ID09IG1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQuZW5kKCkpIHsKKyAg
ICAgICAgKmVycm9yID0gIlNjcmlwdCBub3QgZm91bmQiOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIG1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQucmVtb3ZlKGl0KTsKKyAgICBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBzY3JpcHRzID0gbV9zdGF0ZS0+Z2V0T2JqZWN0KFBhZ2VBZ2VudFN0
YXRlOjpwYWdlQWdlbnRTY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCk7CisgICAgQVNTRVJUKHNjcmlw
dHMpOworICAgIHNjcmlwdHMtPnJlbW92ZShpZGVudGlmaWVyKTsKIH0KIAogdm9pZCBJbnNwZWN0
b3JQYWdlQWdlbnQ6OnJlbW92ZUFsbFNjcmlwdHNUb0V2YWx1YXRlT25Mb2FkKEVycm9yU3RyaW5n
KikKIHsKICAgICBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkLmNsZWFyKCk7CisgICAgbV9zdGF0
ZS0+c2V0T2JqZWN0KFBhZ2VBZ2VudFN0YXRlOjpwYWdlQWdlbnRTY3JpcHRzVG9FdmFsdWF0ZU9u
TG9hZCwgMCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpyZWxvYWQoRXJyb3JTdHJp
bmcqLCBjb25zdCBib29sKiBjb25zdCBvcHRpb25hbElnbm9yZUNhY2hlKQpAQCAtNTY1LDkgKzYw
NCwxMCBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RJbldv
cmxkKEZyYW1lKiBmcmFtZSwgRE9NV3JhcHBlcldvcgogCiAgICAgaWYgKG1fc2NyaXB0c1RvRXZh
bHVhdGVPbkxvYWQuc2l6ZSgpKSB7CiAgICAgICAgIFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSA9
IG1haW5Xb3JsZFNjcmlwdFN0YXRlKGZyYW1lKTsKLSAgICAgICAgZm9yIChWZWN0b3I8U3RyaW5n
Pjo6aXRlcmF0b3IgaXQgPSBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkLmJlZ2luKCk7Ci0gICAg
ICAgICAgICAgaXQgIT0gbV9zY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZC5lbmQoKTsgKytpdCkgewot
ICAgICAgICAgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdFNjcmlwdCgqaXQsIHNj
cmlwdFN0YXRlKTsKKyAgICAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxTY3JpcHRUb0V2YWx1
YXRlT25Mb2FkPiA+OjppdGVyYXRvciBlbmQgPSBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkLmVu
ZCgpOworICAgICAgICBmb3IgKEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8U2NyaXB0VG9FdmFsdWF0
ZU9uTG9hZD4gPjo6aXRlcmF0b3IgaXQgPSBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkLmJlZ2lu
KCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICAgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFn
ZXItPmluamVjdFNjcmlwdChpdC0+c2Vjb25kLT5zY3JpcHRUZXh0KCksIHNjcmlwdFN0YXRlKTsK
KyAgICAgICAgICAgIGl0LT5zZWNvbmQtPm1hcmtVc2VkKCk7CiAgICAgICAgIH0KICAgICB9CiB9
CkBAIC01ODQsNiArNjI0LDE1IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50Ojpsb2FkRXZlbnRG
aXJlZCgpCiAKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZU5hdmlnYXRlZChEb2N1bWVu
dExvYWRlciogbG9hZGVyKQogeworICAgIGlmIChsb2FkZXItPmZyYW1lKCkgPT0gbV9wYWdlLT5t
YWluRnJhbWUoKSkgeworICAgICAgICBTY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCBzY3JpcHRzVG9S
ZXRhaW47CisgICAgICAgIFNjcmlwdHNUb0V2YWx1YXRlT25Mb2FkOjpjb25zdF9pdGVyYXRvciBl
bmQgPSBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkLmVuZCgpOworICAgICAgICBmb3IgKFNjcmlw
dHNUb0V2YWx1YXRlT25Mb2FkOjpjb25zdF9pdGVyYXRvciBpdCA9IG1fc2NyaXB0c1RvRXZhbHVh
dGVPbkxvYWQuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgICAgICBpZiAoIWl0
LT5zZWNvbmQtPmV4cGlyZWQoKSkKKyAgICAgICAgICAgICAgICBzY3JpcHRzVG9SZXRhaW4uYWRk
KGl0LT5maXJzdCwgaXQtPnNlY29uZCk7CisgICAgICAgIH0KKyAgICAgICAgbV9zY3JpcHRzVG9F
dmFsdWF0ZU9uTG9hZC5zd2FwKHNjcmlwdHNUb1JldGFpbik7CisgICAgfQogICAgIG1fZnJvbnRl
bmQtPmZyYW1lTmF2aWdhdGVkKGJ1aWxkT2JqZWN0Rm9yRnJhbWUobG9hZGVyLT5mcmFtZSgpKSwg
bG9hZGVySWQobG9hZGVyKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JQYWdlQWdlbnQuaAppbmRleCBkNDM4NzRiLi4xMGZhNjgzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC01NSwxMiArNTUsNDYgQEAg
Y2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIGNsYXNzIEtVUkw7CiBjbGFzcyBQYWdlOwogY2xh
c3MgUmVndWxhckV4cHJlc3Npb247CitjbGFzcyBTY3JpcHRUb0V2YWx1YXRlT25Mb2FkOwogY2xh
c3MgU2hhcmVkQnVmZmVyOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAogY2xhc3Mg
SW5zcGVjdG9yUGFnZUFnZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JQ
YWdlQWdlbnQpOworCisgICAgY2xhc3MgU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZDogcHVibGljIFJl
ZkNvdW50ZWQ8U2NyaXB0VG9FdmFsdWF0ZU9uTG9hZD4KKyAgICB7CisgICAgcHVibGljOgorICAg
ICAgICBzdGF0aWMgUGFzc1JlZlB0cjxTY3JpcHRUb0V2YWx1YXRlT25Mb2FkPiBjcmVhdGUoU3Ry
aW5nIHRleHQsIGJvb2wgcGVyc2lzdE9uUmVsb2FkKQorICAgICAgICB7CisgICAgICAgICAgICBy
ZXR1cm4gYWRvcHRSZWYobmV3IFNjcmlwdFRvRXZhbHVhdGVPbkxvYWQodGV4dCwgcGVyc2lzdE9u
UmVsb2FkKSk7CisgICAgICAgIH0KKworICAgICAgICBTdHJpbmcgc2NyaXB0VGV4dCgpIGNvbnN0
IHsgcmV0dXJuIG1fc2NyaXB0VGV4dDsgfQorICAgICAgICBib29sIGV4cGlyZWQoKSBjb25zdCB7
IHJldHVybiBtX3N0YXRlID09IEV4cGlyZWQ7IH0KKyAgICAgICAgdm9pZCBtYXJrVXNlZCgpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGlmIChtX3N0YXRlID09IEV2YWx1YXRlT25jZSkKKyAgICAg
ICAgICAgICAgICBtX3N0YXRlID0gRXhwaXJlZDsKKyAgICAgICAgfQorCisgICAgcHJpdmF0ZToK
KyAgICAgICAgU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZChTdHJpbmcgdGV4dCwgYm9vbCBwZXJzaXN0
T25SZWxvYWQpCisgICAgICAgICAgICA6IG1fc2NyaXB0VGV4dCh0ZXh0KQorICAgICAgICAgICAg
LCBtX3N0YXRlKHBlcnNpc3RPblJlbG9hZCA/IFBlcnNpc3RlbnQgOiBFdmFsdWF0ZU9uY2UpIHsK
KyAgICAgICAgfQorICAgICAgICAgIAorICAgICAgICBlbnVtIFN0YXRlIHsKKyAgICAgICAgICAg
IFBlcnNpc3RlbnQsCisgICAgICAgICAgICBFdmFsdWF0ZU9uY2UsCisgICAgICAgICAgICBFeHBp
cmVkCisgICAgICAgIH07CisKKyAgICAgICAgU3RyaW5nIG1fc2NyaXB0VGV4dDsKKyAgICAgICAg
U3RhdGUgbV9zdGF0ZTsKKyAgICB9OworCiBwdWJsaWM6CiAKICAgICBlbnVtIFJlc291cmNlVHlw
ZSB7CkBAIC04OSw3ICsxMjMsOCBAQCBwdWJsaWM6CiAgICAgLy8gUGFnZSBBUEkgZm9yIEluc3Bl
Y3RvckZyb250ZW5kCiAgICAgdm9pZCBlbmFibGUoRXJyb3JTdHJpbmcqKTsKICAgICB2b2lkIGRp
c2FibGUoRXJyb3JTdHJpbmcqKTsKLSAgICB2b2lkIGFkZFNjcmlwdFRvRXZhbHVhdGVPbkxvYWQo
RXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIHNvdXJjZSk7CisgICAgdm9pZCBhZGRTY3JpcHRU
b0V2YWx1YXRlT25Mb2FkKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0
IGJvb2wqIG9wdGlvbmFsUmVtb3ZlT25SZWxvYWQsIFN0cmluZyogcmVzdWx0KTsKKyAgICB2b2lk
IHJlbW92ZVNjcmlwdFRvRXZhbHVhdGVPbkxvYWQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcm
IGlkZW50aWZpZXIpOwogICAgIHZvaWQgcmVtb3ZlQWxsU2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQo
RXJyb3JTdHJpbmcqKTsKICAgICB2b2lkIHJlbG9hZChFcnJvclN0cmluZyosIGNvbnN0IGJvb2wq
IGNvbnN0IG9wdGlvbmFsSWdub3JlQ2FjaGUpOwogICAgIHZvaWQgb3BlbihFcnJvclN0cmluZyos
IGNvbnN0IFN0cmluZyYgdXJsLCBjb25zdCBib29sKiBjb25zdCBpbk5ld1dpbmRvdyk7CkBAIC0x
MzEsNyArMTY2LDkgQEAgcHJpdmF0ZToKICAgICBJbmplY3RlZFNjcmlwdE1hbmFnZXIqIG1faW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyOwogICAgIEluc3BlY3RvclN0YXRlKiBtX3N0YXRlOwogICAgIElu
c3BlY3RvckZyb250ZW5kOjpQYWdlKiBtX2Zyb250ZW5kOwotICAgIFZlY3RvcjxTdHJpbmc+IG1f
c2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQ7CisgICAgbG9uZyBtX2xhc3RTY3JpcHRJZGVudGlmaWVy
OworICAgIHR5cGVkZWYgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxTY3JpcHRUb0V2YWx1YXRlT25M
b2FkPiA+IFNjcmlwdHNUb0V2YWx1YXRlT25Mb2FkOworICAgIFNjcmlwdHNUb0V2YWx1YXRlT25M
b2FkIG1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQ7CiAgICAgSGFzaE1hcDxGcmFtZSosIFN0cmlu
Zz4gbV9mcmFtZVRvSWRlbnRpZmllcjsKICAgICBIYXNoTWFwPFN0cmluZywgRnJhbWUqPiBtX2lk
ZW50aWZpZXJUb0ZyYW1lOwogICAgIEhhc2hNYXA8RG9jdW1lbnRMb2FkZXIqLCBTdHJpbmc+IG1f
bG9hZGVyVG9JZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FeHRlbnNpb25BUEkuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0V4dGVuc2lvbkFQSS5qcwppbmRleCBkYmJiOTFkLi4zM2NmZDNkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qcworKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qcwpAQCAt
NDg5LDkgKzQ4OSwxNyBAQCBmdW5jdGlvbiBJbnNwZWN0ZWRXaW5kb3coKQogfQogCiBJbnNwZWN0
ZWRXaW5kb3cucHJvdG90eXBlID0gewotICAgIHJlbG9hZDogZnVuY3Rpb24odXNlckFnZW50KQot
ICAgIHsKLSAgICAgICAgcmV0dXJuIGV4dGVuc2lvblNlcnZlci5zZW5kUmVxdWVzdCh7IGNvbW1h
bmQ6ICJyZWxvYWQiLCB1c2VyQWdlbnQ6IHVzZXJBZ2VudCB9KTsKKyAgICByZWxvYWQ6IGZ1bmN0
aW9uKG9wdGlvbnNPclVzZXJBZ2VudCkKKyAgICB7CisgICAgICAgIHZhciBvcHRpb25zID0gbnVs
bDsKKyAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT3JVc2VyQWdlbnQgPT09ICJvYmplY3QiKQor
ICAgICAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnNPclVzZXJBZ2VudDsKKyAgICAgICAgZWxzZSBp
ZiAodHlwZW9mIG9wdGlvbnNPclVzZXJBZ2VudCA9PT0gInN0cmluZyIpIHsKKyAgICAgICAgICAg
IG9wdGlvbnMgPSB7IHVzZXJBZ2VudDogb3B0aW9uc09yVXNlckFnZW50IH07CisgICAgICAgICAg
ICBjb25zb2xlLndhcm4oIlBhc3NpbmcgdXNlckFnZW50IGFzIHN0cmluZyBwYXJhbWV0ZXIgdG8g
aW5zcGVjdGVkV2luZG93LnJlbG9hZCgpIGlzIGRlcHJlY2F0ZWQuICIgKworICAgICAgICAgICAg
ICAgICAgICAgICAgICJVc2UgaW5zcGVjdGVkV2luZG93LnJlbG9hZCh7IHVzZXJBZ2VudDogdmFs
dWV9KSBpbnN0ZWFkLiIpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBleHRlbnNpb25TZXJ2
ZXIuc2VuZFJlcXVlc3QoeyBjb21tYW5kOiAicmVsb2FkIiwgb3B0aW9uczogb3B0aW9ucyB9KTsK
ICAgICB9LAogCiAgICAgZXZhbDogZnVuY3Rpb24oZXhwcmVzc2lvbiwgY2FsbGJhY2spCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZl
ci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVy
LmpzCmluZGV4IDU4MWNkMmYuLjFmYmZkYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCkBAIC0yODIsOSArMjgyLDE0
IEBAIFdlYkluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlID0gewogCiAgICAgX29u
UmVsb2FkOiBmdW5jdGlvbihtZXNzYWdlKQogICAgIHsKLSAgICAgICAgaWYgKHR5cGVvZiBtZXNz
YWdlLnVzZXJBZ2VudCA9PT0gInN0cmluZyIpCi0gICAgICAgICAgICBOZXR3b3JrQWdlbnQuc2V0
VXNlckFnZW50T3ZlcnJpZGUobWVzc2FnZS51c2VyQWdlbnQpOwotCisgICAgICAgIHZhciBvcHRp
b25zID0gbWVzc2FnZS5vcHRpb25zIHx8IHt9OworICAgICAgICBOZXR3b3JrQWdlbnQuc2V0VXNl
ckFnZW50T3ZlcnJpZGUodHlwZW9mIG9wdGlvbnMudXNlckFnZW50ID09PSAic3RyaW5nIiA/IG9w
dGlvbnMudXNlckFnZW50IDogIiIpOworICAgICAgICBpZiAob3B0aW9ucy5pbmplY3RlZFNjcmlw
dCkgeworICAgICAgICAgICAgLy8gV3JhcCBjbGllbnQgc2NyaXB0IGludG8gYW5vbnltb3VzIGZ1
bmN0aW9uLCByZXR1cm4gYW5vdGhlciBhbm9ueW1vdXMgZnVuY3Rpb24gdGhhdAorICAgICAgICAg
ICAgLy8gcmV0dXJucyBlbXB0eSBvYmplY3QgZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBJbmplY3Rl
ZFNjcmlwdE1hbmFnZXIgb24gdGhlIGJhY2tlbmQuCisgICAgICAgICAgICB2YXIgaW5qZWN0ZWRT
Y3JpcHQgPSAiKChmdW5jdGlvbigpeyIgKyBvcHRpb25zLmluamVjdGVkU2NyaXB0ICsgIn0pKCks
ZnVuY3Rpb24oKXtyZXR1cm4ge319KSI7CisgICAgICAgICAgICBQYWdlQWdlbnQuYWRkU2NyaXB0
VG9FdmFsdWF0ZU9uTG9hZChpbmplY3RlZFNjcmlwdCwgdHJ1ZSk7CisgICAgICAgIH0KICAgICAg
ICAgUGFnZUFnZW50LnJlbG9hZChmYWxzZSk7CiAgICAgICAgIHJldHVybiB0aGlzLl9zdGF0dXMu
T0soKTsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250
LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL1dvcmtlcnNTaWRlYmFyUGFuZS5qcwppbmRleCAyNDY0ZTdiLi40ODk2MmExIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlcnNTaWRlYmFy
UGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlcnNT
aWRlYmFyUGFuZS5qcwpAQCAtNzgsOSArNzgsMjcgQEAgV2ViSW5zcGVjdG9yLldvcmtlcnNTaWRl
YmFyUGFuZS5wcm90b3R5cGUgPSB7CiAKICAgICBzZXRJbnN0cnVtZW50YXRpb246IGZ1bmN0aW9u
KGVuYWJsZWQpCiAgICAgewotICAgICAgICBQYWdlQWdlbnQucmVtb3ZlQWxsU2NyaXB0c1RvRXZh
bHVhdGVPbkxvYWQoKTsKLSAgICAgICAgaWYgKGVuYWJsZWQpCi0gICAgICAgICAgICBQYWdlQWdl
bnQuYWRkU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZCgiKCIgKyBJbmplY3RlZEZha2VXb3JrZXIgKyAi
KSIpOworICAgICAgICBpZiAoIWVuYWJsZWQgPT09ICF0aGlzLl9mYWtlV29ya2Vyc1NjcmlwdElk
ZW50aWZpZXIpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKGVuYWJsZWQpIHsK
KyAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGVycm9yLCBpZGVudGlmaWVyKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIC8vIENoZWNrIGlmIHNvbWVvbmUgaGFzIGRpc2FibGVk
IHRoZSBpbnN0cnVtZW50YXRpb24gd2hpbGUgd2Ugd2VyZSBlbmFibGluZyBpdAorICAgICAgICAg
ICAgICAgIGlmICh0aGlzLl9mYWtlV29ya2Vyc1NjcmlwdElkZW50aWZpZXIpCisgICAgICAgICAg
ICAgICAgICAgIHRoaXMuX2Zha2VXb3JrZXJzU2NyaXB0SWRlbnRpZmllciA9IGlkZW50aWZpZXI7
CisgICAgICAgICAgICAgICAgZWxzZSB7CisgICAgICAgICAgICAgICAgICAgIFBhZ2VBZ2VudC5y
ZW1vdmVTY3JpcHRUb0V2YWx1YXRlT25Mb2FkKGlkZW50aWZpZXIpOworICAgICAgICAgICAgICAg
ICAgICBkZWxldGUgdGhpcy5fZmFrZVdvcmtlcnNTY3JpcHRJZGVudGlmaWVyOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRoaXMuX2Zha2VXb3JrZXJzU2Ny
aXB0SWRlbnRpZmllciA9ICI8Y2FsbGJhY2stcGVuZGluZz4iOworICAgICAgICAgICAgUGFnZUFn
ZW50LmFkZFNjcmlwdFRvRXZhbHVhdGVPbkxvYWQoIigiICsgSW5qZWN0ZWRGYWtlV29ya2VyICsg
IikiLCBmYWxzZSwgY2FsbGJhY2suYmluZCh0aGlzKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAg
ICAgICAgICBpZiAodGhpcy5fZmFrZVdvcmtlcnNTY3JpcHRJZGVudGlmaWVyICE9PSAiPGNhbGxi
YWNrLXBlbmRpbmc+IikKKyAgICAgICAgICAgICAgICBQYWdlQWdlbnQucmVtb3ZlU2NyaXB0VG9F
dmFsdWF0ZU9uTG9hZCh0aGlzLl9mYWtlV29ya2Vyc1NjcmlwdElkZW50aWZpZXIpOworICAgICAg
ICAgICAgZGVsZXRlIHRoaXMuX2Zha2VXb3JrZXJzU2NyaXB0SWRlbnRpZmllcjsKKyAgICAgICAg
fQogICAgIH0sCiAKICAgICByZXNldDogZnVuY3Rpb24oKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111944</attachid>
            <date>2011-10-21 04:49:24 -0700</date>
            <delta_ts>2011-10-24 09:32:38 -0700</delta_ts>
            <desc>patch (fixed style)</desc>
            <filename>extensions-reload-script.diff</filename>
            <type>text/plain</type>
            <size>18165</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0YzBkODAzLi44MTUyMzYxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTUgQEAKIDIwMTEtMTAt
MjEgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KIAorICAgICAgICBXZWIg
SW5zcGVjdG9yOiBbRXh0ZW5zaW9ucyBBUEldIGFsbG93IGV4dGVuc2lvbnMgdG8gc3BlY2lmeSBz
Y3JpcHQgdG8gYmUgaW5qZWN0ZWQgb24gcmVsb2FkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDYwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1y
ZWxvYWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9u
cy9leHRlbnNpb25zLXJlbG9hZC5odG1sOiBBZGRlZC4KKworMjAxMS0xMC0yMSAgQW5kcmV5IEtv
c3lha292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgorCiAgICAgICAgIFtRdF0gMiBpbnNwZWN0b3Iv
ZXh0ZW5zaW9ucyB0ZXN0cyB0aW1lcyBvdXQgb24gTWFjIGFuZCBsaW51eCBhZnRlciByOTc4NTAK
ICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNDE0CiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMt
cmVsb2FkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4
dGVuc2lvbnMtcmVsb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi4xZTk1NTM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9y
L2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1yZWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEg
QEAKK1Rlc3RzIHRoYXQgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5yZWxvYWQoKSBzdWNj
ZXNzZnVsbHkgaW5qZWN0cyB1c2VyJ3MgY29kZSB1cG9uIHJlbG9hZAorCitTdGFydGVkIGV4dGVu
c2lvbi4KK1J1bm5pbmcgdGVzdHMuLi4KK1JVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RSZWxv
YWRJbmplY3RzQ29kZQorUGFnZSByZWxvYWRlZC4KK1BhZ2UgcmVsb2FkZWQuCitXaXRoIGluamVj
dGVkIGNvZGU6IGZvbyA9IDQyCitXaXRob3V0IGluamVjdGVkIGNvZGU6IGZvbyA9IHVuZGVmaW5l
ZAorQWxsIHRlc3RzIGRvbmUuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9l
eHRlbnNpb25zL2V4dGVuc2lvbnMtcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3Iv
ZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAuLjU1ZDBhN2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlbG9hZC5odG1sCkBAIC0wLDAgKzEsNDAgQEAK
KzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3Iv
aW5zcGVjdG9yLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVz
dHMvaW5zcGVjdG9yL2V4dGVuc2lvbnMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCI+CisKK3dpbmRvdy5iYXIgPSAiZm9vID0gIiArIHdpbmRvdy5mb287
CisKK2Z1bmN0aW9uIGV4dGVuc2lvbl90ZXN0UmVsb2FkSW5qZWN0c0NvZGUobmV4dFRlc3QpCit7
CisgICAgdmFyIHZhbHVlV2l0aEluamVjdGVkQ29kZTsKKworICAgIGZ1bmN0aW9uIG9uUGFnZVdp
dGhJbmplY3RlZENvZGVMb2FkZWQoKQorICAgIHsKKyAgICAgICAgd2ViSW5zcGVjdG9yLmluc3Bl
Y3RlZFdpbmRvdy5ldmFsKCJ3aW5kb3cuYmFyIiwgZnVuY3Rpb24odmFsdWUpIHsKKyAgICAgICAg
ICAgIHZhbHVlV2l0aEluamVjdGVkQ29kZSA9IHZhbHVlOworICAgICAgICAgICAgZXZhbHVhdGVP
bkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0LnJ1bldoZW5QYWdlTG9hZHMocmVwbHkpIiwgb25QYWdl
V2l0aG91dEluamVjdGVkQ29kZUxvYWRlZCk7CisgICAgICAgICAgICB3ZWJJbnNwZWN0b3IuaW5z
cGVjdGVkV2luZG93LnJlbG9hZCgpOworICAgICAgICB9KTsKKyAgICB9CisgICAgZnVuY3Rpb24g
b25QYWdlV2l0aG91dEluamVjdGVkQ29kZUxvYWRlZCgpCisgICAgeworICAgICAgICB3ZWJJbnNw
ZWN0b3IuaW5zcGVjdGVkV2luZG93LmV2YWwoIndpbmRvdy5iYXIiLCBmdW5jdGlvbih2YWx1ZSkg
eworICAgICAgICAgICAgb3V0cHV0KCJXaXRoIGluamVjdGVkIGNvZGU6ICIgKyB2YWx1ZVdpdGhJ
bmplY3RlZENvZGUpOworICAgICAgICAgICAgb3V0cHV0KCJXaXRob3V0IGluamVjdGVkIGNvZGU6
ICIgKyB2YWx1ZSk7CisgICAgICAgICAgICBuZXh0VGVzdCgpOworICAgICAgICB9KTsKKyAgICB9
CisgICAgZXZhbHVhdGVPbkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0LnJ1bldoZW5QYWdlTG9hZHMo
cmVwbHkpIiwgb25QYWdlV2l0aEluamVjdGVkQ29kZUxvYWRlZCk7CisgICAgd2ViSW5zcGVjdG9y
Lmluc3BlY3RlZFdpbmRvdy5yZWxvYWQoeworICAgICAgICBpbmplY3RlZFNjcmlwdDogIndpbmRv
dy5mb28gPSA0MjsiCisgICAgfSk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25s
b2FkPSJydW5UZXN0KCkiPgorPHA+VGVzdHMgdGhhdCB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2lu
ZG93LnJlbG9hZCgpIHN1Y2Nlc3NmdWxseSBpbmplY3RzIHVzZXIncyBjb2RlIHVwb24gcmVsb2Fk
PC9wPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGRkMmFkYWMuLjQ5ZDc3ZDEgMTAw
NzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNiBAQAorMjAxMS0xMC0yMSAgQW5kcmV5IEtvc3lha292ICA8
Y2FzZXFAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtFeHRlbnNpb25z
IEFQSV0gYWxsb3cgZXh0ZW5zaW9ucyB0byBzcGVjaWZ5IHNjcmlwdCB0byBiZSBpbmplY3RlZCBv
biByZWxvYWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTcwNjAwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
LSBjaGFuZ2Ugd2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2UucmVsb2FkKCkgdG8gYWNjZXB0IG11
bHRpcGxlIG9wdGlvbnMgaW4gYW4gb2JqZWN0CisgICAgICAgIC0gYWRkIGFuIGFiaWxpdHkgdG8g
aW5qZWN0IGEgc2NyaXB0IHVwb2FuIGEgcGFnZSByZWxvYWQKKyAgICAgICAgLSByZXR1cm4gc2Ny
aXB0IGlkIGluIGFkZFNjcmlwdFRvRXZhbHVhdGVPbkxvYWQoKQorICAgICAgICAtIHByb3ZpZGUg
cmVtb3ZlU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZCgpCisgICAgICAgIC0gc3RvcmUgc2NyaXB0cyB0
byBldmFsdWF0ZSBvbiBsb2FkIGluIGluc3BlY3RvciBzdGF0ZSBjb29raWUKKworICAgICAgICBU
ZXN0OiBpbnNwZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlbG9hZC5odG1sCisKKyAgICAg
ICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3Bl
Y3RvclBhZ2VBZ2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6
Okluc3BlY3RvclBhZ2VBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdl
bnQ6OnJlc3RvcmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjphZGRT
Y3JpcHRUb0V2YWx1YXRlT25Mb2FkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VB
Z2VudDo6cmVtb3ZlU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpJ
bnNwZWN0b3JQYWdlQWdlbnQ6OnJlbW92ZUFsbFNjcmlwdHNUb0V2YWx1YXRlT25Mb2FkKToKKyAg
ICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RJ
bldvcmxkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVOYXZp
Z2F0ZWQpOgorICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaDoKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qczoKKyAgICAgICAgKGluamVj
dGVkRXh0ZW5zaW9uQVBJLkluc3BlY3RlZFdpbmRvdy5wcm90b3R5cGUucmVsb2FkKToKKyAgICAg
ICAgKiBpbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qczoKKyAgICAgICAgKFdl
Ykluc3BlY3Rvci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9vblJlbG9hZCk6CisgICAgICAg
ICogaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChX
ZWJJbnNwZWN0b3IuV29ya2Vyc1NpZGViYXJQYW5lLnByb3RvdHlwZS5zZXRJbnN0cnVtZW50YXRp
b24uY2FsbGJhY2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtlcnNTaWRlYmFyUGFuZS5w
cm90b3R5cGUuc2V0SW5zdHJ1bWVudGF0aW9uKToKKwogMjAxMS0xMC0yMCAgQW5kcmV5IEtvc3lh
a292ICA8Y2FzZXFAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1ha2Ug
ZXh0ZW5zaW9uIHRlc3RzIHBhc3Mgb24gY2hyb21pdW0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bnNwZWN0b3IuanNvbgppbmRleCBjNTViZTQwLi4wZTMyZTBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0xNDAsNiArMTQwLDEyIEBACiAgICAgICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAic2Vzc2lvbiIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRp
b24iOiAiVHJ1ZSBpbiBjYXNlIG9mIHNlc3Npb24gY29va2llLiIgfQogICAgICAgICAgICAgICAg
IF0sCiAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisgICAg
ICAgICAgICB7CisgICAgICAgICAgICAgICAgImlkIjogIlNjcmlwdElkZW50aWZpZXIiLAorICAg
ICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIlVuaXF1ZSBzY3JpcHQgaWRlbnRpZmllci4iLAorICAgICAgICAgICAgICAgICJoaWRk
ZW4iOiB0cnVlCiAgICAgICAgICAgICB9CiAgICAgICAgIF0sCiAgICAgICAgICJjb21tYW5kcyI6
IFsKQEAgLTE1NCw3ICsxNjAsMTEgQEAKICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAi
bmFtZSI6ICJhZGRTY3JpcHRUb0V2YWx1YXRlT25Mb2FkIiwKICAgICAgICAgICAgICAgICAicGFy
YW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzY3JpcHRTb3VyY2Ui
LCAidHlwZSI6ICJzdHJpbmciIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJzY3Jp
cHRTb3VyY2UiLCAidHlwZSI6ICJzdHJpbmciIH0sCisgICAgICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAicmVtb3ZlT25SZWxvYWQiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1
ZSB9CisgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpZGVudGlmaWVyIiwgIiRyZWYiOiAiU2NyaXB0
SWRlbnRpZmllciIsICJkZXNjcmlwdGlvbiI6ICJJZGVudGlmaWVyIG9mIHRoZSBhZGRlZCBzY3Jp
cHQuIiB9CiAgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAiaGlkZGVuIjogdHJ1
ZQogICAgICAgICAgICAgfSwKQEAgLTE2Myw2ICsxNzMsMTMgQEAKICAgICAgICAgICAgICAgICAi
aGlkZGVuIjogdHJ1ZQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKKyAgICAgICAgICAg
ICAgICAibmFtZSI6ICJyZW1vdmVTY3JpcHRUb0V2YWx1YXRlT25Mb2FkIiwKKyAgICAgICAgICAg
ICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpZGVu
dGlmaWVyIiwgIiRyZWYiOiAiU2NyaXB0SWRlbnRpZmllciIgfQorICAgICAgICAgICAgICAgIF0s
CisgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisgICAgICAg
ICAgICB7CiAgICAgICAgICAgICAgICAgIm5hbWUiOiAicmVsb2FkIiwKICAgICAgICAgICAgICAg
ICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpZ25vcmVD
YWNoZSIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24i
OiAiSWYgdHJ1ZSwgYnJvd3NlciBjYWNoZSBpcyBpZ25vcmVkIChhcyBpZiB0aGUgdXNlciBwcmVz
c2VkIFNoaWZ0K3JlZnJlc2gpLiIgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvclBhZ2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5z
cGVjdG9yUGFnZUFnZW50LmNwcAppbmRleCAyYzYyMDQ5Li5mYTMxMTdlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtNzMsNiArNzMs
NyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIG5hbWVzcGFjZSBQYWdlQWdlbnRTdGF0ZSB7CiBz
dGF0aWMgY29uc3QgY2hhciBwYWdlQWdlbnRFbmFibGVkW10gPSAicmVzb3VyY2VBZ2VudEVuYWJs
ZWQiOworc3RhdGljIGNvbnN0IGNoYXIgcGFnZUFnZW50U2NyaXB0c1RvRXZhbHVhdGVPbkxvYWRb
XSA9ICJwYWdlQWdlbnRTY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCI7CiB9CiAKIHN0YXRpYyBib29s
IGRlY29kZVNoYXJlZEJ1ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyLCBjb25z
dCBTdHJpbmcmIHRleHRFbmNvZGluZ05hbWUsIFN0cmluZyogcmVzdWx0KQpAQCAtMjc1LDYgKzI3
Niw3IEBAIEluc3BlY3RvclBhZ2VBZ2VudDo6SW5zcGVjdG9yUGFnZUFnZW50KEluc3RydW1lbnRp
bmdBZ2VudHMqIGluc3RydW1lbnRpbmdBZ2VudHMsCiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFu
YWdlcihpbmplY3RlZFNjcmlwdE1hbmFnZXIpCiAgICAgLCBtX3N0YXRlKHN0YXRlKQogICAgICwg
bV9mcm9udGVuZCgwKQorICAgICwgbV9sYXN0U2NyaXB0SWRlbnRpZmllcigwKQogewogfQogCkBA
IC0yOTYsNiArMjk4LDE1IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpyZXN0b3JlKCkKICAg
ICAgICAgRXJyb3JTdHJpbmcgZXJyb3I7CiAgICAgICAgIGVuYWJsZSgmZXJyb3IpOwogICAgIH0K
KyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBzY3JpcHRzID0gbV9zdGF0ZS0+Z2V0T2JqZWN0
KFBhZ2VBZ2VudFN0YXRlOjpwYWdlQWdlbnRTY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCk7CisgICAg
aWYgKHNjcmlwdHMpIHsKKyAgICAgICAgSW5zcGVjdG9yT2JqZWN0Ojpjb25zdF9pdGVyYXRvciBl
bmQgPSBzY3JpcHRzLT5lbmQoKTsKKyAgICAgICAgZm9yIChJbnNwZWN0b3JPYmplY3Q6OmNvbnN0
X2l0ZXJhdG9yIGl0ID0gc2NyaXB0cy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAg
ICAgICAgICBTdHJpbmcgc2NyaXB0VGV4dDsKKyAgICAgICAgICAgIGlmIChpdC0+c2Vjb25kLT5h
c1N0cmluZygmc2NyaXB0VGV4dCkpCisgICAgICAgICAgICAgICAgbV9zY3JpcHRzVG9FdmFsdWF0
ZU9uTG9hZC5hZGQoaXQtPmZpcnN0LCBTY3JpcHRUb0V2YWx1YXRlT25Mb2FkOjpjcmVhdGUoc2Ny
aXB0VGV4dCwgdHJ1ZSkpOworICAgICAgICB9CisgICAgfQogfQogCiB2b2lkIEluc3BlY3RvclBh
Z2VBZ2VudDo6ZW5hYmxlKEVycm9yU3RyaW5nKikKQEAgLTMxMCwxNCArMzIxLDQyIEBAIHZvaWQg
SW5zcGVjdG9yUGFnZUFnZW50OjpkaXNhYmxlKEVycm9yU3RyaW5nKikKICAgICBtX2luc3RydW1l
bnRpbmdBZ2VudHMtPnNldEluc3BlY3RvclBhZ2VBZ2VudCgwKTsKIH0KIAotdm9pZCBJbnNwZWN0
b3JQYWdlQWdlbnQ6OmFkZFNjcmlwdFRvRXZhbHVhdGVPbkxvYWQoRXJyb3JTdHJpbmcqLCBjb25z
dCBTdHJpbmcmIHNvdXJjZSkKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjphZGRTY3JpcHRUb0V2
YWx1YXRlT25Mb2FkKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzb3VyY2UsIGNvbnN0IGJv
b2wqIG9wdGlvbmFsUmVtb3ZlT25SZWxvYWQsIFN0cmluZyogaWRlbnRpZmllcikKIHsKLSAgICBt
X3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkLmFwcGVuZChzb3VyY2UpOworICAgIGJvb2wgcmVtb3Zl
T25SZWxvYWQgPSBvcHRpb25hbFJlbW92ZU9uUmVsb2FkICYmICpvcHRpb25hbFJlbW92ZU9uUmVs
b2FkOworICAgIFJlZlB0cjxTY3JpcHRUb0V2YWx1YXRlT25Mb2FkPiBzY3JpcHQgPSBTY3JpcHRU
b0V2YWx1YXRlT25Mb2FkOjpjcmVhdGUoc291cmNlLCAhcmVtb3ZlT25SZWxvYWQpOworCisgICAg
ZG8geworICAgICAgICAqaWRlbnRpZmllciA9IFN0cmluZzo6bnVtYmVyKCsrbV9sYXN0U2NyaXB0
SWRlbnRpZmllcik7CisgICAgfSB3aGlsZSAoIW1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQuYWRk
KCppZGVudGlmaWVyLCBzY3JpcHQpLnNlY29uZCk7CisKKyAgICBpZiAoIXJlbW92ZU9uUmVsb2Fk
KSB7CisgICAgICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHNjcmlwdHMgPSBtX3N0YXRlLT5n
ZXRPYmplY3QoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudFNjcmlwdHNUb0V2YWx1YXRlT25Mb2Fk
KTsKKyAgICAgICAgaWYgKCFzY3JpcHRzKSB7CisgICAgICAgICAgICBzY3JpcHRzID0gSW5zcGVj
dG9yT2JqZWN0OjpjcmVhdGUoKTsKKyAgICAgICAgICAgIG1fc3RhdGUtPnNldE9iamVjdChQYWdl
QWdlbnRTdGF0ZTo6cGFnZUFnZW50U2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQsIHNjcmlwdHMpOwor
ICAgICAgICB9CisgICAgICAgIHNjcmlwdHMtPnNldFN0cmluZygqaWRlbnRpZmllciwgc291cmNl
KTsKKyAgICB9Cit9CisKK3ZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpyZW1vdmVTY3JpcHRUb0V2
YWx1YXRlT25Mb2FkKEVycm9yU3RyaW5nKiBlcnJvciwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVy
KQoreworICAgIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8U2NyaXB0VG9FdmFsdWF0ZU9uTG9hZD4g
Pjo6aXRlcmF0b3IgaXQgPSBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkLmZpbmQoaWRlbnRpZmll
cik7CisgICAgaWYgKGl0ID09IG1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQuZW5kKCkpIHsKKyAg
ICAgICAgKmVycm9yID0gIlNjcmlwdCBub3QgZm91bmQiOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIG1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQucmVtb3ZlKGl0KTsKKyAgICBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBzY3JpcHRzID0gbV9zdGF0ZS0+Z2V0T2JqZWN0KFBhZ2VBZ2VudFN0
YXRlOjpwYWdlQWdlbnRTY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCk7CisgICAgQVNTRVJUKHNjcmlw
dHMpOworICAgIHNjcmlwdHMtPnJlbW92ZShpZGVudGlmaWVyKTsKIH0KIAogdm9pZCBJbnNwZWN0
b3JQYWdlQWdlbnQ6OnJlbW92ZUFsbFNjcmlwdHNUb0V2YWx1YXRlT25Mb2FkKEVycm9yU3RyaW5n
KikKIHsKICAgICBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkLmNsZWFyKCk7CisgICAgbV9zdGF0
ZS0+c2V0T2JqZWN0KFBhZ2VBZ2VudFN0YXRlOjpwYWdlQWdlbnRTY3JpcHRzVG9FdmFsdWF0ZU9u
TG9hZCwgMCk7CiB9CiAKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpyZWxvYWQoRXJyb3JTdHJp
bmcqLCBjb25zdCBib29sKiBjb25zdCBvcHRpb25hbElnbm9yZUNhY2hlKQpAQCAtNTY1LDkgKzYw
NCwxMCBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RJbldv
cmxkKEZyYW1lKiBmcmFtZSwgRE9NV3JhcHBlcldvcgogCiAgICAgaWYgKG1fc2NyaXB0c1RvRXZh
bHVhdGVPbkxvYWQuc2l6ZSgpKSB7CiAgICAgICAgIFNjcmlwdFN0YXRlKiBzY3JpcHRTdGF0ZSA9
IG1haW5Xb3JsZFNjcmlwdFN0YXRlKGZyYW1lKTsKLSAgICAgICAgZm9yIChWZWN0b3I8U3RyaW5n
Pjo6aXRlcmF0b3IgaXQgPSBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkLmJlZ2luKCk7Ci0gICAg
ICAgICAgICAgaXQgIT0gbV9zY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZC5lbmQoKTsgKytpdCkgewot
ICAgICAgICAgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdFNjcmlwdCgqaXQsIHNj
cmlwdFN0YXRlKTsKKyAgICAgICAgSGFzaE1hcDxTdHJpbmcsIFJlZlB0cjxTY3JpcHRUb0V2YWx1
YXRlT25Mb2FkPiA+OjppdGVyYXRvciBlbmQgPSBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkLmVu
ZCgpOworICAgICAgICBmb3IgKEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8U2NyaXB0VG9FdmFsdWF0
ZU9uTG9hZD4gPjo6aXRlcmF0b3IgaXQgPSBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkLmJlZ2lu
KCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICAgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFn
ZXItPmluamVjdFNjcmlwdChpdC0+c2Vjb25kLT5zY3JpcHRUZXh0KCksIHNjcmlwdFN0YXRlKTsK
KyAgICAgICAgICAgIGl0LT5zZWNvbmQtPm1hcmtVc2VkKCk7CiAgICAgICAgIH0KICAgICB9CiB9
CkBAIC01ODQsNiArNjI0LDE1IEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50Ojpsb2FkRXZlbnRG
aXJlZCgpCiAKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZU5hdmlnYXRlZChEb2N1bWVu
dExvYWRlciogbG9hZGVyKQogeworICAgIGlmIChsb2FkZXItPmZyYW1lKCkgPT0gbV9wYWdlLT5t
YWluRnJhbWUoKSkgeworICAgICAgICBTY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCBzY3JpcHRzVG9S
ZXRhaW47CisgICAgICAgIFNjcmlwdHNUb0V2YWx1YXRlT25Mb2FkOjpjb25zdF9pdGVyYXRvciBl
bmQgPSBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkLmVuZCgpOworICAgICAgICBmb3IgKFNjcmlw
dHNUb0V2YWx1YXRlT25Mb2FkOjpjb25zdF9pdGVyYXRvciBpdCA9IG1fc2NyaXB0c1RvRXZhbHVh
dGVPbkxvYWQuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgICAgICBpZiAoIWl0
LT5zZWNvbmQtPmV4cGlyZWQoKSkKKyAgICAgICAgICAgICAgICBzY3JpcHRzVG9SZXRhaW4uYWRk
KGl0LT5maXJzdCwgaXQtPnNlY29uZCk7CisgICAgICAgIH0KKyAgICAgICAgbV9zY3JpcHRzVG9F
dmFsdWF0ZU9uTG9hZC5zd2FwKHNjcmlwdHNUb1JldGFpbik7CisgICAgfQogICAgIG1fZnJvbnRl
bmQtPmZyYW1lTmF2aWdhdGVkKGJ1aWxkT2JqZWN0Rm9yRnJhbWUobG9hZGVyLT5mcmFtZSgpKSwg
bG9hZGVySWQobG9hZGVyKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNw
ZWN0b3JQYWdlQWdlbnQuaAppbmRleCBkNDM4NzRiLi4wZmYxYmU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC01NSwxMiArNTUsNDYgQEAg
Y2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIGNsYXNzIEtVUkw7CiBjbGFzcyBQYWdlOwogY2xh
c3MgUmVndWxhckV4cHJlc3Npb247CitjbGFzcyBTY3JpcHRUb0V2YWx1YXRlT25Mb2FkOwogY2xh
c3MgU2hhcmVkQnVmZmVyOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsKIAogY2xhc3Mg
SW5zcGVjdG9yUGFnZUFnZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJbnNwZWN0b3JQ
YWdlQWdlbnQpOworCisgICAgY2xhc3MgU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZDogcHVibGljIFJl
ZkNvdW50ZWQ8U2NyaXB0VG9FdmFsdWF0ZU9uTG9hZD4geworICAgIHB1YmxpYzoKKyAgICAgICAg
c3RhdGljIFBhc3NSZWZQdHI8U2NyaXB0VG9FdmFsdWF0ZU9uTG9hZD4gY3JlYXRlKFN0cmluZyB0
ZXh0LCBib29sIHBlcnNpc3RPblJlbG9hZCkKKyAgICAgICAgeworICAgICAgICAgICAgcmV0dXJu
IGFkb3B0UmVmKG5ldyBTY3JpcHRUb0V2YWx1YXRlT25Mb2FkKHRleHQsIHBlcnNpc3RPblJlbG9h
ZCkpOworICAgICAgICB9CisKKyAgICAgICAgU3RyaW5nIHNjcmlwdFRleHQoKSBjb25zdCB7IHJl
dHVybiBtX3NjcmlwdFRleHQ7IH0KKyAgICAgICAgYm9vbCBleHBpcmVkKCkgY29uc3QgeyByZXR1
cm4gbV9zdGF0ZSA9PSBFeHBpcmVkOyB9CisgICAgICAgIHZvaWQgbWFya1VzZWQoKQorICAgICAg
ICB7CisgICAgICAgICAgICBpZiAobV9zdGF0ZSA9PSBFdmFsdWF0ZU9uY2UpCisgICAgICAgICAg
ICAgICAgbV9zdGF0ZSA9IEV4cGlyZWQ7CisgICAgICAgIH0KKworICAgIHByaXZhdGU6CisgICAg
ICAgIFNjcmlwdFRvRXZhbHVhdGVPbkxvYWQoU3RyaW5nIHRleHQsIGJvb2wgcGVyc2lzdE9uUmVs
b2FkKQorICAgICAgICAgICAgOiBtX3NjcmlwdFRleHQodGV4dCkKKyAgICAgICAgICAgICwgbV9z
dGF0ZShwZXJzaXN0T25SZWxvYWQgPyBQZXJzaXN0ZW50IDogRXZhbHVhdGVPbmNlKQorICAgICAg
ICB7CisgICAgICAgIH0KKyAgICAgICAgICAKKyAgICAgICAgZW51bSBTdGF0ZSB7CisgICAgICAg
ICAgICBQZXJzaXN0ZW50LAorICAgICAgICAgICAgRXZhbHVhdGVPbmNlLAorICAgICAgICAgICAg
RXhwaXJlZAorICAgICAgICB9OworCisgICAgICAgIFN0cmluZyBtX3NjcmlwdFRleHQ7CisgICAg
ICAgIFN0YXRlIG1fc3RhdGU7CisgICAgfTsKKwogcHVibGljOgogCiAgICAgZW51bSBSZXNvdXJj
ZVR5cGUgewpAQCAtODksNyArMTIzLDggQEAgcHVibGljOgogICAgIC8vIFBhZ2UgQVBJIGZvciBJ
bnNwZWN0b3JGcm9udGVuZAogICAgIHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKik7CiAgICAgdm9p
ZCBkaXNhYmxlKEVycm9yU3RyaW5nKik7Ci0gICAgdm9pZCBhZGRTY3JpcHRUb0V2YWx1YXRlT25M
b2FkKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBzb3VyY2UpOworICAgIHZvaWQgYWRkU2Ny
aXB0VG9FdmFsdWF0ZU9uTG9hZChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc291cmNlLCBj
b25zdCBib29sKiBvcHRpb25hbFJlbW92ZU9uUmVsb2FkLCBTdHJpbmcqIHJlc3VsdCk7CisgICAg
dm9pZCByZW1vdmVTY3JpcHRUb0V2YWx1YXRlT25Mb2FkKEVycm9yU3RyaW5nKiwgY29uc3QgU3Ry
aW5nJiBpZGVudGlmaWVyKTsKICAgICB2b2lkIHJlbW92ZUFsbFNjcmlwdHNUb0V2YWx1YXRlT25M
b2FkKEVycm9yU3RyaW5nKik7CiAgICAgdm9pZCByZWxvYWQoRXJyb3JTdHJpbmcqLCBjb25zdCBi
b29sKiBjb25zdCBvcHRpb25hbElnbm9yZUNhY2hlKTsKICAgICB2b2lkIG9wZW4oRXJyb3JTdHJp
bmcqLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgYm9vbCogY29uc3QgaW5OZXdXaW5kb3cpOwpA
QCAtMTMxLDcgKzE2Niw5IEBAIHByaXZhdGU6CiAgICAgSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyKiBt
X2luamVjdGVkU2NyaXB0TWFuYWdlcjsKICAgICBJbnNwZWN0b3JTdGF0ZSogbV9zdGF0ZTsKICAg
ICBJbnNwZWN0b3JGcm9udGVuZDo6UGFnZSogbV9mcm9udGVuZDsKLSAgICBWZWN0b3I8U3RyaW5n
PiBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkOworICAgIGxvbmcgbV9sYXN0U2NyaXB0SWRlbnRp
ZmllcjsKKyAgICB0eXBlZGVmIEhhc2hNYXA8U3RyaW5nLCBSZWZQdHI8U2NyaXB0VG9FdmFsdWF0
ZU9uTG9hZD4gPiBTY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZDsKKyAgICBTY3JpcHRzVG9FdmFsdWF0
ZU9uTG9hZCBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkOwogICAgIEhhc2hNYXA8RnJhbWUqLCBT
dHJpbmc+IG1fZnJhbWVUb0lkZW50aWZpZXI7CiAgICAgSGFzaE1hcDxTdHJpbmcsIEZyYW1lKj4g
bV9pZGVudGlmaWVyVG9GcmFtZTsKICAgICBIYXNoTWFwPERvY3VtZW50TG9hZGVyKiwgU3RyaW5n
PiBtX2xvYWRlclRvSWRlbnRpZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uQVBJLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9FeHRlbnNpb25BUEkuanMKaW5kZXggZGJiYjkxZC4uMzNjZmQzZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25BUEkuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25BUEkuanMK
QEAgLTQ4OSw5ICs0ODksMTcgQEAgZnVuY3Rpb24gSW5zcGVjdGVkV2luZG93KCkKIH0KIAogSW5z
cGVjdGVkV2luZG93LnByb3RvdHlwZSA9IHsKLSAgICByZWxvYWQ6IGZ1bmN0aW9uKHVzZXJBZ2Vu
dCkKLSAgICB7Ci0gICAgICAgIHJldHVybiBleHRlbnNpb25TZXJ2ZXIuc2VuZFJlcXVlc3QoeyBj
b21tYW5kOiAicmVsb2FkIiwgdXNlckFnZW50OiB1c2VyQWdlbnQgfSk7CisgICAgcmVsb2FkOiBm
dW5jdGlvbihvcHRpb25zT3JVc2VyQWdlbnQpCisgICAgeworICAgICAgICB2YXIgb3B0aW9ucyA9
IG51bGw7CisgICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc09yVXNlckFnZW50ID09PSAib2JqZWN0
IikKKyAgICAgICAgICAgIG9wdGlvbnMgPSBvcHRpb25zT3JVc2VyQWdlbnQ7CisgICAgICAgIGVs
c2UgaWYgKHR5cGVvZiBvcHRpb25zT3JVc2VyQWdlbnQgPT09ICJzdHJpbmciKSB7CisgICAgICAg
ICAgICBvcHRpb25zID0geyB1c2VyQWdlbnQ6IG9wdGlvbnNPclVzZXJBZ2VudCB9OworICAgICAg
ICAgICAgY29uc29sZS53YXJuKCJQYXNzaW5nIHVzZXJBZ2VudCBhcyBzdHJpbmcgcGFyYW1ldGVy
IHRvIGluc3BlY3RlZFdpbmRvdy5yZWxvYWQoKSBpcyBkZXByZWNhdGVkLiAiICsKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAiVXNlIGluc3BlY3RlZFdpbmRvdy5yZWxvYWQoeyB1c2VyQWdlbnQ6
IHZhbHVlfSkgaW5zdGVhZC4iKTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZXh0ZW5zaW9u
U2VydmVyLnNlbmRSZXF1ZXN0KHsgY29tbWFuZDogInJlbG9hZCIsIG9wdGlvbnM6IG9wdGlvbnMg
fSk7CiAgICAgfSwKIAogICAgIGV2YWw6IGZ1bmN0aW9uKGV4cHJlc3Npb24sIGNhbGxiYWNrKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25T
ZXJ2ZXIuanMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNl
cnZlci5qcwppbmRleCA1ODFjZDJmLi4xZmJmZGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwpAQCAtMjgyLDkgKzI4
MiwxNCBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVyLnByb3RvdHlwZSA9IHsKIAogICAg
IF9vblJlbG9hZDogZnVuY3Rpb24obWVzc2FnZSkKICAgICB7Ci0gICAgICAgIGlmICh0eXBlb2Yg
bWVzc2FnZS51c2VyQWdlbnQgPT09ICJzdHJpbmciKQotICAgICAgICAgICAgTmV0d29ya0FnZW50
LnNldFVzZXJBZ2VudE92ZXJyaWRlKG1lc3NhZ2UudXNlckFnZW50KTsKLQorICAgICAgICB2YXIg
b3B0aW9ucyA9IG1lc3NhZ2Uub3B0aW9ucyB8fCB7fTsKKyAgICAgICAgTmV0d29ya0FnZW50LnNl
dFVzZXJBZ2VudE92ZXJyaWRlKHR5cGVvZiBvcHRpb25zLnVzZXJBZ2VudCA9PT0gInN0cmluZyIg
PyBvcHRpb25zLnVzZXJBZ2VudCA6ICIiKTsKKyAgICAgICAgaWYgKG9wdGlvbnMuaW5qZWN0ZWRT
Y3JpcHQpIHsKKyAgICAgICAgICAgIC8vIFdyYXAgY2xpZW50IHNjcmlwdCBpbnRvIGFub255bW91
cyBmdW5jdGlvbiwgcmV0dXJuIGFub3RoZXIgYW5vbnltb3VzIGZ1bmN0aW9uIHRoYXQKKyAgICAg
ICAgICAgIC8vIHJldHVybnMgZW1wdHkgb2JqZWN0IGZvciBjb21wYXRpYmlsaXR5IHdpdGggSW5q
ZWN0ZWRTY3JpcHRNYW5hZ2VyIG9uIHRoZSBiYWNrZW5kLgorICAgICAgICAgICAgdmFyIGluamVj
dGVkU2NyaXB0ID0gIigoZnVuY3Rpb24oKXsiICsgb3B0aW9ucy5pbmplY3RlZFNjcmlwdCArICJ9
KSgpLGZ1bmN0aW9uKCl7cmV0dXJuIHt9fSkiOworICAgICAgICAgICAgUGFnZUFnZW50LmFkZFNj
cmlwdFRvRXZhbHVhdGVPbkxvYWQoaW5qZWN0ZWRTY3JpcHQsIHRydWUpOworICAgICAgICB9CiAg
ICAgICAgIFBhZ2VBZ2VudC5yZWxvYWQoZmFsc2UpOwogICAgICAgICByZXR1cm4gdGhpcy5fc3Rh
dHVzLk9LKCk7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvV29ya2Vyc1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanMKaW5kZXggMjQ2NGU3Yi4uNDg5NjJhMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lk
ZWJhclBhbmUuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3Jr
ZXJzU2lkZWJhclBhbmUuanMKQEAgLTc4LDkgKzc4LDI3IEBAIFdlYkluc3BlY3Rvci5Xb3JrZXJz
U2lkZWJhclBhbmUucHJvdG90eXBlID0gewogCiAgICAgc2V0SW5zdHJ1bWVudGF0aW9uOiBmdW5j
dGlvbihlbmFibGVkKQogICAgIHsKLSAgICAgICAgUGFnZUFnZW50LnJlbW92ZUFsbFNjcmlwdHNU
b0V2YWx1YXRlT25Mb2FkKCk7Ci0gICAgICAgIGlmIChlbmFibGVkKQotICAgICAgICAgICAgUGFn
ZUFnZW50LmFkZFNjcmlwdFRvRXZhbHVhdGVPbkxvYWQoIigiICsgSW5qZWN0ZWRGYWtlV29ya2Vy
ICsgIikiKTsKKyAgICAgICAgaWYgKCFlbmFibGVkID09PSAhdGhpcy5fZmFrZVdvcmtlcnNTY3Jp
cHRJZGVudGlmaWVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChlbmFibGVk
KSB7CisgICAgICAgICAgICBmdW5jdGlvbiBjYWxsYmFjayhlcnJvciwgaWRlbnRpZmllcikKKyAg
ICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAvLyBDaGVjayBpZiBzb21lb25lIGhhcyBkaXNh
YmxlZCB0aGUgaW5zdHJ1bWVudGF0aW9uIHdoaWxlIHdlIHdlcmUgZW5hYmxpbmcgaXQKKyAgICAg
ICAgICAgICAgICBpZiAodGhpcy5fZmFrZVdvcmtlcnNTY3JpcHRJZGVudGlmaWVyKQorICAgICAg
ICAgICAgICAgICAgICB0aGlzLl9mYWtlV29ya2Vyc1NjcmlwdElkZW50aWZpZXIgPSBpZGVudGlm
aWVyOworICAgICAgICAgICAgICAgIGVsc2UgeworICAgICAgICAgICAgICAgICAgICBQYWdlQWdl
bnQucmVtb3ZlU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZChpZGVudGlmaWVyKTsKKyAgICAgICAgICAg
ICAgICAgICAgZGVsZXRlIHRoaXMuX2Zha2VXb3JrZXJzU2NyaXB0SWRlbnRpZmllcjsKKyAgICAg
ICAgICAgICAgICB9CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0aGlzLl9mYWtlV29ya2Vy
c1NjcmlwdElkZW50aWZpZXIgPSAiPGNhbGxiYWNrLXBlbmRpbmc+IjsKKyAgICAgICAgICAgIFBh
Z2VBZ2VudC5hZGRTY3JpcHRUb0V2YWx1YXRlT25Mb2FkKCIoIiArIEluamVjdGVkRmFrZVdvcmtl
ciArICIpIiwgZmFsc2UsIGNhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAgICB9IGVsc2Ugewor
ICAgICAgICAgICAgaWYgKHRoaXMuX2Zha2VXb3JrZXJzU2NyaXB0SWRlbnRpZmllciAhPT0gIjxj
YWxsYmFjay1wZW5kaW5nPiIpCisgICAgICAgICAgICAgICAgUGFnZUFnZW50LnJlbW92ZVNjcmlw
dFRvRXZhbHVhdGVPbkxvYWQodGhpcy5fZmFrZVdvcmtlcnNTY3JpcHRJZGVudGlmaWVyKTsKKyAg
ICAgICAgICAgIGRlbGV0ZSB0aGlzLl9mYWtlV29ya2Vyc1NjcmlwdElkZW50aWZpZXI7CisgICAg
ICAgIH0KICAgICB9LAogCiAgICAgcmVzZXQ6IGZ1bmN0aW9uKCkK
</data>
<flag name="review"
          id="109888"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112200</attachid>
            <date>2011-10-24 09:32:38 -0700</date>
            <delta_ts>2011-10-24 09:55:42 -0700</delta_ts>
            <desc>patch</desc>
            <filename>extensions-reload-script.diff</filename>
            <type>text/plain</type>
            <size>17600</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiNWNmZTI0Li4yYmY2Y2NlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTAt
MjEgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBbRXh0ZW5zaW9ucyBBUEldIGFsbG93IGV4dGVuc2lvbnMgdG8gc3BlY2lmeSBz
Y3JpcHQgdG8gYmUgaW5qZWN0ZWQgb24gcmVsb2FkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDYwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1y
ZWxvYWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9u
cy9leHRlbnNpb25zLXJlbG9hZC5odG1sOiBBZGRlZC4KKwogMjAxMS0xMC0yMSAgQWxleGFuZGVy
IFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6
IEF1ZGl0cyBoYW5nIG9uIHBhZ2VzIHdpdGhvdXQgaW1nW3NyY10gZWxlbWVudHMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtcmVsb2FkLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMt
cmVsb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x
ZTk1NTM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lv
bnMvZXh0ZW5zaW9ucy1yZWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3Rz
IHRoYXQgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5yZWxvYWQoKSBzdWNjZXNzZnVsbHkg
aW5qZWN0cyB1c2VyJ3MgY29kZSB1cG9uIHJlbG9hZAorCitTdGFydGVkIGV4dGVuc2lvbi4KK1J1
bm5pbmcgdGVzdHMuLi4KK1JVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RSZWxvYWRJbmplY3Rz
Q29kZQorUGFnZSByZWxvYWRlZC4KK1BhZ2UgcmVsb2FkZWQuCitXaXRoIGluamVjdGVkIGNvZGU6
IGZvbyA9IDQyCitXaXRob3V0IGluamVjdGVkIGNvZGU6IGZvbyA9IHVuZGVmaW5lZAorQWxsIHRl
c3RzIGRvbmUuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25z
L2V4dGVuc2lvbnMtcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9u
cy9leHRlbnNpb25zLXJlbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjU1ZDBhN2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0
ZW5zaW9ucy9leHRlbnNpb25zLXJlbG9hZC5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2V4dGVuc2lvbnMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+CisKK3dpbmRvdy5iYXIgPSAiZm9vID0gIiArIHdpbmRvdy5mb287CisKK2Z1bmN0
aW9uIGV4dGVuc2lvbl90ZXN0UmVsb2FkSW5qZWN0c0NvZGUobmV4dFRlc3QpCit7CisgICAgdmFy
IHZhbHVlV2l0aEluamVjdGVkQ29kZTsKKworICAgIGZ1bmN0aW9uIG9uUGFnZVdpdGhJbmplY3Rl
ZENvZGVMb2FkZWQoKQorICAgIHsKKyAgICAgICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRv
dy5ldmFsKCJ3aW5kb3cuYmFyIiwgZnVuY3Rpb24odmFsdWUpIHsKKyAgICAgICAgICAgIHZhbHVl
V2l0aEluamVjdGVkQ29kZSA9IHZhbHVlOworICAgICAgICAgICAgZXZhbHVhdGVPbkZyb250ZW5k
KCJJbnNwZWN0b3JUZXN0LnJ1bldoZW5QYWdlTG9hZHMocmVwbHkpIiwgb25QYWdlV2l0aG91dElu
amVjdGVkQ29kZUxvYWRlZCk7CisgICAgICAgICAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2lu
ZG93LnJlbG9hZCgpOworICAgICAgICB9KTsKKyAgICB9CisgICAgZnVuY3Rpb24gb25QYWdlV2l0
aG91dEluamVjdGVkQ29kZUxvYWRlZCgpCisgICAgeworICAgICAgICB3ZWJJbnNwZWN0b3IuaW5z
cGVjdGVkV2luZG93LmV2YWwoIndpbmRvdy5iYXIiLCBmdW5jdGlvbih2YWx1ZSkgeworICAgICAg
ICAgICAgb3V0cHV0KCJXaXRoIGluamVjdGVkIGNvZGU6ICIgKyB2YWx1ZVdpdGhJbmplY3RlZENv
ZGUpOworICAgICAgICAgICAgb3V0cHV0KCJXaXRob3V0IGluamVjdGVkIGNvZGU6ICIgKyB2YWx1
ZSk7CisgICAgICAgICAgICBuZXh0VGVzdCgpOworICAgICAgICB9KTsKKyAgICB9CisgICAgZXZh
bHVhdGVPbkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0LnJ1bldoZW5QYWdlTG9hZHMocmVwbHkpIiwg
b25QYWdlV2l0aEluamVjdGVkQ29kZUxvYWRlZCk7CisgICAgd2ViSW5zcGVjdG9yLmluc3BlY3Rl
ZFdpbmRvdy5yZWxvYWQoeworICAgICAgICBpbmplY3RlZFNjcmlwdDogIndpbmRvdy5mb28gPSA0
MjsiCisgICAgfSk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgorPHA+VGVzdHMgdGhhdCB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LnJlbG9h
ZCgpIHN1Y2Nlc3NmdWxseSBpbmplY3RzIHVzZXIncyBjb2RlIHVwb24gcmVsb2FkPC9wPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJhMDRjZWUuLjYzMzQxMDcgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzNiBAQAorMjAxMS0xMC0yMSAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtFeHRlbnNpb25zIEFQSV0gYWxs
b3cgZXh0ZW5zaW9ucyB0byBzcGVjaWZ5IHNjcmlwdCB0byBiZSBpbmplY3RlZCBvbiByZWxvYWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjAwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBjaGFuZ2Ug
d2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2UucmVsb2FkKCkgdG8gYWNjZXB0IG11bHRpcGxlIG9w
dGlvbnMgaW4gYW4gb2JqZWN0CisgICAgICAgIC0gYWRkIGFuIGFiaWxpdHkgdG8gaW5qZWN0IGEg
c2NyaXB0IHVwb2FuIGEgcGFnZSByZWxvYWQKKyAgICAgICAgLSByZXR1cm4gc2NyaXB0IGlkIGlu
IGFkZFNjcmlwdFRvRXZhbHVhdGVPbkxvYWQoKQorICAgICAgICAtIHByb3ZpZGUgcmVtb3ZlU2Ny
aXB0VG9FdmFsdWF0ZU9uTG9hZCgpCisgICAgICAgIC0gc3RvcmUgc2NyaXB0cyB0byBldmFsdWF0
ZSBvbiBsb2FkIGluIGluc3BlY3RvciBzdGF0ZSBjb29raWUKKworICAgICAgICBUZXN0OiBpbnNw
ZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlbG9hZC5odG1sCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VB
Z2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6Okluc3BlY3Rv
clBhZ2VBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OnJlc3Rv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjphZGRTY3JpcHRUb0V2
YWx1YXRlT25Mb2FkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6cmVt
b3ZlU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQ
YWdlQWdlbnQ6OnJlbW92ZUFsbFNjcmlwdHNUb0V2YWx1YXRlT25Mb2FkKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxkKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVOYXZpZ2F0ZWQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qczoKKyAgICAgICAgKGluamVjdGVkRXh0ZW5z
aW9uQVBJLkluc3BlY3RlZFdpbmRvdy5wcm90b3R5cGUucmVsb2FkKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9vblJlbG9hZCk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuV29ya2Vyc1NpZGViYXJQYW5lLnByb3RvdHlwZS5zZXRJbnN0cnVtZW50YXRpb24uY2FsbGJh
Y2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtlcnNTaWRlYmFyUGFuZS5wcm90b3R5cGUu
c2V0SW5zdHJ1bWVudGF0aW9uKToKKwogMjAxMS0xMC0yMSAgQWxleGFuZGVyIFBhdmxvdiAgPGFw
YXZsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEF1ZGl0cyBoYW5n
IG9uIHBhZ2VzIHdpdGhvdXQgaW1nW3NyY10gZWxlbWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3IuanNvbgppbmRleCBjNTViZTQwLi4zOTExZGQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0xNDAsNiArMTQwLDEyIEBACiAgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAic2Vzc2lvbiIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3Jp
cHRpb24iOiAiVHJ1ZSBpbiBjYXNlIG9mIHNlc3Npb24gY29va2llLiIgfQogICAgICAgICAgICAg
ICAgIF0sCiAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgImlkIjogIlNjcmlwdElkZW50aWZpZXIiLAor
ICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIlVuaXF1ZSBzY3JpcHQgaWRlbnRpZmllci4iLAorICAgICAgICAgICAgICAgICJo
aWRkZW4iOiB0cnVlCiAgICAgICAgICAgICB9CiAgICAgICAgIF0sCiAgICAgICAgICJjb21tYW5k
cyI6IFsKQEAgLTE1NiwxNiArMTYyLDIzIEBACiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2NyaXB0U291cmNlIiwgInR5cGUi
OiAic3RyaW5nIiB9CiAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAicmV0dXJu
cyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpZGVudGlmaWVyIiwgIiRyZWYi
OiAiU2NyaXB0SWRlbnRpZmllciIsICJkZXNjcmlwdGlvbiI6ICJJZGVudGlmaWVyIG9mIHRoZSBh
ZGRlZCBzY3JpcHQuIiB9CisgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAiaGlk
ZGVuIjogdHJ1ZQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAibmFtZSI6ICJyZW1vdmVBbGxTY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCIsCisgICAgICAgICAg
ICAgICAgIm5hbWUiOiAicmVtb3ZlU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZCIsCisgICAgICAgICAg
ICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaWRl
bnRpZmllciIsICIkcmVmIjogIlNjcmlwdElkZW50aWZpZXIiIH0KKyAgICAgICAgICAgICAgICBd
LAogICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCiAgICAgICAgICAgICB9LAogICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogInJlbG9hZCIsCiAgICAgICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaWdub3Jl
Q2FjaGUiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIklmIHRydWUsIGJyb3dzZXIgY2FjaGUgaXMgaWdub3JlZCAoYXMgaWYgdGhlIHVzZXIgcHJl
c3NlZCBTaGlmdCtyZWZyZXNoKS4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJp
Z25vcmVDYWNoZSIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3Jp
cHRpb24iOiAiSWYgdHJ1ZSwgYnJvd3NlciBjYWNoZSBpcyBpZ25vcmVkIChhcyBpZiB0aGUgdXNl
ciBwcmVzc2VkIFNoaWZ0K3JlZnJlc2gpLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzY3JpcHRUb0V2YWx1YXRlT25Mb2FkIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFs
IjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIHNldCwgdGhlIHNjcmlwdCB3aWxsIGJlIGluamVj
dGVkIGludG8gYWxsIGZyYW1lcyBvZiB0aGUgaW5zcGVjdGVkIHBhZ2UgYWZ0ZXIgcmVsb2FkLiIg
fQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJl
bG9hZHMgZ2l2ZW4gcGFnZSBvcHRpb25hbGx5IGlnbm9yaW5nIHRoZSBjYWNoZS4iCiAgICAgICAg
ICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBh
Z2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50
LmNwcAppbmRleCAyYzYyMDQ5Li5jYjU0YjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtNzMsNiArNzMsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIG5hbWVzcGFjZSBQYWdlQWdlbnRTdGF0ZSB7CiBzdGF0aWMgY29uc3QgY2hh
ciBwYWdlQWdlbnRFbmFibGVkW10gPSAicmVzb3VyY2VBZ2VudEVuYWJsZWQiOworc3RhdGljIGNv
bnN0IGNoYXIgcGFnZUFnZW50U2NyaXB0c1RvRXZhbHVhdGVPbkxvYWRbXSA9ICJwYWdlQWdlbnRT
Y3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCI7CiB9CiAKIHN0YXRpYyBib29sIGRlY29kZVNoYXJlZEJ1
ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyLCBjb25zdCBTdHJpbmcmIHRleHRF
bmNvZGluZ05hbWUsIFN0cmluZyogcmVzdWx0KQpAQCAtMjc1LDYgKzI3Niw3IEBAIEluc3BlY3Rv
clBhZ2VBZ2VudDo6SW5zcGVjdG9yUGFnZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMsCiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3RlZFNj
cmlwdE1hbmFnZXIpCiAgICAgLCBtX3N0YXRlKHN0YXRlKQogICAgICwgbV9mcm9udGVuZCgwKQor
ICAgICwgbV9sYXN0U2NyaXB0SWRlbnRpZmllcigwKQogewogfQogCkBAIC0zMTAsMTggKzMxMiwz
NCBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZGlzYWJsZShFcnJvclN0cmluZyopCiAgICAg
bV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JQYWdlQWdlbnQoMCk7CiB9CiAKLXZv
aWQgSW5zcGVjdG9yUGFnZUFnZW50OjphZGRTY3JpcHRUb0V2YWx1YXRlT25Mb2FkKEVycm9yU3Ry
aW5nKiwgY29uc3QgU3RyaW5nJiBzb3VyY2UpCit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6YWRk
U2NyaXB0VG9FdmFsdWF0ZU9uTG9hZChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc291cmNl
LCBTdHJpbmcqIGlkZW50aWZpZXIpCiB7Ci0gICAgbV9zY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZC5h
cHBlbmQoc291cmNlKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBzY3JpcHRzID0gbV9z
dGF0ZS0+Z2V0T2JqZWN0KFBhZ2VBZ2VudFN0YXRlOjpwYWdlQWdlbnRTY3JpcHRzVG9FdmFsdWF0
ZU9uTG9hZCk7CisgICAgaWYgKCFzY3JpcHRzKSB7CisgICAgICAgIHNjcmlwdHMgPSBJbnNwZWN0
b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgICAgICBtX3N0YXRlLT5zZXRPYmplY3QoUGFnZUFnZW50
U3RhdGU6OnBhZ2VBZ2VudFNjcmlwdHNUb0V2YWx1YXRlT25Mb2FkLCBzY3JpcHRzKTsKKyAgICB9
CisgICAgLy8gQXNzdXJlIHdlIGRvbid0IG92ZXJyaWRlIGV4aXN0aW5nIGlkcyAtLSBtX2xhc3RT
Y3JpcHRJZGVudGlmaWVyIGNvdWxkIGdldCBvdXQgb2Ygc3luYyBXUlQgYWN0dWFsCisgICAgLy8g
c2NyaXB0cyBvbmNlIHdlIHJlc3RvcmVkIHRoZSBzY3JpcHRzIGZyb20gdGhlIGNvb2tpZSBkdXJp
bmcgbmF2aWdhdGlvbi4KKyAgICBkbyB7CisgICAgICAgICppZGVudGlmaWVyID0gU3RyaW5nOjpu
dW1iZXIoKyttX2xhc3RTY3JpcHRJZGVudGlmaWVyKTsKKyAgICB9IHdoaWxlIChzY3JpcHRzLT5m
aW5kKCppZGVudGlmaWVyKSAhPSBzY3JpcHRzLT5lbmQoKSk7CisgICAgc2NyaXB0cy0+c2V0U3Ry
aW5nKCppZGVudGlmaWVyLCBzb3VyY2UpOwogfQogCi12b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6
cmVtb3ZlQWxsU2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQoRXJyb3JTdHJpbmcqKQordm9pZCBJbnNw
ZWN0b3JQYWdlQWdlbnQ6OnJlbW92ZVNjcmlwdFRvRXZhbHVhdGVPbkxvYWQoRXJyb3JTdHJpbmcq
IGVycm9yLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIpCiB7Ci0gICAgbV9zY3JpcHRzVG9FdmFs
dWF0ZU9uTG9hZC5jbGVhcigpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHNjcmlwdHMg
PSBtX3N0YXRlLT5nZXRPYmplY3QoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudFNjcmlwdHNUb0V2
YWx1YXRlT25Mb2FkKTsKKyAgICBpZiAoIXNjcmlwdHMgfHwgc2NyaXB0cy0+ZmluZChpZGVudGlm
aWVyKSA9PSBzY3JpcHRzLT5lbmQoKSkgeworICAgICAgICAqZXJyb3IgPSAiU2NyaXB0IG5vdCBm
b3VuZCI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgc2NyaXB0cy0+cmVtb3ZlKGlkZW50
aWZpZXIpOwogfQogCi12b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6cmVsb2FkKEVycm9yU3RyaW5n
KiwgY29uc3QgYm9vbCogY29uc3Qgb3B0aW9uYWxJZ25vcmVDYWNoZSkKK3ZvaWQgSW5zcGVjdG9y
UGFnZUFnZW50OjpyZWxvYWQoRXJyb3JTdHJpbmcqLCBjb25zdCBib29sKiBjb25zdCBvcHRpb25h
bElnbm9yZUNhY2hlLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsU2NyaXB0VG9FdmFsdWF0ZU9uTG9h
ZCkKIHsKKyAgICBtX3BlbmRpbmdTY3JpcHRUb0V2YWx1YXRlT25Mb2FkT25jZSA9IG9wdGlvbmFs
U2NyaXB0VG9FdmFsdWF0ZU9uTG9hZCA/ICpvcHRpb25hbFNjcmlwdFRvRXZhbHVhdGVPbkxvYWQg
OiAiIjsKICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+cmVsb2FkKG9wdGlvbmFs
SWdub3JlQ2FjaGUgPyAqb3B0aW9uYWxJZ25vcmVDYWNoZSA6IGZhbHNlKTsKIH0KIApAQCAtNTYz
LDEzICs1ODEsMjUgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZENsZWFyV2luZG93T2Jq
ZWN0SW5Xb3JsZChGcmFtZSogZnJhbWUsIERPTVdyYXBwZXJXb3IKICAgICBpZiAoZnJhbWUgPT0g
bV9wYWdlLT5tYWluRnJhbWUoKSkKICAgICAgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmRp
c2NhcmRJbmplY3RlZFNjcmlwdHMoKTsKIAotICAgIGlmIChtX3NjcmlwdHNUb0V2YWx1YXRlT25M
b2FkLnNpemUoKSkgewotICAgICAgICBTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUgPSBtYWluV29y
bGRTY3JpcHRTdGF0ZShmcmFtZSk7Ci0gICAgICAgIGZvciAoVmVjdG9yPFN0cmluZz46Oml0ZXJh
dG9yIGl0ID0gbV9zY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZC5iZWdpbigpOwotICAgICAgICAgICAg
IGl0ICE9IG1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQuZW5kKCk7ICsraXQpIHsKLSAgICAgICAg
ICAgIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RTY3JpcHQoKml0LCBzY3JpcHRTdGF0
ZSk7CisgICAgU2NyaXB0U3RhdGUqIHNjcmlwdFN0YXRlID0gMDsgLy8gSW5pdGlhbGl6ZSBsYXpp
bHksIGFzIG1haW5Xb3JsZFNjcmlwdFN0YXRlKCkgd2lsbCBjcmVhdGUgb25lIGlmIG1pc3Npbmcu
CisgICAgUmVmUHRyPEluc3BlY3Rvck9iamVjdD4gc2NyaXB0cyA9IG1fc3RhdGUtPmdldE9iamVj
dChQYWdlQWdlbnRTdGF0ZTo6cGFnZUFnZW50U2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQpOworICAg
IGlmIChzY3JpcHRzKSB7CisgICAgICAgIEluc3BlY3Rvck9iamVjdDo6Y29uc3RfaXRlcmF0b3Ig
ZW5kID0gc2NyaXB0cy0+ZW5kKCk7CisgICAgICAgIGZvciAoSW5zcGVjdG9yT2JqZWN0Ojpjb25z
dF9pdGVyYXRvciBpdCA9IHNjcmlwdHMtPmJlZ2luKCk7IGl0ICE9IGVuZDsgKytpdCkgeworICAg
ICAgICAgICAgU3RyaW5nIHNjcmlwdFRleHQ7CisgICAgICAgICAgICBpZiAoIWl0LT5zZWNvbmQt
PmFzU3RyaW5nKCZzY3JpcHRUZXh0KSkKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKworICAg
ICAgICAgICAgaWYgKCFzY3JpcHRTdGF0ZSkKKyAgICAgICAgICAgICAgICBzY3JpcHRTdGF0ZSA9
IG1haW5Xb3JsZFNjcmlwdFN0YXRlKGZyYW1lKTsKKyAgICAgICAgICAgIG1faW5qZWN0ZWRTY3Jp
cHRNYW5hZ2VyLT5pbmplY3RTY3JpcHQoc2NyaXB0VGV4dCwgc2NyaXB0U3RhdGUpOwogICAgICAg
ICB9CiAgICAgfQorICAgIGlmICghbV9zY3JpcHRUb0V2YWx1YXRlT25Mb2FkT25jZS5pc0VtcHR5
KCkpIHsKKyAgICAgICAgaWYgKCFzY3JpcHRTdGF0ZSkKKyAgICAgICAgICAgIHNjcmlwdFN0YXRl
ID0gbWFpbldvcmxkU2NyaXB0U3RhdGUoZnJhbWUpOworICAgICAgICBtX2luamVjdGVkU2NyaXB0
TWFuYWdlci0+aW5qZWN0U2NyaXB0KG1fc2NyaXB0VG9FdmFsdWF0ZU9uTG9hZE9uY2UsIHNjcmlw
dFN0YXRlKTsKKyAgICB9CiB9CiAKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50Ojpkb21Db250ZW50
RXZlbnRGaXJlZCgpCkBAIC01ODQsNiArNjE0LDEwIEBAIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50
Ojpsb2FkRXZlbnRGaXJlZCgpCiAKIHZvaWQgSW5zcGVjdG9yUGFnZUFnZW50OjpmcmFtZU5hdmln
YXRlZChEb2N1bWVudExvYWRlciogbG9hZGVyKQogeworICAgIGlmIChsb2FkZXItPmZyYW1lKCkg
PT0gbV9wYWdlLT5tYWluRnJhbWUoKSkgeworICAgICAgICBtX3NjcmlwdFRvRXZhbHVhdGVPbkxv
YWRPbmNlID0gbV9wZW5kaW5nU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZE9uY2U7CisgICAgICAgIG1f
cGVuZGluZ1NjcmlwdFRvRXZhbHVhdGVPbkxvYWRPbmNlID0gU3RyaW5nKCk7CisgICAgfQogICAg
IG1fZnJvbnRlbmQtPmZyYW1lTmF2aWdhdGVkKGJ1aWxkT2JqZWN0Rm9yRnJhbWUobG9hZGVyLT5m
cmFtZSgpKSwgbG9hZGVySWQobG9hZGVyKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2luc3Bl
Y3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAppbmRleCBkNDM4NzRiLi5hN2ExNGFmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VBZ2VudC5oCkBAIC01NSwxNCAr
NTUsMTUgQEAgY2xhc3MgSW5zdHJ1bWVudGluZ0FnZW50czsKIGNsYXNzIEtVUkw7CiBjbGFzcyBQ
YWdlOwogY2xhc3MgUmVndWxhckV4cHJlc3Npb247CitjbGFzcyBTY3JpcHRUb0V2YWx1YXRlT25M
b2FkOwogY2xhc3MgU2hhcmVkQnVmZmVyOwogCiB0eXBlZGVmIFN0cmluZyBFcnJvclN0cmluZzsK
IAogY2xhc3MgSW5zcGVjdG9yUGFnZUFnZW50IHsKICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShJ
bnNwZWN0b3JQYWdlQWdlbnQpOwotcHVibGljOgogCitwdWJsaWM6CiAgICAgZW51bSBSZXNvdXJj
ZVR5cGUgewogICAgICAgICBEb2N1bWVudFJlc291cmNlLAogICAgICAgICBTdHlsZXNoZWV0UmVz
b3VyY2UsCkBAIC04OSw5ICs5MCw5IEBAIHB1YmxpYzoKICAgICAvLyBQYWdlIEFQSSBmb3IgSW5z
cGVjdG9yRnJvbnRlbmQKICAgICB2b2lkIGVuYWJsZShFcnJvclN0cmluZyopOwogICAgIHZvaWQg
ZGlzYWJsZShFcnJvclN0cmluZyopOwotICAgIHZvaWQgYWRkU2NyaXB0VG9FdmFsdWF0ZU9uTG9h
ZChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc291cmNlKTsKLSAgICB2b2lkIHJlbW92ZUFs
bFNjcmlwdHNUb0V2YWx1YXRlT25Mb2FkKEVycm9yU3RyaW5nKik7Ci0gICAgdm9pZCByZWxvYWQo
RXJyb3JTdHJpbmcqLCBjb25zdCBib29sKiBjb25zdCBvcHRpb25hbElnbm9yZUNhY2hlKTsKKyAg
ICB2b2lkIGFkZFNjcmlwdFRvRXZhbHVhdGVPbkxvYWQoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJp
bmcmIHNvdXJjZSwgU3RyaW5nKiByZXN1bHQpOworICAgIHZvaWQgcmVtb3ZlU2NyaXB0VG9FdmFs
dWF0ZU9uTG9hZChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgaWRlbnRpZmllcik7CisgICAg
dm9pZCByZWxvYWQoRXJyb3JTdHJpbmcqLCBjb25zdCBib29sKiBjb25zdCBvcHRpb25hbElnbm9y
ZUNhY2hlLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZCk7CiAg
ICAgdm9pZCBvcGVuKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiB1cmwsIGNvbnN0IGJvb2wq
IGNvbnN0IGluTmV3V2luZG93KTsKICAgICB2b2lkIGdldENvb2tpZXMoRXJyb3JTdHJpbmcqLCBS
ZWZQdHI8SW5zcGVjdG9yQXJyYXk+KiBjb29raWVzLCBXVEY6OlN0cmluZyogY29va2llc1N0cmlu
Zyk7CiAgICAgdm9pZCBkZWxldGVDb29raWUoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIGNv
b2tpZU5hbWUsIGNvbnN0IFN0cmluZyYgZG9tYWluKTsKQEAgLTEzMSw3ICsxMzIsOSBAQCBwcml2
YXRlOgogICAgIEluamVjdGVkU2NyaXB0TWFuYWdlciogbV9pbmplY3RlZFNjcmlwdE1hbmFnZXI7
CiAgICAgSW5zcGVjdG9yU3RhdGUqIG1fc3RhdGU7CiAgICAgSW5zcGVjdG9yRnJvbnRlbmQ6OlBh
Z2UqIG1fZnJvbnRlbmQ7Ci0gICAgVmVjdG9yPFN0cmluZz4gbV9zY3JpcHRzVG9FdmFsdWF0ZU9u
TG9hZDsKKyAgICBsb25nIG1fbGFzdFNjcmlwdElkZW50aWZpZXI7CisgICAgU3RyaW5nIG1fcGVu
ZGluZ1NjcmlwdFRvRXZhbHVhdGVPbkxvYWRPbmNlOworICAgIFN0cmluZyBtX3NjcmlwdFRvRXZh
bHVhdGVPbkxvYWRPbmNlOwogICAgIEhhc2hNYXA8RnJhbWUqLCBTdHJpbmc+IG1fZnJhbWVUb0lk
ZW50aWZpZXI7CiAgICAgSGFzaE1hcDxTdHJpbmcsIEZyYW1lKj4gbV9pZGVudGlmaWVyVG9GcmFt
ZTsKICAgICBIYXNoTWFwPERvY3VtZW50TG9hZGVyKiwgU3RyaW5nPiBtX2xvYWRlclRvSWRlbnRp
ZmllcjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0
ZW5zaW9uQVBJLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNp
b25BUEkuanMKaW5kZXggMTg3NjAzOC4uYTNmOWQ2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25BUEkuanMKKysrIGIvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25BUEkuanMKQEAgLTQ4OSw5ICs0ODksMTcg
QEAgZnVuY3Rpb24gSW5zcGVjdGVkV2luZG93KCkKIH0KIAogSW5zcGVjdGVkV2luZG93LnByb3Rv
dHlwZSA9IHsKLSAgICByZWxvYWQ6IGZ1bmN0aW9uKHVzZXJBZ2VudCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBleHRlbnNpb25TZXJ2ZXIuc2VuZFJlcXVlc3QoeyBjb21tYW5kOiAicmVsb2FkIiwg
dXNlckFnZW50OiB1c2VyQWdlbnQgfSk7CisgICAgcmVsb2FkOiBmdW5jdGlvbihvcHRpb25zT3JV
c2VyQWdlbnQpCisgICAgeworICAgICAgICB2YXIgb3B0aW9ucyA9IG51bGw7CisgICAgICAgIGlm
ICh0eXBlb2Ygb3B0aW9uc09yVXNlckFnZW50ID09PSAib2JqZWN0IikKKyAgICAgICAgICAgIG9w
dGlvbnMgPSBvcHRpb25zT3JVc2VyQWdlbnQ7CisgICAgICAgIGVsc2UgaWYgKHR5cGVvZiBvcHRp
b25zT3JVc2VyQWdlbnQgPT09ICJzdHJpbmciKSB7CisgICAgICAgICAgICBvcHRpb25zID0geyB1
c2VyQWdlbnQ6IG9wdGlvbnNPclVzZXJBZ2VudCB9OworICAgICAgICAgICAgY29uc29sZS53YXJu
KCJQYXNzaW5nIHVzZXJBZ2VudCBhcyBzdHJpbmcgcGFyYW1ldGVyIHRvIGluc3BlY3RlZFdpbmRv
dy5yZWxvYWQoKSBpcyBkZXByZWNhdGVkLiAiICsKKyAgICAgICAgICAgICAgICAgICAgICAgICAi
VXNlIGluc3BlY3RlZFdpbmRvdy5yZWxvYWQoeyB1c2VyQWdlbnQ6IHZhbHVlfSkgaW5zdGVhZC4i
KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZXh0ZW5zaW9uU2VydmVyLnNlbmRSZXF1ZXN0
KHsgY29tbWFuZDogInJlbG9hZCIsIG9wdGlvbnM6IG9wdGlvbnMgfSk7CiAgICAgfSwKIAogICAg
IGV2YWw6IGZ1bmN0aW9uKGV4cHJlc3Npb24sIGNhbGxiYWNrKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25TZXJ2ZXIuanMgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwppbmRleCA1ODFj
ZDJmLi41YTU1MDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0V4dGVuc2lvblNlcnZlci5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJv
bnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcwpAQCAtMjgyLDEwICsyODIsMTUgQEAgV2ViSW5zcGVj
dG9yLkV4dGVuc2lvblNlcnZlci5wcm90b3R5cGUgPSB7CiAKICAgICBfb25SZWxvYWQ6IGZ1bmN0
aW9uKG1lc3NhZ2UpCiAgICAgewotICAgICAgICBpZiAodHlwZW9mIG1lc3NhZ2UudXNlckFnZW50
ID09PSAic3RyaW5nIikKLSAgICAgICAgICAgIE5ldHdvcmtBZ2VudC5zZXRVc2VyQWdlbnRPdmVy
cmlkZShtZXNzYWdlLnVzZXJBZ2VudCk7Ci0KLSAgICAgICAgUGFnZUFnZW50LnJlbG9hZChmYWxz
ZSk7CisgICAgICAgIHZhciBvcHRpb25zID0gbWVzc2FnZS5vcHRpb25zIHx8IHt9OworICAgICAg
ICBOZXR3b3JrQWdlbnQuc2V0VXNlckFnZW50T3ZlcnJpZGUodHlwZW9mIG9wdGlvbnMudXNlckFn
ZW50ID09PSAic3RyaW5nIiA/IG9wdGlvbnMudXNlckFnZW50IDogIiIpOworICAgICAgICB2YXIg
aW5qZWN0ZWRTY3JpcHQ7CisgICAgICAgIGlmIChvcHRpb25zLmluamVjdGVkU2NyaXB0KSB7Cisg
ICAgICAgICAgICAvLyBXcmFwIGNsaWVudCBzY3JpcHQgaW50byBhbm9ueW1vdXMgZnVuY3Rpb24s
IHJldHVybiBhbm90aGVyIGFub255bW91cyBmdW5jdGlvbiB0aGF0CisgICAgICAgICAgICAvLyBy
ZXR1cm5zIGVtcHR5IG9iamVjdCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIEluamVjdGVkU2NyaXB0
TWFuYWdlciBvbiB0aGUgYmFja2VuZC4KKyAgICAgICAgICAgIGluamVjdGVkU2NyaXB0ID0gIigo
ZnVuY3Rpb24oKXsiICsgb3B0aW9ucy5pbmplY3RlZFNjcmlwdCArICJ9KSgpLGZ1bmN0aW9uKCl7
cmV0dXJuIHt9fSkiOworICAgICAgICB9CisgICAgICAgIFBhZ2VBZ2VudC5yZWxvYWQoZmFsc2Us
IGluamVjdGVkU2NyaXB0KTsKICAgICAgICAgcmV0dXJuIHRoaXMuX3N0YXR1cy5PSygpOwogICAg
IH0sCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvV29y
a2Vyc1NpZGViYXJQYW5lLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9X
b3JrZXJzU2lkZWJhclBhbmUuanMKaW5kZXggMjQ2NGU3Yi4uZDYxZTNlOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanMK
KysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBh
bmUuanMKQEAgLTc2LDIzICs3NiwzNSBAQCBXZWJJbnNwZWN0b3IuV29ya2Vyc1NpZGViYXJQYW5l
LnByb3RvdHlwZSA9IHsKICAgICAgICAgfQogICAgIH0sCiAKLSAgICBzZXRJbnN0cnVtZW50YXRp
b246IGZ1bmN0aW9uKGVuYWJsZWQpCisgICAgX3NldEluc3RydW1lbnRhdGlvbjogZnVuY3Rpb24o
ZW5hYmxlZCkKICAgICB7Ci0gICAgICAgIFBhZ2VBZ2VudC5yZW1vdmVBbGxTY3JpcHRzVG9FdmFs
dWF0ZU9uTG9hZCgpOwotICAgICAgICBpZiAoZW5hYmxlZCkKLSAgICAgICAgICAgIFBhZ2VBZ2Vu
dC5hZGRTY3JpcHRUb0V2YWx1YXRlT25Mb2FkKCIoIiArIEluamVjdGVkRmFrZVdvcmtlciArICIp
Iik7CisgICAgICAgIGlmICghZW5hYmxlZCA9PT0gIXRoaXMuX2Zha2VXb3JrZXJzU2NyaXB0SWRl
bnRpZmllcikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBpZiAoZW5hYmxlZCkgewor
ICAgICAgICAgICAgdGhpcy5fZW5hYmxlV29ya2Vyc0NoZWNrYm94LmRpc2FibGVkID0gdHJ1ZTsK
KyAgICAgICAgICAgIGZ1bmN0aW9uIGNhbGxiYWNrKGVycm9yLCBpZGVudGlmaWVyKQorICAgICAg
ICAgICAgeworICAgICAgICAgICAgICAgIHRoaXMuX2Zha2VXb3JrZXJzU2NyaXB0SWRlbnRpZmll
ciA9IGlkZW50aWZpZXI7CisgICAgICAgICAgICAgICAgdGhpcy5fZW5hYmxlV29ya2Vyc0NoZWNr
Ym94LmRpc2FibGVkID0gZmFsc2U7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBQYWdlQWdl
bnQuYWRkU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZCgiKCIgKyBJbmplY3RlZEZha2VXb3JrZXIgKyAi
KSIsIGNhbGxiYWNrLmJpbmQodGhpcykpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
UGFnZUFnZW50LnJlbW92ZVNjcmlwdFRvRXZhbHVhdGVPbkxvYWQodGhpcy5fZmFrZVdvcmtlcnNT
Y3JpcHRJZGVudGlmaWVyKTsKKyAgICAgICAgICAgIHRoaXMuX2Zha2VXb3JrZXJzU2NyaXB0SWRl
bnRpZmllciA9IG51bGw7CisgICAgICAgIH0KICAgICB9LAogCiAgICAgcmVzZXQ6IGZ1bmN0aW9u
KCkKICAgICB7Ci0gICAgICAgIHRoaXMuc2V0SW5zdHJ1bWVudGF0aW9uKHRoaXMuX2VuYWJsZVdv
cmtlcnNDaGVja2JveC5jaGVja2VkKTsKKyAgICAgICAgdGhpcy5fc2V0SW5zdHJ1bWVudGF0aW9u
KHRoaXMuX2VuYWJsZVdvcmtlcnNDaGVja2JveC5jaGVja2VkKTsKICAgICAgICAgdGhpcy5fdHJl
ZU91dGxpbmUucmVtb3ZlQ2hpbGRyZW4oKTsKICAgICAgICAgdGhpcy5fd29ya2VycyA9IHt9Owog
ICAgIH0sCiAKICAgICBfb25UcmlnZ2VySW5zdHJ1bWVudDogZnVuY3Rpb24oZXZlbnQpCiAgICAg
ewotICAgICAgICB0aGlzLnNldEluc3RydW1lbnRhdGlvbih0aGlzLl9lbmFibGVXb3JrZXJzQ2hl
Y2tib3guY2hlY2tlZCk7CisgICAgICAgIHRoaXMuX3NldEluc3RydW1lbnRhdGlvbih0aGlzLl9l
bmFibGVXb3JrZXJzQ2hlY2tib3guY2hlY2tlZCk7CiAgICAgfQogfTsKIAo=
</data>
<flag name="review"
          id="110222"
          type_id="1"
          status="-"
          setter="pfeldman"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112204</attachid>
            <date>2011-10-24 09:55:42 -0700</date>
            <delta_ts>2011-10-24 10:12:25 -0700</delta_ts>
            <desc>patch</desc>
            <filename>extensions-reload-script.diff</filename>
            <type>text/plain</type>
            <size>17353</size>
            <attacher name="Andrey Kosyakov">caseq</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBiNWNmZTI0Li4yYmY2Y2NlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMTAt
MjEgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KKworICAgICAgICBXZWIg
SW5zcGVjdG9yOiBbRXh0ZW5zaW9ucyBBUEldIGFsbG93IGV4dGVuc2lvbnMgdG8gc3BlY2lmeSBz
Y3JpcHQgdG8gYmUgaW5qZWN0ZWQgb24gcmVsb2FkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MDYwMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogaW5zcGVjdG9yL2V4dGVuc2lvbnMvZXh0ZW5zaW9ucy1y
ZWxvYWQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0b3IvZXh0ZW5zaW9u
cy9leHRlbnNpb25zLXJlbG9hZC5odG1sOiBBZGRlZC4KKwogMjAxMS0xMC0yMSAgQWxleGFuZGVy
IFBhdmxvdiAgPGFwYXZsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6
IEF1ZGl0cyBoYW5nIG9uIHBhZ2VzIHdpdGhvdXQgaW1nW3NyY10gZWxlbWVudHMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMtcmVsb2FkLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25zL2V4dGVuc2lvbnMt
cmVsb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4x
ZTk1NTM3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2V4dGVuc2lv
bnMvZXh0ZW5zaW9ucy1yZWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3Rz
IHRoYXQgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRvdy5yZWxvYWQoKSBzdWNjZXNzZnVsbHkg
aW5qZWN0cyB1c2VyJ3MgY29kZSB1cG9uIHJlbG9hZAorCitTdGFydGVkIGV4dGVuc2lvbi4KK1J1
bm5pbmcgdGVzdHMuLi4KK1JVTk5JTkcgVEVTVDogZXh0ZW5zaW9uX3Rlc3RSZWxvYWRJbmplY3Rz
Q29kZQorUGFnZSByZWxvYWRlZC4KK1BhZ2UgcmVsb2FkZWQuCitXaXRoIGluamVjdGVkIGNvZGU6
IGZvbyA9IDQyCitXaXRob3V0IGluamVjdGVkIGNvZGU6IGZvbyA9IHVuZGVmaW5lZAorQWxsIHRl
c3RzIGRvbmUuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9leHRlbnNpb25z
L2V4dGVuc2lvbnMtcmVsb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0ZW5zaW9u
cy9leHRlbnNpb25zLXJlbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAuLjU1ZDBhN2YKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvZXh0
ZW5zaW9ucy9leHRlbnNpb25zLXJlbG9hZC5odG1sCkBAIC0wLDAgKzEsNDAgQEAKKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vaHR0cC90ZXN0cy9pbnNwZWN0b3IvaW5zcGVjdG9y
LXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uLy4uL2h0dHAvdGVzdHMvaW5zcGVj
dG9yL2V4dGVuc2lvbnMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHR5cGU9InRleHQvamF2
YXNjcmlwdCI+CisKK3dpbmRvdy5iYXIgPSAiZm9vID0gIiArIHdpbmRvdy5mb287CisKK2Z1bmN0
aW9uIGV4dGVuc2lvbl90ZXN0UmVsb2FkSW5qZWN0c0NvZGUobmV4dFRlc3QpCit7CisgICAgdmFy
IHZhbHVlV2l0aEluamVjdGVkQ29kZTsKKworICAgIGZ1bmN0aW9uIG9uUGFnZVdpdGhJbmplY3Rl
ZENvZGVMb2FkZWQoKQorICAgIHsKKyAgICAgICAgd2ViSW5zcGVjdG9yLmluc3BlY3RlZFdpbmRv
dy5ldmFsKCJ3aW5kb3cuYmFyIiwgZnVuY3Rpb24odmFsdWUpIHsKKyAgICAgICAgICAgIHZhbHVl
V2l0aEluamVjdGVkQ29kZSA9IHZhbHVlOworICAgICAgICAgICAgZXZhbHVhdGVPbkZyb250ZW5k
KCJJbnNwZWN0b3JUZXN0LnJ1bldoZW5QYWdlTG9hZHMocmVwbHkpIiwgb25QYWdlV2l0aG91dElu
amVjdGVkQ29kZUxvYWRlZCk7CisgICAgICAgICAgICB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2lu
ZG93LnJlbG9hZCgpOworICAgICAgICB9KTsKKyAgICB9CisgICAgZnVuY3Rpb24gb25QYWdlV2l0
aG91dEluamVjdGVkQ29kZUxvYWRlZCgpCisgICAgeworICAgICAgICB3ZWJJbnNwZWN0b3IuaW5z
cGVjdGVkV2luZG93LmV2YWwoIndpbmRvdy5iYXIiLCBmdW5jdGlvbih2YWx1ZSkgeworICAgICAg
ICAgICAgb3V0cHV0KCJXaXRoIGluamVjdGVkIGNvZGU6ICIgKyB2YWx1ZVdpdGhJbmplY3RlZENv
ZGUpOworICAgICAgICAgICAgb3V0cHV0KCJXaXRob3V0IGluamVjdGVkIGNvZGU6ICIgKyB2YWx1
ZSk7CisgICAgICAgICAgICBuZXh0VGVzdCgpOworICAgICAgICB9KTsKKyAgICB9CisgICAgZXZh
bHVhdGVPbkZyb250ZW5kKCJJbnNwZWN0b3JUZXN0LnJ1bldoZW5QYWdlTG9hZHMocmVwbHkpIiwg
b25QYWdlV2l0aEluamVjdGVkQ29kZUxvYWRlZCk7CisgICAgd2ViSW5zcGVjdG9yLmluc3BlY3Rl
ZFdpbmRvdy5yZWxvYWQoeworICAgICAgICBpbmplY3RlZFNjcmlwdDogIndpbmRvdy5mb28gPSA0
MjsiCisgICAgfSk7Cit9CisKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJydW5U
ZXN0KCkiPgorPHA+VGVzdHMgdGhhdCB3ZWJJbnNwZWN0b3IuaW5zcGVjdGVkV2luZG93LnJlbG9h
ZCgpIHN1Y2Nlc3NmdWxseSBpbmplY3RzIHVzZXIncyBjb2RlIHVwb24gcmVsb2FkPC9wPgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGJhMDRjZWUuLjYzMzQxMDcgMTAwNzU1Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwzNiBAQAorMjAxMS0xMC0yMSAgQW5kcmV5IEtvc3lha292ICA8Y2FzZXFAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IFtFeHRlbnNpb25zIEFQSV0gYWxs
b3cgZXh0ZW5zaW9ucyB0byBzcGVjaWZ5IHNjcmlwdCB0byBiZSBpbmplY3RlZCBvbiByZWxvYWQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwNjAwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgLSBjaGFuZ2Ug
d2ViSW5zcGVjdG9yLmluc3BlY3RlZFBhZ2UucmVsb2FkKCkgdG8gYWNjZXB0IG11bHRpcGxlIG9w
dGlvbnMgaW4gYW4gb2JqZWN0CisgICAgICAgIC0gYWRkIGFuIGFiaWxpdHkgdG8gaW5qZWN0IGEg
c2NyaXB0IHVwb2FuIGEgcGFnZSByZWxvYWQKKyAgICAgICAgLSByZXR1cm4gc2NyaXB0IGlkIGlu
IGFkZFNjcmlwdFRvRXZhbHVhdGVPbkxvYWQoKQorICAgICAgICAtIHByb3ZpZGUgcmVtb3ZlU2Ny
aXB0VG9FdmFsdWF0ZU9uTG9hZCgpCisgICAgICAgIC0gc3RvcmUgc2NyaXB0cyB0byBldmFsdWF0
ZSBvbiBsb2FkIGluIGluc3BlY3RvciBzdGF0ZSBjb29raWUKKworICAgICAgICBUZXN0OiBpbnNw
ZWN0b3IvZXh0ZW5zaW9ucy9leHRlbnNpb25zLXJlbG9hZC5odG1sCisKKyAgICAgICAgKiBpbnNw
ZWN0b3IvSW5zcGVjdG9yLmpzb246CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VB
Z2VudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6Okluc3BlY3Rv
clBhZ2VBZ2VudCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQYWdlQWdlbnQ6OnJlc3Rv
cmUpOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yUGFnZUFnZW50OjphZGRTY3JpcHRUb0V2
YWx1YXRlT25Mb2FkKToKKyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6cmVt
b3ZlU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JQ
YWdlQWdlbnQ6OnJlbW92ZUFsbFNjcmlwdHNUb0V2YWx1YXRlT25Mb2FkKToKKyAgICAgICAgKFdl
YkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZGlkQ2xlYXJXaW5kb3dPYmplY3RJbldvcmxkKToK
KyAgICAgICAgKFdlYkNvcmU6Okluc3BlY3RvclBhZ2VBZ2VudDo6ZnJhbWVOYXZpZ2F0ZWQpOgor
ICAgICAgICAqIGluc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaDoKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qczoKKyAgICAgICAgKGluamVjdGVkRXh0ZW5z
aW9uQVBJLkluc3BlY3RlZFdpbmRvdy5wcm90b3R5cGUucmVsb2FkKToKKyAgICAgICAgKiBpbnNw
ZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qczoKKyAgICAgICAgKFdlYkluc3BlY3Rv
ci5FeHRlbnNpb25TZXJ2ZXIucHJvdG90eXBlLl9vblJlbG9hZCk6CisgICAgICAgICogaW5zcGVj
dG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanM6CisgICAgICAgIChXZWJJbnNwZWN0
b3IuV29ya2Vyc1NpZGViYXJQYW5lLnByb3RvdHlwZS5zZXRJbnN0cnVtZW50YXRpb24uY2FsbGJh
Y2spOgorICAgICAgICAoV2ViSW5zcGVjdG9yLldvcmtlcnNTaWRlYmFyUGFuZS5wcm90b3R5cGUu
c2V0SW5zdHJ1bWVudGF0aW9uKToKKwogMjAxMS0xMC0yMSAgQWxleGFuZGVyIFBhdmxvdiAgPGFw
YXZsb3ZAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IEF1ZGl0cyBoYW5n
IG9uIHBhZ2VzIHdpdGhvdXQgaW1nW3NyY10gZWxlbWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3IuanNvbgppbmRleCBjNTViZTQwLi4zOTExZGQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCkBAIC0xNDAsNiArMTQwLDEyIEBACiAgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAic2Vzc2lvbiIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3Jp
cHRpb24iOiAiVHJ1ZSBpbiBjYXNlIG9mIHNlc3Npb24gY29va2llLiIgfQogICAgICAgICAgICAg
ICAgIF0sCiAgICAgICAgICAgICAgICAgImhpZGRlbiI6IHRydWUKKyAgICAgICAgICAgIH0sCisg
ICAgICAgICAgICB7CisgICAgICAgICAgICAgICAgImlkIjogIlNjcmlwdElkZW50aWZpZXIiLAor
ICAgICAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIlVuaXF1ZSBzY3JpcHQgaWRlbnRpZmllci4iLAorICAgICAgICAgICAgICAgICJo
aWRkZW4iOiB0cnVlCiAgICAgICAgICAgICB9CiAgICAgICAgIF0sCiAgICAgICAgICJjb21tYW5k
cyI6IFsKQEAgLTE1NiwxNiArMTYyLDIzIEBACiAgICAgICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2NyaXB0U291cmNlIiwgInR5cGUi
OiAic3RyaW5nIiB9CiAgICAgICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICAgICAicmV0dXJu
cyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpZGVudGlmaWVyIiwgIiRyZWYi
OiAiU2NyaXB0SWRlbnRpZmllciIsICJkZXNjcmlwdGlvbiI6ICJJZGVudGlmaWVyIG9mIHRoZSBh
ZGRlZCBzY3JpcHQuIiB9CisgICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAiaGlk
ZGVuIjogdHJ1ZQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAg
ICAibmFtZSI6ICJyZW1vdmVBbGxTY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCIsCisgICAgICAgICAg
ICAgICAgIm5hbWUiOiAicmVtb3ZlU2NyaXB0VG9FdmFsdWF0ZU9uTG9hZCIsCisgICAgICAgICAg
ICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaWRl
bnRpZmllciIsICIkcmVmIjogIlNjcmlwdElkZW50aWZpZXIiIH0KKyAgICAgICAgICAgICAgICBd
LAogICAgICAgICAgICAgICAgICJoaWRkZW4iOiB0cnVlCiAgICAgICAgICAgICB9LAogICAgICAg
ICAgICAgewogICAgICAgICAgICAgICAgICJuYW1lIjogInJlbG9hZCIsCiAgICAgICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaWdub3Jl
Q2FjaGUiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIklmIHRydWUsIGJyb3dzZXIgY2FjaGUgaXMgaWdub3JlZCAoYXMgaWYgdGhlIHVzZXIgcHJl
c3NlZCBTaGlmdCtyZWZyZXNoKS4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJp
Z25vcmVDYWNoZSIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3Jp
cHRpb24iOiAiSWYgdHJ1ZSwgYnJvd3NlciBjYWNoZSBpcyBpZ25vcmVkIChhcyBpZiB0aGUgdXNl
ciBwcmVzc2VkIFNoaWZ0K3JlZnJlc2gpLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzY3JpcHRUb0V2YWx1YXRlT25Mb2FkIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFs
IjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIHNldCwgdGhlIHNjcmlwdCB3aWxsIGJlIGluamVj
dGVkIGludG8gYWxsIGZyYW1lcyBvZiB0aGUgaW5zcGVjdGVkIHBhZ2UgYWZ0ZXIgcmVsb2FkLiIg
fQogICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJl
bG9hZHMgZ2l2ZW4gcGFnZSBvcHRpb25hbGx5IGlnbm9yaW5nIHRoZSBjYWNoZS4iCiAgICAgICAg
ICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBh
Z2VBZ2VudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50
LmNwcAppbmRleCAyYzYyMDQ5Li5hNjQ2OTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmNwcApAQCAtNzMsNiArNzMsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKIG5hbWVzcGFjZSBQYWdlQWdlbnRTdGF0ZSB7CiBzdGF0aWMgY29uc3QgY2hh
ciBwYWdlQWdlbnRFbmFibGVkW10gPSAicmVzb3VyY2VBZ2VudEVuYWJsZWQiOworc3RhdGljIGNv
bnN0IGNoYXIgcGFnZUFnZW50U2NyaXB0c1RvRXZhbHVhdGVPbkxvYWRbXSA9ICJwYWdlQWdlbnRT
Y3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCI7CiB9CiAKIHN0YXRpYyBib29sIGRlY29kZVNoYXJlZEJ1
ZmZlcihQYXNzUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gYnVmZmVyLCBjb25zdCBTdHJpbmcmIHRleHRF
bmNvZGluZ05hbWUsIFN0cmluZyogcmVzdWx0KQpAQCAtMjc1LDYgKzI3Niw3IEBAIEluc3BlY3Rv
clBhZ2VBZ2VudDo6SW5zcGVjdG9yUGFnZUFnZW50KEluc3RydW1lbnRpbmdBZ2VudHMqIGluc3Ry
dW1lbnRpbmdBZ2VudHMsCiAgICAgLCBtX2luamVjdGVkU2NyaXB0TWFuYWdlcihpbmplY3RlZFNj
cmlwdE1hbmFnZXIpCiAgICAgLCBtX3N0YXRlKHN0YXRlKQogICAgICwgbV9mcm9udGVuZCgwKQor
ICAgICwgbV9sYXN0U2NyaXB0SWRlbnRpZmllcigwKQogewogfQogCkBAIC0zMTAsMTggKzMxMiwz
NCBAQCB2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6ZGlzYWJsZShFcnJvclN0cmluZyopCiAgICAg
bV9pbnN0cnVtZW50aW5nQWdlbnRzLT5zZXRJbnNwZWN0b3JQYWdlQWdlbnQoMCk7CiB9CiAKLXZv
aWQgSW5zcGVjdG9yUGFnZUFnZW50OjphZGRTY3JpcHRUb0V2YWx1YXRlT25Mb2FkKEVycm9yU3Ry
aW5nKiwgY29uc3QgU3RyaW5nJiBzb3VyY2UpCit2b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6YWRk
U2NyaXB0VG9FdmFsdWF0ZU9uTG9hZChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc291cmNl
LCBTdHJpbmcqIGlkZW50aWZpZXIpCiB7Ci0gICAgbV9zY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZC5h
cHBlbmQoc291cmNlKTsKKyAgICBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiBzY3JpcHRzID0gbV9z
dGF0ZS0+Z2V0T2JqZWN0KFBhZ2VBZ2VudFN0YXRlOjpwYWdlQWdlbnRTY3JpcHRzVG9FdmFsdWF0
ZU9uTG9hZCk7CisgICAgaWYgKCFzY3JpcHRzKSB7CisgICAgICAgIHNjcmlwdHMgPSBJbnNwZWN0
b3JPYmplY3Q6OmNyZWF0ZSgpOworICAgICAgICBtX3N0YXRlLT5zZXRPYmplY3QoUGFnZUFnZW50
U3RhdGU6OnBhZ2VBZ2VudFNjcmlwdHNUb0V2YWx1YXRlT25Mb2FkLCBzY3JpcHRzKTsKKyAgICB9
CisgICAgLy8gQXNzdXJlIHdlIGRvbid0IG92ZXJyaWRlIGV4aXN0aW5nIGlkcyAtLSBtX2xhc3RT
Y3JpcHRJZGVudGlmaWVyIGNvdWxkIGdldCBvdXQgb2Ygc3luYyBXUlQgYWN0dWFsCisgICAgLy8g
c2NyaXB0cyBvbmNlIHdlIHJlc3RvcmVkIHRoZSBzY3JpcHRzIGZyb20gdGhlIGNvb2tpZSBkdXJp
bmcgbmF2aWdhdGlvbi4KKyAgICBkbyB7CisgICAgICAgICppZGVudGlmaWVyID0gU3RyaW5nOjpu
dW1iZXIoKyttX2xhc3RTY3JpcHRJZGVudGlmaWVyKTsKKyAgICB9IHdoaWxlIChzY3JpcHRzLT5m
aW5kKCppZGVudGlmaWVyKSAhPSBzY3JpcHRzLT5lbmQoKSk7CisgICAgc2NyaXB0cy0+c2V0U3Ry
aW5nKCppZGVudGlmaWVyLCBzb3VyY2UpOwogfQogCi12b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6
cmVtb3ZlQWxsU2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQoRXJyb3JTdHJpbmcqKQordm9pZCBJbnNw
ZWN0b3JQYWdlQWdlbnQ6OnJlbW92ZVNjcmlwdFRvRXZhbHVhdGVPbkxvYWQoRXJyb3JTdHJpbmcq
IGVycm9yLCBjb25zdCBTdHJpbmcmIGlkZW50aWZpZXIpCiB7Ci0gICAgbV9zY3JpcHRzVG9FdmFs
dWF0ZU9uTG9hZC5jbGVhcigpOworICAgIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+IHNjcmlwdHMg
PSBtX3N0YXRlLT5nZXRPYmplY3QoUGFnZUFnZW50U3RhdGU6OnBhZ2VBZ2VudFNjcmlwdHNUb0V2
YWx1YXRlT25Mb2FkKTsKKyAgICBpZiAoIXNjcmlwdHMgfHwgc2NyaXB0cy0+ZmluZChpZGVudGlm
aWVyKSA9PSBzY3JpcHRzLT5lbmQoKSkgeworICAgICAgICAqZXJyb3IgPSAiU2NyaXB0IG5vdCBm
b3VuZCI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgc2NyaXB0cy0+cmVtb3ZlKGlkZW50
aWZpZXIpOwogfQogCi12b2lkIEluc3BlY3RvclBhZ2VBZ2VudDo6cmVsb2FkKEVycm9yU3RyaW5n
KiwgY29uc3QgYm9vbCogY29uc3Qgb3B0aW9uYWxJZ25vcmVDYWNoZSkKK3ZvaWQgSW5zcGVjdG9y
UGFnZUFnZW50OjpyZWxvYWQoRXJyb3JTdHJpbmcqLCBjb25zdCBib29sKiBjb25zdCBvcHRpb25h
bElnbm9yZUNhY2hlLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsU2NyaXB0VG9FdmFsdWF0ZU9uTG9h
ZCkKIHsKKyAgICBtX3BlbmRpbmdTY3JpcHRUb0V2YWx1YXRlT25Mb2FkT25jZSA9IG9wdGlvbmFs
U2NyaXB0VG9FdmFsdWF0ZU9uTG9hZCA/ICpvcHRpb25hbFNjcmlwdFRvRXZhbHVhdGVPbkxvYWQg
OiAiIjsKICAgICBtX3BhZ2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+cmVsb2FkKG9wdGlvbmFs
SWdub3JlQ2FjaGUgPyAqb3B0aW9uYWxJZ25vcmVDYWNoZSA6IGZhbHNlKTsKIH0KIApAQCAtNTYz
LDEzICs1ODEsMjAgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRpZENsZWFyV2luZG93T2Jq
ZWN0SW5Xb3JsZChGcmFtZSogZnJhbWUsIERPTVdyYXBwZXJXb3IKICAgICBpZiAoZnJhbWUgPT0g
bV9wYWdlLT5tYWluRnJhbWUoKSkKICAgICAgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmRp
c2NhcmRJbmplY3RlZFNjcmlwdHMoKTsKIAotICAgIGlmIChtX3NjcmlwdHNUb0V2YWx1YXRlT25M
b2FkLnNpemUoKSkgewotICAgICAgICBTY3JpcHRTdGF0ZSogc2NyaXB0U3RhdGUgPSBtYWluV29y
bGRTY3JpcHRTdGF0ZShmcmFtZSk7Ci0gICAgICAgIGZvciAoVmVjdG9yPFN0cmluZz46Oml0ZXJh
dG9yIGl0ID0gbV9zY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZC5iZWdpbigpOwotICAgICAgICAgICAg
IGl0ICE9IG1fc2NyaXB0c1RvRXZhbHVhdGVPbkxvYWQuZW5kKCk7ICsraXQpIHsKLSAgICAgICAg
ICAgIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RTY3JpcHQoKml0LCBzY3JpcHRTdGF0
ZSk7CisgICAgaWYgKCFtX2Zyb250ZW5kKQorICAgICAgICByZXR1cm47CisKKyAgICBSZWZQdHI8
SW5zcGVjdG9yT2JqZWN0PiBzY3JpcHRzID0gbV9zdGF0ZS0+Z2V0T2JqZWN0KFBhZ2VBZ2VudFN0
YXRlOjpwYWdlQWdlbnRTY3JpcHRzVG9FdmFsdWF0ZU9uTG9hZCk7CisgICAgaWYgKHNjcmlwdHMp
IHsKKyAgICAgICAgSW5zcGVjdG9yT2JqZWN0Ojpjb25zdF9pdGVyYXRvciBlbmQgPSBzY3JpcHRz
LT5lbmQoKTsKKyAgICAgICAgZm9yIChJbnNwZWN0b3JPYmplY3Q6OmNvbnN0X2l0ZXJhdG9yIGl0
ID0gc2NyaXB0cy0+YmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgICAgICBTdHJp
bmcgc2NyaXB0VGV4dDsKKyAgICAgICAgICAgIGlmIChpdC0+c2Vjb25kLT5hc1N0cmluZygmc2Ny
aXB0VGV4dCkpCisgICAgICAgICAgICAgICAgbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVj
dFNjcmlwdChzY3JpcHRUZXh0LCBtYWluV29ybGRTY3JpcHRTdGF0ZShmcmFtZSkpOwogICAgICAg
ICB9CiAgICAgfQorICAgIGlmICghbV9zY3JpcHRUb0V2YWx1YXRlT25Mb2FkT25jZS5pc0VtcHR5
KCkpCisgICAgICAgIG1faW5qZWN0ZWRTY3JpcHRNYW5hZ2VyLT5pbmplY3RTY3JpcHQobV9zY3Jp
cHRUb0V2YWx1YXRlT25Mb2FkT25jZSwgbWFpbldvcmxkU2NyaXB0U3RhdGUoZnJhbWUpKTsKIH0K
IAogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmRvbUNvbnRlbnRFdmVudEZpcmVkKCkKQEAgLTU4
NCw2ICs2MDksMTAgQEAgdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmxvYWRFdmVudEZpcmVkKCkK
IAogdm9pZCBJbnNwZWN0b3JQYWdlQWdlbnQ6OmZyYW1lTmF2aWdhdGVkKERvY3VtZW50TG9hZGVy
KiBsb2FkZXIpCiB7CisgICAgaWYgKGxvYWRlci0+ZnJhbWUoKSA9PSBtX3BhZ2UtPm1haW5GcmFt
ZSgpKSB7CisgICAgICAgIG1fc2NyaXB0VG9FdmFsdWF0ZU9uTG9hZE9uY2UgPSBtX3BlbmRpbmdT
Y3JpcHRUb0V2YWx1YXRlT25Mb2FkT25jZTsKKyAgICAgICAgbV9wZW5kaW5nU2NyaXB0VG9FdmFs
dWF0ZU9uTG9hZE9uY2UgPSBTdHJpbmcoKTsKKyAgICB9CiAgICAgbV9mcm9udGVuZC0+ZnJhbWVO
YXZpZ2F0ZWQoYnVpbGRPYmplY3RGb3JGcmFtZShsb2FkZXItPmZyYW1lKCkpLCBsb2FkZXJJZChs
b2FkZXIpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclBhZ2VBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclBhZ2VB
Z2VudC5oCmluZGV4IGQ0Mzg3NGIuLmE3YTE0YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JQYWdlQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5zcGVjdG9yUGFnZUFnZW50LmgKQEAgLTU1LDE0ICs1NSwxNSBAQCBjbGFzcyBJbnN0
cnVtZW50aW5nQWdlbnRzOwogY2xhc3MgS1VSTDsKIGNsYXNzIFBhZ2U7CiBjbGFzcyBSZWd1bGFy
RXhwcmVzc2lvbjsKK2NsYXNzIFNjcmlwdFRvRXZhbHVhdGVPbkxvYWQ7CiBjbGFzcyBTaGFyZWRC
dWZmZXI7CiAKIHR5cGVkZWYgU3RyaW5nIEVycm9yU3RyaW5nOwogCiBjbGFzcyBJbnNwZWN0b3JQ
YWdlQWdlbnQgewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEluc3BlY3RvclBhZ2VBZ2VudCk7
Ci1wdWJsaWM6CiAKK3B1YmxpYzoKICAgICBlbnVtIFJlc291cmNlVHlwZSB7CiAgICAgICAgIERv
Y3VtZW50UmVzb3VyY2UsCiAgICAgICAgIFN0eWxlc2hlZXRSZXNvdXJjZSwKQEAgLTg5LDkgKzkw
LDkgQEAgcHVibGljOgogICAgIC8vIFBhZ2UgQVBJIGZvciBJbnNwZWN0b3JGcm9udGVuZAogICAg
IHZvaWQgZW5hYmxlKEVycm9yU3RyaW5nKik7CiAgICAgdm9pZCBkaXNhYmxlKEVycm9yU3RyaW5n
Kik7Ci0gICAgdm9pZCBhZGRTY3JpcHRUb0V2YWx1YXRlT25Mb2FkKEVycm9yU3RyaW5nKiwgY29u
c3QgU3RyaW5nJiBzb3VyY2UpOwotICAgIHZvaWQgcmVtb3ZlQWxsU2NyaXB0c1RvRXZhbHVhdGVP
bkxvYWQoRXJyb3JTdHJpbmcqKTsKLSAgICB2b2lkIHJlbG9hZChFcnJvclN0cmluZyosIGNvbnN0
IGJvb2wqIGNvbnN0IG9wdGlvbmFsSWdub3JlQ2FjaGUpOworICAgIHZvaWQgYWRkU2NyaXB0VG9F
dmFsdWF0ZU9uTG9hZChFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgc291cmNlLCBTdHJpbmcq
IHJlc3VsdCk7CisgICAgdm9pZCByZW1vdmVTY3JpcHRUb0V2YWx1YXRlT25Mb2FkKEVycm9yU3Ry
aW5nKiwgY29uc3QgU3RyaW5nJiBpZGVudGlmaWVyKTsKKyAgICB2b2lkIHJlbG9hZChFcnJvclN0
cmluZyosIGNvbnN0IGJvb2wqIGNvbnN0IG9wdGlvbmFsSWdub3JlQ2FjaGUsIGNvbnN0IFN0cmlu
Zyogb3B0aW9uYWxTY3JpcHRUb0V2YWx1YXRlT25Mb2FkKTsKICAgICB2b2lkIG9wZW4oRXJyb3JT
dHJpbmcqLCBjb25zdCBTdHJpbmcmIHVybCwgY29uc3QgYm9vbCogY29uc3QgaW5OZXdXaW5kb3cp
OwogICAgIHZvaWQgZ2V0Q29va2llcyhFcnJvclN0cmluZyosIFJlZlB0cjxJbnNwZWN0b3JBcnJh
eT4qIGNvb2tpZXMsIFdURjo6U3RyaW5nKiBjb29raWVzU3RyaW5nKTsKICAgICB2b2lkIGRlbGV0
ZUNvb2tpZShFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgY29va2llTmFtZSwgY29uc3QgU3Ry
aW5nJiBkb21haW4pOwpAQCAtMTMxLDcgKzEzMiw5IEBAIHByaXZhdGU6CiAgICAgSW5qZWN0ZWRT
Y3JpcHRNYW5hZ2VyKiBtX2luamVjdGVkU2NyaXB0TWFuYWdlcjsKICAgICBJbnNwZWN0b3JTdGF0
ZSogbV9zdGF0ZTsKICAgICBJbnNwZWN0b3JGcm9udGVuZDo6UGFnZSogbV9mcm9udGVuZDsKLSAg
ICBWZWN0b3I8U3RyaW5nPiBtX3NjcmlwdHNUb0V2YWx1YXRlT25Mb2FkOworICAgIGxvbmcgbV9s
YXN0U2NyaXB0SWRlbnRpZmllcjsKKyAgICBTdHJpbmcgbV9wZW5kaW5nU2NyaXB0VG9FdmFsdWF0
ZU9uTG9hZE9uY2U7CisgICAgU3RyaW5nIG1fc2NyaXB0VG9FdmFsdWF0ZU9uTG9hZE9uY2U7CiAg
ICAgSGFzaE1hcDxGcmFtZSosIFN0cmluZz4gbV9mcmFtZVRvSWRlbnRpZmllcjsKICAgICBIYXNo
TWFwPFN0cmluZywgRnJhbWUqPiBtX2lkZW50aWZpZXJUb0ZyYW1lOwogICAgIEhhc2hNYXA8RG9j
dW1lbnRMb2FkZXIqLCBTdHJpbmc+IG1fbG9hZGVyVG9JZGVudGlmaWVyOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9FeHRlbnNpb25BUEkuanMgYi9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL0V4dGVuc2lvbkFQSS5qcwppbmRleCAxODc2
MDM4Li5hM2Y5ZDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0V4dGVuc2lvbkFQSS5qcworKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQt
ZW5kL0V4dGVuc2lvbkFQSS5qcwpAQCAtNDg5LDkgKzQ4OSwxNyBAQCBmdW5jdGlvbiBJbnNwZWN0
ZWRXaW5kb3coKQogfQogCiBJbnNwZWN0ZWRXaW5kb3cucHJvdG90eXBlID0gewotICAgIHJlbG9h
ZDogZnVuY3Rpb24odXNlckFnZW50KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGV4dGVuc2lvblNl
cnZlci5zZW5kUmVxdWVzdCh7IGNvbW1hbmQ6ICJyZWxvYWQiLCB1c2VyQWdlbnQ6IHVzZXJBZ2Vu
dCB9KTsKKyAgICByZWxvYWQ6IGZ1bmN0aW9uKG9wdGlvbnNPclVzZXJBZ2VudCkKKyAgICB7Cisg
ICAgICAgIHZhciBvcHRpb25zID0gbnVsbDsKKyAgICAgICAgaWYgKHR5cGVvZiBvcHRpb25zT3JV
c2VyQWdlbnQgPT09ICJvYmplY3QiKQorICAgICAgICAgICAgb3B0aW9ucyA9IG9wdGlvbnNPclVz
ZXJBZ2VudDsKKyAgICAgICAgZWxzZSBpZiAodHlwZW9mIG9wdGlvbnNPclVzZXJBZ2VudCA9PT0g
InN0cmluZyIpIHsKKyAgICAgICAgICAgIG9wdGlvbnMgPSB7IHVzZXJBZ2VudDogb3B0aW9uc09y
VXNlckFnZW50IH07CisgICAgICAgICAgICBjb25zb2xlLndhcm4oIlBhc3NpbmcgdXNlckFnZW50
IGFzIHN0cmluZyBwYXJhbWV0ZXIgdG8gaW5zcGVjdGVkV2luZG93LnJlbG9hZCgpIGlzIGRlcHJl
Y2F0ZWQuICIgKworICAgICAgICAgICAgICAgICAgICAgICAgICJVc2UgaW5zcGVjdGVkV2luZG93
LnJlbG9hZCh7IHVzZXJBZ2VudDogdmFsdWV9KSBpbnN0ZWFkLiIpOworICAgICAgICB9CisgICAg
ICAgIHJldHVybiBleHRlbnNpb25TZXJ2ZXIuc2VuZFJlcXVlc3QoeyBjb21tYW5kOiAicmVsb2Fk
Iiwgb3B0aW9uczogb3B0aW9ucyB9KTsKICAgICB9LAogCiAgICAgZXZhbDogZnVuY3Rpb24oZXhw
cmVzc2lvbiwgY2FsbGJhY2spCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
ZnJvbnQtZW5kL0V4dGVuc2lvblNlcnZlci5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9m
cm9udC1lbmQvRXh0ZW5zaW9uU2VydmVyLmpzCmluZGV4IDU4MWNkMmYuLjVhNTUwNzMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2VydmVy
LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9mcm9udC1lbmQvRXh0ZW5zaW9uU2Vy
dmVyLmpzCkBAIC0yODIsMTAgKzI4MiwxNSBAQCBXZWJJbnNwZWN0b3IuRXh0ZW5zaW9uU2VydmVy
LnByb3RvdHlwZSA9IHsKIAogICAgIF9vblJlbG9hZDogZnVuY3Rpb24obWVzc2FnZSkKICAgICB7
Ci0gICAgICAgIGlmICh0eXBlb2YgbWVzc2FnZS51c2VyQWdlbnQgPT09ICJzdHJpbmciKQotICAg
ICAgICAgICAgTmV0d29ya0FnZW50LnNldFVzZXJBZ2VudE92ZXJyaWRlKG1lc3NhZ2UudXNlckFn
ZW50KTsKLQotICAgICAgICBQYWdlQWdlbnQucmVsb2FkKGZhbHNlKTsKKyAgICAgICAgdmFyIG9w
dGlvbnMgPSBtZXNzYWdlLm9wdGlvbnMgfHwge307CisgICAgICAgIE5ldHdvcmtBZ2VudC5zZXRV
c2VyQWdlbnRPdmVycmlkZSh0eXBlb2Ygb3B0aW9ucy51c2VyQWdlbnQgPT09ICJzdHJpbmciID8g
b3B0aW9ucy51c2VyQWdlbnQgOiAiIik7CisgICAgICAgIHZhciBpbmplY3RlZFNjcmlwdDsKKyAg
ICAgICAgaWYgKG9wdGlvbnMuaW5qZWN0ZWRTY3JpcHQpIHsKKyAgICAgICAgICAgIC8vIFdyYXAg
Y2xpZW50IHNjcmlwdCBpbnRvIGFub255bW91cyBmdW5jdGlvbiwgcmV0dXJuIGFub3RoZXIgYW5v
bnltb3VzIGZ1bmN0aW9uIHRoYXQKKyAgICAgICAgICAgIC8vIHJldHVybnMgZW1wdHkgb2JqZWN0
IGZvciBjb21wYXRpYmlsaXR5IHdpdGggSW5qZWN0ZWRTY3JpcHRNYW5hZ2VyIG9uIHRoZSBiYWNr
ZW5kLgorICAgICAgICAgICAgaW5qZWN0ZWRTY3JpcHQgPSAiKChmdW5jdGlvbigpeyIgKyBvcHRp
b25zLmluamVjdGVkU2NyaXB0ICsgIn0pKCksZnVuY3Rpb24oKXtyZXR1cm4ge319KSI7CisgICAg
ICAgIH0KKyAgICAgICAgUGFnZUFnZW50LnJlbG9hZChmYWxzZSwgaW5qZWN0ZWRTY3JpcHQpOwog
ICAgICAgICByZXR1cm4gdGhpcy5fc3RhdHVzLk9LKCk7CiAgICAgfSwKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL2Zyb250LWVuZC9Xb3JrZXJzU2lkZWJhclBhbmUuanMg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlcnNTaWRlYmFyUGFuZS5q
cwppbmRleCAyNDY0ZTdiLi5kNjFlM2U5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvZnJvbnQtZW5kL1dvcmtlcnNTaWRlYmFyUGFuZS5qcworKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvZnJvbnQtZW5kL1dvcmtlcnNTaWRlYmFyUGFuZS5qcwpAQCAtNzYsMjMgKzc2
LDM1IEBAIFdlYkluc3BlY3Rvci5Xb3JrZXJzU2lkZWJhclBhbmUucHJvdG90eXBlID0gewogICAg
ICAgICB9CiAgICAgfSwKIAotICAgIHNldEluc3RydW1lbnRhdGlvbjogZnVuY3Rpb24oZW5hYmxl
ZCkKKyAgICBfc2V0SW5zdHJ1bWVudGF0aW9uOiBmdW5jdGlvbihlbmFibGVkKQogICAgIHsKLSAg
ICAgICAgUGFnZUFnZW50LnJlbW92ZUFsbFNjcmlwdHNUb0V2YWx1YXRlT25Mb2FkKCk7Ci0gICAg
ICAgIGlmIChlbmFibGVkKQotICAgICAgICAgICAgUGFnZUFnZW50LmFkZFNjcmlwdFRvRXZhbHVh
dGVPbkxvYWQoIigiICsgSW5qZWN0ZWRGYWtlV29ya2VyICsgIikiKTsKKyAgICAgICAgaWYgKCFl
bmFibGVkID09PSAhdGhpcy5fZmFrZVdvcmtlcnNTY3JpcHRJZGVudGlmaWVyKQorICAgICAgICAg
ICAgcmV0dXJuOworCisgICAgICAgIGlmIChlbmFibGVkKSB7CisgICAgICAgICAgICB0aGlzLl9l
bmFibGVXb3JrZXJzQ2hlY2tib3guZGlzYWJsZWQgPSB0cnVlOworICAgICAgICAgICAgZnVuY3Rp
b24gY2FsbGJhY2soZXJyb3IsIGlkZW50aWZpZXIpCisgICAgICAgICAgICB7CisgICAgICAgICAg
ICAgICAgdGhpcy5fZmFrZVdvcmtlcnNTY3JpcHRJZGVudGlmaWVyID0gaWRlbnRpZmllcjsKKyAg
ICAgICAgICAgICAgICB0aGlzLl9lbmFibGVXb3JrZXJzQ2hlY2tib3guZGlzYWJsZWQgPSBmYWxz
ZTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIFBhZ2VBZ2VudC5hZGRTY3JpcHRUb0V2YWx1
YXRlT25Mb2FkKCIoIiArIEluamVjdGVkRmFrZVdvcmtlciArICIpIiwgY2FsbGJhY2suYmluZCh0
aGlzKSk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBQYWdlQWdlbnQucmVtb3ZlU2Ny
aXB0VG9FdmFsdWF0ZU9uTG9hZCh0aGlzLl9mYWtlV29ya2Vyc1NjcmlwdElkZW50aWZpZXIpOwor
ICAgICAgICAgICAgdGhpcy5fZmFrZVdvcmtlcnNTY3JpcHRJZGVudGlmaWVyID0gbnVsbDsKKyAg
ICAgICAgfQogICAgIH0sCiAKICAgICByZXNldDogZnVuY3Rpb24oKQogICAgIHsKLSAgICAgICAg
dGhpcy5zZXRJbnN0cnVtZW50YXRpb24odGhpcy5fZW5hYmxlV29ya2Vyc0NoZWNrYm94LmNoZWNr
ZWQpOworICAgICAgICB0aGlzLl9zZXRJbnN0cnVtZW50YXRpb24odGhpcy5fZW5hYmxlV29ya2Vy
c0NoZWNrYm94LmNoZWNrZWQpOwogICAgICAgICB0aGlzLl90cmVlT3V0bGluZS5yZW1vdmVDaGls
ZHJlbigpOwogICAgICAgICB0aGlzLl93b3JrZXJzID0ge307CiAgICAgfSwKIAogICAgIF9vblRy
aWdnZXJJbnN0cnVtZW50OiBmdW5jdGlvbihldmVudCkKICAgICB7Ci0gICAgICAgIHRoaXMuc2V0
SW5zdHJ1bWVudGF0aW9uKHRoaXMuX2VuYWJsZVdvcmtlcnNDaGVja2JveC5jaGVja2VkKTsKKyAg
ICAgICAgdGhpcy5fc2V0SW5zdHJ1bWVudGF0aW9uKHRoaXMuX2VuYWJsZVdvcmtlcnNDaGVja2Jv
eC5jaGVja2VkKTsKICAgICB9CiB9OwogCg==
</data>
<flag name="review"
          id="110229"
          type_id="1"
          status="+"
          setter="pfeldman"
    />
          </attachment>
      

    </bug>

</bugzilla>