<?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>83030</bug_id>
          
          <creation_ts>2012-04-03 07:27:25 -0700</creation_ts>
          <short_desc>[EFL] DRT should support LayoutTestController&apos;s dumpFrameLoadCallbacks()</short_desc>
          <delta_ts>2012-05-06 22:50:40 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</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>
          <dependson>84155</dependson>
          <blocked>83281</blocked>
    
    <blocked>83669</blocked>
    
    <blocked>84052</blocked>
          <everconfirmed>0</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>594463</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-04-03 07:27:25 -0700</bug_when>
    <thetext>EFL&apos;s DumpRenderTree needs to support LayoutTestController&apos;s dumpFrameLoadCallbacks(). This will allow removal of several test cases from the skip list.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>594469</commentid>
    <comment_count>1</comment_count>
      <attachid>135326</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-04-03 07:35:19 -0700</bug_when>
    <thetext>Created attachment 135326
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>595532</commentid>
    <comment_count>2</comment_count>
      <attachid>135326</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-04-04 07:58:50 -0700</bug_when>
    <thetext>Comment on attachment 135326
Proposed patch

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

Repeating what I said on IRC for future-proofness: this approach is fine, but it ends up emitting duplicate signals in cases in which we already have, for example, ewk_frame_load_firstlayout_nonempty_finished and ewk_frame_load_provisional. Even though I like the enum approach better, adopting it will probably break existing code hard, so it&apos;d be good to leverage the work that&apos;s already done here.

&gt; Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp:341
&gt; +    if ((loadStatus == EWK_FRAME_LOAD_FINISHED || loadStatus == EWK_FRAME_LOAD_FAILED)
&gt; +        &amp;&amp; frame == topLoadingFrame)

WebKit in general doesn&apos;t have a hard character limit, so putting the if in a single line is just fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>596531</commentid>
    <comment_count>3</comment_count>
      <attachid>135814</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-04-05 06:48:24 -0700</bug_when>
    <thetext>Created attachment 135814
Proposed patch

Reuse existing signals as suggested and remove the one with enumeration.

Please note that I had to emit the &quot;load,finished&quot; signal from dispatchDidFailLoad() / dispatchDidFinishLoad(), instead of postProgressFinishedNotification().
Otherwise, I miss a &quot;didFinishLoadForFrame&quot; in some tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597125</commentid>
    <comment_count>4</comment_count>
      <attachid>135814</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-04-05 18:58:45 -0700</bug_when>
    <thetext>Comment on attachment 135814
Proposed patch

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

Looks almost good; please also explain in the ChangeLog the reason for moving the ewk_frame_load_{finished,error} signals.

&gt; Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp:-244
&gt; -    if (m_loadError.isNull())
&gt; -        ewk_frame_load_finished(m_frame, 0, 0, 0, 0, 0);
&gt; -    else {
&gt; -        ewk_frame_load_finished(m_frame,
&gt; -                                m_loadError.domain().utf8().data(),
&gt; -                                m_loadError.errorCode(),
&gt; -                                m_loadError.isCancellation(),
&gt; -                                m_loadError.localizedDescription().utf8().data(),
&gt; -                                m_loadError.failingURL().utf8().data());
&gt; -    }

Please add a notImplemented() call here.

&gt; Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp:769
&gt;      if (!shouldFallBack(err))
&gt;          return;

This check has no effect now; shouldn&apos;t you call ewk_frame_load_error after this check?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597231</commentid>
    <comment_count>5</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-04-06 00:00:36 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; &gt; Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp:769
&gt; &gt;      if (!shouldFallBack(err))
&gt; &gt;          return;
&gt; 
&gt; This check has no effect now; shouldn&apos;t you call ewk_frame_load_error after this check?

Some tests did not pass due to missing load errors, so I had to move the error signaling before the shouldFallBack() check. Note that the GTK port is doing the same. However, they have code after the shouldFallback() check. Maybe I should add a notImplemented() after the check for clarity?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>597288</commentid>
    <comment_count>6</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-04-06 04:33:49 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (In reply to comment #4)
&gt; &gt; &gt; Source/WebKit/efl/WebCoreSupport/FrameLoaderClientEfl.cpp:769
&gt; &gt; &gt;      if (!shouldFallBack(err))
&gt; &gt; &gt;          return;
&gt; &gt; 
&gt; &gt; This check has no effect now; shouldn&apos;t you call ewk_frame_load_error after this check?
&gt; 
&gt; Some tests did not pass due to missing load errors, so I had to move the error signaling before the shouldFallBack() check. Note that the GTK port is doing the same. However, they have code after the shouldFallback() check. Maybe I should add a notImplemented() after the check for clarity?

The GTK port seems to automatically load a page with an error message, which is something we usually leave up to the API users. I guess you can just remove the call.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>599146</commentid>
    <comment_count>7</comment_count>
      <attachid>136426</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-04-10 04:16:55 -0700</bug_when>
    <thetext>Created attachment 136426
Proposed patch

Update patch based on feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600048</commentid>
    <comment_count>8</comment_count>
      <attachid>136426</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-04-10 22:58:12 -0700</bug_when>
    <thetext>Comment on attachment 136426
Proposed patch

Looks fine, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>600285</commentid>
    <comment_count>9</comment_count>
      <attachid>136426</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-04-11 08:27:42 -0700</bug_when>
    <thetext>Comment on attachment 136426
Proposed patch

Removing flags since it seems to cause regressions. I&apos;ll debug this tomorrow and update the patch then.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601384</commentid>
    <comment_count>10</comment_count>
      <attachid>136939</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-04-12 11:31:14 -0700</bug_when>
    <thetext>Created attachment 136939
Proposed patch

The previous tests was causing timeouts in the following tests:
* http/tests/eventsource/existent-eventsource-status-error-iframe-crash.html
* http/tests/eventsource/existent-eventsource-status-error-iframe-crash.html
* http/tests/eventsource/non-existent-eventsource-status-error-iframe-crash.html
* http/tests/misc/location-replace-crossdomain.html
* http/tests/misc/cached-scripts.html
* http/tests/misc/onload-remove-iframe-crash-2.html
* fast/dom/HTMLDocument/frameless-location-bugzilla10837.html
* fast/dom/gc-6.html
* fast/dom/attr_dead_doc.html
* fast/dom/frame-loading-via-document-write.html
* fast/dom/Window/Location/window-shadow-location-using-js-object-with-toString.html
* fast/dom/Window/closure-access-after-navigation-iframe.html
* fast/dom/constructors-cached-navigate.html
* fast/dom/HTMLObjectElement/object-as-frame.html
* fast/dom/HTMLHeadElement/head-check.html
* fast/dom/NodeList/adoptNode-node-list-cache.html
* fast/dom/DOMImplementation/createDocument-with-used-doctype.html
* fast/dom/gc-7.html
* fast/css-generated-content/positioned-div-with-floating-after-content-crash.html
* fast/css/user-stylesheet-crash.html
* fast/css/stylesheet-candidate-nodes-crash.xhtml

I updated the &quot;load,started&quot; signal that is emitted on the ewk_view so that the ewk_frame which started loading is passed to the listeners.
This way I can get rid of the following hack in EFL&apos;s DRT:

-void DumpRenderTreeChrome::onLoadStarted(void*, Evas_Object* view, void*)
+void DumpRenderTreeChrome::onLoadStarted(void*, Evas_Object* view, void* eventInfo)
 {
-    // FIXME: we actually need the frame related to this event
-    Evas_Object* frame = ewk_view_frame_main_get(view);
+    Evas_Object* frame = static_cast&lt;Evas_Object*&gt;(eventInfo);

After this fix, I can no longer experience any timeouts in the tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>601398</commentid>
    <comment_count>11</comment_count>
      <attachid>136939</attachid>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-04-12 11:46:38 -0700</bug_when>
    <thetext>Comment on attachment 136939
Proposed patch

Looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603129</commentid>
    <comment_count>12</comment_count>
      <attachid>136939</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-04-16 07:10:56 -0700</bug_when>
    <thetext>Comment on attachment 136939
Proposed patch

it looks like you are doing more than what the bug title says. Maybe splitting the patch in two?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603268</commentid>
    <comment_count>13</comment_count>
      <attachid>137364</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-04-16 10:34:13 -0700</bug_when>
    <thetext>Created attachment 137364
Proposed patch

Splitted the patch as advised. I will open another bug report for the &quot;load,finished&quot; emitting from dispatchDidFailLoad() instead of postProgressFinishedNotification().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603283</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-04-16 11:00:02 -0700</bug_when>
    <thetext>Splitted with #84052.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603820</commentid>
    <comment_count>15</comment_count>
      <attachid>137364</attachid>
    <who name="Gyuyoung Kim">gyuyoung.kim</who>
    <bug_when>2012-04-16 23:05:25 -0700</bug_when>
    <thetext>Comment on attachment 137364
Proposed patch

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

&gt; Tools/ChangeLog:7
&gt; +

Though you modify codes considerably, you don&apos;t write any descriptions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603829</commentid>
    <comment_count>16</comment_count>
      <attachid>137484</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-04-16 23:36:45 -0700</bug_when>
    <thetext>Created attachment 137484
Proposed patch

Add missing description to Tools/ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>603993</commentid>
    <comment_count>17</comment_count>
      <attachid>137484</attachid>
    <who name="Antonio Gomes">tonikitoo</who>
    <bug_when>2012-04-17 06:49:56 -0700</bug_when>
    <thetext>Comment on attachment 137484
Proposed patch

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

it is good to go,with some minor nits.

please reupload with them fixed, and &quot;Reviewed by Antonio Gomes&quot; in the changelogs and only set cq?

&gt; Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp:242
&gt;  Eina_Bool DumpRenderTreeChrome::processWork(void* data)

I think you can omit &apos;data&apos; or use param_unused

&gt; Tools/DumpRenderTree/efl/DumpRenderTreeChrome.cpp:259
&gt; +        ecore_idler_add(processWork, 0);

ecore_idler_add(processWork, 0 /*frame*/) maybe would be clearer</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604005</commentid>
    <comment_count>18</comment_count>
      <attachid>137533</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-04-17 07:24:12 -0700</bug_when>
    <thetext>Created attachment 137533
Proposed patch

Ready patch for landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604018</commentid>
    <comment_count>19</comment_count>
      <attachid>137533</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-17 08:02:54 -0700</bug_when>
    <thetext>Comment on attachment 137533
Proposed patch

Clearing flags on attachment: 137533

Committed r114376: &lt;http://trac.webkit.org/changeset/114376&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604019</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-17 08:03:00 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604033</commentid>
    <comment_count>21</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-04-17 08:21:49 -0700</bug_when>
    <thetext>I&apos;m really sorry, it appears I uploaded a wrong patch after tonikitoo&apos;s review. Would it be possible to revert the commit so that I can reupload a clean one? The patch that landed is an older version which has regressions :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604040</commentid>
    <comment_count>22</comment_count>
    <who name="Raphael Kubo da Costa (:rakuco)">rakuco</who>
    <bug_when>2012-04-17 08:32:14 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; I&apos;m really sorry, it appears I uploaded a wrong patch after tonikitoo&apos;s review. Would it be possible to revert the commit so that I can reupload a clean one? The patch that landed is an older version which has regressions :(

Rolling out r114376 in bug 84155.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604051</commentid>
    <comment_count>23</comment_count>
      <attachid>137545</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-04-17 08:48:28 -0700</bug_when>
    <thetext>Created attachment 137545
Proposed patch

Uploading the right patch this time, ready to commit. Really sorry about the mix up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604071</commentid>
    <comment_count>24</comment_count>
      <attachid>137545</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-17 09:13:40 -0700</bug_when>
    <thetext>Comment on attachment 137545
Proposed patch

Clearing flags on attachment: 137545

Committed r114386: &lt;http://trac.webkit.org/changeset/114386&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>604072</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-04-17 09:13:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135326</attachid>
            <date>2012-04-03 07:35:19 -0700</date>
            <delta_ts>2012-04-05 06:48:24 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>83030_dumpFrameLoadCallbacks</filename>
            <type>text/plain</type>
            <size>20888</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwZmM5NGJkLi5hN2FhNjg1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDQt
MDMgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBbRUZMXSBEUlQgc2hvdWxkIHN1cHBvcnQgTGF5b3V0VGVzdENvbnRyb2xsZXIncyBkdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgzMDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVW5za2lwIHRoZSB0ZXN0IGNhc2VzIGluIEVGTCB3aGljaCBuZWVkZWQgZHVt
cEZyYW1lTG9hZENhbGxiYWNrcygpCisgICAgICAgIHN1cHBvcnQgaW4gdGhlIER1bXBSZW5kZXJU
cmVlIG5vdyB0aGF0IGl0IGlzIGltcGxlbWVudGVkLgorCisgICAgICAgICogcGxhdGZvcm0vZWZs
L1NraXBwZWQ6CisKIDIwMTItMDQtMDEgIE5pa29sYXMgWmltbWVybWFubiAgPG56aW1tZXJtYW5u
QHJpbS5jb20+CiAKICAgICAgICAgQW5pbWF0ZSBhbmltYXRlZFBvaW50cyBpbnN0ZWFkIG9mIHBv
aW50cyBmb3IgU1ZHUG9seSpFbGVtZW50cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZWZsL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZAppbmRleCBi
MTc4ZTdiLi5iOWVmMzgyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tp
cHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZApAQCAtODE2LDcgKzgx
Niw2IEBAIGZhc3QvbG9hZGVyL251bGwtcmVxdWVzdC1hZnRlci13aWxsU2VuZFJlcXVlc3QuaHRt
bAogZmFzdC9oaXN0b3J5L2JhY2stZm9yd2FyZC1yZXNldC1hZnRlci1lcnJvci1oYW5kbGluZy5o
dG1sCiAKICMgTWlzc2luZyBkZWxlZ2F0ZXM6IHRlc3RzIHdoaWNoIG5lZWQgcHJvcGVyIGZyYW1l
IGxvYWRlciBjYWxsYmFja3MgcmVwb3J0aW5nCi1odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29u
dGVudC9lbXB0eS11cmwtcGx1Z2luLWluLWZyYW1lLmh0bWwKIGZhc3QvbG9hZGVyL2ZpbGUtcHJv
dG9jb2wtZnJhZ21lbnQuaHRtbAogCiAjIE1pc3NpbmcgZGVsZWdhdGVzOiB0ZXN0cyBmYWlsaW5n
IGJlY2F1c2Ugb2YgbWlzc2luZyByZXNvdXJjZSBsb2FkIGRlbGVnYXRlIGNhbGxiYWNrcy4KQEAg
LTE0MzYsNyArMTQzNSw2IEBAIGZhc3QvaHRtbC9kZXRhaWxzLW1vdXNlLWNsaWNrLmh0bWwKIGZh
c3QvaHRtbC90YWItb3JkZXIuaHRtbAogZmFzdC9pbmxpbmUvc2tpcHBlZC13aGl0ZXNwYWNlLWJv
dW5kaW5nQm94Lmh0bWwKIGZhc3QvbG9hZGVyL2ZyYWdtZW50LWFmdGVyLXJlZGlyZWN0LWdldHMt
YmFjay1lbnRyeS5odG1sCi1mYXN0L2xvYWRlci9zdWJmcmFtZS1yZW1vdmVzLWl0c2VsZi5odG1s
CiBmYXN0L211bHRpY29sL2NsaWVudC1yZWN0cy5odG1sCiBmYXN0L211bHRpY29sL3NpbmdsZS1s
aW5lLmh0bWwKIGZhc3Qvb3ZlcmZsb3cvb3ZlcmZsb3cteS1zY3JvbGwuaHRtbApAQCAtMjQ4MSwy
MSArMjQ3OSwxMSBAQCBodHRwL3Rlc3RzL3NlY3VyaXR5L2RyYWctZHJvcC1zYW1lLXVuaXF1ZS1v
cmlnaW4uaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9mcmFtZU5hdmlnYXRpb24vbm90LW9wZW5l
ci5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLXdoaXRl
bGlzdGVkLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtdXNlci1DU1MtZnJvbS1yZW1v
dGUuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvYWJvdXQtYmxhbmstaWZy
YW1lLWluLW1haW4tZnJhbWUuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQv
ZGF0YS11cmwtaWZyYW1lLWluLW1haW4tZnJhbWUuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9t
aXhlZENvbnRlbnQvZGF0YS11cmwtc2NyaXB0LWluLWlmcmFtZS5odG1sCi1odHRwL3Rlc3RzL3Nl
Y3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1jc3MtaW4taWZyYW1lLmh0bWwKLWh0dHAvdGVz
dHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWNzcy1pbi1tYWluLWZyYW1lLmh0bWwK
LWh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWlmcmFtZS1pbi1pZnJh
bWUuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtaWZyYW1l
LWluLW1haW4tZnJhbWUuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5z
ZWN1cmUtaW1hZ2UtaW4taWZyYW1lLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250
ZW50L2luc2VjdXJlLWltYWdlLWluLW1haW4tZnJhbWUuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0
eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtcGx1Z2luLWluLWlmcmFtZS5odG1sCiBodHRwL3Rlc3Rz
L3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1zY3JpcHQtaW4taWZyYW1lLmh0bWwKIGh0
dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHAtdG8taHR0cHMtaWZy
YW1lLWluLW1haW4tZnJhbWUuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQv
cmVkaXJlY3QtaHR0cC10by1odHRwcy1zY3JpcHQtaW4taWZyYW1lLmh0bWwKIGh0dHAvdGVzdHMv
c2VjdXJpdHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHBzLXRvLWh0dHAtaWZyYW1lLWluLW1h
aW4tZnJhbWUuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3Qt
aHR0cHMtdG8taHR0cC1zY3JpcHQtaW4taWZyYW1lLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkv
bm8tcmVmZXJyZXIuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9vcmlnaW5IZWFkZXIvb3JpZ2lu
LWhlYWRlci1mb3ItZW1wdHkuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9vcmlnaW5IZWFkZXIv
b3JpZ2luLWhlYWRlci1mb3ItaHR0cHMuaHRtbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCmluZGV4IGQxNzAwY2Eu
LmE2OWUwOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMSBAQAorMjAxMi0wNC0wMyAg
Q2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAg
IFtFRkxdIERSVCBzaG91bGQgc3VwcG9ydCBMYXlvdXRUZXN0Q29udHJvbGxlcidzIGR1bXBGcmFt
ZUxvYWRDYWxsYmFja3MoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9ODMwMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgTGF5b3V0VGVzdENvbnRyb2xsZXIncyBkdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzKCkKKyAgICAgICAgaW4gRUZMJ3MgRHVtcFJlbmRlclRyZWUuCisK
KyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2Fk
KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEhh
bmRsZU9ubG9hZEV2ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVm
bDo6ZGlzcGF0Y2hEaWRTdGFydFByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpG
cmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKToKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEZpcnN0VmlzdWFsbHlOb25F
bXB0eUxheW91dCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlz
cGF0Y2hEaWRGYWlsTG9hZCk6CisgICAgICAgICogZXdrL2V3a19mcmFtZS5jcHA6CisgICAgICAg
IChFd2tfRnJhbWVfU21hcnRfRGF0YSk6CisgICAgICAgIChld2tfZnJhbWVfbG9hZF9zdGF0dXNf
Z2V0KToKKyAgICAgICAgKGV3a19mcmFtZV9sb2FkX3N0YXR1c19jaGFuZ2VkKToKKyAgICAgICAg
KiBld2svZXdrX2ZyYW1lLmg6CisgICAgICAgICogZXdrL2V3a19wcml2YXRlLmg6CisgICAgICAg
ICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9Fd2tfVmlld19Qcml2YXRlX0RhdGEpOgor
ICAgICAgICAoZXdrX3ZpZXdfb25sb2FkX2V2ZW50KToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcu
aDoKKwogMjAxMi0wNC0wMiAgQWxleGFuZGVyIFNoYWxhbW92ICA8YWxleGFuZGVyLnNoYWxhbW92
QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBMYXlvdXRUZXN0Q29udHJvbGxlciBuZWVkcyBp
bXBsZW1lbnRhdGlvbiBvZiBpc1BhZ2VCb3hWaXNpYmxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKaW5kZXgg
NmZhNWNjMC4uM2ExZWI2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcApAQCAtNDQ0LDYgKzQ0NCw4IEBA
IGJvb2wgRnJhbWVMb2FkZXJDbGllbnRFZmw6Omhhc0ZyYW1lVmlldygpIGNvbnN0CiB2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEZpbmlzaExvYWQoKQogewogICAgIG1fbG9h
ZEVycm9yID0gUmVzb3VyY2VFcnJvcigpOyAvKiBjbGVhcnMgcHJldmlvdXMgZXJyb3IgKi8KKwor
ICAgIGV3a19mcmFtZV9sb2FkX3N0YXR1c19jaGFuZ2VkKG1fZnJhbWUsIEVXS19GUkFNRV9MT0FE
X0ZJTklTSEVEKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZnJhbWVMb2FkQ29t
cGxldGVkKCkKQEAgLTUzMCw3ICs1MzIsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjps
b2FkZWRGcm9tQ2FjaGVkUGFnZSgpCiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3Bh
dGNoRGlkSGFuZGxlT25sb2FkRXZlbnRzKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IGV3a192aWV3X29ubG9hZF9ldmVudChtX3ZpZXcsIG1fZnJhbWUpOwogfQogCiB2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZCgpCkBAIC01NzQsNiArNTc2LDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVm
bDo6ZGlzcGF0Y2hEaWRSZWNlaXZlSWNvbigpCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpk
aXNwYXRjaERpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkKCkKIHsKICAgICBld2tfZnJhbWVfbG9hZF9w
cm92aXNpb25hbChtX2ZyYW1lKTsKKyAgICBld2tfZnJhbWVfbG9hZF9zdGF0dXNfY2hhbmdlZCht
X2ZyYW1lLCBFV0tfRlJBTUVfTE9BRF9QUk9WSVNJT05BTCk7CiAgICAgaWYgKGV3a192aWV3X2Zy
YW1lX21haW5fZ2V0KG1fdmlldykgPT0gbV9mcmFtZSkKICAgICAgICAgZXdrX3ZpZXdfbG9hZF9w
cm92aXNpb25hbChtX3ZpZXcpOwogfQpAQCAtNTk3LDYgKzYwMCw3IEBAIHZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkQ2hhbmdlSWNvbnMoV2ViQ29yZTo6SWNvblR5cGUpCiB2
b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZENvbW1pdExvYWQoKQogewogICAg
IGV3a19mcmFtZV91cmlfY2hhbmdlZChtX2ZyYW1lKTsKKyAgICBld2tfZnJhbWVfbG9hZF9zdGF0
dXNfY2hhbmdlZChtX2ZyYW1lLCBFV0tfRlJBTUVfTE9BRF9DT01NSVRURUQpOwogICAgIGlmIChl
d2tfdmlld19mcmFtZV9tYWluX2dldChtX3ZpZXcpICE9IG1fZnJhbWUpCiAgICAgICAgIHJldHVy
bjsKICAgICBld2tfdmlld190aXRsZV9zZXQobV92aWV3LCAwKTsKQEAgLTYxNiw2ICs2MjAsNyBA
QCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEZpcnN0TGF5b3V0KCkKIHZv
aWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5
TGF5b3V0KCkKIHsKICAgICBld2tfZnJhbWVfbG9hZF9maXJzdGxheW91dF9ub25lbXB0eV9maW5p
c2hlZChtX2ZyYW1lKTsKKyAgICBld2tfZnJhbWVfbG9hZF9zdGF0dXNfY2hhbmdlZChtX2ZyYW1l
LCBFV0tfRlJBTUVfTE9BRF9GSVJTVF9WSVNVQUxMWV9OT05fRU1QVFlfTEFZT1VUKTsKIH0KIAog
dm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hTaG93KCkKQEAgLTc0OCw2ICs3NTMs
OCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEZhaWxQcm92aXNpb25h
bExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZs
OjpkaXNwYXRjaERpZEZhaWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycikKIHsKKyAgICBl
d2tfZnJhbWVfbG9hZF9zdGF0dXNfY2hhbmdlZChtX2ZyYW1lLCBFV0tfRlJBTUVfTE9BRF9GQUlM
RUQpOworCiAgICAgaWYgKCFzaG91bGRGYWxsQmFjayhlcnIpKQogICAgICAgICByZXR1cm47CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwIGIvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKaW5kZXggZWZjYTg2Yy4uMjc5NjcyZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKQEAgLTcyLDYgKzcyLDcgQEAgc3RydWN0IEV3
a19GcmFtZV9TbWFydF9EYXRhIHsKICAgICBjb25zdCBjaGFyKiB0aXRsZTsKICAgICBjb25zdCBj
aGFyKiB1cmk7CiAgICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBFd2tfRnJhbWVfTG9hZF9TdGF0
dXMgbG9hZFN0YXR1czsKICAgICBib29sIGVkaXRhYmxlIDogMTsKICAgICBib29sIGhhc0Rpc3Bs
YXllZE1peGVkQ29udGVudCA6IDE7CiAgICAgYm9vbCBoYXNSdW5NaXhlZENvbnRlbnQgOiAxOwpA
QCAtMTYyMiw2ICsxNjIzLDI2IEBAIEV3a19DZXJ0aWZpY2F0ZV9TdGF0dXMgZXdrX2ZyYW1lX2Nl
cnRpZmljYXRlX3N0YXR1c19nZXQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKQogICAgIHJldHVybiBF
V0tfQ0VSVElGSUNBVEVfU1RBVFVTX1VOVFJVU1RFRDsKIH0KIAorRXdrX0ZyYW1lX0xvYWRfU3Rh
dHVzIGV3a19mcmFtZV9sb2FkX3N0YXR1c19nZXQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKQorewor
ICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBzbWFydERhdGEsIEVXS19G
UkFNRV9MT0FEX0ZJTklTSEVEKTsKKyAgICByZXR1cm4gc21hcnREYXRhLT5sb2FkU3RhdHVzOwor
fQorCisvKioKKyAqIEBpbnRlcm5hbAorICogUmVwb3J0cyB0aGF0IHRoZSBmcmFtZSdzIGxvYWQg
c3RhdHVzIGNoYW5nZWQuCisgKgorICogRW1pdHMgc2lnbmFsOiAibG9hZCxzdGF0dXMiIHdpdGgg
bm8gcGFyYW1ldGVycy4KKyAqLwordm9pZCBld2tfZnJhbWVfbG9hZF9zdGF0dXNfY2hhbmdlZChF
dmFzX09iamVjdCogZXdrRnJhbWUsIEV3a19GcmFtZV9Mb2FkX1N0YXR1cyBsb2FkU3RhdHVzKQor
eworICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBzbWFydERhdGEpOwor
ICAgIHNtYXJ0RGF0YS0+bG9hZFN0YXR1cyA9IGxvYWRTdGF0dXM7CisKKyAgICBldmFzX29iamVj
dF9zbWFydF9jYWxsYmFja19jYWxsKGV3a0ZyYW1lLCAibG9hZCxzdGF0dXMiLCAwKTsKK30KKwog
LyoqCiAgKiBAaW50ZXJuYWwKICAqIFJlcG9ydHMgdXJpIGNoYW5nZWQgYW5kIHN3YXAgaW50ZXJu
YWwgc3RyaW5nIHJlZmVyZW5jZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfZnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaAppbmRleCBmNzQ1
NTVlLi40NDJjNGFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1l
LmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oCkBAIC01Miw2ICs1Miw3
IEBACiAgKiAgICBmcm9tIDAuMCB0byAxLjAsIGNvbm5lY3QgdG8gaW5kaXZpZHVhbCBmcmFtZXMg
Zm9yIGZpbmUgZ3JhaW5lZCkuCiAgKiAgLSAibG9hZCxwcm92aXNpb25hbCIsIHZvaWQ6IGZyYW1l
IHN0YXJ0ZWQgcHJvdmlzaW9uYWwgbG9hZC4KICAqICAtICJsb2FkLHN0YXJ0ZWQiLCB2b2lkOiBm
cmFtZSBzdGFydGVkIGxvYWRpbmcgdGhlIGRvY3VtZW50LgorICogIC0gImxvYWQsc3RhdHVzIiwg
dm9pZDogbG9hZCBzdGF0dXMgaXMgY2hhbmdlZC4KICAqICAtICJtaXhlZGNvbnRlbnQsZGlzcGxh
eWVkIiwgdm9pZDogZnJhbWUgaGFzIGxvYWRlZCBhbmQgZGlzcGxheWVkIG1peGVkIGNvbnRlbnQu
CiAgKiAgLSAibWl4ZWRjb250ZW50LHJ1biIsIHZvaWQ6IGZyYW1lIGhhcyBsb2FkZWQgYW5kIHJ1
biBtaXhlZCBjb250ZW50LgogICogIC0gIm5hdmlnYXRpb24sZmlyc3QiLCB2b2lkOiBmaXJzdCBu
YXZpZ2F0aW9uIHdhcyBvY2N1cnJlZC4KQEAgLTE5Miw2ICsxOTMsMzQgQEAgdHlwZWRlZiBlbnVt
IHsKIH0gRXdrX0NlcnRpZmljYXRlX1N0YXR1czsKIAogLyoqCisgKiBFd2tfRnJhbWVfTG9hZF9T
dGF0dXMKKyAqIEBFV0tfRlJBTUVfTE9BRF9QUk9WSVNJT05BTDogTm8gZGF0YSBoYXMgYmVlbiBy
ZWNlaXZlZCB5ZXQsIGVtcHR5CisgKiBzdHJ1Y3R1cmVzIGhhdmUgYmVlbiBhbGxvY2F0ZWQgdG8g
cGVyZm9ybSB0aGUgbG9hZDsgdGhlIGxvYWQgbWF5CisgKiBzdGlsbCBmYWlsIGZvciB0cmFuc3Bv
cnQgaXNzdWVzIHN1Y2ggYXMgbm90IGJlaW5nIGFibGUgdG8gcmVzb2x2ZSBhCisgKiBuYW1lLCBv
ciBjb25uZWN0IHRvIGEgcG9ydC4KKyAqIEBFV0tfRlJBTUVfTE9BRF9DT01NSVRURUQ6IFRoZSBm
aXJzdCBkYXRhIGNodW5rIGhhcyBhcnJpdmVkLCBtZWFuaW5nCisgKiB0aGF0IHRoZSBuZWNlc3Nh
cnkgdHJhbnNwb3J0IHJlcXVpcmVtZW50cyBhcmUgZXN0YWJpbGlzaGVkLCBhbmQgdGhlCisgKiBs
b2FkIGlzIGJlaW5nIHBlcmZvcm1lZC4KKyAqIEBFV0tfRlJBTUVfTE9BRF9GSVJTVF9WSVNVQUxM
WV9OT05fRU1QVFlfTEFZT1VUOiBUaGUgZmlyc3QgbGF5b3V0IHdpdGgKKyAqIGFjdHVhbCB2aXNp
YmxlIGNvbnRlbnQgaGFwcGVuZWQ7IG9uZSBvciBtb3JlIGxheW91dHMgbWF5IGhhdmUKKyAqIGhh
cHBlbmVkIGJlZm9yZSB0aGF0IGNhdXNlZCBub3RoaW5nIHRvIGJlIHZpc2libGUgb24gdGhlIHNj
cmVlbiwKKyAqIGJlY2F1c2UgdGhlIGRhdGEgYXZhaWxhYmxlIGF0IHRoZSB0aW1lIHdhcyBub3Qg
c2lnbmlmaWNhbnQgZW5vdWdoLgorICogQEVXS19GUkFNRV9MT0FEX0ZJTklTSEVEOiBUaGlzIHN0
YXRlIG1lYW5zIHRoYXQgZXZlcnl0aGluZyB0aGF0IHdhcworICogcmVxdWlyZWQgdG8gZGlzcGxh
eSB0aGUgcGFnZSBoYXMgYmVlbiBsb2FkZWQuCisgKiBARVdLX0ZSQU1FX0xPQURfRkFJTEVEOiBU
aGlzIHN0YXRlIG1lYW5zIHRoYXQgc29tZSBlcnJvciBvY2N1cnJlZAorICogZHVyaW5nIHRoZSBw
YWdlIGxvYWQgdGhhdCBwcmV2ZW50ZWQgaXQgZnJvbSBiZWluZyBjb21wbGV0ZWQuIFlvdQorICog
Y2FuIGNvbm5lY3QgdG8gdGhlICNXZWJLaXRXZWJWaWV3Ojpsb2FkLWVycm9yIHNpZ25hbCBpZiB5
b3Ugd2FudCB0bworICoga25vdyBwcmVjaXNlbHkgd2hhdCBraW5kIG9mIGVycm9yIG9jY3VycmVk
LgorICovCit0eXBlZGVmIGVudW0geworICAgIEVXS19GUkFNRV9MT0FEX1BST1ZJU0lPTkFMLAor
ICAgIEVXS19GUkFNRV9MT0FEX0NPTU1JVFRFRCwKKyAgICBFV0tfRlJBTUVfTE9BRF9GSU5JU0hF
RCwKKyAgICBFV0tfRlJBTUVfTE9BRF9GSVJTVF9WSVNVQUxMWV9OT05fRU1QVFlfTEFZT1VULAor
ICAgIEVXS19GUkFNRV9MT0FEX0ZBSUxFRAorfSBFd2tfRnJhbWVfTG9hZF9TdGF0dXM7CisKKy8q
KgogICogUmV0cmlldmVzIHRoZSBld2tfdmlldyBvYmplY3QgdGhhdCBvd25zIHRoaXMgZnJhbWUu
CiAgKgogICogQHBhcmFtIG8gZnJhbWUgb2JqZWN0IHRvIGdldCB2aWV3IG9iamVjdApAQCAtODk0
LDYgKzkyMywxMSBAQCBFQVBJIEVpbmFfQm9vbCBld2tfZnJhbWVfbWl4ZWRfY29udGVudF9ydW5f
Z2V0KGNvbnN0IEV2YXNfT2JqZWN0ICpvKTsKICAqLwogRUFQSSBFd2tfQ2VydGlmaWNhdGVfU3Rh
dHVzIGV3a19mcmFtZV9jZXJ0aWZpY2F0ZV9zdGF0dXNfZ2V0KEV2YXNfT2JqZWN0ICpvKTsKIAor
LyoqCisgKiBSZXR1cm5zIHRoZSBsb2FkIHN0YXR1cyBvZiB0aGUgZnJhbWUuCisgKi8KK0VBUEkg
RXdrX0ZyYW1lX0xvYWRfU3RhdHVzIGV3a19mcmFtZV9sb2FkX3N0YXR1c19nZXQoRXZhc19PYmpl
Y3QgKm8pOworCiAjaWZkZWYgX19jcGx1c3BsdXMKIH0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ByaXZhdGUuaAppbmRleCA5NmU0Nzk1Li4zYjBiMWVmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2sv
ZXdrX3ByaXZhdGUuaApAQCAtMTE0LDYgKzExNCw3IEBAIHZvaWQgZXdrX3ZpZXdfbG9hZF9maW5p
c2hlZChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgRXdrX0ZyYW1lX0xvYWRfRXJyb3IqIGVy
CiB2b2lkIGV3a192aWV3X2xvYWRfZXJyb3IoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV3
a19GcmFtZV9Mb2FkX0Vycm9yKiBlcnJvcik7CiB2b2lkIGV3a192aWV3X2xvYWRfcHJvZ3Jlc3Nf
Y2hhbmdlZChFdmFzX09iamVjdCogZXdrVmlldyk7CiB2b2lkIGV3a192aWV3X2xvYWRfc2hvdyhF
dmFzX09iamVjdCogZXdrVmlldyk7Cit2b2lkIGV3a192aWV3X29ubG9hZF9ldmVudChFdmFzX09i
amVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGZyYW1lKTsKIHZvaWQgZXdrX3ZpZXdfcmVzdG9y
ZV9zdGF0ZShFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGZyYW1lKTsKIEV2YXNf
T2JqZWN0KiBld2tfdmlld193aW5kb3dfY3JlYXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29s
IGphdmFzY3JpcHQsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzKiBjb3JlRmVhdHVyZXMp
Owogdm9pZCBld2tfdmlld193aW5kb3dfY2xvc2UoRXZhc19PYmplY3QqIGV3a1ZpZXcpOwpAQCAt
MjEwLDYgKzIxMSw3IEBAIHZvaWQgZXdrX2ZyYW1lX2xvYWRfZG9jdW1lbnRfZmluaXNoZWQoRXZh
c19PYmplY3QqIGV3a0ZyYW1lKTsKIHZvaWQgZXdrX2ZyYW1lX2xvYWRfZmluaXNoZWQoRXZhc19P
YmplY3QqIGV3a0ZyYW1lLCBjb25zdCBjaGFyKiBlcnJvckRvbWFpbiwgaW50IGVycm9yQ29kZSwg
Ym9vbCBpc0NhbmNlbGxhdGlvbiwgY29uc3QgY2hhciogZXJyb3JEZXNjcmlwdGlvbiwgY29uc3Qg
Y2hhciogZmFpbGluZ1VybCk7CiB2b2lkIGV3a19mcmFtZV9sb2FkX2Vycm9yKEV2YXNfT2JqZWN0
KiBld2tGcmFtZSwgY29uc3QgY2hhciogZXJyb3JEb21haW4sIGludCBlcnJvckNvZGUsIGJvb2wg
aXNDYW5jZWxsYXRpb24sIGNvbnN0IGNoYXIqIGVycm9yRGVzY3JpcHRpb24sIGNvbnN0IGNoYXIq
IGZhaWxpbmdVcmwpOwogdm9pZCBld2tfZnJhbWVfbG9hZF9wcm9ncmVzc19jaGFuZ2VkKEV2YXNf
T2JqZWN0KiBld2tGcmFtZSk7Cit2b2lkIGV3a19mcmFtZV9sb2FkX3N0YXR1c19jaGFuZ2VkKEV2
YXNfT2JqZWN0KiBld2tGcmFtZSwgRXdrX0ZyYW1lX0xvYWRfU3RhdHVzIGxvYWRTdGF0dXMpOwog
CiB2b2lkIGV3a19mcmFtZV9yZXF1ZXN0X3dpbGxfc2VuZChFdmFzX09iamVjdCogZXdrRnJhbWUs
IEV3a19GcmFtZV9SZXNvdXJjZV9SZXF1ZXN0KiByZXF1ZXN0KTsKIHZvaWQgZXdrX2ZyYW1lX3Jl
cXVlc3RfYXNzaWduX2lkZW50aWZpZXIoRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBjb25zdCBFd2tf
RnJhbWVfUmVzb3VyY2VfUmVxdWVzdCogcmVxdWVzdCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3
LmNwcAppbmRleCAyZDQyYTMyLi43YTVjZTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9ld2svZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5j
cHAKQEAgLTI4NTMsNiArMjg1MywxOSBAQCB2b2lkIGV3a192aWV3X2xvYWRfc2hvdyhFdmFzX09i
amVjdCogZXdrVmlldykKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a1Zp
ZXcsICJsb2FkLG5ld3dpbmRvdyxzaG93IiwgMCk7CiB9CiAKKy8qKgorICogQGludGVybmFsCisg
KiBSZXBvcnRzIGFuIG9ubG9hZCBldmVudCBmb3IgQHAgZnJhbWUuCisgKgorICogQHBhcmFtIGV3
a1ZpZXcgVmlldyB3aGljaCBjb250YWlucyB0aGUgZnJhbWUuCisgKiBAcGFyYW0gZnJhbWUgVGhl
IGZyYW1lIHdob3NlIG9ubG9hZCBldmVudCB3YXMgcmVjZWl2ZWQuCisgKgorICogRW1pdHMgc2ln
bmFsOiAib25sb2FkLGV2ZW50IiB3aXRoIEBwIGZyYW1lIGFzIHRoZSBwYXJhbWV0ZXIuCisgKi8K
K3ZvaWQgZXdrX3ZpZXdfb25sb2FkX2V2ZW50KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09i
amVjdCogZnJhbWUpCit7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tW
aWV3LCAib25sb2FkLGV2ZW50IiwgZnJhbWUpOworfQogCiAvKioKICAqIEBpbnRlcm5hbApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmggYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3ZpZXcuaAppbmRleCAyNTM5NzhkLi4yNTc2MWM4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuaApAQCAtNjAsNiArNjAsNyBAQAogICogIC0gIm1lbnViYXIsdmlzaWJsZSxz
ZXQiLCBFaW5hX0Jvb2w6IHNldHMgbWVudWJhciB2aXNpYmlsaXR5LgogICogIC0gIm1peGVkY29u
dGVudCxkaXNwbGF5ZWQiLCB2b2lkOiBhbnkgb2YgdGhlIGNvbnRhaW5pbmcgZnJhbWVzIGhhcyBs
b2FkZWQgYW5kIGRpc3BsYXllZCBtaXhlZCBjb250ZW50LgogICogIC0gIm1peGVkY29udGVudCxy
dW4iLCB2b2lkOiBhbnkgb2YgdGhlIGNvbnRhaW5pbmcgZnJhbWVzIGhhcyBsb2FkZWQgYW5kIHJ1
biBtaXhlZCBjb250ZW50LgorICogIC0gIm9ubG9hZCxldmVudCIsIEV2YXNfT2JqZWN0KjogYSBm
cmFtZSBvbmxvYWQgZXZlbnQgaGFzIGJlZW4gcmVjZWl2ZWQuCiAgKiAgLSAicmVhZHkiLCB2b2lk
OiBwYWdlIGlzIGZ1bGx5IGxvYWRlZC4KICAqICAtICJyZXNvdXJjZSxyZXF1ZXN0LHdpbGxzZW5k
IiwgRXdrX0ZyYW1lX1Jlc291cmNlX1JlcXVlc3QqOiB0aGUgbmV0d29yayByZXF1ZXN0IGZvciB0
aGUgbWFpbiBmcmFtZSB3aWxsIGJlIHNlbnQuCiAgKiAgLSAic2Nyb2xsYmFycyx2aXNpYmxlLGdl
dCIsIEVpbmFfQm9vbCAqOiBleHBlY3RzIGEgQGMgRUlOQV9UUlVFIGlmIHNjcm9sbGJhcnMKZGlm
ZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBmMjU4ZWRk
Li43NzMxYzdhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMDQtMDMgIENocmlzdG9waGUgRHVtZXogIDxjaHJp
c3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAgICAgICBbRUZMXSBEUlQgc2hvdWxkIHN1cHBv
cnQgTGF5b3V0VGVzdENvbnRyb2xsZXIncyBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzMDMwCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHN1cHBv
cnQgZm9yIExheW91dFRlc3RDb250cm9sbGVyJ3MgZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpCisg
ICAgICAgIGluIEVGTCdzIER1bXBSZW5kZXJUcmVlLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVl
Q2hyb21lOjpjcmVhdGVWaWV3KToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpwcm9j
ZXNzV29yayk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6dG9wTG9hZGluZ0ZyYW1l
TG9hZEZpbmlzaGVkKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbldlYlZpZXdP
bmxvYWRFdmVudCk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25JbnNlY3VyZUNv
bnRlbnRSdW4pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uSW5zZWN1cmVDb250
ZW50RGlzcGxheWVkKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZyYW1lQ3Jl
YXRlZCk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZUxvYWRTdGF0dXNO
b3RpZmllZCk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hy
b21lLmg6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZSk6CisKIDIwMTItMDQtMDMgIFNp
bW9uIFBlbmEgIDxzcGVuYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdIERSVCBtaXNzaW5n
IGRpZFJ1bkluc2VjdXJlQ29udGVudCBub3RpZmljYXRpb24KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAgYi9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCmluZGV4IDlkMGI1YzIuLjFhZDJi
ZTIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNo
cm9tZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hy
b21lLmNwcApAQCAtODgsMTEgKzg4LDE3IEBAIEV2YXNfT2JqZWN0KiBEdW1wUmVuZGVyVHJlZUNo
cm9tZTo6Y3JlYXRlVmlldygpIGNvbnN0CiAgICAgZXdrX3ZpZXdfdGhlbWVfc2V0KHZpZXcsIERB
VEFfRElSIi9kZWZhdWx0LmVkaiIpOwogCiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tf
YWRkKHZpZXcsICJsb2FkLHN0YXJ0ZWQiLCBvbkxvYWRTdGFydGVkLCAwKTsKLSAgICBldmFzX29i
amVjdF9zbWFydF9jYWxsYmFja19hZGQodmlldywgImxvYWQsZmluaXNoZWQiLCBvbkxvYWRGaW5p
c2hlZCwgMCk7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHZpZXcsICJ0aXRs
ZSxjaGFuZ2VkIiwgb25UaXRsZUNoYW5nZWQsIDApOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2Nh
bGxiYWNrX2FkZCh2aWV3LCAid2luZG93LG9iamVjdCxjbGVhcmVkIiwgb25XaW5kb3dPYmplY3RD
bGVhcmVkLCBtX2djQ29udHJvbGxlci5nZXQoKSk7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2Fs
bGJhY2tfYWRkKHZpZXcsICJzdGF0dXNiYXIsdGV4dCxzZXQiLCBvblN0YXR1c2JhclRleHRTZXQs
IDApOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2aWV3LCAibG9hZCxkb2N1
bWVudCxmaW5pc2hlZCIsIG9uRG9jdW1lbnRMb2FkRmluaXNoZWQsIDApOworICAgIGV2YXNfb2Jq
ZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2aWV3LCAib25sb2FkLGV2ZW50Iiwgb25XZWJWaWV3T25s
b2FkRXZlbnQsIDApOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2aWV3LCAi
bWl4ZWRjb250ZW50LHJ1biIsIG9uSW5zZWN1cmVDb250ZW50UnVuLCAwKTsKKyAgICBldmFzX29i
amVjdF9zbWFydF9jYWxsYmFja19hZGQodmlldywgIm1peGVkY29udGVudCxkaXNwbGF5ZWQiLCBv
bkluc2VjdXJlQ29udGVudERpc3BsYXllZCwgMCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2Fs
bGJhY2tfYWRkKHZpZXcsICJmcmFtZSxjcmVhdGVkIiwgb25GcmFtZUNyZWF0ZWQsIDApOworCisg
ICAgRXZhc19PYmplY3QqIG1haW5GcmFtZSA9IGV3a192aWV3X2ZyYW1lX21haW5fZ2V0KHZpZXcp
OworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChtYWluRnJhbWUsICJsb2FkLHN0
YXR1cyIsIG9uRnJhbWVMb2FkU3RhdHVzTm90aWZpZWQsIDApOwogCiAgICAgcmV0dXJuIHZpZXc7
CiB9CkBAIC0yMjksMjIgKzIzNSwxNCBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkxv
YWRTdGFydGVkKHZvaWQqLCBFdmFzX09iamVjdCogdmlldywgdm9pZCopCiAKIEVpbmFfQm9vbCBE
dW1wUmVuZGVyVHJlZUNocm9tZTo6cHJvY2Vzc1dvcmsodm9pZCogZGF0YSkKIHsKLSAgICBFdmFz
X09iamVjdCogZnJhbWUgPSBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGRhdGEpOwotCiAgICAg
aWYgKFdvcmtRdWV1ZTo6c2hhcmVkKCktPnByb2Nlc3NXb3JrKCkgJiYgIWdMYXlvdXRUZXN0Q29u
dHJvbGxlci0+d2FpdFRvRHVtcCgpKQogICAgICAgICBkdW1wKCk7CiAKICAgICByZXR1cm4gRUNP
UkVfQ0FMTEJBQ0tfQ0FOQ0VMOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkxv
YWRGaW5pc2hlZCh2b2lkKiwgRXZhc19PYmplY3QqIHZpZXcsIHZvaWQqKQordm9pZCBEdW1wUmVu
ZGVyVHJlZUNocm9tZTo6dG9wTG9hZGluZ0ZyYW1lTG9hZEZpbmlzaGVkKCkKIHsKLSAgICAvLyBG
SVhNRTogd2UgYWN0dWFsbHkgbmVlZCB0aGUgZnJhbWUgcmVsYXRlZCB0byB0aGlzIGV2ZW50Ci0g
ICAgRXZhc19PYmplY3QqIGZyYW1lID0gZXdrX3ZpZXdfZnJhbWVfbWFpbl9nZXQodmlldyk7Ci0K
LSAgICBpZiAodG9wTG9hZGluZ0ZyYW1lICE9IGZyYW1lKQotICAgICAgICByZXR1cm47Ci0KICAg
ICB0b3BMb2FkaW5nRnJhbWUgPSAwOwogCiAgICAgV29ya1F1ZXVlOjpzaGFyZWQoKS0+c2V0RnJv
emVuKHRydWUpOwpAQCAtMjUyLDcgKzI1MCw3IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6
Om9uTG9hZEZpbmlzaGVkKHZvaWQqLCBFdmFzX09iamVjdCogdmlldywgdm9pZCopCiAgICAgICAg
IHJldHVybjsKIAogICAgIGlmIChXb3JrUXVldWU6OnNoYXJlZCgpLT5jb3VudCgpKQotICAgICAg
ICBlY29yZV9pZGxlcl9hZGQocHJvY2Vzc1dvcmssIGZyYW1lKTsKKyAgICAgICAgZWNvcmVfaWRs
ZXJfYWRkKHByb2Nlc3NXb3JrLCAwKTsKICAgICBlbHNlCiAgICAgICAgIGR1bXAoKTsKIH0KQEAg
LTI4NCwzICsyODIsNjIgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25Eb2N1bWVudExv
YWRGaW5pc2hlZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKiBldmUKICAgICAgICAgICAgIHBy
aW50ZigiJXMgLSBoYXMgJXUgb251bmxvYWQgaGFuZGxlcihzKVxuIiwgZnJhbWVOYW1lLnV0Zjgo
KS5kYXRhKCksIHBlbmRpbmdGcmFtZVVubG9hZEV2ZW50cyk7CiAgICAgfQogfQorCit2b2lkIER1
bXBSZW5kZXJUcmVlQ2hyb21lOjpvbldlYlZpZXdPbmxvYWRFdmVudCh2b2lkKiwgRXZhc19PYmpl
Y3QqLCB2b2lkKiBldmVudEluZm8pCit7CisgICAgY29uc3QgRXZhc19PYmplY3QqIGZyYW1lID0g
c3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihldmVudEluZm8pOworCisgICAgaWYgKCFkb25lICYm
IGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7CisgICAg
ICAgIGNvbnN0IFN0cmluZyBmcmFtZU5hbWUoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzdWl0
YWJsZURSVEZyYW1lTmFtZShmcmFtZSkpOworICAgICAgICBwcmludGYoIiVzIC0gZGlkSGFuZGxl
T25sb2FkRXZlbnRzRm9yRnJhbWVcbiIsIGZyYW1lTmFtZS51dGY4KCkuZGF0YSgpKTsKKyAgICB9
Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uSW5zZWN1cmVDb250ZW50UnVuKHZv
aWQqLCBFdmFzX09iamVjdCosIHZvaWQqKQoreworICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVz
dENvbnRyb2xsZXItPmR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSkKKyAgICAgICAgcHJpbnRmKCJk
aWRSdW5JbnNlY3VyZUNvbnRlbnRcbiIpOworfQorCit2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21l
Ojpvbkluc2VjdXJlQ29udGVudERpc3BsYXllZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKikK
K3sKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wRnJhbWVMb2Fk
Q2FsbGJhY2tzKCkpCisgICAgICAgIHByaW50ZigiZGlkRGlzcGxheUluc2VjdXJlQ29udGVudFxu
Iik7Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uRnJhbWVDcmVhdGVkKHZvaWQq
LCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykKK3sKKyAgICBFdmFzX09iamVjdCogZnJh
bWUgPSBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGV2ZW50SW5mbyk7CisKKyAgICBldmFzX29i
amVjdF9zbWFydF9jYWxsYmFja19hZGQoZnJhbWUsICJsb2FkLHN0YXR1cyIsIG9uRnJhbWVMb2Fk
U3RhdHVzTm90aWZpZWQsIDApOworfQorCit2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZy
YW1lTG9hZFN0YXR1c05vdGlmaWVkKHZvaWQqLCBFdmFzX09iamVjdCogZnJhbWUsIHZvaWQqKQor
eworICAgIEV3a19GcmFtZV9Mb2FkX1N0YXR1cyBsb2FkU3RhdHVzID0gZXdrX2ZyYW1lX2xvYWRf
c3RhdHVzX2dldChmcmFtZSk7CisKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9s
bGVyLT5kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgY29uc3QgU3RyaW5nIGZy
YW1lTmFtZShEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnN1aXRhYmxlRFJURnJhbWVOYW1lKGZy
YW1lKSk7CisKKyAgICAgICAgc3dpdGNoIChsb2FkU3RhdHVzKSB7CisgICAgICAgIGNhc2UgRVdL
X0ZSQU1FX0xPQURfUFJPVklTSU9OQUw6CisgICAgICAgICAgICBwcmludGYoIiVzIC0gZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVxuIiwgZnJhbWVOYW1lLnV0ZjgoKS5kYXRhKCkpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgRVdLX0ZSQU1FX0xPQURfQ09NTUlUVEVE
OgorICAgICAgICAgICAgcHJpbnRmKCIlcyAtIGRpZENvbW1pdExvYWRGb3JGcmFtZVxuIiwgZnJh
bWVOYW1lLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2Ug
RVdLX0ZSQU1FX0xPQURfRklOSVNIRUQ6CisgICAgICAgICAgICBwcmludGYoIiVzIC0gZGlkRmlu
aXNoTG9hZEZvckZyYW1lXG4iLCBmcmFtZU5hbWUudXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgY2FzZSBFV0tfRlJBTUVfTE9BRF9GQUlMRUQ6CisgICAgICAgICAg
ICBwcmludGYoIiVzIC0gZGlkRmFpbExvYWRXaXRoRXJyb3JcbiIsIGZyYW1lTmFtZS51dGY4KCku
ZGF0YSgpKTsKKyAgICAgICAgICAgIGJyZWFrOworICAgICAgICBkZWZhdWx0OgorICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisKKyAgICBpZiAoKGxvYWRTdGF0dXMgPT0gRVdL
X0ZSQU1FX0xPQURfRklOSVNIRUQgfHwgbG9hZFN0YXR1cyA9PSBFV0tfRlJBTUVfTE9BRF9GQUlM
RUQpCisgICAgICAgICYmIGZyYW1lID09IHRvcExvYWRpbmdGcmFtZSkKKyAgICAgICAgdG9wTG9h
ZGluZ0ZyYW1lTG9hZEZpbmlzaGVkKCk7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Vm
bC9EdW1wUmVuZGVyVHJlZUNocm9tZS5oCmluZGV4IDRlYTk5MTguLjA3MjcwZTMgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5oCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5oCkBAIC02OCwx
MyArNjgsMjMgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyBFaW5hX0Jvb2wgcHJvY2Vzc1dvcmso
dm9pZCopOwogCi0gICAgc3RhdGljIHZvaWQgb25Mb2FkRmluaXNoZWQodm9pZCosIEV2YXNfT2Jq
ZWN0Kiwgdm9pZCopOworICAgIHN0YXRpYyB2b2lkIHRvcExvYWRpbmdGcmFtZUxvYWRGaW5pc2hl
ZCgpOwogCiAgICAgc3RhdGljIHZvaWQgb25TdGF0dXNiYXJUZXh0U2V0KHZvaWQqLCBFdmFzX09i
amVjdCosIHZvaWQqKTsKIAogICAgIHN0YXRpYyB2b2lkIG9uVGl0bGVDaGFuZ2VkKHZvaWQqLCBF
dmFzX09iamVjdCosIHZvaWQqKTsKIAogICAgIHN0YXRpYyB2b2lkIG9uRG9jdW1lbnRMb2FkRmlu
aXNoZWQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopOworCisgICAgc3RhdGljIHZvaWQgb25X
ZWJWaWV3T25sb2FkRXZlbnQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopOworCisgICAgc3Rh
dGljIHZvaWQgb25JbnNlY3VyZUNvbnRlbnRSdW4odm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCop
OworCisgICAgc3RhdGljIHZvaWQgb25JbnNlY3VyZUNvbnRlbnREaXNwbGF5ZWQodm9pZCosIEV2
YXNfT2JqZWN0Kiwgdm9pZCopOworCisgICAgc3RhdGljIHZvaWQgb25GcmFtZUNyZWF0ZWQodm9p
ZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopOworCisgICAgc3RhdGljIHZvaWQgb25GcmFtZUxvYWRT
dGF0dXNOb3RpZmllZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKik7CiB9OwogCiAjZW5kaWYg
Ly8gRHVtcFJlbmRlclRyZWVDaHJvbWVfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>135814</attachid>
            <date>2012-04-05 06:48:24 -0700</date>
            <delta_ts>2012-04-10 04:16:55 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>83030_dumpFrameLoadCallbacks</filename>
            <type>text/plain</type>
            <size>20683</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBhYjE5MTUzLi5kNTA4NDIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDQt
MDUgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBbRUZMXSBEUlQgc2hvdWxkIHN1cHBvcnQgTGF5b3V0VGVzdENvbnRyb2xsZXIncyBkdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgzMDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVW5za2lwIHRoZSB0ZXN0IGNhc2VzIGluIEVGTCB3aGljaCBuZWVkZWQgZHVt
cEZyYW1lTG9hZENhbGxiYWNrcygpCisgICAgICAgIHN1cHBvcnQgaW4gdGhlIER1bXBSZW5kZXJU
cmVlIG5vdyB0aGF0IGl0IGlzIGltcGxlbWVudGVkLgorCisgICAgICAgICogcGxhdGZvcm0vZWZs
L1NraXBwZWQ6CisKIDIwMTItMDQtMDUgIERvbWluaWsgUsO2dHRzY2hlcyAgPGRvbWluaWsucm90
dHNjaGVzQGxpbnV4LmludGVsLmNvbT4KIAogICAgICAgICBbRUZMXVtEUlRdIFJlbW92ZSBsYXll
ci1yZWxhdGVkIHBhc3NpbmcgdGVzdHMgZnJvbSB0ZXN0X2V4cGVjdGF0aW9ucy50eHQKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vZWZsL1NraXBwZWQKaW5kZXggMjQ4ZWUyMS4uN2YyZWUxYyAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
ZWZsL1NraXBwZWQKQEAgLTc4OCw3ICs3ODgsNiBAQCBmYXN0L2xvYWRlci9udWxsLXJlcXVlc3Qt
YWZ0ZXItd2lsbFNlbmRSZXF1ZXN0Lmh0bWwKIGZhc3QvaGlzdG9yeS9iYWNrLWZvcndhcmQtcmVz
ZXQtYWZ0ZXItZXJyb3ItaGFuZGxpbmcuaHRtbAogCiAjIE1pc3NpbmcgZGVsZWdhdGVzOiB0ZXN0
cyB3aGljaCBuZWVkIHByb3BlciBmcmFtZSBsb2FkZXIgY2FsbGJhY2tzIHJlcG9ydGluZwotaHR0
cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvZW1wdHktdXJsLXBsdWdpbi1pbi1mcmFtZS5o
dG1sCiBmYXN0L2xvYWRlci9maWxlLXByb3RvY29sLWZyYWdtZW50Lmh0bWwKIAogIyBNaXNzaW5n
IGRlbGVnYXRlczogdGVzdHMgZmFpbGluZyBiZWNhdXNlIG9mIG1pc3NpbmcgcmVzb3VyY2UgbG9h
ZCBkZWxlZ2F0ZSBjYWxsYmFja3MuCkBAIC0xNDAzLDcgKzE0MDIsNiBAQCBmYXN0L2h0bWwvZGV0
YWlscy1tb3VzZS1jbGljay5odG1sCiBmYXN0L2h0bWwvdGFiLW9yZGVyLmh0bWwKIGZhc3QvaW5s
aW5lL3NraXBwZWQtd2hpdGVzcGFjZS1ib3VuZGluZ0JveC5odG1sCiBmYXN0L2xvYWRlci9mcmFn
bWVudC1hZnRlci1yZWRpcmVjdC1nZXRzLWJhY2stZW50cnkuaHRtbAotZmFzdC9sb2FkZXIvc3Vi
ZnJhbWUtcmVtb3Zlcy1pdHNlbGYuaHRtbAogZmFzdC9tdWx0aWNvbC9jbGllbnQtcmVjdHMuaHRt
bAogZmFzdC9tdWx0aWNvbC9zaW5nbGUtbGluZS5odG1sCiBmYXN0L292ZXJmbG93L292ZXJmbG93
LXktc2Nyb2xsLmh0bWwKQEAgLTI0NDAsMjEgKzI0MzgsMTEgQEAgaHR0cC90ZXN0cy9zZWN1cml0
eS9kcmFnLWRyb3Atc2FtZS11bmlxdWUtb3JpZ2luLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkv
ZnJhbWVOYXZpZ2F0aW9uL25vdC1vcGVuZXIuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9sb2Nh
bC1pbWFnZS1mcm9tLXJlbW90ZS13aGl0ZWxpc3RlZC5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5
L2xvY2FsLXVzZXItQ1NTLWZyb20tcmVtb3RlLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4
ZWRDb250ZW50L2Fib3V0LWJsYW5rLWlmcmFtZS1pbi1tYWluLWZyYW1lLmh0bWwKLWh0dHAvdGVz
dHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2RhdGEtdXJsLWlmcmFtZS1pbi1tYWluLWZyYW1lLmh0
bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2RhdGEtdXJsLXNjcmlwdC1pbi1p
ZnJhbWUuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtY3Nz
LWluLWlmcmFtZS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3Vy
ZS1jc3MtaW4tbWFpbi1mcmFtZS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVu
dC9pbnNlY3VyZS1pZnJhbWUtaW4taWZyYW1lLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4
ZWRDb250ZW50L2luc2VjdXJlLWlmcmFtZS1pbi1tYWluLWZyYW1lLmh0bWwKLWh0dHAvdGVzdHMv
c2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWltYWdlLWluLWlmcmFtZS5odG1sCiBodHRw
L3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1pbWFnZS1pbi1tYWluLWZyYW1l
Lmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXBsdWdpbi1p
bi1pZnJhbWUuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUt
c2NyaXB0LWluLWlmcmFtZS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9y
ZWRpcmVjdC1odHRwLXRvLWh0dHBzLWlmcmFtZS1pbi1tYWluLWZyYW1lLmh0bWwKLWh0dHAvdGVz
dHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHAtdG8taHR0cHMtc2NyaXB0LWlu
LWlmcmFtZS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZWRpcmVjdC1o
dHRwcy10by1odHRwLWlmcmFtZS1pbi1tYWluLWZyYW1lLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJp
dHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHBzLXRvLWh0dHAtc2NyaXB0LWluLWlmcmFtZS5o
dG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L25vLXJlZmVycmVyLmh0bWwKIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvb3JpZ2luSGVhZGVyL29yaWdpbi1oZWFkZXItZm9yLWVtcHR5Lmh0bWwKIGh0dHAvdGVz
dHMvc2VjdXJpdHkvb3JpZ2luSGVhZGVyL29yaWdpbi1oZWFkZXItZm9yLWh0dHBzLmh0bWwKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZs
L0NoYW5nZUxvZwppbmRleCBjOWZlZWNhLi43Y2VhMDgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMzAgQEAKKzIwMTItMDQtMDUgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1
bWV6QGludGVsLmNvbT4KKworICAgICAgICBbRUZMXSBEUlQgc2hvdWxkIHN1cHBvcnQgTGF5b3V0
VGVzdENvbnRyb2xsZXIncyBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzMDMwCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50IHN1cHBvcnQgZm9yIExh
eW91dFRlc3RDb250cm9sbGVyJ3MgZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpCisgICAgICAgIGlu
IEVGTCdzIER1bXBSZW5kZXJUcmVlLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRFZmwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRF
Zmw6OnBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEZpbmlzaExvYWQpOgorICAgICAgICAo
V2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkSGFuZGxlT25sb2FkRXZl
bnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERp
ZENvbW1pdExvYWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRp
c3BhdGNoRGlkRmFpbExvYWQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50RWZsLmg6CisgICAgICAgIChGcmFtZUxvYWRlckNsaWVudEVmbCk6CisgICAgICAgICog
ZXdrL2V3a19mcmFtZS5jcHA6CisgICAgICAgIChld2tfZnJhbWVfbG9hZF9jb21taXR0ZWQpOgor
ICAgICAgICAqIGV3ay9ld2tfZnJhbWUuaDoKKyAgICAgICAgKiBld2svZXdrX3ByaXZhdGUuaDoK
KyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAgICAgICAoX0V3a19WaWV3X1ByaXZhdGVf
RGF0YSk6CisgICAgICAgIChld2tfdmlld19vbmxvYWRfZXZlbnQpOgorICAgICAgICAqIGV3ay9l
d2tfdmlldy5oOgorCiAyMDEyLTA0LTA0ICBSYXBoYWVsIEt1Ym8gZGEgQ29zdGEgIDxyYWt1Y29A
d2Via2l0Lm9yZz4KIAogICAgICAgICBBbm90aGVyIHVucmV2aWV3ZWQgYXR0ZW1wdCBhdCBnZXR0
aW5nIHRoZSBFRkwgYnVpbGQgYm90IHRvIGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAppbmRleCA5MzUxODI5
Li40MzFjZDM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEVmbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCkBAIC0yMzIsMTYgKzIzMiw2IEBAIHZvaWQg
RnJhbWVMb2FkZXJDbGllbnRFZmw6OnBvc3RQcm9ncmVzc0VzdGltYXRlQ2hhbmdlZE5vdGlmaWNh
dGlvbigpCiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OnBvc3RQcm9ncmVzc0ZpbmlzaGVk
Tm90aWZpY2F0aW9uKCkKIHsKLSAgICBpZiAobV9sb2FkRXJyb3IuaXNOdWxsKCkpCi0gICAgICAg
IGV3a19mcmFtZV9sb2FkX2ZpbmlzaGVkKG1fZnJhbWUsIDAsIDAsIDAsIDAsIDApOwotICAgIGVs
c2UgewotICAgICAgICBld2tfZnJhbWVfbG9hZF9maW5pc2hlZChtX2ZyYW1lLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtX2xvYWRFcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgp
LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2xvYWRFcnJvci5lcnJvckNvZGUo
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9sb2FkRXJyb3IuaXNDYW5jZWxs
YXRpb24oKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbV9sb2FkRXJyb3IubG9j
YWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpLAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBtX2xvYWRFcnJvci5mYWlsaW5nVVJMKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAg
fQogfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpmcmFtZUxvYWRlckRlc3Ryb3llZCgp
CkBAIC00NTcsNyArNDQ3LDcgQEAgYm9vbCBGcmFtZUxvYWRlckNsaWVudEVmbDo6aGFzRnJhbWVW
aWV3KCkgY29uc3QKIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRGaW5p
c2hMb2FkKCkKIHsKLSAgICBtX2xvYWRFcnJvciA9IFJlc291cmNlRXJyb3IoKTsgLyogY2xlYXJz
IHByZXZpb3VzIGVycm9yICovCisgICAgZXdrX2ZyYW1lX2xvYWRfZmluaXNoZWQobV9mcmFtZSwg
MCwgMCwgMCwgMCwgMCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmZyYW1lTG9h
ZENvbXBsZXRlZCgpCkBAIC01NDQsNyArNTM0LDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVm
bDo6bG9hZGVkRnJvbUNhY2hlZFBhZ2UoKQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpk
aXNwYXRjaERpZEhhbmRsZU9ubG9hZEV2ZW50cygpCiB7Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICBld2tfdmlld19vbmxvYWRfZXZlbnQobV92aWV3LCBtX2ZyYW1lKTsKIH0KIAogdm9pZCBG
cmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRSZWNlaXZlU2VydmVyUmVkaXJlY3RGb3JQ
cm92aXNpb25hbExvYWQoKQpAQCAtNjExLDYgKzYwMSw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGll
bnRFZmw6OmRpc3BhdGNoRGlkQ2hhbmdlSWNvbnMoV2ViQ29yZTo6SWNvblR5cGUpCiB2b2lkIEZy
YW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZENvbW1pdExvYWQoKQogewogICAgIGV3a19m
cmFtZV91cmlfY2hhbmdlZChtX2ZyYW1lKTsKKyAgICBld2tfZnJhbWVfbG9hZF9jb21taXR0ZWQo
bV9mcmFtZSk7CiAgICAgaWYgKGV3a192aWV3X2ZyYW1lX21haW5fZ2V0KG1fdmlldykgIT0gbV9m
cmFtZSkKICAgICAgICAgcmV0dXJuOwogICAgIGV3a192aWV3X3RpdGxlX3NldChtX3ZpZXcsIDAp
OwpAQCAtNzYxLDE1ICs3NTIsMjEgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0
Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGUKIAogdm9pZCBG
cmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBSZXNvdXJjZUVy
cm9yJiBlcnIpCiB7CisgICAgZXdrX2ZyYW1lX2xvYWRfZXJyb3IobV9mcmFtZSwKKyAgICAgICAg
ICAgICAgICAgICAgICAgICBlcnIuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICBlcnIuZXJyb3JDb2RlKCksIGVyci5pc0NhbmNlbGxhdGlvbigpLAorICAg
ICAgICAgICAgICAgICAgICAgICAgIGVyci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5k
YXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgZXJyLmZhaWxpbmdVUkwoKS51dGY4KCku
ZGF0YSgpKTsKKworICAgIGV3a19mcmFtZV9sb2FkX2ZpbmlzaGVkKG1fZnJhbWUsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZXJyLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgZXJyLmVycm9yQ29kZSgpLAorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIGVyci5pc0NhbmNlbGxhdGlvbigpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGVyci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZXJyLmZhaWxpbmdVUkwoKS51dGY4KCkuZGF0YSgpKTsKKwogICAg
IGlmICghc2hvdWxkRmFsbEJhY2soZXJyKSkKICAgICAgICAgcmV0dXJuOwotCi0gICAgbV9sb2Fk
RXJyb3IgPSBlcnI7Ci0gICAgZXdrX2ZyYW1lX2xvYWRfZXJyb3IobV9mcmFtZSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICBtX2xvYWRFcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLAotICAg
ICAgICAgICAgICAgICAgICAgICAgIG1fbG9hZEVycm9yLmVycm9yQ29kZSgpLCBtX2xvYWRFcnJv
ci5pc0NhbmNlbGxhdGlvbigpLAotICAgICAgICAgICAgICAgICAgICAgICAgIG1fbG9hZEVycm9y
LmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICBtX2xvYWRFcnJvci5mYWlsaW5nVVJMKCkudXRmOCgpLmRhdGEoKSk7CiB9CiAKIHZv
aWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRvd25sb2FkKFJlc291cmNlSGFuZGxlKiwgY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEVmbC5oCmluZGV4IGZkYWM5MWEuLjliYjE3MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaApAQCAtMjEyLDgg
KzIxMiw2IEBAIGNsYXNzIEZyYW1lTG9hZGVyQ2xpZW50RWZsIDogcHVibGljIEZyYW1lTG9hZGVy
Q2xpZW50IHsKICAgICBTdHJpbmcgbV91c2VyQWdlbnQ7CiAgICAgU3RyaW5nIG1fY3VzdG9tVXNl
ckFnZW50OwogCi0gICAgUmVzb3VyY2VFcnJvciBtX2xvYWRFcnJvcjsKLQogICAgIC8vIFBsdWdp
biB2aWV3IHRvIHJlZGlyZWN0IGRhdGEgdG8KICAgICBQbHVnaW5WaWV3KiBtX3BsdWdpblZpZXc7
CiAgICAgYm9vbCBtX2hhc1NlbnRSZXNwb25zZVRvUGx1Z2luOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X2ZyYW1lLmNwcAppbmRleCBlZmNhODZjLi41YzlmNzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X2ZyYW1lLmNwcApAQCAtMTI2MSw2ICsxMjYxLDE3IEBAIHZvaWQgZXdrX2ZyYW1lX3ZpZXdfc3Rh
dGVfc2F2ZShFdmFzX09iamVjdCogZXdrRnJhbWUsIFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBpdGVt
CiAKIC8qKgogICogQGludGVybmFsCisgKiBSZXBvcnRzIHRoZSBmcmFtZSBjb21taXR0ZWQgbG9h
ZC4KKyAqCisgKiBFbWl0cyBzaWduYWw6ICJsb2FkLGNvbW1pdHRlZCIgd2l0aCBubyBwYXJhbWV0
ZXJzLgorICovCit2b2lkIGV3a19mcmFtZV9sb2FkX2NvbW1pdHRlZChFdmFzX09iamVjdCogZXdr
RnJhbWUpCit7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tGcmFtZSwg
ImxvYWQsY29tbWl0dGVkIiwgMCk7Cit9CisKKy8qKgorICogQGludGVybmFsCiAgKiBSZXBvcnRz
IHRoZSBmcmFtZSBzdGFydGVkIGxvYWRpbmcgc29tZXRoaW5nLgogICoKICAqIEVtaXRzIHNpZ25h
bDogImxvYWQsc3RhcnRlZCIgd2l0aCBubyBwYXJhbWV0ZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19m
cmFtZS5oCmluZGV4IDk0MjQyOGMuLmRkM2E4ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfZnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1l
LmgKQEAgLTM5LDYgKzM5LDcgQEAKICAqICAgICB3ZXJlIGNoYW5nZWQgZHVlIG5ldyBsYXlvdXQs
IHNjcmlwdCBhY3Rpb25zIG9yIGFueSBvdGhlciBldmVudHMuCiAgKiAgLSAiZWRpdG9yY2xpZW50
LGNvbnRlbnRzLGNoYW5nZWQiLCB2b2lkOiByZXBvcnRzIHRoYXQgZWRpdG9yIGNsaWVudCdzCiAg
KiAgICBjb250ZW50cyB3ZXJlIGNoYW5nZWQKKyAqICAtICJsb2FkLGNvbW1pdHRlZCIsIHZvaWQ6
IHJlcG9ydHMgbG9hZCBjb21taXR0ZWQuCiAgKiAgLSAibG9hZCxkb2N1bWVudCxmaW5pc2hlZCIs
IHZvaWQ6IGZyYW1lIGZpbmlzaGVkIGxvYWRpbmcgdGhlIGRvY3VtZW50LgogICogIC0gImxvYWQs
ZXJyb3IiLCBjb25zdCBFd2tfRnJhbWVfTG9hZF9FcnJvcio6IHJlcG9ydHMgbG9hZCBmYWlsZWQK
ICAqICAgIGFuZCBpdCBnaXZlcyBhIHBvaW50ZXIgdG8gc3RydWN0dXJlIGRlZmluaW5nIHRoZSBl
cnJvciBhcyBhbiBhcmd1bWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9l
d2tfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKaW5kZXgg
OTZlNDc5NS4uOWVlYTIyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19w
cml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKQEAgLTEx
NCw2ICsxMTQsNyBAQCB2b2lkIGV3a192aWV3X2xvYWRfZmluaXNoZWQoRXZhc19PYmplY3QqIGV3
a1ZpZXcsIGNvbnN0IEV3a19GcmFtZV9Mb2FkX0Vycm9yKiBlcgogdm9pZCBld2tfdmlld19sb2Fk
X2Vycm9yKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFd2tfRnJhbWVfTG9hZF9FcnJvciog
ZXJyb3IpOwogdm9pZCBld2tfdmlld19sb2FkX3Byb2dyZXNzX2NoYW5nZWQoRXZhc19PYmplY3Qq
IGV3a1ZpZXcpOwogdm9pZCBld2tfdmlld19sb2FkX3Nob3coRXZhc19PYmplY3QqIGV3a1ZpZXcp
Owordm9pZCBld2tfdmlld19vbmxvYWRfZXZlbnQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNf
T2JqZWN0KiBmcmFtZSk7CiB2b2lkIGV3a192aWV3X3Jlc3RvcmVfc3RhdGUoRXZhc19PYmplY3Qq
IGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSk7CiBFdmFzX09iamVjdCogZXdrX3ZpZXdfd2lu
ZG93X2NyZWF0ZShFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBqYXZhc2NyaXB0LCBjb25zdCBX
ZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyogY29yZUZlYXR1cmVzKTsKIHZvaWQgZXdrX3ZpZXdfd2lu
ZG93X2Nsb3NlKEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKQEAgLTIwMiw2ICsyMDMsNyBAQCB2b2lk
IGV3a19mcmFtZV92aWV3X3NldChFdmFzX09iamVjdCogZXdrRnJhbWUsIEV2YXNfT2JqZWN0KiBu
ZXdQYXJlbnQpOwogCiB2b2lkIGV3a19mcmFtZV9jb3JlX2dvbmUoRXZhc19PYmplY3QqIGV3a0Zy
YW1lKTsKIAordm9pZCBld2tfZnJhbWVfbG9hZF9jb21taXR0ZWQoRXZhc19PYmplY3QqIGV3a0Zy
YW1lKTsKIHZvaWQgZXdrX2ZyYW1lX2xvYWRfc3RhcnRlZChFdmFzX09iamVjdCogZXdrRnJhbWUp
Owogdm9pZCBld2tfZnJhbWVfbG9hZF9wcm92aXNpb25hbChFdmFzX09iamVjdCogZXdrRnJhbWUp
Owogdm9pZCBld2tfZnJhbWVfbG9hZF9maXJzdGxheW91dF9maW5pc2hlZChFdmFzX09iamVjdCog
ZXdrRnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNw
cCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggMmQ0MmEzMi4uN2E1
Y2UxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC0yODUzLDYgKzI4NTMsMTkg
QEAgdm9pZCBld2tfdmlld19sb2FkX3Nob3coRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgZXZh
c19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tWaWV3LCAibG9hZCxuZXd3aW5kb3csc2hv
dyIsIDApOwogfQogCisvKioKKyAqIEBpbnRlcm5hbAorICogUmVwb3J0cyBhbiBvbmxvYWQgZXZl
bnQgZm9yIEBwIGZyYW1lLgorICoKKyAqIEBwYXJhbSBld2tWaWV3IFZpZXcgd2hpY2ggY29udGFp
bnMgdGhlIGZyYW1lLgorICogQHBhcmFtIGZyYW1lIFRoZSBmcmFtZSB3aG9zZSBvbmxvYWQgZXZl
bnQgd2FzIHJlY2VpdmVkLgorICoKKyAqIEVtaXRzIHNpZ25hbDogIm9ubG9hZCxldmVudCIgd2l0
aCBAcCBmcmFtZSBhcyB0aGUgcGFyYW1ldGVyLgorICovCit2b2lkIGV3a192aWV3X29ubG9hZF9l
dmVudChFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGZyYW1lKQoreworICAgIGV2
YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmlldywgIm9ubG9hZCxldmVudCIsIGZy
YW1lKTsKK30KIAogLyoqCiAgKiBAaW50ZXJuYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKaW5k
ZXggZmEzODJhOS4uN2E3MzM5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a192aWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKQEAgLTYwLDYg
KzYwLDcgQEAKICAqICAtICJtZW51YmFyLHZpc2libGUsc2V0IiwgRWluYV9Cb29sOiBzZXRzIG1l
bnViYXIgdmlzaWJpbGl0eS4KICAqICAtICJtaXhlZGNvbnRlbnQsZGlzcGxheWVkIiwgdm9pZDog
YW55IG9mIHRoZSBjb250YWluaW5nIGZyYW1lcyBoYXMgbG9hZGVkIGFuZCBkaXNwbGF5ZWQgbWl4
ZWQgY29udGVudC4KICAqICAtICJtaXhlZGNvbnRlbnQscnVuIiwgdm9pZDogYW55IG9mIHRoZSBj
b250YWluaW5nIGZyYW1lcyBoYXMgbG9hZGVkIGFuZCBydW4gbWl4ZWQgY29udGVudC4KKyAqICAt
ICJvbmxvYWQsZXZlbnQiLCBFdmFzX09iamVjdCo6IGEgZnJhbWUgb25sb2FkIGV2ZW50IGhhcyBi
ZWVuIHJlY2VpdmVkLgogICogIC0gInJlYWR5Iiwgdm9pZDogcGFnZSBpcyBmdWxseSBsb2FkZWQu
CiAgKiAgLSAicmVzb3VyY2UscmVxdWVzdCx3aWxsc2VuZCIsIEV3a19GcmFtZV9SZXNvdXJjZV9S
ZXF1ZXN0KjogYSByZXNvdXJjZSB3aWxsCiAgKiAgICBiZSByZXF1ZXN0ZWQuCmRpZmYgLS1naXQg
YS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNWEyYjQ2NC4uMzczY2Jl
NSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI4IEBACisyMDEyLTA0LTA1ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5k
dW1lekBpbnRlbC5jb20+CisKKyAgICAgICAgW0VGTF0gRFJUIHNob3VsZCBzdXBwb3J0IExheW91
dFRlc3RDb250cm9sbGVyJ3MgZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzAzMAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBzdXBwb3J0IGZvciBM
YXlvdXRUZXN0Q29udHJvbGxlcidzIGR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKQorICAgICAgICBp
biBFRkwncyBEdW1wUmVuZGVyVHJlZS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9E
dW1wUmVuZGVyVHJlZUNocm9tZS5jcHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6
Y3JlYXRlVmlldyk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6cHJvY2Vzc1dvcmsp
OgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6OnRvcExvYWRpbmdGcmFtZUxvYWRGaW5p
c2hlZCk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25XZWJWaWV3T25sb2FkRXZl
bnQpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uSW5zZWN1cmVDb250ZW50UnVu
KToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkluc2VjdXJlQ29udGVudERpc3Bs
YXllZCk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZUNyZWF0ZWQpOgor
ICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uRnJhbWVQcm92aXNpb25hbExvYWQpOgor
ICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uRnJhbWVMb2FkQ29tbWl0dGVkKToKKyAg
ICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZyYW1lTG9hZEZpbmlzaGVkKToKKyAgICAg
ICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZyYW1lTG9hZEVycm9yKToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuaDoKKyAgICAgICAgKER1bXBS
ZW5kZXJUcmVlQ2hyb21lKToKKwogMjAxMi0wNC0wNSAgS2ludWtvIFlhc3VkYSAgPGtpbnVrb0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgRXhwb3NlIERhdGFUcmFuc2Zlckl0ZW0uZ2V0QXNFbnRy
eSgpIHRvIGFsbG93IHVzZXJzIGFjY2VzcyBkcm9wcGVkIGZpbGVzIGFzIEZpbGVFbnRyeQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNw
cCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKaW5k
ZXggYTUzNDNlOS4uMzJhZTY4MiAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZs
L0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwv
RHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCkBAIC05MCwxMiArOTAsMjEgQEAgRXZhc19PYmplY3Qq
IER1bXBSZW5kZXJUcmVlQ2hyb21lOjpjcmVhdGVWaWV3KCkgY29uc3QKICAgICBld2tfdmlld190
aGVtZV9zZXQodmlldywgREFUQV9ESVIiL2RlZmF1bHQuZWRqIik7CiAKICAgICBldmFzX29iamVj
dF9zbWFydF9jYWxsYmFja19hZGQodmlldywgImxvYWQsc3RhcnRlZCIsIG9uTG9hZFN0YXJ0ZWQs
IDApOwotICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2aWV3LCAibG9hZCxmaW5p
c2hlZCIsIG9uTG9hZEZpbmlzaGVkLCAwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFj
a19hZGQodmlldywgInRpdGxlLGNoYW5nZWQiLCBvblRpdGxlQ2hhbmdlZCwgMCk7CiAgICAgZXZh
c19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHZpZXcsICJ3aW5kb3csb2JqZWN0LGNsZWFyZWQi
LCBvbldpbmRvd09iamVjdENsZWFyZWQsIG1fZ2NDb250cm9sbGVyLmdldCgpKTsKICAgICBldmFz
X29iamVjdF9zbWFydF9jYWxsYmFja19hZGQodmlldywgInN0YXR1c2Jhcix0ZXh0LHNldCIsIG9u
U3RhdHVzYmFyVGV4dFNldCwgMCk7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRk
KHZpZXcsICJsb2FkLGRvY3VtZW50LGZpbmlzaGVkIiwgb25Eb2N1bWVudExvYWRGaW5pc2hlZCwg
MCk7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHZpZXcsICJyZXNvdXJjZSxy
ZXF1ZXN0LHdpbGxzZW5kIiwgb25XaWxsU2VuZFJlcXVlc3QsIDApOworICAgIGV2YXNfb2JqZWN0
X3NtYXJ0X2NhbGxiYWNrX2FkZCh2aWV3LCAib25sb2FkLGV2ZW50Iiwgb25XZWJWaWV3T25sb2Fk
RXZlbnQsIDApOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2aWV3LCAibWl4
ZWRjb250ZW50LHJ1biIsIG9uSW5zZWN1cmVDb250ZW50UnVuLCAwKTsKKyAgICBldmFzX29iamVj
dF9zbWFydF9jYWxsYmFja19hZGQodmlldywgIm1peGVkY29udGVudCxkaXNwbGF5ZWQiLCBvbklu
c2VjdXJlQ29udGVudERpc3BsYXllZCwgMCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJh
Y2tfYWRkKHZpZXcsICJmcmFtZSxjcmVhdGVkIiwgb25GcmFtZUNyZWF0ZWQsIDApOworCisgICAg
RXZhc19PYmplY3QqIG1haW5GcmFtZSA9IGV3a192aWV3X2ZyYW1lX21haW5fZ2V0KHZpZXcpOwor
ICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChtYWluRnJhbWUsICJsb2FkLHByb3Zp
c2lvbmFsIiwgb25GcmFtZVByb3Zpc2lvbmFsTG9hZCwgMCk7CisgICAgZXZhc19vYmplY3Rfc21h
cnRfY2FsbGJhY2tfYWRkKG1haW5GcmFtZSwgImxvYWQsY29tbWl0dGVkIiwgb25GcmFtZUxvYWRD
b21taXR0ZWQsIDApOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChtYWluRnJh
bWUsICJsb2FkLGZpbmlzaGVkIiwgb25GcmFtZUxvYWRGaW5pc2hlZCwgMCk7CisgICAgZXZhc19v
YmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKG1haW5GcmFtZSwgImxvYWQsZXJyb3IiLCBvbkZyYW1l
TG9hZEVycm9yLCAwKTsKIAogICAgIHJldHVybiB2aWV3OwogfQpAQCAtMjMzLDIyICsyNDIsMTQg
QEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25Mb2FkU3RhcnRlZCh2b2lkKiwgRXZhc19P
YmplY3QqIHZpZXcsIHZvaWQqKQogCiBFaW5hX0Jvb2wgRHVtcFJlbmRlclRyZWVDaHJvbWU6OnBy
b2Nlc3NXb3JrKHZvaWQqIGRhdGEpCiB7Ci0gICAgRXZhc19PYmplY3QqIGZyYW1lID0gc3RhdGlj
X2Nhc3Q8RXZhc19PYmplY3QqPihkYXRhKTsKLQogICAgIGlmIChXb3JrUXVldWU6OnNoYXJlZCgp
LT5wcm9jZXNzV29yaygpICYmICFnTGF5b3V0VGVzdENvbnRyb2xsZXItPndhaXRUb0R1bXAoKSkK
ICAgICAgICAgZHVtcCgpOwogCiAgICAgcmV0dXJuIEVDT1JFX0NBTExCQUNLX0NBTkNFTDsKIH0K
IAotdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25Mb2FkRmluaXNoZWQodm9pZCosIEV2YXNf
T2JqZWN0KiB2aWV3LCB2b2lkKikKK3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6OnRvcExvYWRp
bmdGcmFtZUxvYWRGaW5pc2hlZCgpCiB7Ci0gICAgLy8gRklYTUU6IHdlIGFjdHVhbGx5IG5lZWQg
dGhlIGZyYW1lIHJlbGF0ZWQgdG8gdGhpcyBldmVudAotICAgIEV2YXNfT2JqZWN0KiBmcmFtZSA9
IGV3a192aWV3X2ZyYW1lX21haW5fZ2V0KHZpZXcpOwotCi0gICAgaWYgKHRvcExvYWRpbmdGcmFt
ZSAhPSBmcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgdG9wTG9hZGluZ0ZyYW1lID0gMDsK
IAogICAgIFdvcmtRdWV1ZTo6c2hhcmVkKCktPnNldEZyb3plbih0cnVlKTsKQEAgLTI1Niw3ICsy
NTcsNyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkxvYWRGaW5pc2hlZCh2b2lkKiwg
RXZhc19PYmplY3QqIHZpZXcsIHZvaWQqKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoV29y
a1F1ZXVlOjpzaGFyZWQoKS0+Y291bnQoKSkKLSAgICAgICAgZWNvcmVfaWRsZXJfYWRkKHByb2Nl
c3NXb3JrLCBmcmFtZSk7CisgICAgICAgIGVjb3JlX2lkbGVyX2FkZChwcm9jZXNzV29yaywgMCk7
CiAgICAgZWxzZQogICAgICAgICBkdW1wKCk7CiB9CkBAIC0zMDQsMyArMzA1LDczIEBAIHZvaWQg
RHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uV2lsbFNlbmRSZXF1ZXN0KHZvaWQqLCBFdmFzX09iamVj
dCosIHZvaWQqIGV2ZW50SW5mCiAgICAgICAgIHJlcXVlc3QtPnVybCA9IDA7CiAgICAgfQogfQor
Cit2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbldlYlZpZXdPbmxvYWRFdmVudCh2b2lkKiwg
RXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pCit7CisgICAgY29uc3QgRXZhc19PYmplY3Qq
IGZyYW1lID0gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihldmVudEluZm8pOworCisgICAgaWYg
KCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEZyYW1lTG9hZENhbGxiYWNrcygp
KSB7CisgICAgICAgIGNvbnN0IFN0cmluZyBmcmFtZU5hbWUoRHVtcFJlbmRlclRyZWVTdXBwb3J0
RWZsOjpzdWl0YWJsZURSVEZyYW1lTmFtZShmcmFtZSkpOworICAgICAgICBwcmludGYoIiVzIC0g
ZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWVcbiIsIGZyYW1lTmFtZS51dGY4KCkuZGF0YSgp
KTsKKyAgICB9Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uSW5zZWN1cmVDb250
ZW50UnVuKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKQoreworICAgIGlmICghZG9uZSAmJiBn
TGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSkKKyAgICAgICAg
cHJpbnRmKCJkaWRSdW5JbnNlY3VyZUNvbnRlbnRcbiIpOworfQorCit2b2lkIER1bXBSZW5kZXJU
cmVlQ2hyb21lOjpvbkluc2VjdXJlQ29udGVudERpc3BsYXllZCh2b2lkKiwgRXZhc19PYmplY3Qq
LCB2b2lkKikKK3sKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzKCkpCisgICAgICAgIHByaW50ZigiZGlkRGlzcGxheUluc2VjdXJl
Q29udGVudFxuIik7Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uRnJhbWVDcmVh
dGVkKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykKK3sKKyAgICBFdmFzX09i
amVjdCogZnJhbWUgPSBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGV2ZW50SW5mbyk7CisKKyAg
ICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoZnJhbWUsICJsb2FkLHByb3Zpc2lvbmFs
Iiwgb25GcmFtZVByb3Zpc2lvbmFsTG9hZCwgMCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2Fs
bGJhY2tfYWRkKGZyYW1lLCAibG9hZCxjb21taXR0ZWQiLCBvbkZyYW1lTG9hZENvbW1pdHRlZCwg
MCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGZyYW1lLCAibG9hZCxmaW5p
c2hlZCIsIG9uRnJhbWVMb2FkRmluaXNoZWQsIDApOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2Nh
bGxiYWNrX2FkZChmcmFtZSwgImxvYWQsZXJyb3IiLCBvbkZyYW1lTG9hZEVycm9yLCAwKTsKK30K
Kwordm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZVByb3Zpc2lvbmFsTG9hZCh2b2lk
KiwgRXZhc19PYmplY3QqIGZyYW1lLCB2b2lkKikKK3sKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91
dFRlc3RDb250cm9sbGVyLT5kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgY29u
c3QgU3RyaW5nIGZyYW1lTmFtZShEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnN1aXRhYmxlRFJU
RnJhbWVOYW1lKGZyYW1lKSk7CisgICAgICAgIHByaW50ZigiJXMgLSBkaWRTdGFydFByb3Zpc2lv
bmFsTG9hZEZvckZyYW1lXG4iLCBmcmFtZU5hbWUudXRmOCgpLmRhdGEoKSk7CisgICAgfQorfQor
Cit2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZyYW1lTG9hZENvbW1pdHRlZCh2b2lkKiwg
RXZhc19PYmplY3QqIGZyYW1lLCB2b2lkKikKK3sKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRl
c3RDb250cm9sbGVyLT5kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgY29uc3Qg
U3RyaW5nIGZyYW1lTmFtZShEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnN1aXRhYmxlRFJURnJh
bWVOYW1lKGZyYW1lKSk7CisgICAgICAgIHByaW50ZigiJXMgLSBkaWRDb21taXRMb2FkRm9yRnJh
bWVcbiIsIGZyYW1lTmFtZS51dGY4KCkuZGF0YSgpKTsKKyAgICB9Cit9CisKK3ZvaWQgRHVtcFJl
bmRlclRyZWVDaHJvbWU6Om9uRnJhbWVMb2FkRmluaXNoZWQodm9pZCosIEV2YXNfT2JqZWN0KiBm
cmFtZSwgdm9pZCopCit7CisgICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+
ZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7CisgICAgICAgIGNvbnN0IFN0cmluZyBmcmFtZU5h
bWUoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzdWl0YWJsZURSVEZyYW1lTmFtZShmcmFtZSkp
OworICAgICAgICBwcmludGYoIiVzIC0gZGlkRmluaXNoTG9hZEZvckZyYW1lXG4iLCBmcmFtZU5h
bWUudXRmOCgpLmRhdGEoKSk7CisgICAgfQorCisgICAgaWYgKGZyYW1lID09IHRvcExvYWRpbmdG
cmFtZSkKKyAgICAgICAgdG9wTG9hZGluZ0ZyYW1lTG9hZEZpbmlzaGVkKCk7Cit9CisKK3ZvaWQg
RHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uRnJhbWVMb2FkRXJyb3Iodm9pZCosIEV2YXNfT2JqZWN0
KiBmcmFtZSwgdm9pZCopCit7CisgICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxl
ci0+ZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7CisgICAgICAgIGNvbnN0IFN0cmluZyBmcmFt
ZU5hbWUoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzdWl0YWJsZURSVEZyYW1lTmFtZShmcmFt
ZSkpOworICAgICAgICBwcmludGYoIiVzIC0gZGlkRmFpbExvYWRXaXRoRXJyb3JcbiIsIGZyYW1l
TmFtZS51dGY4KCkuZGF0YSgpKTsKKyAgICB9CisKKyAgICBpZiAoZnJhbWUgPT0gdG9wTG9hZGlu
Z0ZyYW1lKQorICAgICAgICB0b3BMb2FkaW5nRnJhbWVMb2FkRmluaXNoZWQoKTsKK30KZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5oIGIv
VG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmgKaW5kZXggZTE1
NmI0ZC4uYTUxMTJjYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBS
ZW5kZXJUcmVlQ2hyb21lLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5k
ZXJUcmVlQ2hyb21lLmgKQEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToKIAogICAgIHN0YXRpYyBF
aW5hX0Jvb2wgcHJvY2Vzc1dvcmsodm9pZCopOwogCi0gICAgc3RhdGljIHZvaWQgb25Mb2FkRmlu
aXNoZWQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopOworICAgIHN0YXRpYyB2b2lkIHRvcExv
YWRpbmdGcmFtZUxvYWRGaW5pc2hlZCgpOwogCiAgICAgc3RhdGljIHZvaWQgb25TdGF0dXNiYXJU
ZXh0U2V0KHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKTsKIApAQCAtNzcsNiArNzcsMjIgQEAg
cHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBvbkRvY3VtZW50TG9hZEZpbmlzaGVkKHZvaWQqLCBF
dmFzX09iamVjdCosIHZvaWQqKTsKIAogICAgIHN0YXRpYyB2b2lkIG9uV2lsbFNlbmRSZXF1ZXN0
KHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKTsKKworICAgIHN0YXRpYyB2b2lkIG9uV2ViVmll
d09ubG9hZEV2ZW50KHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKTsKKworICAgIHN0YXRpYyB2
b2lkIG9uSW5zZWN1cmVDb250ZW50UnVuKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKTsKKwor
ICAgIHN0YXRpYyB2b2lkIG9uSW5zZWN1cmVDb250ZW50RGlzcGxheWVkKHZvaWQqLCBFdmFzX09i
amVjdCosIHZvaWQqKTsKKworICAgIHN0YXRpYyB2b2lkIG9uRnJhbWVDcmVhdGVkKHZvaWQqLCBF
dmFzX09iamVjdCosIHZvaWQqKTsKKworICAgIHN0YXRpYyB2b2lkIG9uRnJhbWVQcm92aXNpb25h
bExvYWQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopOworCisgICAgc3RhdGljIHZvaWQgb25G
cmFtZUxvYWRDb21taXR0ZWQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopOworCisgICAgc3Rh
dGljIHZvaWQgb25GcmFtZUxvYWRGaW5pc2hlZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKik7
CisKKyAgICBzdGF0aWMgdm9pZCBvbkZyYW1lTG9hZEVycm9yKHZvaWQqLCBFdmFzX09iamVjdCos
IHZvaWQqKTsKIH07CiAKICNlbmRpZiAvLyBEdW1wUmVuZGVyVHJlZUNocm9tZV9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136426</attachid>
            <date>2012-04-10 04:16:55 -0700</date>
            <delta_ts>2012-04-12 11:31:14 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>83030_dumpFrameLoadCallbacks</filename>
            <type>text/plain</type>
            <size>21676</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmYmEyNjgxLi5hNzBiYzczIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDQt
MTAgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBbRUZMXSBEUlQgc2hvdWxkIHN1cHBvcnQgTGF5b3V0VGVzdENvbnRyb2xsZXIncyBkdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgzMDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVW5za2lwIHRoZSB0ZXN0IGNhc2VzIGluIEVGTCB3aGljaCBuZWVkZWQgZHVt
cEZyYW1lTG9hZENhbGxiYWNrcygpCisgICAgICAgIHN1cHBvcnQgaW4gdGhlIER1bXBSZW5kZXJU
cmVlIG5vdyB0aGF0IGl0IGlzIGltcGxlbWVudGVkLgorCisgICAgICAgICogcGxhdGZvcm0vZWZs
L1NraXBwZWQ6CisKIDIwMTItMDQtMTAgIFBoaWxpcHBlIE5vcm1hbmQgIDxwbm9ybWFuZEBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHNraXAgYSBmYWlsaW5nIHRlc3QgYW5kIHJl
YmFzZWxpbmUgYW5vdGhlciBvbmUgYWZ0ZXIgcjExMzYxMS4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBw
ZWQKaW5kZXggNzA1OTUwNC4uOThmYmNmOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZWZsL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKQEAg
LTc4OCw3ICs3ODgsNiBAQCBmYXN0L2xvYWRlci9udWxsLXJlcXVlc3QtYWZ0ZXItd2lsbFNlbmRS
ZXF1ZXN0Lmh0bWwKIGZhc3QvaGlzdG9yeS9iYWNrLWZvcndhcmQtcmVzZXQtYWZ0ZXItZXJyb3It
aGFuZGxpbmcuaHRtbAogCiAjIE1pc3NpbmcgZGVsZWdhdGVzOiB0ZXN0cyB3aGljaCBuZWVkIHBy
b3BlciBmcmFtZSBsb2FkZXIgY2FsbGJhY2tzIHJlcG9ydGluZwotaHR0cC90ZXN0cy9zZWN1cml0
eS9taXhlZENvbnRlbnQvZW1wdHktdXJsLXBsdWdpbi1pbi1mcmFtZS5odG1sCiBmYXN0L2xvYWRl
ci9maWxlLXByb3RvY29sLWZyYWdtZW50Lmh0bWwKIAogIyBNaXNzaW5nIGRlbGVnYXRlczogdGVz
dHMgZmFpbGluZyBiZWNhdXNlIG9mIG1pc3NpbmcgcmVzb3VyY2UgbG9hZCBkZWxlZ2F0ZSBjYWxs
YmFja3MuCkBAIC0xMjAxLDcgKzEyMDAsNiBAQCBodHRwL3Rlc3RzL2hpc3RvcnkvYmFjay13aXRo
LWZyYWdtZW50LWNoYW5nZS5waHAKICMgRmFpbGluZyBodHRwIHRlc3RzICh2aWEgR1RLKykKIGh0
dHAvdGVzdHMvbG9hZGluZy9iYWQtc2NoZW1lLXN1YmZyYW1lLmh0bWwKIGh0dHAvdGVzdHMvbG9h
ZGluZy9iYWQtc2VydmVyLXN1YmZyYW1lLmh0bWwKLWh0dHAvdGVzdHMvbG9hZGluZy9nbWFpbC1h
c3NlcnQtb24tbG9hZC5odG1sCiBodHRwL3Rlc3RzL2xvYWRpbmcvcmVkaXJlY3Qtd2l0aC1uby1s
b2NhdGlvbi1jcmFzaC5odG1sCiBodHRwL3Rlc3RzL2xvYWRpbmcvdGV4dC1jb250ZW50LXR5cGUt
d2l0aC1iaW5hcnktZXh0ZW5zaW9uLmh0bWwKIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcGxheS1z
dGFsbC1zZWVrLmh0bWwKQEAgLTE0MDgsNyArMTQwNiw2IEBAIGZhc3QvaHRtbC9kZXRhaWxzLW1v
dXNlLWNsaWNrLmh0bWwKIGZhc3QvaHRtbC90YWItb3JkZXIuaHRtbAogZmFzdC9pbmxpbmUvc2tp
cHBlZC13aGl0ZXNwYWNlLWJvdW5kaW5nQm94Lmh0bWwKIGZhc3QvbG9hZGVyL2ZyYWdtZW50LWFm
dGVyLXJlZGlyZWN0LWdldHMtYmFjay1lbnRyeS5odG1sCi1mYXN0L2xvYWRlci9zdWJmcmFtZS1y
ZW1vdmVzLWl0c2VsZi5odG1sCiBmYXN0L211bHRpY29sL2NsaWVudC1yZWN0cy5odG1sCiBmYXN0
L211bHRpY29sL3NpbmdsZS1saW5lLmh0bWwKIGZhc3Qvb3ZlcmZsb3cvb3ZlcmZsb3cteS1zY3Jv
bGwuaHRtbApAQCAtMjQ0NywyMSArMjQ0NCwxMSBAQCBodHRwL3Rlc3RzL3NlY3VyaXR5L2RyYWct
ZHJvcC1zYW1lLXVuaXF1ZS1vcmlnaW4uaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9mcmFtZU5h
dmlnYXRpb24vbm90LW9wZW5lci5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdl
LWZyb20tcmVtb3RlLXdoaXRlbGlzdGVkLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwt
dXNlci1DU1MtZnJvbS1yZW1vdGUuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRl
bnQvYWJvdXQtYmxhbmstaWZyYW1lLWluLW1haW4tZnJhbWUuaHRtbAotaHR0cC90ZXN0cy9zZWN1
cml0eS9taXhlZENvbnRlbnQvZGF0YS11cmwtaWZyYW1lLWluLW1haW4tZnJhbWUuaHRtbAotaHR0
cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvZGF0YS11cmwtc2NyaXB0LWluLWlmcmFtZS5o
dG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1jc3MtaW4taWZy
YW1lLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWNzcy1p
bi1tYWluLWZyYW1lLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2Vj
dXJlLWlmcmFtZS1pbi1pZnJhbWUuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRl
bnQvaW5zZWN1cmUtaWZyYW1lLWluLW1haW4tZnJhbWUuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0
eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtaW1hZ2UtaW4taWZyYW1lLmh0bWwKIGh0dHAvdGVzdHMv
c2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWltYWdlLWluLW1haW4tZnJhbWUuaHRtbAog
aHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtcGx1Z2luLWluLWlmcmFt
ZS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1zY3JpcHQt
aW4taWZyYW1lLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0
LWh0dHAtdG8taHR0cHMtaWZyYW1lLWluLW1haW4tZnJhbWUuaHRtbAotaHR0cC90ZXN0cy9zZWN1
cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cC10by1odHRwcy1zY3JpcHQtaW4taWZyYW1l
Lmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHBzLXRv
LWh0dHAtaWZyYW1lLWluLW1haW4tZnJhbWUuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9taXhl
ZENvbnRlbnQvcmVkaXJlY3QtaHR0cHMtdG8taHR0cC1zY3JpcHQtaW4taWZyYW1lLmh0bWwKIGh0
dHAvdGVzdHMvc2VjdXJpdHkvbm8tcmVmZXJyZXIuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9v
cmlnaW5IZWFkZXIvb3JpZ2luLWhlYWRlci1mb3ItZW1wdHkuaHRtbAogaHR0cC90ZXN0cy9zZWN1
cml0eS9vcmlnaW5IZWFkZXIvb3JpZ2luLWhlYWRlci1mb3ItaHR0cHMuaHRtbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdl
TG9nCmluZGV4IGM5ZmVlY2EuLjEyZDM3ZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwz
NCBAQAorMjAxMi0wNC0xMCAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50
ZWwuY29tPgorCisgICAgICAgIFtFRkxdIERSVCBzaG91bGQgc3VwcG9ydCBMYXlvdXRUZXN0Q29u
dHJvbGxlcidzIGR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODMwMzAKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgTGF5b3V0VGVz
dENvbnRyb2xsZXIncyBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkKKyAgICAgICAgaW4gRUZMJ3Mg
RHVtcFJlbmRlclRyZWUuIFdlIG5vIGxvbmdlciBlbWl0IHRoZSAibG9hZCxmaW5pc2hlZCIgc2ln
bmFsCisgICAgICAgIGZyb20gcG9zdFByb2dyZXNzRmluaXNoZWROb3RpZmljYXRpb24oKSBzaW5j
ZSBpdCBpcyBhbHJlYWR5IGVtaXR0ZWQKKyAgICAgICAgZnJvbSBkaXNwYXRjaERpZEZpbmlzaExv
YWQoKS4gVGhpcyBhdm9pZHMgdW53YW50ZWQgZXh0cmEgc2lnbmFscyB3ZQorICAgICAgICBwcmV2
ZW50IHNvbWUgdGVzdHMgZnJvbSBwYXNzaW5nIChlLmcuCisgICAgICAgIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvbWl4ZWRDb250ZW50L2Fib3V0LWJsYW5rLWlmcmFtZS1pbi1tYWluLWZyYW1lLmh0bWwp
LgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OnBvc3RQcm9ncmVzc0Zpbmlz
aGVkTm90aWZpY2F0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZs
OjpkaXNwYXRjaERpZEZpbmlzaExvYWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJD
bGllbnRFZmw6OmRpc3BhdGNoRGlkSGFuZGxlT25sb2FkRXZlbnRzKToKKyAgICAgICAgKFdlYkNv
cmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZENvbW1pdExvYWQpOgorICAgICAg
ICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkRmFpbExvYWQpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmg6CisgICAgICAg
IChGcmFtZUxvYWRlckNsaWVudEVmbCk6CisgICAgICAgICogZXdrL2V3a19mcmFtZS5jcHA6Cisg
ICAgICAgIChld2tfZnJhbWVfbG9hZF9jb21taXR0ZWQpOgorICAgICAgICAqIGV3ay9ld2tfZnJh
bWUuaDoKKyAgICAgICAgKiBld2svZXdrX3ByaXZhdGUuaDoKKyAgICAgICAgKiBld2svZXdrX3Zp
ZXcuY3BwOgorICAgICAgICAoX0V3a19WaWV3X1ByaXZhdGVfRGF0YSk6CisgICAgICAgIChld2tf
dmlld19vbmxvYWRfZXZlbnQpOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5oOgorCiAyMDEyLTA0
LTA0ICBSYXBoYWVsIEt1Ym8gZGEgQ29zdGEgIDxyYWt1Y29Ad2Via2l0Lm9yZz4KIAogICAgICAg
ICBBbm90aGVyIHVucmV2aWV3ZWQgYXR0ZW1wdCBhdCBnZXR0aW5nIHRoZSBFRkwgYnVpbGQgYm90
IHRvIGEKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0Zy
YW1lTG9hZGVyQ2xpZW50RWZsLmNwcAppbmRleCA5MzUxODI5Li4xNjk5MTlhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGll
bnRFZmwuY3BwCkBAIC0yMzIsMTYgKzIzMiw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6
OnBvc3RQcm9ncmVzc0VzdGltYXRlQ2hhbmdlZE5vdGlmaWNhdGlvbigpCiAKIHZvaWQgRnJhbWVM
b2FkZXJDbGllbnRFZmw6OnBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uKCkKIHsKLSAg
ICBpZiAobV9sb2FkRXJyb3IuaXNOdWxsKCkpCi0gICAgICAgIGV3a19mcmFtZV9sb2FkX2Zpbmlz
aGVkKG1fZnJhbWUsIDAsIDAsIDAsIDAsIDApOwotICAgIGVsc2UgewotICAgICAgICBld2tfZnJh
bWVfbG9hZF9maW5pc2hlZChtX2ZyYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBtX2xvYWRFcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBtX2xvYWRFcnJvci5lcnJvckNvZGUoKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9sb2FkRXJyb3IuaXNDYW5jZWxsYXRpb24oKSwKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgbV9sb2FkRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51
dGY4KCkuZGF0YSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2xvYWRFcnJv
ci5mYWlsaW5nVVJMKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgfQorICAgIG5vdEltcGxlbWVudGVk
KCk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmZyYW1lTG9hZGVyRGVzdHJveWVk
KCkKQEAgLTQ1Nyw3ICs0NDgsNyBAQCBib29sIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpoYXNGcmFt
ZVZpZXcoKSBjb25zdAogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEZp
bmlzaExvYWQoKQogewotICAgIG1fbG9hZEVycm9yID0gUmVzb3VyY2VFcnJvcigpOyAvKiBjbGVh
cnMgcHJldmlvdXMgZXJyb3IgKi8KKyAgICBld2tfZnJhbWVfbG9hZF9maW5pc2hlZChtX2ZyYW1l
LCAwLCAwLCAwLCAwLCAwKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZnJhbWVM
b2FkQ29tcGxldGVkKCkKQEAgLTU0NCw3ICs1MzUsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
RWZsOjpsb2FkZWRGcm9tQ2FjaGVkUGFnZSgpCiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6
OmRpc3BhdGNoRGlkSGFuZGxlT25sb2FkRXZlbnRzKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgp
OworICAgIGV3a192aWV3X29ubG9hZF9ldmVudChtX3ZpZXcsIG1fZnJhbWUpOwogfQogCiB2b2lk
IEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZv
clByb3Zpc2lvbmFsTG9hZCgpCkBAIC02MTEsNiArNjAyLDcgQEAgdm9pZCBGcmFtZUxvYWRlckNs
aWVudEVmbDo6ZGlzcGF0Y2hEaWRDaGFuZ2VJY29ucyhXZWJDb3JlOjpJY29uVHlwZSkKIHZvaWQg
RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkQ29tbWl0TG9hZCgpCiB7CiAgICAgZXdr
X2ZyYW1lX3VyaV9jaGFuZ2VkKG1fZnJhbWUpOworICAgIGV3a19mcmFtZV9sb2FkX2NvbW1pdHRl
ZChtX2ZyYW1lKTsKICAgICBpZiAoZXdrX3ZpZXdfZnJhbWVfbWFpbl9nZXQobV92aWV3KSAhPSBt
X2ZyYW1lKQogICAgICAgICByZXR1cm47CiAgICAgZXdrX3ZpZXdfdGl0bGVfc2V0KG1fdmlldywg
MCk7CkBAIC03NjEsMTUgKzc1MywxOCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNw
YXRjaERpZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZQogCiB2b2lk
IEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEZhaWxMb2FkKGNvbnN0IFJlc291cmNl
RXJyb3ImIGVycikKIHsKLSAgICBpZiAoIXNob3VsZEZhbGxCYWNrKGVycikpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIG1fbG9hZEVycm9yID0gZXJyOwogICAgIGV3a19mcmFtZV9sb2FkX2Vycm9y
KG1fZnJhbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgbV9sb2FkRXJyb3IuZG9tYWluKCku
dXRmOCgpLmRhdGEoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBtX2xvYWRFcnJvci5lcnJv
ckNvZGUoKSwgbV9sb2FkRXJyb3IuaXNDYW5jZWxsYXRpb24oKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICBtX2xvYWRFcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCks
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgbV9sb2FkRXJyb3IuZmFpbGluZ1VSTCgpLnV0Zjgo
KS5kYXRhKCkpOworICAgICAgICAgICAgICAgICAgICAgICAgIGVyci5kb21haW4oKS51dGY4KCku
ZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgIGVyci5lcnJvckNvZGUoKSwgZXJyLmlz
Q2FuY2VsbGF0aW9uKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgZXJyLmxvY2FsaXplZERl
c2NyaXB0aW9uKCkudXRmOCgpLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBlcnIu
ZmFpbGluZ1VSTCgpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgZXdrX2ZyYW1lX2xvYWRfZmluaXNo
ZWQobV9mcmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIuZG9tYWluKCkudXRm
OCgpLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIuZXJyb3JDb2RlKCks
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyLmlzQ2FuY2VsbGF0aW9uKCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXJyLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgp
LmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIuZmFpbGluZ1VSTCgpLnV0
ZjgoKS5kYXRhKCkpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkb3dubG9hZChS
ZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3Vw
cG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuaAppbmRleCBmZGFjOTFhLi45YmIxNzE1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dEVmbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50RWZsLmgKQEAgLTIxMiw4ICsyMTIsNiBAQCBjbGFzcyBGcmFtZUxvYWRlckNsaWVudEVm
bCA6IHB1YmxpYyBGcmFtZUxvYWRlckNsaWVudCB7CiAgICAgU3RyaW5nIG1fdXNlckFnZW50Owog
ICAgIFN0cmluZyBtX2N1c3RvbVVzZXJBZ2VudDsKIAotICAgIFJlc291cmNlRXJyb3IgbV9sb2Fk
RXJyb3I7Ci0KICAgICAvLyBQbHVnaW4gdmlldyB0byByZWRpcmVjdCBkYXRhIHRvCiAgICAgUGx1
Z2luVmlldyogbV9wbHVnaW5WaWV3OwogICAgIGJvb2wgbV9oYXNTZW50UmVzcG9uc2VUb1BsdWdp
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKaW5kZXggZWZjYTg2Yy4uNWM5ZjcxMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKQEAgLTEyNjEsNiArMTI2MSwxNyBAQCB2
b2lkIGV3a19mcmFtZV92aWV3X3N0YXRlX3NhdmUoRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBXZWJD
b3JlOjpIaXN0b3J5SXRlbSogaXRlbQogCiAvKioKICAqIEBpbnRlcm5hbAorICogUmVwb3J0cyB0
aGUgZnJhbWUgY29tbWl0dGVkIGxvYWQuCisgKgorICogRW1pdHMgc2lnbmFsOiAibG9hZCxjb21t
aXR0ZWQiIHdpdGggbm8gcGFyYW1ldGVycy4KKyAqLwordm9pZCBld2tfZnJhbWVfbG9hZF9jb21t
aXR0ZWQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKQoreworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2Nh
bGxiYWNrX2NhbGwoZXdrRnJhbWUsICJsb2FkLGNvbW1pdHRlZCIsIDApOworfQorCisvKioKKyAq
IEBpbnRlcm5hbAogICogUmVwb3J0cyB0aGUgZnJhbWUgc3RhcnRlZCBsb2FkaW5nIHNvbWV0aGlu
Zy4KICAqCiAgKiBFbWl0cyBzaWduYWw6ICJsb2FkLHN0YXJ0ZWQiIHdpdGggbm8gcGFyYW1ldGVy
cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaCBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaAppbmRleCA5NDI0MjhjLi5kZDNhOGQzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmgKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19mcmFtZS5oCkBAIC0zOSw2ICszOSw3IEBACiAgKiAgICAgd2VyZSBj
aGFuZ2VkIGR1ZSBuZXcgbGF5b3V0LCBzY3JpcHQgYWN0aW9ucyBvciBhbnkgb3RoZXIgZXZlbnRz
LgogICogIC0gImVkaXRvcmNsaWVudCxjb250ZW50cyxjaGFuZ2VkIiwgdm9pZDogcmVwb3J0cyB0
aGF0IGVkaXRvciBjbGllbnQncwogICogICAgY29udGVudHMgd2VyZSBjaGFuZ2VkCisgKiAgLSAi
bG9hZCxjb21taXR0ZWQiLCB2b2lkOiByZXBvcnRzIGxvYWQgY29tbWl0dGVkLgogICogIC0gImxv
YWQsZG9jdW1lbnQsZmluaXNoZWQiLCB2b2lkOiBmcmFtZSBmaW5pc2hlZCBsb2FkaW5nIHRoZSBk
b2N1bWVudC4KICAqICAtICJsb2FkLGVycm9yIiwgY29uc3QgRXdrX0ZyYW1lX0xvYWRfRXJyb3Iq
OiByZXBvcnRzIGxvYWQgZmFpbGVkCiAgKiAgICBhbmQgaXQgZ2l2ZXMgYSBwb2ludGVyIHRvIHN0
cnVjdHVyZSBkZWZpbmluZyB0aGUgZXJyb3IgYXMgYW4gYXJndW1lbnQuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfcHJpdmF0ZS5oCmluZGV4IDk2ZTQ3OTUuLjllZWEyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfcHJpdmF0ZS5oCkBAIC0xMTQsNiArMTE0LDcgQEAgdm9pZCBld2tfdmlld19sb2FkX2Zp
bmlzaGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFd2tfRnJhbWVfTG9hZF9FcnJvciog
ZXIKIHZvaWQgZXdrX3ZpZXdfbG9hZF9lcnJvcihFdmFzX09iamVjdCogZXdrVmlldywgY29uc3Qg
RXdrX0ZyYW1lX0xvYWRfRXJyb3IqIGVycm9yKTsKIHZvaWQgZXdrX3ZpZXdfbG9hZF9wcm9ncmVz
c19jaGFuZ2VkKEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKIHZvaWQgZXdrX3ZpZXdfbG9hZF9zaG93
KEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKK3ZvaWQgZXdrX3ZpZXdfb25sb2FkX2V2ZW50KEV2YXNf
T2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogZnJhbWUpOwogdm9pZCBld2tfdmlld19yZXN0
b3JlX3N0YXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogZnJhbWUpOwogRXZh
c19PYmplY3QqIGV3a192aWV3X3dpbmRvd19jcmVhdGUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJv
b2wgamF2YXNjcmlwdCwgY29uc3QgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMqIGNvcmVGZWF0dXJl
cyk7CiB2b2lkIGV3a192aWV3X3dpbmRvd19jbG9zZShFdmFzX09iamVjdCogZXdrVmlldyk7CkBA
IC0yMDIsNiArMjAzLDcgQEAgdm9pZCBld2tfZnJhbWVfdmlld19zZXQoRXZhc19PYmplY3QqIGV3
a0ZyYW1lLCBFdmFzX09iamVjdCogbmV3UGFyZW50KTsKIAogdm9pZCBld2tfZnJhbWVfY29yZV9n
b25lKEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7CiAKK3ZvaWQgZXdrX2ZyYW1lX2xvYWRfY29tbWl0
dGVkKEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7CiB2b2lkIGV3a19mcmFtZV9sb2FkX3N0YXJ0ZWQo
RXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKIHZvaWQgZXdrX2ZyYW1lX2xvYWRfcHJvdmlzaW9uYWwo
RXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKIHZvaWQgZXdrX2ZyYW1lX2xvYWRfZmlyc3RsYXlvdXRf
ZmluaXNoZWQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvZWZsL2V3ay9ld2tfdmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcu
Y3BwCmluZGV4IDJkNDJhMzIuLjdhNWNlMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNw
cApAQCAtMjg1Myw2ICsyODUzLDE5IEBAIHZvaWQgZXdrX3ZpZXdfbG9hZF9zaG93KEV2YXNfT2Jq
ZWN0KiBld2tWaWV3KQogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmll
dywgImxvYWQsbmV3d2luZG93LHNob3ciLCAwKTsKIH0KIAorLyoqCisgKiBAaW50ZXJuYWwKKyAq
IFJlcG9ydHMgYW4gb25sb2FkIGV2ZW50IGZvciBAcCBmcmFtZS4KKyAqCisgKiBAcGFyYW0gZXdr
VmlldyBWaWV3IHdoaWNoIGNvbnRhaW5zIHRoZSBmcmFtZS4KKyAqIEBwYXJhbSBmcmFtZSBUaGUg
ZnJhbWUgd2hvc2Ugb25sb2FkIGV2ZW50IHdhcyByZWNlaXZlZC4KKyAqCisgKiBFbWl0cyBzaWdu
YWw6ICJvbmxvYWQsZXZlbnQiIHdpdGggQHAgZnJhbWUgYXMgdGhlIHBhcmFtZXRlci4KKyAqLwor
dm9pZCBld2tfdmlld19vbmxvYWRfZXZlbnQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2Jq
ZWN0KiBmcmFtZSkKK3sKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a1Zp
ZXcsICJvbmxvYWQsZXZlbnQiLCBmcmFtZSk7Cit9CiAKIC8qKgogICogQGludGVybmFsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5oCmluZGV4IGZhMzgyYTkuLjdhNzMzOTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfdmlldy5oCkBAIC02MCw2ICs2MCw3IEBACiAgKiAgLSAibWVudWJhcix2aXNpYmxlLHNl
dCIsIEVpbmFfQm9vbDogc2V0cyBtZW51YmFyIHZpc2liaWxpdHkuCiAgKiAgLSAibWl4ZWRjb250
ZW50LGRpc3BsYXllZCIsIHZvaWQ6IGFueSBvZiB0aGUgY29udGFpbmluZyBmcmFtZXMgaGFzIGxv
YWRlZCBhbmQgZGlzcGxheWVkIG1peGVkIGNvbnRlbnQuCiAgKiAgLSAibWl4ZWRjb250ZW50LHJ1
biIsIHZvaWQ6IGFueSBvZiB0aGUgY29udGFpbmluZyBmcmFtZXMgaGFzIGxvYWRlZCBhbmQgcnVu
IG1peGVkIGNvbnRlbnQuCisgKiAgLSAib25sb2FkLGV2ZW50IiwgRXZhc19PYmplY3QqOiBhIGZy
YW1lIG9ubG9hZCBldmVudCBoYXMgYmVlbiByZWNlaXZlZC4KICAqICAtICJyZWFkeSIsIHZvaWQ6
IHBhZ2UgaXMgZnVsbHkgbG9hZGVkLgogICogIC0gInJlc291cmNlLHJlcXVlc3Qsd2lsbHNlbmQi
LCBFd2tfRnJhbWVfUmVzb3VyY2VfUmVxdWVzdCo6IGEgcmVzb3VyY2Ugd2lsbAogICogICAgYmUg
cmVxdWVzdGVkLgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9n
CmluZGV4IGYwMGQ3ZDguLjVmNjNkNjYgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysg
Yi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAorMjAxMi0wNC0xMCAgQ2hyaXN0b3Bo
ZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdIERS
VCBzaG91bGQgc3VwcG9ydCBMYXlvdXRUZXN0Q29udHJvbGxlcidzIGR1bXBGcmFtZUxvYWRDYWxs
YmFja3MoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
ODMwMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
bXBsZW1lbnQgc3VwcG9ydCBmb3IgTGF5b3V0VGVzdENvbnRyb2xsZXIncyBkdW1wRnJhbWVMb2Fk
Q2FsbGJhY2tzKCkKKyAgICAgICAgaW4gRUZMJ3MgRHVtcFJlbmRlclRyZWUuCisKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwOgorICAgICAgICAo
RHVtcFJlbmRlclRyZWVDaHJvbWU6OmNyZWF0ZVZpZXcpOgorICAgICAgICAoRHVtcFJlbmRlclRy
ZWVDaHJvbWU6OnByb2Nlc3NXb3JrKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjp0
b3BMb2FkaW5nRnJhbWVMb2FkRmluaXNoZWQpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJv
bWU6Om9uV2ViVmlld09ubG9hZEV2ZW50KToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21l
Ojpvbkluc2VjdXJlQ29udGVudFJ1bik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6
b25JbnNlY3VyZUNvbnRlbnREaXNwbGF5ZWQpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJv
bWU6Om9uRnJhbWVDcmVhdGVkKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZy
YW1lUHJvdmlzaW9uYWxMb2FkKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZy
YW1lTG9hZENvbW1pdHRlZCk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFt
ZUxvYWRGaW5pc2hlZCk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZUxv
YWRFcnJvcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hy
b21lLmg6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZSk6CisKIDIwMTItMDQtMTAgIEJh
bGF6cyBLZWxlbWVuICA8a2JhbGF6c0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtRdF1bV0syXSBU
ZXN0TmV0c2NhcGVQbHVnaW4gaXMgYnJva2VuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
ZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAppbmRleCBhNTM0M2U5Li44YTMzMDZlIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAK
QEAgLTkwLDEyICs5MCwyMSBAQCBFdmFzX09iamVjdCogRHVtcFJlbmRlclRyZWVDaHJvbWU6OmNy
ZWF0ZVZpZXcoKSBjb25zdAogICAgIGV3a192aWV3X3RoZW1lX3NldCh2aWV3LCBEQVRBX0RJUiIv
ZGVmYXVsdC5lZGoiKTsKIAogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2aWV3
LCAibG9hZCxzdGFydGVkIiwgb25Mb2FkU3RhcnRlZCwgMCk7Ci0gICAgZXZhc19vYmplY3Rfc21h
cnRfY2FsbGJhY2tfYWRkKHZpZXcsICJsb2FkLGZpbmlzaGVkIiwgb25Mb2FkRmluaXNoZWQsIDAp
OwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2aWV3LCAidGl0bGUsY2hhbmdl
ZCIsIG9uVGl0bGVDaGFuZ2VkLCAwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19h
ZGQodmlldywgIndpbmRvdyxvYmplY3QsY2xlYXJlZCIsIG9uV2luZG93T2JqZWN0Q2xlYXJlZCwg
bV9nY0NvbnRyb2xsZXIuZ2V0KCkpOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2Fk
ZCh2aWV3LCAic3RhdHVzYmFyLHRleHQsc2V0Iiwgb25TdGF0dXNiYXJUZXh0U2V0LCAwKTsKICAg
ICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQodmlldywgImxvYWQsZG9jdW1lbnQsZmlu
aXNoZWQiLCBvbkRvY3VtZW50TG9hZEZpbmlzaGVkLCAwKTsKICAgICBldmFzX29iamVjdF9zbWFy
dF9jYWxsYmFja19hZGQodmlldywgInJlc291cmNlLHJlcXVlc3Qsd2lsbHNlbmQiLCBvbldpbGxT
ZW5kUmVxdWVzdCwgMCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHZpZXcs
ICJvbmxvYWQsZXZlbnQiLCBvbldlYlZpZXdPbmxvYWRFdmVudCwgMCk7CisgICAgZXZhc19vYmpl
Y3Rfc21hcnRfY2FsbGJhY2tfYWRkKHZpZXcsICJtaXhlZGNvbnRlbnQscnVuIiwgb25JbnNlY3Vy
ZUNvbnRlbnRSdW4sIDApOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2aWV3
LCAibWl4ZWRjb250ZW50LGRpc3BsYXllZCIsIG9uSW5zZWN1cmVDb250ZW50RGlzcGxheWVkLCAw
KTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQodmlldywgImZyYW1lLGNyZWF0
ZWQiLCBvbkZyYW1lQ3JlYXRlZCwgMCk7CisKKyAgICBFdmFzX09iamVjdCogbWFpbkZyYW1lID0g
ZXdrX3ZpZXdfZnJhbWVfbWFpbl9nZXQodmlldyk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2Fs
bGJhY2tfYWRkKG1haW5GcmFtZSwgImxvYWQscHJvdmlzaW9uYWwiLCBvbkZyYW1lUHJvdmlzaW9u
YWxMb2FkLCAwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQobWFpbkZyYW1l
LCAibG9hZCxjb21taXR0ZWQiLCBvbkZyYW1lTG9hZENvbW1pdHRlZCwgMCk7CisgICAgZXZhc19v
YmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKG1haW5GcmFtZSwgImxvYWQsZmluaXNoZWQiLCBvbkZy
YW1lTG9hZEZpbmlzaGVkLCAwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQo
bWFpbkZyYW1lLCAibG9hZCxlcnJvciIsIG9uRnJhbWVMb2FkRXJyb3IsIDApOwogCiAgICAgcmV0
dXJuIHZpZXc7CiB9CkBAIC0yMzMsMjIgKzI0MiwxNCBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hy
b21lOjpvbkxvYWRTdGFydGVkKHZvaWQqLCBFdmFzX09iamVjdCogdmlldywgdm9pZCopCiAKIEVp
bmFfQm9vbCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6cHJvY2Vzc1dvcmsodm9pZCogZGF0YSkKIHsK
LSAgICBFdmFzX09iamVjdCogZnJhbWUgPSBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGRhdGEp
OwotCiAgICAgaWYgKFdvcmtRdWV1ZTo6c2hhcmVkKCktPnByb2Nlc3NXb3JrKCkgJiYgIWdMYXlv
dXRUZXN0Q29udHJvbGxlci0+d2FpdFRvRHVtcCgpKQogICAgICAgICBkdW1wKCk7CiAKICAgICBy
ZXR1cm4gRUNPUkVfQ0FMTEJBQ0tfQ0FOQ0VMOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVlQ2hy
b21lOjpvbkxvYWRGaW5pc2hlZCh2b2lkKiwgRXZhc19PYmplY3QqIHZpZXcsIHZvaWQqKQordm9p
ZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6dG9wTG9hZGluZ0ZyYW1lTG9hZEZpbmlzaGVkKCkKIHsK
LSAgICAvLyBGSVhNRTogd2UgYWN0dWFsbHkgbmVlZCB0aGUgZnJhbWUgcmVsYXRlZCB0byB0aGlz
IGV2ZW50Ci0gICAgRXZhc19PYmplY3QqIGZyYW1lID0gZXdrX3ZpZXdfZnJhbWVfbWFpbl9nZXQo
dmlldyk7Ci0KLSAgICBpZiAodG9wTG9hZGluZ0ZyYW1lICE9IGZyYW1lKQotICAgICAgICByZXR1
cm47Ci0KICAgICB0b3BMb2FkaW5nRnJhbWUgPSAwOwogCiAgICAgV29ya1F1ZXVlOjpzaGFyZWQo
KS0+c2V0RnJvemVuKHRydWUpOwpAQCAtMjU2LDcgKzI1Nyw3IEBAIHZvaWQgRHVtcFJlbmRlclRy
ZWVDaHJvbWU6Om9uTG9hZEZpbmlzaGVkKHZvaWQqLCBFdmFzX09iamVjdCogdmlldywgdm9pZCop
CiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChXb3JrUXVldWU6OnNoYXJlZCgpLT5jb3VudCgp
KQotICAgICAgICBlY29yZV9pZGxlcl9hZGQocHJvY2Vzc1dvcmssIGZyYW1lKTsKKyAgICAgICAg
ZWNvcmVfaWRsZXJfYWRkKHByb2Nlc3NXb3JrLCAwKTsKICAgICBlbHNlCiAgICAgICAgIGR1bXAo
KTsKIH0KQEAgLTMwNCwzICszMDUsODEgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25X
aWxsU2VuZFJlcXVlc3Qodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmYKICAgICAg
ICAgcmVxdWVzdC0+dXJsID0gMDsKICAgICB9CiB9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJv
bWU6Om9uV2ViVmlld09ubG9hZEV2ZW50KHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50
SW5mbykKK3sKKyAgICBjb25zdCBFdmFzX09iamVjdCogZnJhbWUgPSBzdGF0aWNfY2FzdDxFdmFz
X09iamVjdCo+KGV2ZW50SW5mbyk7CisKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250
cm9sbGVyLT5kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgY29uc3QgU3RyaW5n
IGZyYW1lTmFtZShEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnN1aXRhYmxlRFJURnJhbWVOYW1l
KGZyYW1lKSk7CisgICAgICAgIHByaW50ZigiJXMgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JG
cmFtZVxuIiwgZnJhbWVOYW1lLnV0ZjgoKS5kYXRhKCkpOworICAgIH0KK30KKwordm9pZCBEdW1w
UmVuZGVyVHJlZUNocm9tZTo6b25JbnNlY3VyZUNvbnRlbnRSdW4odm9pZCosIEV2YXNfT2JqZWN0
Kiwgdm9pZCopCit7CisgICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVt
cEZyYW1lTG9hZENhbGxiYWNrcygpKQorICAgICAgICBwcmludGYoImRpZFJ1bkluc2VjdXJlQ29u
dGVudFxuIik7Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uSW5zZWN1cmVDb250
ZW50RGlzcGxheWVkKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKQoreworICAgIGlmICghZG9u
ZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSkKKyAg
ICAgICAgcHJpbnRmKCJkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50XG4iKTsKK30KKwordm9pZCBE
dW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZUNyZWF0ZWQodm9pZCosIEV2YXNfT2JqZWN0Kiwg
dm9pZCogZXZlbnRJbmZvKQoreworICAgIEV2YXNfT2JqZWN0KiBmcmFtZSA9IHN0YXRpY19jYXN0
PEV2YXNfT2JqZWN0Kj4oZXZlbnRJbmZvKTsKKworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxi
YWNrX2FkZChmcmFtZSwgImxvYWQscHJvdmlzaW9uYWwiLCBvbkZyYW1lUHJvdmlzaW9uYWxMb2Fk
LCAwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoZnJhbWUsICJsb2FkLGNv
bW1pdHRlZCIsIG9uRnJhbWVMb2FkQ29tbWl0dGVkLCAwKTsKKyAgICBldmFzX29iamVjdF9zbWFy
dF9jYWxsYmFja19hZGQoZnJhbWUsICJsb2FkLGZpbmlzaGVkIiwgb25GcmFtZUxvYWRGaW5pc2hl
ZCwgMCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGZyYW1lLCAibG9hZCxl
cnJvciIsIG9uRnJhbWVMb2FkRXJyb3IsIDApOworfQorCit2b2lkIER1bXBSZW5kZXJUcmVlQ2hy
b21lOjpvbkZyYW1lUHJvdmlzaW9uYWxMb2FkKHZvaWQqLCBFdmFzX09iamVjdCogZnJhbWUsIHZv
aWQqKQoreworICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBGcmFt
ZUxvYWRDYWxsYmFja3MoKSkgeworICAgICAgICBjb25zdCBTdHJpbmcgZnJhbWVOYW1lKER1bXBS
ZW5kZXJUcmVlU3VwcG9ydEVmbDo6c3VpdGFibGVEUlRGcmFtZU5hbWUoZnJhbWUpKTsKKyAgICAg
ICAgcHJpbnRmKCIlcyAtIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVcbiIsIGZyYW1l
TmFtZS51dGY4KCkuZGF0YSgpKTsKKyAgICB9Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJv
bWU6Om9uRnJhbWVMb2FkQ29tbWl0dGVkKHZvaWQqLCBFdmFzX09iamVjdCogZnJhbWUsIHZvaWQq
KQoreworICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBGcmFtZUxv
YWRDYWxsYmFja3MoKSkgeworICAgICAgICBjb25zdCBTdHJpbmcgZnJhbWVOYW1lKER1bXBSZW5k
ZXJUcmVlU3VwcG9ydEVmbDo6c3VpdGFibGVEUlRGcmFtZU5hbWUoZnJhbWUpKTsKKyAgICAgICAg
cHJpbnRmKCIlcyAtIGRpZENvbW1pdExvYWRGb3JGcmFtZVxuIiwgZnJhbWVOYW1lLnV0ZjgoKS5k
YXRhKCkpOworICAgIH0KK30KKwordm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZUxv
YWRGaW5pc2hlZCh2b2lkKiwgRXZhc19PYmplY3QqIGZyYW1lLCB2b2lkKiBldmVudEluZm8pCit7
CisgICAgY29uc3QgRXdrX0ZyYW1lX0xvYWRfRXJyb3IqIGVycm9yID0gc3RhdGljX2Nhc3Q8RXdr
X0ZyYW1lX0xvYWRfRXJyb3IqPihldmVudEluZm8pOworCisgICAgLy8gRUZMIHBvcnQgZW1pdHMg
Ym90aCAibG9hZCxmaW5pc2hlZCIgYW5kICJsb2FkLGVycm9yIiBzaWduYWxzIGluIGVycm9yIGNh
c2UuCisgICAgLy8gRXJyb3IgY2FzZSBpcyB0aGVyZWZvcmUgYWxyZWFkeSBoYW5kbGVkIGluIG9u
RnJhbWVMb2FkRXJyb3IoKSBhbmQgd2UgZG9uJ3QgbmVlZAorICAgIC8vIHRvIGhhbmRsZSBpdCBo
ZXJlLgorICAgIGlmIChlcnJvcikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFkb25lICYm
IGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7CisgICAg
ICAgIGNvbnN0IFN0cmluZyBmcmFtZU5hbWUoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzdWl0
YWJsZURSVEZyYW1lTmFtZShmcmFtZSkpOworICAgICAgICBwcmludGYoIiVzIC0gZGlkRmluaXNo
TG9hZEZvckZyYW1lXG4iLCBmcmFtZU5hbWUudXRmOCgpLmRhdGEoKSk7CisgICAgfQorCisgICAg
aWYgKGZyYW1lID09IHRvcExvYWRpbmdGcmFtZSkKKyAgICAgICAgdG9wTG9hZGluZ0ZyYW1lTG9h
ZEZpbmlzaGVkKCk7Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uRnJhbWVMb2Fk
RXJyb3Iodm9pZCosIEV2YXNfT2JqZWN0KiBmcmFtZSwgdm9pZCopCit7CisgICAgaWYgKCFkb25l
ICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7Cisg
ICAgICAgIGNvbnN0IFN0cmluZyBmcmFtZU5hbWUoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpz
dWl0YWJsZURSVEZyYW1lTmFtZShmcmFtZSkpOworICAgICAgICBwcmludGYoIiVzIC0gZGlkRmFp
bExvYWRXaXRoRXJyb3JcbiIsIGZyYW1lTmFtZS51dGY4KCkuZGF0YSgpKTsKKyAgICB9CisKKyAg
ICBpZiAoZnJhbWUgPT0gdG9wTG9hZGluZ0ZyYW1lKQorICAgICAgICB0b3BMb2FkaW5nRnJhbWVM
b2FkRmluaXNoZWQoKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9E
dW1wUmVuZGVyVHJlZUNocm9tZS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5k
ZXJUcmVlQ2hyb21lLmgKaW5kZXggZTE1NmI0ZC4uYTUxMTJjYSAxMDA2NDQKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmgKKysrIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmgKQEAgLTY4LDcgKzY4LDcgQEAg
cHJpdmF0ZToKIAogICAgIHN0YXRpYyBFaW5hX0Jvb2wgcHJvY2Vzc1dvcmsodm9pZCopOwogCi0g
ICAgc3RhdGljIHZvaWQgb25Mb2FkRmluaXNoZWQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCop
OworICAgIHN0YXRpYyB2b2lkIHRvcExvYWRpbmdGcmFtZUxvYWRGaW5pc2hlZCgpOwogCiAgICAg
c3RhdGljIHZvaWQgb25TdGF0dXNiYXJUZXh0U2V0KHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQq
KTsKIApAQCAtNzcsNiArNzcsMjIgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBvbkRvY3Vt
ZW50TG9hZEZpbmlzaGVkKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKTsKIAogICAgIHN0YXRp
YyB2b2lkIG9uV2lsbFNlbmRSZXF1ZXN0KHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKTsKKwor
ICAgIHN0YXRpYyB2b2lkIG9uV2ViVmlld09ubG9hZEV2ZW50KHZvaWQqLCBFdmFzX09iamVjdCos
IHZvaWQqKTsKKworICAgIHN0YXRpYyB2b2lkIG9uSW5zZWN1cmVDb250ZW50UnVuKHZvaWQqLCBF
dmFzX09iamVjdCosIHZvaWQqKTsKKworICAgIHN0YXRpYyB2b2lkIG9uSW5zZWN1cmVDb250ZW50
RGlzcGxheWVkKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKTsKKworICAgIHN0YXRpYyB2b2lk
IG9uRnJhbWVDcmVhdGVkKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKTsKKworICAgIHN0YXRp
YyB2b2lkIG9uRnJhbWVQcm92aXNpb25hbExvYWQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCop
OworCisgICAgc3RhdGljIHZvaWQgb25GcmFtZUxvYWRDb21taXR0ZWQodm9pZCosIEV2YXNfT2Jq
ZWN0Kiwgdm9pZCopOworCisgICAgc3RhdGljIHZvaWQgb25GcmFtZUxvYWRGaW5pc2hlZCh2b2lk
KiwgRXZhc19PYmplY3QqLCB2b2lkKik7CisKKyAgICBzdGF0aWMgdm9pZCBvbkZyYW1lTG9hZEVy
cm9yKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKTsKIH07CiAKICNlbmRpZiAvLyBEdW1wUmVu
ZGVyVHJlZUNocm9tZV9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>136939</attachid>
            <date>2012-04-12 11:31:14 -0700</date>
            <delta_ts>2012-04-16 10:34:13 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>83030_dumpFrameLoadCallbacks.patch</filename>
            <type>text/plain</type>
            <size>24606</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBkZWUzYzRmLi40YjNiZTVjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDQt
MTIgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBbRUZMXSBEUlQgc2hvdWxkIHN1cHBvcnQgTGF5b3V0VGVzdENvbnRyb2xsZXIncyBkdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgzMDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVW5za2lwIHRoZSB0ZXN0IGNhc2VzIGluIEVGTCB3aGljaCBuZWVkZWQgZHVt
cEZyYW1lTG9hZENhbGxiYWNrcygpCisgICAgICAgIHN1cHBvcnQgaW4gdGhlIER1bXBSZW5kZXJU
cmVlIG5vdyB0aGF0IGl0IGlzIGltcGxlbWVudGVkLgorCisgICAgICAgICogcGxhdGZvcm0vZWZs
L1NraXBwZWQ6CisKIDIwMTItMDQtMTIgIFBpZXJyZSBSb3NzaSAgPHBpZXJyZS5yb3NzaUBnbWFp
bC5jb20+CiAKICAgICAgICAgW1F0XSBVbnJldmlld2VkIGdhcmRlbmluZyBhZnRlciByMTEzOTY4
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZCBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCmluZGV4IDQ0Y2M0ZmMuLjJkOTk5NGYgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2VmbC9Ta2lwcGVkCkBAIC03NTQsNyArNzU0LDYgQEAgZmFzdC9sb2FkZXIvbnVsbC1y
ZXF1ZXN0LWFmdGVyLXdpbGxTZW5kUmVxdWVzdC5odG1sCiBmYXN0L2hpc3RvcnkvYmFjay1mb3J3
YXJkLXJlc2V0LWFmdGVyLWVycm9yLWhhbmRsaW5nLmh0bWwKIAogIyBNaXNzaW5nIGRlbGVnYXRl
czogdGVzdHMgd2hpY2ggbmVlZCBwcm9wZXIgZnJhbWUgbG9hZGVyIGNhbGxiYWNrcyByZXBvcnRp
bmcKLWh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2VtcHR5LXVybC1wbHVnaW4taW4t
ZnJhbWUuaHRtbAogZmFzdC9sb2FkZXIvZmlsZS1wcm90b2NvbC1mcmFnbWVudC5odG1sCiAKICMg
TWlzc2luZyBkZWxlZ2F0ZXM6IHRlc3RzIGZhaWxpbmcgYmVjYXVzZSBvZiBtaXNzaW5nIHJlc291
cmNlIGxvYWQgZGVsZWdhdGUgY2FsbGJhY2tzLgpAQCAtMTE2Myw3ICsxMTYyLDYgQEAgaHR0cC90
ZXN0cy9oaXN0b3J5L2JhY2std2l0aC1mcmFnbWVudC1jaGFuZ2UucGhwCiAjIEZhaWxpbmcgaHR0
cCB0ZXN0cyAodmlhIEdUSyspCiBodHRwL3Rlc3RzL2xvYWRpbmcvYmFkLXNjaGVtZS1zdWJmcmFt
ZS5odG1sCiBodHRwL3Rlc3RzL2xvYWRpbmcvYmFkLXNlcnZlci1zdWJmcmFtZS5odG1sCi1odHRw
L3Rlc3RzL2xvYWRpbmcvZ21haWwtYXNzZXJ0LW9uLWxvYWQuaHRtbAogaHR0cC90ZXN0cy9sb2Fk
aW5nL3JlZGlyZWN0LXdpdGgtbm8tbG9jYXRpb24tY3Jhc2guaHRtbAogaHR0cC90ZXN0cy9sb2Fk
aW5nL3RleHQtY29udGVudC10eXBlLXdpdGgtYmluYXJ5LWV4dGVuc2lvbi5odG1sCiBodHRwL3Rl
c3RzL21lZGlhL3ZpZGVvLXBsYXktc3RhbGwtc2Vlay5odG1sCkBAIC0xMzcwLDcgKzEzNjgsNiBA
QCBmYXN0L2h0bWwvZGV0YWlscy1tb3VzZS1jbGljay5odG1sCiBmYXN0L2h0bWwvdGFiLW9yZGVy
Lmh0bWwKIGZhc3QvaW5saW5lL3NraXBwZWQtd2hpdGVzcGFjZS1ib3VuZGluZ0JveC5odG1sCiBm
YXN0L2xvYWRlci9mcmFnbWVudC1hZnRlci1yZWRpcmVjdC1nZXRzLWJhY2stZW50cnkuaHRtbAot
ZmFzdC9sb2FkZXIvc3ViZnJhbWUtcmVtb3Zlcy1pdHNlbGYuaHRtbAogZmFzdC9tdWx0aWNvbC9j
bGllbnQtcmVjdHMuaHRtbAogZmFzdC9tdWx0aWNvbC9zaW5nbGUtbGluZS5odG1sCiBmYXN0L292
ZXJmbG93L292ZXJmbG93LXktc2Nyb2xsLmh0bWwKQEAgLTI0MDksMjEgKzI0MDYsMTEgQEAgaHR0
cC90ZXN0cy9zZWN1cml0eS9kcmFnLWRyb3Atc2FtZS11bmlxdWUtb3JpZ2luLmh0bWwKIGh0dHAv
dGVzdHMvc2VjdXJpdHkvZnJhbWVOYXZpZ2F0aW9uL25vdC1vcGVuZXIuaHRtbAogaHR0cC90ZXN0
cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90ZS13aGl0ZWxpc3RlZC5odG1sCiBodHRw
L3Rlc3RzL3NlY3VyaXR5L2xvY2FsLXVzZXItQ1NTLWZyb20tcmVtb3RlLmh0bWwKLWh0dHAvdGVz
dHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2Fib3V0LWJsYW5rLWlmcmFtZS1pbi1tYWluLWZyYW1l
Lmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2RhdGEtdXJsLWlmcmFtZS1p
bi1tYWluLWZyYW1lLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2RhdGEt
dXJsLXNjcmlwdC1pbi1pZnJhbWUuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRl
bnQvaW5zZWN1cmUtY3NzLWluLWlmcmFtZS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVk
Q29udGVudC9pbnNlY3VyZS1jc3MtaW4tbWFpbi1mcmFtZS5odG1sCi1odHRwL3Rlc3RzL3NlY3Vy
aXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1pZnJhbWUtaW4taWZyYW1lLmh0bWwKLWh0dHAvdGVz
dHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWlmcmFtZS1pbi1tYWluLWZyYW1lLmh0
bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWltYWdlLWluLWlm
cmFtZS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1pbWFn
ZS1pbi1tYWluLWZyYW1lLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2lu
c2VjdXJlLXBsdWdpbi1pbi1pZnJhbWUuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENv
bnRlbnQvaW5zZWN1cmUtc2NyaXB0LWluLWlmcmFtZS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5
L21peGVkQ29udGVudC9yZWRpcmVjdC1odHRwLXRvLWh0dHBzLWlmcmFtZS1pbi1tYWluLWZyYW1l
Lmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHAtdG8t
aHR0cHMtc2NyaXB0LWluLWlmcmFtZS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29u
dGVudC9yZWRpcmVjdC1odHRwcy10by1odHRwLWlmcmFtZS1pbi1tYWluLWZyYW1lLmh0bWwKLWh0
dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L3JlZGlyZWN0LWh0dHBzLXRvLWh0dHAtc2Ny
aXB0LWluLWlmcmFtZS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L25vLXJlZmVycmVyLmh0bWwK
IGh0dHAvdGVzdHMvc2VjdXJpdHkvb3JpZ2luSGVhZGVyL29yaWdpbi1oZWFkZXItZm9yLWVtcHR5
Lmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvb3JpZ2luSGVhZGVyL29yaWdpbi1oZWFkZXItZm9y
LWh0dHBzLmh0bWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwppbmRleCAwMzllYWViLi40M2I4Y2EwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMzYgQEAKKzIwMTItMDQtMTIgIENocmlzdG9waGUgRHVtZXog
IDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAgICAgICBbRUZMXSBEUlQgc2hvdWxk
IHN1cHBvcnQgTGF5b3V0VGVzdENvbnRyb2xsZXIncyBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzMDMwCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW1wbGVtZW50
IHN1cHBvcnQgZm9yIExheW91dFRlc3RDb250cm9sbGVyJ3MgZHVtcEZyYW1lTG9hZENhbGxiYWNr
cygpCisgICAgICAgIGluIEVGTCdzIER1bXBSZW5kZXJUcmVlLiBXZSBubyBsb25nZXIgZW1pdCB0
aGUgImxvYWQsZmluaXNoZWQiIHNpZ25hbAorICAgICAgICBmcm9tIHBvc3RQcm9ncmVzc0Zpbmlz
aGVkTm90aWZpY2F0aW9uKCkgc2luY2UgaXQgaXMgYWxyZWFkeSBlbWl0dGVkCisgICAgICAgIGZy
b20gZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkuIFRoaXMgYXZvaWRzIHVud2FudGVkIGV4dHJhIHNp
Z25hbHMgd2UKKyAgICAgICAgcHJldmVudCBzb21lIHRlc3RzIGZyb20gcGFzc2luZyAoZS5nLgor
ICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9hYm91dC1ibGFuay1pZnJh
bWUtaW4tbWFpbi1mcmFtZS5odG1sKS4KKworICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0ZyYW1l
TG9hZGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50
RWZsOjpwb3N0UHJvZ3Jlc3NGaW5pc2hlZE5vdGlmaWNhdGlvbik6CisgICAgICAgIChXZWJDb3Jl
OjpGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKToKKyAgICAgICAg
KFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEhhbmRsZU9ubG9hZEV2
ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hE
aWRDb21taXRMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpk
aXNwYXRjaERpZEZhaWxMb2FkKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEVmbC5oOgorICAgICAgICAoRnJhbWVMb2FkZXJDbGllbnRFZmwpOgorICAgICAgICAq
IGV3ay9ld2tfZnJhbWUuY3BwOgorICAgICAgICAoZXdrX2ZyYW1lX2xvYWRfY29tbWl0dGVkKToK
KyAgICAgICAgKGV3a19mcmFtZV9sb2FkX3N0YXJ0ZWQpOgorICAgICAgICAqIGV3ay9ld2tfZnJh
bWUuaDoKKyAgICAgICAgKiBld2svZXdrX3ByaXZhdGUuaDoKKyAgICAgICAgKiBld2svZXdrX3Zp
ZXcuY3BwOgorICAgICAgICAoX0V3a19WaWV3X1ByaXZhdGVfRGF0YSk6CisgICAgICAgIChld2tf
dmlld19sb2FkX3N0YXJ0ZWQpOgorICAgICAgICAoZXdrX3ZpZXdfb25sb2FkX2V2ZW50KToKKyAg
ICAgICAgKiBld2svZXdrX3ZpZXcuaDoKKwogMjAxMi0wNC0xMSAgU3VkYXJzYW5hIE5hZ2luZW5p
ICA8c3VkYXJzYW5hLm5hZ2luZW5pQGxpbnV4LmludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBM
YXlvdXRUZXN0Q29udHJvbGxlciBuZWVkcyBpbXBsZW1lbnRhdGlvbiBvZiBwYWdlUHJvcGVydHkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9h
ZGVyQ2xpZW50RWZsLmNwcAppbmRleCA5MzUxODI5Li4xNjk5MTlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwu
Y3BwCkBAIC0yMzIsMTYgKzIzMiw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OnBvc3RQ
cm9ncmVzc0VzdGltYXRlQ2hhbmdlZE5vdGlmaWNhdGlvbigpCiAKIHZvaWQgRnJhbWVMb2FkZXJD
bGllbnRFZmw6OnBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uKCkKIHsKLSAgICBpZiAo
bV9sb2FkRXJyb3IuaXNOdWxsKCkpCi0gICAgICAgIGV3a19mcmFtZV9sb2FkX2ZpbmlzaGVkKG1f
ZnJhbWUsIDAsIDAsIDAsIDAsIDApOwotICAgIGVsc2UgewotICAgICAgICBld2tfZnJhbWVfbG9h
ZF9maW5pc2hlZChtX2ZyYW1lLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2xv
YWRFcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBtX2xvYWRFcnJvci5lcnJvckNvZGUoKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgbV9sb2FkRXJyb3IuaXNDYW5jZWxsYXRpb24oKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgbV9sb2FkRXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKS51dGY4KCku
ZGF0YSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtX2xvYWRFcnJvci5mYWls
aW5nVVJMKCkudXRmOCgpLmRhdGEoKSk7Ci0gICAgfQorICAgIG5vdEltcGxlbWVudGVkKCk7CiB9
CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmZyYW1lTG9hZGVyRGVzdHJveWVkKCkKQEAg
LTQ1Nyw3ICs0NDgsNyBAQCBib29sIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpoYXNGcmFtZVZpZXco
KSBjb25zdAogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEZpbmlzaExv
YWQoKQogewotICAgIG1fbG9hZEVycm9yID0gUmVzb3VyY2VFcnJvcigpOyAvKiBjbGVhcnMgcHJl
dmlvdXMgZXJyb3IgKi8KKyAgICBld2tfZnJhbWVfbG9hZF9maW5pc2hlZChtX2ZyYW1lLCAwLCAw
LCAwLCAwLCAwKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZnJhbWVMb2FkQ29t
cGxldGVkKCkKQEAgLTU0NCw3ICs1MzUsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjps
b2FkZWRGcm9tQ2FjaGVkUGFnZSgpCiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3Bh
dGNoRGlkSGFuZGxlT25sb2FkRXZlbnRzKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAg
IGV3a192aWV3X29ubG9hZF9ldmVudChtX3ZpZXcsIG1fZnJhbWUpOwogfQogCiB2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zp
c2lvbmFsTG9hZCgpCkBAIC02MTEsNiArNjAyLDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVm
bDo6ZGlzcGF0Y2hEaWRDaGFuZ2VJY29ucyhXZWJDb3JlOjpJY29uVHlwZSkKIHZvaWQgRnJhbWVM
b2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkQ29tbWl0TG9hZCgpCiB7CiAgICAgZXdrX2ZyYW1l
X3VyaV9jaGFuZ2VkKG1fZnJhbWUpOworICAgIGV3a19mcmFtZV9sb2FkX2NvbW1pdHRlZChtX2Zy
YW1lKTsKICAgICBpZiAoZXdrX3ZpZXdfZnJhbWVfbWFpbl9nZXQobV92aWV3KSAhPSBtX2ZyYW1l
KQogICAgICAgICByZXR1cm47CiAgICAgZXdrX3ZpZXdfdGl0bGVfc2V0KG1fdmlldywgMCk7CkBA
IC03NjEsMTUgKzc1MywxOCBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERp
ZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZQogCiB2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEZhaWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3Im
IGVycikKIHsKLSAgICBpZiAoIXNob3VsZEZhbGxCYWNrKGVycikpCi0gICAgICAgIHJldHVybjsK
LQotICAgIG1fbG9hZEVycm9yID0gZXJyOwogICAgIGV3a19mcmFtZV9sb2FkX2Vycm9yKG1fZnJh
bWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAgbV9sb2FkRXJyb3IuZG9tYWluKCkudXRmOCgp
LmRhdGEoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBtX2xvYWRFcnJvci5lcnJvckNvZGUo
KSwgbV9sb2FkRXJyb3IuaXNDYW5jZWxsYXRpb24oKSwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICBtX2xvYWRFcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCksCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgbV9sb2FkRXJyb3IuZmFpbGluZ1VSTCgpLnV0ZjgoKS5kYXRh
KCkpOworICAgICAgICAgICAgICAgICAgICAgICAgIGVyci5kb21haW4oKS51dGY4KCkuZGF0YSgp
LAorICAgICAgICAgICAgICAgICAgICAgICAgIGVyci5lcnJvckNvZGUoKSwgZXJyLmlzQ2FuY2Vs
bGF0aW9uKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgZXJyLmxvY2FsaXplZERlc2NyaXB0
aW9uKCkudXRmOCgpLmRhdGEoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBlcnIuZmFpbGlu
Z1VSTCgpLnV0ZjgoKS5kYXRhKCkpOworCisgICAgZXdrX2ZyYW1lX2xvYWRfZmluaXNoZWQobV9m
cmFtZSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIuZG9tYWluKCkudXRmOCgpLmRh
dGEoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIuZXJyb3JDb2RlKCksCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgZXJyLmlzQ2FuY2VsbGF0aW9uKCksCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZXJyLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRhdGEo
KSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIuZmFpbGluZ1VSTCgpLnV0ZjgoKS5k
YXRhKCkpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkb3dubG9hZChSZXNvdXJj
ZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VS
ZXNwb25zZSYpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEVmbC5oIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRFZmwuaAppbmRleCBmZGFjOTFhLi45YmIxNzE1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
RWZsLmgKQEAgLTIxMiw4ICsyMTIsNiBAQCBjbGFzcyBGcmFtZUxvYWRlckNsaWVudEVmbCA6IHB1
YmxpYyBGcmFtZUxvYWRlckNsaWVudCB7CiAgICAgU3RyaW5nIG1fdXNlckFnZW50OwogICAgIFN0
cmluZyBtX2N1c3RvbVVzZXJBZ2VudDsKIAotICAgIFJlc291cmNlRXJyb3IgbV9sb2FkRXJyb3I7
Ci0KICAgICAvLyBQbHVnaW4gdmlldyB0byByZWRpcmVjdCBkYXRhIHRvCiAgICAgUGx1Z2luVmll
dyogbV9wbHVnaW5WaWV3OwogICAgIGJvb2wgbV9oYXNTZW50UmVzcG9uc2VUb1BsdWdpbjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKaW5kZXggZWZjYTg2Yy4uOGUwNzc5MiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKQEAgLTEyNjEsNiArMTI2MSwxNyBAQCB2b2lkIGV3
a19mcmFtZV92aWV3X3N0YXRlX3NhdmUoRXZhc19PYmplY3QqIGV3a0ZyYW1lLCBXZWJDb3JlOjpI
aXN0b3J5SXRlbSogaXRlbQogCiAvKioKICAqIEBpbnRlcm5hbAorICogUmVwb3J0cyB0aGUgZnJh
bWUgY29tbWl0dGVkIGxvYWQuCisgKgorICogRW1pdHMgc2lnbmFsOiAibG9hZCxjb21taXR0ZWQi
IHdpdGggbm8gcGFyYW1ldGVycy4KKyAqLwordm9pZCBld2tfZnJhbWVfbG9hZF9jb21taXR0ZWQo
RXZhc19PYmplY3QqIGV3a0ZyYW1lKQoreworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNr
X2NhbGwoZXdrRnJhbWUsICJsb2FkLGNvbW1pdHRlZCIsIDApOworfQorCisvKioKKyAqIEBpbnRl
cm5hbAogICogUmVwb3J0cyB0aGUgZnJhbWUgc3RhcnRlZCBsb2FkaW5nIHNvbWV0aGluZy4KICAq
CiAgKiBFbWl0cyBzaWduYWw6ICJsb2FkLHN0YXJ0ZWQiIHdpdGggbm8gcGFyYW1ldGVycy4KQEAg
LTEyNzEsNyArMTI4Miw3IEBAIHZvaWQgZXdrX2ZyYW1lX2xvYWRfc3RhcnRlZChFdmFzX09iamVj
dCogZXdrRnJhbWUpCiAgICAgREJHKCJld2tGcmFtZT0lcCIsIGV3a0ZyYW1lKTsKICAgICBldmFz
X29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a0ZyYW1lLCAibG9hZCxzdGFydGVkIiwgMCk7
CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4oZXdrRnJhbWUsIHNtYXJ0RGF0YSk7Ci0g
ICAgZXdrX3ZpZXdfbG9hZF9zdGFydGVkKHNtYXJ0RGF0YS0+dmlldyk7CisgICAgZXdrX3ZpZXdf
bG9hZF9zdGFydGVkKHNtYXJ0RGF0YS0+dmlldywgZXdrRnJhbWUpOwogCiAgICAgbWFpbkZyYW1l
ID0gZXdrX3ZpZXdfZnJhbWVfbWFpbl9nZXQoc21hcnREYXRhLT52aWV3KTsKICAgICBpZiAobWFp
bkZyYW1lID09IGV3a0ZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a19mcmFtZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oCmluZGV4IDk0MjQy
OGMuLmRkM2E4ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmgKQEAgLTM5LDYgKzM5LDcg
QEAKICAqICAgICB3ZXJlIGNoYW5nZWQgZHVlIG5ldyBsYXlvdXQsIHNjcmlwdCBhY3Rpb25zIG9y
IGFueSBvdGhlciBldmVudHMuCiAgKiAgLSAiZWRpdG9yY2xpZW50LGNvbnRlbnRzLGNoYW5nZWQi
LCB2b2lkOiByZXBvcnRzIHRoYXQgZWRpdG9yIGNsaWVudCdzCiAgKiAgICBjb250ZW50cyB3ZXJl
IGNoYW5nZWQKKyAqICAtICJsb2FkLGNvbW1pdHRlZCIsIHZvaWQ6IHJlcG9ydHMgbG9hZCBjb21t
aXR0ZWQuCiAgKiAgLSAibG9hZCxkb2N1bWVudCxmaW5pc2hlZCIsIHZvaWQ6IGZyYW1lIGZpbmlz
aGVkIGxvYWRpbmcgdGhlIGRvY3VtZW50LgogICogIC0gImxvYWQsZXJyb3IiLCBjb25zdCBFd2tf
RnJhbWVfTG9hZF9FcnJvcio6IHJlcG9ydHMgbG9hZCBmYWlsZWQKICAqICAgIGFuZCBpdCBnaXZl
cyBhIHBvaW50ZXIgdG8gc3RydWN0dXJlIGRlZmluaW5nIHRoZSBlcnJvciBhcyBhbiBhcmd1bWVu
dC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKaW5kZXggOTZlNDc5NS4uYmI3ZTcyYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKQEAgLTEwNSw3ICsxMDUsNyBAQCB2b2lk
IGV3a192aWV3X2lucHV0X21ldGhvZF9zdGF0ZV9zZXQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGJv
b2wgYWN0aXZlKTsKIHZvaWQgZXdrX3ZpZXdfdGl0bGVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3
LCBjb25zdCBjaGFyKiB0aXRsZSk7CiB2b2lkIGV3a192aWV3X3VyaV9jaGFuZ2VkKEV2YXNfT2Jq
ZWN0KiBld2tWaWV3KTsKIHZvaWQgZXdrX3ZpZXdfbG9hZF9kb2N1bWVudF9maW5pc2hlZChFdmFz
X09iamVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGZyYW1lKTsKLXZvaWQgZXdrX3ZpZXdfbG9h
ZF9zdGFydGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKK3ZvaWQgZXdrX3ZpZXdfbG9hZF9zdGFy
dGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogZXdrRnJhbWUpOwogdm9pZCBl
d2tfdmlld19sb2FkX3Byb3Zpc2lvbmFsKEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKIHZvaWQgZXdr
X3ZpZXdfZnJhbWVfbWFpbl9sb2FkX3N0YXJ0ZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcpOwogdm9p
ZCBld2tfdmlld19mcmFtZV9tYWluX2NsZWFyZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcpOwpAQCAt
MTE0LDYgKzExNCw3IEBAIHZvaWQgZXdrX3ZpZXdfbG9hZF9maW5pc2hlZChFdmFzX09iamVjdCog
ZXdrVmlldywgY29uc3QgRXdrX0ZyYW1lX0xvYWRfRXJyb3IqIGVyCiB2b2lkIGV3a192aWV3X2xv
YWRfZXJyb3IoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV3a19GcmFtZV9Mb2FkX0Vycm9y
KiBlcnJvcik7CiB2b2lkIGV3a192aWV3X2xvYWRfcHJvZ3Jlc3NfY2hhbmdlZChFdmFzX09iamVj
dCogZXdrVmlldyk7CiB2b2lkIGV3a192aWV3X2xvYWRfc2hvdyhFdmFzX09iamVjdCogZXdrVmll
dyk7Cit2b2lkIGV3a192aWV3X29ubG9hZF9ldmVudChFdmFzX09iamVjdCogZXdrVmlldywgRXZh
c19PYmplY3QqIGZyYW1lKTsKIHZvaWQgZXdrX3ZpZXdfcmVzdG9yZV9zdGF0ZShFdmFzX09iamVj
dCogZXdrVmlldywgRXZhc19PYmplY3QqIGZyYW1lKTsKIEV2YXNfT2JqZWN0KiBld2tfdmlld193
aW5kb3dfY3JlYXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGphdmFzY3JpcHQsIGNvbnN0
IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzKiBjb3JlRmVhdHVyZXMpOwogdm9pZCBld2tfdmlld193
aW5kb3dfY2xvc2UoRXZhc19PYmplY3QqIGV3a1ZpZXcpOwpAQCAtMjAyLDYgKzIwMyw3IEBAIHZv
aWQgZXdrX2ZyYW1lX3ZpZXdfc2V0KEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgRXZhc19PYmplY3Qq
IG5ld1BhcmVudCk7CiAKIHZvaWQgZXdrX2ZyYW1lX2NvcmVfZ29uZShFdmFzX09iamVjdCogZXdr
RnJhbWUpOwogCit2b2lkIGV3a19mcmFtZV9sb2FkX2NvbW1pdHRlZChFdmFzX09iamVjdCogZXdr
RnJhbWUpOwogdm9pZCBld2tfZnJhbWVfbG9hZF9zdGFydGVkKEV2YXNfT2JqZWN0KiBld2tGcmFt
ZSk7CiB2b2lkIGV3a19mcmFtZV9sb2FkX3Byb3Zpc2lvbmFsKEV2YXNfT2JqZWN0KiBld2tGcmFt
ZSk7CiB2b2lkIGV3a19mcmFtZV9sb2FkX2ZpcnN0bGF5b3V0X2ZpbmlzaGVkKEV2YXNfT2JqZWN0
KiBld2tGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcu
Y3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRleCAyZDQyYTMyLi5i
YjRlYTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTI4MDIsMTMgKzI4MDIs
MTQgQEAgdm9pZCBld2tfdmlld19sb2FkX2RvY3VtZW50X2ZpbmlzaGVkKEV2YXNfT2JqZWN0KiBl
d2tWaWV3LCBFdmFzX09iamVjdCogZnJhbWUpCiAgKiBSZXBvcnRzIHRoZSB2aWV3IHN0YXJ0ZWQg
bG9hZGluZyBzb21ldGhpbmcuCiAgKgogICogQHBhcmFtIGV3a1ZpZXcgVmlldy4KKyAqIEBwYXJh
bSBld2tGcmFtZSBGcmFtZSBiZWluZyBsb2FkZWQuCiAgKgogICogRW1pdHMgc2lnbmFsOiAibG9h
ZCxzdGFydGVkIiB3aXRoIG5vIHBhcmFtZXRlcnMuCiAgKi8KLXZvaWQgZXdrX3ZpZXdfbG9hZF9z
dGFydGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3KQordm9pZCBld2tfdmlld19sb2FkX3N0YXJ0ZWQo
RXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKIHsKLSAgICBEQkco
ImV3a1ZpZXc9JXAiLCBld2tWaWV3KTsKLSAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19j
YWxsKGV3a1ZpZXcsICJsb2FkLHN0YXJ0ZWQiLCAwKTsKKyAgICBEQkcoImV3a1ZpZXc9JXAsIGV3
a0ZyYW1lPSVwIiwgZXdrVmlldywgZXdrRnJhbWUpOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2Nh
bGxiYWNrX2NhbGwoZXdrVmlldywgImxvYWQsc3RhcnRlZCIsIGV3a0ZyYW1lKTsKIH0KIAogLyoq
CkBAIC0yODUzLDYgKzI4NTQsMTkgQEAgdm9pZCBld2tfdmlld19sb2FkX3Nob3coRXZhc19PYmpl
Y3QqIGV3a1ZpZXcpCiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tWaWV3
LCAibG9hZCxuZXd3aW5kb3csc2hvdyIsIDApOwogfQogCisvKioKKyAqIEBpbnRlcm5hbAorICog
UmVwb3J0cyBhbiBvbmxvYWQgZXZlbnQgZm9yIEBwIGZyYW1lLgorICoKKyAqIEBwYXJhbSBld2tW
aWV3IFZpZXcgd2hpY2ggY29udGFpbnMgdGhlIGZyYW1lLgorICogQHBhcmFtIGZyYW1lIFRoZSBm
cmFtZSB3aG9zZSBvbmxvYWQgZXZlbnQgd2FzIHJlY2VpdmVkLgorICoKKyAqIEVtaXRzIHNpZ25h
bDogIm9ubG9hZCxldmVudCIgd2l0aCBAcCBmcmFtZSBhcyB0aGUgcGFyYW1ldGVyLgorICovCit2
b2lkIGV3a192aWV3X29ubG9hZF9ldmVudChFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19PYmpl
Y3QqIGZyYW1lKQoreworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmll
dywgIm9ubG9hZCxldmVudCIsIGZyYW1lKTsKK30KIAogLyoqCiAgKiBAaW50ZXJuYWwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oIGIvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a192aWV3LmgKaW5kZXggZmEzODJhOS4uMWI3MzUzOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdr
L2V3a192aWV3LmgKQEAgLTU0LDEyICs1NCwxMyBAQAogICogIC0gImxvYWQscHJvZ3Jlc3MiLCBk
b3VibGUqOiBsb2FkIHByb2dyZXNzIGlzIGNoYW5nZWQgKG92ZXJhbGwgdmFsdWUKICAqICAgIGZy
b20gMC4wIHRvIDEuMCwgY29ubmVjdCB0byBpbmRpdmlkdWFsIGZyYW1lcyBmb3IgZmluZSBncmFp
bmVkKS4KICAqICAtICJsb2FkLHByb3Zpc2lvbmFsIiwgdm9pZDogdmlldyBzdGFydGVkIHByb3Zp
c2lvbmFsIGxvYWQuCi0gKiAgLSAibG9hZCxzdGFydGVkIiwgdm9pZDogZnJhbWUgc3RhcnRlZCBs
b2FkaW5nIHRoZSBkb2N1bWVudC4KKyAqICAtICJsb2FkLHN0YXJ0ZWQiLCBFdmFzX09iamVjdCo6
IGZyYW1lIHN0YXJ0ZWQgbG9hZGluZyB0aGUgZG9jdW1lbnQuCiAgKiAgLSAibWVudWJhcix2aXNp
YmxlLGdldCIsIEVpbmFfQm9vbCAqOiBleHBlY3RzIGEgQGMgRUlOQV9UUlVFIGlmIG1lbnViYXIg
aXMKICAqICAgIHZpc2libGU7IEBjIEVJTkFfRkFMU0UsIG90aGVyd2lzZS4KICAqICAtICJtZW51
YmFyLHZpc2libGUsc2V0IiwgRWluYV9Cb29sOiBzZXRzIG1lbnViYXIgdmlzaWJpbGl0eS4KICAq
ICAtICJtaXhlZGNvbnRlbnQsZGlzcGxheWVkIiwgdm9pZDogYW55IG9mIHRoZSBjb250YWluaW5n
IGZyYW1lcyBoYXMgbG9hZGVkIGFuZCBkaXNwbGF5ZWQgbWl4ZWQgY29udGVudC4KICAqICAtICJt
aXhlZGNvbnRlbnQscnVuIiwgdm9pZDogYW55IG9mIHRoZSBjb250YWluaW5nIGZyYW1lcyBoYXMg
bG9hZGVkIGFuZCBydW4gbWl4ZWQgY29udGVudC4KKyAqICAtICJvbmxvYWQsZXZlbnQiLCBFdmFz
X09iamVjdCo6IGEgZnJhbWUgb25sb2FkIGV2ZW50IGhhcyBiZWVuIHJlY2VpdmVkLgogICogIC0g
InJlYWR5Iiwgdm9pZDogcGFnZSBpcyBmdWxseSBsb2FkZWQuCiAgKiAgLSAicmVzb3VyY2UscmVx
dWVzdCx3aWxsc2VuZCIsIEV3a19GcmFtZV9SZXNvdXJjZV9SZXF1ZXN0KjogYSByZXNvdXJjZSB3
aWxsCiAgKiAgICBiZSByZXF1ZXN0ZWQuCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9U
b29scy9DaGFuZ2VMb2cKaW5kZXggYTM5YmFkZC4uYTEwYjNmOCAxMDA2NDQKLS0tIGEvVG9vbHMv
Q2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI5IEBACisyMDEyLTA0
LTEyICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CisKKyAg
ICAgICAgW0VGTF0gRFJUIHNob3VsZCBzdXBwb3J0IExheW91dFRlc3RDb250cm9sbGVyJ3MgZHVt
cEZyYW1lTG9hZENhbGxiYWNrcygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD04MzAzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEltcGxlbWVudCBzdXBwb3J0IGZvciBMYXlvdXRUZXN0Q29udHJvbGxlcidz
IGR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKQorICAgICAgICBpbiBFRkwncyBEdW1wUmVuZGVyVHJl
ZS4KKworICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5j
cHA6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6Y3JlYXRlVmlldyk6CisgICAgICAg
IChEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25Mb2FkU3RhcnRlZCk6CisgICAgICAgIChEdW1wUmVu
ZGVyVHJlZUNocm9tZTo6cHJvY2Vzc1dvcmspOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJv
bWU6OnRvcExvYWRpbmdGcmFtZUxvYWRGaW5pc2hlZCk6CisgICAgICAgIChEdW1wUmVuZGVyVHJl
ZUNocm9tZTo6b25XZWJWaWV3T25sb2FkRXZlbnQpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVD
aHJvbWU6Om9uSW5zZWN1cmVDb250ZW50UnVuKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hy
b21lOjpvbkluc2VjdXJlQ29udGVudERpc3BsYXllZCk6CisgICAgICAgIChEdW1wUmVuZGVyVHJl
ZUNocm9tZTo6b25GcmFtZUNyZWF0ZWQpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6
Om9uRnJhbWVQcm92aXNpb25hbExvYWQpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6
Om9uRnJhbWVMb2FkQ29tbWl0dGVkKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpv
bkZyYW1lTG9hZEZpbmlzaGVkKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZy
YW1lTG9hZEVycm9yKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRy
ZWVDaHJvbWUuaDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lKToKKwogMjAxMi0wNC0x
MiAgU2ltb24gUGVuYSAgPHNwZW5hQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gVGVzdCBy
dW5uZXIgY3Jhc2hlcyB3aXRob3V0IHJlY2VudCB2ZXJzaW9ucyBvZiBwdWxzZWF1ZGlvLXV0aWxz
CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJv
bWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNw
cAppbmRleCBiMzllMTI1Li5kZjMyYWIyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKQEAgLTkwLDEyICs5MCwyMSBAQCBFdmFzX09i
amVjdCogRHVtcFJlbmRlclRyZWVDaHJvbWU6OmNyZWF0ZVZpZXcoKSBjb25zdAogICAgIGV3a192
aWV3X3RoZW1lX3NldCh2aWV3LCBEQVRBX0RJUiIvZGVmYXVsdC5lZGoiKTsKIAogICAgIGV2YXNf
b2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2aWV3LCAibG9hZCxzdGFydGVkIiwgb25Mb2FkU3Rh
cnRlZCwgMCk7Ci0gICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHZpZXcsICJsb2Fk
LGZpbmlzaGVkIiwgb25Mb2FkRmluaXNoZWQsIDApOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2Nh
bGxiYWNrX2FkZCh2aWV3LCAidGl0bGUsY2hhbmdlZCIsIG9uVGl0bGVDaGFuZ2VkLCAwKTsKICAg
ICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQodmlldywgIndpbmRvdyxvYmplY3QsY2xl
YXJlZCIsIG9uV2luZG93T2JqZWN0Q2xlYXJlZCwgbV9nY0NvbnRyb2xsZXIuZ2V0KCkpOwogICAg
IGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2aWV3LCAic3RhdHVzYmFyLHRleHQsc2V0
Iiwgb25TdGF0dXNiYXJUZXh0U2V0LCAwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFj
a19hZGQodmlldywgImxvYWQsZG9jdW1lbnQsZmluaXNoZWQiLCBvbkRvY3VtZW50TG9hZEZpbmlz
aGVkLCAwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQodmlldywgInJlc291
cmNlLHJlcXVlc3Qsd2lsbHNlbmQiLCBvbldpbGxTZW5kUmVxdWVzdCwgMCk7CisgICAgZXZhc19v
YmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHZpZXcsICJvbmxvYWQsZXZlbnQiLCBvbldlYlZpZXdP
bmxvYWRFdmVudCwgMCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHZpZXcs
ICJtaXhlZGNvbnRlbnQscnVuIiwgb25JbnNlY3VyZUNvbnRlbnRSdW4sIDApOworICAgIGV2YXNf
b2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2aWV3LCAibWl4ZWRjb250ZW50LGRpc3BsYXllZCIs
IG9uSW5zZWN1cmVDb250ZW50RGlzcGxheWVkLCAwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9j
YWxsYmFja19hZGQodmlldywgImZyYW1lLGNyZWF0ZWQiLCBvbkZyYW1lQ3JlYXRlZCwgMCk7CisK
KyAgICBFdmFzX09iamVjdCogbWFpbkZyYW1lID0gZXdrX3ZpZXdfZnJhbWVfbWFpbl9nZXQodmll
dyk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKG1haW5GcmFtZSwgImxvYWQs
cHJvdmlzaW9uYWwiLCBvbkZyYW1lUHJvdmlzaW9uYWxMb2FkLCAwKTsKKyAgICBldmFzX29iamVj
dF9zbWFydF9jYWxsYmFja19hZGQobWFpbkZyYW1lLCAibG9hZCxjb21taXR0ZWQiLCBvbkZyYW1l
TG9hZENvbW1pdHRlZCwgMCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKG1h
aW5GcmFtZSwgImxvYWQsZmluaXNoZWQiLCBvbkZyYW1lTG9hZEZpbmlzaGVkLCAwKTsKKyAgICBl
dmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQobWFpbkZyYW1lLCAibG9hZCxlcnJvciIsIG9u
RnJhbWVMb2FkRXJyb3IsIDApOwogCiAgICAgcmV0dXJuIHZpZXc7CiB9CkBAIC0yMjAsMTAgKzIy
OSw5IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uV2luZG93T2JqZWN0Q2xlYXJlZCh2
b2lkKiB1c2VyRGF0YSwgRXZhc19PYmplY3QqLCB2CiAgICAgV2ViQ29yZVRlc3RTdXBwb3J0Ojpp
bmplY3RJbnRlcm5hbHNPYmplY3Qob2JqZWN0Q2xlYXJlZEluZm8tPmNvbnRleHQpOwogfQogCi12
b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkxvYWRTdGFydGVkKHZvaWQqLCBFdmFzX09iamVj
dCogdmlldywgdm9pZCopCit2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkxvYWRTdGFydGVk
KHZvaWQqLCBFdmFzX09iamVjdCogdmlldywgdm9pZCogZXZlbnRJbmZvKQogewotICAgIC8vIEZJ
WE1FOiB3ZSBhY3R1YWxseSBuZWVkIHRoZSBmcmFtZSByZWxhdGVkIHRvIHRoaXMgZXZlbnQKLSAg
ICBFdmFzX09iamVjdCogZnJhbWUgPSBld2tfdmlld19mcmFtZV9tYWluX2dldCh2aWV3KTsKKyAg
ICBFdmFzX09iamVjdCogZnJhbWUgPSBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGV2ZW50SW5m
byk7CiAKICAgICAvLyBNYWtlIHN1cmUgd2Ugb25seSBzZXQgdGhpcyBvbmNlIHBlciB0ZXN0LiBJ
ZiBpdCBnZXRzIGNsZWFyZWQsIGFuZCB0aGVuIHNldCBhZ2Fpbiwgd2UgbWlnaHQKICAgICAvLyBl
bmQgdXAgZG9pbmcgdHdvIGR1bXBzIGZvciBvbmUgdGVzdC4KQEAgLTIzMywyMiArMjQxLDE0IEBA
IHZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uTG9hZFN0YXJ0ZWQodm9pZCosIEV2YXNfT2Jq
ZWN0KiB2aWV3LCB2b2lkKikKIAogRWluYV9Cb29sIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpwcm9j
ZXNzV29yayh2b2lkKiBkYXRhKQogewotICAgIEV2YXNfT2JqZWN0KiBmcmFtZSA9IHN0YXRpY19j
YXN0PEV2YXNfT2JqZWN0Kj4oZGF0YSk7Ci0KICAgICBpZiAoV29ya1F1ZXVlOjpzaGFyZWQoKS0+
cHJvY2Vzc1dvcmsoKSAmJiAhZ0xheW91dFRlc3RDb250cm9sbGVyLT53YWl0VG9EdW1wKCkpCiAg
ICAgICAgIGR1bXAoKTsKIAogICAgIHJldHVybiBFQ09SRV9DQUxMQkFDS19DQU5DRUw7CiB9CiAK
LXZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uTG9hZEZpbmlzaGVkKHZvaWQqLCBFdmFzX09i
amVjdCogdmlldywgdm9pZCopCit2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjp0b3BMb2FkaW5n
RnJhbWVMb2FkRmluaXNoZWQoKQogewotICAgIC8vIEZJWE1FOiB3ZSBhY3R1YWxseSBuZWVkIHRo
ZSBmcmFtZSByZWxhdGVkIHRvIHRoaXMgZXZlbnQKLSAgICBFdmFzX09iamVjdCogZnJhbWUgPSBl
d2tfdmlld19mcmFtZV9tYWluX2dldCh2aWV3KTsKLQotICAgIGlmICh0b3BMb2FkaW5nRnJhbWUg
IT0gZnJhbWUpCi0gICAgICAgIHJldHVybjsKLQogICAgIHRvcExvYWRpbmdGcmFtZSA9IDA7CiAK
ICAgICBXb3JrUXVldWU6OnNoYXJlZCgpLT5zZXRGcm96ZW4odHJ1ZSk7CkBAIC0yNTYsNyArMjU2
LDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25Mb2FkRmluaXNoZWQodm9pZCosIEV2
YXNfT2JqZWN0KiB2aWV3LCB2b2lkKikKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKFdvcmtR
dWV1ZTo6c2hhcmVkKCktPmNvdW50KCkpCi0gICAgICAgIGVjb3JlX2lkbGVyX2FkZChwcm9jZXNz
V29yaywgZnJhbWUpOworICAgICAgICBlY29yZV9pZGxlcl9hZGQocHJvY2Vzc1dvcmssIDApOwog
ICAgIGVsc2UKICAgICAgICAgZHVtcCgpOwogfQpAQCAtMzE0LDMgKzMxNCw4MSBAQCB2b2lkIER1
bXBSZW5kZXJUcmVlQ2hyb21lOjpvbldpbGxTZW5kUmVxdWVzdCh2b2lkKiwgRXZhc19PYmplY3Qq
LCB2b2lkKiBldmVudEluZgogICAgICAgICByZXF1ZXN0LT51cmwgPSAwOwogICAgIH0KIH0KKwor
dm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25XZWJWaWV3T25sb2FkRXZlbnQodm9pZCosIEV2
YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKQoreworICAgIGNvbnN0IEV2YXNfT2JqZWN0KiBm
cmFtZSA9IHN0YXRpY19jYXN0PEV2YXNfT2JqZWN0Kj4oZXZlbnRJbmZvKTsKKworICAgIGlmICgh
ZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSkg
eworICAgICAgICBjb25zdCBTdHJpbmcgZnJhbWVOYW1lKER1bXBSZW5kZXJUcmVlU3VwcG9ydEVm
bDo6c3VpdGFibGVEUlRGcmFtZU5hbWUoZnJhbWUpKTsKKyAgICAgICAgcHJpbnRmKCIlcyAtIGRp
ZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lXG4iLCBmcmFtZU5hbWUudXRmOCgpLmRhdGEoKSk7
CisgICAgfQorfQorCit2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkluc2VjdXJlQ29udGVu
dFJ1bih2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKikKK3sKKyAgICBpZiAoIWRvbmUgJiYgZ0xh
eW91dFRlc3RDb250cm9sbGVyLT5kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpCisgICAgICAgIHBy
aW50ZigiZGlkUnVuSW5zZWN1cmVDb250ZW50XG4iKTsKK30KKwordm9pZCBEdW1wUmVuZGVyVHJl
ZUNocm9tZTo6b25JbnNlY3VyZUNvbnRlbnREaXNwbGF5ZWQodm9pZCosIEV2YXNfT2JqZWN0Kiwg
dm9pZCopCit7CisgICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEZy
YW1lTG9hZENhbGxiYWNrcygpKQorICAgICAgICBwcmludGYoImRpZERpc3BsYXlJbnNlY3VyZUNv
bnRlbnRcbiIpOworfQorCit2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZyYW1lQ3JlYXRl
ZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pCit7CisgICAgRXZhc19PYmpl
Y3QqIGZyYW1lID0gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihldmVudEluZm8pOworCisgICAg
ZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGZyYW1lLCAibG9hZCxwcm92aXNpb25hbCIs
IG9uRnJhbWVQcm92aXNpb25hbExvYWQsIDApOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxi
YWNrX2FkZChmcmFtZSwgImxvYWQsY29tbWl0dGVkIiwgb25GcmFtZUxvYWRDb21taXR0ZWQsIDAp
OworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChmcmFtZSwgImxvYWQsZmluaXNo
ZWQiLCBvbkZyYW1lTG9hZEZpbmlzaGVkLCAwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxs
YmFja19hZGQoZnJhbWUsICJsb2FkLGVycm9yIiwgb25GcmFtZUxvYWRFcnJvciwgMCk7Cit9CisK
K3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uRnJhbWVQcm92aXNpb25hbExvYWQodm9pZCos
IEV2YXNfT2JqZWN0KiBmcmFtZSwgdm9pZCopCit7CisgICAgaWYgKCFkb25lICYmIGdMYXlvdXRU
ZXN0Q29udHJvbGxlci0+ZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7CisgICAgICAgIGNvbnN0
IFN0cmluZyBmcmFtZU5hbWUoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzdWl0YWJsZURSVEZy
YW1lTmFtZShmcmFtZSkpOworICAgICAgICBwcmludGYoIiVzIC0gZGlkU3RhcnRQcm92aXNpb25h
bExvYWRGb3JGcmFtZVxuIiwgZnJhbWVOYW1lLnV0ZjgoKS5kYXRhKCkpOworICAgIH0KK30KKwor
dm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZUxvYWRDb21taXR0ZWQodm9pZCosIEV2
YXNfT2JqZWN0KiBmcmFtZSwgdm9pZCopCit7CisgICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0
Q29udHJvbGxlci0+ZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7CisgICAgICAgIGNvbnN0IFN0
cmluZyBmcmFtZU5hbWUoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzdWl0YWJsZURSVEZyYW1l
TmFtZShmcmFtZSkpOworICAgICAgICBwcmludGYoIiVzIC0gZGlkQ29tbWl0TG9hZEZvckZyYW1l
XG4iLCBmcmFtZU5hbWUudXRmOCgpLmRhdGEoKSk7CisgICAgfQorfQorCit2b2lkIER1bXBSZW5k
ZXJUcmVlQ2hyb21lOjpvbkZyYW1lTG9hZEZpbmlzaGVkKHZvaWQqLCBFdmFzX09iamVjdCogZnJh
bWUsIHZvaWQqIGV2ZW50SW5mbykKK3sKKyAgICBjb25zdCBFd2tfRnJhbWVfTG9hZF9FcnJvciog
ZXJyb3IgPSBzdGF0aWNfY2FzdDxFd2tfRnJhbWVfTG9hZF9FcnJvcio+KGV2ZW50SW5mbyk7CisK
KyAgICAvLyBFRkwgcG9ydCBlbWl0cyBib3RoICJsb2FkLGZpbmlzaGVkIiBhbmQgImxvYWQsZXJy
b3IiIHNpZ25hbHMgaW4gZXJyb3IgY2FzZS4KKyAgICAvLyBFcnJvciBjYXNlIGlzIHRoZXJlZm9y
ZSBhbHJlYWR5IGhhbmRsZWQgaW4gb25GcmFtZUxvYWRFcnJvcigpIGFuZCB3ZSBkb24ndCBuZWVk
CisgICAgLy8gdG8gaGFuZGxlIGl0IGhlcmUuCisgICAgaWYgKGVycm9yKQorICAgICAgICByZXR1
cm47CisKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wRnJhbWVM
b2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgY29uc3QgU3RyaW5nIGZyYW1lTmFtZShEdW1wUmVu
ZGVyVHJlZVN1cHBvcnRFZmw6OnN1aXRhYmxlRFJURnJhbWVOYW1lKGZyYW1lKSk7CisgICAgICAg
IHByaW50ZigiJXMgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWVcbiIsIGZyYW1lTmFtZS51dGY4KCku
ZGF0YSgpKTsKKyAgICB9CisKKyAgICBpZiAoZnJhbWUgPT0gdG9wTG9hZGluZ0ZyYW1lKQorICAg
ICAgICB0b3BMb2FkaW5nRnJhbWVMb2FkRmluaXNoZWQoKTsKK30KKwordm9pZCBEdW1wUmVuZGVy
VHJlZUNocm9tZTo6b25GcmFtZUxvYWRFcnJvcih2b2lkKiwgRXZhc19PYmplY3QqIGZyYW1lLCB2
b2lkKikKK3sKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wRnJh
bWVMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgY29uc3QgU3RyaW5nIGZyYW1lTmFtZShEdW1w
UmVuZGVyVHJlZVN1cHBvcnRFZmw6OnN1aXRhYmxlRFJURnJhbWVOYW1lKGZyYW1lKSk7CisgICAg
ICAgIHByaW50ZigiJXMgLSBkaWRGYWlsTG9hZFdpdGhFcnJvclxuIiwgZnJhbWVOYW1lLnV0Zjgo
KS5kYXRhKCkpOworICAgIH0KKworICAgIGlmIChmcmFtZSA9PSB0b3BMb2FkaW5nRnJhbWUpCisg
ICAgICAgIHRvcExvYWRpbmdGcmFtZUxvYWRGaW5pc2hlZCgpOworfQpkaWZmIC0tZ2l0IGEvVG9v
bHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmggYi9Ub29scy9EdW1w
UmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuaAppbmRleCBlMTU2YjRkLi5hNTEx
MmNhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVD
aHJvbWUuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJv
bWUuaApAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogCiAgICAgc3RhdGljIEVpbmFfQm9vbCBw
cm9jZXNzV29yayh2b2lkKik7CiAKLSAgICBzdGF0aWMgdm9pZCBvbkxvYWRGaW5pc2hlZCh2b2lk
KiwgRXZhc19PYmplY3QqLCB2b2lkKik7CisgICAgc3RhdGljIHZvaWQgdG9wTG9hZGluZ0ZyYW1l
TG9hZEZpbmlzaGVkKCk7CiAKICAgICBzdGF0aWMgdm9pZCBvblN0YXR1c2JhclRleHRTZXQodm9p
ZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopOwogCkBAIC03Nyw2ICs3NywyMiBAQCBwcml2YXRlOgog
ICAgIHN0YXRpYyB2b2lkIG9uRG9jdW1lbnRMb2FkRmluaXNoZWQodm9pZCosIEV2YXNfT2JqZWN0
Kiwgdm9pZCopOwogCiAgICAgc3RhdGljIHZvaWQgb25XaWxsU2VuZFJlcXVlc3Qodm9pZCosIEV2
YXNfT2JqZWN0Kiwgdm9pZCopOworCisgICAgc3RhdGljIHZvaWQgb25XZWJWaWV3T25sb2FkRXZl
bnQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopOworCisgICAgc3RhdGljIHZvaWQgb25JbnNl
Y3VyZUNvbnRlbnRSdW4odm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopOworCisgICAgc3RhdGlj
IHZvaWQgb25JbnNlY3VyZUNvbnRlbnREaXNwbGF5ZWQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9p
ZCopOworCisgICAgc3RhdGljIHZvaWQgb25GcmFtZUNyZWF0ZWQodm9pZCosIEV2YXNfT2JqZWN0
Kiwgdm9pZCopOworCisgICAgc3RhdGljIHZvaWQgb25GcmFtZVByb3Zpc2lvbmFsTG9hZCh2b2lk
KiwgRXZhc19PYmplY3QqLCB2b2lkKik7CisKKyAgICBzdGF0aWMgdm9pZCBvbkZyYW1lTG9hZENv
bW1pdHRlZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKik7CisKKyAgICBzdGF0aWMgdm9pZCBv
bkZyYW1lTG9hZEZpbmlzaGVkKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKTsKKworICAgIHN0
YXRpYyB2b2lkIG9uRnJhbWVMb2FkRXJyb3Iodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopOwog
fTsKIAogI2VuZGlmIC8vIER1bXBSZW5kZXJUcmVlQ2hyb21lX2gK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137364</attachid>
            <date>2012-04-16 10:34:13 -0700</date>
            <delta_ts>2012-04-16 23:36:45 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>83030_dumpFrameLoadCallbacks_a.patch</filename>
            <type>text/plain</type>
            <size>20153</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAzMTM3YTdkLi4xNzUxNGJjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDQt
MTYgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBbRUZMXSBEUlQgc2hvdWxkIHN1cHBvcnQgTGF5b3V0VGVzdENvbnRyb2xsZXIncyBkdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgzMDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVW5za2lwIHRoZSB0ZXN0IGNhc2VzIGluIEVGTCB3aGljaCBuZWVkZWQgZHVt
cEZyYW1lTG9hZENhbGxiYWNrcygpCisgICAgICAgIHN1cHBvcnQgaW4gdGhlIER1bXBSZW5kZXJU
cmVlIG5vdyB0aGF0IGl0IGlzIGltcGxlbWVudGVkLgorCisgICAgICAgICogcGxhdGZvcm0vZWZs
L1NraXBwZWQ6CisKIDIwMTItMDQtMTYgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgTGF5b3V0IFRlc3QgbWVkaWEvdHJhY2svdHJhY2stZGVsZXRlLWR1
cmluZy1zZXR1cC5odG1sIGlzIGhpdHRpbmcgYW4gQVNTRVJUX05PVF9SRUFDSEVECmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2VmbC9Ta2lwcGVkCmluZGV4IDIxMmUwNjkuLmJmODU5OTEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Vm
bC9Ta2lwcGVkCkBAIC0xMTYzLDcgKzExNjMsNiBAQCBodHRwL3Rlc3RzL2hpc3RvcnkvYmFjay13
aXRoLWZyYWdtZW50LWNoYW5nZS5waHAKICMgRmFpbGluZyBodHRwIHRlc3RzICh2aWEgR1RLKykK
IGh0dHAvdGVzdHMvbG9hZGluZy9iYWQtc2NoZW1lLXN1YmZyYW1lLmh0bWwKIGh0dHAvdGVzdHMv
bG9hZGluZy9iYWQtc2VydmVyLXN1YmZyYW1lLmh0bWwKLWh0dHAvdGVzdHMvbG9hZGluZy9nbWFp
bC1hc3NlcnQtb24tbG9hZC5odG1sCiBodHRwL3Rlc3RzL2xvYWRpbmcvcmVkaXJlY3Qtd2l0aC1u
by1sb2NhdGlvbi1jcmFzaC5odG1sCiBodHRwL3Rlc3RzL2xvYWRpbmcvdGV4dC1jb250ZW50LXR5
cGUtd2l0aC1iaW5hcnktZXh0ZW5zaW9uLmh0bWwKIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tcGxh
eS1zdGFsbC1zZWVrLmh0bWwKQEAgLTEzNjgsNyArMTM2Nyw2IEBAIGZhc3QvaHRtbC9kZXRhaWxz
LW1vdXNlLWNsaWNrLmh0bWwKIGZhc3QvaHRtbC90YWItb3JkZXIuaHRtbAogZmFzdC9pbmxpbmUv
c2tpcHBlZC13aGl0ZXNwYWNlLWJvdW5kaW5nQm94Lmh0bWwKIGZhc3QvbG9hZGVyL2ZyYWdtZW50
LWFmdGVyLXJlZGlyZWN0LWdldHMtYmFjay1lbnRyeS5odG1sCi1mYXN0L2xvYWRlci9zdWJmcmFt
ZS1yZW1vdmVzLWl0c2VsZi5odG1sCiBmYXN0L211bHRpY29sL2NsaWVudC1yZWN0cy5odG1sCiBm
YXN0L211bHRpY29sL3NpbmdsZS1saW5lLmh0bWwKIGZhc3Qvb3ZlcmZsb3cvb3ZlcmZsb3cteS1z
Y3JvbGwuaHRtbApAQCAtMjMzNSw3ICsyMzMzLDYgQEAgaHR0cC90ZXN0cy9zZWN1cml0eS9taXhl
ZENvbnRlbnQvYWJvdXQtYmxhbmstaWZyYW1lLWluLW1haW4tZnJhbWUuaHRtbAogaHR0cC90ZXN0
cy9zZWN1cml0eS9taXhlZENvbnRlbnQvZGF0YS11cmwtaWZyYW1lLWluLW1haW4tZnJhbWUuaHRt
bAogaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvZGF0YS11cmwtc2NyaXB0LWluLWlm
cmFtZS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1jc3Mt
aW4taWZyYW1lLmh0bWwKLWh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJl
LWNzcy1pbi1tYWluLWZyYW1lLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50
L2luc2VjdXJlLWlmcmFtZS1pbi1pZnJhbWUuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9taXhl
ZENvbnRlbnQvaW5zZWN1cmUtaWZyYW1lLWluLW1haW4tZnJhbWUuaHRtbAogaHR0cC90ZXN0cy9z
ZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtaW1hZ2UtaW4taWZyYW1lLmh0bWwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvZWZsL0No
YW5nZUxvZwppbmRleCBjYmRiZTA0Li43MWQ5NThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2VmbC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMjggQEAKKzIwMTItMDQtMTYgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6
QGludGVsLmNvbT4KKworICAgICAgICBbRUZMXSBEUlQgc2hvdWxkIHN1cHBvcnQgTGF5b3V0VGVz
dENvbnRyb2xsZXIncyBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTgzMDMwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW1pdCAibG9hZCxzdGFydGVkIiBhbmQgIm9u
bG9hZCxldmVudCIgc2lnbmFscyBuZWVkZWQgdG8gc3VwcG9ydCAKKyAgICAgICAgTGF5b3V0VGVz
dENvbnRyb2xsZXIncyBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkgaW4gRUZMJ3MgRHVtcFJlbmRl
clRyZWUuIAorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlk
SGFuZGxlT25sb2FkRXZlbnRzKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50
RWZsOjpkaXNwYXRjaERpZENvbW1pdExvYWQpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2Fk
ZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkRmFpbExvYWQpOgorICAgICAgICAqIGV3ay9ld2tfZnJh
bWUuY3BwOgorICAgICAgICAoZXdrX2ZyYW1lX2xvYWRfY29tbWl0dGVkKToKKyAgICAgICAgKGV3
a19mcmFtZV9sb2FkX3N0YXJ0ZWQpOgorICAgICAgICAqIGV3ay9ld2tfZnJhbWUuaDoKKyAgICAg
ICAgKiBld2svZXdrX3ByaXZhdGUuaDoKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuY3BwOgorICAg
ICAgICAoX0V3a19WaWV3X1ByaXZhdGVfRGF0YSk6CisgICAgICAgIChld2tfdmlld19sb2FkX3N0
YXJ0ZWQpOgorICAgICAgICAoZXdrX3ZpZXdfb25sb2FkX2V2ZW50KToKKyAgICAgICAgKiBld2sv
ZXdrX3ZpZXcuaDoKKwogMjAxMi0wNC0xMyAgVGhpYWdvIE1hcmNvcyBQLiBTYW50b3MgIDx0aGlh
Z28uc2FudG9zQGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXSBBZGQgQVBJIGZvciBjb2xvciBj
aG9vc2VyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudEVmbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9G
cmFtZUxvYWRlckNsaWVudEVmbC5jcHAKaW5kZXggOTM1MTgyOS4uNjc4Y2RhNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xp
ZW50RWZsLmNwcApAQCAtNTQ0LDcgKzU0NCw3IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6
OmxvYWRlZEZyb21DYWNoZWRQYWdlKCkKIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlz
cGF0Y2hEaWRIYW5kbGVPbmxvYWRFdmVudHMoKQogewotICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgZXdrX3ZpZXdfb25sb2FkX2V2ZW50KG1fdmlldywgbV9mcmFtZSk7CiB9CiAKIHZvaWQgRnJh
bWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGlyZWN0Rm9yUHJv
dmlzaW9uYWxMb2FkKCkKQEAgLTYxMSw2ICs2MTEsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50
RWZsOjpkaXNwYXRjaERpZENoYW5nZUljb25zKFdlYkNvcmU6Okljb25UeXBlKQogdm9pZCBGcmFt
ZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKCkKIHsKICAgICBld2tfZnJh
bWVfdXJpX2NoYW5nZWQobV9mcmFtZSk7CisgICAgZXdrX2ZyYW1lX2xvYWRfY29tbWl0dGVkKG1f
ZnJhbWUpOwogICAgIGlmIChld2tfdmlld19mcmFtZV9tYWluX2dldChtX3ZpZXcpICE9IG1fZnJh
bWUpCiAgICAgICAgIHJldHVybjsKICAgICBld2tfdmlld190aXRsZV9zZXQobV92aWV3LCAwKTsK
QEAgLTc2MSw5ICs3NjIsNiBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERp
ZEZhaWxQcm92aXNpb25hbExvYWQoY29uc3QgUmVzb3VyY2VFcnJvciYgZQogCiB2b2lkIEZyYW1l
TG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEZhaWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3Im
IGVycikKIHsKLSAgICBpZiAoIXNob3VsZEZhbGxCYWNrKGVycikpCi0gICAgICAgIHJldHVybjsK
LQogICAgIG1fbG9hZEVycm9yID0gZXJyOwogICAgIGV3a19mcmFtZV9sb2FkX2Vycm9yKG1fZnJh
bWUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgbV9sb2FkRXJyb3IuZG9tYWluKCkudXRmOCgp
LmRhdGEoKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3Bw
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKaW5kZXggZWZjYTg2Yy4uOGUw
Nzc5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAKQEAgLTEyNjEsNiArMTI2MSwx
NyBAQCB2b2lkIGV3a19mcmFtZV92aWV3X3N0YXRlX3NhdmUoRXZhc19PYmplY3QqIGV3a0ZyYW1l
LCBXZWJDb3JlOjpIaXN0b3J5SXRlbSogaXRlbQogCiAvKioKICAqIEBpbnRlcm5hbAorICogUmVw
b3J0cyB0aGUgZnJhbWUgY29tbWl0dGVkIGxvYWQuCisgKgorICogRW1pdHMgc2lnbmFsOiAibG9h
ZCxjb21taXR0ZWQiIHdpdGggbm8gcGFyYW1ldGVycy4KKyAqLwordm9pZCBld2tfZnJhbWVfbG9h
ZF9jb21taXR0ZWQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKQoreworICAgIGV2YXNfb2JqZWN0X3Nt
YXJ0X2NhbGxiYWNrX2NhbGwoZXdrRnJhbWUsICJsb2FkLGNvbW1pdHRlZCIsIDApOworfQorCisv
KioKKyAqIEBpbnRlcm5hbAogICogUmVwb3J0cyB0aGUgZnJhbWUgc3RhcnRlZCBsb2FkaW5nIHNv
bWV0aGluZy4KICAqCiAgKiBFbWl0cyBzaWduYWw6ICJsb2FkLHN0YXJ0ZWQiIHdpdGggbm8gcGFy
YW1ldGVycy4KQEAgLTEyNzEsNyArMTI4Miw3IEBAIHZvaWQgZXdrX2ZyYW1lX2xvYWRfc3RhcnRl
ZChFdmFzX09iamVjdCogZXdrRnJhbWUpCiAgICAgREJHKCJld2tGcmFtZT0lcCIsIGV3a0ZyYW1l
KTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a0ZyYW1lLCAibG9hZCxz
dGFydGVkIiwgMCk7CiAgICAgRVdLX0ZSQU1FX1NEX0dFVF9PUl9SRVRVUk4oZXdrRnJhbWUsIHNt
YXJ0RGF0YSk7Ci0gICAgZXdrX3ZpZXdfbG9hZF9zdGFydGVkKHNtYXJ0RGF0YS0+dmlldyk7Cisg
ICAgZXdrX3ZpZXdfbG9hZF9zdGFydGVkKHNtYXJ0RGF0YS0+dmlldywgZXdrRnJhbWUpOwogCiAg
ICAgbWFpbkZyYW1lID0gZXdrX3ZpZXdfZnJhbWVfbWFpbl9nZXQoc21hcnREYXRhLT52aWV3KTsK
ICAgICBpZiAobWFpbkZyYW1lID09IGV3a0ZyYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a19mcmFtZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5o
CmluZGV4IDk0MjQyOGMuLmRkM2E4ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfZnJhbWUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmgKQEAg
LTM5LDYgKzM5LDcgQEAKICAqICAgICB3ZXJlIGNoYW5nZWQgZHVlIG5ldyBsYXlvdXQsIHNjcmlw
dCBhY3Rpb25zIG9yIGFueSBvdGhlciBldmVudHMuCiAgKiAgLSAiZWRpdG9yY2xpZW50LGNvbnRl
bnRzLGNoYW5nZWQiLCB2b2lkOiByZXBvcnRzIHRoYXQgZWRpdG9yIGNsaWVudCdzCiAgKiAgICBj
b250ZW50cyB3ZXJlIGNoYW5nZWQKKyAqICAtICJsb2FkLGNvbW1pdHRlZCIsIHZvaWQ6IHJlcG9y
dHMgbG9hZCBjb21taXR0ZWQuCiAgKiAgLSAibG9hZCxkb2N1bWVudCxmaW5pc2hlZCIsIHZvaWQ6
IGZyYW1lIGZpbmlzaGVkIGxvYWRpbmcgdGhlIGRvY3VtZW50LgogICogIC0gImxvYWQsZXJyb3Ii
LCBjb25zdCBFd2tfRnJhbWVfTG9hZF9FcnJvcio6IHJlcG9ydHMgbG9hZCBmYWlsZWQKICAqICAg
IGFuZCBpdCBnaXZlcyBhIHBvaW50ZXIgdG8gc3RydWN0dXJlIGRlZmluaW5nIHRoZSBlcnJvciBh
cyBhbiBhcmd1bWVudC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJp
dmF0ZS5oIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKaW5kZXggOTZmYTc1
My4uZGZjYzAxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRl
LmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKQEAgLTEwOSw3ICsx
MDksNyBAQCB2b2lkIGV3a192aWV3X2lucHV0X21ldGhvZF9zdGF0ZV9zZXQoRXZhc19PYmplY3Qq
IGV3a1ZpZXcsIGJvb2wgYWN0aXZlKTsKIHZvaWQgZXdrX3ZpZXdfdGl0bGVfc2V0KEV2YXNfT2Jq
ZWN0KiBld2tWaWV3LCBjb25zdCBjaGFyKiB0aXRsZSk7CiB2b2lkIGV3a192aWV3X3VyaV9jaGFu
Z2VkKEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKIHZvaWQgZXdrX3ZpZXdfbG9hZF9kb2N1bWVudF9m
aW5pc2hlZChFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGZyYW1lKTsKLXZvaWQg
ZXdrX3ZpZXdfbG9hZF9zdGFydGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKK3ZvaWQgZXdrX3Zp
ZXdfbG9hZF9zdGFydGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogZXdrRnJh
bWUpOwogdm9pZCBld2tfdmlld19sb2FkX3Byb3Zpc2lvbmFsKEV2YXNfT2JqZWN0KiBld2tWaWV3
KTsKIHZvaWQgZXdrX3ZpZXdfZnJhbWVfbWFpbl9sb2FkX3N0YXJ0ZWQoRXZhc19PYmplY3QqIGV3
a1ZpZXcpOwogdm9pZCBld2tfdmlld19mcmFtZV9tYWluX2NsZWFyZWQoRXZhc19PYmplY3QqIGV3
a1ZpZXcpOwpAQCAtMTE4LDYgKzExOCw3IEBAIHZvaWQgZXdrX3ZpZXdfbG9hZF9maW5pc2hlZChF
dmFzX09iamVjdCogZXdrVmlldywgY29uc3QgRXdrX0ZyYW1lX0xvYWRfRXJyb3IqIGVyCiB2b2lk
IGV3a192aWV3X2xvYWRfZXJyb3IoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV3a19GcmFt
ZV9Mb2FkX0Vycm9yKiBlcnJvcik7CiB2b2lkIGV3a192aWV3X2xvYWRfcHJvZ3Jlc3NfY2hhbmdl
ZChFdmFzX09iamVjdCogZXdrVmlldyk7CiB2b2lkIGV3a192aWV3X2xvYWRfc2hvdyhFdmFzX09i
amVjdCogZXdrVmlldyk7Cit2b2lkIGV3a192aWV3X29ubG9hZF9ldmVudChFdmFzX09iamVjdCog
ZXdrVmlldywgRXZhc19PYmplY3QqIGZyYW1lKTsKIHZvaWQgZXdrX3ZpZXdfcmVzdG9yZV9zdGF0
ZShFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGZyYW1lKTsKIEV2YXNfT2JqZWN0
KiBld2tfdmlld193aW5kb3dfY3JlYXRlKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGphdmFz
Y3JpcHQsIGNvbnN0IFdlYkNvcmU6OldpbmRvd0ZlYXR1cmVzKiBjb3JlRmVhdHVyZXMpOwogdm9p
ZCBld2tfdmlld193aW5kb3dfY2xvc2UoRXZhc19PYmplY3QqIGV3a1ZpZXcpOwpAQCAtMjExLDYg
KzIxMiw3IEBAIHZvaWQgZXdrX2ZyYW1lX3ZpZXdfc2V0KEV2YXNfT2JqZWN0KiBld2tGcmFtZSwg
RXZhc19PYmplY3QqIG5ld1BhcmVudCk7CiAKIHZvaWQgZXdrX2ZyYW1lX2NvcmVfZ29uZShFdmFz
X09iamVjdCogZXdrRnJhbWUpOwogCit2b2lkIGV3a19mcmFtZV9sb2FkX2NvbW1pdHRlZChFdmFz
X09iamVjdCogZXdrRnJhbWUpOwogdm9pZCBld2tfZnJhbWVfbG9hZF9zdGFydGVkKEV2YXNfT2Jq
ZWN0KiBld2tGcmFtZSk7CiB2b2lkIGV3a19mcmFtZV9sb2FkX3Byb3Zpc2lvbmFsKEV2YXNfT2Jq
ZWN0KiBld2tGcmFtZSk7CiB2b2lkIGV3a19mcmFtZV9sb2FkX2ZpcnN0bGF5b3V0X2ZpbmlzaGVk
KEV2YXNfT2JqZWN0KiBld2tGcmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9l
d2svZXdrX3ZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAppbmRl
eCBjNjVhY2FiLi45YmQxMDYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKQEAgLTI4
MTMsMTMgKzI4MTMsMTQgQEAgdm9pZCBld2tfdmlld19sb2FkX2RvY3VtZW50X2ZpbmlzaGVkKEV2
YXNfT2JqZWN0KiBld2tWaWV3LCBFdmFzX09iamVjdCogZnJhbWUpCiAgKiBSZXBvcnRzIHRoZSB2
aWV3IHN0YXJ0ZWQgbG9hZGluZyBzb21ldGhpbmcuCiAgKgogICogQHBhcmFtIGV3a1ZpZXcgVmll
dy4KKyAqIEBwYXJhbSBld2tGcmFtZSBGcmFtZSBiZWluZyBsb2FkZWQuCiAgKgogICogRW1pdHMg
c2lnbmFsOiAibG9hZCxzdGFydGVkIiB3aXRoIG5vIHBhcmFtZXRlcnMuCiAgKi8KLXZvaWQgZXdr
X3ZpZXdfbG9hZF9zdGFydGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3KQordm9pZCBld2tfdmlld19s
b2FkX3N0YXJ0ZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBld2tGcmFtZSkK
IHsKLSAgICBEQkcoImV3a1ZpZXc9JXAiLCBld2tWaWV3KTsKLSAgICBldmFzX29iamVjdF9zbWFy
dF9jYWxsYmFja19jYWxsKGV3a1ZpZXcsICJsb2FkLHN0YXJ0ZWQiLCAwKTsKKyAgICBEQkcoImV3
a1ZpZXc9JXAsIGV3a0ZyYW1lPSVwIiwgZXdrVmlldywgZXdrRnJhbWUpOworICAgIGV2YXNfb2Jq
ZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmlldywgImxvYWQsc3RhcnRlZCIsIGV3a0ZyYW1l
KTsKIH0KIAogLyoqCkBAIC0yODY0LDYgKzI4NjUsMTkgQEAgdm9pZCBld2tfdmlld19sb2FkX3No
b3coRXZhc19PYmplY3QqIGV3a1ZpZXcpCiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tf
Y2FsbChld2tWaWV3LCAibG9hZCxuZXd3aW5kb3csc2hvdyIsIDApOwogfQogCisvKioKKyAqIEBp
bnRlcm5hbAorICogUmVwb3J0cyBhbiBvbmxvYWQgZXZlbnQgZm9yIEBwIGZyYW1lLgorICoKKyAq
IEBwYXJhbSBld2tWaWV3IFZpZXcgd2hpY2ggY29udGFpbnMgdGhlIGZyYW1lLgorICogQHBhcmFt
IGZyYW1lIFRoZSBmcmFtZSB3aG9zZSBvbmxvYWQgZXZlbnQgd2FzIHJlY2VpdmVkLgorICoKKyAq
IEVtaXRzIHNpZ25hbDogIm9ubG9hZCxldmVudCIgd2l0aCBAcCBmcmFtZSBhcyB0aGUgcGFyYW1l
dGVyLgorICovCit2b2lkIGV3a192aWV3X29ubG9hZF9ldmVudChFdmFzX09iamVjdCogZXdrVmll
dywgRXZhc19PYmplY3QqIGZyYW1lKQoreworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNr
X2NhbGwoZXdrVmlldywgIm9ubG9hZCxldmVudCIsIGZyYW1lKTsKK30KIAogLyoqCiAgKiBAaW50
ZXJuYWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKaW5kZXggMzc0Mzg5OC4uODIzYThkMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKKysrIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmgKQEAgLTYwLDEyICs2MCwxMyBAQAogICogIC0gImxvYWQs
cHJvZ3Jlc3MiLCBkb3VibGUqOiBsb2FkIHByb2dyZXNzIGlzIGNoYW5nZWQgKG92ZXJhbGwgdmFs
dWUKICAqICAgIGZyb20gMC4wIHRvIDEuMCwgY29ubmVjdCB0byBpbmRpdmlkdWFsIGZyYW1lcyBm
b3IgZmluZSBncmFpbmVkKS4KICAqICAtICJsb2FkLHByb3Zpc2lvbmFsIiwgdm9pZDogdmlldyBz
dGFydGVkIHByb3Zpc2lvbmFsIGxvYWQuCi0gKiAgLSAibG9hZCxzdGFydGVkIiwgdm9pZDogZnJh
bWUgc3RhcnRlZCBsb2FkaW5nIHRoZSBkb2N1bWVudC4KKyAqICAtICJsb2FkLHN0YXJ0ZWQiLCBF
dmFzX09iamVjdCo6IGZyYW1lIHN0YXJ0ZWQgbG9hZGluZyB0aGUgZG9jdW1lbnQuCiAgKiAgLSAi
bWVudWJhcix2aXNpYmxlLGdldCIsIEVpbmFfQm9vbCAqOiBleHBlY3RzIGEgQGMgRUlOQV9UUlVF
IGlmIG1lbnViYXIgaXMKICAqICAgIHZpc2libGU7IEBjIEVJTkFfRkFMU0UsIG90aGVyd2lzZS4K
ICAqICAtICJtZW51YmFyLHZpc2libGUsc2V0IiwgRWluYV9Cb29sOiBzZXRzIG1lbnViYXIgdmlz
aWJpbGl0eS4KICAqICAtICJtaXhlZGNvbnRlbnQsZGlzcGxheWVkIiwgdm9pZDogYW55IG9mIHRo
ZSBjb250YWluaW5nIGZyYW1lcyBoYXMgbG9hZGVkIGFuZCBkaXNwbGF5ZWQgbWl4ZWQgY29udGVu
dC4KICAqICAtICJtaXhlZGNvbnRlbnQscnVuIiwgdm9pZDogYW55IG9mIHRoZSBjb250YWluaW5n
IGZyYW1lcyBoYXMgbG9hZGVkIGFuZCBydW4gbWl4ZWQgY29udGVudC4KKyAqICAtICJvbmxvYWQs
ZXZlbnQiLCBFdmFzX09iamVjdCo6IGEgZnJhbWUgb25sb2FkIGV2ZW50IGhhcyBiZWVuIHJlY2Vp
dmVkLgogICogIC0gInJlYWR5Iiwgdm9pZDogcGFnZSBpcyBmdWxseSBsb2FkZWQuCiAgKiAgLSAi
cmVzb3VyY2UscmVxdWVzdCx3aWxsc2VuZCIsIEV3a19GcmFtZV9SZXNvdXJjZV9SZXF1ZXN0Kjog
YSByZXNvdXJjZSB3aWxsCiAgKiAgICBiZSByZXF1ZXN0ZWQuCmRpZmYgLS1naXQgYS9Ub29scy9D
aGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzM4M2FkMy4uNDUxZDg2NSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2
IEBACisyMDEyLTA0LTE2ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRl
bC5jb20+CisKKyAgICAgICAgW0VGTF0gRFJUIHNob3VsZCBzdXBwb3J0IExheW91dFRlc3RDb250
cm9sbGVyJ3MgZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MzAzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJU
cmVlQ2hyb21lLmNwcDoKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpjcmVhdGVWaWV3
KToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkxvYWRTdGFydGVkKToKKyAgICAg
ICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpwcm9jZXNzV29yayk6CisgICAgICAgIChEdW1wUmVu
ZGVyVHJlZUNocm9tZTo6dG9wTG9hZGluZ0ZyYW1lTG9hZEZpbmlzaGVkKToKKyAgICAgICAgKER1
bXBSZW5kZXJUcmVlQ2hyb21lOjpvbldlYlZpZXdPbmxvYWRFdmVudCk6CisgICAgICAgIChEdW1w
UmVuZGVyVHJlZUNocm9tZTo6b25JbnNlY3VyZUNvbnRlbnRSdW4pOgorICAgICAgICAoRHVtcFJl
bmRlclRyZWVDaHJvbWU6Om9uSW5zZWN1cmVDb250ZW50RGlzcGxheWVkKToKKyAgICAgICAgKER1
bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZyYW1lQ3JlYXRlZCk6CisgICAgICAgIChEdW1wUmVuZGVy
VHJlZUNocm9tZTo6b25GcmFtZVByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAgIChEdW1wUmVuZGVy
VHJlZUNocm9tZTo6b25GcmFtZUxvYWRDb21taXR0ZWQpOgorICAgICAgICAoRHVtcFJlbmRlclRy
ZWVDaHJvbWU6Om9uRnJhbWVMb2FkRmluaXNoZWQpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVD
aHJvbWU6Om9uRnJhbWVMb2FkRXJyb3IpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9E
dW1wUmVuZGVyVHJlZUNocm9tZS5oOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWUpOgor
CiAyMDEyLTA0LTE2ICBQaGlsaXBwZSBOb3JtYW5kICA8cG5vcm1hbmRAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBidWlsZC13ZWJraXQgLS1ndGsgLS1uby13ZWJraXQyIGJ1aWxkcyBXSzIKZGlmZiAt
LWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCmluZGV4
IGIzOWUxMjUuLmRmMzJhYjIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9E
dW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1
bXBSZW5kZXJUcmVlQ2hyb21lLmNwcApAQCAtOTAsMTIgKzkwLDIxIEBAIEV2YXNfT2JqZWN0KiBE
dW1wUmVuZGVyVHJlZUNocm9tZTo6Y3JlYXRlVmlldygpIGNvbnN0CiAgICAgZXdrX3ZpZXdfdGhl
bWVfc2V0KHZpZXcsIERBVEFfRElSIi9kZWZhdWx0LmVkaiIpOwogCiAgICAgZXZhc19vYmplY3Rf
c21hcnRfY2FsbGJhY2tfYWRkKHZpZXcsICJsb2FkLHN0YXJ0ZWQiLCBvbkxvYWRTdGFydGVkLCAw
KTsKLSAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQodmlldywgImxvYWQsZmluaXNo
ZWQiLCBvbkxvYWRGaW5pc2hlZCwgMCk7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tf
YWRkKHZpZXcsICJ0aXRsZSxjaGFuZ2VkIiwgb25UaXRsZUNoYW5nZWQsIDApOwogICAgIGV2YXNf
b2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2aWV3LCAid2luZG93LG9iamVjdCxjbGVhcmVkIiwg
b25XaW5kb3dPYmplY3RDbGVhcmVkLCBtX2djQ29udHJvbGxlci5nZXQoKSk7CiAgICAgZXZhc19v
YmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHZpZXcsICJzdGF0dXNiYXIsdGV4dCxzZXQiLCBvblN0
YXR1c2JhclRleHRTZXQsIDApOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2
aWV3LCAibG9hZCxkb2N1bWVudCxmaW5pc2hlZCIsIG9uRG9jdW1lbnRMb2FkRmluaXNoZWQsIDAp
OwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2aWV3LCAicmVzb3VyY2UscmVx
dWVzdCx3aWxsc2VuZCIsIG9uV2lsbFNlbmRSZXF1ZXN0LCAwKTsKKyAgICBldmFzX29iamVjdF9z
bWFydF9jYWxsYmFja19hZGQodmlldywgIm9ubG9hZCxldmVudCIsIG9uV2ViVmlld09ubG9hZEV2
ZW50LCAwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQodmlldywgIm1peGVk
Y29udGVudCxydW4iLCBvbkluc2VjdXJlQ29udGVudFJ1biwgMCk7CisgICAgZXZhc19vYmplY3Rf
c21hcnRfY2FsbGJhY2tfYWRkKHZpZXcsICJtaXhlZGNvbnRlbnQsZGlzcGxheWVkIiwgb25JbnNl
Y3VyZUNvbnRlbnREaXNwbGF5ZWQsIDApOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNr
X2FkZCh2aWV3LCAiZnJhbWUsY3JlYXRlZCIsIG9uRnJhbWVDcmVhdGVkLCAwKTsKKworICAgIEV2
YXNfT2JqZWN0KiBtYWluRnJhbWUgPSBld2tfdmlld19mcmFtZV9tYWluX2dldCh2aWV3KTsKKyAg
ICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQobWFpbkZyYW1lLCAibG9hZCxwcm92aXNp
b25hbCIsIG9uRnJhbWVQcm92aXNpb25hbExvYWQsIDApOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0
X2NhbGxiYWNrX2FkZChtYWluRnJhbWUsICJsb2FkLGNvbW1pdHRlZCIsIG9uRnJhbWVMb2FkQ29t
bWl0dGVkLCAwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQobWFpbkZyYW1l
LCAibG9hZCxmaW5pc2hlZCIsIG9uRnJhbWVMb2FkRmluaXNoZWQsIDApOworICAgIGV2YXNfb2Jq
ZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChtYWluRnJhbWUsICJsb2FkLGVycm9yIiwgb25GcmFtZUxv
YWRFcnJvciwgMCk7CiAKICAgICByZXR1cm4gdmlldzsKIH0KQEAgLTIyMCwxMCArMjI5LDkgQEAg
dm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25XaW5kb3dPYmplY3RDbGVhcmVkKHZvaWQqIHVz
ZXJEYXRhLCBFdmFzX09iamVjdCosIHYKICAgICBXZWJDb3JlVGVzdFN1cHBvcnQ6OmluamVjdElu
dGVybmFsc09iamVjdChvYmplY3RDbGVhcmVkSW5mby0+Y29udGV4dCk7CiB9CiAKLXZvaWQgRHVt
cFJlbmRlclRyZWVDaHJvbWU6Om9uTG9hZFN0YXJ0ZWQodm9pZCosIEV2YXNfT2JqZWN0KiB2aWV3
LCB2b2lkKikKK3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uTG9hZFN0YXJ0ZWQodm9pZCos
IEV2YXNfT2JqZWN0KiB2aWV3LCB2b2lkKiBldmVudEluZm8pCiB7Ci0gICAgLy8gRklYTUU6IHdl
IGFjdHVhbGx5IG5lZWQgdGhlIGZyYW1lIHJlbGF0ZWQgdG8gdGhpcyBldmVudAotICAgIEV2YXNf
T2JqZWN0KiBmcmFtZSA9IGV3a192aWV3X2ZyYW1lX21haW5fZ2V0KHZpZXcpOworICAgIEV2YXNf
T2JqZWN0KiBmcmFtZSA9IHN0YXRpY19jYXN0PEV2YXNfT2JqZWN0Kj4oZXZlbnRJbmZvKTsKIAog
ICAgIC8vIE1ha2Ugc3VyZSB3ZSBvbmx5IHNldCB0aGlzIG9uY2UgcGVyIHRlc3QuIElmIGl0IGdl
dHMgY2xlYXJlZCwgYW5kIHRoZW4gc2V0IGFnYWluLCB3ZSBtaWdodAogICAgIC8vIGVuZCB1cCBk
b2luZyB0d28gZHVtcHMgZm9yIG9uZSB0ZXN0LgpAQCAtMjMzLDIyICsyNDEsMTQgQEAgdm9pZCBE
dW1wUmVuZGVyVHJlZUNocm9tZTo6b25Mb2FkU3RhcnRlZCh2b2lkKiwgRXZhc19PYmplY3QqIHZp
ZXcsIHZvaWQqKQogCiBFaW5hX0Jvb2wgRHVtcFJlbmRlclRyZWVDaHJvbWU6OnByb2Nlc3NXb3Jr
KHZvaWQqIGRhdGEpCiB7Ci0gICAgRXZhc19PYmplY3QqIGZyYW1lID0gc3RhdGljX2Nhc3Q8RXZh
c19PYmplY3QqPihkYXRhKTsKLQogICAgIGlmIChXb3JrUXVldWU6OnNoYXJlZCgpLT5wcm9jZXNz
V29yaygpICYmICFnTGF5b3V0VGVzdENvbnRyb2xsZXItPndhaXRUb0R1bXAoKSkKICAgICAgICAg
ZHVtcCgpOwogCiAgICAgcmV0dXJuIEVDT1JFX0NBTExCQUNLX0NBTkNFTDsKIH0KIAotdm9pZCBE
dW1wUmVuZGVyVHJlZUNocm9tZTo6b25Mb2FkRmluaXNoZWQodm9pZCosIEV2YXNfT2JqZWN0KiB2
aWV3LCB2b2lkKikKK3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6OnRvcExvYWRpbmdGcmFtZUxv
YWRGaW5pc2hlZCgpCiB7Ci0gICAgLy8gRklYTUU6IHdlIGFjdHVhbGx5IG5lZWQgdGhlIGZyYW1l
IHJlbGF0ZWQgdG8gdGhpcyBldmVudAotICAgIEV2YXNfT2JqZWN0KiBmcmFtZSA9IGV3a192aWV3
X2ZyYW1lX21haW5fZ2V0KHZpZXcpOwotCi0gICAgaWYgKHRvcExvYWRpbmdGcmFtZSAhPSBmcmFt
ZSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgdG9wTG9hZGluZ0ZyYW1lID0gMDsKIAogICAgIFdv
cmtRdWV1ZTo6c2hhcmVkKCktPnNldEZyb3plbih0cnVlKTsKQEAgLTI1Niw3ICsyNTYsNyBAQCB2
b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkxvYWRGaW5pc2hlZCh2b2lkKiwgRXZhc19PYmpl
Y3QqIHZpZXcsIHZvaWQqKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoV29ya1F1ZXVlOjpz
aGFyZWQoKS0+Y291bnQoKSkKLSAgICAgICAgZWNvcmVfaWRsZXJfYWRkKHByb2Nlc3NXb3JrLCBm
cmFtZSk7CisgICAgICAgIGVjb3JlX2lkbGVyX2FkZChwcm9jZXNzV29yaywgMCk7CiAgICAgZWxz
ZQogICAgICAgICBkdW1wKCk7CiB9CkBAIC0zMTQsMyArMzE0LDgxIEBAIHZvaWQgRHVtcFJlbmRl
clRyZWVDaHJvbWU6Om9uV2lsbFNlbmRSZXF1ZXN0KHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQq
IGV2ZW50SW5mCiAgICAgICAgIHJlcXVlc3QtPnVybCA9IDA7CiAgICAgfQogfQorCit2b2lkIER1
bXBSZW5kZXJUcmVlQ2hyb21lOjpvbldlYlZpZXdPbmxvYWRFdmVudCh2b2lkKiwgRXZhc19PYmpl
Y3QqLCB2b2lkKiBldmVudEluZm8pCit7CisgICAgY29uc3QgRXZhc19PYmplY3QqIGZyYW1lID0g
c3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihldmVudEluZm8pOworCisgICAgaWYgKCFkb25lICYm
IGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7CisgICAg
ICAgIGNvbnN0IFN0cmluZyBmcmFtZU5hbWUoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzdWl0
YWJsZURSVEZyYW1lTmFtZShmcmFtZSkpOworICAgICAgICBwcmludGYoIiVzIC0gZGlkSGFuZGxl
T25sb2FkRXZlbnRzRm9yRnJhbWVcbiIsIGZyYW1lTmFtZS51dGY4KCkuZGF0YSgpKTsKKyAgICB9
Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uSW5zZWN1cmVDb250ZW50UnVuKHZv
aWQqLCBFdmFzX09iamVjdCosIHZvaWQqKQoreworICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVz
dENvbnRyb2xsZXItPmR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSkKKyAgICAgICAgcHJpbnRmKCJk
aWRSdW5JbnNlY3VyZUNvbnRlbnRcbiIpOworfQorCit2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21l
Ojpvbkluc2VjdXJlQ29udGVudERpc3BsYXllZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKikK
K3sKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wRnJhbWVMb2Fk
Q2FsbGJhY2tzKCkpCisgICAgICAgIHByaW50ZigiZGlkRGlzcGxheUluc2VjdXJlQ29udGVudFxu
Iik7Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uRnJhbWVDcmVhdGVkKHZvaWQq
LCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykKK3sKKyAgICBFdmFzX09iamVjdCogZnJh
bWUgPSBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGV2ZW50SW5mbyk7CisKKyAgICBldmFzX29i
amVjdF9zbWFydF9jYWxsYmFja19hZGQoZnJhbWUsICJsb2FkLHByb3Zpc2lvbmFsIiwgb25GcmFt
ZVByb3Zpc2lvbmFsTG9hZCwgMCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRk
KGZyYW1lLCAibG9hZCxjb21taXR0ZWQiLCBvbkZyYW1lTG9hZENvbW1pdHRlZCwgMCk7CisgICAg
ZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGZyYW1lLCAibG9hZCxmaW5pc2hlZCIsIG9u
RnJhbWVMb2FkRmluaXNoZWQsIDApOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2Fk
ZChmcmFtZSwgImxvYWQsZXJyb3IiLCBvbkZyYW1lTG9hZEVycm9yLCAwKTsKK30KKwordm9pZCBE
dW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZVByb3Zpc2lvbmFsTG9hZCh2b2lkKiwgRXZhc19P
YmplY3QqIGZyYW1lLCB2b2lkKikKK3sKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250
cm9sbGVyLT5kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgY29uc3QgU3RyaW5n
IGZyYW1lTmFtZShEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnN1aXRhYmxlRFJURnJhbWVOYW1l
KGZyYW1lKSk7CisgICAgICAgIHByaW50ZigiJXMgLSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZv
ckZyYW1lXG4iLCBmcmFtZU5hbWUudXRmOCgpLmRhdGEoKSk7CisgICAgfQorfQorCit2b2lkIER1
bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZyYW1lTG9hZENvbW1pdHRlZCh2b2lkKiwgRXZhc19PYmpl
Y3QqIGZyYW1lLCB2b2lkKikKK3sKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9s
bGVyLT5kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgY29uc3QgU3RyaW5nIGZy
YW1lTmFtZShEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnN1aXRhYmxlRFJURnJhbWVOYW1lKGZy
YW1lKSk7CisgICAgICAgIHByaW50ZigiJXMgLSBkaWRDb21taXRMb2FkRm9yRnJhbWVcbiIsIGZy
YW1lTmFtZS51dGY4KCkuZGF0YSgpKTsKKyAgICB9Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVD
aHJvbWU6Om9uRnJhbWVMb2FkRmluaXNoZWQodm9pZCosIEV2YXNfT2JqZWN0KiBmcmFtZSwgdm9p
ZCogZXZlbnRJbmZvKQoreworICAgIGNvbnN0IEV3a19GcmFtZV9Mb2FkX0Vycm9yKiBlcnJvciA9
IHN0YXRpY19jYXN0PEV3a19GcmFtZV9Mb2FkX0Vycm9yKj4oZXZlbnRJbmZvKTsKKworICAgIC8v
IEVGTCBwb3J0IGVtaXRzIGJvdGggImxvYWQsZmluaXNoZWQiIGFuZCAibG9hZCxlcnJvciIgc2ln
bmFscyBpbiBlcnJvciBjYXNlLgorICAgIC8vIEVycm9yIGNhc2UgaXMgdGhlcmVmb3JlIGFscmVh
ZHkgaGFuZGxlZCBpbiBvbkZyYW1lTG9hZEVycm9yKCkgYW5kIHdlIGRvbid0IG5lZWQKKyAgICAv
LyB0byBoYW5kbGUgaXQgaGVyZS4KKyAgICBpZiAoZXJyb3IpCisgICAgICAgIHJldHVybjsKKwor
ICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBGcmFtZUxvYWRDYWxs
YmFja3MoKSkgeworICAgICAgICBjb25zdCBTdHJpbmcgZnJhbWVOYW1lKER1bXBSZW5kZXJUcmVl
U3VwcG9ydEVmbDo6c3VpdGFibGVEUlRGcmFtZU5hbWUoZnJhbWUpKTsKKyAgICAgICAgcHJpbnRm
KCIlcyAtIGRpZEZpbmlzaExvYWRGb3JGcmFtZVxuIiwgZnJhbWVOYW1lLnV0ZjgoKS5kYXRhKCkp
OworICAgIH0KKworICAgIGlmIChmcmFtZSA9PSB0b3BMb2FkaW5nRnJhbWUpCisgICAgICAgIHRv
cExvYWRpbmdGcmFtZUxvYWRGaW5pc2hlZCgpOworfQorCit2b2lkIER1bXBSZW5kZXJUcmVlQ2hy
b21lOjpvbkZyYW1lTG9hZEVycm9yKHZvaWQqLCBFdmFzX09iamVjdCogZnJhbWUsIHZvaWQqKQor
eworICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBGcmFtZUxvYWRD
YWxsYmFja3MoKSkgeworICAgICAgICBjb25zdCBTdHJpbmcgZnJhbWVOYW1lKER1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbDo6c3VpdGFibGVEUlRGcmFtZU5hbWUoZnJhbWUpKTsKKyAgICAgICAgcHJp
bnRmKCIlcyAtIGRpZEZhaWxMb2FkV2l0aEVycm9yXG4iLCBmcmFtZU5hbWUudXRmOCgpLmRhdGEo
KSk7CisgICAgfQorCisgICAgaWYgKGZyYW1lID09IHRvcExvYWRpbmdGcmFtZSkKKyAgICAgICAg
dG9wTG9hZGluZ0ZyYW1lTG9hZEZpbmlzaGVkKCk7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuaCBiL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5oCmluZGV4IGUxNTZiNGQuLmE1MTEyY2EgMTAw
NjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5o
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5oCkBA
IC02OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAKICAgICBzdGF0aWMgRWluYV9Cb29sIHByb2Nlc3NX
b3JrKHZvaWQqKTsKIAotICAgIHN0YXRpYyB2b2lkIG9uTG9hZEZpbmlzaGVkKHZvaWQqLCBFdmFz
X09iamVjdCosIHZvaWQqKTsKKyAgICBzdGF0aWMgdm9pZCB0b3BMb2FkaW5nRnJhbWVMb2FkRmlu
aXNoZWQoKTsKIAogICAgIHN0YXRpYyB2b2lkIG9uU3RhdHVzYmFyVGV4dFNldCh2b2lkKiwgRXZh
c19PYmplY3QqLCB2b2lkKik7CiAKQEAgLTc3LDYgKzc3LDIyIEBAIHByaXZhdGU6CiAgICAgc3Rh
dGljIHZvaWQgb25Eb2N1bWVudExvYWRGaW5pc2hlZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lk
Kik7CiAKICAgICBzdGF0aWMgdm9pZCBvbldpbGxTZW5kUmVxdWVzdCh2b2lkKiwgRXZhc19PYmpl
Y3QqLCB2b2lkKik7CisKKyAgICBzdGF0aWMgdm9pZCBvbldlYlZpZXdPbmxvYWRFdmVudCh2b2lk
KiwgRXZhc19PYmplY3QqLCB2b2lkKik7CisKKyAgICBzdGF0aWMgdm9pZCBvbkluc2VjdXJlQ29u
dGVudFJ1bih2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKik7CisKKyAgICBzdGF0aWMgdm9pZCBv
bkluc2VjdXJlQ29udGVudERpc3BsYXllZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKik7CisK
KyAgICBzdGF0aWMgdm9pZCBvbkZyYW1lQ3JlYXRlZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lk
Kik7CisKKyAgICBzdGF0aWMgdm9pZCBvbkZyYW1lUHJvdmlzaW9uYWxMb2FkKHZvaWQqLCBFdmFz
X09iamVjdCosIHZvaWQqKTsKKworICAgIHN0YXRpYyB2b2lkIG9uRnJhbWVMb2FkQ29tbWl0dGVk
KHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKTsKKworICAgIHN0YXRpYyB2b2lkIG9uRnJhbWVM
b2FkRmluaXNoZWQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopOworCisgICAgc3RhdGljIHZv
aWQgb25GcmFtZUxvYWRFcnJvcih2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKik7CiB9OwogCiAj
ZW5kaWYgLy8gRHVtcFJlbmRlclRyZWVDaHJvbWVfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137484</attachid>
            <date>2012-04-16 23:36:45 -0700</date>
            <delta_ts>2012-04-17 07:24:12 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>83030_dumpFrameLoadCallbacks_a.patch</filename>
            <type>text/plain</type>
            <size>20354</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA2NzJhODE1Li43NjI5NTdlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDQt
MTcgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBbRUZMXSBEUlQgc2hvdWxkIHN1cHBvcnQgTGF5b3V0VGVzdENvbnRyb2xsZXIncyBkdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgzMDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgVW5za2lwIHRoZSB0ZXN0IGNhc2VzIGluIEVGTCB3aGljaCBuZWVkZWQgZHVt
cEZyYW1lTG9hZENhbGxiYWNrcygpCisgICAgICAgIHN1cHBvcnQgaW4gdGhlIER1bXBSZW5kZXJU
cmVlIG5vdyB0aGF0IGl0IGlzIGltcGxlbWVudGVkLgorCisgICAgICAgICogcGxhdGZvcm0vZWZs
L1NraXBwZWQ6CisKIDIwMTItMDQtMTYgIERhdmlkIEJhcnIgIDxkYXZpZGJhcnJAY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFN0YWNrIG92ZXJmbG93IGluIENTUyBwYXJzZXIgY2F1c2VkIGJ5IHJl
Y3Vyc2l2ZSBzdHlsZXNoZWV0IGltcG9ydApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZWZsL1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZAppbmRleCAy
MTJlMDY5Li5iZjg1OTkxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tp
cHBlZAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZApAQCAtMTE2Myw3ICsx
MTYzLDYgQEAgaHR0cC90ZXN0cy9oaXN0b3J5L2JhY2std2l0aC1mcmFnbWVudC1jaGFuZ2UucGhw
CiAjIEZhaWxpbmcgaHR0cCB0ZXN0cyAodmlhIEdUSyspCiBodHRwL3Rlc3RzL2xvYWRpbmcvYmFk
LXNjaGVtZS1zdWJmcmFtZS5odG1sCiBodHRwL3Rlc3RzL2xvYWRpbmcvYmFkLXNlcnZlci1zdWJm
cmFtZS5odG1sCi1odHRwL3Rlc3RzL2xvYWRpbmcvZ21haWwtYXNzZXJ0LW9uLWxvYWQuaHRtbAog
aHR0cC90ZXN0cy9sb2FkaW5nL3JlZGlyZWN0LXdpdGgtbm8tbG9jYXRpb24tY3Jhc2guaHRtbAog
aHR0cC90ZXN0cy9sb2FkaW5nL3RleHQtY29udGVudC10eXBlLXdpdGgtYmluYXJ5LWV4dGVuc2lv
bi5odG1sCiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLXBsYXktc3RhbGwtc2Vlay5odG1sCkBAIC0x
MzY4LDcgKzEzNjcsNiBAQCBmYXN0L2h0bWwvZGV0YWlscy1tb3VzZS1jbGljay5odG1sCiBmYXN0
L2h0bWwvdGFiLW9yZGVyLmh0bWwKIGZhc3QvaW5saW5lL3NraXBwZWQtd2hpdGVzcGFjZS1ib3Vu
ZGluZ0JveC5odG1sCiBmYXN0L2xvYWRlci9mcmFnbWVudC1hZnRlci1yZWRpcmVjdC1nZXRzLWJh
Y2stZW50cnkuaHRtbAotZmFzdC9sb2FkZXIvc3ViZnJhbWUtcmVtb3Zlcy1pdHNlbGYuaHRtbAog
ZmFzdC9tdWx0aWNvbC9jbGllbnQtcmVjdHMuaHRtbAogZmFzdC9tdWx0aWNvbC9zaW5nbGUtbGlu
ZS5odG1sCiBmYXN0L292ZXJmbG93L292ZXJmbG93LXktc2Nyb2xsLmh0bWwKQEAgLTIzMzUsNyAr
MjMzMyw2IEBAIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2Fib3V0LWJsYW5rLWlm
cmFtZS1pbi1tYWluLWZyYW1lLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50
L2RhdGEtdXJsLWlmcmFtZS1pbi1tYWluLWZyYW1lLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkv
bWl4ZWRDb250ZW50L2RhdGEtdXJsLXNjcmlwdC1pbi1pZnJhbWUuaHRtbAogaHR0cC90ZXN0cy9z
ZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtY3NzLWluLWlmcmFtZS5odG1sCi1odHRwL3Rl
c3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1jc3MtaW4tbWFpbi1mcmFtZS5odG1s
CiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1pZnJhbWUtaW4taWZy
YW1lLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWlmcmFt
ZS1pbi1tYWluLWZyYW1lLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2lu
c2VjdXJlLWltYWdlLWluLWlmcmFtZS5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Vm
bC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggY2JkYmUwNC4u
ZDEyNTJjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA0LTE3ICBD
aHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CisKKyAgICAgICAg
W0VGTF0gRFJUIHNob3VsZCBzdXBwb3J0IExheW91dFRlc3RDb250cm9sbGVyJ3MgZHVtcEZyYW1l
TG9hZENhbGxiYWNrcygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD04MzAzMAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIEVtaXQgImxvYWQsc3RhcnRlZCIgYW5kICJvbmxvYWQsZXZlbnQiIHNpZ25hbHMgbmVl
ZGVkIHRvIHN1cHBvcnQgCisgICAgICAgIExheW91dFRlc3RDb250cm9sbGVyJ3MgZHVtcEZyYW1l
TG9hZENhbGxiYWNrcygpIGluIEVGTCdzIER1bXBSZW5kZXJUcmVlLiAKKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEhhbmRsZU9ubG9hZEV2ZW50cyk6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRDb21taXRM
b2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERp
ZEZhaWxMb2FkKToKKyAgICAgICAgKiBld2svZXdrX2ZyYW1lLmNwcDoKKyAgICAgICAgKGV3a19m
cmFtZV9sb2FkX2NvbW1pdHRlZCk6CisgICAgICAgIChld2tfZnJhbWVfbG9hZF9zdGFydGVkKToK
KyAgICAgICAgKiBld2svZXdrX2ZyYW1lLmg6CisgICAgICAgICogZXdrL2V3a19wcml2YXRlLmg6
CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAgKF9Fd2tfVmlld19Qcml2YXRl
X0RhdGEpOgorICAgICAgICAoZXdrX3ZpZXdfbG9hZF9zdGFydGVkKToKKyAgICAgICAgKGV3a192
aWV3X29ubG9hZF9ldmVudCk6CisgICAgICAgICogZXdrL2V3a192aWV3Lmg6CisKIDIwMTItMDQt
MTMgIFRoaWFnbyBNYXJjb3MgUC4gU2FudG9zICA8dGhpYWdvLnNhbnRvc0BpbnRlbC5jb20+CiAK
ICAgICAgICAgW0VGTF0gQWRkIEFQSSBmb3IgY29sb3IgY2hvb3NlcgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwIGIv
U291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3Bw
CmluZGV4IDkzNTE4MjkuLjY3OGNkYTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5jcHAKQEAgLTU0NCw3ICs1
NDQsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpsb2FkZWRGcm9tQ2FjaGVkUGFnZSgp
CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkSGFuZGxlT25sb2FkRXZl
bnRzKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGV3a192aWV3X29ubG9hZF9ldmVu
dChtX3ZpZXcsIG1fZnJhbWUpOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNw
YXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lvbmFsTG9hZCgpCkBAIC02MTEs
NiArNjExLDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRDaGFuZ2VJ
Y29ucyhXZWJDb3JlOjpJY29uVHlwZSkKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3Bh
dGNoRGlkQ29tbWl0TG9hZCgpCiB7CiAgICAgZXdrX2ZyYW1lX3VyaV9jaGFuZ2VkKG1fZnJhbWUp
OworICAgIGV3a19mcmFtZV9sb2FkX2NvbW1pdHRlZChtX2ZyYW1lKTsKICAgICBpZiAoZXdrX3Zp
ZXdfZnJhbWVfbWFpbl9nZXQobV92aWV3KSAhPSBtX2ZyYW1lKQogICAgICAgICByZXR1cm47CiAg
ICAgZXdrX3ZpZXdfdGl0bGVfc2V0KG1fdmlldywgMCk7CkBAIC03NjEsOSArNzYyLDYgQEAgdm9p
ZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRGYWlsUHJvdmlzaW9uYWxMb2FkKGNv
bnN0IFJlc291cmNlRXJyb3ImIGUKIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0
Y2hEaWRGYWlsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnIpCiB7Ci0gICAgaWYgKCFzaG91
bGRGYWxsQmFjayhlcnIpKQotICAgICAgICByZXR1cm47Ci0KICAgICBtX2xvYWRFcnJvciA9IGVy
cjsKICAgICBld2tfZnJhbWVfbG9hZF9lcnJvcihtX2ZyYW1lLAogICAgICAgICAgICAgICAgICAg
ICAgICAgIG1fbG9hZEVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfZnJhbWUuY3BwCmluZGV4IGVmY2E4NmMuLjhlMDc3OTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3
ay9ld2tfZnJhbWUuY3BwCkBAIC0xMjYxLDYgKzEyNjEsMTcgQEAgdm9pZCBld2tfZnJhbWVfdmll
d19zdGF0ZV9zYXZlKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgV2ViQ29yZTo6SGlzdG9yeUl0ZW0q
IGl0ZW0KIAogLyoqCiAgKiBAaW50ZXJuYWwKKyAqIFJlcG9ydHMgdGhlIGZyYW1lIGNvbW1pdHRl
ZCBsb2FkLgorICoKKyAqIEVtaXRzIHNpZ25hbDogImxvYWQsY29tbWl0dGVkIiB3aXRoIG5vIHBh
cmFtZXRlcnMuCisgKi8KK3ZvaWQgZXdrX2ZyYW1lX2xvYWRfY29tbWl0dGVkKEV2YXNfT2JqZWN0
KiBld2tGcmFtZSkKK3sKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a0Zy
YW1lLCAibG9hZCxjb21taXR0ZWQiLCAwKTsKK30KKworLyoqCisgKiBAaW50ZXJuYWwKICAqIFJl
cG9ydHMgdGhlIGZyYW1lIHN0YXJ0ZWQgbG9hZGluZyBzb21ldGhpbmcuCiAgKgogICogRW1pdHMg
c2lnbmFsOiAibG9hZCxzdGFydGVkIiB3aXRoIG5vIHBhcmFtZXRlcnMuCkBAIC0xMjcxLDcgKzEy
ODIsNyBAQCB2b2lkIGV3a19mcmFtZV9sb2FkX3N0YXJ0ZWQoRXZhc19PYmplY3QqIGV3a0ZyYW1l
KQogICAgIERCRygiZXdrRnJhbWU9JXAiLCBld2tGcmFtZSk7CiAgICAgZXZhc19vYmplY3Rfc21h
cnRfY2FsbGJhY2tfY2FsbChld2tGcmFtZSwgImxvYWQsc3RhcnRlZCIsIDApOwogICAgIEVXS19G
UkFNRV9TRF9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBzbWFydERhdGEpOwotICAgIGV3a192aWV3
X2xvYWRfc3RhcnRlZChzbWFydERhdGEtPnZpZXcpOworICAgIGV3a192aWV3X2xvYWRfc3RhcnRl
ZChzbWFydERhdGEtPnZpZXcsIGV3a0ZyYW1lKTsKIAogICAgIG1haW5GcmFtZSA9IGV3a192aWV3
X2ZyYW1lX21haW5fZ2V0KHNtYXJ0RGF0YS0+dmlldyk7CiAgICAgaWYgKG1haW5GcmFtZSA9PSBl
d2tGcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaCBi
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaAppbmRleCA5NDI0MjhjLi5kZDNhOGQz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmgKKysrIGIvU291
cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oCkBAIC0zOSw2ICszOSw3IEBACiAgKiAgICAg
d2VyZSBjaGFuZ2VkIGR1ZSBuZXcgbGF5b3V0LCBzY3JpcHQgYWN0aW9ucyBvciBhbnkgb3RoZXIg
ZXZlbnRzLgogICogIC0gImVkaXRvcmNsaWVudCxjb250ZW50cyxjaGFuZ2VkIiwgdm9pZDogcmVw
b3J0cyB0aGF0IGVkaXRvciBjbGllbnQncwogICogICAgY29udGVudHMgd2VyZSBjaGFuZ2VkCisg
KiAgLSAibG9hZCxjb21taXR0ZWQiLCB2b2lkOiByZXBvcnRzIGxvYWQgY29tbWl0dGVkLgogICog
IC0gImxvYWQsZG9jdW1lbnQsZmluaXNoZWQiLCB2b2lkOiBmcmFtZSBmaW5pc2hlZCBsb2FkaW5n
IHRoZSBkb2N1bWVudC4KICAqICAtICJsb2FkLGVycm9yIiwgY29uc3QgRXdrX0ZyYW1lX0xvYWRf
RXJyb3IqOiByZXBvcnRzIGxvYWQgZmFpbGVkCiAgKiAgICBhbmQgaXQgZ2l2ZXMgYSBwb2ludGVy
IHRvIHN0cnVjdHVyZSBkZWZpbmluZyB0aGUgZXJyb3IgYXMgYW4gYXJndW1lbnQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCmluZGV4IDk2ZmE3NTMuLmRmY2MwMTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCkBAIC0xMDksNyArMTA5LDcgQEAgdm9pZCBld2tfdmlld19p
bnB1dF9tZXRob2Rfc3RhdGVfc2V0KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBib29sIGFjdGl2ZSk7
CiB2b2lkIGV3a192aWV3X3RpdGxlX3NldChFdmFzX09iamVjdCogZXdrVmlldywgY29uc3QgY2hh
ciogdGl0bGUpOwogdm9pZCBld2tfdmlld191cmlfY2hhbmdlZChFdmFzX09iamVjdCogZXdrVmll
dyk7CiB2b2lkIGV3a192aWV3X2xvYWRfZG9jdW1lbnRfZmluaXNoZWQoRXZhc19PYmplY3QqIGV3
a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSk7Ci12b2lkIGV3a192aWV3X2xvYWRfc3RhcnRlZChF
dmFzX09iamVjdCogZXdrVmlldyk7Cit2b2lkIGV3a192aWV3X2xvYWRfc3RhcnRlZChFdmFzX09i
amVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKIHZvaWQgZXdrX3ZpZXdfbG9h
ZF9wcm92aXNpb25hbChFdmFzX09iamVjdCogZXdrVmlldyk7CiB2b2lkIGV3a192aWV3X2ZyYW1l
X21haW5fbG9hZF9zdGFydGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKIHZvaWQgZXdrX3ZpZXdf
ZnJhbWVfbWFpbl9jbGVhcmVkKEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKQEAgLTExOCw2ICsxMTgs
NyBAQCB2b2lkIGV3a192aWV3X2xvYWRfZmluaXNoZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNv
bnN0IEV3a19GcmFtZV9Mb2FkX0Vycm9yKiBlcgogdm9pZCBld2tfdmlld19sb2FkX2Vycm9yKEV2
YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFd2tfRnJhbWVfTG9hZF9FcnJvciogZXJyb3IpOwog
dm9pZCBld2tfdmlld19sb2FkX3Byb2dyZXNzX2NoYW5nZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcp
Owogdm9pZCBld2tfdmlld19sb2FkX3Nob3coRXZhc19PYmplY3QqIGV3a1ZpZXcpOwordm9pZCBl
d2tfdmlld19vbmxvYWRfZXZlbnQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBm
cmFtZSk7CiB2b2lkIGV3a192aWV3X3Jlc3RvcmVfc3RhdGUoRXZhc19PYmplY3QqIGV3a1ZpZXcs
IEV2YXNfT2JqZWN0KiBmcmFtZSk7CiBFdmFzX09iamVjdCogZXdrX3ZpZXdfd2luZG93X2NyZWF0
ZShFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBqYXZhc2NyaXB0LCBjb25zdCBXZWJDb3JlOjpX
aW5kb3dGZWF0dXJlcyogY29yZUZlYXR1cmVzKTsKIHZvaWQgZXdrX3ZpZXdfd2luZG93X2Nsb3Nl
KEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKQEAgLTIxMSw2ICsyMTIsNyBAQCB2b2lkIGV3a19mcmFt
ZV92aWV3X3NldChFdmFzX09iamVjdCogZXdrRnJhbWUsIEV2YXNfT2JqZWN0KiBuZXdQYXJlbnQp
OwogCiB2b2lkIGV3a19mcmFtZV9jb3JlX2dvbmUoRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKIAor
dm9pZCBld2tfZnJhbWVfbG9hZF9jb21taXR0ZWQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKIHZv
aWQgZXdrX2ZyYW1lX2xvYWRfc3RhcnRlZChFdmFzX09iamVjdCogZXdrRnJhbWUpOwogdm9pZCBl
d2tfZnJhbWVfbG9hZF9wcm92aXNpb25hbChFdmFzX09iamVjdCogZXdrRnJhbWUpOwogdm9pZCBl
d2tfZnJhbWVfbG9hZF9maXJzdGxheW91dF9maW5pc2hlZChFdmFzX09iamVjdCogZXdrRnJhbWUp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggYzY1YWNhYi4uOWJkMTA2MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuY3BwCkBAIC0yODEzLDEzICsyODEzLDE0IEBAIHZvaWQg
ZXdrX3ZpZXdfbG9hZF9kb2N1bWVudF9maW5pc2hlZChFdmFzX09iamVjdCogZXdrVmlldywgRXZh
c19PYmplY3QqIGZyYW1lKQogICogUmVwb3J0cyB0aGUgdmlldyBzdGFydGVkIGxvYWRpbmcgc29t
ZXRoaW5nLgogICoKICAqIEBwYXJhbSBld2tWaWV3IFZpZXcuCisgKiBAcGFyYW0gZXdrRnJhbWUg
RnJhbWUgYmVpbmcgbG9hZGVkLgogICoKICAqIEVtaXRzIHNpZ25hbDogImxvYWQsc3RhcnRlZCIg
d2l0aCBubyBwYXJhbWV0ZXJzLgogICovCi12b2lkIGV3a192aWV3X2xvYWRfc3RhcnRlZChFdmFz
X09iamVjdCogZXdrVmlldykKK3ZvaWQgZXdrX3ZpZXdfbG9hZF9zdGFydGVkKEV2YXNfT2JqZWN0
KiBld2tWaWV3LCBFdmFzX09iamVjdCogZXdrRnJhbWUpCiB7Ci0gICAgREJHKCJld2tWaWV3PSVw
IiwgZXdrVmlldyk7Ci0gICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tWaWV3
LCAibG9hZCxzdGFydGVkIiwgMCk7CisgICAgREJHKCJld2tWaWV3PSVwLCBld2tGcmFtZT0lcCIs
IGV3a1ZpZXcsIGV3a0ZyYW1lKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxs
KGV3a1ZpZXcsICJsb2FkLHN0YXJ0ZWQiLCBld2tGcmFtZSk7CiB9CiAKIC8qKgpAQCAtMjg2NCw2
ICsyODY1LDE5IEBAIHZvaWQgZXdrX3ZpZXdfbG9hZF9zaG93KEV2YXNfT2JqZWN0KiBld2tWaWV3
KQogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwoZXdrVmlldywgImxvYWQsbmV3
d2luZG93LHNob3ciLCAwKTsKIH0KIAorLyoqCisgKiBAaW50ZXJuYWwKKyAqIFJlcG9ydHMgYW4g
b25sb2FkIGV2ZW50IGZvciBAcCBmcmFtZS4KKyAqCisgKiBAcGFyYW0gZXdrVmlldyBWaWV3IHdo
aWNoIGNvbnRhaW5zIHRoZSBmcmFtZS4KKyAqIEBwYXJhbSBmcmFtZSBUaGUgZnJhbWUgd2hvc2Ug
b25sb2FkIGV2ZW50IHdhcyByZWNlaXZlZC4KKyAqCisgKiBFbWl0cyBzaWduYWw6ICJvbmxvYWQs
ZXZlbnQiIHdpdGggQHAgZnJhbWUgYXMgdGhlIHBhcmFtZXRlci4KKyAqLwordm9pZCBld2tfdmll
d19vbmxvYWRfZXZlbnQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSkK
K3sKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxsKGV3a1ZpZXcsICJvbmxvYWQs
ZXZlbnQiLCBmcmFtZSk7Cit9CiAKIC8qKgogICogQGludGVybmFsCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlldy5oCmluZGV4IDM3NDM4OTguLjgyM2E4ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
ZWZsL2V3ay9ld2tfdmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5o
CkBAIC02MCwxMiArNjAsMTMgQEAKICAqICAtICJsb2FkLHByb2dyZXNzIiwgZG91YmxlKjogbG9h
ZCBwcm9ncmVzcyBpcyBjaGFuZ2VkIChvdmVyYWxsIHZhbHVlCiAgKiAgICBmcm9tIDAuMCB0byAx
LjAsIGNvbm5lY3QgdG8gaW5kaXZpZHVhbCBmcmFtZXMgZm9yIGZpbmUgZ3JhaW5lZCkuCiAgKiAg
LSAibG9hZCxwcm92aXNpb25hbCIsIHZvaWQ6IHZpZXcgc3RhcnRlZCBwcm92aXNpb25hbCBsb2Fk
LgotICogIC0gImxvYWQsc3RhcnRlZCIsIHZvaWQ6IGZyYW1lIHN0YXJ0ZWQgbG9hZGluZyB0aGUg
ZG9jdW1lbnQuCisgKiAgLSAibG9hZCxzdGFydGVkIiwgRXZhc19PYmplY3QqOiBmcmFtZSBzdGFy
dGVkIGxvYWRpbmcgdGhlIGRvY3VtZW50LgogICogIC0gIm1lbnViYXIsdmlzaWJsZSxnZXQiLCBF
aW5hX0Jvb2wgKjogZXhwZWN0cyBhIEBjIEVJTkFfVFJVRSBpZiBtZW51YmFyIGlzCiAgKiAgICB2
aXNpYmxlOyBAYyBFSU5BX0ZBTFNFLCBvdGhlcndpc2UuCiAgKiAgLSAibWVudWJhcix2aXNpYmxl
LHNldCIsIEVpbmFfQm9vbDogc2V0cyBtZW51YmFyIHZpc2liaWxpdHkuCiAgKiAgLSAibWl4ZWRj
b250ZW50LGRpc3BsYXllZCIsIHZvaWQ6IGFueSBvZiB0aGUgY29udGFpbmluZyBmcmFtZXMgaGFz
IGxvYWRlZCBhbmQgZGlzcGxheWVkIG1peGVkIGNvbnRlbnQuCiAgKiAgLSAibWl4ZWRjb250ZW50
LHJ1biIsIHZvaWQ6IGFueSBvZiB0aGUgY29udGFpbmluZyBmcmFtZXMgaGFzIGxvYWRlZCBhbmQg
cnVuIG1peGVkIGNvbnRlbnQuCisgKiAgLSAib25sb2FkLGV2ZW50IiwgRXZhc19PYmplY3QqOiBh
IGZyYW1lIG9ubG9hZCBldmVudCBoYXMgYmVlbiByZWNlaXZlZC4KICAqICAtICJyZWFkeSIsIHZv
aWQ6IHBhZ2UgaXMgZnVsbHkgbG9hZGVkLgogICogIC0gInJlc291cmNlLHJlcXVlc3Qsd2lsbHNl
bmQiLCBFd2tfRnJhbWVfUmVzb3VyY2VfUmVxdWVzdCo6IGEgcmVzb3VyY2Ugd2lsbAogICogICAg
YmUgcmVxdWVzdGVkLgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDIyMjc2YmUuLmMxMTYwODQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMCBAQAorMjAxMi0wNC0xNyAgQ2hyaXN0
b3BoZSBEdW1leiAgPGNocmlzdG9waGUuZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxd
IERSVCBzaG91bGQgc3VwcG9ydCBMYXlvdXRUZXN0Q29udHJvbGxlcidzIGR1bXBGcmFtZUxvYWRD
YWxsYmFja3MoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9ODMwMzAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgTGF5b3V0VGVzdENvbnRyb2xsZXIncyBkdW1wRnJhbWVM
b2FkQ2FsbGJhY2tzKCkKKyAgICAgICAgaW4gRUZMJ3MgRHVtcFJlbmRlclRyZWUuIE1ha2UgdXNl
IG9mIHRoZSBuZXcgZnJhbWUgYXJndW1lbnQgcGFzc2VkIHRvCisgICAgICAgIHRoZSAibG9hZCxz
dGFydGVkIiBhbmQgImxvYWQsZmluaXNoZWQiIHNpZ25hbHMuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwOgorICAgICAgICAoRHVtcFJlbmRl
clRyZWVDaHJvbWU6OmNyZWF0ZVZpZXcpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6
Om9uTG9hZFN0YXJ0ZWQpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6OnByb2Nlc3NX
b3JrKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjp0b3BMb2FkaW5nRnJhbWVMb2Fk
RmluaXNoZWQpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uV2ViVmlld09ubG9h
ZEV2ZW50KToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkluc2VjdXJlQ29udGVu
dFJ1bik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25JbnNlY3VyZUNvbnRlbnRE
aXNwbGF5ZWQpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uRnJhbWVDcmVhdGVk
KToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZyYW1lUHJvdmlzaW9uYWxMb2Fk
KToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZyYW1lTG9hZENvbW1pdHRlZCk6
CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZUxvYWRGaW5pc2hlZCk6Cisg
ICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZUxvYWRFcnJvcik6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmg6CisgICAgICAgIChE
dW1wUmVuZGVyVHJlZUNocm9tZSk6CisKIDIwMTItMDQtMTYgIEd1c3Rhdm8gTm9yb25oYSBTaWx2
YSAgPGduc0Bnbm9tZS5vcmc+CiAKICAgICAgICAgW0dUS10gVXNlIGNvbmZpZ3VyZSBpbnN0ZWFk
IG9mIGF1dG9nZW4uc2ggZm9yIGd0aysKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwv
RHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwCmluZGV4IGIzOWUxMjUuLmRmMzJhYjIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAKKysr
IGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcApAQCAt
OTAsMTIgKzkwLDIxIEBAIEV2YXNfT2JqZWN0KiBEdW1wUmVuZGVyVHJlZUNocm9tZTo6Y3JlYXRl
VmlldygpIGNvbnN0CiAgICAgZXdrX3ZpZXdfdGhlbWVfc2V0KHZpZXcsIERBVEFfRElSIi9kZWZh
dWx0LmVkaiIpOwogCiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHZpZXcsICJs
b2FkLHN0YXJ0ZWQiLCBvbkxvYWRTdGFydGVkLCAwKTsKLSAgICBldmFzX29iamVjdF9zbWFydF9j
YWxsYmFja19hZGQodmlldywgImxvYWQsZmluaXNoZWQiLCBvbkxvYWRGaW5pc2hlZCwgMCk7CiAg
ICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHZpZXcsICJ0aXRsZSxjaGFuZ2VkIiwg
b25UaXRsZUNoYW5nZWQsIDApOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2
aWV3LCAid2luZG93LG9iamVjdCxjbGVhcmVkIiwgb25XaW5kb3dPYmplY3RDbGVhcmVkLCBtX2dj
Q29udHJvbGxlci5nZXQoKSk7CiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHZp
ZXcsICJzdGF0dXNiYXIsdGV4dCxzZXQiLCBvblN0YXR1c2JhclRleHRTZXQsIDApOwogICAgIGV2
YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2aWV3LCAibG9hZCxkb2N1bWVudCxmaW5pc2hl
ZCIsIG9uRG9jdW1lbnRMb2FkRmluaXNoZWQsIDApOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2Nh
bGxiYWNrX2FkZCh2aWV3LCAicmVzb3VyY2UscmVxdWVzdCx3aWxsc2VuZCIsIG9uV2lsbFNlbmRS
ZXF1ZXN0LCAwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQodmlldywgIm9u
bG9hZCxldmVudCIsIG9uV2ViVmlld09ubG9hZEV2ZW50LCAwKTsKKyAgICBldmFzX29iamVjdF9z
bWFydF9jYWxsYmFja19hZGQodmlldywgIm1peGVkY29udGVudCxydW4iLCBvbkluc2VjdXJlQ29u
dGVudFJ1biwgMCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHZpZXcsICJt
aXhlZGNvbnRlbnQsZGlzcGxheWVkIiwgb25JbnNlY3VyZUNvbnRlbnREaXNwbGF5ZWQsIDApOwor
ICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2aWV3LCAiZnJhbWUsY3JlYXRlZCIs
IG9uRnJhbWVDcmVhdGVkLCAwKTsKKworICAgIEV2YXNfT2JqZWN0KiBtYWluRnJhbWUgPSBld2tf
dmlld19mcmFtZV9tYWluX2dldCh2aWV3KTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFj
a19hZGQobWFpbkZyYW1lLCAibG9hZCxwcm92aXNpb25hbCIsIG9uRnJhbWVQcm92aXNpb25hbExv
YWQsIDApOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChtYWluRnJhbWUsICJs
b2FkLGNvbW1pdHRlZCIsIG9uRnJhbWVMb2FkQ29tbWl0dGVkLCAwKTsKKyAgICBldmFzX29iamVj
dF9zbWFydF9jYWxsYmFja19hZGQobWFpbkZyYW1lLCAibG9hZCxmaW5pc2hlZCIsIG9uRnJhbWVM
b2FkRmluaXNoZWQsIDApOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChtYWlu
RnJhbWUsICJsb2FkLGVycm9yIiwgb25GcmFtZUxvYWRFcnJvciwgMCk7CiAKICAgICByZXR1cm4g
dmlldzsKIH0KQEAgLTIyMCwxMCArMjI5LDkgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6
b25XaW5kb3dPYmplY3RDbGVhcmVkKHZvaWQqIHVzZXJEYXRhLCBFdmFzX09iamVjdCosIHYKICAg
ICBXZWJDb3JlVGVzdFN1cHBvcnQ6OmluamVjdEludGVybmFsc09iamVjdChvYmplY3RDbGVhcmVk
SW5mby0+Y29udGV4dCk7CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uTG9hZFN0
YXJ0ZWQodm9pZCosIEV2YXNfT2JqZWN0KiB2aWV3LCB2b2lkKikKK3ZvaWQgRHVtcFJlbmRlclRy
ZWVDaHJvbWU6Om9uTG9hZFN0YXJ0ZWQodm9pZCosIEV2YXNfT2JqZWN0KiB2aWV3LCB2b2lkKiBl
dmVudEluZm8pCiB7Ci0gICAgLy8gRklYTUU6IHdlIGFjdHVhbGx5IG5lZWQgdGhlIGZyYW1lIHJl
bGF0ZWQgdG8gdGhpcyBldmVudAotICAgIEV2YXNfT2JqZWN0KiBmcmFtZSA9IGV3a192aWV3X2Zy
YW1lX21haW5fZ2V0KHZpZXcpOworICAgIEV2YXNfT2JqZWN0KiBmcmFtZSA9IHN0YXRpY19jYXN0
PEV2YXNfT2JqZWN0Kj4oZXZlbnRJbmZvKTsKIAogICAgIC8vIE1ha2Ugc3VyZSB3ZSBvbmx5IHNl
dCB0aGlzIG9uY2UgcGVyIHRlc3QuIElmIGl0IGdldHMgY2xlYXJlZCwgYW5kIHRoZW4gc2V0IGFn
YWluLCB3ZSBtaWdodAogICAgIC8vIGVuZCB1cCBkb2luZyB0d28gZHVtcHMgZm9yIG9uZSB0ZXN0
LgpAQCAtMjMzLDIyICsyNDEsMTQgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25Mb2Fk
U3RhcnRlZCh2b2lkKiwgRXZhc19PYmplY3QqIHZpZXcsIHZvaWQqKQogCiBFaW5hX0Jvb2wgRHVt
cFJlbmRlclRyZWVDaHJvbWU6OnByb2Nlc3NXb3JrKHZvaWQqIGRhdGEpCiB7Ci0gICAgRXZhc19P
YmplY3QqIGZyYW1lID0gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihkYXRhKTsKLQogICAgIGlm
IChXb3JrUXVldWU6OnNoYXJlZCgpLT5wcm9jZXNzV29yaygpICYmICFnTGF5b3V0VGVzdENvbnRy
b2xsZXItPndhaXRUb0R1bXAoKSkKICAgICAgICAgZHVtcCgpOwogCiAgICAgcmV0dXJuIEVDT1JF
X0NBTExCQUNLX0NBTkNFTDsKIH0KIAotdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25Mb2Fk
RmluaXNoZWQodm9pZCosIEV2YXNfT2JqZWN0KiB2aWV3LCB2b2lkKikKK3ZvaWQgRHVtcFJlbmRl
clRyZWVDaHJvbWU6OnRvcExvYWRpbmdGcmFtZUxvYWRGaW5pc2hlZCgpCiB7Ci0gICAgLy8gRklY
TUU6IHdlIGFjdHVhbGx5IG5lZWQgdGhlIGZyYW1lIHJlbGF0ZWQgdG8gdGhpcyBldmVudAotICAg
IEV2YXNfT2JqZWN0KiBmcmFtZSA9IGV3a192aWV3X2ZyYW1lX21haW5fZ2V0KHZpZXcpOwotCi0g
ICAgaWYgKHRvcExvYWRpbmdGcmFtZSAhPSBmcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAg
dG9wTG9hZGluZ0ZyYW1lID0gMDsKIAogICAgIFdvcmtRdWV1ZTo6c2hhcmVkKCktPnNldEZyb3pl
bih0cnVlKTsKQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpv
bkxvYWRGaW5pc2hlZCh2b2lkKiwgRXZhc19PYmplY3QqIHZpZXcsIHZvaWQqKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBpZiAoV29ya1F1ZXVlOjpzaGFyZWQoKS0+Y291bnQoKSkKLSAgICAgICAg
ZWNvcmVfaWRsZXJfYWRkKHByb2Nlc3NXb3JrLCBmcmFtZSk7CisgICAgICAgIGVjb3JlX2lkbGVy
X2FkZChwcm9jZXNzV29yaywgMCk7CiAgICAgZWxzZQogICAgICAgICBkdW1wKCk7CiB9CkBAIC0z
MTQsMyArMzE0LDgxIEBAIHZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uV2lsbFNlbmRSZXF1
ZXN0KHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mCiAgICAgICAgIHJlcXVlc3Qt
PnVybCA9IDA7CiAgICAgfQogfQorCit2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbldlYlZp
ZXdPbmxvYWRFdmVudCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pCit7Cisg
ICAgY29uc3QgRXZhc19PYmplY3QqIGZyYW1lID0gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihl
dmVudEluZm8pOworCisgICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVt
cEZyYW1lTG9hZENhbGxiYWNrcygpKSB7CisgICAgICAgIGNvbnN0IFN0cmluZyBmcmFtZU5hbWUo
RHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzdWl0YWJsZURSVEZyYW1lTmFtZShmcmFtZSkpOwor
ICAgICAgICBwcmludGYoIiVzIC0gZGlkSGFuZGxlT25sb2FkRXZlbnRzRm9yRnJhbWVcbiIsIGZy
YW1lTmFtZS51dGY4KCkuZGF0YSgpKTsKKyAgICB9Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVD
aHJvbWU6Om9uSW5zZWN1cmVDb250ZW50UnVuKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKQor
eworICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBGcmFtZUxvYWRD
YWxsYmFja3MoKSkKKyAgICAgICAgcHJpbnRmKCJkaWRSdW5JbnNlY3VyZUNvbnRlbnRcbiIpOwor
fQorCit2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkluc2VjdXJlQ29udGVudERpc3BsYXll
ZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKikKK3sKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91
dFRlc3RDb250cm9sbGVyLT5kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpCisgICAgICAgIHByaW50
ZigiZGlkRGlzcGxheUluc2VjdXJlQ29udGVudFxuIik7Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRy
ZWVDaHJvbWU6Om9uRnJhbWVDcmVhdGVkKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50
SW5mbykKK3sKKyAgICBFdmFzX09iamVjdCogZnJhbWUgPSBzdGF0aWNfY2FzdDxFdmFzX09iamVj
dCo+KGV2ZW50SW5mbyk7CisKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoZnJh
bWUsICJsb2FkLHByb3Zpc2lvbmFsIiwgb25GcmFtZVByb3Zpc2lvbmFsTG9hZCwgMCk7CisgICAg
ZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGZyYW1lLCAibG9hZCxjb21taXR0ZWQiLCBv
bkZyYW1lTG9hZENvbW1pdHRlZCwgMCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tf
YWRkKGZyYW1lLCAibG9hZCxmaW5pc2hlZCIsIG9uRnJhbWVMb2FkRmluaXNoZWQsIDApOworICAg
IGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChmcmFtZSwgImxvYWQsZXJyb3IiLCBvbkZy
YW1lTG9hZEVycm9yLCAwKTsKK30KKwordm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFt
ZVByb3Zpc2lvbmFsTG9hZCh2b2lkKiwgRXZhc19PYmplY3QqIGZyYW1lLCB2b2lkKikKK3sKKyAg
ICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wRnJhbWVMb2FkQ2FsbGJh
Y2tzKCkpIHsKKyAgICAgICAgY29uc3QgU3RyaW5nIGZyYW1lTmFtZShEdW1wUmVuZGVyVHJlZVN1
cHBvcnRFZmw6OnN1aXRhYmxlRFJURnJhbWVOYW1lKGZyYW1lKSk7CisgICAgICAgIHByaW50Zigi
JXMgLSBkaWRTdGFydFByb3Zpc2lvbmFsTG9hZEZvckZyYW1lXG4iLCBmcmFtZU5hbWUudXRmOCgp
LmRhdGEoKSk7CisgICAgfQorfQorCit2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZyYW1l
TG9hZENvbW1pdHRlZCh2b2lkKiwgRXZhc19PYmplY3QqIGZyYW1lLCB2b2lkKikKK3sKKyAgICBp
ZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wRnJhbWVMb2FkQ2FsbGJhY2tz
KCkpIHsKKyAgICAgICAgY29uc3QgU3RyaW5nIGZyYW1lTmFtZShEdW1wUmVuZGVyVHJlZVN1cHBv
cnRFZmw6OnN1aXRhYmxlRFJURnJhbWVOYW1lKGZyYW1lKSk7CisgICAgICAgIHByaW50ZigiJXMg
LSBkaWRDb21taXRMb2FkRm9yRnJhbWVcbiIsIGZyYW1lTmFtZS51dGY4KCkuZGF0YSgpKTsKKyAg
ICB9Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uRnJhbWVMb2FkRmluaXNoZWQo
dm9pZCosIEV2YXNfT2JqZWN0KiBmcmFtZSwgdm9pZCogZXZlbnRJbmZvKQoreworICAgIGNvbnN0
IEV3a19GcmFtZV9Mb2FkX0Vycm9yKiBlcnJvciA9IHN0YXRpY19jYXN0PEV3a19GcmFtZV9Mb2Fk
X0Vycm9yKj4oZXZlbnRJbmZvKTsKKworICAgIC8vIEVGTCBwb3J0IGVtaXRzIGJvdGggImxvYWQs
ZmluaXNoZWQiIGFuZCAibG9hZCxlcnJvciIgc2lnbmFscyBpbiBlcnJvciBjYXNlLgorICAgIC8v
IEVycm9yIGNhc2UgaXMgdGhlcmVmb3JlIGFscmVhZHkgaGFuZGxlZCBpbiBvbkZyYW1lTG9hZEVy
cm9yKCkgYW5kIHdlIGRvbid0IG5lZWQKKyAgICAvLyB0byBoYW5kbGUgaXQgaGVyZS4KKyAgICBp
ZiAoZXJyb3IpCisgICAgICAgIHJldHVybjsKKworICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVz
dENvbnRyb2xsZXItPmR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSkgeworICAgICAgICBjb25zdCBT
dHJpbmcgZnJhbWVOYW1lKER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c3VpdGFibGVEUlRGcmFt
ZU5hbWUoZnJhbWUpKTsKKyAgICAgICAgcHJpbnRmKCIlcyAtIGRpZEZpbmlzaExvYWRGb3JGcmFt
ZVxuIiwgZnJhbWVOYW1lLnV0ZjgoKS5kYXRhKCkpOworICAgIH0KKworICAgIGlmIChmcmFtZSA9
PSB0b3BMb2FkaW5nRnJhbWUpCisgICAgICAgIHRvcExvYWRpbmdGcmFtZUxvYWRGaW5pc2hlZCgp
OworfQorCit2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZyYW1lTG9hZEVycm9yKHZvaWQq
LCBFdmFzX09iamVjdCogZnJhbWUsIHZvaWQqKQoreworICAgIGlmICghZG9uZSAmJiBnTGF5b3V0
VGVzdENvbnRyb2xsZXItPmR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSkgeworICAgICAgICBjb25z
dCBTdHJpbmcgZnJhbWVOYW1lKER1bXBSZW5kZXJUcmVlU3VwcG9ydEVmbDo6c3VpdGFibGVEUlRG
cmFtZU5hbWUoZnJhbWUpKTsKKyAgICAgICAgcHJpbnRmKCIlcyAtIGRpZEZhaWxMb2FkV2l0aEVy
cm9yXG4iLCBmcmFtZU5hbWUudXRmOCgpLmRhdGEoKSk7CisgICAgfQorCisgICAgaWYgKGZyYW1l
ID09IHRvcExvYWRpbmdGcmFtZSkKKyAgICAgICAgdG9wTG9hZGluZ0ZyYW1lTG9hZEZpbmlzaGVk
KCk7Cit9CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRy
ZWVDaHJvbWUuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9t
ZS5oCmluZGV4IGUxNTZiNGQuLmE1MTEyY2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5oCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5oCkBAIC02OCw3ICs2OCw3IEBAIHByaXZhdGU6CiAK
ICAgICBzdGF0aWMgRWluYV9Cb29sIHByb2Nlc3NXb3JrKHZvaWQqKTsKIAotICAgIHN0YXRpYyB2
b2lkIG9uTG9hZEZpbmlzaGVkKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKTsKKyAgICBzdGF0
aWMgdm9pZCB0b3BMb2FkaW5nRnJhbWVMb2FkRmluaXNoZWQoKTsKIAogICAgIHN0YXRpYyB2b2lk
IG9uU3RhdHVzYmFyVGV4dFNldCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKik7CiAKQEAgLTc3
LDYgKzc3LDIyIEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHZvaWQgb25Eb2N1bWVudExvYWRGaW5p
c2hlZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKik7CiAKICAgICBzdGF0aWMgdm9pZCBvbldp
bGxTZW5kUmVxdWVzdCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKik7CisKKyAgICBzdGF0aWMg
dm9pZCBvbldlYlZpZXdPbmxvYWRFdmVudCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKik7CisK
KyAgICBzdGF0aWMgdm9pZCBvbkluc2VjdXJlQ29udGVudFJ1bih2b2lkKiwgRXZhc19PYmplY3Qq
LCB2b2lkKik7CisKKyAgICBzdGF0aWMgdm9pZCBvbkluc2VjdXJlQ29udGVudERpc3BsYXllZCh2
b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKik7CisKKyAgICBzdGF0aWMgdm9pZCBvbkZyYW1lQ3Jl
YXRlZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKik7CisKKyAgICBzdGF0aWMgdm9pZCBvbkZy
YW1lUHJvdmlzaW9uYWxMb2FkKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKTsKKworICAgIHN0
YXRpYyB2b2lkIG9uRnJhbWVMb2FkQ29tbWl0dGVkKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQq
KTsKKworICAgIHN0YXRpYyB2b2lkIG9uRnJhbWVMb2FkRmluaXNoZWQodm9pZCosIEV2YXNfT2Jq
ZWN0Kiwgdm9pZCopOworCisgICAgc3RhdGljIHZvaWQgb25GcmFtZUxvYWRFcnJvcih2b2lkKiwg
RXZhc19PYmplY3QqLCB2b2lkKik7CiB9OwogCiAjZW5kaWYgLy8gRHVtcFJlbmRlclRyZWVDaHJv
bWVfaAo=
</data>
<flag name="review"
          id="142546"
          type_id="1"
          status="+"
          setter="tonikitoo"
    />
    <flag name="commit-queue"
          id="142547"
          type_id="3"
          status="-"
          setter="tonikitoo"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137533</attachid>
            <date>2012-04-17 07:24:12 -0700</date>
            <delta_ts>2012-04-17 08:48:28 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>83030_dumpFrameLoadCallbacks_a.patch</filename>
            <type>text/plain</type>
            <size>21838</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA5ZWRhMDFmLi5hZjAxNTQwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDQt
MTEgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBbRUZMXSBEUlQgc2hvdWxkIHN1cHBvcnQgTGF5b3V0VGVzdENvbnRyb2xsZXIncyBkdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgzMDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50b25pbyBHb21lcy4K
KworICAgICAgICBVbnNraXAgdGhlIHRlc3QgY2FzZXMgaW4gRUZMIHdoaWNoIG5lZWRlZCBkdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzKCkKKyAgICAgICAgc3VwcG9ydCBpbiB0aGUgRHVtcFJlbmRlclRy
ZWUgbm93IHRoYXQgaXQgaXMgaW1wbGVtZW50ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwv
U2tpcHBlZDoKKwogMjAxMi0wNC0xMCAgQWJoaXNoZWsgQXJ5YSAgPGluZmVybm9AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIENyYXNoIGR1ZSB0byBpbnRydWRpbmcgZmxvYXQgbm90IHJlbW92ZWQg
ZnJvbSBuZXh0IHNpYmxpbmdzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZs
L1NraXBwZWQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZAppbmRleCBkNjJhZDk4
Li5jMjJmN2VhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZAor
KysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9lZmwvU2tpcHBlZApAQCAtNzU5LDcgKzc1OSw2IEBA
IGZhc3QvbG9hZGVyL251bGwtcmVxdWVzdC1hZnRlci13aWxsU2VuZFJlcXVlc3QuaHRtbAogZmFz
dC9oaXN0b3J5L2JhY2stZm9yd2FyZC1yZXNldC1hZnRlci1lcnJvci1oYW5kbGluZy5odG1sCiAK
ICMgTWlzc2luZyBkZWxlZ2F0ZXM6IHRlc3RzIHdoaWNoIG5lZWQgcHJvcGVyIGZyYW1lIGxvYWRl
ciBjYWxsYmFja3MgcmVwb3J0aW5nCi1odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9l
bXB0eS11cmwtcGx1Z2luLWluLWZyYW1lLmh0bWwKIGZhc3QvbG9hZGVyL2ZpbGUtcHJvdG9jb2wt
ZnJhZ21lbnQuaHRtbAogCiAjIE1pc3NpbmcgZGVsZWdhdGVzOiB0ZXN0cyBmYWlsaW5nIGJlY2F1
c2Ugb2YgbWlzc2luZyByZXNvdXJjZSBsb2FkIGRlbGVnYXRlIGNhbGxiYWNrcy4KQEAgLTExNjgs
NyArMTE2Nyw2IEBAIGh0dHAvdGVzdHMvaGlzdG9yeS9iYWNrLXdpdGgtZnJhZ21lbnQtY2hhbmdl
LnBocAogIyBGYWlsaW5nIGh0dHAgdGVzdHMgKHZpYSBHVEsrKQogaHR0cC90ZXN0cy9sb2FkaW5n
L2JhZC1zY2hlbWUtc3ViZnJhbWUuaHRtbAogaHR0cC90ZXN0cy9sb2FkaW5nL2JhZC1zZXJ2ZXIt
c3ViZnJhbWUuaHRtbAotaHR0cC90ZXN0cy9sb2FkaW5nL2dtYWlsLWFzc2VydC1vbi1sb2FkLmh0
bWwKIGh0dHAvdGVzdHMvbG9hZGluZy9yZWRpcmVjdC13aXRoLW5vLWxvY2F0aW9uLWNyYXNoLmh0
bWwKIGh0dHAvdGVzdHMvbG9hZGluZy90ZXh0LWNvbnRlbnQtdHlwZS13aXRoLWJpbmFyeS1leHRl
bnNpb24uaHRtbAogaHR0cC90ZXN0cy9tZWRpYS92aWRlby1wbGF5LXN0YWxsLXNlZWsuaHRtbApA
QCAtMTM3NSw3ICsxMzczLDYgQEAgZmFzdC9odG1sL2RldGFpbHMtbW91c2UtY2xpY2suaHRtbAog
ZmFzdC9odG1sL3RhYi1vcmRlci5odG1sCiBmYXN0L2lubGluZS9za2lwcGVkLXdoaXRlc3BhY2Ut
Ym91bmRpbmdCb3guaHRtbAogZmFzdC9sb2FkZXIvZnJhZ21lbnQtYWZ0ZXItcmVkaXJlY3QtZ2V0
cy1iYWNrLWVudHJ5Lmh0bWwKLWZhc3QvbG9hZGVyL3N1YmZyYW1lLXJlbW92ZXMtaXRzZWxmLmh0
bWwKIGZhc3QvbXVsdGljb2wvY2xpZW50LXJlY3RzLmh0bWwKIGZhc3QvbXVsdGljb2wvc2luZ2xl
LWxpbmUuaHRtbAogZmFzdC9vdmVyZmxvdy9vdmVyZmxvdy15LXNjcm9sbC5odG1sCkBAIC0yNDE0
LDIxICsyNDExLDExIEBAIGh0dHAvdGVzdHMvc2VjdXJpdHkvZHJhZy1kcm9wLXNhbWUtdW5pcXVl
LW9yaWdpbi5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L2ZyYW1lTmF2aWdhdGlvbi9ub3Qtb3Bl
bmVyLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUtd2hp
dGVsaXN0ZWQuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC11c2VyLUNTUy1mcm9tLXJl
bW90ZS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9hYm91dC1ibGFuay1p
ZnJhbWUtaW4tbWFpbi1mcmFtZS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVu
dC9kYXRhLXVybC1pZnJhbWUtaW4tbWFpbi1mcmFtZS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5
L21peGVkQ29udGVudC9kYXRhLXVybC1zY3JpcHQtaW4taWZyYW1lLmh0bWwKLWh0dHAvdGVzdHMv
c2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLWNzcy1pbi1pZnJhbWUuaHRtbAotaHR0cC90
ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtY3NzLWluLW1haW4tZnJhbWUuaHRt
bAotaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5zZWN1cmUtaWZyYW1lLWluLWlm
cmFtZS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1pZnJh
bWUtaW4tbWFpbi1mcmFtZS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9p
bnNlY3VyZS1pbWFnZS1pbi1pZnJhbWUuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENv
bnRlbnQvaW5zZWN1cmUtaW1hZ2UtaW4tbWFpbi1mcmFtZS5odG1sCiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1wbHVnaW4taW4taWZyYW1lLmh0bWwKIGh0dHAvdGVz
dHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJlLXNjcmlwdC1pbi1pZnJhbWUuaHRtbAog
aHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cC10by1odHRwcy1p
ZnJhbWUtaW4tbWFpbi1mcmFtZS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVu
dC9yZWRpcmVjdC1odHRwLXRvLWh0dHBzLXNjcmlwdC1pbi1pZnJhbWUuaHRtbAogaHR0cC90ZXN0
cy9zZWN1cml0eS9taXhlZENvbnRlbnQvcmVkaXJlY3QtaHR0cHMtdG8taHR0cC1pZnJhbWUtaW4t
bWFpbi1mcmFtZS5odG1sCi1odHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9yZWRpcmVj
dC1odHRwcy10by1odHRwLXNjcmlwdC1pbi1pZnJhbWUuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0
eS9uby1yZWZlcnJlci5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L29yaWdpbkhlYWRlci9vcmln
aW4taGVhZGVyLWZvci1lbXB0eS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L29yaWdpbkhlYWRl
ci9vcmlnaW4taGVhZGVyLWZvci1odHRwcy5odG1sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L2VmbC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKaW5kZXggNDNkZTA2
NS4uZjM0OGE5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvZWZsL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM0IEBACisyMDEyLTA0LTEx
ICBDaHJpc3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CisKKyAgICAg
ICAgW0VGTF0gRFJUIHNob3VsZCBzdXBwb3J0IExheW91dFRlc3RDb250cm9sbGVyJ3MgZHVtcEZy
YW1lTG9hZENhbGxiYWNrcygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD04MzAzMAorCisgICAgICAgIFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMuCisK
KyAgICAgICAgSW1wbGVtZW50IHN1cHBvcnQgZm9yIExheW91dFRlc3RDb250cm9sbGVyJ3MgZHVt
cEZyYW1lTG9hZENhbGxiYWNrcygpCisgICAgICAgIGluIEVGTCdzIER1bXBSZW5kZXJUcmVlLiBX
ZSBubyBsb25nZXIgZW1pdCB0aGUgImxvYWQsZmluaXNoZWQiIHNpZ25hbAorICAgICAgICBmcm9t
IHBvc3RQcm9ncmVzc0ZpbmlzaGVkTm90aWZpY2F0aW9uKCkgc2luY2UgaXQgaXMgYWxyZWFkeSBl
bWl0dGVkCisgICAgICAgIGZyb20gZGlzcGF0Y2hEaWRGaW5pc2hMb2FkKCkuIFRoaXMgYXZvaWRz
IHVud2FudGVkIGV4dHJhIHNpZ25hbHMgd2UKKyAgICAgICAgcHJldmVudCBzb21lIHRlc3RzIGZy
b20gcGFzc2luZyAoZS5nLgorICAgICAgICBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVu
dC9hYm91dC1ibGFuay1pZnJhbWUtaW4tbWFpbi1mcmFtZS5odG1sKS4KKworICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpwb3N0UHJvZ3Jlc3NGaW5pc2hlZE5vdGlmaWNhdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRGaW5p
c2hMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRj
aERpZEhhbmRsZU9ubG9hZEV2ZW50cyk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNs
aWVudEVmbDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1l
TG9hZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZEZhaWxMb2FkKToKKyAgICAgICAgKiBXZWJDb3Jl
U3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oOgorICAgICAgICAoRnJhbWVMb2FkZXJDbGll
bnRFZmwpOgorICAgICAgICAqIGV3ay9ld2tfZnJhbWUuY3BwOgorICAgICAgICAoZXdrX2ZyYW1l
X2xvYWRfY29tbWl0dGVkKToKKyAgICAgICAgKiBld2svZXdrX2ZyYW1lLmg6CisgICAgICAgICog
ZXdrL2V3a19wcml2YXRlLmg6CisgICAgICAgICogZXdrL2V3a192aWV3LmNwcDoKKyAgICAgICAg
KF9Fd2tfVmlld19Qcml2YXRlX0RhdGEpOgorICAgICAgICAoZXdrX3ZpZXdfb25sb2FkX2V2ZW50
KToKKyAgICAgICAgKiBld2svZXdrX3ZpZXcuaDoKKwogMjAxMi0wNC0xMCAgU3VkYXJzYW5hIE5h
Z2luZW5pICA8c3VkYXJzYW5hLm5hZ2luZW5pQGxpbnV4LmludGVsLmNvbT4KIAogICAgICAgICBb
RUZMXSBMYXlvdXRUZXN0Q29udHJvbGxlciBuZWVkcyBpbXBsZW1lbnRhdGlvbiBvZiBhZGRVc2Vy
U3R5bGVTaGVldApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQv
RnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRFZmwuY3BwCmluZGV4IDkzNTE4MjkuLjE2OTkxOWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
RWZsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRl
ckNsaWVudEVmbC5jcHAKQEAgLTIzMiwxNiArMjMyLDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVu
dEVmbDo6cG9zdFByb2dyZXNzRXN0aW1hdGVDaGFuZ2VkTm90aWZpY2F0aW9uKCkKIAogdm9pZCBG
cmFtZUxvYWRlckNsaWVudEVmbDo6cG9zdFByb2dyZXNzRmluaXNoZWROb3RpZmljYXRpb24oKQog
ewotICAgIGlmIChtX2xvYWRFcnJvci5pc051bGwoKSkKLSAgICAgICAgZXdrX2ZyYW1lX2xvYWRf
ZmluaXNoZWQobV9mcmFtZSwgMCwgMCwgMCwgMCwgMCk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGV3
a19mcmFtZV9sb2FkX2ZpbmlzaGVkKG1fZnJhbWUsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1fbG9hZEVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRhKCksCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIG1fbG9hZEVycm9yLmVycm9yQ29kZSgpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBtX2xvYWRFcnJvci5pc0NhbmNlbGxhdGlvbigpLAotICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBtX2xvYWRFcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlv
bigpLnV0ZjgoKS5kYXRhKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1fbG9h
ZEVycm9yLmZhaWxpbmdVUkwoKS51dGY4KCkuZGF0YSgpKTsKLSAgICB9CisgICAgbm90SW1wbGVt
ZW50ZWQoKTsKIH0KIAogdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZnJhbWVMb2FkZXJEZXN0
cm95ZWQoKQpAQCAtNDU3LDcgKzQ0OCw3IEBAIGJvb2wgRnJhbWVMb2FkZXJDbGllbnRFZmw6Omhh
c0ZyYW1lVmlldygpIGNvbnN0CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNo
RGlkRmluaXNoTG9hZCgpCiB7Ci0gICAgbV9sb2FkRXJyb3IgPSBSZXNvdXJjZUVycm9yKCk7IC8q
IGNsZWFycyBwcmV2aW91cyBlcnJvciAqLworICAgIGV3a19mcmFtZV9sb2FkX2ZpbmlzaGVkKG1f
ZnJhbWUsIDAsIDAsIDAsIDAsIDApOwogfQogCiB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpm
cmFtZUxvYWRDb21wbGV0ZWQoKQpAQCAtNTQ0LDcgKzUzNSw3IEBAIHZvaWQgRnJhbWVMb2FkZXJD
bGllbnRFZmw6OmxvYWRlZEZyb21DYWNoZWRQYWdlKCkKIAogdm9pZCBGcmFtZUxvYWRlckNsaWVu
dEVmbDo6ZGlzcGF0Y2hEaWRIYW5kbGVPbmxvYWRFdmVudHMoKQogewotICAgIG5vdEltcGxlbWVu
dGVkKCk7CisgICAgZXdrX3ZpZXdfb25sb2FkX2V2ZW50KG1fdmlldywgbV9mcmFtZSk7CiB9CiAK
IHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkUmVjZWl2ZVNlcnZlclJlZGly
ZWN0Rm9yUHJvdmlzaW9uYWxMb2FkKCkKQEAgLTYxMSw2ICs2MDIsNyBAQCB2b2lkIEZyYW1lTG9h
ZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZENoYW5nZUljb25zKFdlYkNvcmU6Okljb25UeXBlKQog
dm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRDb21taXRMb2FkKCkKIHsKICAg
ICBld2tfZnJhbWVfdXJpX2NoYW5nZWQobV9mcmFtZSk7CisgICAgZXdrX2ZyYW1lX2xvYWRfY29t
bWl0dGVkKG1fZnJhbWUpOwogICAgIGlmIChld2tfdmlld19mcmFtZV9tYWluX2dldChtX3ZpZXcp
ICE9IG1fZnJhbWUpCiAgICAgICAgIHJldHVybjsKICAgICBld2tfdmlld190aXRsZV9zZXQobV92
aWV3LCAwKTsKQEAgLTc2MSwxNSArNzUzLDE4IEBAIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6
OmRpc3BhdGNoRGlkRmFpbFByb3Zpc2lvbmFsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlCiAK
IHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkRmFpbExvYWQoY29uc3QgUmVz
b3VyY2VFcnJvciYgZXJyKQogewotICAgIGlmICghc2hvdWxkRmFsbEJhY2soZXJyKSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgbV9sb2FkRXJyb3IgPSBlcnI7CiAgICAgZXdrX2ZyYW1lX2xvYWRf
ZXJyb3IobV9mcmFtZSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBtX2xvYWRFcnJvci5kb21h
aW4oKS51dGY4KCkuZGF0YSgpLAotICAgICAgICAgICAgICAgICAgICAgICAgIG1fbG9hZEVycm9y
LmVycm9yQ29kZSgpLCBtX2xvYWRFcnJvci5pc0NhbmNlbGxhdGlvbigpLAotICAgICAgICAgICAg
ICAgICAgICAgICAgIG1fbG9hZEVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkudXRmOCgpLmRh
dGEoKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICBtX2xvYWRFcnJvci5mYWlsaW5nVVJMKCku
dXRmOCgpLmRhdGEoKSk7CisgICAgICAgICAgICAgICAgICAgICAgICAgZXJyLmRvbWFpbigpLnV0
ZjgoKS5kYXRhKCksCisgICAgICAgICAgICAgICAgICAgICAgICAgZXJyLmVycm9yQ29kZSgpLCBl
cnIuaXNDYW5jZWxsYXRpb24oKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICBlcnIubG9jYWxp
emVkRGVzY3JpcHRpb24oKS51dGY4KCkuZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICAgICAg
IGVyci5mYWlsaW5nVVJMKCkudXRmOCgpLmRhdGEoKSk7CisKKyAgICBld2tfZnJhbWVfbG9hZF9m
aW5pc2hlZChtX2ZyYW1lLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyci5kb21haW4o
KS51dGY4KCkuZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyci5lcnJvckNv
ZGUoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIuaXNDYW5jZWxsYXRpb24oKSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICBlcnIubG9jYWxpemVkRGVzY3JpcHRpb24oKS51
dGY4KCkuZGF0YSgpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVyci5mYWlsaW5nVVJM
KCkudXRmOCgpLmRhdGEoKSk7CiB9CiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRvd25s
b2FkKFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25z
dCBSZXNvdXJjZVJlc3BvbnNlJikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmggYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJD
b3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVmbC5oCmluZGV4IGZkYWM5MWEuLjliYjE3MTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVy
Q2xpZW50RWZsLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRFZmwuaApAQCAtMjEyLDggKzIxMiw2IEBAIGNsYXNzIEZyYW1lTG9hZGVyQ2xp
ZW50RWZsIDogcHVibGljIEZyYW1lTG9hZGVyQ2xpZW50IHsKICAgICBTdHJpbmcgbV91c2VyQWdl
bnQ7CiAgICAgU3RyaW5nIG1fY3VzdG9tVXNlckFnZW50OwogCi0gICAgUmVzb3VyY2VFcnJvciBt
X2xvYWRFcnJvcjsKLQogICAgIC8vIFBsdWdpbiB2aWV3IHRvIHJlZGlyZWN0IGRhdGEgdG8KICAg
ICBQbHVnaW5WaWV3KiBtX3BsdWdpblZpZXc7CiAgICAgYm9vbCBtX2hhc1NlbnRSZXNwb25zZVRv
UGx1Z2luOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAppbmRleCBlZmNhODZjLi41Yzlm
NzEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcApAQCAtMTI2MSw2ICsxMjYxLDE3
IEBAIHZvaWQgZXdrX2ZyYW1lX3ZpZXdfc3RhdGVfc2F2ZShFdmFzX09iamVjdCogZXdrRnJhbWUs
IFdlYkNvcmU6Okhpc3RvcnlJdGVtKiBpdGVtCiAKIC8qKgogICogQGludGVybmFsCisgKiBSZXBv
cnRzIHRoZSBmcmFtZSBjb21taXR0ZWQgbG9hZC4KKyAqCisgKiBFbWl0cyBzaWduYWw6ICJsb2Fk
LGNvbW1pdHRlZCIgd2l0aCBubyBwYXJhbWV0ZXJzLgorICovCit2b2lkIGV3a19mcmFtZV9sb2Fk
X2NvbW1pdHRlZChFdmFzX09iamVjdCogZXdrRnJhbWUpCit7CisgICAgZXZhc19vYmplY3Rfc21h
cnRfY2FsbGJhY2tfY2FsbChld2tGcmFtZSwgImxvYWQsY29tbWl0dGVkIiwgMCk7Cit9CisKKy8q
KgorICogQGludGVybmFsCiAgKiBSZXBvcnRzIHRoZSBmcmFtZSBzdGFydGVkIGxvYWRpbmcgc29t
ZXRoaW5nLgogICoKICAqIEVtaXRzIHNpZ25hbDogImxvYWQsc3RhcnRlZCIgd2l0aCBubyBwYXJh
bWV0ZXJzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oIGIv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oCmluZGV4IDk0MjQyOGMuLmRkM2E4ZDMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmgKQEAgLTM5LDYgKzM5LDcgQEAKICAqICAgICB3
ZXJlIGNoYW5nZWQgZHVlIG5ldyBsYXlvdXQsIHNjcmlwdCBhY3Rpb25zIG9yIGFueSBvdGhlciBl
dmVudHMuCiAgKiAgLSAiZWRpdG9yY2xpZW50LGNvbnRlbnRzLGNoYW5nZWQiLCB2b2lkOiByZXBv
cnRzIHRoYXQgZWRpdG9yIGNsaWVudCdzCiAgKiAgICBjb250ZW50cyB3ZXJlIGNoYW5nZWQKKyAq
ICAtICJsb2FkLGNvbW1pdHRlZCIsIHZvaWQ6IHJlcG9ydHMgbG9hZCBjb21taXR0ZWQuCiAgKiAg
LSAibG9hZCxkb2N1bWVudCxmaW5pc2hlZCIsIHZvaWQ6IGZyYW1lIGZpbmlzaGVkIGxvYWRpbmcg
dGhlIGRvY3VtZW50LgogICogIC0gImxvYWQsZXJyb3IiLCBjb25zdCBFd2tfRnJhbWVfTG9hZF9F
cnJvcio6IHJlcG9ydHMgbG9hZCBmYWlsZWQKICAqICAgIGFuZCBpdCBnaXZlcyBhIHBvaW50ZXIg
dG8gc3RydWN0dXJlIGRlZmluaW5nIHRoZSBlcnJvciBhcyBhbiBhcmd1bWVudC4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a19wcml2YXRlLmgKaW5kZXggOTZlNDc5NS4uOWVlYTIyZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19wcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a19wcml2YXRlLmgKQEAgLTExNCw2ICsxMTQsNyBAQCB2b2lkIGV3a192aWV3X2xv
YWRfZmluaXNoZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV3a19GcmFtZV9Mb2FkX0Vy
cm9yKiBlcgogdm9pZCBld2tfdmlld19sb2FkX2Vycm9yKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBj
b25zdCBFd2tfRnJhbWVfTG9hZF9FcnJvciogZXJyb3IpOwogdm9pZCBld2tfdmlld19sb2FkX3By
b2dyZXNzX2NoYW5nZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcpOwogdm9pZCBld2tfdmlld19sb2Fk
X3Nob3coRXZhc19PYmplY3QqIGV3a1ZpZXcpOwordm9pZCBld2tfdmlld19vbmxvYWRfZXZlbnQo
RXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSk7CiB2b2lkIGV3a192aWV3
X3Jlc3RvcmVfc3RhdGUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSk7
CiBFdmFzX09iamVjdCogZXdrX3ZpZXdfd2luZG93X2NyZWF0ZShFdmFzX09iamVjdCogZXdrVmll
dywgYm9vbCBqYXZhc2NyaXB0LCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyogY29yZUZl
YXR1cmVzKTsKIHZvaWQgZXdrX3ZpZXdfd2luZG93X2Nsb3NlKEV2YXNfT2JqZWN0KiBld2tWaWV3
KTsKQEAgLTIwMiw2ICsyMDMsNyBAQCB2b2lkIGV3a19mcmFtZV92aWV3X3NldChFdmFzX09iamVj
dCogZXdrRnJhbWUsIEV2YXNfT2JqZWN0KiBuZXdQYXJlbnQpOwogCiB2b2lkIGV3a19mcmFtZV9j
b3JlX2dvbmUoRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKIAordm9pZCBld2tfZnJhbWVfbG9hZF9j
b21taXR0ZWQoRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsKIHZvaWQgZXdrX2ZyYW1lX2xvYWRfc3Rh
cnRlZChFdmFzX09iamVjdCogZXdrRnJhbWUpOwogdm9pZCBld2tfZnJhbWVfbG9hZF9wcm92aXNp
b25hbChFdmFzX09iamVjdCogZXdrRnJhbWUpOwogdm9pZCBld2tfZnJhbWVfbG9hZF9maXJzdGxh
eW91dF9maW5pc2hlZChFdmFzX09iamVjdCogZXdrRnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tf
dmlldy5jcHAKaW5kZXggMmQ0MmEzMi4uN2E1Y2UxOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9lZmwvZXdrL2V3a192aWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3Zp
ZXcuY3BwCkBAIC0yODUzLDYgKzI4NTMsMTkgQEAgdm9pZCBld2tfdmlld19sb2FkX3Nob3coRXZh
c19PYmplY3QqIGV3a1ZpZXcpCiAgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChl
d2tWaWV3LCAibG9hZCxuZXd3aW5kb3csc2hvdyIsIDApOwogfQogCisvKioKKyAqIEBpbnRlcm5h
bAorICogUmVwb3J0cyBhbiBvbmxvYWQgZXZlbnQgZm9yIEBwIGZyYW1lLgorICoKKyAqIEBwYXJh
bSBld2tWaWV3IFZpZXcgd2hpY2ggY29udGFpbnMgdGhlIGZyYW1lLgorICogQHBhcmFtIGZyYW1l
IFRoZSBmcmFtZSB3aG9zZSBvbmxvYWQgZXZlbnQgd2FzIHJlY2VpdmVkLgorICoKKyAqIEVtaXRz
IHNpZ25hbDogIm9ubG9hZCxldmVudCIgd2l0aCBAcCBmcmFtZSBhcyB0aGUgcGFyYW1ldGVyLgor
ICovCit2b2lkIGV3a192aWV3X29ubG9hZF9ldmVudChFdmFzX09iamVjdCogZXdrVmlldywgRXZh
c19PYmplY3QqIGZyYW1lKQoreworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2NhbGwo
ZXdrVmlldywgIm9ubG9hZCxldmVudCIsIGZyYW1lKTsKK30KIAogLyoqCiAgKiBAaW50ZXJuYWwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5oIGIvU291cmNlL1dl
YktpdC9lZmwvZXdrL2V3a192aWV3LmgKaW5kZXggZmEzODJhOS4uN2E3MzM5MCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmgKKysrIGIvU291cmNlL1dlYktpdC9l
ZmwvZXdrL2V3a192aWV3LmgKQEAgLTYwLDYgKzYwLDcgQEAKICAqICAtICJtZW51YmFyLHZpc2li
bGUsc2V0IiwgRWluYV9Cb29sOiBzZXRzIG1lbnViYXIgdmlzaWJpbGl0eS4KICAqICAtICJtaXhl
ZGNvbnRlbnQsZGlzcGxheWVkIiwgdm9pZDogYW55IG9mIHRoZSBjb250YWluaW5nIGZyYW1lcyBo
YXMgbG9hZGVkIGFuZCBkaXNwbGF5ZWQgbWl4ZWQgY29udGVudC4KICAqICAtICJtaXhlZGNvbnRl
bnQscnVuIiwgdm9pZDogYW55IG9mIHRoZSBjb250YWluaW5nIGZyYW1lcyBoYXMgbG9hZGVkIGFu
ZCBydW4gbWl4ZWQgY29udGVudC4KKyAqICAtICJvbmxvYWQsZXZlbnQiLCBFdmFzX09iamVjdCo6
IGEgZnJhbWUgb25sb2FkIGV2ZW50IGhhcyBiZWVuIHJlY2VpdmVkLgogICogIC0gInJlYWR5Iiwg
dm9pZDogcGFnZSBpcyBmdWxseSBsb2FkZWQuCiAgKiAgLSAicmVzb3VyY2UscmVxdWVzdCx3aWxs
c2VuZCIsIEV3a19GcmFtZV9SZXNvdXJjZV9SZXF1ZXN0KjogYSByZXNvdXJjZSB3aWxsCiAgKiAg
ICBiZSByZXF1ZXN0ZWQuCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFu
Z2VMb2cKaW5kZXggOTNlY2ZkMS4uMjE0OGJmYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTA0LTExICBDaHJp
c3RvcGhlIER1bWV6ICA8Y2hyaXN0b3BoZS5kdW1lekBpbnRlbC5jb20+CisKKyAgICAgICAgW0VG
TF0gRFJUIHNob3VsZCBzdXBwb3J0IExheW91dFRlc3RDb250cm9sbGVyJ3MgZHVtcEZyYW1lTG9h
ZENhbGxiYWNrcygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD04MzAzMAorCisgICAgICAgIFJldmlld2VkIGJ5IEFudG9uaW8gR29tZXMuCisKKyAgICAg
ICAgSW1wbGVtZW50IHN1cHBvcnQgZm9yIExheW91dFRlc3RDb250cm9sbGVyJ3MgZHVtcEZyYW1l
TG9hZENhbGxiYWNrcygpCisgICAgICAgIGluIEVGTCdzIER1bXBSZW5kZXJUcmVlLgorCisgICAg
ICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcDoKKyAgICAg
ICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpjcmVhdGVWaWV3KToKKyAgICAgICAgKER1bXBSZW5k
ZXJUcmVlQ2hyb21lOjpwcm9jZXNzV29yayk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9t
ZTo6dG9wTG9hZGluZ0ZyYW1lTG9hZEZpbmlzaGVkKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVl
Q2hyb21lOjpvbldlYlZpZXdPbmxvYWRFdmVudCk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNo
cm9tZTo6b25JbnNlY3VyZUNvbnRlbnRSdW4pOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJv
bWU6Om9uSW5zZWN1cmVDb250ZW50RGlzcGxheWVkKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVl
Q2hyb21lOjpvbkZyYW1lQ3JlYXRlZCk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6
b25GcmFtZVByb3Zpc2lvbmFsTG9hZCk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6
b25GcmFtZUxvYWRDb21taXR0ZWQpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9u
RnJhbWVMb2FkRmluaXNoZWQpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uRnJh
bWVMb2FkRXJyb3IpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJl
ZUNocm9tZS5oOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWUpOgorCiAyMDEyLTA0LTEw
ICBEaXJrIFByYW5rZSAgPGRwcmFua2VAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIElmIE5SV1Qg
Z2V0cyBraWxsZWQgaGFsZndheSB0aHJvdWdoIGEgcnVuLCBpdCBpbmNvcnJlY3RseSByZXBvcnRz
IHRlc3RzIHRoYXQgd2VyZW4ndCBydW4gYXMgcGFzc2VzCmRpZmYgLS1naXQgYS9Ub29scy9EdW1w
UmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAppbmRleCBiMzllMTI1Li40ZmRhMDY3
IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJv
bWUuY3BwCisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9t
ZS5jcHAKQEAgLTkwLDEyICs5MCwyMSBAQCBFdmFzX09iamVjdCogRHVtcFJlbmRlclRyZWVDaHJv
bWU6OmNyZWF0ZVZpZXcoKSBjb25zdAogICAgIGV3a192aWV3X3RoZW1lX3NldCh2aWV3LCBEQVRB
X0RJUiIvZGVmYXVsdC5lZGoiKTsKIAogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2Fk
ZCh2aWV3LCAibG9hZCxzdGFydGVkIiwgb25Mb2FkU3RhcnRlZCwgMCk7Ci0gICAgZXZhc19vYmpl
Y3Rfc21hcnRfY2FsbGJhY2tfYWRkKHZpZXcsICJsb2FkLGZpbmlzaGVkIiwgb25Mb2FkRmluaXNo
ZWQsIDApOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2aWV3LCAidGl0bGUs
Y2hhbmdlZCIsIG9uVGl0bGVDaGFuZ2VkLCAwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxs
YmFja19hZGQodmlldywgIndpbmRvdyxvYmplY3QsY2xlYXJlZCIsIG9uV2luZG93T2JqZWN0Q2xl
YXJlZCwgbV9nY0NvbnRyb2xsZXIuZ2V0KCkpOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxi
YWNrX2FkZCh2aWV3LCAic3RhdHVzYmFyLHRleHQsc2V0Iiwgb25TdGF0dXNiYXJUZXh0U2V0LCAw
KTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQodmlldywgImxvYWQsZG9jdW1l
bnQsZmluaXNoZWQiLCBvbkRvY3VtZW50TG9hZEZpbmlzaGVkLCAwKTsKICAgICBldmFzX29iamVj
dF9zbWFydF9jYWxsYmFja19hZGQodmlldywgInJlc291cmNlLHJlcXVlc3Qsd2lsbHNlbmQiLCBv
bldpbGxTZW5kUmVxdWVzdCwgMCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRk
KHZpZXcsICJvbmxvYWQsZXZlbnQiLCBvbldlYlZpZXdPbmxvYWRFdmVudCwgMCk7CisgICAgZXZh
c19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHZpZXcsICJtaXhlZGNvbnRlbnQscnVuIiwgb25J
bnNlY3VyZUNvbnRlbnRSdW4sIDApOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2Fk
ZCh2aWV3LCAibWl4ZWRjb250ZW50LGRpc3BsYXllZCIsIG9uSW5zZWN1cmVDb250ZW50RGlzcGxh
eWVkLCAwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQodmlldywgImZyYW1l
LGNyZWF0ZWQiLCBvbkZyYW1lQ3JlYXRlZCwgMCk7CisKKyAgICBFdmFzX09iamVjdCogbWFpbkZy
YW1lID0gZXdrX3ZpZXdfZnJhbWVfbWFpbl9nZXQodmlldyk7CisgICAgZXZhc19vYmplY3Rfc21h
cnRfY2FsbGJhY2tfYWRkKG1haW5GcmFtZSwgImxvYWQscHJvdmlzaW9uYWwiLCBvbkZyYW1lUHJv
dmlzaW9uYWxMb2FkLCAwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQobWFp
bkZyYW1lLCAibG9hZCxjb21taXR0ZWQiLCBvbkZyYW1lTG9hZENvbW1pdHRlZCwgMCk7CisgICAg
ZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKG1haW5GcmFtZSwgImxvYWQsZmluaXNoZWQi
LCBvbkZyYW1lTG9hZEZpbmlzaGVkLCAwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFj
a19hZGQobWFpbkZyYW1lLCAibG9hZCxlcnJvciIsIG9uRnJhbWVMb2FkRXJyb3IsIDApOwogCiAg
ICAgcmV0dXJuIHZpZXc7CiB9CkBAIC0yMzEsMjQgKzI0MCwxNiBAQCB2b2lkIER1bXBSZW5kZXJU
cmVlQ2hyb21lOjpvbkxvYWRTdGFydGVkKHZvaWQqLCBFdmFzX09iamVjdCogdmlldywgdm9pZCop
CiAgICAgICAgIHRvcExvYWRpbmdGcmFtZSA9IGZyYW1lOwogfQogCi1FaW5hX0Jvb2wgRHVtcFJl
bmRlclRyZWVDaHJvbWU6OnByb2Nlc3NXb3JrKHZvaWQqIGRhdGEpCitFaW5hX0Jvb2wgRHVtcFJl
bmRlclRyZWVDaHJvbWU6OnByb2Nlc3NXb3JrKHZvaWQqKQogewotICAgIEV2YXNfT2JqZWN0KiBm
cmFtZSA9IHN0YXRpY19jYXN0PEV2YXNfT2JqZWN0Kj4oZGF0YSk7Ci0KICAgICBpZiAoV29ya1F1
ZXVlOjpzaGFyZWQoKS0+cHJvY2Vzc1dvcmsoKSAmJiAhZ0xheW91dFRlc3RDb250cm9sbGVyLT53
YWl0VG9EdW1wKCkpCiAgICAgICAgIGR1bXAoKTsKIAogICAgIHJldHVybiBFQ09SRV9DQUxMQkFD
S19DQU5DRUw7CiB9CiAKLXZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uTG9hZEZpbmlzaGVk
KHZvaWQqLCBFdmFzX09iamVjdCogdmlldywgdm9pZCopCit2b2lkIER1bXBSZW5kZXJUcmVlQ2hy
b21lOjp0b3BMb2FkaW5nRnJhbWVMb2FkRmluaXNoZWQoKQogewotICAgIC8vIEZJWE1FOiB3ZSBh
Y3R1YWxseSBuZWVkIHRoZSBmcmFtZSByZWxhdGVkIHRvIHRoaXMgZXZlbnQKLSAgICBFdmFzX09i
amVjdCogZnJhbWUgPSBld2tfdmlld19mcmFtZV9tYWluX2dldCh2aWV3KTsKLQotICAgIGlmICh0
b3BMb2FkaW5nRnJhbWUgIT0gZnJhbWUpCi0gICAgICAgIHJldHVybjsKLQogICAgIHRvcExvYWRp
bmdGcmFtZSA9IDA7CiAKICAgICBXb3JrUXVldWU6OnNoYXJlZCgpLT5zZXRGcm96ZW4odHJ1ZSk7
CkBAIC0yNTYsNyArMjU3LDcgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25Mb2FkRmlu
aXNoZWQodm9pZCosIEV2YXNfT2JqZWN0KiB2aWV3LCB2b2lkKikKICAgICAgICAgcmV0dXJuOwog
CiAgICAgaWYgKFdvcmtRdWV1ZTo6c2hhcmVkKCktPmNvdW50KCkpCi0gICAgICAgIGVjb3JlX2lk
bGVyX2FkZChwcm9jZXNzV29yaywgZnJhbWUpOworICAgICAgICBlY29yZV9pZGxlcl9hZGQocHJv
Y2Vzc1dvcmssIDAgLypmcmFtZSovKTsKICAgICBlbHNlCiAgICAgICAgIGR1bXAoKTsKIH0KQEAg
LTMxNCwzICszMTUsODEgQEAgdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25XaWxsU2VuZFJl
cXVlc3Qodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmYKICAgICAgICAgcmVxdWVz
dC0+dXJsID0gMDsKICAgICB9CiB9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uV2Vi
Vmlld09ubG9hZEV2ZW50KHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqIGV2ZW50SW5mbykKK3sK
KyAgICBjb25zdCBFdmFzX09iamVjdCogZnJhbWUgPSBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+
KGV2ZW50SW5mbyk7CisKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5k
dW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgY29uc3QgU3RyaW5nIGZyYW1lTmFt
ZShEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnN1aXRhYmxlRFJURnJhbWVOYW1lKGZyYW1lKSk7
CisgICAgICAgIHByaW50ZigiJXMgLSBkaWRIYW5kbGVPbmxvYWRFdmVudHNGb3JGcmFtZVxuIiwg
ZnJhbWVOYW1lLnV0ZjgoKS5kYXRhKCkpOworICAgIH0KK30KKwordm9pZCBEdW1wUmVuZGVyVHJl
ZUNocm9tZTo6b25JbnNlY3VyZUNvbnRlbnRSdW4odm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCop
Cit7CisgICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEZyYW1lTG9h
ZENhbGxiYWNrcygpKQorICAgICAgICBwcmludGYoImRpZFJ1bkluc2VjdXJlQ29udGVudFxuIik7
Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uSW5zZWN1cmVDb250ZW50RGlzcGxh
eWVkKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKQoreworICAgIGlmICghZG9uZSAmJiBnTGF5
b3V0VGVzdENvbnRyb2xsZXItPmR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKSkKKyAgICAgICAgcHJp
bnRmKCJkaWREaXNwbGF5SW5zZWN1cmVDb250ZW50XG4iKTsKK30KKwordm9pZCBEdW1wUmVuZGVy
VHJlZUNocm9tZTo6b25GcmFtZUNyZWF0ZWQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZl
bnRJbmZvKQoreworICAgIEV2YXNfT2JqZWN0KiBmcmFtZSA9IHN0YXRpY19jYXN0PEV2YXNfT2Jq
ZWN0Kj4oZXZlbnRJbmZvKTsKKworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChm
cmFtZSwgImxvYWQscHJvdmlzaW9uYWwiLCBvbkZyYW1lUHJvdmlzaW9uYWxMb2FkLCAwKTsKKyAg
ICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQoZnJhbWUsICJsb2FkLGNvbW1pdHRlZCIs
IG9uRnJhbWVMb2FkQ29tbWl0dGVkLCAwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFj
a19hZGQoZnJhbWUsICJsb2FkLGZpbmlzaGVkIiwgb25GcmFtZUxvYWRGaW5pc2hlZCwgMCk7Cisg
ICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGZyYW1lLCAibG9hZCxlcnJvciIsIG9u
RnJhbWVMb2FkRXJyb3IsIDApOworfQorCit2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZy
YW1lUHJvdmlzaW9uYWxMb2FkKHZvaWQqLCBFdmFzX09iamVjdCogZnJhbWUsIHZvaWQqKQorewor
ICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBGcmFtZUxvYWRDYWxs
YmFja3MoKSkgeworICAgICAgICBjb25zdCBTdHJpbmcgZnJhbWVOYW1lKER1bXBSZW5kZXJUcmVl
U3VwcG9ydEVmbDo6c3VpdGFibGVEUlRGcmFtZU5hbWUoZnJhbWUpKTsKKyAgICAgICAgcHJpbnRm
KCIlcyAtIGRpZFN0YXJ0UHJvdmlzaW9uYWxMb2FkRm9yRnJhbWVcbiIsIGZyYW1lTmFtZS51dGY4
KCkuZGF0YSgpKTsKKyAgICB9Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uRnJh
bWVMb2FkQ29tbWl0dGVkKHZvaWQqLCBFdmFzX09iamVjdCogZnJhbWUsIHZvaWQqKQoreworICAg
IGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBGcmFtZUxvYWRDYWxsYmFj
a3MoKSkgeworICAgICAgICBjb25zdCBTdHJpbmcgZnJhbWVOYW1lKER1bXBSZW5kZXJUcmVlU3Vw
cG9ydEVmbDo6c3VpdGFibGVEUlRGcmFtZU5hbWUoZnJhbWUpKTsKKyAgICAgICAgcHJpbnRmKCIl
cyAtIGRpZENvbW1pdExvYWRGb3JGcmFtZVxuIiwgZnJhbWVOYW1lLnV0ZjgoKS5kYXRhKCkpOwor
ICAgIH0KK30KKwordm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZUxvYWRGaW5pc2hl
ZCh2b2lkKiwgRXZhc19PYmplY3QqIGZyYW1lLCB2b2lkKiBldmVudEluZm8pCit7CisgICAgY29u
c3QgRXdrX0ZyYW1lX0xvYWRfRXJyb3IqIGVycm9yID0gc3RhdGljX2Nhc3Q8RXdrX0ZyYW1lX0xv
YWRfRXJyb3IqPihldmVudEluZm8pOworCisgICAgLy8gRUZMIHBvcnQgZW1pdHMgYm90aCAibG9h
ZCxmaW5pc2hlZCIgYW5kICJsb2FkLGVycm9yIiBzaWduYWxzIGluIGVycm9yIGNhc2UuCisgICAg
Ly8gRXJyb3IgY2FzZSBpcyB0aGVyZWZvcmUgYWxyZWFkeSBoYW5kbGVkIGluIG9uRnJhbWVMb2Fk
RXJyb3IoKSBhbmQgd2UgZG9uJ3QgbmVlZAorICAgIC8vIHRvIGhhbmRsZSBpdCBoZXJlLgorICAg
IGlmIChlcnJvcikKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKCFkb25lICYmIGdMYXlvdXRU
ZXN0Q29udHJvbGxlci0+ZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7CisgICAgICAgIGNvbnN0
IFN0cmluZyBmcmFtZU5hbWUoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzdWl0YWJsZURSVEZy
YW1lTmFtZShmcmFtZSkpOworICAgICAgICBwcmludGYoIiVzIC0gZGlkRmluaXNoTG9hZEZvckZy
YW1lXG4iLCBmcmFtZU5hbWUudXRmOCgpLmRhdGEoKSk7CisgICAgfQorCisgICAgaWYgKGZyYW1l
ID09IHRvcExvYWRpbmdGcmFtZSkKKyAgICAgICAgdG9wTG9hZGluZ0ZyYW1lTG9hZEZpbmlzaGVk
KCk7Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uRnJhbWVMb2FkRXJyb3Iodm9p
ZCosIEV2YXNfT2JqZWN0KiBmcmFtZSwgdm9pZCopCit7CisgICAgaWYgKCFkb25lICYmIGdMYXlv
dXRUZXN0Q29udHJvbGxlci0+ZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7CisgICAgICAgIGNv
bnN0IFN0cmluZyBmcmFtZU5hbWUoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzdWl0YWJsZURS
VEZyYW1lTmFtZShmcmFtZSkpOworICAgICAgICBwcmludGYoIiVzIC0gZGlkRmFpbExvYWRXaXRo
RXJyb3JcbiIsIGZyYW1lTmFtZS51dGY4KCkuZGF0YSgpKTsKKyAgICB9CisKKyAgICBpZiAoZnJh
bWUgPT0gdG9wTG9hZGluZ0ZyYW1lKQorICAgICAgICB0b3BMb2FkaW5nRnJhbWVMb2FkRmluaXNo
ZWQoKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVy
VHJlZUNocm9tZS5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hy
b21lLmgKaW5kZXggZTE1NmI0ZC4uYTUxMTJjYSAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRl
clRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRy
ZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmgKQEAgLTY4LDcgKzY4LDcgQEAgcHJpdmF0ZToK
IAogICAgIHN0YXRpYyBFaW5hX0Jvb2wgcHJvY2Vzc1dvcmsodm9pZCopOwogCi0gICAgc3RhdGlj
IHZvaWQgb25Mb2FkRmluaXNoZWQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopOworICAgIHN0
YXRpYyB2b2lkIHRvcExvYWRpbmdGcmFtZUxvYWRGaW5pc2hlZCgpOwogCiAgICAgc3RhdGljIHZv
aWQgb25TdGF0dXNiYXJUZXh0U2V0KHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKTsKIApAQCAt
NzcsNiArNzcsMjIgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBvbkRvY3VtZW50TG9hZEZp
bmlzaGVkKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKTsKIAogICAgIHN0YXRpYyB2b2lkIG9u
V2lsbFNlbmRSZXF1ZXN0KHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKTsKKworICAgIHN0YXRp
YyB2b2lkIG9uV2ViVmlld09ubG9hZEV2ZW50KHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKTsK
KworICAgIHN0YXRpYyB2b2lkIG9uSW5zZWN1cmVDb250ZW50UnVuKHZvaWQqLCBFdmFzX09iamVj
dCosIHZvaWQqKTsKKworICAgIHN0YXRpYyB2b2lkIG9uSW5zZWN1cmVDb250ZW50RGlzcGxheWVk
KHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKTsKKworICAgIHN0YXRpYyB2b2lkIG9uRnJhbWVD
cmVhdGVkKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQqKTsKKworICAgIHN0YXRpYyB2b2lkIG9u
RnJhbWVQcm92aXNpb25hbExvYWQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopOworCisgICAg
c3RhdGljIHZvaWQgb25GcmFtZUxvYWRDb21taXR0ZWQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9p
ZCopOworCisgICAgc3RhdGljIHZvaWQgb25GcmFtZUxvYWRGaW5pc2hlZCh2b2lkKiwgRXZhc19P
YmplY3QqLCB2b2lkKik7CisKKyAgICBzdGF0aWMgdm9pZCBvbkZyYW1lTG9hZEVycm9yKHZvaWQq
LCBFdmFzX09iamVjdCosIHZvaWQqKTsKIH07CiAKICNlbmRpZiAvLyBEdW1wUmVuZGVyVHJlZUNo
cm9tZV9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>137545</attachid>
            <date>2012-04-17 08:48:28 -0700</date>
            <delta_ts>2012-04-17 09:13:40 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>83030_dumpFrameLoadCallbacks_a.patch</filename>
            <type>text/plain</type>
            <size>20400</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA0MmNkMWEyLi4wODBhNGUwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTItMDQt
MTcgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KKworICAg
ICAgICBbRUZMXSBEUlQgc2hvdWxkIHN1cHBvcnQgTGF5b3V0VGVzdENvbnRyb2xsZXIncyBkdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTgzMDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50b25pbyBHb21lcy4K
KworICAgICAgICBVbnNraXAgdGhlIHRlc3QgY2FzZXMgaW4gRUZMIHdoaWNoIG5lZWRlZCBkdW1w
RnJhbWVMb2FkQ2FsbGJhY2tzKCkKKyAgICAgICAgc3VwcG9ydCBpbiB0aGUgRHVtcFJlbmRlclRy
ZWUgbm93IHRoYXQgaXQgaXMgaW1wbGVtZW50ZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9lZmwv
U2tpcHBlZDoKKwogMjAxMi0wNC0xNyAgU2hlcmlmZiBCb3QgIDx3ZWJraXQucmV2aWV3LmJvdEBn
bWFpbC5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjExNDM3Ni4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2VmbC9Ta2lwcGVkIGIvTGF5b3V0VGVzdHMv
cGxhdGZvcm0vZWZsL1NraXBwZWQKaW5kZXggMjEyZTA2OS4uYmY4NTk5MSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvcGxhdGZvcm0vZWZsL1NraXBwZWQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vZWZsL1NraXBwZWQKQEAgLTExNjMsNyArMTE2Myw2IEBAIGh0dHAvdGVzdHMvaGlzdG9yeS9i
YWNrLXdpdGgtZnJhZ21lbnQtY2hhbmdlLnBocAogIyBGYWlsaW5nIGh0dHAgdGVzdHMgKHZpYSBH
VEsrKQogaHR0cC90ZXN0cy9sb2FkaW5nL2JhZC1zY2hlbWUtc3ViZnJhbWUuaHRtbAogaHR0cC90
ZXN0cy9sb2FkaW5nL2JhZC1zZXJ2ZXItc3ViZnJhbWUuaHRtbAotaHR0cC90ZXN0cy9sb2FkaW5n
L2dtYWlsLWFzc2VydC1vbi1sb2FkLmh0bWwKIGh0dHAvdGVzdHMvbG9hZGluZy9yZWRpcmVjdC13
aXRoLW5vLWxvY2F0aW9uLWNyYXNoLmh0bWwKIGh0dHAvdGVzdHMvbG9hZGluZy90ZXh0LWNvbnRl
bnQtdHlwZS13aXRoLWJpbmFyeS1leHRlbnNpb24uaHRtbAogaHR0cC90ZXN0cy9tZWRpYS92aWRl
by1wbGF5LXN0YWxsLXNlZWsuaHRtbApAQCAtMTM2OCw3ICsxMzY3LDYgQEAgZmFzdC9odG1sL2Rl
dGFpbHMtbW91c2UtY2xpY2suaHRtbAogZmFzdC9odG1sL3RhYi1vcmRlci5odG1sCiBmYXN0L2lu
bGluZS9za2lwcGVkLXdoaXRlc3BhY2UtYm91bmRpbmdCb3guaHRtbAogZmFzdC9sb2FkZXIvZnJh
Z21lbnQtYWZ0ZXItcmVkaXJlY3QtZ2V0cy1iYWNrLWVudHJ5Lmh0bWwKLWZhc3QvbG9hZGVyL3N1
YmZyYW1lLXJlbW92ZXMtaXRzZWxmLmh0bWwKIGZhc3QvbXVsdGljb2wvY2xpZW50LXJlY3RzLmh0
bWwKIGZhc3QvbXVsdGljb2wvc2luZ2xlLWxpbmUuaHRtbAogZmFzdC9vdmVyZmxvdy9vdmVyZmxv
dy15LXNjcm9sbC5odG1sCkBAIC0yMzM1LDcgKzIzMzMsNiBAQCBodHRwL3Rlc3RzL3NlY3VyaXR5
L21peGVkQ29udGVudC9hYm91dC1ibGFuay1pZnJhbWUtaW4tbWFpbi1mcmFtZS5odG1sCiBodHRw
L3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9kYXRhLXVybC1pZnJhbWUtaW4tbWFpbi1mcmFt
ZS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9kYXRhLXVybC1zY3JpcHQt
aW4taWZyYW1lLmh0bWwKIGh0dHAvdGVzdHMvc2VjdXJpdHkvbWl4ZWRDb250ZW50L2luc2VjdXJl
LWNzcy1pbi1pZnJhbWUuaHRtbAotaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENvbnRlbnQvaW5z
ZWN1cmUtY3NzLWluLW1haW4tZnJhbWUuaHRtbAogaHR0cC90ZXN0cy9zZWN1cml0eS9taXhlZENv
bnRlbnQvaW5zZWN1cmUtaWZyYW1lLWluLWlmcmFtZS5odG1sCiBodHRwL3Rlc3RzL3NlY3VyaXR5
L21peGVkQ29udGVudC9pbnNlY3VyZS1pZnJhbWUtaW4tbWFpbi1mcmFtZS5odG1sCiBodHRwL3Rl
c3RzL3NlY3VyaXR5L21peGVkQ29udGVudC9pbnNlY3VyZS1pbWFnZS1pbi1pZnJhbWUuaHRtbApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9l
ZmwvQ2hhbmdlTG9nCmluZGV4IDE1MzdlZDYuLmI3ZWQzOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvZWZsL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyOCBAQAorMjAxMi0wNC0xNyAgQ2hyaXN0b3BoZSBEdW1leiAgPGNocmlzdG9waGUu
ZHVtZXpAaW50ZWwuY29tPgorCisgICAgICAgIFtFRkxdIERSVCBzaG91bGQgc3VwcG9ydCBMYXlv
dXRUZXN0Q29udHJvbGxlcidzIGR1bXBGcmFtZUxvYWRDYWxsYmFja3MoKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9ODMwMzAKKworICAgICAgICBSZXZp
ZXdlZCBieSBBbnRvbmlvIEdvbWVzLgorCisgICAgICAgIEVtaXQgImxvYWQsc3RhcnRlZCIgYW5k
ICJvbmxvYWQsZXZlbnQiIHNpZ25hbHMgbmVlZGVkIHRvIHN1cHBvcnQKKyAgICAgICAgTGF5b3V0
VGVzdENvbnRyb2xsZXIncyBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkgaW4gRUZMJ3MgRHVtcFJl
bmRlclRyZWUuCisKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVm
bC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hE
aWRIYW5kbGVPbmxvYWRFdmVudHMpOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVMb2FkZXJDbGll
bnRFZmw6OmRpc3BhdGNoRGlkQ29tbWl0TG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZUxv
YWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZCk6CisgICAgICAgICogZXdrL2V3a19m
cmFtZS5jcHA6CisgICAgICAgIChld2tfZnJhbWVfbG9hZF9jb21taXR0ZWQpOgorICAgICAgICAo
ZXdrX2ZyYW1lX2xvYWRfc3RhcnRlZCk6CisgICAgICAgICogZXdrL2V3a19mcmFtZS5oOgorICAg
ICAgICAqIGV3ay9ld2tfcHJpdmF0ZS5oOgorICAgICAgICAqIGV3ay9ld2tfdmlldy5jcHA6Cisg
ICAgICAgIChfRXdrX1ZpZXdfUHJpdmF0ZV9EYXRhKToKKyAgICAgICAgKGV3a192aWV3X2xvYWRf
c3RhcnRlZCk6CisgICAgICAgIChld2tfdmlld19vbmxvYWRfZXZlbnQpOgorICAgICAgICAqIGV3
ay9ld2tfdmlldy5oOgorCiAyMDEyLTA0LTE3ICBTaGVyaWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcu
Ym90QGdtYWlsLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTE0Mzc2
LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2Fk
ZXJDbGllbnRFZmwuY3BwIGIvU291cmNlL1dlYktpdC9lZmwvV2ViQ29yZVN1cHBvcnQvRnJhbWVM
b2FkZXJDbGllbnRFZmwuY3BwCmluZGV4IDkzNTE4MjkuLjY3OGNkYTUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvZWZsL1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50RWZsLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L2VmbC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudEVm
bC5jcHAKQEAgLTU0NCw3ICs1NDQsNyBAQCB2b2lkIEZyYW1lTG9hZGVyQ2xpZW50RWZsOjpsb2Fk
ZWRGcm9tQ2FjaGVkUGFnZSgpCiAKIHZvaWQgRnJhbWVMb2FkZXJDbGllbnRFZmw6OmRpc3BhdGNo
RGlkSGFuZGxlT25sb2FkRXZlbnRzKCkKIHsKLSAgICBub3RJbXBsZW1lbnRlZCgpOworICAgIGV3
a192aWV3X29ubG9hZF9ldmVudChtX3ZpZXcsIG1fZnJhbWUpOwogfQogCiB2b2lkIEZyYW1lTG9h
ZGVyQ2xpZW50RWZsOjpkaXNwYXRjaERpZFJlY2VpdmVTZXJ2ZXJSZWRpcmVjdEZvclByb3Zpc2lv
bmFsTG9hZCgpCkBAIC02MTEsNiArNjExLDcgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6
ZGlzcGF0Y2hEaWRDaGFuZ2VJY29ucyhXZWJDb3JlOjpJY29uVHlwZSkKIHZvaWQgRnJhbWVMb2Fk
ZXJDbGllbnRFZmw6OmRpc3BhdGNoRGlkQ29tbWl0TG9hZCgpCiB7CiAgICAgZXdrX2ZyYW1lX3Vy
aV9jaGFuZ2VkKG1fZnJhbWUpOworICAgIGV3a19mcmFtZV9sb2FkX2NvbW1pdHRlZChtX2ZyYW1l
KTsKICAgICBpZiAoZXdrX3ZpZXdfZnJhbWVfbWFpbl9nZXQobV92aWV3KSAhPSBtX2ZyYW1lKQog
ICAgICAgICByZXR1cm47CiAgICAgZXdrX3ZpZXdfdGl0bGVfc2V0KG1fdmlldywgMCk7CkBAIC03
NjEsOSArNzYyLDYgQEAgdm9pZCBGcmFtZUxvYWRlckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRGYWls
UHJvdmlzaW9uYWxMb2FkKGNvbnN0IFJlc291cmNlRXJyb3ImIGUKIAogdm9pZCBGcmFtZUxvYWRl
ckNsaWVudEVmbDo6ZGlzcGF0Y2hEaWRGYWlsTG9hZChjb25zdCBSZXNvdXJjZUVycm9yJiBlcnIp
CiB7Ci0gICAgaWYgKCFzaG91bGRGYWxsQmFjayhlcnIpKQotICAgICAgICByZXR1cm47Ci0KICAg
ICBtX2xvYWRFcnJvciA9IGVycjsKICAgICBld2tfZnJhbWVfbG9hZF9lcnJvcihtX2ZyYW1lLAog
ICAgICAgICAgICAgICAgICAgICAgICAgIG1fbG9hZEVycm9yLmRvbWFpbigpLnV0ZjgoKS5kYXRh
KCksCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX2ZyYW1lLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCmluZGV4IGVmY2E4NmMuLjhlMDc3OTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuY3BwCkBAIC0xMjYxLDYgKzEyNjEsMTcgQEAg
dm9pZCBld2tfZnJhbWVfdmlld19zdGF0ZV9zYXZlKEV2YXNfT2JqZWN0KiBld2tGcmFtZSwgV2Vi
Q29yZTo6SGlzdG9yeUl0ZW0qIGl0ZW0KIAogLyoqCiAgKiBAaW50ZXJuYWwKKyAqIFJlcG9ydHMg
dGhlIGZyYW1lIGNvbW1pdHRlZCBsb2FkLgorICoKKyAqIEVtaXRzIHNpZ25hbDogImxvYWQsY29t
bWl0dGVkIiB3aXRoIG5vIHBhcmFtZXRlcnMuCisgKi8KK3ZvaWQgZXdrX2ZyYW1lX2xvYWRfY29t
bWl0dGVkKEV2YXNfT2JqZWN0KiBld2tGcmFtZSkKK3sKKyAgICBldmFzX29iamVjdF9zbWFydF9j
YWxsYmFja19jYWxsKGV3a0ZyYW1lLCAibG9hZCxjb21taXR0ZWQiLCAwKTsKK30KKworLyoqCisg
KiBAaW50ZXJuYWwKICAqIFJlcG9ydHMgdGhlIGZyYW1lIHN0YXJ0ZWQgbG9hZGluZyBzb21ldGhp
bmcuCiAgKgogICogRW1pdHMgc2lnbmFsOiAibG9hZCxzdGFydGVkIiB3aXRoIG5vIHBhcmFtZXRl
cnMuCkBAIC0xMjcxLDcgKzEyODIsNyBAQCB2b2lkIGV3a19mcmFtZV9sb2FkX3N0YXJ0ZWQoRXZh
c19PYmplY3QqIGV3a0ZyYW1lKQogICAgIERCRygiZXdrRnJhbWU9JXAiLCBld2tGcmFtZSk7CiAg
ICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2FsbChld2tGcmFtZSwgImxvYWQsc3RhcnRl
ZCIsIDApOwogICAgIEVXS19GUkFNRV9TRF9HRVRfT1JfUkVUVVJOKGV3a0ZyYW1lLCBzbWFydERh
dGEpOwotICAgIGV3a192aWV3X2xvYWRfc3RhcnRlZChzbWFydERhdGEtPnZpZXcpOworICAgIGV3
a192aWV3X2xvYWRfc3RhcnRlZChzbWFydERhdGEtPnZpZXcsIGV3a0ZyYW1lKTsKIAogICAgIG1h
aW5GcmFtZSA9IGV3a192aWV3X2ZyYW1lX21haW5fZ2V0KHNtYXJ0RGF0YS0+dmlldyk7CiAgICAg
aWYgKG1haW5GcmFtZSA9PSBld2tGcmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvZWZs
L2V3ay9ld2tfZnJhbWUuaCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfZnJhbWUuaAppbmRl
eCA5NDI0MjhjLi5kZDNhOGQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdr
X2ZyYW1lLmgKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a19mcmFtZS5oCkBAIC0zOSw2
ICszOSw3IEBACiAgKiAgICAgd2VyZSBjaGFuZ2VkIGR1ZSBuZXcgbGF5b3V0LCBzY3JpcHQgYWN0
aW9ucyBvciBhbnkgb3RoZXIgZXZlbnRzLgogICogIC0gImVkaXRvcmNsaWVudCxjb250ZW50cyxj
aGFuZ2VkIiwgdm9pZDogcmVwb3J0cyB0aGF0IGVkaXRvciBjbGllbnQncwogICogICAgY29udGVu
dHMgd2VyZSBjaGFuZ2VkCisgKiAgLSAibG9hZCxjb21taXR0ZWQiLCB2b2lkOiByZXBvcnRzIGxv
YWQgY29tbWl0dGVkLgogICogIC0gImxvYWQsZG9jdW1lbnQsZmluaXNoZWQiLCB2b2lkOiBmcmFt
ZSBmaW5pc2hlZCBsb2FkaW5nIHRoZSBkb2N1bWVudC4KICAqICAtICJsb2FkLGVycm9yIiwgY29u
c3QgRXdrX0ZyYW1lX0xvYWRfRXJyb3IqOiByZXBvcnRzIGxvYWQgZmFpbGVkCiAgKiAgICBhbmQg
aXQgZ2l2ZXMgYSBwb2ludGVyIHRvIHN0cnVjdHVyZSBkZWZpbmluZyB0aGUgZXJyb3IgYXMgYW4g
YXJndW1lbnQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ByaXZhdGUu
aCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCmluZGV4IDI2NDA5ZTMuLjI0
YWZmZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfcHJpdmF0ZS5oCkBAIC0xMDksNyArMTA5LDcg
QEAgdm9pZCBld2tfdmlld19pbnB1dF9tZXRob2Rfc3RhdGVfc2V0KEV2YXNfT2JqZWN0KiBld2tW
aWV3LCBib29sIGFjdGl2ZSk7CiB2b2lkIGV3a192aWV3X3RpdGxlX3NldChFdmFzX09iamVjdCog
ZXdrVmlldywgY29uc3QgY2hhciogdGl0bGUpOwogdm9pZCBld2tfdmlld191cmlfY2hhbmdlZChF
dmFzX09iamVjdCogZXdrVmlldyk7CiB2b2lkIGV3a192aWV3X2xvYWRfZG9jdW1lbnRfZmluaXNo
ZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSk7Ci12b2lkIGV3a192
aWV3X2xvYWRfc3RhcnRlZChFdmFzX09iamVjdCogZXdrVmlldyk7Cit2b2lkIGV3a192aWV3X2xv
YWRfc3RhcnRlZChFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGV3a0ZyYW1lKTsK
IHZvaWQgZXdrX3ZpZXdfbG9hZF9wcm92aXNpb25hbChFdmFzX09iamVjdCogZXdrVmlldyk7CiB2
b2lkIGV3a192aWV3X2ZyYW1lX21haW5fbG9hZF9zdGFydGVkKEV2YXNfT2JqZWN0KiBld2tWaWV3
KTsKIHZvaWQgZXdrX3ZpZXdfZnJhbWVfbWFpbl9jbGVhcmVkKEV2YXNfT2JqZWN0KiBld2tWaWV3
KTsKQEAgLTExOCw2ICsxMTgsNyBAQCB2b2lkIGV3a192aWV3X2xvYWRfZmluaXNoZWQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIGNvbnN0IEV3a19GcmFtZV9Mb2FkX0Vycm9yKiBlcgogdm9pZCBld2tf
dmlld19sb2FkX2Vycm9yKEV2YXNfT2JqZWN0KiBld2tWaWV3LCBjb25zdCBFd2tfRnJhbWVfTG9h
ZF9FcnJvciogZXJyb3IpOwogdm9pZCBld2tfdmlld19sb2FkX3Byb2dyZXNzX2NoYW5nZWQoRXZh
c19PYmplY3QqIGV3a1ZpZXcpOwogdm9pZCBld2tfdmlld19sb2FkX3Nob3coRXZhc19PYmplY3Qq
IGV3a1ZpZXcpOwordm9pZCBld2tfdmlld19vbmxvYWRfZXZlbnQoRXZhc19PYmplY3QqIGV3a1Zp
ZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSk7CiB2b2lkIGV3a192aWV3X3Jlc3RvcmVfc3RhdGUoRXZh
c19PYmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSk7CiBFdmFzX09iamVjdCogZXdr
X3ZpZXdfd2luZG93X2NyZWF0ZShFdmFzX09iamVjdCogZXdrVmlldywgYm9vbCBqYXZhc2NyaXB0
LCBjb25zdCBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyogY29yZUZlYXR1cmVzKTsKIHZvaWQgZXdr
X3ZpZXdfd2luZG93X2Nsb3NlKEV2YXNfT2JqZWN0KiBld2tWaWV3KTsKQEAgLTIxMSw2ICsyMTIs
NyBAQCB2b2lkIGV3a19mcmFtZV92aWV3X3NldChFdmFzX09iamVjdCogZXdrRnJhbWUsIEV2YXNf
T2JqZWN0KiBuZXdQYXJlbnQpOwogCiB2b2lkIGV3a19mcmFtZV9jb3JlX2dvbmUoRXZhc19PYmpl
Y3QqIGV3a0ZyYW1lKTsKIAordm9pZCBld2tfZnJhbWVfbG9hZF9jb21taXR0ZWQoRXZhc19PYmpl
Y3QqIGV3a0ZyYW1lKTsKIHZvaWQgZXdrX2ZyYW1lX2xvYWRfc3RhcnRlZChFdmFzX09iamVjdCog
ZXdrRnJhbWUpOwogdm9pZCBld2tfZnJhbWVfbG9hZF9wcm92aXNpb25hbChFdmFzX09iamVjdCog
ZXdrRnJhbWUpOwogdm9pZCBld2tfZnJhbWVfbG9hZF9maXJzdGxheW91dF9maW5pc2hlZChFdmFz
X09iamVjdCogZXdrRnJhbWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3
a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmlldy5jcHAKaW5kZXggMTg2
MGFhYWQuLjZiMTgxMGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvZWZsL2V3ay9ld2tfdmll
dy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmNwcApAQCAtMjgxMywx
MyArMjgxMywxNCBAQCB2b2lkIGV3a192aWV3X2xvYWRfZG9jdW1lbnRfZmluaXNoZWQoRXZhc19P
YmplY3QqIGV3a1ZpZXcsIEV2YXNfT2JqZWN0KiBmcmFtZSkKICAqIFJlcG9ydHMgdGhlIHZpZXcg
c3RhcnRlZCBsb2FkaW5nIHNvbWV0aGluZy4KICAqCiAgKiBAcGFyYW0gZXdrVmlldyBWaWV3Lgor
ICogQHBhcmFtIGV3a0ZyYW1lIEZyYW1lIGJlaW5nIGxvYWRlZC4KICAqCiAgKiBFbWl0cyBzaWdu
YWw6ICJsb2FkLHN0YXJ0ZWQiIHdpdGggbm8gcGFyYW1ldGVycy4KICAqLwotdm9pZCBld2tfdmll
d19sb2FkX3N0YXJ0ZWQoRXZhc19PYmplY3QqIGV3a1ZpZXcpCit2b2lkIGV3a192aWV3X2xvYWRf
c3RhcnRlZChFdmFzX09iamVjdCogZXdrVmlldywgRXZhc19PYmplY3QqIGV3a0ZyYW1lKQogewot
ICAgIERCRygiZXdrVmlldz0lcCIsIGV3a1ZpZXcpOwotICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2Nh
bGxiYWNrX2NhbGwoZXdrVmlldywgImxvYWQsc3RhcnRlZCIsIDApOworICAgIERCRygiZXdrVmll
dz0lcCwgZXdrRnJhbWU9JXAiLCBld2tWaWV3LCBld2tGcmFtZSk7CisgICAgZXZhc19vYmplY3Rf
c21hcnRfY2FsbGJhY2tfY2FsbChld2tWaWV3LCAibG9hZCxzdGFydGVkIiwgZXdrRnJhbWUpOwog
fQogCiAvKioKQEAgLTI4NjQsNiArMjg2NSwxOSBAQCB2b2lkIGV3a192aWV3X2xvYWRfc2hvdyhF
dmFzX09iamVjdCogZXdrVmlldykKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19jYWxs
KGV3a1ZpZXcsICJsb2FkLG5ld3dpbmRvdyxzaG93IiwgMCk7CiB9CiAKKy8qKgorICogQGludGVy
bmFsCisgKiBSZXBvcnRzIGFuIG9ubG9hZCBldmVudCBmb3IgQHAgZnJhbWUuCisgKgorICogQHBh
cmFtIGV3a1ZpZXcgVmlldyB3aGljaCBjb250YWlucyB0aGUgZnJhbWUuCisgKiBAcGFyYW0gZnJh
bWUgVGhlIGZyYW1lIHdob3NlIG9ubG9hZCBldmVudCB3YXMgcmVjZWl2ZWQuCisgKgorICogRW1p
dHMgc2lnbmFsOiAib25sb2FkLGV2ZW50IiB3aXRoIEBwIGZyYW1lIGFzIHRoZSBwYXJhbWV0ZXIu
CisgKi8KK3ZvaWQgZXdrX3ZpZXdfb25sb2FkX2V2ZW50KEV2YXNfT2JqZWN0KiBld2tWaWV3LCBF
dmFzX09iamVjdCogZnJhbWUpCit7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfY2Fs
bChld2tWaWV3LCAib25sb2FkLGV2ZW50IiwgZnJhbWUpOworfQogCiAvKioKICAqIEBpbnRlcm5h
bApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9lZmwvZXdrL2V3a192aWV3LmggYi9Tb3VyY2Uv
V2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAppbmRleCAzNzQzODk4Li44MjNhOGQwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2VmbC9ld2svZXdrX3ZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2VmbC9ld2svZXdrX3ZpZXcuaApAQCAtNjAsMTIgKzYwLDEzIEBACiAgKiAgLSAibG9hZCxwcm9n
cmVzcyIsIGRvdWJsZSo6IGxvYWQgcHJvZ3Jlc3MgaXMgY2hhbmdlZCAob3ZlcmFsbCB2YWx1ZQog
ICogICAgZnJvbSAwLjAgdG8gMS4wLCBjb25uZWN0IHRvIGluZGl2aWR1YWwgZnJhbWVzIGZvciBm
aW5lIGdyYWluZWQpLgogICogIC0gImxvYWQscHJvdmlzaW9uYWwiLCB2b2lkOiB2aWV3IHN0YXJ0
ZWQgcHJvdmlzaW9uYWwgbG9hZC4KLSAqICAtICJsb2FkLHN0YXJ0ZWQiLCB2b2lkOiBmcmFtZSBz
dGFydGVkIGxvYWRpbmcgdGhlIGRvY3VtZW50LgorICogIC0gImxvYWQsc3RhcnRlZCIsIEV2YXNf
T2JqZWN0KjogZnJhbWUgc3RhcnRlZCBsb2FkaW5nIHRoZSBkb2N1bWVudC4KICAqICAtICJtZW51
YmFyLHZpc2libGUsZ2V0IiwgRWluYV9Cb29sICo6IGV4cGVjdHMgYSBAYyBFSU5BX1RSVUUgaWYg
bWVudWJhciBpcwogICogICAgdmlzaWJsZTsgQGMgRUlOQV9GQUxTRSwgb3RoZXJ3aXNlLgogICog
IC0gIm1lbnViYXIsdmlzaWJsZSxzZXQiLCBFaW5hX0Jvb2w6IHNldHMgbWVudWJhciB2aXNpYmls
aXR5LgogICogIC0gIm1peGVkY29udGVudCxkaXNwbGF5ZWQiLCB2b2lkOiBhbnkgb2YgdGhlIGNv
bnRhaW5pbmcgZnJhbWVzIGhhcyBsb2FkZWQgYW5kIGRpc3BsYXllZCBtaXhlZCBjb250ZW50Lgog
ICogIC0gIm1peGVkY29udGVudCxydW4iLCB2b2lkOiBhbnkgb2YgdGhlIGNvbnRhaW5pbmcgZnJh
bWVzIGhhcyBsb2FkZWQgYW5kIHJ1biBtaXhlZCBjb250ZW50LgorICogIC0gIm9ubG9hZCxldmVu
dCIsIEV2YXNfT2JqZWN0KjogYSBmcmFtZSBvbmxvYWQgZXZlbnQgaGFzIGJlZW4gcmVjZWl2ZWQu
CiAgKiAgLSAicmVhZHkiLCB2b2lkOiBwYWdlIGlzIGZ1bGx5IGxvYWRlZC4KICAqICAtICJyZXNv
dXJjZSxyZXF1ZXN0LHdpbGxzZW5kIiwgRXdrX0ZyYW1lX1Jlc291cmNlX1JlcXVlc3QqOiBhIHJl
c291cmNlIHdpbGwKICAqICAgIGJlIHJlcXVlc3RlZC4KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5n
ZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA2NDg1ZjNiLi5jMGI5YmJlIDEwMDY0NAotLS0g
YS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAK
KzIwMTItMDQtMTcgIENocmlzdG9waGUgRHVtZXogIDxjaHJpc3RvcGhlLmR1bWV6QGludGVsLmNv
bT4KKworICAgICAgICBbRUZMXSBEUlQgc2hvdWxkIHN1cHBvcnQgTGF5b3V0VGVzdENvbnRyb2xs
ZXIncyBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTgzMDMwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW50b25p
byBHb21lcy4KKworICAgICAgICBJbXBsZW1lbnQgc3VwcG9ydCBmb3IgTGF5b3V0VGVzdENvbnRy
b2xsZXIncyBkdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkKKyAgICAgICAgaW4gRUZMJ3MgRHVtcFJl
bmRlclRyZWUuIE1ha2UgdXNlIG9mIHRoZSBuZXcgZnJhbWUgYXJndW1lbnQgcGFzc2VkIHRvCisg
ICAgICAgIHRoZSAibG9hZCxzdGFydGVkIiBhbmQgImxvYWQsZmluaXNoZWQiIHNpZ25hbHMuCisK
KyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwOgor
ICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJvbWU6OmNyZWF0ZVZpZXcpOgorICAgICAgICAoRHVt
cFJlbmRlclRyZWVDaHJvbWU6Om9uTG9hZFN0YXJ0ZWQpOgorICAgICAgICAoRHVtcFJlbmRlclRy
ZWVDaHJvbWU6OnByb2Nlc3NXb3JrKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjp0
b3BMb2FkaW5nRnJhbWVMb2FkRmluaXNoZWQpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJv
bWU6Om9uV2ViVmlld09ubG9hZEV2ZW50KToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21l
Ojpvbkluc2VjdXJlQ29udGVudFJ1bik6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6
b25JbnNlY3VyZUNvbnRlbnREaXNwbGF5ZWQpOgorICAgICAgICAoRHVtcFJlbmRlclRyZWVDaHJv
bWU6Om9uRnJhbWVDcmVhdGVkKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZy
YW1lUHJvdmlzaW9uYWxMb2FkKToKKyAgICAgICAgKER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZy
YW1lTG9hZENvbW1pdHRlZCk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFt
ZUxvYWRGaW5pc2hlZCk6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZUxv
YWRFcnJvcik6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hy
b21lLmg6CisgICAgICAgIChEdW1wUmVuZGVyVHJlZUNocm9tZSk6CisKIDIwMTItMDQtMTcgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMTQzNzYuCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
ZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmNwcAppbmRleCBiMzllMTI1Li43YmEzYjhiIDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuY3Bw
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2VmbC9EdW1wUmVuZGVyVHJlZUNocm9tZS5jcHAK
QEAgLTkwLDEyICs5MCwyMSBAQCBFdmFzX09iamVjdCogRHVtcFJlbmRlclRyZWVDaHJvbWU6OmNy
ZWF0ZVZpZXcoKSBjb25zdAogICAgIGV3a192aWV3X3RoZW1lX3NldCh2aWV3LCBEQVRBX0RJUiIv
ZGVmYXVsdC5lZGoiKTsKIAogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2aWV3
LCAibG9hZCxzdGFydGVkIiwgb25Mb2FkU3RhcnRlZCwgMCk7Ci0gICAgZXZhc19vYmplY3Rfc21h
cnRfY2FsbGJhY2tfYWRkKHZpZXcsICJsb2FkLGZpbmlzaGVkIiwgb25Mb2FkRmluaXNoZWQsIDAp
OwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2aWV3LCAidGl0bGUsY2hhbmdl
ZCIsIG9uVGl0bGVDaGFuZ2VkLCAwKTsKICAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19h
ZGQodmlldywgIndpbmRvdyxvYmplY3QsY2xlYXJlZCIsIG9uV2luZG93T2JqZWN0Q2xlYXJlZCwg
bV9nY0NvbnRyb2xsZXIuZ2V0KCkpOwogICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2Fk
ZCh2aWV3LCAic3RhdHVzYmFyLHRleHQsc2V0Iiwgb25TdGF0dXNiYXJUZXh0U2V0LCAwKTsKICAg
ICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQodmlldywgImxvYWQsZG9jdW1lbnQsZmlu
aXNoZWQiLCBvbkRvY3VtZW50TG9hZEZpbmlzaGVkLCAwKTsKICAgICBldmFzX29iamVjdF9zbWFy
dF9jYWxsYmFja19hZGQodmlldywgInJlc291cmNlLHJlcXVlc3Qsd2lsbHNlbmQiLCBvbldpbGxT
ZW5kUmVxdWVzdCwgMCk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKHZpZXcs
ICJvbmxvYWQsZXZlbnQiLCBvbldlYlZpZXdPbmxvYWRFdmVudCwgMCk7CisgICAgZXZhc19vYmpl
Y3Rfc21hcnRfY2FsbGJhY2tfYWRkKHZpZXcsICJtaXhlZGNvbnRlbnQscnVuIiwgb25JbnNlY3Vy
ZUNvbnRlbnRSdW4sIDApOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZCh2aWV3
LCAibWl4ZWRjb250ZW50LGRpc3BsYXllZCIsIG9uSW5zZWN1cmVDb250ZW50RGlzcGxheWVkLCAw
KTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQodmlldywgImZyYW1lLGNyZWF0
ZWQiLCBvbkZyYW1lQ3JlYXRlZCwgMCk7CisKKyAgICBFdmFzX09iamVjdCogbWFpbkZyYW1lID0g
ZXdrX3ZpZXdfZnJhbWVfbWFpbl9nZXQodmlldyk7CisgICAgZXZhc19vYmplY3Rfc21hcnRfY2Fs
bGJhY2tfYWRkKG1haW5GcmFtZSwgImxvYWQscHJvdmlzaW9uYWwiLCBvbkZyYW1lUHJvdmlzaW9u
YWxMb2FkLCAwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQobWFpbkZyYW1l
LCAibG9hZCxjb21taXR0ZWQiLCBvbkZyYW1lTG9hZENvbW1pdHRlZCwgMCk7CisgICAgZXZhc19v
YmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKG1haW5GcmFtZSwgImxvYWQsZmluaXNoZWQiLCBvbkZy
YW1lTG9hZEZpbmlzaGVkLCAwKTsKKyAgICBldmFzX29iamVjdF9zbWFydF9jYWxsYmFja19hZGQo
bWFpbkZyYW1lLCAibG9hZCxlcnJvciIsIG9uRnJhbWVMb2FkRXJyb3IsIDApOwogCiAgICAgcmV0
dXJuIHZpZXc7CiB9CkBAIC0yMjAsMTAgKzIyOSw5IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVDaHJv
bWU6Om9uV2luZG93T2JqZWN0Q2xlYXJlZCh2b2lkKiB1c2VyRGF0YSwgRXZhc19PYmplY3QqLCB2
CiAgICAgV2ViQ29yZVRlc3RTdXBwb3J0OjppbmplY3RJbnRlcm5hbHNPYmplY3Qob2JqZWN0Q2xl
YXJlZEluZm8tPmNvbnRleHQpOwogfQogCi12b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkxv
YWRTdGFydGVkKHZvaWQqLCBFdmFzX09iamVjdCogdmlldywgdm9pZCopCit2b2lkIER1bXBSZW5k
ZXJUcmVlQ2hyb21lOjpvbkxvYWRTdGFydGVkKHZvaWQqLCBFdmFzX09iamVjdCogdmlldywgdm9p
ZCogZXZlbnRJbmZvKQogewotICAgIC8vIEZJWE1FOiB3ZSBhY3R1YWxseSBuZWVkIHRoZSBmcmFt
ZSByZWxhdGVkIHRvIHRoaXMgZXZlbnQKLSAgICBFdmFzX09iamVjdCogZnJhbWUgPSBld2tfdmll
d19mcmFtZV9tYWluX2dldCh2aWV3KTsKKyAgICBFdmFzX09iamVjdCogZnJhbWUgPSBzdGF0aWNf
Y2FzdDxFdmFzX09iamVjdCo+KGV2ZW50SW5mbyk7CiAKICAgICAvLyBNYWtlIHN1cmUgd2Ugb25s
eSBzZXQgdGhpcyBvbmNlIHBlciB0ZXN0LiBJZiBpdCBnZXRzIGNsZWFyZWQsIGFuZCB0aGVuIHNl
dCBhZ2Fpbiwgd2UgbWlnaHQKICAgICAvLyBlbmQgdXAgZG9pbmcgdHdvIGR1bXBzIGZvciBvbmUg
dGVzdC4KQEAgLTIzMSwyNCArMjM5LDE2IEBAIHZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9u
TG9hZFN0YXJ0ZWQodm9pZCosIEV2YXNfT2JqZWN0KiB2aWV3LCB2b2lkKikKICAgICAgICAgdG9w
TG9hZGluZ0ZyYW1lID0gZnJhbWU7CiB9CiAKLUVpbmFfQm9vbCBEdW1wUmVuZGVyVHJlZUNocm9t
ZTo6cHJvY2Vzc1dvcmsodm9pZCogZGF0YSkKK0VpbmFfQm9vbCBEdW1wUmVuZGVyVHJlZUNocm9t
ZTo6cHJvY2Vzc1dvcmsodm9pZCopCiB7Ci0gICAgRXZhc19PYmplY3QqIGZyYW1lID0gc3RhdGlj
X2Nhc3Q8RXZhc19PYmplY3QqPihkYXRhKTsKLQogICAgIGlmIChXb3JrUXVldWU6OnNoYXJlZCgp
LT5wcm9jZXNzV29yaygpICYmICFnTGF5b3V0VGVzdENvbnRyb2xsZXItPndhaXRUb0R1bXAoKSkK
ICAgICAgICAgZHVtcCgpOwogCiAgICAgcmV0dXJuIEVDT1JFX0NBTExCQUNLX0NBTkNFTDsKIH0K
IAotdm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25Mb2FkRmluaXNoZWQodm9pZCosIEV2YXNf
T2JqZWN0KiB2aWV3LCB2b2lkKikKK3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6OnRvcExvYWRp
bmdGcmFtZUxvYWRGaW5pc2hlZCgpCiB7Ci0gICAgLy8gRklYTUU6IHdlIGFjdHVhbGx5IG5lZWQg
dGhlIGZyYW1lIHJlbGF0ZWQgdG8gdGhpcyBldmVudAotICAgIEV2YXNfT2JqZWN0KiBmcmFtZSA9
IGV3a192aWV3X2ZyYW1lX21haW5fZ2V0KHZpZXcpOwotCi0gICAgaWYgKHRvcExvYWRpbmdGcmFt
ZSAhPSBmcmFtZSkKLSAgICAgICAgcmV0dXJuOwotCiAgICAgdG9wTG9hZGluZ0ZyYW1lID0gMDsK
IAogICAgIFdvcmtRdWV1ZTo6c2hhcmVkKCktPnNldEZyb3plbih0cnVlKTsKQEAgLTI1Niw3ICsy
NTYsNyBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkxvYWRGaW5pc2hlZCh2b2lkKiwg
RXZhc19PYmplY3QqIHZpZXcsIHZvaWQqKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoV29y
a1F1ZXVlOjpzaGFyZWQoKS0+Y291bnQoKSkKLSAgICAgICAgZWNvcmVfaWRsZXJfYWRkKHByb2Nl
c3NXb3JrLCBmcmFtZSk7CisgICAgICAgIGVjb3JlX2lkbGVyX2FkZChwcm9jZXNzV29yaywgMCAv
KmZyYW1lKi8pOwogICAgIGVsc2UKICAgICAgICAgZHVtcCgpOwogfQpAQCAtMzE0LDMgKzMxNCw4
MSBAQCB2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbldpbGxTZW5kUmVxdWVzdCh2b2lkKiwg
RXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZgogICAgICAgICByZXF1ZXN0LT51cmwgPSAwOwog
ICAgIH0KIH0KKwordm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25XZWJWaWV3T25sb2FkRXZl
bnQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCogZXZlbnRJbmZvKQoreworICAgIGNvbnN0IEV2
YXNfT2JqZWN0KiBmcmFtZSA9IHN0YXRpY19jYXN0PEV2YXNfT2JqZWN0Kj4oZXZlbnRJbmZvKTsK
KworICAgIGlmICghZG9uZSAmJiBnTGF5b3V0VGVzdENvbnRyb2xsZXItPmR1bXBGcmFtZUxvYWRD
YWxsYmFja3MoKSkgeworICAgICAgICBjb25zdCBTdHJpbmcgZnJhbWVOYW1lKER1bXBSZW5kZXJU
cmVlU3VwcG9ydEVmbDo6c3VpdGFibGVEUlRGcmFtZU5hbWUoZnJhbWUpKTsKKyAgICAgICAgcHJp
bnRmKCIlcyAtIGRpZEhhbmRsZU9ubG9hZEV2ZW50c0ZvckZyYW1lXG4iLCBmcmFtZU5hbWUudXRm
OCgpLmRhdGEoKSk7CisgICAgfQorfQorCit2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbklu
c2VjdXJlQ29udGVudFJ1bih2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKikKK3sKKyAgICBpZiAo
IWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVyLT5kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkp
CisgICAgICAgIHByaW50ZigiZGlkUnVuSW5zZWN1cmVDb250ZW50XG4iKTsKK30KKwordm9pZCBE
dW1wUmVuZGVyVHJlZUNocm9tZTo6b25JbnNlY3VyZUNvbnRlbnREaXNwbGF5ZWQodm9pZCosIEV2
YXNfT2JqZWN0Kiwgdm9pZCopCit7CisgICAgaWYgKCFkb25lICYmIGdMYXlvdXRUZXN0Q29udHJv
bGxlci0+ZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKQorICAgICAgICBwcmludGYoImRpZERpc3Bs
YXlJbnNlY3VyZUNvbnRlbnRcbiIpOworfQorCit2b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpv
bkZyYW1lQ3JlYXRlZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKiBldmVudEluZm8pCit7Cisg
ICAgRXZhc19PYmplY3QqIGZyYW1lID0gc3RhdGljX2Nhc3Q8RXZhc19PYmplY3QqPihldmVudElu
Zm8pOworCisgICAgZXZhc19vYmplY3Rfc21hcnRfY2FsbGJhY2tfYWRkKGZyYW1lLCAibG9hZCxw
cm92aXNpb25hbCIsIG9uRnJhbWVQcm92aXNpb25hbExvYWQsIDApOworICAgIGV2YXNfb2JqZWN0
X3NtYXJ0X2NhbGxiYWNrX2FkZChmcmFtZSwgImxvYWQsY29tbWl0dGVkIiwgb25GcmFtZUxvYWRD
b21taXR0ZWQsIDApOworICAgIGV2YXNfb2JqZWN0X3NtYXJ0X2NhbGxiYWNrX2FkZChmcmFtZSwg
ImxvYWQsZmluaXNoZWQiLCBvbkZyYW1lTG9hZEZpbmlzaGVkLCAwKTsKKyAgICBldmFzX29iamVj
dF9zbWFydF9jYWxsYmFja19hZGQoZnJhbWUsICJsb2FkLGVycm9yIiwgb25GcmFtZUxvYWRFcnJv
ciwgMCk7Cit9CisKK3ZvaWQgRHVtcFJlbmRlclRyZWVDaHJvbWU6Om9uRnJhbWVQcm92aXNpb25h
bExvYWQodm9pZCosIEV2YXNfT2JqZWN0KiBmcmFtZSwgdm9pZCopCit7CisgICAgaWYgKCFkb25l
ICYmIGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7Cisg
ICAgICAgIGNvbnN0IFN0cmluZyBmcmFtZU5hbWUoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpz
dWl0YWJsZURSVEZyYW1lTmFtZShmcmFtZSkpOworICAgICAgICBwcmludGYoIiVzIC0gZGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JGcmFtZVxuIiwgZnJhbWVOYW1lLnV0ZjgoKS5kYXRhKCkpOwor
ICAgIH0KK30KKwordm9pZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZUxvYWRDb21taXR0
ZWQodm9pZCosIEV2YXNfT2JqZWN0KiBmcmFtZSwgdm9pZCopCit7CisgICAgaWYgKCFkb25lICYm
IGdMYXlvdXRUZXN0Q29udHJvbGxlci0+ZHVtcEZyYW1lTG9hZENhbGxiYWNrcygpKSB7CisgICAg
ICAgIGNvbnN0IFN0cmluZyBmcmFtZU5hbWUoRHVtcFJlbmRlclRyZWVTdXBwb3J0RWZsOjpzdWl0
YWJsZURSVEZyYW1lTmFtZShmcmFtZSkpOworICAgICAgICBwcmludGYoIiVzIC0gZGlkQ29tbWl0
TG9hZEZvckZyYW1lXG4iLCBmcmFtZU5hbWUudXRmOCgpLmRhdGEoKSk7CisgICAgfQorfQorCit2
b2lkIER1bXBSZW5kZXJUcmVlQ2hyb21lOjpvbkZyYW1lTG9hZEZpbmlzaGVkKHZvaWQqLCBFdmFz
X09iamVjdCogZnJhbWUsIHZvaWQqIGV2ZW50SW5mbykKK3sKKyAgICBjb25zdCBFd2tfRnJhbWVf
TG9hZF9FcnJvciogZXJyb3IgPSBzdGF0aWNfY2FzdDxFd2tfRnJhbWVfTG9hZF9FcnJvcio+KGV2
ZW50SW5mbyk7CisKKyAgICAvLyBFRkwgcG9ydCBlbWl0cyBib3RoICJsb2FkLGZpbmlzaGVkIiBh
bmQgImxvYWQsZXJyb3IiIHNpZ25hbHMgaW4gZXJyb3IgY2FzZS4KKyAgICAvLyBFcnJvciBjYXNl
IGlzIHRoZXJlZm9yZSBhbHJlYWR5IGhhbmRsZWQgaW4gb25GcmFtZUxvYWRFcnJvcigpIGFuZCB3
ZSBkb24ndCBuZWVkCisgICAgLy8gdG8gaGFuZGxlIGl0IGhlcmUuCisgICAgaWYgKGVycm9yKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9sbGVy
LT5kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgY29uc3QgU3RyaW5nIGZyYW1l
TmFtZShEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnN1aXRhYmxlRFJURnJhbWVOYW1lKGZyYW1l
KSk7CisgICAgICAgIHByaW50ZigiJXMgLSBkaWRGaW5pc2hMb2FkRm9yRnJhbWVcbiIsIGZyYW1l
TmFtZS51dGY4KCkuZGF0YSgpKTsKKyAgICB9CisKKyAgICBpZiAoZnJhbWUgPT0gdG9wTG9hZGlu
Z0ZyYW1lKQorICAgICAgICB0b3BMb2FkaW5nRnJhbWVMb2FkRmluaXNoZWQoKTsKK30KKwordm9p
ZCBEdW1wUmVuZGVyVHJlZUNocm9tZTo6b25GcmFtZUxvYWRFcnJvcih2b2lkKiwgRXZhc19PYmpl
Y3QqIGZyYW1lLCB2b2lkKikKK3sKKyAgICBpZiAoIWRvbmUgJiYgZ0xheW91dFRlc3RDb250cm9s
bGVyLT5kdW1wRnJhbWVMb2FkQ2FsbGJhY2tzKCkpIHsKKyAgICAgICAgY29uc3QgU3RyaW5nIGZy
YW1lTmFtZShEdW1wUmVuZGVyVHJlZVN1cHBvcnRFZmw6OnN1aXRhYmxlRFJURnJhbWVOYW1lKGZy
YW1lKSk7CisgICAgICAgIHByaW50ZigiJXMgLSBkaWRGYWlsTG9hZFdpdGhFcnJvclxuIiwgZnJh
bWVOYW1lLnV0ZjgoKS5kYXRhKCkpOworICAgIH0KKworICAgIGlmIChmcmFtZSA9PSB0b3BMb2Fk
aW5nRnJhbWUpCisgICAgICAgIHRvcExvYWRpbmdGcmFtZUxvYWRGaW5pc2hlZCgpOworfQpkaWZm
IC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvZWZsL0R1bXBSZW5kZXJUcmVlQ2hyb21lLmgg
Yi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJlbmRlclRyZWVDaHJvbWUuaAppbmRleCBl
MTU2YjRkLi5hNTExMmNhIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVt
cFJlbmRlclRyZWVDaHJvbWUuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9lZmwvRHVtcFJl
bmRlclRyZWVDaHJvbWUuaApAQCAtNjgsNyArNjgsNyBAQCBwcml2YXRlOgogCiAgICAgc3RhdGlj
IEVpbmFfQm9vbCBwcm9jZXNzV29yayh2b2lkKik7CiAKLSAgICBzdGF0aWMgdm9pZCBvbkxvYWRG
aW5pc2hlZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKik7CisgICAgc3RhdGljIHZvaWQgdG9w
TG9hZGluZ0ZyYW1lTG9hZEZpbmlzaGVkKCk7CiAKICAgICBzdGF0aWMgdm9pZCBvblN0YXR1c2Jh
clRleHRTZXQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopOwogCkBAIC03Nyw2ICs3NywyMiBA
QCBwcml2YXRlOgogICAgIHN0YXRpYyB2b2lkIG9uRG9jdW1lbnRMb2FkRmluaXNoZWQodm9pZCos
IEV2YXNfT2JqZWN0Kiwgdm9pZCopOwogCiAgICAgc3RhdGljIHZvaWQgb25XaWxsU2VuZFJlcXVl
c3Qodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopOworCisgICAgc3RhdGljIHZvaWQgb25XZWJW
aWV3T25sb2FkRXZlbnQodm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopOworCisgICAgc3RhdGlj
IHZvaWQgb25JbnNlY3VyZUNvbnRlbnRSdW4odm9pZCosIEV2YXNfT2JqZWN0Kiwgdm9pZCopOwor
CisgICAgc3RhdGljIHZvaWQgb25JbnNlY3VyZUNvbnRlbnREaXNwbGF5ZWQodm9pZCosIEV2YXNf
T2JqZWN0Kiwgdm9pZCopOworCisgICAgc3RhdGljIHZvaWQgb25GcmFtZUNyZWF0ZWQodm9pZCos
IEV2YXNfT2JqZWN0Kiwgdm9pZCopOworCisgICAgc3RhdGljIHZvaWQgb25GcmFtZVByb3Zpc2lv
bmFsTG9hZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKik7CisKKyAgICBzdGF0aWMgdm9pZCBv
bkZyYW1lTG9hZENvbW1pdHRlZCh2b2lkKiwgRXZhc19PYmplY3QqLCB2b2lkKik7CisKKyAgICBz
dGF0aWMgdm9pZCBvbkZyYW1lTG9hZEZpbmlzaGVkKHZvaWQqLCBFdmFzX09iamVjdCosIHZvaWQq
KTsKKworICAgIHN0YXRpYyB2b2lkIG9uRnJhbWVMb2FkRXJyb3Iodm9pZCosIEV2YXNfT2JqZWN0
Kiwgdm9pZCopOwogfTsKIAogI2VuZGlmIC8vIER1bXBSZW5kZXJUcmVlQ2hyb21lX2gK
</data>

          </attachment>
      

    </bug>

</bugzilla>