<?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>100089</bug_id>
          
          <creation_ts>2012-10-23 01:32:23 -0700</creation_ts>
          <short_desc>[EFL][WK2] Make Policy client a C++ class</short_desc>
          <delta_ts>2012-10-23 05:32:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit EFL</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>99992</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mikhail Pozdnyakov">mikhail.pozdnyakov</reporter>
          <assigned_to name="Mikhail Pozdnyakov">mikhail.pozdnyakov</assigned_to>
          <cc>gyuyoung.kim</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kenneth</cc>
    
    <cc>lucas.de.marchi</cc>
    
    <cc>rakuco</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>748369</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-23 01:32:23 -0700</bug_when>
    <thetext>As part of https://bugs.webkit.org/show_bug.cgi?id=99992, we should convert the policy client to C++.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748431</commentid>
    <comment_count>1</comment_count>
      <attachid>170100</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-23 02:52:59 -0700</bug_when>
    <thetext>Created attachment 170100
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748433</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 02:56:46 -0700</bug_when>
    <thetext>Attachment 170100 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebKit2/ChangeLog&apos;, u&apos;Source/WebKit...&quot; exit_code: 1
Source/WebKit2/UIProcess/efl/PagePolicyClientEfl.h:45:  The parameter name &quot;navigationType&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/UIProcess/efl/PagePolicyClientEfl.h:45:  The parameter name &quot;modifiers&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/UIProcess/efl/PagePolicyClientEfl.h:45:  The parameter name &quot;mouseButton&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/UIProcess/efl/PagePolicyClientEfl.h:45:  The parameter name &quot;request&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Source/WebKit2/UIProcess/efl/PagePolicyClientEfl.h:45:  The parameter name &quot;listener&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 5 in 5 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748438</commentid>
    <comment_count>3</comment_count>
      <attachid>170102</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-23 03:02:31 -0700</bug_when>
    <thetext>Created attachment 170102
patch v2

removed unnecessary parameters to satisfy style checker</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748448</commentid>
    <comment_count>4</comment_count>
      <attachid>170102</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2012-10-23 03:14:05 -0700</bug_when>
    <thetext>Comment on attachment 170102
patch v2

LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748477</commentid>
    <comment_count>5</comment_count>
      <attachid>170102</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 04:08:05 -0700</bug_when>
    <thetext>Comment on attachment 170102
patch v2

Rejecting attachment 170102 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 2

Last 500 characters of output:
t/git/webkit-commit-queue/Source/WebKit/chromium/v8 --revision 12787 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
50&gt;At revision 12787.

________ running &apos;/usr/bin/python tools/clang/scripts/update.py --mac-only&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;

________ running &apos;/usr/bin/python gyp_webkit&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
Updating webkit projects from gyp files...

Full output: http://queues.webkit.org/results/14491827</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748513</commentid>
    <comment_count>6</comment_count>
      <attachid>170128</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-23 05:06:00 -0700</bug_when>
    <thetext>Created attachment 170128
to be landed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748516</commentid>
    <comment_count>7</comment_count>
      <attachid>170129</attachid>
    <who name="Mikhail Pozdnyakov">mikhail.pozdnyakov</who>
    <bug_when>2012-10-23 05:07:54 -0700</bug_when>
    <thetext>Created attachment 170129
rebased</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748530</commentid>
    <comment_count>8</comment_count>
      <attachid>170129</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 05:32:00 -0700</bug_when>
    <thetext>Comment on attachment 170129
rebased

Clearing flags on attachment: 170129

Committed r132208: &lt;http://trac.webkit.org/changeset/132208&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>748531</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-23 05:32:04 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170100</attachid>
            <date>2012-10-23 02:52:59 -0700</date>
            <delta_ts>2012-10-23 03:02:31 -0700</delta_ts>
            <desc>patch</desc>
            <filename>bug100089</filename>
            <type>text/plain</type>
            <size>20117</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGJlNjEwMzdiOGMyNGYyYjExOWNjZDJiMjNiODQ5YjYzNzJkYWVmNDgKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VHVlIE9jdCAyMyAxMjo0NzoxOCAyMDEyICswMzAwCgogICAgYnVnMTAwMDg5CgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGZkMmY0N2UuLmQ3N2NkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMi0x
MC0yMyAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdIE1ha2UgUG9saWN5IGNsaWVudCBhIEMrKyBjbGFzcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDg5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBwYWdlIHBv
bGljeSBjbGllbnQgYSBDKysgY2xhc3MgYW5kIHJlbW92ZSBpdCBmcm9tIEFQSSBmb2xkZXIuCisK
KyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlldy5jcHA6CisgICAgICAgIChFd2tfVmlld19Qcml2YXRlX0RhdGEpOgorICAgICAg
ICAoX2V3a192aWV3X2luaXRpYWxpemUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvUGFnZVBv
bGljeUNsaWVudEVmbC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50LmNwcC4KKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChXZWJLaXQ6OnRvUGFnZVBvbGljeUNsaWVudEVmbCk6CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VQb2xpY3lDbGllbnRFZmw6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlUG9saWN5Q2xpZW50RWZsOjpkZWNpZGVQb2xpY3lGb3JOZXdX
aW5kb3dBY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlUG9saWN5Q2xpZW50RWZsOjpkZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVBvbGlj
eUNsaWVudEVmbDo6UGFnZVBvbGljeUNsaWVudEVmbCk6CisgICAgICAgICogVUlQcm9jZXNzL2Vm
bC9QYWdlUG9saWN5Q2xpZW50RWZsLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50X3ByaXZhdGUuaC4KKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgIChQYWdlUG9saWN5Q2xpZW50RWZsKToKKyAgICAgICAgKFdlYktp
dDo6UGFnZVBvbGljeUNsaWVudEVmbDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVBv
bGljeUNsaWVudEVmbDo6dmlldyk6CisKIDIwMTItMTAtMjMgIENocmlzdG9waGUgRHVtZXogIDxj
aHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIE1ha2UgcGFn
ZSBsb2FkIGNsaWVudCBhIEMrKyBjbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCAz
YjA2MmFlLi41YTIzZWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5j
bWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNzMsMTIgKzcz
LDEyIEBAIExJU1QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9BUEkvZWZs
L2V3a192aWV3LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2ZpbmRfY2xpZW50
LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2Zvcm1fY2xpZW50LmNwcAotICAg
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3BvbGljeV9jbGllbnQuY3BwCiAgICAgVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXdfdWlfY2xpZW50LmNwcAogCiAgICAgVUlQcm9jZXNzL2NhaXJv
L0JhY2tpbmdTdG9yZUNhaXJvLmNwcAogCiAgICAgVUlQcm9jZXNzL2VmbC9QYWdlTG9hZENsaWVu
dEVmbC5jcHAKKyAgICBVSVByb2Nlc3MvZWZsL1BhZ2VQb2xpY3lDbGllbnRFZmwuY3BwCiAgICAg
VUlQcm9jZXNzL2VmbC9SZXNvdXJjZUxvYWRDbGllbnRFZmwuY3BwCiAgICAgVUlQcm9jZXNzL2Vm
bC9UZXh0Q2hlY2tlckVmbC5jcHAKICAgICBVSVByb2Nlc3MvZWZsL1dlYkNvbnRleHRFZmwuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKaW5kZXgg
ZmM5NTVlYy4uMDU2NDViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a192aWV3LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVs
RXZlbnQuaCIKICNpbmNsdWRlICJQYWdlQ2xpZW50SW1wbC5oIgogI2luY2x1ZGUgIlBhZ2VMb2Fk
Q2xpZW50RWZsLmgiCisjaW5jbHVkZSAiUGFnZVBvbGljeUNsaWVudEVmbC5oIgogI2luY2x1ZGUg
IlJlZlB0ckVmbC5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZENsaWVudEVmbC5oIgogI2luY2x1
ZGUgIldLQVBJQ2FzdC5oIgpAQCAtNTMsNyArNTQsNiBAQAogI2luY2x1ZGUgImV3a19zZXR0aW5n
c19wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfZmluZF9jbGllbnRfcHJpdmF0ZS5oIgog
I2luY2x1ZGUgImV3a192aWV3X2Zvcm1fY2xpZW50X3ByaXZhdGUuaCIKLSNpbmNsdWRlICJld2tf
dmlld19wb2xpY3lfY2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19wcml2YXRl
LmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfdWlfY2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlIDxF
Y29yZV9FdmFzLmg+CkBAIC0xMTksNiArMTE5LDcgQEAgc3RydWN0IEV3a19WaWV3X1ByaXZhdGVf
RGF0YSB7CiAjZW5kaWYKICAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBwYWdlUHJveHk7CiAgICAg
T3duUHRyPFBhZ2VMb2FkQ2xpZW50RWZsPiBwYWdlTG9hZENsaWVudDsKKyAgICBPd25QdHI8UGFn
ZVBvbGljeUNsaWVudEVmbD4gcGFnZVBvbGljeUNsaWVudDsKICAgICBPd25QdHI8UmVzb3VyY2VM
b2FkQ2xpZW50RWZsPiByZXNvdXJjZUxvYWRDbGllbnQ7CiAKICAgICBXS0VpbmFTaGFyZWRTdHJp
bmcgdXJsOwpAQCAtODMyLDEzICs4MzMsMTMgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X2luaXRp
YWxpemUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV3a19Db250ZXh0KiBjb250ZXh0LCBXS1AKICAg
ICBXS1BhZ2VSZWYgd2tQYWdlID0gdG9BUEkocHJpdi0+cGFnZVByb3h5LmdldCgpKTsKICAgICBl
d2tfdmlld19maW5kX2NsaWVudF9hdHRhY2god2tQYWdlLCBld2tWaWV3KTsKICAgICBld2tfdmll
d19mb3JtX2NsaWVudF9hdHRhY2god2tQYWdlLCBld2tWaWV3KTsKLSAgICBld2tfdmlld19wb2xp
Y3lfY2xpZW50X2F0dGFjaCh3a1BhZ2UsIGV3a1ZpZXcpOwogICAgIGV3a192aWV3X3VpX2NsaWVu
dF9hdHRhY2god2tQYWdlLCBld2tWaWV3KTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAg
ICAgcHJpdi0+cGFnZVByb3h5LT5mdWxsU2NyZWVuTWFuYWdlcigpLT5zZXRXZWJWaWV3KGV3a1Zp
ZXcpOwogICAgIGV3a19zZXR0aW5nc19mdWxsc2NyZWVuX2VuYWJsZWRfc2V0KHByaXYtPnNldHRp
bmdzLmdldCgpLCB0cnVlKTsKICNlbmRpZgogICAgIHByaXYtPnBhZ2VMb2FkQ2xpZW50ID0gUGFn
ZUxvYWRDbGllbnRFZmw6OmNyZWF0ZShld2tWaWV3KTsKKyAgICBwcml2LT5wYWdlUG9saWN5Q2xp
ZW50ID0gUGFnZVBvbGljeUNsaWVudEVmbDo6Y3JlYXRlKGV3a1ZpZXcpOwogICAgIHByaXYtPnJl
c291cmNlTG9hZENsaWVudCA9IFJlc291cmNlTG9hZENsaWVudEVmbDo6Y3JlYXRlKGV3a1ZpZXcp
OwogCiAgICAgLyogTGlzdGVuIGZvciBmYXZpY29uIGNoYW5nZXMgKi8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3BvbGljeV9jbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVu
dC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkZWM5ZjYuLjAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVu
dC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiV0tGcmFtZS5oIgotI2luY2x1ZGUg
IldLRnJhbWVQb2xpY3lMaXN0ZW5lci5oIgotI2luY2x1ZGUgImV3a19uYXZpZ2F0aW9uX3BvbGlj
eV9kZWNpc2lvbi5oIgotI2luY2x1ZGUgImV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9w
cml2YXRlLmgiCi0jaW5jbHVkZSAiZXdrX3ZpZXdfcG9saWN5X2NsaWVudF9wcml2YXRlLmgiCi0j
aW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvSFRUUFN0YXR1
c0NvZGVzLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCi11c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLXN0YXRpYyBpbmxpbmUgRXZh
c19PYmplY3QqIHRvRXdrVmlldyhjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8p
KTsKLX0KLQotc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1Bh
Z2VSZWYsIFdLRnJhbWVSZWYsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwg
V0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRv
biwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0
ZW5lciwgV0tUeXBlUmVmIC8qdXNlckRhdGEqLywgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsK
LSAgICBSZWZQdHI8RXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uPiBkZWNpc2lvbiA9IEV3
a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbjo6Y3JlYXRlKG5hdmlnYXRpb25UeXBlLCBtb3Vz
ZUJ1dHRvbiwgbW9kaWZpZXJzLCByZXF1ZXN0LCAwLCBsaXN0ZW5lcik7Ci0gICAgZXdrX3ZpZXdf
bmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24odG9Fd2tWaWV3KGNsaWVudEluZm8pLCBkZWNpc2lv
bi5nZXQoKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlv
bihXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9u
VHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3Vz
ZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLU3RyaW5nUmVmIGZyYW1lTmFtZSwg
V0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgLyp1c2VyRGF0YSov
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIFJlZlB0cjxFd2tfTmF2aWdhdGlvbl9Q
b2xpY3lfRGVjaXNpb24+IGRlY2lzaW9uID0gRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9u
OjpjcmVhdGUobmF2aWdhdGlvblR5cGUsIG1vdXNlQnV0dG9uLCBtb2RpZmllcnMsIHJlcXVlc3Qs
IHRvSW1wbChmcmFtZU5hbWUpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsaXN0ZW5lcik7Ci0g
ICAgZXdrX3ZpZXdfbmV3X3dpbmRvd19wb2xpY3lfZGVjaXNpb24odG9Fd2tWaWV3KGNsaWVudElu
Zm8pLCBkZWNpc2lvbi5nZXQoKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvclJl
c3BvbnNlQ2FsbGJhY2soV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1VSTFJlc3BvbnNl
UmVmIHJlc3BvbnNlLCBXS1VSTFJlcXVlc3RSZWYsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBs
aXN0ZW5lciwgV0tUeXBlUmVmIC8qdXNlckRhdGEqLywgY29uc3Qgdm9pZCogLypjbGllbnRJbmZv
Ki8pCi17Ci0gICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSByZXNvdXJjZVJlc3BvbnNlID0gdG9J
bXBsKHJlc3BvbnNlKS0+cmVzb3VyY2VSZXNwb25zZSgpOwotCi0gICAgLy8gSWdub3JlIHJlc3Bv
bnNlcyB3aXRoIGFuIEhUVFAgc3RhdHVzIGNvZGUgb2YgMjA0IChObyBDb250ZW50KQotICAgIGlm
IChyZXNvdXJjZVJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPT0gSFRUUE5vQ29udGVudCkgewot
ICAgICAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJJZ25vcmUobGlzdGVuZXIpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgLy8gSWYgdGhlIFVSTCBSZXNwb25zZSBoYXMgIkNvbnRlbnQt
RGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IiBoZWFkZXIsIHRoZW4KLSAgICAvLyB3ZSBzaG91bGQg
ZG93bmxvYWQgaXQuCi0gICAgaWYgKHJlc291cmNlUmVzcG9uc2UuaXNBdHRhY2htZW50KCkpIHsK
LSAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyRG93bmxvYWQobGlzdGVuZXIpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0gICAgU3RyaW5nIG1pbWVUeXBlID0gdG9JbXBsKHJlc3BvbnNl
KS0+cmVzb3VyY2VSZXNwb25zZSgpLm1pbWVUeXBlKCkubG93ZXIoKTsKLSAgICBib29sIGNhblNo
b3dNSU1FVHlwZSA9IHRvSW1wbChmcmFtZSktPmNhblNob3dNSU1FVHlwZShtaW1lVHlwZSk7Ci0g
ICAgaWYgKFdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpIHsKLSAgICAgICAgaWYgKGNhblNob3dN
SU1FVHlwZSkgewotICAgICAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKGxpc3RlbmVy
KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIElmIHdlIGNh
bid0IHVzZSAoc2hvdykgaXQgdGhlbiB3ZSBzaG91bGQgZG93bmxvYWQgaXQuCi0gICAgICAgIFdL
RnJhbWVQb2xpY3lMaXN0ZW5lckRvd25sb2FkKGxpc3RlbmVyKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIC8vIFdlIHNob3VsZCBpZ25vcmUgZG93bmxvYWRhYmxlIHRvcC1sZXZlbCBj
b250ZW50IGZvciBzdWJmcmFtZXMsIHdpdGggYW4gZXhjZXB0aW9uIGZvciB0ZXh0L3htbCBhbmQg
YXBwbGljYXRpb24veG1sIHNvIHdlIGNhbiBzdGlsbCBzdXBwb3J0IEFjaWQzIHRlc3QuCi0gICAg
Ly8gSXQgbWFrZXMgdGhlIGJyb3dzZXIgaW50ZW50aW9uYWxseSBiZWhhdmUgZGlmZmVyZW50bHkg
d2hlbiBpdCBjb21lcyB0byB0ZXh0KGFwcGxpY2F0aW9uKS94bWwgY29udGVudCBpbiBzdWJmcmFt
ZXMgdnMuIG1haW5mcmFtZS4KLSAgICBpZiAoIWNhblNob3dNSU1FVHlwZSAmJiAhKG1pbWVUeXBl
ID09ICJ0ZXh0L3htbCIgfHwgbWltZVR5cGUgPT0gImFwcGxpY2F0aW9uL3htbCIpKSB7Ci0gICAg
ICAgIFdLRnJhbWVQb2xpY3lMaXN0ZW5lcklnbm9yZShsaXN0ZW5lcik7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2UobGlzdGVuZXIpOwotfQot
Ci12b2lkIGV3a192aWV3X3BvbGljeV9jbGllbnRfYXR0YWNoKFdLUGFnZVJlZiBwYWdlUmVmLCBF
dmFzX09iamVjdCogZXdrVmlldykKLXsKLSAgICBXS1BhZ2VQb2xpY3lDbGllbnQgcG9saWN5Q2xp
ZW50OwotICAgIG1lbXNldCgmcG9saWN5Q2xpZW50LCAwLCBzaXplb2YoV0tQYWdlUG9saWN5Q2xp
ZW50KSk7Ci0gICAgcG9saWN5Q2xpZW50LnZlcnNpb24gPSBrV0tQYWdlUG9saWN5Q2xpZW50Q3Vy
cmVudFZlcnNpb247Ci0gICAgcG9saWN5Q2xpZW50LmNsaWVudEluZm8gPSBld2tWaWV3OwotICAg
IHBvbGljeUNsaWVudC5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uID0gZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjsKLSAgICBwb2xpY3lDbGllbnQuZGVjaWRlUG9saWN5Rm9y
TmV3V2luZG93QWN0aW9uID0gZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uOwotICAgIHBv
bGljeUNsaWVudC5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZSA9IGRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlQ2FsbGJhY2s7Ci0KLSAgICBXS1BhZ2VTZXRQYWdlUG9saWN5Q2xpZW50KHBhZ2VSZWYsICZw
b2xpY3lDbGllbnQpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVudF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50X3ByaXZhdGUuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzY3MjQ4ZC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50X3ByaXZhdGUuaAor
KysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIg
SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5k
ZWYgZXdrX3ZpZXdfcG9saWN5X2NsaWVudF9wcml2YXRlX2gKLSNkZWZpbmUgZXdrX3ZpZXdfcG9s
aWN5X2NsaWVudF9wcml2YXRlX2gKLQotI2luY2x1ZGUgPEV2YXMuaD4KLSNpbmNsdWRlIDxXZWJL
aXQyL1dLQmFzZS5oPgotCi12b2lkIGV3a192aWV3X3BvbGljeV9jbGllbnRfYXR0YWNoKFdLUGFn
ZVJlZiBwYWdlUmVmLCBFdmFzX09iamVjdCogZXdrVmlldyk7Ci0KLSNlbmRpZiAvLyBld2tfdmll
d19wb2xpY3lfY2xpZW50X3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9QYWdlUG9saWN5Q2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvUGFnZVBvbGljeUNsaWVudEVmbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uOTAzZjFkYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvUGFnZVBvbGljeUNsaWVudEVmbC5jcHAKQEAgLTAsMCArMSwxMTMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYWdlUG9s
aWN5Q2xpZW50RWZsLmgiCisKKyNpbmNsdWRlICJXS0ZyYW1lLmgiCisjaW5jbHVkZSAiV0tGcmFt
ZVBvbGljeUxpc3RlbmVyLmgiCisjaW5jbHVkZSAiZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lz
aW9uLmgiCisjaW5jbHVkZSAiZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX3ByaXZhdGUu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBTdGF0dXNDb2Rlcy5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworc3RhdGljIGlubGluZSBQYWdlUG9saWN5Q2xpZW50RWZsKiB0b1BhZ2VQb2xpY3lD
bGllbnRFZmwoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8UGFnZVBvbGljeUNsaWVudEVmbCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsK
K30KKwordm9pZCBQYWdlUG9saWN5Q2xpZW50RWZsOjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmln
YXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9u
IG1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tGcmFtZVBvbGljeUxpc3Rl
bmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgLyp1c2VyRGF0YSovLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQoreworICAgIFJlZlB0cjxFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24+IGRl
Y2lzaW9uID0gRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOjpjcmVhdGUobmF2aWdhdGlv
blR5cGUsIG1vdXNlQnV0dG9uLCBtb2RpZmllcnMsIHJlcXVlc3QsIDAsIGxpc3RlbmVyKTsKKyAg
ICBld2tfdmlld19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbih0b1BhZ2VQb2xpY3lDbGllbnRF
ZmwoY2xpZW50SW5mbyktPm1fdmlldywgZGVjaXNpb24uZ2V0KCkpOworfQorCit2b2lkIFBhZ2VQ
b2xpY3lDbGllbnRFZmw6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXS1BhZ2VSZWYs
IFdLRnJhbWVSZWYsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVu
dE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tV
UkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLU3RyaW5nUmVmIGZyYW1lTmFtZSwgV0tGcmFtZVBvbGlj
eUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgLyp1c2VyRGF0YSovLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQoreworICAgIFJlZlB0cjxFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNp
b24+IGRlY2lzaW9uID0gRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOjpjcmVhdGUobmF2
aWdhdGlvblR5cGUsIG1vdXNlQnV0dG9uLCBtb2RpZmllcnMsIHJlcXVlc3QsIHRvSW1wbChmcmFt
ZU5hbWUpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsaXN0ZW5lcik7CisgICAgZXdrX3ZpZXdf
bmV3X3dpbmRvd19wb2xpY3lfZGVjaXNpb24odG9QYWdlUG9saWN5Q2xpZW50RWZsKGNsaWVudElu
Zm8pLT5tX3ZpZXcsIGRlY2lzaW9uLmdldCgpKTsKK30KKwordm9pZCBQYWdlUG9saWN5Q2xpZW50
RWZsOjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZUNhbGxiYWNrKFdLUGFnZVJlZiwgV0tGcmFtZVJl
ZiBmcmFtZSwgV0tVUkxSZXNwb25zZVJlZiByZXNwb25zZSwgV0tVUkxSZXF1ZXN0UmVmLCBXS0Zy
YW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiAvKnVzZXJEYXRhKi8sIGNv
bnN0IHZvaWQqIC8qY2xpZW50SW5mbyovKQoreworICAgIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCisgICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSByZXNvdXJjZVJlc3BvbnNlID0gdG9JbXBs
KHJlc3BvbnNlKS0+cmVzb3VyY2VSZXNwb25zZSgpOworCisgICAgLy8gSWdub3JlIHJlc3BvbnNl
cyB3aXRoIGFuIEhUVFAgc3RhdHVzIGNvZGUgb2YgMjA0IChObyBDb250ZW50KQorICAgIGlmIChy
ZXNvdXJjZVJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPT0gSFRUUE5vQ29udGVudCkgeworICAg
ICAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJJZ25vcmUobGlzdGVuZXIpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgLy8gSWYgdGhlIFVSTCBSZXNwb25zZSBoYXMgIkNvbnRlbnQtRGlz
cG9zaXRpb246IGF0dGFjaG1lbnQ7IiBoZWFkZXIsIHRoZW4KKyAgICAvLyB3ZSBzaG91bGQgZG93
bmxvYWQgaXQuCisgICAgaWYgKHJlc291cmNlUmVzcG9uc2UuaXNBdHRhY2htZW50KCkpIHsKKyAg
ICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyRG93bmxvYWQobGlzdGVuZXIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgU3RyaW5nIG1pbWVUeXBlID0gdG9JbXBsKHJlc3BvbnNlKS0+
cmVzb3VyY2VSZXNwb25zZSgpLm1pbWVUeXBlKCkubG93ZXIoKTsKKyAgICBib29sIGNhblNob3dN
SU1FVHlwZSA9IHRvSW1wbChmcmFtZSktPmNhblNob3dNSU1FVHlwZShtaW1lVHlwZSk7CisgICAg
aWYgKFdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpIHsKKyAgICAgICAgaWYgKGNhblNob3dNSU1F
VHlwZSkgeworICAgICAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKGxpc3RlbmVyKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElmIHdlIGNhbid0
IHVzZSAoc2hvdykgaXQgdGhlbiB3ZSBzaG91bGQgZG93bmxvYWQgaXQuCisgICAgICAgIFdLRnJh
bWVQb2xpY3lMaXN0ZW5lckRvd25sb2FkKGxpc3RlbmVyKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIC8vIFdlIHNob3VsZCBpZ25vcmUgZG93bmxvYWRhYmxlIHRvcC1sZXZlbCBjb250
ZW50IGZvciBzdWJmcmFtZXMsIHdpdGggYW4gZXhjZXB0aW9uIGZvciB0ZXh0L3htbCBhbmQgYXBw
bGljYXRpb24veG1sIHNvIHdlIGNhbiBzdGlsbCBzdXBwb3J0IEFjaWQzIHRlc3QuCisgICAgLy8g
SXQgbWFrZXMgdGhlIGJyb3dzZXIgaW50ZW50aW9uYWxseSBiZWhhdmUgZGlmZmVyZW50bHkgd2hl
biBpdCBjb21lcyB0byB0ZXh0KGFwcGxpY2F0aW9uKS94bWwgY29udGVudCBpbiBzdWJmcmFtZXMg
dnMuIG1haW5mcmFtZS4KKyAgICBpZiAoIWNhblNob3dNSU1FVHlwZSAmJiAhKG1pbWVUeXBlID09
ICJ0ZXh0L3htbCIgfHwgbWltZVR5cGUgPT0gImFwcGxpY2F0aW9uL3htbCIpKSB7CisgICAgICAg
IFdLRnJhbWVQb2xpY3lMaXN0ZW5lcklnbm9yZShsaXN0ZW5lcik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2UobGlzdGVuZXIpOworfQorCitQ
YWdlUG9saWN5Q2xpZW50RWZsOjpQYWdlUG9saWN5Q2xpZW50RWZsKEV2YXNfT2JqZWN0KiB2aWV3
KQorICAgIDogbV92aWV3KHZpZXcpCit7CisgICAgV0tQYWdlUmVmIHBhZ2VSZWYgPSBld2tfdmll
d193a3BhZ2VfZ2V0KG1fdmlldyk7CisgICAgQVNTRVJUKHBhZ2VSZWYpOworCisgICAgV0tQYWdl
UG9saWN5Q2xpZW50IHBvbGljeUNsaWVudDsKKyAgICBtZW1zZXQoJnBvbGljeUNsaWVudCwgMCwg
c2l6ZW9mKFdLUGFnZVBvbGljeUNsaWVudCkpOworICAgIHBvbGljeUNsaWVudC52ZXJzaW9uID0g
a1dLUGFnZVBvbGljeUNsaWVudEN1cnJlbnRWZXJzaW9uOworICAgIHBvbGljeUNsaWVudC5jbGll
bnRJbmZvID0gdGhpczsKKyAgICBwb2xpY3lDbGllbnQuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbiA9IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb247CisgICAgcG9saWN5Q2xp
ZW50LmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbiA9IGRlY2lkZVBvbGljeUZvck5ld1dp
bmRvd0FjdGlvbjsKKyAgICBwb2xpY3lDbGllbnQuZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UgPSBk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZUNhbGxiYWNrOworCisgICAgV0tQYWdlU2V0UGFnZVBvbGlj
eUNsaWVudChwYWdlUmVmLCAmcG9saWN5Q2xpZW50KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VQb2xpY3lD
bGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVBvbGljeUNsaWVu
dEVmbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjMyMjdjMjAKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VQb2xpY3lDbGll
bnRFZmwuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVs
IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBh
Z2VQb2xpY3lDbGllbnRFZmxfaAorI2RlZmluZSBQYWdlUG9saWN5Q2xpZW50RWZsX2gKKworI2lu
Y2x1ZGUgImV3a192aWV3X3ByaXZhdGUuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUGFnZVBvbGljeUNsaWVudEVmbCB7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8UGFnZVBvbGljeUNsaWVudEVmbD4gY3JlYXRlKEV2
YXNfT2JqZWN0KiB2aWV3KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYWdl
UG9saWN5Q2xpZW50RWZsKHZpZXcpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQg
UGFnZVBvbGljeUNsaWVudEVmbChFdmFzX09iamVjdCogdmlldyk7CisKKyAgICBzdGF0aWMgdm9p
ZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwg
V0tGcmFtZU5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0
b24sIFdLVVJMUmVxdWVzdFJlZiwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmLCBXS1R5cGVSZWYs
IGNvbnN0IHZvaWQqKTsKKyAgICBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dB
Y3Rpb24oV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS0ZyYW1lTmF2aWdhdGlvblR5cGUgbmF2aWdh
dGlvblR5cGUsIFdLRXZlbnRNb2RpZmllcnMgbW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24g
bW91c2VCdXR0b24sIFdLVVJMUmVxdWVzdFJlZiByZXF1ZXN0LCBXS1N0cmluZ1JlZiBmcmFtZU5h
bWUsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBlUmVmIC8qdXNlckRh
dGEqLywgY29uc3Qgdm9pZCogY2xpZW50SW5mbyk7CisgICAgc3RhdGljIHZvaWQgZGVjaWRlUG9s
aWN5Rm9yUmVzcG9uc2VDYWxsYmFjayhXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLVVJMUmVzcG9u
c2VSZWYsIFdLVVJMUmVxdWVzdFJlZiwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmLCBXS1R5cGVS
ZWYsIGNvbnN0IHZvaWQqKTsKKworICAgIEV2YXNfT2JqZWN0KiBtX3ZpZXc7Cit9OworCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBhZ2VQb2xpY3lDbGllbnRFZmxfaAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170102</attachid>
            <date>2012-10-23 03:02:31 -0700</date>
            <delta_ts>2012-10-23 05:06:00 -0700</delta_ts>
            <desc>patch v2</desc>
            <filename>bug100089_v2</filename>
            <type>text/plain</type>
            <size>20029</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDcwMWZjM2IzMDBhNjE5YTg3NTllMGE1YzNhMWMxMTUxNDZiMGRmZTAKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VHVlIE9jdCAyMyAxMjo0NzoxOCAyMDEyICswMzAwCgogICAgYnVnMTAwMDg5CgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGZkMmY0N2UuLmQ3N2NkY2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMi0x
MC0yMyAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdIE1ha2UgUG9saWN5IGNsaWVudCBhIEMrKyBjbGFzcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDg5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSBwYWdlIHBv
bGljeSBjbGllbnQgYSBDKysgY2xhc3MgYW5kIHJlbW92ZSBpdCBmcm9tIEFQSSBmb2xkZXIuCisK
KyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlldy5jcHA6CisgICAgICAgIChFd2tfVmlld19Qcml2YXRlX0RhdGEpOgorICAgICAg
ICAoX2V3a192aWV3X2luaXRpYWxpemUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9lZmwvUGFnZVBv
bGljeUNsaWVudEVmbC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50LmNwcC4KKyAgICAgICAgKFdlYktpdCk6Cisg
ICAgICAgIChXZWJLaXQ6OnRvUGFnZVBvbGljeUNsaWVudEVmbCk6CisgICAgICAgIChXZWJLaXQ6
OlBhZ2VQb2xpY3lDbGllbnRFZmw6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgor
ICAgICAgICAoV2ViS2l0OjpQYWdlUG9saWN5Q2xpZW50RWZsOjpkZWNpZGVQb2xpY3lGb3JOZXdX
aW5kb3dBY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlUG9saWN5Q2xpZW50RWZsOjpkZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVBvbGlj
eUNsaWVudEVmbDo6UGFnZVBvbGljeUNsaWVudEVmbCk6CisgICAgICAgICogVUlQcm9jZXNzL2Vm
bC9QYWdlUG9saWN5Q2xpZW50RWZsLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50X3ByaXZhdGUuaC4KKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgIChQYWdlUG9saWN5Q2xpZW50RWZsKToKKyAgICAgICAgKFdlYktp
dDo6UGFnZVBvbGljeUNsaWVudEVmbDo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UGFnZVBv
bGljeUNsaWVudEVmbDo6dmlldyk6CisKIDIwMTItMTAtMjMgIENocmlzdG9waGUgRHVtZXogIDxj
aHJpc3RvcGhlLmR1bWV6QGludGVsLmNvbT4KIAogICAgICAgICBbRUZMXVtXSzJdIE1ha2UgcGFn
ZSBsb2FkIGNsaWVudCBhIEMrKyBjbGFzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQppbmRleCAz
YjA2MmFlLi41YTIzZWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5j
bWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFrZQpAQCAtNzMsMTIgKzcz
LDEyIEBAIExJU1QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIFVJUHJvY2Vzcy9BUEkvZWZs
L2V3a192aWV3LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2ZpbmRfY2xpZW50
LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2Zvcm1fY2xpZW50LmNwcAotICAg
IFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3BvbGljeV9jbGllbnQuY3BwCiAgICAgVUlQcm9j
ZXNzL0FQSS9lZmwvZXdrX3ZpZXdfdWlfY2xpZW50LmNwcAogCiAgICAgVUlQcm9jZXNzL2NhaXJv
L0JhY2tpbmdTdG9yZUNhaXJvLmNwcAogCiAgICAgVUlQcm9jZXNzL2VmbC9QYWdlTG9hZENsaWVu
dEVmbC5jcHAKKyAgICBVSVByb2Nlc3MvZWZsL1BhZ2VQb2xpY3lDbGllbnRFZmwuY3BwCiAgICAg
VUlQcm9jZXNzL2VmbC9SZXNvdXJjZUxvYWRDbGllbnRFZmwuY3BwCiAgICAgVUlQcm9jZXNzL2Vm
bC9UZXh0Q2hlY2tlckVmbC5jcHAKICAgICBVSVByb2Nlc3MvZWZsL1dlYkNvbnRleHRFZmwuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKaW5kZXgg
ZmM5NTVlYy4uMDU2NDViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a192aWV3LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVs
RXZlbnQuaCIKICNpbmNsdWRlICJQYWdlQ2xpZW50SW1wbC5oIgogI2luY2x1ZGUgIlBhZ2VMb2Fk
Q2xpZW50RWZsLmgiCisjaW5jbHVkZSAiUGFnZVBvbGljeUNsaWVudEVmbC5oIgogI2luY2x1ZGUg
IlJlZlB0ckVmbC5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZENsaWVudEVmbC5oIgogI2luY2x1
ZGUgIldLQVBJQ2FzdC5oIgpAQCAtNTMsNyArNTQsNiBAQAogI2luY2x1ZGUgImV3a19zZXR0aW5n
c19wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfZmluZF9jbGllbnRfcHJpdmF0ZS5oIgog
I2luY2x1ZGUgImV3a192aWV3X2Zvcm1fY2xpZW50X3ByaXZhdGUuaCIKLSNpbmNsdWRlICJld2tf
dmlld19wb2xpY3lfY2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19wcml2YXRl
LmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfdWlfY2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlIDxF
Y29yZV9FdmFzLmg+CkBAIC0xMTksNiArMTE5LDcgQEAgc3RydWN0IEV3a19WaWV3X1ByaXZhdGVf
RGF0YSB7CiAjZW5kaWYKICAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBwYWdlUHJveHk7CiAgICAg
T3duUHRyPFBhZ2VMb2FkQ2xpZW50RWZsPiBwYWdlTG9hZENsaWVudDsKKyAgICBPd25QdHI8UGFn
ZVBvbGljeUNsaWVudEVmbD4gcGFnZVBvbGljeUNsaWVudDsKICAgICBPd25QdHI8UmVzb3VyY2VM
b2FkQ2xpZW50RWZsPiByZXNvdXJjZUxvYWRDbGllbnQ7CiAKICAgICBXS0VpbmFTaGFyZWRTdHJp
bmcgdXJsOwpAQCAtODMyLDEzICs4MzMsMTMgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X2luaXRp
YWxpemUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIEV3a19Db250ZXh0KiBjb250ZXh0LCBXS1AKICAg
ICBXS1BhZ2VSZWYgd2tQYWdlID0gdG9BUEkocHJpdi0+cGFnZVByb3h5LmdldCgpKTsKICAgICBl
d2tfdmlld19maW5kX2NsaWVudF9hdHRhY2god2tQYWdlLCBld2tWaWV3KTsKICAgICBld2tfdmll
d19mb3JtX2NsaWVudF9hdHRhY2god2tQYWdlLCBld2tWaWV3KTsKLSAgICBld2tfdmlld19wb2xp
Y3lfY2xpZW50X2F0dGFjaCh3a1BhZ2UsIGV3a1ZpZXcpOwogICAgIGV3a192aWV3X3VpX2NsaWVu
dF9hdHRhY2god2tQYWdlLCBld2tWaWV3KTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAg
ICAgcHJpdi0+cGFnZVByb3h5LT5mdWxsU2NyZWVuTWFuYWdlcigpLT5zZXRXZWJWaWV3KGV3a1Zp
ZXcpOwogICAgIGV3a19zZXR0aW5nc19mdWxsc2NyZWVuX2VuYWJsZWRfc2V0KHByaXYtPnNldHRp
bmdzLmdldCgpLCB0cnVlKTsKICNlbmRpZgogICAgIHByaXYtPnBhZ2VMb2FkQ2xpZW50ID0gUGFn
ZUxvYWRDbGllbnRFZmw6OmNyZWF0ZShld2tWaWV3KTsKKyAgICBwcml2LT5wYWdlUG9saWN5Q2xp
ZW50ID0gUGFnZVBvbGljeUNsaWVudEVmbDo6Y3JlYXRlKGV3a1ZpZXcpOwogICAgIHByaXYtPnJl
c291cmNlTG9hZENsaWVudCA9IFJlc291cmNlTG9hZENsaWVudEVmbDo6Y3JlYXRlKGV3a1ZpZXcp
OwogCiAgICAgLyogTGlzdGVuIGZvciBmYXZpY29uIGNoYW5nZXMgKi8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3BvbGljeV9jbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVu
dC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkZWM5ZjYuLjAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVu
dC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiV0tGcmFtZS5oIgotI2luY2x1ZGUg
IldLRnJhbWVQb2xpY3lMaXN0ZW5lci5oIgotI2luY2x1ZGUgImV3a19uYXZpZ2F0aW9uX3BvbGlj
eV9kZWNpc2lvbi5oIgotI2luY2x1ZGUgImV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9w
cml2YXRlLmgiCi0jaW5jbHVkZSAiZXdrX3ZpZXdfcG9saWN5X2NsaWVudF9wcml2YXRlLmgiCi0j
aW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvSFRUUFN0YXR1
c0NvZGVzLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCi11c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLXN0YXRpYyBpbmxpbmUgRXZh
c19PYmplY3QqIHRvRXdrVmlldyhjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8p
KTsKLX0KLQotc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1Bh
Z2VSZWYsIFdLRnJhbWVSZWYsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwg
V0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRv
biwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0
ZW5lciwgV0tUeXBlUmVmIC8qdXNlckRhdGEqLywgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsK
LSAgICBSZWZQdHI8RXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uPiBkZWNpc2lvbiA9IEV3
a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbjo6Y3JlYXRlKG5hdmlnYXRpb25UeXBlLCBtb3Vz
ZUJ1dHRvbiwgbW9kaWZpZXJzLCByZXF1ZXN0LCAwLCBsaXN0ZW5lcik7Ci0gICAgZXdrX3ZpZXdf
bmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24odG9Fd2tWaWV3KGNsaWVudEluZm8pLCBkZWNpc2lv
bi5nZXQoKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlv
bihXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9u
VHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3Vz
ZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLU3RyaW5nUmVmIGZyYW1lTmFtZSwg
V0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgLyp1c2VyRGF0YSov
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIFJlZlB0cjxFd2tfTmF2aWdhdGlvbl9Q
b2xpY3lfRGVjaXNpb24+IGRlY2lzaW9uID0gRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9u
OjpjcmVhdGUobmF2aWdhdGlvblR5cGUsIG1vdXNlQnV0dG9uLCBtb2RpZmllcnMsIHJlcXVlc3Qs
IHRvSW1wbChmcmFtZU5hbWUpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsaXN0ZW5lcik7Ci0g
ICAgZXdrX3ZpZXdfbmV3X3dpbmRvd19wb2xpY3lfZGVjaXNpb24odG9Fd2tWaWV3KGNsaWVudElu
Zm8pLCBkZWNpc2lvbi5nZXQoKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvclJl
c3BvbnNlQ2FsbGJhY2soV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1VSTFJlc3BvbnNl
UmVmIHJlc3BvbnNlLCBXS1VSTFJlcXVlc3RSZWYsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBs
aXN0ZW5lciwgV0tUeXBlUmVmIC8qdXNlckRhdGEqLywgY29uc3Qgdm9pZCogLypjbGllbnRJbmZv
Ki8pCi17Ci0gICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSByZXNvdXJjZVJlc3BvbnNlID0gdG9J
bXBsKHJlc3BvbnNlKS0+cmVzb3VyY2VSZXNwb25zZSgpOwotCi0gICAgLy8gSWdub3JlIHJlc3Bv
bnNlcyB3aXRoIGFuIEhUVFAgc3RhdHVzIGNvZGUgb2YgMjA0IChObyBDb250ZW50KQotICAgIGlm
IChyZXNvdXJjZVJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPT0gSFRUUE5vQ29udGVudCkgewot
ICAgICAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJJZ25vcmUobGlzdGVuZXIpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgLy8gSWYgdGhlIFVSTCBSZXNwb25zZSBoYXMgIkNvbnRlbnQt
RGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IiBoZWFkZXIsIHRoZW4KLSAgICAvLyB3ZSBzaG91bGQg
ZG93bmxvYWQgaXQuCi0gICAgaWYgKHJlc291cmNlUmVzcG9uc2UuaXNBdHRhY2htZW50KCkpIHsK
LSAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyRG93bmxvYWQobGlzdGVuZXIpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0gICAgU3RyaW5nIG1pbWVUeXBlID0gdG9JbXBsKHJlc3BvbnNl
KS0+cmVzb3VyY2VSZXNwb25zZSgpLm1pbWVUeXBlKCkubG93ZXIoKTsKLSAgICBib29sIGNhblNo
b3dNSU1FVHlwZSA9IHRvSW1wbChmcmFtZSktPmNhblNob3dNSU1FVHlwZShtaW1lVHlwZSk7Ci0g
ICAgaWYgKFdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpIHsKLSAgICAgICAgaWYgKGNhblNob3dN
SU1FVHlwZSkgewotICAgICAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKGxpc3RlbmVy
KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIElmIHdlIGNh
bid0IHVzZSAoc2hvdykgaXQgdGhlbiB3ZSBzaG91bGQgZG93bmxvYWQgaXQuCi0gICAgICAgIFdL
RnJhbWVQb2xpY3lMaXN0ZW5lckRvd25sb2FkKGxpc3RlbmVyKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIC8vIFdlIHNob3VsZCBpZ25vcmUgZG93bmxvYWRhYmxlIHRvcC1sZXZlbCBj
b250ZW50IGZvciBzdWJmcmFtZXMsIHdpdGggYW4gZXhjZXB0aW9uIGZvciB0ZXh0L3htbCBhbmQg
YXBwbGljYXRpb24veG1sIHNvIHdlIGNhbiBzdGlsbCBzdXBwb3J0IEFjaWQzIHRlc3QuCi0gICAg
Ly8gSXQgbWFrZXMgdGhlIGJyb3dzZXIgaW50ZW50aW9uYWxseSBiZWhhdmUgZGlmZmVyZW50bHkg
d2hlbiBpdCBjb21lcyB0byB0ZXh0KGFwcGxpY2F0aW9uKS94bWwgY29udGVudCBpbiBzdWJmcmFt
ZXMgdnMuIG1haW5mcmFtZS4KLSAgICBpZiAoIWNhblNob3dNSU1FVHlwZSAmJiAhKG1pbWVUeXBl
ID09ICJ0ZXh0L3htbCIgfHwgbWltZVR5cGUgPT0gImFwcGxpY2F0aW9uL3htbCIpKSB7Ci0gICAg
ICAgIFdLRnJhbWVQb2xpY3lMaXN0ZW5lcklnbm9yZShsaXN0ZW5lcik7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2UobGlzdGVuZXIpOwotfQot
Ci12b2lkIGV3a192aWV3X3BvbGljeV9jbGllbnRfYXR0YWNoKFdLUGFnZVJlZiBwYWdlUmVmLCBF
dmFzX09iamVjdCogZXdrVmlldykKLXsKLSAgICBXS1BhZ2VQb2xpY3lDbGllbnQgcG9saWN5Q2xp
ZW50OwotICAgIG1lbXNldCgmcG9saWN5Q2xpZW50LCAwLCBzaXplb2YoV0tQYWdlUG9saWN5Q2xp
ZW50KSk7Ci0gICAgcG9saWN5Q2xpZW50LnZlcnNpb24gPSBrV0tQYWdlUG9saWN5Q2xpZW50Q3Vy
cmVudFZlcnNpb247Ci0gICAgcG9saWN5Q2xpZW50LmNsaWVudEluZm8gPSBld2tWaWV3OwotICAg
IHBvbGljeUNsaWVudC5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uID0gZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjsKLSAgICBwb2xpY3lDbGllbnQuZGVjaWRlUG9saWN5Rm9y
TmV3V2luZG93QWN0aW9uID0gZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uOwotICAgIHBv
bGljeUNsaWVudC5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZSA9IGRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlQ2FsbGJhY2s7Ci0KLSAgICBXS1BhZ2VTZXRQYWdlUG9saWN5Q2xpZW50KHBhZ2VSZWYsICZw
b2xpY3lDbGllbnQpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVudF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50X3ByaXZhdGUuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzY3MjQ4ZC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50X3ByaXZhdGUuaAor
KysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIg
SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5k
ZWYgZXdrX3ZpZXdfcG9saWN5X2NsaWVudF9wcml2YXRlX2gKLSNkZWZpbmUgZXdrX3ZpZXdfcG9s
aWN5X2NsaWVudF9wcml2YXRlX2gKLQotI2luY2x1ZGUgPEV2YXMuaD4KLSNpbmNsdWRlIDxXZWJL
aXQyL1dLQmFzZS5oPgotCi12b2lkIGV3a192aWV3X3BvbGljeV9jbGllbnRfYXR0YWNoKFdLUGFn
ZVJlZiBwYWdlUmVmLCBFdmFzX09iamVjdCogZXdrVmlldyk7Ci0KLSNlbmRpZiAvLyBld2tfdmll
d19wb2xpY3lfY2xpZW50X3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9QYWdlUG9saWN5Q2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvUGFnZVBvbGljeUNsaWVudEVmbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uOTAzZjFkYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvUGFnZVBvbGljeUNsaWVudEVmbC5jcHAKQEAgLTAsMCArMSwxMTMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYWdlUG9s
aWN5Q2xpZW50RWZsLmgiCisKKyNpbmNsdWRlICJXS0ZyYW1lLmgiCisjaW5jbHVkZSAiV0tGcmFt
ZVBvbGljeUxpc3RlbmVyLmgiCisjaW5jbHVkZSAiZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lz
aW9uLmgiCisjaW5jbHVkZSAiZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX3ByaXZhdGUu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBTdGF0dXNDb2Rlcy5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworc3RhdGljIGlubGluZSBQYWdlUG9saWN5Q2xpZW50RWZsKiB0b1BhZ2VQb2xpY3lD
bGllbnRFZmwoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8UGFnZVBvbGljeUNsaWVudEVmbCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsK
K30KKwordm9pZCBQYWdlUG9saWN5Q2xpZW50RWZsOjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmln
YXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9u
IG1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tGcmFtZVBvbGljeUxpc3Rl
bmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgLyp1c2VyRGF0YSovLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQoreworICAgIFJlZlB0cjxFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24+IGRl
Y2lzaW9uID0gRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOjpjcmVhdGUobmF2aWdhdGlv
blR5cGUsIG1vdXNlQnV0dG9uLCBtb2RpZmllcnMsIHJlcXVlc3QsIDAsIGxpc3RlbmVyKTsKKyAg
ICBld2tfdmlld19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbih0b1BhZ2VQb2xpY3lDbGllbnRF
ZmwoY2xpZW50SW5mbyktPm1fdmlldywgZGVjaXNpb24uZ2V0KCkpOworfQorCit2b2lkIFBhZ2VQ
b2xpY3lDbGllbnRFZmw6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXS1BhZ2VSZWYs
IFdLRnJhbWVSZWYsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVu
dE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tV
UkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLU3RyaW5nUmVmIGZyYW1lTmFtZSwgV0tGcmFtZVBvbGlj
eUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgLyp1c2VyRGF0YSovLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQoreworICAgIFJlZlB0cjxFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNp
b24+IGRlY2lzaW9uID0gRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOjpjcmVhdGUobmF2
aWdhdGlvblR5cGUsIG1vdXNlQnV0dG9uLCBtb2RpZmllcnMsIHJlcXVlc3QsIHRvSW1wbChmcmFt
ZU5hbWUpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsaXN0ZW5lcik7CisgICAgZXdrX3ZpZXdf
bmV3X3dpbmRvd19wb2xpY3lfZGVjaXNpb24odG9QYWdlUG9saWN5Q2xpZW50RWZsKGNsaWVudElu
Zm8pLT5tX3ZpZXcsIGRlY2lzaW9uLmdldCgpKTsKK30KKwordm9pZCBQYWdlUG9saWN5Q2xpZW50
RWZsOjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZUNhbGxiYWNrKFdLUGFnZVJlZiwgV0tGcmFtZVJl
ZiBmcmFtZSwgV0tVUkxSZXNwb25zZVJlZiByZXNwb25zZSwgV0tVUkxSZXF1ZXN0UmVmLCBXS0Zy
YW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiAvKnVzZXJEYXRhKi8sIGNv
bnN0IHZvaWQqIC8qY2xpZW50SW5mbyovKQoreworICAgIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCisgICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSByZXNvdXJjZVJlc3BvbnNlID0gdG9JbXBs
KHJlc3BvbnNlKS0+cmVzb3VyY2VSZXNwb25zZSgpOworCisgICAgLy8gSWdub3JlIHJlc3BvbnNl
cyB3aXRoIGFuIEhUVFAgc3RhdHVzIGNvZGUgb2YgMjA0IChObyBDb250ZW50KQorICAgIGlmIChy
ZXNvdXJjZVJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPT0gSFRUUE5vQ29udGVudCkgeworICAg
ICAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJJZ25vcmUobGlzdGVuZXIpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgLy8gSWYgdGhlIFVSTCBSZXNwb25zZSBoYXMgIkNvbnRlbnQtRGlz
cG9zaXRpb246IGF0dGFjaG1lbnQ7IiBoZWFkZXIsIHRoZW4KKyAgICAvLyB3ZSBzaG91bGQgZG93
bmxvYWQgaXQuCisgICAgaWYgKHJlc291cmNlUmVzcG9uc2UuaXNBdHRhY2htZW50KCkpIHsKKyAg
ICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyRG93bmxvYWQobGlzdGVuZXIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgU3RyaW5nIG1pbWVUeXBlID0gdG9JbXBsKHJlc3BvbnNlKS0+
cmVzb3VyY2VSZXNwb25zZSgpLm1pbWVUeXBlKCkubG93ZXIoKTsKKyAgICBib29sIGNhblNob3dN
SU1FVHlwZSA9IHRvSW1wbChmcmFtZSktPmNhblNob3dNSU1FVHlwZShtaW1lVHlwZSk7CisgICAg
aWYgKFdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpIHsKKyAgICAgICAgaWYgKGNhblNob3dNSU1F
VHlwZSkgeworICAgICAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKGxpc3RlbmVyKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElmIHdlIGNhbid0
IHVzZSAoc2hvdykgaXQgdGhlbiB3ZSBzaG91bGQgZG93bmxvYWQgaXQuCisgICAgICAgIFdLRnJh
bWVQb2xpY3lMaXN0ZW5lckRvd25sb2FkKGxpc3RlbmVyKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIC8vIFdlIHNob3VsZCBpZ25vcmUgZG93bmxvYWRhYmxlIHRvcC1sZXZlbCBjb250
ZW50IGZvciBzdWJmcmFtZXMsIHdpdGggYW4gZXhjZXB0aW9uIGZvciB0ZXh0L3htbCBhbmQgYXBw
bGljYXRpb24veG1sIHNvIHdlIGNhbiBzdGlsbCBzdXBwb3J0IEFjaWQzIHRlc3QuCisgICAgLy8g
SXQgbWFrZXMgdGhlIGJyb3dzZXIgaW50ZW50aW9uYWxseSBiZWhhdmUgZGlmZmVyZW50bHkgd2hl
biBpdCBjb21lcyB0byB0ZXh0KGFwcGxpY2F0aW9uKS94bWwgY29udGVudCBpbiBzdWJmcmFtZXMg
dnMuIG1haW5mcmFtZS4KKyAgICBpZiAoIWNhblNob3dNSU1FVHlwZSAmJiAhKG1pbWVUeXBlID09
ICJ0ZXh0L3htbCIgfHwgbWltZVR5cGUgPT0gImFwcGxpY2F0aW9uL3htbCIpKSB7CisgICAgICAg
IFdLRnJhbWVQb2xpY3lMaXN0ZW5lcklnbm9yZShsaXN0ZW5lcik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2UobGlzdGVuZXIpOworfQorCitQ
YWdlUG9saWN5Q2xpZW50RWZsOjpQYWdlUG9saWN5Q2xpZW50RWZsKEV2YXNfT2JqZWN0KiB2aWV3
KQorICAgIDogbV92aWV3KHZpZXcpCit7CisgICAgV0tQYWdlUmVmIHBhZ2VSZWYgPSBld2tfdmll
d193a3BhZ2VfZ2V0KG1fdmlldyk7CisgICAgQVNTRVJUKHBhZ2VSZWYpOworCisgICAgV0tQYWdl
UG9saWN5Q2xpZW50IHBvbGljeUNsaWVudDsKKyAgICBtZW1zZXQoJnBvbGljeUNsaWVudCwgMCwg
c2l6ZW9mKFdLUGFnZVBvbGljeUNsaWVudCkpOworICAgIHBvbGljeUNsaWVudC52ZXJzaW9uID0g
a1dLUGFnZVBvbGljeUNsaWVudEN1cnJlbnRWZXJzaW9uOworICAgIHBvbGljeUNsaWVudC5jbGll
bnRJbmZvID0gdGhpczsKKyAgICBwb2xpY3lDbGllbnQuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbiA9IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb247CisgICAgcG9saWN5Q2xp
ZW50LmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbiA9IGRlY2lkZVBvbGljeUZvck5ld1dp
bmRvd0FjdGlvbjsKKyAgICBwb2xpY3lDbGllbnQuZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UgPSBk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZUNhbGxiYWNrOworCisgICAgV0tQYWdlU2V0UGFnZVBvbGlj
eUNsaWVudChwYWdlUmVmLCAmcG9saWN5Q2xpZW50KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VQb2xpY3lD
bGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVBvbGljeUNsaWVu
dEVmbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5MjI4NGUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VQb2xpY3lDbGll
bnRFZmwuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVs
IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBh
Z2VQb2xpY3lDbGllbnRFZmxfaAorI2RlZmluZSBQYWdlUG9saWN5Q2xpZW50RWZsX2gKKworI2lu
Y2x1ZGUgImV3a192aWV3X3ByaXZhdGUuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUGFnZVBvbGljeUNsaWVudEVmbCB7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8UGFnZVBvbGljeUNsaWVudEVmbD4gY3JlYXRlKEV2
YXNfT2JqZWN0KiB2aWV3KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYWdl
UG9saWN5Q2xpZW50RWZsKHZpZXcpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQg
UGFnZVBvbGljeUNsaWVudEVmbChFdmFzX09iamVjdCogdmlldyk7CisKKyAgICBzdGF0aWMgdm9p
ZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwg
V0tGcmFtZU5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0
b24sIFdLVVJMUmVxdWVzdFJlZiwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmLCBXS1R5cGVSZWYs
IGNvbnN0IHZvaWQqKTsKKyAgICBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dB
Y3Rpb24oV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS0ZyYW1lTmF2aWdhdGlvblR5cGUsIFdLRXZl
bnRNb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0UmVmLCBXS1N0cmlu
Z1JlZiwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqKTsK
KyAgICBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZUNhbGxiYWNrKFdLUGFnZVJl
ZiwgV0tGcmFtZVJlZiwgV0tVUkxSZXNwb25zZVJlZiwgV0tVUkxSZXF1ZXN0UmVmLCBXS0ZyYW1l
UG9saWN5TGlzdGVuZXJSZWYsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCopOworCisgICAgRXZhc19P
YmplY3QqIG1fdmlldzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
UGFnZVBvbGljeUNsaWVudEVmbF9oCg==
</data>
<flag name="review"
          id="183594"
          type_id="1"
          status="+"
          setter="kenneth"
    />
    <flag name="commit-queue"
          id="183595"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170128</attachid>
            <date>2012-10-23 05:06:00 -0700</date>
            <delta_ts>2012-10-23 05:07:54 -0700</delta_ts>
            <desc>to be landed</desc>
            <filename>bug100089_v3</filename>
            <type>text/plain</type>
            <size>20086</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IDJhMzFlY2E4NTVlMzcxMmUxOWM0NWFlYmExYjFmOWEwM2RiNGY1NjEKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VHVlIE9jdCAyMyAxMjo0NzoxOCAyMDEyICswMzAwCgogICAgYnVnMTAwMDg5CgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IGI5YWIwMjQuLjE3MTBkMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAxMi0x
MC0yMyAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
KworICAgICAgICBbRUZMXVtXSzJdIE1ha2UgUG9saWN5IGNsaWVudCBhIEMrKyBjbGFzcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDg5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAgICAgICAg
TWFrZSBwYWdlIHBvbGljeSBjbGllbnQgYSBDKysgY2xhc3MgYW5kIHJlbW92ZSBpdCBmcm9tIEFQ
SSBmb2xkZXIuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChFd2tfVmlld19Qcml2YXRlX0Rh
dGEpOgorICAgICAgICAoX2V3a192aWV3X2luaXRpYWxpemUpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9lZmwvUGFnZVBvbGljeUNsaWVudEVmbC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50LmNwcC4KKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OnRvUGFnZVBvbGljeUNsaWVudEVmbCk6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VQb2xpY3lDbGllbnRFZmw6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlUG9saWN5Q2xpZW50RWZsOjpkZWNpZGVQ
b2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlUG9saWN5Q2xp
ZW50RWZsOjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYktp
dDo6UGFnZVBvbGljeUNsaWVudEVmbDo6UGFnZVBvbGljeUNsaWVudEVmbCk6CisgICAgICAgICog
VUlQcm9jZXNzL2VmbC9QYWdlUG9saWN5Q2xpZW50RWZsLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50X3ByaXZhdGUu
aC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChQYWdlUG9saWN5Q2xpZW50RWZsKToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZVBvbGljeUNsaWVudEVmbDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6UGFnZVBvbGljeUNsaWVudEVmbDo6dmlldyk6CisKIDIwMTItMTAtMjMgIEFuZHJlYXMg
S2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgogCiAgICAgICAgIFtXSzJdIFJFR1JFU1NJT04ocjEz
MjE2OSk6IEl0IGJyb2tlIGFsbCBwbHVnaW4gcmVsYXRlZCB0ZXN0LgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVm
bC5jbWFrZQppbmRleCAzOWY4MzkzLi41NmRmNjg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9QbGF0Zm9ybUVmbC5jbWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybUVmbC5jbWFr
ZQpAQCAtNzIsMTMgKzcyLDEzIEBAIExJU1QoQVBQRU5EIFdlYktpdDJfU09VUkNFUwogICAgIFVJ
UHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192
aWV3X2ZpbmRfY2xpZW50LmNwcAogICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X2Zvcm1f
Y2xpZW50LmNwcAotICAgIFVJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3BvbGljeV9jbGllbnQu
Y3BwCiAgICAgVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfdWlfY2xpZW50LmNwcAogCiAgICAg
VUlQcm9jZXNzL2NhaXJvL0JhY2tpbmdTdG9yZUNhaXJvLmNwcAogCiAgICAgVUlQcm9jZXNzL2Vm
bC9Eb3dubG9hZE1hbmFnZXJFZmwuY3BwCiAgICAgVUlQcm9jZXNzL2VmbC9QYWdlTG9hZENsaWVu
dEVmbC5jcHAKKyAgICBVSVByb2Nlc3MvZWZsL1BhZ2VQb2xpY3lDbGllbnRFZmwuY3BwCiAgICAg
VUlQcm9jZXNzL2VmbC9SZXNvdXJjZUxvYWRDbGllbnRFZmwuY3BwCiAgICAgVUlQcm9jZXNzL2Vm
bC9UZXh0Q2hlY2tlckVmbC5jcHAKICAgICBVSVByb2Nlc3MvZWZsL1dlYkNvbnRleHRFZmwuY3Bw
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKaW5kZXgg
ZTc3NzUxOS4uN2E2Njk3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZs
L2V3a192aWV3LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIk5hdGl2ZVdlYldoZWVs
RXZlbnQuaCIKICNpbmNsdWRlICJQYWdlQ2xpZW50SW1wbC5oIgogI2luY2x1ZGUgIlBhZ2VMb2Fk
Q2xpZW50RWZsLmgiCisjaW5jbHVkZSAiUGFnZVBvbGljeUNsaWVudEVmbC5oIgogI2luY2x1ZGUg
IlJlZlB0ckVmbC5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZENsaWVudEVmbC5oIgogI2luY2x1
ZGUgIldLQVBJQ2FzdC5oIgpAQCAtNTMsNyArNTQsNiBAQAogI2luY2x1ZGUgImV3a19zZXR0aW5n
c19wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfZmluZF9jbGllbnRfcHJpdmF0ZS5oIgog
I2luY2x1ZGUgImV3a192aWV3X2Zvcm1fY2xpZW50X3ByaXZhdGUuaCIKLSNpbmNsdWRlICJld2tf
dmlld19wb2xpY3lfY2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19wcml2YXRl
LmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfdWlfY2xpZW50X3ByaXZhdGUuaCIKICNpbmNsdWRlIDxF
Y29yZV9FdmFzLmg+CkBAIC0xMTksNiArMTE5LDcgQEAgc3RydWN0IEV3a19WaWV3X1ByaXZhdGVf
RGF0YSB7CiAjZW5kaWYKICAgICBSZWZQdHI8V2ViUGFnZVByb3h5PiBwYWdlUHJveHk7CiAgICAg
T3duUHRyPFBhZ2VMb2FkQ2xpZW50RWZsPiBwYWdlTG9hZENsaWVudDsKKyAgICBPd25QdHI8UGFn
ZVBvbGljeUNsaWVudEVmbD4gcGFnZVBvbGljeUNsaWVudDsKICAgICBPd25QdHI8UmVzb3VyY2VM
b2FkQ2xpZW50RWZsPiByZXNvdXJjZUxvYWRDbGllbnQ7CiAKICAgICBXS0VpbmFTaGFyZWRTdHJp
bmcgdXJsOwpAQCAtODMwLDEzICs4MzEsMTMgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3X2luaXRp
YWxpemUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIFBhc3NSZWZQdHI8RXdrX0NvbnRleHQ+IGMKICAg
ICBXS1BhZ2VSZWYgd2tQYWdlID0gdG9BUEkocHJpdi0+cGFnZVByb3h5LmdldCgpKTsKICAgICBl
d2tfdmlld19maW5kX2NsaWVudF9hdHRhY2god2tQYWdlLCBld2tWaWV3KTsKICAgICBld2tfdmll
d19mb3JtX2NsaWVudF9hdHRhY2god2tQYWdlLCBld2tWaWV3KTsKLSAgICBld2tfdmlld19wb2xp
Y3lfY2xpZW50X2F0dGFjaCh3a1BhZ2UsIGV3a1ZpZXcpOwogICAgIGV3a192aWV3X3VpX2NsaWVu
dF9hdHRhY2god2tQYWdlLCBld2tWaWV3KTsKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAg
ICAgcHJpdi0+cGFnZVByb3h5LT5mdWxsU2NyZWVuTWFuYWdlcigpLT5zZXRXZWJWaWV3KGV3a1Zp
ZXcpOwogICAgIGV3a19zZXR0aW5nc19mdWxsc2NyZWVuX2VuYWJsZWRfc2V0KHByaXYtPnNldHRp
bmdzLmdldCgpLCB0cnVlKTsKICNlbmRpZgogICAgIHByaXYtPnBhZ2VMb2FkQ2xpZW50ID0gUGFn
ZUxvYWRDbGllbnRFZmw6OmNyZWF0ZShld2tWaWV3KTsKKyAgICBwcml2LT5wYWdlUG9saWN5Q2xp
ZW50ID0gUGFnZVBvbGljeUNsaWVudEVmbDo6Y3JlYXRlKGV3a1ZpZXcpOwogICAgIHByaXYtPnJl
c291cmNlTG9hZENsaWVudCA9IFJlc291cmNlTG9hZENsaWVudEVmbDo6Y3JlYXRlKGV3a1ZpZXcp
OwogCiAgICAgLyogTGlzdGVuIGZvciBmYXZpY29uIGNoYW5nZXMgKi8KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3X3BvbGljeV9jbGllbnQuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVu
dC5jcHAKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJkZWM5ZjYuLjAwMDAwMDAKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVu
dC5jcHAKKysrIC9kZXYvbnVsbApAQCAtMSwxMDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAo
QykgMjAxMiBJbnRlbCBDb3Jwb3JhdGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
LSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
LSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0g
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8K
LQotI2luY2x1ZGUgImNvbmZpZy5oIgotCi0jaW5jbHVkZSAiV0tGcmFtZS5oIgotI2luY2x1ZGUg
IldLRnJhbWVQb2xpY3lMaXN0ZW5lci5oIgotI2luY2x1ZGUgImV3a19uYXZpZ2F0aW9uX3BvbGlj
eV9kZWNpc2lvbi5oIgotI2luY2x1ZGUgImV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9w
cml2YXRlLmgiCi0jaW5jbHVkZSAiZXdrX3ZpZXdfcG9saWN5X2NsaWVudF9wcml2YXRlLmgiCi0j
aW5jbHVkZSAiZXdrX3ZpZXdfcHJpdmF0ZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvSFRUUFN0YXR1
c0NvZGVzLmg+Ci0jaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgotCi11c2luZyBuYW1lc3Bh
Y2UgV2ViQ29yZTsKLXVzaW5nIG5hbWVzcGFjZSBXZWJLaXQ7Ci0KLXN0YXRpYyBpbmxpbmUgRXZh
c19PYmplY3QqIHRvRXdrVmlldyhjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIHJldHVy
biBzdGF0aWNfY2FzdDxFdmFzX09iamVjdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8p
KTsKLX0KLQotc3RhdGljIHZvaWQgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1Bh
Z2VSZWYsIFdLRnJhbWVSZWYsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwg
V0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRv
biwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0
ZW5lciwgV0tUeXBlUmVmIC8qdXNlckRhdGEqLywgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsK
LSAgICBSZWZQdHI8RXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uPiBkZWNpc2lvbiA9IEV3
a19OYXZpZ2F0aW9uX1BvbGljeV9EZWNpc2lvbjo6Y3JlYXRlKG5hdmlnYXRpb25UeXBlLCBtb3Vz
ZUJ1dHRvbiwgbW9kaWZpZXJzLCByZXF1ZXN0LCAwLCBsaXN0ZW5lcik7Ci0gICAgZXdrX3ZpZXdf
bmF2aWdhdGlvbl9wb2xpY3lfZGVjaXNpb24odG9Fd2tWaWV3KGNsaWVudEluZm8pLCBkZWNpc2lv
bi5nZXQoKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlv
bihXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9u
VHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3Vz
ZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLU3RyaW5nUmVmIGZyYW1lTmFtZSwg
V0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgLyp1c2VyRGF0YSov
LCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIFJlZlB0cjxFd2tfTmF2aWdhdGlvbl9Q
b2xpY3lfRGVjaXNpb24+IGRlY2lzaW9uID0gRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9u
OjpjcmVhdGUobmF2aWdhdGlvblR5cGUsIG1vdXNlQnV0dG9uLCBtb2RpZmllcnMsIHJlcXVlc3Qs
IHRvSW1wbChmcmFtZU5hbWUpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsaXN0ZW5lcik7Ci0g
ICAgZXdrX3ZpZXdfbmV3X3dpbmRvd19wb2xpY3lfZGVjaXNpb24odG9Fd2tWaWV3KGNsaWVudElu
Zm8pLCBkZWNpc2lvbi5nZXQoKSk7Ci19Ci0KLXN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvclJl
c3BvbnNlQ2FsbGJhY2soV0tQYWdlUmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1VSTFJlc3BvbnNl
UmVmIHJlc3BvbnNlLCBXS1VSTFJlcXVlc3RSZWYsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBs
aXN0ZW5lciwgV0tUeXBlUmVmIC8qdXNlckRhdGEqLywgY29uc3Qgdm9pZCogLypjbGllbnRJbmZv
Ki8pCi17Ci0gICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSByZXNvdXJjZVJlc3BvbnNlID0gdG9J
bXBsKHJlc3BvbnNlKS0+cmVzb3VyY2VSZXNwb25zZSgpOwotCi0gICAgLy8gSWdub3JlIHJlc3Bv
bnNlcyB3aXRoIGFuIEhUVFAgc3RhdHVzIGNvZGUgb2YgMjA0IChObyBDb250ZW50KQotICAgIGlm
IChyZXNvdXJjZVJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPT0gSFRUUE5vQ29udGVudCkgewot
ICAgICAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJJZ25vcmUobGlzdGVuZXIpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCi0gICAgLy8gSWYgdGhlIFVSTCBSZXNwb25zZSBoYXMgIkNvbnRlbnQt
RGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7IiBoZWFkZXIsIHRoZW4KLSAgICAvLyB3ZSBzaG91bGQg
ZG93bmxvYWQgaXQuCi0gICAgaWYgKHJlc291cmNlUmVzcG9uc2UuaXNBdHRhY2htZW50KCkpIHsK
LSAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyRG93bmxvYWQobGlzdGVuZXIpOwotICAgICAg
ICByZXR1cm47Ci0gICAgfQotCi0gICAgU3RyaW5nIG1pbWVUeXBlID0gdG9JbXBsKHJlc3BvbnNl
KS0+cmVzb3VyY2VSZXNwb25zZSgpLm1pbWVUeXBlKCkubG93ZXIoKTsKLSAgICBib29sIGNhblNo
b3dNSU1FVHlwZSA9IHRvSW1wbChmcmFtZSktPmNhblNob3dNSU1FVHlwZShtaW1lVHlwZSk7Ci0g
ICAgaWYgKFdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpIHsKLSAgICAgICAgaWYgKGNhblNob3dN
SU1FVHlwZSkgewotICAgICAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKGxpc3RlbmVy
KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIElmIHdlIGNh
bid0IHVzZSAoc2hvdykgaXQgdGhlbiB3ZSBzaG91bGQgZG93bmxvYWQgaXQuCi0gICAgICAgIFdL
RnJhbWVQb2xpY3lMaXN0ZW5lckRvd25sb2FkKGxpc3RlbmVyKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQotICAgIC8vIFdlIHNob3VsZCBpZ25vcmUgZG93bmxvYWRhYmxlIHRvcC1sZXZlbCBj
b250ZW50IGZvciBzdWJmcmFtZXMsIHdpdGggYW4gZXhjZXB0aW9uIGZvciB0ZXh0L3htbCBhbmQg
YXBwbGljYXRpb24veG1sIHNvIHdlIGNhbiBzdGlsbCBzdXBwb3J0IEFjaWQzIHRlc3QuCi0gICAg
Ly8gSXQgbWFrZXMgdGhlIGJyb3dzZXIgaW50ZW50aW9uYWxseSBiZWhhdmUgZGlmZmVyZW50bHkg
d2hlbiBpdCBjb21lcyB0byB0ZXh0KGFwcGxpY2F0aW9uKS94bWwgY29udGVudCBpbiBzdWJmcmFt
ZXMgdnMuIG1haW5mcmFtZS4KLSAgICBpZiAoIWNhblNob3dNSU1FVHlwZSAmJiAhKG1pbWVUeXBl
ID09ICJ0ZXh0L3htbCIgfHwgbWltZVR5cGUgPT0gImFwcGxpY2F0aW9uL3htbCIpKSB7Ci0gICAg
ICAgIFdLRnJhbWVQb2xpY3lMaXN0ZW5lcklnbm9yZShsaXN0ZW5lcik7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0KLSAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2UobGlzdGVuZXIpOwotfQot
Ci12b2lkIGV3a192aWV3X3BvbGljeV9jbGllbnRfYXR0YWNoKFdLUGFnZVJlZiBwYWdlUmVmLCBF
dmFzX09iamVjdCogZXdrVmlldykKLXsKLSAgICBXS1BhZ2VQb2xpY3lDbGllbnQgcG9saWN5Q2xp
ZW50OwotICAgIG1lbXNldCgmcG9saWN5Q2xpZW50LCAwLCBzaXplb2YoV0tQYWdlUG9saWN5Q2xp
ZW50KSk7Ci0gICAgcG9saWN5Q2xpZW50LnZlcnNpb24gPSBrV0tQYWdlUG9saWN5Q2xpZW50Q3Vy
cmVudFZlcnNpb247Ci0gICAgcG9saWN5Q2xpZW50LmNsaWVudEluZm8gPSBld2tWaWV3OwotICAg
IHBvbGljeUNsaWVudC5kZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uID0gZGVjaWRlUG9s
aWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjsKLSAgICBwb2xpY3lDbGllbnQuZGVjaWRlUG9saWN5Rm9y
TmV3V2luZG93QWN0aW9uID0gZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uOwotICAgIHBv
bGljeUNsaWVudC5kZWNpZGVQb2xpY3lGb3JSZXNwb25zZSA9IGRlY2lkZVBvbGljeUZvclJlc3Bv
bnNlQ2FsbGJhY2s7Ci0KLSAgICBXS1BhZ2VTZXRQYWdlUG9saWN5Q2xpZW50KHBhZ2VSZWYsICZw
b2xpY3lDbGllbnQpOwotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVudF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50X3ByaXZhdGUuaApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYzY3MjQ4ZC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50X3ByaXZhdGUuaAor
KysgL2Rldi9udWxsCkBAIC0xLDM0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIg
SW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5k
ZWYgZXdrX3ZpZXdfcG9saWN5X2NsaWVudF9wcml2YXRlX2gKLSNkZWZpbmUgZXdrX3ZpZXdfcG9s
aWN5X2NsaWVudF9wcml2YXRlX2gKLQotI2luY2x1ZGUgPEV2YXMuaD4KLSNpbmNsdWRlIDxXZWJL
aXQyL1dLQmFzZS5oPgotCi12b2lkIGV3a192aWV3X3BvbGljeV9jbGllbnRfYXR0YWNoKFdLUGFn
ZVJlZiBwYWdlUmVmLCBFdmFzX09iamVjdCogZXdrVmlldyk7Ci0KLSNlbmRpZiAvLyBld2tfdmll
d19wb2xpY3lfY2xpZW50X3ByaXZhdGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL2VmbC9QYWdlUG9saWN5Q2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9lZmwvUGFnZVBvbGljeUNsaWVudEVmbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMC4uOTAzZjFkYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9lZmwvUGFnZVBvbGljeUNsaWVudEVmbC5jcHAKQEAgLTAsMCArMSwxMTMgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYWdlUG9s
aWN5Q2xpZW50RWZsLmgiCisKKyNpbmNsdWRlICJXS0ZyYW1lLmgiCisjaW5jbHVkZSAiV0tGcmFt
ZVBvbGljeUxpc3RlbmVyLmgiCisjaW5jbHVkZSAiZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lz
aW9uLmgiCisjaW5jbHVkZSAiZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX3ByaXZhdGUu
aCIKKyNpbmNsdWRlIDxXZWJDb3JlL0hUVFBTdGF0dXNDb2Rlcy5oPgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKKworc3RhdGljIGlubGluZSBQYWdlUG9saWN5Q2xpZW50RWZsKiB0b1BhZ2VQb2xpY3lD
bGllbnRFZmwoY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8UGFnZVBvbGljeUNsaWVudEVmbCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsK
K30KKwordm9pZCBQYWdlUG9saWN5Q2xpZW50RWZsOjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9u
QWN0aW9uKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmln
YXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9u
IG1vdXNlQnV0dG9uLCBXS1VSTFJlcXVlc3RSZWYgcmVxdWVzdCwgV0tGcmFtZVBvbGljeUxpc3Rl
bmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgLyp1c2VyRGF0YSovLCBjb25zdCB2b2lkKiBjbGll
bnRJbmZvKQoreworICAgIFJlZlB0cjxFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24+IGRl
Y2lzaW9uID0gRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOjpjcmVhdGUobmF2aWdhdGlv
blR5cGUsIG1vdXNlQnV0dG9uLCBtb2RpZmllcnMsIHJlcXVlc3QsIDAsIGxpc3RlbmVyKTsKKyAg
ICBld2tfdmlld19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbih0b1BhZ2VQb2xpY3lDbGllbnRF
ZmwoY2xpZW50SW5mbyktPm1fdmlldywgZGVjaXNpb24uZ2V0KCkpOworfQorCit2b2lkIFBhZ2VQ
b2xpY3lDbGllbnRFZmw6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXS1BhZ2VSZWYs
IFdLRnJhbWVSZWYsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVu
dE1vZGlmaWVycyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tV
UkxSZXF1ZXN0UmVmIHJlcXVlc3QsIFdLU3RyaW5nUmVmIGZyYW1lTmFtZSwgV0tGcmFtZVBvbGlj
eUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgLyp1c2VyRGF0YSovLCBjb25zdCB2b2lk
KiBjbGllbnRJbmZvKQoreworICAgIFJlZlB0cjxFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNp
b24+IGRlY2lzaW9uID0gRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOjpjcmVhdGUobmF2
aWdhdGlvblR5cGUsIG1vdXNlQnV0dG9uLCBtb2RpZmllcnMsIHJlcXVlc3QsIHRvSW1wbChmcmFt
ZU5hbWUpLT5zdHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsaXN0ZW5lcik7CisgICAgZXdrX3ZpZXdf
bmV3X3dpbmRvd19wb2xpY3lfZGVjaXNpb24odG9QYWdlUG9saWN5Q2xpZW50RWZsKGNsaWVudElu
Zm8pLT5tX3ZpZXcsIGRlY2lzaW9uLmdldCgpKTsKK30KKwordm9pZCBQYWdlUG9saWN5Q2xpZW50
RWZsOjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZUNhbGxiYWNrKFdLUGFnZVJlZiwgV0tGcmFtZVJl
ZiBmcmFtZSwgV0tVUkxSZXNwb25zZVJlZiByZXNwb25zZSwgV0tVUkxSZXF1ZXN0UmVmLCBXS0Zy
YW1lUG9saWN5TGlzdGVuZXJSZWYgbGlzdGVuZXIsIFdLVHlwZVJlZiAvKnVzZXJEYXRhKi8sIGNv
bnN0IHZvaWQqIC8qY2xpZW50SW5mbyovKQoreworICAgIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3Jl
OworCisgICAgY29uc3QgUmVzb3VyY2VSZXNwb25zZSByZXNvdXJjZVJlc3BvbnNlID0gdG9JbXBs
KHJlc3BvbnNlKS0+cmVzb3VyY2VSZXNwb25zZSgpOworCisgICAgLy8gSWdub3JlIHJlc3BvbnNl
cyB3aXRoIGFuIEhUVFAgc3RhdHVzIGNvZGUgb2YgMjA0IChObyBDb250ZW50KQorICAgIGlmIChy
ZXNvdXJjZVJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkgPT0gSFRUUE5vQ29udGVudCkgeworICAg
ICAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJJZ25vcmUobGlzdGVuZXIpOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgLy8gSWYgdGhlIFVSTCBSZXNwb25zZSBoYXMgIkNvbnRlbnQtRGlz
cG9zaXRpb246IGF0dGFjaG1lbnQ7IiBoZWFkZXIsIHRoZW4KKyAgICAvLyB3ZSBzaG91bGQgZG93
bmxvYWQgaXQuCisgICAgaWYgKHJlc291cmNlUmVzcG9uc2UuaXNBdHRhY2htZW50KCkpIHsKKyAg
ICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyRG93bmxvYWQobGlzdGVuZXIpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorCisgICAgU3RyaW5nIG1pbWVUeXBlID0gdG9JbXBsKHJlc3BvbnNlKS0+
cmVzb3VyY2VSZXNwb25zZSgpLm1pbWVUeXBlKCkubG93ZXIoKTsKKyAgICBib29sIGNhblNob3dN
SU1FVHlwZSA9IHRvSW1wbChmcmFtZSktPmNhblNob3dNSU1FVHlwZShtaW1lVHlwZSk7CisgICAg
aWYgKFdLRnJhbWVJc01haW5GcmFtZShmcmFtZSkpIHsKKyAgICAgICAgaWYgKGNhblNob3dNSU1F
VHlwZSkgeworICAgICAgICAgICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKGxpc3RlbmVyKTsK
KyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIC8vIElmIHdlIGNhbid0
IHVzZSAoc2hvdykgaXQgdGhlbiB3ZSBzaG91bGQgZG93bmxvYWQgaXQuCisgICAgICAgIFdLRnJh
bWVQb2xpY3lMaXN0ZW5lckRvd25sb2FkKGxpc3RlbmVyKTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKworICAgIC8vIFdlIHNob3VsZCBpZ25vcmUgZG93bmxvYWRhYmxlIHRvcC1sZXZlbCBjb250
ZW50IGZvciBzdWJmcmFtZXMsIHdpdGggYW4gZXhjZXB0aW9uIGZvciB0ZXh0L3htbCBhbmQgYXBw
bGljYXRpb24veG1sIHNvIHdlIGNhbiBzdGlsbCBzdXBwb3J0IEFjaWQzIHRlc3QuCisgICAgLy8g
SXQgbWFrZXMgdGhlIGJyb3dzZXIgaW50ZW50aW9uYWxseSBiZWhhdmUgZGlmZmVyZW50bHkgd2hl
biBpdCBjb21lcyB0byB0ZXh0KGFwcGxpY2F0aW9uKS94bWwgY29udGVudCBpbiBzdWJmcmFtZXMg
dnMuIG1haW5mcmFtZS4KKyAgICBpZiAoIWNhblNob3dNSU1FVHlwZSAmJiAhKG1pbWVUeXBlID09
ICJ0ZXh0L3htbCIgfHwgbWltZVR5cGUgPT0gImFwcGxpY2F0aW9uL3htbCIpKSB7CisgICAgICAg
IFdLRnJhbWVQb2xpY3lMaXN0ZW5lcklnbm9yZShsaXN0ZW5lcik7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICBXS0ZyYW1lUG9saWN5TGlzdGVuZXJVc2UobGlzdGVuZXIpOworfQorCitQ
YWdlUG9saWN5Q2xpZW50RWZsOjpQYWdlUG9saWN5Q2xpZW50RWZsKEV2YXNfT2JqZWN0KiB2aWV3
KQorICAgIDogbV92aWV3KHZpZXcpCit7CisgICAgV0tQYWdlUmVmIHBhZ2VSZWYgPSBld2tfdmll
d193a3BhZ2VfZ2V0KG1fdmlldyk7CisgICAgQVNTRVJUKHBhZ2VSZWYpOworCisgICAgV0tQYWdl
UG9saWN5Q2xpZW50IHBvbGljeUNsaWVudDsKKyAgICBtZW1zZXQoJnBvbGljeUNsaWVudCwgMCwg
c2l6ZW9mKFdLUGFnZVBvbGljeUNsaWVudCkpOworICAgIHBvbGljeUNsaWVudC52ZXJzaW9uID0g
a1dLUGFnZVBvbGljeUNsaWVudEN1cnJlbnRWZXJzaW9uOworICAgIHBvbGljeUNsaWVudC5jbGll
bnRJbmZvID0gdGhpczsKKyAgICBwb2xpY3lDbGllbnQuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlv
bkFjdGlvbiA9IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb247CisgICAgcG9saWN5Q2xp
ZW50LmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbiA9IGRlY2lkZVBvbGljeUZvck5ld1dp
bmRvd0FjdGlvbjsKKyAgICBwb2xpY3lDbGllbnQuZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UgPSBk
ZWNpZGVQb2xpY3lGb3JSZXNwb25zZUNhbGxiYWNrOworCisgICAgV0tQYWdlU2V0UGFnZVBvbGlj
eUNsaWVudChwYWdlUmVmLCAmcG9saWN5Q2xpZW50KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VQb2xpY3lD
bGllbnRFZmwuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVBvbGljeUNsaWVu
dEVmbC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5MjI4NGUKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VQb2xpY3lDbGll
bnRFZmwuaApAQCAtMCwwICsxLDUzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVs
IENvcnBvcmF0aW9uLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBh
Z2VQb2xpY3lDbGllbnRFZmxfaAorI2RlZmluZSBQYWdlUG9saWN5Q2xpZW50RWZsX2gKKworI2lu
Y2x1ZGUgImV3a192aWV3X3ByaXZhdGUuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgUGFnZVBvbGljeUNsaWVudEVmbCB7CitwdWJs
aWM6CisgICAgc3RhdGljIFBhc3NPd25QdHI8UGFnZVBvbGljeUNsaWVudEVmbD4gY3JlYXRlKEV2
YXNfT2JqZWN0KiB2aWV3KQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYWdl
UG9saWN5Q2xpZW50RWZsKHZpZXcpKTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQg
UGFnZVBvbGljeUNsaWVudEVmbChFdmFzX09iamVjdCogdmlldyk7CisKKyAgICBzdGF0aWMgdm9p
ZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwg
V0tGcmFtZU5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0
b24sIFdLVVJMUmVxdWVzdFJlZiwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmLCBXS1R5cGVSZWYs
IGNvbnN0IHZvaWQqKTsKKyAgICBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dB
Y3Rpb24oV0tQYWdlUmVmLCBXS0ZyYW1lUmVmLCBXS0ZyYW1lTmF2aWdhdGlvblR5cGUsIFdLRXZl
bnRNb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0UmVmLCBXS1N0cmlu
Z1JlZiwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqKTsK
KyAgICBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JSZXNwb25zZUNhbGxiYWNrKFdLUGFnZVJl
ZiwgV0tGcmFtZVJlZiwgV0tVUkxSZXNwb25zZVJlZiwgV0tVUkxSZXF1ZXN0UmVmLCBXS0ZyYW1l
UG9saWN5TGlzdGVuZXJSZWYsIFdLVHlwZVJlZiwgY29uc3Qgdm9pZCopOworCisgICAgRXZhc19P
YmplY3QqIG1fdmlldzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8g
UGFnZVBvbGljeUNsaWVudEVmbF9oCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170129</attachid>
            <date>2012-10-23 05:07:54 -0700</date>
            <delta_ts>2012-10-23 05:32:00 -0700</delta_ts>
            <desc>rebased</desc>
            <filename>bug100089_v4</filename>
            <type>text/plain</type>
            <size>20065</size>
            <attacher name="Mikhail Pozdnyakov">mikhail.pozdnyakov</attacher>
            
              <data encoding="base64">Y29tbWl0IGE1MmZlZTcyMTc1NTdmZGY4NmIxNmJmNDczNDhjMzMyYmVkZDMyZTAKQXV0aG9yOiBN
aWtoYWlsIFBvemRueWFrb3YgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CkRhdGU6ICAg
VHVlIE9jdCAyMyAxMjo0NzoxOCAyMDEyICswMzAwCgogICAgYnVnMTAwMDg5CgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmlu
ZGV4IDRkYmIwNmUuLmQzMTk5MjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsNSArMSwzMSBAQAogMjAxMi0x
MC0yMyAgTWlraGFpbCBQb3pkbnlha292ICA8bWlraGFpbC5wb3pkbnlha292QGludGVsLmNvbT4K
IAorICAgICAgICBbRUZMXVtXSzJdIE1ha2UgUG9saWN5IGNsaWVudCBhIEMrKyBjbGFzcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDg5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCisKKyAgICAgICAg
TWFrZSBwYWdlIHBvbGljeSBjbGllbnQgYSBDKysgY2xhc3MgYW5kIHJlbW92ZSBpdCBmcm9tIEFQ
SSBmb2xkZXIuCisKKyAgICAgICAgKiBQbGF0Zm9ybUVmbC5jbWFrZToKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHA6CisgICAgICAgIChFd2tfVmlld19Qcml2YXRlX0Rh
dGEpOgorICAgICAgICAoX2V3a192aWV3X2luaXRpYWxpemUpOgorICAgICAgICAqIFVJUHJvY2Vz
cy9lZmwvUGFnZVBvbGljeUNsaWVudEVmbC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50LmNwcC4KKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgIChXZWJLaXQ6OnRvUGFnZVBvbGljeUNsaWVudEVmbCk6CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VQb2xpY3lDbGllbnRFZmw6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25BY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlUG9saWN5Q2xpZW50RWZsOjpkZWNpZGVQ
b2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpQYWdlUG9saWN5Q2xp
ZW50RWZsOjpkZWNpZGVQb2xpY3lGb3JSZXNwb25zZUNhbGxiYWNrKToKKyAgICAgICAgKFdlYktp
dDo6UGFnZVBvbGljeUNsaWVudEVmbDo6UGFnZVBvbGljeUNsaWVudEVmbCk6CisgICAgICAgICog
VUlQcm9jZXNzL2VmbC9QYWdlUG9saWN5Q2xpZW50RWZsLmg6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50X3ByaXZhdGUu
aC4KKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgIChQYWdlUG9saWN5Q2xpZW50RWZsKToKKyAg
ICAgICAgKFdlYktpdDo6UGFnZVBvbGljeUNsaWVudEVmbDo6Y3JlYXRlKToKKyAgICAgICAgKFdl
YktpdDo6UGFnZVBvbGljeUNsaWVudEVmbDo6dmlldyk6CisKKzIwMTItMTAtMjMgIE1pa2hhaWwg
UG96ZG55YWtvdiAgPG1pa2hhaWwucG96ZG55YWtvdkBpbnRlbC5jb20+CisKICAgICAgICAgW0VG
TF1bV0syXSBNYWtlIFVJIGNsaWVudCBhIEMrKyBjbGFzcwogICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAwMDk5CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1BsYXRmb3JtRWZsLmNtYWtlIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21h
a2UKaW5kZXggMTBkMzYyNS4uZWMzM2Q4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGxh
dGZvcm1FZmwuY21ha2UKKysrIGIvU291cmNlL1dlYktpdDIvUGxhdGZvcm1FZmwuY21ha2UKQEAg
LTcyLDEyICs3MiwxMiBAQCBMSVNUKEFQUEVORCBXZWJLaXQyX1NPVVJDRVMKICAgICBVSVByb2Nl
c3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19m
aW5kX2NsaWVudC5jcHAKICAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19mb3JtX2NsaWVu
dC5jcHAKLSAgICBVSVByb2Nlc3MvQVBJL2VmbC9ld2tfdmlld19wb2xpY3lfY2xpZW50LmNwcAog
CiAgICAgVUlQcm9jZXNzL2NhaXJvL0JhY2tpbmdTdG9yZUNhaXJvLmNwcAogCiAgICAgVUlQcm9j
ZXNzL2VmbC9Eb3dubG9hZE1hbmFnZXJFZmwuY3BwCiAgICAgVUlQcm9jZXNzL2VmbC9QYWdlTG9h
ZENsaWVudEVmbC5jcHAKKyAgICBVSVByb2Nlc3MvZWZsL1BhZ2VQb2xpY3lDbGllbnRFZmwuY3Bw
CiAgICAgVUlQcm9jZXNzL2VmbC9QYWdlVUlDbGllbnRFZmwuY3BwCiAgICAgVUlQcm9jZXNzL2Vm
bC9SZXNvdXJjZUxvYWRDbGllbnRFZmwuY3BwCiAgICAgVUlQcm9jZXNzL2VmbC9UZXh0Q2hlY2tl
ckVmbC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3
a192aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZWZsL2V3a192aWV3LmNw
cAppbmRleCA0YWVkM2QzLi4xZGRlMTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2VmbC9ld2tfdmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9lZmwvZXdrX3ZpZXcuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiTmF0aXZl
V2ViV2hlZWxFdmVudC5oIgogI2luY2x1ZGUgIlBhZ2VDbGllbnRJbXBsLmgiCiAjaW5jbHVkZSAi
UGFnZUxvYWRDbGllbnRFZmwuaCIKKyNpbmNsdWRlICJQYWdlUG9saWN5Q2xpZW50RWZsLmgiCiAj
aW5jbHVkZSAiUGFnZVVJQ2xpZW50RWZsLmgiCiAjaW5jbHVkZSAiUmVmUHRyRWZsLmgiCiAjaW5j
bHVkZSAiUmVzb3VyY2VMb2FkQ2xpZW50RWZsLmgiCkBAIC01NCw3ICs1NSw2IEBACiAjaW5jbHVk
ZSAiZXdrX3NldHRpbmdzX3ByaXZhdGUuaCIKICNpbmNsdWRlICJld2tfdmlld19maW5kX2NsaWVu
dF9wcml2YXRlLmgiCiAjaW5jbHVkZSAiZXdrX3ZpZXdfZm9ybV9jbGllbnRfcHJpdmF0ZS5oIgot
I2luY2x1ZGUgImV3a192aWV3X3BvbGljeV9jbGllbnRfcHJpdmF0ZS5oIgogI2luY2x1ZGUgImV3
a192aWV3X3ByaXZhdGUuaCIKICNpbmNsdWRlIDxFY29yZV9FdmFzLmg+CiAjaW5jbHVkZSA8RWRq
ZS5oPgpAQCAtMTE5LDYgKzExOSw3IEBAIHN0cnVjdCBFd2tfVmlld19Qcml2YXRlX0RhdGEgewog
I2VuZGlmCiAgICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gcGFnZVByb3h5OwogICAgIE93blB0cjxQ
YWdlTG9hZENsaWVudEVmbD4gcGFnZUxvYWRDbGllbnQ7CisgICAgT3duUHRyPFBhZ2VQb2xpY3lD
bGllbnRFZmw+IHBhZ2VQb2xpY3lDbGllbnQ7CiAgICAgT3duUHRyPFBhZ2VVSUNsaWVudEVmbD4g
cGFnZVVJQ2xpZW50OwogICAgIE93blB0cjxSZXNvdXJjZUxvYWRDbGllbnRFZmw+IHJlc291cmNl
TG9hZENsaWVudDsKIApAQCAtODMxLDEyICs4MzIsMTIgQEAgc3RhdGljIHZvaWQgX2V3a192aWV3
X2luaXRpYWxpemUoRXZhc19PYmplY3QqIGV3a1ZpZXcsIFBhc3NSZWZQdHI8RXdrX0NvbnRleHQ+
IGMKICAgICBXS1BhZ2VSZWYgd2tQYWdlID0gdG9BUEkocHJpdi0+cGFnZVByb3h5LmdldCgpKTsK
ICAgICBld2tfdmlld19maW5kX2NsaWVudF9hdHRhY2god2tQYWdlLCBld2tWaWV3KTsKICAgICBl
d2tfdmlld19mb3JtX2NsaWVudF9hdHRhY2god2tQYWdlLCBld2tWaWV3KTsKLSAgICBld2tfdmll
d19wb2xpY3lfY2xpZW50X2F0dGFjaCh3a1BhZ2UsIGV3a1ZpZXcpOwogI2lmIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKICAgICBwcml2LT5wYWdlUHJveHktPmZ1bGxTY3JlZW5NYW5hZ2VyKCktPnNl
dFdlYlZpZXcoZXdrVmlldyk7CiAgICAgZXdrX3NldHRpbmdzX2Z1bGxzY3JlZW5fZW5hYmxlZF9z
ZXQocHJpdi0+c2V0dGluZ3MuZ2V0KCksIHRydWUpOwogI2VuZGlmCiAgICAgcHJpdi0+cGFnZUxv
YWRDbGllbnQgPSBQYWdlTG9hZENsaWVudEVmbDo6Y3JlYXRlKGV3a1ZpZXcpOworICAgIHByaXYt
PnBhZ2VQb2xpY3lDbGllbnQgPSBQYWdlUG9saWN5Q2xpZW50RWZsOjpjcmVhdGUoZXdrVmlldyk7
CiAgICAgcHJpdi0+cGFnZVVJQ2xpZW50ID0gUGFnZVVJQ2xpZW50RWZsOjpjcmVhdGUoZXdrVmll
dyk7CiAgICAgcHJpdi0+cmVzb3VyY2VMb2FkQ2xpZW50ID0gUmVzb3VyY2VMb2FkQ2xpZW50RWZs
OjpjcmVhdGUoZXdrVmlldyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZWZsL2V3a192aWV3X3BvbGljeV9jbGllbnQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVudC5jcHAKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGJkZWM5ZjYuLjAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5X2NsaWVudC5jcHAKKysrIC9kZXYvbnVsbApA
QCAtMSwxMDggKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMiBJbnRlbCBDb3Jwb3Jh
dGlvbi4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAot
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
Ci0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwot
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5o
IgotCi0jaW5jbHVkZSAiV0tGcmFtZS5oIgotI2luY2x1ZGUgIldLRnJhbWVQb2xpY3lMaXN0ZW5l
ci5oIgotI2luY2x1ZGUgImV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbi5oIgotI2luY2x1
ZGUgImV3a19uYXZpZ2F0aW9uX3BvbGljeV9kZWNpc2lvbl9wcml2YXRlLmgiCi0jaW5jbHVkZSAi
ZXdrX3ZpZXdfcG9saWN5X2NsaWVudF9wcml2YXRlLmgiCi0jaW5jbHVkZSAiZXdrX3ZpZXdfcHJp
dmF0ZS5oIgotI2luY2x1ZGUgPFdlYkNvcmUvSFRUUFN0YXR1c0NvZGVzLmg+Ci0jaW5jbHVkZSA8
d3RmL3RleHQvQ1N0cmluZy5oPgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLXVzaW5nIG5h
bWVzcGFjZSBXZWJLaXQ7Ci0KLXN0YXRpYyBpbmxpbmUgRXZhc19PYmplY3QqIHRvRXdrVmlldyhj
b25zdCB2b2lkKiBjbGllbnRJbmZvKQotewotICAgIHJldHVybiBzdGF0aWNfY2FzdDxFdmFzX09i
amVjdCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKLX0KLQotc3RhdGljIHZvaWQg
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdL
RnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2Rp
ZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0UmVmIHJl
cXVlc3QsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBlUmVmIC8qdXNl
ckRhdGEqLywgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKLXsKLSAgICBSZWZQdHI8RXdrX05hdmln
YXRpb25fUG9saWN5X0RlY2lzaW9uPiBkZWNpc2lvbiA9IEV3a19OYXZpZ2F0aW9uX1BvbGljeV9E
ZWNpc2lvbjo6Y3JlYXRlKG5hdmlnYXRpb25UeXBlLCBtb3VzZUJ1dHRvbiwgbW9kaWZpZXJzLCBy
ZXF1ZXN0LCAwLCBsaXN0ZW5lcik7Ci0gICAgZXdrX3ZpZXdfbmF2aWdhdGlvbl9wb2xpY3lfZGVj
aXNpb24odG9Fd2tWaWV3KGNsaWVudEluZm8pLCBkZWNpc2lvbi5nZXQoKSk7Ci19Ci0KLXN0YXRp
YyB2b2lkIGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXS1BhZ2VSZWYsIFdLRnJhbWVS
ZWYsIFdLRnJhbWVOYXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVy
cyBtb2RpZmllcnMsIFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0
UmVmIHJlcXVlc3QsIFdLU3RyaW5nUmVmIGZyYW1lTmFtZSwgV0tGcmFtZVBvbGljeUxpc3RlbmVy
UmVmIGxpc3RlbmVyLCBXS1R5cGVSZWYgLyp1c2VyRGF0YSovLCBjb25zdCB2b2lkKiBjbGllbnRJ
bmZvKQotewotICAgIFJlZlB0cjxFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24+IGRlY2lz
aW9uID0gRXdrX05hdmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOjpjcmVhdGUobmF2aWdhdGlvblR5
cGUsIG1vdXNlQnV0dG9uLCBtb2RpZmllcnMsIHJlcXVlc3QsIHRvSW1wbChmcmFtZU5hbWUpLT5z
dHJpbmcoKS51dGY4KCkuZGF0YSgpLCBsaXN0ZW5lcik7Ci0gICAgZXdrX3ZpZXdfbmV3X3dpbmRv
d19wb2xpY3lfZGVjaXNpb24odG9Fd2tWaWV3KGNsaWVudEluZm8pLCBkZWNpc2lvbi5nZXQoKSk7
Ci19Ci0KLXN0YXRpYyB2b2lkIGRlY2lkZVBvbGljeUZvclJlc3BvbnNlQ2FsbGJhY2soV0tQYWdl
UmVmLCBXS0ZyYW1lUmVmIGZyYW1lLCBXS1VSTFJlc3BvbnNlUmVmIHJlc3BvbnNlLCBXS1VSTFJl
cXVlc3RSZWYsIFdLRnJhbWVQb2xpY3lMaXN0ZW5lclJlZiBsaXN0ZW5lciwgV0tUeXBlUmVmIC8q
dXNlckRhdGEqLywgY29uc3Qgdm9pZCogLypjbGllbnRJbmZvKi8pCi17Ci0gICAgY29uc3QgUmVz
b3VyY2VSZXNwb25zZSByZXNvdXJjZVJlc3BvbnNlID0gdG9JbXBsKHJlc3BvbnNlKS0+cmVzb3Vy
Y2VSZXNwb25zZSgpOwotCi0gICAgLy8gSWdub3JlIHJlc3BvbnNlcyB3aXRoIGFuIEhUVFAgc3Rh
dHVzIGNvZGUgb2YgMjA0IChObyBDb250ZW50KQotICAgIGlmIChyZXNvdXJjZVJlc3BvbnNlLmh0
dHBTdGF0dXNDb2RlKCkgPT0gSFRUUE5vQ29udGVudCkgewotICAgICAgICBXS0ZyYW1lUG9saWN5
TGlzdGVuZXJJZ25vcmUobGlzdGVuZXIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0gICAg
Ly8gSWYgdGhlIFVSTCBSZXNwb25zZSBoYXMgIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1l
bnQ7IiBoZWFkZXIsIHRoZW4KLSAgICAvLyB3ZSBzaG91bGQgZG93bmxvYWQgaXQuCi0gICAgaWYg
KHJlc291cmNlUmVzcG9uc2UuaXNBdHRhY2htZW50KCkpIHsKLSAgICAgICAgV0tGcmFtZVBvbGlj
eUxpc3RlbmVyRG93bmxvYWQobGlzdGVuZXIpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotCi0g
ICAgU3RyaW5nIG1pbWVUeXBlID0gdG9JbXBsKHJlc3BvbnNlKS0+cmVzb3VyY2VSZXNwb25zZSgp
Lm1pbWVUeXBlKCkubG93ZXIoKTsKLSAgICBib29sIGNhblNob3dNSU1FVHlwZSA9IHRvSW1wbChm
cmFtZSktPmNhblNob3dNSU1FVHlwZShtaW1lVHlwZSk7Ci0gICAgaWYgKFdLRnJhbWVJc01haW5G
cmFtZShmcmFtZSkpIHsKLSAgICAgICAgaWYgKGNhblNob3dNSU1FVHlwZSkgewotICAgICAgICAg
ICAgV0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKGxpc3RlbmVyKTsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotCi0gICAgICAgIC8vIElmIHdlIGNhbid0IHVzZSAoc2hvdykgaXQgdGhl
biB3ZSBzaG91bGQgZG93bmxvYWQgaXQuCi0gICAgICAgIFdLRnJhbWVQb2xpY3lMaXN0ZW5lckRv
d25sb2FkKGxpc3RlbmVyKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLQotICAgIC8vIFdlIHNo
b3VsZCBpZ25vcmUgZG93bmxvYWRhYmxlIHRvcC1sZXZlbCBjb250ZW50IGZvciBzdWJmcmFtZXMs
IHdpdGggYW4gZXhjZXB0aW9uIGZvciB0ZXh0L3htbCBhbmQgYXBwbGljYXRpb24veG1sIHNvIHdl
IGNhbiBzdGlsbCBzdXBwb3J0IEFjaWQzIHRlc3QuCi0gICAgLy8gSXQgbWFrZXMgdGhlIGJyb3dz
ZXIgaW50ZW50aW9uYWxseSBiZWhhdmUgZGlmZmVyZW50bHkgd2hlbiBpdCBjb21lcyB0byB0ZXh0
KGFwcGxpY2F0aW9uKS94bWwgY29udGVudCBpbiBzdWJmcmFtZXMgdnMuIG1haW5mcmFtZS4KLSAg
ICBpZiAoIWNhblNob3dNSU1FVHlwZSAmJiAhKG1pbWVUeXBlID09ICJ0ZXh0L3htbCIgfHwgbWlt
ZVR5cGUgPT0gImFwcGxpY2F0aW9uL3htbCIpKSB7Ci0gICAgICAgIFdLRnJhbWVQb2xpY3lMaXN0
ZW5lcklnbm9yZShsaXN0ZW5lcik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0KLSAgICBXS0Zy
YW1lUG9saWN5TGlzdGVuZXJVc2UobGlzdGVuZXIpOwotfQotCi12b2lkIGV3a192aWV3X3BvbGlj
eV9jbGllbnRfYXR0YWNoKFdLUGFnZVJlZiBwYWdlUmVmLCBFdmFzX09iamVjdCogZXdrVmlldykK
LXsKLSAgICBXS1BhZ2VQb2xpY3lDbGllbnQgcG9saWN5Q2xpZW50OwotICAgIG1lbXNldCgmcG9s
aWN5Q2xpZW50LCAwLCBzaXplb2YoV0tQYWdlUG9saWN5Q2xpZW50KSk7Ci0gICAgcG9saWN5Q2xp
ZW50LnZlcnNpb24gPSBrV0tQYWdlUG9saWN5Q2xpZW50Q3VycmVudFZlcnNpb247Ci0gICAgcG9s
aWN5Q2xpZW50LmNsaWVudEluZm8gPSBld2tWaWV3OwotICAgIHBvbGljeUNsaWVudC5kZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uID0gZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
bjsKLSAgICBwb2xpY3lDbGllbnQuZGVjaWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uID0gZGVj
aWRlUG9saWN5Rm9yTmV3V2luZG93QWN0aW9uOwotICAgIHBvbGljeUNsaWVudC5kZWNpZGVQb2xp
Y3lGb3JSZXNwb25zZSA9IGRlY2lkZVBvbGljeUZvclJlc3BvbnNlQ2FsbGJhY2s7Ci0KLSAgICBX
S1BhZ2VTZXRQYWdlUG9saWN5Q2xpZW50KHBhZ2VSZWYsICZwb2xpY3lDbGllbnQpOwotfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9lZmwvZXdrX3ZpZXdfcG9saWN5
X2NsaWVudF9wcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2VmbC9ld2tf
dmlld19wb2xpY3lfY2xpZW50X3ByaXZhdGUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYzY3MjQ4ZC4uMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2Vm
bC9ld2tfdmlld19wb2xpY3lfY2xpZW50X3ByaXZhdGUuaAorKysgL2Rldi9udWxsCkBAIC0xLDM0
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTIgSW50ZWwgQ29ycG9yYXRpb24uIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFy
ZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNpZm5kZWYgZXdrX3ZpZXdfcG9saWN5X2Ns
aWVudF9wcml2YXRlX2gKLSNkZWZpbmUgZXdrX3ZpZXdfcG9saWN5X2NsaWVudF9wcml2YXRlX2gK
LQotI2luY2x1ZGUgPEV2YXMuaD4KLSNpbmNsdWRlIDxXZWJLaXQyL1dLQmFzZS5oPgotCi12b2lk
IGV3a192aWV3X3BvbGljeV9jbGllbnRfYXR0YWNoKFdLUGFnZVJlZiBwYWdlUmVmLCBFdmFzX09i
amVjdCogZXdrVmlldyk7Ci0KLSNlbmRpZiAvLyBld2tfdmlld19wb2xpY3lfY2xpZW50X3ByaXZh
dGVfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL2VmbC9QYWdlUG9saWN5
Q2xpZW50RWZsLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVBvbGljeUNs
aWVudEVmbC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uOTAzZjFkYQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVBvbGlj
eUNsaWVudEVmbC5jcHAKQEAgLTAsMCArMSwxMTMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTIgSW50ZWwgQ29ycG9yYXRpb24uIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNp
bmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJQYWdlUG9saWN5Q2xpZW50RWZsLmgiCisKKyNp
bmNsdWRlICJXS0ZyYW1lLmgiCisjaW5jbHVkZSAiV0tGcmFtZVBvbGljeUxpc3RlbmVyLmgiCisj
aW5jbHVkZSAiZXdrX25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uLmgiCisjaW5jbHVkZSAiZXdr
X25hdmlnYXRpb25fcG9saWN5X2RlY2lzaW9uX3ByaXZhdGUuaCIKKyNpbmNsdWRlIDxXZWJDb3Jl
L0hUVFBTdGF0dXNDb2Rlcy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RhdGljIGlubGlu
ZSBQYWdlUG9saWN5Q2xpZW50RWZsKiB0b1BhZ2VQb2xpY3lDbGllbnRFZmwoY29uc3Qgdm9pZCog
Y2xpZW50SW5mbykKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UGFnZVBvbGljeUNsaWVudEVm
bCo+KGNvbnN0X2Nhc3Q8dm9pZCo+KGNsaWVudEluZm8pKTsKK30KKwordm9pZCBQYWdlUG9saWN5
Q2xpZW50RWZsOjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKFdLUGFnZVJlZiwgV0tG
cmFtZVJlZiwgV0tGcmFtZU5hdmlnYXRpb25UeXBlIG5hdmlnYXRpb25UeXBlLCBXS0V2ZW50TW9k
aWZpZXJzIG1vZGlmaWVycywgV0tFdmVudE1vdXNlQnV0dG9uIG1vdXNlQnV0dG9uLCBXS1VSTFJl
cXVlc3RSZWYgcmVxdWVzdCwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVyLCBXS1R5
cGVSZWYgLyp1c2VyRGF0YSovLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAgIFJlZlB0
cjxFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24+IGRlY2lzaW9uID0gRXdrX05hdmlnYXRp
b25fUG9saWN5X0RlY2lzaW9uOjpjcmVhdGUobmF2aWdhdGlvblR5cGUsIG1vdXNlQnV0dG9uLCBt
b2RpZmllcnMsIHJlcXVlc3QsIDAsIGxpc3RlbmVyKTsKKyAgICBld2tfdmlld19uYXZpZ2F0aW9u
X3BvbGljeV9kZWNpc2lvbih0b1BhZ2VQb2xpY3lDbGllbnRFZmwoY2xpZW50SW5mbyktPm1fdmll
dywgZGVjaXNpb24uZ2V0KCkpOworfQorCit2b2lkIFBhZ2VQb2xpY3lDbGllbnRFZmw6OmRlY2lk
ZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbihXS1BhZ2VSZWYsIFdLRnJhbWVSZWYsIFdLRnJhbWVO
YXZpZ2F0aW9uVHlwZSBuYXZpZ2F0aW9uVHlwZSwgV0tFdmVudE1vZGlmaWVycyBtb2RpZmllcnMs
IFdLRXZlbnRNb3VzZUJ1dHRvbiBtb3VzZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0UmVmIHJlcXVlc3Qs
IFdLU3RyaW5nUmVmIGZyYW1lTmFtZSwgV0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmIGxpc3RlbmVy
LCBXS1R5cGVSZWYgLyp1c2VyRGF0YSovLCBjb25zdCB2b2lkKiBjbGllbnRJbmZvKQoreworICAg
IFJlZlB0cjxFd2tfTmF2aWdhdGlvbl9Qb2xpY3lfRGVjaXNpb24+IGRlY2lzaW9uID0gRXdrX05h
dmlnYXRpb25fUG9saWN5X0RlY2lzaW9uOjpjcmVhdGUobmF2aWdhdGlvblR5cGUsIG1vdXNlQnV0
dG9uLCBtb2RpZmllcnMsIHJlcXVlc3QsIHRvSW1wbChmcmFtZU5hbWUpLT5zdHJpbmcoKS51dGY4
KCkuZGF0YSgpLCBsaXN0ZW5lcik7CisgICAgZXdrX3ZpZXdfbmV3X3dpbmRvd19wb2xpY3lfZGVj
aXNpb24odG9QYWdlUG9saWN5Q2xpZW50RWZsKGNsaWVudEluZm8pLT5tX3ZpZXcsIGRlY2lzaW9u
LmdldCgpKTsKK30KKwordm9pZCBQYWdlUG9saWN5Q2xpZW50RWZsOjpkZWNpZGVQb2xpY3lGb3JS
ZXNwb25zZUNhbGxiYWNrKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiBmcmFtZSwgV0tVUkxSZXNwb25z
ZVJlZiByZXNwb25zZSwgV0tVUkxSZXF1ZXN0UmVmLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYg
bGlzdGVuZXIsIFdLVHlwZVJlZiAvKnVzZXJEYXRhKi8sIGNvbnN0IHZvaWQqIC8qY2xpZW50SW5m
byovKQoreworICAgIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCisgICAgY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSByZXNvdXJjZVJlc3BvbnNlID0gdG9JbXBsKHJlc3BvbnNlKS0+cmVzb3VyY2VS
ZXNwb25zZSgpOworCisgICAgLy8gSWdub3JlIHJlc3BvbnNlcyB3aXRoIGFuIEhUVFAgc3RhdHVz
IGNvZGUgb2YgMjA0IChObyBDb250ZW50KQorICAgIGlmIChyZXNvdXJjZVJlc3BvbnNlLmh0dHBT
dGF0dXNDb2RlKCkgPT0gSFRUUE5vQ29udGVudCkgeworICAgICAgICBXS0ZyYW1lUG9saWN5TGlz
dGVuZXJJZ25vcmUobGlzdGVuZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAgLy8g
SWYgdGhlIFVSTCBSZXNwb25zZSBoYXMgIkNvbnRlbnQtRGlzcG9zaXRpb246IGF0dGFjaG1lbnQ7
IiBoZWFkZXIsIHRoZW4KKyAgICAvLyB3ZSBzaG91bGQgZG93bmxvYWQgaXQuCisgICAgaWYgKHJl
c291cmNlUmVzcG9uc2UuaXNBdHRhY2htZW50KCkpIHsKKyAgICAgICAgV0tGcmFtZVBvbGljeUxp
c3RlbmVyRG93bmxvYWQobGlzdGVuZXIpOworICAgICAgICByZXR1cm47CisgICAgfQorCisgICAg
U3RyaW5nIG1pbWVUeXBlID0gdG9JbXBsKHJlc3BvbnNlKS0+cmVzb3VyY2VSZXNwb25zZSgpLm1p
bWVUeXBlKCkubG93ZXIoKTsKKyAgICBib29sIGNhblNob3dNSU1FVHlwZSA9IHRvSW1wbChmcmFt
ZSktPmNhblNob3dNSU1FVHlwZShtaW1lVHlwZSk7CisgICAgaWYgKFdLRnJhbWVJc01haW5GcmFt
ZShmcmFtZSkpIHsKKyAgICAgICAgaWYgKGNhblNob3dNSU1FVHlwZSkgeworICAgICAgICAgICAg
V0tGcmFtZVBvbGljeUxpc3RlbmVyVXNlKGxpc3RlbmVyKTsKKyAgICAgICAgICAgIHJldHVybjsK
KyAgICAgICAgfQorCisgICAgICAgIC8vIElmIHdlIGNhbid0IHVzZSAoc2hvdykgaXQgdGhlbiB3
ZSBzaG91bGQgZG93bmxvYWQgaXQuCisgICAgICAgIFdLRnJhbWVQb2xpY3lMaXN0ZW5lckRvd25s
b2FkKGxpc3RlbmVyKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIC8vIFdlIHNob3Vs
ZCBpZ25vcmUgZG93bmxvYWRhYmxlIHRvcC1sZXZlbCBjb250ZW50IGZvciBzdWJmcmFtZXMsIHdp
dGggYW4gZXhjZXB0aW9uIGZvciB0ZXh0L3htbCBhbmQgYXBwbGljYXRpb24veG1sIHNvIHdlIGNh
biBzdGlsbCBzdXBwb3J0IEFjaWQzIHRlc3QuCisgICAgLy8gSXQgbWFrZXMgdGhlIGJyb3dzZXIg
aW50ZW50aW9uYWxseSBiZWhhdmUgZGlmZmVyZW50bHkgd2hlbiBpdCBjb21lcyB0byB0ZXh0KGFw
cGxpY2F0aW9uKS94bWwgY29udGVudCBpbiBzdWJmcmFtZXMgdnMuIG1haW5mcmFtZS4KKyAgICBp
ZiAoIWNhblNob3dNSU1FVHlwZSAmJiAhKG1pbWVUeXBlID09ICJ0ZXh0L3htbCIgfHwgbWltZVR5
cGUgPT0gImFwcGxpY2F0aW9uL3htbCIpKSB7CisgICAgICAgIFdLRnJhbWVQb2xpY3lMaXN0ZW5l
cklnbm9yZShsaXN0ZW5lcik7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICBXS0ZyYW1l
UG9saWN5TGlzdGVuZXJVc2UobGlzdGVuZXIpOworfQorCitQYWdlUG9saWN5Q2xpZW50RWZsOjpQ
YWdlUG9saWN5Q2xpZW50RWZsKEV2YXNfT2JqZWN0KiB2aWV3KQorICAgIDogbV92aWV3KHZpZXcp
Cit7CisgICAgV0tQYWdlUmVmIHBhZ2VSZWYgPSBld2tfdmlld193a3BhZ2VfZ2V0KG1fdmlldyk7
CisgICAgQVNTRVJUKHBhZ2VSZWYpOworCisgICAgV0tQYWdlUG9saWN5Q2xpZW50IHBvbGljeUNs
aWVudDsKKyAgICBtZW1zZXQoJnBvbGljeUNsaWVudCwgMCwgc2l6ZW9mKFdLUGFnZVBvbGljeUNs
aWVudCkpOworICAgIHBvbGljeUNsaWVudC52ZXJzaW9uID0ga1dLUGFnZVBvbGljeUNsaWVudEN1
cnJlbnRWZXJzaW9uOworICAgIHBvbGljeUNsaWVudC5jbGllbnRJbmZvID0gdGhpczsKKyAgICBw
b2xpY3lDbGllbnQuZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbiA9IGRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb247CisgICAgcG9saWN5Q2xpZW50LmRlY2lkZVBvbGljeUZvck5l
d1dpbmRvd0FjdGlvbiA9IGRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbjsKKyAgICBwb2xp
Y3lDbGllbnQuZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2UgPSBkZWNpZGVQb2xpY3lGb3JSZXNwb25z
ZUNhbGxiYWNrOworCisgICAgV0tQYWdlU2V0UGFnZVBvbGljeUNsaWVudChwYWdlUmVmLCAmcG9s
aWN5Q2xpZW50KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VQb2xpY3lDbGllbnRFZmwuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9lZmwvUGFnZVBvbGljeUNsaWVudEVmbC5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjk5MjI4NGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvZWZsL1BhZ2VQb2xpY3lDbGllbnRFZmwuaApAQCAtMCwwICsxLDUz
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEludGVsIENvcnBvcmF0aW9uLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIFBhZ2VQb2xpY3lDbGllbnRFZmxfaAor
I2RlZmluZSBQYWdlUG9saWN5Q2xpZW50RWZsX2gKKworI2luY2x1ZGUgImV3a192aWV3X3ByaXZh
dGUuaCIKKyNpbmNsdWRlIDx3dGYvUGFzc093blB0ci5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsK
KworY2xhc3MgUGFnZVBvbGljeUNsaWVudEVmbCB7CitwdWJsaWM6CisgICAgc3RhdGljIFBhc3NP
d25QdHI8UGFnZVBvbGljeUNsaWVudEVmbD4gY3JlYXRlKEV2YXNfT2JqZWN0KiB2aWV3KQorICAg
IHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBQYWdlUG9saWN5Q2xpZW50RWZsKHZpZXcp
KTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgZXhwbGljaXQgUGFnZVBvbGljeUNsaWVudEVmbChF
dmFzX09iamVjdCogdmlldyk7CisKKyAgICBzdGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uQWN0aW9uKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tGcmFtZU5hdmlnYXRpb25UeXBl
LCBXS0V2ZW50TW9kaWZpZXJzLCBXS0V2ZW50TW91c2VCdXR0b24sIFdLVVJMUmVxdWVzdFJlZiwg
V0tGcmFtZVBvbGljeUxpc3RlbmVyUmVmLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqKTsKKyAgICBz
dGF0aWMgdm9pZCBkZWNpZGVQb2xpY3lGb3JOZXdXaW5kb3dBY3Rpb24oV0tQYWdlUmVmLCBXS0Zy
YW1lUmVmLCBXS0ZyYW1lTmF2aWdhdGlvblR5cGUsIFdLRXZlbnRNb2RpZmllcnMsIFdLRXZlbnRN
b3VzZUJ1dHRvbiwgV0tVUkxSZXF1ZXN0UmVmLCBXS1N0cmluZ1JlZiwgV0tGcmFtZVBvbGljeUxp
c3RlbmVyUmVmLCBXS1R5cGVSZWYsIGNvbnN0IHZvaWQqKTsKKyAgICBzdGF0aWMgdm9pZCBkZWNp
ZGVQb2xpY3lGb3JSZXNwb25zZUNhbGxiYWNrKFdLUGFnZVJlZiwgV0tGcmFtZVJlZiwgV0tVUkxS
ZXNwb25zZVJlZiwgV0tVUkxSZXF1ZXN0UmVmLCBXS0ZyYW1lUG9saWN5TGlzdGVuZXJSZWYsIFdL
VHlwZVJlZiwgY29uc3Qgdm9pZCopOworCisgICAgRXZhc19PYmplY3QqIG1fdmlldzsKK307CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUGFnZVBvbGljeUNsaWVudEVmbF9o
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>