<?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>73594</bug_id>
          
          <creation_ts>2011-12-01 15:09:46 -0800</creation_ts>
          <short_desc>[chromium] Add plumbing for supporting custom MIME types in DataTransfer.</short_desc>
          <delta_ts>2011-12-02 10:53:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Daniel Cheng">dcheng</reporter>
          <assigned_to name="Daniel Cheng">dcheng</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>513171</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-12-01 15:09:46 -0800</bug_when>
    <thetext>[chromium] Add plumbing for supporting custom MIME types in DataTransfer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513178</commentid>
    <comment_count>1</comment_count>
      <attachid>117500</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-12-01 15:14:14 -0800</bug_when>
    <thetext>Created attachment 117500
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513182</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-01 15:16:29 -0800</bug_when>
    <thetext>Attachment 117500 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/edit...&quot; exit_code: 1

ERROR: FAILURES FOR &lt;lucid, x86_64, release, cpu&gt; in LayoutTests/platform/chromium/test_expectations.txt
ERROR: Line:1953 Duplicate or ambiguous expectation. fast/url/file-http-base.html
LayoutTests/platform/chromium/test_expectations.txt:1953:  Duplicate or ambiguous expectation. fast/url/file-http-base.html  [test/expectations] [5]
Total errors found: 1 in 20 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>513184</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-01 15:16:47 -0800</bug_when>
    <thetext>Please wait for approval from fishd@chromium.org before submitting because this patch contains changes to the Chromium public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513208</commentid>
    <comment_count>4</comment_count>
      <attachid>117500</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-12-01 15:45:15 -0800</bug_when>
    <thetext>Comment on attachment 117500
Patch

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

&gt; Source/WebCore/platform/chromium/ChromiumDataObject.cpp:187
&gt; +
&gt;      return String();

I think we still need to set success = false; here.

&gt; Source/WebCore/platform/chromium/ChromiumDataObject.cpp:237
&gt; +    m_customData.set(type, data);
&gt; +    return true;

I see, so setData will always succeed now.

&gt; LayoutTests/platform/chromium/test_expectations.txt:3738
&gt; +// Depends on Chromium follow up change before they will pass.
&gt; +BUG_DCHENG : fast/events/drag-customData.html = FAIL

Maybe just reference BUGCR31037 here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513209</commentid>
    <comment_count>5</comment_count>
      <attachid>117500</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-12-01 15:45:59 -0800</bug_when>
    <thetext>Comment on attachment 117500
Patch

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

&gt;&gt; Source/WebCore/platform/chromium/ChromiumDataObject.cpp:237
&gt;&gt; +    return true;
&gt; 
&gt; I see, so setData will always succeed now.

Actually, should you verify that type is not an empty string?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513214</commentid>
    <comment_count>6</comment_count>
      <attachid>117507</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-12-01 15:55:54 -0800</bug_when>
    <thetext>Created attachment 117507
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513220</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-01 15:59:33 -0800</bug_when>
    <thetext>Attachment 117507 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/edit...&quot; exit_code: 1

ERROR: FAILURES FOR &lt;lucid, x86_64, release, cpu&gt; in LayoutTests/platform/chromium/test_expectations.txt
ERROR: Line:1953 Duplicate or ambiguous expectation. fast/url/file-http-base.html
LayoutTests/platform/chromium/test_expectations.txt:1953:  Duplicate or ambiguous expectation. fast/url/file-http-base.html  [test/expectations] [5]
Total errors found: 1 in 20 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>513226</commentid>
    <comment_count>8</comment_count>
      <attachid>117509</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-12-01 16:02:48 -0800</bug_when>
    <thetext>Created attachment 117509
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513228</commentid>
    <comment_count>9</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-12-01 16:03:29 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 117500 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117500&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebCore/platform/chromium/ChromiumDataObject.cpp:237
&gt; &gt;&gt; +    return true;
&gt; &gt; 
&gt; &gt; I see, so setData will always succeed now.
&gt; 
&gt; Actually, should you verify that type is not an empty string?

Done.

(In reply to comment #4)
&gt; (From update of attachment 117500 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117500&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/chromium/ChromiumDataObject.cpp:187
&gt; &gt; +
&gt; &gt;      return String();
&gt; 
&gt; I think we still need to set success = false; here.
&gt; 

Done.

&gt; &gt; Source/WebCore/platform/chromium/ChromiumDataObject.cpp:237
&gt; &gt; +    m_customData.set(type, data);
&gt; &gt; +    return true;
&gt; 
&gt; I see, so setData will always succeed now.
&gt; 
&gt; &gt; LayoutTests/platform/chromium/test_expectations.txt:3738
&gt; &gt; +// Depends on Chromium follow up change before they will pass.
&gt; &gt; +BUG_DCHENG : fast/events/drag-customData.html = FAIL
&gt; 
&gt; Maybe just reference BUGCR31037 here?

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513232</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-01 16:05:54 -0800</bug_when>
    <thetext>Attachment 117509 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/edit...&quot; exit_code: 1

ERROR: FAILURES FOR &lt;lucid, x86_64, release, cpu&gt; in LayoutTests/platform/chromium/test_expectations.txt
ERROR: Line:1953 Duplicate or ambiguous expectation. fast/url/file-http-base.html
LayoutTests/platform/chromium/test_expectations.txt:1953:  Duplicate or ambiguous expectation. fast/url/file-http-base.html  [test/expectations] [5]
Total errors found: 1 in 20 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>513237</commentid>
    <comment_count>11</comment_count>
      <attachid>117509</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2011-12-01 16:17:23 -0800</bug_when>
    <thetext>Comment on attachment 117509
Patch

LGTM, but please give fishd a chance to approve the API addition.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513333</commentid>
    <comment_count>12</comment_count>
      <attachid>117509</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-01 17:37:18 -0800</bug_when>
    <thetext>Comment on attachment 117509
Patch

Attachment 117509 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/10693830</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513504</commentid>
    <comment_count>13</comment_count>
      <attachid>117509</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-12-01 22:33:27 -0800</bug_when>
    <thetext>Comment on attachment 117509
Patch

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

&gt; Source/WebKit/chromium/public/platform/WebClipboard.h:82
&gt; +        Buffer buffer, const WebString&amp; type) { return WebString(); }

nit: Buffer parameter should be unnamed

&gt; Source/WebKit/chromium/public/platform/WebDragData.h:102
&gt; +        WebString m_type;

nit: public members should not have the m_ prefix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513521</commentid>
    <comment_count>14</comment_count>
      <attachid>117572</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-12-01 22:44:38 -0800</bug_when>
    <thetext>Created attachment 117572
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513522</commentid>
    <comment_count>15</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-12-01 22:44:53 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (From update of attachment 117509 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=117509&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/chromium/public/platform/WebClipboard.h:82
&gt; &gt; +        Buffer buffer, const WebString&amp; type) { return WebString(); }
&gt; 
&gt; nit: Buffer parameter should be unnamed
&gt; 

Done.


&gt; &gt; Source/WebKit/chromium/public/platform/WebDragData.h:102
&gt; &gt; +        WebString m_type;
&gt; 
&gt; nit: public members should not have the m_ prefix.

Done.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513564</commentid>
    <comment_count>16</comment_count>
      <attachid>117572</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-12-01 23:46:26 -0800</bug_when>
    <thetext>Comment on attachment 117572
Patch

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

New failing tests:
editing/pasteboard/clipboard-customData.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513571</commentid>
    <comment_count>17</comment_count>
      <attachid>117580</attachid>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-12-01 23:56:38 -0800</bug_when>
    <thetext>Created attachment 117580
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513916</commentid>
    <comment_count>18</comment_count>
      <attachid>117580</attachid>
    <who name="David Levin">levin</who>
    <bug_when>2011-12-02 10:46:29 -0800</bug_when>
    <thetext>Comment on attachment 117580
Patch

I&apos;ll do the final honors. It looks like you have a looks good on the code and the public api.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>513923</commentid>
    <comment_count>19</comment_count>
    <who name="Daniel Cheng">dcheng</who>
    <bug_when>2011-12-02 10:53:03 -0800</bug_when>
    <thetext>Committed r101828: &lt;http://trac.webkit.org/changeset/101828&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117500</attachid>
            <date>2011-12-01 15:14:14 -0800</date>
            <delta_ts>2011-12-01 15:55:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73594-20111201151413.patch</filename>
            <type>text/plain</type>
            <size>21659</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxMzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzhlN2Y5MGJlZDUyMjFj
NGQ5MTEyOTI2MzEyMzEzNmJiYmU0MjMyNy4uYTNjMjdlZDQ4OTZiOWYxZGJhODg5MDUxMTJkODk2
NjNiYjI4OTFlNSAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTEyLTAxICBEYW5p
ZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IHBsdW1iaW5nIGZvciBzdXBwb3J0aW5nIGN1c3RvbSBNSU1FIHR5cGVzIGluIERhdGFUcmFuc2Zl
ci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNTk0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6
IGVkaXRpbmcvcGFzdGVib2FyZC9jbGlwYm9hcmQtY3VzdG9tRGF0YS5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2V2ZW50cy9kcmFnLWN1c3RvbURhdGEuaHRtbAorCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9taXVtRGF0YU9iamVjdDo6dHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1EYXRh
T2JqZWN0OjpnZXREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6
c2V0RGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6OmN1c3RvbURhdGEpOgor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oOgorCiAyMDExLTEx
LTI4ICBUaW1vdGh5IEhhdGNoZXIgIDx0aW1vdGh5QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQg
c3VwcG9ydCBmb3Iga25vd2luZyB3aGVuIGEgVHJlZUVsZW1lbnQgaXMgYWRkZWQgb3IgY2hhbmdl
ZCBhbnl3aGVyZSBpbiBhIFRyZWVPdXRsaW5lLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRl
eCA3NDEzMzcyM2FjYTVmZWE2NmViODg5MzkyMTcxZjNmZjllZmVkNzhiLi42ZTYyOTg3M2QzYWZk
NDQ3MTBlMzg1NmM2ZGYzNmU5MTc4Nzk4MjMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDExLTEyLTAxICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21p
dW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRkIHBsdW1iaW5nIGZvciBzdXBwb3J0aW5n
IGN1c3RvbSBNSU1FIHR5cGVzIGluIERhdGFUcmFuc2Zlci4KKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNTk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwdWJsaWMvcGxhdGZvcm0vV2ViQ2xpcGJvYXJk
Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYkNsaXBib2FyZDo6cmVhZEN1c3RvbURhdGEpOgorICAg
ICAgICAqIHB1YmxpYy9wbGF0Zm9ybS9XZWJEcmFnRGF0YS5oOgorICAgICAgICAqIHNyYy9QbGF0
Zm9ybVN1cHBvcnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TdXBwb3J0OjpjbGlw
Ym9hcmRSZWFkQ3VzdG9tRGF0YSk6CisgICAgICAgICogc3JjL1dlYkRyYWdEYXRhLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViRHJhZ0RhdGE6OmN1c3RvbURhdGEpOgorICAgICAgICAoV2ViS2l0
OjpXZWJEcmFnRGF0YTo6c2V0Q3VzdG9tRGF0YSk6CisKIDIwMTEtMTEtMjggIEpvbiBMZWUgIDxq
b25sZWVAYXBwbGUuY29tPgogCiAgICAgICAgIFBvc3NpYmxlIGZpeCBmb3IgdGVzdCBmYWlsdXJl
cyBpbiByMTAxMzA3LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21p
dW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9t
aXVtL0Nocm9taXVtRGF0YU9iamVjdC5jcHAKaW5kZXggZjk5OWMxMzFkOTJiMTEwNTMzNWVjMmRl
MWFlZWNiMDNiMGM1M2U1ZC4uZjMyMjdjMWRmNWQwMjIwNTFjNTIyMWI5YWFkYzZmMDI0OWNiNDM2
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1E
YXRhT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJv
bWl1bURhdGFPYmplY3QuY3BwCkBAIC0xMjQsMTAgKzEyNCwxNSBAQCBIYXNoU2V0PFN0cmluZz4g
Q2hyb21pdW1EYXRhT2JqZWN0Ojp0eXBlcygpIGNvbnN0CiAgICAgaWYgKCFtX3RleHRIdG1sLmlz
RW1wdHkoKSkKICAgICAgICAgcmVzdWx0cy5hZGQobWltZVR5cGVUZXh0SFRNTCk7CiAKKyAgICBm
b3IgKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+Ojpjb25zdF9pdGVyYXRvcjo6S2V5cyBpdCA9IG1f
Y3VzdG9tRGF0YS5iZWdpbigpLmtleXMoKTsKKyAgICAgICAgIGl0ICE9IG1fY3VzdG9tRGF0YS5l
bmQoKS5rZXlzKCk7ICsraXQpIHsKKyAgICAgICAgcmVzdWx0cy5hZGQoKml0KTsKKyAgICB9CisK
ICAgICByZXR1cm4gcmVzdWx0czsKIH0KIAotU3RyaW5nIENocm9taXVtRGF0YU9iamVjdDo6Z2V0
RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wmIHN1Y2Nlc3MpCitTdHJpbmcgQ2hyb21pdW1E
YXRhT2JqZWN0OjpnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCYgc3VjY2VzcykgY29u
c3QKIHsKICAgICBpZiAodHlwZSA9PSBtaW1lVHlwZVRleHRQbGFpbikgewogICAgICAgICBpZiAo
bV9zdG9yYWdlTW9kZSA9PSBQYXN0ZWJvYXJkKSB7CkBAIC0xNjcsNyArMTcyLDE4IEBAIFN0cmlu
ZyBDaHJvbWl1bURhdGFPYmplY3Q6OmdldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBib29sJiBz
dWNjZXNzKQogICAgICAgICByZXR1cm4gbV9kb3dubG9hZE1ldGFkYXRhOwogICAgIH0KIAotICAg
IHN1Y2Nlc3MgPSBmYWxzZTsKKyAgICBpZiAobV9zdG9yYWdlTW9kZSA9PSBQYXN0ZWJvYXJkKSB7
CisgICAgICAgIFN0cmluZyBkYXRhID0gUGxhdGZvcm1TdXBwb3J0OjpjbGlwYm9hcmRSZWFkQ3Vz
dG9tRGF0YShjdXJyZW50UGFzdGVib2FyZEJ1ZmZlcigpLCB0eXBlKTsKKyAgICAgICAgc3VjY2Vz
cyA9ICFkYXRhLmlzRW1wdHkoKTsKKyAgICAgICAgcmV0dXJuIGRhdGE7CisgICAgfQorCisgICAg
SGFzaE1hcDxTdHJpbmcsIFN0cmluZz46OmNvbnN0X2l0ZXJhdG9yIGl0ID0gbV9jdXN0b21EYXRh
LmZpbmQodHlwZSk7CisgICAgaWYgKGl0ICE9IG1fY3VzdG9tRGF0YS5lbmQoKSkgeworICAgICAg
ICBzdWNjZXNzID0gdHJ1ZTsKKyAgICAgICAgcmV0dXJuIGl0LT5zZWNvbmQ7CisgICAgfQorCiAg
ICAgcmV0dXJuIFN0cmluZygpOwogfQogCkBAIC0yMTcsNyArMjMzLDggQEAgYm9vbCBDaHJvbWl1
bURhdGFPYmplY3Q6OnNldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBjb25zdCBTdHJpbmcmIGRh
dGEpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBmYWxzZTsKKyAg
ICBtX2N1c3RvbURhdGEuc2V0KHR5cGUsIGRhdGEpOworICAgIHJldHVybiB0cnVlOwogfQogCiBi
b29sIENocm9taXVtRGF0YU9iamVjdDo6Y29udGFpbnNGaWxlbmFtZXMoKSBjb25zdApAQCAtMjU2
LDQgKzI3MywzIEBAIENocm9taXVtRGF0YU9iamVjdDo6Q2hyb21pdW1EYXRhT2JqZWN0KGNvbnN0
IENocm9taXVtRGF0YU9iamVjdCYgb3RoZXIpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
LQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1E
YXRhT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURh
dGFPYmplY3QuaAppbmRleCBmNzllZjViNzVjY2QyZDliYzQxMTFkZmIwMjJiNjNjZmYyYzcwNDYy
Li45ZGRmYjBiOTM2NDUxMTEzYjJjODAyMGU4NmZjNzI4NzAyZjhhZWQ5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9DaHJvbWl1bURhdGFPYmplY3QuaApA
QCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJQbGF0Zm9ybVN0
cmluZy5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgorI2luY2x1ZGUgPHd0Zi9IYXNoTWFw
Lmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgpAQCAtNzUsNyArNzYsNyBAQCBwdWJsaWM6CiAgICAgYm9v
bCBoYXNEYXRhKCkgY29uc3Q7CiAKICAgICBIYXNoU2V0PFN0cmluZz4gdHlwZXMoKSBjb25zdDsK
LSAgICBTdHJpbmcgZ2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wmIHN1Y2Nlc3MpOwor
ICAgIFN0cmluZyBnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCYgc3VjY2VzcykgY29u
c3Q7CiAgICAgYm9vbCBzZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3RyaW5nJiBk
YXRhKTsKIAogICAgIC8vIFNwZWNpYWwgaGFuZGxlcnMgZm9yIFVSTC9IVE1MIG1ldGFkYXRhLgpA
QCAtOTYsNiArOTcsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRGaWxlQ29udGVudEZpbGVuYW1l
KGNvbnN0IFN0cmluZyYgZmlsZUNvbnRlbnRGaWxlbmFtZSkgeyBtX2ZpbGVDb250ZW50RmlsZW5h
bWUgPSBmaWxlQ29udGVudEZpbGVuYW1lOyB9CiAgICAgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+
IGZpbGVDb250ZW50KCkgY29uc3QgeyByZXR1cm4gbV9maWxlQ29udGVudDsgfQogICAgIHZvaWQg
c2V0RmlsZUNvbnRlbnQoUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGZpbGVDb250ZW50KSB7IG1f
ZmlsZUNvbnRlbnQgPSBmaWxlQ29udGVudDsgfQorICAgIGNvbnN0IEhhc2hNYXA8U3RyaW5nLCBT
dHJpbmc+JiBjdXN0b21EYXRhKCkgY29uc3QgeyByZXR1cm4gbV9jdXN0b21EYXRhOyB9CisgICAg
SGFzaE1hcDxTdHJpbmcsIFN0cmluZz4mIGN1c3RvbURhdGEoKSB7IHJldHVybiBtX2N1c3RvbURh
dGE7IH0KIAogcHJpdmF0ZToKICAgICBleHBsaWNpdCBDaHJvbWl1bURhdGFPYmplY3QoU3RvcmFn
ZU1vZGUpOwpAQCAtMTE4LDYgKzEyMSw4IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fZmlsZUNv
bnRlbnRGaWxlbmFtZTsKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBtX2ZpbGVDb250ZW50Owog
CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz4gbV9jdXN0b21EYXRhOworCiAgICAgLy8gVGhl
c2UgdHdvIGFyZSBsaW5rZWQuIFNldHRpbmcgbV91cmwgd2lsbCBzZXQgbV91cmlMaXN0IHRvIHRo
ZSBzYW1lCiAgICAgLy8gc3RyaW5nIHZhbHVlOyBzZXR0aW5nIG1fdXJpTGlzdCB3aWxsIGNhdXNl
IGl0cyBjb250ZW50cyB0byBiZSBwYXJzZWQKICAgICAvLyBhY2NvcmRpbmcgdG8gUkZDIDI0ODMg
YW5kIHRoZSBmaXJzdCBVUkwgZm91bmQgd2lsbCBiZSBzZXQgaW4gbV91cmwuCkBAIC0xMjgsNCAr
MTMzLDMgQEAgcHJpdmF0ZToKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmCi0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9y
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TdXBwb3J0LmgK
aW5kZXggYTk3M2E3NTdhNzk2YmQ4YThlN2ZkM2NhN2Q3M2M0ZTZmMjVkMzhhZC4uZTRlYjFlZGYy
ODE5NWQ2MGYzM2I4ZGQyYjY2NGY0ZjJjZDFhYzAxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TdXBwb3J0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vY2hyb21pdW0vUGxhdGZvcm1TdXBwb3J0LmgKQEAgLTEwNCw2ICsxMDQsNyBA
QCBwdWJsaWM6CiAgICAgc3RhdGljIFN0cmluZyBjbGlwYm9hcmRSZWFkUGxhaW5UZXh0KFBhc3Rl
Ym9hcmRQcml2YXRlOjpDbGlwYm9hcmRCdWZmZXIpOwogICAgIHN0YXRpYyB2b2lkIGNsaXBib2Fy
ZFJlYWRIVE1MKFBhc3RlYm9hcmRQcml2YXRlOjpDbGlwYm9hcmRCdWZmZXIsIFN0cmluZyosIEtV
UkwqLCB1bnNpZ25lZCogZnJhZ21lbnRTdGFydCwgdW5zaWduZWQqIGZyYWdtZW50RW5kKTsKICAg
ICBzdGF0aWMgUGFzc1JlZlB0cjxTaGFyZWRCdWZmZXI+IGNsaXBib2FyZFJlYWRJbWFnZShQYXN0
ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJkQnVmZmVyKTsKKyAgICBzdGF0aWMgU3RyaW5nIGNsaXBi
b2FyZFJlYWRDdXN0b21EYXRhKFBhc3RlYm9hcmRQcml2YXRlOjpDbGlwYm9hcmRCdWZmZXIsIGNv
bnN0IFN0cmluZyYgdHlwZSk7CiAKICAgICAvLyBPbmx5IHRoZSBjbGlwYm9hcmRSZWFkIGZ1bmN0
aW9ucyB0YWtlIGEgYnVmZmVyIGFyZ3VtZW50IGJlY2F1c2UKICAgICAvLyBDaHJvbWl1bSBjdXJy
ZW50bHkgdXNlcyBhIGRpZmZlcmVudCB0ZWNobmlxdWUgdG8gd3JpdGUgdG8gYWx0ZXJuYXRlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJDbGlw
Ym9hcmQuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYkNsaXBi
b2FyZC5oCmluZGV4IDBmYzg4MDhiNDI3NDc3ZDkwMTg0OTY4OGMzMDkyNzA3MDZhYzJjZTEuLmQ0
NzY5MTBiYjQwNjJkMmRkZTY5MDI4M2FlOTBhNWVkNDkzNThmZjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYkNsaXBib2FyZC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYkNsaXBib2FyZC5oCkBAIC03
OCw2ICs3OCw4IEBAIHB1YmxpYzoKICAgICAgICAgQnVmZmVyIGJ1ZmZlciwgV2ViVVJMKiBwYWdl
VVJMLCB1bnNpZ25lZCogZnJhZ21lbnRTdGFydCwKICAgICAgICAgdW5zaWduZWQqIGZyYWdtZW50
RW5kKSB7IHJldHVybiBXZWJTdHJpbmcoKTsgfQogICAgIHZpcnR1YWwgV2ViRGF0YSByZWFkSW1h
Z2UoQnVmZmVyKSB7IHJldHVybiBXZWJEYXRhKCk7IH0KKyAgICB2aXJ0dWFsIFdlYlN0cmluZyBy
ZWFkQ3VzdG9tRGF0YSgKKyAgICAgICAgQnVmZmVyIGJ1ZmZlciwgY29uc3QgV2ViU3RyaW5nJiB0
eXBlKSB7IHJldHVybiBXZWJTdHJpbmcoKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHdyaXRlUGxh
aW5UZXh0KGNvbnN0IFdlYlN0cmluZyYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3cml0ZUhUTUwo
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJE
cmFnRGF0YS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViRHJh
Z0RhdGEuaAppbmRleCA2MDNhNmI1NmE0OGM3YTNiYjczOTVhNjU1ZjZhNTRjMmQ3ZmNmYmIwLi4z
OGJlNzhhZGFkNDU4ODRkZjg0OGUyZGFhNDlhMjI2NDhiZWE0MzQ4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJEcmFnRGF0YS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYkRyYWdEYXRhLmgKQEAgLTMy
LDYgKzMyLDcgQEAKICNkZWZpbmUgV2ViRHJhZ0RhdGFfaAogCiAjaW5jbHVkZSAiV2ViQ29tbW9u
LmgiCisjaW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04K
IG5hbWVzcGFjZSBXZWJDb3JlIHsgY2xhc3MgQ2hyb21pdW1EYXRhT2JqZWN0OyB9CkBAIC00Miw3
ICs0Myw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJEYXRhOwogY2xhc3MgV2Vi
RHJhZ0RhdGFQcml2YXRlOwotY2xhc3MgV2ViU3RyaW5nOwogY2xhc3MgV2ViVVJMOwogdGVtcGxh
dGUgPHR5cGVuYW1lIFQ+IGNsYXNzIFdlYlZlY3RvcjsKIApAQCAtOTgsNiArOTgsMTMgQEAgcHVi
bGljOgogICAgIFdFQktJVF9FWFBPUlQgV2ViRGF0YSBmaWxlQ29udGVudCgpIGNvbnN0OwogICAg
IFdFQktJVF9FWFBPUlQgdm9pZCBzZXRGaWxlQ29udGVudChjb25zdCBXZWJEYXRhJik7CiAKKyAg
ICBzdHJ1Y3QgQ3VzdG9tRGF0YSB7CisgICAgICAgIFdlYlN0cmluZyBtX3R5cGU7CisgICAgICAg
IFdlYlN0cmluZyBtX2RhdGE7CisgICAgfTsKKyAgICBXRUJLSVRfRVhQT1JUIFdlYlZlY3RvcjxD
dXN0b21EYXRhPiBjdXN0b21EYXRhKCkgY29uc3Q7CisgICAgV0VCS0lUX0VYUE9SVCB2b2lkIHNl
dEN1c3RvbURhdGEoY29uc3QgV2ViVmVjdG9yPEN1c3RvbURhdGE+Jik7CisKICNpZiBXRUJLSVRf
SU1QTEVNRU5UQVRJT04KICAgICBXZWJEcmFnRGF0YShjb25zdCBXVEY6OlBhc3NSZWZQdHI8V2Vi
Q29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0PiYpOwogICAgIFdlYkRyYWdEYXRhJiBvcGVyYXRvcj0o
Y29uc3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdD4mKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCmluZGV4IDE2
NTgzNDFiZWFiNWJkNTNhMmZlY2E1YTU2MzViYmM2YTI5ZTliNTcuLjU1MmNlODBjMjI3MzQzNDhj
ZDRlNTE3ODliZDcxOWM0MzA5MDNlNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvUGxhdGZvcm1TdXBwb3J0LmNwcApAQCAtMjAxLDYgKzIwMSwxMiBAQCBQYXNzUmVmUHRyPFNo
YXJlZEJ1ZmZlcj4gUGxhdGZvcm1TdXBwb3J0OjpjbGlwYm9hcmRSZWFkSW1hZ2UoCiAgICAgcmV0
dXJuIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5jbGlwYm9hcmQoKS0+cmVhZEltYWdlKHN0YXRp
Y19jYXN0PFdlYkNsaXBib2FyZDo6QnVmZmVyPihidWZmZXIpKTsKIH0KIAorU3RyaW5nIFBsYXRm
b3JtU3VwcG9ydDo6Y2xpcGJvYXJkUmVhZEN1c3RvbURhdGEoCisgICAgUGFzdGVib2FyZFByaXZh
dGU6OkNsaXBib2FyZEJ1ZmZlciBidWZmZXIsIGNvbnN0IFN0cmluZyYgdHlwZSkKK3sKKyAgICBy
ZXR1cm4gd2ViS2l0UGxhdGZvcm1TdXBwb3J0KCktPmNsaXBib2FyZCgpLT5yZWFkQ3VzdG9tRGF0
YShzdGF0aWNfY2FzdDxXZWJDbGlwYm9hcmQ6OkJ1ZmZlcj4oYnVmZmVyKSwgdHlwZSk7Cit9CisK
IHZvaWQgUGxhdGZvcm1TdXBwb3J0OjpjbGlwYm9hcmRXcml0ZVNlbGVjdGlvbihjb25zdCBTdHJp
bmcmIGh0bWxUZXh0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgY29uc3QgS1VSTCYgc291cmNlVVJMLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgY29uc3QgU3RyaW5nJiBwbGFpblRleHQsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEcmFnRGF0YS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJEcmFnRGF0YS5jcHAKaW5kZXggNjJiM2JjM2RjYzY2ZTA3ODQwNzRjNzFl
ZDUyYTY2ZGYwZGRkZjlmYS4uZjgzNGEyMmM2NmYyMGE2ZGQ3OGU1Mzg4MGUxYTJiOWNkMjk5OTdh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRHJhZ0RhdGEuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRyYWdEYXRhLmNwcApAQCAtMzgs
NiArMzgsNyBAQAogI2luY2x1ZGUgIldlYlVSTC5oIgogI2luY2x1ZGUgIldlYlZlY3Rvci5oIgog
CisjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KICNpbmNsdWRlIDx3dGYvUGFzc1JlZlB0ci5oPgog
CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTIwNSw2ICsyMDYsMjggQEAgdm9pZCBXZWJE
cmFnRGF0YTo6c2V0RmlsZUNvbnRlbnQoY29uc3QgV2ViRGF0YSYgZmlsZUNvbnRlbnQpCiAgICAg
bV9wcml2YXRlLT5zZXRGaWxlQ29udGVudChmaWxlQ29udGVudCk7CiB9CiAKK1dlYlZlY3RvcjxX
ZWJEcmFnRGF0YTo6Q3VzdG9tRGF0YT4gV2ViRHJhZ0RhdGE6OmN1c3RvbURhdGEoKSBjb25zdAor
eworICAgIEFTU0VSVCghaXNOdWxsKCkpOworICAgIFdlYlZlY3RvcjxDdXN0b21EYXRhPiBjdXN0
b21EYXRhKHN0YXRpY19jYXN0PHNpemVfdD4obV9wcml2YXRlLT5jdXN0b21EYXRhKCkuc2l6ZSgp
KSk7CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0cmluZz46OmNvbnN0X2l0ZXJhdG9yIGJlZ2luID0g
bV9wcml2YXRlLT5jdXN0b21EYXRhKCkuYmVnaW4oKTsKKyAgICBIYXNoTWFwPFN0cmluZywgU3Ry
aW5nPjo6Y29uc3RfaXRlcmF0b3IgZW5kID0gbV9wcml2YXRlLT5jdXN0b21EYXRhKCkuZW5kKCk7
CisgICAgc2l6ZV90IGkgPSAwOworICAgIGZvciAoSGFzaE1hcDxTdHJpbmcsIFN0cmluZz46OmNv
bnN0X2l0ZXJhdG9yIGl0ID0gYmVnaW47IGl0ICE9IGVuZDsgKytpdCkgeworICAgICAgICBDdXN0
b21EYXRhIGRhdGEgPSB7aXQtPmZpcnN0LCBpdC0+c2Vjb25kfTsKKyAgICAgICAgY3VzdG9tRGF0
YVtpKytdID0gZGF0YTsKKyAgICB9CisgICAgcmV0dXJuIGN1c3RvbURhdGE7Cit9CisKK3ZvaWQg
V2ViRHJhZ0RhdGE6OnNldEN1c3RvbURhdGEoY29uc3QgV2ViVmVjdG9yPFdlYkRyYWdEYXRhOjpD
dXN0b21EYXRhPiYgY3VzdG9tRGF0YSkKK3sKKyAgICBlbnN1cmVNdXRhYmxlKCk7CisgICAgSGFz
aE1hcDxTdHJpbmcsIFN0cmluZz4mIGN1c3RvbURhdGFNYXAgPSBtX3ByaXZhdGUtPmN1c3RvbURh
dGEoKTsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGN1c3RvbURhdGEuc2l6ZSgpOyArK2kp
CisgICAgICAgIGN1c3RvbURhdGFNYXAuc2V0KGN1c3RvbURhdGFbaV0ubV90eXBlLCBjdXN0b21E
YXRhW2ldLm1fZGF0YSk7Cit9CisKIFdlYkRyYWdEYXRhOjpXZWJEcmFnRGF0YShjb25zdCBXVEY6
OlBhc3NSZWZQdHI8V2ViQ29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0PiYgZGF0YSkKICAgICA6IG1f
cHJpdmF0ZShzdGF0aWNfY2FzdDxXZWJEcmFnRGF0YVByaXZhdGUqPihkYXRhLmxlYWtSZWYoKSkp
CiB7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggODUyNzgxODRhZTM2ZDk1YmFkNGU3MTFlNTk5NzVhYzdjM2UyYTY2ZC4uMGIw
YjdkNmM5ZjUwYjkxMjU5OTJlMTBhYjAzMDQ2ZWEzYzAzNzk3ZiAxMDA3NTUKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDExLTEyLTAxICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFtjaHJvbWl1bV0gQWRkIHBsdW1iaW5nIGZvciBzdXBwb3J0aW5nIGN1c3RvbSBNSU1F
IHR5cGVzIGluIERhdGFUcmFuc2Zlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTczNTk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJvYXJkLWN1c3RvbURhdGEt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBlZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJv
YXJkLWN1c3RvbURhdGEuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvZHJhZy1j
dXN0b21EYXRhLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9ldmVudHMvZHJh
Zy1jdXN0b21EYXRhLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL3Rl
c3RfZXhwZWN0YXRpb25zLnR4dDoKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwvU2tpcHBlZDoKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ndGsvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tYWMvU2tp
cHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS9xdC9Ta2lwcGVkOgorICAgICAgICAqIHBsYXRmb3Jt
L3dpbi9Ta2lwcGVkOgorCiAyMDExLTExLTI4ICBKZWZmIFRpbWFudXMgIDx0d2l6QGNocm9taXVt
Lm9yZz4KIAogICAgICAgICBTdXBwcmVzc2luZyBhIGZhaWxpbmcgd2ViZ2wgY29uZm9ybWFuY2Ug
dGVzdCBvbiBNYWMuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQv
Y2xpcGJvYXJkLWN1c3RvbURhdGEtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9w
YXN0ZWJvYXJkL2NsaXBib2FyZC1jdXN0b21EYXRhLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
YjEwNTA4YTlmYmU0Y2M3NmZjYWE3MmI2YmFmMWM0ZDkwOGIyOGYzCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NsaXBib2FyZC1jdXN0b21EYXRhLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1NpbXBsZSB0ZXN0IHRoYXQgY3VzdG9tIGNsaXBi
b2FyZCBNSU1FIHR5cGVzIGNhbiBiZSBzZXQgZHVyaW5nIGNvcHkgZXZlbnRzIGFuZCByZXRyaWV2
ZWQgZHVyaW5nIHBhc3RlIGV2ZW50cy4gVGhlIHRlc3QgY2FuIGJlIG1hbnVhbGx5IHJ1biBieSBj
b3B5aW5nIGFueSB0ZXh0IG9uIHRoaXMgcGFnZSBhbmQgdGhlbiBwYXN0aW5nIGFueXdoZXJlLiBP
biBzdWNjZXNzLCB0aGUgd29yZCBTVUNDRVNTIHdpbGwgYXBwZWFyIGJlbG93LgorCitTVUNDRVNT
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJvYXJkLWN1
c3RvbURhdGEuaHRtbCBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jbGlwYm9hcmQt
Y3VzdG9tRGF0YS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjMxZDk5YmI3MzhjMWUyNjE0ZWFjOTI3YzEwZjA5
NzdiOGM0NjZmNWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3Rl
Ym9hcmQvY2xpcGJvYXJkLWN1c3RvbURhdGEuaHRtbApAQCAtMCwwICsxLDQzIEBACis8IURPQ1RZ
UEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlNpbXBsZSB0ZXN0
IHRoYXQgY3VzdG9tIGNsaXBib2FyZCBNSU1FIHR5cGVzIGNhbiBiZSBzZXQgZHVyaW5nIGNvcHkg
ZXZlbnRzCithbmQgcmV0cmlldmVkIGR1cmluZyBwYXN0ZSBldmVudHMuIFRoZSB0ZXN0IGNhbiBi
ZSBtYW51YWxseSBydW4gYnkgY29weWluZworYW55IHRleHQgb24gdGhpcyBwYWdlIGFuZCB0aGVu
IHBhc3RpbmcgYW55d2hlcmUuIE9uIHN1Y2Nlc3MsIHRoZSB3b3JkIFNVQ0NFU1MKK3dpbGwgYXBw
ZWFyIGJlbG93LgorPGRpdiBpZD0ibG9nIj48L2Rpdj4KKzxzY3JpcHQ+CitmdW5jdGlvbiBjb3B5
KGV2ZW50KSB7CisgICAgZXZlbnQuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCd0ZXh0JywgJ3NhbXBs
ZScpOworICAgIGV2ZW50LmNsaXBib2FyZERhdGEuc2V0RGF0YSgnY3VzdG9tLWRhdGEnLCAnaGVs
bG8gd29ybGQnKTsKKyAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworfQorCitmdW5jdGlvbiBw
YXN0ZShldmVudCkgeworICAgIHZhciBmYWlsZWQgPSBmYWxzZTsKKyAgICBpZiAoZXZlbnQuY2xp
cGJvYXJkRGF0YS50eXBlcy5pbmRleE9mKCd0ZXh0L3BsYWluJykgPCAwCisgICAgICAgIHx8IGV2
ZW50LmNsaXBib2FyZERhdGEudHlwZXMuaW5kZXhPZignY3VzdG9tLWRhdGEnKSA8IDApCisgICAg
ICAgIGZhaWxlZCA9IHRydWU7CisgICAgaWYgKGV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgn
dGV4dCcpICE9ICdzYW1wbGUnCisgICAgICAgIHx8IGV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0
YSgnY3VzdG9tLWRhdGEnKSAhPSAnaGVsbG8gd29ybGQnKQorICAgICAgICBmYWlsZWQgPSB0cnVl
OworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdsb2cnKS5pbm5lclRleHQgPSBmYWlsZWQg
PyAnRkFJTFVSRScgOiAnU1VDQ0VTUyc7CisgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKK30K
K2RvY3VtZW50LmJvZHkuYWRkRXZlbnRMaXN0ZW5lcignY29weScsIGNvcHkpOworZG9jdW1lbnQu
Ym9keS5hZGRFdmVudExpc3RlbmVyKCdwYXN0ZScsIHBhc3RlKTsKKworZnVuY3Rpb24gcnVuVGVz
dCgpIHsKKyAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgcmV0
dXJuOworCisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIuZHVtcEFzVGV4dCgpOworICAgIGRvY3Vt
ZW50LmV4ZWNDb21tYW5kKCdjb3B5Jyk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ3Bhc3Rl
Jyk7Cit9CitydW5UZXN0KCk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctY3VzdG9tRGF0YS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWN1c3RvbURhdGEtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjc3OTcwMTk1NTdhMTAyN2EyMDcyOThlNDkxNTVlNmQwZDdlODFhN2QKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWN1c3RvbURhdGEtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorVG8gbWFudWFsbHkgdGVzdCwgZHJhZyAnRHJhZyBN
ZScgdG8gJ0Ryb3AgSGVyZScgYW5kIGRyb3AuIFRoZSB3b3JkICdTVUNDRVNTJyBzaG91bGQgYXBw
ZWFyLgorCitEcmFnIE1lCitEcm9wIEhlcmUKK1NVQ0NFU1MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvZmFzdC9ldmVudHMvZHJhZy1jdXN0b21EYXRhLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L2V2ZW50cy9kcmFnLWN1c3RvbURhdGEuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kY2E1N2VmZDQ2MjM1NTg0
ZmI5ZTI3NzBhZDNiOTAyNWU5ZTcyZjBkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9ldmVudHMvZHJhZy1jdXN0b21EYXRhLmh0bWwKQEAgLTAsMCArMSw3MSBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHN0eWxlPgorI2RyYWcgeworICAgIGJvcmRlcjog
MXB4IHNvbGlkIGJsYWNrOworICAgIGhlaWdodDogMjAwcHg7CisgICAgd2lkdGg6IDIwMHB4Owor
fQorI2Ryb3AgeworICAgIGJvcmRlcjogMXB4IHNvbGlkIGJsYWNrOworICAgIGhlaWdodDogMjAw
cHg7CisgICAgd2lkdGg6IDIwMHB4OworfQorPC9zdHlsZT4KKzxzY3JpcHQ+CitmdW5jdGlvbiBs
b2coc3RyKQoreworICAgIHZhciByZXN1bHQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVz
dWx0Jyk7CisgICAgcmVzdWx0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHN0
cikpOworICAgIHJlc3VsdC5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdicicp
KTsKK30KK2Z1bmN0aW9uIGRyYWdzdGFydChldmVudCkgeworICAgIGV2ZW50LmRhdGFUcmFuc2Zl
ci5zZXREYXRhKCd0ZXh0JywgJ3NhbXBsZScpOworICAgIGV2ZW50LmRhdGFUcmFuc2Zlci5zZXRE
YXRhKCdjdXN0b20tZGF0YScsICdoZWxsbyB3b3JsZCcpOworfQorZnVuY3Rpb24gZHJhZ2VudGVy
KGV2ZW50KSB7CisgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKK30KK2Z1bmN0aW9uIGRyYWdv
dmVyKGV2ZW50KSB7CisgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsKK30KK2Z1bmN0aW9uIGRy
b3AoZXZlbnQpIHsKKyAgICB2YXIgZmFpbGVkID0gZmFsc2U7CisgICAgaWYgKGV2ZW50LmRhdGFU
cmFuc2Zlci50eXBlcy5pbmRleE9mKCd0ZXh0L3BsYWluJykgPCAwCisgICAgICAgIHx8IGV2ZW50
LmRhdGFUcmFuc2Zlci50eXBlcy5pbmRleE9mKCdjdXN0b20tZGF0YScpIDwgMCkKKyAgICAgICAg
ZmFpbGVkID0gdHJ1ZTsKKyAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyLmdldERhdGEoJ3RleHQn
KSAhPSAnc2FtcGxlJworICAgICAgICB8fCBldmVudC5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgnY3Vz
dG9tLWRhdGEnKSAhPSAnaGVsbG8gd29ybGQnKQorICAgICAgICBmYWlsZWQgPSB0cnVlOworICAg
IGxvZyhmYWlsZWQgPyAnRkFJTFVSRScgOiAnU1VDQ0VTUycpOworICAgIGlmICh3aW5kb3cubGF5
b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIGxheW91dFRlc3RDb250cm9sbGVyLm5vdGlmeURv
bmUoKTsKK30KK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpCit7CisgICAgaWYgKCF3aW5kb3cu
bGF5b3V0VGVzdENvbnRyb2xsZXIpCisgICAgICAgIHJldHVybjsKKyAgICBsYXlvdXRUZXN0Q29u
dHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIud2FpdFVudGls
RG9uZSgpOworCisgICAgdmFyIGRyYWdFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2RyYWcnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhkcmFnRWxlbWVudC5vZmZzZXRM
ZWZ0ICsgZHJhZ0VsZW1lbnQub2Zmc2V0V2lkdGggLyAyLAorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIGRyYWdFbGVtZW50Lm9mZnNldFRvcCArIGRyYWdFbGVtZW50Lm9mZnNldEhlaWdodCAv
IDIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgIGV2ZW50U2VuZGVyLmxlYXBG
b3J3YXJkKDEwMCk7CisgICAgdmFyIGRyb3BFbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2Ryb3AnKTsKKyAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhkcm9wRWxlbWVudC5vZmZz
ZXRMZWZ0ICsgZHJvcEVsZW1lbnQub2Zmc2V0V2lkdGggLyAyLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGRyb3BFbGVtZW50Lm9mZnNldFRvcCArIGRyb3BFbGVtZW50Lm9mZnNldEhlaWdo
dCAvIDIpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKK30KKzwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cD5UbyBtYW51YWxseSB0ZXN0LCBkcmFnICdEcmFnIE1lJyB0byAnRHJvcCBI
ZXJlJyBhbmQgZHJvcC4gVGhlIHdvcmQgJ1NVQ0NFU1MnIHNob3VsZCBhcHBlYXIuCis8ZGl2IGRy
YWdnYWJsZT0idHJ1ZSIgaWQ9ImRyYWciIG9uZHJhZ3N0YXJ0PSJkcmFnc3RhcnQoZXZlbnQpIj5E
cmFnIE1lPC9kaXY+Cis8ZGl2IGlkPSJkcm9wIiBvbmRyYWdlbnRlcj0iZHJhZ2VudGVyKGV2ZW50
KSIgb25kcmFnb3Zlcj0iZHJhZ292ZXIoZXZlbnQpIiBvbmRyb3A9ImRyb3AoZXZlbnQpIj5Ecm9w
IEhlcmU8L2Rpdj4KKzwvZGl2PgorPGRpdiBpZD0icmVzdWx0Ij48L2Rpdj4KKzwvYm9keT4KKzwv
aHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhw
ZWN0YXRpb25zLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0
YXRpb25zLnR4dAppbmRleCA4ZDlhODA4MWI1NjNmZTgyNjRjMzFmMjFkODFkNjIyMzZhZjkzZDRj
Li5lMWYwNWZjMzQyMGFiODE2MDk2ZWQyNDc3YzM4YjM5MWY4YWEwY2UzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CkBAIC0z
NzM0LDYgKzM3MzQsOSBAQCBCVUdfU0VOT1JCTEFOQ08gR1BVIDogZmFzdC9jYW52YXMvY2FudmFz
LXRyYW5zZm9ybXMtZmlsbFJlY3Qtc2hhZG93Lmh0bWwgPSBURVhUCiAKIEJVR1dLNjY5NTMgOiB0
cmFuc2l0aW9ucy9kZWZhdWx0LXRpbWluZy1mdW5jdGlvbi5odG1sID0gUEFTUyBGQUlMCiAKKy8v
IERlcGVuZHMgb24gQ2hyb21pdW0gZm9sbG93IHVwIGNoYW5nZSBiZWZvcmUgdGhleSB3aWxsIHBh
c3MuCitCVUdfRENIRU5HIDogZmFzdC9ldmVudHMvZHJhZy1jdXN0b21EYXRhLmh0bWwgPSBGQUlM
CisKIC8vIE5lZWQgdG8gcmViYXNlbGluZSBvbiB3aW4gYW5kIG1hYy4KIEJVR19UT05ZIE1BQyA6
IGNzczMvZmxleGJveC9yZXBhaW50Lmh0bWwgPSBQQVNTIEZBSUwKIEJVR19UT05ZIE1BQyA6IGNz
czMvZmxleGJveC9yZXBhaW50LXJ0bC1jb2x1bW4uaHRtbCA9IFBBU1MgRkFJTApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9lZmwvU2tpcHBlZAppbmRleCAwNTEwM2JkNmEzZmUxOWZjNjk1NWE2MzQ0NjVlNjMwNjZlYzgx
NWU1Li44NzJiZDhjYzRiYzRhM2JkYWExN2YzNTAxNzQ4NjRkOTljMTU1ZWZmIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9lZmwvU2tpcHBlZApAQCAtMTM0LDYgKzEzNCw3IEBAIGZhc3QvZXZlbnRzL2NyYXNoLW9u
LW11dGF0ZS1kdXJpbmctZHJvcC5odG1sCiBmYXN0L2V2ZW50cy9kcmFnLWFuZC1kcm9wLWRhdGFU
cmFuc2Zlci10eXBlcy1ub2NyYXNoLmh0bWwKIGZhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3AtZmly
ZS1kcmFnLWRyYWdvdmVyLmh0bWwKIGZhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3AuaHRtbAorZmFz
dC9ldmVudHMvZHJhZy1jdXN0b21EYXRhLmh0bWwKIGZhc3QvZXZlbnRzL2RyYWctc2VsZWN0cy1p
bWFnZS5odG1sCiBmYXN0L2V2ZW50cy9kcm9wem9uZS0wMDEuaHRtbAogZmFzdC9ldmVudHMvZHJv
cHpvbmUtMDAyLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9Ta2lw
cGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKaW5kZXggMjc5ZjFjNWFkY2Q5
MzAyYzc5MzRmZWFiYTYxZmRkZTYyM2Y5MjI2OS4uOGY2MzU3Njk2Y2M3ZmU2ZDJiMjZkZmE4ODZh
NWZjYjYxY2M2OTAyMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBw
ZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQKQEAgLTMwMCw2ICszMDAs
MTAgQEAgbWVkaWEvbWVkaWEtY2FwdGlvbnMuaHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEt
dHJhbnNmZXItaXRlbXMuaHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRl
bXMtaW1hZ2UtcG5nLmh0bWwKIAorIyBDdXN0b20gTUlNRSB0eXBlIHN1cHBvcnQgaW4gRGF0YVRy
YW5zZmVyIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCitlZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJv
YXJkLWN1c3RvbURhdGEuaHRtbAorZmFzdC9ldmVudHMvZHJhZy1jdXN0b21EYXRhLmh0bWwKKwog
IyBOZWVkcyBncmFtbWFyIGNoZWNraW5nLgogZWRpdGluZy9zcGVsbGluZy9tYXJrZXJzLmh0bWwK
IApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1NraXBwZWQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAppbmRleCA1OWNkYThhYTI4MzExMThkY2Y3N2M3N2Jh
MWRlNzIxMTA0NzU3YjRmLi42OTUzYWY4YzI3ZDcwMDU5ODE2N2Y4OTIzZTQwMjMxNDVlZWNmODhh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZAorKysgYi9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZApAQCAtMzQ4LDYgKzM0OCwxMCBAQCBjb21wb3Np
dGluZy93ZWJnbC93ZWJnbC1ub25wcmVtdWx0aXBsaWVkLWJsZW5kLmh0bWwKIGVkaXRpbmcvcGFz
dGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLmh0bWwKIGVkaXRpbmcvcGFzdGVib2FyZC9kYXRh
LXRyYW5zZmVyLWl0ZW1zLWltYWdlLXBuZy5odG1sCiAKKyMgQ3VzdG9tIE1JTUUgdHlwZSBzdXBw
b3J0IGluIERhdGFUcmFuc2ZlciBpcyBub3QgeWV0IGltcGxlbWVudGVkLgorZWRpdGluZy9wYXN0
ZWJvYXJkL2NsaXBib2FyZC1jdXN0b21EYXRhLmh0bWwKK2Zhc3QvZXZlbnRzL2RyYWctY3VzdG9t
RGF0YS5odG1sCisKICMgTmVlZCB0byBpbXBsZW1lbnQgV2ViR2VvbG9jYXRpb25SZXF1ZXN0Ojpj
YW5jZWxQZXJtaXNzaW9uUmVxdWVzdCBvbiBtYWMuCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD01NTk0NAogZmFzdC9kb20vR2VvbG9jYXRpb24vcGFnZS1yZWxvYWQt
Y2FuY2VsLXBlcm1pc3Npb24tcmVxdWVzdHMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vcXQvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKaW5k
ZXggMjZhZTQ3ODFkYzk3ZjE3M2Q1MTM4ZWUxZWMxNTQ1NGQzYjI2NDVmNC4uZTY0OTQ4MzZkYTNm
MTlhOWQ0NWYzYzM4ZGUwODRiODZlMjEyNTljZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vcXQvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCkBA
IC0zMzQsNiArMzM0LDEwIEBAIHN2Zy9hcy1pbWFnZS9kcmFnLXN2Zy1hcy1pbWFnZS5odG1sCiBm
YXN0L2Zvcm1zL3JhbmdlL3NsaWRlci1kZWxldGUtd2hpbGUtZHJhZ2dpbmctdGh1bWIuaHRtbAog
ZmFzdC9mb3Jtcy9zZWxlY3QtbXVsdGlwbGUtZWxlbWVudHMtd2l0aC1tb3VzZS1kcmFnLXdpdGgt
b3B0aW9ucy1sZXNzLXRoYW4tc2l6ZS5odG1sCiAKKyMgQ3VzdG9tIE1JTUUgdHlwZSBzdXBwb3J0
IGluIERhdGFUcmFuc2ZlciBub3QgeWV0IGltcGxlbWVudGVkLgorZWRpdGluZy9wYXN0ZWJvYXJk
L2NsaXBib2FyZC1jdXN0b21EYXRhLmh0bWwKK2Zhc3QvZXZlbnRzL2RyYWctY3VzdG9tRGF0YS5o
dG1sCisKICMgRXZlbnRTZW5kZXI6OmR1bXBGaWxlbmFtZUJlaW5nRHJhZ2dlZCBub3QgaW1wbGVt
ZW50ZWQuCiAjIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTgyOAog
ZmFzdC9ldmVudHMvZHJhZy1pbWFnZS1maWxlbmFtZS5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS93aW4vU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lw
cGVkCmluZGV4IDUwNzYyMTE5MTcwYWU5MDljMWVmODkzMThhODNhMzI3Y2I3NTZiODguLmUzZjlm
YzllMzViNTI2NGViMTFhZDAwOWUxNDI5OWVkY2RmMjc2YmQgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9T
a2lwcGVkCkBAIC0xMjc5LDYgKzEyNzksMTAgQEAgZWRpdGluZy9wYXN0ZWJvYXJkL29ucGFzdGUt
dGV4dC1odG1sLXR5cGVzLmh0bWwKIGVkaXRpbmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0
ZW1zLmh0bWwKIGVkaXRpbmcvcGFzdGVib2FyZC9kYXRhLXRyYW5zZmVyLWl0ZW1zLWltYWdlLXBu
Zy5odG1sCiAKKyMgQ3VzdG9tIE1JTUUgdHlwZSBzdXBwb3J0IGluIERhdGFUcmFuc2ZlciBub3Qg
eWV0IGltcGxlbWVudGVkLgorZWRpdGluZy9wYXN0ZWJvYXJkL2NsaXBib2FyZC1jdXN0b21EYXRh
Lmh0bWwKK2Zhc3QvZXZlbnRzL2RyYWctY3VzdG9tRGF0YS5odG1sCisKICMgTmVlZHMgZXhwZWN0
YXRpb24gdXBkYXRlCiBmYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLWVsZW1lbnQuaHRt
bAogZmFzdC9kb20vSFRNTE1ldGVyRWxlbWVudC9tZXRlci1ib3VuZGFyeS12YWx1ZXMuaHRtbAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117507</attachid>
            <date>2011-12-01 15:55:54 -0800</date>
            <delta_ts>2011-12-01 16:02:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73594-20111201155552.patch</filename>
            <type>text/plain</type>
            <size>21694</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDY2YWE4MjIwZmEzZGE1
MjJmOTY3MjhmYmMyM2Q2MDU3ZGZiN2JlZC4uMzU3MzQ0NDlkMWFiYjQ4MDYwOTU1NjAzZDI3MTM0
Yjg3MzUxMjNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTEyLTAxICBEYW5p
ZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IHBsdW1iaW5nIGZvciBzdXBwb3J0aW5nIGN1c3RvbSBNSU1FIHR5cGVzIGluIERhdGFUcmFuc2Zl
ci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNTk0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6
IGVkaXRpbmcvcGFzdGVib2FyZC9jbGlwYm9hcmQtY3VzdG9tRGF0YS5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2V2ZW50cy9kcmFnLWN1c3RvbURhdGEuaHRtbAorCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9taXVtRGF0YU9iamVjdDo6dHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1EYXRh
T2JqZWN0OjpnZXREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6
c2V0RGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6OmN1c3RvbURhdGEpOgor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oOgorCiAyMDExLTEy
LTAxICBNYXJrIFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbRmls
ZVN5c3RlbSBBUEldIERpcmVjdG9yeUVudHJ5LnJlbW92ZVJlY3Vyc2l2ZWx5IHN1Y2Nlc3NDYWxs
YmFjayBpcyByZXF1aXJlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmZmFmMGEyNmJl
YTgwZGE3OTg0ZDQzYjk2MGQ4OWZiYjEyMTlhZjAzLi5mNzQ2OWY5ZmQ2MjE3NWExZTE3ODczMmU5
ODMyYjZkZGQzMzNiNTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDExLTEyLTAxICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFtjaHJvbWl1bV0gQWRkIHBsdW1iaW5nIGZvciBzdXBwb3J0aW5nIGN1c3RvbSBNSU1F
IHR5cGVzIGluIERhdGFUcmFuc2Zlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTczNTk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBwdWJsaWMvcGxhdGZvcm0vV2ViQ2xpcGJvYXJkLmg6CisgICAgICAg
IChXZWJLaXQ6OldlYkNsaXBib2FyZDo6cmVhZEN1c3RvbURhdGEpOgorICAgICAgICAqIHB1Ymxp
Yy9wbGF0Zm9ybS9XZWJEcmFnRGF0YS5oOgorICAgICAgICAqIHNyYy9QbGF0Zm9ybVN1cHBvcnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TdXBwb3J0OjpjbGlwYm9hcmRSZWFkQ3Vz
dG9tRGF0YSk6CisgICAgICAgICogc3JjL1dlYkRyYWdEYXRhLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRHJhZ0RhdGE6OmN1c3RvbURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJEcmFnRGF0
YTo6c2V0Q3VzdG9tRGF0YSk6CisKIDIwMTEtMTItMDEgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hl
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBhZGQgcmVmZXJyZXIgcG9saWN5
IHRvIFdlYkNvbnRleHRNZW51RGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5jcHAKaW5kZXggZjk5OWMxMzFkOTJiMTEw
NTMzNWVjMmRlMWFlZWNiMDNiMGM1M2U1ZC4uZWE4MTc5NGIzYmQ1NGQxNjczNDkzNzY2MWZjMDVk
NWQ4NTM3MDM4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
Q2hyb21pdW1EYXRhT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9DaHJvbWl1bURhdGFPYmplY3QuY3BwCkBAIC0xMjQsMTAgKzEyNCwxNSBAQCBIYXNoU2V0
PFN0cmluZz4gQ2hyb21pdW1EYXRhT2JqZWN0Ojp0eXBlcygpIGNvbnN0CiAgICAgaWYgKCFtX3Rl
eHRIdG1sLmlzRW1wdHkoKSkKICAgICAgICAgcmVzdWx0cy5hZGQobWltZVR5cGVUZXh0SFRNTCk7
CiAKKyAgICBmb3IgKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+Ojpjb25zdF9pdGVyYXRvcjo6S2V5
cyBpdCA9IG1fY3VzdG9tRGF0YS5iZWdpbigpLmtleXMoKTsKKyAgICAgICAgIGl0ICE9IG1fY3Vz
dG9tRGF0YS5lbmQoKS5rZXlzKCk7ICsraXQpIHsKKyAgICAgICAgcmVzdWx0cy5hZGQoKml0KTsK
KyAgICB9CisKICAgICByZXR1cm4gcmVzdWx0czsKIH0KIAotU3RyaW5nIENocm9taXVtRGF0YU9i
amVjdDo6Z2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wmIHN1Y2Nlc3MpCitTdHJpbmcg
Q2hyb21pdW1EYXRhT2JqZWN0OjpnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCYgc3Vj
Y2VzcykgY29uc3QKIHsKICAgICBpZiAodHlwZSA9PSBtaW1lVHlwZVRleHRQbGFpbikgewogICAg
ICAgICBpZiAobV9zdG9yYWdlTW9kZSA9PSBQYXN0ZWJvYXJkKSB7CkBAIC0xNjcsNiArMTcyLDE4
IEBAIFN0cmluZyBDaHJvbWl1bURhdGFPYmplY3Q6OmdldERhdGEoY29uc3QgU3RyaW5nJiB0eXBl
LCBib29sJiBzdWNjZXNzKQogICAgICAgICByZXR1cm4gbV9kb3dubG9hZE1ldGFkYXRhOwogICAg
IH0KIAorICAgIGlmIChtX3N0b3JhZ2VNb2RlID09IFBhc3RlYm9hcmQpIHsKKyAgICAgICAgU3Ry
aW5nIGRhdGEgPSBQbGF0Zm9ybVN1cHBvcnQ6OmNsaXBib2FyZFJlYWRDdXN0b21EYXRhKGN1cnJl
bnRQYXN0ZWJvYXJkQnVmZmVyKCksIHR5cGUpOworICAgICAgICBzdWNjZXNzID0gIWRhdGEuaXNF
bXB0eSgpOworICAgICAgICByZXR1cm4gZGF0YTsKKyAgICB9CisKKyAgICBIYXNoTWFwPFN0cmlu
ZywgU3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2N1c3RvbURhdGEuZmluZCh0eXBlKTsK
KyAgICBpZiAoaXQgIT0gbV9jdXN0b21EYXRhLmVuZCgpKSB7CisgICAgICAgIHN1Y2Nlc3MgPSB0
cnVlOworICAgICAgICByZXR1cm4gaXQtPnNlY29uZDsKKyAgICB9CisKICAgICBzdWNjZXNzID0g
ZmFsc2U7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQpAQCAtMjE3LDcgKzIzNCw4IEBAIGJvb2wg
Q2hyb21pdW1EYXRhT2JqZWN0OjpzZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgY29uc3QgU3Ry
aW5nJiBkYXRhKQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICByZXR1cm4gZmFs
c2U7CisgICAgbV9jdXN0b21EYXRhLnNldCh0eXBlLCBkYXRhKTsKKyAgICByZXR1cm4gdHJ1ZTsK
IH0KIAogYm9vbCBDaHJvbWl1bURhdGFPYmplY3Q6OmNvbnRhaW5zRmlsZW5hbWVzKCkgY29uc3QK
QEAgLTI1Niw0ICsyNzQsMyBAQCBDaHJvbWl1bURhdGFPYmplY3Q6OkNocm9taXVtRGF0YU9iamVj
dChjb25zdCBDaHJvbWl1bURhdGFPYmplY3QmIG90aGVyKQogfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0No
cm9taXVtRGF0YU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hy
b21pdW1EYXRhT2JqZWN0LmgKaW5kZXggZjc5ZWY1Yjc1Y2NkMmQ5YmM0MTExZGZiMDIyYjYzY2Zm
MmM3MDQ2Mi4uOWRkZmIwYjkzNjQ1MTExM2IyYzgwMjBlODZmYzcyODcwMmY4YWVkOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2Jq
ZWN0LmgKQEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUGxh
dGZvcm1TdHJpbmcuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKyNpbmNsdWRlIDx3dGYv
SGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0
ci5oPgogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTc1LDcgKzc2LDcgQEAgcHVibGljOgog
ICAgIGJvb2wgaGFzRGF0YSgpIGNvbnN0OwogCiAgICAgSGFzaFNldDxTdHJpbmc+IHR5cGVzKCkg
Y29uc3Q7Ci0gICAgU3RyaW5nIGdldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBib29sJiBzdWNj
ZXNzKTsKKyAgICBTdHJpbmcgZ2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wmIHN1Y2Nl
c3MpIGNvbnN0OwogICAgIGJvb2wgc2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0
cmluZyYgZGF0YSk7CiAKICAgICAvLyBTcGVjaWFsIGhhbmRsZXJzIGZvciBVUkwvSFRNTCBtZXRh
ZGF0YS4KQEAgLTk2LDYgKzk3LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0RmlsZUNvbnRlbnRG
aWxlbmFtZShjb25zdCBTdHJpbmcmIGZpbGVDb250ZW50RmlsZW5hbWUpIHsgbV9maWxlQ29udGVu
dEZpbGVuYW1lID0gZmlsZUNvbnRlbnRGaWxlbmFtZTsgfQogICAgIFBhc3NSZWZQdHI8U2hhcmVk
QnVmZmVyPiBmaWxlQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsZUNvbnRlbnQ7IH0KICAg
ICB2b2lkIHNldEZpbGVDb250ZW50KFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBmaWxlQ29udGVu
dCkgeyBtX2ZpbGVDb250ZW50ID0gZmlsZUNvbnRlbnQ7IH0KKyAgICBjb25zdCBIYXNoTWFwPFN0
cmluZywgU3RyaW5nPiYgY3VzdG9tRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VzdG9tRGF0YTsg
fQorICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBjdXN0b21EYXRhKCkgeyByZXR1cm4gbV9j
dXN0b21EYXRhOyB9CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ2hyb21pdW1EYXRhT2JqZWN0
KFN0b3JhZ2VNb2RlKTsKQEAgLTExOCw2ICsxMjEsOCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBt
X2ZpbGVDb250ZW50RmlsZW5hbWU7CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9maWxlQ29u
dGVudDsKIAorICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fY3VzdG9tRGF0YTsKKwogICAg
IC8vIFRoZXNlIHR3byBhcmUgbGlua2VkLiBTZXR0aW5nIG1fdXJsIHdpbGwgc2V0IG1fdXJpTGlz
dCB0byB0aGUgc2FtZQogICAgIC8vIHN0cmluZyB2YWx1ZTsgc2V0dGluZyBtX3VyaUxpc3Qgd2ls
bCBjYXVzZSBpdHMgY29udGVudHMgdG8gYmUgcGFyc2VkCiAgICAgLy8gYWNjb3JkaW5nIHRvIFJG
QyAyNDgzIGFuZCB0aGUgZmlyc3QgVVJMIGZvdW5kIHdpbGwgYmUgc2V0IGluIG1fdXJsLgpAQCAt
MTI4LDQgKzEzMywzIEBAIHByaXZhdGU6CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZgotCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9y
bVN1cHBvcnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3Vw
cG9ydC5oCmluZGV4IDQwNzQ4MDQ5MjRjOTEzMGQ1NjZkYWEyODU1MWUzMDc0NGExYTAzODcuLmM5
M2MyYWZiMjcwZjZiMGM4ODg1ODMxYzIwMmQxZjNmMzk3Y2Q5NjUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oCkBAIC0xMDUsNiAr
MTA1LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBTdHJpbmcgY2xpcGJvYXJkUmVhZFBsYWluVGV4
dChQYXN0ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJkQnVmZmVyKTsKICAgICBzdGF0aWMgdm9pZCBj
bGlwYm9hcmRSZWFkSFRNTChQYXN0ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJkQnVmZmVyLCBTdHJp
bmcqLCBLVVJMKiwgdW5zaWduZWQqIGZyYWdtZW50U3RhcnQsIHVuc2lnbmVkKiBmcmFnbWVudEVu
ZCk7CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBjbGlwYm9hcmRSZWFkSW1h
Z2UoUGFzdGVib2FyZFByaXZhdGU6OkNsaXBib2FyZEJ1ZmZlcik7CisgICAgc3RhdGljIFN0cmlu
ZyBjbGlwYm9hcmRSZWFkQ3VzdG9tRGF0YShQYXN0ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJkQnVm
ZmVyLCBjb25zdCBTdHJpbmcmIHR5cGUpOwogCiAgICAgLy8gT25seSB0aGUgY2xpcGJvYXJkUmVh
ZCBmdW5jdGlvbnMgdGFrZSBhIGJ1ZmZlciBhcmd1bWVudCBiZWNhdXNlCiAgICAgLy8gQ2hyb21p
dW0gY3VycmVudGx5IHVzZXMgYSBkaWZmZXJlbnQgdGVjaG5pcXVlIHRvIHdyaXRlIHRvIGFsdGVy
bmF0ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0v
V2ViQ2xpcGJvYXJkLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9X
ZWJDbGlwYm9hcmQuaAppbmRleCAwZmM4ODA4YjQyNzQ3N2Q5MDE4NDk2ODhjMzA5MjcwNzA2YWMy
Y2UxLi5kNDc2OTEwYmI0MDYyZDJkZGU2OTAyODNhZTkwYTVlZDQ5MzU4ZmY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJDbGlwYm9hcmQuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJDbGlwYm9hcmQu
aApAQCAtNzgsNiArNzgsOCBAQCBwdWJsaWM6CiAgICAgICAgIEJ1ZmZlciBidWZmZXIsIFdlYlVS
TCogcGFnZVVSTCwgdW5zaWduZWQqIGZyYWdtZW50U3RhcnQsCiAgICAgICAgIHVuc2lnbmVkKiBm
cmFnbWVudEVuZCkgeyByZXR1cm4gV2ViU3RyaW5nKCk7IH0KICAgICB2aXJ0dWFsIFdlYkRhdGEg
cmVhZEltYWdlKEJ1ZmZlcikgeyByZXR1cm4gV2ViRGF0YSgpOyB9CisgICAgdmlydHVhbCBXZWJT
dHJpbmcgcmVhZEN1c3RvbURhdGEoCisgICAgICAgIEJ1ZmZlciBidWZmZXIsIGNvbnN0IFdlYlN0
cmluZyYgdHlwZSkgeyByZXR1cm4gV2ViU3RyaW5nKCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCB3
cml0ZVBsYWluVGV4dChjb25zdCBXZWJTdHJpbmcmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgd3Jp
dGVIVE1MKApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZv
cm0vV2ViRHJhZ0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3Jt
L1dlYkRyYWdEYXRhLmgKaW5kZXggNjAzYTZiNTZhNDhjN2EzYmI3Mzk1YTY1NWY2YTU0YzJkN2Zj
ZmJiMC4uMzhiZTc4YWRhZDQ1ODg0ZGY4NDhlMmRhYTQ5YTIyNjQ4YmVhNDM0OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViRHJhZ0RhdGEuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJEcmFnRGF0YS5o
CkBAIC0zMiw2ICszMiw3IEBACiAjZGVmaW5lIFdlYkRyYWdEYXRhX2gKIAogI2luY2x1ZGUgIldl
YkNvbW1vbi5oIgorI2luY2x1ZGUgIldlYlN0cmluZy5oIgogCiAjaWYgV0VCS0lUX0lNUExFTUVO
VEFUSU9OCiBuYW1lc3BhY2UgV2ViQ29yZSB7IGNsYXNzIENocm9taXVtRGF0YU9iamVjdDsgfQpA
QCAtNDIsNyArNDMsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViRGF0YTsKIGNs
YXNzIFdlYkRyYWdEYXRhUHJpdmF0ZTsKLWNsYXNzIFdlYlN0cmluZzsKIGNsYXNzIFdlYlVSTDsK
IHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBXZWJWZWN0b3I7CiAKQEAgLTk4LDYgKzk4LDEz
IEBAIHB1YmxpYzoKICAgICBXRUJLSVRfRVhQT1JUIFdlYkRhdGEgZmlsZUNvbnRlbnQoKSBjb25z
dDsKICAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0RmlsZUNvbnRlbnQoY29uc3QgV2ViRGF0YSYp
OwogCisgICAgc3RydWN0IEN1c3RvbURhdGEgeworICAgICAgICBXZWJTdHJpbmcgbV90eXBlOwor
ICAgICAgICBXZWJTdHJpbmcgbV9kYXRhOworICAgIH07CisgICAgV0VCS0lUX0VYUE9SVCBXZWJW
ZWN0b3I8Q3VzdG9tRGF0YT4gY3VzdG9tRGF0YSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQg
dm9pZCBzZXRDdXN0b21EYXRhKGNvbnN0IFdlYlZlY3RvcjxDdXN0b21EYXRhPiYpOworCiAjaWYg
V0VCS0lUX0lNUExFTUVOVEFUSU9OCiAgICAgV2ViRHJhZ0RhdGEoY29uc3QgV1RGOjpQYXNzUmVm
UHRyPFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdD4mKTsKICAgICBXZWJEcmFnRGF0YSYgb3Bl
cmF0b3I9KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q+
Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBv
cnQuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcApp
bmRleCA3OGE5NGM3MjZkNTJhZmM2MmJlODdiYjhkOGZkYWNkMDU2NWQxNmJhLi4yNzE3MTZkNDhl
MWQ1ZmRlYzMwOTdjNDUzYWFmZjE4NDA4Zjk1MzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAKQEAgLTIwMiw2ICsyMDIsMTIgQEAgUGFzc1Jl
ZlB0cjxTaGFyZWRCdWZmZXI+IFBsYXRmb3JtU3VwcG9ydDo6Y2xpcGJvYXJkUmVhZEltYWdlKAog
ICAgIHJldHVybiB3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y2xpcGJvYXJkKCktPnJlYWRJbWFn
ZShzdGF0aWNfY2FzdDxXZWJDbGlwYm9hcmQ6OkJ1ZmZlcj4oYnVmZmVyKSk7CiB9CiAKK1N0cmlu
ZyBQbGF0Zm9ybVN1cHBvcnQ6OmNsaXBib2FyZFJlYWRDdXN0b21EYXRhKAorICAgIFBhc3RlYm9h
cmRQcml2YXRlOjpDbGlwYm9hcmRCdWZmZXIgYnVmZmVyLCBjb25zdCBTdHJpbmcmIHR5cGUpCit7
CisgICAgcmV0dXJuIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5jbGlwYm9hcmQoKS0+cmVhZEN1
c3RvbURhdGEoc3RhdGljX2Nhc3Q8V2ViQ2xpcGJvYXJkOjpCdWZmZXI+KGJ1ZmZlciksIHR5cGUp
OworfQorCiB2b2lkIFBsYXRmb3JtU3VwcG9ydDo6Y2xpcGJvYXJkV3JpdGVTZWxlY3Rpb24oY29u
c3QgU3RyaW5nJiBodG1sVGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGNvbnN0IEtVUkwmIHNvdXJjZVVSTCwKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgcGxhaW5UZXh0LApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRHJhZ0RhdGEuY3BwIGIvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViRHJhZ0RhdGEuY3BwCmluZGV4IDYyYjNiYzNkY2M2NmUwNzg0
MDc0YzcxZWQ1MmE2NmRmMGRkZGY5ZmEuLmY4MzRhMjJjNjZmMjBhNmRkNzhlNTM4ODBlMWEyYjlj
ZDI5OTk3YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRyYWdE
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEcmFnRGF0YS5jcHAK
QEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJXZWJVUkwuaCIKICNpbmNsdWRlICJXZWJWZWN0
b3IuaCIKIAorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQ
dHIuaD4KIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0yMDUsNiArMjA2LDI4IEBAIHZv
aWQgV2ViRHJhZ0RhdGE6OnNldEZpbGVDb250ZW50KGNvbnN0IFdlYkRhdGEmIGZpbGVDb250ZW50
KQogICAgIG1fcHJpdmF0ZS0+c2V0RmlsZUNvbnRlbnQoZmlsZUNvbnRlbnQpOwogfQogCitXZWJW
ZWN0b3I8V2ViRHJhZ0RhdGE6OkN1c3RvbURhdGE+IFdlYkRyYWdEYXRhOjpjdXN0b21EYXRhKCkg
Y29uc3QKK3sKKyAgICBBU1NFUlQoIWlzTnVsbCgpKTsKKyAgICBXZWJWZWN0b3I8Q3VzdG9tRGF0
YT4gY3VzdG9tRGF0YShzdGF0aWNfY2FzdDxzaXplX3Q+KG1fcHJpdmF0ZS0+Y3VzdG9tRGF0YSgp
LnNpemUoKSkpOworICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBi
ZWdpbiA9IG1fcHJpdmF0ZS0+Y3VzdG9tRGF0YSgpLmJlZ2luKCk7CisgICAgSGFzaE1hcDxTdHJp
bmcsIFN0cmluZz46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fcHJpdmF0ZS0+Y3VzdG9tRGF0YSgp
LmVuZCgpOworICAgIHNpemVfdCBpID0gMDsKKyAgICBmb3IgKEhhc2hNYXA8U3RyaW5nLCBTdHJp
bmc+Ojpjb25zdF9pdGVyYXRvciBpdCA9IGJlZ2luOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAg
ICAgQ3VzdG9tRGF0YSBkYXRhID0ge2l0LT5maXJzdCwgaXQtPnNlY29uZH07CisgICAgICAgIGN1
c3RvbURhdGFbaSsrXSA9IGRhdGE7CisgICAgfQorICAgIHJldHVybiBjdXN0b21EYXRhOworfQor
Cit2b2lkIFdlYkRyYWdEYXRhOjpzZXRDdXN0b21EYXRhKGNvbnN0IFdlYlZlY3RvcjxXZWJEcmFn
RGF0YTo6Q3VzdG9tRGF0YT4mIGN1c3RvbURhdGEpCit7CisgICAgZW5zdXJlTXV0YWJsZSgpOwor
ICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBjdXN0b21EYXRhTWFwID0gbV9wcml2YXRlLT5j
dXN0b21EYXRhKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjdXN0b21EYXRhLnNpemUo
KTsgKytpKQorICAgICAgICBjdXN0b21EYXRhTWFwLnNldChjdXN0b21EYXRhW2ldLm1fdHlwZSwg
Y3VzdG9tRGF0YVtpXS5tX2RhdGEpOworfQorCiBXZWJEcmFnRGF0YTo6V2ViRHJhZ0RhdGEoY29u
c3QgV1RGOjpQYXNzUmVmUHRyPFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdD4mIGRhdGEpCiAg
ICAgOiBtX3ByaXZhdGUoc3RhdGljX2Nhc3Q8V2ViRHJhZ0RhdGFQcml2YXRlKj4oZGF0YS5sZWFr
UmVmKCkpKQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGRlMTI2NGFhZTBmNWFjYmJjMjQyZTkwMzEzZGI4YjJiMmFkZGZj
MTEuLjJmNDUwMjlkNTFjMmZiZmQ0YTQ1MmUzMzc2M2MzMTc1NjUzN2U0NmYgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAxMS0xMi0wMSAgRGFuaWVsIENoZW5nICA8ZGNoZW5nQGNocm9taXVtLm9y
Zz4KKworICAgICAgICBbY2hyb21pdW1dIEFkZCBwbHVtYmluZyBmb3Igc3VwcG9ydGluZyBjdXN0
b20gTUlNRSB0eXBlcyBpbiBEYXRhVHJhbnNmZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzU5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2NsaXBib2FyZC1jdXN0
b21EYXRhLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJk
L2NsaXBib2FyZC1jdXN0b21EYXRhLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRz
L2RyYWctY3VzdG9tRGF0YS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZl
bnRzL2RyYWctY3VzdG9tRGF0YS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJv
bWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1NraXBw
ZWQ6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0v
bWFjL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBw
bGF0Zm9ybS93aW4vU2tpcHBlZDoKKwogMjAxMS0xMi0wMSAgTWFyayBQaWxncmltICA8cGlsZ3Jp
bUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0ZpbGVTeXN0ZW0gQVBJXSBEaXJlY3RvcnlFbnRy
eS5yZW1vdmVSZWN1cnNpdmVseSBzdWNjZXNzQ2FsbGJhY2sgaXMgcmVxdWlyZWQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jbGlwYm9hcmQtY3VzdG9tRGF0YS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJvYXJkLWN1
c3RvbURhdGEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiMTA1MDhhOWZiZTRjYzc2ZmNhYTcy
YjZiYWYxYzRkOTA4YjI4ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5n
L3Bhc3RlYm9hcmQvY2xpcGJvYXJkLWN1c3RvbURhdGEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorU2ltcGxlIHRlc3QgdGhhdCBjdXN0b20gY2xpcGJvYXJkIE1JTUUgdHlwZXMgY2FuIGJl
IHNldCBkdXJpbmcgY29weSBldmVudHMgYW5kIHJldHJpZXZlZCBkdXJpbmcgcGFzdGUgZXZlbnRz
LiBUaGUgdGVzdCBjYW4gYmUgbWFudWFsbHkgcnVuIGJ5IGNvcHlpbmcgYW55IHRleHQgb24gdGhp
cyBwYWdlIGFuZCB0aGVuIHBhc3RpbmcgYW55d2hlcmUuIE9uIHN1Y2Nlc3MsIHRoZSB3b3JkIFNV
Q0NFU1Mgd2lsbCBhcHBlYXIgYmVsb3cuCisKK1NVQ0NFU1MKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jbGlwYm9hcmQtY3VzdG9tRGF0YS5odG1sIGIvTGF5b3V0
VGVzdHMvZWRpdGluZy9wYXN0ZWJvYXJkL2NsaXBib2FyZC1jdXN0b21EYXRhLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzFkOTliYjczOGMxZTI2MTRlYWM5MjdjMTBmMDk3N2I4YzQ2NmY1YQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jbGlwYm9hcmQtY3VzdG9t
RGF0YS5odG1sCkBAIC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzwvaGVhZD4KKzxib2R5PgorPHA+U2ltcGxlIHRlc3QgdGhhdCBjdXN0b20gY2xpcGJvYXJk
IE1JTUUgdHlwZXMgY2FuIGJlIHNldCBkdXJpbmcgY29weSBldmVudHMKK2FuZCByZXRyaWV2ZWQg
ZHVyaW5nIHBhc3RlIGV2ZW50cy4gVGhlIHRlc3QgY2FuIGJlIG1hbnVhbGx5IHJ1biBieSBjb3B5
aW5nCithbnkgdGV4dCBvbiB0aGlzIHBhZ2UgYW5kIHRoZW4gcGFzdGluZyBhbnl3aGVyZS4gT24g
c3VjY2VzcywgdGhlIHdvcmQgU1VDQ0VTUword2lsbCBhcHBlYXIgYmVsb3cuCis8ZGl2IGlkPSJs
b2ciPjwvZGl2PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGNvcHkoZXZlbnQpIHsKKyAgICBldmVudC5j
bGlwYm9hcmREYXRhLnNldERhdGEoJ3RleHQnLCAnc2FtcGxlJyk7CisgICAgZXZlbnQuY2xpcGJv
YXJkRGF0YS5zZXREYXRhKCdjdXN0b20tZGF0YScsICdoZWxsbyB3b3JsZCcpOworICAgIGV2ZW50
LnByZXZlbnREZWZhdWx0KCk7Cit9CisKK2Z1bmN0aW9uIHBhc3RlKGV2ZW50KSB7CisgICAgdmFy
IGZhaWxlZCA9IGZhbHNlOworICAgIGlmIChldmVudC5jbGlwYm9hcmREYXRhLnR5cGVzLmluZGV4
T2YoJ3RleHQvcGxhaW4nKSA8IDAKKyAgICAgICAgfHwgZXZlbnQuY2xpcGJvYXJkRGF0YS50eXBl
cy5pbmRleE9mKCdjdXN0b20tZGF0YScpIDwgMCkKKyAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAg
ICBpZiAoZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0JykgIT0gJ3NhbXBsZScKKyAg
ICAgICAgfHwgZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCdjdXN0b20tZGF0YScpICE9ICdo
ZWxsbyB3b3JsZCcpCisgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2xvZycpLmlubmVyVGV4dCA9IGZhaWxlZCA/ICdGQUlMVVJFJyA6ICdTVUNDRVNT
JzsKKyAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworfQorZG9jdW1lbnQuYm9keS5hZGRFdmVu
dExpc3RlbmVyKCdjb3B5JywgY29weSk7Citkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIo
J3Bhc3RlJywgcGFzdGUpOworCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIGlmICghd2luZG93
LmxheW91dFRlc3RDb250cm9sbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBsYXlvdXRUZXN0
Q29udHJvbGxlci5kdW1wQXNUZXh0KCk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHkn
KTsKKyAgICBkb2N1bWVudC5leGVjQ29tbWFuZCgncGFzdGUnKTsKK30KK3J1blRlc3QoKTsKKzwv
c2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9l
dmVudHMvZHJhZy1jdXN0b21EYXRhLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZl
bnRzL2RyYWctY3VzdG9tRGF0YS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzc5NzAxOTU1N2Ex
MDI3YTIwNzI5OGU0OTE1NWU2ZDBkN2U4MWE3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZXZlbnRzL2RyYWctY3VzdG9tRGF0YS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2
IEBACitUbyBtYW51YWxseSB0ZXN0LCBkcmFnICdEcmFnIE1lJyB0byAnRHJvcCBIZXJlJyBhbmQg
ZHJvcC4gVGhlIHdvcmQgJ1NVQ0NFU1MnIHNob3VsZCBhcHBlYXIuCisKK0RyYWcgTWUKK0Ryb3Ag
SGVyZQorU1VDQ0VTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFn
LWN1c3RvbURhdGEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctY3VzdG9tRGF0
YS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmRjYTU3ZWZkNDYyMzU1ODRmYjllMjc3MGFkM2I5MDI1ZTllNzJm
MGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWN1c3Rv
bURhdGEuaHRtbApAQCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+Cis8c3R5bGU+CisjZHJhZyB7CisgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAg
aGVpZ2h0OiAyMDBweDsKKyAgICB3aWR0aDogMjAwcHg7Cit9CisjZHJvcCB7CisgICAgYm9yZGVy
OiAxcHggc29saWQgYmxhY2s7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICB3aWR0aDogMjAwcHg7
Cit9Cis8L3N0eWxlPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvZyhzdHIpCit7CisgICAgdmFyIHJl
c3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKTsKKyAgICByZXN1bHQuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3RyKSk7CisgICAgcmVzdWx0LmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2JyJykpOworfQorZnVuY3Rpb24gZHJhZ3N0
YXJ0KGV2ZW50KSB7CisgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQnLCAnc2Ft
cGxlJyk7CisgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ2N1c3RvbS1kYXRhJywgJ2hl
bGxvIHdvcmxkJyk7Cit9CitmdW5jdGlvbiBkcmFnZW50ZXIoZXZlbnQpIHsKKyAgICBldmVudC5w
cmV2ZW50RGVmYXVsdCgpOworfQorZnVuY3Rpb24gZHJhZ292ZXIoZXZlbnQpIHsKKyAgICBldmVu
dC5wcmV2ZW50RGVmYXVsdCgpOworfQorZnVuY3Rpb24gZHJvcChldmVudCkgeworICAgIHZhciBm
YWlsZWQgPSBmYWxzZTsKKyAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzLmluZGV4T2Yo
J3RleHQvcGxhaW4nKSA8IDAKKyAgICAgICAgfHwgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzLmlu
ZGV4T2YoJ2N1c3RvbS1kYXRhJykgPCAwKQorICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgIGlm
IChldmVudC5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgndGV4dCcpICE9ICdzYW1wbGUnCisgICAgICAg
IHx8IGV2ZW50LmRhdGFUcmFuc2Zlci5nZXREYXRhKCdjdXN0b20tZGF0YScpICE9ICdoZWxsbyB3
b3JsZCcpCisgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgbG9nKGZhaWxlZCA/ICdGQUlMVVJF
JyA6ICdTVUNDRVNTJyk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAg
ICAgICAgbGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQord2luZG93Lm9ubG9h
ZCA9IGZ1bmN0aW9uKCkKK3sKKyAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikK
KyAgICAgICAgcmV0dXJuOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsK
KyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKKyAgICB2YXIgZHJh
Z0VsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHJhZycpOworICAgIGV2ZW50U2Vu
ZGVyLm1vdXNlTW92ZVRvKGRyYWdFbGVtZW50Lm9mZnNldExlZnQgKyBkcmFnRWxlbWVudC5vZmZz
ZXRXaWR0aCAvIDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhZ0VsZW1lbnQub2Zm
c2V0VG9wICsgZHJhZ0VsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMik7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMTAwKTsKKyAgICB2YXIg
ZHJvcEVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHJvcCcpOworICAgIGV2ZW50
U2VuZGVyLm1vdXNlTW92ZVRvKGRyb3BFbGVtZW50Lm9mZnNldExlZnQgKyBkcm9wRWxlbWVudC5v
ZmZzZXRXaWR0aCAvIDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJvcEVsZW1lbnQu
b2Zmc2V0VG9wICsgZHJvcEVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMik7CisgICAgZXZlbnRTZW5k
ZXIubW91c2VVcCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRvIG1hbnVh
bGx5IHRlc3QsIGRyYWcgJ0RyYWcgTWUnIHRvICdEcm9wIEhlcmUnIGFuZCBkcm9wLiBUaGUgd29y
ZCAnU1VDQ0VTUycgc2hvdWxkIGFwcGVhci4KKzxkaXYgZHJhZ2dhYmxlPSJ0cnVlIiBpZD0iZHJh
ZyIgb25kcmFnc3RhcnQ9ImRyYWdzdGFydChldmVudCkiPkRyYWcgTWU8L2Rpdj4KKzxkaXYgaWQ9
ImRyb3AiIG9uZHJhZ2VudGVyPSJkcmFnZW50ZXIoZXZlbnQpIiBvbmRyYWdvdmVyPSJkcmFnb3Zl
cihldmVudCkiIG9uZHJvcD0iZHJvcChldmVudCkiPkRyb3AgSGVyZTwvZGl2PgorPC9kaXY+Cis8
ZGl2IGlkPSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IDAyZDcy
YTcwOTM4OGVmNjk2ZTc2M2JkM2I1ZDZjYTdjYjk3YzkzYjMuLmYzY2JiODVjYjYxM2RhYTNiNTBm
MTUyNzNmOTBjZDgzNDVlY2Q5NGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9j
aHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTM2OTEsNiArMzY5MSw5IEBAIEJVR19T
RU5PUkJMQU5DTyBHUFUgOiBmYXN0L2NhbnZhcy9jYW52YXMtdHJhbnNmb3Jtcy1maWxsUmVjdC1z
aGFkb3cuaHRtbCA9IFRFWFQKIAogQlVHV0s2Njk1MyA6IHRyYW5zaXRpb25zL2RlZmF1bHQtdGlt
aW5nLWZ1bmN0aW9uLmh0bWwgPSBQQVNTIEZBSUwKIAorLy8gRGVwZW5kcyBvbiBDaHJvbWl1bSBm
b2xsb3cgdXAgY2hhbmdlIGJlZm9yZSB0aGV5IHdpbGwgcGFzcy4KK0JVR0NSMzEwMzcgOiBmYXN0
L2V2ZW50cy9kcmFnLWN1c3RvbURhdGEuaHRtbCA9IEZBSUwKKwogLy8gTmVlZCB0byByZWJhc2Vs
aW5lIG9uIHdpbiBhbmQgbWFjLgogQlVHX1RPTlkgTUFDIDogY3NzMy9mbGV4Ym94L3JlcGFpbnQu
aHRtbCA9IFBBU1MgRkFJTAogQlVHX1RPTlkgTUFDIDogY3NzMy9mbGV4Ym94L3JlcGFpbnQtcnRs
LWNvbHVtbi5odG1sID0gUEFTUyBGQUlMCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9lZmwvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCmluZGV4IDA1
MTAzYmQ2YTNmZTE5ZmM2OTU1YTYzNDQ2NWU2MzA2NmVjODE1ZTUuLjg3MmJkOGNjNGJjNGEzYmRh
YTE3ZjM1MDE3NDg2NGQ5OWMxNTVlZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2VmbC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCkBAIC0x
MzQsNiArMTM0LDcgQEAgZmFzdC9ldmVudHMvY3Jhc2gtb24tbXV0YXRlLWR1cmluZy1kcm9wLmh0
bWwKIGZhc3QvZXZlbnRzL2RyYWctYW5kLWRyb3AtZGF0YVRyYW5zZmVyLXR5cGVzLW5vY3Jhc2gu
aHRtbAogZmFzdC9ldmVudHMvZHJhZy1hbmQtZHJvcC1maXJlLWRyYWctZHJhZ292ZXIuaHRtbAog
ZmFzdC9ldmVudHMvZHJhZy1hbmQtZHJvcC5odG1sCitmYXN0L2V2ZW50cy9kcmFnLWN1c3RvbURh
dGEuaHRtbAogZmFzdC9ldmVudHMvZHJhZy1zZWxlY3RzLWltYWdlLmh0bWwKIGZhc3QvZXZlbnRz
L2Ryb3B6b25lLTAwMS5odG1sCiBmYXN0L2V2ZW50cy9kcm9wem9uZS0wMDIuaHRtbApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvU2tpcHBlZAppbmRleCAxMDVhMzEyZTQ3NDYyNDVjNDE3MDYyMzA0ZjFjYmIyZDEw
ODc5NWE2Li5jM2Q0ZDIxOWM2ODVhMWZhZWUwNTlkZTFjMjZkY2M3YTI4MjAwMWRjIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvU2tpcHBlZApAQCAtMzAwLDYgKzMwMCwxMCBAQCBtZWRpYS9tZWRpYS1jYXB0
aW9ucy5odG1sCiBlZGl0aW5nL3Bhc3RlYm9hcmQvZGF0YS10cmFuc2Zlci1pdGVtcy5odG1sCiBl
ZGl0aW5nL3Bhc3RlYm9hcmQvZGF0YS10cmFuc2Zlci1pdGVtcy1pbWFnZS1wbmcuaHRtbAogCisj
IEN1c3RvbSBNSU1FIHR5cGUgc3VwcG9ydCBpbiBEYXRhVHJhbnNmZXIgaXMgbm90IHlldCBpbXBs
ZW1lbnRlZC4KK2VkaXRpbmcvcGFzdGVib2FyZC9jbGlwYm9hcmQtY3VzdG9tRGF0YS5odG1sCitm
YXN0L2V2ZW50cy9kcmFnLWN1c3RvbURhdGEuaHRtbAorCiAjIE5lZWRzIGdyYW1tYXIgY2hlY2tp
bmcuCiBlZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lw
cGVkCmluZGV4IGU4Yjk5NzQ2ZDQ2NDAxY2Y2NjcxOGViNDc5MDkwNDUxNGEwN2E5NjQuLjJlZWU4
MjliM2I3ZDk3MjA3MGMyZTE3MWE4ZjE3NzIwMmQ5ZjIxYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9T
a2lwcGVkCkBAIC0zNDksNiArMzQ5LDEwIEBAIGNvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLW5vbnBy
ZW11bHRpcGxpZWQtYmxlbmQuaHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXIt
aXRlbXMuaHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMtaW1hZ2Ut
cG5nLmh0bWwKIAorIyBDdXN0b20gTUlNRSB0eXBlIHN1cHBvcnQgaW4gRGF0YVRyYW5zZmVyIGlz
IG5vdCB5ZXQgaW1wbGVtZW50ZWQuCitlZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJvYXJkLWN1c3Rv
bURhdGEuaHRtbAorZmFzdC9ldmVudHMvZHJhZy1jdXN0b21EYXRhLmh0bWwKKwogIyBOZWVkIHRv
IGltcGxlbWVudCBXZWJHZW9sb2NhdGlvblJlcXVlc3Q6OmNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0
IG9uIG1hYy4KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1OTQ0
CiBmYXN0L2RvbS9HZW9sb2NhdGlvbi9wYWdlLXJlbG9hZC1jYW5jZWwtcGVybWlzc2lvbi1yZXF1
ZXN0cy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCA2YzMzZmRkOGM2YTU2NzE2MjM0
MmMwYWRiZTE1ZDBiODA2NWY0NDc2Li4wNmFlYWEwNzRkYWI3YjljMDIwNTViOTIyMzBhMzViODg4
NjAwZGJiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBi
L0xheW91dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTMzNCw2ICszMzQsMTAgQEAgc3Zn
L2FzLWltYWdlL2RyYWctc3ZnLWFzLWltYWdlLmh0bWwKIGZhc3QvZm9ybXMvcmFuZ2Uvc2xpZGVy
LWRlbGV0ZS13aGlsZS1kcmFnZ2luZy10aHVtYi5odG1sCiBmYXN0L2Zvcm1zL3NlbGVjdC1tdWx0
aXBsZS1lbGVtZW50cy13aXRoLW1vdXNlLWRyYWctd2l0aC1vcHRpb25zLWxlc3MtdGhhbi1zaXpl
Lmh0bWwKIAorIyBDdXN0b20gTUlNRSB0eXBlIHN1cHBvcnQgaW4gRGF0YVRyYW5zZmVyIG5vdCB5
ZXQgaW1wbGVtZW50ZWQuCitlZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJvYXJkLWN1c3RvbURhdGEu
aHRtbAorZmFzdC9ldmVudHMvZHJhZy1jdXN0b21EYXRhLmh0bWwKKwogIyBFdmVudFNlbmRlcjo6
ZHVtcEZpbGVuYW1lQmVpbmdEcmFnZ2VkIG5vdCBpbXBsZW1lbnRlZC4KICMgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTYxODI4CiBmYXN0L2V2ZW50cy9kcmFnLWltYWdl
LWZpbGVuYW1lLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lw
cGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggNDhlZTBkODZhZWJm
ODEwNWIwNTdhMzc4YzIzODliZmQ0NTcxMThmZC4uZGMzN2FiNmZhYmQ1MjcxNGNkNmFmNzlmNzBl
MzMwZGYyY2IwMTI4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBw
ZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTEyNzksNiArMTI3
OSwxMCBAQCBlZGl0aW5nL3Bhc3RlYm9hcmQvb25wYXN0ZS10ZXh0LWh0bWwtdHlwZXMuaHRtbAog
ZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMuaHRtbAogZWRpdGluZy9wYXN0
ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMtaW1hZ2UtcG5nLmh0bWwKIAorIyBDdXN0b20gTUlN
RSB0eXBlIHN1cHBvcnQgaW4gRGF0YVRyYW5zZmVyIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCitlZGl0
aW5nL3Bhc3RlYm9hcmQvY2xpcGJvYXJkLWN1c3RvbURhdGEuaHRtbAorZmFzdC9ldmVudHMvZHJh
Zy1jdXN0b21EYXRhLmh0bWwKKwogIyBOZWVkcyBleHBlY3RhdGlvbiB1cGRhdGUKIGZhc3QvZG9t
L0hUTUxNZXRlckVsZW1lbnQvbWV0ZXItZWxlbWVudC5odG1sCiBmYXN0L2RvbS9IVE1MTWV0ZXJF
bGVtZW50L21ldGVyLWJvdW5kYXJ5LXZhbHVlcy5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117509</attachid>
            <date>2011-12-01 16:02:48 -0800</date>
            <delta_ts>2011-12-01 22:44:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73594-20111201160247.patch</filename>
            <type>text/plain</type>
            <size>21745</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDY2YWE4MjIwZmEzZGE1
MjJmOTY3MjhmYmMyM2Q2MDU3ZGZiN2JlZC4uMzU3MzQ0NDlkMWFiYjQ4MDYwOTU1NjAzZDI3MTM0
Yjg3MzUxMjNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTEyLTAxICBEYW5p
ZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IHBsdW1iaW5nIGZvciBzdXBwb3J0aW5nIGN1c3RvbSBNSU1FIHR5cGVzIGluIERhdGFUcmFuc2Zl
ci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNTk0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6
IGVkaXRpbmcvcGFzdGVib2FyZC9jbGlwYm9hcmQtY3VzdG9tRGF0YS5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2V2ZW50cy9kcmFnLWN1c3RvbURhdGEuaHRtbAorCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9taXVtRGF0YU9iamVjdDo6dHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1EYXRh
T2JqZWN0OjpnZXREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6
c2V0RGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6OmN1c3RvbURhdGEpOgor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oOgorCiAyMDExLTEy
LTAxICBNYXJrIFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbRmls
ZVN5c3RlbSBBUEldIERpcmVjdG9yeUVudHJ5LnJlbW92ZVJlY3Vyc2l2ZWx5IHN1Y2Nlc3NDYWxs
YmFjayBpcyByZXF1aXJlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmZmFmMGEyNmJl
YTgwZGE3OTg0ZDQzYjk2MGQ4OWZiYjEyMTlhZjAzLi5mNzQ2OWY5ZmQ2MjE3NWExZTE3ODczMmU5
ODMyYjZkZGQzMzNiNTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDExLTEyLTAxICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFtjaHJvbWl1bV0gQWRkIHBsdW1iaW5nIGZvciBzdXBwb3J0aW5nIGN1c3RvbSBNSU1F
IHR5cGVzIGluIERhdGFUcmFuc2Zlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTczNTk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBwdWJsaWMvcGxhdGZvcm0vV2ViQ2xpcGJvYXJkLmg6CisgICAgICAg
IChXZWJLaXQ6OldlYkNsaXBib2FyZDo6cmVhZEN1c3RvbURhdGEpOgorICAgICAgICAqIHB1Ymxp
Yy9wbGF0Zm9ybS9XZWJEcmFnRGF0YS5oOgorICAgICAgICAqIHNyYy9QbGF0Zm9ybVN1cHBvcnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TdXBwb3J0OjpjbGlwYm9hcmRSZWFkQ3Vz
dG9tRGF0YSk6CisgICAgICAgICogc3JjL1dlYkRyYWdEYXRhLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRHJhZ0RhdGE6OmN1c3RvbURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJEcmFnRGF0
YTo6c2V0Q3VzdG9tRGF0YSk6CisKIDIwMTEtMTItMDEgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hl
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBhZGQgcmVmZXJyZXIgcG9saWN5
IHRvIFdlYkNvbnRleHRNZW51RGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5jcHAKaW5kZXggZjk5OWMxMzFkOTJiMTEw
NTMzNWVjMmRlMWFlZWNiMDNiMGM1M2U1ZC4uMDVjNWUxMzBjY2ViZjU2MTQ5NjI2NmFhMWM1OGZl
ZmY0NDVmNDg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
Q2hyb21pdW1EYXRhT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9DaHJvbWl1bURhdGFPYmplY3QuY3BwCkBAIC0xMjQsMTAgKzEyNCwxNSBAQCBIYXNoU2V0
PFN0cmluZz4gQ2hyb21pdW1EYXRhT2JqZWN0Ojp0eXBlcygpIGNvbnN0CiAgICAgaWYgKCFtX3Rl
eHRIdG1sLmlzRW1wdHkoKSkKICAgICAgICAgcmVzdWx0cy5hZGQobWltZVR5cGVUZXh0SFRNTCk7
CiAKKyAgICBmb3IgKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+Ojpjb25zdF9pdGVyYXRvcjo6S2V5
cyBpdCA9IG1fY3VzdG9tRGF0YS5iZWdpbigpLmtleXMoKTsKKyAgICAgICAgIGl0ICE9IG1fY3Vz
dG9tRGF0YS5lbmQoKS5rZXlzKCk7ICsraXQpIHsKKyAgICAgICAgcmVzdWx0cy5hZGQoKml0KTsK
KyAgICB9CisKICAgICByZXR1cm4gcmVzdWx0czsKIH0KIAotU3RyaW5nIENocm9taXVtRGF0YU9i
amVjdDo6Z2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wmIHN1Y2Nlc3MpCitTdHJpbmcg
Q2hyb21pdW1EYXRhT2JqZWN0OjpnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCYgc3Vj
Y2VzcykgY29uc3QKIHsKICAgICBpZiAodHlwZSA9PSBtaW1lVHlwZVRleHRQbGFpbikgewogICAg
ICAgICBpZiAobV9zdG9yYWdlTW9kZSA9PSBQYXN0ZWJvYXJkKSB7CkBAIC0xNjcsNiArMTcyLDE4
IEBAIFN0cmluZyBDaHJvbWl1bURhdGFPYmplY3Q6OmdldERhdGEoY29uc3QgU3RyaW5nJiB0eXBl
LCBib29sJiBzdWNjZXNzKQogICAgICAgICByZXR1cm4gbV9kb3dubG9hZE1ldGFkYXRhOwogICAg
IH0KIAorICAgIGlmIChtX3N0b3JhZ2VNb2RlID09IFBhc3RlYm9hcmQpIHsKKyAgICAgICAgU3Ry
aW5nIGRhdGEgPSBQbGF0Zm9ybVN1cHBvcnQ6OmNsaXBib2FyZFJlYWRDdXN0b21EYXRhKGN1cnJl
bnRQYXN0ZWJvYXJkQnVmZmVyKCksIHR5cGUpOworICAgICAgICBzdWNjZXNzID0gIWRhdGEuaXNF
bXB0eSgpOworICAgICAgICByZXR1cm4gZGF0YTsKKyAgICB9CisKKyAgICBIYXNoTWFwPFN0cmlu
ZywgU3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2N1c3RvbURhdGEuZmluZCh0eXBlKTsK
KyAgICBpZiAoaXQgIT0gbV9jdXN0b21EYXRhLmVuZCgpKSB7CisgICAgICAgIHN1Y2Nlc3MgPSB0
cnVlOworICAgICAgICByZXR1cm4gaXQtPnNlY29uZDsKKyAgICB9CisKICAgICBzdWNjZXNzID0g
ZmFsc2U7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQpAQCAtMjE3LDcgKzIzNCwxMSBAQCBib29s
IENocm9taXVtRGF0YU9iamVjdDo6c2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0
cmluZyYgZGF0YSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIGZh
bHNlOworICAgIGlmICh0eXBlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgbV9jdXN0b21EYXRhLnNldCh0eXBlLCBkYXRhKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAog
Ym9vbCBDaHJvbWl1bURhdGFPYmplY3Q6OmNvbnRhaW5zRmlsZW5hbWVzKCkgY29uc3QKQEAgLTI1
Niw0ICsyNzcsMyBAQCBDaHJvbWl1bURhdGFPYmplY3Q6OkNocm9taXVtRGF0YU9iamVjdChjb25z
dCBDaHJvbWl1bURhdGFPYmplY3QmIG90aGVyKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVt
RGF0YU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1E
YXRhT2JqZWN0LmgKaW5kZXggZjc5ZWY1Yjc1Y2NkMmQ5YmM0MTExZGZiMDIyYjYzY2ZmMmM3MDQ2
Mi4uOWRkZmIwYjkzNjQ1MTExM2IyYzgwMjBlODZmYzcyODcwMmY4YWVkOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmgK
QEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1T
dHJpbmcuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTc1LDcgKzc2LDcgQEAgcHVibGljOgogICAgIGJv
b2wgaGFzRGF0YSgpIGNvbnN0OwogCiAgICAgSGFzaFNldDxTdHJpbmc+IHR5cGVzKCkgY29uc3Q7
Ci0gICAgU3RyaW5nIGdldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBib29sJiBzdWNjZXNzKTsK
KyAgICBTdHJpbmcgZ2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wmIHN1Y2Nlc3MpIGNv
bnN0OwogICAgIGJvb2wgc2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYg
ZGF0YSk7CiAKICAgICAvLyBTcGVjaWFsIGhhbmRsZXJzIGZvciBVUkwvSFRNTCBtZXRhZGF0YS4K
QEAgLTk2LDYgKzk3LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0RmlsZUNvbnRlbnRGaWxlbmFt
ZShjb25zdCBTdHJpbmcmIGZpbGVDb250ZW50RmlsZW5hbWUpIHsgbV9maWxlQ29udGVudEZpbGVu
YW1lID0gZmlsZUNvbnRlbnRGaWxlbmFtZTsgfQogICAgIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBmaWxlQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsZUNvbnRlbnQ7IH0KICAgICB2b2lk
IHNldEZpbGVDb250ZW50KFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBmaWxlQ29udGVudCkgeyBt
X2ZpbGVDb250ZW50ID0gZmlsZUNvbnRlbnQ7IH0KKyAgICBjb25zdCBIYXNoTWFwPFN0cmluZywg
U3RyaW5nPiYgY3VzdG9tRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VzdG9tRGF0YTsgfQorICAg
IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBjdXN0b21EYXRhKCkgeyByZXR1cm4gbV9jdXN0b21E
YXRhOyB9CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ2hyb21pdW1EYXRhT2JqZWN0KFN0b3Jh
Z2VNb2RlKTsKQEAgLTExOCw2ICsxMjEsOCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2ZpbGVD
b250ZW50RmlsZW5hbWU7CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9maWxlQ29udGVudDsK
IAorICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fY3VzdG9tRGF0YTsKKwogICAgIC8vIFRo
ZXNlIHR3byBhcmUgbGlua2VkLiBTZXR0aW5nIG1fdXJsIHdpbGwgc2V0IG1fdXJpTGlzdCB0byB0
aGUgc2FtZQogICAgIC8vIHN0cmluZyB2YWx1ZTsgc2V0dGluZyBtX3VyaUxpc3Qgd2lsbCBjYXVz
ZSBpdHMgY29udGVudHMgdG8gYmUgcGFyc2VkCiAgICAgLy8gYWNjb3JkaW5nIHRvIFJGQyAyNDgz
IGFuZCB0aGUgZmlyc3QgVVJMIGZvdW5kIHdpbGwgYmUgc2V0IGluIG1fdXJsLgpAQCAtMTI4LDQg
KzEzMywzIEBAIHByaXZhdGU6CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgotCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBv
cnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5o
CmluZGV4IDQwNzQ4MDQ5MjRjOTEzMGQ1NjZkYWEyODU1MWUzMDc0NGExYTAzODcuLmM5M2MyYWZi
MjcwZjZiMGM4ODg1ODMxYzIwMmQxZjNmMzk3Y2Q5NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oCkBAIC0xMDUsNiArMTA1LDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBTdHJpbmcgY2xpcGJvYXJkUmVhZFBsYWluVGV4dChQYXN0
ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJkQnVmZmVyKTsKICAgICBzdGF0aWMgdm9pZCBjbGlwYm9h
cmRSZWFkSFRNTChQYXN0ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJkQnVmZmVyLCBTdHJpbmcqLCBL
VVJMKiwgdW5zaWduZWQqIGZyYWdtZW50U3RhcnQsIHVuc2lnbmVkKiBmcmFnbWVudEVuZCk7CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBjbGlwYm9hcmRSZWFkSW1hZ2UoUGFz
dGVib2FyZFByaXZhdGU6OkNsaXBib2FyZEJ1ZmZlcik7CisgICAgc3RhdGljIFN0cmluZyBjbGlw
Ym9hcmRSZWFkQ3VzdG9tRGF0YShQYXN0ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJkQnVmZmVyLCBj
b25zdCBTdHJpbmcmIHR5cGUpOwogCiAgICAgLy8gT25seSB0aGUgY2xpcGJvYXJkUmVhZCBmdW5j
dGlvbnMgdGFrZSBhIGJ1ZmZlciBhcmd1bWVudCBiZWNhdXNlCiAgICAgLy8gQ2hyb21pdW0gY3Vy
cmVudGx5IHVzZXMgYSBkaWZmZXJlbnQgdGVjaG5pcXVlIHRvIHdyaXRlIHRvIGFsdGVybmF0ZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViQ2xp
cGJvYXJkLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJDbGlw
Ym9hcmQuaAppbmRleCAwZmM4ODA4YjQyNzQ3N2Q5MDE4NDk2ODhjMzA5MjcwNzA2YWMyY2UxLi5k
NDc2OTEwYmI0MDYyZDJkZGU2OTAyODNhZTkwYTVlZDQ5MzU4ZmY1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJDbGlwYm9hcmQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJDbGlwYm9hcmQuaApAQCAt
NzgsNiArNzgsOCBAQCBwdWJsaWM6CiAgICAgICAgIEJ1ZmZlciBidWZmZXIsIFdlYlVSTCogcGFn
ZVVSTCwgdW5zaWduZWQqIGZyYWdtZW50U3RhcnQsCiAgICAgICAgIHVuc2lnbmVkKiBmcmFnbWVu
dEVuZCkgeyByZXR1cm4gV2ViU3RyaW5nKCk7IH0KICAgICB2aXJ0dWFsIFdlYkRhdGEgcmVhZElt
YWdlKEJ1ZmZlcikgeyByZXR1cm4gV2ViRGF0YSgpOyB9CisgICAgdmlydHVhbCBXZWJTdHJpbmcg
cmVhZEN1c3RvbURhdGEoCisgICAgICAgIEJ1ZmZlciBidWZmZXIsIGNvbnN0IFdlYlN0cmluZyYg
dHlwZSkgeyByZXR1cm4gV2ViU3RyaW5nKCk7IH0KIAogICAgIHZpcnR1YWwgdm9pZCB3cml0ZVBs
YWluVGV4dChjb25zdCBXZWJTdHJpbmcmKSB7IH0KICAgICB2aXJ0dWFsIHZvaWQgd3JpdGVIVE1M
KApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2Vi
RHJhZ0RhdGEuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYkRy
YWdEYXRhLmgKaW5kZXggNjAzYTZiNTZhNDhjN2EzYmI3Mzk1YTY1NWY2YTU0YzJkN2ZjZmJiMC4u
MzhiZTc4YWRhZDQ1ODg0ZGY4NDhlMmRhYTQ5YTIyNjQ4YmVhNDM0OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViRHJhZ0RhdGEuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJEcmFnRGF0YS5oCkBAIC0z
Miw2ICszMiw3IEBACiAjZGVmaW5lIFdlYkRyYWdEYXRhX2gKIAogI2luY2x1ZGUgIldlYkNvbW1v
bi5oIgorI2luY2x1ZGUgIldlYlN0cmluZy5oIgogCiAjaWYgV0VCS0lUX0lNUExFTUVOVEFUSU9O
CiBuYW1lc3BhY2UgV2ViQ29yZSB7IGNsYXNzIENocm9taXVtRGF0YU9iamVjdDsgfQpAQCAtNDIs
NyArNDMsNiBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViRGF0YTsKIGNsYXNzIFdl
YkRyYWdEYXRhUHJpdmF0ZTsKLWNsYXNzIFdlYlN0cmluZzsKIGNsYXNzIFdlYlVSTDsKIHRlbXBs
YXRlIDx0eXBlbmFtZSBUPiBjbGFzcyBXZWJWZWN0b3I7CiAKQEAgLTk4LDYgKzk4LDEzIEBAIHB1
YmxpYzoKICAgICBXRUJLSVRfRVhQT1JUIFdlYkRhdGEgZmlsZUNvbnRlbnQoKSBjb25zdDsKICAg
ICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0RmlsZUNvbnRlbnQoY29uc3QgV2ViRGF0YSYpOwogCisg
ICAgc3RydWN0IEN1c3RvbURhdGEgeworICAgICAgICBXZWJTdHJpbmcgbV90eXBlOworICAgICAg
ICBXZWJTdHJpbmcgbV9kYXRhOworICAgIH07CisgICAgV0VCS0lUX0VYUE9SVCBXZWJWZWN0b3I8
Q3VzdG9tRGF0YT4gY3VzdG9tRGF0YSgpIGNvbnN0OworICAgIFdFQktJVF9FWFBPUlQgdm9pZCBz
ZXRDdXN0b21EYXRhKGNvbnN0IFdlYlZlY3RvcjxDdXN0b21EYXRhPiYpOworCiAjaWYgV0VCS0lU
X0lNUExFTUVOVEFUSU9OCiAgICAgV2ViRHJhZ0RhdGEoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdl
YkNvcmU6OkNocm9taXVtRGF0YU9iamVjdD4mKTsKICAgICBXZWJEcmFnRGF0YSYgb3BlcmF0b3I9
KGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q+Jik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3Bw
IGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcAppbmRleCA3
OGE5NGM3MjZkNTJhZmM2MmJlODdiYjhkOGZkYWNkMDU2NWQxNmJhLi4yNzE3MTZkNDhlMWQ1ZmRl
YzMwOTdjNDUzYWFmZjE4NDA4Zjk1MzhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL3NyYy9QbGF0Zm9ybVN1cHBvcnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
c3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAKQEAgLTIwMiw2ICsyMDIsMTIgQEAgUGFzc1JlZlB0cjxT
aGFyZWRCdWZmZXI+IFBsYXRmb3JtU3VwcG9ydDo6Y2xpcGJvYXJkUmVhZEltYWdlKAogICAgIHJl
dHVybiB3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y2xpcGJvYXJkKCktPnJlYWRJbWFnZShzdGF0
aWNfY2FzdDxXZWJDbGlwYm9hcmQ6OkJ1ZmZlcj4oYnVmZmVyKSk7CiB9CiAKK1N0cmluZyBQbGF0
Zm9ybVN1cHBvcnQ6OmNsaXBib2FyZFJlYWRDdXN0b21EYXRhKAorICAgIFBhc3RlYm9hcmRQcml2
YXRlOjpDbGlwYm9hcmRCdWZmZXIgYnVmZmVyLCBjb25zdCBTdHJpbmcmIHR5cGUpCit7CisgICAg
cmV0dXJuIHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5jbGlwYm9hcmQoKS0+cmVhZEN1c3RvbURh
dGEoc3RhdGljX2Nhc3Q8V2ViQ2xpcGJvYXJkOjpCdWZmZXI+KGJ1ZmZlciksIHR5cGUpOworfQor
CiB2b2lkIFBsYXRmb3JtU3VwcG9ydDo6Y2xpcGJvYXJkV3JpdGVTZWxlY3Rpb24oY29uc3QgU3Ry
aW5nJiBodG1sVGV4dCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IEtVUkwmIHNvdXJjZVVSTCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGNvbnN0IFN0cmluZyYgcGxhaW5UZXh0LApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRHJhZ0RhdGEuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViRHJhZ0RhdGEuY3BwCmluZGV4IDYyYjNiYzNkY2M2NmUwNzg0MDc0Yzcx
ZWQ1MmE2NmRmMGRkZGY5ZmEuLmY4MzRhMjJjNjZmMjBhNmRkNzhlNTM4ODBlMWEyYjljZDI5OTk3
YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkRyYWdEYXRhLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEcmFnRGF0YS5jcHAKQEAgLTM4
LDYgKzM4LDcgQEAKICNpbmNsdWRlICJXZWJVUkwuaCIKICNpbmNsdWRlICJXZWJWZWN0b3IuaCIK
IAorI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4K
IAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0yMDUsNiArMjA2LDI4IEBAIHZvaWQgV2Vi
RHJhZ0RhdGE6OnNldEZpbGVDb250ZW50KGNvbnN0IFdlYkRhdGEmIGZpbGVDb250ZW50KQogICAg
IG1fcHJpdmF0ZS0+c2V0RmlsZUNvbnRlbnQoZmlsZUNvbnRlbnQpOwogfQogCitXZWJWZWN0b3I8
V2ViRHJhZ0RhdGE6OkN1c3RvbURhdGE+IFdlYkRyYWdEYXRhOjpjdXN0b21EYXRhKCkgY29uc3QK
K3sKKyAgICBBU1NFUlQoIWlzTnVsbCgpKTsKKyAgICBXZWJWZWN0b3I8Q3VzdG9tRGF0YT4gY3Vz
dG9tRGF0YShzdGF0aWNfY2FzdDxzaXplX3Q+KG1fcHJpdmF0ZS0+Y3VzdG9tRGF0YSgpLnNpemUo
KSkpOworICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+Ojpjb25zdF9pdGVyYXRvciBiZWdpbiA9
IG1fcHJpdmF0ZS0+Y3VzdG9tRGF0YSgpLmJlZ2luKCk7CisgICAgSGFzaE1hcDxTdHJpbmcsIFN0
cmluZz46OmNvbnN0X2l0ZXJhdG9yIGVuZCA9IG1fcHJpdmF0ZS0+Y3VzdG9tRGF0YSgpLmVuZCgp
OworICAgIHNpemVfdCBpID0gMDsKKyAgICBmb3IgKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+Ojpj
b25zdF9pdGVyYXRvciBpdCA9IGJlZ2luOyBpdCAhPSBlbmQ7ICsraXQpIHsKKyAgICAgICAgQ3Vz
dG9tRGF0YSBkYXRhID0ge2l0LT5maXJzdCwgaXQtPnNlY29uZH07CisgICAgICAgIGN1c3RvbURh
dGFbaSsrXSA9IGRhdGE7CisgICAgfQorICAgIHJldHVybiBjdXN0b21EYXRhOworfQorCit2b2lk
IFdlYkRyYWdEYXRhOjpzZXRDdXN0b21EYXRhKGNvbnN0IFdlYlZlY3RvcjxXZWJEcmFnRGF0YTo6
Q3VzdG9tRGF0YT4mIGN1c3RvbURhdGEpCit7CisgICAgZW5zdXJlTXV0YWJsZSgpOworICAgIEhh
c2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBjdXN0b21EYXRhTWFwID0gbV9wcml2YXRlLT5jdXN0b21E
YXRhKCk7CisgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjdXN0b21EYXRhLnNpemUoKTsgKytp
KQorICAgICAgICBjdXN0b21EYXRhTWFwLnNldChjdXN0b21EYXRhW2ldLm1fdHlwZSwgY3VzdG9t
RGF0YVtpXS5tX2RhdGEpOworfQorCiBXZWJEcmFnRGF0YTo6V2ViRHJhZ0RhdGEoY29uc3QgV1RG
OjpQYXNzUmVmUHRyPFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdD4mIGRhdGEpCiAgICAgOiBt
X3ByaXZhdGUoc3RhdGljX2Nhc3Q8V2ViRHJhZ0RhdGFQcml2YXRlKj4oZGF0YS5sZWFrUmVmKCkp
KQogewpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGRlMTI2NGFhZTBmNWFjYmJjMjQyZTkwMzEzZGI4YjJiMmFkZGZjMTEuLjJm
NDUwMjlkNTFjMmZiZmQ0YTQ1MmUzMzc2M2MzMTc1NjUzN2U0NmYgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MSBAQAorMjAxMS0xMi0wMSAgRGFuaWVsIENoZW5nICA8ZGNoZW5nQGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBbY2hyb21pdW1dIEFkZCBwbHVtYmluZyBmb3Igc3VwcG9ydGluZyBjdXN0b20gTUlN
RSB0eXBlcyBpbiBEYXRhVHJhbnNmZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD03MzU5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2NsaXBib2FyZC1jdXN0b21EYXRh
LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2NsaXBi
b2FyZC1jdXN0b21EYXRhLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2RyYWct
Y3VzdG9tRGF0YS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2Ry
YWctY3VzdG9tRGF0YS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90
ZXN0X2V4cGVjdGF0aW9ucy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1NraXBwZWQ6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1Nr
aXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9y
bS93aW4vU2tpcHBlZDoKKwogMjAxMS0xMi0wMSAgTWFyayBQaWxncmltICA8cGlsZ3JpbUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgW0ZpbGVTeXN0ZW0gQVBJXSBEaXJlY3RvcnlFbnRyeS5yZW1v
dmVSZWN1cnNpdmVseSBzdWNjZXNzQ2FsbGJhY2sgaXMgcmVxdWlyZWQKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jbGlwYm9hcmQtY3VzdG9tRGF0YS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJvYXJkLWN1c3RvbURh
dGEtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdiMTA1MDhhOWZiZTRjYzc2ZmNhYTcyYjZiYWYx
YzRkOTA4YjI4ZjMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3Rl
Ym9hcmQvY2xpcGJvYXJkLWN1c3RvbURhdGEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAor
U2ltcGxlIHRlc3QgdGhhdCBjdXN0b20gY2xpcGJvYXJkIE1JTUUgdHlwZXMgY2FuIGJlIHNldCBk
dXJpbmcgY29weSBldmVudHMgYW5kIHJldHJpZXZlZCBkdXJpbmcgcGFzdGUgZXZlbnRzLiBUaGUg
dGVzdCBjYW4gYmUgbWFudWFsbHkgcnVuIGJ5IGNvcHlpbmcgYW55IHRleHQgb24gdGhpcyBwYWdl
IGFuZCB0aGVuIHBhc3RpbmcgYW55d2hlcmUuIE9uIHN1Y2Nlc3MsIHRoZSB3b3JkIFNVQ0NFU1Mg
d2lsbCBhcHBlYXIgYmVsb3cuCisKK1NVQ0NFU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Vk
aXRpbmcvcGFzdGVib2FyZC9jbGlwYm9hcmQtY3VzdG9tRGF0YS5odG1sIGIvTGF5b3V0VGVzdHMv
ZWRpdGluZy9wYXN0ZWJvYXJkL2NsaXBib2FyZC1jdXN0b21EYXRhLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MzFkOTliYjczOGMxZTI2MTRlYWM5MjdjMTBmMDk3N2I4YzQ2NmY1YQotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2FyZC9jbGlwYm9hcmQtY3VzdG9tRGF0YS5o
dG1sCkBAIC0wLDAgKzEsNDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzwv
aGVhZD4KKzxib2R5PgorPHA+U2ltcGxlIHRlc3QgdGhhdCBjdXN0b20gY2xpcGJvYXJkIE1JTUUg
dHlwZXMgY2FuIGJlIHNldCBkdXJpbmcgY29weSBldmVudHMKK2FuZCByZXRyaWV2ZWQgZHVyaW5n
IHBhc3RlIGV2ZW50cy4gVGhlIHRlc3QgY2FuIGJlIG1hbnVhbGx5IHJ1biBieSBjb3B5aW5nCith
bnkgdGV4dCBvbiB0aGlzIHBhZ2UgYW5kIHRoZW4gcGFzdGluZyBhbnl3aGVyZS4gT24gc3VjY2Vz
cywgdGhlIHdvcmQgU1VDQ0VTUword2lsbCBhcHBlYXIgYmVsb3cuCis8ZGl2IGlkPSJsb2ciPjwv
ZGl2PgorPHNjcmlwdD4KK2Z1bmN0aW9uIGNvcHkoZXZlbnQpIHsKKyAgICBldmVudC5jbGlwYm9h
cmREYXRhLnNldERhdGEoJ3RleHQnLCAnc2FtcGxlJyk7CisgICAgZXZlbnQuY2xpcGJvYXJkRGF0
YS5zZXREYXRhKCdjdXN0b20tZGF0YScsICdoZWxsbyB3b3JsZCcpOworICAgIGV2ZW50LnByZXZl
bnREZWZhdWx0KCk7Cit9CisKK2Z1bmN0aW9uIHBhc3RlKGV2ZW50KSB7CisgICAgdmFyIGZhaWxl
ZCA9IGZhbHNlOworICAgIGlmIChldmVudC5jbGlwYm9hcmREYXRhLnR5cGVzLmluZGV4T2YoJ3Rl
eHQvcGxhaW4nKSA8IDAKKyAgICAgICAgfHwgZXZlbnQuY2xpcGJvYXJkRGF0YS50eXBlcy5pbmRl
eE9mKCdjdXN0b20tZGF0YScpIDwgMCkKKyAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICBpZiAo
ZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0JykgIT0gJ3NhbXBsZScKKyAgICAgICAg
fHwgZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCdjdXN0b20tZGF0YScpICE9ICdoZWxsbyB3
b3JsZCcpCisgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2xvZycpLmlubmVyVGV4dCA9IGZhaWxlZCA/ICdGQUlMVVJFJyA6ICdTVUNDRVNTJzsKKyAg
ICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworfQorZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3Rl
bmVyKCdjb3B5JywgY29weSk7Citkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ3Bhc3Rl
JywgcGFzdGUpOworCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIGlmICghd2luZG93LmxheW91
dFRlc3RDb250cm9sbGVyKQorICAgICAgICByZXR1cm47CisKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci5kdW1wQXNUZXh0KCk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTsKKyAg
ICBkb2N1bWVudC5leGVjQ29tbWFuZCgncGFzdGUnKTsKK30KK3J1blRlc3QoKTsKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMv
ZHJhZy1jdXN0b21EYXRhLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2Ry
YWctY3VzdG9tRGF0YS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzc5NzAxOTU1N2ExMDI3YTIw
NzI5OGU0OTE1NWU2ZDBkN2U4MWE3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZXZlbnRzL2RyYWctY3VzdG9tRGF0YS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitU
byBtYW51YWxseSB0ZXN0LCBkcmFnICdEcmFnIE1lJyB0byAnRHJvcCBIZXJlJyBhbmQgZHJvcC4g
VGhlIHdvcmQgJ1NVQ0NFU1MnIHNob3VsZCBhcHBlYXIuCisKK0RyYWcgTWUKK0Ryb3AgSGVyZQor
U1VDQ0VTUworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWN1c3Rv
bURhdGEuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctY3VzdG9tRGF0YS5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmRjYTU3ZWZkNDYyMzU1ODRmYjllMjc3MGFkM2I5MDI1ZTllNzJmMGQKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWN1c3RvbURhdGEu
aHRtbApAQCAtMCwwICsxLDcxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8
c3R5bGU+CisjZHJhZyB7CisgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgaGVpZ2h0
OiAyMDBweDsKKyAgICB3aWR0aDogMjAwcHg7Cit9CisjZHJvcCB7CisgICAgYm9yZGVyOiAxcHgg
c29saWQgYmxhY2s7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICB3aWR0aDogMjAwcHg7Cit9Cis8
L3N0eWxlPgorPHNjcmlwdD4KK2Z1bmN0aW9uIGxvZyhzdHIpCit7CisgICAgdmFyIHJlc3VsdCA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQnKTsKKyAgICByZXN1bHQuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUoc3RyKSk7CisgICAgcmVzdWx0LmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2JyJykpOworfQorZnVuY3Rpb24gZHJhZ3N0YXJ0KGV2
ZW50KSB7CisgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQnLCAnc2FtcGxlJyk7
CisgICAgZXZlbnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ2N1c3RvbS1kYXRhJywgJ2hlbGxvIHdv
cmxkJyk7Cit9CitmdW5jdGlvbiBkcmFnZW50ZXIoZXZlbnQpIHsKKyAgICBldmVudC5wcmV2ZW50
RGVmYXVsdCgpOworfQorZnVuY3Rpb24gZHJhZ292ZXIoZXZlbnQpIHsKKyAgICBldmVudC5wcmV2
ZW50RGVmYXVsdCgpOworfQorZnVuY3Rpb24gZHJvcChldmVudCkgeworICAgIHZhciBmYWlsZWQg
PSBmYWxzZTsKKyAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzLmluZGV4T2YoJ3RleHQv
cGxhaW4nKSA8IDAKKyAgICAgICAgfHwgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzLmluZGV4T2Yo
J2N1c3RvbS1kYXRhJykgPCAwKQorICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgIGlmIChldmVu
dC5kYXRhVHJhbnNmZXIuZ2V0RGF0YSgndGV4dCcpICE9ICdzYW1wbGUnCisgICAgICAgIHx8IGV2
ZW50LmRhdGFUcmFuc2Zlci5nZXREYXRhKCdjdXN0b20tZGF0YScpICE9ICdoZWxsbyB3b3JsZCcp
CisgICAgICAgIGZhaWxlZCA9IHRydWU7CisgICAgbG9nKGZhaWxlZCA/ICdGQUlMVVJFJyA6ICdT
VUNDRVNTJyk7CisgICAgaWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAg
bGF5b3V0VGVzdENvbnRyb2xsZXIubm90aWZ5RG9uZSgpOworfQord2luZG93Lm9ubG9hZCA9IGZ1
bmN0aW9uKCkKK3sKKyAgICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAg
ICAgcmV0dXJuOworICAgIGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBs
YXlvdXRUZXN0Q29udHJvbGxlci53YWl0VW50aWxEb25lKCk7CisKKyAgICB2YXIgZHJhZ0VsZW1l
bnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHJhZycpOworICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKGRyYWdFbGVtZW50Lm9mZnNldExlZnQgKyBkcmFnRWxlbWVudC5vZmZzZXRXaWR0
aCAvIDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJhZ0VsZW1lbnQub2Zmc2V0VG9w
ICsgZHJhZ0VsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMik7CisgICAgZXZlbnRTZW5kZXIubW91c2VE
b3duKCk7CisgICAgZXZlbnRTZW5kZXIubGVhcEZvcndhcmQoMTAwKTsKKyAgICB2YXIgZHJvcEVs
ZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnZHJvcCcpOworICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKGRyb3BFbGVtZW50Lm9mZnNldExlZnQgKyBkcm9wRWxlbWVudC5vZmZzZXRX
aWR0aCAvIDIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJvcEVsZW1lbnQub2Zmc2V0
VG9wICsgZHJvcEVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMik7CisgICAgZXZlbnRTZW5kZXIubW91
c2VVcCgpOworfQorPC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRvIG1hbnVhbGx5IHRl
c3QsIGRyYWcgJ0RyYWcgTWUnIHRvICdEcm9wIEhlcmUnIGFuZCBkcm9wLiBUaGUgd29yZCAnU1VD
Q0VTUycgc2hvdWxkIGFwcGVhci4KKzxkaXYgZHJhZ2dhYmxlPSJ0cnVlIiBpZD0iZHJhZyIgb25k
cmFnc3RhcnQ9ImRyYWdzdGFydChldmVudCkiPkRyYWcgTWU8L2Rpdj4KKzxkaXYgaWQ9ImRyb3Ai
IG9uZHJhZ2VudGVyPSJkcmFnZW50ZXIoZXZlbnQpIiBvbmRyYWdvdmVyPSJkcmFnb3ZlcihldmVu
dCkiIG9uZHJvcD0iZHJvcChldmVudCkiPkRyb3AgSGVyZTwvZGl2PgorPC9kaXY+Cis8ZGl2IGlk
PSJyZXN1bHQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vY2hyb21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IDAyZDcyYTcwOTM4
OGVmNjk2ZTc2M2JkM2I1ZDZjYTdjYjk3YzkzYjMuLmYzY2JiODVjYjYxM2RhYTNiNTBmMTUyNzNm
OTBjZDgzNDVlY2Q5NGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L3Rlc3RfZXhwZWN0YXRpb25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS90ZXN0X2V4cGVjdGF0aW9ucy50eHQKQEAgLTM2OTEsNiArMzY5MSw5IEBAIEJVR19TRU5PUkJM
QU5DTyBHUFUgOiBmYXN0L2NhbnZhcy9jYW52YXMtdHJhbnNmb3Jtcy1maWxsUmVjdC1zaGFkb3cu
aHRtbCA9IFRFWFQKIAogQlVHV0s2Njk1MyA6IHRyYW5zaXRpb25zL2RlZmF1bHQtdGltaW5nLWZ1
bmN0aW9uLmh0bWwgPSBQQVNTIEZBSUwKIAorLy8gRGVwZW5kcyBvbiBDaHJvbWl1bSBmb2xsb3cg
dXAgY2hhbmdlIGJlZm9yZSB0aGV5IHdpbGwgcGFzcy4KK0JVR0NSMzEwMzcgOiBmYXN0L2V2ZW50
cy9kcmFnLWN1c3RvbURhdGEuaHRtbCA9IEZBSUwKKwogLy8gTmVlZCB0byByZWJhc2VsaW5lIG9u
IHdpbiBhbmQgbWFjLgogQlVHX1RPTlkgTUFDIDogY3NzMy9mbGV4Ym94L3JlcGFpbnQuaHRtbCA9
IFBBU1MgRkFJTAogQlVHX1RPTlkgTUFDIDogY3NzMy9mbGV4Ym94L3JlcGFpbnQtcnRsLWNvbHVt
bi5odG1sID0gUEFTUyBGQUlMCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwv
U2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCmluZGV4IDA1MTAzYmQ2
YTNmZTE5ZmM2OTU1YTYzNDQ2NWU2MzA2NmVjODE1ZTUuLjg3MmJkOGNjNGJjNGEzYmRhYTE3ZjM1
MDE3NDg2NGQ5OWMxNTVlZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9T
a2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCkBAIC0xMzQsNiAr
MTM0LDcgQEAgZmFzdC9ldmVudHMvY3Jhc2gtb24tbXV0YXRlLWR1cmluZy1kcm9wLmh0bWwKIGZh
c3QvZXZlbnRzL2RyYWctYW5kLWRyb3AtZGF0YVRyYW5zZmVyLXR5cGVzLW5vY3Jhc2guaHRtbAog
ZmFzdC9ldmVudHMvZHJhZy1hbmQtZHJvcC1maXJlLWRyYWctZHJhZ292ZXIuaHRtbAogZmFzdC9l
dmVudHMvZHJhZy1hbmQtZHJvcC5odG1sCitmYXN0L2V2ZW50cy9kcmFnLWN1c3RvbURhdGEuaHRt
bAogZmFzdC9ldmVudHMvZHJhZy1zZWxlY3RzLWltYWdlLmh0bWwKIGZhc3QvZXZlbnRzL2Ryb3B6
b25lLTAwMS5odG1sCiBmYXN0L2V2ZW50cy9kcm9wem9uZS0wMDIuaHRtbApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZAppbmRleCAxMDVhMzEyZTQ3NDYyNDVjNDE3MDYyMzA0ZjFjYmIyZDEwODc5NWE2
Li5jM2Q0ZDIxOWM2ODVhMWZhZWUwNTlkZTFjMjZkY2M3YTI4MjAwMWRjIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9ndGsvU2tpcHBlZApAQCAtMzAwLDYgKzMwMCwxMCBAQCBtZWRpYS9tZWRpYS1jYXB0aW9ucy5o
dG1sCiBlZGl0aW5nL3Bhc3RlYm9hcmQvZGF0YS10cmFuc2Zlci1pdGVtcy5odG1sCiBlZGl0aW5n
L3Bhc3RlYm9hcmQvZGF0YS10cmFuc2Zlci1pdGVtcy1pbWFnZS1wbmcuaHRtbAogCisjIEN1c3Rv
bSBNSU1FIHR5cGUgc3VwcG9ydCBpbiBEYXRhVHJhbnNmZXIgaXMgbm90IHlldCBpbXBsZW1lbnRl
ZC4KK2VkaXRpbmcvcGFzdGVib2FyZC9jbGlwYm9hcmQtY3VzdG9tRGF0YS5odG1sCitmYXN0L2V2
ZW50cy9kcmFnLWN1c3RvbURhdGEuaHRtbAorCiAjIE5lZWRzIGdyYW1tYXIgY2hlY2tpbmcuCiBl
ZGl0aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmlu
ZGV4IGU4Yjk5NzQ2ZDQ2NDAxY2Y2NjcxOGViNDc5MDkwNDUxNGEwN2E5NjQuLjJlZWU4MjliM2I3
ZDk3MjA3MGMyZTE3MWE4ZjE3NzIwMmQ5ZjIxYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVk
CkBAIC0zNDksNiArMzQ5LDEwIEBAIGNvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLW5vbnByZW11bHRp
cGxpZWQtYmxlbmQuaHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMu
aHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMtaW1hZ2UtcG5nLmh0
bWwKIAorIyBDdXN0b20gTUlNRSB0eXBlIHN1cHBvcnQgaW4gRGF0YVRyYW5zZmVyIGlzIG5vdCB5
ZXQgaW1wbGVtZW50ZWQuCitlZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJvYXJkLWN1c3RvbURhdGEu
aHRtbAorZmFzdC9ldmVudHMvZHJhZy1jdXN0b21EYXRhLmh0bWwKKwogIyBOZWVkIHRvIGltcGxl
bWVudCBXZWJHZW9sb2NhdGlvblJlcXVlc3Q6OmNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0IG9uIG1h
Yy4KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1OTQ0CiBmYXN0
L2RvbS9HZW9sb2NhdGlvbi9wYWdlLXJlbG9hZC1jYW5jZWwtcGVybWlzc2lvbi1yZXF1ZXN0cy5o
dG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCA2YzMzZmRkOGM2YTU2NzE2MjM0MmMwYWRi
ZTE1ZDBiODA2NWY0NDc2Li4wNmFlYWEwNzRkYWI3YjljMDIwNTViOTIyMzBhMzViODg4NjAwZGJi
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTMzNCw2ICszMzQsMTAgQEAgc3ZnL2FzLWlt
YWdlL2RyYWctc3ZnLWFzLWltYWdlLmh0bWwKIGZhc3QvZm9ybXMvcmFuZ2Uvc2xpZGVyLWRlbGV0
ZS13aGlsZS1kcmFnZ2luZy10aHVtYi5odG1sCiBmYXN0L2Zvcm1zL3NlbGVjdC1tdWx0aXBsZS1l
bGVtZW50cy13aXRoLW1vdXNlLWRyYWctd2l0aC1vcHRpb25zLWxlc3MtdGhhbi1zaXplLmh0bWwK
IAorIyBDdXN0b20gTUlNRSB0eXBlIHN1cHBvcnQgaW4gRGF0YVRyYW5zZmVyIG5vdCB5ZXQgaW1w
bGVtZW50ZWQuCitlZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJvYXJkLWN1c3RvbURhdGEuaHRtbAor
ZmFzdC9ldmVudHMvZHJhZy1jdXN0b21EYXRhLmh0bWwKKwogIyBFdmVudFNlbmRlcjo6ZHVtcEZp
bGVuYW1lQmVpbmdEcmFnZ2VkIG5vdCBpbXBsZW1lbnRlZC4KICMgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTYxODI4CiBmYXN0L2V2ZW50cy9kcmFnLWltYWdlLWZpbGVu
YW1lLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggNDhlZTBkODZhZWJmODEwNWIw
NTdhMzc4YzIzODliZmQ0NTcxMThmZC4uZGMzN2FiNmZhYmQ1MjcxNGNkNmFmNzlmNzBlMzMwZGYy
Y2IwMTI4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTEyNzksNiArMTI3OSwxMCBA
QCBlZGl0aW5nL3Bhc3RlYm9hcmQvb25wYXN0ZS10ZXh0LWh0bWwtdHlwZXMuaHRtbAogZWRpdGlu
Zy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMuaHRtbAogZWRpdGluZy9wYXN0ZWJvYXJk
L2RhdGEtdHJhbnNmZXItaXRlbXMtaW1hZ2UtcG5nLmh0bWwKIAorIyBDdXN0b20gTUlNRSB0eXBl
IHN1cHBvcnQgaW4gRGF0YVRyYW5zZmVyIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCitlZGl0aW5nL3Bh
c3RlYm9hcmQvY2xpcGJvYXJkLWN1c3RvbURhdGEuaHRtbAorZmFzdC9ldmVudHMvZHJhZy1jdXN0
b21EYXRhLmh0bWwKKwogIyBOZWVkcyBleHBlY3RhdGlvbiB1cGRhdGUKIGZhc3QvZG9tL0hUTUxN
ZXRlckVsZW1lbnQvbWV0ZXItZWxlbWVudC5odG1sCiBmYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50
L21ldGVyLWJvdW5kYXJ5LXZhbHVlcy5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117572</attachid>
            <date>2011-12-01 22:44:38 -0800</date>
            <delta_ts>2011-12-01 23:56:34 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73594-20111201224437.patch</filename>
            <type>text/plain</type>
            <size>21730</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDY2YWE4MjIwZmEzZGE1
MjJmOTY3MjhmYmMyM2Q2MDU3ZGZiN2JlZC4uMzU3MzQ0NDlkMWFiYjQ4MDYwOTU1NjAzZDI3MTM0
Yjg3MzUxMjNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTEyLTAxICBEYW5p
ZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IHBsdW1iaW5nIGZvciBzdXBwb3J0aW5nIGN1c3RvbSBNSU1FIHR5cGVzIGluIERhdGFUcmFuc2Zl
ci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNTk0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6
IGVkaXRpbmcvcGFzdGVib2FyZC9jbGlwYm9hcmQtY3VzdG9tRGF0YS5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2V2ZW50cy9kcmFnLWN1c3RvbURhdGEuaHRtbAorCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9taXVtRGF0YU9iamVjdDo6dHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1EYXRh
T2JqZWN0OjpnZXREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6
c2V0RGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6OmN1c3RvbURhdGEpOgor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oOgorCiAyMDExLTEy
LTAxICBNYXJrIFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbRmls
ZVN5c3RlbSBBUEldIERpcmVjdG9yeUVudHJ5LnJlbW92ZVJlY3Vyc2l2ZWx5IHN1Y2Nlc3NDYWxs
YmFjayBpcyByZXF1aXJlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmZmFmMGEyNmJl
YTgwZGE3OTg0ZDQzYjk2MGQ4OWZiYjEyMTlhZjAzLi5mNzQ2OWY5ZmQ2MjE3NWExZTE3ODczMmU5
ODMyYjZkZGQzMzNiNTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDExLTEyLTAxICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFtjaHJvbWl1bV0gQWRkIHBsdW1iaW5nIGZvciBzdXBwb3J0aW5nIGN1c3RvbSBNSU1F
IHR5cGVzIGluIERhdGFUcmFuc2Zlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTczNTk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBwdWJsaWMvcGxhdGZvcm0vV2ViQ2xpcGJvYXJkLmg6CisgICAgICAg
IChXZWJLaXQ6OldlYkNsaXBib2FyZDo6cmVhZEN1c3RvbURhdGEpOgorICAgICAgICAqIHB1Ymxp
Yy9wbGF0Zm9ybS9XZWJEcmFnRGF0YS5oOgorICAgICAgICAqIHNyYy9QbGF0Zm9ybVN1cHBvcnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TdXBwb3J0OjpjbGlwYm9hcmRSZWFkQ3Vz
dG9tRGF0YSk6CisgICAgICAgICogc3JjL1dlYkRyYWdEYXRhLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRHJhZ0RhdGE6OmN1c3RvbURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJEcmFnRGF0
YTo6c2V0Q3VzdG9tRGF0YSk6CisKIDIwMTEtMTItMDEgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hl
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBhZGQgcmVmZXJyZXIgcG9saWN5
IHRvIFdlYkNvbnRleHRNZW51RGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5jcHAKaW5kZXggZjk5OWMxMzFkOTJiMTEw
NTMzNWVjMmRlMWFlZWNiMDNiMGM1M2U1ZC4uMDVjNWUxMzBjY2ViZjU2MTQ5NjI2NmFhMWM1OGZl
ZmY0NDVmNDg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
Q2hyb21pdW1EYXRhT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9DaHJvbWl1bURhdGFPYmplY3QuY3BwCkBAIC0xMjQsMTAgKzEyNCwxNSBAQCBIYXNoU2V0
PFN0cmluZz4gQ2hyb21pdW1EYXRhT2JqZWN0Ojp0eXBlcygpIGNvbnN0CiAgICAgaWYgKCFtX3Rl
eHRIdG1sLmlzRW1wdHkoKSkKICAgICAgICAgcmVzdWx0cy5hZGQobWltZVR5cGVUZXh0SFRNTCk7
CiAKKyAgICBmb3IgKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+Ojpjb25zdF9pdGVyYXRvcjo6S2V5
cyBpdCA9IG1fY3VzdG9tRGF0YS5iZWdpbigpLmtleXMoKTsKKyAgICAgICAgIGl0ICE9IG1fY3Vz
dG9tRGF0YS5lbmQoKS5rZXlzKCk7ICsraXQpIHsKKyAgICAgICAgcmVzdWx0cy5hZGQoKml0KTsK
KyAgICB9CisKICAgICByZXR1cm4gcmVzdWx0czsKIH0KIAotU3RyaW5nIENocm9taXVtRGF0YU9i
amVjdDo6Z2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wmIHN1Y2Nlc3MpCitTdHJpbmcg
Q2hyb21pdW1EYXRhT2JqZWN0OjpnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCYgc3Vj
Y2VzcykgY29uc3QKIHsKICAgICBpZiAodHlwZSA9PSBtaW1lVHlwZVRleHRQbGFpbikgewogICAg
ICAgICBpZiAobV9zdG9yYWdlTW9kZSA9PSBQYXN0ZWJvYXJkKSB7CkBAIC0xNjcsNiArMTcyLDE4
IEBAIFN0cmluZyBDaHJvbWl1bURhdGFPYmplY3Q6OmdldERhdGEoY29uc3QgU3RyaW5nJiB0eXBl
LCBib29sJiBzdWNjZXNzKQogICAgICAgICByZXR1cm4gbV9kb3dubG9hZE1ldGFkYXRhOwogICAg
IH0KIAorICAgIGlmIChtX3N0b3JhZ2VNb2RlID09IFBhc3RlYm9hcmQpIHsKKyAgICAgICAgU3Ry
aW5nIGRhdGEgPSBQbGF0Zm9ybVN1cHBvcnQ6OmNsaXBib2FyZFJlYWRDdXN0b21EYXRhKGN1cnJl
bnRQYXN0ZWJvYXJkQnVmZmVyKCksIHR5cGUpOworICAgICAgICBzdWNjZXNzID0gIWRhdGEuaXNF
bXB0eSgpOworICAgICAgICByZXR1cm4gZGF0YTsKKyAgICB9CisKKyAgICBIYXNoTWFwPFN0cmlu
ZywgU3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2N1c3RvbURhdGEuZmluZCh0eXBlKTsK
KyAgICBpZiAoaXQgIT0gbV9jdXN0b21EYXRhLmVuZCgpKSB7CisgICAgICAgIHN1Y2Nlc3MgPSB0
cnVlOworICAgICAgICByZXR1cm4gaXQtPnNlY29uZDsKKyAgICB9CisKICAgICBzdWNjZXNzID0g
ZmFsc2U7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQpAQCAtMjE3LDcgKzIzNCwxMSBAQCBib29s
IENocm9taXVtRGF0YU9iamVjdDo6c2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0
cmluZyYgZGF0YSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIGZh
bHNlOworICAgIGlmICh0eXBlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgbV9jdXN0b21EYXRhLnNldCh0eXBlLCBkYXRhKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAog
Ym9vbCBDaHJvbWl1bURhdGFPYmplY3Q6OmNvbnRhaW5zRmlsZW5hbWVzKCkgY29uc3QKQEAgLTI1
Niw0ICsyNzcsMyBAQCBDaHJvbWl1bURhdGFPYmplY3Q6OkNocm9taXVtRGF0YU9iamVjdChjb25z
dCBDaHJvbWl1bURhdGFPYmplY3QmIG90aGVyKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVt
RGF0YU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1E
YXRhT2JqZWN0LmgKaW5kZXggZjc5ZWY1Yjc1Y2NkMmQ5YmM0MTExZGZiMDIyYjYzY2ZmMmM3MDQ2
Mi4uOWRkZmIwYjkzNjQ1MTExM2IyYzgwMjBlODZmYzcyODcwMmY4YWVkOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmgK
QEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1T
dHJpbmcuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTc1LDcgKzc2LDcgQEAgcHVibGljOgogICAgIGJv
b2wgaGFzRGF0YSgpIGNvbnN0OwogCiAgICAgSGFzaFNldDxTdHJpbmc+IHR5cGVzKCkgY29uc3Q7
Ci0gICAgU3RyaW5nIGdldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBib29sJiBzdWNjZXNzKTsK
KyAgICBTdHJpbmcgZ2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wmIHN1Y2Nlc3MpIGNv
bnN0OwogICAgIGJvb2wgc2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYg
ZGF0YSk7CiAKICAgICAvLyBTcGVjaWFsIGhhbmRsZXJzIGZvciBVUkwvSFRNTCBtZXRhZGF0YS4K
QEAgLTk2LDYgKzk3LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0RmlsZUNvbnRlbnRGaWxlbmFt
ZShjb25zdCBTdHJpbmcmIGZpbGVDb250ZW50RmlsZW5hbWUpIHsgbV9maWxlQ29udGVudEZpbGVu
YW1lID0gZmlsZUNvbnRlbnRGaWxlbmFtZTsgfQogICAgIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBmaWxlQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsZUNvbnRlbnQ7IH0KICAgICB2b2lk
IHNldEZpbGVDb250ZW50KFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBmaWxlQ29udGVudCkgeyBt
X2ZpbGVDb250ZW50ID0gZmlsZUNvbnRlbnQ7IH0KKyAgICBjb25zdCBIYXNoTWFwPFN0cmluZywg
U3RyaW5nPiYgY3VzdG9tRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VzdG9tRGF0YTsgfQorICAg
IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBjdXN0b21EYXRhKCkgeyByZXR1cm4gbV9jdXN0b21E
YXRhOyB9CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ2hyb21pdW1EYXRhT2JqZWN0KFN0b3Jh
Z2VNb2RlKTsKQEAgLTExOCw2ICsxMjEsOCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2ZpbGVD
b250ZW50RmlsZW5hbWU7CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9maWxlQ29udGVudDsK
IAorICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fY3VzdG9tRGF0YTsKKwogICAgIC8vIFRo
ZXNlIHR3byBhcmUgbGlua2VkLiBTZXR0aW5nIG1fdXJsIHdpbGwgc2V0IG1fdXJpTGlzdCB0byB0
aGUgc2FtZQogICAgIC8vIHN0cmluZyB2YWx1ZTsgc2V0dGluZyBtX3VyaUxpc3Qgd2lsbCBjYXVz
ZSBpdHMgY29udGVudHMgdG8gYmUgcGFyc2VkCiAgICAgLy8gYWNjb3JkaW5nIHRvIFJGQyAyNDgz
IGFuZCB0aGUgZmlyc3QgVVJMIGZvdW5kIHdpbGwgYmUgc2V0IGluIG1fdXJsLgpAQCAtMTI4LDQg
KzEzMywzIEBAIHByaXZhdGU6CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgotCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBv
cnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5o
CmluZGV4IDQwNzQ4MDQ5MjRjOTEzMGQ1NjZkYWEyODU1MWUzMDc0NGExYTAzODcuLmM5M2MyYWZi
MjcwZjZiMGM4ODg1ODMxYzIwMmQxZjNmMzk3Y2Q5NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oCkBAIC0xMDUsNiArMTA1LDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBTdHJpbmcgY2xpcGJvYXJkUmVhZFBsYWluVGV4dChQYXN0
ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJkQnVmZmVyKTsKICAgICBzdGF0aWMgdm9pZCBjbGlwYm9h
cmRSZWFkSFRNTChQYXN0ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJkQnVmZmVyLCBTdHJpbmcqLCBL
VVJMKiwgdW5zaWduZWQqIGZyYWdtZW50U3RhcnQsIHVuc2lnbmVkKiBmcmFnbWVudEVuZCk7CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBjbGlwYm9hcmRSZWFkSW1hZ2UoUGFz
dGVib2FyZFByaXZhdGU6OkNsaXBib2FyZEJ1ZmZlcik7CisgICAgc3RhdGljIFN0cmluZyBjbGlw
Ym9hcmRSZWFkQ3VzdG9tRGF0YShQYXN0ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJkQnVmZmVyLCBj
b25zdCBTdHJpbmcmIHR5cGUpOwogCiAgICAgLy8gT25seSB0aGUgY2xpcGJvYXJkUmVhZCBmdW5j
dGlvbnMgdGFrZSBhIGJ1ZmZlciBhcmd1bWVudCBiZWNhdXNlCiAgICAgLy8gQ2hyb21pdW0gY3Vy
cmVudGx5IHVzZXMgYSBkaWZmZXJlbnQgdGVjaG5pcXVlIHRvIHdyaXRlIHRvIGFsdGVybmF0ZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViQ2xp
cGJvYXJkLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJDbGlw
Ym9hcmQuaAppbmRleCAwZmM4ODA4YjQyNzQ3N2Q5MDE4NDk2ODhjMzA5MjcwNzA2YWMyY2UxLi5h
MDJhNzMwZjc1YWJkNDIxYTExNWM4YzViYTlkMmVjNjVjZDVkMjk4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJDbGlwYm9hcmQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJDbGlwYm9hcmQuaApAQCAt
NzgsNiArNzgsOCBAQCBwdWJsaWM6CiAgICAgICAgIEJ1ZmZlciBidWZmZXIsIFdlYlVSTCogcGFn
ZVVSTCwgdW5zaWduZWQqIGZyYWdtZW50U3RhcnQsCiAgICAgICAgIHVuc2lnbmVkKiBmcmFnbWVu
dEVuZCkgeyByZXR1cm4gV2ViU3RyaW5nKCk7IH0KICAgICB2aXJ0dWFsIFdlYkRhdGEgcmVhZElt
YWdlKEJ1ZmZlcikgeyByZXR1cm4gV2ViRGF0YSgpOyB9CisgICAgdmlydHVhbCBXZWJTdHJpbmcg
cmVhZEN1c3RvbURhdGEoCisgICAgICAgIEJ1ZmZlciwgY29uc3QgV2ViU3RyaW5nJiB0eXBlKSB7
IHJldHVybiBXZWJTdHJpbmcoKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHdyaXRlUGxhaW5UZXh0
KGNvbnN0IFdlYlN0cmluZyYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3cml0ZUhUTUwoCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJEcmFnRGF0
YS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViRHJhZ0RhdGEu
aAppbmRleCA2MDNhNmI1NmE0OGM3YTNiYjczOTVhNjU1ZjZhNTRjMmQ3ZmNmYmIwLi4xNzEyMzFl
Y2EzNGJhNDc3N2Q2YWJlYTQyMzYzYzRkYzk2ZDM5NjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJEcmFnRGF0YS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYkRyYWdEYXRhLmgKQEAgLTMyLDYgKzMy
LDcgQEAKICNkZWZpbmUgV2ViRHJhZ0RhdGFfaAogCiAjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCisj
aW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KIG5hbWVz
cGFjZSBXZWJDb3JlIHsgY2xhc3MgQ2hyb21pdW1EYXRhT2JqZWN0OyB9CkBAIC00Miw3ICs0Myw2
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJEYXRhOwogY2xhc3MgV2ViRHJhZ0Rh
dGFQcml2YXRlOwotY2xhc3MgV2ViU3RyaW5nOwogY2xhc3MgV2ViVVJMOwogdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+IGNsYXNzIFdlYlZlY3RvcjsKIApAQCAtOTgsNiArOTgsMTMgQEAgcHVibGljOgog
ICAgIFdFQktJVF9FWFBPUlQgV2ViRGF0YSBmaWxlQ29udGVudCgpIGNvbnN0OwogICAgIFdFQktJ
VF9FWFBPUlQgdm9pZCBzZXRGaWxlQ29udGVudChjb25zdCBXZWJEYXRhJik7CiAKKyAgICBzdHJ1
Y3QgQ3VzdG9tRGF0YSB7CisgICAgICAgIFdlYlN0cmluZyB0eXBlOworICAgICAgICBXZWJTdHJp
bmcgZGF0YTsKKyAgICB9OworICAgIFdFQktJVF9FWFBPUlQgV2ViVmVjdG9yPEN1c3RvbURhdGE+
IGN1c3RvbURhdGEoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0Q3VzdG9tRGF0
YShjb25zdCBXZWJWZWN0b3I8Q3VzdG9tRGF0YT4mKTsKKwogI2lmIFdFQktJVF9JTVBMRU1FTlRB
VElPTgogICAgIFdlYkRyYWdEYXRhKGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpDaHJv
bWl1bURhdGFPYmplY3Q+Jik7CiAgICAgV2ViRHJhZ0RhdGEmIG9wZXJhdG9yPShjb25zdCBXVEY6
OlBhc3NSZWZQdHI8V2ViQ29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0PiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAKaW5kZXggNzhhOTRjNzI2ZDUy
YWZjNjJiZTg3YmI4ZDhmZGFjZDA1NjVkMTZiYS4uMjcxNzE2ZDQ4ZTFkNWZkZWMzMDk3YzQ1M2Fh
ZmYxODQwOGY5NTM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxh
dGZvcm1TdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9y
bVN1cHBvcnQuY3BwCkBAIC0yMDIsNiArMjAyLDEyIEBAIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBQbGF0Zm9ybVN1cHBvcnQ6OmNsaXBib2FyZFJlYWRJbWFnZSgKICAgICByZXR1cm4gd2ViS2l0
UGxhdGZvcm1TdXBwb3J0KCktPmNsaXBib2FyZCgpLT5yZWFkSW1hZ2Uoc3RhdGljX2Nhc3Q8V2Vi
Q2xpcGJvYXJkOjpCdWZmZXI+KGJ1ZmZlcikpOwogfQogCitTdHJpbmcgUGxhdGZvcm1TdXBwb3J0
OjpjbGlwYm9hcmRSZWFkQ3VzdG9tRGF0YSgKKyAgICBQYXN0ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJv
YXJkQnVmZmVyIGJ1ZmZlciwgY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIHJldHVybiB3ZWJL
aXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y2xpcGJvYXJkKCktPnJlYWRDdXN0b21EYXRhKHN0YXRpY19j
YXN0PFdlYkNsaXBib2FyZDo6QnVmZmVyPihidWZmZXIpLCB0eXBlKTsKK30KKwogdm9pZCBQbGF0
Zm9ybVN1cHBvcnQ6OmNsaXBib2FyZFdyaXRlU2VsZWN0aW9uKGNvbnN0IFN0cmluZyYgaHRtbFRl
eHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBL
VVJMJiBzb3VyY2VVUkwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBTdHJpbmcmIHBsYWluVGV4dCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkRyYWdEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkRyYWdEYXRhLmNwcAppbmRleCA2MmIzYmMzZGNjNjZlMDc4NDA3NGM3MWVkNTJhNjZkZjBk
ZGRmOWZhLi4wNmJmYmI2NTYzYjI2ZGZjOWYzY2Y0M2Q4M2M4OGY4YmViNGU5YTkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEcmFnRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRHJhZ0RhdGEuY3BwCkBAIC0zOCw2ICszOCw3IEBA
CiAjaW5jbHVkZSAiV2ViVVJMLmgiCiAjaW5jbHVkZSAiV2ViVmVjdG9yLmgiCiAKKyNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwpAQCAtMjA1LDYgKzIwNiwyOCBAQCB2b2lkIFdlYkRyYWdEYXRhOjpz
ZXRGaWxlQ29udGVudChjb25zdCBXZWJEYXRhJiBmaWxlQ29udGVudCkKICAgICBtX3ByaXZhdGUt
PnNldEZpbGVDb250ZW50KGZpbGVDb250ZW50KTsKIH0KIAorV2ViVmVjdG9yPFdlYkRyYWdEYXRh
OjpDdXN0b21EYXRhPiBXZWJEcmFnRGF0YTo6Y3VzdG9tRGF0YSgpIGNvbnN0Cit7CisgICAgQVNT
RVJUKCFpc051bGwoKSk7CisgICAgV2ViVmVjdG9yPEN1c3RvbURhdGE+IGN1c3RvbURhdGEoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihtX3ByaXZhdGUtPmN1c3RvbURhdGEoKS5zaXplKCkpKTsKKyAgICBI
YXNoTWFwPFN0cmluZywgU3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgYmVnaW4gPSBtX3ByaXZhdGUt
PmN1c3RvbURhdGEoKS5iZWdpbigpOworICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+Ojpjb25z
dF9pdGVyYXRvciBlbmQgPSBtX3ByaXZhdGUtPmN1c3RvbURhdGEoKS5lbmQoKTsKKyAgICBzaXpl
X3QgaSA9IDA7CisgICAgZm9yIChIYXNoTWFwPFN0cmluZywgU3RyaW5nPjo6Y29uc3RfaXRlcmF0
b3IgaXQgPSBiZWdpbjsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIEN1c3RvbURhdGEgZGF0
YSA9IHtpdC0+Zmlyc3QsIGl0LT5zZWNvbmR9OworICAgICAgICBjdXN0b21EYXRhW2krK10gPSBk
YXRhOworICAgIH0KKyAgICByZXR1cm4gY3VzdG9tRGF0YTsKK30KKwordm9pZCBXZWJEcmFnRGF0
YTo6c2V0Q3VzdG9tRGF0YShjb25zdCBXZWJWZWN0b3I8V2ViRHJhZ0RhdGE6OkN1c3RvbURhdGE+
JiBjdXN0b21EYXRhKQoreworICAgIGVuc3VyZU11dGFibGUoKTsKKyAgICBIYXNoTWFwPFN0cmlu
ZywgU3RyaW5nPiYgY3VzdG9tRGF0YU1hcCA9IG1fcHJpdmF0ZS0+Y3VzdG9tRGF0YSgpOworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY3VzdG9tRGF0YS5zaXplKCk7ICsraSkKKyAgICAgICAg
Y3VzdG9tRGF0YU1hcC5zZXQoY3VzdG9tRGF0YVtpXS50eXBlLCBjdXN0b21EYXRhW2ldLmRhdGEp
OworfQorCiBXZWJEcmFnRGF0YTo6V2ViRHJhZ0RhdGEoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdl
YkNvcmU6OkNocm9taXVtRGF0YU9iamVjdD4mIGRhdGEpCiAgICAgOiBtX3ByaXZhdGUoc3RhdGlj
X2Nhc3Q8V2ViRHJhZ0RhdGFQcml2YXRlKj4oZGF0YS5sZWFrUmVmKCkpKQogewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRl
MTI2NGFhZTBmNWFjYmJjMjQyZTkwMzEzZGI4YjJiMmFkZGZjMTEuLjJmNDUwMjlkNTFjMmZiZmQ0
YTQ1MmUzMzc2M2MzMTc1NjUzN2U0NmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMS0xMi0w
MSAgRGFuaWVsIENoZW5nICA8ZGNoZW5nQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21p
dW1dIEFkZCBwbHVtYmluZyBmb3Igc3VwcG9ydGluZyBjdXN0b20gTUlNRSB0eXBlcyBpbiBEYXRh
VHJhbnNmZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03MzU5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogZWRpdGluZy9wYXN0ZWJvYXJkL2NsaXBib2FyZC1jdXN0b21EYXRhLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2NsaXBib2FyZC1jdXN0b21EYXRh
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2RyYWctY3VzdG9tRGF0YS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2RyYWctY3VzdG9tRGF0YS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9u
cy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoK
KwogMjAxMS0xMi0wMSAgTWFyayBQaWxncmltICA8cGlsZ3JpbUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW0ZpbGVTeXN0ZW0gQVBJXSBEaXJlY3RvcnlFbnRyeS5yZW1vdmVSZWN1cnNpdmVseSBz
dWNjZXNzQ2FsbGJhY2sgaXMgcmVxdWlyZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRp
bmcvcGFzdGVib2FyZC9jbGlwYm9hcmQtY3VzdG9tRGF0YS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJvYXJkLWN1c3RvbURhdGEtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdiMTA1MDhhOWZiZTRjYzc2ZmNhYTcyYjZiYWYxYzRkOTA4YjI4ZjMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJvYXJk
LWN1c3RvbURhdGEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorU2ltcGxlIHRlc3QgdGhh
dCBjdXN0b20gY2xpcGJvYXJkIE1JTUUgdHlwZXMgY2FuIGJlIHNldCBkdXJpbmcgY29weSBldmVu
dHMgYW5kIHJldHJpZXZlZCBkdXJpbmcgcGFzdGUgZXZlbnRzLiBUaGUgdGVzdCBjYW4gYmUgbWFu
dWFsbHkgcnVuIGJ5IGNvcHlpbmcgYW55IHRleHQgb24gdGhpcyBwYWdlIGFuZCB0aGVuIHBhc3Rp
bmcgYW55d2hlcmUuIE9uIHN1Y2Nlc3MsIHRoZSB3b3JkIFNVQ0NFU1Mgd2lsbCBhcHBlYXIgYmVs
b3cuCisKK1NVQ0NFU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9jbGlwYm9hcmQtY3VzdG9tRGF0YS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJv
YXJkL2NsaXBib2FyZC1jdXN0b21EYXRhLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFkOTliYjczOGMxZTI2
MTRlYWM5MjdjMTBmMDk3N2I4YzQ2NmY1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvcGFzdGVib2FyZC9jbGlwYm9hcmQtY3VzdG9tRGF0YS5odG1sCkBAIC0wLDAgKzEs
NDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+U2ltcGxlIHRlc3QgdGhhdCBjdXN0b20gY2xpcGJvYXJkIE1JTUUgdHlwZXMgY2FuIGJlIHNl
dCBkdXJpbmcgY29weSBldmVudHMKK2FuZCByZXRyaWV2ZWQgZHVyaW5nIHBhc3RlIGV2ZW50cy4g
VGhlIHRlc3QgY2FuIGJlIG1hbnVhbGx5IHJ1biBieSBjb3B5aW5nCithbnkgdGV4dCBvbiB0aGlz
IHBhZ2UgYW5kIHRoZW4gcGFzdGluZyBhbnl3aGVyZS4gT24gc3VjY2VzcywgdGhlIHdvcmQgU1VD
Q0VTUword2lsbCBhcHBlYXIgYmVsb3cuCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4K
K2Z1bmN0aW9uIGNvcHkoZXZlbnQpIHsKKyAgICBldmVudC5jbGlwYm9hcmREYXRhLnNldERhdGEo
J3RleHQnLCAnc2FtcGxlJyk7CisgICAgZXZlbnQuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCdjdXN0
b20tZGF0YScsICdoZWxsbyB3b3JsZCcpOworICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Cit9
CisKK2Z1bmN0aW9uIHBhc3RlKGV2ZW50KSB7CisgICAgdmFyIGZhaWxlZCA9IGZhbHNlOworICAg
IGlmIChldmVudC5jbGlwYm9hcmREYXRhLnR5cGVzLmluZGV4T2YoJ3RleHQvcGxhaW4nKSA8IDAK
KyAgICAgICAgfHwgZXZlbnQuY2xpcGJvYXJkRGF0YS50eXBlcy5pbmRleE9mKCdjdXN0b20tZGF0
YScpIDwgMCkKKyAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICBpZiAoZXZlbnQuY2xpcGJvYXJk
RGF0YS5nZXREYXRhKCd0ZXh0JykgIT0gJ3NhbXBsZScKKyAgICAgICAgfHwgZXZlbnQuY2xpcGJv
YXJkRGF0YS5nZXREYXRhKCdjdXN0b20tZGF0YScpICE9ICdoZWxsbyB3b3JsZCcpCisgICAgICAg
IGZhaWxlZCA9IHRydWU7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpLmlubmVy
VGV4dCA9IGZhaWxlZCA/ICdGQUlMVVJFJyA6ICdTVUNDRVNTJzsKKyAgICBldmVudC5wcmV2ZW50
RGVmYXVsdCgpOworfQorZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdjb3B5JywgY29w
eSk7Citkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ3Bhc3RlJywgcGFzdGUpOworCitm
dW5jdGlvbiBydW5UZXN0KCkgeworICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICByZXR1cm47CisKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTsKKyAgICBkb2N1bWVudC5leGVj
Q29tbWFuZCgncGFzdGUnKTsKK30KK3J1blRlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZHJhZy1jdXN0b21EYXRh
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctY3VzdG9tRGF0YS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzc5NzAxOTU1N2ExMDI3YTIwNzI5OGU0OTE1NWU2ZDBk
N2U4MWE3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWct
Y3VzdG9tRGF0YS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitUbyBtYW51YWxseSB0ZXN0
LCBkcmFnICdEcmFnIE1lJyB0byAnRHJvcCBIZXJlJyBhbmQgZHJvcC4gVGhlIHdvcmQgJ1NVQ0NF
U1MnIHNob3VsZCBhcHBlYXIuCisKK0RyYWcgTWUKK0Ryb3AgSGVyZQorU1VDQ0VTUworCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWN1c3RvbURhdGEuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctY3VzdG9tRGF0YS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRj
YTU3ZWZkNDYyMzU1ODRmYjllMjc3MGFkM2I5MDI1ZTllNzJmMGQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWN1c3RvbURhdGEuaHRtbApAQCAtMCwwICsx
LDcxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisjZHJhZyB7
CisgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICB3
aWR0aDogMjAwcHg7Cit9CisjZHJvcCB7CisgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Cisg
ICAgaGVpZ2h0OiAyMDBweDsKKyAgICB3aWR0aDogMjAwcHg7Cit9Cis8L3N0eWxlPgorPHNjcmlw
dD4KK2Z1bmN0aW9uIGxvZyhzdHIpCit7CisgICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdyZXN1bHQnKTsKKyAgICByZXN1bHQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoc3RyKSk7CisgICAgcmVzdWx0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2JyJykpOworfQorZnVuY3Rpb24gZHJhZ3N0YXJ0KGV2ZW50KSB7CisgICAgZXZl
bnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQnLCAnc2FtcGxlJyk7CisgICAgZXZlbnQuZGF0
YVRyYW5zZmVyLnNldERhdGEoJ2N1c3RvbS1kYXRhJywgJ2hlbGxvIHdvcmxkJyk7Cit9CitmdW5j
dGlvbiBkcmFnZW50ZXIoZXZlbnQpIHsKKyAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworfQor
ZnVuY3Rpb24gZHJhZ292ZXIoZXZlbnQpIHsKKyAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwor
fQorZnVuY3Rpb24gZHJvcChldmVudCkgeworICAgIHZhciBmYWlsZWQgPSBmYWxzZTsKKyAgICBp
ZiAoZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzLmluZGV4T2YoJ3RleHQvcGxhaW4nKSA8IDAKKyAg
ICAgICAgfHwgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzLmluZGV4T2YoJ2N1c3RvbS1kYXRhJykg
PCAwKQorICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXIu
Z2V0RGF0YSgndGV4dCcpICE9ICdzYW1wbGUnCisgICAgICAgIHx8IGV2ZW50LmRhdGFUcmFuc2Zl
ci5nZXREYXRhKCdjdXN0b20tZGF0YScpICE9ICdoZWxsbyB3b3JsZCcpCisgICAgICAgIGZhaWxl
ZCA9IHRydWU7CisgICAgbG9nKGZhaWxlZCA/ICdGQUlMVVJFJyA6ICdTVUNDRVNTJyk7CisgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOworfQord2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkKK3sKKyAg
ICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuOworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisKKyAgICB2YXIgZHJhZ0VsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZHJhZycpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGRyYWdF
bGVtZW50Lm9mZnNldExlZnQgKyBkcmFnRWxlbWVudC5vZmZzZXRXaWR0aCAvIDIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZHJhZ0VsZW1lbnQub2Zmc2V0VG9wICsgZHJhZ0VsZW1lbnQu
b2Zmc2V0SGVpZ2h0IC8gMik7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZl
bnRTZW5kZXIubGVhcEZvcndhcmQoMTAwKTsKKyAgICB2YXIgZHJvcEVsZW1lbnQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnZHJvcCcpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGRy
b3BFbGVtZW50Lm9mZnNldExlZnQgKyBkcm9wRWxlbWVudC5vZmZzZXRXaWR0aCAvIDIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZHJvcEVsZW1lbnQub2Zmc2V0VG9wICsgZHJvcEVsZW1l
bnQub2Zmc2V0SGVpZ2h0IC8gMik7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRvIG1hbnVhbGx5IHRlc3QsIGRyYWcgJ0RyYWcg
TWUnIHRvICdEcm9wIEhlcmUnIGFuZCBkcm9wLiBUaGUgd29yZCAnU1VDQ0VTUycgc2hvdWxkIGFw
cGVhci4KKzxkaXYgZHJhZ2dhYmxlPSJ0cnVlIiBpZD0iZHJhZyIgb25kcmFnc3RhcnQ9ImRyYWdz
dGFydChldmVudCkiPkRyYWcgTWU8L2Rpdj4KKzxkaXYgaWQ9ImRyb3AiIG9uZHJhZ2VudGVyPSJk
cmFnZW50ZXIoZXZlbnQpIiBvbmRyYWdvdmVyPSJkcmFnb3ZlcihldmVudCkiIG9uZHJvcD0iZHJv
cChldmVudCkiPkRyb3AgSGVyZTwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IDAyZDcyYTcwOTM4OGVmNjk2ZTc2M2JkM2I1
ZDZjYTdjYjk3YzkzYjMuLmYzY2JiODVjYjYxM2RhYTNiNTBmMTUyNzNmOTBjZDgzNDVlY2Q5NGEg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRp
b25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0
aW9ucy50eHQKQEAgLTM2OTEsNiArMzY5MSw5IEBAIEJVR19TRU5PUkJMQU5DTyBHUFUgOiBmYXN0
L2NhbnZhcy9jYW52YXMtdHJhbnNmb3Jtcy1maWxsUmVjdC1zaGFkb3cuaHRtbCA9IFRFWFQKIAog
QlVHV0s2Njk1MyA6IHRyYW5zaXRpb25zL2RlZmF1bHQtdGltaW5nLWZ1bmN0aW9uLmh0bWwgPSBQ
QVNTIEZBSUwKIAorLy8gRGVwZW5kcyBvbiBDaHJvbWl1bSBmb2xsb3cgdXAgY2hhbmdlIGJlZm9y
ZSB0aGV5IHdpbGwgcGFzcy4KK0JVR0NSMzEwMzcgOiBmYXN0L2V2ZW50cy9kcmFnLWN1c3RvbURh
dGEuaHRtbCA9IEZBSUwKKwogLy8gTmVlZCB0byByZWJhc2VsaW5lIG9uIHdpbiBhbmQgbWFjLgog
QlVHX1RPTlkgTUFDIDogY3NzMy9mbGV4Ym94L3JlcGFpbnQuaHRtbCA9IFBBU1MgRkFJTAogQlVH
X1RPTlkgTUFDIDogY3NzMy9mbGV4Ym94L3JlcGFpbnQtcnRsLWNvbHVtbi5odG1sID0gUEFTUyBG
QUlMCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZCBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCmluZGV4IDA1MTAzYmQ2YTNmZTE5ZmM2OTU1YTYz
NDQ2NWU2MzA2NmVjODE1ZTUuLjg3MmJkOGNjNGJjNGEzYmRhYTE3ZjM1MDE3NDg2NGQ5OWMxNTVl
ZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCkBAIC0xMzQsNiArMTM0LDcgQEAgZmFzdC9l
dmVudHMvY3Jhc2gtb24tbXV0YXRlLWR1cmluZy1kcm9wLmh0bWwKIGZhc3QvZXZlbnRzL2RyYWct
YW5kLWRyb3AtZGF0YVRyYW5zZmVyLXR5cGVzLW5vY3Jhc2guaHRtbAogZmFzdC9ldmVudHMvZHJh
Zy1hbmQtZHJvcC1maXJlLWRyYWctZHJhZ292ZXIuaHRtbAogZmFzdC9ldmVudHMvZHJhZy1hbmQt
ZHJvcC5odG1sCitmYXN0L2V2ZW50cy9kcmFnLWN1c3RvbURhdGEuaHRtbAogZmFzdC9ldmVudHMv
ZHJhZy1zZWxlY3RzLWltYWdlLmh0bWwKIGZhc3QvZXZlbnRzL2Ryb3B6b25lLTAwMS5odG1sCiBm
YXN0L2V2ZW50cy9kcm9wem9uZS0wMDIuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAppbmRl
eCAxMDVhMzEyZTQ3NDYyNDVjNDE3MDYyMzA0ZjFjYmIyZDEwODc5NWE2Li5jM2Q0ZDIxOWM2ODVh
MWZhZWUwNTlkZTFjMjZkY2M3YTI4MjAwMWRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZApA
QCAtMzAwLDYgKzMwMCwxMCBAQCBtZWRpYS9tZWRpYS1jYXB0aW9ucy5odG1sCiBlZGl0aW5nL3Bh
c3RlYm9hcmQvZGF0YS10cmFuc2Zlci1pdGVtcy5odG1sCiBlZGl0aW5nL3Bhc3RlYm9hcmQvZGF0
YS10cmFuc2Zlci1pdGVtcy1pbWFnZS1wbmcuaHRtbAogCisjIEN1c3RvbSBNSU1FIHR5cGUgc3Vw
cG9ydCBpbiBEYXRhVHJhbnNmZXIgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4KK2VkaXRpbmcvcGFz
dGVib2FyZC9jbGlwYm9hcmQtY3VzdG9tRGF0YS5odG1sCitmYXN0L2V2ZW50cy9kcmFnLWN1c3Rv
bURhdGEuaHRtbAorCiAjIE5lZWRzIGdyYW1tYXIgY2hlY2tpbmcuCiBlZGl0aW5nL3NwZWxsaW5n
L21hcmtlcnMuaHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvU2tp
cHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4IGU4Yjk5NzQ2ZDQ2
NDAxY2Y2NjcxOGViNDc5MDkwNDUxNGEwN2E5NjQuLjJlZWU4MjliM2I3ZDk3MjA3MGMyZTE3MWE4
ZjE3NzIwMmQ5ZjIxYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lw
cGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBAIC0zNDksNiArMzQ5
LDEwIEBAIGNvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLW5vbnByZW11bHRpcGxpZWQtYmxlbmQuaHRt
bAogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMuaHRtbAogZWRpdGluZy9w
YXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMtaW1hZ2UtcG5nLmh0bWwKIAorIyBDdXN0b20g
TUlNRSB0eXBlIHN1cHBvcnQgaW4gRGF0YVRyYW5zZmVyIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQu
CitlZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJvYXJkLWN1c3RvbURhdGEuaHRtbAorZmFzdC9ldmVu
dHMvZHJhZy1jdXN0b21EYXRhLmh0bWwKKwogIyBOZWVkIHRvIGltcGxlbWVudCBXZWJHZW9sb2Nh
dGlvblJlcXVlc3Q6OmNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0IG9uIG1hYy4KICMgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1OTQ0CiBmYXN0L2RvbS9HZW9sb2NhdGlv
bi9wYWdlLXJlbG9hZC1jYW5jZWwtcGVybWlzc2lvbi1yZXF1ZXN0cy5odG1sCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
cXQvU2tpcHBlZAppbmRleCA2YzMzZmRkOGM2YTU2NzE2MjM0MmMwYWRiZTE1ZDBiODA2NWY0NDc2
Li4wNmFlYWEwNzRkYWI3YjljMDIwNTViOTIyMzBhMzViODg4NjAwZGJiIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L3F0L1NraXBwZWQKQEAgLTMzNCw2ICszMzQsMTAgQEAgc3ZnL2FzLWltYWdlL2RyYWctc3ZnLWFz
LWltYWdlLmh0bWwKIGZhc3QvZm9ybXMvcmFuZ2Uvc2xpZGVyLWRlbGV0ZS13aGlsZS1kcmFnZ2lu
Zy10aHVtYi5odG1sCiBmYXN0L2Zvcm1zL3NlbGVjdC1tdWx0aXBsZS1lbGVtZW50cy13aXRoLW1v
dXNlLWRyYWctd2l0aC1vcHRpb25zLWxlc3MtdGhhbi1zaXplLmh0bWwKIAorIyBDdXN0b20gTUlN
RSB0eXBlIHN1cHBvcnQgaW4gRGF0YVRyYW5zZmVyIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCitlZGl0
aW5nL3Bhc3RlYm9hcmQvY2xpcGJvYXJkLWN1c3RvbURhdGEuaHRtbAorZmFzdC9ldmVudHMvZHJh
Zy1jdXN0b21EYXRhLmh0bWwKKwogIyBFdmVudFNlbmRlcjo6ZHVtcEZpbGVuYW1lQmVpbmdEcmFn
Z2VkIG5vdCBpbXBsZW1lbnRlZC4KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTYxODI4CiBmYXN0L2V2ZW50cy9kcmFnLWltYWdlLWZpbGVuYW1lLmh0bWwKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vd2luL1NraXBwZWQKaW5kZXggNDhlZTBkODZhZWJmODEwNWIwNTdhMzc4YzIzODliZmQ0
NTcxMThmZC4uZGMzN2FiNmZhYmQ1MjcxNGNkNmFmNzlmNzBlMzMwZGYyY2IwMTI4MCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTEyNzksNiArMTI3OSwxMCBAQCBlZGl0aW5nL3Bhc3Rl
Ym9hcmQvb25wYXN0ZS10ZXh0LWh0bWwtdHlwZXMuaHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2Rh
dGEtdHJhbnNmZXItaXRlbXMuaHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXIt
aXRlbXMtaW1hZ2UtcG5nLmh0bWwKIAorIyBDdXN0b20gTUlNRSB0eXBlIHN1cHBvcnQgaW4gRGF0
YVRyYW5zZmVyIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCitlZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJv
YXJkLWN1c3RvbURhdGEuaHRtbAorZmFzdC9ldmVudHMvZHJhZy1jdXN0b21EYXRhLmh0bWwKKwog
IyBOZWVkcyBleHBlY3RhdGlvbiB1cGRhdGUKIGZhc3QvZG9tL0hUTUxNZXRlckVsZW1lbnQvbWV0
ZXItZWxlbWVudC5odG1sCiBmYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21ldGVyLWJvdW5kYXJ5
LXZhbHVlcy5odG1sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117580</attachid>
            <date>2011-12-01 23:56:38 -0800</date>
            <delta_ts>2011-12-02 10:46:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-73594-20111201235637.patch</filename>
            <type>text/plain</type>
            <size>21742</size>
            <attacher name="Daniel Cheng">dcheng</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNzE4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDY2YWE4MjIwZmEzZGE1
MjJmOTY3MjhmYmMyM2Q2MDU3ZGZiN2JlZC4uMzU3MzQ0NDlkMWFiYjQ4MDYwOTU1NjAzZDI3MTM0
Yjg3MzUxMjNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDExLTEyLTAxICBEYW5p
ZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFtjaHJvbWl1bV0gQWRk
IHBsdW1iaW5nIGZvciBzdXBwb3J0aW5nIGN1c3RvbSBNSU1FIHR5cGVzIGluIERhdGFUcmFuc2Zl
ci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTczNTk0
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGVzdHM6
IGVkaXRpbmcvcGFzdGVib2FyZC9jbGlwYm9hcmQtY3VzdG9tRGF0YS5odG1sCisgICAgICAgICAg
ICAgICBmYXN0L2V2ZW50cy9kcmFnLWN1c3RvbURhdGEuaHRtbAorCisgICAgICAgICogcGxhdGZv
cm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNo
cm9taXVtRGF0YU9iamVjdDo6dHlwZXMpOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21pdW1EYXRh
T2JqZWN0OjpnZXREYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkNocm9taXVtRGF0YU9iamVjdDo6
c2V0RGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0
Lmg6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWl1bURhdGFPYmplY3Q6OmN1c3RvbURhdGEpOgor
ICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oOgorCiAyMDExLTEy
LTAxICBNYXJrIFBpbGdyaW0gIDxwaWxncmltQGNocm9taXVtLm9yZz4KIAogICAgICAgICBbRmls
ZVN5c3RlbSBBUEldIERpcmVjdG9yeUVudHJ5LnJlbW92ZVJlY3Vyc2l2ZWx5IHN1Y2Nlc3NDYWxs
YmFjayBpcyByZXF1aXJlZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCBmZmFmMGEyNmJl
YTgwZGE3OTg0ZDQzYjk2MGQ4OWZiYjEyMTlhZjAzLi5mNzQ2OWY5ZmQ2MjE3NWExZTE3ODczMmU5
ODMyYjZkZGQzMzNiNTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5n
ZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5
IEBACisyMDExLTEyLTAxICBEYW5pZWwgQ2hlbmcgIDxkY2hlbmdAY2hyb21pdW0ub3JnPgorCisg
ICAgICAgIFtjaHJvbWl1bV0gQWRkIHBsdW1iaW5nIGZvciBzdXBwb3J0aW5nIGN1c3RvbSBNSU1F
IHR5cGVzIGluIERhdGFUcmFuc2Zlci4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTczNTk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgKiBwdWJsaWMvcGxhdGZvcm0vV2ViQ2xpcGJvYXJkLmg6CisgICAgICAg
IChXZWJLaXQ6OldlYkNsaXBib2FyZDo6cmVhZEN1c3RvbURhdGEpOgorICAgICAgICAqIHB1Ymxp
Yy9wbGF0Zm9ybS9XZWJEcmFnRGF0YS5oOgorICAgICAgICAqIHNyYy9QbGF0Zm9ybVN1cHBvcnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1TdXBwb3J0OjpjbGlwYm9hcmRSZWFkQ3Vz
dG9tRGF0YSk6CisgICAgICAgICogc3JjL1dlYkRyYWdEYXRhLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViRHJhZ0RhdGE6OmN1c3RvbURhdGEpOgorICAgICAgICAoV2ViS2l0OjpXZWJEcmFnRGF0
YTo6c2V0Q3VzdG9tRGF0YSk6CisKIDIwMTEtMTItMDEgIEpvY2hlbiBFaXNpbmdlciAgPGpvY2hl
bkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW2Nocm9taXVtXSBhZGQgcmVmZXJyZXIgcG9saWN5
IHRvIFdlYkNvbnRleHRNZW51RGF0YQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2Nocm9taXVtL0Nocm9taXVtRGF0YU9iamVjdC5jcHAKaW5kZXggZjk5OWMxMzFkOTJiMTEw
NTMzNWVjMmRlMWFlZWNiMDNiMGM1M2U1ZC4uMDVjNWUxMzBjY2ViZjU2MTQ5NjI2NmFhMWM1OGZl
ZmY0NDVmNDg5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0v
Q2hyb21pdW1EYXRhT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJv
bWl1bS9DaHJvbWl1bURhdGFPYmplY3QuY3BwCkBAIC0xMjQsMTAgKzEyNCwxNSBAQCBIYXNoU2V0
PFN0cmluZz4gQ2hyb21pdW1EYXRhT2JqZWN0Ojp0eXBlcygpIGNvbnN0CiAgICAgaWYgKCFtX3Rl
eHRIdG1sLmlzRW1wdHkoKSkKICAgICAgICAgcmVzdWx0cy5hZGQobWltZVR5cGVUZXh0SFRNTCk7
CiAKKyAgICBmb3IgKEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+Ojpjb25zdF9pdGVyYXRvcjo6S2V5
cyBpdCA9IG1fY3VzdG9tRGF0YS5iZWdpbigpLmtleXMoKTsKKyAgICAgICAgIGl0ICE9IG1fY3Vz
dG9tRGF0YS5lbmQoKS5rZXlzKCk7ICsraXQpIHsKKyAgICAgICAgcmVzdWx0cy5hZGQoKml0KTsK
KyAgICB9CisKICAgICByZXR1cm4gcmVzdWx0czsKIH0KIAotU3RyaW5nIENocm9taXVtRGF0YU9i
amVjdDo6Z2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wmIHN1Y2Nlc3MpCitTdHJpbmcg
Q2hyb21pdW1EYXRhT2JqZWN0OjpnZXREYXRhKGNvbnN0IFN0cmluZyYgdHlwZSwgYm9vbCYgc3Vj
Y2VzcykgY29uc3QKIHsKICAgICBpZiAodHlwZSA9PSBtaW1lVHlwZVRleHRQbGFpbikgewogICAg
ICAgICBpZiAobV9zdG9yYWdlTW9kZSA9PSBQYXN0ZWJvYXJkKSB7CkBAIC0xNjcsNiArMTcyLDE4
IEBAIFN0cmluZyBDaHJvbWl1bURhdGFPYmplY3Q6OmdldERhdGEoY29uc3QgU3RyaW5nJiB0eXBl
LCBib29sJiBzdWNjZXNzKQogICAgICAgICByZXR1cm4gbV9kb3dubG9hZE1ldGFkYXRhOwogICAg
IH0KIAorICAgIGlmIChtX3N0b3JhZ2VNb2RlID09IFBhc3RlYm9hcmQpIHsKKyAgICAgICAgU3Ry
aW5nIGRhdGEgPSBQbGF0Zm9ybVN1cHBvcnQ6OmNsaXBib2FyZFJlYWRDdXN0b21EYXRhKGN1cnJl
bnRQYXN0ZWJvYXJkQnVmZmVyKCksIHR5cGUpOworICAgICAgICBzdWNjZXNzID0gIWRhdGEuaXNF
bXB0eSgpOworICAgICAgICByZXR1cm4gZGF0YTsKKyAgICB9CisKKyAgICBIYXNoTWFwPFN0cmlu
ZywgU3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgaXQgPSBtX2N1c3RvbURhdGEuZmluZCh0eXBlKTsK
KyAgICBpZiAoaXQgIT0gbV9jdXN0b21EYXRhLmVuZCgpKSB7CisgICAgICAgIHN1Y2Nlc3MgPSB0
cnVlOworICAgICAgICByZXR1cm4gaXQtPnNlY29uZDsKKyAgICB9CisKICAgICBzdWNjZXNzID0g
ZmFsc2U7CiAgICAgcmV0dXJuIFN0cmluZygpOwogfQpAQCAtMjE3LDcgKzIzNCwxMSBAQCBib29s
IENocm9taXVtRGF0YU9iamVjdDo6c2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0
cmluZyYgZGF0YSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIGZh
bHNlOworICAgIGlmICh0eXBlLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgbV9jdXN0b21EYXRhLnNldCh0eXBlLCBkYXRhKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAog
Ym9vbCBDaHJvbWl1bURhdGFPYmplY3Q6OmNvbnRhaW5zRmlsZW5hbWVzKCkgY29uc3QKQEAgLTI1
Niw0ICsyNzcsMyBAQCBDaHJvbWl1bURhdGFPYmplY3Q6OkNocm9taXVtRGF0YU9iamVjdChjb25z
dCBDaHJvbWl1bURhdGFPYmplY3QmIG90aGVyKQogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
Ci0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL0Nocm9taXVt
RGF0YU9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1E
YXRhT2JqZWN0LmgKaW5kZXggZjc5ZWY1Yjc1Y2NkMmQ5YmM0MTExZGZiMDIyYjYzY2ZmMmM3MDQ2
Mi4uOWRkZmIwYjkzNjQ1MTExM2IyYzgwMjBlODZmYzcyODcwMmY4YWVkOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY2hyb21pdW0vQ2hyb21pdW1EYXRhT2JqZWN0LmgK
QEAgLTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJLVVJMLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1T
dHJpbmcuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKKyNpbmNsdWRlIDx3dGYvSGFzaE1h
cC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgog
I2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KQEAgLTc1LDcgKzc2LDcgQEAgcHVibGljOgogICAgIGJv
b2wgaGFzRGF0YSgpIGNvbnN0OwogCiAgICAgSGFzaFNldDxTdHJpbmc+IHR5cGVzKCkgY29uc3Q7
Ci0gICAgU3RyaW5nIGdldERhdGEoY29uc3QgU3RyaW5nJiB0eXBlLCBib29sJiBzdWNjZXNzKTsK
KyAgICBTdHJpbmcgZ2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGJvb2wmIHN1Y2Nlc3MpIGNv
bnN0OwogICAgIGJvb2wgc2V0RGF0YShjb25zdCBTdHJpbmcmIHR5cGUsIGNvbnN0IFN0cmluZyYg
ZGF0YSk7CiAKICAgICAvLyBTcGVjaWFsIGhhbmRsZXJzIGZvciBVUkwvSFRNTCBtZXRhZGF0YS4K
QEAgLTk2LDYgKzk3LDggQEAgcHVibGljOgogICAgIHZvaWQgc2V0RmlsZUNvbnRlbnRGaWxlbmFt
ZShjb25zdCBTdHJpbmcmIGZpbGVDb250ZW50RmlsZW5hbWUpIHsgbV9maWxlQ29udGVudEZpbGVu
YW1lID0gZmlsZUNvbnRlbnRGaWxlbmFtZTsgfQogICAgIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBmaWxlQ29udGVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZmlsZUNvbnRlbnQ7IH0KICAgICB2b2lk
IHNldEZpbGVDb250ZW50KFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBmaWxlQ29udGVudCkgeyBt
X2ZpbGVDb250ZW50ID0gZmlsZUNvbnRlbnQ7IH0KKyAgICBjb25zdCBIYXNoTWFwPFN0cmluZywg
U3RyaW5nPiYgY3VzdG9tRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fY3VzdG9tRGF0YTsgfQorICAg
IEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+JiBjdXN0b21EYXRhKCkgeyByZXR1cm4gbV9jdXN0b21E
YXRhOyB9CiAKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgQ2hyb21pdW1EYXRhT2JqZWN0KFN0b3Jh
Z2VNb2RlKTsKQEAgLTExOCw2ICsxMjEsOCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBtX2ZpbGVD
b250ZW50RmlsZW5hbWU7CiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gbV9maWxlQ29udGVudDsK
IAorICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+IG1fY3VzdG9tRGF0YTsKKwogICAgIC8vIFRo
ZXNlIHR3byBhcmUgbGlua2VkLiBTZXR0aW5nIG1fdXJsIHdpbGwgc2V0IG1fdXJpTGlzdCB0byB0
aGUgc2FtZQogICAgIC8vIHN0cmluZyB2YWx1ZTsgc2V0dGluZyBtX3VyaUxpc3Qgd2lsbCBjYXVz
ZSBpdHMgY29udGVudHMgdG8gYmUgcGFyc2VkCiAgICAgLy8gYWNjb3JkaW5nIHRvIFJGQyAyNDgz
IGFuZCB0aGUgZmlyc3QgVVJMIGZvdW5kIHdpbGwgYmUgc2V0IGluIG1fdXJsLgpAQCAtMTI4LDQg
KzEzMywzIEBAIHByaXZhdGU6CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZgotCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jaHJvbWl1bS9QbGF0Zm9ybVN1cHBv
cnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5o
CmluZGV4IDQwNzQ4MDQ5MjRjOTEzMGQ1NjZkYWEyODU1MWUzMDc0NGExYTAzODcuLmM5M2MyYWZi
MjcwZjZiMGM4ODg1ODMxYzIwMmQxZjNmMzk3Y2Q5NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2Nocm9taXVtL1BsYXRmb3JtU3VwcG9ydC5oCkBAIC0xMDUsNiArMTA1LDcg
QEAgcHVibGljOgogICAgIHN0YXRpYyBTdHJpbmcgY2xpcGJvYXJkUmVhZFBsYWluVGV4dChQYXN0
ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJkQnVmZmVyKTsKICAgICBzdGF0aWMgdm9pZCBjbGlwYm9h
cmRSZWFkSFRNTChQYXN0ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJkQnVmZmVyLCBTdHJpbmcqLCBL
VVJMKiwgdW5zaWduZWQqIGZyYWdtZW50U3RhcnQsIHVuc2lnbmVkKiBmcmFnbWVudEVuZCk7CiAg
ICAgc3RhdGljIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVyPiBjbGlwYm9hcmRSZWFkSW1hZ2UoUGFz
dGVib2FyZFByaXZhdGU6OkNsaXBib2FyZEJ1ZmZlcik7CisgICAgc3RhdGljIFN0cmluZyBjbGlw
Ym9hcmRSZWFkQ3VzdG9tRGF0YShQYXN0ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJvYXJkQnVmZmVyLCBj
b25zdCBTdHJpbmcmIHR5cGUpOwogCiAgICAgLy8gT25seSB0aGUgY2xpcGJvYXJkUmVhZCBmdW5j
dGlvbnMgdGFrZSBhIGJ1ZmZlciBhcmd1bWVudCBiZWNhdXNlCiAgICAgLy8gQ2hyb21pdW0gY3Vy
cmVudGx5IHVzZXMgYSBkaWZmZXJlbnQgdGVjaG5pcXVlIHRvIHdyaXRlIHRvIGFsdGVybmF0ZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViQ2xp
cGJvYXJkLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJDbGlw
Ym9hcmQuaAppbmRleCAwZmM4ODA4YjQyNzQ3N2Q5MDE4NDk2ODhjMzA5MjcwNzA2YWMyY2UxLi5h
MDJhNzMwZjc1YWJkNDIxYTExNWM4YzViYTlkMmVjNjVjZDVkMjk4IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJDbGlwYm9hcmQuaAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJDbGlwYm9hcmQuaApAQCAt
NzgsNiArNzgsOCBAQCBwdWJsaWM6CiAgICAgICAgIEJ1ZmZlciBidWZmZXIsIFdlYlVSTCogcGFn
ZVVSTCwgdW5zaWduZWQqIGZyYWdtZW50U3RhcnQsCiAgICAgICAgIHVuc2lnbmVkKiBmcmFnbWVu
dEVuZCkgeyByZXR1cm4gV2ViU3RyaW5nKCk7IH0KICAgICB2aXJ0dWFsIFdlYkRhdGEgcmVhZElt
YWdlKEJ1ZmZlcikgeyByZXR1cm4gV2ViRGF0YSgpOyB9CisgICAgdmlydHVhbCBXZWJTdHJpbmcg
cmVhZEN1c3RvbURhdGEoCisgICAgICAgIEJ1ZmZlciwgY29uc3QgV2ViU3RyaW5nJiB0eXBlKSB7
IHJldHVybiBXZWJTdHJpbmcoKTsgfQogCiAgICAgdmlydHVhbCB2b2lkIHdyaXRlUGxhaW5UZXh0
KGNvbnN0IFdlYlN0cmluZyYpIHsgfQogICAgIHZpcnR1YWwgdm9pZCB3cml0ZUhUTUwoCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJEcmFnRGF0
YS5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvcGxhdGZvcm0vV2ViRHJhZ0RhdGEu
aAppbmRleCA2MDNhNmI1NmE0OGM3YTNiYjczOTVhNjU1ZjZhNTRjMmQ3ZmNmYmIwLi4xNzEyMzFl
Y2EzNGJhNDc3N2Q2YWJlYTQyMzYzYzRkYzk2ZDM5NjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3B1YmxpYy9wbGF0Zm9ybS9XZWJEcmFnRGF0YS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL3BsYXRmb3JtL1dlYkRyYWdEYXRhLmgKQEAgLTMyLDYgKzMy
LDcgQEAKICNkZWZpbmUgV2ViRHJhZ0RhdGFfaAogCiAjaW5jbHVkZSAiV2ViQ29tbW9uLmgiCisj
aW5jbHVkZSAiV2ViU3RyaW5nLmgiCiAKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KIG5hbWVz
cGFjZSBXZWJDb3JlIHsgY2xhc3MgQ2hyb21pdW1EYXRhT2JqZWN0OyB9CkBAIC00Miw3ICs0Myw2
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJEYXRhOwogY2xhc3MgV2ViRHJhZ0Rh
dGFQcml2YXRlOwotY2xhc3MgV2ViU3RyaW5nOwogY2xhc3MgV2ViVVJMOwogdGVtcGxhdGUgPHR5
cGVuYW1lIFQ+IGNsYXNzIFdlYlZlY3RvcjsKIApAQCAtOTgsNiArOTgsMTMgQEAgcHVibGljOgog
ICAgIFdFQktJVF9FWFBPUlQgV2ViRGF0YSBmaWxlQ29udGVudCgpIGNvbnN0OwogICAgIFdFQktJ
VF9FWFBPUlQgdm9pZCBzZXRGaWxlQ29udGVudChjb25zdCBXZWJEYXRhJik7CiAKKyAgICBzdHJ1
Y3QgQ3VzdG9tRGF0YSB7CisgICAgICAgIFdlYlN0cmluZyB0eXBlOworICAgICAgICBXZWJTdHJp
bmcgZGF0YTsKKyAgICB9OworICAgIFdFQktJVF9FWFBPUlQgV2ViVmVjdG9yPEN1c3RvbURhdGE+
IGN1c3RvbURhdGEoKSBjb25zdDsKKyAgICBXRUJLSVRfRVhQT1JUIHZvaWQgc2V0Q3VzdG9tRGF0
YShjb25zdCBXZWJWZWN0b3I8Q3VzdG9tRGF0YT4mKTsKKwogI2lmIFdFQktJVF9JTVBMRU1FTlRB
VElPTgogICAgIFdlYkRyYWdEYXRhKGNvbnN0IFdURjo6UGFzc1JlZlB0cjxXZWJDb3JlOjpDaHJv
bWl1bURhdGFPYmplY3Q+Jik7CiAgICAgV2ViRHJhZ0RhdGEmIG9wZXJhdG9yPShjb25zdCBXVEY6
OlBhc3NSZWZQdHI8V2ViQ29yZTo6Q2hyb21pdW1EYXRhT2JqZWN0PiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxhdGZvcm1TdXBwb3J0LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1BsYXRmb3JtU3VwcG9ydC5jcHAKaW5kZXggNzhhOTRjNzI2ZDUy
YWZjNjJiZTg3YmI4ZDhmZGFjZDA1NjVkMTZiYS4uMjcxNzE2ZDQ4ZTFkNWZkZWMzMDk3YzQ1M2Fh
ZmYxODQwOGY5NTM4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvUGxh
dGZvcm1TdXBwb3J0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9QbGF0Zm9y
bVN1cHBvcnQuY3BwCkBAIC0yMDIsNiArMjAyLDEyIEBAIFBhc3NSZWZQdHI8U2hhcmVkQnVmZmVy
PiBQbGF0Zm9ybVN1cHBvcnQ6OmNsaXBib2FyZFJlYWRJbWFnZSgKICAgICByZXR1cm4gd2ViS2l0
UGxhdGZvcm1TdXBwb3J0KCktPmNsaXBib2FyZCgpLT5yZWFkSW1hZ2Uoc3RhdGljX2Nhc3Q8V2Vi
Q2xpcGJvYXJkOjpCdWZmZXI+KGJ1ZmZlcikpOwogfQogCitTdHJpbmcgUGxhdGZvcm1TdXBwb3J0
OjpjbGlwYm9hcmRSZWFkQ3VzdG9tRGF0YSgKKyAgICBQYXN0ZWJvYXJkUHJpdmF0ZTo6Q2xpcGJv
YXJkQnVmZmVyIGJ1ZmZlciwgY29uc3QgU3RyaW5nJiB0eXBlKQoreworICAgIHJldHVybiB3ZWJL
aXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y2xpcGJvYXJkKCktPnJlYWRDdXN0b21EYXRhKHN0YXRpY19j
YXN0PFdlYkNsaXBib2FyZDo6QnVmZmVyPihidWZmZXIpLCB0eXBlKTsKK30KKwogdm9pZCBQbGF0
Zm9ybVN1cHBvcnQ6OmNsaXBib2FyZFdyaXRlU2VsZWN0aW9uKGNvbnN0IFN0cmluZyYgaHRtbFRl
eHQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBL
VVJMJiBzb3VyY2VVUkwsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjb25zdCBTdHJpbmcmIHBsYWluVGV4dCwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vc3JjL1dlYkRyYWdEYXRhLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYkRyYWdEYXRhLmNwcAppbmRleCA2MmIzYmMzZGNjNjZlMDc4NDA3NGM3MWVkNTJhNjZkZjBk
ZGRmOWZhLi4wNmJmYmI2NTYzYjI2ZGZjOWYzY2Y0M2Q4M2M4OGY4YmViNGU5YTkzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJEcmFnRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViRHJhZ0RhdGEuY3BwCkBAIC0zOCw2ICszOCw3IEBA
CiAjaW5jbHVkZSAiV2ViVVJMLmgiCiAjaW5jbHVkZSAiV2ViVmVjdG9yLmgiCiAKKyNpbmNsdWRl
IDx3dGYvSGFzaE1hcC5oPgogI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAKIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwpAQCAtMjA1LDYgKzIwNiwyOCBAQCB2b2lkIFdlYkRyYWdEYXRhOjpz
ZXRGaWxlQ29udGVudChjb25zdCBXZWJEYXRhJiBmaWxlQ29udGVudCkKICAgICBtX3ByaXZhdGUt
PnNldEZpbGVDb250ZW50KGZpbGVDb250ZW50KTsKIH0KIAorV2ViVmVjdG9yPFdlYkRyYWdEYXRh
OjpDdXN0b21EYXRhPiBXZWJEcmFnRGF0YTo6Y3VzdG9tRGF0YSgpIGNvbnN0Cit7CisgICAgQVNT
RVJUKCFpc051bGwoKSk7CisgICAgV2ViVmVjdG9yPEN1c3RvbURhdGE+IGN1c3RvbURhdGEoc3Rh
dGljX2Nhc3Q8c2l6ZV90PihtX3ByaXZhdGUtPmN1c3RvbURhdGEoKS5zaXplKCkpKTsKKyAgICBI
YXNoTWFwPFN0cmluZywgU3RyaW5nPjo6Y29uc3RfaXRlcmF0b3IgYmVnaW4gPSBtX3ByaXZhdGUt
PmN1c3RvbURhdGEoKS5iZWdpbigpOworICAgIEhhc2hNYXA8U3RyaW5nLCBTdHJpbmc+Ojpjb25z
dF9pdGVyYXRvciBlbmQgPSBtX3ByaXZhdGUtPmN1c3RvbURhdGEoKS5lbmQoKTsKKyAgICBzaXpl
X3QgaSA9IDA7CisgICAgZm9yIChIYXNoTWFwPFN0cmluZywgU3RyaW5nPjo6Y29uc3RfaXRlcmF0
b3IgaXQgPSBiZWdpbjsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgIEN1c3RvbURhdGEgZGF0
YSA9IHtpdC0+Zmlyc3QsIGl0LT5zZWNvbmR9OworICAgICAgICBjdXN0b21EYXRhW2krK10gPSBk
YXRhOworICAgIH0KKyAgICByZXR1cm4gY3VzdG9tRGF0YTsKK30KKwordm9pZCBXZWJEcmFnRGF0
YTo6c2V0Q3VzdG9tRGF0YShjb25zdCBXZWJWZWN0b3I8V2ViRHJhZ0RhdGE6OkN1c3RvbURhdGE+
JiBjdXN0b21EYXRhKQoreworICAgIGVuc3VyZU11dGFibGUoKTsKKyAgICBIYXNoTWFwPFN0cmlu
ZywgU3RyaW5nPiYgY3VzdG9tRGF0YU1hcCA9IG1fcHJpdmF0ZS0+Y3VzdG9tRGF0YSgpOworICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgY3VzdG9tRGF0YS5zaXplKCk7ICsraSkKKyAgICAgICAg
Y3VzdG9tRGF0YU1hcC5zZXQoY3VzdG9tRGF0YVtpXS50eXBlLCBjdXN0b21EYXRhW2ldLmRhdGEp
OworfQorCiBXZWJEcmFnRGF0YTo6V2ViRHJhZ0RhdGEoY29uc3QgV1RGOjpQYXNzUmVmUHRyPFdl
YkNvcmU6OkNocm9taXVtRGF0YU9iamVjdD4mIGRhdGEpCiAgICAgOiBtX3ByaXZhdGUoc3RhdGlj
X2Nhc3Q8V2ViRHJhZ0RhdGFQcml2YXRlKj4oZGF0YS5sZWFrUmVmKCkpKQogewpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRl
MTI2NGFhZTBmNWFjYmJjMjQyZTkwMzEzZGI4YjJiMmFkZGZjMTEuLjJmNDUwMjlkNTFjMmZiZmQ0
YTQ1MmUzMzc2M2MzMTc1NjUzN2U0NmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAxMS0xMi0w
MSAgRGFuaWVsIENoZW5nICA8ZGNoZW5nQGNocm9taXVtLm9yZz4KKworICAgICAgICBbY2hyb21p
dW1dIEFkZCBwbHVtYmluZyBmb3Igc3VwcG9ydGluZyBjdXN0b20gTUlNRSB0eXBlcyBpbiBEYXRh
VHJhbnNmZXIuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD03MzU5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogZWRpdGluZy9wYXN0ZWJvYXJkL2NsaXBib2FyZC1jdXN0b21EYXRhLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogZWRpdGluZy9wYXN0ZWJvYXJkL2NsaXBib2FyZC1jdXN0b21EYXRh
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2RyYWctY3VzdG9tRGF0YS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL2RyYWctY3VzdG9tRGF0YS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0aW9u
cy50eHQ6CisgICAgICAgICogcGxhdGZvcm0vZWZsL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZv
cm0vZ3RrL1NraXBwZWQ6CisgICAgICAgICogcGxhdGZvcm0vbWFjL1NraXBwZWQ6CisgICAgICAg
ICogcGxhdGZvcm0vcXQvU2tpcHBlZDoKKyAgICAgICAgKiBwbGF0Zm9ybS93aW4vU2tpcHBlZDoK
KwogMjAxMS0xMi0wMSAgTWFyayBQaWxncmltICA8cGlsZ3JpbUBjaHJvbWl1bS5vcmc+CiAKICAg
ICAgICAgW0ZpbGVTeXN0ZW0gQVBJXSBEaXJlY3RvcnlFbnRyeS5yZW1vdmVSZWN1cnNpdmVseSBz
dWNjZXNzQ2FsbGJhY2sgaXMgcmVxdWlyZWQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRp
bmcvcGFzdGVib2FyZC9jbGlwYm9hcmQtY3VzdG9tRGF0YS1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJvYXJkLWN1c3RvbURhdGEtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdiMTA1MDhhOWZiZTRjYzc2ZmNhYTcyYjZiYWYxYzRkOTA4YjI4ZjMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9lZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJvYXJk
LWN1c3RvbURhdGEtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorU2ltcGxlIHRlc3QgdGhh
dCBjdXN0b20gY2xpcGJvYXJkIE1JTUUgdHlwZXMgY2FuIGJlIHNldCBkdXJpbmcgY29weSBldmVu
dHMgYW5kIHJldHJpZXZlZCBkdXJpbmcgcGFzdGUgZXZlbnRzLiBUaGUgdGVzdCBjYW4gYmUgbWFu
dWFsbHkgcnVuIGJ5IGNvcHlpbmcgYW55IHRleHQgb24gdGhpcyBwYWdlIGFuZCB0aGVuIHBhc3Rp
bmcgYW55d2hlcmUuIE9uIHN1Y2Nlc3MsIHRoZSB3b3JkIFNVQ0NFU1Mgd2lsbCBhcHBlYXIgYmVs
b3cuCisKK1NVQ0NFU1MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2VkaXRpbmcvcGFzdGVib2Fy
ZC9jbGlwYm9hcmQtY3VzdG9tRGF0YS5odG1sIGIvTGF5b3V0VGVzdHMvZWRpdGluZy9wYXN0ZWJv
YXJkL2NsaXBib2FyZC1jdXN0b21EYXRhLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzFkOTliYjczOGMxZTI2
MTRlYWM5MjdjMTBmMDk3N2I4YzQ2NmY1YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2VkaXRpbmcvcGFzdGVib2FyZC9jbGlwYm9hcmQtY3VzdG9tRGF0YS5odG1sCkBAIC0wLDAgKzEs
NDMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzwvaGVhZD4KKzxib2R5Pgor
PHA+U2ltcGxlIHRlc3QgdGhhdCBjdXN0b20gY2xpcGJvYXJkIE1JTUUgdHlwZXMgY2FuIGJlIHNl
dCBkdXJpbmcgY29weSBldmVudHMKK2FuZCByZXRyaWV2ZWQgZHVyaW5nIHBhc3RlIGV2ZW50cy4g
VGhlIHRlc3QgY2FuIGJlIG1hbnVhbGx5IHJ1biBieSBjb3B5aW5nCithbnkgdGV4dCBvbiB0aGlz
IHBhZ2UgYW5kIHRoZW4gcGFzdGluZyBhbnl3aGVyZS4gT24gc3VjY2VzcywgdGhlIHdvcmQgU1VD
Q0VTUword2lsbCBhcHBlYXIgYmVsb3cuCis8ZGl2IGlkPSJsb2ciPjwvZGl2PgorPHNjcmlwdD4K
K2Z1bmN0aW9uIGNvcHkoZXZlbnQpIHsKKyAgICBldmVudC5jbGlwYm9hcmREYXRhLnNldERhdGEo
J3RleHQnLCAnc2FtcGxlJyk7CisgICAgZXZlbnQuY2xpcGJvYXJkRGF0YS5zZXREYXRhKCdjdXN0
b20tZGF0YScsICdoZWxsbyB3b3JsZCcpOworICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7Cit9
CisKK2Z1bmN0aW9uIHBhc3RlKGV2ZW50KSB7CisgICAgdmFyIGZhaWxlZCA9IGZhbHNlOworICAg
IGlmIChldmVudC5jbGlwYm9hcmREYXRhLnR5cGVzLmluZGV4T2YoJ3RleHQvcGxhaW4nKSA8IDAK
KyAgICAgICAgfHwgZXZlbnQuY2xpcGJvYXJkRGF0YS50eXBlcy5pbmRleE9mKCdjdXN0b20tZGF0
YScpIDwgMCkKKyAgICAgICAgZmFpbGVkID0gdHJ1ZTsKKyAgICBpZiAoZXZlbnQuY2xpcGJvYXJk
RGF0YS5nZXREYXRhKCd0ZXh0JykgIT0gJ3NhbXBsZScKKyAgICAgICAgfHwgZXZlbnQuY2xpcGJv
YXJkRGF0YS5nZXREYXRhKCdjdXN0b20tZGF0YScpICE9ICdoZWxsbyB3b3JsZCcpCisgICAgICAg
IGZhaWxlZCA9IHRydWU7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2xvZycpLmlubmVy
VGV4dCA9IGZhaWxlZCA/ICdGQUlMVVJFJyA6ICdTVUNDRVNTJzsKKyAgICBldmVudC5wcmV2ZW50
RGVmYXVsdCgpOworfQorZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdjb3B5JywgY29w
eSk7Citkb2N1bWVudC5ib2R5LmFkZEV2ZW50TGlzdGVuZXIoJ3Bhc3RlJywgcGFzdGUpOworCitm
dW5jdGlvbiBydW5UZXN0KCkgeworICAgIGlmICghd2luZG93LmxheW91dFRlc3RDb250cm9sbGVy
KQorICAgICAgICByZXR1cm47CisKKyAgICBsYXlvdXRUZXN0Q29udHJvbGxlci5kdW1wQXNUZXh0
KCk7CisgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTsKKyAgICBkb2N1bWVudC5leGVj
Q29tbWFuZCgncGFzdGUnKTsKK30KK3J1blRlc3QoKTsKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvZHJhZy1jdXN0b21EYXRh
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctY3VzdG9tRGF0YS1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzc5NzAxOTU1N2ExMDI3YTIwNzI5OGU0OTE1NWU2ZDBk
N2U4MWE3ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWct
Y3VzdG9tRGF0YS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitUbyBtYW51YWxseSB0ZXN0
LCBkcmFnICdEcmFnIE1lJyB0byAnRHJvcCBIZXJlJyBhbmQgZHJvcC4gVGhlIHdvcmQgJ1NVQ0NF
U1MnIHNob3VsZCBhcHBlYXIuCisKK0RyYWcgTWUKK0Ryb3AgSGVyZQorU1VDQ0VTUworCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWN1c3RvbURhdGEuaHRtbCBiL0xh
eW91dFRlc3RzL2Zhc3QvZXZlbnRzL2RyYWctY3VzdG9tRGF0YS5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRj
YTU3ZWZkNDYyMzU1ODRmYjllMjc3MGFkM2I5MDI1ZTllNzJmMGQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy9kcmFnLWN1c3RvbURhdGEuaHRtbApAQCAtMCwwICsx
LDcxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c3R5bGU+CisjZHJhZyB7
CisgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7CisgICAgaGVpZ2h0OiAyMDBweDsKKyAgICB3
aWR0aDogMjAwcHg7Cit9CisjZHJvcCB7CisgICAgYm9yZGVyOiAxcHggc29saWQgYmxhY2s7Cisg
ICAgaGVpZ2h0OiAyMDBweDsKKyAgICB3aWR0aDogMjAwcHg7Cit9Cis8L3N0eWxlPgorPHNjcmlw
dD4KK2Z1bmN0aW9uIGxvZyhzdHIpCit7CisgICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdyZXN1bHQnKTsKKyAgICByZXN1bHQuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3Jl
YXRlVGV4dE5vZGUoc3RyKSk7CisgICAgcmVzdWx0LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2JyJykpOworfQorZnVuY3Rpb24gZHJhZ3N0YXJ0KGV2ZW50KSB7CisgICAgZXZl
bnQuZGF0YVRyYW5zZmVyLnNldERhdGEoJ3RleHQnLCAnc2FtcGxlJyk7CisgICAgZXZlbnQuZGF0
YVRyYW5zZmVyLnNldERhdGEoJ2N1c3RvbS1kYXRhJywgJ2hlbGxvIHdvcmxkJyk7Cit9CitmdW5j
dGlvbiBkcmFnZW50ZXIoZXZlbnQpIHsKKyAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOworfQor
ZnVuY3Rpb24gZHJhZ292ZXIoZXZlbnQpIHsKKyAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOwor
fQorZnVuY3Rpb24gZHJvcChldmVudCkgeworICAgIHZhciBmYWlsZWQgPSBmYWxzZTsKKyAgICBp
ZiAoZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzLmluZGV4T2YoJ3RleHQvcGxhaW4nKSA8IDAKKyAg
ICAgICAgfHwgZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzLmluZGV4T2YoJ2N1c3RvbS1kYXRhJykg
PCAwKQorICAgICAgICBmYWlsZWQgPSB0cnVlOworICAgIGlmIChldmVudC5kYXRhVHJhbnNmZXIu
Z2V0RGF0YSgndGV4dCcpICE9ICdzYW1wbGUnCisgICAgICAgIHx8IGV2ZW50LmRhdGFUcmFuc2Zl
ci5nZXREYXRhKCdjdXN0b20tZGF0YScpICE9ICdoZWxsbyB3b3JsZCcpCisgICAgICAgIGZhaWxl
ZCA9IHRydWU7CisgICAgbG9nKGZhaWxlZCA/ICdGQUlMVVJFJyA6ICdTVUNDRVNTJyk7CisgICAg
aWYgKHdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgbGF5b3V0VGVzdENvbnRy
b2xsZXIubm90aWZ5RG9uZSgpOworfQord2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkKK3sKKyAg
ICBpZiAoIXdpbmRvdy5sYXlvdXRUZXN0Q29udHJvbGxlcikKKyAgICAgICAgcmV0dXJuOworICAg
IGxheW91dFRlc3RDb250cm9sbGVyLmR1bXBBc1RleHQoKTsKKyAgICBsYXlvdXRUZXN0Q29udHJv
bGxlci53YWl0VW50aWxEb25lKCk7CisKKyAgICB2YXIgZHJhZ0VsZW1lbnQgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnZHJhZycpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGRyYWdF
bGVtZW50Lm9mZnNldExlZnQgKyBkcmFnRWxlbWVudC5vZmZzZXRXaWR0aCAvIDIsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZHJhZ0VsZW1lbnQub2Zmc2V0VG9wICsgZHJhZ0VsZW1lbnQu
b2Zmc2V0SGVpZ2h0IC8gMik7CisgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgZXZl
bnRTZW5kZXIubGVhcEZvcndhcmQoMTAwKTsKKyAgICB2YXIgZHJvcEVsZW1lbnQgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnZHJvcCcpOworICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGRy
b3BFbGVtZW50Lm9mZnNldExlZnQgKyBkcm9wRWxlbWVudC5vZmZzZXRXaWR0aCAvIDIsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZHJvcEVsZW1lbnQub2Zmc2V0VG9wICsgZHJvcEVsZW1l
bnQub2Zmc2V0SGVpZ2h0IC8gMik7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRvIG1hbnVhbGx5IHRlc3QsIGRyYWcgJ0RyYWcg
TWUnIHRvICdEcm9wIEhlcmUnIGFuZCBkcm9wLiBUaGUgd29yZCAnU1VDQ0VTUycgc2hvdWxkIGFw
cGVhci4KKzxkaXYgZHJhZ2dhYmxlPSJ0cnVlIiBpZD0iZHJhZyIgb25kcmFnc3RhcnQ9ImRyYWdz
dGFydChldmVudCkiPkRyYWcgTWU8L2Rpdj4KKzxkaXYgaWQ9ImRyb3AiIG9uZHJhZ2VudGVyPSJk
cmFnZW50ZXIoZXZlbnQpIiBvbmRyYWdvdmVyPSJkcmFnb3ZlcihldmVudCkiIG9uZHJvcD0iZHJv
cChldmVudCkiPkRyb3AgSGVyZTwvZGl2PgorPC9kaXY+Cis8ZGl2IGlkPSJyZXN1bHQiPjwvZGl2
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hy
b21pdW0vdGVzdF9leHBlY3RhdGlvbnMudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21p
dW0vdGVzdF9leHBlY3RhdGlvbnMudHh0CmluZGV4IDAyZDcyYTcwOTM4OGVmNjk2ZTc2M2JkM2I1
ZDZjYTdjYjk3YzkzYjMuLmYwYmY2NzBlYzMzMDRlMDgwMDEzNmM5ODA1MTBkNGI1ZWU3MDk4NjUg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL3Rlc3RfZXhwZWN0YXRp
b25zLnR4dAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS90ZXN0X2V4cGVjdGF0
aW9ucy50eHQKQEAgLTM2OTEsNiArMzY5MSw5IEBAIEJVR19TRU5PUkJMQU5DTyBHUFUgOiBmYXN0
L2NhbnZhcy9jYW52YXMtdHJhbnNmb3Jtcy1maWxsUmVjdC1zaGFkb3cuaHRtbCA9IFRFWFQKIAog
QlVHV0s2Njk1MyA6IHRyYW5zaXRpb25zL2RlZmF1bHQtdGltaW5nLWZ1bmN0aW9uLmh0bWwgPSBQ
QVNTIEZBSUwKIAorLy8gRGVwZW5kcyBvbiBDaHJvbWl1bSBmb2xsb3cgdXAgY2hhbmdlIGJlZm9y
ZSB0aGV5IHdpbGwgcGFzcy4KK0JVR0NSMzEwMzcgOiBlZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJv
YXJkLWN1c3RvbURhdGEuaHRtbCA9IEZBSUwKKwogLy8gTmVlZCB0byByZWJhc2VsaW5lIG9uIHdp
biBhbmQgbWFjLgogQlVHX1RPTlkgTUFDIDogY3NzMy9mbGV4Ym94L3JlcGFpbnQuaHRtbCA9IFBB
U1MgRkFJTAogQlVHX1RPTlkgTUFDIDogY3NzMy9mbGV4Ym94L3JlcGFpbnQtcnRsLWNvbHVtbi5o
dG1sID0gUEFTUyBGQUlMCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tp
cHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCmluZGV4IDA1MTAzYmQ2YTNm
ZTE5ZmM2OTU1YTYzNDQ2NWU2MzA2NmVjODE1ZTUuLjg3MmJkOGNjNGJjNGEzYmRhYTE3ZjM1MDE3
NDg2NGQ5OWMxNTVlZmYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lw
cGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCkBAIC0xMzQsNiArMTM0
LDcgQEAgZmFzdC9ldmVudHMvY3Jhc2gtb24tbXV0YXRlLWR1cmluZy1kcm9wLmh0bWwKIGZhc3Qv
ZXZlbnRzL2RyYWctYW5kLWRyb3AtZGF0YVRyYW5zZmVyLXR5cGVzLW5vY3Jhc2guaHRtbAogZmFz
dC9ldmVudHMvZHJhZy1hbmQtZHJvcC1maXJlLWRyYWctZHJhZ292ZXIuaHRtbAogZmFzdC9ldmVu
dHMvZHJhZy1hbmQtZHJvcC5odG1sCitmYXN0L2V2ZW50cy9kcmFnLWN1c3RvbURhdGEuaHRtbAog
ZmFzdC9ldmVudHMvZHJhZy1zZWxlY3RzLWltYWdlLmh0bWwKIGZhc3QvZXZlbnRzL2Ryb3B6b25l
LTAwMS5odG1sCiBmYXN0L2V2ZW50cy9kcm9wem9uZS0wMDIuaHRtbApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9ndGsv
U2tpcHBlZAppbmRleCAxMDVhMzEyZTQ3NDYyNDVjNDE3MDYyMzA0ZjFjYmIyZDEwODc5NWE2Li5j
M2Q0ZDIxOWM2ODVhMWZhZWUwNTlkZTFjMjZkY2M3YTI4MjAwMWRjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS9ndGsvU2tpcHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
dGsvU2tpcHBlZApAQCAtMzAwLDYgKzMwMCwxMCBAQCBtZWRpYS9tZWRpYS1jYXB0aW9ucy5odG1s
CiBlZGl0aW5nL3Bhc3RlYm9hcmQvZGF0YS10cmFuc2Zlci1pdGVtcy5odG1sCiBlZGl0aW5nL3Bh
c3RlYm9hcmQvZGF0YS10cmFuc2Zlci1pdGVtcy1pbWFnZS1wbmcuaHRtbAogCisjIEN1c3RvbSBN
SU1FIHR5cGUgc3VwcG9ydCBpbiBEYXRhVHJhbnNmZXIgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4K
K2VkaXRpbmcvcGFzdGVib2FyZC9jbGlwYm9hcmQtY3VzdG9tRGF0YS5odG1sCitmYXN0L2V2ZW50
cy9kcmFnLWN1c3RvbURhdGEuaHRtbAorCiAjIE5lZWRzIGdyYW1tYXIgY2hlY2tpbmcuCiBlZGl0
aW5nL3NwZWxsaW5nL21hcmtlcnMuaHRtbAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCmluZGV4
IGU4Yjk5NzQ2ZDQ2NDAxY2Y2NjcxOGViNDc5MDkwNDUxNGEwN2E5NjQuLjJlZWU4MjliM2I3ZDk3
MjA3MGMyZTE3MWE4ZjE3NzIwMmQ5ZjIxYzUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL21hYy9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9Ta2lwcGVkCkBA
IC0zNDksNiArMzQ5LDEwIEBAIGNvbXBvc2l0aW5nL3dlYmdsL3dlYmdsLW5vbnByZW11bHRpcGxp
ZWQtYmxlbmQuaHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMuaHRt
bAogZWRpdGluZy9wYXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMtaW1hZ2UtcG5nLmh0bWwK
IAorIyBDdXN0b20gTUlNRSB0eXBlIHN1cHBvcnQgaW4gRGF0YVRyYW5zZmVyIGlzIG5vdCB5ZXQg
aW1wbGVtZW50ZWQuCitlZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJvYXJkLWN1c3RvbURhdGEuaHRt
bAorZmFzdC9ldmVudHMvZHJhZy1jdXN0b21EYXRhLmh0bWwKKwogIyBOZWVkIHRvIGltcGxlbWVu
dCBXZWJHZW9sb2NhdGlvblJlcXVlc3Q6OmNhbmNlbFBlcm1pc3Npb25SZXF1ZXN0IG9uIG1hYy4K
ICMgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTU1OTQ0CiBmYXN0L2Rv
bS9HZW9sb2NhdGlvbi9wYWdlLXJlbG9hZC1jYW5jZWwtcGVybWlzc2lvbi1yZXF1ZXN0cy5odG1s
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vcXQvU2tpcHBlZAppbmRleCA2YzMzZmRkOGM2YTU2NzE2MjM0MmMwYWRiZTE1
ZDBiODA2NWY0NDc2Li4wNmFlYWEwNzRkYWI3YjljMDIwNTViOTIyMzBhMzViODg4NjAwZGJiIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9xdC9Ta2lwcGVkCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL3F0L1NraXBwZWQKQEAgLTMzNCw2ICszMzQsMTAgQEAgc3ZnL2FzLWltYWdl
L2RyYWctc3ZnLWFzLWltYWdlLmh0bWwKIGZhc3QvZm9ybXMvcmFuZ2Uvc2xpZGVyLWRlbGV0ZS13
aGlsZS1kcmFnZ2luZy10aHVtYi5odG1sCiBmYXN0L2Zvcm1zL3NlbGVjdC1tdWx0aXBsZS1lbGVt
ZW50cy13aXRoLW1vdXNlLWRyYWctd2l0aC1vcHRpb25zLWxlc3MtdGhhbi1zaXplLmh0bWwKIAor
IyBDdXN0b20gTUlNRSB0eXBlIHN1cHBvcnQgaW4gRGF0YVRyYW5zZmVyIG5vdCB5ZXQgaW1wbGVt
ZW50ZWQuCitlZGl0aW5nL3Bhc3RlYm9hcmQvY2xpcGJvYXJkLWN1c3RvbURhdGEuaHRtbAorZmFz
dC9ldmVudHMvZHJhZy1jdXN0b21EYXRhLmh0bWwKKwogIyBFdmVudFNlbmRlcjo6ZHVtcEZpbGVu
YW1lQmVpbmdEcmFnZ2VkIG5vdCBpbXBsZW1lbnRlZC4KICMgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTYxODI4CiBmYXN0L2V2ZW50cy9kcmFnLWltYWdlLWZpbGVuYW1l
Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dpbi9Ta2lwcGVkIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKaW5kZXggNDhlZTBkODZhZWJmODEwNWIwNTdh
Mzc4YzIzODliZmQ0NTcxMThmZC4uZGMzN2FiNmZhYmQ1MjcxNGNkNmFmNzlmNzBlMzMwZGYyY2Iw
MTI4MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKKysrIGIv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL1NraXBwZWQKQEAgLTEyNzksNiArMTI3OSwxMCBAQCBl
ZGl0aW5nL3Bhc3RlYm9hcmQvb25wYXN0ZS10ZXh0LWh0bWwtdHlwZXMuaHRtbAogZWRpdGluZy9w
YXN0ZWJvYXJkL2RhdGEtdHJhbnNmZXItaXRlbXMuaHRtbAogZWRpdGluZy9wYXN0ZWJvYXJkL2Rh
dGEtdHJhbnNmZXItaXRlbXMtaW1hZ2UtcG5nLmh0bWwKIAorIyBDdXN0b20gTUlNRSB0eXBlIHN1
cHBvcnQgaW4gRGF0YVRyYW5zZmVyIG5vdCB5ZXQgaW1wbGVtZW50ZWQuCitlZGl0aW5nL3Bhc3Rl
Ym9hcmQvY2xpcGJvYXJkLWN1c3RvbURhdGEuaHRtbAorZmFzdC9ldmVudHMvZHJhZy1jdXN0b21E
YXRhLmh0bWwKKwogIyBOZWVkcyBleHBlY3RhdGlvbiB1cGRhdGUKIGZhc3QvZG9tL0hUTUxNZXRl
ckVsZW1lbnQvbWV0ZXItZWxlbWVudC5odG1sCiBmYXN0L2RvbS9IVE1MTWV0ZXJFbGVtZW50L21l
dGVyLWJvdW5kYXJ5LXZhbHVlcy5odG1sCg==
</data>
<flag name="review"
          id="117059"
          type_id="1"
          status="+"
          setter="levin"
    />
          </attachment>
      

    </bug>

</bugzilla>