<?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>94397</bug_id>
          
          <creation_ts>2012-08-17 16:57:48 -0700</creation_ts>
          <short_desc>Web Inspector: expose object internal properties such as PrimitiveValue or BoundThis</short_desc>
          <delta_ts>2012-10-04 09:12:38 -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>0</everconfirmed>
          <reporter name="Peter Rybin">prybin</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>apavlov</cc>
    
    <cc>bweinstein</cc>
    
    <cc>dglazkov</cc>
    
    <cc>gustavo</cc>
    
    <cc>haraken</cc>
    
    <cc>japhet</cc>
    
    <cc>joepeck</cc>
    
    <cc>keishi</cc>
    
    <cc>loislo</cc>
    
    <cc>pfeldman</cc>
    
    <cc>philn</cc>
    
    <cc>pmuellr</cc>
    
    <cc>rik</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>xan.lopez</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>698794</commentid>
    <comment_count>0</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-08-17 16:57:48 -0700</bug_when>
    <thetext>Some JavaScript objects holds inner state that cannot be seen as a regular properties. However the state is well defined in spec as internal properties. Make them visible to user, since they might be important for user data exploring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698843</commentid>
    <comment_count>1</comment_count>
      <attachid>159242</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-08-17 17:36:24 -0700</bug_when>
    <thetext>Created attachment 159242
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698850</commentid>
    <comment_count>2</comment_count>
      <attachid>159243</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-08-17 17:44:46 -0700</bug_when>
    <thetext>Created attachment 159243
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698853</commentid>
    <comment_count>3</comment_count>
      <attachid>159243</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-08-17 17:54:14 -0700</bug_when>
    <thetext>Comment on attachment 159243
Patch

Attachment 159243 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/13520603</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698860</commentid>
    <comment_count>4</comment_count>
      <attachid>159248</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-08-17 18:02:21 -0700</bug_when>
    <thetext>Created attachment 159248
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698883</commentid>
    <comment_count>5</comment_count>
      <attachid>159248</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-08-17 18:49:12 -0700</bug_when>
    <thetext>Comment on attachment 159248
Patch

Attachment 159248 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/13517960</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>698890</commentid>
    <comment_count>6</comment_count>
      <attachid>159248</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2012-08-17 19:04:41 -0700</bug_when>
    <thetext>Comment on attachment 159248
Patch

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

&gt; Source/WebCore/bindings/js/JSInjectedScriptHostCustom.cpp:194
&gt; +    return jsUndefined();

Please file a JSC bug about adding this and put in a FIXME.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725632</commentid>
    <comment_count>7</comment_count>
      <attachid>165154</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-09-21 10:51:28 -0700</bug_when>
    <thetext>Created attachment 165154
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725644</commentid>
    <comment_count>8</comment_count>
      <attachid>165154</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-21 11:12:45 -0700</bug_when>
    <thetext>Comment on attachment 165154
Patch

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

New failing tests:
inspector/console/command-line-api.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>725774</commentid>
    <comment_count>9</comment_count>
      <attachid>165154</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-21 13:46:12 -0700</bug_when>
    <thetext>Comment on attachment 165154
Patch

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

New failing tests:
WebFilterOperationsTest.saveAndRestore
inspector/console/command-line-api.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>726615</commentid>
    <comment_count>10</comment_count>
      <attachid>165154</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-24 06:50:08 -0700</bug_when>
    <thetext>Comment on attachment 165154
Patch

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

&gt; Source/WebCore/inspector/Inspector.json:498
&gt; +                    { &quot;name&quot;: &quot;internal&quot;, &quot;type&quot;: &quot;boolean&quot;, &quot;optional&quot;: true, &quot;description&quot;: &quot;True if property is only visible in debugger and its name is conventional.&quot; }

r- for this part as we agreed off the bug to return internal properties in a separate array instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727871</commentid>
    <comment_count>11</comment_count>
      <attachid>165655</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-09-25 12:22:49 -0700</bug_when>
    <thetext>Created attachment 165655
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727873</commentid>
    <comment_count>12</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-25 12:25:04 -0700</bug_when>
    <thetext>Attachment 165655 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/InjectedScript.cpp:145:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InjectedScript.h:82:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Total errors found: 2 in 17 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>727874</commentid>
    <comment_count>13</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-09-25 12:26:04 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; Created an attachment (id=165655) [details]
&gt; Patch

Since this patch this bug assumes that frontend needs explicit support for this feature (with previous version it got internal properties among others).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727886</commentid>
    <comment_count>14</comment_count>
      <attachid>165655</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-25 12:48:32 -0700</bug_when>
    <thetext>Comment on attachment 165655
Patch

Attachment 165655 did not pass win-ews (win):
Output: http://queues.webkit.org/results/14019240</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>727946</commentid>
    <comment_count>15</comment_count>
      <attachid>165655</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-09-25 14:08:37 -0700</bug_when>
    <thetext>Comment on attachment 165655
Patch

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

New failing tests:
inspector-protocol/runtime-getProperties.html
http/tests/security/sandboxed-iframe-origin-add.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728220</commentid>
    <comment_count>16</comment_count>
      <attachid>165655</attachid>
    <who name="Yury Semikhatsky">yurys</who>
    <bug_when>2012-09-25 23:02:57 -0700</bug_when>
    <thetext>Comment on attachment 165655
Patch

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

&gt; LayoutTests/inspector-protocol/runtime-getProperties-expected.txt:1
&gt; +Properties of Object(5)

You will also need to provide JSC-specific test expectations.

&gt; LayoutTests/inspector-protocol/runtime-getProperties.html:50
&gt; +                processStep(next);

Consider moving this into the try block.

&gt; LayoutTests/inspector-protocol/runtime-getProperties.html:90
&gt; +        if (id === undefined)

if (!id) would work</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>728510</commentid>
    <comment_count>17</comment_count>
      <attachid>165655</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-09-26 07:00:58 -0700</bug_when>
    <thetext>Comment on attachment 165655
Patch

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

&gt;&gt; LayoutTests/inspector-protocol/runtime-getProperties.html:50
&gt;&gt; +                processStep(next);
&gt; 
&gt; Consider moving this into the try block.

processStep is a one big try itself.

&gt;&gt; LayoutTests/inspector-protocol/runtime-getProperties.html:90
&gt;&gt; +        if (id === undefined)
&gt; 
&gt; if (!id) would work

Technically yes, but I&apos;d like not think about whether id can legitimately 0 (no) or empty string (no).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734027</commentid>
    <comment_count>18</comment_count>
      <attachid>166959</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-10-03 14:19:11 -0700</bug_when>
    <thetext>Created attachment 166959
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734032</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-03 14:22:07 -0700</bug_when>
    <thetext>Attachment 166959 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/InjectedScript.cpp:145:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InjectedScript.h:82:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Total errors found: 2 in 18 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>734068</commentid>
    <comment_count>20</comment_count>
      <attachid>166959</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-03 15:04:36 -0700</bug_when>
    <thetext>Comment on attachment 166959
Patch

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

New failing tests:
inspector/console/command-line-api.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734079</commentid>
    <comment_count>21</comment_count>
      <attachid>166970</attachid>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-10-03 15:20:40 -0700</bug_when>
    <thetext>Created attachment 166970
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734086</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-03 15:26:42 -0700</bug_when>
    <thetext>Attachment 166970 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/InjectedScript.cpp:145:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Source/WebCore/inspector/InjectedScript.h:82:  The parameter type should use PassRefPtr instead of RefPtr.  [readability/pass_ptr] [5]
Total errors found: 2 in 19 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>734709</commentid>
    <comment_count>23</comment_count>
    <who name="Peter Rybin">prybin</who>
    <bug_when>2012-10-04 08:26:59 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 165655 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=165655&amp;action=review
&gt; 
&gt; &gt; LayoutTests/inspector-protocol/runtime-getProperties-expected.txt:1
&gt; &gt; +Properties of Object(5)
&gt; 
&gt; You will also need to provide JSC-specific test expectations.

Done</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734742</commentid>
    <comment_count>24</comment_count>
      <attachid>166970</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-04 09:12:34 -0700</bug_when>
    <thetext>Comment on attachment 166970
Patch

Clearing flags on attachment: 166970

Committed r130398: &lt;http://trac.webkit.org/changeset/130398&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>734743</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-04 09:12:38 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159242</attachid>
            <date>2012-08-17 17:36:24 -0700</date>
            <delta_ts>2012-08-17 17:44:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94397-20120818043547.patch</filename>
            <type>text/plain</type>
            <size>7757</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1Nzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAzNzQ2ZjMxZmE4ODdl
MDdmMmU0NTZmMDNmYTI1MWIyNTFiOTE0My4uYTc2YmMzODdjNjZiY2FhMTE4MGFjMGY0MmY0ZWRh
NzI3YTIyZjkwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA4LTE3ICBQZXRl
ciBSeWJpbiAgPHBldGVyLnJ5YmluQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBleHBvc2Ugb2JqZWN0IGludGVybmFsIHByb3BlcnRpZXMgc3VjaCBhcyBQcmltaXRpdmVWYWx1
ZSBvciBCb3VuZFRoaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk0Mzk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW50ZXJuYWwgcHJvcGVydHkgYWNjZXNzIGlzIGJ1aWx0IGZyb20gSW5qZWN0ZWQgU2Ny
aXB0IHRvIFY4IGRlYnVnIEFQSS4gSlNDIGJpbmRpbmcKKyAgICAgICAgaGFzIGEgc3R1YiBpbWxw
ZW1lbnRhdGlvbi4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SW5qZWN0ZWRTY3JpcHRIb3N0OjpnZXRJ
bnRlcm5hbFByb3BlcnRpZXNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9EZWJ1Z2dlclNjcmlwdC5qczoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9T
Y3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZl
cjo6Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmg6CisgICAgICAgIChTY3JpcHREZWJ1Z1Nl
cnZlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0RnVuY3Rpb25DYWxsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEZ1bmN0aW9uQ2FsbDo6Y2FsbCk6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4SW5qZWN0ZWRTY3JpcHRIb3N0OjpnZXRJbnRlcm5hbFByb3BlcnRpZXNDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRT
Y3JpcHRIb3N0LmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2Uu
anM6CisgICAgICAgICguKToKKwogMjAxMi0wOC0xNSAgTGV2aSBXZWludHJhdWIgIDxsZXZpd0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWNjdW11bGF0ZSBzdWItcGl4ZWwgb2Zmc2V0cyB0aHJv
dWdoIGxheWVycyBhbmQgdHJhbnNmb3JtcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCmluZGV4IGYwZDkzYWJk
YWI3ZGNmMmYxZDRhNGNhN2Q5NjA5ZGZiMzQ2ZGVhMjEuLjZhYTliZjI4OWIwODExMTRhYjJkOTVl
YTI3YWNmOWJkNTBkNWYxMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAKQEAgLTE4OSw2ICsxODksMTEg
QEAgSlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0SG9zdDo6ZnVuY3Rpb25EZXRhaWxzKEV4ZWNTdGF0
ZSogZXhlYykKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitKU1ZhbHVlIFY4SW5qZWN0ZWRTY3Jp
cHRIb3N0OjpnZXRJbnRlcm5hbFByb3BlcnRpZXNDYWxsYmFjayhFeGVjU3RhdGUqIGV4ZWMpCit7
CisgICAgcmV0dXJuIGpzVW5kZWZpbmVkKCk7Cit9CisKIHN0YXRpYyBKU0FycmF5KiBnZXRKU0xp
c3RlbmVyRnVuY3Rpb25zKEV4ZWNTdGF0ZSogZXhlYywgRG9jdW1lbnQqIGRvY3VtZW50LCBjb25z
dCBFdmVudExpc3RlbmVySW5mbyYgbGlzdGVuZXJJbmZvKQogewogICAgIEpTQXJyYXkqIHJlc3Vs
dCA9IGNvbnN0cnVjdEVtcHR5QXJyYXkoZXhlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy92OC9EZWJ1Z2dlclNjcmlwdC5qcyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3Y4L0RlYnVnZ2VyU2NyaXB0LmpzCmluZGV4IDkxNGI2ZjI2MjQ3NGU2ODIxYzc5NmMzNjBjNzEx
YzBjNjljYjYyNzQuLjYyY2NiNzM2YjVkNjZjZGRhMDQxYzBlODlhNGViMTQ4OTJkNTNhYmMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RlYnVnZ2VyU2NyaXB0LmpzCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RlYnVnZ2VyU2NyaXB0LmpzCkBAIC03OSw2
ICs3OSwyMCBAQCBEZWJ1Z2dlclNjcmlwdC5nZXRGdW5jdGlvblNjb3BlcyA9IGZ1bmN0aW9uKGZ1
bikKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitEZWJ1Z2dlclNjcmlwdC5nZXRJbnRlcm5hbFBy
b3BlcnRpZXMgPSBmdW5jdGlvbih2YWx1ZSkKK3sKKyAgICB2YXIgcHJvcGVydGllcyA9IE9iamVj
dE1pcnJvci5HZXRJbnRlcm5hbFByb3BlcnRpZXModmFsdWUpOworICAgIHZhciByZXN1bHQgPSBb
XTsKKyAgICBmb3IgKHZhciBpID0gMDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHsKKyAg
ICAgICAgdmFyIG1pcnJvciA9IHByb3BlcnRpZXNbaV07CisgICAgICAgIHJlc3VsdC5wdXNoKHsK
KyAgICAgICAgICAgIG5hbWU6IG1pcnJvci5uYW1lKCksCisgICAgICAgICAgICB2YWx1ZTogbWly
cm9yLnZhbHVlKCkudmFsdWUoKQorICAgICAgICB9KTsgCisgICAgfQorICAgIHJldHVybiByZXN1
bHQ7Cit9CisKIERlYnVnZ2VyU2NyaXB0LmdldFNjcmlwdHMgPSBmdW5jdGlvbihjb250ZXh0RGF0
YSkKIHsKICAgICB2YXIgcmVzdWx0ID0gW107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy92OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKaW5kZXggMTQ1NWFhZWM0ZmY0NzIzNWY5ZTYxZGUz
ZTRkYjk4ZmI4ZjAxMjRkZC4uOTU0YTQ3MzIwZDYzYjBmZDdkNWEwODk1NjU3ODcwNGFlMjQ5MDFh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVy
LmNwcApAQCAtNDEyLDYgKzQxMiwxNiBAQCB2ODo6TG9jYWw8djg6OlZhbHVlPiBTY3JpcHREZWJ1
Z1NlcnZlcjo6ZnVuY3Rpb25TY29wZXModjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+CiAgICAgcmV0
dXJuIGNhbGxEZWJ1Z2dlck1ldGhvZCgiZ2V0RnVuY3Rpb25TY29wZXMiLCAxLCBhcmd2KTsKIH0K
IAordjg6OkxvY2FsPHY4OjpWYWx1ZT4gU2NyaXB0RGVidWdTZXJ2ZXI6OmdldEludGVybmFsUHJv
cGVydGllcyh2ODo6SGFuZGxlPHY4OjpPYmplY3Q+JiBvYmplY3QpCit7CisgICAgaWYgKG1fZGVi
dWdnZXJTY3JpcHQuZ2V0KCkuSXNFbXB0eSgpKQorICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5l
ZCgpOworCisgICAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IGFyZ3ZbXSA9IHsgb2JqZWN0IH07Cisg
ICAgcmV0dXJuIGNhbGxEZWJ1Z2dlck1ldGhvZCgiZ2V0SW50ZXJuYWxQcm9wZXJ0aWVzIiwgMSwg
YXJndik7Cit9CisKKwogYm9vbCBTY3JpcHREZWJ1Z1NlcnZlcjo6aXNQYXVzZWQoKQogewogICAg
IHJldHVybiAhbV9leGVjdXRpb25TdGF0ZS5nZXQoKS5Jc0VtcHR5KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5oIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuaAppbmRleCA0ZDFlNjVlMDk0OGMz
YTVmZDE5YmM2MWQ0NWZlN2M2NzQ0YmEzZWQwLi4zNWIxZGI1NDNjYmM5NTRkOTdiOWMzOWM5YTQy
NGE0YjRlMWYwMDQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3Jp
cHREZWJ1Z1NlcnZlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERl
YnVnU2VydmVyLmgKQEAgLTk3LDYgKzk3LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNQYXVzZWQo
KTsKIAogICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGZ1bmN0aW9uU2NvcGVzKHY4OjpIYW5kbGU8
djg6OkZ1bmN0aW9uPik7CisgICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gZ2V0SW50ZXJuYWxQcm9w
ZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9iamVjdD4mKTsKIAogICAgIHZpcnR1YWwgdm9pZCBjb21w
aWxlU2NyaXB0KFNjcmlwdFN0YXRlKiwgY29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBT
dHJpbmcmIHNvdXJjZVVSTCwgU3RyaW5nKiBzY3JpcHRJZCwgU3RyaW5nKiBleGNlcHRpb25NZXNz
YWdlKTsKICAgICB2aXJ0dWFsIHZvaWQgY2xlYXJDb21waWxlZFNjcmlwdHMoKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9z
dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3Rl
ZFNjcmlwdEhvc3RDdXN0b20uY3BwCmluZGV4IDRkZDE4MWI4OGJmZWU5OWI4ZTEyNTc5Y2RmZTY2
MjU0YzUzZjZlYjYuLmU1ZDE4YzM2ZGJjYTMwYjQ0ZTk5NzViZjFhYjc2M2M1MTA2MzUxYTggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2Ny
aXB0SG9zdEN1c3RvbS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9t
L1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcApAQCAtMTkyLDYgKzE5MiwyMSBAQCB2ODo6
SGFuZGxlPHY4OjpWYWx1ZT4gVjhJbmplY3RlZFNjcmlwdEhvc3Q6OmZ1bmN0aW9uRGV0YWlsc0Nh
bGxiYWNrKGNvbnN0IHY4OjpBcgogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK3Y4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOEluamVjdGVkU2NyaXB0SG9zdDo6Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzQ2Fs
bGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50cyYgYXJncykKK3sKKyAgICBJTkNfU1RBVFMoIkluamVj
dGVkU2NyaXB0SG9zdC5nZXRJbnRlcm5hbFByb3BlcnRpZXMoKSIpOworICAgIGlmIChhcmdzLkxl
bmd0aCgpIDwgMSkKKyAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKKworICAgIHY4OjpI
YW5kbGVTY29wZSBoYW5kbGVTY29wZTsKKworICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2Jq
ZWN0ID0gdjg6OkhhbmRsZTx2ODo6T2JqZWN0Pjo6Q2FzdChhcmdzWzBdKTsKKworICAgIEluamVj
dGVkU2NyaXB0SG9zdCogaG9zdCA9IFY4SW5qZWN0ZWRTY3JpcHRIb3N0Ojp0b05hdGl2ZShhcmdz
LkhvbGRlcigpKTsKKyAgICBTY3JpcHREZWJ1Z1NlcnZlciYgZGVidWdTZXJ2ZXIgPSBob3N0LT5z
Y3JpcHREZWJ1Z1NlcnZlcigpOworICAgIHJldHVybiBkZWJ1Z1NlcnZlci5nZXRJbnRlcm5hbFBy
b3BlcnRpZXMob2JqZWN0KTsKK30KKwogc3RhdGljIHY4OjpIYW5kbGU8djg6OkFycmF5PiBnZXRK
U0xpc3RlbmVyRnVuY3Rpb25zKERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgRXZlbnRMaXN0ZW5l
ckluZm8mIGxpc3RlbmVySW5mbykKIHsKICAgICB2ODo6TG9jYWw8djg6OkFycmF5PiByZXN1bHQg
PSB2ODo6QXJyYXk6Ok5ldygpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9y
L0luamVjdGVkU2NyaXB0SG9zdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRIb3N0LmlkbAppbmRleCA3MWI4OGIxMzdmZTI0NWZhMTI2MWE2NDM1MWY3ZTc4ODMz
NTQwMDcxLi4wZjc5MjVmZTdmODdiNDUxMjlhMjYxYzQ4MzEzYjkyNmI3NzcwYTgwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmlkbApAQCAtNDMs
NiArNDMsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIFtDdXN0b21dIGJvb2xlYW4gaXNIVE1M
QWxsQ29sbGVjdGlvbihpbiBET01PYmplY3Qgb2JqZWN0KTsKICAgICAgICAgW0N1c3RvbV0gRE9N
U3RyaW5nIHR5cGUoaW4gRE9NT2JqZWN0IG9iamVjdCk7CiAgICAgICAgIFtDdXN0b21dIERPTU9i
amVjdCBmdW5jdGlvbkRldGFpbHMoaW4gRE9NT2JqZWN0IG9iamVjdCk7CisgICAgICAgIFtDdXN0
b21dIEFycmF5IGdldEludGVybmFsUHJvcGVydGllcyhpbiBET01PYmplY3Qgb2JqZWN0KTsKICAg
ICAgICAgW0N1c3RvbV0gQXJyYXkgZ2V0RXZlbnRMaXN0ZW5lcnMoaW4gTm9kZSBub2RlKTsKIAog
ICAgICAgICBbQ3VzdG9tXSBET01TdHJpbmcgZGF0YWJhc2VJZChpbiBET01PYmplY3QgZGF0YWJh
c2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
U291cmNlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNl
LmpzCmluZGV4IDA2OWI3YzAwMzliYzM2Y2U1ZTdkMTQ3NTFhZjlhZjk3Y2M0N2VkYzAuLjdlMjQz
MzFhZWI0MTgxZDMwNjc5ODlkNWVhMDJjY2Y0MzRhNzRiNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKQEAgLTI0Miw2ICsyNDIsMjAg
QEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIGRlc2NyaXB0
b3IuZW51bWVyYWJsZSA9IGZhbHNlOwogICAgICAgICAgICAgCiAgICAgICAgIH0KKyAgICAgICAg
dmFyIGludGVybmFsUHJvcGVydGllcyA9IEluamVjdGVkU2NyaXB0SG9zdC5nZXRJbnRlcm5hbFBy
b3BlcnRpZXMob2JqZWN0KTsKKyAgICAgICAgaWYgKGludGVybmFsUHJvcGVydGllcykgeworICAg
ICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnRlcm5hbFByb3BlcnRpZXMubGVuZ3RoOyBp
KyspIHsKKyAgICAgICAgICAgICAgICB2YXIgcHJvcGVydHkgPSBpbnRlcm5hbFByb3BlcnRpZXNb
aV07CisgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0b3IgPSB7CisgICAgICAgICAgICAgICAg
ICAgIC8vIEZJWE1FOiBjb25zaWRlciBhZGRpbmcgJ2ludGVybmFsPXRydWUnIHByb3BlcnR5IHRv
IHByb3RvY29sLiAKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogcHJvcGVydHkubmFtZSwKKyAg
ICAgICAgICAgICAgICAgICAgdmFsdWU6IHRoaXMuX3dyYXBPYmplY3QocHJvcGVydHkudmFsdWUs
IG9iamVjdEdyb3VwTmFtZSksCisgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNl
LAorICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IGZhbHNlCisgICAgICAgICAgICAg
ICAgfTsKKyAgICAgICAgICAgICAgICBkZXNjcmlwdG9ycy5wdXNoKGRlc2NyaXB0b3IpOworICAg
ICAgICAgICAgfSAKKyAgICAgICAgfQogICAgICAgICByZXR1cm4gZGVzY3JpcHRvcnM7CiAgICAg
fSwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159243</attachid>
            <date>2012-08-17 17:44:46 -0700</date>
            <delta_ts>2012-08-17 18:02:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94397-20120818044409.patch</filename>
            <type>text/plain</type>
            <size>7749</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1Nzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAzNzQ2ZjMxZmE4ODdl
MDdmMmU0NTZmMDNmYTI1MWIyNTFiOTE0My4uYTc2YmMzODdjNjZiY2FhMTE4MGFjMGY0MmY0ZWRh
NzI3YTIyZjkwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA4LTE3ICBQZXRl
ciBSeWJpbiAgPHBldGVyLnJ5YmluQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBleHBvc2Ugb2JqZWN0IGludGVybmFsIHByb3BlcnRpZXMgc3VjaCBhcyBQcmltaXRpdmVWYWx1
ZSBvciBCb3VuZFRoaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk0Mzk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW50ZXJuYWwgcHJvcGVydHkgYWNjZXNzIGlzIGJ1aWx0IGZyb20gSW5qZWN0ZWQgU2Ny
aXB0IHRvIFY4IGRlYnVnIEFQSS4gSlNDIGJpbmRpbmcKKyAgICAgICAgaGFzIGEgc3R1YiBpbWxw
ZW1lbnRhdGlvbi4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SW5qZWN0ZWRTY3JpcHRIb3N0OjpnZXRJ
bnRlcm5hbFByb3BlcnRpZXNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9EZWJ1Z2dlclNjcmlwdC5qczoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9T
Y3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZl
cjo6Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmg6CisgICAgICAgIChTY3JpcHREZWJ1Z1Nl
cnZlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0RnVuY3Rpb25DYWxsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEZ1bmN0aW9uQ2FsbDo6Y2FsbCk6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4SW5qZWN0ZWRTY3JpcHRIb3N0OjpnZXRJbnRlcm5hbFByb3BlcnRpZXNDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRT
Y3JpcHRIb3N0LmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2Uu
anM6CisgICAgICAgICguKToKKwogMjAxMi0wOC0xNSAgTGV2aSBXZWludHJhdWIgIDxsZXZpd0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWNjdW11bGF0ZSBzdWItcGl4ZWwgb2Zmc2V0cyB0aHJv
dWdoIGxheWVycyBhbmQgdHJhbnNmb3JtcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCmluZGV4IGYwZDkzYWJk
YWI3ZGNmMmYxZDRhNGNhN2Q5NjA5ZGZiMzQ2ZGVhMjEuLmQ1MDIyNzQ2NzBkZjE1NDQyZDc3ZTIw
NmZlMDA5NzdmMjZkOGE5MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAKQEAgLTE4OSw2ICsxODksMTEg
QEAgSlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0SG9zdDo6ZnVuY3Rpb25EZXRhaWxzKEV4ZWNTdGF0
ZSogZXhlYykKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitKU1ZhbHVlIEpTSW5qZWN0ZWRTY3Jp
cHRIb3N0OjpnZXRJbnRlcm5hbFByb3BlcnRpZXMoRXhlY1N0YXRlKiBleGVjKQoreworICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOworfQorCiBzdGF0aWMgSlNBcnJheSogZ2V0SlNMaXN0ZW5lckZ1
bmN0aW9ucyhFeGVjU3RhdGUqIGV4ZWMsIERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgRXZlbnRM
aXN0ZW5lckluZm8mIGxpc3RlbmVySW5mbykKIHsKICAgICBKU0FycmF5KiByZXN1bHQgPSBjb25z
dHJ1Y3RFbXB0eUFycmF5KGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvRGVidWdnZXJTY3JpcHQuanMgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EZWJ1
Z2dlclNjcmlwdC5qcwppbmRleCA5MTRiNmYyNjI0NzRlNjgyMWM3OTZjMzYwYzcxMWMwYzY5Y2I2
Mjc0Li42MmNjYjczNmI1ZDY2Y2RkYTA0MWMwZTg5YTRlYjE0ODkyZDUzYWJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EZWJ1Z2dlclNjcmlwdC5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EZWJ1Z2dlclNjcmlwdC5qcwpAQCAtNzksNiArNzksMjAg
QEAgRGVidWdnZXJTY3JpcHQuZ2V0RnVuY3Rpb25TY29wZXMgPSBmdW5jdGlvbihmdW4pCiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAorRGVidWdnZXJTY3JpcHQuZ2V0SW50ZXJuYWxQcm9wZXJ0aWVz
ID0gZnVuY3Rpb24odmFsdWUpCit7CisgICAgdmFyIHByb3BlcnRpZXMgPSBPYmplY3RNaXJyb3Iu
R2V0SW50ZXJuYWxQcm9wZXJ0aWVzKHZhbHVlKTsKKyAgICB2YXIgcmVzdWx0ID0gW107CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZh
ciBtaXJyb3IgPSBwcm9wZXJ0aWVzW2ldOworICAgICAgICByZXN1bHQucHVzaCh7CisgICAgICAg
ICAgICBuYW1lOiBtaXJyb3IubmFtZSgpLAorICAgICAgICAgICAgdmFsdWU6IG1pcnJvci52YWx1
ZSgpLnZhbHVlKCkKKyAgICAgICAgfSk7IAorICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQor
CiBEZWJ1Z2dlclNjcmlwdC5nZXRTY3JpcHRzID0gZnVuY3Rpb24oY29udGV4dERhdGEpCiB7CiAg
ICAgdmFyIHJlc3VsdCA9IFtdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwCmluZGV4IDE0NTVhYWVjNGZmNDcyMzVmOWU2MWRlM2U0ZGI5OGZi
OGYwMTI0ZGQuLjk1NGE0NzMyMGQ2M2IwZmQ3ZDVhMDg5NTY1Nzg3MDRhZTI0OTAxYTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAg
LTQxMiw2ICs0MTIsMTYgQEAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gU2NyaXB0RGVidWdTZXJ2ZXI6
OmZ1bmN0aW9uU2NvcGVzKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPgogICAgIHJldHVybiBjYWxs
RGVidWdnZXJNZXRob2QoImdldEZ1bmN0aW9uU2NvcGVzIiwgMSwgYXJndik7CiB9CiAKK3Y4OjpM
b2NhbDx2ODo6VmFsdWU+IFNjcmlwdERlYnVnU2VydmVyOjpnZXRJbnRlcm5hbFByb3BlcnRpZXMo
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiYgb2JqZWN0KQoreworICAgIGlmIChtX2RlYnVnZ2VyU2Ny
aXB0LmdldCgpLklzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIHY4OjpVbmRlZmluZWQoKTsKKwor
ICAgIHY4OjpIYW5kbGU8djg6OlZhbHVlPiBhcmd2W10gPSB7IG9iamVjdCB9OworICAgIHJldHVy
biBjYWxsRGVidWdnZXJNZXRob2QoImdldEludGVybmFsUHJvcGVydGllcyIsIDEsIGFyZ3YpOwor
fQorCisKIGJvb2wgU2NyaXB0RGVidWdTZXJ2ZXI6OmlzUGF1c2VkKCkKIHsKICAgICByZXR1cm4g
IW1fZXhlY3V0aW9uU3RhdGUuZ2V0KCkuSXNFbXB0eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmgKaW5kZXggNGQxZTY1ZTA5NDhjM2E1ZmQxOWJj
NjFkNDVmZTdjNjc0NGJhM2VkMC4uMzViMWRiNTQzY2JjOTU0ZDk3YjljMzljOWE0MjRhNGI0ZTFm
MDA0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdT
ZXJ2ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZl
ci5oCkBAIC05Nyw2ICs5Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzUGF1c2VkKCk7CiAKICAg
ICB2ODo6TG9jYWw8djg6OlZhbHVlPiBmdW5jdGlvblNjb3Blcyh2ODo6SGFuZGxlPHY4OjpGdW5j
dGlvbj4pOworICAgIHY4OjpMb2NhbDx2ODo6VmFsdWU+IGdldEludGVybmFsUHJvcGVydGllcyh2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgY29tcGlsZVNjcmlw
dChTY3JpcHRTdGF0ZSosIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nJiBz
b3VyY2VVUkwsIFN0cmluZyogc2NyaXB0SWQsIFN0cmluZyogZXhjZXB0aW9uTWVzc2FnZSk7CiAg
ICAgdmlydHVhbCB2b2lkIGNsZWFyQ29tcGlsZWRTY3JpcHRzKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20u
Y3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRI
b3N0Q3VzdG9tLmNwcAppbmRleCA0ZGQxODFiODhiZmVlOTliOGUxMjU3OWNkZmU2NjI1NGM1M2Y2
ZWI2Li5lNWQxOGMzNmRiY2EzMGI0NGU5OTc1YmYxYWI3NjNjNTEwNjM1MWE4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RD
dXN0b20uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVj
dGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAKQEAgLTE5Miw2ICsxOTIsMjEgQEAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IFY4SW5qZWN0ZWRTY3JpcHRIb3N0OjpmdW5jdGlvbkRldGFpbHNDYWxsYmFjayhj
b25zdCB2ODo6QXIKICAgICByZXR1cm4gcmVzdWx0OwogfQogCit2ODo6SGFuZGxlPHY4OjpWYWx1
ZT4gVjhJbmplY3RlZFNjcmlwdEhvc3Q6OmdldEludGVybmFsUHJvcGVydGllc0NhbGxiYWNrKGNv
bnN0IHY4OjpBcmd1bWVudHMmIGFyZ3MpCit7CisgICAgSU5DX1NUQVRTKCJJbmplY3RlZFNjcmlw
dEhvc3QuZ2V0SW50ZXJuYWxQcm9wZXJ0aWVzKCkiKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8
IDEpCisgICAgICAgIHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CisKKyAgICB2ODo6SGFuZGxlU2Nv
cGUgaGFuZGxlU2NvcGU7CisKKyAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG9iamVjdCA9IHY4
OjpIYW5kbGU8djg6Ok9iamVjdD46OkNhc3QoYXJnc1swXSk7CisKKyAgICBJbmplY3RlZFNjcmlw
dEhvc3QqIGhvc3QgPSBWOEluamVjdGVkU2NyaXB0SG9zdDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIo
KSk7CisgICAgU2NyaXB0RGVidWdTZXJ2ZXImIGRlYnVnU2VydmVyID0gaG9zdC0+c2NyaXB0RGVi
dWdTZXJ2ZXIoKTsKKyAgICByZXR1cm4gZGVidWdTZXJ2ZXIuZ2V0SW50ZXJuYWxQcm9wZXJ0aWVz
KG9iamVjdCk7Cit9CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpBcnJheT4gZ2V0SlNMaXN0ZW5l
ckZ1bmN0aW9ucyhEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEV2ZW50TGlzdGVuZXJJbmZvJiBs
aXN0ZW5lckluZm8pCiB7CiAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gcmVzdWx0ID0gdjg6OkFy
cmF5OjpOZXcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3Rl
ZFNjcmlwdEhvc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
SG9zdC5pZGwKaW5kZXggNzFiODhiMTM3ZmUyNDVmYTEyNjFhNjQzNTFmN2U3ODgzMzU0MDA3MS4u
MGY3OTI1ZmU3Zjg3YjQ1MTI5YTI2MWM0ODMxM2I5MjZiNzc3MGE4MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwKQEAgLTQzLDYgKzQzLDcg
QEAgbW9kdWxlIGNvcmUgewogICAgICAgICBbQ3VzdG9tXSBib29sZWFuIGlzSFRNTEFsbENvbGxl
Y3Rpb24oaW4gRE9NT2JqZWN0IG9iamVjdCk7CiAgICAgICAgIFtDdXN0b21dIERPTVN0cmluZyB0
eXBlKGluIERPTU9iamVjdCBvYmplY3QpOwogICAgICAgICBbQ3VzdG9tXSBET01PYmplY3QgZnVu
Y3Rpb25EZXRhaWxzKGluIERPTU9iamVjdCBvYmplY3QpOworICAgICAgICBbQ3VzdG9tXSBBcnJh
eSBnZXRJbnRlcm5hbFByb3BlcnRpZXMoaW4gRE9NT2JqZWN0IG9iamVjdCk7CiAgICAgICAgIFtD
dXN0b21dIEFycmF5IGdldEV2ZW50TGlzdGVuZXJzKGluIE5vZGUgbm9kZSk7CiAKICAgICAgICAg
W0N1c3RvbV0gRE9NU3RyaW5nIGRhdGFiYXNlSWQoaW4gRE9NT2JqZWN0IGRhdGFiYXNlKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5q
cyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwppbmRl
eCAwNjliN2MwMDM5YmMzNmNlNWU3ZDE0NzUxYWY5YWY5N2NjNDdlZGMwLi43ZTI0MzMxYWViNDE4
MWQzMDY3OTg5ZDVlYTAyY2NmNDM0YTc0YjRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCkBAIC0yNDIsNiArMjQyLDIwIEBAIEluamVj
dGVkU2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yLmVudW1l
cmFibGUgPSBmYWxzZTsKICAgICAgICAgICAgIAogICAgICAgICB9CisgICAgICAgIHZhciBpbnRl
cm5hbFByb3BlcnRpZXMgPSBJbmplY3RlZFNjcmlwdEhvc3QuZ2V0SW50ZXJuYWxQcm9wZXJ0aWVz
KG9iamVjdCk7CisgICAgICAgIGlmIChpbnRlcm5hbFByb3BlcnRpZXMpIHsKKyAgICAgICAgICAg
IGZvciAodmFyIGkgPSAwOyBpIDwgaW50ZXJuYWxQcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7Cisg
ICAgICAgICAgICAgICAgdmFyIHByb3BlcnR5ID0gaW50ZXJuYWxQcm9wZXJ0aWVzW2ldOworICAg
ICAgICAgICAgICAgIHZhciBkZXNjcmlwdG9yID0geworICAgICAgICAgICAgICAgICAgICAvLyBG
SVhNRTogY29uc2lkZXIgYWRkaW5nICdpbnRlcm5hbD10cnVlJyBwcm9wZXJ0eSB0byBwcm90b2Nv
bC4gCisgICAgICAgICAgICAgICAgICAgIG5hbWU6IHByb3BlcnR5Lm5hbWUsCisgICAgICAgICAg
ICAgICAgICAgIHZhbHVlOiB0aGlzLl93cmFwT2JqZWN0KHByb3BlcnR5LnZhbHVlLCBvYmplY3RH
cm91cE5hbWUpLAorICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSwKKyAgICAg
ICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiBmYWxzZQorICAgICAgICAgICAgICAgIH07Cisg
ICAgICAgICAgICAgICAgZGVzY3JpcHRvcnMucHVzaChkZXNjcmlwdG9yKTsKKyAgICAgICAgICAg
IH0gCisgICAgICAgIH0KICAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3JzOwogICAgIH0sCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>159248</attachid>
            <date>2012-08-17 18:02:21 -0700</date>
            <delta_ts>2012-09-21 10:51:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94397-20120818050144.patch</filename>
            <type>text/plain</type>
            <size>7750</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI1Nzk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAzNzQ2ZjMxZmE4ODdl
MDdmMmU0NTZmMDNmYTI1MWIyNTFiOTE0My4uYTc2YmMzODdjNjZiY2FhMTE4MGFjMGY0MmY0ZWRh
NzI3YTIyZjkwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA4LTE3ICBQZXRl
ciBSeWJpbiAgPHBldGVyLnJ5YmluQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBleHBvc2Ugb2JqZWN0IGludGVybmFsIHByb3BlcnRpZXMgc3VjaCBhcyBQcmltaXRpdmVWYWx1
ZSBvciBCb3VuZFRoaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk0Mzk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW50ZXJuYWwgcHJvcGVydHkgYWNjZXNzIGlzIGJ1aWx0IGZyb20gSW5qZWN0ZWQgU2Ny
aXB0IHRvIFY4IGRlYnVnIEFQSS4gSlNDIGJpbmRpbmcKKyAgICAgICAgaGFzIGEgc3R1YiBpbWxw
ZW1lbnRhdGlvbi4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SW5qZWN0ZWRTY3JpcHRIb3N0OjpnZXRJ
bnRlcm5hbFByb3BlcnRpZXNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9EZWJ1Z2dlclNjcmlwdC5qczoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9T
Y3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZl
cjo6Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmg6CisgICAgICAgIChTY3JpcHREZWJ1Z1Nl
cnZlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0RnVuY3Rpb25DYWxsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEZ1bmN0aW9uQ2FsbDo6Y2FsbCk6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4SW5qZWN0ZWRTY3JpcHRIb3N0OjpnZXRJbnRlcm5hbFByb3BlcnRpZXNDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRT
Y3JpcHRIb3N0LmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2Uu
anM6CisgICAgICAgICguKToKKwogMjAxMi0wOC0xNSAgTGV2aSBXZWludHJhdWIgIDxsZXZpd0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgQWNjdW11bGF0ZSBzdWItcGl4ZWwgb2Zmc2V0cyB0aHJv
dWdoIGxheWVycyBhbmQgdHJhbnNmb3JtcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwIGIvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCmluZGV4IGYwZDkzYWJk
YWI3ZGNmMmYxZDRhNGNhN2Q5NjA5ZGZiMzQ2ZGVhMjEuLmQ1MDIyNzQ2NzBkZjE1NDQyZDc3ZTIw
NmZlMDA5NzdmMjZkOGE5MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAKQEAgLTE4OSw2ICsxODksMTEg
QEAgSlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0SG9zdDo6ZnVuY3Rpb25EZXRhaWxzKEV4ZWNTdGF0
ZSogZXhlYykKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitKU1ZhbHVlIEpTSW5qZWN0ZWRTY3Jp
cHRIb3N0OjpnZXRJbnRlcm5hbFByb3BlcnRpZXMoRXhlY1N0YXRlKiBleGVjKQoreworICAgIHJl
dHVybiBqc1VuZGVmaW5lZCgpOworfQorCiBzdGF0aWMgSlNBcnJheSogZ2V0SlNMaXN0ZW5lckZ1
bmN0aW9ucyhFeGVjU3RhdGUqIGV4ZWMsIERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgRXZlbnRM
aXN0ZW5lckluZm8mIGxpc3RlbmVySW5mbykKIHsKICAgICBKU0FycmF5KiByZXN1bHQgPSBjb25z
dHJ1Y3RFbXB0eUFycmF5KGV4ZWMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvRGVidWdnZXJTY3JpcHQuanMgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EZWJ1
Z2dlclNjcmlwdC5qcwppbmRleCA5MTRiNmYyNjI0NzRlNjgyMWM3OTZjMzYwYzcxMWMwYzY5Y2I2
Mjc0Li42MmNjYjczNmI1ZDY2Y2RkYTA0MWMwZTg5YTRlYjE0ODkyZDUzYWJjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EZWJ1Z2dlclNjcmlwdC5qcworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EZWJ1Z2dlclNjcmlwdC5qcwpAQCAtNzksNiArNzksMjAg
QEAgRGVidWdnZXJTY3JpcHQuZ2V0RnVuY3Rpb25TY29wZXMgPSBmdW5jdGlvbihmdW4pCiAgICAg
cmV0dXJuIHJlc3VsdDsKIH0KIAorRGVidWdnZXJTY3JpcHQuZ2V0SW50ZXJuYWxQcm9wZXJ0aWVz
ID0gZnVuY3Rpb24odmFsdWUpCit7CisgICAgdmFyIHByb3BlcnRpZXMgPSBPYmplY3RNaXJyb3Iu
R2V0SW50ZXJuYWxQcm9wZXJ0aWVzKHZhbHVlKTsKKyAgICB2YXIgcmVzdWx0ID0gW107CisgICAg
Zm9yICh2YXIgaSA9IDA7IGkgPCBwcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgIHZh
ciBtaXJyb3IgPSBwcm9wZXJ0aWVzW2ldOworICAgICAgICByZXN1bHQucHVzaCh7CisgICAgICAg
ICAgICBuYW1lOiBtaXJyb3IubmFtZSgpLAorICAgICAgICAgICAgdmFsdWU6IG1pcnJvci52YWx1
ZSgpLnZhbHVlKCkKKyAgICAgICAgfSk7IAorICAgIH0KKyAgICByZXR1cm4gcmVzdWx0OworfQor
CiBEZWJ1Z2dlclNjcmlwdC5nZXRTY3JpcHRzID0gZnVuY3Rpb24oY29udGV4dERhdGEpCiB7CiAg
ICAgdmFyIHJlc3VsdCA9IFtdOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
djgvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2Ny
aXB0RGVidWdTZXJ2ZXIuY3BwCmluZGV4IDE0NTVhYWVjNGZmNDcyMzVmOWU2MWRlM2U0ZGI5OGZi
OGYwMTI0ZGQuLjA4NTg2MTI4NDFjYmVmNWRkMmJkZjYxY2NhMDVkYmM0NjJlNGQ3NTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKQEAg
LTQxMiw2ICs0MTIsMTYgQEAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gU2NyaXB0RGVidWdTZXJ2ZXI6
OmZ1bmN0aW9uU2NvcGVzKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPgogICAgIHJldHVybiBjYWxs
RGVidWdnZXJNZXRob2QoImdldEZ1bmN0aW9uU2NvcGVzIiwgMSwgYXJndik7CiB9CiAKK3Y4OjpM
b2NhbDx2ODo6VmFsdWU+IFNjcmlwdERlYnVnU2VydmVyOjpnZXRJbnRlcm5hbFByb3BlcnRpZXMo
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiYgb2JqZWN0KQoreworICAgIGlmIChtX2RlYnVnZ2VyU2Ny
aXB0LmdldCgpLklzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuICp2ODo6VW5kZWZpbmVkKCk7CisK
KyAgICB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gYXJndltdID0geyBvYmplY3QgfTsKKyAgICByZXR1
cm4gY2FsbERlYnVnZ2VyTWV0aG9kKCJnZXRJbnRlcm5hbFByb3BlcnRpZXMiLCAxLCBhcmd2KTsK
K30KKworCiBib29sIFNjcmlwdERlYnVnU2VydmVyOjppc1BhdXNlZCgpCiB7CiAgICAgcmV0dXJu
ICFtX2V4ZWN1dGlvblN0YXRlLmdldCgpLklzRW1wdHkoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5oCmluZGV4IDRkMWU2NWUwOTQ4YzNhNWZkMTli
YzYxZDQ1ZmU3YzY3NDRiYTNlZDAuLjM1YjFkYjU0M2NiYzk1NGQ5N2I5YzM5YzlhNDI0YTRiNGUx
ZjAwNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVn
U2VydmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2
ZXIuaApAQCAtOTcsNiArOTcsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1BhdXNlZCgpOwogCiAg
ICAgdjg6OkxvY2FsPHY4OjpWYWx1ZT4gZnVuY3Rpb25TY29wZXModjg6OkhhbmRsZTx2ODo6RnVu
Y3Rpb24+KTsKKyAgICB2ODo6TG9jYWw8djg6OlZhbHVlPiBnZXRJbnRlcm5hbFByb3BlcnRpZXMo
djg6OkhhbmRsZTx2ODo6T2JqZWN0PiYpOwogCiAgICAgdmlydHVhbCB2b2lkIGNvbXBpbGVTY3Jp
cHQoU2NyaXB0U3RhdGUqLCBjb25zdCBTdHJpbmcmIGV4cHJlc3Npb24sIGNvbnN0IFN0cmluZyYg
c291cmNlVVJMLCBTdHJpbmcqIHNjcmlwdElkLCBTdHJpbmcqIGV4Y2VwdGlvbk1lc3NhZ2UpOwog
ICAgIHZpcnR1YWwgdm9pZCBjbGVhckNvbXBpbGVkU2NyaXB0cygpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9t
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0
SG9zdEN1c3RvbS5jcHAKaW5kZXggNGRkMTgxYjg4YmZlZTk5YjhlMTI1NzljZGZlNjYyNTRjNTNm
NmViNi4uZTVkMThjMzZkYmNhMzBiNDRlOTk3NWJmMWFiNzYzYzUxMDYzNTFhOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0
Q3VzdG9tLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbmpl
Y3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCkBAIC0xOTIsNiArMTkyLDIxIEBAIHY4OjpIYW5kbGU8
djg6OlZhbHVlPiBWOEluamVjdGVkU2NyaXB0SG9zdDo6ZnVuY3Rpb25EZXRhaWxzQ2FsbGJhY2so
Y29uc3Qgdjg6OkFyCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAordjg6OkhhbmRsZTx2ODo6VmFs
dWU+IFY4SW5qZWN0ZWRTY3JpcHRIb3N0OjpnZXRJbnRlcm5hbFByb3BlcnRpZXNDYWxsYmFjayhj
b25zdCB2ODo6QXJndW1lbnRzJiBhcmdzKQoreworICAgIElOQ19TVEFUUygiSW5qZWN0ZWRTY3Jp
cHRIb3N0LmdldEludGVybmFsUHJvcGVydGllcygpIik7CisgICAgaWYgKGFyZ3MuTGVuZ3RoKCkg
PCAxKQorICAgICAgICByZXR1cm4gdjg6OlVuZGVmaW5lZCgpOworCisgICAgdjg6OkhhbmRsZVNj
b3BlIGhhbmRsZVNjb3BlOworCisgICAgdjg6OkhhbmRsZTx2ODo6T2JqZWN0PiBvYmplY3QgPSB2
ODo6SGFuZGxlPHY4OjpPYmplY3Q+OjpDYXN0KGFyZ3NbMF0pOworCisgICAgSW5qZWN0ZWRTY3Jp
cHRIb3N0KiBob3N0ID0gVjhJbmplY3RlZFNjcmlwdEhvc3Q6OnRvTmF0aXZlKGFyZ3MuSG9sZGVy
KCkpOworICAgIFNjcmlwdERlYnVnU2VydmVyJiBkZWJ1Z1NlcnZlciA9IGhvc3QtPnNjcmlwdERl
YnVnU2VydmVyKCk7CisgICAgcmV0dXJuIGRlYnVnU2VydmVyLmdldEludGVybmFsUHJvcGVydGll
cyhvYmplY3QpOworfQorCiBzdGF0aWMgdjg6OkhhbmRsZTx2ODo6QXJyYXk+IGdldEpTTGlzdGVu
ZXJGdW5jdGlvbnMoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBFdmVudExpc3RlbmVySW5mbyYg
bGlzdGVuZXJJbmZvKQogewogICAgIHY4OjpMb2NhbDx2ODo6QXJyYXk+IHJlc3VsdCA9IHY4OjpB
cnJheTo6TmV3KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0
ZWRTY3JpcHRIb3N0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlw
dEhvc3QuaWRsCmluZGV4IDcxYjg4YjEzN2ZlMjQ1ZmExMjYxYTY0MzUxZjdlNzg4MzM1NDAwNzEu
LjBmNzkyNWZlN2Y4N2I0NTEyOWEyNjFjNDgzMTNiOTI2Yjc3NzBhODAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuaWRsCkBAIC00Myw2ICs0Myw3
IEBAIG1vZHVsZSBjb3JlIHsKICAgICAgICAgW0N1c3RvbV0gYm9vbGVhbiBpc0hUTUxBbGxDb2xs
ZWN0aW9uKGluIERPTU9iamVjdCBvYmplY3QpOwogICAgICAgICBbQ3VzdG9tXSBET01TdHJpbmcg
dHlwZShpbiBET01PYmplY3Qgb2JqZWN0KTsKICAgICAgICAgW0N1c3RvbV0gRE9NT2JqZWN0IGZ1
bmN0aW9uRGV0YWlscyhpbiBET01PYmplY3Qgb2JqZWN0KTsKKyAgICAgICAgW0N1c3RvbV0gQXJy
YXkgZ2V0SW50ZXJuYWxQcm9wZXJ0aWVzKGluIERPTU9iamVjdCBvYmplY3QpOwogICAgICAgICBb
Q3VzdG9tXSBBcnJheSBnZXRFdmVudExpc3RlbmVycyhpbiBOb2RlIG5vZGUpOwogCiAgICAgICAg
IFtDdXN0b21dIERPTVN0cmluZyBkYXRhYmFzZUlkKGluIERPTU9iamVjdCBkYXRhYmFzZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2Uu
anMgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKaW5k
ZXggMDY5YjdjMDAzOWJjMzZjZTVlN2QxNDc1MWFmOWFmOTdjYzQ3ZWRjMC4uN2UyNDMzMWFlYjQx
ODFkMzA2Nzk4OWQ1ZWEwMmNjZjQzNGE3NGI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwpAQCAtMjQyLDYgKzI0MiwyMCBAQCBJbmpl
Y3RlZFNjcmlwdC5wcm90b3R5cGUgPSB7CiAgICAgICAgICAgICAgICAgZGVzY3JpcHRvci5lbnVt
ZXJhYmxlID0gZmFsc2U7CiAgICAgICAgICAgICAKICAgICAgICAgfQorICAgICAgICB2YXIgaW50
ZXJuYWxQcm9wZXJ0aWVzID0gSW5qZWN0ZWRTY3JpcHRIb3N0LmdldEludGVybmFsUHJvcGVydGll
cyhvYmplY3QpOworICAgICAgICBpZiAoaW50ZXJuYWxQcm9wZXJ0aWVzKSB7CisgICAgICAgICAg
ICBmb3IgKHZhciBpID0gMDsgaSA8IGludGVybmFsUHJvcGVydGllcy5sZW5ndGg7IGkrKykgewor
ICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0eSA9IGludGVybmFsUHJvcGVydGllc1tpXTsKKyAg
ICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRvciA9IHsKKyAgICAgICAgICAgICAgICAgICAgLy8g
RklYTUU6IGNvbnNpZGVyIGFkZGluZyAnaW50ZXJuYWw9dHJ1ZScgcHJvcGVydHkgdG8gcHJvdG9j
b2wuIAorICAgICAgICAgICAgICAgICAgICBuYW1lOiBwcm9wZXJ0eS5uYW1lLAorICAgICAgICAg
ICAgICAgICAgICB2YWx1ZTogdGhpcy5fd3JhcE9iamVjdChwcm9wZXJ0eS52YWx1ZSwgb2JqZWN0
R3JvdXBOYW1lKSwKKyAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsCisgICAg
ICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UKKyAgICAgICAgICAgICAgICB9Owor
ICAgICAgICAgICAgICAgIGRlc2NyaXB0b3JzLnB1c2goZGVzY3JpcHRvcik7CisgICAgICAgICAg
ICB9IAorICAgICAgICB9CiAgICAgICAgIHJldHVybiBkZXNjcmlwdG9yczsKICAgICB9LAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165154</attachid>
            <date>2012-09-21 10:51:28 -0700</date>
            <delta_ts>2012-09-25 12:22:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94397-20120921215051.patch</filename>
            <type>text/plain</type>
            <size>9260</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5MjIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDE0MDc5ZTU2NDlmZmJk
YTA1OGQ5MGJlNDU3MjY4MDJiMjA4YTgwMi4uMTEyNzc5ZTE2ZjVhMjA3MDhmM2EyOTEwYzg3ZWM2
OTZiY2JmNDYxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDEyLTA4LTE3ICBQZXRl
ciBSeWJpbiAgPHBldGVyLnJ5YmluQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBleHBvc2Ugb2JqZWN0IGludGVybmFsIHByb3BlcnRpZXMgc3VjaCBhcyBQcmltaXRpdmVWYWx1
ZSBvciBCb3VuZFRoaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk0Mzk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW50ZXJuYWwgcHJvcGVydHkgYWNjZXNzIGlzIGJ1aWx0IGZyb20gSW5qZWN0ZWQgU2Ny
aXB0IHRvIFY4IGRlYnVnIEFQSS4gSlNDIGJpbmRpbmcKKyAgICAgICAgaGFzIGEgc3R1YiBpbWxw
ZW1lbnRhdGlvbi4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0
Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlY4SW5qZWN0ZWRTY3JpcHRIb3N0OjpnZXRJ
bnRlcm5hbFByb3BlcnRpZXNDYWxsYmFjayk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAg
KiBiaW5kaW5ncy92OC9EZWJ1Z2dlclNjcmlwdC5qczoKKyAgICAgICAgKiBiaW5kaW5ncy92OC9T
Y3JpcHREZWJ1Z1NlcnZlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTY3JpcHREZWJ1Z1NlcnZl
cjo6Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzKToKKyAgICAgICAgKFdlYkNvcmUpOgorICAgICAgICAq
IGJpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmg6CisgICAgICAgIChTY3JpcHREZWJ1Z1Nl
cnZlcik6CisgICAgICAgICogYmluZGluZ3MvdjgvU2NyaXB0RnVuY3Rpb25DYWxsLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlNjcmlwdEZ1bmN0aW9uQ2FsbDo6Y2FsbCk6CisgICAgICAgICogYmlu
ZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlY4SW5qZWN0ZWRTY3JpcHRIb3N0OjpnZXRJbnRlcm5hbFByb3BlcnRpZXNDYWxs
YmFjayk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRT
Y3JpcHRIb3N0LmlkbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2Uu
anM6CisgICAgICAgICguKToKKwogMjAxMi0wOS0yMSAgQW5kcmV5IEFkYWlraW4gIDxhYW5kcmV5
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBbQ2FudmFzXSBzdXBwb3J0
IDJEIGNhbnZhcyBpbnN0cnVtZW50YXRpb24gZnJvbSB0aGUgaW5zcGVjdG9yIEMrKyBjb2RlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9z
dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0
SG9zdEN1c3RvbS5jcHAKaW5kZXggOWVmZWQ0NmJmODZmYTY4OTViNGRiM2U2YTBlYjk1NjQ1NTBk
NTNkYy4uZmU2NzNmNWMzYWUyZTJhZWI1ZjUyMTU0ZTY2Y2I2ZjlkM2UxNTg1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0
Q3VzdG9tLmNwcApAQCAtMTg5LDYgKzE4OSwxMiBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRI
b3N0OjpmdW5jdGlvbkRldGFpbHMoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKK0pTVmFsdWUgSlNJbmplY3RlZFNjcmlwdEhvc3Q6OmdldEludGVybmFsUHJvcGVydGll
cyhFeGVjU3RhdGUqKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgdGhpcy4gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NTMzCisgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7Cit9CisKIHN0YXRpYyBKU0FycmF5KiBnZXRKU0xpc3RlbmVyRnVuY3Rpb25zKEV4ZWNT
dGF0ZSogZXhlYywgRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBFdmVudExpc3RlbmVySW5mbyYg
bGlzdGVuZXJJbmZvKQogewogICAgIEpTQXJyYXkqIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5QXJy
YXkoZXhlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EZWJ1Z2dl
clNjcmlwdC5qcyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RlYnVnZ2VyU2NyaXB0Lmpz
CmluZGV4IDkxNGI2ZjI2MjQ3NGU2ODIxYzc5NmMzNjBjNzExYzBjNjljYjYyNzQuLjYyY2NiNzM2
YjVkNjZjZGRhMDQxYzBlODlhNGViMTQ4OTJkNTNhYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L0RlYnVnZ2VyU2NyaXB0LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L0RlYnVnZ2VyU2NyaXB0LmpzCkBAIC03OSw2ICs3OSwyMCBAQCBEZWJ1Z2dlclNj
cmlwdC5nZXRGdW5jdGlvblNjb3BlcyA9IGZ1bmN0aW9uKGZ1bikKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCitEZWJ1Z2dlclNjcmlwdC5nZXRJbnRlcm5hbFByb3BlcnRpZXMgPSBmdW5jdGlvbih2
YWx1ZSkKK3sKKyAgICB2YXIgcHJvcGVydGllcyA9IE9iamVjdE1pcnJvci5HZXRJbnRlcm5hbFBy
b3BlcnRpZXModmFsdWUpOworICAgIHZhciByZXN1bHQgPSBbXTsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIG1pcnJvciA9IHBy
b3BlcnRpZXNbaV07CisgICAgICAgIHJlc3VsdC5wdXNoKHsKKyAgICAgICAgICAgIG5hbWU6IG1p
cnJvci5uYW1lKCksCisgICAgICAgICAgICB2YWx1ZTogbWlycm9yLnZhbHVlKCkudmFsdWUoKQor
ICAgICAgICB9KTsgCisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKIERlYnVnZ2VyU2Ny
aXB0LmdldFNjcmlwdHMgPSBmdW5jdGlvbihjb250ZXh0RGF0YSkKIHsKICAgICB2YXIgcmVzdWx0
ID0gW107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1
Z1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZl
ci5jcHAKaW5kZXggZWYxNjkxZWVjMjNjMmYzMzEzMTFlNjI3MzFmZWEzMzEzNzM2Mjg5NC4uZWMw
YzY4ODcxNGIwNmZhYzMxNmI1ZTdmMTI3NjZhZjQwMzdmMmM1MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNwcApAQCAtNDEyLDYgKzQxMiwx
NiBAQCB2ODo6TG9jYWw8djg6OlZhbHVlPiBTY3JpcHREZWJ1Z1NlcnZlcjo6ZnVuY3Rpb25TY29w
ZXModjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+CiAgICAgcmV0dXJuIGNhbGxEZWJ1Z2dlck1ldGhv
ZCgiZ2V0RnVuY3Rpb25TY29wZXMiLCAxLCBhcmd2KTsKIH0KIAordjg6OkxvY2FsPHY4OjpWYWx1
ZT4gU2NyaXB0RGVidWdTZXJ2ZXI6OmdldEludGVybmFsUHJvcGVydGllcyh2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+JiBvYmplY3QpCit7CisgICAgaWYgKG1fZGVidWdnZXJTY3JpcHQuZ2V0KCkuSXNF
bXB0eSgpKQorICAgICAgICByZXR1cm4gKnY4OjpVbmRlZmluZWQoKTsKKworICAgIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBhcmd2W10gPSB7IG9iamVjdCB9OworICAgIHJldHVybiBjYWxsRGVidWdn
ZXJNZXRob2QoImdldEludGVybmFsUHJvcGVydGllcyIsIDEsIGFyZ3YpOworfQorCisKIGJvb2wg
U2NyaXB0RGVidWdTZXJ2ZXI6OmlzUGF1c2VkKCkKIHsKICAgICByZXR1cm4gIW1fZXhlY3V0aW9u
U3RhdGUuZ2V0KCkuSXNFbXB0eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nj
cmlwdERlYnVnU2VydmVyLmgKaW5kZXggMWI5NWY2ZmE5MTg4NTU5NWVmNjdlNmU2ODE4MWIyY2Jk
ODkzYTQ5Ny4uNWJjNzM5MjMxZDFkOGZmODJhYTdhZTA0ZDBmZGFkMjg4MDc0YmE5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5oCkBAIC05Nyw2
ICs5Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzUGF1c2VkKCk7CiAKICAgICB2ODo6TG9jYWw8
djg6OlZhbHVlPiBmdW5jdGlvblNjb3Blcyh2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4pOworICAg
IHY4OjpMb2NhbDx2ODo6VmFsdWU+IGdldEludGVybmFsUHJvcGVydGllcyh2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgY29tcGlsZVNjcmlwdChTY3JpcHRTdGF0
ZSosIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFN0
cmluZyogc2NyaXB0SWQsIFN0cmluZyogZXhjZXB0aW9uTWVzc2FnZSk7CiAgICAgdmlydHVhbCB2
b2lkIGNsZWFyQ29tcGlsZWRTY3JpcHRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNw
cAppbmRleCBkZjlkMTQ2NTc3OGU2NTEwNDE0Y2NkMDBhNTc3MGNjNDI0ZmIwYzNmLi5mNWM2YzVj
OWQ1ZDhlMzIwNGFjMGQ3ODRlYTZjYTRiOWI1OTI2M2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9z
dEN1c3RvbS5jcHAKQEAgLTE5Miw2ICsxOTIsMjEgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4
SW5qZWN0ZWRTY3JpcHRIb3N0OjpmdW5jdGlvbkRldGFpbHNDYWxsYmFjayhjb25zdCB2ODo6QXIK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJbmplY3Rl
ZFNjcmlwdEhvc3Q6OmdldEludGVybmFsUHJvcGVydGllc0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCit7CisgICAgSU5DX1NUQVRTKCJJbmplY3RlZFNjcmlwdEhvc3QuZ2V0SW50
ZXJuYWxQcm9wZXJ0aWVzKCkiKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCisgICAgICAg
IHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CisKKyAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2Nv
cGU7CisKKyAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG9iamVjdCA9IHY4OjpIYW5kbGU8djg6
Ok9iamVjdD46OkNhc3QoYXJnc1swXSk7CisKKyAgICBJbmplY3RlZFNjcmlwdEhvc3QqIGhvc3Qg
PSBWOEluamVjdGVkU2NyaXB0SG9zdDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CisgICAgU2Ny
aXB0RGVidWdTZXJ2ZXImIGRlYnVnU2VydmVyID0gaG9zdC0+c2NyaXB0RGVidWdTZXJ2ZXIoKTsK
KyAgICByZXR1cm4gZGVidWdTZXJ2ZXIuZ2V0SW50ZXJuYWxQcm9wZXJ0aWVzKG9iamVjdCk7Cit9
CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpBcnJheT4gZ2V0SlNMaXN0ZW5lckZ1bmN0aW9ucyhE
b2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEV2ZW50TGlzdGVuZXJJbmZvJiBsaXN0ZW5lckluZm8p
CiB7CiAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gcmVzdWx0ID0gdjg6OkFycmF5OjpOZXcoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdEhvc3Qu
aWRsIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwKaW5k
ZXggZDE0NGRkMDlhNGFlYjI2ZDBmNzlmMzkzNmIxNDNlZmMzMGQ2ZTk3Zi4uZmNjYjI5NmJjZDBl
Yjc3OTMwM2JjMGIzZDlmMzEwYjlhNDVhYTVjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwKQEAgLTQzLDYgKzQzLDcgQEAgbW9kdWxlIGNv
cmUgewogICAgICAgICBbQ3VzdG9tXSBib29sZWFuIGlzSFRNTEFsbENvbGxlY3Rpb24oaW4gRE9N
T2JqZWN0IG9iamVjdCk7CiAgICAgICAgIFtDdXN0b21dIERPTVN0cmluZyB0eXBlKGluIERPTU9i
amVjdCBvYmplY3QpOwogICAgICAgICBbQ3VzdG9tXSBET01PYmplY3QgZnVuY3Rpb25EZXRhaWxz
KGluIERPTU9iamVjdCBvYmplY3QpOworICAgICAgICBbQ3VzdG9tXSBBcnJheSBnZXRJbnRlcm5h
bFByb3BlcnRpZXMoaW4gRE9NT2JqZWN0IG9iamVjdCk7CiAgICAgICAgIFtDdXN0b21dIEFycmF5
IGdldEV2ZW50TGlzdGVuZXJzKGluIE5vZGUgbm9kZSk7CiAKICAgICAgICAgW0N1c3RvbV0gRE9N
U3RyaW5nIGRhdGFiYXNlSWQoaW4gRE9NT2JqZWN0IGRhdGFiYXNlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcyBiL1NvdXJjZS9X
ZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwppbmRleCAxNjg4MDE1YTQy
MzcxNGM4YTZhN2JkY2ZmZGU3NDE5YWUxNDBlMWI5Li5lN2E3YzA0NmQyMmY2ZmU3YTQ5MWMyNzYx
YTFjNWRkOTM0NzM4ZGRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHRTb3VyY2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVj
dGVkU2NyaXB0U291cmNlLmpzCkBAIC0yMzYsNiArMjM2LDIwIEBAIEluamVjdGVkU2NyaXB0LnBy
b3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yLmVudW1lcmFibGUgPSBmYWxz
ZTsKICAgICAgICAgICAgIAogICAgICAgICB9CisgICAgICAgIHZhciBpbnRlcm5hbFByb3BlcnRp
ZXMgPSBJbmplY3RlZFNjcmlwdEhvc3QuZ2V0SW50ZXJuYWxQcm9wZXJ0aWVzKG9iamVjdCk7Cisg
ICAgICAgIGlmIChpbnRlcm5hbFByb3BlcnRpZXMpIHsKKyAgICAgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgaW50ZXJuYWxQcm9wZXJ0aWVzLmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICAg
ICAgdmFyIHByb3BlcnR5ID0gaW50ZXJuYWxQcm9wZXJ0aWVzW2ldOworICAgICAgICAgICAgICAg
IHZhciBkZXNjcmlwdG9yID0geworICAgICAgICAgICAgICAgICAgICBuYW1lOiBwcm9wZXJ0eS5u
YW1lLAorICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdGhpcy5fd3JhcE9iamVjdChwcm9wZXJ0
eS52YWx1ZSwgb2JqZWN0R3JvdXBOYW1lKSwKKyAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJs
ZTogZmFsc2UsCisgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsCisgICAg
ICAgICAgICAgICAgICAgIGludGVybmFsOiB0cnVlCisgICAgICAgICAgICAgICAgfTsKKyAgICAg
ICAgICAgICAgICBkZXNjcmlwdG9ycy5wdXNoKGRlc2NyaXB0b3IpOworICAgICAgICAgICAgfSAK
KyAgICAgICAgfQogICAgICAgICByZXR1cm4gZGVzY3JpcHRvcnM7CiAgICAgfSwKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uCmluZGV4IDVjMThkYWQ5NTUxZWMyMzI4OTgz
YWNmMTgyZjk2NjFmZjhlNzY2NjcuLmY3OGJmYTNiNzc0MTc2NjhmMDI5YzNkNjVlNWQ5YmY3NmQ0
Y2JjOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNv
bgorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTQ5NCw3
ICs0OTQsOCBAQAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNldCIsICIkcmVmIjog
IlJlbW90ZU9iamVjdCIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJBIGZ1bmN0
aW9uIHdoaWNoIHNlcnZlcyBhcyBhIHNldHRlciBmb3IgdGhlIHByb3BlcnR5LCBvciA8Y29kZT51
bmRlZmluZWQ8L2NvZGU+IGlmIHRoZXJlIGlzIG5vIHNldHRlciAoYWNjZXNzb3IgZGVzY3JpcHRv
cnMgb25seSkuIiB9LAogICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvbmZpZ3VyYWJs
ZSIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiVHJ1ZSBpZiB0aGUgdHlwZSBv
ZiB0aGlzIHByb3BlcnR5IGRlc2NyaXB0b3IgbWF5IGJlIGNoYW5nZWQgYW5kIGlmIHRoZSBwcm9w
ZXJ0eSBtYXkgYmUgZGVsZXRlZCBmcm9tIHRoZSBjb3JyZXNwb25kaW5nIG9iamVjdC4iIH0sCiAg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW51bWVyYWJsZSIsICJ0eXBlIjogImJvb2xl
YW4iLCAiZGVzY3JpcHRpb24iOiAiVHJ1ZSBpZiB0aGlzIHByb3BlcnR5IHNob3dzIHVwIGR1cmlu
ZyBlbnVtZXJhdGlvbiBvZiB0aGUgcHJvcGVydGllcyBvbiB0aGUgY29ycmVzcG9uZGluZyBvYmpl
Y3QuIiB9LAotICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogIndhc1Rocm93biIsICJ0eXBl
IjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVHJ1ZSBpZiB0
aGUgcmVzdWx0IHdhcyB0aHJvd24gZHVyaW5nIHRoZSBldmFsdWF0aW9uLiIgfQorICAgICAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogIndhc1Rocm93biIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0
aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVHJ1ZSBpZiB0aGUgcmVzdWx0IHdhcyB0aHJv
d24gZHVyaW5nIHRoZSBldmFsdWF0aW9uLiIgfSwKKyAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJpbnRlcm5hbCIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVz
Y3JpcHRpb24iOiAiVHJ1ZSBpZiBwcm9wZXJ0eSBpcyBvbmx5IHZpc2libGUgaW4gZGVidWdnZXIg
YW5kIGl0cyBuYW1lIGlzIGNvbnZlbnRpb25hbC4iIH0KICAgICAgICAgICAgICAgICBdCiAgICAg
ICAgICAgICB9LAogICAgICAgICAgICAgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>165655</attachid>
            <date>2012-09-25 12:22:49 -0700</date>
            <delta_ts>2012-10-03 14:19:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94397-20120925232208.patch</filename>
            <type>text/plain</type>
            <size>24417</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI5NDk5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTBhMzczOTFjM2ZkZjgy
ZGVlNjYwZDdmYzlmZTBhYTE0NzI3ZjVjYi4uZDZkYmMyYjMxMDczNTUxYmNjMDkxZGQyNmNkNmFh
NDc0NjM5YjBhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTA4LTE3ICBQZXRl
ciBSeWJpbiAgPHBldGVyLnJ5YmluQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBleHBvc2Ugb2JqZWN0IGludGVybmFsIHByb3BlcnRpZXMgc3VjaCBhcyBQcmltaXRpdmVWYWx1
ZSBvciBCb3VuZFRoaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk0Mzk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW50ZXJuYWwgcHJvcGVydHkgYWNjZXNzIGlzIGJ1aWx0IGZyb20gSW5qZWN0ZWQgU2Ny
aXB0IHRvIFY4IGRlYnVnIEFQSS4gSlNDIGJpbmRpbmcKKyAgICAgICAgaGFzIGEgc3R1YiBpbWxw
ZW1lbnRhdGlvbi4gUHJvdG9jb2wgaXMgdXBkYXRlZCB0byBleHBsaWNpdGx5IHJlZmxlY3QgaW50
ZXJuYWwgcHJvcGVydGllcy4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3ItcHJvdG9jb2wvcnVu
dGltZS1nZXRQcm9wZXJ0aWVzLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW5qZWN0
ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSW5qZWN0ZWRTY3Jp
cHRIb3N0OjpnZXRJbnRlcm5hbFByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogYmluZGluZ3MvdjgvRGVidWdnZXJTY3JpcHQuanM6CisgICAgICAgICogYmluZGluZ3Mv
djgvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdT
ZXJ2ZXI6OmdldEludGVybmFsUHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5oOgorICAgICAgICAoU2NyaXB0RGVi
dWdTZXJ2ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0
SG9zdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEluamVjdGVkU2NyaXB0SG9zdDo6
Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
amVjdGVkU2NyaXB0OjpnZXRJbnRlcm5hbFByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Lmg6CisgICAgICAgIChJbmplY3Rl
ZFNjcmlwdCk6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGw6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzOgorICAgICAgICAoLik6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
UnVudGltZUFnZW50OjpnZXRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yUnVudGltZUFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JSdW50aW1lQWdlbnQpOgorCiAy
MDEyLTA5LTI1ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCiAgICAgICAg
IFtDaHJvbWl1bV0gRW5hYmxlIGRhdGFsaXN0IFVJIGZvciBpbnB1dCB0eXBlPWRhdGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0Q3Vz
dG9tLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0
Q3VzdG9tLmNwcAppbmRleCA5ZWZlZDQ2YmY4NmZhNjg5NWI0ZGIzZTZhMGViOTU2NDU1MGQ1M2Rj
Li5mZTY3M2Y1YzNhZTJlMmFlYjVmNTIxNTRlNjZjYjZmOWQzZTE1ODVlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdEhvc3RDdXN0
b20uY3BwCkBAIC0xODksNiArMTg5LDEyIEBAIEpTVmFsdWUgSlNJbmplY3RlZFNjcmlwdEhvc3Q6
OmZ1bmN0aW9uRGV0YWlscyhFeGVjU3RhdGUqIGV4ZWMpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0K
IAorSlNWYWx1ZSBKU0luamVjdGVkU2NyaXB0SG9zdDo6Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzKEV4
ZWNTdGF0ZSopCit7CisgICAgLy8gRklYTUU6IGltcGxlbWVudCB0aGlzLiBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9OTQ1MzMKKyAgICByZXR1cm4ganNVbmRlZmluZWQo
KTsKK30KKwogc3RhdGljIEpTQXJyYXkqIGdldEpTTGlzdGVuZXJGdW5jdGlvbnMoRXhlY1N0YXRl
KiBleGVjLCBEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEV2ZW50TGlzdGVuZXJJbmZvJiBsaXN0
ZW5lckluZm8pCiB7CiAgICAgSlNBcnJheSogcmVzdWx0ID0gY29uc3RydWN0RW1wdHlBcnJheShl
eGVjKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RlYnVnZ2VyU2Ny
aXB0LmpzIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvRGVidWdnZXJTY3JpcHQuanMKaW5k
ZXggOTE0YjZmMjYyNDc0ZTY4MjFjNzk2YzM2MGM3MTFjMGM2OWNiNjI3NC4uNjJjY2I3MzZiNWQ2
NmNkZGEwNDFjMGU4OWE0ZWIxNDg5MmQ1M2FiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvdjgvRGVidWdnZXJTY3JpcHQuanMKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvRGVidWdnZXJTY3JpcHQuanMKQEAgLTc5LDYgKzc5LDIwIEBAIERlYnVnZ2VyU2NyaXB0
LmdldEZ1bmN0aW9uU2NvcGVzID0gZnVuY3Rpb24oZnVuKQogICAgIHJldHVybiByZXN1bHQ7CiB9
CiAKK0RlYnVnZ2VyU2NyaXB0LmdldEludGVybmFsUHJvcGVydGllcyA9IGZ1bmN0aW9uKHZhbHVl
KQoreworICAgIHZhciBwcm9wZXJ0aWVzID0gT2JqZWN0TWlycm9yLkdldEludGVybmFsUHJvcGVy
dGllcyh2YWx1ZSk7CisgICAgdmFyIHJlc3VsdCA9IFtdOworICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgcHJvcGVydGllcy5sZW5ndGg7IGkrKykgeworICAgICAgICB2YXIgbWlycm9yID0gcHJvcGVy
dGllc1tpXTsKKyAgICAgICAgcmVzdWx0LnB1c2goeworICAgICAgICAgICAgbmFtZTogbWlycm9y
Lm5hbWUoKSwKKyAgICAgICAgICAgIHZhbHVlOiBtaXJyb3IudmFsdWUoKS52YWx1ZSgpCisgICAg
ICAgIH0pOyAKKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogRGVidWdnZXJTY3JpcHQu
Z2V0U2NyaXB0cyA9IGZ1bmN0aW9uKGNvbnRleHREYXRhKQogewogICAgIHZhciByZXN1bHQgPSBb
XTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2Vy
dmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNw
cAppbmRleCBlZjE2OTFlZWMyM2MyZjMzMTMxMWU2MjczMWZlYTMzMTM3MzYyODk0Li5lYzBjNjg4
NzE0YjA2ZmFjMzE2YjVlN2YxMjc2NmFmNDAzN2YyYzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCkBAIC00MTIsNiArNDEyLDE2IEBA
IHY4OjpMb2NhbDx2ODo6VmFsdWU+IFNjcmlwdERlYnVnU2VydmVyOjpmdW5jdGlvblNjb3Blcyh2
ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4KICAgICByZXR1cm4gY2FsbERlYnVnZ2VyTWV0aG9kKCJn
ZXRGdW5jdGlvblNjb3BlcyIsIDEsIGFyZ3YpOwogfQogCit2ODo6TG9jYWw8djg6OlZhbHVlPiBT
Y3JpcHREZWJ1Z1NlcnZlcjo6Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4mIG9iamVjdCkKK3sKKyAgICBpZiAobV9kZWJ1Z2dlclNjcmlwdC5nZXQoKS5Jc0VtcHR5
KCkpCisgICAgICAgIHJldHVybiAqdjg6OlVuZGVmaW5lZCgpOworCisgICAgdjg6OkhhbmRsZTx2
ODo6VmFsdWU+IGFyZ3ZbXSA9IHsgb2JqZWN0IH07CisgICAgcmV0dXJuIGNhbGxEZWJ1Z2dlck1l
dGhvZCgiZ2V0SW50ZXJuYWxQcm9wZXJ0aWVzIiwgMSwgYXJndik7Cit9CisKKwogYm9vbCBTY3Jp
cHREZWJ1Z1NlcnZlcjo6aXNQYXVzZWQoKQogewogICAgIHJldHVybiAhbV9leGVjdXRpb25TdGF0
ZS5nZXQoKS5Jc0VtcHR5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92
OC9TY3JpcHREZWJ1Z1NlcnZlci5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0
RGVidWdTZXJ2ZXIuaAppbmRleCAxYjk1ZjZmYTkxODg1NTk1ZWY2N2U2ZTY4MTgxYjJjYmQ4OTNh
NDk3Li41YmM3MzkyMzFkMWQ4ZmY4MmFhN2FlMDRkMGZkYWQyODgwNzRiYTlkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmgKQEAgLTk3LDYgKzk3
LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNQYXVzZWQoKTsKIAogICAgIHY4OjpMb2NhbDx2ODo6
VmFsdWU+IGZ1bmN0aW9uU2NvcGVzKHY4OjpIYW5kbGU8djg6OkZ1bmN0aW9uPik7CisgICAgdjg6
OkxvY2FsPHY4OjpWYWx1ZT4gZ2V0SW50ZXJuYWxQcm9wZXJ0aWVzKHY4OjpIYW5kbGU8djg6Ok9i
amVjdD4mKTsKIAogICAgIHZpcnR1YWwgdm9pZCBjb21waWxlU2NyaXB0KFNjcmlwdFN0YXRlKiwg
Y29uc3QgU3RyaW5nJiBleHByZXNzaW9uLCBjb25zdCBTdHJpbmcmIHNvdXJjZVVSTCwgU3RyaW5n
KiBzY3JpcHRJZCwgU3RyaW5nKiBleGNlcHRpb25NZXNzYWdlKTsKICAgICB2aXJ0dWFsIHZvaWQg
Y2xlYXJDb21waWxlZFNjcmlwdHMoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCmlu
ZGV4IGRmOWQxNDY1Nzc4ZTY1MTA0MTRjY2QwMGE1NzcwY2M0MjRmYjBjM2YuLmY1YzZjNWM5ZDVk
OGUzMjA0YWMwZDc4NGVhNmNhNGI5YjU5MjYzYjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9zdEN1c3RvbS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3Vz
dG9tLmNwcApAQCAtMTkyLDYgKzE5MiwyMSBAQCB2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJbmpl
Y3RlZFNjcmlwdEhvc3Q6OmZ1bmN0aW9uRGV0YWlsc0NhbGxiYWNrKGNvbnN0IHY4OjpBcgogICAg
IHJldHVybiByZXN1bHQ7CiB9CiAKK3Y4OjpIYW5kbGU8djg6OlZhbHVlPiBWOEluamVjdGVkU2Ny
aXB0SG9zdDo6Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzQ2FsbGJhY2soY29uc3Qgdjg6OkFyZ3VtZW50
cyYgYXJncykKK3sKKyAgICBJTkNfU1RBVFMoIkluamVjdGVkU2NyaXB0SG9zdC5nZXRJbnRlcm5h
bFByb3BlcnRpZXMoKSIpOworICAgIGlmIChhcmdzLkxlbmd0aCgpIDwgMSkKKyAgICAgICAgcmV0
dXJuIHY4OjpVbmRlZmluZWQoKTsKKworICAgIHY4OjpIYW5kbGVTY29wZSBoYW5kbGVTY29wZTsK
KworICAgIHY4OjpIYW5kbGU8djg6Ok9iamVjdD4gb2JqZWN0ID0gdjg6OkhhbmRsZTx2ODo6T2Jq
ZWN0Pjo6Q2FzdChhcmdzWzBdKTsKKworICAgIEluamVjdGVkU2NyaXB0SG9zdCogaG9zdCA9IFY4
SW5qZWN0ZWRTY3JpcHRIb3N0Ojp0b05hdGl2ZShhcmdzLkhvbGRlcigpKTsKKyAgICBTY3JpcHRE
ZWJ1Z1NlcnZlciYgZGVidWdTZXJ2ZXIgPSBob3N0LT5zY3JpcHREZWJ1Z1NlcnZlcigpOworICAg
IHJldHVybiBkZWJ1Z1NlcnZlci5nZXRJbnRlcm5hbFByb3BlcnRpZXMob2JqZWN0KTsKK30KKwog
c3RhdGljIHY4OjpIYW5kbGU8djg6OkFycmF5PiBnZXRKU0xpc3RlbmVyRnVuY3Rpb25zKERvY3Vt
ZW50KiBkb2N1bWVudCwgY29uc3QgRXZlbnRMaXN0ZW5lckluZm8mIGxpc3RlbmVySW5mbykKIHsK
ICAgICB2ODo6TG9jYWw8djg6OkFycmF5PiByZXN1bHQgPSB2ODo6QXJyYXk6Ok5ldygpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAKaW5kZXggNmE0NGNhN2I1
OTZjNDA4M2JkOGExMDA4ZWU5ZTY0Nzc5YTBkNmQxZC4uNjdkZDM5ZTkwNzliZjdmMTMwOWQ0MjQ2
YWY0NmI4ZDNiNzE0NmM3ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0lu
amVjdGVkU2NyaXB0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRT
Y3JpcHQuY3BwCkBAIC00NSw2ICs0NSw3IEBACiB1c2luZyBXZWJDb3JlOjpUeXBlQnVpbGRlcjo6
QXJyYXk7CiB1c2luZyBXZWJDb3JlOjpUeXBlQnVpbGRlcjo6RGVidWdnZXI6OkNhbGxGcmFtZTsK
IHVzaW5nIFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpSdW50aW1lOjpQcm9wZXJ0eURlc2NyaXB0b3I7
Cit1c2luZyBXZWJDb3JlOjpUeXBlQnVpbGRlcjo6UnVudGltZTo6SW50ZXJuYWxQcm9wZXJ0eURl
c2NyaXB0b3I7CiB1c2luZyBXZWJDb3JlOjpUeXBlQnVpbGRlcjo6RGVidWdnZXI6OkZ1bmN0aW9u
RGV0YWlsczsKIHVzaW5nIFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmpl
Y3Q7CiAKQEAgLTE0MSw2ICsxNDIsMjIgQEAgdm9pZCBJbmplY3RlZFNjcmlwdDo6Z2V0UHJvcGVy
dGllcyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgb2JqZWMKICAgICAq
cHJvcGVydGllcyA9IEFycmF5PFByb3BlcnR5RGVzY3JpcHRvcj46OnJ1bnRpbWVDYXN0KHJlc3Vs
dCk7CiB9CiAKK3ZvaWQgSW5qZWN0ZWRTY3JpcHQ6OmdldEludGVybmFsUHJvcGVydGllcyhFcnJv
clN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIFJlZlB0cjxBcnJh
eTxJbnRlcm5hbFByb3BlcnR5RGVzY3JpcHRvcj4gPiogcHJvcGVydGllcykKK3sKKyAgICBTY3Jp
cHRGdW5jdGlvbkNhbGwgZnVuY3Rpb24oaW5qZWN0ZWRTY3JpcHRPYmplY3QoKSwgImdldEludGVy
bmFsUHJvcGVydGllcyIpOworICAgIGZ1bmN0aW9uLmFwcGVuZEFyZ3VtZW50KG9iamVjdElkKTsK
KworICAgIFJlZlB0cjxJbnNwZWN0b3JWYWx1ZT4gcmVzdWx0OworICAgIG1ha2VDYWxsKGZ1bmN0
aW9uLCAmcmVzdWx0KTsKKyAgICBpZiAoIXJlc3VsdCB8fCByZXN1bHQtPnR5cGUoKSAhPSBJbnNw
ZWN0b3JWYWx1ZTo6VHlwZUFycmF5KSB7CisgICAgICAgICplcnJvclN0cmluZyA9ICJJbnRlcm5h
bCBlcnJvciI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgUmVmUHRyPEFycmF5PEludGVy
bmFsUHJvcGVydHlEZXNjcmlwdG9yPiA+IGFycmF5ID0gQXJyYXk8SW50ZXJuYWxQcm9wZXJ0eURl
c2NyaXB0b3I+OjpydW50aW1lQ2FzdChyZXN1bHQpOworICAgIGlmIChhcnJheS0+bGVuZ3RoKCkg
PiAwKQorICAgICAgICAqcHJvcGVydGllcyA9IGFycmF5OworfQorCiBOb2RlKiBJbmplY3RlZFNj
cmlwdDo6bm9kZUZvck9iamVjdElkKGNvbnN0IFN0cmluZyYgb2JqZWN0SWQpCiB7CiAgICAgaWYg
KGhhc05vVmFsdWUoKSB8fCAhY2FuQWNjZXNzSW5zcGVjdGVkV2luZG93KCkpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQuaCBiL1NvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCmluZGV4IDQ0Mjc0Mjc4ZDlkOWEwZTg3Zjhi
YWNhZTAzMTNkMWJlYTU3NjVmODIuLjhhNmYzM2IxNmUwOTM0ZTBjMTFkOTM0NWNkM2M1NjQzYzc5
MGY1ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlw
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oCkBAIC03
OSw2ICs3OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlc3RhcnRGcmFtZShFcnJvclN0cmluZyos
IGNvbnN0IFNjcmlwdFZhbHVlJiBjYWxsRnJhbWVzLCBjb25zdCBTdHJpbmcmIGNhbGxGcmFtZUlk
LCBSZWZQdHI8SW5zcGVjdG9yT2JqZWN0PiogcmVzdWx0KTsKICAgICB2b2lkIGdldEZ1bmN0aW9u
RGV0YWlscyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgZnVuY3Rpb25JZCwgUmVmUHRyPFR5
cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6RnVuY3Rpb25EZXRhaWxzPiogcmVzdWx0KTsKICAgICB2b2lk
IGdldFByb3BlcnRpZXMoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBib29s
IG93blByb3BlcnRpZXMsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OlJ1
bnRpbWU6OlByb3BlcnR5RGVzY3JpcHRvcj4gPiogcmVzdWx0KTsKKyAgICB2b2lkIGdldEludGVy
bmFsUHJvcGVydGllcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIFJlZlB0
cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OkludGVybmFsUHJvcGVy
dHlEZXNjcmlwdG9yPiA+KiByZXN1bHQpOwogICAgIE5vZGUqIG5vZGVGb3JPYmplY3RJZChjb25z
dCBTdHJpbmcmIG9iamVjdElkKTsKICAgICB2b2lkIHJlbGVhc2VPYmplY3QoY29uc3QgU3RyaW5n
JiBvYmplY3RJZCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Jbmpl
Y3RlZFNjcmlwdEhvc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0SG9zdC5pZGwKaW5kZXggZDE0NGRkMDlhNGFlYjI2ZDBmNzlmMzkzNmIxNDNlZmMzMGQ2ZTk3
Zi4uZmNjYjI5NmJjZDBlYjc3OTMwM2JjMGIzZDlmMzEwYjlhNDVhYTVjNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwKQEAgLTQzLDYgKzQz
LDcgQEAgbW9kdWxlIGNvcmUgewogICAgICAgICBbQ3VzdG9tXSBib29sZWFuIGlzSFRNTEFsbENv
bGxlY3Rpb24oaW4gRE9NT2JqZWN0IG9iamVjdCk7CiAgICAgICAgIFtDdXN0b21dIERPTVN0cmlu
ZyB0eXBlKGluIERPTU9iamVjdCBvYmplY3QpOwogICAgICAgICBbQ3VzdG9tXSBET01PYmplY3Qg
ZnVuY3Rpb25EZXRhaWxzKGluIERPTU9iamVjdCBvYmplY3QpOworICAgICAgICBbQ3VzdG9tXSBB
cnJheSBnZXRJbnRlcm5hbFByb3BlcnRpZXMoaW4gRE9NT2JqZWN0IG9iamVjdCk7CiAgICAgICAg
IFtDdXN0b21dIEFycmF5IGdldEV2ZW50TGlzdGVuZXJzKGluIE5vZGUgbm9kZSk7CiAKICAgICAg
ICAgW0N1c3RvbV0gRE9NU3RyaW5nIGRhdGFiYXNlSWQoaW4gRE9NT2JqZWN0IGRhdGFiYXNlKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJj
ZS5qcyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcwpp
bmRleCAxNjg4MDE1YTQyMzcxNGM4YTZhN2JkY2ZmZGU3NDE5YWUxNDBlMWI5Li5iZjFjOTBlNjE1
OWMxZjJlOTRkOTFlZmUwZjIwNTZlNGVmZTNjZWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKKysrIGIvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzCkBAIC0yMzQsNyArMjM0LDMyIEBAIElu
amVjdGVkU2NyaXB0LnByb3RvdHlwZSA9IHsKICAgICAgICAgICAgICAgICBkZXNjcmlwdG9yLmNv
bmZpZ3VyYWJsZSA9IGZhbHNlOwogICAgICAgICAgICAgaWYgKCEoImVudW1lcmFibGUiIGluIGRl
c2NyaXB0b3IpKQogICAgICAgICAgICAgICAgIGRlc2NyaXB0b3IuZW51bWVyYWJsZSA9IGZhbHNl
OwotICAgICAgICAgICAgCisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIGRlc2NyaXB0b3JzOwor
ICAgIH0sCisKKyAgICAvKioKKyAgICAgKiBAcGFyYW0ge3N0cmluZ30gb2JqZWN0SWQKKyAgICAg
KiBAcmV0dXJuIHtBcnJheS48T2JqZWN0Pnxib29sZWFufQorICAgICAqLworICAgIGdldEludGVy
bmFsUHJvcGVydGllczogZnVuY3Rpb24ob2JqZWN0SWQsIG93blByb3BlcnRpZXMpCisgICAgewor
ICAgICAgICB2YXIgcGFyc2VkT2JqZWN0SWQgPSB0aGlzLl9wYXJzZU9iamVjdElkKG9iamVjdElk
KTsKKyAgICAgICAgdmFyIG9iamVjdCA9IHRoaXMuX29iamVjdEZvcklkKHBhcnNlZE9iamVjdElk
KTsKKyAgICAgICAgdmFyIG9iamVjdEdyb3VwTmFtZSA9IHRoaXMuX2lkVG9PYmplY3RHcm91cE5h
bWVbcGFyc2VkT2JqZWN0SWQuaWRdOworICAgICAgICBpZiAoIXRoaXMuX2lzRGVmaW5lZChvYmpl
Y3QpKQorICAgICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgICAgICB2YXIgZGVzY3JpcHRvcnMg
PSBbXTsKKyAgICAgICAgdmFyIGludGVybmFsUHJvcGVydGllcyA9IEluamVjdGVkU2NyaXB0SG9z
dC5nZXRJbnRlcm5hbFByb3BlcnRpZXMob2JqZWN0KTsKKyAgICAgICAgaWYgKGludGVybmFsUHJv
cGVydGllcykgeworICAgICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBpbnRlcm5hbFByb3Bl
cnRpZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgICAgICAgICB2YXIgcHJvcGVydHkgPSBpbnRl
cm5hbFByb3BlcnRpZXNbaV07CisgICAgICAgICAgICAgICAgdmFyIGRlc2NyaXB0b3IgPSB7Cisg
ICAgICAgICAgICAgICAgICAgIG5hbWU6IHByb3BlcnR5Lm5hbWUsCisgICAgICAgICAgICAgICAg
ICAgIHZhbHVlOiB0aGlzLl93cmFwT2JqZWN0KHByb3BlcnR5LnZhbHVlLCBvYmplY3RHcm91cE5h
bWUpCisgICAgICAgICAgICAgICAgfTsKKyAgICAgICAgICAgICAgICBkZXNjcmlwdG9ycy5wdXNo
KGRlc2NyaXB0b3IpOworICAgICAgICAgICAgfSAKICAgICAgICAgfQogICAgICAgICByZXR1cm4g
ZGVzY3JpcHRvcnM7CiAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3IuanNvbiBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNv
bgppbmRleCAyMWQ5MjdjMjEzODdkNjJlYzFkNmM0MjQ0N2NhZWQ1ZTIxMmM2OGMyLi5hNDQzN2M1
ZTNmNzQzMThmZGI0YjAyM2ExYTQ5MmNiNjg2ZDA5ZmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3Rvci5qc29uCkBAIC00OTgsNiArNDk4LDE1IEBACiAgICAgICAgICAgICAgICAg
XQogICAgICAgICAgICAgfSwKICAgICAgICAgICAgIHsKKyAgICAgICAgICAgICAgICAiaWQiOiAi
SW50ZXJuYWxQcm9wZXJ0eURlc2NyaXB0b3IiLAorICAgICAgICAgICAgICAgICJ0eXBlIjogIm9i
amVjdCIsCisgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk9iamVjdCBpbnRlcm5hbCBw
cm9wZXJ0eSBkZXNjcmlwdG9yLiBUaGlzIHByb3BlcnR5IGlzbid0IG5vcm1hbGx5IHZpc2libGUg
aW4gSmF2YVNjcmlwdCBjb2RlLiIsCisgICAgICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisg
ICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmFtZSIsICJ0eXBlIjogInN0cmluZyIsICJk
ZXNjcmlwdGlvbiI6ICJDb252ZW50aW9uYWwgcHJvcGVydHkgbmFtZS4iIH0sCisgICAgICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAidmFsdWUiLCAiJHJlZiI6ICJSZW1vdGVPYmplY3QiLCAib3B0
aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0
aGUgcHJvcGVydHkuIiB9CisgICAgICAgICAgICAgICAgXQorICAgICAgICAgICAgfSwKKyAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICAiaWQiOiAiQ2FsbEFyZ3VtZW50IiwKICAgICAgICAg
ICAgICAgICAidHlwZSI6ICJvYmplY3QiLAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJSZXByZXNlbnRzIGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQuIEVpdGhlciByZW1vdGUgb2JqZWN0
IGlkIDxjb2RlPm9iamVjdElkPC9jb2RlPiBvciBwcmltaXRpdmUgPGNvZGU+dmFsdWU8L2NvZGU+
IG9yIG5laXRoZXIgb2YgKGZvciB1bmRlZmluZWQpIHRoZW0gc2hvdWxkIGJlIHNwZWNpZmllZC4i
LApAQCAtNTY1LDcgKzU3NCw4IEBACiAgICAgICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib3du
UHJvcGVydGllcyIsICJvcHRpb25hbCI6IHRydWUsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3Jp
cHRpb24iOiAiSWYgdHJ1ZSwgcmV0dXJucyBwcm9wZXJ0aWVzIGJlbG9uZ2luZyBvbmx5IHRvIHRo
ZSBlbGVtZW50IGl0c2VsZiwgbm90IHRvIGl0cyBwcm90b3R5cGUgY2hhaW4uIiB9CiAgICAgICAg
ICAgICAgICAgXSwKICAgICAgICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJyZXN1bHQiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRy
ZWYiOiAiUHJvcGVydHlEZXNjcmlwdG9yIn0sICJkZXNjcmlwdGlvbiI6ICJPYmplY3QgcHJvcGVy
dGllcy4iIH0KKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXN1bHQiLCAidHlwZSI6
ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiUHJvcGVydHlEZXNjcmlwdG9yIn0sICJkZXNj
cmlwdGlvbiI6ICJPYmplY3QgcHJvcGVydGllcy4iIH0sCisgICAgICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiaW50ZXJuYWxQcm9wZXJ0aWVzIiwgIm9wdGlvbmFsIjogdHJ1ZSwgInR5cGUiOiAi
YXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkludGVybmFsUHJvcGVydHlEZXNjcmlwdG9yIn0s
ICJkZXNjcmlwdGlvbiI6ICJJbnRlcm5hbCBvYmplY3QgcHJvcGVydGllcy4iIH0KICAgICAgICAg
ICAgICAgICBdLAogICAgICAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHByb3Bl
cnRpZXMgb2YgYSBnaXZlbiBvYmplY3QuIE9iamVjdCBncm91cCBvZiB0aGUgcmVzdWx0IGlzIGlu
aGVyaXRlZCBmcm9tIHRoZSB0YXJnZXQgb2JqZWN0LiIKICAgICAgICAgICAgIH0sCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCmluZGV4
IDdlNGZkNGI2MjM2ZTNiZTQ5MDFiNzNmMzE4ZDBkZjcwODAxNzdkNDQuLjE1MDAxNWRlYTY0MGY0
NTBhZjA4ZThjOGUyM2FlMzVjNzRhZWUyZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2lu
c3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgdm9p
ZCBJbnNwZWN0b3JSdW50aW1lQWdlbnQ6OmNhbGxGdW5jdGlvbk9uKEVycm9yU3RyaW5nKiBlcnJv
clN0cmluZywgY29uc3QgU3RyaW4KICAgICB9CiB9CiAKLXZvaWQgSW5zcGVjdG9yUnVudGltZUFn
ZW50OjpnZXRQcm9wZXJ0aWVzKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5n
JiBvYmplY3RJZCwgY29uc3QgYm9vbCogY29uc3Qgb3duUHJvcGVydGllcywgUmVmUHRyPFR5cGVC
dWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6UnVudGltZTo6UHJvcGVydHlEZXNjcmlwdG9yPiA+
JiByZXN1bHQpCit2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Z2V0UHJvcGVydGllcyhFcnJv
clN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGNvbnN0IGJvb2wq
IGNvbnN0IG93blByb3BlcnRpZXMsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxk
ZXI6OlJ1bnRpbWU6OlByb3BlcnR5RGVzY3JpcHRvcj4gPiYgcmVzdWx0LCBSZWZQdHI8VHlwZUJ1
aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpSdW50aW1lOjpJbnRlcm5hbFByb3BlcnR5RGVzY3Jp
cHRvcj4gPiYgaW50ZXJuYWxQcm9wZXJ0aWVzKQogewogICAgIEluamVjdGVkU2NyaXB0IGluamVj
dGVkU2NyaXB0ID0gbV9pbmplY3RlZFNjcmlwdE1hbmFnZXItPmluamVjdGVkU2NyaXB0Rm9yT2Jq
ZWN0SWQob2JqZWN0SWQpOwogICAgIGlmIChpbmplY3RlZFNjcmlwdC5oYXNOb1ZhbHVlKCkpIHsK
QEAgLTE0OSw2ICsxNDksNyBAQCB2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Z2V0UHJvcGVy
dGllcyhFcnJvclN0cmluZyogZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZwogICAgIG11dGVDb25z
b2xlKCk7CiAKICAgICBpbmplY3RlZFNjcmlwdC5nZXRQcm9wZXJ0aWVzKGVycm9yU3RyaW5nLCBv
YmplY3RJZCwgb3duUHJvcGVydGllcyA/ICpvd25Qcm9wZXJ0aWVzIDogZmFsc2UsICZyZXN1bHQp
OworICAgIGluamVjdGVkU2NyaXB0LmdldEludGVybmFsUHJvcGVydGllcyhlcnJvclN0cmluZywg
b2JqZWN0SWQsICZpbnRlcm5hbFByb3BlcnRpZXMpOwogCiAgICAgdW5tdXRlQ29uc29sZSgpOwog
I2lmIEVOQUJMRShKQVZBU0NSSVBUX0RFQlVHR0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oIGIvU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5oCmluZGV4IGY4ZTM0NWUyYjdjMTU3ZjY2ZWQw
MWU1MzQxOGE2NjlhNmI4NzVlOTUuLmY4NzBjNDUyYzY0OGNjMDA4YjdlMzNjMGE2OWNjMzY3MTNk
MWM2YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50
aW1lQWdlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGlt
ZUFnZW50LmgKQEAgLTc2LDcgKzc2LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAgICAgICAg
ICAgUmVmUHRyPFR5cGVCdWlsZGVyOjpSdW50aW1lOjpSZW1vdGVPYmplY3Q+JiByZXN1bHQsCiAg
ICAgICAgICAgICAgICAgICAgICAgICBUeXBlQnVpbGRlcjo6T3B0T3V0cHV0PGJvb2w+KiB3YXNU
aHJvd24pOwogICAgIHZpcnR1YWwgdm9pZCByZWxlYXNlT2JqZWN0KEVycm9yU3RyaW5nKiwgY29u
c3QgU3RyaW5nJiBvYmplY3RJZCk7Ci0gICAgdmlydHVhbCB2b2lkIGdldFByb3BlcnRpZXMoRXJy
b3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBib29sKiBvd25Qcm9wZXJ0
aWVzLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpSdW50aW1lOjpQcm9w
ZXJ0eURlc2NyaXB0b3I+ID4mIHJlc3VsdCk7CisgICAgdmlydHVhbCB2b2lkIGdldFByb3BlcnRp
ZXMoRXJyb3JTdHJpbmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBib29sKiBvd25Q
cm9wZXJ0aWVzLCBSZWZQdHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpSdW50aW1l
OjpQcm9wZXJ0eURlc2NyaXB0b3I+ID4mIHJlc3VsdCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJh
eTxUeXBlQnVpbGRlcjo6UnVudGltZTo6SW50ZXJuYWxQcm9wZXJ0eURlc2NyaXB0b3I+ID4mIGlu
dGVybmFsUHJvcGVydGllcyk7CiAgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VPYmplY3RHcm91cChF
cnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0R3JvdXApOwogICAgIHZpcnR1YWwgdm9p
ZCBydW4oRXJyb3JTdHJpbmcqKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc0OTJlNjc0NDNlMzUyNmYzMDZiNjI1MDdh
ZTcwYTIyODRiZGFjMTkuLjFlZWZhY2ZlYjU5NGFmOGIzOWQ1OTA2MzUzMWMzNjVkYjk0YzZhY2Eg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxMi0wOS0yNSAgUGV0ZXIgUnliaW4gIDxwZXRlci5y
eWJpbkBnbWFpbC5jb20+CisKKyAgICAgICAgV2ViIEluc3BlY3RvcjogZXhwb3NlIG9iamVjdCBp
bnRlcm5hbCBwcm9wZXJ0aWVzIHN1Y2ggYXMgUHJpbWl0aXZlVmFsdWUgb3IgQm91bmRUaGlzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05NDM5NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEEgdGVzdCBpcyBh
ZGRlZCB0byBzdXBwb3J0IG5ldyBmZWF0dXJlLiBPbGQgdGVzdCBpcyB1cGRhdGVkIGJlY2F1c2Ug
bGluZSBudW1iZXIgY2hhbmdlZC4KKworICAgICAgICAqIGluc3BlY3Rvci1wcm90b2NvbC9ydW50
aW1lLWdldFByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBpbnNwZWN0
b3ItcHJvdG9jb2wvcnVudGltZS1nZXRQcm9wZXJ0aWVzLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci9jb25zb2xlL2NvbW1hbmQtbGluZS1hcGktZXhwZWN0ZWQudHh0OgorCiAyMDEy
LTA5LTI1ICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCiAgICAgICAgIFtD
aHJvbWl1bV0gRW5hYmxlIGRhdGFsaXN0IFVJIGZvciBpbnB1dCB0eXBlPWRhdGUKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9ydW50aW1lLWdldFByb3BlcnRpZXMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3J1bnRpbWUtZ2V0
UHJvcGVydGllcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGI2YzFhYjM2MDUzNmQ5MWQyMDZi
YmYyMDc4YmY3MzM0NDkwZjMwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3Bl
Y3Rvci1wcm90b2NvbC9ydW50aW1lLWdldFByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMjIgQEAKK1Byb3BlcnRpZXMgb2YgT2JqZWN0KDUpCisgIF9fcHJvdG9fXyBvYmplY3QgdW5k
ZWZpbmVkCisgIGZvbyBzdHJpbmcgY2F0CitJbnRlcm5hbCBwcm9wZXJ0aWVzCisgIFtbUHJpbWl0
aXZlVmFsdWVdXSBudW1iZXIgNQorUHJvcGVydGllcyBvZiBhcnJheQorICAwIHN0cmluZyByZWQK
KyAgMSBzdHJpbmcgZ3JlZW4KKyAgMiBzdHJpbmcgYmx1ZQorICBfX3Byb3RvX18gb2JqZWN0IHVu
ZGVmaW5lZAorICBsZW5ndGggbnVtYmVyIDMKK1Byb3BlcnRpZXMgb2YgQm91bmQgZnVuY3Rpb24K
KyAgX19wcm90b19fIGZ1bmN0aW9uIHVuZGVmaW5lZAorICBhcmd1bWVudHMKKyAgY2FsbGVyCisg
IGxlbmd0aCBudW1iZXIgMAorICBuYW1lIHN0cmluZyAKK0ludGVybmFsIHByb3BlcnRpZXMKKyAg
W1tCb3VuZEFyZ3NdXSBvYmplY3QgdW5kZWZpbmVkCisgIFtbQm91bmRUaGlzXV0gb2JqZWN0IHVu
ZGVmaW5lZAorICBbW1RhcmdldEZ1bmN0aW9uXV0gZnVuY3Rpb24gdW5kZWZpbmVkCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9ydW50aW1lLWdldFByb3BlcnRp
ZXMuaHRtbCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9ydW50aW1lLWdldFByb3Bl
cnRpZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YjYwN2NiN2E0OWUxOTA0YmE4ZmY4NTE5YjUzNjgxNWJk
MDY1M2E0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L3J1bnRpbWUtZ2V0UHJvcGVydGllcy5odG1sCkBAIC0wLDAgKzEsMTU1IEBACis8aHRtbD4KKzxo
ZWFkPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYz0iLi4vaHR0cC90ZXN0cy9p
bnNwZWN0b3ItcHJvdG9jb2wvcmVzb3VyY2VzL3Byb3RvY29sLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgLy8gQSBnZW5lcmFsLXB1cnBvc2Ug
ZW5naW5lIGZvciBzZW5kaW5nIGEgc2VxdWVuY2Ugb2YgcHJvdG9jb2wgY29tbWFuZHMuCisgICAg
Ly8gVGhlIGNsaWVudHMgcHJvdmlkZSByZXF1ZXN0cyBhbmQgcmVzcG9uc2UgaGFuZGxlcnMsIHdo
aWxlIHRoZSBlbmdpbmUgY2F0Y2hlcworICAgIC8vIGVycm9ycyBhbmQgbWFrZXMgc3VyZSB0aGF0
IG9uY2UgdGhlcmUncyBub3RoaW5nIHRvIGRvIGNvbXBsZXRlVGVzdCgpIGlzIGNhbGxlZC4KKyAg
ICAvLyBAcGFyYW0gc3RlcCBpcyBhbiBvYmplY3Qgd2l0aCBjb21tYW5kLCBwYXJhbXMgYW5kIGNh
bGxiYWNrIGZpZWxkcyAKKyAgICBmdW5jdGlvbiBydW5SZXF1ZXN0U2VyaWVzKHN0ZXApIHsKKyAg
ICAgICAgcHJvY2Vzc1N0ZXAoc3RlcCk7CisKKyAgICAgICAgZnVuY3Rpb24gcHJvY2Vzc1N0ZXAo
cykgeworICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBwcm9jZXNzU3RlcE9yRmFp
bChzKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICBJbnNwZWN0
b3JUZXN0LmxvZyhlLnN0YWNrKTsKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBs
ZXRlVGVzdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIAorICAgICAgICBm
dW5jdGlvbiBwcm9jZXNzU3RlcE9yRmFpbChzKSB7CisgICAgICAgICAgICBpZiAoIXMpIHsKKyAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAg
ICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGlmICghcy5jb21tYW5kKSB7
CisgICAgICAgICAgICAgICAgLy8gQSBzaW1wbGUgbG9vcGJhY2sgc3RlcC4KKyAgICAgICAgICAg
ICAgICB2YXIgbmV4dCA9IHMuY2FsbGJhY2soKTsKKyAgICAgICAgICAgICAgICBwcm9jZXNzU3Rl
cChuZXh0KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIHZhciBpbm5lckNhbGxiYWNrID0gZnVuY3Rpb24ocmVzcG9uc2UpIHsKKyAgICAgICAg
ICAgICAgICBpZiAoImVycm9yIiBpbiByZXNwb25zZSkgeworICAgICAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JUZXN0LmxvZyhyZXNwb25zZS5lcnJvci5tZXNzYWdlKTsKKyAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgICAgICAgICAg
cmV0dXJuOworICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICB2YXIgbmV4dDsKKyAg
ICAgICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgICAgICBuZXh0ID0gcy5jYWxsYmFj
ayhyZXNwb25zZS5yZXN1bHQpOworICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAg
ICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coZS5zdGFjayk7CisgICAgICAgICAgICAg
ICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgcHJvY2Vzc1N0ZXAo
bmV4dCk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LnNlbmRDb21t
YW5kKHMuY29tbWFuZCwgcy5wYXJhbXMsIGlubmVyQ2FsbGJhY2spOworICAgICAgICB9CisgICAg
fQorICAgIAorICAgIHZhciBmaXJzdFN0ZXAgPSB7IGNhbGxiYWNrOiBjYWxsYmFja1N0YXJ0NSB9
OworCisgICAgcnVuUmVxdWVzdFNlcmllcyhmaXJzdFN0ZXApOworCisgICAgLy8gJ09iamVjdDUn
IHNlY3Rpb24gLS0gY2hlY2sgcHJvcGVydGllcyBvZiAnNScgd3JhcHBlZCBhcyBvYmplY3QgICho
YXMgYW4gaW50ZXJuYWwgcHJvcGVydHkpLgorCisgICAgZnVuY3Rpb24gY2FsbGJhY2tTdGFydDUo
KSB7CisgICAgICAgIC8vIENyZWF0ZSBhbiB3cmFwcGVyIG9iamVjdCB3aXRoIGFkZGl0aW9uYWwg
cHJvcGVydHkuCisgICAgICAgIHZhciBleHByZXNzaW9uID0gIihmdW5jdGlvbigpe3ZhciByID0g
T2JqZWN0KDUpOyByLmZvbyA9ICdjYXQnO3JldHVybiByO30pKCkiOworICAgICAgICAKKyAgICAg
ICAgcmV0dXJuIHsgY29tbWFuZDogIlJ1bnRpbWUuZXZhbHVhdGUiLCBwYXJhbXM6IHtleHByZXNz
aW9uOiBleHByZXNzaW9ufSwgY2FsbGJhY2s6IGNhbGxiYWNrRXZhbDUgfTsKKyAgICB9CisgICAg
ZnVuY3Rpb24gY2FsbGJhY2tFdmFsNShyZXN1bHQpIHsKKyAgICAgICAgdmFyIGlkID0gcmVzdWx0
LnJlc3VsdC5vYmplY3RJZDsKKyAgICAgICAgaWYgKGlkID09PSB1bmRlZmluZWQpCisgICAgICAg
ICAgICB0aHJvdyBuZXcgRXJyb3IoIm9iamVjdElkIGlzIGV4cGVjdGVkIik7CisgICAgICAgIHJl
dHVybiB7CisgICAgICAgICAgICBjb21tYW5kOiAiUnVudGltZS5nZXRQcm9wZXJ0aWVzIiwgcGFy
YW1zOiB7b2JqZWN0SWQ6IGlkLCBvd25Qcm9wZXJ0aWVzOiB0cnVlfSwgY2FsbGJhY2s6IGNhbGxi
YWNrUHJvcGVydGllczUKKyAgICAgICAgfTsKKyAgICB9CisgICAgZnVuY3Rpb24gY2FsbGJhY2tQ
cm9wZXJ0aWVzNShyZXN1bHQpIHsKKyAgICAgICAgbG9nR2V0UHJvcGVydGllc1Jlc3VsdCgiT2Jq
ZWN0KDUpIiwgcmVzdWx0KTsKKyAgICAgICAgcmV0dXJuIHsgY2FsbGJhY2s6IGNhbGxiYWNrU3Rh
cnRBcnJheSB9OworICAgIH0KKworICAgIAorICAgIC8vICdBcnJheScgc2VjdGlvbiAtLSBjaGVj
ayBwcm9wZXJ0aWVzIG9mIGFuIGFycmF5LgorICAgIAorICAgIGZ1bmN0aW9uIGNhbGxiYWNrU3Rh
cnRBcnJheSgpIHsKKyAgICAgICAgdmFyIGV4cHJlc3Npb24gPSAiWydyZWQnLCAnZ3JlZW4nLCAn
Ymx1ZSddIjsKKyAgICAgICAgcmV0dXJuIHsgY29tbWFuZDogIlJ1bnRpbWUuZXZhbHVhdGUiLCBw
YXJhbXM6IHtleHByZXNzaW9uOiBleHByZXNzaW9ufSwgY2FsbGJhY2s6IGNhbGxiYWNrRXZhbEFy
cmF5IH07CisgICAgfQorICAgIGZ1bmN0aW9uIGNhbGxiYWNrRXZhbEFycmF5KHJlc3VsdCkgewor
ICAgICAgICB2YXIgaWQgPSByZXN1bHQucmVzdWx0Lm9iamVjdElkOworICAgICAgICBpZiAoaWQg
PT09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigib2JqZWN0SWQgaXMg
ZXhwZWN0ZWQiKTsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIGNvbW1hbmQ6ICJSdW50
aW1lLmdldFByb3BlcnRpZXMiLCBwYXJhbXM6IHtvYmplY3RJZDogaWQsIG93blByb3BlcnRpZXM6
IHRydWV9LCBjYWxsYmFjazogY2FsbGJhY2tQcm9wZXJ0aWVzQXJyYXkKKyAgICAgICAgfTsKKyAg
ICB9CisgICAgZnVuY3Rpb24gY2FsbGJhY2tQcm9wZXJ0aWVzQXJyYXkocmVzdWx0KSB7CisgICAg
ICAgIGxvZ0dldFByb3BlcnRpZXNSZXN1bHQoImFycmF5IiwgcmVzdWx0KTsKKyAgICAgICAgcmV0
dXJuIHsgY2FsbGJhY2s6IGNhbGxiYWNrU3RhcnRCb3VuZCB9OworICAgIH0KKworICAgIAorICAg
IC8vICdCb3VuZCcgc2VjdGlvbiAtLSBjaGVjayBwcm9wZXJ0aWVzIG9mIGEgYm91bmQgZnVuY3Rp
b24gKGhhcyBhIGJ1bmNoIG9mIGludGVybmFsIHByb3BlcnRpZXMpLgorICAgIAorICAgIGZ1bmN0
aW9uIGNhbGxiYWNrU3RhcnRCb3VuZCgpIHsKKyAgICAgICAgdmFyIGV4cHJlc3Npb24gPSAiTnVt
YmVyLmJpbmQoe30sIDUpIjsKKyAgICAgICAgcmV0dXJuIHsgY29tbWFuZDogIlJ1bnRpbWUuZXZh
bHVhdGUiLCBwYXJhbXM6IHtleHByZXNzaW9uOiBleHByZXNzaW9ufSwgY2FsbGJhY2s6IGNhbGxi
YWNrRXZhbEJvdW5kIH07CisgICAgfQorICAgIGZ1bmN0aW9uIGNhbGxiYWNrRXZhbEJvdW5kKHJl
c3VsdCkgeworICAgICAgICB2YXIgaWQgPSByZXN1bHQucmVzdWx0Lm9iamVjdElkOworICAgICAg
ICBpZiAoaWQgPT09IHVuZGVmaW5lZCkKKyAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcigib2Jq
ZWN0SWQgaXMgZXhwZWN0ZWQiKTsKKyAgICAgICAgcmV0dXJuIHsKKyAgICAgICAgICAgIGNvbW1h
bmQ6ICJSdW50aW1lLmdldFByb3BlcnRpZXMiLCBwYXJhbXM6IHtvYmplY3RJZDogaWQsIG93blBy
b3BlcnRpZXM6IHRydWV9LCBjYWxsYmFjazogY2FsbGJhY2tQcm9wZXJ0aWVzQm91bmQKKyAgICAg
ICAgfTsKKyAgICB9CisgICAgZnVuY3Rpb24gY2FsbGJhY2tQcm9wZXJ0aWVzQm91bmQocmVzdWx0
KSB7CisgICAgICAgIGxvZ0dldFByb3BlcnRpZXNSZXN1bHQoIkJvdW5kIGZ1bmN0aW9uIiwgcmVz
dWx0KTsKKyAgICAgICAgcmV0dXJuOyAvLyBFbmQgb2YgdGVzdAorICAgIH0KKyAgICAKKworICAg
IC8vIEEgaGVscGVyIGZ1bmN0aW9uIHRoYXQgZHVtcHMgb2JqZWN0IHByb3BlcnRpZXMgYW5kIGlu
dGVybmFsIHByb3BlcnRpZXMgaW4gc29ydGVkIG9yZGVyLiAgICAKKyAgICBmdW5jdGlvbiBsb2dH
ZXRQcm9wZXJ0aWVzUmVzdWx0KHRpdGxlLCBwcm90b2NvbFJlc3VsdCkgeworICAgICAgICBJbnNw
ZWN0b3JUZXN0LmxvZygiUHJvcGVydGllcyBvZiAiICsgdGl0bGUpOworICAgICAgICB2YXIgcHJv
cGVydHlBcnJheSA9IHByb3RvY29sUmVzdWx0LnJlc3VsdDsKKyAgICAgICAgcHJvcGVydHlBcnJh
eS5zb3J0KE5hbWVkVGhpbmdDb21wYXJhdG9yKTsKKyAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBwcm9wZXJ0eUFycmF5Lmxlbmd0aDsgaSsrKSB7CisgICAgICAgICAgICB2YXIgcCA9IHByb3Bl
cnR5QXJyYXlbaV07CisgICAgICAgICAgICB2YXIgdiA9IHAudmFsdWU7CisgICAgICAgICAgICBp
ZiAodikKKyAgICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmxvZygiICAiICsgcC5uYW1lICsg
IiAiICsgdi50eXBlICsgIiAiICsgdi52YWx1ZSk7CisgICAgICAgICAgICBlbHNlCisgICAgICAg
ICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiAgIiArIHAubmFtZSk7CisgICAgICAgIH0KKyAg
ICAgICAgdmFyIGludGVybmFsUHJvcGVydHlBcnJheSA9IHByb3RvY29sUmVzdWx0LmludGVybmFs
UHJvcGVydGllczsKKyAgICAgICAgaWYgKGludGVybmFsUHJvcGVydHlBcnJheSkgeworICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIkludGVybmFsIHByb3BlcnRpZXMiKTsKKyAgICAgICAg
ICAgIGludGVybmFsUHJvcGVydHlBcnJheS5zb3J0KE5hbWVkVGhpbmdDb21wYXJhdG9yKTsKKyAg
ICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgaW50ZXJuYWxQcm9wZXJ0eUFycmF5Lmxlbmd0
aDsgaSsrKSB7CisgICAgICAgICAgICAgICAgdmFyIHAgPSBpbnRlcm5hbFByb3BlcnR5QXJyYXlb
aV07CisgICAgICAgICAgICAgICAgdmFyIHYgPSBwLnZhbHVlOworICAgICAgICAgICAgICAgIElu
c3BlY3RvclRlc3QubG9nKCIgICIgKyBwLm5hbWUgKyAiICIgKyB2LnR5cGUgKyAiICIgKyB2LnZh
bHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIAorICAgICAgICBmdW5jdGlvbiBO
YW1lZFRoaW5nQ29tcGFyYXRvcihvMSwgbzIpIHsKKyAgICAgICAgICAgIHJldHVybiBvMS5uYW1l
LmxvY2FsZUNvbXBhcmUobzIubmFtZSk7CisgICAgICAgIH0KKyAgICB9Cit9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5IG9uTG9hZD0icnVuVGVzdCgpOyI+Cis8L2JvZHk+Cis8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb21tYW5kLWxpbmUtYXBp
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbW1hbmQtbGlu
ZS1hcGktZXhwZWN0ZWQudHh0CmluZGV4IDI4M2NhY2U2MjFjMTlkMzVlMzRjMzhlMDc2NTEzYjYz
YzFiMjZjODMuLjg3NTU2MWE0Nzg4ZWY3ZTNmOWIwODllNjM0MmZiZjM3OTBhZDMyMGIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbW1hbmQtbGluZS1hcGktZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci9jb25zb2xlL2NvbW1hbmQtbGlu
ZS1hcGktZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotQ09OU09MRSBNRVNTQUdFOiBsaW5l
IDk1NTogVGhlIGNvbnNvbGUgZnVuY3Rpb24gJCgpIGhhcyBjaGFuZ2VkIGZyb20gJD1nZXRFbGVt
ZW50QnlJZChpZCkgdG8gJD1xdWVyeVNlbGVjdG9yKHNlbGVjdG9yKS4gWW91IG1pZ2h0IHRyeSAk
KCIjJXMiKQorQ09OU09MRSBNRVNTQUdFOiBsaW5lIDk4MDogVGhlIGNvbnNvbGUgZnVuY3Rpb24g
JCgpIGhhcyBjaGFuZ2VkIGZyb20gJD1nZXRFbGVtZW50QnlJZChpZCkgdG8gJD1xdWVyeVNlbGVj
dG9yKHNlbGVjdG9yKS4gWW91IG1pZ2h0IHRyeSAkKCIjJXMiKQogVGVzdHMgdGhhdCBjb21tYW5k
IGxpbmUgYXBpIHdvcmtzLgogCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166959</attachid>
            <date>2012-10-03 14:19:11 -0700</date>
            <delta_ts>2012-10-03 15:20:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94397-20121004011822.patch</filename>
            <type>text/plain</type>
            <size>25427</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMjk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTA2YWIwMGI1YTM2ODc2
NzdkMjBjMDQxNDM3ODQzNzVjNTljNGY0MC4uYzcyMWZlODQzZTc3YjkzMTFkZDk0MTQ4NTIxNWQw
ZWNkOWZjYzVmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTEwLTA0ICBQZXRl
ciBSeWJpbiAgPHBldGVyLnJ5YmluQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBleHBvc2Ugb2JqZWN0IGludGVybmFsIHByb3BlcnRpZXMgc3VjaCBhcyBQcmltaXRpdmVWYWx1
ZSBvciBCb3VuZFRoaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk0Mzk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW50ZXJuYWwgcHJvcGVydHkgYWNjZXNzIGlzIGJ1aWx0IGZyb20gSW5qZWN0ZWQgU2Ny
aXB0IHRvIFY4IGRlYnVnIEFQSS4gSlNDIGJpbmRpbmcKKyAgICAgICAgaGFzIGEgc3R1YiBpbWxw
ZW1lbnRhdGlvbi4gUHJvdG9jb2wgaXMgdXBkYXRlZCB0byBleHBsaWNpdGx5IHJlZmxlY3QgaW50
ZXJuYWwgcHJvcGVydGllcy4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3ItcHJvdG9jb2wvcnVu
dGltZS1nZXRQcm9wZXJ0aWVzLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW5qZWN0
ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSW5qZWN0ZWRTY3Jp
cHRIb3N0OjpnZXRJbnRlcm5hbFByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogYmluZGluZ3MvdjgvRGVidWdnZXJTY3JpcHQuanM6CisgICAgICAgICogYmluZGluZ3Mv
djgvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdT
ZXJ2ZXI6OmdldEludGVybmFsUHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5oOgorICAgICAgICAoU2NyaXB0RGVi
dWdTZXJ2ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0
SG9zdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEluamVjdGVkU2NyaXB0SG9zdDo6
Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
amVjdGVkU2NyaXB0OjpnZXRJbnRlcm5hbFByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Lmg6CisgICAgICAgIChJbmplY3Rl
ZFNjcmlwdCk6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGw6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzOgorICAgICAgICAoLik6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
UnVudGltZUFnZW50OjpnZXRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yUnVudGltZUFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JSdW50aW1lQWdlbnQpOgorCiAy
MDEyLTEwLTAzICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCiAgICAgICAg
IEltcGxlbWVudCBEYXRhTGlzdCBVSSBmb3IgaW5wdXQgdHlwZSB0aW1lIG9uIGNocm9taXVtCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9z
dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0
SG9zdEN1c3RvbS5jcHAKaW5kZXggOWVmZWQ0NmJmODZmYTY4OTViNGRiM2U2YTBlYjk1NjQ1NTBk
NTNkYy4uZmU2NzNmNWMzYWUyZTJhZWI1ZjUyMTU0ZTY2Y2I2ZjlkM2UxNTg1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0
Q3VzdG9tLmNwcApAQCAtMTg5LDYgKzE4OSwxMiBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRI
b3N0OjpmdW5jdGlvbkRldGFpbHMoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKK0pTVmFsdWUgSlNJbmplY3RlZFNjcmlwdEhvc3Q6OmdldEludGVybmFsUHJvcGVydGll
cyhFeGVjU3RhdGUqKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgdGhpcy4gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NTMzCisgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7Cit9CisKIHN0YXRpYyBKU0FycmF5KiBnZXRKU0xpc3RlbmVyRnVuY3Rpb25zKEV4ZWNT
dGF0ZSogZXhlYywgRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBFdmVudExpc3RlbmVySW5mbyYg
bGlzdGVuZXJJbmZvKQogewogICAgIEpTQXJyYXkqIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5QXJy
YXkoZXhlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EZWJ1Z2dl
clNjcmlwdC5qcyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RlYnVnZ2VyU2NyaXB0Lmpz
CmluZGV4IDkxNGI2ZjI2MjQ3NGU2ODIxYzc5NmMzNjBjNzExYzBjNjljYjYyNzQuLjYyY2NiNzM2
YjVkNjZjZGRhMDQxYzBlODlhNGViMTQ4OTJkNTNhYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L0RlYnVnZ2VyU2NyaXB0LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L0RlYnVnZ2VyU2NyaXB0LmpzCkBAIC03OSw2ICs3OSwyMCBAQCBEZWJ1Z2dlclNj
cmlwdC5nZXRGdW5jdGlvblNjb3BlcyA9IGZ1bmN0aW9uKGZ1bikKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCitEZWJ1Z2dlclNjcmlwdC5nZXRJbnRlcm5hbFByb3BlcnRpZXMgPSBmdW5jdGlvbih2
YWx1ZSkKK3sKKyAgICB2YXIgcHJvcGVydGllcyA9IE9iamVjdE1pcnJvci5HZXRJbnRlcm5hbFBy
b3BlcnRpZXModmFsdWUpOworICAgIHZhciByZXN1bHQgPSBbXTsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIG1pcnJvciA9IHBy
b3BlcnRpZXNbaV07CisgICAgICAgIHJlc3VsdC5wdXNoKHsKKyAgICAgICAgICAgIG5hbWU6IG1p
cnJvci5uYW1lKCksCisgICAgICAgICAgICB2YWx1ZTogbWlycm9yLnZhbHVlKCkudmFsdWUoKQor
ICAgICAgICB9KTsgCisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKIERlYnVnZ2VyU2Ny
aXB0LmdldFNjcmlwdHMgPSBmdW5jdGlvbihjb250ZXh0RGF0YSkKIHsKICAgICB2YXIgcmVzdWx0
ID0gW107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1
Z1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZl
ci5jcHAKaW5kZXggZWYxNjkxZWVjMjNjMmYzMzEzMTFlNjI3MzFmZWEzMzEzNzM2Mjg5NC4uZWMw
YzY4ODcxNGIwNmZhYzMxNmI1ZTdmMTI3NjZhZjQwMzdmMmM1MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNwcApAQCAtNDEyLDYgKzQxMiwx
NiBAQCB2ODo6TG9jYWw8djg6OlZhbHVlPiBTY3JpcHREZWJ1Z1NlcnZlcjo6ZnVuY3Rpb25TY29w
ZXModjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+CiAgICAgcmV0dXJuIGNhbGxEZWJ1Z2dlck1ldGhv
ZCgiZ2V0RnVuY3Rpb25TY29wZXMiLCAxLCBhcmd2KTsKIH0KIAordjg6OkxvY2FsPHY4OjpWYWx1
ZT4gU2NyaXB0RGVidWdTZXJ2ZXI6OmdldEludGVybmFsUHJvcGVydGllcyh2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+JiBvYmplY3QpCit7CisgICAgaWYgKG1fZGVidWdnZXJTY3JpcHQuZ2V0KCkuSXNF
bXB0eSgpKQorICAgICAgICByZXR1cm4gKnY4OjpVbmRlZmluZWQoKTsKKworICAgIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBhcmd2W10gPSB7IG9iamVjdCB9OworICAgIHJldHVybiBjYWxsRGVidWdn
ZXJNZXRob2QoImdldEludGVybmFsUHJvcGVydGllcyIsIDEsIGFyZ3YpOworfQorCisKIGJvb2wg
U2NyaXB0RGVidWdTZXJ2ZXI6OmlzUGF1c2VkKCkKIHsKICAgICByZXR1cm4gIW1fZXhlY3V0aW9u
U3RhdGUuZ2V0KCkuSXNFbXB0eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nj
cmlwdERlYnVnU2VydmVyLmgKaW5kZXggMWI5NWY2ZmE5MTg4NTU5NWVmNjdlNmU2ODE4MWIyY2Jk
ODkzYTQ5Ny4uNWJjNzM5MjMxZDFkOGZmODJhYTdhZTA0ZDBmZGFkMjg4MDc0YmE5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5oCkBAIC05Nyw2
ICs5Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzUGF1c2VkKCk7CiAKICAgICB2ODo6TG9jYWw8
djg6OlZhbHVlPiBmdW5jdGlvblNjb3Blcyh2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4pOworICAg
IHY4OjpMb2NhbDx2ODo6VmFsdWU+IGdldEludGVybmFsUHJvcGVydGllcyh2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgY29tcGlsZVNjcmlwdChTY3JpcHRTdGF0
ZSosIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFN0
cmluZyogc2NyaXB0SWQsIFN0cmluZyogZXhjZXB0aW9uTWVzc2FnZSk7CiAgICAgdmlydHVhbCB2
b2lkIGNsZWFyQ29tcGlsZWRTY3JpcHRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNw
cAppbmRleCBkZjlkMTQ2NTc3OGU2NTEwNDE0Y2NkMDBhNTc3MGNjNDI0ZmIwYzNmLi5mNWM2YzVj
OWQ1ZDhlMzIwNGFjMGQ3ODRlYTZjYTRiOWI1OTI2M2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9z
dEN1c3RvbS5jcHAKQEAgLTE5Miw2ICsxOTIsMjEgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4
SW5qZWN0ZWRTY3JpcHRIb3N0OjpmdW5jdGlvbkRldGFpbHNDYWxsYmFjayhjb25zdCB2ODo6QXIK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJbmplY3Rl
ZFNjcmlwdEhvc3Q6OmdldEludGVybmFsUHJvcGVydGllc0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCit7CisgICAgSU5DX1NUQVRTKCJJbmplY3RlZFNjcmlwdEhvc3QuZ2V0SW50
ZXJuYWxQcm9wZXJ0aWVzKCkiKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCisgICAgICAg
IHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CisKKyAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2Nv
cGU7CisKKyAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG9iamVjdCA9IHY4OjpIYW5kbGU8djg6
Ok9iamVjdD46OkNhc3QoYXJnc1swXSk7CisKKyAgICBJbmplY3RlZFNjcmlwdEhvc3QqIGhvc3Qg
PSBWOEluamVjdGVkU2NyaXB0SG9zdDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CisgICAgU2Ny
aXB0RGVidWdTZXJ2ZXImIGRlYnVnU2VydmVyID0gaG9zdC0+c2NyaXB0RGVidWdTZXJ2ZXIoKTsK
KyAgICByZXR1cm4gZGVidWdTZXJ2ZXIuZ2V0SW50ZXJuYWxQcm9wZXJ0aWVzKG9iamVjdCk7Cit9
CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpBcnJheT4gZ2V0SlNMaXN0ZW5lckZ1bmN0aW9ucyhE
b2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEV2ZW50TGlzdGVuZXJJbmZvJiBsaXN0ZW5lckluZm8p
CiB7CiAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gcmVzdWx0ID0gdjg6OkFycmF5OjpOZXcoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVj
dG9yLnB5IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3Iu
cHkKaW5kZXggNmY0ZDFmNzAxMGZiNzE0YWE0YWQzMjdiOTQwNWQ3MjE4MmEzZDY1My4uMzFlMTFi
OGU1ZjdhMjkzNjdhYmNlYWFhNGQ0ZmI2YWM5Zjk3MjRjMCAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkKQEAgLTU2LDcgKzU2LDcg
QEAgVFlQRV9OQU1FX0ZJWF9NQVAgPSB7CiB9CiAKIAotVFlQRVNfV0lUSF9SVU5USU1FX0NBU1Rf
U0VUID0gZnJvemVuc2V0KFsiUnVudGltZS5SZW1vdGVPYmplY3QiLCAiUnVudGltZS5Qcm9wZXJ0
eURlc2NyaXB0b3IiLAorVFlQRVNfV0lUSF9SVU5USU1FX0NBU1RfU0VUID0gZnJvemVuc2V0KFsi
UnVudGltZS5SZW1vdGVPYmplY3QiLCAiUnVudGltZS5Qcm9wZXJ0eURlc2NyaXB0b3IiLCAiUnVu
dGltZS5JbnRlcm5hbFByb3BlcnR5RGVzY3JpcHRvciIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJEZWJ1Z2dlci5GdW5jdGlvbkRldGFpbHMiLCAiRGVidWdnZXIu
Q2FsbEZyYW1lIiwgIkNhbnZhcy5UcmFjZUxvZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICMgVGhpcyBzaG91bGQgYmUgYSB0ZW1wb3JhcnkgaGFjay4gVGltZWxp
bmVFdmVudCBzaG91bGQgYmUgY3JlYXRlZCB2aWEgZ2VuZXJhdGVkIEMrKyBBUEkuCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaW1lbGluZS5UaW1lbGluZUV2ZW50
Il0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcAppbmRleCA2
YTQ0Y2E3YjU5NmM0MDgzYmQ4YTEwMDhlZTllNjQ3NzlhMGQ2ZDFkLi42N2RkMzllOTA3OWJmN2Yx
MzA5ZDQyNDZhZjQ2YjhkM2I3MTQ2YzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bmplY3RlZFNjcmlwdC5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAKIHVzaW5nIFdlYkNvcmU6OlR5cGVC
dWlsZGVyOjpBcnJheTsKIHVzaW5nIFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6Q2Fs
bEZyYW1lOwogdXNpbmcgV2ViQ29yZTo6VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlByb3BlcnR5RGVz
Y3JpcHRvcjsKK3VzaW5nIFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpSdW50aW1lOjpJbnRlcm5hbFBy
b3BlcnR5RGVzY3JpcHRvcjsKIHVzaW5nIFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6
RnVuY3Rpb25EZXRhaWxzOwogdXNpbmcgV2ViQ29yZTo6VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJl
bW90ZU9iamVjdDsKIApAQCAtMTQxLDYgKzE0MiwyMiBAQCB2b2lkIEluamVjdGVkU2NyaXB0Ojpn
ZXRQcm9wZXJ0aWVzKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBvYmpl
YwogICAgICpwcm9wZXJ0aWVzID0gQXJyYXk8UHJvcGVydHlEZXNjcmlwdG9yPjo6cnVudGltZUNh
c3QocmVzdWx0KTsKIH0KIAordm9pZCBJbmplY3RlZFNjcmlwdDo6Z2V0SW50ZXJuYWxQcm9wZXJ0
aWVzKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgUmVm
UHRyPEFycmF5PEludGVybmFsUHJvcGVydHlEZXNjcmlwdG9yPiA+KiBwcm9wZXJ0aWVzKQorewor
ICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihpbmplY3RlZFNjcmlwdE9iamVjdCgpLCAi
Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzIik7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQob2Jq
ZWN0SWQpOworCisgICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiByZXN1bHQ7CisgICAgbWFrZUNh
bGwoZnVuY3Rpb24sICZyZXN1bHQpOworICAgIGlmICghcmVzdWx0IHx8IHJlc3VsdC0+dHlwZSgp
ICE9IEluc3BlY3RvclZhbHVlOjpUeXBlQXJyYXkpIHsKKyAgICAgICAgKmVycm9yU3RyaW5nID0g
IkludGVybmFsIGVycm9yIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBSZWZQdHI8QXJy
YXk8SW50ZXJuYWxQcm9wZXJ0eURlc2NyaXB0b3I+ID4gYXJyYXkgPSBBcnJheTxJbnRlcm5hbFBy
b3BlcnR5RGVzY3JpcHRvcj46OnJ1bnRpbWVDYXN0KHJlc3VsdCk7CisgICAgaWYgKGFycmF5LT5s
ZW5ndGgoKSA+IDApCisgICAgICAgICpwcm9wZXJ0aWVzID0gYXJyYXk7Cit9CisKIE5vZGUqIElu
amVjdGVkU2NyaXB0Ojpub2RlRm9yT2JqZWN0SWQoY29uc3QgU3RyaW5nJiBvYmplY3RJZCkKIHsK
ICAgICBpZiAoaGFzTm9WYWx1ZSgpIHx8ICFjYW5BY2Nlc3NJbnNwZWN0ZWRXaW5kb3coKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKaW5kZXggNDQyNzQyNzhkOWQ5
YTBlODdmOGJhY2FlMDMxM2QxYmVhNTc2NWY4Mi4uOGE2ZjMzYjE2ZTA5MzRlMGMxMWQ5MzQ1Y2Qz
YzU2NDNjNzkwZjVmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVj
dGVkU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
LmgKQEAgLTc5LDYgKzc5LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVzdGFydEZyYW1lKEVycm9y
U3RyaW5nKiwgY29uc3QgU2NyaXB0VmFsdWUmIGNhbGxGcmFtZXMsIGNvbnN0IFN0cmluZyYgY2Fs
bEZyYW1lSWQsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQpOwogICAgIHZvaWQgZ2V0
RnVuY3Rpb25EZXRhaWxzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBmdW5jdGlvbklkLCBS
ZWZQdHI8VHlwZUJ1aWxkZXI6OkRlYnVnZ2VyOjpGdW5jdGlvbkRldGFpbHM+KiByZXN1bHQpOwog
ICAgIHZvaWQgZ2V0UHJvcGVydGllcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0
SWQsIGJvb2wgb3duUHJvcGVydGllcywgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVp
bGRlcjo6UnVudGltZTo6UHJvcGVydHlEZXNjcmlwdG9yPiA+KiByZXN1bHQpOworICAgIHZvaWQg
Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJ
ZCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6UnVudGltZTo6SW50ZXJu
YWxQcm9wZXJ0eURlc2NyaXB0b3I+ID4qIHJlc3VsdCk7CiAgICAgTm9kZSogbm9kZUZvck9iamVj
dElkKGNvbnN0IFN0cmluZyYgb2JqZWN0SWQpOwogICAgIHZvaWQgcmVsZWFzZU9iamVjdChjb25z
dCBTdHJpbmcmIG9iamVjdElkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHRIb3N0LmlkbAppbmRleCBkMTQ0ZGQwOWE0YWViMjZkMGY3OWYzOTM2YjE0M2Vm
YzMwZDZlOTdmLi5mY2NiMjk2YmNkMGViNzc5MzAzYmMwYjNkOWYzMTBiOWE0NWFhNWM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmlkbApAQCAt
NDMsNiArNDMsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIFtDdXN0b21dIGJvb2xlYW4gaXNI
VE1MQWxsQ29sbGVjdGlvbihpbiBET01PYmplY3Qgb2JqZWN0KTsKICAgICAgICAgW0N1c3RvbV0g
RE9NU3RyaW5nIHR5cGUoaW4gRE9NT2JqZWN0IG9iamVjdCk7CiAgICAgICAgIFtDdXN0b21dIERP
TU9iamVjdCBmdW5jdGlvbkRldGFpbHMoaW4gRE9NT2JqZWN0IG9iamVjdCk7CisgICAgICAgIFtD
dXN0b21dIEFycmF5IGdldEludGVybmFsUHJvcGVydGllcyhpbiBET01PYmplY3Qgb2JqZWN0KTsK
ICAgICAgICAgW0N1c3RvbV0gQXJyYXkgZ2V0RXZlbnRMaXN0ZW5lcnMoaW4gTm9kZSBub2RlKTsK
IAogICAgICAgICBbQ3VzdG9tXSBET01TdHJpbmcgZGF0YWJhc2VJZChpbiBET01PYmplY3QgZGF0
YWJhc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0U291cmNlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291
cmNlLmpzCmluZGV4IGFjYjU2OGY3ZWZlMTE4NjVjOTUzNGQ1MzYwYzM5MGJmMTYzY2QzMzEuLjQ3
NWNjOGYzYzNmMGJlZGQ0ZTBlM2VlMTZjMzNiMzMxMGU1OTMzN2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKQEAgLTIzNCw3ICsyMzQs
MzIgQEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIGRlc2Ny
aXB0b3IuY29uZmlndXJhYmxlID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAoISgiZW51bWVyYWJs
ZSIgaW4gZGVzY3JpcHRvcikpCiAgICAgICAgICAgICAgICAgZGVzY3JpcHRvci5lbnVtZXJhYmxl
ID0gZmFsc2U7Ci0gICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZGVzY3Jp
cHRvcnM7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvYmplY3RJ
ZAorICAgICAqIEByZXR1cm4ge0FycmF5LjxPYmplY3Q+fGJvb2xlYW59CisgICAgICovCisgICAg
Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzOiBmdW5jdGlvbihvYmplY3RJZCwgb3duUHJvcGVydGllcykK
KyAgICB7CisgICAgICAgIHZhciBwYXJzZWRPYmplY3RJZCA9IHRoaXMuX3BhcnNlT2JqZWN0SWQo
b2JqZWN0SWQpOworICAgICAgICB2YXIgb2JqZWN0ID0gdGhpcy5fb2JqZWN0Rm9ySWQocGFyc2Vk
T2JqZWN0SWQpOworICAgICAgICB2YXIgb2JqZWN0R3JvdXBOYW1lID0gdGhpcy5faWRUb09iamVj
dEdyb3VwTmFtZVtwYXJzZWRPYmplY3RJZC5pZF07CisgICAgICAgIGlmICghdGhpcy5faXNEZWZp
bmVkKG9iamVjdCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHZhciBkZXNj
cmlwdG9ycyA9IFtdOworICAgICAgICB2YXIgaW50ZXJuYWxQcm9wZXJ0aWVzID0gSW5qZWN0ZWRT
Y3JpcHRIb3N0LmdldEludGVybmFsUHJvcGVydGllcyhvYmplY3QpOworICAgICAgICBpZiAoaW50
ZXJuYWxQcm9wZXJ0aWVzKSB7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGludGVy
bmFsUHJvcGVydGllcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0
eSA9IGludGVybmFsUHJvcGVydGllc1tpXTsKKyAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRv
ciA9IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogcHJvcGVydHkubmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgdmFsdWU6IHRoaXMuX3dyYXBPYmplY3QocHJvcGVydHkudmFsdWUsIG9iamVj
dEdyb3VwTmFtZSkKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGRlc2NyaXB0
b3JzLnB1c2goZGVzY3JpcHRvcik7CisgICAgICAgICAgICB9IAogICAgICAgICB9CiAgICAgICAg
IHJldHVybiBkZXNjcmlwdG9yczsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvci5qc29uCmluZGV4IDAxYTNlMmE5MWI0NDI1YzA2MDBmOTFlZDg3NDEwYmIxZGRjMTU4ZTAu
LjEzNDVlZmEzMTA1Y2YzOGFjNWQyYjc2YTU4YjEzNWEwNjFjZDFjMTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTQ5OCw2ICs0OTgsMTUgQEAKICAgICAgICAg
ICAgICAgICBdCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICJpZCI6ICJJbnRlcm5hbFByb3BlcnR5RGVzY3JpcHRvciIsCisgICAgICAgICAgICAgICAgInR5
cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiT2JqZWN0IGlu
dGVybmFsIHByb3BlcnR5IGRlc2NyaXB0b3IuIFRoaXMgcHJvcGVydHkgaXNuJ3Qgbm9ybWFsbHkg
dmlzaWJsZSBpbiBKYXZhU2NyaXB0IGNvZGUuIiwKKyAgICAgICAgICAgICAgICAicHJvcGVydGll
cyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJuYW1lIiwgInR5cGUiOiAic3Ry
aW5nIiwgImRlc2NyaXB0aW9uIjogIkNvbnZlbnRpb25hbCBwcm9wZXJ0eSBuYW1lLiIgfSwKKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ2YWx1ZSIsICIkcmVmIjogIlJlbW90ZU9iamVj
dCIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUgdmFsdWUgYXNzb2NpYXRl
ZCB3aXRoIHRoZSBwcm9wZXJ0eS4iIH0KKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9
LAorICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJpZCI6ICJDYWxsQXJndW1lbnQiLAog
ICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIlJlcHJlc2VudHMgZnVuY3Rpb24gY2FsbCBhcmd1bWVudC4gRWl0aGVyIHJlbW90
ZSBvYmplY3QgaWQgPGNvZGU+b2JqZWN0SWQ8L2NvZGU+IG9yIHByaW1pdGl2ZSA8Y29kZT52YWx1
ZTwvY29kZT4gb3IgbmVpdGhlciBvZiAoZm9yIHVuZGVmaW5lZCkgdGhlbSBzaG91bGQgYmUgc3Bl
Y2lmaWVkLiIsCkBAIC01NjUsNyArNTc0LDggQEAKICAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJvd25Qcm9wZXJ0aWVzIiwgIm9wdGlvbmFsIjogdHJ1ZSwgInR5cGUiOiAiYm9vbGVhbiIs
ICJkZXNjcmlwdGlvbiI6ICJJZiB0cnVlLCByZXR1cm5zIHByb3BlcnRpZXMgYmVsb25naW5nIG9u
bHkgdG8gdGhlIGVsZW1lbnQgaXRzZWxmLCBub3QgdG8gaXRzIHByb3RvdHlwZSBjaGFpbi4iIH0K
ICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc3VsdCIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1z
IjogeyAiJHJlZiI6ICJQcm9wZXJ0eURlc2NyaXB0b3IifSwgImRlc2NyaXB0aW9uIjogIk9iamVj
dCBwcm9wZXJ0aWVzLiIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc3VsdCIs
ICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJQcm9wZXJ0eURlc2NyaXB0b3Ii
fSwgImRlc2NyaXB0aW9uIjogIk9iamVjdCBwcm9wZXJ0aWVzLiIgfSwKKyAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJpbnRlcm5hbFByb3BlcnRpZXMiLCAib3B0aW9uYWwiOiB0cnVlLCAi
dHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiSW50ZXJuYWxQcm9wZXJ0eURlc2Ny
aXB0b3IifSwgImRlc2NyaXB0aW9uIjogIkludGVybmFsIG9iamVjdCBwcm9wZXJ0aWVzLiIgfQog
ICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJldHVy
bnMgcHJvcGVydGllcyBvZiBhIGdpdmVuIG9iamVjdC4gT2JqZWN0IGdyb3VwIG9mIHRoZSByZXN1
bHQgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHRhcmdldCBvYmplY3QuIgogICAgICAgICAgICAgfSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5j
cHAKaW5kZXggYTNkZmRkZWM5MGE1OWY1MTU2ZWYyZGRkNDEzNWM4NWY4OTQ4N2MxZi4uODBiZTUw
YzJhOTI2ZDllMTVlMmMwZjVlZjg3NmY0NTQ2ZTdhMzQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKQEAgLTEzNiw3ICsxMzYs
NyBAQCB2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Y2FsbEZ1bmN0aW9uT24oRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbgogICAgIH0KIH0KIAotdm9pZCBJbnNwZWN0b3JS
dW50aW1lQWdlbnQ6OmdldFByb3BlcnRpZXMoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25z
dCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBib29sKiBjb25zdCBvd25Qcm9wZXJ0aWVzLCBSZWZQ
dHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpSdW50aW1lOjpQcm9wZXJ0eURlc2Ny
aXB0b3I+ID4mIHJlc3VsdCkKK3ZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpnZXRQcm9wZXJ0
aWVzKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgY29u
c3QgYm9vbCogY29uc3Qgb3duUHJvcGVydGllcywgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxU
eXBlQnVpbGRlcjo6UnVudGltZTo6UHJvcGVydHlEZXNjcmlwdG9yPiA+JiByZXN1bHQsIFJlZlB0
cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OkludGVybmFsUHJvcGVy
dHlEZXNjcmlwdG9yPiA+JiBpbnRlcm5hbFByb3BlcnRpZXMpCiB7CiAgICAgSW5qZWN0ZWRTY3Jp
cHQgaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRTY3Jp
cHRGb3JPYmplY3RJZChvYmplY3RJZCk7CiAgICAgaWYgKGluamVjdGVkU2NyaXB0Lmhhc05vVmFs
dWUoKSkgewpAQCAtMTUwLDYgKzE1MCw3IEBAIHZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50Ojpn
ZXRQcm9wZXJ0aWVzKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nCiAgICAg
bXV0ZUNvbnNvbGUoKTsKIAogICAgIGluamVjdGVkU2NyaXB0LmdldFByb3BlcnRpZXMoZXJyb3JT
dHJpbmcsIG9iamVjdElkLCBvd25Qcm9wZXJ0aWVzID8gKm93blByb3BlcnRpZXMgOiBmYWxzZSwg
JnJlc3VsdCk7CisgICAgaW5qZWN0ZWRTY3JpcHQuZ2V0SW50ZXJuYWxQcm9wZXJ0aWVzKGVycm9y
U3RyaW5nLCBvYmplY3RJZCwgJmludGVybmFsUHJvcGVydGllcyk7CiAKICAgICB1bm11dGVDb25z
b2xlKCk7CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmgKaW5kZXggNjZkYmFmZDY1YzJi
OGZiMTQ4NjMwY2UwNWNhNzMyN2Q5ZGI1MzIwMS4uMjllNTdkMjJmNjQxNmNmYzFkMTMzZGZiZjcz
Yzg2NTE5ODc4ZWVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclJ1bnRpbWVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSdW50aW1lQWdlbnQuaApAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAg
ICAgICAgICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJl
c3VsdCwKICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGVCdWlsZGVyOjpPcHRPdXRwdXQ8Ym9v
bD4qIHdhc1Rocm93bik7CiAgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VPYmplY3QoRXJyb3JTdHJp
bmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdElkKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvcGVy
dGllcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGNvbnN0IGJvb2wqIG93
blByb3BlcnRpZXMsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OlJ1bnRp
bWU6OlByb3BlcnR5RGVzY3JpcHRvcj4gPiYgcmVzdWx0KTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0
UHJvcGVydGllcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGNvbnN0IGJv
b2wqIG93blByb3BlcnRpZXMsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6
OlJ1bnRpbWU6OlByb3BlcnR5RGVzY3JpcHRvcj4gPiYgcmVzdWx0LCBSZWZQdHI8VHlwZUJ1aWxk
ZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpSdW50aW1lOjpJbnRlcm5hbFByb3BlcnR5RGVzY3JpcHRv
cj4gPiYgaW50ZXJuYWxQcm9wZXJ0aWVzKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZU9iamVj
dEdyb3VwKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCk7CiAgICAgdmly
dHVhbCB2b2lkIHJ1bihFcnJvclN0cmluZyopOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjQ4MzI5ZmM2ZWIxN2VjMjBh
ZTE4ZjdkZGMyMDJiOTUzZDQ2YTk0Yy4uZjRkNTZjNmYzOGNkNTMwZGE0MTg2N2E0NWZlMWIzYWRk
NzgzNjRkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTEwLTA0ICBQZXRlciBSeWJpbiAg
PHBldGVyLnJ5YmluQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHBvc2Ug
b2JqZWN0IGludGVybmFsIHByb3BlcnRpZXMgc3VjaCBhcyBQcmltaXRpdmVWYWx1ZSBvciBCb3Vu
ZFRoaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0
Mzk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSB0
ZXN0IGlzIGFkZGVkIHRvIHN1cHBvcnQgbmV3IGZlYXR1cmUuIE9sZCB0ZXN0IGlzIHVwZGF0ZWQg
YmVjYXVzZSBsaW5lIG51bWJlciBjaGFuZ2VkLgorCisgICAgICAgICogaW5zcGVjdG9yLXByb3Rv
Y29sL3J1bnRpbWUtZ2V0UHJvcGVydGllcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci1wcm90b2NvbC9ydW50aW1lLWdldFByb3BlcnRpZXMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS1leHBlY3RlZC50eHQ6
CisKIDIwMTItMTAtMDMgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLiBTa2lwIG1lZGlhL2V2ZW50LXF1ZXVlLWNyYXNoLmh0bWwgc28g
dGhhdCBpdHMgY29uc29sZSBtZXNzYWdlIGRvZXMgbm90IGNhdXNlIG5leHQgdGVzdCB0byBmbGFr
ZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9ydW50aW1lLWdl
dFByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L3J1bnRpbWUtZ2V0UHJvcGVydGllcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDFiNmU1OWQ5
ODQ4ZjVkMjFmOGVlZjU4YmJmODUxZjI0MzhkYTBjNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9ydW50aW1lLWdldFByb3BlcnRpZXMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTYgQEAKK1Byb3BlcnRpZXMgb2YgT2JqZWN0KDUpCisgIF9fcHJvdG9f
XyBvYmplY3QgdW5kZWZpbmVkCisgIGZvbyBzdHJpbmcgY2F0CitQcm9wZXJ0aWVzIG9mIGFycmF5
CisgIF9fcHJvdG9fXyBvYmplY3QgdW5kZWZpbmVkCisgIDAgc3RyaW5nIHJlZAorICAxIHN0cmlu
ZyBncmVlbgorICAyIHN0cmluZyBibHVlCisgIGxlbmd0aCBudW1iZXIgMworUHJvcGVydGllcyBv
ZiBCb3VuZCBmdW5jdGlvbgorICBfX3Byb3RvX18gZnVuY3Rpb24gdW5kZWZpbmVkCisgIGFyZ3Vt
ZW50cworICBjYWxsZXIKKyAgbGVuZ3RoIG51bWJlciAwCisgIG5hbWUgc3RyaW5nIE51bWJlcgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcnVudGltZS1nZXRQ
cm9wZXJ0aWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcnVudGltZS1n
ZXRQcm9wZXJ0aWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGI2MDdjYjdhNDllMTkwNGJhOGZmODUxOWI1
MzY4MTViZDA2NTNhNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9ydW50aW1lLWdldFByb3BlcnRpZXMuaHRtbApAQCAtMCwwICsxLDE1NSBAQAorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIC8vIEEgZ2VuZXJhbC1w
dXJwb3NlIGVuZ2luZSBmb3Igc2VuZGluZyBhIHNlcXVlbmNlIG9mIHByb3RvY29sIGNvbW1hbmRz
LgorICAgIC8vIFRoZSBjbGllbnRzIHByb3ZpZGUgcmVxdWVzdHMgYW5kIHJlc3BvbnNlIGhhbmRs
ZXJzLCB3aGlsZSB0aGUgZW5naW5lIGNhdGNoZXMKKyAgICAvLyBlcnJvcnMgYW5kIG1ha2VzIHN1
cmUgdGhhdCBvbmNlIHRoZXJlJ3Mgbm90aGluZyB0byBkbyBjb21wbGV0ZVRlc3QoKSBpcyBjYWxs
ZWQuCisgICAgLy8gQHBhcmFtIHN0ZXAgaXMgYW4gb2JqZWN0IHdpdGggY29tbWFuZCwgcGFyYW1z
IGFuZCBjYWxsYmFjayBmaWVsZHMgCisgICAgZnVuY3Rpb24gcnVuUmVxdWVzdFNlcmllcyhzdGVw
KSB7CisgICAgICAgIHByb2Nlc3NTdGVwKHN0ZXApOworCisgICAgICAgIGZ1bmN0aW9uIHByb2Nl
c3NTdGVwKHMpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcHJvY2Vzc1N0
ZXBPckZhaWwocyk7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coZS5zdGFjayk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgZnVuY3Rpb24gcHJvY2Vzc1N0ZXBPckZhaWwocykgeworICAgICAgICAgICAgaWYgKCFz
KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIXMuY29t
bWFuZCkgeworICAgICAgICAgICAgICAgIC8vIEEgc2ltcGxlIGxvb3BiYWNrIHN0ZXAuCisgICAg
ICAgICAgICAgICAgdmFyIG5leHQgPSBzLmNhbGxiYWNrKCk7CisgICAgICAgICAgICAgICAgcHJv
Y2Vzc1N0ZXAobmV4dCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICB2YXIgaW5uZXJDYWxsYmFjayA9IGZ1bmN0aW9uKHJlc3BvbnNlKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKCJlcnJvciIgaW4gcmVzcG9uc2UpIHsKKyAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2cocmVzcG9uc2UuZXJyb3IubWVzc2FnZSk7CisgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdmFyIG5l
eHQ7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCA9IHMu
Y2FsbGJhY2socmVzcG9uc2UucmVzdWx0KTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7
CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKGUuc3RhY2spOworICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHByb2Nl
c3NTdGVwKG5leHQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZChzLmNvbW1hbmQsIHMucGFyYW1zLCBpbm5lckNhbGxiYWNrKTsKKyAgICAgICAg
fQorICAgIH0KKyAgICAKKyAgICB2YXIgZmlyc3RTdGVwID0geyBjYWxsYmFjazogY2FsbGJhY2tT
dGFydDUgfTsKKworICAgIHJ1blJlcXVlc3RTZXJpZXMoZmlyc3RTdGVwKTsKKworICAgIC8vICdP
YmplY3Q1JyBzZWN0aW9uIC0tIGNoZWNrIHByb3BlcnRpZXMgb2YgJzUnIHdyYXBwZWQgYXMgb2Jq
ZWN0ICAoaGFzIGFuIGludGVybmFsIHByb3BlcnR5KS4KKworICAgIGZ1bmN0aW9uIGNhbGxiYWNr
U3RhcnQ1KCkgeworICAgICAgICAvLyBDcmVhdGUgYW4gd3JhcHBlciBvYmplY3Qgd2l0aCBhZGRp
dGlvbmFsIHByb3BlcnR5LgorICAgICAgICB2YXIgZXhwcmVzc2lvbiA9ICIoZnVuY3Rpb24oKXt2
YXIgciA9IE9iamVjdCg1KTsgci5mb28gPSAnY2F0JztyZXR1cm4gcjt9KSgpIjsKKyAgICAgICAg
CisgICAgICAgIHJldHVybiB7IGNvbW1hbmQ6ICJSdW50aW1lLmV2YWx1YXRlIiwgcGFyYW1zOiB7
ZXhwcmVzc2lvbjogZXhwcmVzc2lvbn0sIGNhbGxiYWNrOiBjYWxsYmFja0V2YWw1IH07CisgICAg
fQorICAgIGZ1bmN0aW9uIGNhbGxiYWNrRXZhbDUocmVzdWx0KSB7CisgICAgICAgIHZhciBpZCA9
IHJlc3VsdC5yZXN1bHQub2JqZWN0SWQ7CisgICAgICAgIGlmIChpZCA9PT0gdW5kZWZpbmVkKQor
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJvYmplY3RJZCBpcyBleHBlY3RlZCIpOworICAg
ICAgICByZXR1cm4geworICAgICAgICAgICAgY29tbWFuZDogIlJ1bnRpbWUuZ2V0UHJvcGVydGll
cyIsIHBhcmFtczoge29iamVjdElkOiBpZCwgb3duUHJvcGVydGllczogdHJ1ZX0sIGNhbGxiYWNr
OiBjYWxsYmFja1Byb3BlcnRpZXM1CisgICAgICAgIH07CisgICAgfQorICAgIGZ1bmN0aW9uIGNh
bGxiYWNrUHJvcGVydGllczUocmVzdWx0KSB7CisgICAgICAgIGxvZ0dldFByb3BlcnRpZXNSZXN1
bHQoIk9iamVjdCg1KSIsIHJlc3VsdCk7CisgICAgICAgIHJldHVybiB7IGNhbGxiYWNrOiBjYWxs
YmFja1N0YXJ0QXJyYXkgfTsKKyAgICB9CisKKyAgICAKKyAgICAvLyAnQXJyYXknIHNlY3Rpb24g
LS0gY2hlY2sgcHJvcGVydGllcyBvZiBhbiBhcnJheS4KKyAgICAKKyAgICBmdW5jdGlvbiBjYWxs
YmFja1N0YXJ0QXJyYXkoKSB7CisgICAgICAgIHZhciBleHByZXNzaW9uID0gIlsncmVkJywgJ2dy
ZWVuJywgJ2JsdWUnXSI7CisgICAgICAgIHJldHVybiB7IGNvbW1hbmQ6ICJSdW50aW1lLmV2YWx1
YXRlIiwgcGFyYW1zOiB7ZXhwcmVzc2lvbjogZXhwcmVzc2lvbn0sIGNhbGxiYWNrOiBjYWxsYmFj
a0V2YWxBcnJheSB9OworICAgIH0KKyAgICBmdW5jdGlvbiBjYWxsYmFja0V2YWxBcnJheShyZXN1
bHQpIHsKKyAgICAgICAgdmFyIGlkID0gcmVzdWx0LnJlc3VsdC5vYmplY3RJZDsKKyAgICAgICAg
aWYgKGlkID09PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm9iamVj
dElkIGlzIGV4cGVjdGVkIik7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBjb21tYW5k
OiAiUnVudGltZS5nZXRQcm9wZXJ0aWVzIiwgcGFyYW1zOiB7b2JqZWN0SWQ6IGlkLCBvd25Qcm9w
ZXJ0aWVzOiB0cnVlfSwgY2FsbGJhY2s6IGNhbGxiYWNrUHJvcGVydGllc0FycmF5CisgICAgICAg
IH07CisgICAgfQorICAgIGZ1bmN0aW9uIGNhbGxiYWNrUHJvcGVydGllc0FycmF5KHJlc3VsdCkg
eworICAgICAgICBsb2dHZXRQcm9wZXJ0aWVzUmVzdWx0KCJhcnJheSIsIHJlc3VsdCk7CisgICAg
ICAgIHJldHVybiB7IGNhbGxiYWNrOiBjYWxsYmFja1N0YXJ0Qm91bmQgfTsKKyAgICB9CisKKyAg
ICAKKyAgICAvLyAnQm91bmQnIHNlY3Rpb24gLS0gY2hlY2sgcHJvcGVydGllcyBvZiBhIGJvdW5k
IGZ1bmN0aW9uIChoYXMgYSBidW5jaCBvZiBpbnRlcm5hbCBwcm9wZXJ0aWVzKS4KKyAgICAKKyAg
ICBmdW5jdGlvbiBjYWxsYmFja1N0YXJ0Qm91bmQoKSB7CisgICAgICAgIHZhciBleHByZXNzaW9u
ID0gIk51bWJlci5iaW5kKHt9LCA1KSI7CisgICAgICAgIHJldHVybiB7IGNvbW1hbmQ6ICJSdW50
aW1lLmV2YWx1YXRlIiwgcGFyYW1zOiB7ZXhwcmVzc2lvbjogZXhwcmVzc2lvbn0sIGNhbGxiYWNr
OiBjYWxsYmFja0V2YWxCb3VuZCB9OworICAgIH0KKyAgICBmdW5jdGlvbiBjYWxsYmFja0V2YWxC
b3VuZChyZXN1bHQpIHsKKyAgICAgICAgdmFyIGlkID0gcmVzdWx0LnJlc3VsdC5vYmplY3RJZDsK
KyAgICAgICAgaWYgKGlkID09PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIm9iamVjdElkIGlzIGV4cGVjdGVkIik7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAg
ICBjb21tYW5kOiAiUnVudGltZS5nZXRQcm9wZXJ0aWVzIiwgcGFyYW1zOiB7b2JqZWN0SWQ6IGlk
LCBvd25Qcm9wZXJ0aWVzOiB0cnVlfSwgY2FsbGJhY2s6IGNhbGxiYWNrUHJvcGVydGllc0JvdW5k
CisgICAgICAgIH07CisgICAgfQorICAgIGZ1bmN0aW9uIGNhbGxiYWNrUHJvcGVydGllc0JvdW5k
KHJlc3VsdCkgeworICAgICAgICBsb2dHZXRQcm9wZXJ0aWVzUmVzdWx0KCJCb3VuZCBmdW5jdGlv
biIsIHJlc3VsdCk7CisgICAgICAgIHJldHVybjsgLy8gRW5kIG9mIHRlc3QKKyAgICB9CisgICAg
CisKKyAgICAvLyBBIGhlbHBlciBmdW5jdGlvbiB0aGF0IGR1bXBzIG9iamVjdCBwcm9wZXJ0aWVz
IGFuZCBpbnRlcm5hbCBwcm9wZXJ0aWVzIGluIHNvcnRlZCBvcmRlci4gICAgCisgICAgZnVuY3Rp
b24gbG9nR2V0UHJvcGVydGllc1Jlc3VsdCh0aXRsZSwgcHJvdG9jb2xSZXN1bHQpIHsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIlByb3BlcnRpZXMgb2YgIiArIHRpdGxlKTsKKyAgICAgICAg
dmFyIHByb3BlcnR5QXJyYXkgPSBwcm90b2NvbFJlc3VsdC5yZXN1bHQ7CisgICAgICAgIHByb3Bl
cnR5QXJyYXkuc29ydChOYW1lZFRoaW5nQ29tcGFyYXRvcik7CisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgcHJvcGVydHlBcnJheS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdmFyIHAg
PSBwcm9wZXJ0eUFycmF5W2ldOworICAgICAgICAgICAgdmFyIHYgPSBwLnZhbHVlOworICAgICAg
ICAgICAgaWYgKHYpCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiAgIiArIHAu
bmFtZSArICIgIiArIHYudHlwZSArICIgIiArIHYudmFsdWUpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCIgICIgKyBwLm5hbWUpOworICAgICAg
ICB9CisgICAgICAgIHZhciBpbnRlcm5hbFByb3BlcnR5QXJyYXkgPSBwcm90b2NvbFJlc3VsdC5p
bnRlcm5hbFByb3BlcnRpZXM7CisgICAgICAgIGlmIChpbnRlcm5hbFByb3BlcnR5QXJyYXkpIHsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJJbnRlcm5hbCBwcm9wZXJ0aWVzIik7Cisg
ICAgICAgICAgICBpbnRlcm5hbFByb3BlcnR5QXJyYXkuc29ydChOYW1lZFRoaW5nQ29tcGFyYXRv
cik7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGludGVybmFsUHJvcGVydHlBcnJh
eS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHZhciBwID0gaW50ZXJuYWxQcm9wZXJ0
eUFycmF5W2ldOworICAgICAgICAgICAgICAgIHZhciB2ID0gcC52YWx1ZTsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiICAiICsgcC5uYW1lICsgIiAiICsgdi50eXBlICsgIiAi
ICsgdi52YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgZnVu
Y3Rpb24gTmFtZWRUaGluZ0NvbXBhcmF0b3IobzEsIG8yKSB7CisgICAgICAgICAgICByZXR1cm4g
bzEubmFtZS5sb2NhbGVDb21wYXJlKG8yLm5hbWUpOworICAgICAgICB9CisgICAgfQorfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbkxvYWQ9InJ1blRlc3QoKTsiPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vaW5zcGVjdG9y
LXByb3RvY29sL3J1bnRpbWUtZ2V0UHJvcGVydGllcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3ItcHJvdG9jb2wvcnVudGltZS1nZXRQcm9wZXJ0
aWVzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjZjMWFiMzYwNTM2ZDkxZDIwNmJiZjIwNzhi
ZjczMzQ0OTBmMzAyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vaW5zcGVjdG9yLXByb3RvY29sL3J1bnRpbWUtZ2V0UHJvcGVydGllcy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwyMiBAQAorUHJvcGVydGllcyBvZiBPYmplY3QoNSkKKyAgX19wcm90b19f
IG9iamVjdCB1bmRlZmluZWQKKyAgZm9vIHN0cmluZyBjYXQKK0ludGVybmFsIHByb3BlcnRpZXMK
KyAgW1tQcmltaXRpdmVWYWx1ZV1dIG51bWJlciA1CitQcm9wZXJ0aWVzIG9mIGFycmF5CisgIDAg
c3RyaW5nIHJlZAorICAxIHN0cmluZyBncmVlbgorICAyIHN0cmluZyBibHVlCisgIF9fcHJvdG9f
XyBvYmplY3QgdW5kZWZpbmVkCisgIGxlbmd0aCBudW1iZXIgMworUHJvcGVydGllcyBvZiBCb3Vu
ZCBmdW5jdGlvbgorICBfX3Byb3RvX18gZnVuY3Rpb24gdW5kZWZpbmVkCisgIGFyZ3VtZW50cwor
ICBjYWxsZXIKKyAgbGVuZ3RoIG51bWJlciAwCisgIG5hbWUgc3RyaW5nIAorSW50ZXJuYWwgcHJv
cGVydGllcworICBbW0JvdW5kQXJnc11dIG9iamVjdCB1bmRlZmluZWQKKyAgW1tCb3VuZFRoaXNd
XSBvYmplY3QgdW5kZWZpbmVkCisgIFtbVGFyZ2V0RnVuY3Rpb25dXSBmdW5jdGlvbiB1bmRlZmlu
ZWQKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>166970</attachid>
            <date>2012-10-03 15:20:40 -0700</date>
            <delta_ts>2012-10-04 09:12:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-94397-20121004021951.patch</filename>
            <type>text/plain</type>
            <size>26134</size>
            <attacher name="Peter Rybin">prybin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTMwMjk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTA2YWIwMGI1YTM2ODc2
NzdkMjBjMDQxNDM3ODQzNzVjNTljNGY0MC4uYzcyMWZlODQzZTc3YjkzMTFkZDk0MTQ4NTIxNWQw
ZWNkOWZjYzVmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDEyLTEwLTA0ICBQZXRl
ciBSeWJpbiAgPHBldGVyLnJ5YmluQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9y
OiBleHBvc2Ugb2JqZWN0IGludGVybmFsIHByb3BlcnRpZXMgc3VjaCBhcyBQcmltaXRpdmVWYWx1
ZSBvciBCb3VuZFRoaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk0Mzk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW50ZXJuYWwgcHJvcGVydHkgYWNjZXNzIGlzIGJ1aWx0IGZyb20gSW5qZWN0ZWQgU2Ny
aXB0IHRvIFY4IGRlYnVnIEFQSS4gSlNDIGJpbmRpbmcKKyAgICAgICAgaGFzIGEgc3R1YiBpbWxw
ZW1lbnRhdGlvbi4gUHJvdG9jb2wgaXMgdXBkYXRlZCB0byBleHBsaWNpdGx5IHJlZmxlY3QgaW50
ZXJuYWwgcHJvcGVydGllcy4KKworICAgICAgICBUZXN0OiBpbnNwZWN0b3ItcHJvdG9jb2wvcnVu
dGltZS1nZXRQcm9wZXJ0aWVzLmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTSW5qZWN0
ZWRTY3JpcHRIb3N0Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkpTSW5qZWN0ZWRTY3Jp
cHRIb3N0OjpnZXRJbnRlcm5hbFByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogYmluZGluZ3MvdjgvRGVidWdnZXJTY3JpcHQuanM6CisgICAgICAgICogYmluZGluZ3Mv
djgvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2NyaXB0RGVidWdT
ZXJ2ZXI6OmdldEludGVybmFsUHJvcGVydGllcyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAg
ICAgKiBiaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5oOgorICAgICAgICAoU2NyaXB0RGVi
dWdTZXJ2ZXIpOgorICAgICAgICAqIGJpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0
SG9zdEN1c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpWOEluamVjdGVkU2NyaXB0SG9zdDo6
Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzQ2FsbGJhY2spOgorICAgICAgICAoV2ViQ29yZSk6CisgICAg
ICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
amVjdGVkU2NyaXB0OjpnZXRJbnRlcm5hbFByb3BlcnRpZXMpOgorICAgICAgICAoV2ViQ29yZSk6
CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0Lmg6CisgICAgICAgIChJbmplY3Rl
ZFNjcmlwdCk6CisgICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGw6Cisg
ICAgICAgICogaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291cmNlLmpzOgorICAgICAgICAoLik6
CisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3Rvci5qc29uOgorICAgICAgICAqIGluc3BlY3Rv
ci9JbnNwZWN0b3JSdW50aW1lQWdlbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9y
UnVudGltZUFnZW50OjpnZXRQcm9wZXJ0aWVzKToKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVj
dG9yUnVudGltZUFnZW50Lmg6CisgICAgICAgIChJbnNwZWN0b3JSdW50aW1lQWdlbnQpOgorCiAy
MDEyLTEwLTAzICBLZWlzaGkgSGF0dG9yaSAgPGtlaXNoaUB3ZWJraXQub3JnPgogCiAgICAgICAg
IEltcGxlbWVudCBEYXRhTGlzdCBVSSBmb3IgaW5wdXQgdHlwZSB0aW1lIG9uIGNocm9taXVtCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0SG9z
dEN1c3RvbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0luamVjdGVkU2NyaXB0
SG9zdEN1c3RvbS5jcHAKaW5kZXggOWVmZWQ0NmJmODZmYTY4OTViNGRiM2U2YTBlYjk1NjQ1NTBk
NTNkYy4uZmU2NzNmNWMzYWUyZTJhZWI1ZjUyMTU0ZTY2Y2I2ZjlkM2UxNTg1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20u
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSW5qZWN0ZWRTY3JpcHRIb3N0
Q3VzdG9tLmNwcApAQCAtMTg5LDYgKzE4OSwxMiBAQCBKU1ZhbHVlIEpTSW5qZWN0ZWRTY3JpcHRI
b3N0OjpmdW5jdGlvbkRldGFpbHMoRXhlY1N0YXRlKiBleGVjKQogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKK0pTVmFsdWUgSlNJbmplY3RlZFNjcmlwdEhvc3Q6OmdldEludGVybmFsUHJvcGVydGll
cyhFeGVjU3RhdGUqKQoreworICAgIC8vIEZJWE1FOiBpbXBsZW1lbnQgdGhpcy4gaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0NTMzCisgICAgcmV0dXJuIGpzVW5kZWZp
bmVkKCk7Cit9CisKIHN0YXRpYyBKU0FycmF5KiBnZXRKU0xpc3RlbmVyRnVuY3Rpb25zKEV4ZWNT
dGF0ZSogZXhlYywgRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBFdmVudExpc3RlbmVySW5mbyYg
bGlzdGVuZXJJbmZvKQogewogICAgIEpTQXJyYXkqIHJlc3VsdCA9IGNvbnN0cnVjdEVtcHR5QXJy
YXkoZXhlYyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9EZWJ1Z2dl
clNjcmlwdC5qcyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L0RlYnVnZ2VyU2NyaXB0Lmpz
CmluZGV4IDkxNGI2ZjI2MjQ3NGU2ODIxYzc5NmMzNjBjNzExYzBjNjljYjYyNzQuLjYyY2NiNzM2
YjVkNjZjZGRhMDQxYzBlODlhNGViMTQ4OTJkNTNhYmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3Y4L0RlYnVnZ2VyU2NyaXB0LmpzCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3Y4L0RlYnVnZ2VyU2NyaXB0LmpzCkBAIC03OSw2ICs3OSwyMCBAQCBEZWJ1Z2dlclNj
cmlwdC5nZXRGdW5jdGlvblNjb3BlcyA9IGZ1bmN0aW9uKGZ1bikKICAgICByZXR1cm4gcmVzdWx0
OwogfQogCitEZWJ1Z2dlclNjcmlwdC5nZXRJbnRlcm5hbFByb3BlcnRpZXMgPSBmdW5jdGlvbih2
YWx1ZSkKK3sKKyAgICB2YXIgcHJvcGVydGllcyA9IE9iamVjdE1pcnJvci5HZXRJbnRlcm5hbFBy
b3BlcnRpZXModmFsdWUpOworICAgIHZhciByZXN1bHQgPSBbXTsKKyAgICBmb3IgKHZhciBpID0g
MDsgaSA8IHByb3BlcnRpZXMubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgdmFyIG1pcnJvciA9IHBy
b3BlcnRpZXNbaV07CisgICAgICAgIHJlc3VsdC5wdXNoKHsKKyAgICAgICAgICAgIG5hbWU6IG1p
cnJvci5uYW1lKCksCisgICAgICAgICAgICB2YWx1ZTogbWlycm9yLnZhbHVlKCkudmFsdWUoKQor
ICAgICAgICB9KTsgCisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKIERlYnVnZ2VyU2Ny
aXB0LmdldFNjcmlwdHMgPSBmdW5jdGlvbihjb250ZXh0RGF0YSkKIHsKICAgICB2YXIgcmVzdWx0
ID0gW107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1
Z1NlcnZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZl
ci5jcHAKaW5kZXggZWYxNjkxZWVjMjNjMmYzMzEzMTFlNjI3MzFmZWEzMzEzNzM2Mjg5NC4uZWMw
YzY4ODcxNGIwNmZhYzMxNmI1ZTdmMTI3NjZhZjQwMzdmMmM1MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3Y4L1NjcmlwdERlYnVnU2VydmVyLmNwcApAQCAtNDEyLDYgKzQxMiwx
NiBAQCB2ODo6TG9jYWw8djg6OlZhbHVlPiBTY3JpcHREZWJ1Z1NlcnZlcjo6ZnVuY3Rpb25TY29w
ZXModjg6OkhhbmRsZTx2ODo6RnVuY3Rpb24+CiAgICAgcmV0dXJuIGNhbGxEZWJ1Z2dlck1ldGhv
ZCgiZ2V0RnVuY3Rpb25TY29wZXMiLCAxLCBhcmd2KTsKIH0KIAordjg6OkxvY2FsPHY4OjpWYWx1
ZT4gU2NyaXB0RGVidWdTZXJ2ZXI6OmdldEludGVybmFsUHJvcGVydGllcyh2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+JiBvYmplY3QpCit7CisgICAgaWYgKG1fZGVidWdnZXJTY3JpcHQuZ2V0KCkuSXNF
bXB0eSgpKQorICAgICAgICByZXR1cm4gKnY4OjpVbmRlZmluZWQoKTsKKworICAgIHY4OjpIYW5k
bGU8djg6OlZhbHVlPiBhcmd2W10gPSB7IG9iamVjdCB9OworICAgIHJldHVybiBjYWxsRGVidWdn
ZXJNZXRob2QoImdldEludGVybmFsUHJvcGVydGllcyIsIDEsIGFyZ3YpOworfQorCisKIGJvb2wg
U2NyaXB0RGVidWdTZXJ2ZXI6OmlzUGF1c2VkKCkKIHsKICAgICByZXR1cm4gIW1fZXhlY3V0aW9u
U3RhdGUuZ2V0KCkuSXNFbXB0eSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L1Nj
cmlwdERlYnVnU2VydmVyLmgKaW5kZXggMWI5NWY2ZmE5MTg4NTU5NWVmNjdlNmU2ODE4MWIyY2Jk
ODkzYTQ5Ny4uNWJjNzM5MjMxZDFkOGZmODJhYTdhZTA0ZDBmZGFkMjg4MDc0YmE5ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvdjgvU2NyaXB0RGVidWdTZXJ2ZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy92OC9TY3JpcHREZWJ1Z1NlcnZlci5oCkBAIC05Nyw2
ICs5Nyw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzUGF1c2VkKCk7CiAKICAgICB2ODo6TG9jYWw8
djg6OlZhbHVlPiBmdW5jdGlvblNjb3Blcyh2ODo6SGFuZGxlPHY4OjpGdW5jdGlvbj4pOworICAg
IHY4OjpMb2NhbDx2ODo6VmFsdWU+IGdldEludGVybmFsUHJvcGVydGllcyh2ODo6SGFuZGxlPHY4
OjpPYmplY3Q+Jik7CiAKICAgICB2aXJ0dWFsIHZvaWQgY29tcGlsZVNjcmlwdChTY3JpcHRTdGF0
ZSosIGNvbnN0IFN0cmluZyYgZXhwcmVzc2lvbiwgY29uc3QgU3RyaW5nJiBzb3VyY2VVUkwsIFN0
cmluZyogc2NyaXB0SWQsIFN0cmluZyogZXhjZXB0aW9uTWVzc2FnZSk7CiAgICAgdmlydHVhbCB2
b2lkIGNsZWFyQ29tcGlsZWRTY3JpcHRzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwIGIvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvdjgvY3VzdG9tL1Y4SW5qZWN0ZWRTY3JpcHRIb3N0Q3VzdG9tLmNw
cAppbmRleCBkZjlkMTQ2NTc3OGU2NTEwNDE0Y2NkMDBhNTc3MGNjNDI0ZmIwYzNmLi5mNWM2YzVj
OWQ1ZDhlMzIwNGFjMGQ3ODRlYTZjYTRiOWI1OTI2M2I1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy92OC9jdXN0b20vVjhJbmplY3RlZFNjcmlwdEhvc3RDdXN0b20uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Y4L2N1c3RvbS9WOEluamVjdGVkU2NyaXB0SG9z
dEN1c3RvbS5jcHAKQEAgLTE5Miw2ICsxOTIsMjEgQEAgdjg6OkhhbmRsZTx2ODo6VmFsdWU+IFY4
SW5qZWN0ZWRTY3JpcHRIb3N0OjpmdW5jdGlvbkRldGFpbHNDYWxsYmFjayhjb25zdCB2ODo6QXIK
ICAgICByZXR1cm4gcmVzdWx0OwogfQogCit2ODo6SGFuZGxlPHY4OjpWYWx1ZT4gVjhJbmplY3Rl
ZFNjcmlwdEhvc3Q6OmdldEludGVybmFsUHJvcGVydGllc0NhbGxiYWNrKGNvbnN0IHY4OjpBcmd1
bWVudHMmIGFyZ3MpCit7CisgICAgSU5DX1NUQVRTKCJJbmplY3RlZFNjcmlwdEhvc3QuZ2V0SW50
ZXJuYWxQcm9wZXJ0aWVzKCkiKTsKKyAgICBpZiAoYXJncy5MZW5ndGgoKSA8IDEpCisgICAgICAg
IHJldHVybiB2ODo6VW5kZWZpbmVkKCk7CisKKyAgICB2ODo6SGFuZGxlU2NvcGUgaGFuZGxlU2Nv
cGU7CisKKyAgICB2ODo6SGFuZGxlPHY4OjpPYmplY3Q+IG9iamVjdCA9IHY4OjpIYW5kbGU8djg6
Ok9iamVjdD46OkNhc3QoYXJnc1swXSk7CisKKyAgICBJbmplY3RlZFNjcmlwdEhvc3QqIGhvc3Qg
PSBWOEluamVjdGVkU2NyaXB0SG9zdDo6dG9OYXRpdmUoYXJncy5Ib2xkZXIoKSk7CisgICAgU2Ny
aXB0RGVidWdTZXJ2ZXImIGRlYnVnU2VydmVyID0gaG9zdC0+c2NyaXB0RGVidWdTZXJ2ZXIoKTsK
KyAgICByZXR1cm4gZGVidWdTZXJ2ZXIuZ2V0SW50ZXJuYWxQcm9wZXJ0aWVzKG9iamVjdCk7Cit9
CisKIHN0YXRpYyB2ODo6SGFuZGxlPHY4OjpBcnJheT4gZ2V0SlNMaXN0ZW5lckZ1bmN0aW9ucyhE
b2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IEV2ZW50TGlzdGVuZXJJbmZvJiBsaXN0ZW5lckluZm8p
CiB7CiAgICAgdjg6OkxvY2FsPHY4OjpBcnJheT4gcmVzdWx0ID0gdjg6OkFycmF5OjpOZXcoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9Db2RlR2VuZXJhdG9ySW5zcGVj
dG9yLnB5IGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3Iu
cHkKaW5kZXggNmY0ZDFmNzAxMGZiNzE0YWE0YWQzMjdiOTQwNWQ3MjE4MmEzZDY1My4uMzFlMTFi
OGU1ZjdhMjkzNjdhYmNlYWFhNGQ0ZmI2YWM5Zjk3MjRjMCAxMDA3NTUKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0NvZGVHZW5lcmF0b3JJbnNwZWN0b3IucHkKQEAgLTU2LDcgKzU2LDcg
QEAgVFlQRV9OQU1FX0ZJWF9NQVAgPSB7CiB9CiAKIAotVFlQRVNfV0lUSF9SVU5USU1FX0NBU1Rf
U0VUID0gZnJvemVuc2V0KFsiUnVudGltZS5SZW1vdGVPYmplY3QiLCAiUnVudGltZS5Qcm9wZXJ0
eURlc2NyaXB0b3IiLAorVFlQRVNfV0lUSF9SVU5USU1FX0NBU1RfU0VUID0gZnJvemVuc2V0KFsi
UnVudGltZS5SZW1vdGVPYmplY3QiLCAiUnVudGltZS5Qcm9wZXJ0eURlc2NyaXB0b3IiLCAiUnVu
dGltZS5JbnRlcm5hbFByb3BlcnR5RGVzY3JpcHRvciIsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJEZWJ1Z2dlci5GdW5jdGlvbkRldGFpbHMiLCAiRGVidWdnZXIu
Q2FsbEZyYW1lIiwgIkNhbnZhcy5UcmFjZUxvZyIsCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICMgVGhpcyBzaG91bGQgYmUgYSB0ZW1wb3JhcnkgaGFjay4gVGltZWxp
bmVFdmVudCBzaG91bGQgYmUgY3JlYXRlZCB2aWEgZ2VuZXJhdGVkIEMrKyBBUEkuCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJUaW1lbGluZS5UaW1lbGluZUV2ZW50
Il0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcAppbmRleCA2
YTQ0Y2E3YjU5NmM0MDgzYmQ4YTEwMDhlZTllNjQ3NzlhMGQ2ZDFkLi42N2RkMzllOTA3OWJmN2Yx
MzA5ZDQyNDZhZjQ2YjhkM2I3MTQ2YzdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNw
ZWN0b3IvSW5qZWN0ZWRTY3JpcHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9J
bmplY3RlZFNjcmlwdC5jcHAKQEAgLTQ1LDYgKzQ1LDcgQEAKIHVzaW5nIFdlYkNvcmU6OlR5cGVC
dWlsZGVyOjpBcnJheTsKIHVzaW5nIFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6Q2Fs
bEZyYW1lOwogdXNpbmcgV2ViQ29yZTo6VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlByb3BlcnR5RGVz
Y3JpcHRvcjsKK3VzaW5nIFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpSdW50aW1lOjpJbnRlcm5hbFBy
b3BlcnR5RGVzY3JpcHRvcjsKIHVzaW5nIFdlYkNvcmU6OlR5cGVCdWlsZGVyOjpEZWJ1Z2dlcjo6
RnVuY3Rpb25EZXRhaWxzOwogdXNpbmcgV2ViQ29yZTo6VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJl
bW90ZU9iamVjdDsKIApAQCAtMTQxLDYgKzE0MiwyMiBAQCB2b2lkIEluamVjdGVkU2NyaXB0Ojpn
ZXRQcm9wZXJ0aWVzKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBvYmpl
YwogICAgICpwcm9wZXJ0aWVzID0gQXJyYXk8UHJvcGVydHlEZXNjcmlwdG9yPjo6cnVudGltZUNh
c3QocmVzdWx0KTsKIH0KIAordm9pZCBJbmplY3RlZFNjcmlwdDo6Z2V0SW50ZXJuYWxQcm9wZXJ0
aWVzKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgUmVm
UHRyPEFycmF5PEludGVybmFsUHJvcGVydHlEZXNjcmlwdG9yPiA+KiBwcm9wZXJ0aWVzKQorewor
ICAgIFNjcmlwdEZ1bmN0aW9uQ2FsbCBmdW5jdGlvbihpbmplY3RlZFNjcmlwdE9iamVjdCgpLCAi
Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzIik7CisgICAgZnVuY3Rpb24uYXBwZW5kQXJndW1lbnQob2Jq
ZWN0SWQpOworCisgICAgUmVmUHRyPEluc3BlY3RvclZhbHVlPiByZXN1bHQ7CisgICAgbWFrZUNh
bGwoZnVuY3Rpb24sICZyZXN1bHQpOworICAgIGlmICghcmVzdWx0IHx8IHJlc3VsdC0+dHlwZSgp
ICE9IEluc3BlY3RvclZhbHVlOjpUeXBlQXJyYXkpIHsKKyAgICAgICAgKmVycm9yU3RyaW5nID0g
IkludGVybmFsIGVycm9yIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBSZWZQdHI8QXJy
YXk8SW50ZXJuYWxQcm9wZXJ0eURlc2NyaXB0b3I+ID4gYXJyYXkgPSBBcnJheTxJbnRlcm5hbFBy
b3BlcnR5RGVzY3JpcHRvcj46OnJ1bnRpbWVDYXN0KHJlc3VsdCk7CisgICAgaWYgKGFycmF5LT5s
ZW5ndGgoKSA+IDApCisgICAgICAgICpwcm9wZXJ0aWVzID0gYXJyYXk7Cit9CisKIE5vZGUqIElu
amVjdGVkU2NyaXB0Ojpub2RlRm9yT2JqZWN0SWQoY29uc3QgU3RyaW5nJiBvYmplY3RJZCkKIHsK
ICAgICBpZiAoaGFzTm9WYWx1ZSgpIHx8ICFjYW5BY2Nlc3NJbnNwZWN0ZWRXaW5kb3coKSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5oIGIvU291
cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmgKaW5kZXggNDQyNzQyNzhkOWQ5
YTBlODdmOGJhY2FlMDMxM2QxYmVhNTc2NWY4Mi4uOGE2ZjMzYjE2ZTA5MzRlMGMxMWQ5MzQ1Y2Qz
YzU2NDNjNzkwZjVmYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVj
dGVkU2NyaXB0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0
LmgKQEAgLTc5LDYgKzc5LDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVzdGFydEZyYW1lKEVycm9y
U3RyaW5nKiwgY29uc3QgU2NyaXB0VmFsdWUmIGNhbGxGcmFtZXMsIGNvbnN0IFN0cmluZyYgY2Fs
bEZyYW1lSWQsIFJlZlB0cjxJbnNwZWN0b3JPYmplY3Q+KiByZXN1bHQpOwogICAgIHZvaWQgZ2V0
RnVuY3Rpb25EZXRhaWxzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBmdW5jdGlvbklkLCBS
ZWZQdHI8VHlwZUJ1aWxkZXI6OkRlYnVnZ2VyOjpGdW5jdGlvbkRldGFpbHM+KiByZXN1bHQpOwog
ICAgIHZvaWQgZ2V0UHJvcGVydGllcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0
SWQsIGJvb2wgb3duUHJvcGVydGllcywgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVp
bGRlcjo6UnVudGltZTo6UHJvcGVydHlEZXNjcmlwdG9yPiA+KiByZXN1bHQpOworICAgIHZvaWQg
Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RJ
ZCwgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxUeXBlQnVpbGRlcjo6UnVudGltZTo6SW50ZXJu
YWxQcm9wZXJ0eURlc2NyaXB0b3I+ID4qIHJlc3VsdCk7CiAgICAgTm9kZSogbm9kZUZvck9iamVj
dElkKGNvbnN0IFN0cmluZyYgb2JqZWN0SWQpOwogICAgIHZvaWQgcmVsZWFzZU9iamVjdChjb25z
dCBTdHJpbmcmIG9iamVjdElkKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luamVjdGVkU2NyaXB0SG9zdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHRIb3N0LmlkbAppbmRleCBkMTQ0ZGQwOWE0YWViMjZkMGY3OWYzOTM2YjE0M2Vm
YzMwZDZlOTdmLi5mY2NiMjk2YmNkMGViNzc5MzAzYmMwYjNkOWYzMTBiOWE0NWFhNWM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmlkbApAQCAt
NDMsNiArNDMsNyBAQCBtb2R1bGUgY29yZSB7CiAgICAgICAgIFtDdXN0b21dIGJvb2xlYW4gaXNI
VE1MQWxsQ29sbGVjdGlvbihpbiBET01PYmplY3Qgb2JqZWN0KTsKICAgICAgICAgW0N1c3RvbV0g
RE9NU3RyaW5nIHR5cGUoaW4gRE9NT2JqZWN0IG9iamVjdCk7CiAgICAgICAgIFtDdXN0b21dIERP
TU9iamVjdCBmdW5jdGlvbkRldGFpbHMoaW4gRE9NT2JqZWN0IG9iamVjdCk7CisgICAgICAgIFtD
dXN0b21dIEFycmF5IGdldEludGVybmFsUHJvcGVydGllcyhpbiBET01PYmplY3Qgb2JqZWN0KTsK
ICAgICAgICAgW0N1c3RvbV0gQXJyYXkgZ2V0RXZlbnRMaXN0ZW5lcnMoaW4gTm9kZSBub2RlKTsK
IAogICAgICAgICBbQ3VzdG9tXSBET01TdHJpbmcgZGF0YWJhc2VJZChpbiBET01PYmplY3QgZGF0
YWJhc2UpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2Ny
aXB0U291cmNlLmpzIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0U291
cmNlLmpzCmluZGV4IGFjYjU2OGY3ZWZlMTE4NjVjOTUzNGQ1MzYwYzM5MGJmMTYzY2QzMzEuLjQ3
NWNjOGYzYzNmMGJlZGQ0ZTBlM2VlMTZjMzNiMzMxMGU1OTMzN2MgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbmplY3RlZFNjcmlwdFNvdXJjZS5qcworKysgYi9Tb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRTb3VyY2UuanMKQEAgLTIzNCw3ICsyMzQs
MzIgQEAgSW5qZWN0ZWRTY3JpcHQucHJvdG90eXBlID0gewogICAgICAgICAgICAgICAgIGRlc2Ny
aXB0b3IuY29uZmlndXJhYmxlID0gZmFsc2U7CiAgICAgICAgICAgICBpZiAoISgiZW51bWVyYWJs
ZSIgaW4gZGVzY3JpcHRvcikpCiAgICAgICAgICAgICAgICAgZGVzY3JpcHRvci5lbnVtZXJhYmxl
ID0gZmFsc2U7Ci0gICAgICAgICAgICAKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gZGVzY3Jp
cHRvcnM7CisgICAgfSwKKworICAgIC8qKgorICAgICAqIEBwYXJhbSB7c3RyaW5nfSBvYmplY3RJ
ZAorICAgICAqIEByZXR1cm4ge0FycmF5LjxPYmplY3Q+fGJvb2xlYW59CisgICAgICovCisgICAg
Z2V0SW50ZXJuYWxQcm9wZXJ0aWVzOiBmdW5jdGlvbihvYmplY3RJZCwgb3duUHJvcGVydGllcykK
KyAgICB7CisgICAgICAgIHZhciBwYXJzZWRPYmplY3RJZCA9IHRoaXMuX3BhcnNlT2JqZWN0SWQo
b2JqZWN0SWQpOworICAgICAgICB2YXIgb2JqZWN0ID0gdGhpcy5fb2JqZWN0Rm9ySWQocGFyc2Vk
T2JqZWN0SWQpOworICAgICAgICB2YXIgb2JqZWN0R3JvdXBOYW1lID0gdGhpcy5faWRUb09iamVj
dEdyb3VwTmFtZVtwYXJzZWRPYmplY3RJZC5pZF07CisgICAgICAgIGlmICghdGhpcy5faXNEZWZp
bmVkKG9iamVjdCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIHZhciBkZXNj
cmlwdG9ycyA9IFtdOworICAgICAgICB2YXIgaW50ZXJuYWxQcm9wZXJ0aWVzID0gSW5qZWN0ZWRT
Y3JpcHRIb3N0LmdldEludGVybmFsUHJvcGVydGllcyhvYmplY3QpOworICAgICAgICBpZiAoaW50
ZXJuYWxQcm9wZXJ0aWVzKSB7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGludGVy
bmFsUHJvcGVydGllcy5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHZhciBwcm9wZXJ0
eSA9IGludGVybmFsUHJvcGVydGllc1tpXTsKKyAgICAgICAgICAgICAgICB2YXIgZGVzY3JpcHRv
ciA9IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogcHJvcGVydHkubmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgdmFsdWU6IHRoaXMuX3dyYXBPYmplY3QocHJvcGVydHkudmFsdWUsIG9iamVj
dEdyb3VwTmFtZSkKKyAgICAgICAgICAgICAgICB9OworICAgICAgICAgICAgICAgIGRlc2NyaXB0
b3JzLnB1c2goZGVzY3JpcHRvcik7CisgICAgICAgICAgICB9IAogICAgICAgICB9CiAgICAgICAg
IHJldHVybiBkZXNjcmlwdG9yczsKICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
aW5zcGVjdG9yL0luc3BlY3Rvci5qc29uIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3Rvci5qc29uCmluZGV4IDAxYTNlMmE5MWI0NDI1YzA2MDBmOTFlZDg3NDEwYmIxZGRjMTU4ZTAu
LjEzNDVlZmEzMTA1Y2YzOGFjNWQyYjc2YTU4YjEzNWEwNjFjZDFjMTIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3IuanNvbgorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9pbnNwZWN0b3IvSW5zcGVjdG9yLmpzb24KQEAgLTQ5OCw2ICs0OTgsMTUgQEAKICAgICAgICAg
ICAgICAgICBdCiAgICAgICAgICAgICB9LAogICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
ICJpZCI6ICJJbnRlcm5hbFByb3BlcnR5RGVzY3JpcHRvciIsCisgICAgICAgICAgICAgICAgInR5
cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiT2JqZWN0IGlu
dGVybmFsIHByb3BlcnR5IGRlc2NyaXB0b3IuIFRoaXMgcHJvcGVydHkgaXNuJ3Qgbm9ybWFsbHkg
dmlzaWJsZSBpbiBKYXZhU2NyaXB0IGNvZGUuIiwKKyAgICAgICAgICAgICAgICAicHJvcGVydGll
cyI6IFsKKyAgICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJuYW1lIiwgInR5cGUiOiAic3Ry
aW5nIiwgImRlc2NyaXB0aW9uIjogIkNvbnZlbnRpb25hbCBwcm9wZXJ0eSBuYW1lLiIgfSwKKyAg
ICAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ2YWx1ZSIsICIkcmVmIjogIlJlbW90ZU9iamVj
dCIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUgdmFsdWUgYXNzb2NpYXRl
ZCB3aXRoIHRoZSBwcm9wZXJ0eS4iIH0KKyAgICAgICAgICAgICAgICBdCisgICAgICAgICAgICB9
LAorICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICJpZCI6ICJDYWxsQXJndW1lbnQiLAog
ICAgICAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCiAgICAgICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIlJlcHJlc2VudHMgZnVuY3Rpb24gY2FsbCBhcmd1bWVudC4gRWl0aGVyIHJlbW90
ZSBvYmplY3QgaWQgPGNvZGU+b2JqZWN0SWQ8L2NvZGU+IG9yIHByaW1pdGl2ZSA8Y29kZT52YWx1
ZTwvY29kZT4gb3IgbmVpdGhlciBvZiAoZm9yIHVuZGVmaW5lZCkgdGhlbSBzaG91bGQgYmUgc3Bl
Y2lmaWVkLiIsCkBAIC01NjUsNyArNTc0LDggQEAKICAgICAgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJvd25Qcm9wZXJ0aWVzIiwgIm9wdGlvbmFsIjogdHJ1ZSwgInR5cGUiOiAiYm9vbGVhbiIs
ICJkZXNjcmlwdGlvbiI6ICJJZiB0cnVlLCByZXR1cm5zIHByb3BlcnRpZXMgYmVsb25naW5nIG9u
bHkgdG8gdGhlIGVsZW1lbnQgaXRzZWxmLCBub3QgdG8gaXRzIHByb3RvdHlwZSBjaGFpbi4iIH0K
ICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc3VsdCIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1z
IjogeyAiJHJlZiI6ICJQcm9wZXJ0eURlc2NyaXB0b3IifSwgImRlc2NyaXB0aW9uIjogIk9iamVj
dCBwcm9wZXJ0aWVzLiIgfQorICAgICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc3VsdCIs
ICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJQcm9wZXJ0eURlc2NyaXB0b3Ii
fSwgImRlc2NyaXB0aW9uIjogIk9iamVjdCBwcm9wZXJ0aWVzLiIgfSwKKyAgICAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJpbnRlcm5hbFByb3BlcnRpZXMiLCAib3B0aW9uYWwiOiB0cnVlLCAi
dHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiSW50ZXJuYWxQcm9wZXJ0eURlc2Ny
aXB0b3IifSwgImRlc2NyaXB0aW9uIjogIkludGVybmFsIG9iamVjdCBwcm9wZXJ0aWVzLiIgfQog
ICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJldHVy
bnMgcHJvcGVydGllcyBvZiBhIGdpdmVuIG9iamVjdC4gT2JqZWN0IGdyb3VwIG9mIHRoZSByZXN1
bHQgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHRhcmdldCBvYmplY3QuIgogICAgICAgICAgICAgfSwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JSdW50aW1lQWdl
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5j
cHAKaW5kZXggYTNkZmRkZWM5MGE1OWY1MTU2ZWYyZGRkNDEzNWM4NWY4OTQ4N2MxZi4uODBiZTUw
YzJhOTI2ZDllMTVlMmMwZjVlZjg3NmY0NTQ2ZTdhMzQ0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvclJ1bnRpbWVBZ2VudC5jcHAKQEAgLTEzNiw3ICsxMzYs
NyBAQCB2b2lkIEluc3BlY3RvclJ1bnRpbWVBZ2VudDo6Y2FsbEZ1bmN0aW9uT24oRXJyb3JTdHJp
bmcqIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbgogICAgIH0KIH0KIAotdm9pZCBJbnNwZWN0b3JS
dW50aW1lQWdlbnQ6OmdldFByb3BlcnRpZXMoRXJyb3JTdHJpbmcqIGVycm9yU3RyaW5nLCBjb25z
dCBTdHJpbmcmIG9iamVjdElkLCBjb25zdCBib29sKiBjb25zdCBvd25Qcm9wZXJ0aWVzLCBSZWZQ
dHI8VHlwZUJ1aWxkZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpSdW50aW1lOjpQcm9wZXJ0eURlc2Ny
aXB0b3I+ID4mIHJlc3VsdCkKK3ZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50OjpnZXRQcm9wZXJ0
aWVzKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBvYmplY3RJZCwgY29u
c3QgYm9vbCogY29uc3Qgb3duUHJvcGVydGllcywgUmVmUHRyPFR5cGVCdWlsZGVyOjpBcnJheTxU
eXBlQnVpbGRlcjo6UnVudGltZTo6UHJvcGVydHlEZXNjcmlwdG9yPiA+JiByZXN1bHQsIFJlZlB0
cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OkludGVybmFsUHJvcGVy
dHlEZXNjcmlwdG9yPiA+JiBpbnRlcm5hbFByb3BlcnRpZXMpCiB7CiAgICAgSW5qZWN0ZWRTY3Jp
cHQgaW5qZWN0ZWRTY3JpcHQgPSBtX2luamVjdGVkU2NyaXB0TWFuYWdlci0+aW5qZWN0ZWRTY3Jp
cHRGb3JPYmplY3RJZChvYmplY3RJZCk7CiAgICAgaWYgKGluamVjdGVkU2NyaXB0Lmhhc05vVmFs
dWUoKSkgewpAQCAtMTUwLDYgKzE1MCw3IEBAIHZvaWQgSW5zcGVjdG9yUnVudGltZUFnZW50Ojpn
ZXRQcm9wZXJ0aWVzKEVycm9yU3RyaW5nKiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nCiAgICAg
bXV0ZUNvbnNvbGUoKTsKIAogICAgIGluamVjdGVkU2NyaXB0LmdldFByb3BlcnRpZXMoZXJyb3JT
dHJpbmcsIG9iamVjdElkLCBvd25Qcm9wZXJ0aWVzID8gKm93blByb3BlcnRpZXMgOiBmYWxzZSwg
JnJlc3VsdCk7CisgICAgaW5qZWN0ZWRTY3JpcHQuZ2V0SW50ZXJuYWxQcm9wZXJ0aWVzKGVycm9y
U3RyaW5nLCBvYmplY3RJZCwgJmludGVybmFsUHJvcGVydGllcyk7CiAKICAgICB1bm11dGVDb25z
b2xlKCk7CiAjaWYgRU5BQkxFKEpBVkFTQ1JJUFRfREVCVUdHRVIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmggYi9Tb3VyY2UvV2Vi
Q29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yUnVudGltZUFnZW50LmgKaW5kZXggNjZkYmFmZDY1YzJi
OGZiMTQ4NjMwY2UwNWNhNzMyN2Q5ZGI1MzIwMS4uMjllNTdkMjJmNjQxNmNmYzFkMTMzZGZiZjcz
Yzg2NTE5ODc4ZWVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvclJ1bnRpbWVBZ2VudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0
b3JSdW50aW1lQWdlbnQuaApAQCAtNzksNyArNzksNyBAQCBwdWJsaWM6CiAgICAgICAgICAgICAg
ICAgICAgICAgICBSZWZQdHI8VHlwZUJ1aWxkZXI6OlJ1bnRpbWU6OlJlbW90ZU9iamVjdD4mIHJl
c3VsdCwKICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGVCdWlsZGVyOjpPcHRPdXRwdXQ8Ym9v
bD4qIHdhc1Rocm93bik7CiAgICAgdmlydHVhbCB2b2lkIHJlbGVhc2VPYmplY3QoRXJyb3JTdHJp
bmcqLCBjb25zdCBTdHJpbmcmIG9iamVjdElkKTsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0UHJvcGVy
dGllcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGNvbnN0IGJvb2wqIG93
blByb3BlcnRpZXMsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6OlJ1bnRp
bWU6OlByb3BlcnR5RGVzY3JpcHRvcj4gPiYgcmVzdWx0KTsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0
UHJvcGVydGllcyhFcnJvclN0cmluZyosIGNvbnN0IFN0cmluZyYgb2JqZWN0SWQsIGNvbnN0IGJv
b2wqIG93blByb3BlcnRpZXMsIFJlZlB0cjxUeXBlQnVpbGRlcjo6QXJyYXk8VHlwZUJ1aWxkZXI6
OlJ1bnRpbWU6OlByb3BlcnR5RGVzY3JpcHRvcj4gPiYgcmVzdWx0LCBSZWZQdHI8VHlwZUJ1aWxk
ZXI6OkFycmF5PFR5cGVCdWlsZGVyOjpSdW50aW1lOjpJbnRlcm5hbFByb3BlcnR5RGVzY3JpcHRv
cj4gPiYgaW50ZXJuYWxQcm9wZXJ0aWVzKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVsZWFzZU9iamVj
dEdyb3VwKEVycm9yU3RyaW5nKiwgY29uc3QgU3RyaW5nJiBvYmplY3RHcm91cCk7CiAgICAgdmly
dHVhbCB2b2lkIHJ1bihFcnJvclN0cmluZyopOwogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNjQ4MzI5ZmM2ZWIxN2VjMjBh
ZTE4ZjdkZGMyMDJiOTUzZDQ2YTk0Yy4uZjRkNTZjNmYzOGNkNTMwZGE0MTg2N2E0NWZlMWIzYWRk
NzgzNjRkYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDEyLTEwLTA0ICBQZXRlciBSeWJpbiAg
PHBldGVyLnJ5YmluQGdtYWlsLmNvbT4KKworICAgICAgICBXZWIgSW5zcGVjdG9yOiBleHBvc2Ug
b2JqZWN0IGludGVybmFsIHByb3BlcnRpZXMgc3VjaCBhcyBQcmltaXRpdmVWYWx1ZSBvciBCb3Vu
ZFRoaXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk0
Mzk3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSB0
ZXN0IGlzIGFkZGVkIHRvIHN1cHBvcnQgbmV3IGZlYXR1cmUuIE9sZCB0ZXN0IGlzIHVwZGF0ZWQg
YmVjYXVzZSBsaW5lIG51bWJlciBjaGFuZ2VkLgorCisgICAgICAgICogaW5zcGVjdG9yLXByb3Rv
Y29sL3J1bnRpbWUtZ2V0UHJvcGVydGllcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGluc3BlY3Rvci1wcm90b2NvbC9ydW50aW1lLWdldFByb3BlcnRpZXMuaHRtbDogQWRkZWQuCisg
ICAgICAgICogaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFuZC1saW5lLWFwaS1leHBlY3RlZC50eHQ6
CisKIDIwMTItMTAtMDMgIEFuZHJleSBLb3N5YWtvdiAgPGNhc2VxQGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBVbnJldmlld2VkLiBTa2lwIG1lZGlhL2V2ZW50LXF1ZXVlLWNyYXNoLmh0bWwgc28g
dGhhdCBpdHMgY29uc29sZSBtZXNzYWdlIGRvZXMgbm90IGNhdXNlIG5leHQgdGVzdCB0byBmbGFr
ZS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9ydW50aW1lLWdl
dFByb3BlcnRpZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yLXByb3RvY29s
L3J1bnRpbWUtZ2V0UHJvcGVydGllcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDFiNmU1OWQ5
ODQ4ZjVkMjFmOGVlZjU4YmJmODUxZjI0MzhkYTBjNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2luc3BlY3Rvci1wcm90b2NvbC9ydW50aW1lLWdldFByb3BlcnRpZXMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMTYgQEAKK1Byb3BlcnRpZXMgb2YgT2JqZWN0KDUpCisgIF9fcHJvdG9f
XyBvYmplY3QgdW5kZWZpbmVkCisgIGZvbyBzdHJpbmcgY2F0CitQcm9wZXJ0aWVzIG9mIGFycmF5
CisgIF9fcHJvdG9fXyBvYmplY3QgdW5kZWZpbmVkCisgIDAgc3RyaW5nIHJlZAorICAxIHN0cmlu
ZyBncmVlbgorICAyIHN0cmluZyBibHVlCisgIGxlbmd0aCBudW1iZXIgMworUHJvcGVydGllcyBv
ZiBCb3VuZCBmdW5jdGlvbgorICBfX3Byb3RvX18gZnVuY3Rpb24gdW5kZWZpbmVkCisgIGFyZ3Vt
ZW50cworICBjYWxsZXIKKyAgbGVuZ3RoIG51bWJlciAwCisgIG5hbWUgc3RyaW5nIE51bWJlcgor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcnVudGltZS1nZXRQ
cm9wZXJ0aWVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3ItcHJvdG9jb2wvcnVudGltZS1n
ZXRQcm9wZXJ0aWVzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGI2MDdjYjdhNDllMTkwNGJhOGZmODUxOWI1
MzY4MTViZDA2NTNhNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2luc3BlY3Rvci1w
cm90b2NvbC9ydW50aW1lLWdldFByb3BlcnRpZXMuaHRtbApAQCAtMCwwICsxLDE1NSBAQAorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Ii4uL2h0dHAv
dGVzdHMvaW5zcGVjdG9yLXByb3RvY29sL3Jlc291cmNlcy9wcm90b2NvbC10ZXN0LmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIC8vIEEgZ2VuZXJhbC1w
dXJwb3NlIGVuZ2luZSBmb3Igc2VuZGluZyBhIHNlcXVlbmNlIG9mIHByb3RvY29sIGNvbW1hbmRz
LgorICAgIC8vIFRoZSBjbGllbnRzIHByb3ZpZGUgcmVxdWVzdHMgYW5kIHJlc3BvbnNlIGhhbmRs
ZXJzLCB3aGlsZSB0aGUgZW5naW5lIGNhdGNoZXMKKyAgICAvLyBlcnJvcnMgYW5kIG1ha2VzIHN1
cmUgdGhhdCBvbmNlIHRoZXJlJ3Mgbm90aGluZyB0byBkbyBjb21wbGV0ZVRlc3QoKSBpcyBjYWxs
ZWQuCisgICAgLy8gQHBhcmFtIHN0ZXAgaXMgYW4gb2JqZWN0IHdpdGggY29tbWFuZCwgcGFyYW1z
IGFuZCBjYWxsYmFjayBmaWVsZHMgCisgICAgZnVuY3Rpb24gcnVuUmVxdWVzdFNlcmllcyhzdGVw
KSB7CisgICAgICAgIHByb2Nlc3NTdGVwKHN0ZXApOworCisgICAgICAgIGZ1bmN0aW9uIHByb2Nl
c3NTdGVwKHMpIHsKKyAgICAgICAgICAgIHRyeSB7CisgICAgICAgICAgICAgICAgcHJvY2Vzc1N0
ZXBPckZhaWwocyk7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAg
SW5zcGVjdG9yVGVzdC5sb2coZS5zdGFjayk7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVz
dC5jb21wbGV0ZVRlc3QoKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICAKKyAg
ICAgICAgZnVuY3Rpb24gcHJvY2Vzc1N0ZXBPckZhaWwocykgeworICAgICAgICAgICAgaWYgKCFz
KSB7CisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5jb21wbGV0ZVRlc3QoKTsKKyAgICAg
ICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICBpZiAoIXMuY29t
bWFuZCkgeworICAgICAgICAgICAgICAgIC8vIEEgc2ltcGxlIGxvb3BiYWNrIHN0ZXAuCisgICAg
ICAgICAgICAgICAgdmFyIG5leHQgPSBzLmNhbGxiYWNrKCk7CisgICAgICAgICAgICAgICAgcHJv
Y2Vzc1N0ZXAobmV4dCk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQor
CisgICAgICAgICAgICB2YXIgaW5uZXJDYWxsYmFjayA9IGZ1bmN0aW9uKHJlc3BvbnNlKSB7Cisg
ICAgICAgICAgICAgICAgaWYgKCJlcnJvciIgaW4gcmVzcG9uc2UpIHsKKyAgICAgICAgICAgICAg
ICAgICAgSW5zcGVjdG9yVGVzdC5sb2cocmVzcG9uc2UuZXJyb3IubWVzc2FnZSk7CisgICAgICAg
ICAgICAgICAgICAgIEluc3BlY3RvclRlc3QuY29tcGxldGVUZXN0KCk7CisgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgdmFyIG5l
eHQ7CisgICAgICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICAgICAgbmV4dCA9IHMu
Y2FsbGJhY2socmVzcG9uc2UucmVzdWx0KTsKKyAgICAgICAgICAgICAgICB9IGNhdGNoIChlKSB7
CisgICAgICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKGUuc3RhY2spOworICAgICAg
ICAgICAgICAgICAgICBJbnNwZWN0b3JUZXN0LmNvbXBsZXRlVGVzdCgpOworICAgICAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgIHByb2Nl
c3NTdGVwKG5leHQpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5z
ZW5kQ29tbWFuZChzLmNvbW1hbmQsIHMucGFyYW1zLCBpbm5lckNhbGxiYWNrKTsKKyAgICAgICAg
fQorICAgIH0KKyAgICAKKyAgICB2YXIgZmlyc3RTdGVwID0geyBjYWxsYmFjazogY2FsbGJhY2tT
dGFydDUgfTsKKworICAgIHJ1blJlcXVlc3RTZXJpZXMoZmlyc3RTdGVwKTsKKworICAgIC8vICdP
YmplY3Q1JyBzZWN0aW9uIC0tIGNoZWNrIHByb3BlcnRpZXMgb2YgJzUnIHdyYXBwZWQgYXMgb2Jq
ZWN0ICAoaGFzIGFuIGludGVybmFsIHByb3BlcnR5KS4KKworICAgIGZ1bmN0aW9uIGNhbGxiYWNr
U3RhcnQ1KCkgeworICAgICAgICAvLyBDcmVhdGUgYW4gd3JhcHBlciBvYmplY3Qgd2l0aCBhZGRp
dGlvbmFsIHByb3BlcnR5LgorICAgICAgICB2YXIgZXhwcmVzc2lvbiA9ICIoZnVuY3Rpb24oKXt2
YXIgciA9IE9iamVjdCg1KTsgci5mb28gPSAnY2F0JztyZXR1cm4gcjt9KSgpIjsKKyAgICAgICAg
CisgICAgICAgIHJldHVybiB7IGNvbW1hbmQ6ICJSdW50aW1lLmV2YWx1YXRlIiwgcGFyYW1zOiB7
ZXhwcmVzc2lvbjogZXhwcmVzc2lvbn0sIGNhbGxiYWNrOiBjYWxsYmFja0V2YWw1IH07CisgICAg
fQorICAgIGZ1bmN0aW9uIGNhbGxiYWNrRXZhbDUocmVzdWx0KSB7CisgICAgICAgIHZhciBpZCA9
IHJlc3VsdC5yZXN1bHQub2JqZWN0SWQ7CisgICAgICAgIGlmIChpZCA9PT0gdW5kZWZpbmVkKQor
ICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCJvYmplY3RJZCBpcyBleHBlY3RlZCIpOworICAg
ICAgICByZXR1cm4geworICAgICAgICAgICAgY29tbWFuZDogIlJ1bnRpbWUuZ2V0UHJvcGVydGll
cyIsIHBhcmFtczoge29iamVjdElkOiBpZCwgb3duUHJvcGVydGllczogdHJ1ZX0sIGNhbGxiYWNr
OiBjYWxsYmFja1Byb3BlcnRpZXM1CisgICAgICAgIH07CisgICAgfQorICAgIGZ1bmN0aW9uIGNh
bGxiYWNrUHJvcGVydGllczUocmVzdWx0KSB7CisgICAgICAgIGxvZ0dldFByb3BlcnRpZXNSZXN1
bHQoIk9iamVjdCg1KSIsIHJlc3VsdCk7CisgICAgICAgIHJldHVybiB7IGNhbGxiYWNrOiBjYWxs
YmFja1N0YXJ0QXJyYXkgfTsKKyAgICB9CisKKyAgICAKKyAgICAvLyAnQXJyYXknIHNlY3Rpb24g
LS0gY2hlY2sgcHJvcGVydGllcyBvZiBhbiBhcnJheS4KKyAgICAKKyAgICBmdW5jdGlvbiBjYWxs
YmFja1N0YXJ0QXJyYXkoKSB7CisgICAgICAgIHZhciBleHByZXNzaW9uID0gIlsncmVkJywgJ2dy
ZWVuJywgJ2JsdWUnXSI7CisgICAgICAgIHJldHVybiB7IGNvbW1hbmQ6ICJSdW50aW1lLmV2YWx1
YXRlIiwgcGFyYW1zOiB7ZXhwcmVzc2lvbjogZXhwcmVzc2lvbn0sIGNhbGxiYWNrOiBjYWxsYmFj
a0V2YWxBcnJheSB9OworICAgIH0KKyAgICBmdW5jdGlvbiBjYWxsYmFja0V2YWxBcnJheShyZXN1
bHQpIHsKKyAgICAgICAgdmFyIGlkID0gcmVzdWx0LnJlc3VsdC5vYmplY3RJZDsKKyAgICAgICAg
aWYgKGlkID09PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoIm9iamVj
dElkIGlzIGV4cGVjdGVkIik7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAgICBjb21tYW5k
OiAiUnVudGltZS5nZXRQcm9wZXJ0aWVzIiwgcGFyYW1zOiB7b2JqZWN0SWQ6IGlkLCBvd25Qcm9w
ZXJ0aWVzOiB0cnVlfSwgY2FsbGJhY2s6IGNhbGxiYWNrUHJvcGVydGllc0FycmF5CisgICAgICAg
IH07CisgICAgfQorICAgIGZ1bmN0aW9uIGNhbGxiYWNrUHJvcGVydGllc0FycmF5KHJlc3VsdCkg
eworICAgICAgICBsb2dHZXRQcm9wZXJ0aWVzUmVzdWx0KCJhcnJheSIsIHJlc3VsdCk7CisgICAg
ICAgIHJldHVybiB7IGNhbGxiYWNrOiBjYWxsYmFja1N0YXJ0Qm91bmQgfTsKKyAgICB9CisKKyAg
ICAKKyAgICAvLyAnQm91bmQnIHNlY3Rpb24gLS0gY2hlY2sgcHJvcGVydGllcyBvZiBhIGJvdW5k
IGZ1bmN0aW9uIChoYXMgYSBidW5jaCBvZiBpbnRlcm5hbCBwcm9wZXJ0aWVzKS4KKyAgICAKKyAg
ICBmdW5jdGlvbiBjYWxsYmFja1N0YXJ0Qm91bmQoKSB7CisgICAgICAgIHZhciBleHByZXNzaW9u
ID0gIk51bWJlci5iaW5kKHt9LCA1KSI7CisgICAgICAgIHJldHVybiB7IGNvbW1hbmQ6ICJSdW50
aW1lLmV2YWx1YXRlIiwgcGFyYW1zOiB7ZXhwcmVzc2lvbjogZXhwcmVzc2lvbn0sIGNhbGxiYWNr
OiBjYWxsYmFja0V2YWxCb3VuZCB9OworICAgIH0KKyAgICBmdW5jdGlvbiBjYWxsYmFja0V2YWxC
b3VuZChyZXN1bHQpIHsKKyAgICAgICAgdmFyIGlkID0gcmVzdWx0LnJlc3VsdC5vYmplY3RJZDsK
KyAgICAgICAgaWYgKGlkID09PSB1bmRlZmluZWQpCisgICAgICAgICAgICB0aHJvdyBuZXcgRXJy
b3IoIm9iamVjdElkIGlzIGV4cGVjdGVkIik7CisgICAgICAgIHJldHVybiB7CisgICAgICAgICAg
ICBjb21tYW5kOiAiUnVudGltZS5nZXRQcm9wZXJ0aWVzIiwgcGFyYW1zOiB7b2JqZWN0SWQ6IGlk
LCBvd25Qcm9wZXJ0aWVzOiB0cnVlfSwgY2FsbGJhY2s6IGNhbGxiYWNrUHJvcGVydGllc0JvdW5k
CisgICAgICAgIH07CisgICAgfQorICAgIGZ1bmN0aW9uIGNhbGxiYWNrUHJvcGVydGllc0JvdW5k
KHJlc3VsdCkgeworICAgICAgICBsb2dHZXRQcm9wZXJ0aWVzUmVzdWx0KCJCb3VuZCBmdW5jdGlv
biIsIHJlc3VsdCk7CisgICAgICAgIHJldHVybjsgLy8gRW5kIG9mIHRlc3QKKyAgICB9CisgICAg
CisKKyAgICAvLyBBIGhlbHBlciBmdW5jdGlvbiB0aGF0IGR1bXBzIG9iamVjdCBwcm9wZXJ0aWVz
IGFuZCBpbnRlcm5hbCBwcm9wZXJ0aWVzIGluIHNvcnRlZCBvcmRlci4gICAgCisgICAgZnVuY3Rp
b24gbG9nR2V0UHJvcGVydGllc1Jlc3VsdCh0aXRsZSwgcHJvdG9jb2xSZXN1bHQpIHsKKyAgICAg
ICAgSW5zcGVjdG9yVGVzdC5sb2coIlByb3BlcnRpZXMgb2YgIiArIHRpdGxlKTsKKyAgICAgICAg
dmFyIHByb3BlcnR5QXJyYXkgPSBwcm90b2NvbFJlc3VsdC5yZXN1bHQ7CisgICAgICAgIHByb3Bl
cnR5QXJyYXkuc29ydChOYW1lZFRoaW5nQ29tcGFyYXRvcik7CisgICAgICAgIGZvciAodmFyIGkg
PSAwOyBpIDwgcHJvcGVydHlBcnJheS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgdmFyIHAg
PSBwcm9wZXJ0eUFycmF5W2ldOworICAgICAgICAgICAgdmFyIHYgPSBwLnZhbHVlOworICAgICAg
ICAgICAgaWYgKHYpCisgICAgICAgICAgICAgICAgSW5zcGVjdG9yVGVzdC5sb2coIiAgIiArIHAu
bmFtZSArICIgIiArIHYudHlwZSArICIgIiArIHYudmFsdWUpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCIgICIgKyBwLm5hbWUpOworICAgICAg
ICB9CisgICAgICAgIHZhciBpbnRlcm5hbFByb3BlcnR5QXJyYXkgPSBwcm90b2NvbFJlc3VsdC5p
bnRlcm5hbFByb3BlcnRpZXM7CisgICAgICAgIGlmIChpbnRlcm5hbFByb3BlcnR5QXJyYXkpIHsK
KyAgICAgICAgICAgIEluc3BlY3RvclRlc3QubG9nKCJJbnRlcm5hbCBwcm9wZXJ0aWVzIik7Cisg
ICAgICAgICAgICBpbnRlcm5hbFByb3BlcnR5QXJyYXkuc29ydChOYW1lZFRoaW5nQ29tcGFyYXRv
cik7CisgICAgICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGludGVybmFsUHJvcGVydHlBcnJh
eS5sZW5ndGg7IGkrKykgeworICAgICAgICAgICAgICAgIHZhciBwID0gaW50ZXJuYWxQcm9wZXJ0
eUFycmF5W2ldOworICAgICAgICAgICAgICAgIHZhciB2ID0gcC52YWx1ZTsKKyAgICAgICAgICAg
ICAgICBJbnNwZWN0b3JUZXN0LmxvZygiICAiICsgcC5uYW1lICsgIiAiICsgdi50eXBlICsgIiAi
ICsgdi52YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAKKyAgICAgICAgZnVu
Y3Rpb24gTmFtZWRUaGluZ0NvbXBhcmF0b3IobzEsIG8yKSB7CisgICAgICAgICAgICByZXR1cm4g
bzEubmFtZS5sb2NhbGVDb21wYXJlKG8yLm5hbWUpOworICAgICAgICB9CisgICAgfQorfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbkxvYWQ9InJ1blRlc3QoKTsiPgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NvbnNvbGUvY29tbWFuZC1s
aW5lLWFwaS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb21t
YW5kLWxpbmUtYXBpLWV4cGVjdGVkLnR4dAppbmRleCA2MzliMTg2MmFlYWFiZDc4Nzk3MWFkZGRi
MjE5OWRkZDY2ZWQ3OTJiLi42NWJjMTk3OTI4MGYyMDYzOWM0YTQzMzg3YzExMGVkNjRmMjgxMzBj
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb21tYW5kLWxpbmUt
YXBpLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY29uc29sZS9jb21t
YW5kLWxpbmUtYXBpLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLUNPTlNPTEUgTUVTU0FH
RTogbGluZSA5NTk6IFRoZSBjb25zb2xlIGZ1bmN0aW9uICQoKSBoYXMgY2hhbmdlZCBmcm9tICQ9
Z2V0RWxlbWVudEJ5SWQoaWQpIHRvICQ9cXVlcnlTZWxlY3RvcihzZWxlY3RvcikuIFlvdSBtaWdo
dCB0cnkgJCgiIyVzIikKK0NPTlNPTEUgTUVTU0FHRTogbGluZSA5ODQ6IFRoZSBjb25zb2xlIGZ1
bmN0aW9uICQoKSBoYXMgY2hhbmdlZCBmcm9tICQ9Z2V0RWxlbWVudEJ5SWQoaWQpIHRvICQ9cXVl
cnlTZWxlY3RvcihzZWxlY3RvcikuIFlvdSBtaWdodCB0cnkgJCgiIyVzIikKIFRlc3RzIHRoYXQg
Y29tbWFuZCBsaW5lIGFwaSB3b3Jrcy4KIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3ItcHJvdG9jb2wvcnVudGltZS1nZXRQcm9wZXJ0aWVzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2luc3BlY3Rvci1wcm90
b2NvbC9ydW50aW1lLWdldFByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjhiNmMx
YWIzNjA1MzZkOTFkMjA2YmJmMjA3OGJmNzMzNDQ5MGYzMDIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9pbnNwZWN0b3ItcHJvdG9jb2wvcnVudGltZS1n
ZXRQcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDIyIEBACitQcm9wZXJ0aWVzIG9m
IE9iamVjdCg1KQorICBfX3Byb3RvX18gb2JqZWN0IHVuZGVmaW5lZAorICBmb28gc3RyaW5nIGNh
dAorSW50ZXJuYWwgcHJvcGVydGllcworICBbW1ByaW1pdGl2ZVZhbHVlXV0gbnVtYmVyIDUKK1By
b3BlcnRpZXMgb2YgYXJyYXkKKyAgMCBzdHJpbmcgcmVkCisgIDEgc3RyaW5nIGdyZWVuCisgIDIg
c3RyaW5nIGJsdWUKKyAgX19wcm90b19fIG9iamVjdCB1bmRlZmluZWQKKyAgbGVuZ3RoIG51bWJl
ciAzCitQcm9wZXJ0aWVzIG9mIEJvdW5kIGZ1bmN0aW9uCisgIF9fcHJvdG9fXyBmdW5jdGlvbiB1
bmRlZmluZWQKKyAgYXJndW1lbnRzCisgIGNhbGxlcgorICBsZW5ndGggbnVtYmVyIDAKKyAgbmFt
ZSBzdHJpbmcgCitJbnRlcm5hbCBwcm9wZXJ0aWVzCisgIFtbQm91bmRBcmdzXV0gb2JqZWN0IHVu
ZGVmaW5lZAorICBbW0JvdW5kVGhpc11dIG9iamVjdCB1bmRlZmluZWQKKyAgW1tUYXJnZXRGdW5j
dGlvbl1dIGZ1bmN0aW9uIHVuZGVmaW5lZAorCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>