<?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>45334</bug_id>
          
          <creation_ts>2010-09-07 16:25:10 -0700</creation_ts>
          <short_desc>TextDocument should come in from the cold</short_desc>
          <delta_ts>2010-09-08 01:52:31 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>275379</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-07 16:25:10 -0700</bug_when>
    <thetext>TextDocument should come in from the cold</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275383</commentid>
    <comment_count>1</comment_count>
      <attachid>66786</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-07 16:28:35 -0700</bug_when>
    <thetext>Created attachment 66786
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275390</commentid>
    <comment_count>2</comment_count>
      <attachid>66786</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-07 16:38:20 -0700</bug_when>
    <thetext>Comment on attachment 66786
Patch

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

&gt; WebCore/html/parser/HTMLViewSourceParser.cpp:47
&gt; +    m_tokenizer-&gt;setState(HTMLTokenizer::PLAINTEXTState);
We talked about just making HTMLViewTextSourceParser a subclass which does this in the constructor.

&gt; WebCore/html/parser/TextDocumentParser.cpp:52
&gt; +    attributes-&gt;insertAttribute(styleAttribute.release(), false);
What does false do?

&gt; WebCore/html/parser/TextDocumentParser.cpp:78
&gt; +    pumpTokenizer();
m_treeBuilder-&gt;finished() is needed.  Lame that every document parser needs to write all this stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275400</commentid>
    <comment_count>3</comment_count>
      <attachid>66789</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-07 16:53:31 -0700</bug_when>
    <thetext>Created attachment 66789
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275403</commentid>
    <comment_count>4</comment_count>
      <attachid>66789</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-09-07 16:56:41 -0700</bug_when>
    <thetext>Comment on attachment 66789
Patch

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

:)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275405</commentid>
    <comment_count>5</comment_count>
      <attachid>66791</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-07 16:57:41 -0700</bug_when>
    <thetext>Created attachment 66791
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275547</commentid>
    <comment_count>6</comment_count>
      <attachid>66791</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-09-07 19:30:41 -0700</bug_when>
    <thetext>Comment on attachment 66791
Patch for landing

Rejecting patch 66791 from commit-queue.

Failed to run &quot;[&apos;WebKitTools/Scripts/run-webkit-tests&apos;, &apos;--no-launch-safari&apos;, &apos;--exit-after-n-failures=1&apos;, &apos;--wait-for-httpd&apos;, &apos;--ignore-tests&apos;, &apos;compositing,media&apos;, &apos;--quiet&apos;]&quot; exit_code: 1
Running build-dumprendertree
Compiling Java tests
make: Nothing to be done for `default&apos;.
Running tests from /Users/eseidel/Projects/CommitQueue/LayoutTests
Testing 20935 test cases.
http/tests/appcache/fallback.html -&gt; failed

Exiting early after 1 failures. 19967 tests run.
635.60s total testing time

19966 test cases (99%) succeeded
1 test case (&lt;1%) had incorrect layout
27 test cases (&lt;1%) had stderr output

Full output: http://queues.webkit.org/results/3939280</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>275677</commentid>
    <comment_count>7</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-09-08 01:52:31 -0700</bug_when>
    <thetext>Committed r66957: &lt;http://trac.webkit.org/changeset/66957&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66786</attachid>
            <date>2010-09-07 16:28:35 -0700</date>
            <delta_ts>2010-09-07 16:53:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45334-20100907162833.patch</filename>
            <type>text/plain</type>
            <size>27135</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCAyMWQxYjBkYjI4NzA4MWYyZWU3ZjQ2ZTY0MTIxMTU4YTkyZDA4MDlkLi4zMTFlZGU2MDk1Yzgy
ODc2ZTE5NTY2YTZlN2JjMGQ1MDJmZTE5NGM1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0zMDEsNiArMzAxLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJaHRtbC9wYXJzZXIvSFRNTFRva2VuaXpl
ci5jcHAgXAogCWh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAgXAogCWh0bWwvcGFyc2Vy
L0hUTUxWaWV3U291cmNlUGFyc2VyLmNwcCBcCisJaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFy
c2VyLmNwcCBcCiAJXAogCWxvYWRlci9DYWNoZS5jcHAgXAogCWxvYWRlci9DYWNoZWRDU1NTdHls
ZVNoZWV0LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxZDkxNTlmZWE4ZTcxYjk2NDFkZjY1ZjlkYjA1ZTJlZjgz
YWE1NTBhLi45ODE3ZmRkYTlmOWI5ZDdiMDVkYzEzYWZjM2EyODc3NjhhYjE3OTRkIDEwMDY0NAot
LS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTEwNDcsNiArMTA0Nyw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL3BhcnNl
ci9IVE1MVG9rZW5pemVyLmNwcAogICAgIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAK
ICAgICBodG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5jcHAKKyAgICBodG1sL3BhcnNl
ci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwCiAKICAgICBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2Uu
Y3BwCiAgICAgaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkYzRmNzU4MTY4YTY1NWIzMThm
NjgxYTZiODUwNDEzNDk2ODdkYTE4Li40NjE1YzZmYzQ4N2FkNjcwOWFkYjQ3YmVhMzk5MzJhNjhh
ZWUwZDI1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDEwLTA5LTA3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGV4dERvY3VtZW50IHNob3VsZCBjb21lIGluIGZyb20gdGhlIGNvbGQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MzM0CisKKyAgICAgICAgUHJl
dmlvdXNseSwgVGV4dERvY3VtZW50IHJlaW52ZW50ZWQgdGhlIHdoZWVsIHRvIHBhcnNlIHRleHQu
ICBUaGlzCisgICAgICAgIHBhdGNoIHJlcGxhY2VzIFRleHREb2N1bWVudCdzIGhhbmQtcm9sbGVk
IHBhcnNlciB3aXRoIGEgcGFyc2VyIGJ1aWx0IG9uCisgICAgICAgIHRoZSBIVE1MIHBhcnNlciBp
bmZydXN0cnVjdHVyZSwgd2hpY2ggZ2l2ZXMgdXMgdGhhdCBzdHVmZiBmb3IgZnJlZS4gIEkKKyAg
ICAgICAgYWxzbyBkaXNlbnRhbmdsZWQgVGV4dERvY3VtZW50IGZyb20gSFRNTFZpZXdTb3VyY2VE
b2N1bWVudC4KKworICAgICAgICBJbiBhIGZ1dHVyZSBwYXRjaCwgSSdsbCBtb3ZlIFRleHREb2N1
bWVudCBvdXQgb2YgdGhlICJsb2FkZXIiIGRpcmVjdG9yeS4KKworICAgICAgICAqIEFuZHJvaWQu
bWs6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAg
ICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0hUTUxWaWV3U291cmNlRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZXdTb3VyY2VEb2N1bWVudDo6Y3Jl
YXRlUGFyc2VyKToKKyAgICAgICAgKiBodG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFRyZWVCdWlsZGVyOjpjb25zdHJ1Y3RUcmVlRnJvbVRva2VuKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJlZUZyb21BdG9taWNUb2tlbik6Cisg
ICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmg6CisgICAgICAgICogaHRtbC9w
YXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZp
ZXdTb3VyY2VQYXJzZXI6OmZvcmNlUGxhaW50ZXh0KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9I
VE1MVmlld1NvdXJjZVBhcnNlci5oOgorICAgICAgICAqIGh0bWwvcGFyc2VyL1RleHREb2N1bWVu
dFBhcnNlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dERvY3VtZW50UGFyc2Vy
OjpUZXh0RG9jdW1lbnRQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dERvY3VtZW50UGFy
c2VyOjp+VGV4dERvY3VtZW50UGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHREb2N1bWVu
dFBhcnNlcjo6aW5zZXJ0RmFrZVByZUVsZW1lbnQpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dERv
Y3VtZW50UGFyc2VyOjpwdW1wVG9rZW5pemVyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHREb2N1
bWVudFBhcnNlcjo6YXBwZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHREb2N1bWVudFBhcnNl
cjo6ZmluaXNoKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHREb2N1bWVudFBhcnNlcjo6ZmluaXNo
V2FzQ2FsbGVkKToKKyAgICAgICAgKiBodG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuaDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpUZXh0RG9jdW1lbnRQYXJzZXI6OmNyZWF0ZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpUZXh0RG9jdW1lbnRQYXJzZXI6Omluc2VydCk6CisgICAgICAgICog
bG9hZGVyL1RleHREb2N1bWVudC5jcHA6CisgICAgICAgICogbG9hZGVyL1RleHREb2N1bWVudC5o
OgorCiAyMDEwLTA5LTA3ICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4K
IAogICAgICAgICBBZGQgcmVuZGVyaW5nL0NvbHVtbkluZm8uaCB0byB0aGUgc291cmNlcyBsaXN0
LgpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbSBiL1dlYkNvcmUvR05VbWFrZWZp
bGUuYW0KaW5kZXggMWU0NGFkY2RiYjc5N2M3MTNkNDk4ODczNDhlMGUwOWIwMmU2NTAwZC4uOGM1
ZmFiOGU5YWI5YmVkYjU2NDNlZDFhNTQwZGI2ZGIxODVlM2IzZiAxMDA2NDQKLS0tIGEvV2ViQ29y
ZS9HTlVtYWtlZmlsZS5hbQorKysgYi9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCkBAIC0xNTY5LDYg
KzE1NjksOCBAQCB3ZWJjb3JlX3NvdXJjZXMgKz0gXAogCVdlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFRyZWVCdWlsZGVyLmggXAogCVdlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJz
ZXIuY3BwIFwKIAlXZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmggXAor
CVdlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFyc2VyLmNwcCBcCisJV2ViQ29yZS9o
dG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuaCBcCiAJV2ViQ29yZS9odG1sL1ZhbGlkaXR5
U3RhdGUuY3BwIFwKIAlXZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5oIFwKIAlXZWJDb3JlL2h0
bWwvVm9pZENhbGxiYWNrLmggXApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLmd5cGkgYi9X
ZWJDb3JlL1dlYkNvcmUuZ3lwaQppbmRleCAzMzIxY2JiN2Q0YmYzYjYxMWUzMzE5NWRjMjQyMGEx
ZTkzNzYzMWZjLi5kODFlZmY2MTgyODIwNmY2NDE5NzQ1YzY3YjQ1MTZjODRmZDFlYTM3IDEwMDY0
NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaQorKysgYi9XZWJDb3JlL1dlYkNvcmUuZ3lwaQpA
QCAtMTc3OCw2ICsxNzc4LDggQEAKICAgICAgICAgICAgICdodG1sL3BhcnNlci9IVE1MVHJlZUJ1
aWxkZXIuaCcsCiAgICAgICAgICAgICAnaHRtbC9wYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIu
Y3BwJywKICAgICAgICAgICAgICdodG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5oJywK
KyAgICAgICAgICAgICdodG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwJywKKyAgICAg
ICAgICAgICdodG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuaCcsCiAgICAgICAgICAgICAn
aW5zcGVjdG9yL0luc3BlY3RvckNsaWVudC5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvQ29u
c29sZU1lc3NhZ2UuY3BwJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2Uu
aCcsCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvV2ViQ29yZS9XZWJDb3JlLnBy
bwppbmRleCA3NzViMDdlYjM1ZjgwMGY4YTk2YTZiYjk0NDNkOTIzNzJjZDUwZDZmLi5kMDI1MmQz
MzU3YjNhMThjMGM1ZTk4MzNiMWJlMWQ0NTM4ODA0ZTlhIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dl
YkNvcmUucHJvCisrKyBiL1dlYkNvcmUvV2ViQ29yZS5wcm8KQEAgLTc1MSw2ICs3NTEsNyBAQCBT
T1VSQ0VTICs9IFwKICAgICBodG1sL3BhcnNlci9IVE1MVG9rZW5pemVyLmNwcCBcCiAgICAgaHRt
bC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCBcCiAgICAgaHRtbC9wYXJzZXIvSFRNTFZpZXdT
b3VyY2VQYXJzZXIuY3BwIFwKKyAgICBodG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuY3Bw
IFwKICAgICBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2UuY3BwIFwKICAgICBpbnNwZWN0b3IvSW5q
ZWN0ZWRTY3JpcHQuY3BwIFwKICAgICBpbnNwZWN0b3IvSW5qZWN0ZWRTY3JpcHRIb3N0LmNwcCBc
CmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qIGIvV2Vi
Q29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvagppbmRleCBmM2U0OWY1ZDNkMWVlZWU5
NTBkNGNkMjAyZDhmYmUyYzY2OThkNGRlLi43ZWRlMmJjYTE1MzFlNTM1OWMxNDBiNGNmMDQ4YmQz
ZWJmN2U2Y2MwIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCisrKyBiL1dlYkNvcmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKQEAgLTQxOTE1
LDYgKzQxOTE1LDE0IEBACiAgICAgICAgICAgICAgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5caHRt
bFxwYXJzZXJcSFRNTFZpZXdTb3VyY2VQYXJzZXIuaCINCiAgICAgICAgICAgICAgICAgICAgID4N
CiAgICAgICAgICAgICAgICAgPC9GaWxlPg0KKyAgICAgICAgICAgICAgICA8RmlsZQ0KKyAgICAg
ICAgICAgICAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlxodG1sXHBhcnNlclxUZXh0RG9jdW1lbnRQ
YXJzZXIuY3BwIg0KKyAgICAgICAgICAgICAgICAgICAgPg0KKyAgICAgICAgICAgICAgICA8L0Zp
bGU+DQorICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxhdGl2
ZVBhdGg9Ii4uXGh0bWxccGFyc2VyXFRleHREb2N1bWVudFBhcnNlci5oIg0KKyAgICAgICAgICAg
ICAgICAgICAgPg0KKyAgICAgICAgICAgICAgICA8L0ZpbGU+DQogICAgICAgICAgICAgPC9GaWx0
ZXI+DQogCQkJPEZpbGUNCiAJCQkJUmVsYXRpdmVQYXRoPSIuLlxodG1sXFN0ZXBSYW5nZS5jcHAi
DQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2og
Yi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAxNWNjMDZj
YjRkM2VlNWQ2ODM0MzM5MGNmNDg2NzQxOTY5OWUxY2U3Li4yZDFkY2EzNzdkN2E1MWUyNmE3NzMw
MWY0YmJhYTA5ZjcwZDIwMDVjIDEwMDY0NAotLS0gYS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMjc4NSw2ICsyNzg1LDggQEAKIAkJOTc3QjM4N0ExMjI4ODNFOTAwQjgxRkY4
IC8qIEhUTUxWaWV3U291cmNlUGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5NzdCMzg2MTEyMjg4M0U5MDBCODFGRjggLyogSFRNTFZpZXdTb3Vy
Y2VQYXJzZXIuaCAqLzsgfTsKIAkJOTc5RjQzRDMxMDc1RTQ0QTAwMDBGODNCIC8qIFJlZGlyZWN0
U2NoZWR1bGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDk3OUY0M0QxMTA3NUU0NEEwMDAwRjgzQiAvKiBSZWRpcmVjdFNjaGVkdWxlci5jcHAgKi87
IH07CiAJCTk3OUY0M0Q0MTA3NUU0NEEwMDAwRjgzQiAvKiBSZWRpcmVjdFNjaGVkdWxlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc5RjQzRDIxMDc1
RTQ0QTAwMDBGODNCIC8qIFJlZGlyZWN0U2NoZWR1bGVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTdCQzg0ODMxMjM2RkQ5MzAwMEM2MTYxIC8q
IFRleHREb2N1bWVudFBhcnNlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5N0JDODQ4MTEyMzZGRDkzMDAwQzYxNjEgLyogVGV4dERvY3VtZW50UGFy
c2VyLmNwcCAqLzsgfTsKKwkJOTdCQzg0ODQxMjM2RkQ5MzAwMEM2MTYxIC8qIFRleHREb2N1bWVu
dFBhcnNlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTdCQzg0ODIxMjM2RkQ5MzAwMEM2MTYxIC8qIFRleHREb2N1bWVudFBhcnNlci5oICovOyB9Owog
CQk5N0MwNzg1MDExNjVENUJFMDAzQTMyRUYgLyogU3VmZml4VHJlZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTdDMDc4NEYxMTY1RDVCRTAwM0EzMkVG
IC8qIFN1ZmZpeFRyZWUuaCAqLzsgfTsKIAkJOTdEQ0UyMDExMDgwN0M3NTAwNTdEMzk0IC8qIEhp
c3RvcnlDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDk3RENFMUZGMTA4MDdDNzUwMDU3RDM5NCAvKiBIaXN0b3J5Q29udHJvbGxlci5j
cHAgKi87IH07CiAJCTk3RENFMjAyMTA4MDdDNzUwMDU3RDM5NCAvKiBIaXN0b3J5Q29udHJvbGxl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTdEQ0Uy
MDAxMDgwN0M3NTAwNTdEMzk0IC8qIEhpc3RvcnlDb250cm9sbGVyLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTg2NTEsNiArODY1Myw4IEBACiAJ
CTk3N0IzODYxMTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MVmlld1NvdXJjZVBhcnNlci5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBIVE1MVmlld1NvdXJjZVBhcnNlci5oOyBwYXRo
ID0gcGFyc2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk3OUY0M0QxMTA3NUU0NEEwMDAwRjgzQiAvKiBSZWRpcmVjdFNjaGVkdWxlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZWRpcmVjdFNjaGVkdWxlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3OUY0M0QyMTA3NUU0NEEwMDAwRjgz
QiAvKiBSZWRpcmVjdFNjaGVkdWxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBSZWRpcmVjdFNjaGVkdWxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5N0JD
ODQ4MTEyMzZGRDkzMDAwQzYxNjEgLyogVGV4dERvY3VtZW50UGFyc2VyLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IFRleHREb2N1bWVudFBhcnNlci5jcHA7IHBhdGgg
PSBwYXJzZXIvVGV4dERvY3VtZW50UGFyc2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJOTdCQzg0ODIxMjM2RkQ5MzAwMEM2MTYxIC8qIFRleHREb2N1bWVudFBhcnNlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBUZXh0RG9jdW1lbnRQYXJzZXIuaDsgcGF0
aCA9IHBhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTdDMDc4NEYxMTY1RDVCRTAwM0EzMkVGIC8qIFN1ZmZpeFRyZWUuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3VmZml4VHJlZS5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5N0MxRjU1MjEyMjg1NUNCMDBFREU2MTYgLyogSFRNTFRva2VuLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEhUTUxUb2tlbi5oOyBwYXRoID0gcGFyc2VyL0hU
TUxUb2tlbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5N0RDRTFGRjEwODA3Qzc1
MDA1N0QzOTQgLyogSGlzdG9yeUNvbnRyb2xsZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gSGlzdG9yeUNvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtMTQ0MzIsNiArMTQ0MzYsOCBAQAogCQkJCTk3N0IzNzIyMTIyODcyMTcwMEI4
MUZGOCAvKiBIVE1MVHJlZUJ1aWxkZXIuaCAqLywKIAkJCQk5NzdCMzg2MDEyMjg4M0U5MDBCODFG
RjggLyogSFRNTFZpZXdTb3VyY2VQYXJzZXIuY3BwICovLAogCQkJCTk3N0IzODYxMTIyODgzRTkw
MEI4MUZGOCAvKiBIVE1MVmlld1NvdXJjZVBhcnNlci5oICovLAorCQkJCTk3QkM4NDgxMTIzNkZE
OTMwMDBDNjE2MSAvKiBUZXh0RG9jdW1lbnRQYXJzZXIuY3BwICovLAorCQkJCTk3QkM4NDgyMTIz
NkZEOTMwMDBDNjE2MSAvKiBUZXh0RG9jdW1lbnRQYXJzZXIuaCAqLywKIAkJCSk7CiAJCQluYW1l
ID0gcGFyc2VyOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTIwNDM2LDYgKzIwNDQy
LDcgQEAKIAkJCQk4OTg3ODVGMTEyMkUxRTg3MDAzQUFCREEgLyogSlNGaWxlRXhjZXB0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk4OTg3ODVGNTEyMkUxRUFDMDAzQUFCREEgLyogSlNGaWxlUmVh
ZGVyU3luYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNERDQ1NEUxMjM2Qzk1QzAwOUE3OTg1IC8q
IENvbHVtbkluZm8uaCBpbiBIZWFkZXJzICovLAorCQkJCTk3QkM4NDg0MTIzNkZEOTMwMDBDNjE2
MSAvKiBUZXh0RG9jdW1lbnRQYXJzZXIuaCBpbiBIZWFkZXJzICovLAogCQkJKTsKIAkJCXJ1bk9u
bHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9OwpAQCAtMjI4OTksNiArMjI5
MDYsNyBAQAogCQkJCTg5ODc4NUI4MTIyQ0EyQTcwMDNBQUJEQSAvKiBKU01ldGFkYXRhQ2FsbGJh
Y2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODk4Nzg1RjAxMjJFMUU4NzAwM0FBQkRBIC8qIEpT
RmlsZUV4Y2VwdGlvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTg3ODVGNDEyMkUxRUFDMDAz
QUFCREEgLyogSlNGaWxlUmVhZGVyU3luYy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5N0JDODQ4
MzEyMzZGRDkzMDAwQzYxNjEgLyogVGV4dERvY3VtZW50UGFyc2VyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJKTsKIAkJCXJ1bk9ubHlGb3JEZXBsb3ltZW50UG9zdHByb2Nlc3NpbmcgPSAwOwogCQl9
OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuY3BwIGIv
V2ViQ29yZS9odG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuY3BwCmluZGV4IDMyOTliMjc0YTU3
M2ZmMjhjZTM4YTFjNGQ2YmY0Y2JhN2Q4YWU2NTAuLmNhZDgxMzRiNDIyMzljMWNiMDBhMDNhYWFh
NjdiZWQ5NTQwYzlmN2YgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9IVE1MVmlld1NvdXJjZURv
Y3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2h0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5jcHAK
QEAgLTU4LDE1ICs1OCwxNyBAQCBIVE1MVmlld1NvdXJjZURvY3VtZW50OjpIVE1MVmlld1NvdXJj
ZURvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgS1VSTCYgdXJsLCBjbwogCiBQYXNzUmVmUHRy
PERvY3VtZW50UGFyc2VyPiBIVE1MVmlld1NvdXJjZURvY3VtZW50OjpjcmVhdGVQYXJzZXIoKQog
eworICAgIFJlZlB0cjxIVE1MVmlld1NvdXJjZVBhcnNlcj4gcGFyc2VyID0gSFRNTFZpZXdTb3Vy
Y2VQYXJzZXI6OmNyZWF0ZSh0aGlzKTsKICAgICAvLyBVc2UgSFRNTERvY3VtZW50UGFyc2VyIGlm
IGFwcGxpY2FibGUsIG90aGVyd2lzZSB1c2UgVGV4dERvY3VtZW50UGFyc2VyLgogICAgIGlmICht
X3R5cGUgPT0gInRleHQvaHRtbCIgfHwgbV90eXBlID09ICJhcHBsaWNhdGlvbi94aHRtbCt4bWwi
IHx8IG1fdHlwZSA9PSAiaW1hZ2Uvc3ZnK3htbCIgfHwgRE9NSW1wbGVtZW50YXRpb246OmlzWE1M
TUlNRVR5cGUobV90eXBlKQogI2lmIEVOQUJMRShYSFRNTE1QKQogICAgICAgICB8fCBtX3R5cGUg
PT0gImFwcGxpY2F0aW9uL3ZuZC53YXAueGh0bWwreG1sIgogI2VuZGlmCiAgICAgICAgICkKLSAg
ICAgICAgcmV0dXJuIEhUTUxWaWV3U291cmNlUGFyc2VyOjpjcmVhdGUodGhpcyk7CisgICAgICAg
IHJldHVybiBwYXJzZXIucmVsZWFzZSgpOwogCi0gICAgcmV0dXJuIGNyZWF0ZVRleHREb2N1bWVu
dFBhcnNlcih0aGlzKTsKKyAgICBwYXJzZXItPmZvcmNlUGxhaW50ZXh0KCk7CisgICAgcmV0dXJu
IHBhcnNlci5yZWxlYXNlKCk7CiB9CiAKIHZvaWQgSFRNTFZpZXdTb3VyY2VEb2N1bWVudDo6Y3Jl
YXRlQ29udGFpbmluZ1RhYmxlKCkKQEAgLTk2LDEzICs5OCw2IEBAIHZvaWQgSFRNTFZpZXdTb3Vy
Y2VEb2N1bWVudDo6Y3JlYXRlQ29udGFpbmluZ1RhYmxlKCkKICAgICBtX2N1cnJlbnQgPSBtX3Ri
b2R5OwogfQogCi12b2lkIEhUTUxWaWV3U291cmNlRG9jdW1lbnQ6OmFkZFZpZXdTb3VyY2VUZXh0
KGNvbnN0IFN0cmluZyYgdGV4dCkKLXsKLSAgICBpZiAoIW1fY3VycmVudCkKLSAgICAgICAgY3Jl
YXRlQ29udGFpbmluZ1RhYmxlKCk7Ci0gICAgYWRkVGV4dCh0ZXh0LCAiIik7Ci19Ci0KIHZvaWQg
SFRNTFZpZXdTb3VyY2VEb2N1bWVudDo6YWRkU291cmNlKGNvbnN0IFN0cmluZyYgc291cmNlLCBI
VE1MVG9rZW4mIHRva2VuKQogewogICAgIGlmICghbV9jdXJyZW50KQpkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuaCBiL1dlYkNvcmUvaHRtbC9IVE1MVmll
d1NvdXJjZURvY3VtZW50LmgKaW5kZXggNDQ1Yzk1YmIxZDRmNTlmNTNiZTBiYjg5YmY5NDA0MWE0
MDFmMjU4Yi4uMzBlNGRmM2EzMGFmZmIyOGZhZjA2Y2RiMjNlMWZkMDdmOTg0MDdhZCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9odG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuaAorKysgYi9XZWJDb3Jl
L2h0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVudC5oCkBAIC00Miw5ICs0Miw2IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgYWRkU291cmNlKGNvbnN0IFN0cmluZyYsIEhUTUxUb2tlbiYpOwogCi0gICAg
dm9pZCBhZGRWaWV3U291cmNlVG9rZW4oSFRNTFRva2VuJik7IC8vIFVzZWQgYnkgdGhlIEhUTUxE
b2N1bWVudFBhcnNlci4KLSAgICB2b2lkIGFkZFZpZXdTb3VyY2VUZXh0KGNvbnN0IFN0cmluZyYp
OyAvLyBVc2VkIGJ5IHRoZSBUZXh0RG9jdW1lbnRQYXJzZXIuCi0KIHByaXZhdGU6CiAgICAgSFRN
TFZpZXdTb3VyY2VEb2N1bWVudChGcmFtZSosIGNvbnN0IEtVUkwmLCBjb25zdCBTdHJpbmcmIG1p
bWVUeXBlKTsKIApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxk
ZXIuY3BwIGIvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCmluZGV4IDhj
NzZmYzAwNDU1MDlmZDZkNDg1NTMwMjYyYTc4ZDI0ZTdkMWNhNTMuLjQwNmJiNmM5Yjg3OTYyMmU4
NmZmMWNmY2JkMWIyNjk5Njg0NTVmYWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFRyZWVCdWlsZGVyLmNwcAorKysgYi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVp
bGRlci5jcHAKQEAgLTQ2Myw2ICs0NjMsMTEgQEAgSFRNTFRva2VuaXplcjo6U3RhdGUgSFRNTFRy
ZWVCdWlsZGVyOjphZGp1c3RlZExleGVyU3RhdGUoSFRNTFRva2VuaXplcjo6U3RhdGUgc3QKIHZv
aWQgSFRNTFRyZWVCdWlsZGVyOjpjb25zdHJ1Y3RUcmVlRnJvbVRva2VuKEhUTUxUb2tlbiYgcmF3
VG9rZW4pCiB7CiAgICAgQXRvbWljSFRNTFRva2VuIHRva2VuKHJhd1Rva2VuKTsKKyAgICBjb25z
dHJ1Y3RUcmVlRnJvbUF0b21pY1Rva2VuKHRva2VuKTsKK30KKwordm9pZCBIVE1MVHJlZUJ1aWxk
ZXI6OmNvbnN0cnVjdFRyZWVGcm9tQXRvbWljVG9rZW4oQXRvbWljSFRNTFRva2VuJiB0b2tlbikK
K3sKICAgICBwcm9jZXNzVG9rZW4odG9rZW4pOwogCiAgICAgLy8gU3dhbGxvd2luZyBVKzAwMDAg
Y2hhcmFjdGVycyBpc24ndCBpbiB0aGUgSFRNTDUgc3BlYywgYnV0IHR1cm5pbmcgYWxsCmRpZmYg
LS1naXQgYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oIGIvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaAppbmRleCBjMzBlNmI4ZGM4OTk4ZjI4YzBkYWI2
NWVlZTI1NDMyMGJiZThiY2U1Li40NjM0ZjBhNThhNDBjYTkzMWQ2MWE2MDNkYzM5MzVlOGM0ZDRi
Mjc2IDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oCisr
KyBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKQEAgLTY4LDYgKzY4LDgg
QEAgcHVibGljOgogCiAgICAgLy8gVGhlIHRva2VuIHJlYWxseSBzaG91bGQgYmUgcGFzc2VkIGFz
IGEgY29uc3QmIHNpbmNlIGl0J3MgbmV2ZXIgbW9kaWZpZWQuCiAgICAgdm9pZCBjb25zdHJ1Y3RU
cmVlRnJvbVRva2VuKEhUTUxUb2tlbiYpOworICAgIHZvaWQgY29uc3RydWN0VHJlZUZyb21BdG9t
aWNUb2tlbihBdG9taWNIVE1MVG9rZW4mKTsKKwogICAgIC8vIE11c3QgYmUgY2FsbGVkIHdoZW4g
cGFyc2VyIGlzIHBhdXNlZCBiZWZvcmUgY2FsbGluZyB0aGUgcGFyc2VyIGFnYWluLgogICAgIFBh
c3NSZWZQdHI8RWxlbWVudD4gdGFrZVNjcmlwdFRvUHJvY2VzcyhpbnQmIHNjcmlwdFN0YXJ0TGlu
ZSk7CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJz
ZXIuY3BwIGIvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5jcHAKaW5k
ZXggOGE3OTg0ZGM4ZWNiMTNmM2M3Y2YwNDYyNmE1ZDdlMWVhNTA1MTkyZC4uNGFhYzk1NTBjNjli
OWE1M2VmNzljYTk5ZGJkODYwNWYxMDY4MGQ2MyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5jcHAKKysrIGIvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVmlld1NvdXJjZVBhcnNlci5jcHAKQEAgLTQyLDYgKzQyLDExIEBAIEhUTUxWaWV3U291cmNl
UGFyc2VyOjp+SFRNTFZpZXdTb3VyY2VQYXJzZXIoKQogewogfQogCit2b2lkIEhUTUxWaWV3U291
cmNlUGFyc2VyOjpmb3JjZVBsYWludGV4dCgpCit7CisgICAgbV90b2tlbml6ZXItPnNldFN0YXRl
KEhUTUxUb2tlbml6ZXI6OlBMQUlOVEVYVFN0YXRlKTsKK30KKwogdm9pZCBIVE1MVmlld1NvdXJj
ZVBhcnNlcjo6aW5zZXJ0KGNvbnN0IFNlZ21lbnRlZFN0cmluZyYpCiB7CiAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxWaWV3U291
cmNlUGFyc2VyLmggYi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmgK
aW5kZXggMzRjYWY0M2Y5YzQxZjMwZDA4ZjRiYWNmZmIxMGQwZGNiNDYzY2U0NC4uMjhmMDVlY2Jm
M2VlNzVlOTI4MGQ1ZjExZGYwYjM5NTg5NjA2MDI5YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5oCisrKyBiL1dlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFZpZXdTb3VyY2VQYXJzZXIuaApAQCAtNTAsNiArNTAsOCBAQCBwdWJsaWM6CiAgICAgfQog
ICAgIHZpcnR1YWwgfkhUTUxWaWV3U291cmNlUGFyc2VyKCk7CiAKKyAgICB2b2lkIGZvcmNlUGxh
aW50ZXh0KCk7CisKIHByaXZhdGU6CiAgICAgSFRNTFZpZXdTb3VyY2VQYXJzZXIoSFRNTFZpZXdT
b3VyY2VEb2N1bWVudCopOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvcGFyc2VyL1RleHRE
b2N1bWVudFBhcnNlci5jcHAgYi9XZWJDb3JlL2h0bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNl
ci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjhjOWI3YjMwMTllNzc3YjJmZGQ3MThkZTE3MTA1YmE3OGQ3MGQz
MgotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFy
c2VyLmNwcApAQCAtMCwwICsxLDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJUZXh0
RG9jdW1lbnRQYXJzZXIuaCIKKworI2luY2x1ZGUgIkhUTUxEb2N1bWVudC5oIgorI2luY2x1ZGUg
IkhUTUxOYW1lcy5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3VzaW5nIG5hbWVzcGFjZSBI
VE1MTmFtZXM7CisKK1RleHREb2N1bWVudFBhcnNlcjo6VGV4dERvY3VtZW50UGFyc2VyKEhUTUxE
b2N1bWVudCogZG9jdW1lbnQpCisgICAgOiBEZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyKGRvY3Vt
ZW50KQorICAgICwgbV90b2tlbml6ZXIoSFRNTFRva2VuaXplcjo6Y3JlYXRlKCkpCisgICAgLCBt
X3RyZWVCdWlsZGVyKEhUTUxUcmVlQnVpbGRlcjo6Y3JlYXRlKG1fdG9rZW5pemVyLmdldCgpLCBk
b2N1bWVudCwgZmFsc2UpKQoreworICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5p
emVyOjpQTEFJTlRFWFRTdGF0ZSk7CisgICAgaW5zZXJ0RmFrZVByZUVsZW1lbnQoKTsKK30KKwor
VGV4dERvY3VtZW50UGFyc2VyOjp+VGV4dERvY3VtZW50UGFyc2VyKCkKK3sKK30KKwordm9pZCBU
ZXh0RG9jdW1lbnRQYXJzZXI6Omluc2VydEZha2VQcmVFbGVtZW50KCkKK3sKKyAgICBSZWZQdHI8
QXR0cmlidXRlPiBzdHlsZUF0dHJpYnV0ZSA9IEF0dHJpYnV0ZTo6Y3JlYXRlTWFwcGVkKCJzdHls
ZSIsICJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsiKTsKKyAg
ICBSZWZQdHI8TmFtZWROb2RlTWFwPiBhdHRyaWJ1dGVzID0gTmFtZWROb2RlTWFwOjpjcmVhdGUo
KTsKKyAgICBhdHRyaWJ1dGVzLT5pbnNlcnRBdHRyaWJ1dGUoc3R5bGVBdHRyaWJ1dGUucmVsZWFz
ZSgpLCBmYWxzZSk7CisgICAgQXRvbWljSFRNTFRva2VuIGZha2VQcmUoSFRNTFRva2VuOjpTdGFy
dFRhZywgcHJlVGFnLmxvY2FsTmFtZSgpLCBhdHRyaWJ1dGVzLnJlbGVhc2UoKSk7CisKKyAgICBt
X3RyZWVCdWlsZGVyLT5jb25zdHJ1Y3RUcmVlRnJvbUF0b21pY1Rva2VuKGZha2VQcmUpOworfQor
Cit2b2lkIFRleHREb2N1bWVudFBhcnNlcjo6cHVtcFRva2VuaXplcigpCit7CisgICAgd2hpbGUg
KG1fdG9rZW5pemVyLT5uZXh0VG9rZW4obV9pbnB1dC5jdXJyZW50KCksIG1fdG9rZW4pKSB7Cisg
ICAgICAgIEFTU0VSVChtX3Rva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW46OkNoYXJhY3RlciB8fCBt
X3Rva2VuLnR5cGUoKSA9PSBIVE1MVG9rZW46OkVuZE9mRmlsZSk7CisgICAgICAgIG1fdHJlZUJ1
aWxkZXItPmNvbnN0cnVjdFRyZWVGcm9tVG9rZW4obV90b2tlbik7CisgICAgICAgIG1fdG9rZW4u
Y2xlYXIoKTsKKyAgICAgICAgQVNTRVJUKCFtX3RyZWVCdWlsZGVyLT5pc1BhdXNlZCgpKTsKKyAg
ICB9Cit9CisKK3ZvaWQgVGV4dERvY3VtZW50UGFyc2VyOjphcHBlbmQoY29uc3QgU2VnbWVudGVk
U3RyaW5nJiB0ZXh0KQoreworICAgIG1faW5wdXQuYXBwZW5kVG9FbmQodGV4dCk7CisgICAgcHVt
cFRva2VuaXplcigpOworfQorCit2b2lkIFRleHREb2N1bWVudFBhcnNlcjo6ZmluaXNoKCkKK3sK
KyAgICBpZiAoIW1faW5wdXQuaGF2ZVNlZW5FbmRPZkZpbGUoKSkKKyAgICAgICAgbV9pbnB1dC5t
YXJrRW5kT2ZGaWxlKCk7CisgICAgcHVtcFRva2VuaXplcigpOworfQorCitib29sIFRleHREb2N1
bWVudFBhcnNlcjo6ZmluaXNoV2FzQ2FsbGVkKCkKK3sKKyAgICByZXR1cm4gbV9pbnB1dC5oYXZl
U2VlbkVuZE9mRmlsZSgpOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvcGFyc2Vy
L1RleHREb2N1bWVudFBhcnNlci5oIGIvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQ
YXJzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi44Y2I5NTYxYWE4NzMzMzRlMDcwMjUwODQ5Y2Q0MjdlNzA0NjAz
MTNmCi0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQ
YXJzZXIuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKworI2lmbmRlZiBUZXh0RG9jdW1lbnRQYXJzZXJfaAorI2Rl
ZmluZSBUZXh0RG9jdW1lbnRQYXJzZXJfaAorCisjaW5jbHVkZSAiRGVjb2RlZERhdGFEb2N1bWVu
dFBhcnNlci5oIgorI2luY2x1ZGUgIkhUTUxJbnB1dFN0cmVhbS5oIgorI2luY2x1ZGUgIkhUTUxU
b2tlbi5oIgorI2luY2x1ZGUgIkhUTUxUb2tlbml6ZXIuaCIKKyNpbmNsdWRlICJIVE1MVHJlZUJ1
aWxkZXIuaCIKKyNpbmNsdWRlICJTZWdtZW50ZWRTdHJpbmcuaCIKKworbmFtZXNwYWNlIFdlYkNv
cmUgeworCitjbGFzcyBUZXh0RG9jdW1lbnRQYXJzZXIgOiBwdWJsaWMgRGVjb2RlZERhdGFEb2N1
bWVudFBhcnNlciB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dERvY3VtZW50
UGFyc2VyPiBjcmVhdGUoSFRNTERvY3VtZW50KiBkb2N1bWVudCkKKyAgICB7CisgICAgICAgIHJl
dHVybiBhZG9wdFJlZihuZXcgVGV4dERvY3VtZW50UGFyc2VyKGRvY3VtZW50KSk7CisgICAgfQor
ICAgIHZpcnR1YWwgflRleHREb2N1bWVudFBhcnNlcigpOworCitwcml2YXRlOgorICAgIGV4cGxp
Y2l0IFRleHREb2N1bWVudFBhcnNlcihIVE1MRG9jdW1lbnQqKTsKKworICAgIHZpcnR1YWwgdm9p
ZCBpbnNlcnQoY29uc3QgU2VnbWVudGVkU3RyaW5nJikgeyBBU1NFUlRfTk9UX1JFQUNIRUQoKTsg
fQorICAgIHZpcnR1YWwgdm9pZCBhcHBlbmQoY29uc3QgU2VnbWVudGVkU3RyaW5nJik7CisgICAg
dmlydHVhbCB2b2lkIGZpbmlzaCgpOworICAgIHZpcnR1YWwgYm9vbCBmaW5pc2hXYXNDYWxsZWQo
KTsKKworICAgIHZvaWQgaW5zZXJ0RmFrZVByZUVsZW1lbnQoKTsKKyAgICB2b2lkIHB1bXBUb2tl
bml6ZXIoKTsKKworICAgIEhUTUxJbnB1dFN0cmVhbSBtX2lucHV0OworICAgIEhUTUxUb2tlbiBt
X3Rva2VuOworCisgICAgT3duUHRyPEhUTUxUb2tlbml6ZXI+IG1fdG9rZW5pemVyOworICAgIE93
blB0cjxIVE1MVHJlZUJ1aWxkZXI+IG1fdHJlZUJ1aWxkZXI7Cit9OworCit9CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvVGV4dERvY3VtZW50LmNwcCBiL1dlYkNvcmUvbG9h
ZGVyL1RleHREb2N1bWVudC5jcHAKaW5kZXggNGIwOWE5ZWRiMTY2Y2YxOTIyZWI3MmYwYmYwNDIz
MGU3NDU2ZWMxZC4uOTMzNGEzOTdiZWRmMjljNzZlMjNjY2FjNTBjYzJmMWU5NzljZGE1ZCAxMDA2
NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIvVGV4dERvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2xv
YWRlci9UZXh0RG9jdW1lbnQuY3BwCkBAIC0xOSwxODYgKzE5LDE2IEBACiAgKiBQUk9GSVRTOyBP
UiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
CiAgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXh0RG9jdW1lbnQuaCIK
IAotI2luY2x1ZGUgIkRlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuaCIKLSNpbmNsdWRlICJFbGVt
ZW50LmgiCi0jaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiSFRNTFZpZXdTb3VyY2VE
b2N1bWVudC5oIgotI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgotI2luY2x1ZGUgIlRleHQu
aCIKLQotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKKyNpbmNsdWRlICJUZXh0RG9jdW1lbnRQYXJzZXIu
aCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwot
Ci0vLyBGSVhNRTogVGV4dERvY3VtZW50UGFyc2VyIGNvdWxkIGp1c3QgYmUgYW4gSFRNTERvY3Vt
ZW50UGFyc2VyCi0vLyB3aGljaCBzdGFydGVkIHRoZSBUb2tlbml6ZXIgaW4gdGhlIFBsYWluVGV4
dCBzdGF0ZS4KLWNsYXNzIFRleHREb2N1bWVudFBhcnNlciA6IHB1YmxpYyBEZWNvZGVkRGF0YURv
Y3VtZW50UGFyc2VyIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0RG9jdW1l
bnRQYXJzZXI+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgewotICAgICAgICByZXR1
cm4gYWRvcHRSZWYobmV3IFRleHREb2N1bWVudFBhcnNlcihkb2N1bWVudCkpOwotICAgIH0KLQot
ICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRleHREb2N1bWVudFBhcnNlcj4gY3JlYXRlKEhUTUxWaWV3
U291cmNlRG9jdW1lbnQqIGRvY3VtZW50KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVm
KG5ldyBUZXh0RG9jdW1lbnRQYXJzZXIoZG9jdW1lbnQpKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFs
IH5UZXh0RG9jdW1lbnRQYXJzZXIoKTsKLSAgICAKLXByaXZhdGU6Ci0gICAgVGV4dERvY3VtZW50
UGFyc2VyKERvY3VtZW50Kik7Ci0gICAgVGV4dERvY3VtZW50UGFyc2VyKEhUTUxWaWV3U291cmNl
RG9jdW1lbnQqKTsKLQotICAgIHZpcnR1YWwgdm9pZCBpbnNlcnQoY29uc3QgU2VnbWVudGVkU3Ry
aW5nJik7Ci0gICAgdmlydHVhbCB2b2lkIGFwcGVuZChjb25zdCBTZWdtZW50ZWRTdHJpbmcmKTsK
LSAgICB2aXJ0dWFsIHZvaWQgZmluaXNoKCk7Ci0gICAgdmlydHVhbCBib29sIGZpbmlzaFdhc0Nh
bGxlZCgpOwotCi0gICAgaW5saW5lIHZvaWQgY2hlY2tCdWZmZXIoaW50IGxlbiA9IDEwKQotICAg
IHsKLSAgICAgICAgaWYgKChtX2Rlc3QgLSBtX2J1ZmZlcikgPiBtX3NpemUgLSBsZW4pIHsKLSAg
ICAgICAgICAgIC8vIEVubGFyZ2UgYnVmZmVyCi0gICAgICAgICAgICBpbnQgbmV3U2l6ZSA9IHN0
ZDo6bWF4KG1fc2l6ZSAqIDIsIG1fc2l6ZSArIGxlbik7Ci0gICAgICAgICAgICBpbnQgb2xkT2Zm
c2V0ID0gbV9kZXN0IC0gbV9idWZmZXI7Ci0gICAgICAgICAgICBtX2J1ZmZlciA9IHN0YXRpY19j
YXN0PFVDaGFyKj4oZmFzdFJlYWxsb2MobV9idWZmZXIsIG5ld1NpemUgKiBzaXplb2YoVUNoYXIp
KSk7Ci0gICAgICAgICAgICBtX2Rlc3QgPSBtX2J1ZmZlciArIG9sZE9mZnNldDsKLSAgICAgICAg
ICAgIG1fc2l6ZSA9IG5ld1NpemU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAg
RWxlbWVudCogbV9wcmVFbGVtZW50OwotCi0gICAgYm9vbCBtX3NraXBMRjsKLSAgICAKLSAgICBp
bnQgbV9zaXplOwotICAgIFVDaGFyKiBtX2J1ZmZlcjsKLSAgICBVQ2hhciogbV9kZXN0OwotfTsK
LQotVGV4dERvY3VtZW50UGFyc2VyOjpUZXh0RG9jdW1lbnRQYXJzZXIoRG9jdW1lbnQqIGRvY3Vt
ZW50KQotICAgIDogRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlcihkb2N1bWVudCkKLSAgICAsIG1f
cHJlRWxlbWVudCgwKQotICAgICwgbV9za2lwTEYoZmFsc2UpCi17ICAgIAotICAgIC8vIEFsbG9j
YXRlIGJ1ZmZlcgotICAgIG1fc2l6ZSA9IDI1NDsKLSAgICBtX2J1ZmZlciA9IHN0YXRpY19jYXN0
PFVDaGFyKj4oZmFzdE1hbGxvYyhzaXplb2YoVUNoYXIpICogbV9zaXplKSk7Ci0gICAgbV9kZXN0
ID0gbV9idWZmZXI7Ci19ICAgIAotCi1UZXh0RG9jdW1lbnRQYXJzZXI6OlRleHREb2N1bWVudFBh
cnNlcihIVE1MVmlld1NvdXJjZURvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IERlY29kZWREYXRh
RG9jdW1lbnRQYXJzZXIoZG9jdW1lbnQsIHRydWUpCi0gICAgLCBtX3ByZUVsZW1lbnQoMCkKLSAg
ICAsIG1fc2tpcExGKGZhbHNlKQoteyAgICAKLSAgICAvLyBBbGxvY2F0ZSBidWZmZXIKLSAgICBt
X3NpemUgPSAyNTQ7Ci0gICAgbV9idWZmZXIgPSBzdGF0aWNfY2FzdDxVQ2hhcio+KGZhc3RNYWxs
b2Moc2l6ZW9mKFVDaGFyKSAqIG1fc2l6ZSkpOwotICAgIG1fZGVzdCA9IG1fYnVmZmVyOwotfQot
Ci1UZXh0RG9jdW1lbnRQYXJzZXI6On5UZXh0RG9jdW1lbnRQYXJzZXIoKQotewotICAgIC8vIGZp
bmlzaCgpIHNob3VsZCBoYXZlIGJlZW4gY2FsbGVkIHRvIHByZXZlbnQgYW55IGxlYWtzCi0gICAg
QVNTRVJUKCFtX2J1ZmZlcik7Ci19Ci0KLXZvaWQgVGV4dERvY3VtZW50UGFyc2VyOjppbnNlcnQo
Y29uc3QgU2VnbWVudGVkU3RyaW5nJikKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0K
LQotdm9pZCBUZXh0RG9jdW1lbnRQYXJzZXI6OmFwcGVuZChjb25zdCBTZWdtZW50ZWRTdHJpbmcm
IHMpCi17Ci0gICAgRXhjZXB0aW9uQ29kZSBlYzsKLQotICAgIG1fZGVzdCA9IG1fYnVmZmVyOwot
ICAgIAotICAgIFNlZ21lbnRlZFN0cmluZyBzdHIgPSBzOwotICAgIHdoaWxlICghc3RyLmlzRW1w
dHkoKSkgewotICAgICAgICBVQ2hhciBjID0gKnN0cjsKLSAgICAgICAgCi0gICAgICAgIGlmIChj
ID09ICdccicpIHsKLSAgICAgICAgICAgICptX2Rlc3QrKyA9ICdcbic7Ci0gICAgICAgICAgICAK
LSAgICAgICAgICAgIC8vIHBvc3NpYmx5IHNraXAgYW4gTEYgaW4gdGhlIGNhc2Ugb2YgYW4gQ1JM
RiBzZXF1ZW5jZQotICAgICAgICAgICAgbV9za2lwTEYgPSB0cnVlOwotICAgICAgICB9IGVsc2Ug
aWYgKGMgPT0gJ1xuJykgewotICAgICAgICAgICAgaWYgKCFtX3NraXBMRikKLSAgICAgICAgICAg
ICAgICAqbV9kZXN0KysgPSBjOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG1f
c2tpcExGID0gZmFsc2U7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAqbV9kZXN0Kysg
PSBjOwotICAgICAgICAgICAgbV9za2lwTEYgPSBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICAK
LSAgICAgICAgc3RyLmFkdmFuY2UoKTsKLSAgICAgICAgCi0gICAgICAgIC8vIE1heWJlIGVubGFy
Z2UgdGhlIGJ1ZmZlcgotICAgICAgICBjaGVja0J1ZmZlcigpOwotICAgIH0KLQotICAgIGlmICgh
bV9wcmVFbGVtZW50ICYmICFpblZpZXdTb3VyY2VNb2RlKCkpIHsKLSAgICAgICAgUmVmUHRyPEVs
ZW1lbnQ+IHJvb3RFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChodG1sVGFnLCBm
YWxzZSk7Ci0gICAgICAgIGRvY3VtZW50KCktPmFwcGVuZENoaWxkKHJvb3RFbGVtZW50LCBlYyk7
Ci0KLSAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGJvZHkgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVt
ZW50KGJvZHlUYWcsIGZhbHNlKTsKLSAgICAgICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJv
ZHksIGVjKTsKLQotICAgICAgICBSZWZQdHI8RWxlbWVudD4gcHJlRWxlbWVudCA9IGRvY3VtZW50
KCktPmNyZWF0ZUVsZW1lbnQocHJlVGFnLCBmYWxzZSk7Ci0gICAgICAgIHByZUVsZW1lbnQtPnNl
dEF0dHJpYnV0ZSgic3R5bGUiLCAid29yZC13cmFwOiBicmVhay13b3JkOyB3aGl0ZS1zcGFjZTog
cHJlLXdyYXA7IiwgZWMpOwotCi0gICAgICAgIGJvZHktPmFwcGVuZENoaWxkKHByZUVsZW1lbnQs
IGVjKTsKLSAgICAgICAgCi0gICAgICAgIG1fcHJlRWxlbWVudCA9IHByZUVsZW1lbnQuZ2V0KCk7
Ci0gICAgfSAKLSAgICAKLSAgICBTdHJpbmcgc3RyaW5nID0gU3RyaW5nKG1fYnVmZmVyLCBtX2Rl
c3QgLSBtX2J1ZmZlcik7Ci0gICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkgewotICAgICAgICBz
dGF0aWNfY2FzdDxIVE1MVmlld1NvdXJjZURvY3VtZW50Kj4oZG9jdW1lbnQoKSktPmFkZFZpZXdT
b3VyY2VUZXh0KHN0cmluZyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB1bnNpZ25l
ZCBjaGFyc0xlZnQgPSBzdHJpbmcubGVuZ3RoKCk7Ci0gICAgd2hpbGUgKGNoYXJzTGVmdCkgewot
ICAgICAgICAvLyBzcGxpdCBsYXJnZSB0ZXh0IHRvIG5vZGVzIG9mIG1hbmFnZWFibGUgc2l6ZQot
ICAgICAgICBSZWZQdHI8VGV4dD4gdGV4dCA9IFRleHQ6OmNyZWF0ZVdpdGhMZW5ndGhMaW1pdChk
b2N1bWVudCgpLCBzdHJpbmcsIGNoYXJzTGVmdCk7Ci0gICAgICAgIG1fcHJlRWxlbWVudC0+YXBw
ZW5kQ2hpbGQodGV4dCwgZWMpOwotICAgIH0KLX0KLQotdm9pZCBUZXh0RG9jdW1lbnRQYXJzZXI6
OmZpbmlzaCgpCi17Ci0gICAgaWYgKCFtX3ByZUVsZW1lbnQpCi0gICAgICAgIGFwcGVuZChTZWdt
ZW50ZWRTdHJpbmcoKSk7IC8vIENyZWF0ZSBkb2N1bWVudCBzdHJ1Y3R1cmUgZm9yIGFuIGVtcHR5
IHRleHQgZG9jdW1lbnQuCi0gICAgbV9wcmVFbGVtZW50ID0gMDsKLSAgICBmYXN0RnJlZShtX2J1
ZmZlcik7Ci0gICAgbV9idWZmZXIgPSAwOwotICAgIG1fZGVzdCA9IDA7Ci0KLSAgICAvLyBGSVhN
RTogU2hvdWxkIHRoaXMgY2FsbCBmaW5pc2hQYXJzaW5nIGV2ZW4gaWYgbV9wYXJzZXJTdG9wcGVk
IGlzIHRydWU/Ci0gICAgLy8gU2VlIGVxdWl2YWxlbnQgaW1wbGVtZW50YXRpb24gaW4gUmF3RGF0
YURvY3VtZW50UGFyc2VyLgotICAgIGRvY3VtZW50KCktPmZpbmlzaGVkUGFyc2luZygpOwotfQot
Ci1ib29sIFRleHREb2N1bWVudFBhcnNlcjo6ZmluaXNoV2FzQ2FsbGVkKCkKLXsKLSAgICAvLyBm
aW5pc2goKSBhbHdheXMgY2FsbHMgZG9jdW1lbnQoKS0+ZmluaXNoZWRQYXJzaW5nKCkgc28gd2Un
bGwgYmUgZGVsZXRlZAotICAgIC8vIGFmdGVyIGZpbmlzaCgpLgotICAgIHJldHVybiBmYWxzZTsK
LX0KLQogVGV4dERvY3VtZW50OjpUZXh0RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJM
JiB1cmwpCiAgICAgOiBIVE1MRG9jdW1lbnQoZnJhbWUsIHVybCkKIHsKQEAgLTIxMSw5ICs0MSw0
IEBAIFBhc3NSZWZQdHI8RG9jdW1lbnRQYXJzZXI+IFRleHREb2N1bWVudDo6Y3JlYXRlUGFyc2Vy
KCkKICAgICByZXR1cm4gVGV4dERvY3VtZW50UGFyc2VyOjpjcmVhdGUodGhpcyk7CiB9CiAKLVBh
c3NSZWZQdHI8RG9jdW1lbnRQYXJzZXI+IGNyZWF0ZVRleHREb2N1bWVudFBhcnNlcihIVE1MVmll
d1NvdXJjZURvY3VtZW50KiBkb2N1bWVudCkKLXsKLSAgICByZXR1cm4gVGV4dERvY3VtZW50UGFy
c2VyOjpjcmVhdGUoZG9jdW1lbnQpOwotfQotCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRl
ci9UZXh0RG9jdW1lbnQuaCBiL1dlYkNvcmUvbG9hZGVyL1RleHREb2N1bWVudC5oCmluZGV4IGQ1
YmYxNTM5NjBkN2IyMTI2ZWRmYjVjODYwNGI1ZGQzYmZmYjQwNGYuLjJlYTQ5ZjgxYTgwOGU5Njdi
ZjY5NDIwYmZmMDQwYWIwZGViNTBlODIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1RleHRE
b2N1bWVudC5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL1RleHREb2N1bWVudC5oCkBAIC0yOSw4ICsy
OSw2IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSFRNTFZpZXdTb3VyY2VEb2N1
bWVudDsKLQogY2xhc3MgVGV4dERvY3VtZW50IDogcHVibGljIEhUTUxEb2N1bWVudCB7CiBwdWJs
aWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dERvY3VtZW50PiBjcmVhdGUoRnJhbWUqIGZy
YW1lLCBjb25zdCBLVVJMJiB1cmwpCkBAIC00NCw4ICs0Miw2IEBAIHByaXZhdGU6CiAgICAgdmly
dHVhbCBQYXNzUmVmUHRyPERvY3VtZW50UGFyc2VyPiBjcmVhdGVQYXJzZXIoKTsKIH07CiAKLVBh
c3NSZWZQdHI8RG9jdW1lbnRQYXJzZXI+IGNyZWF0ZVRleHREb2N1bWVudFBhcnNlcihIVE1MVmll
d1NvdXJjZURvY3VtZW50Kik7Ci0KIH0KIAotI2VuZGlmIC8vIFRleHREb2N1bWVudF9oCisjZW5k
aWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66789</attachid>
            <date>2010-09-07 16:53:31 -0700</date>
            <delta_ts>2010-09-07 16:57:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-45334-20100907165330.patch</filename>
            <type>text/plain</type>
            <size>26619</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCAyMWQxYjBkYjI4NzA4MWYyZWU3ZjQ2ZTY0MTIxMTU4YTkyZDA4MDlkLi4zMTFlZGU2MDk1Yzgy
ODc2ZTE5NTY2YTZlN2JjMGQ1MDJmZTE5NGM1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0zMDEsNiArMzAxLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJaHRtbC9wYXJzZXIvSFRNTFRva2VuaXpl
ci5jcHAgXAogCWh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAgXAogCWh0bWwvcGFyc2Vy
L0hUTUxWaWV3U291cmNlUGFyc2VyLmNwcCBcCisJaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFy
c2VyLmNwcCBcCiAJXAogCWxvYWRlci9DYWNoZS5jcHAgXAogCWxvYWRlci9DYWNoZWRDU1NTdHls
ZVNoZWV0LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxZDkxNTlmZWE4ZTcxYjk2NDFkZjY1ZjlkYjA1ZTJlZjgz
YWE1NTBhLi45ODE3ZmRkYTlmOWI5ZDdiMDVkYzEzYWZjM2EyODc3NjhhYjE3OTRkIDEwMDY0NAot
LS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTEwNDcsNiArMTA0Nyw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL3BhcnNl
ci9IVE1MVG9rZW5pemVyLmNwcAogICAgIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAK
ICAgICBodG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5jcHAKKyAgICBodG1sL3BhcnNl
ci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwCiAKICAgICBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2Uu
Y3BwCiAgICAgaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkYzRmNzU4MTY4YTY1NWIzMThm
NjgxYTZiODUwNDEzNDk2ODdkYTE4Li4wYmUzNGI1MTliNjBiODIxNzMxODdiMTNmOTM1NzE5OTFi
ZTdjNjQwIDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEwLTA5LTA3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGV4dERvY3VtZW50IHNob3VsZCBjb21lIGluIGZyb20gdGhlIGNvbGQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MzM0CisKKyAgICAgICAgUHJl
dmlvdXNseSwgVGV4dERvY3VtZW50IHJlaW52ZW50ZWQgdGhlIHdoZWVsIHRvIHBhcnNlIHRleHQu
ICBUaGlzCisgICAgICAgIHBhdGNoIHJlcGxhY2VzIFRleHREb2N1bWVudCdzIGhhbmQtcm9sbGVk
IHBhcnNlciB3aXRoIGEgcGFyc2VyIGJ1aWx0IG9uCisgICAgICAgIHRoZSBIVE1MIHBhcnNlciBp
bmZydXN0cnVjdHVyZSwgd2hpY2ggZ2l2ZXMgdXMgdGhhdCBzdHVmZiBmb3IgZnJlZS4gIEkKKyAg
ICAgICAgYWxzbyBkaXNlbnRhbmdsZWQgVGV4dERvY3VtZW50IGZyb20gSFRNTFZpZXdTb3VyY2VE
b2N1bWVudC4KKworICAgICAgICBJbiBhIGZ1dHVyZSBwYXRjaCwgSSdsbCBtb3ZlIFRleHREb2N1
bWVudCBvdXQgb2YgdGhlICJsb2FkZXIiIGRpcmVjdG9yeS4KKworICAgICAgICAqIEFuZHJvaWQu
bWs6CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06
CisgICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAg
ICAqIFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0hUTUxWaWV3U291cmNlRG9j
dW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZXdTb3VyY2VEb2N1bWVudDo6Y3Jl
YXRlUGFyc2VyKToKKyAgICAgICAgKiBodG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6SFRNTFRyZWVCdWlsZGVyOjpjb25zdHJ1Y3RUcmVlRnJvbVRva2VuKToKKyAgICAgICAgKFdl
YkNvcmU6OkhUTUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJlZUZyb21BdG9taWNUb2tlbik6Cisg
ICAgICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmg6CisgICAgICAgICogaHRtbC9w
YXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZp
ZXdTb3VyY2VQYXJzZXI6OmZvcmNlUGxhaW50ZXh0KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9I
VE1MVmlld1NvdXJjZVBhcnNlci5oOgorICAgICAgICAqIGh0bWwvcGFyc2VyL1RleHREb2N1bWVu
dFBhcnNlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dERvY3VtZW50UGFyc2Vy
OjpUZXh0RG9jdW1lbnRQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dERvY3VtZW50UGFy
c2VyOjp+VGV4dERvY3VtZW50UGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHREb2N1bWVu
dFBhcnNlcjo6aW5zZXJ0RmFrZVByZUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL1Rl
eHREb2N1bWVudFBhcnNlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHREb2N1bWVu
dFBhcnNlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBsb2FkZXIvVGV4dERvY3VtZW50LmNwcDoKKyAg
ICAgICAgKiBsb2FkZXIvVGV4dERvY3VtZW50Lmg6CisKIDIwMTAtMDktMDcgIE1hcnRpbiBSb2Jp
bnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFkZCByZW5kZXJpbmcvQ29s
dW1uSW5mby5oIHRvIHRoZSBzb3VyY2VzIGxpc3QuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1h
a2VmaWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCAxZTQ0YWRjZGJiNzk3Yzcx
M2Q0OTg4NzM0OGUwZTA5YjAyZTY1MDBkLi44YzVmYWI4ZTlhYjliZWRiNTY0M2VkMWE1NDBkYjZk
YjE4NWUzYjNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNv
cmUvR05VbWFrZWZpbGUuYW0KQEAgLTE1NjksNiArMTU2OSw4IEBAIHdlYmNvcmVfc291cmNlcyAr
PSBcCiAJV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaCBcCiAJV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5jcHAgXAogCVdlYkNvcmUvaHRtbC9wYXJz
ZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIuaCBcCisJV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9j
dW1lbnRQYXJzZXIuY3BwIFwKKwlXZWJDb3JlL2h0bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNl
ci5oIFwKIAlXZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAgXAogCVdlYkNvcmUvaHRtbC9W
YWxpZGl0eVN0YXRlLmggXAogCVdlYkNvcmUvaHRtbC9Wb2lkQ2FsbGJhY2suaCBcCmRpZmYgLS1n
aXQgYS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDMz
MjFjYmI3ZDRiZjNiNjExZTMzMTk1ZGMyNDIwYTFlOTM3NjMxZmMuLmQ4MWVmZjYxODI4MjA2ZjY0
MTk3NDVjNjdiNDUxNmM4NGZkMWVhMzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBp
CisrKyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xNzc4LDYgKzE3NzgsOCBAQAogICAgICAg
ICAgICAgJ2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oJywKICAgICAgICAgICAgICdodG1s
L3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvcGFy
c2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmgnLAorICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL1Rl
eHREb2N1bWVudFBhcnNlci5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL1RleHREb2N1
bWVudFBhcnNlci5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50Lmgn
LAogICAgICAgICAgICAgJ2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAnLAogICAgICAgICAg
ICAgJ2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2Vi
Q29yZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDc3NWIwN2ViMzVmODAwZjhhOTZh
NmJiOTQ0M2Q5MjM3MmNkNTBkNmYuLmQwMjUyZDMzNTdiM2ExOGMwYzVlOTgzM2IxYmUxZDQ1Mzg4
MDRlOWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJD
b3JlLnBybwpAQCAtNzUxLDYgKzc1MSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGh0bWwvcGFyc2Vy
L0hUTUxUb2tlbml6ZXIuY3BwIFwKICAgICBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3Bw
IFwKICAgICBodG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5jcHAgXAorICAgIGh0bWwv
cGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAgXAogICAgIGluc3BlY3Rvci9Db25zb2xlTWVz
c2FnZS5jcHAgXAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAgXAogICAgIGluc3Bl
Y3Rvci9JbmplY3RlZFNjcmlwdEhvc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUu
dmNwcm9qCmluZGV4IGYzZTQ5ZjVkM2QxZWVlZTk1MGQ0Y2QyMDJkOGZiZTJjNjY5OGQ0ZGUuLjdl
ZGUyYmNhMTUzMWU1MzU5YzE0MGI0Y2YwNDhiZDNlYmY3ZTZjYzAgMTAwNjQ0Ci0tLSBhL1dlYkNv
cmUvV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZj
cHJvai9XZWJDb3JlLnZjcHJvagpAQCAtNDE5MTUsNiArNDE5MTUsMTQgQEAKICAgICAgICAgICAg
ICAgICAgICAgUmVsYXRpdmVQYXRoPSIuLlxodG1sXHBhcnNlclxIVE1MVmlld1NvdXJjZVBhcnNl
ci5oIg0KICAgICAgICAgICAgICAgICAgICAgPg0KICAgICAgICAgICAgICAgICA8L0ZpbGU+DQor
ICAgICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxhdGl2ZVBhdGg9
Ii4uXGh0bWxccGFyc2VyXFRleHREb2N1bWVudFBhcnNlci5jcHAiDQorICAgICAgICAgICAgICAg
ICAgICA+DQorICAgICAgICAgICAgICAgIDwvRmlsZT4NCisgICAgICAgICAgICAgICAgPEZpbGUN
CisgICAgICAgICAgICAgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5caHRtbFxwYXJzZXJcVGV4dERv
Y3VtZW50UGFyc2VyLmgiDQorICAgICAgICAgICAgICAgICAgICA+DQorICAgICAgICAgICAgICAg
IDwvRmlsZT4NCiAgICAgICAgICAgICA8L0ZpbHRlcj4NCiAJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2
ZVBhdGg9Ii4uXGh0bWxcU3RlcFJhbmdlLmNwcCINCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDE1Y2MwNmNiNGQzZWU1ZDY4MzQzMzkwY2Y0ODY3NDE5Njk5
ZTFjZTcuLjJkMWRjYTM3N2Q3YTUxZTI2YTc3MzAxZjRiYmFhMDlmNzBkMjAwNWMgMTAwNjQ0Ci0t
LSBhL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNzg1LDYgKzI3ODUsOCBA
QAogCQk5NzdCMzg3QTEyMjg4M0U5MDBCODFGRjggLyogSFRNTFZpZXdTb3VyY2VQYXJzZXIuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3N0IzODYxMTIy
ODgzRTkwMEI4MUZGOCAvKiBIVE1MVmlld1NvdXJjZVBhcnNlci5oICovOyB9OwogCQk5NzlGNDNE
MzEwNzVFNDRBMDAwMEY4M0IgLyogUmVkaXJlY3RTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc5RjQzRDExMDc1RTQ0QTAwMDBGODNC
IC8qIFJlZGlyZWN0U2NoZWR1bGVyLmNwcCAqLzsgfTsKIAkJOTc5RjQzRDQxMDc1RTQ0QTAwMDBG
ODNCIC8qIFJlZGlyZWN0U2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA5NzlGNDNEMjEwNzVFNDRBMDAwMEY4M0IgLyogUmVkaXJlY3RTY2hl
ZHVsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owor
CQk5N0JDODQ4MzEyMzZGRDkzMDAwQzYxNjEgLyogVGV4dERvY3VtZW50UGFyc2VyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3QkM4NDgxMTIzNkZE
OTMwMDBDNjE2MSAvKiBUZXh0RG9jdW1lbnRQYXJzZXIuY3BwICovOyB9OworCQk5N0JDODQ4NDEy
MzZGRDkzMDAwQzYxNjEgLyogVGV4dERvY3VtZW50UGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5N0JDODQ4MjEyMzZGRDkzMDAwQzYxNjEgLyog
VGV4dERvY3VtZW50UGFyc2VyLmggKi87IH07CiAJCTk3QzA3ODUwMTE2NUQ1QkUwMDNBMzJFRiAv
KiBTdWZmaXhUcmVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5N0MwNzg0RjExNjVENUJFMDAzQTMyRUYgLyogU3VmZml4VHJlZS5oICovOyB9OwogCQk5
N0RDRTIwMTEwODA3Qzc1MDA1N0QzOTQgLyogSGlzdG9yeUNvbnRyb2xsZXIuY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTdEQ0UxRkYxMDgwN0M3NTAw
NTdEMzk0IC8qIEhpc3RvcnlDb250cm9sbGVyLmNwcCAqLzsgfTsKIAkJOTdEQ0UyMDIxMDgwN0M3
NTAwNTdEMzk0IC8qIEhpc3RvcnlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5N0RDRTIwMDEwODA3Qzc1MDA1N0QzOTQgLyogSGlzdG9y
eUNvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwpAQCAtODY1MSw2ICs4NjUzLDggQEAKIAkJOTc3QjM4NjExMjI4ODNFOTAwQjgxRkY4IC8q
IEhUTUxWaWV3U291cmNlUGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IEhUTUxWaWV3U291cmNlUGFyc2VyLmg7IHBhdGggPSBwYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJz
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc5RjQzRDExMDc1RTQ0QTAwMDBG
ODNCIC8qIFJlZGlyZWN0U2NoZWR1bGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFJlZGlyZWN0U2NoZWR1bGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTc5RjQzRDIxMDc1RTQ0QTAwMDBGODNCIC8qIFJlZGlyZWN0U2NoZWR1bGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZGlyZWN0U2NoZWR1bGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3QkM4NDgxMTIzNkZEOTMwMDBDNjE2MSAvKiBUZXh0
RG9jdW1lbnRQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0g
VGV4dERvY3VtZW50UGFyc2VyLmNwcDsgcGF0aCA9IHBhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5N0JDODQ4MjEyMzZGRDkzMDAwQzYx
NjEgLyogVGV4dERvY3VtZW50UGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFt
ZSA9IFRleHREb2N1bWVudFBhcnNlci5oOyBwYXRoID0gcGFyc2VyL1RleHREb2N1bWVudFBhcnNl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5N0MwNzg0RjExNjVENUJFMDAzQTMy
RUYgLyogU3VmZml4VHJlZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdWZm
aXhUcmVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3QzFGNTUyMTIyODU1Q0Iw
MEVERTYxNiAvKiBIVE1MVG9rZW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0g
SFRNTFRva2VuLmg7IHBhdGggPSBwYXJzZXIvSFRNTFRva2VuLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTk3RENFMUZGMTA4MDdDNzUwMDU3RDM5NCAvKiBIaXN0b3J5Q29udHJvbGxl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaXN0b3J5Q29udHJv
bGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDQzMiw2ICsxNDQzNiw4
IEBACiAJCQkJOTc3QjM3MjIxMjI4NzIxNzAwQjgxRkY4IC8qIEhUTUxUcmVlQnVpbGRlci5oICov
LAogCQkJCTk3N0IzODYwMTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MVmlld1NvdXJjZVBhcnNlci5j
cHAgKi8sCiAJCQkJOTc3QjM4NjExMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxWaWV3U291cmNlUGFy
c2VyLmggKi8sCisJCQkJOTdCQzg0ODExMjM2RkQ5MzAwMEM2MTYxIC8qIFRleHREb2N1bWVudFBh
cnNlci5jcHAgKi8sCisJCQkJOTdCQzg0ODIxMjM2RkQ5MzAwMEM2MTYxIC8qIFRleHREb2N1bWVu
dFBhcnNlci5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBwYXJzZXI7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwpAQCAtMjA0MzYsNiArMjA0NDIsNyBAQAogCQkJCTg5ODc4NUYxMTIyRTFFODcw
MDNBQUJEQSAvKiBKU0ZpbGVFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTg5ODc4NUY1
MTIyRTFFQUMwMDNBQUJEQSAvKiBKU0ZpbGVSZWFkZXJTeW5jLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQ0RENDU0RTEyMzZDOTVDMDA5QTc5ODUgLyogQ29sdW1uSW5mby5oIGluIEhlYWRlcnMgKi8s
CisJCQkJOTdCQzg0ODQxMjM2RkQ5MzAwMEM2MTYxIC8qIFRleHREb2N1bWVudFBhcnNlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2lu
ZyA9IDA7CiAJCX07CkBAIC0yMjg5OSw2ICsyMjkwNiw3IEBACiAJCQkJODk4Nzg1QjgxMjJDQTJB
NzAwM0FBQkRBIC8qIEpTTWV0YWRhdGFDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4
OTg3ODVGMDEyMkUxRTg3MDAzQUFCREEgLyogSlNGaWxlRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCTg5ODc4NUY0MTIyRTFFQUMwMDNBQUJEQSAvKiBKU0ZpbGVSZWFkZXJTeW5jLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTk3QkM4NDgzMTIzNkZEOTMwMDBDNjE2MSAvKiBUZXh0RG9j
dW1lbnRQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxv
eW1lbnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
SFRNTFZpZXdTb3VyY2VEb2N1bWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTFZpZXdTb3VyY2VE
b2N1bWVudC5jcHAKaW5kZXggMzI5OWIyNzRhNTczZmYyOGNlMzhhMWM0ZDZiZjRjYmE3ZDhhZTY1
MC4uY2FkODEzNGI0MjIzOWMxY2IwMGEwM2FhYWE2N2JlZDk1NDBjOWY3ZiAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9odG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRt
bC9IVE1MVmlld1NvdXJjZURvY3VtZW50LmNwcApAQCAtNTgsMTUgKzU4LDE3IEBAIEhUTUxWaWV3
U291cmNlRG9jdW1lbnQ6OkhUTUxWaWV3U291cmNlRG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25z
dCBLVVJMJiB1cmwsIGNvCiAKIFBhc3NSZWZQdHI8RG9jdW1lbnRQYXJzZXI+IEhUTUxWaWV3U291
cmNlRG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcigpCiB7CisgICAgUmVmUHRyPEhUTUxWaWV3U291cmNl
UGFyc2VyPiBwYXJzZXIgPSBIVE1MVmlld1NvdXJjZVBhcnNlcjo6Y3JlYXRlKHRoaXMpOwogICAg
IC8vIFVzZSBIVE1MRG9jdW1lbnRQYXJzZXIgaWYgYXBwbGljYWJsZSwgb3RoZXJ3aXNlIHVzZSBU
ZXh0RG9jdW1lbnRQYXJzZXIuCiAgICAgaWYgKG1fdHlwZSA9PSAidGV4dC9odG1sIiB8fCBtX3R5
cGUgPT0gImFwcGxpY2F0aW9uL3hodG1sK3htbCIgfHwgbV90eXBlID09ICJpbWFnZS9zdmcreG1s
IiB8fCBET01JbXBsZW1lbnRhdGlvbjo6aXNYTUxNSU1FVHlwZShtX3R5cGUpCiAjaWYgRU5BQkxF
KFhIVE1MTVApCiAgICAgICAgIHx8IG1fdHlwZSA9PSAiYXBwbGljYXRpb24vdm5kLndhcC54aHRt
bCt4bWwiCiAjZW5kaWYKICAgICAgICAgKQotICAgICAgICByZXR1cm4gSFRNTFZpZXdTb3VyY2VQ
YXJzZXI6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgcmV0dXJuIHBhcnNlci5yZWxlYXNlKCk7CiAK
LSAgICByZXR1cm4gY3JlYXRlVGV4dERvY3VtZW50UGFyc2VyKHRoaXMpOworICAgIHBhcnNlci0+
Zm9yY2VQbGFpbnRleHQoKTsKKyAgICByZXR1cm4gcGFyc2VyLnJlbGVhc2UoKTsKIH0KIAogdm9p
ZCBIVE1MVmlld1NvdXJjZURvY3VtZW50OjpjcmVhdGVDb250YWluaW5nVGFibGUoKQpAQCAtOTYs
MTMgKzk4LDYgQEAgdm9pZCBIVE1MVmlld1NvdXJjZURvY3VtZW50OjpjcmVhdGVDb250YWluaW5n
VGFibGUoKQogICAgIG1fY3VycmVudCA9IG1fdGJvZHk7CiB9CiAKLXZvaWQgSFRNTFZpZXdTb3Vy
Y2VEb2N1bWVudDo6YWRkVmlld1NvdXJjZVRleHQoY29uc3QgU3RyaW5nJiB0ZXh0KQotewotICAg
IGlmICghbV9jdXJyZW50KQotICAgICAgICBjcmVhdGVDb250YWluaW5nVGFibGUoKTsKLSAgICBh
ZGRUZXh0KHRleHQsICIiKTsKLX0KLQogdm9pZCBIVE1MVmlld1NvdXJjZURvY3VtZW50OjphZGRT
b3VyY2UoY29uc3QgU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiB7CiAgICAgaWYg
KCFtX2N1cnJlbnQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFZpZXdTb3VyY2VEb2N1
bWVudC5oIGIvV2ViQ29yZS9odG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuaAppbmRleCA0NDVj
OTViYjFkNGY1OWY1M2JlMGJiODliZjk0MDQxYTQwMWYyNThiLi4zMGU0ZGYzYTMwYWZmYjI4ZmFm
MDZjZGIyM2UxZmQwN2Y5ODQwN2FkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFZpZXdT
b3VyY2VEb2N1bWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVmlld1NvdXJjZURvY3VtZW50
LmgKQEAgLTQyLDkgKzQyLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBhZGRTb3VyY2UoY29uc3Qg
U3RyaW5nJiwgSFRNTFRva2VuJik7CiAKLSAgICB2b2lkIGFkZFZpZXdTb3VyY2VUb2tlbihIVE1M
VG9rZW4mKTsgLy8gVXNlZCBieSB0aGUgSFRNTERvY3VtZW50UGFyc2VyLgotICAgIHZvaWQgYWRk
Vmlld1NvdXJjZVRleHQoY29uc3QgU3RyaW5nJik7IC8vIFVzZWQgYnkgdGhlIFRleHREb2N1bWVu
dFBhcnNlci4KLQogcHJpdmF0ZToKICAgICBIVE1MVmlld1NvdXJjZURvY3VtZW50KEZyYW1lKiwg
Y29uc3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwogCmRpZmYgLS1naXQgYS9XZWJD
b3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oIGIvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MRG9jdW1lbnRQYXJzZXIuaAppbmRleCAwZTUwOGRhN2JjZTNiYTIwOWZlZDY0M2RlZDlh
Yjk1NWFmMmViYzk1Li43NmUyZTNkN2Y0NWIwMDhkMzM1NjBhNzUwZmZiMzI0MjIyMzU5OTliIDEw
MDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCisrKyBi
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmgKQEAgLTc0LDYgKzc0LDkg
QEAgcHJvdGVjdGVkOgogICAgIEhUTUxEb2N1bWVudFBhcnNlcihIVE1MRG9jdW1lbnQqLCBib29s
IHJlcG9ydEVycm9ycyk7CiAgICAgSFRNTERvY3VtZW50UGFyc2VyKERvY3VtZW50RnJhZ21lbnQq
LCBFbGVtZW50KiBjb250ZXh0RWxlbWVudCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsK
IAorICAgIEhUTUxUb2tlbml6ZXIqIHRva2VuaXplcigpIGNvbnN0IHsgcmV0dXJuIG1fdG9rZW5p
emVyLmdldCgpOyB9CisgICAgSFRNTFRyZWVCdWlsZGVyKiB0cmVlQnVpbGRlcigpIGNvbnN0IHsg
cmV0dXJuIG1fdHJlZUJ1aWxkZXIuZ2V0KCk7IH0KKwogcHJpdmF0ZToKICAgICAvLyBEb2N1bWVu
dFBhcnNlcgogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUv
aHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFRyZWVCdWlsZGVyLmNwcAppbmRleCA4Yzc2ZmMwMDQ1NTA5ZmQ2ZDQ4NTUzMDI2MmE3OGQyNGU3
ZDFjYTUzLi40MDZiYjZjOWI4Nzk2MjJlODZmZjFjZmNiZDFiMjY5OTY4NDU1ZmFiIDEwMDY0NAot
LS0gYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKKysrIGIvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCkBAIC00NjMsNiArNDYzLDExIEBAIEhU
TUxUb2tlbml6ZXI6OlN0YXRlIEhUTUxUcmVlQnVpbGRlcjo6YWRqdXN0ZWRMZXhlclN0YXRlKEhU
TUxUb2tlbml6ZXI6OlN0YXRlIHN0CiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJl
ZUZyb21Ub2tlbihIVE1MVG9rZW4mIHJhd1Rva2VuKQogewogICAgIEF0b21pY0hUTUxUb2tlbiB0
b2tlbihyYXdUb2tlbik7CisgICAgY29uc3RydWN0VHJlZUZyb21BdG9taWNUb2tlbih0b2tlbik7
Cit9CisKK3ZvaWQgSFRNTFRyZWVCdWlsZGVyOjpjb25zdHJ1Y3RUcmVlRnJvbUF0b21pY1Rva2Vu
KEF0b21pY0hUTUxUb2tlbiYgdG9rZW4pCit7CiAgICAgcHJvY2Vzc1Rva2VuKHRva2VuKTsKIAog
ICAgIC8vIFN3YWxsb3dpbmcgVSswMDAwIGNoYXJhY3RlcnMgaXNuJ3QgaW4gdGhlIEhUTUw1IHNw
ZWMsIGJ1dCB0dXJuaW5nIGFsbApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1M
VHJlZUJ1aWxkZXIuaCBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKaW5k
ZXggYzMwZTZiOGRjODk5OGYyOGMwZGFiNjVlZWUyNTQzMjBiYmU4YmNlNS4uNDYzNGYwYTU4YTQw
Y2E5MzFkNjFhNjAzZGMzOTM1ZThjNGQ0YjI3NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL3Bh
cnNlci9IVE1MVHJlZUJ1aWxkZXIuaAorKysgYi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVl
QnVpbGRlci5oCkBAIC02OCw2ICs2OCw4IEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZSB0b2tlbiBy
ZWFsbHkgc2hvdWxkIGJlIHBhc3NlZCBhcyBhIGNvbnN0JiBzaW5jZSBpdCdzIG5ldmVyIG1vZGlm
aWVkLgogICAgIHZvaWQgY29uc3RydWN0VHJlZUZyb21Ub2tlbihIVE1MVG9rZW4mKTsKKyAgICB2
b2lkIGNvbnN0cnVjdFRyZWVGcm9tQXRvbWljVG9rZW4oQXRvbWljSFRNTFRva2VuJik7CisKICAg
ICAvLyBNdXN0IGJlIGNhbGxlZCB3aGVuIHBhcnNlciBpcyBwYXVzZWQgYmVmb3JlIGNhbGxpbmcg
dGhlIHBhcnNlciBhZ2Fpbi4KICAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IHRha2VTY3JpcHRUb1By
b2Nlc3MoaW50JiBzY3JpcHRTdGFydExpbmUpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwv
cGFyc2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmNwcCBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRN
TFZpZXdTb3VyY2VQYXJzZXIuY3BwCmluZGV4IDhhNzk4NGRjOGVjYjEzZjNjN2NmMDQ2MjZhNWQ3
ZTFlYTUwNTE5MmQuLjRhYWM5NTUwYzY5YjlhNTNlZjc5Y2E5OWRiZDg2MDVmMTA2ODBkNjMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIuY3BwCisr
KyBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIuY3BwCkBAIC00Miw2
ICs0MiwxMSBAQCBIVE1MVmlld1NvdXJjZVBhcnNlcjo6fkhUTUxWaWV3U291cmNlUGFyc2VyKCkK
IHsKIH0KIAordm9pZCBIVE1MVmlld1NvdXJjZVBhcnNlcjo6Zm9yY2VQbGFpbnRleHQoKQorewor
ICAgIG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVyOjpQTEFJTlRFWFRTdGF0ZSk7
Cit9CisKIHZvaWQgSFRNTFZpZXdTb3VyY2VQYXJzZXI6Omluc2VydChjb25zdCBTZWdtZW50ZWRT
dHJpbmcmKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9odG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5oIGIvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MVmlld1NvdXJjZVBhcnNlci5oCmluZGV4IDM0Y2FmNDNmOWM0MWYzMGQwOGY0YmFjZmZi
MTBkMGRjYjQ2M2NlNDQuLjI4ZjA1ZWNiZjNlZTc1ZTkyODBkNWYxMWRmMGIzOTU4OTYwNjAyOWMg
MTAwNjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIuaAor
KysgYi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmgKQEAgLTUwLDYg
KzUwLDggQEAgcHVibGljOgogICAgIH0KICAgICB2aXJ0dWFsIH5IVE1MVmlld1NvdXJjZVBhcnNl
cigpOwogCisgICAgdm9pZCBmb3JjZVBsYWludGV4dCgpOworCiBwcml2YXRlOgogICAgIEhUTUxW
aWV3U291cmNlUGFyc2VyKEhUTUxWaWV3U291cmNlRG9jdW1lbnQqKTsKIApkaWZmIC0tZ2l0IGEv
V2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwIGIvV2ViQ29yZS9odG1s
L3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc4MjI1MzA1YmM2ZDMy
MmViNDc1YzY4ZmI2MTE0YjYwNjQ2ZmVkMTUKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0
bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAKQEAgLTAsMCArMSw2NCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIs
IElOQy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwg
SU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiVGV4dERvY3VtZW50UGFyc2VyLmgiCisKKyNpbmNsdWRlICJI
VE1MRG9jdW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MVG9r
ZW5pemVyLmgiCisjaW5jbHVkZSAiSFRNTFRyZWVCdWlsZGVyLmgiCisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworVGV4dERvY3VtZW50UGFyc2Vy
OjpUZXh0RG9jdW1lbnRQYXJzZXIoSFRNTERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IEhUTUxE
b2N1bWVudFBhcnNlcihkb2N1bWVudCwgZmFsc2UpCit7CisgICAgdG9rZW5pemVyKCktPnNldFN0
YXRlKEhUTUxUb2tlbml6ZXI6OlBMQUlOVEVYVFN0YXRlKTsKKyAgICBpbnNlcnRGYWtlUHJlRWxl
bWVudCgpOworfQorCitUZXh0RG9jdW1lbnRQYXJzZXI6On5UZXh0RG9jdW1lbnRQYXJzZXIoKQor
eworfQorCit2b2lkIFRleHREb2N1bWVudFBhcnNlcjo6aW5zZXJ0RmFrZVByZUVsZW1lbnQoKQor
eworICAgIC8vIEluIHByaW5jaXBsZSwgd2Ugc2hvdWxkIGNyZWF0ZSBhIHNwZWNpYWxpemVkIHRy
ZWUgYnVpbGRlciBmb3IKKyAgICAvLyBUZXh0RG9jdW1lbnRzLCBidXQgaW5zdGVhZCB3ZSByZS11
c2UgdGhlIGV4aXN0aW5nIEhUTUxUcmVlQnVpbGRlci4KKyAgICAvLyBXZSBjcmVhdGUgYSBmYWtl
IHRva2VuIGFuZCBnaXZlIGl0IHRvIHRoZSB0cmVlIGJ1aWxkZXIgcmF0aGVyIHRoYW4KKyAgICAv
LyBzZW5kaW5nIGZha2UgYnl0ZXMgdGhyb3VnaCB0aGUgZnJvbnQtZW5kIG9mIHRoZSBwYXJzZXIg
dG8gYXZvaWQKKyAgICAvLyBkaXN0cnViaW5nIHRoZSBsaW5lL2NvbHVtbiBudW1iZXIgY2FsY3Vs
YXRpb25zLgorCisgICAgUmVmUHRyPEF0dHJpYnV0ZT4gc3R5bGVBdHRyaWJ1dGUgPSBBdHRyaWJ1
dGU6OmNyZWF0ZU1hcHBlZCgic3R5bGUiLCAid29yZC13cmFwOiBicmVhay13b3JkOyB3aGl0ZS1z
cGFjZTogcHJlLXdyYXA7Iik7CisgICAgUmVmUHRyPE5hbWVkTm9kZU1hcD4gYXR0cmlidXRlcyA9
IE5hbWVkTm9kZU1hcDo6Y3JlYXRlKCk7CisgICAgYXR0cmlidXRlcy0+aW5zZXJ0QXR0cmlidXRl
KHN0eWxlQXR0cmlidXRlLnJlbGVhc2UoKSwgZmFsc2UpOworICAgIEF0b21pY0hUTUxUb2tlbiBm
YWtlUHJlKEhUTUxUb2tlbjo6U3RhcnRUYWcsIHByZVRhZy5sb2NhbE5hbWUoKSwgYXR0cmlidXRl
cy5yZWxlYXNlKCkpOworCisgICAgdHJlZUJ1aWxkZXIoKS0+Y29uc3RydWN0VHJlZUZyb21BdG9t
aWNUb2tlbihmYWtlUHJlKTsKK30KKworfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL3BhcnNl
ci9UZXh0RG9jdW1lbnRQYXJzZXIuaCBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50
UGFyc2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNDZmZGQ1MGZkMGRkOGExM2ExYjRlMWVkYTk0YWVjYTE1YWE0
Yzc4NQotLS0gL2Rldi9udWxsCisrKyBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50
UGFyc2VyLmgKQEAgLTAsMCArMSw0OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMCBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
KyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgorICogQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
CisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQor
ICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisKKyNpZm5kZWYgVGV4dERvY3VtZW50UGFyc2VyX2gKKyNk
ZWZpbmUgVGV4dERvY3VtZW50UGFyc2VyX2gKKworI2luY2x1ZGUgIkhUTUxEb2N1bWVudFBhcnNl
ci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFRleHREb2N1bWVudFBhcnNlciA6
IHB1YmxpYyBIVE1MRG9jdW1lbnRQYXJzZXIgeworcHVibGljOgorICAgIHN0YXRpYyBQYXNzUmVm
UHRyPFRleHREb2N1bWVudFBhcnNlcj4gY3JlYXRlKEhUTUxEb2N1bWVudCogZG9jdW1lbnQpCisg
ICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFRleHREb2N1bWVudFBhcnNlcihkb2N1
bWVudCkpOworICAgIH0KKyAgICB2aXJ0dWFsIH5UZXh0RG9jdW1lbnRQYXJzZXIoKTsKKworcHJp
dmF0ZToKKyAgICBleHBsaWNpdCBUZXh0RG9jdW1lbnRQYXJzZXIoSFRNTERvY3VtZW50Kik7CisK
KyAgICB2b2lkIGluc2VydEZha2VQcmVFbGVtZW50KCk7Cit9OworCit9CisKKyNlbmRpZgpkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9sb2FkZXIvVGV4dERvY3VtZW50LmNwcCBiL1dlYkNvcmUvbG9hZGVy
L1RleHREb2N1bWVudC5jcHAKaW5kZXggNGIwOWE5ZWRiMTY2Y2YxOTIyZWI3MmYwYmYwNDIzMGU3
NDU2ZWMxZC4uOTMzNGEzOTdiZWRmMjljNzZlMjNjY2FjNTBjYzJmMWU5NzljZGE1ZCAxMDA2NDQK
LS0tIGEvV2ViQ29yZS9sb2FkZXIvVGV4dERvY3VtZW50LmNwcAorKysgYi9XZWJDb3JlL2xvYWRl
ci9UZXh0RG9jdW1lbnQuY3BwCkBAIC0xOSwxODYgKzE5LDE2IEBACiAgKiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCiAg
KiBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKICAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4gCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgog
ICovCiAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJUZXh0RG9jdW1lbnQuaCIKIAot
I2luY2x1ZGUgIkRlY29kZWREYXRhRG9jdW1lbnRQYXJzZXIuaCIKLSNpbmNsdWRlICJFbGVtZW50
LmgiCi0jaW5jbHVkZSAiSFRNTE5hbWVzLmgiCi0jaW5jbHVkZSAiSFRNTFZpZXdTb3VyY2VEb2N1
bWVudC5oIgotI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgotI2luY2x1ZGUgIlRleHQuaCIK
LQotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKKyNpbmNsdWRlICJUZXh0RG9jdW1lbnRQYXJzZXIuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi11c2luZyBuYW1lc3BhY2UgSFRNTE5hbWVzOwotCi0v
LyBGSVhNRTogVGV4dERvY3VtZW50UGFyc2VyIGNvdWxkIGp1c3QgYmUgYW4gSFRNTERvY3VtZW50
UGFyc2VyCi0vLyB3aGljaCBzdGFydGVkIHRoZSBUb2tlbml6ZXIgaW4gdGhlIFBsYWluVGV4dCBz
dGF0ZS4KLWNsYXNzIFRleHREb2N1bWVudFBhcnNlciA6IHB1YmxpYyBEZWNvZGVkRGF0YURvY3Vt
ZW50UGFyc2VyIHsKLXB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0RG9jdW1lbnRQ
YXJzZXI+IGNyZWF0ZShEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgewotICAgICAgICByZXR1cm4g
YWRvcHRSZWYobmV3IFRleHREb2N1bWVudFBhcnNlcihkb2N1bWVudCkpOwotICAgIH0KLQotICAg
IHN0YXRpYyBQYXNzUmVmUHRyPFRleHREb2N1bWVudFBhcnNlcj4gY3JlYXRlKEhUTUxWaWV3U291
cmNlRG9jdW1lbnQqIGRvY3VtZW50KQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKG5l
dyBUZXh0RG9jdW1lbnRQYXJzZXIoZG9jdW1lbnQpKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIH5U
ZXh0RG9jdW1lbnRQYXJzZXIoKTsKLSAgICAKLXByaXZhdGU6Ci0gICAgVGV4dERvY3VtZW50UGFy
c2VyKERvY3VtZW50Kik7Ci0gICAgVGV4dERvY3VtZW50UGFyc2VyKEhUTUxWaWV3U291cmNlRG9j
dW1lbnQqKTsKLQotICAgIHZpcnR1YWwgdm9pZCBpbnNlcnQoY29uc3QgU2VnbWVudGVkU3RyaW5n
Jik7Ci0gICAgdmlydHVhbCB2b2lkIGFwcGVuZChjb25zdCBTZWdtZW50ZWRTdHJpbmcmKTsKLSAg
ICB2aXJ0dWFsIHZvaWQgZmluaXNoKCk7Ci0gICAgdmlydHVhbCBib29sIGZpbmlzaFdhc0NhbGxl
ZCgpOwotCi0gICAgaW5saW5lIHZvaWQgY2hlY2tCdWZmZXIoaW50IGxlbiA9IDEwKQotICAgIHsK
LSAgICAgICAgaWYgKChtX2Rlc3QgLSBtX2J1ZmZlcikgPiBtX3NpemUgLSBsZW4pIHsKLSAgICAg
ICAgICAgIC8vIEVubGFyZ2UgYnVmZmVyCi0gICAgICAgICAgICBpbnQgbmV3U2l6ZSA9IHN0ZDo6
bWF4KG1fc2l6ZSAqIDIsIG1fc2l6ZSArIGxlbik7Ci0gICAgICAgICAgICBpbnQgb2xkT2Zmc2V0
ID0gbV9kZXN0IC0gbV9idWZmZXI7Ci0gICAgICAgICAgICBtX2J1ZmZlciA9IHN0YXRpY19jYXN0
PFVDaGFyKj4oZmFzdFJlYWxsb2MobV9idWZmZXIsIG5ld1NpemUgKiBzaXplb2YoVUNoYXIpKSk7
Ci0gICAgICAgICAgICBtX2Rlc3QgPSBtX2J1ZmZlciArIG9sZE9mZnNldDsKLSAgICAgICAgICAg
IG1fc2l6ZSA9IG5ld1NpemU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgRWxl
bWVudCogbV9wcmVFbGVtZW50OwotCi0gICAgYm9vbCBtX3NraXBMRjsKLSAgICAKLSAgICBpbnQg
bV9zaXplOwotICAgIFVDaGFyKiBtX2J1ZmZlcjsKLSAgICBVQ2hhciogbV9kZXN0OwotfTsKLQot
VGV4dERvY3VtZW50UGFyc2VyOjpUZXh0RG9jdW1lbnRQYXJzZXIoRG9jdW1lbnQqIGRvY3VtZW50
KQotICAgIDogRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlcihkb2N1bWVudCkKLSAgICAsIG1fcHJl
RWxlbWVudCgwKQotICAgICwgbV9za2lwTEYoZmFsc2UpCi17ICAgIAotICAgIC8vIEFsbG9jYXRl
IGJ1ZmZlcgotICAgIG1fc2l6ZSA9IDI1NDsKLSAgICBtX2J1ZmZlciA9IHN0YXRpY19jYXN0PFVD
aGFyKj4oZmFzdE1hbGxvYyhzaXplb2YoVUNoYXIpICogbV9zaXplKSk7Ci0gICAgbV9kZXN0ID0g
bV9idWZmZXI7Ci19ICAgIAotCi1UZXh0RG9jdW1lbnRQYXJzZXI6OlRleHREb2N1bWVudFBhcnNl
cihIVE1MVmlld1NvdXJjZURvY3VtZW50KiBkb2N1bWVudCkKLSAgICA6IERlY29kZWREYXRhRG9j
dW1lbnRQYXJzZXIoZG9jdW1lbnQsIHRydWUpCi0gICAgLCBtX3ByZUVsZW1lbnQoMCkKLSAgICAs
IG1fc2tpcExGKGZhbHNlKQoteyAgICAKLSAgICAvLyBBbGxvY2F0ZSBidWZmZXIKLSAgICBtX3Np
emUgPSAyNTQ7Ci0gICAgbV9idWZmZXIgPSBzdGF0aWNfY2FzdDxVQ2hhcio+KGZhc3RNYWxsb2Mo
c2l6ZW9mKFVDaGFyKSAqIG1fc2l6ZSkpOwotICAgIG1fZGVzdCA9IG1fYnVmZmVyOwotfQotCi1U
ZXh0RG9jdW1lbnRQYXJzZXI6On5UZXh0RG9jdW1lbnRQYXJzZXIoKQotewotICAgIC8vIGZpbmlz
aCgpIHNob3VsZCBoYXZlIGJlZW4gY2FsbGVkIHRvIHByZXZlbnQgYW55IGxlYWtzCi0gICAgQVNT
RVJUKCFtX2J1ZmZlcik7Ci19Ci0KLXZvaWQgVGV4dERvY3VtZW50UGFyc2VyOjppbnNlcnQoY29u
c3QgU2VnbWVudGVkU3RyaW5nJikKLXsKLSAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLX0KLQot
dm9pZCBUZXh0RG9jdW1lbnRQYXJzZXI6OmFwcGVuZChjb25zdCBTZWdtZW50ZWRTdHJpbmcmIHMp
Ci17Ci0gICAgRXhjZXB0aW9uQ29kZSBlYzsKLQotICAgIG1fZGVzdCA9IG1fYnVmZmVyOwotICAg
IAotICAgIFNlZ21lbnRlZFN0cmluZyBzdHIgPSBzOwotICAgIHdoaWxlICghc3RyLmlzRW1wdHko
KSkgewotICAgICAgICBVQ2hhciBjID0gKnN0cjsKLSAgICAgICAgCi0gICAgICAgIGlmIChjID09
ICdccicpIHsKLSAgICAgICAgICAgICptX2Rlc3QrKyA9ICdcbic7Ci0gICAgICAgICAgICAKLSAg
ICAgICAgICAgIC8vIHBvc3NpYmx5IHNraXAgYW4gTEYgaW4gdGhlIGNhc2Ugb2YgYW4gQ1JMRiBz
ZXF1ZW5jZQotICAgICAgICAgICAgbV9za2lwTEYgPSB0cnVlOwotICAgICAgICB9IGVsc2UgaWYg
KGMgPT0gJ1xuJykgewotICAgICAgICAgICAgaWYgKCFtX3NraXBMRikKLSAgICAgICAgICAgICAg
ICAqbV9kZXN0KysgPSBjOwotICAgICAgICAgICAgZWxzZQotICAgICAgICAgICAgICAgIG1fc2tp
cExGID0gZmFsc2U7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICAqbV9kZXN0KysgPSBj
OwotICAgICAgICAgICAgbV9za2lwTEYgPSBmYWxzZTsKLSAgICAgICAgfQotICAgICAgICAKLSAg
ICAgICAgc3RyLmFkdmFuY2UoKTsKLSAgICAgICAgCi0gICAgICAgIC8vIE1heWJlIGVubGFyZ2Ug
dGhlIGJ1ZmZlcgotICAgICAgICBjaGVja0J1ZmZlcigpOwotICAgIH0KLQotICAgIGlmICghbV9w
cmVFbGVtZW50ICYmICFpblZpZXdTb3VyY2VNb2RlKCkpIHsKLSAgICAgICAgUmVmUHRyPEVsZW1l
bnQ+IHJvb3RFbGVtZW50ID0gZG9jdW1lbnQoKS0+Y3JlYXRlRWxlbWVudChodG1sVGFnLCBmYWxz
ZSk7Ci0gICAgICAgIGRvY3VtZW50KCktPmFwcGVuZENoaWxkKHJvb3RFbGVtZW50LCBlYyk7Ci0K
LSAgICAgICAgUmVmUHRyPEVsZW1lbnQ+IGJvZHkgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50
KGJvZHlUYWcsIGZhbHNlKTsKLSAgICAgICAgcm9vdEVsZW1lbnQtPmFwcGVuZENoaWxkKGJvZHks
IGVjKTsKLQotICAgICAgICBSZWZQdHI8RWxlbWVudD4gcHJlRWxlbWVudCA9IGRvY3VtZW50KCkt
PmNyZWF0ZUVsZW1lbnQocHJlVGFnLCBmYWxzZSk7Ci0gICAgICAgIHByZUVsZW1lbnQtPnNldEF0
dHJpYnV0ZSgic3R5bGUiLCAid29yZC13cmFwOiBicmVhay13b3JkOyB3aGl0ZS1zcGFjZTogcHJl
LXdyYXA7IiwgZWMpOwotCi0gICAgICAgIGJvZHktPmFwcGVuZENoaWxkKHByZUVsZW1lbnQsIGVj
KTsKLSAgICAgICAgCi0gICAgICAgIG1fcHJlRWxlbWVudCA9IHByZUVsZW1lbnQuZ2V0KCk7Ci0g
ICAgfSAKLSAgICAKLSAgICBTdHJpbmcgc3RyaW5nID0gU3RyaW5nKG1fYnVmZmVyLCBtX2Rlc3Qg
LSBtX2J1ZmZlcik7Ci0gICAgaWYgKGluVmlld1NvdXJjZU1vZGUoKSkgewotICAgICAgICBzdGF0
aWNfY2FzdDxIVE1MVmlld1NvdXJjZURvY3VtZW50Kj4oZG9jdW1lbnQoKSktPmFkZFZpZXdTb3Vy
Y2VUZXh0KHN0cmluZyk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCBj
aGFyc0xlZnQgPSBzdHJpbmcubGVuZ3RoKCk7Ci0gICAgd2hpbGUgKGNoYXJzTGVmdCkgewotICAg
ICAgICAvLyBzcGxpdCBsYXJnZSB0ZXh0IHRvIG5vZGVzIG9mIG1hbmFnZWFibGUgc2l6ZQotICAg
ICAgICBSZWZQdHI8VGV4dD4gdGV4dCA9IFRleHQ6OmNyZWF0ZVdpdGhMZW5ndGhMaW1pdChkb2N1
bWVudCgpLCBzdHJpbmcsIGNoYXJzTGVmdCk7Ci0gICAgICAgIG1fcHJlRWxlbWVudC0+YXBwZW5k
Q2hpbGQodGV4dCwgZWMpOwotICAgIH0KLX0KLQotdm9pZCBUZXh0RG9jdW1lbnRQYXJzZXI6OmZp
bmlzaCgpCi17Ci0gICAgaWYgKCFtX3ByZUVsZW1lbnQpCi0gICAgICAgIGFwcGVuZChTZWdtZW50
ZWRTdHJpbmcoKSk7IC8vIENyZWF0ZSBkb2N1bWVudCBzdHJ1Y3R1cmUgZm9yIGFuIGVtcHR5IHRl
eHQgZG9jdW1lbnQuCi0gICAgbV9wcmVFbGVtZW50ID0gMDsKLSAgICBmYXN0RnJlZShtX2J1ZmZl
cik7Ci0gICAgbV9idWZmZXIgPSAwOwotICAgIG1fZGVzdCA9IDA7Ci0KLSAgICAvLyBGSVhNRTog
U2hvdWxkIHRoaXMgY2FsbCBmaW5pc2hQYXJzaW5nIGV2ZW4gaWYgbV9wYXJzZXJTdG9wcGVkIGlz
IHRydWU/Ci0gICAgLy8gU2VlIGVxdWl2YWxlbnQgaW1wbGVtZW50YXRpb24gaW4gUmF3RGF0YURv
Y3VtZW50UGFyc2VyLgotICAgIGRvY3VtZW50KCktPmZpbmlzaGVkUGFyc2luZygpOwotfQotCi1i
b29sIFRleHREb2N1bWVudFBhcnNlcjo6ZmluaXNoV2FzQ2FsbGVkKCkKLXsKLSAgICAvLyBmaW5p
c2goKSBhbHdheXMgY2FsbHMgZG9jdW1lbnQoKS0+ZmluaXNoZWRQYXJzaW5nKCkgc28gd2UnbGwg
YmUgZGVsZXRlZAotICAgIC8vIGFmdGVyIGZpbmlzaCgpLgotICAgIHJldHVybiBmYWxzZTsKLX0K
LQogVGV4dERvY3VtZW50OjpUZXh0RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBLVVJMJiB1
cmwpCiAgICAgOiBIVE1MRG9jdW1lbnQoZnJhbWUsIHVybCkKIHsKQEAgLTIxMSw5ICs0MSw0IEBA
IFBhc3NSZWZQdHI8RG9jdW1lbnRQYXJzZXI+IFRleHREb2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkK
ICAgICByZXR1cm4gVGV4dERvY3VtZW50UGFyc2VyOjpjcmVhdGUodGhpcyk7CiB9CiAKLVBhc3NS
ZWZQdHI8RG9jdW1lbnRQYXJzZXI+IGNyZWF0ZVRleHREb2N1bWVudFBhcnNlcihIVE1MVmlld1Nv
dXJjZURvY3VtZW50KiBkb2N1bWVudCkKLXsKLSAgICByZXR1cm4gVGV4dERvY3VtZW50UGFyc2Vy
OjpjcmVhdGUoZG9jdW1lbnQpOwotfQotCiB9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9U
ZXh0RG9jdW1lbnQuaCBiL1dlYkNvcmUvbG9hZGVyL1RleHREb2N1bWVudC5oCmluZGV4IGQ1YmYx
NTM5NjBkN2IyMTI2ZWRmYjVjODYwNGI1ZGQzYmZmYjQwNGYuLjJlYTQ5ZjgxYTgwOGU5NjdiZjY5
NDIwYmZmMDQwYWIwZGViNTBlODIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvbG9hZGVyL1RleHREb2N1
bWVudC5oCisrKyBiL1dlYkNvcmUvbG9hZGVyL1RleHREb2N1bWVudC5oCkBAIC0yOSw4ICsyOSw2
IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgSFRNTFZpZXdTb3VyY2VEb2N1bWVu
dDsKLQogY2xhc3MgVGV4dERvY3VtZW50IDogcHVibGljIEhUTUxEb2N1bWVudCB7CiBwdWJsaWM6
CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dERvY3VtZW50PiBjcmVhdGUoRnJhbWUqIGZyYW1l
LCBjb25zdCBLVVJMJiB1cmwpCkBAIC00NCw4ICs0Miw2IEBAIHByaXZhdGU6CiAgICAgdmlydHVh
bCBQYXNzUmVmUHRyPERvY3VtZW50UGFyc2VyPiBjcmVhdGVQYXJzZXIoKTsKIH07CiAKLVBhc3NS
ZWZQdHI8RG9jdW1lbnRQYXJzZXI+IGNyZWF0ZVRleHREb2N1bWVudFBhcnNlcihIVE1MVmlld1Nv
dXJjZURvY3VtZW50Kik7Ci0KIH0KIAotI2VuZGlmIC8vIFRleHREb2N1bWVudF9oCisjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>66791</attachid>
            <date>2010-09-07 16:57:41 -0700</date>
            <delta_ts>2010-09-07 19:30:41 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-45334-20100907165740.patch</filename>
            <type>text/plain</type>
            <size>26684</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQW5kcm9pZC5tayBiL1dlYkNvcmUvQW5kcm9pZC5tawppbmRl
eCAyMWQxYjBkYjI4NzA4MWYyZWU3ZjQ2ZTY0MTIxMTU4YTkyZDA4MDlkLi4zMTFlZGU2MDk1Yzgy
ODc2ZTE5NTY2YTZlN2JjMGQ1MDJmZTE5NGM1IDEwMDY0NAotLS0gYS9XZWJDb3JlL0FuZHJvaWQu
bWsKKysrIGIvV2ViQ29yZS9BbmRyb2lkLm1rCkBAIC0zMDEsNiArMzAxLDcgQEAgTE9DQUxfU1JD
X0ZJTEVTIDo9ICQoTE9DQUxfU1JDX0ZJTEVTKSBcCiAJaHRtbC9wYXJzZXIvSFRNTFRva2VuaXpl
ci5jcHAgXAogCWh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAgXAogCWh0bWwvcGFyc2Vy
L0hUTUxWaWV3U291cmNlUGFyc2VyLmNwcCBcCisJaHRtbC9wYXJzZXIvVGV4dERvY3VtZW50UGFy
c2VyLmNwcCBcCiAJXAogCWxvYWRlci9DYWNoZS5jcHAgXAogCWxvYWRlci9DYWNoZWRDU1NTdHls
ZVNoZWV0LmNwcCBcCmRpZmYgLS1naXQgYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCAxZDkxNTlmZWE4ZTcxYjk2NDFkZjY1ZjlkYjA1ZTJlZjgz
YWE1NTBhLi45ODE3ZmRkYTlmOWI5ZDdiMDVkYzEzYWZjM2EyODc3NjhhYjE3OTRkIDEwMDY0NAot
LS0gYS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQK
QEAgLTEwNDcsNiArMTA0Nyw3IEBAIFNFVChXZWJDb3JlX1NPVVJDRVMKICAgICBodG1sL3BhcnNl
ci9IVE1MVG9rZW5pemVyLmNwcAogICAgIGh0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAK
ICAgICBodG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5jcHAKKyAgICBodG1sL3BhcnNl
ci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwCiAKICAgICBpbnNwZWN0b3IvQ29uc29sZU1lc3NhZ2Uu
Y3BwCiAgICAgaW5zcGVjdG9yL0luamVjdGVkU2NyaXB0LmNwcApkaWZmIC0tZ2l0IGEvV2ViQ29y
ZS9DaGFuZ2VMb2cgYi9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBkYzRmNzU4MTY4YTY1NWIzMThm
NjgxYTZiODUwNDEzNDk2ODdkYTE4Li44ODBiZWMyMmZkMjNlYTAyZTVhNWYyMDM3ZDRkOWMzNTFi
MzEyZTg0IDEwMDY0NAotLS0gYS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9XZWJDb3JlL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDQzIEBACisyMDEwLTA5LTA3ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdl
YmtpdC5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCisKKyAgICAgICAg
VGV4dERvY3VtZW50IHNob3VsZCBjb21lIGluIGZyb20gdGhlIGNvbGQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTQ1MzM0CisKKyAgICAgICAgUHJldmlv
dXNseSwgVGV4dERvY3VtZW50IHJlaW52ZW50ZWQgdGhlIHdoZWVsIHRvIHBhcnNlIHRleHQuICBU
aGlzCisgICAgICAgIHBhdGNoIHJlcGxhY2VzIFRleHREb2N1bWVudCdzIGhhbmQtcm9sbGVkIHBh
cnNlciB3aXRoIGEgcGFyc2VyIGJ1aWx0IG9uCisgICAgICAgIHRoZSBIVE1MIHBhcnNlciBpbmZy
dXN0cnVjdHVyZSwgd2hpY2ggZ2l2ZXMgdXMgdGhhdCBzdHVmZiBmb3IgZnJlZS4gIEkKKyAgICAg
ICAgYWxzbyBkaXNlbnRhbmdsZWQgVGV4dERvY3VtZW50IGZyb20gSFRNTFZpZXdTb3VyY2VEb2N1
bWVudC4KKworICAgICAgICBJbiBhIGZ1dHVyZSBwYXRjaCwgSSdsbCBtb3ZlIFRleHREb2N1bWVu
dCBvdXQgb2YgdGhlICJsb2FkZXIiIGRpcmVjdG9yeS4KKworICAgICAgICAqIEFuZHJvaWQubWs6
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogR05VbWFrZWZpbGUuYW06Cisg
ICAgICAgICogV2ViQ29yZS5neXBpOgorICAgICAgICAqIFdlYkNvcmUucHJvOgorICAgICAgICAq
IFdlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBodG1sL0hUTUxWaWV3U291cmNlRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZXdTb3VyY2VEb2N1bWVudDo6Y3JlYXRl
UGFyc2VyKToKKyAgICAgICAgKiBodG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuaDoKKyAgICAg
ICAgKiBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTFRyZWVCdWlsZGVyOjpjb25zdHJ1Y3RUcmVlRnJvbVRva2VuKToKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJlZUZyb21BdG9taWNUb2tlbik6CisgICAg
ICAgICogaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmg6CisgICAgICAgICogaHRtbC9wYXJz
ZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTFZpZXdT
b3VyY2VQYXJzZXI6OmZvcmNlUGxhaW50ZXh0KToKKyAgICAgICAgKiBodG1sL3BhcnNlci9IVE1M
Vmlld1NvdXJjZVBhcnNlci5oOgorICAgICAgICAqIGh0bWwvcGFyc2VyL1RleHREb2N1bWVudFBh
cnNlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6VGV4dERvY3VtZW50UGFyc2VyOjpU
ZXh0RG9jdW1lbnRQYXJzZXIpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dERvY3VtZW50UGFyc2Vy
Ojp+VGV4dERvY3VtZW50UGFyc2VyKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHREb2N1bWVudFBh
cnNlcjo6aW5zZXJ0RmFrZVByZUVsZW1lbnQpOgorICAgICAgICAqIGh0bWwvcGFyc2VyL1RleHRE
b2N1bWVudFBhcnNlci5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OlRleHREb2N1bWVudFBh
cnNlcjo6Y3JlYXRlKToKKyAgICAgICAgKiBsb2FkZXIvVGV4dERvY3VtZW50LmNwcDoKKyAgICAg
ICAgKiBsb2FkZXIvVGV4dERvY3VtZW50Lmg6CisKIDIwMTAtMDktMDcgIE1hcnRpbiBSb2JpbnNv
biAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgogCiAgICAgICAgIEFkZCByZW5kZXJpbmcvQ29sdW1u
SW5mby5oIHRvIHRoZSBzb3VyY2VzIGxpc3QuCmRpZmYgLS1naXQgYS9XZWJDb3JlL0dOVW1ha2Vm
aWxlLmFtIGIvV2ViQ29yZS9HTlVtYWtlZmlsZS5hbQppbmRleCAxZTQ0YWRjZGJiNzk3YzcxM2Q0
OTg4NzM0OGUwZTA5YjAyZTY1MDBkLi44YzVmYWI4ZTlhYjliZWRiNTY0M2VkMWE1NDBkYjZkYjE4
NWUzYjNmIDEwMDY0NAotLS0gYS9XZWJDb3JlL0dOVW1ha2VmaWxlLmFtCisrKyBiL1dlYkNvcmUv
R05VbWFrZWZpbGUuYW0KQEAgLTE1NjksNiArMTU2OSw4IEBAIHdlYmNvcmVfc291cmNlcyArPSBc
CiAJV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuaCBcCiAJV2ViQ29yZS9odG1s
L3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5jcHAgXAogCVdlYkNvcmUvaHRtbC9wYXJzZXIv
SFRNTFZpZXdTb3VyY2VQYXJzZXIuaCBcCisJV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1l
bnRQYXJzZXIuY3BwIFwKKwlXZWJDb3JlL2h0bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5o
IFwKIAlXZWJDb3JlL2h0bWwvVmFsaWRpdHlTdGF0ZS5jcHAgXAogCVdlYkNvcmUvaHRtbC9WYWxp
ZGl0eVN0YXRlLmggXAogCVdlYkNvcmUvaHRtbC9Wb2lkQ2FsbGJhY2suaCBcCmRpZmYgLS1naXQg
YS9XZWJDb3JlL1dlYkNvcmUuZ3lwaSBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCmluZGV4IDMzMjFj
YmI3ZDRiZjNiNjExZTMzMTk1ZGMyNDIwYTFlOTM3NjMxZmMuLmQ4MWVmZjYxODI4MjA2ZjY0MTk3
NDVjNjdiNDUxNmM4NGZkMWVhMzcgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5neXBpCisr
KyBiL1dlYkNvcmUvV2ViQ29yZS5neXBpCkBAIC0xNzc4LDYgKzE3NzgsOCBAQAogICAgICAgICAg
ICAgJ2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5oJywKICAgICAgICAgICAgICdodG1sL3Bh
cnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5jcHAnLAogICAgICAgICAgICAgJ2h0bWwvcGFyc2Vy
L0hUTUxWaWV3U291cmNlUGFyc2VyLmgnLAorICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL1RleHRE
b2N1bWVudFBhcnNlci5jcHAnLAorICAgICAgICAgICAgJ2h0bWwvcGFyc2VyL1RleHREb2N1bWVu
dFBhcnNlci5oJywKICAgICAgICAgICAgICdpbnNwZWN0b3IvSW5zcGVjdG9yQ2xpZW50LmgnLAog
ICAgICAgICAgICAgJ2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5jcHAnLAogICAgICAgICAgICAg
J2luc3BlY3Rvci9Db25zb2xlTWVzc2FnZS5oJywKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29y
ZS5wcm8gYi9XZWJDb3JlL1dlYkNvcmUucHJvCmluZGV4IDc3NWIwN2ViMzVmODAwZjhhOTZhNmJi
OTQ0M2Q5MjM3MmNkNTBkNmYuLmQwMjUyZDMzNTdiM2ExOGMwYzVlOTgzM2IxYmUxZDQ1Mzg4MDRl
OWEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvV2ViQ29yZS9XZWJDb3Jl
LnBybwpAQCAtNzUxLDYgKzc1MSw3IEBAIFNPVVJDRVMgKz0gXAogICAgIGh0bWwvcGFyc2VyL0hU
TUxUb2tlbml6ZXIuY3BwIFwKICAgICBodG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwIFwK
ICAgICBodG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5jcHAgXAorICAgIGh0bWwvcGFy
c2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAgXAogICAgIGluc3BlY3Rvci9Db25zb2xlTWVzc2Fn
ZS5jcHAgXAogICAgIGluc3BlY3Rvci9JbmplY3RlZFNjcmlwdC5jcHAgXAogICAgIGluc3BlY3Rv
ci9JbmplY3RlZFNjcmlwdEhvc3QuY3BwIFwKZGlmZiAtLWdpdCBhL1dlYkNvcmUvV2ViQ29yZS52
Y3Byb2ovV2ViQ29yZS52Y3Byb2ogYi9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNw
cm9qCmluZGV4IGYzZTQ5ZjVkM2QxZWVlZTk1MGQ0Y2QyMDJkOGZiZTJjNjY5OGQ0ZGUuLjdlZGUy
YmNhMTUzMWU1MzU5YzE0MGI0Y2YwNDhiZDNlYmY3ZTZjYzAgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
V2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2oKKysrIGIvV2ViQ29yZS9XZWJDb3JlLnZjcHJv
ai9XZWJDb3JlLnZjcHJvagpAQCAtNDE5MTUsNiArNDE5MTUsMTQgQEAKICAgICAgICAgICAgICAg
ICAgICAgUmVsYXRpdmVQYXRoPSIuLlxodG1sXHBhcnNlclxIVE1MVmlld1NvdXJjZVBhcnNlci5o
Ig0KICAgICAgICAgICAgICAgICAgICAgPg0KICAgICAgICAgICAgICAgICA8L0ZpbGU+DQorICAg
ICAgICAgICAgICAgIDxGaWxlDQorICAgICAgICAgICAgICAgICAgICBSZWxhdGl2ZVBhdGg9Ii4u
XGh0bWxccGFyc2VyXFRleHREb2N1bWVudFBhcnNlci5jcHAiDQorICAgICAgICAgICAgICAgICAg
ICA+DQorICAgICAgICAgICAgICAgIDwvRmlsZT4NCisgICAgICAgICAgICAgICAgPEZpbGUNCisg
ICAgICAgICAgICAgICAgICAgIFJlbGF0aXZlUGF0aD0iLi5caHRtbFxwYXJzZXJcVGV4dERvY3Vt
ZW50UGFyc2VyLmgiDQorICAgICAgICAgICAgICAgICAgICA+DQorICAgICAgICAgICAgICAgIDwv
RmlsZT4NCiAgICAgICAgICAgICA8L0ZpbHRlcj4NCiAJCQk8RmlsZQ0KIAkJCQlSZWxhdGl2ZVBh
dGg9Ii4uXGh0bWxcU3RlcFJhbmdlLmNwcCINCmRpZmYgLS1naXQgYS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDE1Y2MwNmNiNGQzZWU1ZDY4MzQzMzkwY2Y0ODY3NDE5Njk5ZTFj
ZTcuLjJkMWRjYTM3N2Q3YTUxZTI2YTc3MzAxZjRiYmFhMDlmNzBkMjAwNWMgMTAwNjQ0Ci0tLSBh
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yNzg1LDYgKzI3ODUsOCBAQAog
CQk5NzdCMzg3QTEyMjg4M0U5MDBCODFGRjggLyogSFRNTFZpZXdTb3VyY2VQYXJzZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3N0IzODYxMTIyODgz
RTkwMEI4MUZGOCAvKiBIVE1MVmlld1NvdXJjZVBhcnNlci5oICovOyB9OwogCQk5NzlGNDNEMzEw
NzVFNDRBMDAwMEY4M0IgLyogUmVkaXJlY3RTY2hlZHVsZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTc5RjQzRDExMDc1RTQ0QTAwMDBGODNCIC8q
IFJlZGlyZWN0U2NoZWR1bGVyLmNwcCAqLzsgfTsKIAkJOTc5RjQzRDQxMDc1RTQ0QTAwMDBGODNC
IC8qIFJlZGlyZWN0U2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5NzlGNDNEMjEwNzVFNDRBMDAwMEY4M0IgLyogUmVkaXJlY3RTY2hlZHVs
ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk5
N0JDODQ4MzEyMzZGRDkzMDAwQzYxNjEgLyogVGV4dERvY3VtZW50UGFyc2VyLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk3QkM4NDgxMTIzNkZEOTMw
MDBDNjE2MSAvKiBUZXh0RG9jdW1lbnRQYXJzZXIuY3BwICovOyB9OworCQk5N0JDODQ4NDEyMzZG
RDkzMDAwQzYxNjEgLyogVGV4dERvY3VtZW50UGFyc2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5N0JDODQ4MjEyMzZGRDkzMDAwQzYxNjEgLyogVGV4
dERvY3VtZW50UGFyc2VyLmggKi87IH07CiAJCTk3QzA3ODUwMTE2NUQ1QkUwMDNBMzJFRiAvKiBT
dWZmaXhUcmVlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5N0MwNzg0RjExNjVENUJFMDAzQTMyRUYgLyogU3VmZml4VHJlZS5oICovOyB9OwogCQk5N0RD
RTIwMTEwODA3Qzc1MDA1N0QzOTQgLyogSGlzdG9yeUNvbnRyb2xsZXIuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTdEQ0UxRkYxMDgwN0M3NTAwNTdE
Mzk0IC8qIEhpc3RvcnlDb250cm9sbGVyLmNwcCAqLzsgfTsKIAkJOTdEQ0UyMDIxMDgwN0M3NTAw
NTdEMzk0IC8qIEhpc3RvcnlDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5N0RDRTIwMDEwODA3Qzc1MDA1N0QzOTQgLyogSGlzdG9yeUNv
bnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtODY1MSw2ICs4NjUzLDggQEAKIAkJOTc3QjM4NjExMjI4ODNFOTAwQjgxRkY4IC8qIEhU
TUxWaWV3U291cmNlUGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9IEhU
TUxWaWV3U291cmNlUGFyc2VyLmg7IHBhdGggPSBwYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTc5RjQzRDExMDc1RTQ0QTAwMDBGODNC
IC8qIFJlZGlyZWN0U2NoZWR1bGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFJlZGlyZWN0U2NoZWR1bGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJOTc5RjQzRDIxMDc1RTQ0QTAwMDBGODNCIC8qIFJlZGlyZWN0U2NoZWR1bGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlZGlyZWN0U2NoZWR1bGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk3QkM4NDgxMTIzNkZEOTMwMDBDNjE2MSAvKiBUZXh0RG9j
dW1lbnRQYXJzZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gVGV4
dERvY3VtZW50UGFyc2VyLmNwcDsgcGF0aCA9IHBhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5N0JDODQ4MjEyMzZGRDkzMDAwQzYxNjEg
LyogVGV4dERvY3VtZW50UGFyc2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgbmFtZSA9
IFRleHREb2N1bWVudFBhcnNlci5oOyBwYXRoID0gcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5N0MwNzg0RjExNjVENUJFMDAzQTMyRUYg
LyogU3VmZml4VHJlZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdWZmaXhU
cmVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk3QzFGNTUyMTIyODU1Q0IwMEVE
RTYxNiAvKiBIVE1MVG9rZW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gSFRN
TFRva2VuLmg7IHBhdGggPSBwYXJzZXIvSFRNTFRva2VuLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTk3RENFMUZGMTA4MDdDNzUwMDU3RDM5NCAvKiBIaXN0b3J5Q29udHJvbGxlci5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBIaXN0b3J5Q29udHJvbGxl
ci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNDQzMiw2ICsxNDQzNiw4IEBA
CiAJCQkJOTc3QjM3MjIxMjI4NzIxNzAwQjgxRkY4IC8qIEhUTUxUcmVlQnVpbGRlci5oICovLAog
CQkJCTk3N0IzODYwMTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MVmlld1NvdXJjZVBhcnNlci5jcHAg
Ki8sCiAJCQkJOTc3QjM4NjExMjI4ODNFOTAwQjgxRkY4IC8qIEhUTUxWaWV3U291cmNlUGFyc2Vy
LmggKi8sCisJCQkJOTdCQzg0ODExMjM2RkQ5MzAwMEM2MTYxIC8qIFRleHREb2N1bWVudFBhcnNl
ci5jcHAgKi8sCisJCQkJOTdCQzg0ODIxMjM2RkQ5MzAwMEM2MTYxIC8qIFRleHREb2N1bWVudFBh
cnNlci5oICovLAogCQkJKTsKIAkJCW5hbWUgPSBwYXJzZXI7CiAJCQlzb3VyY2VUcmVlID0gIjxn
cm91cD4iOwpAQCAtMjA0MzYsNiArMjA0NDIsNyBAQAogCQkJCTg5ODc4NUYxMTIyRTFFODcwMDNB
QUJEQSAvKiBKU0ZpbGVFeGNlcHRpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTg5ODc4NUY1MTIy
RTFFQUMwMDNBQUJEQSAvKiBKU0ZpbGVSZWFkZXJTeW5jLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
Q0RENDU0RTEyMzZDOTVDMDA5QTc5ODUgLyogQ29sdW1uSW5mby5oIGluIEhlYWRlcnMgKi8sCisJ
CQkJOTdCQzg0ODQxMjM2RkQ5MzAwMEM2MTYxIC8qIFRleHREb2N1bWVudFBhcnNlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1lbnRQb3N0cHJvY2Vzc2luZyA9
IDA7CiAJCX07CkBAIC0yMjg5OSw2ICsyMjkwNiw3IEBACiAJCQkJODk4Nzg1QjgxMjJDQTJBNzAw
M0FBQkRBIC8qIEpTTWV0YWRhdGFDYWxsYmFjay5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4OTg3
ODVGMDEyMkUxRTg3MDAzQUFCREEgLyogSlNGaWxlRXhjZXB0aW9uLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTg5ODc4NUY0MTIyRTFFQUMwMDNBQUJEQSAvKiBKU0ZpbGVSZWFkZXJTeW5jLmNwcCBp
biBTb3VyY2VzICovLAorCQkJCTk3QkM4NDgzMTIzNkZEOTMwMDBDNjE2MSAvKiBUZXh0RG9jdW1l
bnRQYXJzZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkpOwogCQkJcnVuT25seUZvckRlcGxveW1l
bnRQb3N0cHJvY2Vzc2luZyA9IDA7CiAJCX07CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRN
TFZpZXdTb3VyY2VEb2N1bWVudC5jcHAgYi9XZWJDb3JlL2h0bWwvSFRNTFZpZXdTb3VyY2VEb2N1
bWVudC5jcHAKaW5kZXggMzI5OWIyNzRhNTczZmYyOGNlMzhhMWM0ZDZiZjRjYmE3ZDhhZTY1MC4u
Y2FkODEzNGI0MjIzOWMxY2IwMGEwM2FhYWE2N2JlZDk1NDBjOWY3ZiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuY3BwCisrKyBiL1dlYkNvcmUvaHRtbC9I
VE1MVmlld1NvdXJjZURvY3VtZW50LmNwcApAQCAtNTgsMTUgKzU4LDE3IEBAIEhUTUxWaWV3U291
cmNlRG9jdW1lbnQ6OkhUTUxWaWV3U291cmNlRG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBL
VVJMJiB1cmwsIGNvCiAKIFBhc3NSZWZQdHI8RG9jdW1lbnRQYXJzZXI+IEhUTUxWaWV3U291cmNl
RG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcigpCiB7CisgICAgUmVmUHRyPEhUTUxWaWV3U291cmNlUGFy
c2VyPiBwYXJzZXIgPSBIVE1MVmlld1NvdXJjZVBhcnNlcjo6Y3JlYXRlKHRoaXMpOwogICAgIC8v
IFVzZSBIVE1MRG9jdW1lbnRQYXJzZXIgaWYgYXBwbGljYWJsZSwgb3RoZXJ3aXNlIHVzZSBUZXh0
RG9jdW1lbnRQYXJzZXIuCiAgICAgaWYgKG1fdHlwZSA9PSAidGV4dC9odG1sIiB8fCBtX3R5cGUg
PT0gImFwcGxpY2F0aW9uL3hodG1sK3htbCIgfHwgbV90eXBlID09ICJpbWFnZS9zdmcreG1sIiB8
fCBET01JbXBsZW1lbnRhdGlvbjo6aXNYTUxNSU1FVHlwZShtX3R5cGUpCiAjaWYgRU5BQkxFKFhI
VE1MTVApCiAgICAgICAgIHx8IG1fdHlwZSA9PSAiYXBwbGljYXRpb24vdm5kLndhcC54aHRtbCt4
bWwiCiAjZW5kaWYKICAgICAgICAgKQotICAgICAgICByZXR1cm4gSFRNTFZpZXdTb3VyY2VQYXJz
ZXI6OmNyZWF0ZSh0aGlzKTsKKyAgICAgICAgcmV0dXJuIHBhcnNlci5yZWxlYXNlKCk7CiAKLSAg
ICByZXR1cm4gY3JlYXRlVGV4dERvY3VtZW50UGFyc2VyKHRoaXMpOworICAgIHBhcnNlci0+Zm9y
Y2VQbGFpbnRleHQoKTsKKyAgICByZXR1cm4gcGFyc2VyLnJlbGVhc2UoKTsKIH0KIAogdm9pZCBI
VE1MVmlld1NvdXJjZURvY3VtZW50OjpjcmVhdGVDb250YWluaW5nVGFibGUoKQpAQCAtOTYsMTMg
Kzk4LDYgQEAgdm9pZCBIVE1MVmlld1NvdXJjZURvY3VtZW50OjpjcmVhdGVDb250YWluaW5nVGFi
bGUoKQogICAgIG1fY3VycmVudCA9IG1fdGJvZHk7CiB9CiAKLXZvaWQgSFRNTFZpZXdTb3VyY2VE
b2N1bWVudDo6YWRkVmlld1NvdXJjZVRleHQoY29uc3QgU3RyaW5nJiB0ZXh0KQotewotICAgIGlm
ICghbV9jdXJyZW50KQotICAgICAgICBjcmVhdGVDb250YWluaW5nVGFibGUoKTsKLSAgICBhZGRU
ZXh0KHRleHQsICIiKTsKLX0KLQogdm9pZCBIVE1MVmlld1NvdXJjZURvY3VtZW50OjphZGRTb3Vy
Y2UoY29uc3QgU3RyaW5nJiBzb3VyY2UsIEhUTUxUb2tlbiYgdG9rZW4pCiB7CiAgICAgaWYgKCFt
X2N1cnJlbnQpCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvSFRNTFZpZXdTb3VyY2VEb2N1bWVu
dC5oIGIvV2ViQ29yZS9odG1sL0hUTUxWaWV3U291cmNlRG9jdW1lbnQuaAppbmRleCA0NDVjOTVi
YjFkNGY1OWY1M2JlMGJiODliZjk0MDQxYTQwMWYyNThiLi4zMGU0ZGYzYTMwYWZmYjI4ZmFmMDZj
ZGIyM2UxZmQwN2Y5ODQwN2FkIDEwMDY0NAotLS0gYS9XZWJDb3JlL2h0bWwvSFRNTFZpZXdTb3Vy
Y2VEb2N1bWVudC5oCisrKyBiL1dlYkNvcmUvaHRtbC9IVE1MVmlld1NvdXJjZURvY3VtZW50LmgK
QEAgLTQyLDkgKzQyLDYgQEAgcHVibGljOgogCiAgICAgdm9pZCBhZGRTb3VyY2UoY29uc3QgU3Ry
aW5nJiwgSFRNTFRva2VuJik7CiAKLSAgICB2b2lkIGFkZFZpZXdTb3VyY2VUb2tlbihIVE1MVG9r
ZW4mKTsgLy8gVXNlZCBieSB0aGUgSFRNTERvY3VtZW50UGFyc2VyLgotICAgIHZvaWQgYWRkVmll
d1NvdXJjZVRleHQoY29uc3QgU3RyaW5nJik7IC8vIFVzZWQgYnkgdGhlIFRleHREb2N1bWVudFBh
cnNlci4KLQogcHJpdmF0ZToKICAgICBIVE1MVmlld1NvdXJjZURvY3VtZW50KEZyYW1lKiwgY29u
c3QgS1VSTCYsIGNvbnN0IFN0cmluZyYgbWltZVR5cGUpOwogCmRpZmYgLS1naXQgYS9XZWJDb3Jl
L2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oIGIvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MRG9jdW1lbnRQYXJzZXIuaAppbmRleCAwZTUwOGRhN2JjZTNiYTIwOWZlZDY0M2RlZDlhYjk1
NWFmMmViYzk1Li43NmUyZTNkN2Y0NWIwMDhkMzM1NjBhNzUwZmZiMzI0MjIyMzU5OTliIDEwMDY0
NAotLS0gYS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxEb2N1bWVudFBhcnNlci5oCisrKyBiL1dl
YkNvcmUvaHRtbC9wYXJzZXIvSFRNTERvY3VtZW50UGFyc2VyLmgKQEAgLTc0LDYgKzc0LDkgQEAg
cHJvdGVjdGVkOgogICAgIEhUTUxEb2N1bWVudFBhcnNlcihIVE1MRG9jdW1lbnQqLCBib29sIHJl
cG9ydEVycm9ycyk7CiAgICAgSFRNTERvY3VtZW50UGFyc2VyKERvY3VtZW50RnJhZ21lbnQqLCBF
bGVtZW50KiBjb250ZXh0RWxlbWVudCwgRnJhZ21lbnRTY3JpcHRpbmdQZXJtaXNzaW9uKTsKIAor
ICAgIEhUTUxUb2tlbml6ZXIqIHRva2VuaXplcigpIGNvbnN0IHsgcmV0dXJuIG1fdG9rZW5pemVy
LmdldCgpOyB9CisgICAgSFRNTFRyZWVCdWlsZGVyKiB0cmVlQnVpbGRlcigpIGNvbnN0IHsgcmV0
dXJuIG1fdHJlZUJ1aWxkZXIuZ2V0KCk7IH0KKwogcHJpdmF0ZToKICAgICAvLyBEb2N1bWVudFBh
cnNlcgogICAgIHZpcnR1YWwgdm9pZCBkZXRhY2goKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvaHRt
bC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmNwcCBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRy
ZWVCdWlsZGVyLmNwcAppbmRleCA4Yzc2ZmMwMDQ1NTA5ZmQ2ZDQ4NTUzMDI2MmE3OGQyNGU3ZDFj
YTUzLi40MDZiYjZjOWI4Nzk2MjJlODZmZjFjZmNiZDFiMjY5OTY4NDU1ZmFiIDEwMDY0NAotLS0g
YS9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVpbGRlci5jcHAKKysrIGIvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVHJlZUJ1aWxkZXIuY3BwCkBAIC00NjMsNiArNDYzLDExIEBAIEhUTUxU
b2tlbml6ZXI6OlN0YXRlIEhUTUxUcmVlQnVpbGRlcjo6YWRqdXN0ZWRMZXhlclN0YXRlKEhUTUxU
b2tlbml6ZXI6OlN0YXRlIHN0CiB2b2lkIEhUTUxUcmVlQnVpbGRlcjo6Y29uc3RydWN0VHJlZUZy
b21Ub2tlbihIVE1MVG9rZW4mIHJhd1Rva2VuKQogewogICAgIEF0b21pY0hUTUxUb2tlbiB0b2tl
bihyYXdUb2tlbik7CisgICAgY29uc3RydWN0VHJlZUZyb21BdG9taWNUb2tlbih0b2tlbik7Cit9
CisKK3ZvaWQgSFRNTFRyZWVCdWlsZGVyOjpjb25zdHJ1Y3RUcmVlRnJvbUF0b21pY1Rva2VuKEF0
b21pY0hUTUxUb2tlbiYgdG9rZW4pCit7CiAgICAgcHJvY2Vzc1Rva2VuKHRva2VuKTsKIAogICAg
IC8vIFN3YWxsb3dpbmcgVSswMDAwIGNoYXJhY3RlcnMgaXNuJ3QgaW4gdGhlIEhUTUw1IHNwZWMs
IGJ1dCB0dXJuaW5nIGFsbApkaWZmIC0tZ2l0IGEvV2ViQ29yZS9odG1sL3BhcnNlci9IVE1MVHJl
ZUJ1aWxkZXIuaCBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFRyZWVCdWlsZGVyLmgKaW5kZXgg
YzMwZTZiOGRjODk5OGYyOGMwZGFiNjVlZWUyNTQzMjBiYmU4YmNlNS4uNDYzNGYwYTU4YTQwY2E5
MzFkNjFhNjAzZGMzOTM1ZThjNGQ0YjI3NiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9odG1sL3BhcnNl
ci9IVE1MVHJlZUJ1aWxkZXIuaAorKysgYi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxUcmVlQnVp
bGRlci5oCkBAIC02OCw2ICs2OCw4IEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZSB0b2tlbiByZWFs
bHkgc2hvdWxkIGJlIHBhc3NlZCBhcyBhIGNvbnN0JiBzaW5jZSBpdCdzIG5ldmVyIG1vZGlmaWVk
LgogICAgIHZvaWQgY29uc3RydWN0VHJlZUZyb21Ub2tlbihIVE1MVG9rZW4mKTsKKyAgICB2b2lk
IGNvbnN0cnVjdFRyZWVGcm9tQXRvbWljVG9rZW4oQXRvbWljSFRNTFRva2VuJik7CisKICAgICAv
LyBNdXN0IGJlIGNhbGxlZCB3aGVuIHBhcnNlciBpcyBwYXVzZWQgYmVmb3JlIGNhbGxpbmcgdGhl
IHBhcnNlciBhZ2Fpbi4KICAgICBQYXNzUmVmUHRyPEVsZW1lbnQ+IHRha2VTY3JpcHRUb1Byb2Nl
c3MoaW50JiBzY3JpcHRTdGFydExpbmUpOwogCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvcGFy
c2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmNwcCBiL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFZp
ZXdTb3VyY2VQYXJzZXIuY3BwCmluZGV4IDhhNzk4NGRjOGVjYjEzZjNjN2NmMDQ2MjZhNWQ3ZTFl
YTUwNTE5MmQuLjRhYWM5NTUwYzY5YjlhNTNlZjc5Y2E5OWRiZDg2MDVmMTA2ODBkNjMgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIuY3BwCisrKyBi
L1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIuY3BwCkBAIC00Miw2ICs0
MiwxMSBAQCBIVE1MVmlld1NvdXJjZVBhcnNlcjo6fkhUTUxWaWV3U291cmNlUGFyc2VyKCkKIHsK
IH0KIAordm9pZCBIVE1MVmlld1NvdXJjZVBhcnNlcjo6Zm9yY2VQbGFpbnRleHQoKQoreworICAg
IG1fdG9rZW5pemVyLT5zZXRTdGF0ZShIVE1MVG9rZW5pemVyOjpQTEFJTlRFWFRTdGF0ZSk7Cit9
CisKIHZvaWQgSFRNTFZpZXdTb3VyY2VQYXJzZXI6Omluc2VydChjb25zdCBTZWdtZW50ZWRTdHJp
bmcmKQogewogICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9o
dG1sL3BhcnNlci9IVE1MVmlld1NvdXJjZVBhcnNlci5oIGIvV2ViQ29yZS9odG1sL3BhcnNlci9I
VE1MVmlld1NvdXJjZVBhcnNlci5oCmluZGV4IDM0Y2FmNDNmOWM0MWYzMGQwOGY0YmFjZmZiMTBk
MGRjYjQ2M2NlNDQuLjI4ZjA1ZWNiZjNlZTc1ZTkyODBkNWYxMWRmMGIzOTU4OTYwNjAyOWMgMTAw
NjQ0Ci0tLSBhL1dlYkNvcmUvaHRtbC9wYXJzZXIvSFRNTFZpZXdTb3VyY2VQYXJzZXIuaAorKysg
Yi9XZWJDb3JlL2h0bWwvcGFyc2VyL0hUTUxWaWV3U291cmNlUGFyc2VyLmgKQEAgLTUwLDYgKzUw
LDggQEAgcHVibGljOgogICAgIH0KICAgICB2aXJ0dWFsIH5IVE1MVmlld1NvdXJjZVBhcnNlcigp
OwogCisgICAgdm9pZCBmb3JjZVBsYWludGV4dCgpOworCiBwcml2YXRlOgogICAgIEhUTUxWaWV3
U291cmNlUGFyc2VyKEhUTUxWaWV3U291cmNlRG9jdW1lbnQqKTsKIApkaWZmIC0tZ2l0IGEvV2Vi
Q29yZS9odG1sL3BhcnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwIGIvV2ViQ29yZS9odG1sL3Bh
cnNlci9UZXh0RG9jdW1lbnRQYXJzZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgzOGMzZWJhMGUwMTYyNWI4
ZmViMTI4Y2Q1MDAxOGEwNTdmMmZjMzIKLS0tIC9kZXYvbnVsbAorKysgYi9XZWJDb3JlL2h0bWwv
cGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5jcHAKQEAgLTAsMCArMSw2NSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5D
LiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCisgKiBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiVGV4dERvY3VtZW50UGFyc2VyLmgiCisKKyNpbmNsdWRlICJIVE1M
RG9jdW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MTmFtZXMuaCIKKyNpbmNsdWRlICJIVE1MVG9rZW5p
emVyLmgiCisjaW5jbHVkZSAiSFRNTFRyZWVCdWlsZGVyLmgiCisKK25hbWVzcGFjZSBXZWJDb3Jl
IHsKKwordXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKKworVGV4dERvY3VtZW50UGFyc2VyOjpU
ZXh0RG9jdW1lbnRQYXJzZXIoSFRNTERvY3VtZW50KiBkb2N1bWVudCkKKyAgICA6IEhUTUxEb2N1
bWVudFBhcnNlcihkb2N1bWVudCwgZmFsc2UpCit7CisgICAgdG9rZW5pemVyKCktPnNldFN0YXRl
KEhUTUxUb2tlbml6ZXI6OlBMQUlOVEVYVFN0YXRlKTsKKyAgICBpbnNlcnRGYWtlUHJlRWxlbWVu
dCgpOworfQorCitUZXh0RG9jdW1lbnRQYXJzZXI6On5UZXh0RG9jdW1lbnRQYXJzZXIoKQorewor
ICAgIEFTU0VSVCh0b2tlbml6ZXIoKS0+c3RhdGUoKSA9PSBIVE1MVG9rZW5pemVyOjpQTEFJTlRF
WFRTdGF0ZSk7Cit9CisKK3ZvaWQgVGV4dERvY3VtZW50UGFyc2VyOjppbnNlcnRGYWtlUHJlRWxl
bWVudCgpCit7CisgICAgLy8gSW4gcHJpbmNpcGxlLCB3ZSBzaG91bGQgY3JlYXRlIGEgc3BlY2lh
bGl6ZWQgdHJlZSBidWlsZGVyIGZvcgorICAgIC8vIFRleHREb2N1bWVudHMsIGJ1dCBpbnN0ZWFk
IHdlIHJlLXVzZSB0aGUgZXhpc3RpbmcgSFRNTFRyZWVCdWlsZGVyLgorICAgIC8vIFdlIGNyZWF0
ZSBhIGZha2UgdG9rZW4gYW5kIGdpdmUgaXQgdG8gdGhlIHRyZWUgYnVpbGRlciByYXRoZXIgdGhh
bgorICAgIC8vIHNlbmRpbmcgZmFrZSBieXRlcyB0aHJvdWdoIHRoZSBmcm9udC1lbmQgb2YgdGhl
IHBhcnNlciB0byBhdm9pZAorICAgIC8vIGRpc3RydWJpbmcgdGhlIGxpbmUvY29sdW1uIG51bWJl
ciBjYWxjdWxhdGlvbnMuCisKKyAgICBSZWZQdHI8QXR0cmlidXRlPiBzdHlsZUF0dHJpYnV0ZSA9
IEF0dHJpYnV0ZTo6Y3JlYXRlTWFwcGVkKCJzdHlsZSIsICJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7
IHdoaXRlLXNwYWNlOiBwcmUtd3JhcDsiKTsKKyAgICBSZWZQdHI8TmFtZWROb2RlTWFwPiBhdHRy
aWJ1dGVzID0gTmFtZWROb2RlTWFwOjpjcmVhdGUoKTsKKyAgICBhdHRyaWJ1dGVzLT5pbnNlcnRB
dHRyaWJ1dGUoc3R5bGVBdHRyaWJ1dGUucmVsZWFzZSgpLCBmYWxzZSk7CisgICAgQXRvbWljSFRN
TFRva2VuIGZha2VQcmUoSFRNTFRva2VuOjpTdGFydFRhZywgcHJlVGFnLmxvY2FsTmFtZSgpLCBh
dHRyaWJ1dGVzLnJlbGVhc2UoKSk7CisKKyAgICB0cmVlQnVpbGRlcigpLT5jb25zdHJ1Y3RUcmVl
RnJvbUF0b21pY1Rva2VuKGZha2VQcmUpOworfQorCit9CmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0
bWwvcGFyc2VyL1RleHREb2N1bWVudFBhcnNlci5oIGIvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0
RG9jdW1lbnRQYXJzZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NmZkZDUwZmQwZGQ4YTEzYTFiNGUxZWRhOTRh
ZWNhMTVhYTRjNzg1Ci0tLSAvZGV2L251bGwKKysrIGIvV2ViQ29yZS9odG1sL3BhcnNlci9UZXh0
RG9jdW1lbnRQYXJzZXIuaApAQCAtMCwwICsxLDQ5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBDT01QVVRFUiwgSU5DLiBgYEFTIElTJycg
QU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKKyAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIENPTVBVVEVSLCBJTkMuIE9SCisgKiBDT05U
UklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwKKyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKworI2lmbmRlZiBUZXh0RG9jdW1lbnRQYXJz
ZXJfaAorI2RlZmluZSBUZXh0RG9jdW1lbnRQYXJzZXJfaAorCisjaW5jbHVkZSAiSFRNTERvY3Vt
ZW50UGFyc2VyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgVGV4dERvY3VtZW50
UGFyc2VyIDogcHVibGljIEhUTUxEb2N1bWVudFBhcnNlciB7CitwdWJsaWM6CisgICAgc3RhdGlj
IFBhc3NSZWZQdHI8VGV4dERvY3VtZW50UGFyc2VyPiBjcmVhdGUoSFRNTERvY3VtZW50KiBkb2N1
bWVudCkKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9wdFJlZihuZXcgVGV4dERvY3VtZW50UGFy
c2VyKGRvY3VtZW50KSk7CisgICAgfQorICAgIHZpcnR1YWwgflRleHREb2N1bWVudFBhcnNlcigp
OworCitwcml2YXRlOgorICAgIGV4cGxpY2l0IFRleHREb2N1bWVudFBhcnNlcihIVE1MRG9jdW1l
bnQqKTsKKworICAgIHZvaWQgaW5zZXJ0RmFrZVByZUVsZW1lbnQoKTsKK307CisKK30KKworI2Vu
ZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL2xvYWRlci9UZXh0RG9jdW1lbnQuY3BwIGIvV2ViQ29y
ZS9sb2FkZXIvVGV4dERvY3VtZW50LmNwcAppbmRleCA0YjA5YTllZGIxNjZjZjE5MjJlYjcyZjBi
ZjA0MjMwZTc0NTZlYzFkLi45MzM0YTM5N2JlZGYyOWM3NmUyM2NjYWM1MGNjMmYxZTk3OWNkYTVk
IDEwMDY0NAotLS0gYS9XZWJDb3JlL2xvYWRlci9UZXh0RG9jdW1lbnQuY3BwCisrKyBiL1dlYkNv
cmUvbG9hZGVyL1RleHREb2N1bWVudC5jcHAKQEAgLTE5LDE4NiArMTksMTYgQEAKICAqIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkKICAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAogICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLiAKKyAqIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCiAgKi8KIAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIlRleHREb2N1bWVu
dC5oIgogCi0jaW5jbHVkZSAiRGVjb2RlZERhdGFEb2N1bWVudFBhcnNlci5oIgotI2luY2x1ZGUg
IkVsZW1lbnQuaCIKLSNpbmNsdWRlICJIVE1MTmFtZXMuaCIKLSNpbmNsdWRlICJIVE1MVmlld1Nv
dXJjZURvY3VtZW50LmgiCi0jaW5jbHVkZSAiU2VnbWVudGVkU3RyaW5nLmgiCi0jaW5jbHVkZSAi
VGV4dC5oIgotCi11c2luZyBuYW1lc3BhY2Ugc3RkOworI2luY2x1ZGUgIlRleHREb2N1bWVudFBh
cnNlci5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLXVzaW5nIG5hbWVzcGFjZSBIVE1MTmFt
ZXM7Ci0KLS8vIEZJWE1FOiBUZXh0RG9jdW1lbnRQYXJzZXIgY291bGQganVzdCBiZSBhbiBIVE1M
RG9jdW1lbnRQYXJzZXIKLS8vIHdoaWNoIHN0YXJ0ZWQgdGhlIFRva2VuaXplciBpbiB0aGUgUGxh
aW5UZXh0IHN0YXRlLgotY2xhc3MgVGV4dERvY3VtZW50UGFyc2VyIDogcHVibGljIERlY29kZWRE
YXRhRG9jdW1lbnRQYXJzZXIgewotcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFRleHRE
b2N1bWVudFBhcnNlcj4gY3JlYXRlKERvY3VtZW50KiBkb2N1bWVudCkKLSAgICB7Ci0gICAgICAg
IHJldHVybiBhZG9wdFJlZihuZXcgVGV4dERvY3VtZW50UGFyc2VyKGRvY3VtZW50KSk7Ci0gICAg
fQotCi0gICAgc3RhdGljIFBhc3NSZWZQdHI8VGV4dERvY3VtZW50UGFyc2VyPiBjcmVhdGUoSFRN
TFZpZXdTb3VyY2VEb2N1bWVudCogZG9jdW1lbnQpCi0gICAgewotICAgICAgICByZXR1cm4gYWRv
cHRSZWYobmV3IFRleHREb2N1bWVudFBhcnNlcihkb2N1bWVudCkpOwotICAgIH0KLQotICAgIHZp
cnR1YWwgflRleHREb2N1bWVudFBhcnNlcigpOwotICAgIAotcHJpdmF0ZToKLSAgICBUZXh0RG9j
dW1lbnRQYXJzZXIoRG9jdW1lbnQqKTsKLSAgICBUZXh0RG9jdW1lbnRQYXJzZXIoSFRNTFZpZXdT
b3VyY2VEb2N1bWVudCopOwotCi0gICAgdmlydHVhbCB2b2lkIGluc2VydChjb25zdCBTZWdtZW50
ZWRTdHJpbmcmKTsKLSAgICB2aXJ0dWFsIHZvaWQgYXBwZW5kKGNvbnN0IFNlZ21lbnRlZFN0cmlu
ZyYpOwotICAgIHZpcnR1YWwgdm9pZCBmaW5pc2goKTsKLSAgICB2aXJ0dWFsIGJvb2wgZmluaXNo
V2FzQ2FsbGVkKCk7Ci0KLSAgICBpbmxpbmUgdm9pZCBjaGVja0J1ZmZlcihpbnQgbGVuID0gMTAp
Ci0gICAgewotICAgICAgICBpZiAoKG1fZGVzdCAtIG1fYnVmZmVyKSA+IG1fc2l6ZSAtIGxlbikg
ewotICAgICAgICAgICAgLy8gRW5sYXJnZSBidWZmZXIKLSAgICAgICAgICAgIGludCBuZXdTaXpl
ID0gc3RkOjptYXgobV9zaXplICogMiwgbV9zaXplICsgbGVuKTsKLSAgICAgICAgICAgIGludCBv
bGRPZmZzZXQgPSBtX2Rlc3QgLSBtX2J1ZmZlcjsKLSAgICAgICAgICAgIG1fYnVmZmVyID0gc3Rh
dGljX2Nhc3Q8VUNoYXIqPihmYXN0UmVhbGxvYyhtX2J1ZmZlciwgbmV3U2l6ZSAqIHNpemVvZihV
Q2hhcikpKTsKLSAgICAgICAgICAgIG1fZGVzdCA9IG1fYnVmZmVyICsgb2xkT2Zmc2V0OwotICAg
ICAgICAgICAgbV9zaXplID0gbmV3U2l6ZTsKLSAgICAgICAgfQotICAgIH0KLQotcHJpdmF0ZToK
LSAgICBFbGVtZW50KiBtX3ByZUVsZW1lbnQ7Ci0KLSAgICBib29sIG1fc2tpcExGOwotICAgIAot
ICAgIGludCBtX3NpemU7Ci0gICAgVUNoYXIqIG1fYnVmZmVyOwotICAgIFVDaGFyKiBtX2Rlc3Q7
Ci19OwotCi1UZXh0RG9jdW1lbnRQYXJzZXI6OlRleHREb2N1bWVudFBhcnNlcihEb2N1bWVudCog
ZG9jdW1lbnQpCi0gICAgOiBEZWNvZGVkRGF0YURvY3VtZW50UGFyc2VyKGRvY3VtZW50KQotICAg
ICwgbV9wcmVFbGVtZW50KDApCi0gICAgLCBtX3NraXBMRihmYWxzZSkKLXsgICAgCi0gICAgLy8g
QWxsb2NhdGUgYnVmZmVyCi0gICAgbV9zaXplID0gMjU0OwotICAgIG1fYnVmZmVyID0gc3RhdGlj
X2Nhc3Q8VUNoYXIqPihmYXN0TWFsbG9jKHNpemVvZihVQ2hhcikgKiBtX3NpemUpKTsKLSAgICBt
X2Rlc3QgPSBtX2J1ZmZlcjsKLX0gICAgCi0KLVRleHREb2N1bWVudFBhcnNlcjo6VGV4dERvY3Vt
ZW50UGFyc2VyKEhUTUxWaWV3U291cmNlRG9jdW1lbnQqIGRvY3VtZW50KQotICAgIDogRGVjb2Rl
ZERhdGFEb2N1bWVudFBhcnNlcihkb2N1bWVudCwgdHJ1ZSkKLSAgICAsIG1fcHJlRWxlbWVudCgw
KQotICAgICwgbV9za2lwTEYoZmFsc2UpCi17ICAgIAotICAgIC8vIEFsbG9jYXRlIGJ1ZmZlcgot
ICAgIG1fc2l6ZSA9IDI1NDsKLSAgICBtX2J1ZmZlciA9IHN0YXRpY19jYXN0PFVDaGFyKj4oZmFz
dE1hbGxvYyhzaXplb2YoVUNoYXIpICogbV9zaXplKSk7Ci0gICAgbV9kZXN0ID0gbV9idWZmZXI7
Ci19Ci0KLVRleHREb2N1bWVudFBhcnNlcjo6flRleHREb2N1bWVudFBhcnNlcigpCi17Ci0gICAg
Ly8gZmluaXNoKCkgc2hvdWxkIGhhdmUgYmVlbiBjYWxsZWQgdG8gcHJldmVudCBhbnkgbGVha3MK
LSAgICBBU1NFUlQoIW1fYnVmZmVyKTsKLX0KLQotdm9pZCBUZXh0RG9jdW1lbnRQYXJzZXI6Omlu
c2VydChjb25zdCBTZWdtZW50ZWRTdHJpbmcmKQotewotICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotfQotCi12b2lkIFRleHREb2N1bWVudFBhcnNlcjo6YXBwZW5kKGNvbnN0IFNlZ21lbnRlZFN0
cmluZyYgcykKLXsKLSAgICBFeGNlcHRpb25Db2RlIGVjOwotCi0gICAgbV9kZXN0ID0gbV9idWZm
ZXI7Ci0gICAgCi0gICAgU2VnbWVudGVkU3RyaW5nIHN0ciA9IHM7Ci0gICAgd2hpbGUgKCFzdHIu
aXNFbXB0eSgpKSB7Ci0gICAgICAgIFVDaGFyIGMgPSAqc3RyOwotICAgICAgICAKLSAgICAgICAg
aWYgKGMgPT0gJ1xyJykgewotICAgICAgICAgICAgKm1fZGVzdCsrID0gJ1xuJzsKLSAgICAgICAg
ICAgIAotICAgICAgICAgICAgLy8gcG9zc2libHkgc2tpcCBhbiBMRiBpbiB0aGUgY2FzZSBvZiBh
biBDUkxGIHNlcXVlbmNlCi0gICAgICAgICAgICBtX3NraXBMRiA9IHRydWU7Ci0gICAgICAgIH0g
ZWxzZSBpZiAoYyA9PSAnXG4nKSB7Ci0gICAgICAgICAgICBpZiAoIW1fc2tpcExGKQotICAgICAg
ICAgICAgICAgICptX2Rlc3QrKyA9IGM7Ci0gICAgICAgICAgICBlbHNlCi0gICAgICAgICAgICAg
ICAgbV9za2lwTEYgPSBmYWxzZTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgICptX2Rl
c3QrKyA9IGM7Ci0gICAgICAgICAgICBtX3NraXBMRiA9IGZhbHNlOwotICAgICAgICB9Ci0gICAg
ICAgIAotICAgICAgICBzdHIuYWR2YW5jZSgpOwotICAgICAgICAKLSAgICAgICAgLy8gTWF5YmUg
ZW5sYXJnZSB0aGUgYnVmZmVyCi0gICAgICAgIGNoZWNrQnVmZmVyKCk7Ci0gICAgfQotCi0gICAg
aWYgKCFtX3ByZUVsZW1lbnQgJiYgIWluVmlld1NvdXJjZU1vZGUoKSkgewotICAgICAgICBSZWZQ
dHI8RWxlbWVudD4gcm9vdEVsZW1lbnQgPSBkb2N1bWVudCgpLT5jcmVhdGVFbGVtZW50KGh0bWxU
YWcsIGZhbHNlKTsKLSAgICAgICAgZG9jdW1lbnQoKS0+YXBwZW5kQ2hpbGQocm9vdEVsZW1lbnQs
IGVjKTsKLQotICAgICAgICBSZWZQdHI8RWxlbWVudD4gYm9keSA9IGRvY3VtZW50KCktPmNyZWF0
ZUVsZW1lbnQoYm9keVRhZywgZmFsc2UpOwotICAgICAgICByb290RWxlbWVudC0+YXBwZW5kQ2hp
bGQoYm9keSwgZWMpOwotCi0gICAgICAgIFJlZlB0cjxFbGVtZW50PiBwcmVFbGVtZW50ID0gZG9j
dW1lbnQoKS0+Y3JlYXRlRWxlbWVudChwcmVUYWcsIGZhbHNlKTsKLSAgICAgICAgcHJlRWxlbWVu
dC0+c2V0QXR0cmlidXRlKCJzdHlsZSIsICJ3b3JkLXdyYXA6IGJyZWFrLXdvcmQ7IHdoaXRlLXNw
YWNlOiBwcmUtd3JhcDsiLCBlYyk7Ci0KLSAgICAgICAgYm9keS0+YXBwZW5kQ2hpbGQocHJlRWxl
bWVudCwgZWMpOwotICAgICAgICAKLSAgICAgICAgbV9wcmVFbGVtZW50ID0gcHJlRWxlbWVudC5n
ZXQoKTsKLSAgICB9IAotICAgIAotICAgIFN0cmluZyBzdHJpbmcgPSBTdHJpbmcobV9idWZmZXIs
IG1fZGVzdCAtIG1fYnVmZmVyKTsKLSAgICBpZiAoaW5WaWV3U291cmNlTW9kZSgpKSB7Ci0gICAg
ICAgIHN0YXRpY19jYXN0PEhUTUxWaWV3U291cmNlRG9jdW1lbnQqPihkb2N1bWVudCgpKS0+YWRk
Vmlld1NvdXJjZVRleHQoc3RyaW5nKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIHVu
c2lnbmVkIGNoYXJzTGVmdCA9IHN0cmluZy5sZW5ndGgoKTsKLSAgICB3aGlsZSAoY2hhcnNMZWZ0
KSB7Ci0gICAgICAgIC8vIHNwbGl0IGxhcmdlIHRleHQgdG8gbm9kZXMgb2YgbWFuYWdlYWJsZSBz
aXplCi0gICAgICAgIFJlZlB0cjxUZXh0PiB0ZXh0ID0gVGV4dDo6Y3JlYXRlV2l0aExlbmd0aExp
bWl0KGRvY3VtZW50KCksIHN0cmluZywgY2hhcnNMZWZ0KTsKLSAgICAgICAgbV9wcmVFbGVtZW50
LT5hcHBlbmRDaGlsZCh0ZXh0LCBlYyk7Ci0gICAgfQotfQotCi12b2lkIFRleHREb2N1bWVudFBh
cnNlcjo6ZmluaXNoKCkKLXsKLSAgICBpZiAoIW1fcHJlRWxlbWVudCkKLSAgICAgICAgYXBwZW5k
KFNlZ21lbnRlZFN0cmluZygpKTsgLy8gQ3JlYXRlIGRvY3VtZW50IHN0cnVjdHVyZSBmb3IgYW4g
ZW1wdHkgdGV4dCBkb2N1bWVudC4KLSAgICBtX3ByZUVsZW1lbnQgPSAwOwotICAgIGZhc3RGcmVl
KG1fYnVmZmVyKTsKLSAgICBtX2J1ZmZlciA9IDA7Ci0gICAgbV9kZXN0ID0gMDsKLQotICAgIC8v
IEZJWE1FOiBTaG91bGQgdGhpcyBjYWxsIGZpbmlzaFBhcnNpbmcgZXZlbiBpZiBtX3BhcnNlclN0
b3BwZWQgaXMgdHJ1ZT8KLSAgICAvLyBTZWUgZXF1aXZhbGVudCBpbXBsZW1lbnRhdGlvbiBpbiBS
YXdEYXRhRG9jdW1lbnRQYXJzZXIuCi0gICAgZG9jdW1lbnQoKS0+ZmluaXNoZWRQYXJzaW5nKCk7
Ci19Ci0KLWJvb2wgVGV4dERvY3VtZW50UGFyc2VyOjpmaW5pc2hXYXNDYWxsZWQoKQotewotICAg
IC8vIGZpbmlzaCgpIGFsd2F5cyBjYWxscyBkb2N1bWVudCgpLT5maW5pc2hlZFBhcnNpbmcoKSBz
byB3ZSdsbCBiZSBkZWxldGVkCi0gICAgLy8gYWZ0ZXIgZmluaXNoKCkuCi0gICAgcmV0dXJuIGZh
bHNlOwotfQotCiBUZXh0RG9jdW1lbnQ6OlRleHREb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0
IEtVUkwmIHVybCkKICAgICA6IEhUTUxEb2N1bWVudChmcmFtZSwgdXJsKQogewpAQCAtMjExLDkg
KzQxLDQgQEAgUGFzc1JlZlB0cjxEb2N1bWVudFBhcnNlcj4gVGV4dERvY3VtZW50OjpjcmVhdGVQ
YXJzZXIoKQogICAgIHJldHVybiBUZXh0RG9jdW1lbnRQYXJzZXI6OmNyZWF0ZSh0aGlzKTsKIH0K
IAotUGFzc1JlZlB0cjxEb2N1bWVudFBhcnNlcj4gY3JlYXRlVGV4dERvY3VtZW50UGFyc2VyKEhU
TUxWaWV3U291cmNlRG9jdW1lbnQqIGRvY3VtZW50KQotewotICAgIHJldHVybiBUZXh0RG9jdW1l
bnRQYXJzZXI6OmNyZWF0ZShkb2N1bWVudCk7Ci19Ci0KIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUv
bG9hZGVyL1RleHREb2N1bWVudC5oIGIvV2ViQ29yZS9sb2FkZXIvVGV4dERvY3VtZW50LmgKaW5k
ZXggZDViZjE1Mzk2MGQ3YjIxMjZlZGZiNWM4NjA0YjVkZDNiZmZiNDA0Zi4uMmVhNDlmODFhODA4
ZTk2N2JmNjk0MjBiZmYwNDBhYjBkZWI1MGU4MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9sb2FkZXIv
VGV4dERvY3VtZW50LmgKKysrIGIvV2ViQ29yZS9sb2FkZXIvVGV4dERvY3VtZW50LmgKQEAgLTI5
LDggKzI5LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBIVE1MVmlld1NvdXJj
ZURvY3VtZW50OwotCiBjbGFzcyBUZXh0RG9jdW1lbnQgOiBwdWJsaWMgSFRNTERvY3VtZW50IHsK
IHB1YmxpYzoKICAgICBzdGF0aWMgUGFzc1JlZlB0cjxUZXh0RG9jdW1lbnQ+IGNyZWF0ZShGcmFt
ZSogZnJhbWUsIGNvbnN0IEtVUkwmIHVybCkKQEAgLTQ0LDggKzQyLDYgQEAgcHJpdmF0ZToKICAg
ICB2aXJ0dWFsIFBhc3NSZWZQdHI8RG9jdW1lbnRQYXJzZXI+IGNyZWF0ZVBhcnNlcigpOwogfTsK
IAotUGFzc1JlZlB0cjxEb2N1bWVudFBhcnNlcj4gY3JlYXRlVGV4dERvY3VtZW50UGFyc2VyKEhU
TUxWaWV3U291cmNlRG9jdW1lbnQqKTsKLQogfQogCi0jZW5kaWYgLy8gVGV4dERvY3VtZW50X2gK
KyNlbmRpZgo=
</data>
<flag name="commit-queue"
          id="55910"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
      

    </bug>

</bugzilla>