<?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>141037</bug_id>
          
          <creation_ts>2015-01-29 09:16:10 -0800</creation_ts>
          <short_desc>Convert WebInspectorProxy to use WKWebView API for the inspector view</short_desc>
          <delta_ts>2015-02-03 15:21:56 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>141190</dependson>
          <blocked>141135</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Burg">burg</reporter>
          <assigned_to name="Brian Burg">burg</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>joepeck</cc>
    
    <cc>mattbaker</cc>
    
    <cc>mitz</cc>
    
    <cc>sam</cc>
    
    <cc>timothy</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1065265</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-01-29 09:16:10 -0800</bug_when>
    <thetext>.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065367</commentid>
    <comment_count>1</comment_count>
      <attachid>245656</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-01-29 15:06:09 -0800</bug_when>
    <thetext>Created attachment 245656
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065371</commentid>
    <comment_count>2</comment_count>
      <attachid>245657</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-01-29 15:10:17 -0800</bug_when>
    <thetext>Created attachment 245657
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065405</commentid>
    <comment_count>3</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-01-29 16:22:51 -0800</bug_when>
    <thetext>The attached patch mostly works, except for dock to bottom. In that case, the initial draw seems to be correct, but subsequent draws paint the inspector over the entire inspected page superview, with web content on top.

Our initial assessment is that Safari or some other component is resizing the view behind our backs. Not sure I can diagnose further from OpenSource only, so benching this patch for now.

There is also some clean up to do with the PageGroup stuff. Unless I&apos;m missing some important detail, the whole &quot;level&quot; system can be significantly simplified now that multi-process guarantees concurrent execution between different inspector levels (no stalling during debugger pauses).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065432</commentid>
    <comment_count>4</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-01-29 17:25:51 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; The attached patch mostly works, except for dock to bottom. In that case,
&gt; the initial draw seems to be correct, but subsequent draws paint the
&gt; inspector over the entire inspected page superview, with web content on top.
&gt; 
&gt; Our initial assessment is that Safari or some other component is resizing
&gt; the view behind our backs. Not sure I can diagnose further from OpenSource
&gt; only, so benching this patch for now.

Do you see the same behavior in MiniBrowser? If so, I would recommend debugging from there.

&gt; 
&gt; There is also some clean up to do with the PageGroup stuff. Unless I&apos;m
&gt; missing some important detail, the whole &quot;level&quot; system can be significantly
&gt; simplified now that multi-process guarantees concurrent execution between
&gt; different inspector levels (no stalling during debugger pauses).

I am generally confused by the layering of this code.  It seems like the inspector code in WebKit2 lives both at the WebPageProxy/C++ layer, yet knows about things like WKWebView.  Is there something cleaner we can do here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065489</commentid>
    <comment_count>5</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-01-29 22:02:16 -0800</bug_when>
    <thetext>&gt; &gt; There is also some clean up to do with the PageGroup stuff. Unless I&apos;m
&gt; &gt; missing some important detail, the whole &quot;level&quot; system can be significantly
&gt; &gt; simplified now that multi-process guarantees concurrent execution between
&gt; &gt; different inspector levels (no stalling during debugger pauses).
&gt; 
&gt; I am generally confused by the layering of this code.  It seems like the
&gt; inspector code in WebKit2 lives both at the WebPageProxy/C++ layer, yet
&gt; knows about things like WKWebView.  Is there something cleaner we can do
&gt; here?

Most of inspector WK2 code is cross-platform and in the C++ layer, except port-specific WebInspectorProxy functions. The platform-specific parts are to manage frame sizes and windows while attached and detached. This isn&apos;t cross-platform because every port does windowing differently.

I think it is pretty well segregated as-is; this patch does not affect ports other than Mac. Other code in WebInspectorProxy and WebKit2 doesn&apos;t care whether WKView or WKWebView API is used to set up the underlying WebPageProxy.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065734</commentid>
    <comment_count>6</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-01-30 17:23:38 -0800</bug_when>
    <thetext>Disabling automaticallyAdjustsContentInsets fixes this.

Add this after creating the WKWebView in m_inspectorView:

#if __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101000
    [m_inspectorView _setAutomaticallyAdjustsContentInsets:NO];
#endif</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065933</commentid>
    <comment_count>7</comment_count>
      <attachid>245817</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-01-31 21:09:39 -0800</bug_when>
    <thetext>Created attachment 245817
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065961</commentid>
    <comment_count>8</comment_count>
      <attachid>245817</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-02-01 07:07:20 -0800</bug_when>
    <thetext>Comment on attachment 245817
Patch

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

&gt; Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm:498
&gt;      [m_inspectorView setDrawsBackground:NO];

This needs to be _setDrawsTransparentBackground:YES to fix the 10.9 build.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065979</commentid>
    <comment_count>9</comment_count>
      <attachid>245836</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-02-01 11:17:07 -0800</bug_when>
    <thetext>Created attachment 245836
Patch for EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066211</commentid>
    <comment_count>10</comment_count>
      <attachid>245836</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-02-02 13:43:45 -0800</bug_when>
    <thetext>Comment on attachment 245836
Patch for EWS

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

&gt; Source/WebKit2/UIProcess/mac/WebInspectorProxyMac.mm:497
&gt; -#if __MAC_OS_X_VERSION_MIN_REQUIRED &lt;= 1090
&gt; -    [m_inspectorView setDrawsBackground:NO];
&gt; +    [m_inspectorView _setDrawsTransparentBackground:YES];

On Yosemite we don&apos;t need to be transparent. We draw everything. So the __MAC_OS_X_VERSION_MIN_REQUIRED &lt;= 1090 check needs to stay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066212</commentid>
    <comment_count>11</comment_count>
      <attachid>245836</attachid>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2015-02-02 13:45:49 -0800</bug_when>
    <thetext>Comment on attachment 245836
Patch for EWS

Just add that #ifdef around _setDrawsTransparentBackground:YES back and this looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066360</commentid>
    <comment_count>12</comment_count>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-02-02 21:28:44 -0800</bug_when>
    <thetext>Committed r179540: &lt;http://trac.webkit.org/changeset/179540&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066365</commentid>
    <comment_count>13</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-02-02 21:47:01 -0800</bug_when>
    <thetext>After this landed, 32-bit build started failing:

https://build.webkit.org/builders/Apple%20Yosemite%20Release%20%2832-bit%20Build%29/builds/270/steps/compile-webkit/logs/stdio</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066368</commentid>
    <comment_count>14</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-02 22:10:45 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 141190</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066547</commentid>
    <comment_count>15</comment_count>
      <attachid>245961</attachid>
    <who name="Brian Burg">burg</who>
    <bug_when>2015-02-03 13:40:12 -0800</bug_when>
    <thetext>Created attachment 245961
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066599</commentid>
    <comment_count>16</comment_count>
      <attachid>245961</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-03 15:21:52 -0800</bug_when>
    <thetext>Comment on attachment 245961
Patch

Clearing flags on attachment: 245961

Committed r179573: &lt;http://trac.webkit.org/changeset/179573&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1066600</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-03 15:21:56 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245656</attachid>
            <date>2015-01-29 15:06:09 -0800</date>
            <delta_ts>2015-01-29 15:10:13 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-141037-20150129150617.patch</filename>
            <type>text/plain</type>
            <size>18471</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmUzYTM1NDc3YzdkMWI3
NTQyZTY3YTdlOTkzODgyNWJjZDM4Y2RiOC4uOWEwYTE3MmU2NTBiMmY2NzcxNWM2OTkzNTk1NzM1
ZDllZmNhMWM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE1LTAxLTI5ICBCcmlh
biBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KKworICAgICAgICBDb252ZXJ0IFdl
Ykluc3BlY3RvclByb3h5IHRvIHVzZSBXS1dlYlZpZXcgQVBJIGZvciB0aGUgaW5zcGVjdG9yIHZp
ZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTAz
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXS1ByZWZlcmVu
Y2VzIF9sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZF0pOgorICAgICAgICAo
LVtXS1ByZWZlcmVuY2VzIF9zZXRMb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxl
ZDpdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVV
UkxzXSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3NldEFsbG93RmlsZUFjY2Vzc0Zyb21G
aWxlVVJMczpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQ
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OldlYkluc3BlY3RvclByb3h5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3RvclBhZ2VQcmVmZXJlbmNl
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjphdHRhY2gpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6ZGV0YWNoKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yUHJveHk6OnNldEF0dGFjaGVkV2luZG93SGVpZ2h0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnNldEF0dGFjaGVkV2luZG93V2lkdGgpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6Y3JlYXRlSW5zcGVjdG9yUGFnZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpzaG91bGRPcGVuQXR0YWNoZWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6aW5zcGVjdG9yUGFnZUdyb3VwKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNz
L21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbToKKyAgICAgICAgKC1bV0tXZWJJbnNwZWN0b3JX
S1dlYlZpZXcgX2RpZFJlbGF1bmNoUHJvY2Vzc10pOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNw
ZWN0b3JQcm94eTo6aW5zcGVjdG9yUGFnZVByZWZlcmVuY2VzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yUHJveHk6OmNsb3NlVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6OmNy
ZWF0ZURvY2tCdXR0b24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxh
dGZvcm1DcmVhdGVJbnNwZWN0b3JQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9y
UHJveHk6OnBsYXRmb3JtQXR0YWNoKToKKyAgICAgICAgKC1bV0tXZWJJbnNwZWN0b3JXS1ZpZXcg
X2RpZFJlbGF1bmNoUHJvY2Vzc10pOiBEZWxldGVkLgorCiAyMDE1LTAxLTI4ICBUaW0gSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBBUEk6OntGcmFtZUlu
Zm8sIE5hdmlnYXRpb25BY3Rpb24sIE5hdmlnYXRpb25SZXNwb25zZX0gdHlwZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQppbmRl
eCA2ZjRjZjc4MWM5NjRjOTRjYzM2YTk5YmI3NWU3MDFkODQ2NzhlMjZlLi5lZmNhZmJlMzI3N2Q2
MjgyYTk3ZDEwOGMyODY2Mzg3OWFmNTkzYjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCkBAIC0yNDcsNiArMjQ3LDI2IEBA
IHN0YXRpYyBfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kgdG9BUEkoV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvCiAgICAgX3ByZWZlcmVuY2VzLT5zZXREZXZlbG9wZXJF
eHRyYXNFbmFibGVkKGRldmVsb3BlckV4dHJhc0VuYWJsZWQpOwogfQogCistIChCT09MKV9sb2dz
UGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZAoreworICAgIHJldHVybiBfcHJlZmVy
ZW5jZXMtPmxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkKCk7Cit9CisKKy0g
KHZvaWQpX3NldExvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkOihCT09MKWxv
Z3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkCit7CisgICAgX3ByZWZlcmVuY2Vz
LT5zZXRMb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZChsb2dzUGFnZU1lc3Nh
Z2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCk7Cit9CisKKy0gKEJPT0wpX2FsbG93RmlsZUFjY2Vz
c0Zyb21GaWxlVVJMcworeworICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPmFsbG93RmlsZUFjY2Vz
c0Zyb21GaWxlVVJMcygpOworfQorCistICh2b2lkKV9zZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmls
ZVVSTHM6KEJPT0wpYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzCit7CisgICAgX3ByZWZlcmVu
Y2VzLT5zZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMoYWxsb3dGaWxlQWNjZXNzRnJvbUZp
bGVVUkxzKTsKK30KKwogLSAoQk9PTClfaXNTdGFuZGFsb25lCiB7CiAgICAgcmV0dXJuIF9wcmVm
ZXJlbmNlcy0+c3RhbmRhbG9uZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IGU0ZTIwM2RjNzYx
Mzc2ZTkyNjNlZTcyZGQwYmYwNjJjOTkxZTMyYjIuLmZlMDQ3YTBmOGE5ZDZhNGI0MjVkYzFjMDcy
YzMwNjZkNGExYjliMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTU2LDYgKzU2LDEwIEBAIHR5
cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tEZWJ1Z092ZXJsYXlSZWdpb25zKSB7CiAK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERldmVsb3BlckV4dHJhc0VuYWJsZWQ6
KSBCT09MIF9kZXZlbG9wZXJFeHRyYXNFbmFibGVkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBX
S19JT1NfVEJBKTsKIAorQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TG9nc1BhZ2VN
ZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQ6KSBCT09MIF9sb2dzUGFnZU1lc3NhZ2VzVG9T
eXN0ZW1Db25zb2xlRW5hYmxlZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7
CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93RmlsZUFjY2Vzc0Zyb21G
aWxlVVJMczopIEJPT0wgX2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyBXS19BVkFJTEFCTEUo
V0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CisKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldFN0YW5kYWxvbmU6LCBnZXR0ZXI9X2lzU3RhbmRhbG9uZSkgQk9PTCBfc3RhbmRhbG9uZSBX
S19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldERpYWdub3N0aWNMb2dnaW5nRW5hYmxlZDopIEJPT0wgX2RpYWdub3N0
aWNMb2dnaW5nRW5hYmxlZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcAppbmRleCA3
M2ViMzU2OWE1YmYyOWVhY2IyMGM0M2Q2Njg2YzRmYjY5NDM4Njc0Li5lMmIwMjVmYmVmMTNhYTY2
M2NmYmUxZjU3NTJmOWVmYzNlNDg1ZGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJJbnNwZWN0b3JQcm94eS5jcHAKQEAgLTEyMSwyOCArMTIxLDggQEAgcHJpdmF0ZToKIAog
V2ViSW5zcGVjdG9yUHJveHk6OldlYkluc3BlY3RvclByb3h5KFdlYlBhZ2VQcm94eSogcGFnZSkK
ICAgICA6IG1fcGFnZShwYWdlKQotICAgICwgbV9pbnNwZWN0b3JQYWdlKG51bGxwdHIpCi0gICAg
LCBtX3VuZGVyVGVzdChmYWxzZSkKLSAgICAsIG1faXNWaXNpYmxlKGZhbHNlKQotICAgICwgbV9p
c0F0dGFjaGVkKGZhbHNlKQotICAgICwgbV9jYW5BdHRhY2goZmFsc2UpCi0gICAgLCBtX2lzUHJv
ZmlsaW5nUGFnZShmYWxzZSkKLSAgICAsIG1fc2hvd01lc3NhZ2VTZW50KGZhbHNlKQotICAgICwg
bV9pZ25vcmVGaXJzdEJyaW5nVG9Gcm9udChmYWxzZSkKLSAgICAsIG1fYXR0YWNobWVudFNpZGUo
QXR0YWNobWVudFNpZGVCb3R0b20pCiAjaWYgUExBVEZPUk0oTUFDKQogICAgICwgbV9jbG9zZVRp
bWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJldlYkluc3BlY3RvclByb3h5OjpjbG9zZVRpbWVy
RmlyZWQpCi0jZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKLSAgICAsIG1faW5z
cGVjdG9yVmlldyhudWxscHRyKQotICAgICwgbV9pbnNwZWN0b3JXaW5kb3cobnVsbHB0cikKLSNp
ZiBQTEFURk9STShHVEspCi0gICAgLCBtX2hlYWRlckJhcihudWxscHRyKQotICAgICwgbV9kb2Nr
Qm90dG9tQnV0dG9uKG51bGxwdHIpCi0gICAgLCBtX2RvY2tSaWdodEJ1dHRvbihudWxscHRyKQot
I2VuZGlmCi0jZW5kaWYKLSNpZiBFTkFCTEUoSU5TUEVDVE9SX1NFUlZFUikKLSAgICAsIG1fcmVt
b3RlSW5zcGVjdGlvblBhZ2VJZCgwKQogI2VuZGlmCiB7CiAgICAgbV9sZXZlbCA9IFdlYkluc3Bl
Y3RvclBhZ2VHcm91cHM6OnNoYXJlZCgpLmluc3BlY3RvckxldmVsKG1fcGFnZS0+cGFnZUdyb3Vw
KCkpOwpAQCAtMTUzLDEwICsxMzMsMTIgQEAgV2ViSW5zcGVjdG9yUHJveHk6On5XZWJJbnNwZWN0
b3JQcm94eSgpCiB7CiB9CiAKLVdlYlBhZ2VHcm91cCogV2ViSW5zcGVjdG9yUHJveHk6Omluc3Bl
Y3RvclBhZ2VHcm91cCgpIGNvbnN0CisjaWYgIVBMQVRGT1JNKE1BQykKK1dlYlByZWZlcmVuY2Vz
JiBXZWJJbnNwZWN0b3JQcm94eTo6aW5zcGVjdG9yUGFnZVByZWZlcmVuY2VzKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gV2ViSW5zcGVjdG9yUGFnZUdyb3Vwczo6c2hhcmVkKCkuaW5zcGVjdG9yUGFn
ZUdyb3VwRm9yTGV2ZWwobV9sZXZlbCk7CisgICAgcmV0dXJuIFdlYkluc3BlY3RvclBhZ2VHcm91
cHM6OnNoYXJlZCgpLmluc3BlY3RvclBhZ2VHcm91cEZvckxldmVsKG1fbGV2ZWwpLT5wcmVmZXJl
bmNlcygpOwogfQorI2VuZGlmCiAKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OmludmFsaWRhdGUo
KQogewpAQCAtMjkzLDEwICsyNzUsMTAgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6YXR0YWNo
KEF0dGFjaG1lbnRTaWRlIHNpZGUpCiAgICAgbV9pc0F0dGFjaGVkID0gdHJ1ZTsKICAgICBtX2F0
dGFjaG1lbnRTaWRlID0gc2lkZTsKIAotICAgIGluc3BlY3RvclBhZ2VHcm91cCgpLT5wcmVmZXJl
bmNlcygpLnNldEluc3BlY3RvckF0dGFjaG1lbnRTaWRlKHNpZGUpOworICAgIGluc3BlY3RvclBh
Z2VQcmVmZXJlbmNlcygpLnNldEluc3BlY3RvckF0dGFjaG1lbnRTaWRlKHNpZGUpOwogCiAgICAg
aWYgKG1faXNWaXNpYmxlKQotICAgICAgICBpbnNwZWN0b3JQYWdlR3JvdXAoKS0+cHJlZmVyZW5j
ZXMoKS5zZXRJbnNwZWN0b3JTdGFydHNBdHRhY2hlZCh0cnVlKTsKKyAgICAgICAgaW5zcGVjdG9y
UGFnZVByZWZlcmVuY2VzKCkuc2V0SW5zcGVjdG9yU3RhcnRzQXR0YWNoZWQodHJ1ZSk7CiAKICAg
ICBtX3BhZ2UtPnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3I6OlNldEF0dGFj
aGVkKHRydWUpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIApAQCAtMzIxLDcgKzMwMyw3IEBAIHZvaWQg
V2ViSW5zcGVjdG9yUHJveHk6OmRldGFjaCgpCiAgICAgbV9pc0F0dGFjaGVkID0gZmFsc2U7CiAK
ICAgICBpZiAobV9pc1Zpc2libGUpCi0gICAgICAgIGluc3BlY3RvclBhZ2VHcm91cCgpLT5wcmVm
ZXJlbmNlcygpLnNldEluc3BlY3RvclN0YXJ0c0F0dGFjaGVkKGZhbHNlKTsKKyAgICAgICAgaW5z
cGVjdG9yUGFnZVByZWZlcmVuY2VzKCkuc2V0SW5zcGVjdG9yU3RhcnRzQXR0YWNoZWQoZmFsc2Up
OwogCiAgICAgbV9wYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yOjpT
ZXRBdHRhY2hlZChmYWxzZSksIG1fcGFnZS0+cGFnZUlEKCkpOwogICAgIG1faW5zcGVjdG9yUGFn
ZS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJOjpEZXRhY2hlZCgpLCBt
X2luc3BlY3RvclBhZ2UtPnBhZ2VJRCgpKTsKQEAgLTMzMSwxMyArMzEzLDEzIEBAIHZvaWQgV2Vi
SW5zcGVjdG9yUHJveHk6OmRldGFjaCgpCiAKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnNldEF0
dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCkKIHsKLSAgICBpbnNwZWN0b3JQYWdl
R3JvdXAoKS0+cHJlZmVyZW5jZXMoKS5zZXRJbnNwZWN0b3JBdHRhY2hlZEhlaWdodChoZWlnaHQp
OworICAgIGluc3BlY3RvclBhZ2VQcmVmZXJlbmNlcygpLnNldEluc3BlY3RvckF0dGFjaGVkSGVp
Z2h0KGhlaWdodCk7CiAgICAgcGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd0hlaWdodChoZWlnaHQp
OwogfQogCiB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpzZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVu
c2lnbmVkIHdpZHRoKQogewotICAgIGluc3BlY3RvclBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygp
LnNldEluc3BlY3RvckF0dGFjaGVkV2lkdGgod2lkdGgpOworICAgIGluc3BlY3RvclBhZ2VQcmVm
ZXJlbmNlcygpLnNldEluc3BlY3RvckF0dGFjaGVkV2lkdGgod2lkdGgpOwogICAgIHBsYXRmb3Jt
U2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh3aWR0aCk7CiB9CiAKQEAgLTUzOSw3ICs1MjEsNyBAQCB2
b2lkIFdlYkluc3BlY3RvclByb3h5OjpjcmVhdGVJbnNwZWN0b3JQYWdlKElQQzo6QXR0YWNobWVu
dCBjb25uZWN0aW9uSWRlbnRpZmllcgogICAgIGlmICghbV91bmRlclRlc3QpIHsKICAgICAgICAg
bV9jYW5BdHRhY2ggPSBjYW5BdHRhY2g7CiAgICAgICAgIG1faXNBdHRhY2hlZCA9IHNob3VsZE9w
ZW5BdHRhY2hlZCgpOwotICAgICAgICBtX2F0dGFjaG1lbnRTaWRlID0gc3RhdGljX2Nhc3Q8QXR0
YWNobWVudFNpZGU+KGluc3BlY3RvclBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLmluc3BlY3Rv
ckF0dGFjaG1lbnRTaWRlKCkpOworICAgICAgICBtX2F0dGFjaG1lbnRTaWRlID0gc3RhdGljX2Nh
c3Q8QXR0YWNobWVudFNpZGU+KGluc3BlY3RvclBhZ2VQcmVmZXJlbmNlcygpLmluc3BlY3RvckF0
dGFjaG1lbnRTaWRlKCkpOwogCiAgICAgICAgIG1fcGFnZS0+cHJvY2VzcygpLnNlbmQoTWVzc2Fn
ZXM6OldlYkluc3BlY3Rvcjo6U2V0QXR0YWNoZWQobV9pc0F0dGFjaGVkKSwgbV9wYWdlLT5wYWdl
SUQoKSk7CiAKQEAgLTYzMyw3ICs2MTUsNyBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjphcHBl
bmQoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBjb250ZW50KQogCiBib29s
IFdlYkluc3BlY3RvclByb3h5OjpzaG91bGRPcGVuQXR0YWNoZWQoKQogewotICAgIHJldHVybiBp
bnNwZWN0b3JQYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS5pbnNwZWN0b3JTdGFydHNBdHRhY2hl
ZCgpICYmIGNhbkF0dGFjaCgpOworICAgIHJldHVybiBpbnNwZWN0b3JQYWdlUHJlZmVyZW5jZXMo
KS5pbnNwZWN0b3JTdGFydHNBdHRhY2hlZCgpICYmIGNhbkF0dGFjaCgpOwogfQogCiAjaWYgRU5B
QkxFKElOU1BFQ1RPUl9TRVJWRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViSW5zcGVjdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNw
ZWN0b3JQcm94eS5oCmluZGV4IDE3ZTBjYzVmZTFhOWEzMTc1ODljNzlkY2QyZTAyNDliOWNlOTVm
NGEuLmUzZDNjNTcyZjgzMWQyZTBmZDdjNjU4ODIwNjE1ZmZiNmYxNTZiODMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCkBAIC0zMSw3ICszMSw2IEBA
CiAjaW5jbHVkZSAiQXR0YWNobWVudC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
QEAgLTQ1LDcgKzQ0LDcgQEAgT0JKQ19DTEFTUyBOU0J1dHRvbjsKIE9CSkNfQ0xBU1MgTlNVUkw7
CiBPQkpDX0NMQVNTIE5TV2luZG93OwogT0JKQ19DTEFTUyBXS1dlYkluc3BlY3RvclByb3h5T2Jq
Q0FkYXB0ZXI7Ci1PQkpDX0NMQVNTIFdLV2ViSW5zcGVjdG9yV0tWaWV3OworT0JKQ19DTEFTUyBX
S1dlYkluc3BlY3RvcldLV2ViVmlldzsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKQpAQCAt
NjIsNiArNjEsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkZyYW1lUHJveHk7CiBj
bGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQYWdlUHJveHk7CitjbGFzcyBXZWJQcmVmZXJl
bmNlczsKIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogCiBlbnVtIEF0dGFjaG1lbnRTaWRlIHsKQEAg
LTcxLDkgKzcxLDkgQEAgZW51bSBBdHRhY2htZW50U2lkZSB7CiAKIGNsYXNzIFdlYkluc3BlY3Rv
clByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6SW5zcGVj
dG9yPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxXZWJJbnNwZWN0b3JQcm94eT4gY3JlYXRlKFdlYlBhZ2VQcm94eSogcGFnZSkK
KyAgICBzdGF0aWMgUmVmPFdlYkluc3BlY3RvclByb3h5PiBjcmVhdGUoV2ViUGFnZVByb3h5KiBw
YWdlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJJbnNwZWN0b3JQcm94
eShwYWdlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkluc3BlY3RvclByb3h5
KHBhZ2UpKTsKICAgICB9CiAKICAgICB+V2ViSW5zcGVjdG9yUHJveHkoKTsKQEAgLTE5Miw3ICsx
OTIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBvcGVuKCk7CiAKLSAgICBXZWJQYWdlR3JvdXAq
IGluc3BlY3RvclBhZ2VHcm91cCgpIGNvbnN0OworICAgIFdlYlByZWZlcmVuY2VzJiBpbnNwZWN0
b3JQYWdlUHJlZmVyZW5jZXMoKSBjb25zdDsKIAogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oRUZMKQogICAgIHZvaWQgY3JlYXRlSW5zcGVjdG9yV2luZG93KCk7CkBAIC0yMDksMTYgKzIw
OSwxNiBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbml0aWFsV2luZG93
V2lkdGg7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGluaXRpYWxXaW5kb3dIZWlnaHQ7CiAK
LSAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKLSAgICBXZWJQYWdlUHJveHkqIG1faW5zcGVjdG9y
UGFnZTsKKyAgICBXZWJQYWdlUHJveHkqIG1fcGFnZSB7bnVsbHB0cn07CisgICAgV2ViUGFnZVBy
b3h5KiBtX2luc3BlY3RvclBhZ2Uge251bGxwdHJ9OwogCi0gICAgYm9vbCBtX3VuZGVyVGVzdDsK
LSAgICBib29sIG1faXNWaXNpYmxlOwotICAgIGJvb2wgbV9pc0F0dGFjaGVkOwotICAgIGJvb2wg
bV9jYW5BdHRhY2g7Ci0gICAgYm9vbCBtX2lzUHJvZmlsaW5nUGFnZTsKLSAgICBib29sIG1fc2hv
d01lc3NhZ2VTZW50OwotICAgIGJvb2wgbV9pZ25vcmVGaXJzdEJyaW5nVG9Gcm9udDsKKyAgICBi
b29sIG1fdW5kZXJUZXN0IHtmYWxzZX07CisgICAgYm9vbCBtX2lzVmlzaWJsZSB7ZmFsc2V9Owor
ICAgIGJvb2wgbV9pc0F0dGFjaGVkIHtmYWxzZX07CisgICAgYm9vbCBtX2NhbkF0dGFjaCB7ZmFs
c2V9OworICAgIGJvb2wgbV9pc1Byb2ZpbGluZ1BhZ2Uge2ZhbHNlfTsKKyAgICBib29sIG1fc2hv
d01lc3NhZ2VTZW50IHtmYWxzZX07CisgICAgYm9vbCBtX2lnbm9yZUZpcnN0QnJpbmdUb0Zyb250
IHtmYWxzZX07CiAKICAgICAvLyBUaGUgZGVidWdnZXIgc3RvcHMgYWxsIHRoZSBwYWdlcyBpbiB0
aGUgc2FtZSBQYWdlR3JvdXAuIEhhdmluZwogICAgIC8vIGFsbCB0aGUgaW5zcGVjdG9ycyBpbiB0
aGUgc2FtZSBncm91cCB3aWxsIG1ha2UgaXQgaW1wb3NzaWJsZSB0byBkZWJ1ZwpAQCAtMjI3LDEw
ICsyMjcsMTAgQEAgcHJpdmF0ZToKICAgICAKICAgICBJUEM6OkF0dGFjaG1lbnQgbV9jb25uZWN0
aW9uSWRlbnRpZmllcjsKIAotICAgIEF0dGFjaG1lbnRTaWRlIG1fYXR0YWNobWVudFNpZGU7Cisg
ICAgQXR0YWNobWVudFNpZGUgbV9hdHRhY2htZW50U2lkZSB7QXR0YWNobWVudFNpZGVCb3R0b219
OwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIFJldGFpblB0cjxXS1dlYkluc3BlY3RvcldLVmll
dz4gbV9pbnNwZWN0b3JWaWV3OworICAgIFJldGFpblB0cjxXS1dlYkluc3BlY3RvcldLV2ViVmll
dz4gbV9pbnNwZWN0b3JWaWV3OwogICAgIFJldGFpblB0cjxOU1dpbmRvdz4gbV9pbnNwZWN0b3JX
aW5kb3c7CiAgICAgUmV0YWluUHRyPE5TQnV0dG9uPiBtX2RvY2tCb3R0b21CdXR0b247CiAgICAg
UmV0YWluUHRyPE5TQnV0dG9uPiBtX2RvY2tSaWdodEJ1dHRvbjsKQEAgLTI0MCwxOCArMjQwLDE4
IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fdXJsU3RyaW5nOwogI2VsaWYgUExBVEZPUk0oR1RL
KQogICAgIFdlYkluc3BlY3RvckNsaWVudEd0ayBtX2NsaWVudDsKLSAgICBHdGtXaWRnZXQqIG1f
aW5zcGVjdG9yVmlldzsKLSAgICBHdGtXaWRnZXQqIG1faW5zcGVjdG9yV2luZG93OwotICAgIEd0
a1dpZGdldCogbV9oZWFkZXJCYXI7Ci0gICAgR3RrV2lkZ2V0KiBtX2RvY2tCb3R0b21CdXR0b247
Ci0gICAgR3RrV2lkZ2V0KiBtX2RvY2tSaWdodEJ1dHRvbjsKLSAgICBTdHJpbmcgbV9pbnNwZWN0
ZWRVUkxTdHJpbmc7CisgICAgR3RrV2lkZ2V0KiBtX2luc3BlY3RvclZpZXcge251bGxwdHJ9Owor
ICAgIEd0a1dpZGdldCogbV9pbnNwZWN0b3JXaW5kb3cge251bGxwdHJ9OworICAgIEd0a1dpZGdl
dCogbV9oZWFkZXJCYXIge251bGxwdHJ9OworICAgIEd0a1dpZGdldCogbV9kb2NrQm90dG9tQnV0
dG9uIHtudWxscHRyfTsKKyAgICBHdGtXaWRnZXQqIG1fZG9ja1JpZ2h0QnV0dG9uIHtudWxscHRy
fTsKKyAgICBTdHJpbmcgbV9pbnNwZWN0ZWRVUkxTdHJpbmcge251bGxwdHJ9OwogI2VsaWYgUExB
VEZPUk0oRUZMKQotICAgIEV2YXNfT2JqZWN0KiBtX2luc3BlY3RvclZpZXc7Ci0gICAgRWNvcmVf
RXZhcyogbV9pbnNwZWN0b3JXaW5kb3c7CisgICAgRXZhc19PYmplY3QqIG1faW5zcGVjdG9yVmll
dyB7bnVsbHB0cn07CisgICAgRWNvcmVfRXZhcyogbV9pbnNwZWN0b3JXaW5kb3cge251bGxwdHJ9
OwogI2VuZGlmCiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9TRVJWRVIpCi0gICAgaW50IG1fcmVtb3Rl
SW5zcGVjdGlvblBhZ2VJZDsKKyAgICBpbnQgbV9yZW1vdGVJbnNwZWN0aW9uUGFnZUlkIHswfTsK
ICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
ZWJJbnNwZWN0b3JQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2Vi
SW5zcGVjdG9yUHJveHlNYWMubW0KaW5kZXggODliMGE5ZjUzMzQyOWUwNjFlNjRkZGUxZjk1OWNi
NmRmY2M3MjQ2Ni4uZjFiMjlkNDZhMzU2MzY3MDg4Y2VkOWQ3YTY5N2JlOThkMTg3NjRjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5
TWFjLm1tCkBAIC0zMywxNSArMzMsMTggQEAKICNpbXBvcnQgIldLTXV0YWJsZUFycmF5LmgiCiAj
aW1wb3J0ICJXS09wZW5QYW5lbFBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIldLT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXIuaCIKKyNpbXBvcnQgIldLUHJlZmVyZW5jZXNJbnRlcm5hbC5oIgorI2ltcG9y
dCAiV0tQcm9jZXNzUG9vbEludGVybmFsLmgiCiAjaW1wb3J0ICJXS1JldGFpblB0ci5oIgogI2lt
cG9ydCAiV0tVUkxDRi5oIgogI2ltcG9ydCAiV0tWaWV3SW50ZXJuYWwuaCIKKyNpbXBvcnQgIldL
V2ViVmlld0NvbmZpZ3VyYXRpb24uaCIKKyNpbXBvcnQgIldLV2ViVmlld0ludGVybmFsLmgiCiAj
aW1wb3J0ICJXZWJJbnNwZWN0b3JNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViSW5zcGVjdG9yVUlN
ZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUGFnZUdyb3VwLmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJv
eHkuaCIKICNpbXBvcnQgIldlYlByZWZlcmVuY2VzLmgiCi0jaW1wb3J0ICJXZWJQcm9jZXNzUG9v
bC5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW1wb3J0IDxRdWFydHpDb3JlL0Nv
cmVBbmltYXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRM
b2NhbC5oPgpAQCAtMTcwLDcgKzE3Myw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB3ZWJWaWV3
Q2xvc2VUaW1lb3V0ID0gNjA7CiAKIEBlbmQKIAotQGludGVyZmFjZSBXS1dlYkluc3BlY3RvcldL
VmlldyA6IFdLVmlldyB7CitAaW50ZXJmYWNlIFdLV2ViSW5zcGVjdG9yV0tXZWJWaWV3IDogV0tX
ZWJWaWV3IHsKIEBwcml2YXRlCiAgICAgV0tXZWJJbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyICpf
aW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlcjsKIH0KQEAgLTE3OCw3ICsxODEsNyBAQCBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgd2ViVmlld0Nsb3NlVGltZW91dCA9IDYwOwogQHByb3BlcnR5IChub25h
dG9taWMsIGFzc2lnbikgV0tXZWJJbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyICppbnNwZWN0b3JQ
cm94eU9iakNBZGFwdGVyOwogQGVuZAogCi1AaW1wbGVtZW50YXRpb24gV0tXZWJJbnNwZWN0b3JX
S1ZpZXcKK0BpbXBsZW1lbnRhdGlvbiBXS1dlYkluc3BlY3RvcldLV2ViVmlldwogCiBAc3ludGhl
c2l6ZSBpbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyID0gX2luc3BlY3RvclByb3h5T2JqQ0FkYXB0
ZXI7CiAKQEAgLTE4OSw4ICsxOTIsNiBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgd2ViVmlld0Ns
b3NlVGltZW91dCA9IDYwOwogCiAtICh2b2lkKV9kaWRSZWxhdW5jaFByb2Nlc3MKIHsKLSAgICBb
c3VwZXIgX2RpZFJlbGF1bmNoUHJvY2Vzc107Ci0KICAgICBbc2VsZi5pbnNwZWN0b3JQcm94eU9i
akNBZGFwdGVyIGRpZFJlbGF1bmNoUHJvY2Vzc107CiB9CiAKQEAgLTI4OSw2ICsyOTAsMTEgQEAg
c3RhdGljIHZvaWQgcnVuT3BlblBhbmVsKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1l
LCBXS09wZW5QYW5lbFBhcmFtZXRlcnMKICAgICB9XTsKIH0KIAorV2ViUHJlZmVyZW5jZXMmIFdl
Ykluc3BlY3RvclByb3h5OjppbnNwZWN0b3JQYWdlUHJlZmVyZW5jZXMoKSBjb25zdAoreworICAg
IHJldHVybiBtX2luc3BlY3RvclZpZXctPl9wYWdlLT5wcmVmZXJlbmNlcygpOworfQorCiB2b2lk
IFdlYkluc3BlY3RvclByb3h5OjpzZXRJbnNwZWN0b3JXaW5kb3dGcmFtZShXS1JlY3QmIGZyYW1l
KQogewogICAgIGlmIChtX2lzQXR0YWNoZWQpCkBAIC0zMTIsOCArMzE4LDcgQEAgdm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6Y2xvc2VUaW1lckZpcmVkKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
aWYgKG1faW5zcGVjdG9yVmlldykgewotICAgICAgICBXZWJQYWdlUHJveHkqIGluc3BlY3RvclBh
Z2UgPSB0b0ltcGwobV9pbnNwZWN0b3JWaWV3LmdldCgpLnBhZ2VSZWYpOwotICAgICAgICBpbnNw
ZWN0b3JQYWdlLT5jbG9zZSgpOworICAgICAgICBtX2luc3BlY3RvclZpZXctPl9wYWdlLT5jbG9z
ZSgpOwogICAgICAgICBbbV9pbnNwZWN0b3JWaWV3IHNldEluc3BlY3RvclByb3h5T2JqQ0FkYXB0
ZXI6bmlsXTsKICAgICAgICAgbV9pbnNwZWN0b3JWaWV3ID0gbmlsOwogICAgIH0KQEAgLTMzMSw3
ICszMzYsNyBAQCBzdGF0aWMgTlNCdXR0b24gKmNyZWF0ZURvY2tCdXR0b24oTlNTdHJpbmcgKmlt
YWdlTmFtZSkKICAgICBkb2NrQnV0dG9uLmF1dG9yZXNpemluZ01hc2sgPSBOU1ZpZXdNaW5YTWFy
Z2luIHwgTlNWaWV3TWluWU1hcmdpbjsKIAogICAgIC8vIEdldCB0aGUgZG9jayBpbWFnZSBhbmQg
bWFrZSBpdCBhIHRlbXBsYXRlIHNvIHRoZSBidXR0b24gY2VsbCBlZmZlY3RzIHdpbGwgYXBwbHku
Ci0gICAgTlNJbWFnZSAqZG9ja0ltYWdlID0gW1tOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpbV0tX
ZWJJbnNwZWN0b3JXS1ZpZXcgY2xhc3NdXSBpbWFnZUZvclJlc291cmNlOmltYWdlTmFtZV07Cisg
ICAgTlNJbWFnZSAqZG9ja0ltYWdlID0gW1tOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpbV0tXZWJJ
bnNwZWN0b3JXS1dlYlZpZXcgY2xhc3NdXSBpbWFnZUZvclJlc291cmNlOmltYWdlTmFtZV07CiAg
ICAgW2RvY2tJbWFnZSBzZXRUZW1wbGF0ZTpZRVNdOwogCiAgICAgLy8gU2V0IHRoZSBkb2NrIGlt
YWdlIG9uIHRoZSBidXR0b24gY2VsbC4KQEAgLTQ1Myw3ICs0NTgsNyBAQCBXZWJQYWdlUHJveHkq
IFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNyZWF0ZUluc3BlY3RvclBhZ2UoKQogCiAgICAg
aWYgKG1faW5zcGVjdG9yVmlldykgewogICAgICAgICBBU1NFUlQobV9pbnNwZWN0b3JQcm94eU9i
akNBZGFwdGVyKTsKLSAgICAgICAgcmV0dXJuIHRvSW1wbChtX2luc3BlY3RvclZpZXcuZ2V0KCku
cGFnZVJlZik7CisgICAgICAgIHJldHVybiBtX2luc3BlY3RvclZpZXctPl9wYWdlLmdldCgpOwog
ICAgIH0KIAogICAgIEFTU0VSVCghbV9pbnNwZWN0b3JWaWV3KTsKQEAgLTQ2NSwxMCArNDcwLDEw
IEBAIFdlYlBhZ2VQcm94eSogV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ3JlYXRlSW5zcGVj
dG9yUGFnZSgpCiAKICAgICAgICAgc3dpdGNoIChtX2F0dGFjaG1lbnRTaWRlKSB7CiAgICAgICAg
IGNhc2UgQXR0YWNobWVudFNpZGVCb3R0b206Ci0gICAgICAgICAgICBpbml0aWFsUmVjdCA9IE5T
TWFrZVJlY3QoMCwgMCwgTlNXaWR0aChpbnNwZWN0ZWRWaWV3RnJhbWUpLCBpbnNwZWN0b3JQYWdl
R3JvdXAoKS0+cHJlZmVyZW5jZXMoKS5pbnNwZWN0b3JBdHRhY2hlZEhlaWdodCgpKTsKKyAgICAg
ICAgICAgIGluaXRpYWxSZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCBOU1dpZHRoKGluc3BlY3RlZFZp
ZXdGcmFtZSksIGluc3BlY3RvclBhZ2VQcmVmZXJlbmNlcygpLmluc3BlY3RvckF0dGFjaGVkSGVp
Z2h0KCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXR0YWNobWVudFNpZGVS
aWdodDoKLSAgICAgICAgICAgIGluaXRpYWxSZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCBpbnNwZWN0
b3JQYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS5pbnNwZWN0b3JBdHRhY2hlZFdpZHRoKCksIE5T
SGVpZ2h0KGluc3BlY3RlZFZpZXdGcmFtZSkpOworICAgICAgICAgICAgaW5pdGlhbFJlY3QgPSBO
U01ha2VSZWN0KDAsIDAsIGluc3BlY3RvclBhZ2VQcmVmZXJlbmNlcygpLmluc3BlY3RvckF0dGFj
aGVkV2lkdGgoKSwgTlNIZWlnaHQoaW5zcGVjdGVkVmlld0ZyYW1lKSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CkBAIC00ODAsNyArNDg1LDE4IEBAIFdlYlBh
Z2VQcm94eSogV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSgp
CiAgICAgICAgICAgICBpbml0aWFsUmVjdCA9IFtOU1dpbmRvdyBjb250ZW50UmVjdEZvckZyYW1l
UmVjdDp3aW5kb3dGcmFtZSBzdHlsZU1hc2s6d2luZG93U3R5bGVNYXNrXTsKICAgICB9CiAKLSAg
ICBtX2luc3BlY3RvclZpZXcgPSBhZG9wdE5TKFtbV0tXZWJJbnNwZWN0b3JXS1ZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6aW5pdGlhbFJlY3QgY29udGV4dFJlZjp0b0FQSSgmaW5zcGVjdG9yUHJv
Y2Vzc1Bvb2woKSkgcGFnZUdyb3VwUmVmOnRvQVBJKGluc3BlY3RvclBhZ2VHcm91cCgpKSByZWxh
dGVkVG9QYWdlOm51bGxwdHJdKTsKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFdLUHJlZmVyZW5jZXMg
KnByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOworI2lmbmRlZiBOREVC
VUcKKyAgICAvLyBBbGxvdyBkZXZlbG9wZXJzIHRvIGluc3BlY3QgdGhlIFdlYiBJbnNwZWN0b3Ig
aW4gZGVidWcgYnVpbGRzIHdpdGhvdXQgY2hhbmdpbmcgc2V0dGluZ3MuCisgICAgcHJlZmVyZW5j
ZXMuX2RldmVsb3BlckV4dHJhc0VuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX2xvZ3NQ
YWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkID0gWUVTOworI2VuZGlmCisgICAgcHJl
ZmVyZW5jZXMuX2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyA9IFlFUzsKKyAgICBbY29uZmln
dXJhdGlvbiBzZXRQcm9jZXNzUG9vbDogOjpXZWJLaXQ6OndyYXBwZXIoaW5zcGVjdG9yUHJvY2Vz
c1Bvb2woKSldOworCisgICAgbV9pbnNwZWN0b3JWaWV3ID0gYWRvcHROUyhbW1dLV2ViSW5zcGVj
dG9yV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOmluaXRpYWxSZWN0IGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIC8vIGNvbnRleHRSZWY6dG9BUEkoJmluc3Bl
Y3RvclByb2Nlc3NQb29sKCkpIHBhZ2VHcm91cFJlZjp0b0FQSShpbnNwZWN0b3JQYWdlR3JvdXAo
KSkgcmVsYXRlZFRvUGFnZTpudWxscHRyXSk7CiAgICAgQVNTRVJUKG1faW5zcGVjdG9yVmlldyk7
CiAKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwOTAKQEAgLTQ5Miw3
ICs1MDgsNyBAQCBXZWJQYWdlUHJveHkqIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNyZWF0
ZUluc3BlY3RvclBhZ2UoKQogCiAgICAgW21faW5zcGVjdG9yVmlldyBzZXRJbnNwZWN0b3JQcm94
eU9iakNBZGFwdGVyOm1faW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlci5nZXQoKV07CiAKLSAgICBX
ZWJQYWdlUHJveHkqIGluc3BlY3RvclBhZ2UgPSB0b0ltcGwobV9pbnNwZWN0b3JWaWV3LmdldCgp
LnBhZ2VSZWYpOworICAgIFdlYlBhZ2VQcm94eSogaW5zcGVjdG9yUGFnZSA9IG1faW5zcGVjdG9y
Vmlldy0+X3BhZ2UuZ2V0KCk7CiAgICAgQVNTRVJUKGluc3BlY3RvclBhZ2UpOwogCiAgICAgV0tQ
YWdlVUlDbGllbnRWMiB1aUNsaWVudCA9IHsKQEAgLTc5NSwxMCArODExLDEwIEBAIHZvaWQgV2Vi
SW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKIAogICAgIHN3aXRjaCAobV9hdHRhY2ht
ZW50U2lkZSkgewogICAgIGNhc2UgQXR0YWNobWVudFNpZGVCb3R0b206Ci0gICAgICAgIGN1cnJl
bnREaW1lbnNpb24gPSBpbnNwZWN0b3JQYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS5pbnNwZWN0
b3JBdHRhY2hlZEhlaWdodCgpOworICAgICAgICBjdXJyZW50RGltZW5zaW9uID0gaW5zcGVjdG9y
UGFnZVByZWZlcmVuY2VzKCkuaW5zcGVjdG9yQXR0YWNoZWRIZWlnaHQoKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBBdHRhY2htZW50U2lkZVJpZ2h0OgotICAgICAgICBjdXJyZW50RGltZW5z
aW9uID0gaW5zcGVjdG9yUGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCkuaW5zcGVjdG9yQXR0YWNo
ZWRXaWR0aCgpOworICAgICAgICBjdXJyZW50RGltZW5zaW9uID0gaW5zcGVjdG9yUGFnZVByZWZl
cmVuY2VzKCkuaW5zcGVjdG9yQXR0YWNoZWRXaWR0aCgpOwogICAgICAgICBicmVhazsKICAgICB9
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245657</attachid>
            <date>2015-01-29 15:10:17 -0800</date>
            <delta_ts>2015-01-31 21:09:33 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-141037-20150129151025.patch</filename>
            <type>text/plain</type>
            <size>18471</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5MzM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZmUzYTM1NDc3YzdkMWI3
NTQyZTY3YTdlOTkzODgyNWJjZDM4Y2RiOC4uOWEwYTE3MmU2NTBiMmY2NzcxNWM2OTkzNTk1NzM1
ZDllZmNhMWM5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDE1LTAxLTI5ICBCcmlh
biBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KKworICAgICAgICBDb252ZXJ0IFdl
Ykluc3BlY3RvclByb3h5IHRvIHVzZSBXS1dlYlZpZXcgQVBJIGZvciB0aGUgaW5zcGVjdG9yIHZp
ZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTAz
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tOgorICAgICAgICAoLVtXS1ByZWZlcmVu
Y2VzIF9sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZF0pOgorICAgICAgICAo
LVtXS1ByZWZlcmVuY2VzIF9zZXRMb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxl
ZDpdKToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVV
UkxzXSk6CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX3NldEFsbG93RmlsZUFjY2Vzc0Zyb21G
aWxlVVJMczpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQ
cml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OldlYkluc3BlY3RvclByb3h5KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3RvclBhZ2VQcmVmZXJlbmNl
cyk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjphdHRhY2gpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6ZGV0YWNoKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yUHJveHk6OnNldEF0dGFjaGVkV2luZG93SGVpZ2h0KToKKyAgICAgICAgKFdl
YktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnNldEF0dGFjaGVkV2luZG93V2lkdGgpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6Y3JlYXRlSW5zcGVjdG9yUGFnZSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpzaG91bGRPcGVuQXR0YWNoZWQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6aW5zcGVjdG9yUGFnZUdyb3VwKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaDoKKyAgICAgICAg
KFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OmNyZWF0ZSk6CisgICAgICAgICogVUlQcm9jZXNz
L21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbToKKyAgICAgICAgKC1bV0tXZWJJbnNwZWN0b3JX
S1dlYlZpZXcgX2RpZFJlbGF1bmNoUHJvY2Vzc10pOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNw
ZWN0b3JQcm94eTo6aW5zcGVjdG9yUGFnZVByZWZlcmVuY2VzKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yUHJveHk6OmNsb3NlVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6OmNy
ZWF0ZURvY2tCdXR0b24pOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxh
dGZvcm1DcmVhdGVJbnNwZWN0b3JQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9y
UHJveHk6OnBsYXRmb3JtQXR0YWNoKToKKyAgICAgICAgKC1bV0tXZWJJbnNwZWN0b3JXS1ZpZXcg
X2RpZFJlbGF1bmNoUHJvY2Vzc10pOiBEZWxldGVkLgorCiAyMDE1LTAxLTI4ICBUaW0gSG9ydG9u
ICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBBUEk6OntGcmFtZUlu
Zm8sIE5hdmlnYXRpb25BY3Rpb24sIE5hdmlnYXRpb25SZXNwb25zZX0gdHlwZXMKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbSBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQppbmRl
eCA2ZjRjZjc4MWM5NjRjOTRjYzM2YTk5YmI3NWU3MDFkODQ2NzhlMjZlLi5lZmNhZmJlMzI3N2Q2
MjgyYTk3ZDEwOGMyODY2Mzg3OWFmNTkzYjQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMubW0KKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCkBAIC0yNDcsNiArMjQ3LDI2IEBA
IHN0YXRpYyBfV0tTdG9yYWdlQmxvY2tpbmdQb2xpY3kgdG9BUEkoV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvCiAgICAgX3ByZWZlcmVuY2VzLT5zZXREZXZlbG9wZXJF
eHRyYXNFbmFibGVkKGRldmVsb3BlckV4dHJhc0VuYWJsZWQpOwogfQogCistIChCT09MKV9sb2dz
UGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZAoreworICAgIHJldHVybiBfcHJlZmVy
ZW5jZXMtPmxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkKCk7Cit9CisKKy0g
KHZvaWQpX3NldExvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkOihCT09MKWxv
Z3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkCit7CisgICAgX3ByZWZlcmVuY2Vz
LT5zZXRMb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZChsb2dzUGFnZU1lc3Nh
Z2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCk7Cit9CisKKy0gKEJPT0wpX2FsbG93RmlsZUFjY2Vz
c0Zyb21GaWxlVVJMcworeworICAgIHJldHVybiBfcHJlZmVyZW5jZXMtPmFsbG93RmlsZUFjY2Vz
c0Zyb21GaWxlVVJMcygpOworfQorCistICh2b2lkKV9zZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmls
ZVVSTHM6KEJPT0wpYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzCit7CisgICAgX3ByZWZlcmVu
Y2VzLT5zZXRBbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMoYWxsb3dGaWxlQWNjZXNzRnJvbUZp
bGVVUkxzKTsKK30KKwogLSAoQk9PTClfaXNTdGFuZGFsb25lCiB7CiAgICAgcmV0dXJuIF9wcmVm
ZXJlbmNlcy0+c3RhbmRhbG9uZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCmluZGV4IGU0ZTIwM2RjNzYx
Mzc2ZTkyNjNlZTcyZGQwYmYwNjJjOTkxZTMyYjIuLmZlMDQ3YTBmOGE5ZDZhNGI0MjVkYzFjMDcy
YzMwNjZkNGExYjliMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTU2LDYgKzU2LDEwIEBAIHR5
cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tEZWJ1Z092ZXJsYXlSZWdpb25zKSB7CiAK
IEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldERldmVsb3BlckV4dHJhc0VuYWJsZWQ6
KSBCT09MIF9kZXZlbG9wZXJFeHRyYXNFbmFibGVkIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBX
S19JT1NfVEJBKTsKIAorQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0TG9nc1BhZ2VN
ZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQ6KSBCT09MIF9sb2dzUGFnZU1lc3NhZ2VzVG9T
eXN0ZW1Db25zb2xlRW5hYmxlZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7
CisKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFsbG93RmlsZUFjY2Vzc0Zyb21G
aWxlVVJMczopIEJPT0wgX2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyBXS19BVkFJTEFCTEUo
V0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CisKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9
X3NldFN0YW5kYWxvbmU6LCBnZXR0ZXI9X2lzU3RhbmRhbG9uZSkgQk9PTCBfc3RhbmRhbG9uZSBX
S19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CiAKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldERpYWdub3N0aWNMb2dnaW5nRW5hYmxlZDopIEJPT0wgX2RpYWdub3N0
aWNMb2dnaW5nRW5hYmxlZCBXS19BVkFJTEFCTEUoV0tfTUFDX1RCQSwgV0tfSU9TX1RCQSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcAppbmRleCA3
M2ViMzU2OWE1YmYyOWVhY2IyMGM0M2Q2Njg2YzRmYjY5NDM4Njc0Li5lMmIwMjVmYmVmMTNhYTY2
M2NmYmUxZjU3NTJmOWVmYzNlNDg1ZGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJJbnNwZWN0b3JQcm94eS5jcHAKQEAgLTEyMSwyOCArMTIxLDggQEAgcHJpdmF0ZToKIAog
V2ViSW5zcGVjdG9yUHJveHk6OldlYkluc3BlY3RvclByb3h5KFdlYlBhZ2VQcm94eSogcGFnZSkK
ICAgICA6IG1fcGFnZShwYWdlKQotICAgICwgbV9pbnNwZWN0b3JQYWdlKG51bGxwdHIpCi0gICAg
LCBtX3VuZGVyVGVzdChmYWxzZSkKLSAgICAsIG1faXNWaXNpYmxlKGZhbHNlKQotICAgICwgbV9p
c0F0dGFjaGVkKGZhbHNlKQotICAgICwgbV9jYW5BdHRhY2goZmFsc2UpCi0gICAgLCBtX2lzUHJv
ZmlsaW5nUGFnZShmYWxzZSkKLSAgICAsIG1fc2hvd01lc3NhZ2VTZW50KGZhbHNlKQotICAgICwg
bV9pZ25vcmVGaXJzdEJyaW5nVG9Gcm9udChmYWxzZSkKLSAgICAsIG1fYXR0YWNobWVudFNpZGUo
QXR0YWNobWVudFNpZGVCb3R0b20pCiAjaWYgUExBVEZPUk0oTUFDKQogICAgICwgbV9jbG9zZVRp
bWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJldlYkluc3BlY3RvclByb3h5OjpjbG9zZVRpbWVy
RmlyZWQpCi0jZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKLSAgICAsIG1faW5z
cGVjdG9yVmlldyhudWxscHRyKQotICAgICwgbV9pbnNwZWN0b3JXaW5kb3cobnVsbHB0cikKLSNp
ZiBQTEFURk9STShHVEspCi0gICAgLCBtX2hlYWRlckJhcihudWxscHRyKQotICAgICwgbV9kb2Nr
Qm90dG9tQnV0dG9uKG51bGxwdHIpCi0gICAgLCBtX2RvY2tSaWdodEJ1dHRvbihudWxscHRyKQot
I2VuZGlmCi0jZW5kaWYKLSNpZiBFTkFCTEUoSU5TUEVDVE9SX1NFUlZFUikKLSAgICAsIG1fcmVt
b3RlSW5zcGVjdGlvblBhZ2VJZCgwKQogI2VuZGlmCiB7CiAgICAgbV9sZXZlbCA9IFdlYkluc3Bl
Y3RvclBhZ2VHcm91cHM6OnNoYXJlZCgpLmluc3BlY3RvckxldmVsKG1fcGFnZS0+cGFnZUdyb3Vw
KCkpOwpAQCAtMTUzLDEwICsxMzMsMTIgQEAgV2ViSW5zcGVjdG9yUHJveHk6On5XZWJJbnNwZWN0
b3JQcm94eSgpCiB7CiB9CiAKLVdlYlBhZ2VHcm91cCogV2ViSW5zcGVjdG9yUHJveHk6Omluc3Bl
Y3RvclBhZ2VHcm91cCgpIGNvbnN0CisjaWYgIVBMQVRGT1JNKE1BQykKK1dlYlByZWZlcmVuY2Vz
JiBXZWJJbnNwZWN0b3JQcm94eTo6aW5zcGVjdG9yUGFnZVByZWZlcmVuY2VzKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gV2ViSW5zcGVjdG9yUGFnZUdyb3Vwczo6c2hhcmVkKCkuaW5zcGVjdG9yUGFn
ZUdyb3VwRm9yTGV2ZWwobV9sZXZlbCk7CisgICAgcmV0dXJuIFdlYkluc3BlY3RvclBhZ2VHcm91
cHM6OnNoYXJlZCgpLmluc3BlY3RvclBhZ2VHcm91cEZvckxldmVsKG1fbGV2ZWwpLT5wcmVmZXJl
bmNlcygpOwogfQorI2VuZGlmCiAKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OmludmFsaWRhdGUo
KQogewpAQCAtMjkzLDEwICsyNzUsMTAgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6YXR0YWNo
KEF0dGFjaG1lbnRTaWRlIHNpZGUpCiAgICAgbV9pc0F0dGFjaGVkID0gdHJ1ZTsKICAgICBtX2F0
dGFjaG1lbnRTaWRlID0gc2lkZTsKIAotICAgIGluc3BlY3RvclBhZ2VHcm91cCgpLT5wcmVmZXJl
bmNlcygpLnNldEluc3BlY3RvckF0dGFjaG1lbnRTaWRlKHNpZGUpOworICAgIGluc3BlY3RvclBh
Z2VQcmVmZXJlbmNlcygpLnNldEluc3BlY3RvckF0dGFjaG1lbnRTaWRlKHNpZGUpOwogCiAgICAg
aWYgKG1faXNWaXNpYmxlKQotICAgICAgICBpbnNwZWN0b3JQYWdlR3JvdXAoKS0+cHJlZmVyZW5j
ZXMoKS5zZXRJbnNwZWN0b3JTdGFydHNBdHRhY2hlZCh0cnVlKTsKKyAgICAgICAgaW5zcGVjdG9y
UGFnZVByZWZlcmVuY2VzKCkuc2V0SW5zcGVjdG9yU3RhcnRzQXR0YWNoZWQodHJ1ZSk7CiAKICAg
ICBtX3BhZ2UtPnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3I6OlNldEF0dGFj
aGVkKHRydWUpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIApAQCAtMzIxLDcgKzMwMyw3IEBAIHZvaWQg
V2ViSW5zcGVjdG9yUHJveHk6OmRldGFjaCgpCiAgICAgbV9pc0F0dGFjaGVkID0gZmFsc2U7CiAK
ICAgICBpZiAobV9pc1Zpc2libGUpCi0gICAgICAgIGluc3BlY3RvclBhZ2VHcm91cCgpLT5wcmVm
ZXJlbmNlcygpLnNldEluc3BlY3RvclN0YXJ0c0F0dGFjaGVkKGZhbHNlKTsKKyAgICAgICAgaW5z
cGVjdG9yUGFnZVByZWZlcmVuY2VzKCkuc2V0SW5zcGVjdG9yU3RhcnRzQXR0YWNoZWQoZmFsc2Up
OwogCiAgICAgbV9wYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yOjpT
ZXRBdHRhY2hlZChmYWxzZSksIG1fcGFnZS0+cGFnZUlEKCkpOwogICAgIG1faW5zcGVjdG9yUGFn
ZS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3RvclVJOjpEZXRhY2hlZCgpLCBt
X2luc3BlY3RvclBhZ2UtPnBhZ2VJRCgpKTsKQEAgLTMzMSwxMyArMzEzLDEzIEBAIHZvaWQgV2Vi
SW5zcGVjdG9yUHJveHk6OmRldGFjaCgpCiAKIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnNldEF0
dGFjaGVkV2luZG93SGVpZ2h0KHVuc2lnbmVkIGhlaWdodCkKIHsKLSAgICBpbnNwZWN0b3JQYWdl
R3JvdXAoKS0+cHJlZmVyZW5jZXMoKS5zZXRJbnNwZWN0b3JBdHRhY2hlZEhlaWdodChoZWlnaHQp
OworICAgIGluc3BlY3RvclBhZ2VQcmVmZXJlbmNlcygpLnNldEluc3BlY3RvckF0dGFjaGVkSGVp
Z2h0KGhlaWdodCk7CiAgICAgcGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd0hlaWdodChoZWlnaHQp
OwogfQogCiB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpzZXRBdHRhY2hlZFdpbmRvd1dpZHRoKHVu
c2lnbmVkIHdpZHRoKQogewotICAgIGluc3BlY3RvclBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygp
LnNldEluc3BlY3RvckF0dGFjaGVkV2lkdGgod2lkdGgpOworICAgIGluc3BlY3RvclBhZ2VQcmVm
ZXJlbmNlcygpLnNldEluc3BlY3RvckF0dGFjaGVkV2lkdGgod2lkdGgpOwogICAgIHBsYXRmb3Jt
U2V0QXR0YWNoZWRXaW5kb3dXaWR0aCh3aWR0aCk7CiB9CiAKQEAgLTUzOSw3ICs1MjEsNyBAQCB2
b2lkIFdlYkluc3BlY3RvclByb3h5OjpjcmVhdGVJbnNwZWN0b3JQYWdlKElQQzo6QXR0YWNobWVu
dCBjb25uZWN0aW9uSWRlbnRpZmllcgogICAgIGlmICghbV91bmRlclRlc3QpIHsKICAgICAgICAg
bV9jYW5BdHRhY2ggPSBjYW5BdHRhY2g7CiAgICAgICAgIG1faXNBdHRhY2hlZCA9IHNob3VsZE9w
ZW5BdHRhY2hlZCgpOwotICAgICAgICBtX2F0dGFjaG1lbnRTaWRlID0gc3RhdGljX2Nhc3Q8QXR0
YWNobWVudFNpZGU+KGluc3BlY3RvclBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLmluc3BlY3Rv
ckF0dGFjaG1lbnRTaWRlKCkpOworICAgICAgICBtX2F0dGFjaG1lbnRTaWRlID0gc3RhdGljX2Nh
c3Q8QXR0YWNobWVudFNpZGU+KGluc3BlY3RvclBhZ2VQcmVmZXJlbmNlcygpLmluc3BlY3RvckF0
dGFjaG1lbnRTaWRlKCkpOwogCiAgICAgICAgIG1fcGFnZS0+cHJvY2VzcygpLnNlbmQoTWVzc2Fn
ZXM6OldlYkluc3BlY3Rvcjo6U2V0QXR0YWNoZWQobV9pc0F0dGFjaGVkKSwgbV9wYWdlLT5wYWdl
SUQoKSk7CiAKQEAgLTYzMyw3ICs2MTUsNyBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjphcHBl
bmQoY29uc3QgU3RyaW5nJiBmaWxlbmFtZSwgY29uc3QgU3RyaW5nJiBjb250ZW50KQogCiBib29s
IFdlYkluc3BlY3RvclByb3h5OjpzaG91bGRPcGVuQXR0YWNoZWQoKQogewotICAgIHJldHVybiBp
bnNwZWN0b3JQYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS5pbnNwZWN0b3JTdGFydHNBdHRhY2hl
ZCgpICYmIGNhbkF0dGFjaCgpOworICAgIHJldHVybiBpbnNwZWN0b3JQYWdlUHJlZmVyZW5jZXMo
KS5pbnNwZWN0b3JTdGFydHNBdHRhY2hlZCgpICYmIGNhbkF0dGFjaCgpOwogfQogCiAjaWYgRU5B
QkxFKElOU1BFQ1RPUl9TRVJWRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViSW5zcGVjdG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNw
ZWN0b3JQcm94eS5oCmluZGV4IDE3ZTBjYzVmZTFhOWEzMTc1ODljNzlkY2QyZTAyNDliOWNlOTVm
NGEuLmUzZDNjNTcyZjgzMWQyZTBmZDdjNjU4ODIwNjE1ZmZiNmYxNTZiODMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCkBAIC0zMSw3ICszMSw2IEBA
CiAjaW5jbHVkZSAiQXR0YWNobWVudC5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+Ci0jaW5jbHVkZSA8d3RmL1Bhc3NSZWZQdHIuaD4KICNp
bmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAK
QEAgLTQ1LDcgKzQ0LDcgQEAgT0JKQ19DTEFTUyBOU0J1dHRvbjsKIE9CSkNfQ0xBU1MgTlNVUkw7
CiBPQkpDX0NMQVNTIE5TV2luZG93OwogT0JKQ19DTEFTUyBXS1dlYkluc3BlY3RvclByb3h5T2Jq
Q0FkYXB0ZXI7Ci1PQkpDX0NMQVNTIFdLV2ViSW5zcGVjdG9yV0tWaWV3OworT0JKQ19DTEFTUyBX
S1dlYkluc3BlY3RvcldLV2ViVmlldzsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oR1RLKQpAQCAt
NjIsNiArNjEsNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIFdlYkZyYW1lUHJveHk7CiBj
bGFzcyBXZWJQYWdlR3JvdXA7CiBjbGFzcyBXZWJQYWdlUHJveHk7CitjbGFzcyBXZWJQcmVmZXJl
bmNlczsKIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogCiBlbnVtIEF0dGFjaG1lbnRTaWRlIHsKQEAg
LTcxLDkgKzcxLDkgQEAgZW51bSBBdHRhY2htZW50U2lkZSB7CiAKIGNsYXNzIFdlYkluc3BlY3Rv
clByb3h5IDogcHVibGljIEFQSTo6T2JqZWN0SW1wbDxBUEk6Ok9iamVjdDo6VHlwZTo6SW5zcGVj
dG9yPiwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMg
UGFzc1JlZlB0cjxXZWJJbnNwZWN0b3JQcm94eT4gY3JlYXRlKFdlYlBhZ2VQcm94eSogcGFnZSkK
KyAgICBzdGF0aWMgUmVmPFdlYkluc3BlY3RvclByb3h5PiBjcmVhdGUoV2ViUGFnZVByb3h5KiBw
YWdlKQogICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBXZWJJbnNwZWN0b3JQcm94
eShwYWdlKSk7CisgICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IFdlYkluc3BlY3RvclByb3h5
KHBhZ2UpKTsKICAgICB9CiAKICAgICB+V2ViSW5zcGVjdG9yUHJveHkoKTsKQEAgLTE5Miw3ICsx
OTIsNyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBvcGVuKCk7CiAKLSAgICBXZWJQYWdlR3JvdXAq
IGluc3BlY3RvclBhZ2VHcm91cCgpIGNvbnN0OworICAgIFdlYlByZWZlcmVuY2VzJiBpbnNwZWN0
b3JQYWdlUHJlZmVyZW5jZXMoKSBjb25zdDsKIAogI2lmIFBMQVRGT1JNKEdUSykgfHwgUExBVEZP
Uk0oRUZMKQogICAgIHZvaWQgY3JlYXRlSW5zcGVjdG9yV2luZG93KCk7CkBAIC0yMDksMTYgKzIw
OSwxNiBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBpbml0aWFsV2luZG93
V2lkdGg7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGluaXRpYWxXaW5kb3dIZWlnaHQ7CiAK
LSAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKLSAgICBXZWJQYWdlUHJveHkqIG1faW5zcGVjdG9y
UGFnZTsKKyAgICBXZWJQYWdlUHJveHkqIG1fcGFnZSB7bnVsbHB0cn07CisgICAgV2ViUGFnZVBy
b3h5KiBtX2luc3BlY3RvclBhZ2Uge251bGxwdHJ9OwogCi0gICAgYm9vbCBtX3VuZGVyVGVzdDsK
LSAgICBib29sIG1faXNWaXNpYmxlOwotICAgIGJvb2wgbV9pc0F0dGFjaGVkOwotICAgIGJvb2wg
bV9jYW5BdHRhY2g7Ci0gICAgYm9vbCBtX2lzUHJvZmlsaW5nUGFnZTsKLSAgICBib29sIG1fc2hv
d01lc3NhZ2VTZW50OwotICAgIGJvb2wgbV9pZ25vcmVGaXJzdEJyaW5nVG9Gcm9udDsKKyAgICBi
b29sIG1fdW5kZXJUZXN0IHtmYWxzZX07CisgICAgYm9vbCBtX2lzVmlzaWJsZSB7ZmFsc2V9Owor
ICAgIGJvb2wgbV9pc0F0dGFjaGVkIHtmYWxzZX07CisgICAgYm9vbCBtX2NhbkF0dGFjaCB7ZmFs
c2V9OworICAgIGJvb2wgbV9pc1Byb2ZpbGluZ1BhZ2Uge2ZhbHNlfTsKKyAgICBib29sIG1fc2hv
d01lc3NhZ2VTZW50IHtmYWxzZX07CisgICAgYm9vbCBtX2lnbm9yZUZpcnN0QnJpbmdUb0Zyb250
IHtmYWxzZX07CiAKICAgICAvLyBUaGUgZGVidWdnZXIgc3RvcHMgYWxsIHRoZSBwYWdlcyBpbiB0
aGUgc2FtZSBQYWdlR3JvdXAuIEhhdmluZwogICAgIC8vIGFsbCB0aGUgaW5zcGVjdG9ycyBpbiB0
aGUgc2FtZSBncm91cCB3aWxsIG1ha2UgaXQgaW1wb3NzaWJsZSB0byBkZWJ1ZwpAQCAtMjI3LDEw
ICsyMjcsMTAgQEAgcHJpdmF0ZToKICAgICAKICAgICBJUEM6OkF0dGFjaG1lbnQgbV9jb25uZWN0
aW9uSWRlbnRpZmllcjsKIAotICAgIEF0dGFjaG1lbnRTaWRlIG1fYXR0YWNobWVudFNpZGU7Cisg
ICAgQXR0YWNobWVudFNpZGUgbV9hdHRhY2htZW50U2lkZSB7QXR0YWNobWVudFNpZGVCb3R0b219
OwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIFJldGFpblB0cjxXS1dlYkluc3BlY3RvcldLVmll
dz4gbV9pbnNwZWN0b3JWaWV3OworICAgIFJldGFpblB0cjxXS1dlYkluc3BlY3RvcldLV2ViVmll
dz4gbV9pbnNwZWN0b3JWaWV3OwogICAgIFJldGFpblB0cjxOU1dpbmRvdz4gbV9pbnNwZWN0b3JX
aW5kb3c7CiAgICAgUmV0YWluUHRyPE5TQnV0dG9uPiBtX2RvY2tCb3R0b21CdXR0b247CiAgICAg
UmV0YWluUHRyPE5TQnV0dG9uPiBtX2RvY2tSaWdodEJ1dHRvbjsKQEAgLTI0MCwxOCArMjQwLDE4
IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fdXJsU3RyaW5nOwogI2VsaWYgUExBVEZPUk0oR1RL
KQogICAgIFdlYkluc3BlY3RvckNsaWVudEd0ayBtX2NsaWVudDsKLSAgICBHdGtXaWRnZXQqIG1f
aW5zcGVjdG9yVmlldzsKLSAgICBHdGtXaWRnZXQqIG1faW5zcGVjdG9yV2luZG93OwotICAgIEd0
a1dpZGdldCogbV9oZWFkZXJCYXI7Ci0gICAgR3RrV2lkZ2V0KiBtX2RvY2tCb3R0b21CdXR0b247
Ci0gICAgR3RrV2lkZ2V0KiBtX2RvY2tSaWdodEJ1dHRvbjsKLSAgICBTdHJpbmcgbV9pbnNwZWN0
ZWRVUkxTdHJpbmc7CisgICAgR3RrV2lkZ2V0KiBtX2luc3BlY3RvclZpZXcge251bGxwdHJ9Owor
ICAgIEd0a1dpZGdldCogbV9pbnNwZWN0b3JXaW5kb3cge251bGxwdHJ9OworICAgIEd0a1dpZGdl
dCogbV9oZWFkZXJCYXIge251bGxwdHJ9OworICAgIEd0a1dpZGdldCogbV9kb2NrQm90dG9tQnV0
dG9uIHtudWxscHRyfTsKKyAgICBHdGtXaWRnZXQqIG1fZG9ja1JpZ2h0QnV0dG9uIHtudWxscHRy
fTsKKyAgICBTdHJpbmcgbV9pbnNwZWN0ZWRVUkxTdHJpbmcge251bGxwdHJ9OwogI2VsaWYgUExB
VEZPUk0oRUZMKQotICAgIEV2YXNfT2JqZWN0KiBtX2luc3BlY3RvclZpZXc7Ci0gICAgRWNvcmVf
RXZhcyogbV9pbnNwZWN0b3JXaW5kb3c7CisgICAgRXZhc19PYmplY3QqIG1faW5zcGVjdG9yVmll
dyB7bnVsbHB0cn07CisgICAgRWNvcmVfRXZhcyogbV9pbnNwZWN0b3JXaW5kb3cge251bGxwdHJ9
OwogI2VuZGlmCiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9TRVJWRVIpCi0gICAgaW50IG1fcmVtb3Rl
SW5zcGVjdGlvblBhZ2VJZDsKKyAgICBpbnQgbV9yZW1vdGVJbnNwZWN0aW9uUGFnZUlkIHswfTsK
ICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9X
ZWJJbnNwZWN0b3JQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2Vi
SW5zcGVjdG9yUHJveHlNYWMubW0KaW5kZXggODliMGE5ZjUzMzQyOWUwNjFlNjRkZGUxZjk1OWNi
NmRmY2M3MjQ2Ni4uZjFiMjlkNDZhMzU2MzY3MDg4Y2VkOWQ3YTY5N2JlOThkMTg3NjRjZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1h
Yy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5
TWFjLm1tCkBAIC0zMywxNSArMzMsMTggQEAKICNpbXBvcnQgIldLTXV0YWJsZUFycmF5LmgiCiAj
aW1wb3J0ICJXS09wZW5QYW5lbFBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIldLT3BlblBhbmVsUmVz
dWx0TGlzdGVuZXIuaCIKKyNpbXBvcnQgIldLUHJlZmVyZW5jZXNJbnRlcm5hbC5oIgorI2ltcG9y
dCAiV0tQcm9jZXNzUG9vbEludGVybmFsLmgiCiAjaW1wb3J0ICJXS1JldGFpblB0ci5oIgogI2lt
cG9ydCAiV0tVUkxDRi5oIgogI2ltcG9ydCAiV0tWaWV3SW50ZXJuYWwuaCIKKyNpbXBvcnQgIldL
V2ViVmlld0NvbmZpZ3VyYXRpb24uaCIKKyNpbXBvcnQgIldLV2ViVmlld0ludGVybmFsLmgiCiAj
aW1wb3J0ICJXZWJJbnNwZWN0b3JNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViSW5zcGVjdG9yVUlN
ZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUGFnZUdyb3VwLmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJv
eHkuaCIKICNpbXBvcnQgIldlYlByZWZlcmVuY2VzLmgiCi0jaW1wb3J0ICJXZWJQcm9jZXNzUG9v
bC5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW1wb3J0IDxRdWFydHpDb3JlL0Nv
cmVBbmltYXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRM
b2NhbC5oPgpAQCAtMTcwLDcgKzE3Myw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB3ZWJWaWV3
Q2xvc2VUaW1lb3V0ID0gNjA7CiAKIEBlbmQKIAotQGludGVyZmFjZSBXS1dlYkluc3BlY3RvcldL
VmlldyA6IFdLVmlldyB7CitAaW50ZXJmYWNlIFdLV2ViSW5zcGVjdG9yV0tXZWJWaWV3IDogV0tX
ZWJWaWV3IHsKIEBwcml2YXRlCiAgICAgV0tXZWJJbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyICpf
aW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlcjsKIH0KQEAgLTE3OCw3ICsxODEsNyBAQCBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgd2ViVmlld0Nsb3NlVGltZW91dCA9IDYwOwogQHByb3BlcnR5IChub25h
dG9taWMsIGFzc2lnbikgV0tXZWJJbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyICppbnNwZWN0b3JQ
cm94eU9iakNBZGFwdGVyOwogQGVuZAogCi1AaW1wbGVtZW50YXRpb24gV0tXZWJJbnNwZWN0b3JX
S1ZpZXcKK0BpbXBsZW1lbnRhdGlvbiBXS1dlYkluc3BlY3RvcldLV2ViVmlldwogCiBAc3ludGhl
c2l6ZSBpbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyID0gX2luc3BlY3RvclByb3h5T2JqQ0FkYXB0
ZXI7CiAKQEAgLTE4OSw4ICsxOTIsNiBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgd2ViVmlld0Ns
b3NlVGltZW91dCA9IDYwOwogCiAtICh2b2lkKV9kaWRSZWxhdW5jaFByb2Nlc3MKIHsKLSAgICBb
c3VwZXIgX2RpZFJlbGF1bmNoUHJvY2Vzc107Ci0KICAgICBbc2VsZi5pbnNwZWN0b3JQcm94eU9i
akNBZGFwdGVyIGRpZFJlbGF1bmNoUHJvY2Vzc107CiB9CiAKQEAgLTI4OSw2ICsyOTAsMTEgQEAg
c3RhdGljIHZvaWQgcnVuT3BlblBhbmVsKFdLUGFnZVJlZiBwYWdlLCBXS0ZyYW1lUmVmIGZyYW1l
LCBXS09wZW5QYW5lbFBhcmFtZXRlcnMKICAgICB9XTsKIH0KIAorV2ViUHJlZmVyZW5jZXMmIFdl
Ykluc3BlY3RvclByb3h5OjppbnNwZWN0b3JQYWdlUHJlZmVyZW5jZXMoKSBjb25zdAoreworICAg
IHJldHVybiBtX2luc3BlY3RvclZpZXctPl9wYWdlLT5wcmVmZXJlbmNlcygpOworfQorCiB2b2lk
IFdlYkluc3BlY3RvclByb3h5OjpzZXRJbnNwZWN0b3JXaW5kb3dGcmFtZShXS1JlY3QmIGZyYW1l
KQogewogICAgIGlmIChtX2lzQXR0YWNoZWQpCkBAIC0zMTIsOCArMzE4LDcgQEAgdm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6Y2xvc2VUaW1lckZpcmVkKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAg
aWYgKG1faW5zcGVjdG9yVmlldykgewotICAgICAgICBXZWJQYWdlUHJveHkqIGluc3BlY3RvclBh
Z2UgPSB0b0ltcGwobV9pbnNwZWN0b3JWaWV3LmdldCgpLnBhZ2VSZWYpOwotICAgICAgICBpbnNw
ZWN0b3JQYWdlLT5jbG9zZSgpOworICAgICAgICBtX2luc3BlY3RvclZpZXctPl9wYWdlLT5jbG9z
ZSgpOwogICAgICAgICBbbV9pbnNwZWN0b3JWaWV3IHNldEluc3BlY3RvclByb3h5T2JqQ0FkYXB0
ZXI6bmlsXTsKICAgICAgICAgbV9pbnNwZWN0b3JWaWV3ID0gbmlsOwogICAgIH0KQEAgLTMzMSw3
ICszMzYsNyBAQCBzdGF0aWMgTlNCdXR0b24gKmNyZWF0ZURvY2tCdXR0b24oTlNTdHJpbmcgKmlt
YWdlTmFtZSkKICAgICBkb2NrQnV0dG9uLmF1dG9yZXNpemluZ01hc2sgPSBOU1ZpZXdNaW5YTWFy
Z2luIHwgTlNWaWV3TWluWU1hcmdpbjsKIAogICAgIC8vIEdldCB0aGUgZG9jayBpbWFnZSBhbmQg
bWFrZSBpdCBhIHRlbXBsYXRlIHNvIHRoZSBidXR0b24gY2VsbCBlZmZlY3RzIHdpbGwgYXBwbHku
Ci0gICAgTlNJbWFnZSAqZG9ja0ltYWdlID0gW1tOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpbV0tX
ZWJJbnNwZWN0b3JXS1ZpZXcgY2xhc3NdXSBpbWFnZUZvclJlc291cmNlOmltYWdlTmFtZV07Cisg
ICAgTlNJbWFnZSAqZG9ja0ltYWdlID0gW1tOU0J1bmRsZSBidW5kbGVGb3JDbGFzczpbV0tXZWJJ
bnNwZWN0b3JXS1dlYlZpZXcgY2xhc3NdXSBpbWFnZUZvclJlc291cmNlOmltYWdlTmFtZV07CiAg
ICAgW2RvY2tJbWFnZSBzZXRUZW1wbGF0ZTpZRVNdOwogCiAgICAgLy8gU2V0IHRoZSBkb2NrIGlt
YWdlIG9uIHRoZSBidXR0b24gY2VsbC4KQEAgLTQ1Myw3ICs0NTgsNyBAQCBXZWJQYWdlUHJveHkq
IFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNyZWF0ZUluc3BlY3RvclBhZ2UoKQogCiAgICAg
aWYgKG1faW5zcGVjdG9yVmlldykgewogICAgICAgICBBU1NFUlQobV9pbnNwZWN0b3JQcm94eU9i
akNBZGFwdGVyKTsKLSAgICAgICAgcmV0dXJuIHRvSW1wbChtX2luc3BlY3RvclZpZXcuZ2V0KCku
cGFnZVJlZik7CisgICAgICAgIHJldHVybiBtX2luc3BlY3RvclZpZXctPl9wYWdlLmdldCgpOwog
ICAgIH0KIAogICAgIEFTU0VSVCghbV9pbnNwZWN0b3JWaWV3KTsKQEAgLTQ2NSwxMCArNDcwLDEw
IEBAIFdlYlBhZ2VQcm94eSogV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ3JlYXRlSW5zcGVj
dG9yUGFnZSgpCiAKICAgICAgICAgc3dpdGNoIChtX2F0dGFjaG1lbnRTaWRlKSB7CiAgICAgICAg
IGNhc2UgQXR0YWNobWVudFNpZGVCb3R0b206Ci0gICAgICAgICAgICBpbml0aWFsUmVjdCA9IE5T
TWFrZVJlY3QoMCwgMCwgTlNXaWR0aChpbnNwZWN0ZWRWaWV3RnJhbWUpLCBpbnNwZWN0b3JQYWdl
R3JvdXAoKS0+cHJlZmVyZW5jZXMoKS5pbnNwZWN0b3JBdHRhY2hlZEhlaWdodCgpKTsKKyAgICAg
ICAgICAgIGluaXRpYWxSZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCBOU1dpZHRoKGluc3BlY3RlZFZp
ZXdGcmFtZSksIGluc3BlY3RvclBhZ2VQcmVmZXJlbmNlcygpLmluc3BlY3RvckF0dGFjaGVkSGVp
Z2h0KCkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQXR0YWNobWVudFNpZGVS
aWdodDoKLSAgICAgICAgICAgIGluaXRpYWxSZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCBpbnNwZWN0
b3JQYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS5pbnNwZWN0b3JBdHRhY2hlZFdpZHRoKCksIE5T
SGVpZ2h0KGluc3BlY3RlZFZpZXdGcmFtZSkpOworICAgICAgICAgICAgaW5pdGlhbFJlY3QgPSBO
U01ha2VSZWN0KDAsIDAsIGluc3BlY3RvclBhZ2VQcmVmZXJlbmNlcygpLmluc3BlY3RvckF0dGFj
aGVkV2lkdGgoKSwgTlNIZWlnaHQoaW5zcGVjdGVkVmlld0ZyYW1lKSk7CiAgICAgICAgICAgICBi
cmVhazsKICAgICAgICAgfQogICAgIH0gZWxzZSB7CkBAIC00ODAsNyArNDg1LDE4IEBAIFdlYlBh
Z2VQcm94eSogV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSgp
CiAgICAgICAgICAgICBpbml0aWFsUmVjdCA9IFtOU1dpbmRvdyBjb250ZW50UmVjdEZvckZyYW1l
UmVjdDp3aW5kb3dGcmFtZSBzdHlsZU1hc2s6d2luZG93U3R5bGVNYXNrXTsKICAgICB9CiAKLSAg
ICBtX2luc3BlY3RvclZpZXcgPSBhZG9wdE5TKFtbV0tXZWJJbnNwZWN0b3JXS1ZpZXcgYWxsb2Nd
IGluaXRXaXRoRnJhbWU6aW5pdGlhbFJlY3QgY29udGV4dFJlZjp0b0FQSSgmaW5zcGVjdG9yUHJv
Y2Vzc1Bvb2woKSkgcGFnZUdyb3VwUmVmOnRvQVBJKGluc3BlY3RvclBhZ2VHcm91cCgpKSByZWxh
dGVkVG9QYWdlOm51bGxwdHJdKTsKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtb
V0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFdLUHJlZmVyZW5jZXMg
KnByZWZlcmVuY2VzID0gW2NvbmZpZ3VyYXRpb24gcHJlZmVyZW5jZXNdOworI2lmbmRlZiBOREVC
VUcKKyAgICAvLyBBbGxvdyBkZXZlbG9wZXJzIHRvIGluc3BlY3QgdGhlIFdlYiBJbnNwZWN0b3Ig
aW4gZGVidWcgYnVpbGRzIHdpdGhvdXQgY2hhbmdpbmcgc2V0dGluZ3MuCisgICAgcHJlZmVyZW5j
ZXMuX2RldmVsb3BlckV4dHJhc0VuYWJsZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX2xvZ3NQ
YWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkID0gWUVTOworI2VuZGlmCisgICAgcHJl
ZmVyZW5jZXMuX2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcyA9IFlFUzsKKyAgICBbY29uZmln
dXJhdGlvbiBzZXRQcm9jZXNzUG9vbDogOjpXZWJLaXQ6OndyYXBwZXIoaW5zcGVjdG9yUHJvY2Vz
c1Bvb2woKSldOworCisgICAgbV9pbnNwZWN0b3JWaWV3ID0gYWRvcHROUyhbW1dLV2ViSW5zcGVj
dG9yV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOmluaXRpYWxSZWN0IGNvbmZpZ3VyYXRp
b246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIC8vIGNvbnRleHRSZWY6dG9BUEkoJmluc3Bl
Y3RvclByb2Nlc3NQb29sKCkpIHBhZ2VHcm91cFJlZjp0b0FQSShpbnNwZWN0b3JQYWdlR3JvdXAo
KSkgcmVsYXRlZFRvUGFnZTpudWxscHRyXSk7CiAgICAgQVNTRVJUKG1faW5zcGVjdG9yVmlldyk7
CiAKICNpZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwOTAKQEAgLTQ5Miw3
ICs1MDgsNyBAQCBXZWJQYWdlUHJveHkqIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNyZWF0
ZUluc3BlY3RvclBhZ2UoKQogCiAgICAgW21faW5zcGVjdG9yVmlldyBzZXRJbnNwZWN0b3JQcm94
eU9iakNBZGFwdGVyOm1faW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlci5nZXQoKV07CiAKLSAgICBX
ZWJQYWdlUHJveHkqIGluc3BlY3RvclBhZ2UgPSB0b0ltcGwobV9pbnNwZWN0b3JWaWV3LmdldCgp
LnBhZ2VSZWYpOworICAgIFdlYlBhZ2VQcm94eSogaW5zcGVjdG9yUGFnZSA9IG1faW5zcGVjdG9y
Vmlldy0+X3BhZ2UuZ2V0KCk7CiAgICAgQVNTRVJUKGluc3BlY3RvclBhZ2UpOwogCiAgICAgV0tQ
YWdlVUlDbGllbnRWMiB1aUNsaWVudCA9IHsKQEAgLTc5NSwxMCArODExLDEwIEBAIHZvaWQgV2Vi
SW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKIAogICAgIHN3aXRjaCAobV9hdHRhY2ht
ZW50U2lkZSkgewogICAgIGNhc2UgQXR0YWNobWVudFNpZGVCb3R0b206Ci0gICAgICAgIGN1cnJl
bnREaW1lbnNpb24gPSBpbnNwZWN0b3JQYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS5pbnNwZWN0
b3JBdHRhY2hlZEhlaWdodCgpOworICAgICAgICBjdXJyZW50RGltZW5zaW9uID0gaW5zcGVjdG9y
UGFnZVByZWZlcmVuY2VzKCkuaW5zcGVjdG9yQXR0YWNoZWRIZWlnaHQoKTsKICAgICAgICAgYnJl
YWs7CiAgICAgY2FzZSBBdHRhY2htZW50U2lkZVJpZ2h0OgotICAgICAgICBjdXJyZW50RGltZW5z
aW9uID0gaW5zcGVjdG9yUGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCkuaW5zcGVjdG9yQXR0YWNo
ZWRXaWR0aCgpOworICAgICAgICBjdXJyZW50RGltZW5zaW9uID0gaW5zcGVjdG9yUGFnZVByZWZl
cmVuY2VzKCkuaW5zcGVjdG9yQXR0YWNoZWRXaWR0aCgpOwogICAgICAgICBicmVhazsKICAgICB9
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245817</attachid>
            <date>2015-01-31 21:09:39 -0800</date>
            <delta_ts>2015-02-01 11:17:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141037-20150131210946.patch</filename>
            <type>text/plain</type>
            <size>19506</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5NDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTQ3ZDg4NDVkNjJhNzEx
ZmQ2OGE2MDllNzFjYjI3ODQ4ZTVmNTJhMy4uYzhkZjJmZjZjOGYyZDU4NjRkMjM0MTEyNDBmNDE5
YzM0ZTA1YmUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE1LTAxLTMxICBCcmlh
biBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KKworICAgICAgICBDb252ZXJ0IFdl
Ykluc3BlY3RvclByb3h5IHRvIHVzZSBXS1dlYlZpZXcgQVBJIGZvciB0aGUgaW5zcGVjdG9yIHZp
ZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTAz
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSB0
aGUgbmV3ZXIgQVBJIGZvciBQTEFURk9STShNQUMpLiBUaGUgbWFpbiBkaWZmZXJlbmNlIGlzIHRo
YXQgdGhlCisgICAgICAgIFdLV2ViVmlldydzIHBhZ2UgZ3JvdXAgY2Fubm90IGJlIHNldCBkaXJl
Y3RseTsgaW5zdGVhZCwgdGhlIGdyb3VwIGlkZW50aWZpZXIKKyAgICAgICAgaXMgcGFzc2VkLiBB
bHNvIGFkZCBzb21lIHByZWZlcmVuY2Ugc2V0dGVycyBuZWVkZWQgZm9yIHRoZSBpbnNwZWN0b3Iu
CisKKyAgICAgICAgUmVmYWN0b3Igc29tZSBjb2RlIHRvIG5vdCB1c2UgcGFnZSBncm91cHMgZGly
ZWN0bHkuIEluIGEgZnV0dXJlIHBhdGNoLAorICAgICAgICB0aGUgUGFnZUdyb3VwLWJhc2VkIGlu
c3BlY3RvciBsZXZlbCBzeXN0ZW0gd2lsbCBiZSBzaW1wbGlmaWVkLiBJdCBpcworICAgICAgICBp
dCBpcyBubyBsb25nZXIgbmVjZXNzYXJ5IHRvIGtlZXAgYSBzdGF0aWMgbWFwIG9mIFBhZ2VHcm91
cCBpbnN0YW5jZXMsCisgICAgICAgIHNpbmNlIHRoZXkgYXJlIG9ubHkgdXNlZCB0byBzYXZlIGlu
c3BlY3RvciB3aW5kb3cgcHJlZmVyZW5jZXMuIChUaGVzZSB1c2VkCisgICAgICAgIHRvIHByZXZl
bnQgYWxsIGxldmVscyBvZiBpbnNwZWN0b3IgZnJvbSBwYXVzaW5nIHRvZ2V0aGVyIHdoZW4gYSBz
ZWNvbmQtbGV2ZWwKKyAgICAgICAgaW5zcGVjdG9yIGhpdCBhIGJyZWFrcG9pbnQuIFRoaXMgaXMg
bm90IG5lY2Vzc2FyeSB3aXRoIG11bHRpLXByb2Nlc3MKKyAgICAgICAgd2ViIGluc3BlY3RvcnMu
KQorCisgICAgICAgIEFsc28sIGFkanVzdCB3aW5kb3cgcmVzaXppbmcgYmVoYXZpb3Igd2hlbiB0
aGUgaW5zcGVjdG9yIGlzIGRvY2tlZCB0bworICAgICAgICB0aGUgcmlnaHQuIFdpbmRvdyB3aWR0
aCByZXNpemVzIHNob3VsZCBub3QgYWZmZWN0IHRoZSB3aWR0aCBvZiB0aGUgaW5zcGVjdG9yCisg
ICAgICAgIGZyYW1lLiBUaGlzIG1hdGNoZXMgdGhlIGJlaGF2aW9yIG9mIGhlaWdodCBjaGFuZ2Vz
IHdoZW4gZG9ja2VkIHRvIHRoZSBib3R0b20uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX2xvZ3NQYWdl
TWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkXSk6IEFkZGVkLgorICAgICAgICAoLVtXS1By
ZWZlcmVuY2VzIF9zZXRMb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZDpdKTog
QWRkZWQuCisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxl
VVJMc10pOiBBZGRlZC4KKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0QWxsb3dGaWxlQWNj
ZXNzRnJvbUZpbGVVUkxzOl0pOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkluc3BlY3Rv
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OldlYkluc3Bl
Y3RvclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3Rv
clBhZ2VQcmVmZXJlbmNlcyk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQ
cm94eTo6YXR0YWNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OmRldGFj
aCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpzZXRBdHRhY2hlZFdpbmRv
d0hlaWdodCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpzZXRBdHRhY2hl
ZFdpbmRvd1dpZHRoKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OmNyZWF0
ZUluc3BlY3RvclBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6c2hv
dWxkT3BlbkF0dGFjaGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHku
aDogVXNlIGRlZmF1bHQgbWVtYmVyIGluaXRpYWxpemVycy4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
bWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tOgorICAgICAgICAoLVtXS1dlYkluc3BlY3RvcldL
V2ViVmlldyBfZGlkUmVsYXVuY2hQcm9jZXNzXSk6CisgICAgICAgIFdLV2ViVmlldyBkb2Vzbid0
IGltcGxlbWVudCB0aGlzLCBzbyByZW1vdmUgdGhlIHN1cGVyIGNhbGwuCisgICAgICAgIChXZWJL
aXQ6OldlYkluc3BlY3RvclByb3h5OjpjbG9zZVRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViS2l0
OjpjcmVhdGVEb2NrQnV0dG9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6
OnBsYXRmb3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3Bl
Y3RvclByb3h5OjpwbGF0Zm9ybUF0dGFjaCk6CisgICAgICAgICgtW1dLV2ViSW5zcGVjdG9yV0tW
aWV3IF9kaWRSZWxhdW5jaFByb2Nlc3NdKTogRGVsZXRlZC4KKwogMjAxNS0wMS0zMCAgVGltIEhv
cnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYW5kIGhvb2sg
dXAgQVBJTmF2aWdhdGlvbkNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCmluZGV4IDZmNGNmNzgxYzk2NGM5NGNjMzZhOTli
Yjc1ZTcwMWQ4NDY3OGUyNmUuLmVmY2FmYmUzMjc3ZDYyODJhOTdkMTA4YzI4NjYzODc5YWY1OTNi
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
ZmVyZW5jZXMubW0KQEAgLTI0Nyw2ICsyNDcsMjYgQEAgc3RhdGljIF9XS1N0b3JhZ2VCbG9ja2lu
Z1BvbGljeSB0b0FQSShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG8K
ICAgICBfcHJlZmVyZW5jZXMtPnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoZGV2ZWxvcGVyRXh0
cmFzRW5hYmxlZCk7CiB9CiAKKy0gKEJPT0wpX2xvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNv
bGVFbmFibGVkCit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+bG9nc1BhZ2VNZXNzYWdlc1Rv
U3lzdGVtQ29uc29sZUVuYWJsZWQoKTsKK30KKworLSAodm9pZClfc2V0TG9nc1BhZ2VNZXNzYWdl
c1RvU3lzdGVtQ29uc29sZUVuYWJsZWQ6KEJPT0wpbG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29u
c29sZUVuYWJsZWQKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldExvZ3NQYWdlTWVzc2FnZXNUb1N5
c3RlbUNvbnNvbGVFbmFibGVkKGxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVk
KTsKK30KKworLSAoQk9PTClfYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzCit7CisgICAgcmV0
dXJuIF9wcmVmZXJlbmNlcy0+YWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKCk7Cit9CisKKy0g
KHZvaWQpX3NldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMczooQk9PTClhbGxvd0ZpbGVBY2Nl
c3NGcm9tRmlsZVVSTHMKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldEFsbG93RmlsZUFjY2Vzc0Zy
b21GaWxlVVJMcyhhbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMpOworfQorCiAtIChCT09MKV9p
c1N0YW5kYWxvbmUKIHsKICAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5zdGFuZGFsb25lKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVy
ZW5jZXNQcml2YXRlLmgKaW5kZXggZTRlMjAzZGM3NjEzNzZlOTI2M2VlNzJkZDBiZjA2MmM5OTFl
MzJiMi4uZmUwNDdhMGY4YTlkNmE0YjQyNWRjMWMwNzJjMzA2NmQ0YTFiOWIwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNl
c1ByaXZhdGUuaApAQCAtNTYsNiArNTYsMTAgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVn
ZXIsIF9XS0RlYnVnT3ZlcmxheVJlZ2lvbnMpIHsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDopIEJPT0wgX2RldmVsb3BlckV4dHJhc0Vu
YWJsZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwogCitAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRMb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5h
YmxlZDopIEJPT0wgX2xvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkIFdLX0FW
QUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKworQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzOikgQk9PTCBfYWxsb3dGaWxl
QWNjZXNzRnJvbUZpbGVVUkxzIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsK
KwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U3RhbmRhbG9uZTosIGdldHRlcj1f
aXNTdGFuZGFsb25lKSBCT09MIF9zdGFuZGFsb25lIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBX
S19JT1NfVEJBKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RGlhZ25vc3Rp
Y0xvZ2dpbmdFbmFibGVkOikgQk9PTCBfZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkIFdLX0FWQUlM
QUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCmluZGV4IGJmZDdhZDU1ZDk5ZGFlMGM2Zjk4ZDRhZTQy
MjhkOWQ0YTY3M2YyMjYuLjljMDJhNWFjODY2YjA2OTBkNTc1ZTY1Yjc4OTZhZjZiYjBlNWQzZTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcApA
QCAtMTIxLDI4ICsxMjEsOCBAQCBwcml2YXRlOgogCiBXZWJJbnNwZWN0b3JQcm94eTo6V2ViSW5z
cGVjdG9yUHJveHkoV2ViUGFnZVByb3h5KiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2UpCi0gICAg
LCBtX2luc3BlY3RvclBhZ2UobnVsbHB0cikKLSAgICAsIG1fdW5kZXJUZXN0KGZhbHNlKQotICAg
ICwgbV9pc1Zpc2libGUoZmFsc2UpCi0gICAgLCBtX2lzQXR0YWNoZWQoZmFsc2UpCi0gICAgLCBt
X2NhbkF0dGFjaChmYWxzZSkKLSAgICAsIG1faXNQcm9maWxpbmdQYWdlKGZhbHNlKQotICAgICwg
bV9zaG93TWVzc2FnZVNlbnQoZmFsc2UpCi0gICAgLCBtX2lnbm9yZUZpcnN0QnJpbmdUb0Zyb250
KGZhbHNlKQotICAgICwgbV9hdHRhY2htZW50U2lkZShBdHRhY2htZW50U2lkZUJvdHRvbSkKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgLCBtX2Nsb3NlVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlz
LCAmV2ViSW5zcGVjdG9yUHJveHk6OmNsb3NlVGltZXJGaXJlZCkKLSNlbGlmIFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oRUZMKQotICAgICwgbV9pbnNwZWN0b3JWaWV3KG51bGxwdHIpCi0gICAg
LCBtX2luc3BlY3RvcldpbmRvdyhudWxscHRyKQotI2lmIFBMQVRGT1JNKEdUSykKLSAgICAsIG1f
aGVhZGVyQmFyKG51bGxwdHIpCi0gICAgLCBtX2RvY2tCb3R0b21CdXR0b24obnVsbHB0cikKLSAg
ICAsIG1fZG9ja1JpZ2h0QnV0dG9uKG51bGxwdHIpCi0jZW5kaWYKLSNlbmRpZgotI2lmIEVOQUJM
RShJTlNQRUNUT1JfU0VSVkVSKQotICAgICwgbV9yZW1vdGVJbnNwZWN0aW9uUGFnZUlkKDApCiAj
ZW5kaWYKIHsKICAgICBtX2xldmVsID0gV2ViSW5zcGVjdG9yUGFnZUdyb3Vwczo6c2luZ2xldG9u
KCkuaW5zcGVjdG9yTGV2ZWwobV9wYWdlLT5wYWdlR3JvdXAoKSk7CkBAIC0xNTgsNiArMTM4LDEx
IEBAIFdlYlBhZ2VHcm91cCogV2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3RvclBhZ2VHcm91cCgp
IGNvbnN0CiAgICAgcmV0dXJuIFdlYkluc3BlY3RvclBhZ2VHcm91cHM6OnNpbmdsZXRvbigpLmlu
c3BlY3RvclBhZ2VHcm91cEZvckxldmVsKG1fbGV2ZWwpOwogfQogCitXZWJQcmVmZXJlbmNlcyYg
V2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3RvclBhZ2VQcmVmZXJlbmNlcygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGluc3BlY3RvclBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpOworfQorCiB2b2lk
IFdlYkluc3BlY3RvclByb3h5OjppbnZhbGlkYXRlKCkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9S
X1NFUlZFUikKQEAgLTI5MywxMCArMjc4LDEwIEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OmF0
dGFjaChBdHRhY2htZW50U2lkZSBzaWRlKQogICAgIG1faXNBdHRhY2hlZCA9IHRydWU7CiAgICAg
bV9hdHRhY2htZW50U2lkZSA9IHNpZGU7CiAKLSAgICBpbnNwZWN0b3JQYWdlR3JvdXAoKS0+cHJl
ZmVyZW5jZXMoKS5zZXRJbnNwZWN0b3JBdHRhY2htZW50U2lkZShzaWRlKTsKKyAgICBpbnNwZWN0
b3JQYWdlUHJlZmVyZW5jZXMoKS5zZXRJbnNwZWN0b3JBdHRhY2htZW50U2lkZShzaWRlKTsKIAog
ICAgIGlmIChtX2lzVmlzaWJsZSkKLSAgICAgICAgaW5zcGVjdG9yUGFnZUdyb3VwKCktPnByZWZl
cmVuY2VzKCkuc2V0SW5zcGVjdG9yU3RhcnRzQXR0YWNoZWQodHJ1ZSk7CisgICAgICAgIGluc3Bl
Y3RvclBhZ2VQcmVmZXJlbmNlcygpLnNldEluc3BlY3RvclN0YXJ0c0F0dGFjaGVkKHRydWUpOwog
CiAgICAgbV9wYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yOjpTZXRB
dHRhY2hlZCh0cnVlKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiAKQEAgLTMyMSw3ICszMDYsNyBAQCB2
b2lkIFdlYkluc3BlY3RvclByb3h5OjpkZXRhY2goKQogICAgIG1faXNBdHRhY2hlZCA9IGZhbHNl
OwogCiAgICAgaWYgKG1faXNWaXNpYmxlKQotICAgICAgICBpbnNwZWN0b3JQYWdlR3JvdXAoKS0+
cHJlZmVyZW5jZXMoKS5zZXRJbnNwZWN0b3JTdGFydHNBdHRhY2hlZChmYWxzZSk7CisgICAgICAg
IGluc3BlY3RvclBhZ2VQcmVmZXJlbmNlcygpLnNldEluc3BlY3RvclN0YXJ0c0F0dGFjaGVkKGZh
bHNlKTsKIAogICAgIG1fcGFnZS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3Rv
cjo6U2V0QXR0YWNoZWQoZmFsc2UpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKICAgICBtX2luc3BlY3Rv
clBhZ2UtPnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSTo6RGV0YWNoZWQo
KSwgbV9pbnNwZWN0b3JQYWdlLT5wYWdlSUQoKSk7CkBAIC0zMzEsMTMgKzMxNiwxMyBAQCB2b2lk
IFdlYkluc3BlY3RvclByb3h5OjpkZXRhY2goKQogCiB2b2lkIFdlYkluc3BlY3RvclByb3h5Ojpz
ZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCBoZWlnaHQpCiB7Ci0gICAgaW5zcGVjdG9y
UGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCkuc2V0SW5zcGVjdG9yQXR0YWNoZWRIZWlnaHQoaGVp
Z2h0KTsKKyAgICBpbnNwZWN0b3JQYWdlUHJlZmVyZW5jZXMoKS5zZXRJbnNwZWN0b3JBdHRhY2hl
ZEhlaWdodChoZWlnaHQpOwogICAgIHBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQoaGVp
Z2h0KTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6c2V0QXR0YWNoZWRXaW5kb3dXaWR0
aCh1bnNpZ25lZCB3aWR0aCkKIHsKLSAgICBpbnNwZWN0b3JQYWdlR3JvdXAoKS0+cHJlZmVyZW5j
ZXMoKS5zZXRJbnNwZWN0b3JBdHRhY2hlZFdpZHRoKHdpZHRoKTsKKyAgICBpbnNwZWN0b3JQYWdl
UHJlZmVyZW5jZXMoKS5zZXRJbnNwZWN0b3JBdHRhY2hlZFdpZHRoKHdpZHRoKTsKICAgICBwbGF0
Zm9ybVNldEF0dGFjaGVkV2luZG93V2lkdGgod2lkdGgpOwogfQogCkBAIC01MzksNyArNTI0LDcg
QEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6Y3JlYXRlSW5zcGVjdG9yUGFnZShJUEM6OkF0dGFj
aG1lbnQgY29ubmVjdGlvbklkZW50aWZpZXIKICAgICBpZiAoIW1fdW5kZXJUZXN0KSB7CiAgICAg
ICAgIG1fY2FuQXR0YWNoID0gY2FuQXR0YWNoOwogICAgICAgICBtX2lzQXR0YWNoZWQgPSBzaG91
bGRPcGVuQXR0YWNoZWQoKTsKLSAgICAgICAgbV9hdHRhY2htZW50U2lkZSA9IHN0YXRpY19jYXN0
PEF0dGFjaG1lbnRTaWRlPihpbnNwZWN0b3JQYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS5pbnNw
ZWN0b3JBdHRhY2htZW50U2lkZSgpKTsKKyAgICAgICAgbV9hdHRhY2htZW50U2lkZSA9IHN0YXRp
Y19jYXN0PEF0dGFjaG1lbnRTaWRlPihpbnNwZWN0b3JQYWdlUHJlZmVyZW5jZXMoKS5pbnNwZWN0
b3JBdHRhY2htZW50U2lkZSgpKTsKIAogICAgICAgICBtX3BhZ2UtPnByb2Nlc3MoKS5zZW5kKE1l
c3NhZ2VzOjpXZWJJbnNwZWN0b3I6OlNldEF0dGFjaGVkKG1faXNBdHRhY2hlZCksIG1fcGFnZS0+
cGFnZUlEKCkpOwogCkBAIC02MzMsNyArNjE4LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6
YXBwZW5kKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgY29udGVudCkKIAog
Ym9vbCBXZWJJbnNwZWN0b3JQcm94eTo6c2hvdWxkT3BlbkF0dGFjaGVkKCkKIHsKLSAgICByZXR1
cm4gaW5zcGVjdG9yUGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCkuaW5zcGVjdG9yU3RhcnRzQXR0
YWNoZWQoKSAmJiBjYW5BdHRhY2goKTsKKyAgICByZXR1cm4gaW5zcGVjdG9yUGFnZVByZWZlcmVu
Y2VzKCkuaW5zcGVjdG9yU3RhcnRzQXR0YWNoZWQoKSAmJiBjYW5BdHRhY2goKTsKIH0KIAogI2lm
IEVOQUJMRShJTlNQRUNUT1JfU0VSVkVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
SW5zcGVjdG9yUHJveHkuaAppbmRleCAxN2UwY2M1ZmUxYTlhMzE3NTg5Yzc5ZGNkMmUwMjQ5Yjlj
ZTk1ZjRhLi5kNjY2NzY5OTA4NjEwNWVmYmJmYWUwMWUxMzA2NDNjMDlmZGJkY2VhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaApAQCAtMzEsNyArMzEs
NiBAQAogI2luY2x1ZGUgIkF0dGFjaG1lbnQuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCkBAIC00NSw3ICs0NCw3IEBAIE9CSkNfQ0xBU1MgTlNCdXR0b247CiBPQkpDX0NMQVNTIE5T
VVJMOwogT0JKQ19DTEFTUyBOU1dpbmRvdzsKIE9CSkNfQ0xBU1MgV0tXZWJJbnNwZWN0b3JQcm94
eU9iakNBZGFwdGVyOwotT0JKQ19DTEFTUyBXS1dlYkluc3BlY3RvcldLVmlldzsKK09CSkNfQ0xB
U1MgV0tXZWJJbnNwZWN0b3JXS1dlYlZpZXc7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykK
QEAgLTYyLDYgKzYxLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJGcmFtZVByb3h5
OwogY2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUGFnZVByb3h5OworY2xhc3MgV2ViUHJl
ZmVyZW5jZXM7CiBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKIAogZW51bSBBdHRhY2htZW50U2lkZSB7
CkBAIC05NCw3ICs5NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsb3NlKCk7CiAKICAgICB2b2lk
IGRpZFJlbGF1bmNoSW5zcGVjdG9yUGFnZVByb2Nlc3MoKTsKLSAgICAKKwogI2lmIFBMQVRGT1JN
KE1BQykKICAgICB2b2lkIGNyZWF0ZUluc3BlY3RvcldpbmRvdygpOwogICAgIHZvaWQgdXBkYXRl
SW5zcGVjdG9yV2luZG93VGl0bGUoKSBjb25zdDsKQEAgLTE5Miw3ICsxOTIsMTAgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgb3BlbigpOwogCisgICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIHJldHVy
biB0aGUgcGFnZSBncm91cCBpZGVudGlmaWVyLCBub3QgYW4gaW5zdGFuY2UuIFRoZSBNYWMgcG9y
dCBjYW5ub3QKKyAgICAvLyBkaXJlY3RseSBwcm92aWRlIGEgcGFnZSBncm91cCBpbnN0YW5jZSwg
YW5kIGluc3RhbmNlcyBhcmUgbm90IG5lY2Vzc2FyeSB0byBjb21wdXRlIGxldmVscy4KICAgICBX
ZWJQYWdlR3JvdXAqIGluc3BlY3RvclBhZ2VHcm91cCgpIGNvbnN0OworICAgIFdlYlByZWZlcmVu
Y2VzJiBpbnNwZWN0b3JQYWdlUHJlZmVyZW5jZXMoKSBjb25zdDsKIAogI2lmIFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oRUZMKQogICAgIHZvaWQgY3JlYXRlSW5zcGVjdG9yV2luZG93KCk7CkBA
IC0yMDksMTYgKzIxMiwxNiBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBp
bml0aWFsV2luZG93V2lkdGg7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGluaXRpYWxXaW5k
b3dIZWlnaHQ7CiAKLSAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKLSAgICBXZWJQYWdlUHJveHkq
IG1faW5zcGVjdG9yUGFnZTsKKyAgICBXZWJQYWdlUHJveHkqIG1fcGFnZSB7bnVsbHB0cn07Cisg
ICAgV2ViUGFnZVByb3h5KiBtX2luc3BlY3RvclBhZ2Uge251bGxwdHJ9OwogCi0gICAgYm9vbCBt
X3VuZGVyVGVzdDsKLSAgICBib29sIG1faXNWaXNpYmxlOwotICAgIGJvb2wgbV9pc0F0dGFjaGVk
OwotICAgIGJvb2wgbV9jYW5BdHRhY2g7Ci0gICAgYm9vbCBtX2lzUHJvZmlsaW5nUGFnZTsKLSAg
ICBib29sIG1fc2hvd01lc3NhZ2VTZW50OwotICAgIGJvb2wgbV9pZ25vcmVGaXJzdEJyaW5nVG9G
cm9udDsKKyAgICBib29sIG1fdW5kZXJUZXN0IHtmYWxzZX07CisgICAgYm9vbCBtX2lzVmlzaWJs
ZSB7ZmFsc2V9OworICAgIGJvb2wgbV9pc0F0dGFjaGVkIHtmYWxzZX07CisgICAgYm9vbCBtX2Nh
bkF0dGFjaCB7ZmFsc2V9OworICAgIGJvb2wgbV9pc1Byb2ZpbGluZ1BhZ2Uge2ZhbHNlfTsKKyAg
ICBib29sIG1fc2hvd01lc3NhZ2VTZW50IHtmYWxzZX07CisgICAgYm9vbCBtX2lnbm9yZUZpcnN0
QnJpbmdUb0Zyb250IHtmYWxzZX07CiAKICAgICAvLyBUaGUgZGVidWdnZXIgc3RvcHMgYWxsIHRo
ZSBwYWdlcyBpbiB0aGUgc2FtZSBQYWdlR3JvdXAuIEhhdmluZwogICAgIC8vIGFsbCB0aGUgaW5z
cGVjdG9ycyBpbiB0aGUgc2FtZSBncm91cCB3aWxsIG1ha2UgaXQgaW1wb3NzaWJsZSB0byBkZWJ1
ZwpAQCAtMjI3LDEwICsyMzAsMTAgQEAgcHJpdmF0ZToKICAgICAKICAgICBJUEM6OkF0dGFjaG1l
bnQgbV9jb25uZWN0aW9uSWRlbnRpZmllcjsKIAotICAgIEF0dGFjaG1lbnRTaWRlIG1fYXR0YWNo
bWVudFNpZGU7CisgICAgQXR0YWNobWVudFNpZGUgbV9hdHRhY2htZW50U2lkZSB7QXR0YWNobWVu
dFNpZGVCb3R0b219OwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIFJldGFpblB0cjxXS1dlYklu
c3BlY3RvcldLVmlldz4gbV9pbnNwZWN0b3JWaWV3OworICAgIFJldGFpblB0cjxXS1dlYkluc3Bl
Y3RvcldLV2ViVmlldz4gbV9pbnNwZWN0b3JWaWV3OwogICAgIFJldGFpblB0cjxOU1dpbmRvdz4g
bV9pbnNwZWN0b3JXaW5kb3c7CiAgICAgUmV0YWluUHRyPE5TQnV0dG9uPiBtX2RvY2tCb3R0b21C
dXR0b247CiAgICAgUmV0YWluUHRyPE5TQnV0dG9uPiBtX2RvY2tSaWdodEJ1dHRvbjsKQEAgLTI0
MCwxOCArMjQzLDE4IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fdXJsU3RyaW5nOwogI2VsaWYg
UExBVEZPUk0oR1RLKQogICAgIFdlYkluc3BlY3RvckNsaWVudEd0ayBtX2NsaWVudDsKLSAgICBH
dGtXaWRnZXQqIG1faW5zcGVjdG9yVmlldzsKLSAgICBHdGtXaWRnZXQqIG1faW5zcGVjdG9yV2lu
ZG93OwotICAgIEd0a1dpZGdldCogbV9oZWFkZXJCYXI7Ci0gICAgR3RrV2lkZ2V0KiBtX2RvY2tC
b3R0b21CdXR0b247Ci0gICAgR3RrV2lkZ2V0KiBtX2RvY2tSaWdodEJ1dHRvbjsKLSAgICBTdHJp
bmcgbV9pbnNwZWN0ZWRVUkxTdHJpbmc7CisgICAgR3RrV2lkZ2V0KiBtX2luc3BlY3RvclZpZXcg
e251bGxwdHJ9OworICAgIEd0a1dpZGdldCogbV9pbnNwZWN0b3JXaW5kb3cge251bGxwdHJ9Owor
ICAgIEd0a1dpZGdldCogbV9oZWFkZXJCYXIge251bGxwdHJ9OworICAgIEd0a1dpZGdldCogbV9k
b2NrQm90dG9tQnV0dG9uIHtudWxscHRyfTsKKyAgICBHdGtXaWRnZXQqIG1fZG9ja1JpZ2h0QnV0
dG9uIHtudWxscHRyfTsKKyAgICBTdHJpbmcgbV9pbnNwZWN0ZWRVUkxTdHJpbmcge251bGxwdHJ9
OwogI2VsaWYgUExBVEZPUk0oRUZMKQotICAgIEV2YXNfT2JqZWN0KiBtX2luc3BlY3RvclZpZXc7
Ci0gICAgRWNvcmVfRXZhcyogbV9pbnNwZWN0b3JXaW5kb3c7CisgICAgRXZhc19PYmplY3QqIG1f
aW5zcGVjdG9yVmlldyB7bnVsbHB0cn07CisgICAgRWNvcmVfRXZhcyogbV9pbnNwZWN0b3JXaW5k
b3cge251bGxwdHJ9OwogI2VuZGlmCiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9TRVJWRVIpCi0gICAg
aW50IG1fcmVtb3RlSW5zcGVjdGlvblBhZ2VJZDsKKyAgICBpbnQgbV9yZW1vdGVJbnNwZWN0aW9u
UGFnZUlkIHswfTsKICNlbmRpZgogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KaW5kZXggODliMGE5ZjUzMzQyOWUwNjFl
NjRkZGUxZjk1OWNiNmRmY2M3MjQ2Ni4uNzcxNDhhOWM0NWE2N2FiZTlkMWY2ZjY4MGRiNTg3MjBm
YjA2MjY0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNw
ZWN0b3JQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYklu
c3BlY3RvclByb3h5TWFjLm1tCkBAIC0zMywxNSArMzMsMTggQEAKICNpbXBvcnQgIldLTXV0YWJs
ZUFycmF5LmgiCiAjaW1wb3J0ICJXS09wZW5QYW5lbFBhcmFtZXRlcnMuaCIKICNpbXBvcnQgIldL
T3BlblBhbmVsUmVzdWx0TGlzdGVuZXIuaCIKKyNpbXBvcnQgIldLUHJlZmVyZW5jZXNJbnRlcm5h
bC5oIgorI2ltcG9ydCAiV0tQcm9jZXNzUG9vbEludGVybmFsLmgiCiAjaW1wb3J0ICJXS1JldGFp
blB0ci5oIgogI2ltcG9ydCAiV0tVUkxDRi5oIgogI2ltcG9ydCAiV0tWaWV3SW50ZXJuYWwuaCIK
KyNpbXBvcnQgIldLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmgiCisjaW1wb3J0ICJXS1dl
YlZpZXdJbnRlcm5hbC5oIgogI2ltcG9ydCAiV2ViSW5zcGVjdG9yTWVzc2FnZXMuaCIKICNpbXBv
cnQgIldlYkluc3BlY3RvclVJTWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlBhZ2VHcm91cC5oIgog
I2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJXZWJQcmVmZXJlbmNlcy5oIgotI2lt
cG9ydCAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eS5oIgogI2lt
cG9ydCA8UXVhcnR6Q29yZS9Db3JlQW5pbWF0aW9uLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0luc3Bl
Y3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaD4KQEAgLTE3MCw3ICsxNzMsNyBAQCBzdGF0aWMgY29u
c3QgdW5zaWduZWQgd2ViVmlld0Nsb3NlVGltZW91dCA9IDYwOwogCiBAZW5kCiAKLUBpbnRlcmZh
Y2UgV0tXZWJJbnNwZWN0b3JXS1ZpZXcgOiBXS1ZpZXcgeworQGludGVyZmFjZSBXS1dlYkluc3Bl
Y3RvcldLV2ViVmlldyA6IFdLV2ViVmlldyB7CiBAcHJpdmF0ZQogICAgIFdLV2ViSW5zcGVjdG9y
UHJveHlPYmpDQWRhcHRlciAqX2luc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXI7CiB9CkBAIC0xNzgs
NyArMTgxLDcgQEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHdlYlZpZXdDbG9zZVRpbWVvdXQgPSA2
MDsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBhc3NpZ24pIFdLV2ViSW5zcGVjdG9yUHJveHlPYmpD
QWRhcHRlciAqaW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlcjsKIEBlbmQKIAotQGltcGxlbWVudGF0
aW9uIFdLV2ViSW5zcGVjdG9yV0tWaWV3CitAaW1wbGVtZW50YXRpb24gV0tXZWJJbnNwZWN0b3JX
S1dlYlZpZXcKIAogQHN5bnRoZXNpemUgaW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlciA9IF9pbnNw
ZWN0b3JQcm94eU9iakNBZGFwdGVyOwogCkBAIC0xODksOCArMTkyLDYgQEAgc3RhdGljIGNvbnN0
IHVuc2lnbmVkIHdlYlZpZXdDbG9zZVRpbWVvdXQgPSA2MDsKIAogLSAodm9pZClfZGlkUmVsYXVu
Y2hQcm9jZXNzCiB7Ci0gICAgW3N1cGVyIF9kaWRSZWxhdW5jaFByb2Nlc3NdOwotCiAgICAgW3Nl
bGYuaW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlciBkaWRSZWxhdW5jaFByb2Nlc3NdOwogfQogCkBA
IC0zMTIsOCArMzEzLDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6Y2xvc2VUaW1lckZpcmVk
KCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1faW5zcGVjdG9yVmlldykgewotICAgICAg
ICBXZWJQYWdlUHJveHkqIGluc3BlY3RvclBhZ2UgPSB0b0ltcGwobV9pbnNwZWN0b3JWaWV3Lmdl
dCgpLnBhZ2VSZWYpOwotICAgICAgICBpbnNwZWN0b3JQYWdlLT5jbG9zZSgpOworICAgICAgICBt
X2luc3BlY3RvclZpZXctPl9wYWdlLT5jbG9zZSgpOwogICAgICAgICBbbV9pbnNwZWN0b3JWaWV3
IHNldEluc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXI6bmlsXTsKICAgICAgICAgbV9pbnNwZWN0b3JW
aWV3ID0gbmlsOwogICAgIH0KQEAgLTMzMSw3ICszMzEsNyBAQCBzdGF0aWMgTlNCdXR0b24gKmNy
ZWF0ZURvY2tCdXR0b24oTlNTdHJpbmcgKmltYWdlTmFtZSkKICAgICBkb2NrQnV0dG9uLmF1dG9y
ZXNpemluZ01hc2sgPSBOU1ZpZXdNaW5YTWFyZ2luIHwgTlNWaWV3TWluWU1hcmdpbjsKIAogICAg
IC8vIEdldCB0aGUgZG9jayBpbWFnZSBhbmQgbWFrZSBpdCBhIHRlbXBsYXRlIHNvIHRoZSBidXR0
b24gY2VsbCBlZmZlY3RzIHdpbGwgYXBwbHkuCi0gICAgTlNJbWFnZSAqZG9ja0ltYWdlID0gW1tO
U0J1bmRsZSBidW5kbGVGb3JDbGFzczpbV0tXZWJJbnNwZWN0b3JXS1ZpZXcgY2xhc3NdXSBpbWFn
ZUZvclJlc291cmNlOmltYWdlTmFtZV07CisgICAgTlNJbWFnZSAqZG9ja0ltYWdlID0gW1tOU0J1
bmRsZSBidW5kbGVGb3JDbGFzczpbV0tXZWJJbnNwZWN0b3JXS1dlYlZpZXcgY2xhc3NdXSBpbWFn
ZUZvclJlc291cmNlOmltYWdlTmFtZV07CiAgICAgW2RvY2tJbWFnZSBzZXRUZW1wbGF0ZTpZRVNd
OwogCiAgICAgLy8gU2V0IHRoZSBkb2NrIGltYWdlIG9uIHRoZSBidXR0b24gY2VsbC4KQEAgLTQ1
Myw3ICs0NTMsNyBAQCBXZWJQYWdlUHJveHkqIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNy
ZWF0ZUluc3BlY3RvclBhZ2UoKQogCiAgICAgaWYgKG1faW5zcGVjdG9yVmlldykgewogICAgICAg
ICBBU1NFUlQobV9pbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyKTsKLSAgICAgICAgcmV0dXJuIHRv
SW1wbChtX2luc3BlY3RvclZpZXcuZ2V0KCkucGFnZVJlZik7CisgICAgICAgIHJldHVybiBtX2lu
c3BlY3RvclZpZXctPl9wYWdlLmdldCgpOwogICAgIH0KIAogICAgIEFTU0VSVCghbV9pbnNwZWN0
b3JWaWV3KTsKQEAgLTQ2NSwxMCArNDY1LDEwIEBAIFdlYlBhZ2VQcm94eSogV2ViSW5zcGVjdG9y
UHJveHk6OnBsYXRmb3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSgpCiAKICAgICAgICAgc3dpdGNoICht
X2F0dGFjaG1lbnRTaWRlKSB7CiAgICAgICAgIGNhc2UgQXR0YWNobWVudFNpZGVCb3R0b206Ci0g
ICAgICAgICAgICBpbml0aWFsUmVjdCA9IE5TTWFrZVJlY3QoMCwgMCwgTlNXaWR0aChpbnNwZWN0
ZWRWaWV3RnJhbWUpLCBpbnNwZWN0b3JQYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS5pbnNwZWN0
b3JBdHRhY2hlZEhlaWdodCgpKTsKKyAgICAgICAgICAgIGluaXRpYWxSZWN0ID0gTlNNYWtlUmVj
dCgwLCAwLCBOU1dpZHRoKGluc3BlY3RlZFZpZXdGcmFtZSksIGluc3BlY3RvclBhZ2VQcmVmZXJl
bmNlcygpLmluc3BlY3RvckF0dGFjaGVkSGVpZ2h0KCkpOwogICAgICAgICAgICAgYnJlYWs7CiAg
ICAgICAgIGNhc2UgQXR0YWNobWVudFNpZGVSaWdodDoKLSAgICAgICAgICAgIGluaXRpYWxSZWN0
ID0gTlNNYWtlUmVjdCgwLCAwLCBpbnNwZWN0b3JQYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS5p
bnNwZWN0b3JBdHRhY2hlZFdpZHRoKCksIE5TSGVpZ2h0KGluc3BlY3RlZFZpZXdGcmFtZSkpOwor
ICAgICAgICAgICAgaW5pdGlhbFJlY3QgPSBOU01ha2VSZWN0KDAsIDAsIGluc3BlY3RvclBhZ2VQ
cmVmZXJlbmNlcygpLmluc3BlY3RvckF0dGFjaGVkV2lkdGgoKSwgTlNIZWlnaHQoaW5zcGVjdGVk
Vmlld0ZyYW1lKSk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogICAgIH0gZWxzZSB7
CkBAIC00ODAsMTkgKzQ4MCwzNCBAQCBXZWJQYWdlUHJveHkqIFdlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybUNyZWF0ZUluc3BlY3RvclBhZ2UoKQogICAgICAgICAgICAgaW5pdGlhbFJlY3QgPSBb
TlNXaW5kb3cgY29udGVudFJlY3RGb3JGcmFtZVJlY3Q6d2luZG93RnJhbWUgc3R5bGVNYXNrOndp
bmRvd1N0eWxlTWFza107CiAgICAgfQogCi0gICAgbV9pbnNwZWN0b3JWaWV3ID0gYWRvcHROUyhb
W1dLV2ViSW5zcGVjdG9yV0tWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOmluaXRpYWxSZWN0IGNv
bnRleHRSZWY6dG9BUEkoJmluc3BlY3RvclByb2Nlc3NQb29sKCkpIHBhZ2VHcm91cFJlZjp0b0FQ
SShpbnNwZWN0b3JQYWdlR3JvdXAoKSkgcmVsYXRlZFRvUGFnZTpudWxscHRyXSk7CisgICAgYXV0
byBjb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2Nd
IGluaXRdKTsKKyAgICBXS1ByZWZlcmVuY2VzICpwcmVmZXJlbmNlcyA9IFtjb25maWd1cmF0aW9u
IHByZWZlcmVuY2VzXTsKKyNpZm5kZWYgTkRFQlVHCisgICAgLy8gQWxsb3cgZGV2ZWxvcGVycyB0
byBpbnNwZWN0IHRoZSBXZWIgSW5zcGVjdG9yIGluIGRlYnVnIGJ1aWxkcyB3aXRob3V0IGNoYW5n
aW5nIHNldHRpbmdzLgorICAgIHByZWZlcmVuY2VzLl9kZXZlbG9wZXJFeHRyYXNFbmFibGVkID0g
WUVTOworICAgIHByZWZlcmVuY2VzLl9sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5h
YmxlZCA9IFlFUzsKKyNlbmRpZgorICAgIHByZWZlcmVuY2VzLl9hbGxvd0ZpbGVBY2Nlc3NGcm9t
RmlsZVVSTHMgPSBZRVM7CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vzc1Bvb2w6IDo6V2Vi
S2l0Ojp3cmFwcGVyKGluc3BlY3RvclByb2Nlc3NQb29sKCkpXTsKKyAgICBbY29uZmlndXJhdGlv
biBfc2V0R3JvdXBJZGVudGlmaWVyOmluc3BlY3RvclBhZ2VHcm91cCgpLT5pZGVudGlmaWVyKCld
OworCisgICAgbV9pbnNwZWN0b3JWaWV3ID0gYWRvcHROUyhbW1dLV2ViSW5zcGVjdG9yV0tXZWJW
aWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOmluaXRpYWxSZWN0IGNvbmZpZ3VyYXRpb246Y29uZmln
dXJhdGlvbi5nZXQoKV0pOwogICAgIEFTU0VSVChtX2luc3BlY3RvclZpZXcpOwogCiAjaWYgX19N
QUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA8PSAxMDkwCiAgICAgW21faW5zcGVjdG9yVmll
dyBzZXREcmF3c0JhY2tncm91bmQ6Tk9dOwogI2VuZGlmCiAKKyNpZiBfX01BQ19PU19YX1ZFUlNJ
T05fTUlOX1JFUVVJUkVEID49IDEwMTAwMAorICAgIFttX2luc3BlY3RvclZpZXcgX3NldEF1dG9t
YXRpY2FsbHlBZGp1c3RzQ29udGVudEluc2V0czpOT107CisjZW5kaWYKKwogICAgIG1faW5zcGVj
dG9yUHJveHlPYmpDQWRhcHRlciA9IGFkb3B0TlMoW1tXS1dlYkluc3BlY3RvclByb3h5T2JqQ0Fk
YXB0ZXIgYWxsb2NdIGluaXRXaXRoV2ViSW5zcGVjdG9yUHJveHk6dGhpc10pOwogICAgIEFTU0VS
VChtX2luc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIpOwogCiAgICAgW21faW5zcGVjdG9yVmlldyBz
ZXRJbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyOm1faW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlci5n
ZXQoKV07CiAKLSAgICBXZWJQYWdlUHJveHkqIGluc3BlY3RvclBhZ2UgPSB0b0ltcGwobV9pbnNw
ZWN0b3JWaWV3LmdldCgpLnBhZ2VSZWYpOworICAgIFdlYlBhZ2VQcm94eSogaW5zcGVjdG9yUGFn
ZSA9IG1faW5zcGVjdG9yVmlldy0+X3BhZ2UuZ2V0KCk7CiAgICAgQVNTRVJUKGluc3BlY3RvclBh
Z2UpOwogCiAgICAgV0tQYWdlVUlDbGllbnRWMiB1aUNsaWVudCA9IHsKQEAgLTc4OSwxNiArODA0
LDE2IEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKIAogICAgIFtt
X2luc3BlY3RvclZpZXcgcmVtb3ZlRnJvbVN1cGVydmlld107CiAKLSAgICBbbV9pbnNwZWN0b3JW
aWV3IHNldEF1dG9yZXNpemluZ01hc2s6TlNWaWV3V2lkdGhTaXphYmxlIHwgTlNWaWV3TWF4WU1h
cmdpbl07Ci0KICAgICBDR0Zsb2F0IGN1cnJlbnREaW1lbnNpb247CiAKICAgICBzd2l0Y2ggKG1f
YXR0YWNobWVudFNpZGUpIHsKICAgICBjYXNlIEF0dGFjaG1lbnRTaWRlQm90dG9tOgotICAgICAg
ICBjdXJyZW50RGltZW5zaW9uID0gaW5zcGVjdG9yUGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCku
aW5zcGVjdG9yQXR0YWNoZWRIZWlnaHQoKTsKKyAgICAgICAgW21faW5zcGVjdG9yVmlldyBzZXRB
dXRvcmVzaXppbmdNYXNrOk5TVmlld1dpZHRoU2l6YWJsZSB8IE5TVmlld01heFlNYXJnaW5dOwor
ICAgICAgICBjdXJyZW50RGltZW5zaW9uID0gaW5zcGVjdG9yUGFnZVByZWZlcmVuY2VzKCkuaW5z
cGVjdG9yQXR0YWNoZWRIZWlnaHQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBdHRhY2ht
ZW50U2lkZVJpZ2h0OgotICAgICAgICBjdXJyZW50RGltZW5zaW9uID0gaW5zcGVjdG9yUGFnZUdy
b3VwKCktPnByZWZlcmVuY2VzKCkuaW5zcGVjdG9yQXR0YWNoZWRXaWR0aCgpOworICAgICAgICBb
bV9pbnNwZWN0b3JWaWV3IHNldEF1dG9yZXNpemluZ01hc2s6TlNWaWV3SGVpZ2h0U2l6YWJsZSB8
IE5TVmlld01pblhNYXJnaW5dOworICAgICAgICBjdXJyZW50RGltZW5zaW9uID0gaW5zcGVjdG9y
UGFnZVByZWZlcmVuY2VzKCkuaW5zcGVjdG9yQXR0YWNoZWRXaWR0aCgpOwogICAgICAgICBicmVh
azsKICAgICB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245836</attachid>
            <date>2015-02-01 11:17:07 -0800</date>
            <delta_ts>2015-02-03 13:40:10 -0800</delta_ts>
            <desc>Patch for EWS</desc>
            <filename>bug-141037-20150201111716.patch</filename>
            <type>text/plain</type>
            <size>19554</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5NDQwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTQ3ZDg4NDVkNjJhNzEx
ZmQ2OGE2MDllNzFjYjI3ODQ4ZTVmNTJhMy4uYzhkZjJmZjZjOGYyZDU4NjRkMjM0MTEyNDBmNDE5
YzM0ZTA1YmUzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUxIEBACisyMDE1LTAxLTMxICBCcmlh
biBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KKworICAgICAgICBDb252ZXJ0IFdl
Ykluc3BlY3RvclByb3h5IHRvIHVzZSBXS1dlYlZpZXcgQVBJIGZvciB0aGUgaW5zcGVjdG9yIHZp
ZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTAz
NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVzZSB0
aGUgbmV3ZXIgQVBJIGZvciBQTEFURk9STShNQUMpLiBUaGUgbWFpbiBkaWZmZXJlbmNlIGlzIHRo
YXQgdGhlCisgICAgICAgIFdLV2ViVmlldydzIHBhZ2UgZ3JvdXAgY2Fubm90IGJlIHNldCBkaXJl
Y3RseTsgaW5zdGVhZCwgdGhlIGdyb3VwIGlkZW50aWZpZXIKKyAgICAgICAgaXMgcGFzc2VkLiBB
bHNvIGFkZCBzb21lIHByZWZlcmVuY2Ugc2V0dGVycyBuZWVkZWQgZm9yIHRoZSBpbnNwZWN0b3Iu
CisKKyAgICAgICAgUmVmYWN0b3Igc29tZSBjb2RlIHRvIG5vdCB1c2UgcGFnZSBncm91cHMgZGly
ZWN0bHkuIEluIGEgZnV0dXJlIHBhdGNoLAorICAgICAgICB0aGUgUGFnZUdyb3VwLWJhc2VkIGlu
c3BlY3RvciBsZXZlbCBzeXN0ZW0gd2lsbCBiZSBzaW1wbGlmaWVkLiBJdCBpcworICAgICAgICBp
dCBpcyBubyBsb25nZXIgbmVjZXNzYXJ5IHRvIGtlZXAgYSBzdGF0aWMgbWFwIG9mIFBhZ2VHcm91
cCBpbnN0YW5jZXMsCisgICAgICAgIHNpbmNlIHRoZXkgYXJlIG9ubHkgdXNlZCB0byBzYXZlIGlu
c3BlY3RvciB3aW5kb3cgcHJlZmVyZW5jZXMuIChUaGVzZSB1c2VkCisgICAgICAgIHRvIHByZXZl
bnQgYWxsIGxldmVscyBvZiBpbnNwZWN0b3IgZnJvbSBwYXVzaW5nIHRvZ2V0aGVyIHdoZW4gYSBz
ZWNvbmQtbGV2ZWwKKyAgICAgICAgaW5zcGVjdG9yIGhpdCBhIGJyZWFrcG9pbnQuIFRoaXMgaXMg
bm90IG5lY2Vzc2FyeSB3aXRoIG11bHRpLXByb2Nlc3MKKyAgICAgICAgd2ViIGluc3BlY3RvcnMu
KQorCisgICAgICAgIEFsc28sIGFkanVzdCB3aW5kb3cgcmVzaXppbmcgYmVoYXZpb3Igd2hlbiB0
aGUgaW5zcGVjdG9yIGlzIGRvY2tlZCB0bworICAgICAgICB0aGUgcmlnaHQuIFdpbmRvdyB3aWR0
aCByZXNpemVzIHNob3VsZCBub3QgYWZmZWN0IHRoZSB3aWR0aCBvZiB0aGUgaW5zcGVjdG9yCisg
ICAgICAgIGZyYW1lLiBUaGlzIG1hdGNoZXMgdGhlIGJlaGF2aW9yIG9mIGhlaWdodCBjaGFuZ2Vz
IHdoZW4gZG9ja2VkIHRvIHRoZSBib3R0b20uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLUHJlZmVyZW5jZXMubW06CisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX2xvZ3NQYWdl
TWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkXSk6IEFkZGVkLgorICAgICAgICAoLVtXS1By
ZWZlcmVuY2VzIF9zZXRMb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZDpdKTog
QWRkZWQuCisgICAgICAgICgtW1dLUHJlZmVyZW5jZXMgX2FsbG93RmlsZUFjY2Vzc0Zyb21GaWxl
VVJMc10pOiBBZGRlZC4KKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfc2V0QWxsb3dGaWxlQWNj
ZXNzRnJvbUZpbGVVUkxzOl0pOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29h
L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkluc3BlY3Rv
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OldlYkluc3Bl
Y3RvclByb3h5KToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3Rv
clBhZ2VQcmVmZXJlbmNlcyk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQ
cm94eTo6YXR0YWNoKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OmRldGFj
aCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpzZXRBdHRhY2hlZFdpbmRv
d0hlaWdodCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpzZXRBdHRhY2hl
ZFdpbmRvd1dpZHRoKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OmNyZWF0
ZUluc3BlY3RvclBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6c2hv
dWxkT3BlbkF0dGFjaGVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHku
aDogVXNlIGRlZmF1bHQgbWVtYmVyIGluaXRpYWxpemVycy4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
bWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tOgorICAgICAgICAoLVtXS1dlYkluc3BlY3RvcldL
V2ViVmlldyBfZGlkUmVsYXVuY2hQcm9jZXNzXSk6CisgICAgICAgIFdLV2ViVmlldyBkb2Vzbid0
IGltcGxlbWVudCB0aGlzLCBzbyByZW1vdmUgdGhlIHN1cGVyIGNhbGwuCisgICAgICAgIChXZWJL
aXQ6OldlYkluc3BlY3RvclByb3h5OjpjbG9zZVRpbWVyRmlyZWQpOgorICAgICAgICAoV2ViS2l0
OjpjcmVhdGVEb2NrQnV0dG9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6
OnBsYXRmb3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3Bl
Y3RvclByb3h5OjpwbGF0Zm9ybUF0dGFjaCk6CisgICAgICAgICgtW1dLV2ViSW5zcGVjdG9yV0tW
aWV3IF9kaWRSZWxhdW5jaFByb2Nlc3NdKTogRGVsZXRlZC4KKwogMjAxNS0wMS0zMCAgVGltIEhv
cnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYW5kIGhvb2sg
dXAgQVBJTmF2aWdhdGlvbkNsaWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCmluZGV4IDZmNGNmNzgxYzk2NGM5NGNjMzZhOTli
Yjc1ZTcwMWQ4NDY3OGUyNmUuLmVmY2FmYmUzMjc3ZDYyODJhOTdkMTA4YzI4NjYzODc5YWY1OTNi
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVm
ZXJlbmNlcy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJl
ZmVyZW5jZXMubW0KQEAgLTI0Nyw2ICsyNDcsMjYgQEAgc3RhdGljIF9XS1N0b3JhZ2VCbG9ja2lu
Z1BvbGljeSB0b0FQSShXZWJDb3JlOjpTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG8K
ICAgICBfcHJlZmVyZW5jZXMtPnNldERldmVsb3BlckV4dHJhc0VuYWJsZWQoZGV2ZWxvcGVyRXh0
cmFzRW5hYmxlZCk7CiB9CiAKKy0gKEJPT0wpX2xvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNv
bGVFbmFibGVkCit7CisgICAgcmV0dXJuIF9wcmVmZXJlbmNlcy0+bG9nc1BhZ2VNZXNzYWdlc1Rv
U3lzdGVtQ29uc29sZUVuYWJsZWQoKTsKK30KKworLSAodm9pZClfc2V0TG9nc1BhZ2VNZXNzYWdl
c1RvU3lzdGVtQ29uc29sZUVuYWJsZWQ6KEJPT0wpbG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29u
c29sZUVuYWJsZWQKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldExvZ3NQYWdlTWVzc2FnZXNUb1N5
c3RlbUNvbnNvbGVFbmFibGVkKGxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVk
KTsKK30KKworLSAoQk9PTClfYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzCit7CisgICAgcmV0
dXJuIF9wcmVmZXJlbmNlcy0+YWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKCk7Cit9CisKKy0g
KHZvaWQpX3NldEFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMczooQk9PTClhbGxvd0ZpbGVBY2Nl
c3NGcm9tRmlsZVVSTHMKK3sKKyAgICBfcHJlZmVyZW5jZXMtPnNldEFsbG93RmlsZUFjY2Vzc0Zy
b21GaWxlVVJMcyhhbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMpOworfQorCiAtIChCT09MKV9p
c1N0YW5kYWxvbmUKIHsKICAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5zdGFuZGFsb25lKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVy
ZW5jZXNQcml2YXRlLmgKaW5kZXggZTRlMjAzZGM3NjEzNzZlOTI2M2VlNzJkZDBiZjA2MmM5OTFl
MzJiMi4uZmUwNDdhMGY4YTlkNmE0YjQyNWRjMWMwNzJjMzA2NmQ0YTFiOWIwYiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNl
c1ByaXZhdGUuaApAQCAtNTYsNiArNTYsMTAgQEAgdHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVn
ZXIsIF9XS0RlYnVnT3ZlcmxheVJlZ2lvbnMpIHsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNl
dHRlcj1fc2V0RGV2ZWxvcGVyRXh0cmFzRW5hYmxlZDopIEJPT0wgX2RldmVsb3BlckV4dHJhc0Vu
YWJsZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwogCitAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRMb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5h
YmxlZDopIEJPT0wgX2xvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkIFdLX0FW
QUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKKworQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzOikgQk9PTCBfYWxsb3dGaWxl
QWNjZXNzRnJvbUZpbGVVUkxzIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsK
KwogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0U3RhbmRhbG9uZTosIGdldHRlcj1f
aXNTdGFuZGFsb25lKSBCT09MIF9zdGFuZGFsb25lIFdLX0FWQUlMQUJMRShXS19NQUNfVEJBLCBX
S19JT1NfVEJBKTsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RGlhZ25vc3Rp
Y0xvZ2dpbmdFbmFibGVkOikgQk9PTCBfZGlhZ25vc3RpY0xvZ2dpbmdFbmFibGVkIFdLX0FWQUlM
QUJMRShXS19NQUNfVEJBLCBXS19JT1NfVEJBKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCmluZGV4IGJmZDdhZDU1ZDk5ZGFlMGM2Zjk4ZDRhZTQy
MjhkOWQ0YTY3M2YyMjYuLjljMDJhNWFjODY2YjA2OTBkNTc1ZTY1Yjc4OTZhZjZiYjBlNWQzZTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcApA
QCAtMTIxLDI4ICsxMjEsOCBAQCBwcml2YXRlOgogCiBXZWJJbnNwZWN0b3JQcm94eTo6V2ViSW5z
cGVjdG9yUHJveHkoV2ViUGFnZVByb3h5KiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2UpCi0gICAg
LCBtX2luc3BlY3RvclBhZ2UobnVsbHB0cikKLSAgICAsIG1fdW5kZXJUZXN0KGZhbHNlKQotICAg
ICwgbV9pc1Zpc2libGUoZmFsc2UpCi0gICAgLCBtX2lzQXR0YWNoZWQoZmFsc2UpCi0gICAgLCBt
X2NhbkF0dGFjaChmYWxzZSkKLSAgICAsIG1faXNQcm9maWxpbmdQYWdlKGZhbHNlKQotICAgICwg
bV9zaG93TWVzc2FnZVNlbnQoZmFsc2UpCi0gICAgLCBtX2lnbm9yZUZpcnN0QnJpbmdUb0Zyb250
KGZhbHNlKQotICAgICwgbV9hdHRhY2htZW50U2lkZShBdHRhY2htZW50U2lkZUJvdHRvbSkKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgLCBtX2Nsb3NlVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlz
LCAmV2ViSW5zcGVjdG9yUHJveHk6OmNsb3NlVGltZXJGaXJlZCkKLSNlbGlmIFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oRUZMKQotICAgICwgbV9pbnNwZWN0b3JWaWV3KG51bGxwdHIpCi0gICAg
LCBtX2luc3BlY3RvcldpbmRvdyhudWxscHRyKQotI2lmIFBMQVRGT1JNKEdUSykKLSAgICAsIG1f
aGVhZGVyQmFyKG51bGxwdHIpCi0gICAgLCBtX2RvY2tCb3R0b21CdXR0b24obnVsbHB0cikKLSAg
ICAsIG1fZG9ja1JpZ2h0QnV0dG9uKG51bGxwdHIpCi0jZW5kaWYKLSNlbmRpZgotI2lmIEVOQUJM
RShJTlNQRUNUT1JfU0VSVkVSKQotICAgICwgbV9yZW1vdGVJbnNwZWN0aW9uUGFnZUlkKDApCiAj
ZW5kaWYKIHsKICAgICBtX2xldmVsID0gV2ViSW5zcGVjdG9yUGFnZUdyb3Vwczo6c2luZ2xldG9u
KCkuaW5zcGVjdG9yTGV2ZWwobV9wYWdlLT5wYWdlR3JvdXAoKSk7CkBAIC0xNTgsNiArMTM4LDEx
IEBAIFdlYlBhZ2VHcm91cCogV2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3RvclBhZ2VHcm91cCgp
IGNvbnN0CiAgICAgcmV0dXJuIFdlYkluc3BlY3RvclBhZ2VHcm91cHM6OnNpbmdsZXRvbigpLmlu
c3BlY3RvclBhZ2VHcm91cEZvckxldmVsKG1fbGV2ZWwpOwogfQogCitXZWJQcmVmZXJlbmNlcyYg
V2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3RvclBhZ2VQcmVmZXJlbmNlcygpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGluc3BlY3RvclBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpOworfQorCiB2b2lk
IFdlYkluc3BlY3RvclByb3h5OjppbnZhbGlkYXRlKCkKIHsKICNpZiBFTkFCTEUoSU5TUEVDVE9S
X1NFUlZFUikKQEAgLTI5MywxMCArMjc4LDEwIEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OmF0
dGFjaChBdHRhY2htZW50U2lkZSBzaWRlKQogICAgIG1faXNBdHRhY2hlZCA9IHRydWU7CiAgICAg
bV9hdHRhY2htZW50U2lkZSA9IHNpZGU7CiAKLSAgICBpbnNwZWN0b3JQYWdlR3JvdXAoKS0+cHJl
ZmVyZW5jZXMoKS5zZXRJbnNwZWN0b3JBdHRhY2htZW50U2lkZShzaWRlKTsKKyAgICBpbnNwZWN0
b3JQYWdlUHJlZmVyZW5jZXMoKS5zZXRJbnNwZWN0b3JBdHRhY2htZW50U2lkZShzaWRlKTsKIAog
ICAgIGlmIChtX2lzVmlzaWJsZSkKLSAgICAgICAgaW5zcGVjdG9yUGFnZUdyb3VwKCktPnByZWZl
cmVuY2VzKCkuc2V0SW5zcGVjdG9yU3RhcnRzQXR0YWNoZWQodHJ1ZSk7CisgICAgICAgIGluc3Bl
Y3RvclBhZ2VQcmVmZXJlbmNlcygpLnNldEluc3BlY3RvclN0YXJ0c0F0dGFjaGVkKHRydWUpOwog
CiAgICAgbV9wYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yOjpTZXRB
dHRhY2hlZCh0cnVlKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiAKQEAgLTMyMSw3ICszMDYsNyBAQCB2
b2lkIFdlYkluc3BlY3RvclByb3h5OjpkZXRhY2goKQogICAgIG1faXNBdHRhY2hlZCA9IGZhbHNl
OwogCiAgICAgaWYgKG1faXNWaXNpYmxlKQotICAgICAgICBpbnNwZWN0b3JQYWdlR3JvdXAoKS0+
cHJlZmVyZW5jZXMoKS5zZXRJbnNwZWN0b3JTdGFydHNBdHRhY2hlZChmYWxzZSk7CisgICAgICAg
IGluc3BlY3RvclBhZ2VQcmVmZXJlbmNlcygpLnNldEluc3BlY3RvclN0YXJ0c0F0dGFjaGVkKGZh
bHNlKTsKIAogICAgIG1fcGFnZS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3Rv
cjo6U2V0QXR0YWNoZWQoZmFsc2UpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKICAgICBtX2luc3BlY3Rv
clBhZ2UtPnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3JVSTo6RGV0YWNoZWQo
KSwgbV9pbnNwZWN0b3JQYWdlLT5wYWdlSUQoKSk7CkBAIC0zMzEsMTMgKzMxNiwxMyBAQCB2b2lk
IFdlYkluc3BlY3RvclByb3h5OjpkZXRhY2goKQogCiB2b2lkIFdlYkluc3BlY3RvclByb3h5Ojpz
ZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCBoZWlnaHQpCiB7Ci0gICAgaW5zcGVjdG9y
UGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCkuc2V0SW5zcGVjdG9yQXR0YWNoZWRIZWlnaHQoaGVp
Z2h0KTsKKyAgICBpbnNwZWN0b3JQYWdlUHJlZmVyZW5jZXMoKS5zZXRJbnNwZWN0b3JBdHRhY2hl
ZEhlaWdodChoZWlnaHQpOwogICAgIHBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQoaGVp
Z2h0KTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6c2V0QXR0YWNoZWRXaW5kb3dXaWR0
aCh1bnNpZ25lZCB3aWR0aCkKIHsKLSAgICBpbnNwZWN0b3JQYWdlR3JvdXAoKS0+cHJlZmVyZW5j
ZXMoKS5zZXRJbnNwZWN0b3JBdHRhY2hlZFdpZHRoKHdpZHRoKTsKKyAgICBpbnNwZWN0b3JQYWdl
UHJlZmVyZW5jZXMoKS5zZXRJbnNwZWN0b3JBdHRhY2hlZFdpZHRoKHdpZHRoKTsKICAgICBwbGF0
Zm9ybVNldEF0dGFjaGVkV2luZG93V2lkdGgod2lkdGgpOwogfQogCkBAIC01MzksNyArNTI0LDcg
QEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6Y3JlYXRlSW5zcGVjdG9yUGFnZShJUEM6OkF0dGFj
aG1lbnQgY29ubmVjdGlvbklkZW50aWZpZXIKICAgICBpZiAoIW1fdW5kZXJUZXN0KSB7CiAgICAg
ICAgIG1fY2FuQXR0YWNoID0gY2FuQXR0YWNoOwogICAgICAgICBtX2lzQXR0YWNoZWQgPSBzaG91
bGRPcGVuQXR0YWNoZWQoKTsKLSAgICAgICAgbV9hdHRhY2htZW50U2lkZSA9IHN0YXRpY19jYXN0
PEF0dGFjaG1lbnRTaWRlPihpbnNwZWN0b3JQYWdlR3JvdXAoKS0+cHJlZmVyZW5jZXMoKS5pbnNw
ZWN0b3JBdHRhY2htZW50U2lkZSgpKTsKKyAgICAgICAgbV9hdHRhY2htZW50U2lkZSA9IHN0YXRp
Y19jYXN0PEF0dGFjaG1lbnRTaWRlPihpbnNwZWN0b3JQYWdlUHJlZmVyZW5jZXMoKS5pbnNwZWN0
b3JBdHRhY2htZW50U2lkZSgpKTsKIAogICAgICAgICBtX3BhZ2UtPnByb2Nlc3MoKS5zZW5kKE1l
c3NhZ2VzOjpXZWJJbnNwZWN0b3I6OlNldEF0dGFjaGVkKG1faXNBdHRhY2hlZCksIG1fcGFnZS0+
cGFnZUlEKCkpOwogCkBAIC02MzMsNyArNjE4LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6
YXBwZW5kKGNvbnN0IFN0cmluZyYgZmlsZW5hbWUsIGNvbnN0IFN0cmluZyYgY29udGVudCkKIAog
Ym9vbCBXZWJJbnNwZWN0b3JQcm94eTo6c2hvdWxkT3BlbkF0dGFjaGVkKCkKIHsKLSAgICByZXR1
cm4gaW5zcGVjdG9yUGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCkuaW5zcGVjdG9yU3RhcnRzQXR0
YWNoZWQoKSAmJiBjYW5BdHRhY2goKTsKKyAgICByZXR1cm4gaW5zcGVjdG9yUGFnZVByZWZlcmVu
Y2VzKCkuaW5zcGVjdG9yU3RhcnRzQXR0YWNoZWQoKSAmJiBjYW5BdHRhY2goKTsKIH0KIAogI2lm
IEVOQUJMRShJTlNQRUNUT1JfU0VSVkVSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
SW5zcGVjdG9yUHJveHkuaAppbmRleCAxN2UwY2M1ZmUxYTlhMzE3NTg5Yzc5ZGNkMmUwMjQ5Yjlj
ZTk1ZjRhLi5jNjcyYWNkNzM1ZTdiY2I0OTgxM2Q5MjU5NjEzOGYxZTlkMzYxMTljIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaApAQCAtMzEsNyArMzEs
NiBAQAogI2luY2x1ZGUgIkF0dGFjaG1lbnQuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5o
PgogCkBAIC00NSw3ICs0NCw3IEBAIE9CSkNfQ0xBU1MgTlNCdXR0b247CiBPQkpDX0NMQVNTIE5T
VVJMOwogT0JKQ19DTEFTUyBOU1dpbmRvdzsKIE9CSkNfQ0xBU1MgV0tXZWJJbnNwZWN0b3JQcm94
eU9iakNBZGFwdGVyOwotT0JKQ19DTEFTUyBXS1dlYkluc3BlY3RvcldLVmlldzsKK09CSkNfQ0xB
U1MgV0tXZWJJbnNwZWN0b3JXS1dlYlZpZXc7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykK
QEAgLTYyLDYgKzYxLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJGcmFtZVByb3h5
OwogY2xhc3MgV2ViUGFnZUdyb3VwOwogY2xhc3MgV2ViUGFnZVByb3h5OworY2xhc3MgV2ViUHJl
ZmVyZW5jZXM7CiBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKIAogZW51bSBBdHRhY2htZW50U2lkZSB7
CkBAIC05NCw3ICs5NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsb3NlKCk7CiAKICAgICB2b2lk
IGRpZFJlbGF1bmNoSW5zcGVjdG9yUGFnZVByb2Nlc3MoKTsKLSAgICAKKwogI2lmIFBMQVRGT1JN
KE1BQykKICAgICB2b2lkIGNyZWF0ZUluc3BlY3RvcldpbmRvdygpOwogICAgIHZvaWQgdXBkYXRl
SW5zcGVjdG9yV2luZG93VGl0bGUoKSBjb25zdDsKQEAgLTE5Miw3ICsxOTIsMTAgQEAgcHJpdmF0
ZToKIAogICAgIHZvaWQgb3BlbigpOwogCisgICAgLy8gRklYTUU6IHRoaXMgc2hvdWxkIHJldHVy
biB0aGUgcGFnZSBncm91cCBpZGVudGlmaWVyLCBub3QgYW4gaW5zdGFuY2UuIFRoZSBNYWMgcG9y
dCBjYW5ub3QKKyAgICAvLyBkaXJlY3RseSBwcm92aWRlIGEgcGFnZSBncm91cCBpbnN0YW5jZSwg
YW5kIGluc3RhbmNlcyBhcmUgbm90IG5lY2Vzc2FyeSB0byBjb21wdXRlIGxldmVscy4KICAgICBX
ZWJQYWdlR3JvdXAqIGluc3BlY3RvclBhZ2VHcm91cCgpIGNvbnN0OworICAgIFdlYlByZWZlcmVu
Y2VzJiBpbnNwZWN0b3JQYWdlUHJlZmVyZW5jZXMoKSBjb25zdDsKIAogI2lmIFBMQVRGT1JNKEdU
SykgfHwgUExBVEZPUk0oRUZMKQogICAgIHZvaWQgY3JlYXRlSW5zcGVjdG9yV2luZG93KCk7CkBA
IC0yMDksMTYgKzIxMiwxNiBAQCBwcml2YXRlOgogICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBp
bml0aWFsV2luZG93V2lkdGg7CiAgICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGluaXRpYWxXaW5k
b3dIZWlnaHQ7CiAKLSAgICBXZWJQYWdlUHJveHkqIG1fcGFnZTsKLSAgICBXZWJQYWdlUHJveHkq
IG1faW5zcGVjdG9yUGFnZTsKKyAgICBXZWJQYWdlUHJveHkqIG1fcGFnZSB7bnVsbHB0cn07Cisg
ICAgV2ViUGFnZVByb3h5KiBtX2luc3BlY3RvclBhZ2Uge251bGxwdHJ9OwogCi0gICAgYm9vbCBt
X3VuZGVyVGVzdDsKLSAgICBib29sIG1faXNWaXNpYmxlOwotICAgIGJvb2wgbV9pc0F0dGFjaGVk
OwotICAgIGJvb2wgbV9jYW5BdHRhY2g7Ci0gICAgYm9vbCBtX2lzUHJvZmlsaW5nUGFnZTsKLSAg
ICBib29sIG1fc2hvd01lc3NhZ2VTZW50OwotICAgIGJvb2wgbV9pZ25vcmVGaXJzdEJyaW5nVG9G
cm9udDsKKyAgICBib29sIG1fdW5kZXJUZXN0IHtmYWxzZX07CisgICAgYm9vbCBtX2lzVmlzaWJs
ZSB7ZmFsc2V9OworICAgIGJvb2wgbV9pc0F0dGFjaGVkIHtmYWxzZX07CisgICAgYm9vbCBtX2Nh
bkF0dGFjaCB7ZmFsc2V9OworICAgIGJvb2wgbV9pc1Byb2ZpbGluZ1BhZ2Uge2ZhbHNlfTsKKyAg
ICBib29sIG1fc2hvd01lc3NhZ2VTZW50IHtmYWxzZX07CisgICAgYm9vbCBtX2lnbm9yZUZpcnN0
QnJpbmdUb0Zyb250IHtmYWxzZX07CiAKICAgICAvLyBUaGUgZGVidWdnZXIgc3RvcHMgYWxsIHRo
ZSBwYWdlcyBpbiB0aGUgc2FtZSBQYWdlR3JvdXAuIEhhdmluZwogICAgIC8vIGFsbCB0aGUgaW5z
cGVjdG9ycyBpbiB0aGUgc2FtZSBncm91cCB3aWxsIG1ha2UgaXQgaW1wb3NzaWJsZSB0byBkZWJ1
ZwpAQCAtMjI3LDEwICsyMzAsMTAgQEAgcHJpdmF0ZToKICAgICAKICAgICBJUEM6OkF0dGFjaG1l
bnQgbV9jb25uZWN0aW9uSWRlbnRpZmllcjsKIAotICAgIEF0dGFjaG1lbnRTaWRlIG1fYXR0YWNo
bWVudFNpZGU7CisgICAgQXR0YWNobWVudFNpZGUgbV9hdHRhY2htZW50U2lkZSB7QXR0YWNobWVu
dFNpZGVCb3R0b219OwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIFJldGFpblB0cjxXS1dlYklu
c3BlY3RvcldLVmlldz4gbV9pbnNwZWN0b3JWaWV3OworICAgIFJldGFpblB0cjxXS1dlYkluc3Bl
Y3RvcldLV2ViVmlldz4gbV9pbnNwZWN0b3JWaWV3OwogICAgIFJldGFpblB0cjxOU1dpbmRvdz4g
bV9pbnNwZWN0b3JXaW5kb3c7CiAgICAgUmV0YWluUHRyPE5TQnV0dG9uPiBtX2RvY2tCb3R0b21C
dXR0b247CiAgICAgUmV0YWluUHRyPE5TQnV0dG9uPiBtX2RvY2tSaWdodEJ1dHRvbjsKQEAgLTI0
MCwxOCArMjQzLDE4IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fdXJsU3RyaW5nOwogI2VsaWYg
UExBVEZPUk0oR1RLKQogICAgIFdlYkluc3BlY3RvckNsaWVudEd0ayBtX2NsaWVudDsKLSAgICBH
dGtXaWRnZXQqIG1faW5zcGVjdG9yVmlldzsKLSAgICBHdGtXaWRnZXQqIG1faW5zcGVjdG9yV2lu
ZG93OwotICAgIEd0a1dpZGdldCogbV9oZWFkZXJCYXI7Ci0gICAgR3RrV2lkZ2V0KiBtX2RvY2tC
b3R0b21CdXR0b247Ci0gICAgR3RrV2lkZ2V0KiBtX2RvY2tSaWdodEJ1dHRvbjsKKyAgICBHdGtX
aWRnZXQqIG1faW5zcGVjdG9yVmlldyB7bnVsbHB0cn07CisgICAgR3RrV2lkZ2V0KiBtX2luc3Bl
Y3RvcldpbmRvdyB7bnVsbHB0cn07CisgICAgR3RrV2lkZ2V0KiBtX2hlYWRlckJhciB7bnVsbHB0
cn07CisgICAgR3RrV2lkZ2V0KiBtX2RvY2tCb3R0b21CdXR0b24ge251bGxwdHJ9OworICAgIEd0
a1dpZGdldCogbV9kb2NrUmlnaHRCdXR0b24ge251bGxwdHJ9OwogICAgIFN0cmluZyBtX2luc3Bl
Y3RlZFVSTFN0cmluZzsKICNlbGlmIFBMQVRGT1JNKEVGTCkKLSAgICBFdmFzX09iamVjdCogbV9p
bnNwZWN0b3JWaWV3OwotICAgIEVjb3JlX0V2YXMqIG1faW5zcGVjdG9yV2luZG93OworICAgIEV2
YXNfT2JqZWN0KiBtX2luc3BlY3RvclZpZXcge251bGxwdHJ9OworICAgIEVjb3JlX0V2YXMqIG1f
aW5zcGVjdG9yV2luZG93IHtudWxscHRyfTsKICNlbmRpZgogI2lmIEVOQUJMRShJTlNQRUNUT1Jf
U0VSVkVSKQotICAgIGludCBtX3JlbW90ZUluc3BlY3Rpb25QYWdlSWQ7CisgICAgaW50IG1fcmVt
b3RlSW5zcGVjdGlvblBhZ2VJZCB7MH07CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCmluZGV4IDg5YjBh
OWY1MzM0MjllMDYxZTY0ZGRlMWY5NTljYjZkZmNjNzI0NjYuLmYzN2VmOTQ1Yzk1MTA0ZjA4ZTgw
ODFkYTFjMzI0ZmRlMzcwNzg3NTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQpAQCAtMzMsMTUgKzMzLDE4IEBACiAjaW1w
b3J0ICJXS011dGFibGVBcnJheS5oIgogI2ltcG9ydCAiV0tPcGVuUGFuZWxQYXJhbWV0ZXJzLmgi
CiAjaW1wb3J0ICJXS09wZW5QYW5lbFJlc3VsdExpc3RlbmVyLmgiCisjaW1wb3J0ICJXS1ByZWZl
cmVuY2VzSW50ZXJuYWwuaCIKKyNpbXBvcnQgIldLUHJvY2Vzc1Bvb2xJbnRlcm5hbC5oIgogI2lt
cG9ydCAiV0tSZXRhaW5QdHIuaCIKICNpbXBvcnQgIldLVVJMQ0YuaCIKICNpbXBvcnQgIldLVmll
d0ludGVybmFsLmgiCisjaW1wb3J0ICJXS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oIgor
I2ltcG9ydCAiV0tXZWJWaWV3SW50ZXJuYWwuaCIKICNpbXBvcnQgIldlYkluc3BlY3Rvck1lc3Nh
Z2VzLmgiCiAjaW1wb3J0ICJXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJQ
YWdlR3JvdXAuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCAiV2ViUHJlZmVy
ZW5jZXMuaCIKLSNpbXBvcnQgIldlYlByb2Nlc3NQb29sLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNz
UHJveHkuaCIKICNpbXBvcnQgPFF1YXJ0ekNvcmUvQ29yZUFuaW1hdGlvbi5oPgogI2ltcG9ydCA8
V2ViQ29yZS9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmg+CkBAIC0xNzAsNyArMTczLDcg
QEAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIHdlYlZpZXdDbG9zZVRpbWVvdXQgPSA2MDsKIAogQGVu
ZAogCi1AaW50ZXJmYWNlIFdLV2ViSW5zcGVjdG9yV0tWaWV3IDogV0tWaWV3IHsKK0BpbnRlcmZh
Y2UgV0tXZWJJbnNwZWN0b3JXS1dlYlZpZXcgOiBXS1dlYlZpZXcgewogQHByaXZhdGUKICAgICBX
S1dlYkluc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIgKl9pbnNwZWN0b3JQcm94eU9iakNBZGFwdGVy
OwogfQpAQCAtMTc4LDcgKzE4MSw3IEBAIHN0YXRpYyBjb25zdCB1bnNpZ25lZCB3ZWJWaWV3Q2xv
c2VUaW1lb3V0ID0gNjA7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgYXNzaWduKSBXS1dlYkluc3Bl
Y3RvclByb3h5T2JqQ0FkYXB0ZXIgKmluc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXI7CiBAZW5kCiAK
LUBpbXBsZW1lbnRhdGlvbiBXS1dlYkluc3BlY3RvcldLVmlldworQGltcGxlbWVudGF0aW9uIFdL
V2ViSW5zcGVjdG9yV0tXZWJWaWV3CiAKIEBzeW50aGVzaXplIGluc3BlY3RvclByb3h5T2JqQ0Fk
YXB0ZXIgPSBfaW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlcjsKIApAQCAtMTg5LDggKzE5Miw2IEBA
IHN0YXRpYyBjb25zdCB1bnNpZ25lZCB3ZWJWaWV3Q2xvc2VUaW1lb3V0ID0gNjA7CiAKIC0gKHZv
aWQpX2RpZFJlbGF1bmNoUHJvY2VzcwogewotICAgIFtzdXBlciBfZGlkUmVsYXVuY2hQcm9jZXNz
XTsKLQogICAgIFtzZWxmLmluc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIgZGlkUmVsYXVuY2hQcm9j
ZXNzXTsKIH0KIApAQCAtMzEyLDggKzMxMyw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OmNs
b3NlVGltZXJGaXJlZCgpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtX2luc3BlY3RvclZp
ZXcpIHsKLSAgICAgICAgV2ViUGFnZVByb3h5KiBpbnNwZWN0b3JQYWdlID0gdG9JbXBsKG1faW5z
cGVjdG9yVmlldy5nZXQoKS5wYWdlUmVmKTsKLSAgICAgICAgaW5zcGVjdG9yUGFnZS0+Y2xvc2Uo
KTsKKyAgICAgICAgbV9pbnNwZWN0b3JWaWV3LT5fcGFnZS0+Y2xvc2UoKTsKICAgICAgICAgW21f
aW5zcGVjdG9yVmlldyBzZXRJbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyOm5pbF07CiAgICAgICAg
IG1faW5zcGVjdG9yVmlldyA9IG5pbDsKICAgICB9CkBAIC0zMzEsNyArMzMxLDcgQEAgc3RhdGlj
IE5TQnV0dG9uICpjcmVhdGVEb2NrQnV0dG9uKE5TU3RyaW5nICppbWFnZU5hbWUpCiAgICAgZG9j
a0J1dHRvbi5hdXRvcmVzaXppbmdNYXNrID0gTlNWaWV3TWluWE1hcmdpbiB8IE5TVmlld01pbllN
YXJnaW47CiAKICAgICAvLyBHZXQgdGhlIGRvY2sgaW1hZ2UgYW5kIG1ha2UgaXQgYSB0ZW1wbGF0
ZSBzbyB0aGUgYnV0dG9uIGNlbGwgZWZmZWN0cyB3aWxsIGFwcGx5LgotICAgIE5TSW1hZ2UgKmRv
Y2tJbWFnZSA9IFtbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6W1dLV2ViSW5zcGVjdG9yV0tWaWV3
IGNsYXNzXV0gaW1hZ2VGb3JSZXNvdXJjZTppbWFnZU5hbWVdOworICAgIE5TSW1hZ2UgKmRvY2tJ
bWFnZSA9IFtbTlNCdW5kbGUgYnVuZGxlRm9yQ2xhc3M6W1dLV2ViSW5zcGVjdG9yV0tXZWJWaWV3
IGNsYXNzXV0gaW1hZ2VGb3JSZXNvdXJjZTppbWFnZU5hbWVdOwogICAgIFtkb2NrSW1hZ2Ugc2V0
VGVtcGxhdGU6WUVTXTsKIAogICAgIC8vIFNldCB0aGUgZG9jayBpbWFnZSBvbiB0aGUgYnV0dG9u
IGNlbGwuCkBAIC00NTMsNyArNDUzLDcgQEAgV2ViUGFnZVByb3h5KiBXZWJJbnNwZWN0b3JQcm94
eTo6cGxhdGZvcm1DcmVhdGVJbnNwZWN0b3JQYWdlKCkKIAogICAgIGlmIChtX2luc3BlY3RvclZp
ZXcpIHsKICAgICAgICAgQVNTRVJUKG1faW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlcik7Ci0gICAg
ICAgIHJldHVybiB0b0ltcGwobV9pbnNwZWN0b3JWaWV3LmdldCgpLnBhZ2VSZWYpOworICAgICAg
ICByZXR1cm4gbV9pbnNwZWN0b3JWaWV3LT5fcGFnZS5nZXQoKTsKICAgICB9CiAKICAgICBBU1NF
UlQoIW1faW5zcGVjdG9yVmlldyk7CkBAIC00NjUsMTAgKzQ2NSwxMCBAQCBXZWJQYWdlUHJveHkq
IFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNyZWF0ZUluc3BlY3RvclBhZ2UoKQogCiAgICAg
ICAgIHN3aXRjaCAobV9hdHRhY2htZW50U2lkZSkgewogICAgICAgICBjYXNlIEF0dGFjaG1lbnRT
aWRlQm90dG9tOgotICAgICAgICAgICAgaW5pdGlhbFJlY3QgPSBOU01ha2VSZWN0KDAsIDAsIE5T
V2lkdGgoaW5zcGVjdGVkVmlld0ZyYW1lKSwgaW5zcGVjdG9yUGFnZUdyb3VwKCktPnByZWZlcmVu
Y2VzKCkuaW5zcGVjdG9yQXR0YWNoZWRIZWlnaHQoKSk7CisgICAgICAgICAgICBpbml0aWFsUmVj
dCA9IE5TTWFrZVJlY3QoMCwgMCwgTlNXaWR0aChpbnNwZWN0ZWRWaWV3RnJhbWUpLCBpbnNwZWN0
b3JQYWdlUHJlZmVyZW5jZXMoKS5pbnNwZWN0b3JBdHRhY2hlZEhlaWdodCgpKTsKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICBjYXNlIEF0dGFjaG1lbnRTaWRlUmlnaHQ6Ci0gICAgICAgICAg
ICBpbml0aWFsUmVjdCA9IE5TTWFrZVJlY3QoMCwgMCwgaW5zcGVjdG9yUGFnZUdyb3VwKCktPnBy
ZWZlcmVuY2VzKCkuaW5zcGVjdG9yQXR0YWNoZWRXaWR0aCgpLCBOU0hlaWdodChpbnNwZWN0ZWRW
aWV3RnJhbWUpKTsKKyAgICAgICAgICAgIGluaXRpYWxSZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCBp
bnNwZWN0b3JQYWdlUHJlZmVyZW5jZXMoKS5pbnNwZWN0b3JBdHRhY2hlZFdpZHRoKCksIE5TSGVp
Z2h0KGluc3BlY3RlZFZpZXdGcmFtZSkpOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIH0K
ICAgICB9IGVsc2UgewpAQCAtNDgwLDExICs0ODAsMjQgQEAgV2ViUGFnZVByb3h5KiBXZWJJbnNw
ZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVJbnNwZWN0b3JQYWdlKCkKICAgICAgICAgICAgIGlu
aXRpYWxSZWN0ID0gW05TV2luZG93IGNvbnRlbnRSZWN0Rm9yRnJhbWVSZWN0OndpbmRvd0ZyYW1l
IHN0eWxlTWFzazp3aW5kb3dTdHlsZU1hc2tdOwogICAgIH0KIAotICAgIG1faW5zcGVjdG9yVmll
dyA9IGFkb3B0TlMoW1tXS1dlYkluc3BlY3RvcldLVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpp
bml0aWFsUmVjdCBjb250ZXh0UmVmOnRvQVBJKCZpbnNwZWN0b3JQcm9jZXNzUG9vbCgpKSBwYWdl
R3JvdXBSZWY6dG9BUEkoaW5zcGVjdG9yUGFnZUdyb3VwKCkpIHJlbGF0ZWRUb1BhZ2U6bnVsbHB0
cl0pOworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1tXS1dlYlZpZXdDb25maWd1
cmF0aW9uIGFsbG9jXSBpbml0XSk7CisgICAgV0tQcmVmZXJlbmNlcyAqcHJlZmVyZW5jZXMgPSBb
Y29uZmlndXJhdGlvbiBwcmVmZXJlbmNlc107CisjaWZuZGVmIE5ERUJVRworICAgIC8vIEFsbG93
IGRldmVsb3BlcnMgdG8gaW5zcGVjdCB0aGUgV2ViIEluc3BlY3RvciBpbiBkZWJ1ZyBidWlsZHMg
d2l0aG91dCBjaGFuZ2luZyBzZXR0aW5ncy4KKyAgICBwcmVmZXJlbmNlcy5fZGV2ZWxvcGVyRXh0
cmFzRW5hYmxlZCA9IFlFUzsKKyAgICBwcmVmZXJlbmNlcy5fbG9nc1BhZ2VNZXNzYWdlc1RvU3lz
dGVtQ29uc29sZUVuYWJsZWQgPSBZRVM7CisjZW5kaWYKKyAgICBwcmVmZXJlbmNlcy5fYWxsb3dG
aWxlQWNjZXNzRnJvbUZpbGVVUkxzID0gWUVTOworICAgIFtjb25maWd1cmF0aW9uIHNldFByb2Nl
c3NQb29sOiA6OldlYktpdDo6d3JhcHBlcihpbnNwZWN0b3JQcm9jZXNzUG9vbCgpKV07CisgICAg
W2NvbmZpZ3VyYXRpb24gX3NldEdyb3VwSWRlbnRpZmllcjppbnNwZWN0b3JQYWdlR3JvdXAoKS0+
aWRlbnRpZmllcigpXTsKKworICAgIG1faW5zcGVjdG9yVmlldyA9IGFkb3B0TlMoW1tXS1dlYklu
c3BlY3RvcldLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTppbml0aWFsUmVjdCBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKICAgICBBU1NFUlQobV9pbnNwZWN0b3JWaWV3
KTsKIAotI2lmIF9fTUFDX09TX1hfVkVSU0lPTl9NSU5fUkVRVUlSRUQgPD0gMTA5MAotICAgIFtt
X2luc3BlY3RvclZpZXcgc2V0RHJhd3NCYWNrZ3JvdW5kOk5PXTsKKyAgICBbbV9pbnNwZWN0b3JW
aWV3IF9zZXREcmF3c1RyYW5zcGFyZW50QmFja2dyb3VuZDpZRVNdOworCisjaWYgX19NQUNfT1Nf
WF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDEwMDAKKyAgICBbbV9pbnNwZWN0b3JWaWV3IF9z
ZXRBdXRvbWF0aWNhbGx5QWRqdXN0c0NvbnRlbnRJbnNldHM6Tk9dOwogI2VuZGlmCiAKICAgICBt
X2luc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIgPSBhZG9wdE5TKFtbV0tXZWJJbnNwZWN0b3JQcm94
eU9iakNBZGFwdGVyIGFsbG9jXSBpbml0V2l0aFdlYkluc3BlY3RvclByb3h5OnRoaXNdKTsKQEAg
LTQ5Miw3ICs1MDUsNyBAQCBXZWJQYWdlUHJveHkqIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9y
bUNyZWF0ZUluc3BlY3RvclBhZ2UoKQogCiAgICAgW21faW5zcGVjdG9yVmlldyBzZXRJbnNwZWN0
b3JQcm94eU9iakNBZGFwdGVyOm1faW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlci5nZXQoKV07CiAK
LSAgICBXZWJQYWdlUHJveHkqIGluc3BlY3RvclBhZ2UgPSB0b0ltcGwobV9pbnNwZWN0b3JWaWV3
LmdldCgpLnBhZ2VSZWYpOworICAgIFdlYlBhZ2VQcm94eSogaW5zcGVjdG9yUGFnZSA9IG1faW5z
cGVjdG9yVmlldy0+X3BhZ2UuZ2V0KCk7CiAgICAgQVNTRVJUKGluc3BlY3RvclBhZ2UpOwogCiAg
ICAgV0tQYWdlVUlDbGllbnRWMiB1aUNsaWVudCA9IHsKQEAgLTc4OSwxNiArODAyLDE2IEBAIHZv
aWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKIAogICAgIFttX2luc3BlY3Rv
clZpZXcgcmVtb3ZlRnJvbVN1cGVydmlld107CiAKLSAgICBbbV9pbnNwZWN0b3JWaWV3IHNldEF1
dG9yZXNpemluZ01hc2s6TlNWaWV3V2lkdGhTaXphYmxlIHwgTlNWaWV3TWF4WU1hcmdpbl07Ci0K
ICAgICBDR0Zsb2F0IGN1cnJlbnREaW1lbnNpb247CiAKICAgICBzd2l0Y2ggKG1fYXR0YWNobWVu
dFNpZGUpIHsKICAgICBjYXNlIEF0dGFjaG1lbnRTaWRlQm90dG9tOgotICAgICAgICBjdXJyZW50
RGltZW5zaW9uID0gaW5zcGVjdG9yUGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCkuaW5zcGVjdG9y
QXR0YWNoZWRIZWlnaHQoKTsKKyAgICAgICAgW21faW5zcGVjdG9yVmlldyBzZXRBdXRvcmVzaXpp
bmdNYXNrOk5TVmlld1dpZHRoU2l6YWJsZSB8IE5TVmlld01heFlNYXJnaW5dOworICAgICAgICBj
dXJyZW50RGltZW5zaW9uID0gaW5zcGVjdG9yUGFnZVByZWZlcmVuY2VzKCkuaW5zcGVjdG9yQXR0
YWNoZWRIZWlnaHQoKTsKICAgICAgICAgYnJlYWs7CiAgICAgY2FzZSBBdHRhY2htZW50U2lkZVJp
Z2h0OgotICAgICAgICBjdXJyZW50RGltZW5zaW9uID0gaW5zcGVjdG9yUGFnZUdyb3VwKCktPnBy
ZWZlcmVuY2VzKCkuaW5zcGVjdG9yQXR0YWNoZWRXaWR0aCgpOworICAgICAgICBbbV9pbnNwZWN0
b3JWaWV3IHNldEF1dG9yZXNpemluZ01hc2s6TlNWaWV3SGVpZ2h0U2l6YWJsZSB8IE5TVmlld01p
blhNYXJnaW5dOworICAgICAgICBjdXJyZW50RGltZW5zaW9uID0gaW5zcGVjdG9yUGFnZVByZWZl
cmVuY2VzKCkuaW5zcGVjdG9yQXR0YWNoZWRXaWR0aCgpOwogICAgICAgICBicmVhazsKICAgICB9
CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>245961</attachid>
            <date>2015-02-03 13:40:12 -0800</date>
            <delta_ts>2015-02-03 15:21:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-141037-20150203134012.patch</filename>
            <type>text/plain</type>
            <size>32203</size>
            <attacher name="Brian Burg">burg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc5NTUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTIyM2IxMzQxZWY0N2My
NzMxN2JhODg5OGFlOGM3NzUzYzM1YWFmMi4uOTY3YjYxOTJlNGI1Y2MxOGQwOWExYTE1ZTFhMWU5
ODE3OTMyM2JhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc4IEBACisyMDE1LTAyLTAzICBCcmlh
biBKLiBCdXJnICA8YnVyZ0Bjcy53YXNoaW5ndG9uLmVkdT4KKworICAgICAgICBDb252ZXJ0IFdl
Ykluc3BlY3RvclByb3h5IHRvIHVzZSBXS1dlYlZpZXcgQVBJIGZvciB0aGUgaW5zcGVjdG9yIHZp
ZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MTAz
NworCisgICAgICAgIFJldmlld2VkIGJ5IFRpbW90aHkgSGF0Y2hlci4KKworICAgICAgICBVc2Ug
dGhlIG5ld2VyIEFQSSBmb3IgUExBVEZPUk0oTUFDKS4gVGhlIG1haW4gZGlmZmVyZW5jZSBpcyB0
aGF0IHRoZQorICAgICAgICBXS1dlYlZpZXcncyBwYWdlIGdyb3VwIGNhbm5vdCBiZSBzZXQgZGly
ZWN0bHk7IGluc3RlYWQsIHRoZSBncm91cCBpZGVudGlmaWVyCisgICAgICAgIGlzIHBhc3NlZC4g
QWxzbyBhZGQgc29tZSBwcmVmZXJlbmNlIHNldHRlcnMgbmVlZGVkIGZvciB0aGUgaW5zcGVjdG9y
LgorCisgICAgICAgIFJlZmFjdG9yIHNvbWUgY29kZSB0byBub3QgdXNlIHBhZ2UgZ3JvdXBzIGRp
cmVjdGx5LiBJbiBhIGZ1dHVyZSBwYXRjaCwKKyAgICAgICAgdGhlIFBhZ2VHcm91cC1iYXNlZCBp
bnNwZWN0b3IgbGV2ZWwgc3lzdGVtIHdpbGwgYmUgc2ltcGxpZmllZC4gSXQgaXMKKyAgICAgICAg
aXQgaXMgbm8gbG9uZ2VyIG5lY2Vzc2FyeSB0byBrZWVwIGEgc3RhdGljIG1hcCBvZiBQYWdlR3Jv
dXAgaW5zdGFuY2VzLAorICAgICAgICBzaW5jZSB0aGV5IGFyZSBvbmx5IHVzZWQgdG8gc2F2ZSBp
bnNwZWN0b3Igd2luZG93IHByZWZlcmVuY2VzLiAoVGhlc2UgdXNlZAorICAgICAgICB0byBwcmV2
ZW50IGFsbCBsZXZlbHMgb2YgaW5zcGVjdG9yIGZyb20gcGF1c2luZyB0b2dldGhlciB3aGVuIGEg
c2Vjb25kLWxldmVsCisgICAgICAgIGluc3BlY3RvciBoaXQgYSBicmVha3BvaW50LiBUaGlzIGlz
IG5vdCBuZWNlc3Nhcnkgd2l0aCBtdWx0aS1wcm9jZXNzCisgICAgICAgIHdlYiBpbnNwZWN0b3Jz
LikKKworICAgICAgICBBbHNvLCBhZGp1c3Qgd2luZG93IHJlc2l6aW5nIGJlaGF2aW9yIHdoZW4g
dGhlIGluc3BlY3RvciBpcyBkb2NrZWQgdG8KKyAgICAgICAgdGhlIHJpZ2h0LiBXaW5kb3cgd2lk
dGggcmVzaXplcyBzaG91bGQgbm90IGFmZmVjdCB0aGUgd2lkdGggb2YgdGhlIGluc3BlY3Rvcgor
ICAgICAgICBmcmFtZS4gVGhpcyBtYXRjaGVzIHRoZSBiZWhhdmlvciBvZiBoZWlnaHQgY2hhbmdl
cyB3aGVuIGRvY2tlZCB0byB0aGUgYm90dG9tLgorCisgICAgICAgIFRvIHN1cHBvcnQgMzItYml0
IE1hYyBidWlsZHMgd2hlcmUgV0tXZWJWaWV3IGlzIG5vdCBkZWZpbmVkLCBzaGFyZSB0aGUgc3R1
YgorICAgICAgICBwbGF0Zm9ybUZvbygpIGltcGxlbWVudGF0aW9ucyB3aXRoIFBMQVRGT1JNKElP
UykuIFRoZSBzdHVicyBhcmUgbm93IGxvY2F0ZWQKKyAgICAgICAgaW4gdGhlIHBsYXRmb3JtLWlu
ZGVwZW5kZW50IFdlYkluc3BlY3RvclByb3h5LmNwcC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbToKKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfbG9n
c1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWRdKTogQWRkZWQuCisgICAgICAgICgt
W1dLUHJlZmVyZW5jZXMgX3NldExvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVk
Ol0pOiBBZGRlZC4KKyAgICAgICAgKC1bV0tQcmVmZXJlbmNlcyBfYWxsb3dGaWxlQWNjZXNzRnJv
bUZpbGVVUkxzXSk6IEFkZGVkLgorICAgICAgICAoLVtXS1ByZWZlcmVuY2VzIF9zZXRBbGxvd0Zp
bGVBY2Nlc3NGcm9tRmlsZVVSTHM6XSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSW5z
cGVjdG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6V2Vi
SW5zcGVjdG9yUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6aW5z
cGVjdG9yUGFnZVByZWZlcmVuY2VzKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJv
eHk6OmF0dGFjaCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpkZXRhY2gp
OgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6c2V0QXR0YWNoZWRXaW5kb3dI
ZWlnaHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6c2V0QXR0YWNoZWRX
aW5kb3dXaWR0aCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpjcmVhdGVJ
bnNwZWN0b3JQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnNob3Vs
ZE9wZW5BdHRhY2hlZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0
Zm9ybUNyZWF0ZUluc3BlY3RvclBhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1PcGVuKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6
OnBsYXRmb3JtRGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6
cGxhdGZvcm1JbnZhbGlkYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6
OnBsYXRmb3JtQnJpbmdUb0Zyb250KToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJv
eHk6OnBsYXRmb3JtSGlkZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybUlzRnJvbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxh
dGZvcm1JbnNwZWN0ZWRVUkxDaGFuZ2VkKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9y
UHJveHk6OnBsYXRmb3JtU2F2ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5
OjpwbGF0Zm9ybUFwcGVuZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybUluc3BlY3RlZFdpbmRvd0hlaWdodCk6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3Bl
Y3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd1dpZHRoKToKKyAgICAgICAgKFdlYktp
dDo6V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoKToKKyAgICAgICAgKFdlYktpdDo6
V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtRGV0YWNoKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
SW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRUb29sYmFySGVpZ2h0KToK
KyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3RvclBhZ2VVUkwpOgor
ICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6aW5zcGVjdG9yVGVzdFBhZ2VVUkwp
OgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6aW5zcGVjdG9yQmFzZVVSTCk6
CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldEF0dGFjaGVk
V2luZG93V2lkdGgpOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZv
cm1BdHRhY2hBdmFpbGFiaWxpdHlDaGFuZ2VkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSW5z
cGVjdG9yUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYkluc3BlY3RvclByb3h5
SU9TLm1tOiBSZW1vdmVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJv
eHlNYWMubW06CisgICAgICAgICgtW1dLV2ViSW5zcGVjdG9yV0tXZWJWaWV3IF9kaWRSZWxhdW5j
aFByb2Nlc3NdKToKKyAgICAgICAgV0tXZWJWaWV3IGRvZXNuJ3QgaW1wbGVtZW50IHRoaXMsIHNv
IHJlbW92ZSB0aGUgc3VwZXIgY2FsbC4KKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJv
eHk6OmNsb3NlVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6OmNyZWF0ZURvY2tCdXR0b24p
OgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVJbnNw
ZWN0b3JQYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3Jt
QXR0YWNoKToKKyAgICAgICAgKC1bV0tXZWJJbnNwZWN0b3JXS1ZpZXcgX2RpZFJlbGF1bmNoUHJv
Y2Vzc10pOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAxNS0wMi0wMyAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAK
ICAgICAgICAgTWVtb3J5IGNhY2hlIGZvciByZXNvdXJjZXMgcGVuZGluZyBkaXNrIHdyaXRlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5j
ZXMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMu
bW0KaW5kZXggNmY0Y2Y3ODFjOTY0Yzk0Y2MzNmE5OWJiNzVlNzAxZDg0Njc4ZTI2ZS4uZWZjYWZi
ZTMyNzdkNjI4MmE5N2QxMDhjMjg2NjM4NzlhZjU5M2I0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQpAQCAtMjQ3LDYgKzI0
NywyNiBAQCBzdGF0aWMgX1dLU3RvcmFnZUJsb2NraW5nUG9saWN5IHRvQVBJKFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQbwogICAgIF9wcmVmZXJlbmNlcy0+c2V0RGV2
ZWxvcGVyRXh0cmFzRW5hYmxlZChkZXZlbG9wZXJFeHRyYXNFbmFibGVkKTsKIH0KIAorLSAoQk9P
TClfbG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQKK3sKKyAgICByZXR1cm4g
X3ByZWZlcmVuY2VzLT5sb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZCgpOwor
fQorCistICh2b2lkKV9zZXRMb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZDoo
Qk9PTClsb2dzUGFnZU1lc3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZAoreworICAgIF9wcmVm
ZXJlbmNlcy0+c2V0TG9nc1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQobG9nc1Bh
Z2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQpOworfQorCistIChCT09MKV9hbGxvd0Zp
bGVBY2Nlc3NGcm9tRmlsZVVSTHMKK3sKKyAgICByZXR1cm4gX3ByZWZlcmVuY2VzLT5hbGxvd0Zp
bGVBY2Nlc3NGcm9tRmlsZVVSTHMoKTsKK30KKworLSAodm9pZClfc2V0QWxsb3dGaWxlQWNjZXNz
RnJvbUZpbGVVUkxzOihCT09MKWFsbG93RmlsZUFjY2Vzc0Zyb21GaWxlVVJMcworeworICAgIF9w
cmVmZXJlbmNlcy0+c2V0QWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKGFsbG93RmlsZUFjY2Vz
c0Zyb21GaWxlVVJMcyk7Cit9CisKIC0gKEJPT0wpX2lzU3RhbmRhbG9uZQogewogICAgIHJldHVy
biBfcHJlZmVyZW5jZXMtPnN0YW5kYWxvbmUoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCBlNGUy
MDNkYzc2MTM3NmU5MjYzZWU3MmRkMGJmMDYyYzk5MWUzMmIyLi5mZTA0N2EwZjhhOWQ2YTRiNDI1
ZGMxYzA3MmMzMDY2ZDRhMWI5YjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oCkBAIC01Niw2ICs1Niwx
MCBAQCB0eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLRGVidWdPdmVybGF5UmVnaW9u
cykgewogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXREZXZlbG9wZXJFeHRyYXNF
bmFibGVkOikgQk9PTCBfZGV2ZWxvcGVyRXh0cmFzRW5hYmxlZCBXS19BVkFJTEFCTEUoV0tfTUFD
X1RCQSwgV0tfSU9TX1RCQSk7CiAKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldExv
Z3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkOikgQk9PTCBfbG9nc1BhZ2VNZXNz
YWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lP
U19UQkEpOworCitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRBbGxvd0ZpbGVBY2Nl
c3NGcm9tRmlsZVVSTHM6KSBCT09MIF9hbGxvd0ZpbGVBY2Nlc3NGcm9tRmlsZVVSTHMgV0tfQVZB
SUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOworCiBAcHJvcGVydHkgKG5vbmF0b21pYywg
c2V0dGVyPV9zZXRTdGFuZGFsb25lOiwgZ2V0dGVyPV9pc1N0YW5kYWxvbmUpIEJPT0wgX3N0YW5k
YWxvbmUgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19UQkEpOwogCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXREaWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQ6KSBCT09MIF9k
aWFnbm9zdGljTG9nZ2luZ0VuYWJsZWQgV0tfQVZBSUxBQkxFKFdLX01BQ19UQkEsIFdLX0lPU19U
QkEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHAK
aW5kZXggYmZkN2FkNTVkOTlkYWUwYzZmOThkNGFlNDIyOGQ5ZDRhNjczZjIyNi4uM2IwOGU3MDNm
YmM0YzJkMjg4ZWZhOTc0NzdiMTVkNWZlMzZlOWMwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVk
ZSAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9vbC5oIgogI2luY2x1
ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTm90SW1wbGVtZW50ZWQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjaGVtZVJlZ2lzdHJ5Lmg+CiAjaW5jbHVkZSA8d3RmL05l
dmVyRGVzdHJveWVkLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nQnVpbGRlci5oPgpAQCAt
MTIxLDI4ICsxMjIsOCBAQCBwcml2YXRlOgogCiBXZWJJbnNwZWN0b3JQcm94eTo6V2ViSW5zcGVj
dG9yUHJveHkoV2ViUGFnZVByb3h5KiBwYWdlKQogICAgIDogbV9wYWdlKHBhZ2UpCi0gICAgLCBt
X2luc3BlY3RvclBhZ2UobnVsbHB0cikKLSAgICAsIG1fdW5kZXJUZXN0KGZhbHNlKQotICAgICwg
bV9pc1Zpc2libGUoZmFsc2UpCi0gICAgLCBtX2lzQXR0YWNoZWQoZmFsc2UpCi0gICAgLCBtX2Nh
bkF0dGFjaChmYWxzZSkKLSAgICAsIG1faXNQcm9maWxpbmdQYWdlKGZhbHNlKQotICAgICwgbV9z
aG93TWVzc2FnZVNlbnQoZmFsc2UpCi0gICAgLCBtX2lnbm9yZUZpcnN0QnJpbmdUb0Zyb250KGZh
bHNlKQotICAgICwgbV9hdHRhY2htZW50U2lkZShBdHRhY2htZW50U2lkZUJvdHRvbSkKLSNpZiBQ
TEFURk9STShNQUMpCisjaWYgUExBVEZPUk0oTUFDKSAmJiBXS19BUElfRU5BQkxFRAogICAgICwg
bV9jbG9zZVRpbWVyKFJ1bkxvb3A6Om1haW4oKSwgdGhpcywgJldlYkluc3BlY3RvclByb3h5Ojpj
bG9zZVRpbWVyRmlyZWQpCi0jZWxpZiBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKEVGTCkKLSAg
ICAsIG1faW5zcGVjdG9yVmlldyhudWxscHRyKQotICAgICwgbV9pbnNwZWN0b3JXaW5kb3cobnVs
bHB0cikKLSNpZiBQTEFURk9STShHVEspCi0gICAgLCBtX2hlYWRlckJhcihudWxscHRyKQotICAg
ICwgbV9kb2NrQm90dG9tQnV0dG9uKG51bGxwdHIpCi0gICAgLCBtX2RvY2tSaWdodEJ1dHRvbihu
dWxscHRyKQotI2VuZGlmCi0jZW5kaWYKLSNpZiBFTkFCTEUoSU5TUEVDVE9SX1NFUlZFUikKLSAg
ICAsIG1fcmVtb3RlSW5zcGVjdGlvblBhZ2VJZCgwKQogI2VuZGlmCiB7CiAgICAgbV9sZXZlbCA9
IFdlYkluc3BlY3RvclBhZ2VHcm91cHM6OnNpbmdsZXRvbigpLmluc3BlY3RvckxldmVsKG1fcGFn
ZS0+cGFnZUdyb3VwKCkpOwpAQCAtMTU4LDYgKzEzOSwxMSBAQCBXZWJQYWdlR3JvdXAqIFdlYklu
c3BlY3RvclByb3h5OjppbnNwZWN0b3JQYWdlR3JvdXAoKSBjb25zdAogICAgIHJldHVybiBXZWJJ
bnNwZWN0b3JQYWdlR3JvdXBzOjpzaW5nbGV0b24oKS5pbnNwZWN0b3JQYWdlR3JvdXBGb3JMZXZl
bChtX2xldmVsKTsKIH0KIAorV2ViUHJlZmVyZW5jZXMmIFdlYkluc3BlY3RvclByb3h5OjppbnNw
ZWN0b3JQYWdlUHJlZmVyZW5jZXMoKSBjb25zdAoreworICAgIHJldHVybiBpbnNwZWN0b3JQYWdl
R3JvdXAoKS0+cHJlZmVyZW5jZXMoKTsKK30KKwogdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6aW52
YWxpZGF0ZSgpCiB7CiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9TRVJWRVIpCkBAIC0yOTMsMTAgKzI3
OSwxMCBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjphdHRhY2goQXR0YWNobWVudFNpZGUgc2lk
ZSkKICAgICBtX2lzQXR0YWNoZWQgPSB0cnVlOwogICAgIG1fYXR0YWNobWVudFNpZGUgPSBzaWRl
OwogCi0gICAgaW5zcGVjdG9yUGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCkuc2V0SW5zcGVjdG9y
QXR0YWNobWVudFNpZGUoc2lkZSk7CisgICAgaW5zcGVjdG9yUGFnZVByZWZlcmVuY2VzKCkuc2V0
SW5zcGVjdG9yQXR0YWNobWVudFNpZGUoc2lkZSk7CiAKICAgICBpZiAobV9pc1Zpc2libGUpCi0g
ICAgICAgIGluc3BlY3RvclBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLnNldEluc3BlY3RvclN0
YXJ0c0F0dGFjaGVkKHRydWUpOworICAgICAgICBpbnNwZWN0b3JQYWdlUHJlZmVyZW5jZXMoKS5z
ZXRJbnNwZWN0b3JTdGFydHNBdHRhY2hlZCh0cnVlKTsKIAogICAgIG1fcGFnZS0+cHJvY2Vzcygp
LnNlbmQoTWVzc2FnZXM6OldlYkluc3BlY3Rvcjo6U2V0QXR0YWNoZWQodHJ1ZSksIG1fcGFnZS0+
cGFnZUlEKCkpOwogCkBAIC0zMjEsNyArMzA3LDcgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6
ZGV0YWNoKCkKICAgICBtX2lzQXR0YWNoZWQgPSBmYWxzZTsKIAogICAgIGlmIChtX2lzVmlzaWJs
ZSkKLSAgICAgICAgaW5zcGVjdG9yUGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCkuc2V0SW5zcGVj
dG9yU3RhcnRzQXR0YWNoZWQoZmFsc2UpOworICAgICAgICBpbnNwZWN0b3JQYWdlUHJlZmVyZW5j
ZXMoKS5zZXRJbnNwZWN0b3JTdGFydHNBdHRhY2hlZChmYWxzZSk7CiAKICAgICBtX3BhZ2UtPnBy
b2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3I6OlNldEF0dGFjaGVkKGZhbHNlKSwg
bV9wYWdlLT5wYWdlSUQoKSk7CiAgICAgbV9pbnNwZWN0b3JQYWdlLT5wcm9jZXNzKCkuc2VuZChN
ZXNzYWdlczo6V2ViSW5zcGVjdG9yVUk6OkRldGFjaGVkKCksIG1faW5zcGVjdG9yUGFnZS0+cGFn
ZUlEKCkpOwpAQCAtMzMxLDEzICszMTcsMTMgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6ZGV0
YWNoKCkKIAogdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6c2V0QXR0YWNoZWRXaW5kb3dIZWlnaHQo
dW5zaWduZWQgaGVpZ2h0KQogewotICAgIGluc3BlY3RvclBhZ2VHcm91cCgpLT5wcmVmZXJlbmNl
cygpLnNldEluc3BlY3RvckF0dGFjaGVkSGVpZ2h0KGhlaWdodCk7CisgICAgaW5zcGVjdG9yUGFn
ZVByZWZlcmVuY2VzKCkuc2V0SW5zcGVjdG9yQXR0YWNoZWRIZWlnaHQoaGVpZ2h0KTsKICAgICBw
bGF0Zm9ybVNldEF0dGFjaGVkV2luZG93SGVpZ2h0KGhlaWdodCk7CiB9CiAKIHZvaWQgV2ViSW5z
cGVjdG9yUHJveHk6OnNldEF0dGFjaGVkV2luZG93V2lkdGgodW5zaWduZWQgd2lkdGgpCiB7Ci0g
ICAgaW5zcGVjdG9yUGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCkuc2V0SW5zcGVjdG9yQXR0YWNo
ZWRXaWR0aCh3aWR0aCk7CisgICAgaW5zcGVjdG9yUGFnZVByZWZlcmVuY2VzKCkuc2V0SW5zcGVj
dG9yQXR0YWNoZWRXaWR0aCh3aWR0aCk7CiAgICAgcGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRvd1dp
ZHRoKHdpZHRoKTsKIH0KIApAQCAtNTM5LDcgKzUyNSw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJv
eHk6OmNyZWF0ZUluc3BlY3RvclBhZ2UoSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25JZGVudGlm
aWVyCiAgICAgaWYgKCFtX3VuZGVyVGVzdCkgewogICAgICAgICBtX2NhbkF0dGFjaCA9IGNhbkF0
dGFjaDsKICAgICAgICAgbV9pc0F0dGFjaGVkID0gc2hvdWxkT3BlbkF0dGFjaGVkKCk7Ci0gICAg
ICAgIG1fYXR0YWNobWVudFNpZGUgPSBzdGF0aWNfY2FzdDxBdHRhY2htZW50U2lkZT4oaW5zcGVj
dG9yUGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCkuaW5zcGVjdG9yQXR0YWNobWVudFNpZGUoKSk7
CisgICAgICAgIG1fYXR0YWNobWVudFNpZGUgPSBzdGF0aWNfY2FzdDxBdHRhY2htZW50U2lkZT4o
aW5zcGVjdG9yUGFnZVByZWZlcmVuY2VzKCkuaW5zcGVjdG9yQXR0YWNobWVudFNpZGUoKSk7CiAK
ICAgICAgICAgbV9wYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViSW5zcGVjdG9yOjpT
ZXRBdHRhY2hlZChtX2lzQXR0YWNoZWQpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIApAQCAtNjMzLDcg
KzYxOSw3IEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OmFwcGVuZChjb25zdCBTdHJpbmcmIGZp
bGVuYW1lLCBjb25zdCBTdHJpbmcmIGNvbnRlbnQpCiAKIGJvb2wgV2ViSW5zcGVjdG9yUHJveHk6
OnNob3VsZE9wZW5BdHRhY2hlZCgpCiB7Ci0gICAgcmV0dXJuIGluc3BlY3RvclBhZ2VHcm91cCgp
LT5wcmVmZXJlbmNlcygpLmluc3BlY3RvclN0YXJ0c0F0dGFjaGVkKCkgJiYgY2FuQXR0YWNoKCk7
CisgICAgcmV0dXJuIGluc3BlY3RvclBhZ2VQcmVmZXJlbmNlcygpLmluc3BlY3RvclN0YXJ0c0F0
dGFjaGVkKCkgJiYgY2FuQXR0YWNoKCk7CiB9CiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX1NFUlZF
UikKQEAgLTY0NCw0ICs2MzAsMTIyIEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnNlbmRNZXNz
YWdlVG9SZW1vdGVGcm9udGVuZChjb25zdCBTdHJpbmcmIG1lc3NhZ2UpCiB9CiAjZW5kaWYKIAor
Ly8gVW5zdXBwb3J0ZWQgY29uZmlndXJhdGlvbnMgY2FuIHVzZSB0aGUgc3R1YnMgcHJvdmlkZWQg
aGVyZS4KKworI2lmIFBMQVRGT1JNKElPUykgfHwgKFBMQVRGT1JNKE1BQykgJiYgIVdLX0FQSV9F
TkFCTEVEKQorCitXZWJQYWdlUHJveHkqIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUNyZWF0
ZUluc3BlY3RvclBhZ2UoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtT3BlbigpCit7Cisg
ICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZv
cm1EaWRDbG9zZSgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNw
ZWN0b3JQcm94eTo6cGxhdGZvcm1JbnZhbGlkYXRlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUJyaW5nVG9Gcm9udCgpCit7
CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxh
dGZvcm1IaWRlKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCitib29sIFdlYkluc3Bl
Y3RvclByb3h5OjpwbGF0Zm9ybUlzRnJvbnQoKQoreworICAgIG5vdEltcGxlbWVudGVkKCk7Cisg
ICAgcmV0dXJuIGZhbHNlOworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUlu
c3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJikKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNhdmUoY29uc3QgU3RyaW5n
JiBzdWdnZXN0ZWRVUkwsIGNvbnN0IFN0cmluZyYgY29udGVudCwgYm9vbCBiYXNlNjRFbmNvZGVk
LCBib29sIGZvcmNlU2F2ZURpYWxvZykKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCit2
b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUFwcGVuZChjb25zdCBTdHJpbmcmIHN1Z2dl
c3RlZFVSTCwgY29uc3QgU3RyaW5nJiBjb250ZW50KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7
Cit9CisKK3Vuc2lnbmVkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRv
d0hlaWdodCgpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1cm4gMDsKK30KKwor
dW5zaWduZWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtSW5zcGVjdGVkV2luZG93V2lkdGgo
KQoreworICAgIG5vdEltcGxlbWVudGVkKCk7CisgICAgcmV0dXJuIDA7Cit9CisKK3ZvaWQgV2Vi
SW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoKCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybURldGFjaCgpCit7CisgICAg
bm90SW1wbGVtZW50ZWQoKTsKK30KKwordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1T
ZXRBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgp
OworfQorCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybVNldFRvb2xiYXJIZWlnaHQo
dW5zaWduZWQpCit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKK30KKworU3RyaW5nIFdlYkluc3Bl
Y3RvclByb3h5OjppbnNwZWN0b3JQYWdlVVJMKCkgY29uc3QKK3sKKyAgICBub3RJbXBsZW1lbnRl
ZCgpOworICAgIHJldHVybiBTdHJpbmcoKTsKK30KKworU3RyaW5nIFdlYkluc3BlY3RvclByb3h5
OjppbnNwZWN0b3JUZXN0UGFnZVVSTCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsK
KyAgICByZXR1cm4gU3RyaW5nKCk7Cit9CisKK1N0cmluZyBXZWJJbnNwZWN0b3JQcm94eTo6aW5z
cGVjdG9yQmFzZVVSTCgpIGNvbnN0Cit7CisgICAgbm90SW1wbGVtZW50ZWQoKTsKKyAgICByZXR1
cm4gU3RyaW5nKCk7Cit9CisKK3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0QXR0
YWNoZWRXaW5kb3dXaWR0aCh1bnNpZ25lZCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQor
Cit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUF0dGFjaEF2YWlsYWJpbGl0eUNoYW5n
ZWQoYm9vbCkKK3sKKyAgICBub3RJbXBsZW1lbnRlZCgpOworfQorCisjZW5kaWYgLy8gUExBVEZP
Uk0oSU9TKSB8fCAoUExBVEZPUk0oTUFDKSAmJiAhV0tfQVBJX0VOQUJMRUQpCisKIH0gLy8gbmFt
ZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYklu
c3BlY3RvclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJv
eHkuaAppbmRleCAxN2UwY2M1ZmUxYTlhMzE3NTg5Yzc5ZGNkMmUwMjQ5YjljZTk1ZjRhLi4yZDgy
MmY1MmEyOTE2ZDRiOGRmYjUxYTNhNTlhNjIwMjEwYzBjNWYyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaApAQCAtMzEsNyArMzEsNiBAQAogI2luY2x1
ZGUgIkF0dGFjaG1lbnQuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRl
IDx3dGYvRm9yd2FyZC5oPgotI2luY2x1ZGUgPHd0Zi9QYXNzUmVmUHRyLmg+CiAjaW5jbHVkZSA8
d3RmL1JlZlB0ci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC00NSw3
ICs0NCw3IEBAIE9CSkNfQ0xBU1MgTlNCdXR0b247CiBPQkpDX0NMQVNTIE5TVVJMOwogT0JKQ19D
TEFTUyBOU1dpbmRvdzsKIE9CSkNfQ0xBU1MgV0tXZWJJbnNwZWN0b3JQcm94eU9iakNBZGFwdGVy
OwotT0JKQ19DTEFTUyBXS1dlYkluc3BlY3RvcldLVmlldzsKK09CSkNfQ0xBU1MgV0tXZWJJbnNw
ZWN0b3JXS1dlYlZpZXc7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKEdUSykKQEAgLTYyLDYgKzYx
LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBXZWJGcmFtZVByb3h5OwogY2xhc3MgV2Vi
UGFnZUdyb3VwOwogY2xhc3MgV2ViUGFnZVByb3h5OworY2xhc3MgV2ViUHJlZmVyZW5jZXM7CiBj
bGFzcyBXZWJQcm9jZXNzUG9vbDsKIAogZW51bSBBdHRhY2htZW50U2lkZSB7CkBAIC05NCw4ICs5
NCw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsb3NlKCk7CiAKICAgICB2b2lkIGRpZFJlbGF1bmNo
SW5zcGVjdG9yUGFnZVByb2Nlc3MoKTsKLSAgICAKLSNpZiBQTEFURk9STShNQUMpCisKKyNpZiBQ
TEFURk9STShNQUMpICYmIFdLX0FQSV9FTkFCTEVECiAgICAgdm9pZCBjcmVhdGVJbnNwZWN0b3JX
aW5kb3coKTsKICAgICB2b2lkIHVwZGF0ZUluc3BlY3RvcldpbmRvd1RpdGxlKCkgY29uc3Q7CiAg
ICAgdm9pZCBpbnNwZWN0ZWRWaWV3RnJhbWVEaWRDaGFuZ2UoQ0dGbG9hdCA9IDApOwpAQCAtMTky
LDcgKzE5MiwxMCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBvcGVuKCk7CiAKKyAgICAvLyBGSVhN
RTogdGhpcyBzaG91bGQgcmV0dXJuIHRoZSBwYWdlIGdyb3VwIGlkZW50aWZpZXIsIG5vdCBhbiBp
bnN0YW5jZS4gVGhlIE1hYyBwb3J0IGNhbm5vdAorICAgIC8vIGRpcmVjdGx5IHByb3ZpZGUgYSBw
YWdlIGdyb3VwIGluc3RhbmNlLCBhbmQgaW5zdGFuY2VzIGFyZSBub3QgbmVjZXNzYXJ5IHRvIGNv
bXB1dGUgbGV2ZWxzLgogICAgIFdlYlBhZ2VHcm91cCogaW5zcGVjdG9yUGFnZUdyb3VwKCkgY29u
c3Q7CisgICAgV2ViUHJlZmVyZW5jZXMmIGluc3BlY3RvclBhZ2VQcmVmZXJlbmNlcygpIGNvbnN0
OwogCiAjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShFRkwpCiAgICAgdm9pZCBjcmVhdGVJ
bnNwZWN0b3JXaW5kb3coKTsKQEAgLTIwOSwxNiArMjEyLDE2IEBAIHByaXZhdGU6CiAgICAgc3Rh
dGljIGNvbnN0IHVuc2lnbmVkIGluaXRpYWxXaW5kb3dXaWR0aDsKICAgICBzdGF0aWMgY29uc3Qg
dW5zaWduZWQgaW5pdGlhbFdpbmRvd0hlaWdodDsKIAotICAgIFdlYlBhZ2VQcm94eSogbV9wYWdl
OwotICAgIFdlYlBhZ2VQcm94eSogbV9pbnNwZWN0b3JQYWdlOworICAgIFdlYlBhZ2VQcm94eSog
bV9wYWdlIHtudWxscHRyfTsKKyAgICBXZWJQYWdlUHJveHkqIG1faW5zcGVjdG9yUGFnZSB7bnVs
bHB0cn07CiAKLSAgICBib29sIG1fdW5kZXJUZXN0OwotICAgIGJvb2wgbV9pc1Zpc2libGU7Ci0g
ICAgYm9vbCBtX2lzQXR0YWNoZWQ7Ci0gICAgYm9vbCBtX2NhbkF0dGFjaDsKLSAgICBib29sIG1f
aXNQcm9maWxpbmdQYWdlOwotICAgIGJvb2wgbV9zaG93TWVzc2FnZVNlbnQ7Ci0gICAgYm9vbCBt
X2lnbm9yZUZpcnN0QnJpbmdUb0Zyb250OworICAgIGJvb2wgbV91bmRlclRlc3Qge2ZhbHNlfTsK
KyAgICBib29sIG1faXNWaXNpYmxlIHtmYWxzZX07CisgICAgYm9vbCBtX2lzQXR0YWNoZWQge2Zh
bHNlfTsKKyAgICBib29sIG1fY2FuQXR0YWNoIHtmYWxzZX07CisgICAgYm9vbCBtX2lzUHJvZmls
aW5nUGFnZSB7ZmFsc2V9OworICAgIGJvb2wgbV9zaG93TWVzc2FnZVNlbnQge2ZhbHNlfTsKKyAg
ICBib29sIG1faWdub3JlRmlyc3RCcmluZ1RvRnJvbnQge2ZhbHNlfTsKIAogICAgIC8vIFRoZSBk
ZWJ1Z2dlciBzdG9wcyBhbGwgdGhlIHBhZ2VzIGluIHRoZSBzYW1lIFBhZ2VHcm91cC4gSGF2aW5n
CiAgICAgLy8gYWxsIHRoZSBpbnNwZWN0b3JzIGluIHRoZSBzYW1lIGdyb3VwIHdpbGwgbWFrZSBp
dCBpbXBvc3NpYmxlIHRvIGRlYnVnCkBAIC0yMjcsMTAgKzIzMCwxMCBAQCBwcml2YXRlOgogICAg
IAogICAgIElQQzo6QXR0YWNobWVudCBtX2Nvbm5lY3Rpb25JZGVudGlmaWVyOwogCi0gICAgQXR0
YWNobWVudFNpZGUgbV9hdHRhY2htZW50U2lkZTsKKyAgICBBdHRhY2htZW50U2lkZSBtX2F0dGFj
aG1lbnRTaWRlIHtBdHRhY2htZW50U2lkZUJvdHRvbX07CiAKLSNpZiBQTEFURk9STShNQUMpCi0g
ICAgUmV0YWluUHRyPFdLV2ViSW5zcGVjdG9yV0tWaWV3PiBtX2luc3BlY3RvclZpZXc7CisjaWYg
UExBVEZPUk0oTUFDKSAmJiBXS19BUElfRU5BQkxFRAorICAgIFJldGFpblB0cjxXS1dlYkluc3Bl
Y3RvcldLV2ViVmlldz4gbV9pbnNwZWN0b3JWaWV3OwogICAgIFJldGFpblB0cjxOU1dpbmRvdz4g
bV9pbnNwZWN0b3JXaW5kb3c7CiAgICAgUmV0YWluUHRyPE5TQnV0dG9uPiBtX2RvY2tCb3R0b21C
dXR0b247CiAgICAgUmV0YWluUHRyPE5TQnV0dG9uPiBtX2RvY2tSaWdodEJ1dHRvbjsKQEAgLTI0
MCwxOCArMjQzLDE4IEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIG1fdXJsU3RyaW5nOwogI2VsaWYg
UExBVEZPUk0oR1RLKQogICAgIFdlYkluc3BlY3RvckNsaWVudEd0ayBtX2NsaWVudDsKLSAgICBH
dGtXaWRnZXQqIG1faW5zcGVjdG9yVmlldzsKLSAgICBHdGtXaWRnZXQqIG1faW5zcGVjdG9yV2lu
ZG93OwotICAgIEd0a1dpZGdldCogbV9oZWFkZXJCYXI7Ci0gICAgR3RrV2lkZ2V0KiBtX2RvY2tC
b3R0b21CdXR0b247Ci0gICAgR3RrV2lkZ2V0KiBtX2RvY2tSaWdodEJ1dHRvbjsKKyAgICBHdGtX
aWRnZXQqIG1faW5zcGVjdG9yVmlldyB7bnVsbHB0cn07CisgICAgR3RrV2lkZ2V0KiBtX2luc3Bl
Y3RvcldpbmRvdyB7bnVsbHB0cn07CisgICAgR3RrV2lkZ2V0KiBtX2hlYWRlckJhciB7bnVsbHB0
cn07CisgICAgR3RrV2lkZ2V0KiBtX2RvY2tCb3R0b21CdXR0b24ge251bGxwdHJ9OworICAgIEd0
a1dpZGdldCogbV9kb2NrUmlnaHRCdXR0b24ge251bGxwdHJ9OwogICAgIFN0cmluZyBtX2luc3Bl
Y3RlZFVSTFN0cmluZzsKICNlbGlmIFBMQVRGT1JNKEVGTCkKLSAgICBFdmFzX09iamVjdCogbV9p
bnNwZWN0b3JWaWV3OwotICAgIEVjb3JlX0V2YXMqIG1faW5zcGVjdG9yV2luZG93OworICAgIEV2
YXNfT2JqZWN0KiBtX2luc3BlY3RvclZpZXcge251bGxwdHJ9OworICAgIEVjb3JlX0V2YXMqIG1f
aW5zcGVjdG9yV2luZG93IHtudWxscHRyfTsKICNlbmRpZgogI2lmIEVOQUJMRShJTlNQRUNUT1Jf
U0VSVkVSKQotICAgIGludCBtX3JlbW90ZUluc3BlY3Rpb25QYWdlSWQ7CisgICAgaW50IG1fcmVt
b3RlSW5zcGVjdGlvblBhZ2VJZCB7MH07CiAjZW5kaWYKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViSW5zcGVjdG9yUHJveHlJT1MubW0gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvaW9zL1dlYkluc3BlY3RvclByb3h5SU9TLm1tCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA1ZWNiNmE3MDMxNGJiYzM1OGZlZGM3MTYyYWM1ZTcyOTJiNGNj
MjRjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9pb3MvV2ViSW5zcGVjdG9yUHJveHlJT1MubW0KKysrIC9kZXYv
bnVsbApAQCAtMSwxNDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
LSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwot
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpbXBvcnQgImNvbmZpZy5oIgot
I2ltcG9ydCAiV2ViSW5zcGVjdG9yUHJveHkuaCIKLQotI2lmIFBMQVRGT1JNKElPUykKLQotI2lt
cG9ydCA8V2ViQ29yZS9Ob3RJbXBsZW1lbnRlZC5oPgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQot
V2ViUGFnZVByb3h5KiBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVJbnNwZWN0b3JQ
YWdlKCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwotfQotCi12b2lk
IFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4oKQotewotICAgIG5vdEltcGxlbWVudGVk
KCk7Ci19Ci0KLXZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtRGlkQ2xvc2UoKQotewot
ICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRm
b3JtSW52YWxpZGF0ZSgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1CcmluZ1RvRnJvbnQoKQotewotICAgIG5vdEltcGxlbWVu
dGVkKCk7Ci19Ci0KLXZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtSGlkZSgpCi17Ci0g
ICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotYm9vbCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZv
cm1Jc0Zyb250KCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBmYWxzZTsK
LX0KLQotdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRVUkxDaGFuZ2Vk
KGNvbnN0IFN0cmluZyYpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TYXZlKGNvbnN0IFN0cmluZyYgc3VnZ2VzdGVkVVJMLCBj
b25zdCBTdHJpbmcmIGNvbnRlbnQsIGJvb2wgYmFzZTY0RW5jb2RlZCwgYm9vbCBmb3JjZVNhdmVE
aWFsb2cpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcm1BcHBlbmQoY29uc3QgU3RyaW5nJiBzdWdnZXN0ZWRVUkwsIGNvbnN0IFN0
cmluZyYgY29udGVudCkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi11bnNpZ25lZCBX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1JbnNwZWN0ZWRXaW5kb3dIZWlnaHQoKQotewotICAg
IG5vdEltcGxlbWVudGVkKCk7Ci0gICAgcmV0dXJuIDA7Ci19Ci0KLXVuc2lnbmVkIFdlYkluc3Bl
Y3RvclByb3h5OjpwbGF0Zm9ybUluc3BlY3RlZFdpbmRvd1dpZHRoKCkKLXsKLSAgICBub3RJbXBs
ZW1lbnRlZCgpOwotICAgIHJldHVybiAwOwotfQotCi12b2lkIFdlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9ybUF0dGFjaCgpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1EZXRhY2goKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7
Ci19Ci0KLXZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtU2V0QXR0YWNoZWRXaW5kb3dI
ZWlnaHQodW5zaWduZWQpCi17Ci0gICAgbm90SW1wbGVtZW50ZWQoKTsKLX0KLQotdm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRUb29sYmFySGVpZ2h0KHVuc2lnbmVkIGhlaWdodCkK
LXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi1TdHJpbmcgV2ViSW5zcGVjdG9yUHJveHk6
Omluc3BlY3RvclBhZ2VVUkwoKSBjb25zdAotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci0gICAg
cmV0dXJuIFN0cmluZygpOwotfQotCi1TdHJpbmcgV2ViSW5zcGVjdG9yUHJveHk6Omluc3BlY3Rv
clRlc3RQYWdlVVJMKCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVy
biBTdHJpbmcoKTsKLX0KLQotU3RyaW5nIFdlYkluc3BlY3RvclByb3h5OjppbnNwZWN0b3JCYXNl
VVJMKCkgY29uc3QKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotICAgIHJldHVybiBTdHJpbmco
KTsKLX0KLQotdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TZXRBdHRhY2hlZFdpbmRv
d1dpZHRoKHVuc2lnbmVkKQotewotICAgIG5vdEltcGxlbWVudGVkKCk7Ci19Ci0KLXZvaWQgV2Vi
SW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQXR0YWNoQXZhaWxhYmlsaXR5Q2hhbmdlZChib29sIGF2
YWlsYWJsZSkKLXsKLSAgICBub3RJbXBsZW1lbnRlZCgpOwotfQotCi19IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKLQotI2VuZGlmIC8vIFBMQVRGT1JNKElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCmluZGV4IDg5YjBhOWY1MzM0
MjllMDYxZTY0ZGRlMWY5NTljYjZkZmNjNzI0NjYuLjA1MTIzNzdiNWZkNmNiNTExYTViOTRkZDdh
NDMyNTc5MmM1N2U1YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMv
V2ViSW5zcGVjdG9yUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQpAQCAtMjYsMjIgKzI2LDI1IEBACiAjaW1wb3J0ICJj
b25maWcuaCIKICNpbXBvcnQgIldlYkluc3BlY3RvclByb3h5LmgiCiAKLSNpZiBQTEFURk9STShN
QUMpCisjaWYgUExBVEZPUk0oTUFDKSAmJiBXS19BUElfRU5BQkxFRAogCiAjaW1wb3J0ICJXS0FQ
SUNhc3QuaCIKICNpbXBvcnQgIldLSW5zcGVjdG9yUHJpdmF0ZU1hYy5oIgogI2ltcG9ydCAiV0tN
dXRhYmxlQXJyYXkuaCIKICNpbXBvcnQgIldLT3BlblBhbmVsUGFyYW1ldGVycy5oIgogI2ltcG9y
dCAiV0tPcGVuUGFuZWxSZXN1bHRMaXN0ZW5lci5oIgorI2ltcG9ydCAiV0tQcmVmZXJlbmNlc0lu
dGVybmFsLmgiCisjaW1wb3J0ICJXS1Byb2Nlc3NQb29sSW50ZXJuYWwuaCIKICNpbXBvcnQgIldL
UmV0YWluUHRyLmgiCiAjaW1wb3J0ICJXS1VSTENGLmgiCiAjaW1wb3J0ICJXS1ZpZXdJbnRlcm5h
bC5oIgorI2ltcG9ydCAiV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaCIKKyNpbXBvcnQg
IldLV2ViVmlld0ludGVybmFsLmgiCiAjaW1wb3J0ICJXZWJJbnNwZWN0b3JNZXNzYWdlcy5oIgog
I2ltcG9ydCAiV2ViSW5zcGVjdG9yVUlNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViUGFnZUdyb3Vw
LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgIldlYlByZWZlcmVuY2VzLmgi
Ci0jaW1wb3J0ICJXZWJQcm9jZXNzUG9vbC5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5Lmgi
CiAjaW1wb3J0IDxRdWFydHpDb3JlL0NvcmVBbmltYXRpb24uaD4KICNpbXBvcnQgPFdlYkNvcmUv
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oPgpAQCAtMTcwLDcgKzE3Myw3IEBAIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCB3ZWJWaWV3Q2xvc2VUaW1lb3V0ID0gNjA7CiAKIEBlbmQKIAotQGlu
dGVyZmFjZSBXS1dlYkluc3BlY3RvcldLVmlldyA6IFdLVmlldyB7CitAaW50ZXJmYWNlIFdLV2Vi
SW5zcGVjdG9yV0tXZWJWaWV3IDogV0tXZWJWaWV3IHsKIEBwcml2YXRlCiAgICAgV0tXZWJJbnNw
ZWN0b3JQcm94eU9iakNBZGFwdGVyICpfaW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlcjsKIH0KQEAg
LTE3OCw3ICsxODEsNyBAQCBzdGF0aWMgY29uc3QgdW5zaWduZWQgd2ViVmlld0Nsb3NlVGltZW91
dCA9IDYwOwogQHByb3BlcnR5IChub25hdG9taWMsIGFzc2lnbikgV0tXZWJJbnNwZWN0b3JQcm94
eU9iakNBZGFwdGVyICppbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyOwogQGVuZAogCi1AaW1wbGVt
ZW50YXRpb24gV0tXZWJJbnNwZWN0b3JXS1ZpZXcKK0BpbXBsZW1lbnRhdGlvbiBXS1dlYkluc3Bl
Y3RvcldLV2ViVmlldwogCiBAc3ludGhlc2l6ZSBpbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyID0g
X2luc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXI7CiAKQEAgLTE4OSw4ICsxOTIsNiBAQCBzdGF0aWMg
Y29uc3QgdW5zaWduZWQgd2ViVmlld0Nsb3NlVGltZW91dCA9IDYwOwogCiAtICh2b2lkKV9kaWRS
ZWxhdW5jaFByb2Nlc3MKIHsKLSAgICBbc3VwZXIgX2RpZFJlbGF1bmNoUHJvY2Vzc107Ci0KICAg
ICBbc2VsZi5pbnNwZWN0b3JQcm94eU9iakNBZGFwdGVyIGRpZFJlbGF1bmNoUHJvY2Vzc107CiB9
CiAKQEAgLTMxMiw4ICszMTMsNyBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpjbG9zZVRpbWVy
RmlyZWQoKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAobV9pbnNwZWN0b3JWaWV3KSB7Ci0g
ICAgICAgIFdlYlBhZ2VQcm94eSogaW5zcGVjdG9yUGFnZSA9IHRvSW1wbChtX2luc3BlY3RvclZp
ZXcuZ2V0KCkucGFnZVJlZik7Ci0gICAgICAgIGluc3BlY3RvclBhZ2UtPmNsb3NlKCk7CisgICAg
ICAgIG1faW5zcGVjdG9yVmlldy0+X3BhZ2UtPmNsb3NlKCk7CiAgICAgICAgIFttX2luc3BlY3Rv
clZpZXcgc2V0SW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlcjpuaWxdOwogICAgICAgICBtX2luc3Bl
Y3RvclZpZXcgPSBuaWw7CiAgICAgfQpAQCAtMzMxLDcgKzMzMSw3IEBAIHN0YXRpYyBOU0J1dHRv
biAqY3JlYXRlRG9ja0J1dHRvbihOU1N0cmluZyAqaW1hZ2VOYW1lKQogICAgIGRvY2tCdXR0b24u
YXV0b3Jlc2l6aW5nTWFzayA9IE5TVmlld01pblhNYXJnaW4gfCBOU1ZpZXdNaW5ZTWFyZ2luOwog
CiAgICAgLy8gR2V0IHRoZSBkb2NrIGltYWdlIGFuZCBtYWtlIGl0IGEgdGVtcGxhdGUgc28gdGhl
IGJ1dHRvbiBjZWxsIGVmZmVjdHMgd2lsbCBhcHBseS4KLSAgICBOU0ltYWdlICpkb2NrSW1hZ2Ug
PSBbW05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOltXS1dlYkluc3BlY3RvcldLVmlldyBjbGFzc11d
IGltYWdlRm9yUmVzb3VyY2U6aW1hZ2VOYW1lXTsKKyAgICBOU0ltYWdlICpkb2NrSW1hZ2UgPSBb
W05TQnVuZGxlIGJ1bmRsZUZvckNsYXNzOltXS1dlYkluc3BlY3RvcldLV2ViVmlldyBjbGFzc11d
IGltYWdlRm9yUmVzb3VyY2U6aW1hZ2VOYW1lXTsKICAgICBbZG9ja0ltYWdlIHNldFRlbXBsYXRl
OllFU107CiAKICAgICAvLyBTZXQgdGhlIGRvY2sgaW1hZ2Ugb24gdGhlIGJ1dHRvbiBjZWxsLgpA
QCAtNDUzLDcgKzQ1Myw3IEBAIFdlYlBhZ2VQcm94eSogV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRm
b3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSgpCiAKICAgICBpZiAobV9pbnNwZWN0b3JWaWV3KSB7CiAg
ICAgICAgIEFTU0VSVChtX2luc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIpOwotICAgICAgICByZXR1
cm4gdG9JbXBsKG1faW5zcGVjdG9yVmlldy5nZXQoKS5wYWdlUmVmKTsKKyAgICAgICAgcmV0dXJu
IG1faW5zcGVjdG9yVmlldy0+X3BhZ2UuZ2V0KCk7CiAgICAgfQogCiAgICAgQVNTRVJUKCFtX2lu
c3BlY3RvclZpZXcpOwpAQCAtNDY1LDEwICs0NjUsMTAgQEAgV2ViUGFnZVByb3h5KiBXZWJJbnNw
ZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVJbnNwZWN0b3JQYWdlKCkKIAogICAgICAgICBzd2l0
Y2ggKG1fYXR0YWNobWVudFNpZGUpIHsKICAgICAgICAgY2FzZSBBdHRhY2htZW50U2lkZUJvdHRv
bToKLSAgICAgICAgICAgIGluaXRpYWxSZWN0ID0gTlNNYWtlUmVjdCgwLCAwLCBOU1dpZHRoKGlu
c3BlY3RlZFZpZXdGcmFtZSksIGluc3BlY3RvclBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLmlu
c3BlY3RvckF0dGFjaGVkSGVpZ2h0KCkpOworICAgICAgICAgICAgaW5pdGlhbFJlY3QgPSBOU01h
a2VSZWN0KDAsIDAsIE5TV2lkdGgoaW5zcGVjdGVkVmlld0ZyYW1lKSwgaW5zcGVjdG9yUGFnZVBy
ZWZlcmVuY2VzKCkuaW5zcGVjdG9yQXR0YWNoZWRIZWlnaHQoKSk7CiAgICAgICAgICAgICBicmVh
azsKICAgICAgICAgY2FzZSBBdHRhY2htZW50U2lkZVJpZ2h0OgotICAgICAgICAgICAgaW5pdGlh
bFJlY3QgPSBOU01ha2VSZWN0KDAsIDAsIGluc3BlY3RvclBhZ2VHcm91cCgpLT5wcmVmZXJlbmNl
cygpLmluc3BlY3RvckF0dGFjaGVkV2lkdGgoKSwgTlNIZWlnaHQoaW5zcGVjdGVkVmlld0ZyYW1l
KSk7CisgICAgICAgICAgICBpbml0aWFsUmVjdCA9IE5TTWFrZVJlY3QoMCwgMCwgaW5zcGVjdG9y
UGFnZVByZWZlcmVuY2VzKCkuaW5zcGVjdG9yQXR0YWNoZWRXaWR0aCgpLCBOU0hlaWdodChpbnNw
ZWN0ZWRWaWV3RnJhbWUpKTsKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICB9CiAgICAgfSBl
bHNlIHsKQEAgLTQ4MCwxMSArNDgwLDI0IEBAIFdlYlBhZ2VQcm94eSogV2ViSW5zcGVjdG9yUHJv
eHk6OnBsYXRmb3JtQ3JlYXRlSW5zcGVjdG9yUGFnZSgpCiAgICAgICAgICAgICBpbml0aWFsUmVj
dCA9IFtOU1dpbmRvdyBjb250ZW50UmVjdEZvckZyYW1lUmVjdDp3aW5kb3dGcmFtZSBzdHlsZU1h
c2s6d2luZG93U3R5bGVNYXNrXTsKICAgICB9CiAKLSAgICBtX2luc3BlY3RvclZpZXcgPSBhZG9w
dE5TKFtbV0tXZWJJbnNwZWN0b3JXS1ZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6aW5pdGlhbFJl
Y3QgY29udGV4dFJlZjp0b0FQSSgmaW5zcGVjdG9yUHJvY2Vzc1Bvb2woKSkgcGFnZUdyb3VwUmVm
OnRvQVBJKGluc3BlY3RvclBhZ2VHcm91cCgpKSByZWxhdGVkVG9QYWdlOm51bGxwdHJdKTsKKyAg
ICBhdXRvIGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBh
bGxvY10gaW5pdF0pOworICAgIFdLUHJlZmVyZW5jZXMgKnByZWZlcmVuY2VzID0gW2NvbmZpZ3Vy
YXRpb24gcHJlZmVyZW5jZXNdOworI2lmbmRlZiBOREVCVUcKKyAgICAvLyBBbGxvdyBkZXZlbG9w
ZXJzIHRvIGluc3BlY3QgdGhlIFdlYiBJbnNwZWN0b3IgaW4gZGVidWcgYnVpbGRzIHdpdGhvdXQg
Y2hhbmdpbmcgc2V0dGluZ3MuCisgICAgcHJlZmVyZW5jZXMuX2RldmVsb3BlckV4dHJhc0VuYWJs
ZWQgPSBZRVM7CisgICAgcHJlZmVyZW5jZXMuX2xvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNv
bGVFbmFibGVkID0gWUVTOworI2VuZGlmCisgICAgcHJlZmVyZW5jZXMuX2FsbG93RmlsZUFjY2Vz
c0Zyb21GaWxlVVJMcyA9IFlFUzsKKyAgICBbY29uZmlndXJhdGlvbiBzZXRQcm9jZXNzUG9vbDog
OjpXZWJLaXQ6OndyYXBwZXIoaW5zcGVjdG9yUHJvY2Vzc1Bvb2woKSldOworICAgIFtjb25maWd1
cmF0aW9uIF9zZXRHcm91cElkZW50aWZpZXI6aW5zcGVjdG9yUGFnZUdyb3VwKCktPmlkZW50aWZp
ZXIoKV07CisKKyAgICBtX2luc3BlY3RvclZpZXcgPSBhZG9wdE5TKFtbV0tXZWJJbnNwZWN0b3JX
S1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6aW5pdGlhbFJlY3QgY29uZmlndXJhdGlvbjpj
b25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgQVNTRVJUKG1faW5zcGVjdG9yVmlldyk7CiAKLSNp
ZiBfX01BQ19PU19YX1ZFUlNJT05fTUlOX1JFUVVJUkVEIDw9IDEwOTAKLSAgICBbbV9pbnNwZWN0
b3JWaWV3IHNldERyYXdzQmFja2dyb3VuZDpOT107CisgICAgW21faW5zcGVjdG9yVmlldyBfc2V0
RHJhd3NUcmFuc3BhcmVudEJhY2tncm91bmQ6WUVTXTsKKworI2lmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxMDAwCisgICAgW21faW5zcGVjdG9yVmlldyBfc2V0QXV0b21h
dGljYWxseUFkanVzdHNDb250ZW50SW5zZXRzOk5PXTsKICNlbmRpZgogCiAgICAgbV9pbnNwZWN0
b3JQcm94eU9iakNBZGFwdGVyID0gYWRvcHROUyhbW1dLV2ViSW5zcGVjdG9yUHJveHlPYmpDQWRh
cHRlciBhbGxvY10gaW5pdFdpdGhXZWJJbnNwZWN0b3JQcm94eTp0aGlzXSk7CkBAIC00OTIsNyAr
NTA1LDcgQEAgV2ViUGFnZVByb3h5KiBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1DcmVhdGVJ
bnNwZWN0b3JQYWdlKCkKIAogICAgIFttX2luc3BlY3RvclZpZXcgc2V0SW5zcGVjdG9yUHJveHlP
YmpDQWRhcHRlcjptX2luc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIuZ2V0KCldOwogCi0gICAgV2Vi
UGFnZVByb3h5KiBpbnNwZWN0b3JQYWdlID0gdG9JbXBsKG1faW5zcGVjdG9yVmlldy5nZXQoKS5w
YWdlUmVmKTsKKyAgICBXZWJQYWdlUHJveHkqIGluc3BlY3RvclBhZ2UgPSBtX2luc3BlY3RvclZp
ZXctPl9wYWdlLmdldCgpOwogICAgIEFTU0VSVChpbnNwZWN0b3JQYWdlKTsKIAogICAgIFdLUGFn
ZVVJQ2xpZW50VjIgdWlDbGllbnQgPSB7CkBAIC03ODksMTYgKzgwMiwxNiBAQCB2b2lkIFdlYklu
c3BlY3RvclByb3h5OjpwbGF0Zm9ybUF0dGFjaCgpCiAKICAgICBbbV9pbnNwZWN0b3JWaWV3IHJl
bW92ZUZyb21TdXBlcnZpZXddOwogCi0gICAgW21faW5zcGVjdG9yVmlldyBzZXRBdXRvcmVzaXpp
bmdNYXNrOk5TVmlld1dpZHRoU2l6YWJsZSB8IE5TVmlld01heFlNYXJnaW5dOwotCiAgICAgQ0dG
bG9hdCBjdXJyZW50RGltZW5zaW9uOwogCiAgICAgc3dpdGNoIChtX2F0dGFjaG1lbnRTaWRlKSB7
CiAgICAgY2FzZSBBdHRhY2htZW50U2lkZUJvdHRvbToKLSAgICAgICAgY3VycmVudERpbWVuc2lv
biA9IGluc3BlY3RvclBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLmluc3BlY3RvckF0dGFjaGVk
SGVpZ2h0KCk7CisgICAgICAgIFttX2luc3BlY3RvclZpZXcgc2V0QXV0b3Jlc2l6aW5nTWFzazpO
U1ZpZXdXaWR0aFNpemFibGUgfCBOU1ZpZXdNYXhZTWFyZ2luXTsKKyAgICAgICAgY3VycmVudERp
bWVuc2lvbiA9IGluc3BlY3RvclBhZ2VQcmVmZXJlbmNlcygpLmluc3BlY3RvckF0dGFjaGVkSGVp
Z2h0KCk7CiAgICAgICAgIGJyZWFrOwogICAgIGNhc2UgQXR0YWNobWVudFNpZGVSaWdodDoKLSAg
ICAgICAgY3VycmVudERpbWVuc2lvbiA9IGluc3BlY3RvclBhZ2VHcm91cCgpLT5wcmVmZXJlbmNl
cygpLmluc3BlY3RvckF0dGFjaGVkV2lkdGgoKTsKKyAgICAgICAgW21faW5zcGVjdG9yVmlldyBz
ZXRBdXRvcmVzaXppbmdNYXNrOk5TVmlld0hlaWdodFNpemFibGUgfCBOU1ZpZXdNaW5YTWFyZ2lu
XTsKKyAgICAgICAgY3VycmVudERpbWVuc2lvbiA9IGluc3BlY3RvclBhZ2VQcmVmZXJlbmNlcygp
Lmluc3BlY3RvckF0dGFjaGVkV2lkdGgoKTsKICAgICAgICAgYnJlYWs7CiAgICAgfQogCkBAIC04
OTIsNCArOTA1LDQgQEAgU3RyaW5nIFdlYkluc3BlY3RvclByb3h5OjppbnNwZWN0b3JCYXNlVVJM
KCkgY29uc3QKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLSNlbmRpZiAvLyBQTEFURk9STShN
QUMpCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKSAmJiBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDBjYTEy
ZjA1MGU4ZjZjZTg2OGViMzlkYTU4NjZhMGU3YjlkZWRiNGYuLmFmNDY0YmMwZTZiZDRkMWE2MTZi
NzA2YWQ5ZTRmZjg4MzZmM2Y5OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTYzMyw3ICs2MzMsNiBAQAogCQkyREE5NDRBNDE4
ODRFNEYwMDBFRDg2REIgLyogR2VzdHVyZVR5cGVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREE5NDQ5RDE4ODRFNEYwMDBFRDg2REIgLyogR2VzdHVy
ZVR5cGVzLmggKi87IH07CiAJCTJEQTk0NEE3MTg4NEU5NDgwMEVEODZEQiAvKiBEb3dubG9hZElP
Uy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDJEQTk0
NEE2MTg4NEU5NDgwMEVEODZEQiAvKiBEb3dubG9hZElPUy5tbSAqLzsgfTsKIAkJMkRBOTQ0QUQx
ODg0RTlCQTAwRUQ4NkRCIC8qIFRleHRDaGVja2VySU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBOTQ0QTkxODg0RTlCQTAwRUQ4NkRCIC8qIFRl
eHRDaGVja2VySU9TLm1tICovOyB9OwotCQkyREE5NDRBRTE4ODRFOUJBMDBFRDg2REIgLyogV2Vi
SW5zcGVjdG9yUHJveHlJT1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAyREE5NDRBQTE4ODRFOUJBMDBFRDg2REIgLyogV2ViSW5zcGVjdG9yUHJveHlJ
T1MubW0gKi87IH07CiAJCTJEQTk0NEFGMTg4NEU5QkEwMEVEODZEQiAvKiBXZWJQYWdlUHJveHlJ
T1MubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyREE5
NDRBQjE4ODRFOUJBMDBFRDg2REIgLyogV2ViUGFnZVByb3h5SU9TLm1tICovOyB9OwogCQkyREE5
NDRCMDE4ODRFOUJBMDBFRDg2REIgLyogV2ViUHJvY2Vzc1Byb3h5SU9TLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBOTQ0QUMxODg0RTlCQTAwRUQ4
NkRCIC8qIFdlYlByb2Nlc3NQcm94eUlPUy5tbSAqLzsgfTsKIAkJMkRBOTQ0QjkxODg0RUEzOTAw
RUQ4NkRCIC8qIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5SU9TLm1tIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkRBOTQ0QjUxODg0RUEzNTAwRUQ4NkRCIC8q
IFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5SU9TLm1tICovOyB9OwpAQCAtMjc0NCw3ICsyNzQzLDYg
QEAKIAkJMkRBOTQ0OUQxODg0RTRGMDAwRUQ4NkRCIC8qIEdlc3R1cmVUeXBlcy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBHZXN0dXJlVHlwZXMuaDsgcGF0aCA9IGlvcy9HZXN0
dXJlVHlwZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRBOTQ0QTYxODg0RTk0
ODAwRUQ4NkRCIC8qIERvd25sb2FkSU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gRG93bmxvYWRJT1MubW07IHBhdGggPSBEb3dubG9hZHMvaW9zL0Rvd25sb2Fk
SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREE5NDRBOTE4ODRFOUJBMDBF
RDg2REIgLyogVGV4dENoZWNrZXJJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IG5hbWUgPSBUZXh0Q2hlY2tlcklPUy5tbTsgcGF0aCA9IGlvcy9UZXh0Q2hlY2tlcklPUy5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJMkRBOTQ0QUExODg0RTlCQTAwRUQ4NkRC
IC8qIFdlYkluc3BlY3RvclByb3h5SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBuYW1lID0gV2ViSW5zcGVjdG9yUHJveHlJT1MubW07IHBhdGggPSBpb3MvV2ViSW5zcGVj
dG9yUHJveHlJT1MubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTJEQTk0NEFCMTg4
NEU5QkEwMEVEODZEQiAvKiBXZWJQYWdlUHJveHlJT1MubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5vYmpjcHA7IG5hbWUgPSBXZWJQYWdlUHJveHlJT1MubW07IHBhdGggPSBpb3MvV2ViUGFn
ZVByb3h5SU9TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyREE5NDRBQzE4ODRF
OUJBMDBFRDg2REIgLyogV2ViUHJvY2Vzc1Byb3h5SU9TLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBuYW1lID0gV2ViUHJvY2Vzc1Byb3h5SU9TLm1tOyBwYXRoID0gaW9zL1dl
YlByb2Nlc3NQcm94eUlPUy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMkRBOTQ0
QjUxODg0RUEzNTAwRUQ4NkRCIC8qIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5SU9TLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV2ViQmFja0ZvcndhcmRMaXN0UHJv
eHlJT1MubW07IHBhdGggPSBpb3MvV2ViQmFja0ZvcndhcmRMaXN0UHJveHlJT1MubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC01MDQ2LDcgKzUwNDQsNiBAQAogCQkJCTJEQUYwNkQ1
MThCRDFBNDcwMDgxQ0VCMSAvKiBTbWFydE1hZ25pZmljYXRpb25Db250cm9sbGVyLm1tICovLAog
CQkJCTJEQTk0NEE5MTg4NEU5QkEwMEVEODZEQiAvKiBUZXh0Q2hlY2tlcklPUy5tbSAqLywKIAkJ
CQkyREY5NTkzNDE4QTQyNDEyMDA5Nzg1QTEgLyogVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1t
ICovLAotCQkJCTJEQTk0NEFBMTg4NEU5QkEwMEVEODZEQiAvKiBXZWJJbnNwZWN0b3JQcm94eUlP
Uy5tbSAqLywKIAkJCQkyRDNFRjQ0MTE5MTc2NDYzMDAwMzQxODQgLyogV2ViTWVtb3J5UHJlc3N1
cmVIYW5kbGVySU9TLmggKi8sCiAJCQkJMkQzRUY0NDAxOTE3NjQ2MzAwMDM0MTg0IC8qIFdlYk1l
bW9yeVByZXNzdXJlSGFuZGxlcklPUy5tbSAqLywKIAkJCQkyREE5NDRBQjE4ODRFOUJBMDBFRDg2
REIgLyogV2ViUGFnZVByb3h5SU9TLm1tICovLApAQCAtOTYzMiw3ICs5NjI5LDYgQEAKIAkJCQlC
QzExMUE2MDExMkY0RkJCMDAzMzdCQUIgLyogV2ViSW5zcGVjdG9yQ2xpZW50LmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTFDOEUyQTM1MTI3Nzg1MjQwMEJDN0JEMCAvKiBXZWJJbnNwZWN0b3JNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUM4RTI4MzUxMjc1RDczODAwQkM3
QkQwIC8qIFdlYkluc3BlY3RvclByb3h5LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCTJEQTk0NEFF
MTg4NEU5QkEwMEVEODZEQiAvKiBXZWJJbnNwZWN0b3JQcm94eUlPUy5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTFDQThCOTM2MTI3Qzc3NEUwMDU3NkMyQiAvKiBXZWJJbnNwZWN0b3JQcm94eU1hYy5t
bSBpbiBTb3VyY2VzICovLAogCQkJCTFDQThCOTQ1MTI3Qzg4MkEwMDU3NkMyQiAvKiBXZWJJbnNw
ZWN0b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQzg5MUQ2
NTE5QjEyNEZGMDBCQTc5REQgLyogV2ViSW5zcGVjdG9yVUkuY3BwIGluIFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>