<?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>96305</bug_id>
          
          <creation_ts>2012-09-10 13:04:25 -0700</creation_ts>
          <short_desc>Rename computeLogicalHeight to updateLogicalHeight</short_desc>
          <delta_ts>2012-09-11 10:21:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Tony Chang">tony</reporter>
          <assigned_to name="Tony Chang">tony</assigned_to>
          <cc>eric</cc>
    
    <cc>hyatt</cc>
    
    <cc>mifenton</cc>
    
    <cc>ojan</cc>
    
    <cc>tkent</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>716397</commentid>
    <comment_count>0</comment_count>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-10 13:04:25 -0700</bug_when>
    <thetext>Rename computeLogicalHeight to updateLogicalHeight</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716398</commentid>
    <comment_count>1</comment_count>
      <attachid>163184</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-10 13:05:19 -0700</bug_when>
    <thetext>Created attachment 163184
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716399</commentid>
    <comment_count>2</comment_count>
      <attachid>163184</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-10 13:06:04 -0700</bug_when>
    <thetext>Comment on attachment 163184
Patch

See 96288 for the computeLogicalWidth rename.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716400</commentid>
    <comment_count>3</comment_count>
      <attachid>163184</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-10 13:07:28 -0700</bug_when>
    <thetext>Comment on attachment 163184
Patch

I bet I&apos;ll have to rebase after the computeLogicalWidth patch lands.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716574</commentid>
    <comment_count>4</comment_count>
      <attachid>163222</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-10 15:12:05 -0700</bug_when>
    <thetext>Created attachment 163222
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>716711</commentid>
    <comment_count>5</comment_count>
      <attachid>163222</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-10 17:13:50 -0700</bug_when>
    <thetext>Comment on attachment 163222
Patch for landing

Rejecting attachment 163222 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:
ommit-queue/Source/WebKit/chromium/third_party/snappy/src --revision 63 --non-interactive --force --accept theirs-conflict --ignore-externals&apos; in &apos;/mnt/git/webkit-commit-queue/Source/WebKit/chromium&apos;
45&gt;At revision 63.

________ 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/13810418</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717300</commentid>
    <comment_count>6</comment_count>
      <attachid>163389</attachid>
    <who name="Tony Chang">tony</who>
    <bug_when>2012-09-11 09:56:15 -0700</bug_when>
    <thetext>Created attachment 163389
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717329</commentid>
    <comment_count>7</comment_count>
      <attachid>163389</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-11 10:21:40 -0700</bug_when>
    <thetext>Comment on attachment 163389
Patch for landing

Clearing flags on attachment: 163389

Committed r128201: &lt;http://trac.webkit.org/changeset/128201&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>717331</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-09-11 10:21:44 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163184</attachid>
            <date>2012-09-10 13:05:19 -0700</date>
            <delta_ts>2012-09-10 15:12:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-96305-20120910130455.patch</filename>
            <type>text/plain</type>
            <size>33508</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MDcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGRlNmU3NTc4YjkwOTFk
OWQ4YjVjZWNkMDM1NWM1ZmI4NDBhNTRjYS4uMzE1NmE1OWJjNTBmZGM2ZDYyMTNmMjFjMjEwZDZl
ZWY5ZjFjMzU5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEyLTA5LTEwICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVuYW1lIGNvbXB1dGVMb2dp
Y2FsSGVpZ2h0IHRvIHVwZGF0ZUxvZ2ljYWxIZWlnaHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MzA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgY29tcHV0ZUxvZ2ljYWxIZWlnaHQgY2hhbmdlcyB0aGUg
dmFsdWUgb2YgNCBtZW1iZXIgdmFyaWFibGVzIG9mIHRoZQorICAgICAgICByZW5kZXIgYm94LCBz
byBnaXZlIGl0IGEgbmFtZSB0aGF0IG1ha2VzIGl0IG1vcmUgY2xlYXIgdGhhdCBpdCBpcworICAg
ICAgICB1cGRhdGluZyBtZW1iZXIgdmFyaWFibGVzLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cywg
dGhpcyBpcyBqdXN0IGEgcmVmYWN0b3IuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNvbXB1dGVJbml0aWFsUmVn
aW9uUmFuZ2VGb3JCbG9jayk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y2hlY2tG
b3JQYWdpbmF0aW9uTG9naWNhbEhlaWdodENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCbG9jazo6bGF5b3V0QmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6Omxh
eW91dFBvc2l0aW9uZWRPYmplY3RzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpj
b21wdXRlQmxvY2tQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6dXBkYXRlTG9naWNh
bEhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVQZXJjZW50YWdl
TG9naWNhbEhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmNvbXB1dGVSZXBs
YWNlZExvZ2ljYWxIZWlnaHRVc2luZyk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCb3g6OmF2
YWlsYWJsZUxvZ2ljYWxIZWlnaHRVc2luZyk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJv
eC5oOgorICAgICAgICAoUmVuZGVyQm94KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6
dHJ5TGF5b3V0RG9pbmdQb3NpdGlvbmVkTW92ZW1lbnRPbmx5KToKKyAgICAgICAgKiByZW5kZXJp
bmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2spOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRIb3Jpem9udGFsQm94KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0VmVydGlj
YWxCb3gpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6bGF5b3V0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVu
ZGVyRmxleGlibGVCb3g6OmxheW91dEJsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZs
ZXhpYmxlQm94OjpsYXlvdXRBbmRQbGFjZUNoaWxkcmVuKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRmxvd1RocmVhZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJGbG93VGhyZWFk
Ojp1cGRhdGVMb2dpY2FsSGVpZ2h0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxvd1Ro
cmVhZC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJHcmlkLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlckdyaWQ6OmxheW91dEJsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVySFRNTENhbnZhcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJIVE1MQ2FudmFzOjpj
YW52YXNTaXplQ2hhbmdlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJRnJhbWU6OnVwZGF0ZUxvZ2ljYWxIZWlnaHQpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVuZGVySUZyYW1lOjpsYXlvdXRTZWFtbGVzc2x5KToKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlcklGcmFtZTo6bGF5b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVySUZyYW1lLmg6CisgICAgICAgIChSZW5kZXJJRnJhbWUpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJJbWFnZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJJbWFnZTo6aW1h
Z2VEaW1lbnNpb25zQ2hhbmdlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3gu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyTGlzdEJveDo6dXBkYXRlTG9naWNhbEhlaWdo
dCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaDoKKyAgICAgICAgKFJlbmRl
ckxpc3RCb3gpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNZXRlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJNZXRlcjo6dXBkYXRlTG9naWNhbEhlaWdodCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlck1ldGVyLmg6CisgICAgICAgIChSZW5kZXJNZXRlcik6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyTXVsdGlDb2x1bW5CbG9jazo6Y2hlY2tGb3JQYWdpbmF0aW9uTG9naWNhbEhlaWdo
dENoYW5nZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uRmxvd1RocmVh
ZC5oOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJNdWx0aUNvbHVtblNldDo6dXBkYXRlTG9naWNhbEhlaWdodCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0Lmg6CisgICAgICAgIChS
ZW5kZXJNdWx0aUNvbHVtblNldCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2Vk
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlcGxhY2VkOjpsYXlvdXQpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJTZWFyY2hGaWVsZDo6Y29tcHV0ZUNvbnRyb2xIZWlnaHQpOgorICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJUYWJsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZTo6bGF5
b3V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyVGV4dENvbnRyb2w6OnVwZGF0ZUxvZ2ljYWxIZWlnaHQpOgorICAg
ICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oOgorICAgICAgICAoUmVuZGVyVGV4
dENvbnRyb2wpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclZpZXc6OnVwZGF0ZUxvZ2ljYWxIZWlnaHQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJWaWV3Lmg6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdG
b3JlaWduT2JqZWN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclNWR0ZvcmVpZ25PYmpl
Y3Q6OnVwZGF0ZUxvZ2ljYWxIZWlnaHQpOgorICAgICAgICAqIHJlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHRm9yZWlnbk9iamVjdC5oOgorICAgICAgICAoUmVuZGVyU1ZHRm9yZWlnbk9iamVjdCk6Cisg
ICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcDoKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclNWR1Jvb3Q6OmxheW91dCk6CisKIDIwMTItMDktMTAgIE1pa2UgV2VzdCAgPG1r
d3N0QGNocm9taXVtLm9yZz4KIAogICAgICAgICBDbGFyaWZ5IHRoZSBjYXVzZSBvZiBjb25zb2xl
IHdhcm5pbmdzIGdlbmVyYXRlZCBieSAiY3Jvc3Mtb3JpZ2luIiBhY2Nlc3MgdG8gc2FuZGJveGVk
IGlmcmFtZXMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCAx
MDIxNmJjMDA3OGFjYzEzZGU5NTgwMjcxYjY5ODg0MDEwMmE1YTBiLi45M2M1ZDk3ZWJhYWNmNjU3
NWRhMTBiMDRmMjE2ZmVlZGZjMzI4Mzc3IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAKQEAgLTE0MDIsNyArMTQwMiw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OmNvbXB1
dGVJbml0aWFsUmVnaW9uUmFuZ2VGb3JCbG9jaygpCiAgICAgICAgIExheW91dFVuaXQgb2xkSGVp
Z2h0ID0gIGxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgTGF5b3V0VW5pdCBvbGRMb2dpY2FsVG9w
ID0gbG9naWNhbFRvcCgpOwogICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KE1BWF9MQVlPVVRfVU5J
VCAvIDIpOwotICAgICAgICBjb21wdXRlTG9naWNhbEhlaWdodCgpOworICAgICAgICB1cGRhdGVM
b2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgIGVuY2xvc2luZ1JlbmRlckZsb3dUaHJlYWQoKS0+c2V0
UmVnaW9uUmFuZ2VGb3JCb3godGhpcywgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BPZkZpcnN0UGFnZSgp
KTsKICAgICAgICAgc2V0TG9naWNhbEhlaWdodChvbGRIZWlnaHQpOwogICAgICAgICBzZXRMb2dp
Y2FsVG9wKG9sZExvZ2ljYWxUb3ApOwpAQCAtMTQzMyw3ICsxNDMzLDcgQEAgdm9pZCBSZW5kZXJC
bG9jazo6Y2hlY2tGb3JQYWdpbmF0aW9uTG9naWNhbEhlaWdodENoYW5nZShMYXlvdXRVbml0JiBw
YWdlTG9naWNhbEgKICAgICAgICAgaWYgKCFwYWdlTG9naWNhbEhlaWdodCkgewogICAgICAgICAg
ICAgLy8gV2UgbmVlZCB0byBnbyBhaGVhZCBhbmQgc2V0IG91ciBleHBsaWNpdCBwYWdlIGhlaWdo
dCBpZiBvbmUgZXhpc3RzLCBzbyB0aGF0IHdlIGNhbgogICAgICAgICAgICAgLy8gYXZvaWQgZG9p
bmcgdHdvIGxheW91dCBwYXNzZXMuCi0gICAgICAgICAgICBjb21wdXRlTG9naWNhbEhlaWdodCgp
OworICAgICAgICAgICAgdXBkYXRlTG9naWNhbEhlaWdodCgpOwogICAgICAgICAgICAgTGF5b3V0
VW5pdCBjb2x1bW5IZWlnaHQgPSBjb250ZW50TG9naWNhbEhlaWdodCgpOwogICAgICAgICAgICAg
aWYgKGNvbHVtbkhlaWdodCA+IFpFUk9fTEFZT1VUX1VOSVQpIHsKICAgICAgICAgICAgICAgICBw
YWdlTG9naWNhbEhlaWdodCA9IGNvbHVtbkhlaWdodDsKQEAgLTE1NDYsNyArMTU0Niw3IEBAIHZv
aWQgUmVuZGVyQmxvY2s6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0
VW5pdCBwYWdlTG9naWNhbEhlaWdoCiAgICAgLy8gQ2FsY3VsYXRlIG91ciBuZXcgaGVpZ2h0Lgog
ICAgIExheW91dFVuaXQgb2xkSGVpZ2h0ID0gbG9naWNhbEhlaWdodCgpOwogICAgIExheW91dFVu
aXQgb2xkQ2xpZW50QWZ0ZXJFZGdlID0gY2xpZW50TG9naWNhbEJvdHRvbSgpOwotICAgIGNvbXB1
dGVMb2dpY2FsSGVpZ2h0KCk7CisgICAgdXBkYXRlTG9naWNhbEhlaWdodCgpOwogICAgIExheW91
dFVuaXQgbmV3SGVpZ2h0ID0gbG9naWNhbEhlaWdodCgpOwogICAgIGlmIChvbGRIZWlnaHQgIT0g
bmV3SGVpZ2h0KSB7CiAgICAgICAgIGlmIChvbGRIZWlnaHQgPiBuZXdIZWlnaHQgJiYgbWF4Rmxv
YXRMb2dpY2FsQm90dG9tID4gbmV3SGVpZ2h0ICYmICFjaGlsZHJlbklubGluZSgpKSB7CkBAIC0y
NjUyLDcgKzI2NTIsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRQb3NpdGlvbmVkT2JqZWN0
cyhib29sIHJlbGF5b3V0Q2hpbGRyZW4pCiAgICAgICAgIGJvb2wgbmVlZHNCbG9ja0RpcmVjdGlv
bkxvY2F0aW9uU2V0QmVmb3JlTGF5b3V0ID0gci0+bmVlZHNMYXlvdXQoKSAmJiB2aWV3KCktPmxh
eW91dFN0YXRlKCktPm5lZWRzQmxvY2tEaXJlY3Rpb25Mb2NhdGlvblNldEJlZm9yZUxheW91dCgp
OyAKICAgICAgICAgaWYgKG5lZWRzQmxvY2tEaXJlY3Rpb25Mb2NhdGlvblNldEJlZm9yZUxheW91
dCkgewogICAgICAgICAgICAgaWYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPT0gci0+aXNI
b3Jpem9udGFsV3JpdGluZ01vZGUoKSkKLSAgICAgICAgICAgICAgICByLT5jb21wdXRlTG9naWNh
bEhlaWdodCgpOworICAgICAgICAgICAgICAgIHItPnVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKICAg
ICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICByLT5jb21wdXRlTG9naWNhbFdpZHRoKCk7
CiAgICAgICAgICAgICBvbGRMb2dpY2FsVG9wID0gbG9naWNhbFRvcEZvckNoaWxkKHIpOwpAQCAt
NjA1Nyw3ICs2MDU3LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZUJsb2NrUHJlZmVycmVk
TG9naWNhbFdpZHRocygpCiAgICAgICAgICAgICBSZW5kZXJCb3gqIGNoaWxkQm94ID0gdG9SZW5k
ZXJCb3goY2hpbGQpOwogICAgICAgICAgICAgTGF5b3V0VW5pdCBvbGRIZWlnaHQgPSBjaGlsZEJv
eC0+bG9naWNhbEhlaWdodCgpOwogICAgICAgICAgICAgY2hpbGRCb3gtPnNldExvZ2ljYWxIZWln
aHQoY2hpbGRCb3gtPmJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkpOwotICAgICAgICAg
ICAgY2hpbGRCb3gtPmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgICAgICBjaGlsZEJv
eC0+dXBkYXRlTG9naWNhbEhlaWdodCgpOwogICAgICAgICAgICAgY2hpbGRNaW5QcmVmZXJyZWRM
b2dpY2FsV2lkdGggPSBjaGlsZE1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IGNoaWxkQm94LT5s
b2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgICAgICBjaGlsZEJveC0+c2V0TG9naWNhbEhlaWdodChv
bGRIZWlnaHQpOwogICAgICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Qm94LmNwcAppbmRleCA3OTJiOWMyOGJlOTEwZTk0ZmY5N2Q1ZjdhYjRlNjdhMjJiM2ZkM2JhLi40
Njg5ZGQ5MDYzMmIyOWI1ODQ0M2YzOGY3YjIwYjgyZDFkZDc5MjUzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMTk2MSw3ICsxOTYxLDcgQEAgc3RhdGljIGJvb2wg
c2hvdWxkRmxpcEJlZm9yZUFmdGVyTWFyZ2lucyhjb25zdCBSZW5kZXJTdHlsZSogY29udGFpbmlu
Z0Jsb2NrU3R5bGUKICAgICByZXR1cm4gc2hvdWxkRmxpcDsKIH0KIAotdm9pZCBSZW5kZXJCb3g6
OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCkKK3ZvaWQgUmVuZGVyQm94Ojp1cGRhdGVMb2dpY2FsSGVp
Z2h0KCkKIHsKICAgICBMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMgY29tcHV0ZWRWYWx1ZXM7
CiAgICAgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoY29tcHV0ZWRWYWx1ZXMpOwpAQCAtMjE4MSw3ICsy
MTgxLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbXB1dGVQZXJjZW50YWdlTG9naWNhbEhl
aWdodChjb25zdCBMZW5ndGgmIGhlaWdodCkgY29uc3QKICAgICAgICAgLy8gRG9uJ3QgYWxsb3cg
dGhpcyB0byBhZmZlY3QgdGhlIGJsb2NrJyBoZWlnaHQoKSBtZW1iZXIgdmFyaWFibGUsIHNpbmNl
IHRoaXMKICAgICAgICAgLy8gY2FuIGdldCBjYWxsZWQgd2hpbGUgdGhlIGJsb2NrIGlzIHN0aWxs
IGxheWluZyBvdXQgaXRzIGtpZHMuCiAgICAgICAgIExheW91dFVuaXQgb2xkSGVpZ2h0ID0gY2It
PmxvZ2ljYWxIZWlnaHQoKTsKLSAgICAgICAgY2ItPmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7Cisg
ICAgICAgIGNiLT51cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgIHJlc3VsdCA9IGNiLT5j
b250ZW50TG9naWNhbEhlaWdodCgpOwogICAgICAgICBjYi0+c2V0TG9naWNhbEhlaWdodChvbGRI
ZWlnaHQpOwogICAgIH0KQEAgLTIyNzYsNyArMjI3Niw3IEBAIExheW91dFVuaXQgUmVuZGVyQm94
Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0VXNpbmcoU2l6ZVR5cGUgc2l6ZVR5cGUsIExl
bmd0CiAgICAgICAgICAgICAgICAgQVNTRVJUKGNiLT5pc1JlbmRlckJsb2NrKCkpOwogICAgICAg
ICAgICAgICAgIFJlbmRlckJsb2NrKiBibG9jayA9IHRvUmVuZGVyQmxvY2soY2IpOwogICAgICAg
ICAgICAgICAgIExheW91dFVuaXQgb2xkSGVpZ2h0ID0gYmxvY2stPmhlaWdodCgpOwotICAgICAg
ICAgICAgICAgIGJsb2NrLT5jb21wdXRlTG9naWNhbEhlaWdodCgpOworICAgICAgICAgICAgICAg
IGJsb2NrLT51cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgICAgICAgICAgTGF5b3V0VW5p
dCBuZXdIZWlnaHQgPSBibG9jay0+Y29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0KGJsb2Nr
LT5jb250ZW50SGVpZ2h0KCkpOwogICAgICAgICAgICAgICAgIGJsb2NrLT5zZXRIZWlnaHQob2xk
SGVpZ2h0KTsKICAgICAgICAgICAgICAgICByZXR1cm4gY29tcHV0ZUNvbnRlbnRCb3hMb2dpY2Fs
SGVpZ2h0KHZhbHVlRm9yTGVuZ3RoKGxvZ2ljYWxIZWlnaHQsIG5ld0hlaWdodCkpOwpAQCAtMjM0
Nyw3ICsyMzQ3LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmF2YWlsYWJsZUxvZ2ljYWxIZWln
aHRVc2luZyhjb25zdCBMZW5ndGgmIGgpIGNvbnN0CiAgICAgaWYgKGlzUmVuZGVyQmxvY2soKSAm
JiBpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiBzdHlsZSgpLT5oZWlnaHQoKS5pc0F1dG8oKSAm
JiAhKHN0eWxlKCktPnRvcCgpLmlzQXV0bygpIHx8IHN0eWxlKCktPmJvdHRvbSgpLmlzQXV0bygp
KSkgewogICAgICAgICBSZW5kZXJCbG9jayogYmxvY2sgPSBjb25zdF9jYXN0PFJlbmRlckJsb2Nr
Kj4odG9SZW5kZXJCbG9jayh0aGlzKSk7CiAgICAgICAgIExheW91dFVuaXQgb2xkSGVpZ2h0ID0g
YmxvY2stPmxvZ2ljYWxIZWlnaHQoKTsKLSAgICAgICAgYmxvY2stPmNvbXB1dGVMb2dpY2FsSGVp
Z2h0KCk7CisgICAgICAgIGJsb2NrLT51cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgIExh
eW91dFVuaXQgbmV3SGVpZ2h0ID0gYmxvY2stPmNvbXB1dGVDb250ZW50Qm94TG9naWNhbEhlaWdo
dChibG9jay0+Y29udGVudExvZ2ljYWxIZWlnaHQoKSk7CiAgICAgICAgIGJsb2NrLT5zZXRMb2dp
Y2FsSGVpZ2h0KG9sZEhlaWdodCk7CiAgICAgICAgIHJldHVybiBjb21wdXRlQ29udGVudEJveExv
Z2ljYWxIZWlnaHQobmV3SGVpZ2h0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCb3guaApp
bmRleCBlZDcwYTk0Yjg1ODIzMDI4MzRmMGViNjI5OTE2ZmIzZTNjMGY0NzBiLi4yN2ExM2NlOTM3
NTRjM2I5YzljMDY5MGZjMDNiY2VjNjllZDEzNTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJveC5oCkBAIC0zNjUsNyArMzY1LDcgQEAgcHVibGljOgogICAgIExheW91dFVuaXQgcGVy
cGVuZGljdWxhckNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxIZWlnaHQoKSBjb25zdDsKIAogICAgIHZp
cnR1YWwgdm9pZCBjb21wdXRlTG9naWNhbFdpZHRoKCk7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1
dGVMb2dpY2FsSGVpZ2h0KCk7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxvZ2ljYWxIZWlnaHQo
KTsKICAgICB2b2lkIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KExvZ2ljYWxFeHRlbnRDb21wdXRlZFZh
bHVlcyYpIGNvbnN0OwogCiAgICAgUmVuZGVyQm94UmVnaW9uSW5mbyogcmVuZGVyQm94UmVnaW9u
SW5mbyhSZW5kZXJSZWdpb24qLCBMYXlvdXRVbml0IG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJz
dFBhZ2UsIFJlbmRlckJveFJlZ2lvbkluZm9GbGFncyA9IENhY2hlUmVuZGVyQm94UmVnaW9uSW5m
bykgY29uc3Q7CkBAIC00NTMsNyArNDUzLDcgQEAgcHVibGljOgogICAgICAgICAvLyBJZiB3ZSBz
aHJpbmsgdG8gZml0IG91ciB3aWR0aCBtYXkgaGF2ZSBjaGFuZ2VkLCBzbyB3ZSBzdGlsbCBuZWVk
IGZ1bGwgbGF5b3V0LgogICAgICAgICBpZiAob2xkV2lkdGggIT0gd2lkdGgoKSkKICAgICAgICAg
ICAgIHJldHVybiBmYWxzZTsKLSAgICAgICAgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsKKyAgICAg
ICAgdXBkYXRlTG9naWNhbEhlaWdodCgpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxl
eGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRG
bGV4aWJsZUJveC5jcHAKaW5kZXggZTJmZTFjZjVjMWU3MWE1YWFmMmNkMWYzOTlhMDk0ZDE4NDJk
ZDcyZS4uMTQ5MGU1NGZkNDY1NjdmN2RkNDYwODljZDQzNDkwOTA5NTI1ZDkzOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveC5jcHAKQEAgLTI0OCw3ICsyNDgsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0KQogICAg
IExheW91dFNpemUgcHJldmlvdXNTaXplID0gc2l6ZSgpOwogCiAgICAgY29tcHV0ZUxvZ2ljYWxX
aWR0aCgpOwotICAgIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7CisgICAgdXBkYXRlTG9naWNhbEhl
aWdodCgpOwogCiAgICAgbV9vdmVyZmxvdy5jbGVhcigpOwogCkBAIC0yNjksNyArMjY5LDcgQEAg
dm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlv
dXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKICAgICAgICAgbGF5b3V0VmVydGljYWxCb3gocmVsYXlv
dXRDaGlsZHJlbik7CiAKICAgICBMYXlvdXRVbml0IG9sZENsaWVudEFmdGVyRWRnZSA9IGNsaWVu
dExvZ2ljYWxCb3R0b20oKTsKLSAgICBjb21wdXRlTG9naWNhbEhlaWdodCgpOworICAgIHVwZGF0
ZUxvZ2ljYWxIZWlnaHQoKTsKIAogICAgIGlmIChwcmV2aW91c1NpemUuaGVpZ2h0KCkgIT0gaGVp
Z2h0KCkpCiAgICAgICAgIHJlbGF5b3V0Q2hpbGRyZW4gPSB0cnVlOwpAQCAtNDE0LDcgKzQxNCw3
IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRIb3Jpem9udGFsQm94
KGJvb2wgcmVsYXlvdXRDaGlsZHJlbikKICAgICAgICAgc2V0SGVpZ2h0KGhlaWdodCgpICsgdG9B
ZGQpOwogCiAgICAgICAgIG9sZEhlaWdodCA9IGhlaWdodCgpOwotICAgICAgICBjb21wdXRlTG9n
aWNhbEhlaWdodCgpOworICAgICAgICB1cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAKICAgICAgICAg
cmVsYXlvdXRDaGlsZHJlbiA9IGZhbHNlOwogICAgICAgICBpZiAob2xkSGVpZ2h0ICE9IGhlaWdo
dCgpKQpAQCAtNDQ3LDcgKzQ0Nyw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94
OjpsYXlvdXRIb3Jpem9udGFsQm94KGJvb2wgcmVsYXlvdXRDaGlsZHJlbikKICAgICAgICAgICAg
IC8vIGZpbGwgdGhlIGhlaWdodCBvZiBhIGNvbnRhaW5pbmcgYm94IGJ5IGRlZmF1bHQuCiAgICAg
ICAgICAgICAvLyBOb3cgZG8gYSBsYXlvdXQuCiAgICAgICAgICAgICBMYXlvdXRVbml0IG9sZENo
aWxkSGVpZ2h0ID0gY2hpbGQtPmhlaWdodCgpOwotICAgICAgICAgICAgY2hpbGQtPmNvbXB1dGVM
b2dpY2FsSGVpZ2h0KCk7CisgICAgICAgICAgICBjaGlsZC0+dXBkYXRlTG9naWNhbEhlaWdodCgp
OwogICAgICAgICAgICAgaWYgKG9sZENoaWxkSGVpZ2h0ICE9IGNoaWxkLT5oZWlnaHQoKSkKICAg
ICAgICAgICAgICAgICBjaGlsZC0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRo
aXMpOwogCkBAIC03MzUsNyArNzM1LDcgQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVC
b3g6OmxheW91dFZlcnRpY2FsQm94KGJvb2wgcmVsYXlvdXRDaGlsZHJlbikKIAogICAgICAgICAv
LyBOb3cgd2UgaGF2ZSB0byBjYWxjIG91ciBoZWlnaHQsIHNvIHdlIGtub3cgaG93IG11Y2ggc3Bh
Y2Ugd2UgaGF2ZSByZW1haW5pbmcuCiAgICAgICAgIG9sZEhlaWdodCA9IGhlaWdodCgpOwotICAg
ICAgICBjb21wdXRlTG9naWNhbEhlaWdodCgpOworICAgICAgICB1cGRhdGVMb2dpY2FsSGVpZ2h0
KCk7CiAgICAgICAgIGlmIChvbGRIZWlnaHQgIT0gaGVpZ2h0KCkpCiAgICAgICAgICAgICBoZWln
aHRTcGVjaWZpZWQgPSB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckVtYmVkZGVkT2JqZWN0LmNwcAppbmRleCBkY2IzY2MzYjA0NTM2ODQ0NGE2ZjY1YTY5ZmQ2
ZDgxZmZlZGEzNzJmLi5mZjVhZTg1NGVmOTQ4ZjJmOWU1MmFiMjg5OTQyYWIwYTdlMGE1ODI3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5j
cHAKQEAgLTIzMSw3ICsyMzEsNyBAQCB2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpsYXlvdXQo
KQogICAgIEFTU0VSVChuZWVkc0xheW91dCgpKTsKIAogICAgIGNvbXB1dGVMb2dpY2FsV2lkdGgo
KTsKLSAgICBjb21wdXRlTG9naWNhbEhlaWdodCgpOworICAgIHVwZGF0ZUxvZ2ljYWxIZWlnaHQo
KTsKIAogICAgIFJlbmRlclBhcnQ6OmxheW91dCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAppbmRleCA5Zjg3Y2Y4MzVhYzU5MDc0NmI0YTc1
YTAxYTE2MzczZjQ4MDc3MTQ3Li4zYmE4YzU5NzMwMzExNmU3M2JhMmRhMDhhMTNkZGEwZjJhNjE4
YzgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVC
b3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5j
cHAKQEAgLTI2NSw3ICsyNjUsNyBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRCbG9j
ayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQpCiAgICAgbGF5b3V0RmxleEl0ZW1z
KCptX29yZGVySXRlcmF0b3IsIGxpbmVDb250ZXh0cyk7CiAKICAgICBMYXlvdXRVbml0IG9sZENs
aWVudEFmdGVyRWRnZSA9IGNsaWVudExvZ2ljYWxCb3R0b20oKTsKLSAgICBjb21wdXRlTG9naWNh
bEhlaWdodCgpOworICAgIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKICAgICByZXBvc2l0aW9uTG9n
aWNhbEhlaWdodERlcGVuZGVudEZsZXhJdGVtcygqbV9vcmRlckl0ZXJhdG9yLCBsaW5lQ29udGV4
dHMsIG9sZENsaWVudEFmdGVyRWRnZSk7CiAKICAgICBpZiAoc2l6ZSgpICE9IHByZXZpb3VzU2l6
ZSkKQEAgLTEwNTgsNyArMTA1OCw3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91dEFu
ZFBsYWNlQ2hpbGRyZW4oTGF5b3V0VW5pdCYgY3Jvc3NBeGlzT2Zmc2V0LCBjb25zCiAgICAgaWYg
KHN0eWxlKCktPmZsZXhEaXJlY3Rpb24oKSA9PSBGbG93Q29sdW1uUmV2ZXJzZSkgewogICAgICAg
ICAvLyBXZSBoYXZlIHRvIGRvIGFuIGV4dHJhIHBhc3MgZm9yIGNvbHVtbi1yZXZlcnNlIHRvIHJl
cG9zaXRpb24gdGhlIGZsZXggaXRlbXMgc2luY2UgdGhlIHN0YXJ0IGRlcGVuZHMKICAgICAgICAg
Ly8gb24gdGhlIGhlaWdodCBvZiB0aGUgZmxleGJveCwgd2hpY2ggd2Ugb25seSBrbm93IGFmdGVy
IHdlJ3ZlIHBvc2l0aW9uZWQgYWxsIHRoZSBmbGV4IGl0ZW1zLgotICAgICAgICBjb21wdXRlTG9n
aWNhbEhlaWdodCgpOworICAgICAgICB1cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgIGxh
eW91dENvbHVtblJldmVyc2UoY2hpbGRyZW4sIGNoaWxkU2l6ZXMsIGNyb3NzQXhpc09mZnNldCwg
YXZhaWxhYmxlRnJlZVNwYWNlKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJGbG93VGhyZWFkLmNwcAppbmRleCAwNTlmZjQ4MTgwMTlkZjc4NzQwZTJkOTc3ZDky
MDJlZmJhNjMzMTQ1Li5iYzE1ZjJkNjM2MDQ2ZDZlNmNkMWMzMmJhNTgzMGVkZTI4MWI2NDAzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCkBAIC0y
MjIsNyArMjIyLDcgQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpjb21wdXRlTG9naWNhbFdpZHRo
KCkKICAgICB9CiB9CiAKLXZvaWQgUmVuZGVyRmxvd1RocmVhZDo6Y29tcHV0ZUxvZ2ljYWxIZWln
aHQoKQordm9pZCBSZW5kZXJGbG93VGhyZWFkOjp1cGRhdGVMb2dpY2FsSGVpZ2h0KCkKIHsKICAg
ICBMYXlvdXRVbml0IGxvZ2ljYWxIZWlnaHQgPSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckZsb3dUaHJlYWQuaAppbmRleCAzMjgwM2FkZGVhZGJiYzY2YTFlNzc0N2U4ZDcx
YTk5YzYxZmEwYzJlLi42NDFhZTdiZWFhODhjNWMxYzJjOGJkN2E4YmM1NDkwZjJhOTdiYjY0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgKQEAgLTc0LDcg
Kzc0LDcgQEAgcHVibGljOgogICAgIGNvbnN0IFJlbmRlclJlZ2lvbkxpc3QmIHJlbmRlclJlZ2lv
bkxpc3QoKSBjb25zdCB7IHJldHVybiBtX3JlZ2lvbkxpc3Q7IH0KIAogICAgIHZpcnR1YWwgdm9p
ZCBjb21wdXRlTG9naWNhbFdpZHRoKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1
dGVMb2dpY2FsSGVpZ2h0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxvZ2lj
YWxIZWlnaHQoKSBPVkVSUklERTsKIAogICAgIHZvaWQgcGFpbnRGbG93VGhyZWFkUG9ydGlvbklu
UmVnaW9uKFBhaW50SW5mbyYsIFJlbmRlclJlZ2lvbiosIExheW91dFJlY3QgZmxvd1RocmVhZFBv
cnRpb25SZWN0LCBMYXlvdXRSZWN0IGZsb3dUaHJlYWRQb3J0aW9uT3ZlcmZsb3dSZWN0LCBjb25z
dCBMYXlvdXRQb2ludCYpIGNvbnN0OwogICAgIGJvb2wgaGl0VGVzdEZsb3dUaHJlYWRQb3J0aW9u
SW5SZWdpb24oUmVuZGVyUmVnaW9uKiwgTGF5b3V0UmVjdCBmbG93VGhyZWFkUG9ydGlvblJlY3Qs
IExheW91dFJlY3QgZmxvd1RocmVhZFBvcnRpb25PdmVyZmxvd1JlY3QsIGNvbnN0IEhpdFRlc3RS
ZXF1ZXN0JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25J
bkNvbnRhaW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCA2YTQ1MTlkMWZmYmIy
NjM0NTk5NzAxMjM3MjRjNmY2MTNkMzdmZDI5Li43ZjgyNDc5ODk0NGM4M2ZhZjMwYTI3NDYzMjgw
ZjkyMWZlNDI0ZDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
R3JpZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBA
IC04Myw3ICs4Myw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91
dENoaWxkcmVuLCBMYXlvdXRVbml0KQogICAgIGxheW91dEdyaWRJdGVtcygpOwogCiAgICAgTGF5
b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2UgPSBjbGllbnRMb2dpY2FsQm90dG9tKCk7Ci0gICAg
Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsKKyAgICB1cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAKICAg
ICBpZiAoc2l6ZSgpICE9IHByZXZpb3VzU2l6ZSkKICAgICAgICAgcmVsYXlvdXRDaGlsZHJlbiA9
IHRydWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENh
bnZhcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5jcHAK
aW5kZXggMzMxMTY5ODllNDFjNTMwZWI2MzIzMDkyMDBlM2YyNTFiNThlN2ZiMy4uMjJiMjU0MGE3
OWM4NThhNzcxODMzYzA3OTJlNTU5YmVjNTg5NDQwYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmNwcApAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFJlbmRl
ckhUTUxDYW52YXM6OmNhbnZhc1NpemVDaGFuZ2VkKCkKIAogICAgIExheW91dFNpemUgb2xkU2l6
ZSA9IHNpemUoKTsKICAgICBjb21wdXRlTG9naWNhbFdpZHRoKCk7Ci0gICAgY29tcHV0ZUxvZ2lj
YWxIZWlnaHQoKTsKKyAgICB1cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAgICAgaWYgKG9sZFNpemUg
PT0gc2l6ZSgpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcklGcmFtZS5jcHAKaW5kZXggNDI0ODBhMDg1M2M4MmQyNGRjODM1YjU0MjQ5MTViNGE2ZmY2
NTkyNC4uNzVkZDhmMzMxYmUyMjE2OGU2NzM4MThhNmJlNmViY2NmYWU5YTViZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5jcHAKQEAgLTQzLDkgKzQzLDkgQEAgUmVu
ZGVySUZyYW1lOjpSZW5kZXJJRnJhbWUoRWxlbWVudCogZWxlbWVudCkKIHsKIH0KIAotdm9pZCBS
ZW5kZXJJRnJhbWU6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCkKK3ZvaWQgUmVuZGVySUZyYW1lOjp1
cGRhdGVMb2dpY2FsSGVpZ2h0KCkKIHsKLSAgICBSZW5kZXJQYXJ0Ojpjb21wdXRlTG9naWNhbEhl
aWdodCgpOworICAgIFJlbmRlclBhcnQ6OnVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKICAgICBpZiAo
IWZsYXR0ZW5GcmFtZSgpKQogICAgICAgICAgcmV0dXJuOwogCkBAIC0xNzUsNyArMTc1LDcgQEAg
dm9pZCBSZW5kZXJJRnJhbWU6OmxheW91dFNlYW1sZXNzbHkoKQogICAgIEZyYW1lVmlldyogY2hp
bGRGcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQoKSk7CiAgICAgaWYg
KGNoaWxkRnJhbWVWaWV3KSAvLyBXaWRnZXQgc2hvdWxkIG5ldmVyIGJlIG51bGwgZHVyaW5nIGxh
eW91dCgpLCBidXQganVzdCBpbiBjYXNlLgogICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KGNoaWxk
RnJhbWVWaWV3LT5jb250ZW50c0hlaWdodCgpICsgYm9yZGVyVG9wKCkgKyBib3JkZXJCb3R0b20o
KSk7Ci0gICAgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsKKyAgICB1cGRhdGVMb2dpY2FsSGVpZ2h0
KCk7CiAKICAgICB1cGRhdGVXaWRnZXRQb3NpdGlvbigpOyAvLyBOb3RpZnkgdGhlIFdpZGdldCBv
ZiBvdXIgZmluYWwgaGVpZ2h0LgogCkBAIC0xOTEsNyArMTkxLDcgQEAgdm9pZCBSZW5kZXJJRnJh
bWU6OmxheW91dCgpCiAKICAgICBpZiAoZmxhdHRlbkZyYW1lKCkpIHsKICAgICAgICAgUmVuZGVy
UGFydDo6Y29tcHV0ZUxvZ2ljYWxXaWR0aCgpOwotICAgICAgICBSZW5kZXJQYXJ0Ojpjb21wdXRl
TG9naWNhbEhlaWdodCgpOworICAgICAgICBSZW5kZXJQYXJ0Ojp1cGRhdGVMb2dpY2FsSGVpZ2h0
KCk7CiAgICAgICAgIGxheW91dFdpdGhGbGF0dGVuaW5nKHN0eWxlKCktPndpZHRoKCkuaXNGaXhl
ZCgpLCBzdHlsZSgpLT5oZWlnaHQoKS5pc0ZpeGVkKCkpOwogICAgICAgICAvLyBGSVhNRTogSXMg
ZWFybHkgcmV0dXJuIHJlYWxseSBPSyBoZXJlPyBXaGF0IGFib3V0IHRyYW5zZm9ybS9vdmVyZmxv
dyBjb2RlIGJlbG93PwogICAgICAgICByZXR1cm47CkBAIC0yMDEsNyArMjAxLDcgQEAgdm9pZCBS
ZW5kZXJJRnJhbWU6OmxheW91dCgpCiAgICAgfSBlbHNlIHsKICAgICAgICAgY29tcHV0ZUxvZ2lj
YWxXaWR0aCgpOwogICAgICAgICAvLyBObyBraWRzIHRvIGxheW91dCBhcyBhIHJlcGxhY2VkIGVs
ZW1lbnQuCi0gICAgICAgIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgIHVwZGF0ZUxv
Z2ljYWxIZWlnaHQoKTsKICAgICB9CiAKICAgICBtX292ZXJmbG93LmNsZWFyKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmgKaW5kZXggOGI5MzQwN2UzMTNkY2E5ZjI0NDk4
MzlhMTBlNDlhZmY1ZGRkM2Q5Ny4uOGM0OTUzMzcwZjJhYzlkMDZiNzBmN2ViZThhYWMzZjZiNTFk
ZmViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJhbWUuaApAQCAtNDAsNyAr
NDAsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1NlYW1sZXNzKCkgY29uc3Q7CiAKIHByaXZhdGU6
Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFs
IHZvaWQgY29tcHV0ZUxvZ2ljYWxXaWR0aCgpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBMYXlv
dXRVbml0IG1pblByZWZlcnJlZExvZ2ljYWxXaWR0aCgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggMTk1M2Y1MzMxZTE1ODk0ZDNk
NTIwNmQ5NmM4Mjc3Nzk4MDExYmIyMS4uMTdiYjY5ZmUyMzJmZDRhZWFhMWRhZTM3NjRjMDA3NzY4
Y2UzM2IxZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCkBAIC0y
MjUsNyArMjI1LDcgQEAgdm9pZCBSZW5kZXJJbWFnZTo6aW1hZ2VEaW1lbnNpb25zQ2hhbmdlZChi
b29sIGltYWdlU2l6ZUNoYW5nZWQsIGNvbnN0IEludFJlY3QqIHIKICAgICAgICAgaWYgKCFwcmVm
ZXJyZWRMb2dpY2FsV2lkdGhzRGlydHkoKSkKICAgICAgICAgICAgIHNldFByZWZlcnJlZExvZ2lj
YWxXaWR0aHNEaXJ0eSh0cnVlKTsKICAgICAgICAgY29tcHV0ZUxvZ2ljYWxXaWR0aCgpOwotICAg
ICAgICBjb21wdXRlTG9naWNhbEhlaWdodCgpOworICAgICAgICB1cGRhdGVMb2dpY2FsSGVpZ2h0
KCk7CiAKICAgICAgICAgaWYgKGltYWdlU2l6ZUNoYW5nZWQgfHwgd2lkdGgoKSAhPSBvbGR3aWR0
aCB8fCBoZWlnaHQoKSAhPSBvbGRoZWlnaHQpIHsKICAgICAgICAgICAgIHNob3VsZFJlcGFpbnQg
PSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAppbmRl
eCBkYjcwYjA4YTUxNjc0YTRiZTdiMjMwN2Y3MTUwNTVhMDc5MzU5MmNhLi45YjlmMDg0ODc2MmRi
ZjJkYjM4MTJjOWFjMTdhY2UyOTMwZjQzMTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckxpc3RCb3guY3BwCkBAIC0yNTAsMTQgKzI1MCwxNCBAQCBMYXlvdXRVbml0IFJlbmRl
ckxpc3RCb3g6Omxpc3RIZWlnaHQoKSBjb25zdAogICAgIHJldHVybiBpdGVtSGVpZ2h0KCkgKiBu
dW1JdGVtcygpIC0gcm93U3BhY2luZzsKIH0KIAotdm9pZCBSZW5kZXJMaXN0Qm94Ojpjb21wdXRl
TG9naWNhbEhlaWdodCgpCit2b2lkIFJlbmRlckxpc3RCb3g6OnVwZGF0ZUxvZ2ljYWxIZWlnaHQo
KQogewogICAgIGludCB0b0FkZCA9IGJvcmRlckFuZFBhZGRpbmdIZWlnaHQoKTsKICAKICAgICBp
bnQgaXRlbUhlaWdodCA9IFJlbmRlckxpc3RCb3g6Oml0ZW1IZWlnaHQoKTsKICAgICBzZXRIZWln
aHQoaXRlbUhlaWdodCAqIHNpemUoKSAtIHJvd1NwYWNpbmcgKyB0b0FkZCk7CiAgICAgCi0gICAg
UmVuZGVyQmxvY2s6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7CisgICAgUmVuZGVyQmxvY2s6OnVw
ZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKICAgICAKICAgICBpZiAobV92QmFyKSB7CiAgICAgICAgIGJv
b2wgZW5hYmxlZCA9IG51bVZpc2libGVJdGVtcygpIDwgbnVtSXRlbXMoKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCmluZGV4IDlhMDExMGVmYzhmZmY2NDhkYmVmYTg5
YzA1MGJkOTBlN2UyMjUzNjguLmI5ZWViZDFlMDE3MWY2ZGM1ODk0ZGM3YWRmNDViODU0YzYwOTE5
NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaApAQCAtNzcsNyAr
NzcsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dp
Y2FsV2lkdGhzKCk7CiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRpb24oRm9u
dEJhc2VsaW5lLCBib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQb3NpdGlv
bk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0OwotICAgIHZpcnR1YWwgdm9p
ZCBjb21wdXRlTG9naWNhbEhlaWdodCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVMb2dpY2FsSGVpZ2h0KCkgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRlci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWV0ZXIuY3BwCmluZGV4IDQ5N2JlZjkx
ZTQ2YzNiYjk1ZWZmYzE1ZGJiNjVjNTFmNjEwMWE1ZGIuLjk1MzY0ZjgxNDU0Y2NkNDY4MzVmMmE5
ODE4M2M3YjU2YzBhY2E0NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNZXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1ldGVy
LmNwcApAQCAtNTgsOSArNTgsOSBAQCB2b2lkIFJlbmRlck1ldGVyOjpjb21wdXRlTG9naWNhbFdp
ZHRoKCkKICAgICBzZXRXaWR0aCh0aGVtZSgpLT5tZXRlclNpemVGb3JCb3VuZHModGhpcywgcGl4
ZWxTbmFwcGVkSW50UmVjdChmcmFtZVJlY3QoKSkpLndpZHRoKCkpOwogfQogCi12b2lkIFJlbmRl
ck1ldGVyOjpjb21wdXRlTG9naWNhbEhlaWdodCgpCit2b2lkIFJlbmRlck1ldGVyOjp1cGRhdGVM
b2dpY2FsSGVpZ2h0KCkKIHsKLSAgICBSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7
CisgICAgUmVuZGVyQm94Ojp1cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAgICAgc2V0SGVpZ2h0KHRo
ZW1lKCktPm1ldGVyU2l6ZUZvckJvdW5kcyh0aGlzLCBwaXhlbFNuYXBwZWRJbnRSZWN0KGZyYW1l
UmVjdCgpKSkuaGVpZ2h0KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTWV0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRl
ci5oCmluZGV4IGI3MzIxODU5ODQ5Yzk0Yzk3ZGM0YTJkYzBjZDkzMmMwODVlYTY4MWMuLjM5NzE3
NjkyNjZhY2JjYzRhNTEwY2JjYmE3NmRhMTlkZjYxMWJjMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZXRlci5oCkBAIC00MCw3ICs0MCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZTog
ICAgCiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVMb2dpY2FsV2lkdGgoKSBPVkVSUklERTsKLSAg
ICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoKSBPVkVSUklERTsKKyAgICB2aXJ0
dWFsIHZvaWQgdXBkYXRlTG9naWNhbEhlaWdodCgpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBj
b25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlck1ldGVyIjsgfQog
ICAgIHZpcnR1YWwgYm9vbCBpc01ldGVyKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suY3BwCmlu
ZGV4IDY0MjcxYTMyOTQxZDJmYjQ1NTExMTE3ODE3MGYyYTRhNzU3ZTg3ZTUuLjM0MWQxMmJkYTgw
MmI5NDljYjUyNTJiOTJjYmQ1MzZjOGE4NDQ1MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAKQEAgLTgxLDcgKzgxLDcgQEAg
Ym9vbCBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrOjpyZWNvbXB1dGVMb2dpY2FsV2lkdGgoKQogdm9p
ZCBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrOjpjaGVja0ZvclBhZ2luYXRpb25Mb2dpY2FsSGVpZ2h0
Q2hhbmdlKExheW91dFVuaXQmIC8qcGFnZUxvZ2ljYWxIZWlnaHQqLywgYm9vbCYgLypwYWdlTG9n
aWNhbEhlaWdodENoYW5nZWQqLywgYm9vbCYgLypoYXNTcGVjaWZpZWRQYWdlTG9naWNhbEhlaWdo
dCovKQogewogICAgIC8vIFdlIGRvbid0IGFjdHVhbGx5IHVwZGF0ZSBhbnkgb2YgdGhlIHZhcmlh
Ymxlcy4gV2UganVzdCBzdWJjbGFzc2VkIHRvIGFkanVzdCBvdXIgY29sdW1uIGhlaWdodC4KLSAg
ICBjb21wdXRlTG9naWNhbEhlaWdodCgpOworICAgIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKICAg
ICBMYXlvdXRVbml0IG5ld0NvbnRlbnRMb2dpY2FsSGVpZ2h0ID0gY29udGVudExvZ2ljYWxIZWln
aHQoKTsKICAgICBpZiAobmV3Q29udGVudExvZ2ljYWxIZWlnaHQgPiBaRVJPX0xBWU9VVF9VTklU
KSB7CiAgICAgICAgIC8vIFRoZSByZWdpb25zIHdpbGwgYmUgaW52YWxpZGF0ZWQgd2hlbiB3ZSBs
YXkgdGhlbSBvdXQgYW5kIHRoZXkgY2hhbmdlIHNpemUgdG8KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuaCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuaAppbmRleCBjNjll
NjUwMTY4NWIzYjNhZGQ5YWFiMmQ1MGY1OWEyYWY4NWY1YjZjLi4zNjNjZDA3NzEyOGNiZjVjOTY4
OTc0ZTdmMjkyMmU3Yzc3YTQ3NTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZC5oCkBAIC0zOSw3ICszOSw3IEBAIHB1
YmxpYzoKIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiByZW5kZXJOYW1lKCkgY29u
c3QgT1ZFUlJJREU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVMb2dpY2FsSGVpZ2h0
KCkgT1ZFUlJJREUge307IC8vIFdlIHNpbXBseSByZW1haW4gYXQgb3VyIGludHJpbnNpYyBoZWln
aHQuCisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKSBPVkVSUklERSB7IH0g
Ly8gV2Ugc2ltcGx5IHJlbWFpbiBhdCBvdXIgaW50cmluc2ljIGhlaWdodC4KIH07CiAKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJNdWx0aUNvbHVtblNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TXVsdGlDb2x1bW5TZXQuY3BwCmluZGV4IDM2OTAxMTk4MDdmYjUwZTgxZjM0Zjg5MDNlMmFlNjgx
YzhkNGUxODIuLjFjYjNjMzhjNjkwYzNmNThjMDAxYjM0ZjE1MTViNmNjNGJjMWEyMzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcApA
QCAtNjQsNyArNjQsNyBAQCB2b2lkIFJlbmRlck11bHRpQ29sdW1uU2V0Ojpjb21wdXRlTG9naWNh
bFdpZHRoKCkKICAgICBzZXRDb21wdXRlZENvbHVtbldpZHRoQW5kQ291bnQocGFyZW50QmxvY2st
PmNvbHVtbldpZHRoKCksIHBhcmVudEJsb2NrLT5jb2x1bW5Db3VudCgpKTsgLy8gRklYTUU6IFRo
aXMgd2lsbCBldmVudHVhbGx5IHZhcnkgaWYgd2UgYXJlIGNvbnRhaW5lZCBpbnNpZGUgcmVnaW9u
cy4KIH0KIAotdm9pZCBSZW5kZXJNdWx0aUNvbHVtblNldDo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQo
KQordm9pZCBSZW5kZXJNdWx0aUNvbHVtblNldDo6dXBkYXRlTG9naWNhbEhlaWdodCgpCiB7CiAg
ICAgLy8gTWFrZSBzdXJlIG91ciBjb2x1bW4gaGVpZ2h0IGlzIHVwIHRvIGRhdGUuCiAgICAgUmVu
ZGVyTXVsdGlDb2x1bW5CbG9jayogcGFyZW50QmxvY2sgPSB0b1JlbmRlck11bHRpQ29sdW1uQmxv
Y2socGFyZW50KCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck11bHRpQ29sdW1uU2V0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlD
b2x1bW5TZXQuaAppbmRleCBhMGQxYzQ1MzY4YThiODhiYjc4YzI1ZmI0YzIzZDRmMjkxMTM4Mzkw
Li5iNTBjYmE3MGJlNDExYzE0ZjlhOGY2MzNmNzYxZWE4Yzg0ZTMyMzc5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaApAQCAtNjMsNyArNjMs
NyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVMb2dpY2Fs
V2lkdGgoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUxvZ2ljYWxIZWlnaHQo
KSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTG9naWNhbEhlaWdodCgpIE9WRVJS
SURFOwogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiwgY29uc3Qg
TGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJvb2wgbm9k
ZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgSGl0
VGVzdExvY2F0aW9uJiwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRU
ZXN0QWN0aW9uKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVw
bGFjZWQuY3BwCmluZGV4IGJjZDk2N2U2YTc1MTA4NGNmMWQ2NjA3MTBjMGJjNDdlODVhNzRlMGMu
LjI0NDk1NTM3MGIwNWRkOGEwZTUwMmUwZDBhMjViMWI4ZjMwMzhmMDYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcApAQCAtODYsNyArODYsNyBAQCB2b2lk
IFJlbmRlclJlcGxhY2VkOjpsYXlvdXQoKQogICAgIHNldEhlaWdodChtaW5pbXVtUmVwbGFjZWRI
ZWlnaHQoKSk7CiAKICAgICBjb21wdXRlTG9naWNhbFdpZHRoKCk7Ci0gICAgY29tcHV0ZUxvZ2lj
YWxIZWlnaHQoKTsKKyAgICB1cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAKICAgICBtX292ZXJmbG93
LmNsZWFyKCk7CiAgICAgYWRkVmlzdWFsRWZmZWN0T3ZlcmZsb3coKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCmluZGV4IDI3MDRjZGMwMzhmZGUy
OGVkMmM5NDNmOWYzZjM0NzIzNmFkNGRjNTMuLjRhZDQ1OGFiNzQ1OWVjMWFmMGM0ODM5MWM2ZWZi
NzNmZDhmYTkwOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJT
ZWFyY2hGaWVsZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJj
aEZpZWxkLmNwcApAQCAtMTUxLDEzICsxNTEsMTMgQEAgTGF5b3V0VW5pdCBSZW5kZXJTZWFyY2hG
aWVsZDo6Y29tcHV0ZUNvbnRyb2xIZWlnaHQoTGF5b3V0VW5pdCBsaW5lSGVpZ2h0LCBMYXlvdXQK
IHsKICAgICBIVE1MRWxlbWVudCogcmVzdWx0c0J1dHRvbiA9IHJlc3VsdHNCdXR0b25FbGVtZW50
KCk7CiAgICAgaWYgKFJlbmRlckJveCogcmVzdWx0c1JlbmRlcmVyID0gcmVzdWx0c0J1dHRvbiA/
IHJlc3VsdHNCdXR0b24tPnJlbmRlckJveCgpIDogMCkgewotICAgICAgICByZXN1bHRzUmVuZGVy
ZXItPmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgIHJlc3VsdHNSZW5kZXJlci0+dXBk
YXRlTG9naWNhbEhlaWdodCgpOwogICAgICAgICBub25Db250ZW50SGVpZ2h0ID0gbWF4KG5vbkNv
bnRlbnRIZWlnaHQsIHJlc3VsdHNSZW5kZXJlci0+Ym9yZGVyQW5kUGFkZGluZ0hlaWdodCgpICsg
cmVzdWx0c1JlbmRlcmVyLT5tYXJnaW5IZWlnaHQoKSk7CiAgICAgICAgIGxpbmVIZWlnaHQgPSBt
YXgobGluZUhlaWdodCwgcmVzdWx0c1JlbmRlcmVyLT5oZWlnaHQoKSk7CiAgICAgfQogICAgIEhU
TUxFbGVtZW50KiBjYW5jZWxCdXR0b24gPSBjYW5jZWxCdXR0b25FbGVtZW50KCk7CiAgICAgaWYg
KFJlbmRlckJveCogY2FuY2VsUmVuZGVyZXIgPSBjYW5jZWxCdXR0b24gPyBjYW5jZWxCdXR0b24t
PnJlbmRlckJveCgpIDogMCkgewotICAgICAgICBjYW5jZWxSZW5kZXJlci0+Y29tcHV0ZUxvZ2lj
YWxIZWlnaHQoKTsKKyAgICAgICAgY2FuY2VsUmVuZGVyZXItPnVwZGF0ZUxvZ2ljYWxIZWlnaHQo
KTsKICAgICAgICAgbm9uQ29udGVudEhlaWdodCA9IG1heChub25Db250ZW50SGVpZ2h0LCBjYW5j
ZWxSZW5kZXJlci0+Ym9yZGVyQW5kUGFkZGluZ0hlaWdodCgpICsgY2FuY2VsUmVuZGVyZXItPm1h
cmdpbkhlaWdodCgpKTsKICAgICAgICAgbGluZUhlaWdodCA9IG1heChsaW5lSGVpZ2h0LCBjYW5j
ZWxSZW5kZXJlci0+aGVpZ2h0KCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVGFibGUuY3BwCmluZGV4IDRmMjU5NDRhNjM4MjBiMzAzYWFiOThmYzRkN2YxYzE1MmY1MWQ2
MWEuLjQxYTMyMWI1OTJkZjg0ZDMxNGMxZGY2NmU5MmRlYzc1MGJiZGFjZjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcApAQCAtNDA3LDcgKzQwNyw3IEBAIHZvaWQg
UmVuZGVyVGFibGU6OmxheW91dCgpCiAgICAgc2V0TG9naWNhbEhlaWdodChsb2dpY2FsSGVpZ2h0
KCkgKyBib3JkZXJBbmRQYWRkaW5nQmVmb3JlKTsKIAogICAgIGlmICghaXNPdXRPZkZsb3dQb3Np
dGlvbmVkKCkpCi0gICAgICAgIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgIHVwZGF0
ZUxvZ2ljYWxIZWlnaHQoKTsKIAogICAgIExlbmd0aCBsb2dpY2FsSGVpZ2h0TGVuZ3RoID0gc3R5
bGUoKS0+bG9naWNhbEhlaWdodCgpOwogICAgIExheW91dFVuaXQgY29tcHV0ZWRMb2dpY2FsSGVp
Z2h0ID0gMDsKQEAgLTQ1OSw3ICs0NTksNyBAQCB2b2lkIFJlbmRlclRhYmxlOjpsYXlvdXQoKQog
ICAgIH0KIAogICAgIGlmIChpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkKLSAgICAgICAgY29tcHV0
ZUxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgdXBkYXRlTG9naWNhbEhlaWdodCgpOwogCiAgICAg
Ly8gdGFibGUgY2FuIGJlIGNvbnRhaW5pbmcgYmxvY2sgb2YgcG9zaXRpb25lZCBlbGVtZW50cy4K
ICAgICAvLyBGSVhNRTogT25seSBwYXNzIHRydWUgaWYgd2lkdGggb3IgaGVpZ2h0IGNoYW5nZWQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcAppbmRl
eCBjYjc2MzdkYjM3NWQxZTZjOTkzYmM5N2FmMWY2ZDg5OTdhMTRlN2VlLi40YmJlOWRjNTI2N2Y5
MDVhZTdlMjlkODc2ZGZkMTFmMGQxNGVmYzNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKQEAgLTE0NCw3ICsxNDQsNyBAQCBpbnQgUmVuZGVy
VGV4dENvbnRyb2w6OnNjcm9sbGJhclRoaWNrbmVzcygpIGNvbnN0CiAgICAgcmV0dXJuIFNjcm9s
bGJhclRoZW1lOjp0aGVtZSgpLT5zY3JvbGxiYXJUaGlja25lc3MoKTsKIH0KIAotdm9pZCBSZW5k
ZXJUZXh0Q29udHJvbDo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoKQordm9pZCBSZW5kZXJUZXh0Q29u
dHJvbDo6dXBkYXRlTG9naWNhbEhlaWdodCgpCiB7CiAgICAgSFRNTEVsZW1lbnQqIGlubmVyVGV4
dCA9IGlubmVyVGV4dEVsZW1lbnQoKTsKICAgICBBU1NFUlQoaW5uZXJUZXh0KTsKQEAgLTE1Nyw3
ICsxNTcsNyBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sOjpjb21wdXRlTG9naWNhbEhlaWdodCgp
CiAgICAgICAgICAgICBzZXRIZWlnaHQoaGVpZ2h0KCkgKyBzY3JvbGxiYXJUaGlja25lc3MoKSk7
CiAgICAgfQogCi0gICAgUmVuZGVyQmxvY2s6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7CisgICAg
UmVuZGVyQmxvY2s6OnVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKIH0KIAogdm9pZCBSZW5kZXJUZXh0
Q29udHJvbDo6aGl0SW5uZXJUZXh0RWxlbWVudChIaXRUZXN0UmVzdWx0JiByZXN1bHQsIGNvbnN0
IExheW91dFBvaW50JiBwb2ludEluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQb2ludCYgYWNjdW11
bGF0ZWRPZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2wuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJv
bC5oCmluZGV4IDZkMGU0M2FmMWZlZjJlMmU2NzU4NWI0Yjc4MWY5Yzk4OGQzOTc0MDAuLjRmZTRk
YTU3MWYxNjhlYWM2MjVjNWUyNzI3NDdhMWYzZjYyMzg1NDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCkBAIC02Miw3ICs2Miw3IEBAIHByb3RlY3Rl
ZDoKICAgICB2aXJ0dWFsIFJlbmRlclN0eWxlKiB0ZXh0QmFzZVN0eWxlKCkgY29uc3QgPSAwOwog
CiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7Ci0gICAgdmlydHVhbCB2b2lk
IGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUxvZ2ljYWxIZWlnaHQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFJlbmRlck9iamVjdCogbGF5
b3V0U3BlY2lhbEV4Y2x1ZGVkQ2hpbGQoYm9vbCByZWxheW91dENoaWxkcmVuKTsKIAogcHJpdmF0
ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCBjNzljNjY0MjZi
MjllMTEyMTM0Mjc3OTViMDJiN2I3ZGZkNjQwYWE2Li4xM2JiZjhhZDMxMmEwOWVkODFmYTg5ZmQx
ZjY4YjFiYzZkZTJlOTgyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
CkBAIC05MCw3ICs5MCw3IEBAIGJvb2wgUmVuZGVyVmlldzo6aGl0VGVzdChjb25zdCBIaXRUZXN0
UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0KQogICAgIHJldHVybiBsYXll
cigpLT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7CiB9CiAKLXZvaWQgUmVuZGVyVmlldzo6Y29t
cHV0ZUxvZ2ljYWxIZWlnaHQoKQordm9pZCBSZW5kZXJWaWV3Ojp1cGRhdGVMb2dpY2FsSGVpZ2h0
KCkKIHsKICAgICBpZiAoIXNob3VsZFVzZVByaW50aW5nTGF5b3V0KCkgJiYgbV9mcmFtZVZpZXcp
CiAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQodmlld0xvZ2ljYWxIZWlnaHQoKSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCA0ODQ4Y2E5YmIxYjFiMWE2ZDhlYWJmMDMw
NjhmMWQ1OTZlY2NlOGM5Li4zM2FmMDg4MmE5Y2JjN2Y0Y2ZiYzNhMDVkMWE4NGE4ODcxNjgwZTNj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKQEAgLTU5LDcgKzU5LDcgQEAg
cHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURFOwogICAgIHZpcnR1
YWwgdm9pZCBjb21wdXRlTG9naWNhbFdpZHRoKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lk
IGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUxvZ2ljYWxIZWlnaHQoKSBPVkVSUklERTsKICAgICAvLyBGSVhNRTogVGhpcyBvdmVycmlkZSBp
cyBub3QgbmVlZGVkIGFuZCBzaG91bGQgYmUgcmVtb3ZlZAogICAgIC8vIGl0IG9ubHkgZXhpc3Rz
IHRvIG1ha2UgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMgcHVibGljLgogICAgIHZpcnR1
YWwgdm9pZCBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocygpIE9WRVJSSURFOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVj
dC5jcHAKaW5kZXggYWNjMGM2ZDM2NWRjMjBiMjg5YjkwYWQxMmZiNmNjMWUxOTIzM2ViOS4uN2Vj
ZjBiMzIwN2FlZTU3YjFhNDE0YjZiMzgyODY1MjdiODliOGFlOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwCkBA
IC0xMTIsNyArMTEyLDcgQEAgdm9pZCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0Ojpjb21wdXRlTG9n
aWNhbFdpZHRoKCkKICAgICBzZXRXaWR0aChzdGF0aWNfY2FzdDxpbnQ+KHJvdW5kZihtX3ZpZXdw
b3J0LndpZHRoKCkpKSk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6Y29tcHV0
ZUxvZ2ljYWxIZWlnaHQoKQordm9pZCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0Ojp1cGRhdGVMb2dp
Y2FsSGVpZ2h0KCkKIHsKICAgICAvLyBGSVhNRTogSW52ZXN0aWdhdGUgaW4gc2l6ZSByb3VuZGlu
ZyBpc3N1ZXMKICAgICAvLyBGSVhNRTogUmVtb3ZlIHVubmVjZXNzYXJ5IHJvdW5kaW5nIHdoZW4g
bGF5b3V0IGlzIG9mZiBpbnRzOiB3ZWJraXQub3JnL2IvNjM2NTYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgKaW5kZXggMGQ2
NWQ1NzQxNzMxMDg0YjJkN2M5ZDNhYTFlZjA2ZjQxYjUxY2MwMC4uMzNiNjIzYWJlNDExMzA1NTJk
MDBmYjFkOWZlMTQ0YjQ2M2U1NjgyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgKQEAgLTYwLDcgKzYwLDcgQEAgcHVi
bGljOgogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlTG9naWNhbFdpZHRoKCkg
T1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCkgT1ZFUlJJ
REU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKSBPVkVSUklERTsKIAog
ICAgIHZpcnR1YWwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBsb2NhbFRvUGFyZW50VHJhbnNmb3Jt
KCkgY29uc3Q7CiAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gbG9jYWxUcmFuc2Zvcm0oKSBj
b25zdCB7IHJldHVybiBtX2xvY2FsVHJhbnNmb3JtOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAppbmRleCBmNzExNWQ5MjY1YmI5YjFmNTI2MTFi
OTdhYmQ0ZjgyYWQ3YWNiNGRiLi5lMjA3MTk5M2I2YjhhODRmNTAwMDYyNThhMjg1OTM3NGU3ZmMx
M2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jv
b3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5j
cHAKQEAgLTIzMCw3ICsyMzAsNyBAQCB2b2lkIFJlbmRlclNWR1Jvb3Q6OmxheW91dCgpCiAKICAg
ICBMYXlvdXRTaXplIG9sZFNpemUgPSBzaXplKCk7CiAgICAgY29tcHV0ZUxvZ2ljYWxXaWR0aCgp
OwotICAgIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7CisgICAgdXBkYXRlTG9naWNhbEhlaWdodCgp
OwogICAgIGJ1aWxkTG9jYWxUb0JvcmRlckJveFRyYW5zZm9ybSgpOwogCiAgICAgU1ZHU1ZHRWxl
bWVudCogc3ZnID0gc3RhdGljX2Nhc3Q8U1ZHU1ZHRWxlbWVudCo+KG5vZGUoKSk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163222</attachid>
            <date>2012-09-10 15:12:05 -0700</date>
            <delta_ts>2012-09-11 09:56:12 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-96305-20120910151141.patch</filename>
            <type>text/plain</type>
            <size>33573</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDY4MDQ5NTVhMGY0MDU2
ZDlhNTZhNmMwMWU3MDRmZTAzZDgzMDI1My4uMDFhYWUxOWQxM2RmNWU4ZGRlZjIxMTQ4NGYwM2U3
OTA2Y2FlOTc1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDkxIEBACiAyMDEyLTA5LTEwICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKKyAgICAgICAgUmVuYW1lIGNvbXB1dGVMb2dp
Y2FsSGVpZ2h0IHRvIHVwZGF0ZUxvZ2ljYWxIZWlnaHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MzA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgT2ph
biBWYWZhaS4KKworICAgICAgICBjb21wdXRlTG9naWNhbEhlaWdodCBjaGFuZ2VzIHRoZSB2YWx1
ZSBvZiA0IG1lbWJlciB2YXJpYWJsZXMgb2YgdGhlCisgICAgICAgIHJlbmRlciBib3gsIHNvIGdp
dmUgaXQgYSBuYW1lIHRoYXQgbWFrZXMgaXQgbW9yZSBjbGVhciB0aGF0IGl0IGlzCisgICAgICAg
IHVwZGF0aW5nIG1lbWJlciB2YXJpYWJsZXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGlz
IGlzIGp1c3QgYSByZWZhY3Rvci4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29tcHV0ZUluaXRpYWxSZWdpb25S
YW5nZUZvckJsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjaGVja0ZvclBh
Z2luYXRpb25Mb2dpY2FsSGVpZ2h0Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpsYXlvdXRCbG9jayk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0
UG9zaXRpb25lZE9iamVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNvbXB1
dGVCbG9ja1ByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojp1cGRhdGVMb2dpY2FsSGVp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVBlcmNlbnRhZ2VMb2dp
Y2FsSGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVJlcGxhY2Vk
TG9naWNhbEhlaWdodFVzaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6YXZhaWxh
YmxlTG9naWNhbEhlaWdodFVzaW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6
CisgICAgICAgIChSZW5kZXJCb3gpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojp0cnlM
YXlvdXREb2luZ1Bvc2l0aW9uZWRNb3ZlbWVudE9ubHkpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
RGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRCbG9jayk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dEhvcml6b250YWxCb3gpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRWZXJ0aWNhbEJv
eCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpsYXlvdXQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJG
bGV4aWJsZUJveDo6bGF5b3V0QmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGli
bGVCb3g6OmxheW91dEFuZFBsYWNlQ2hpbGRyZW4pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJGbG93VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OnVw
ZGF0ZUxvZ2ljYWxIZWlnaHQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFk
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyR3JpZDo6bGF5b3V0QmxvY2spOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJI
VE1MQ2FudmFzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckhUTUxDYW52YXM6OmNhbnZh
c1NpemVDaGFuZ2VkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlcklGcmFtZTo6dXBkYXRlTG9naWNhbEhlaWdodCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJJRnJhbWU6OmxheW91dFNlYW1sZXNzbHkpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVySUZyYW1lOjpsYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJJRnJhbWUuaDoKKyAgICAgICAgKFJlbmRlcklGcmFtZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjppbWFnZURp
bWVuc2lvbnNDaGFuZ2VkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94Ojp1cGRhdGVMb2dpY2FsSGVpZ2h0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oOgorICAgICAgICAoUmVuZGVyTGlz
dEJveCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1ldGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck1ldGVyOjp1cGRhdGVMb2dpY2FsSGVpZ2h0KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTWV0ZXIuaDoKKyAgICAgICAgKFJlbmRlck1ldGVyKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNdWx0aUNvbHVtbkJsb2NrOjpjaGVja0ZvclBhZ2luYXRpb25Mb2dpY2FsSGVpZ2h0Q2hh
bmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck11bHRpQ29sdW1uU2V0Ojp1cGRhdGVMb2dpY2FsSGVpZ2h0KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaDoKKyAgICAgICAgKFJlbmRl
ck11bHRpQ29sdW1uU2V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmxheW91dCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNlYXJjaEZpZWxkOjpjb21wdXRlQ29udHJvbEhlaWdodCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpsYXlvdXQp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6dXBkYXRlTG9naWNhbEhlaWdodCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmg6CisgICAgICAgIChSZW5kZXJUZXh0Q29u
dHJvbCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVmlldzo6dXBkYXRlTG9naWNhbEhlaWdodCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVp
Z25PYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6
dXBkYXRlTG9naWNhbEhlaWdodCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdG
b3JlaWduT2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJTVkdGb3JlaWduT2JqZWN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU1ZHUm9vdDo6bGF5b3V0KToKKworMjAxMi0wOS0xMCAgVG9ueSBDaGFuZyAgPHRvbnlA
Y2hyb21pdW0ub3JnPgorCiAgICAgICAgIFJlbmFtZSBjb21wdXRlTG9naWNhbFdpZHRoIHRvIHVw
ZGF0ZUxvZ2ljYWxXaWR0aAogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9OTYyODgKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAK
aW5kZXggZDljOGQ1MDQyY2Y5ZTQxODhmNTE5YjkzZTk0ZDg4MDRkMzU2ZDViZS4uNzdkYzU5ZTUz
ZWVkYTdlOWQ3ZWIzNjllZDMxZmJhMGJjNzM0OGU0NCAxMDA3NTUKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2suY3BwCkBAIC0xNDAyLDcgKzE0MDIsNyBAQCB2b2lkIFJlbmRlckJsb2Nr
Ojpjb21wdXRlSW5pdGlhbFJlZ2lvblJhbmdlRm9yQmxvY2soKQogICAgICAgICBMYXlvdXRVbml0
IG9sZEhlaWdodCA9ICBsb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgIExheW91dFVuaXQgb2xkTG9n
aWNhbFRvcCA9IGxvZ2ljYWxUb3AoKTsKICAgICAgICAgc2V0TG9naWNhbEhlaWdodChNQVhfTEFZ
T1VUX1VOSVQgLyAyKTsKLSAgICAgICAgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAg
dXBkYXRlTG9naWNhbEhlaWdodCgpOwogICAgICAgICBlbmNsb3NpbmdSZW5kZXJGbG93VGhyZWFk
KCktPnNldFJlZ2lvblJhbmdlRm9yQm94KHRoaXMsIG9mZnNldEZyb21Mb2dpY2FsVG9wT2ZGaXJz
dFBhZ2UoKSk7CiAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQob2xkSGVpZ2h0KTsKICAgICAgICAg
c2V0TG9naWNhbFRvcChvbGRMb2dpY2FsVG9wKTsKQEAgLTE0MzMsNyArMTQzMyw3IEBAIHZvaWQg
UmVuZGVyQmxvY2s6OmNoZWNrRm9yUGFnaW5hdGlvbkxvZ2ljYWxIZWlnaHRDaGFuZ2UoTGF5b3V0
VW5pdCYgcGFnZUxvZ2ljYWxICiAgICAgICAgIGlmICghcGFnZUxvZ2ljYWxIZWlnaHQpIHsKICAg
ICAgICAgICAgIC8vIFdlIG5lZWQgdG8gZ28gYWhlYWQgYW5kIHNldCBvdXIgZXhwbGljaXQgcGFn
ZSBoZWlnaHQgaWYgb25lIGV4aXN0cywgc28gdGhhdCB3ZSBjYW4KICAgICAgICAgICAgIC8vIGF2
b2lkIGRvaW5nIHR3byBsYXlvdXQgcGFzc2VzLgotICAgICAgICAgICAgY29tcHV0ZUxvZ2ljYWxI
ZWlnaHQoKTsKKyAgICAgICAgICAgIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgICAg
IExheW91dFVuaXQgY29sdW1uSGVpZ2h0ID0gY29udGVudExvZ2ljYWxIZWlnaHQoKTsKICAgICAg
ICAgICAgIGlmIChjb2x1bW5IZWlnaHQgPiBaRVJPX0xBWU9VVF9VTklUKSB7CiAgICAgICAgICAg
ICAgICAgcGFnZUxvZ2ljYWxIZWlnaHQgPSBjb2x1bW5IZWlnaHQ7CkBAIC0xNTQ2LDcgKzE1NDYs
NyBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4s
IExheW91dFVuaXQgcGFnZUxvZ2ljYWxIZWlnaAogICAgIC8vIENhbGN1bGF0ZSBvdXIgbmV3IGhl
aWdodC4KICAgICBMYXlvdXRVbml0IG9sZEhlaWdodCA9IGxvZ2ljYWxIZWlnaHQoKTsKICAgICBM
YXlvdXRVbml0IG9sZENsaWVudEFmdGVyRWRnZSA9IGNsaWVudExvZ2ljYWxCb3R0b20oKTsKLSAg
ICBjb21wdXRlTG9naWNhbEhlaWdodCgpOworICAgIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKICAg
ICBMYXlvdXRVbml0IG5ld0hlaWdodCA9IGxvZ2ljYWxIZWlnaHQoKTsKICAgICBpZiAob2xkSGVp
Z2h0ICE9IG5ld0hlaWdodCkgewogICAgICAgICBpZiAob2xkSGVpZ2h0ID4gbmV3SGVpZ2h0ICYm
IG1heEZsb2F0TG9naWNhbEJvdHRvbSA+IG5ld0hlaWdodCAmJiAhY2hpbGRyZW5JbmxpbmUoKSkg
ewpAQCAtMjY1Miw3ICsyNjUyLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0UG9zaXRpb25l
ZE9iamVjdHMoYm9vbCByZWxheW91dENoaWxkcmVuKQogICAgICAgICBib29sIG5lZWRzQmxvY2tE
aXJlY3Rpb25Mb2NhdGlvblNldEJlZm9yZUxheW91dCA9IHItPm5lZWRzTGF5b3V0KCkgJiYgdmll
dygpLT5sYXlvdXRTdGF0ZSgpLT5uZWVkc0Jsb2NrRGlyZWN0aW9uTG9jYXRpb25TZXRCZWZvcmVM
YXlvdXQoKTsgCiAgICAgICAgIGlmIChuZWVkc0Jsb2NrRGlyZWN0aW9uTG9jYXRpb25TZXRCZWZv
cmVMYXlvdXQpIHsKICAgICAgICAgICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID09
IHItPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCi0gICAgICAgICAgICAgICAgci0+Y29tcHV0
ZUxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgICAgICAgICByLT51cGRhdGVMb2dpY2FsSGVpZ2h0
KCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgci0+dXBkYXRlTG9naWNhbFdp
ZHRoKCk7CiAgICAgICAgICAgICBvbGRMb2dpY2FsVG9wID0gbG9naWNhbFRvcEZvckNoaWxkKHIp
OwpAQCAtNjA1Nyw3ICs2MDU3LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZUJsb2NrUHJl
ZmVycmVkTG9naWNhbFdpZHRocygpCiAgICAgICAgICAgICBSZW5kZXJCb3gqIGNoaWxkQm94ID0g
dG9SZW5kZXJCb3goY2hpbGQpOwogICAgICAgICAgICAgTGF5b3V0VW5pdCBvbGRIZWlnaHQgPSBj
aGlsZEJveC0+bG9naWNhbEhlaWdodCgpOwogICAgICAgICAgICAgY2hpbGRCb3gtPnNldExvZ2lj
YWxIZWlnaHQoY2hpbGRCb3gtPmJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkpOwotICAg
ICAgICAgICAgY2hpbGRCb3gtPmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgICAgICBj
aGlsZEJveC0+dXBkYXRlTG9naWNhbEhlaWdodCgpOwogICAgICAgICAgICAgY2hpbGRNaW5QcmVm
ZXJyZWRMb2dpY2FsV2lkdGggPSBjaGlsZE1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9IGNoaWxk
Qm94LT5sb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgICAgICBjaGlsZEJveC0+c2V0TG9naWNhbEhl
aWdodChvbGRIZWlnaHQpOwogICAgICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQm94LmNwcAppbmRleCAwMTcyM2U0OTQ1NGYzNTVjYTEzMjUxZWMzODUxY2FjNjFlNmVk
YTZkLi4wYjE2ODEwMjdiZWViYWU1NjQxNjdhMGY0YjZhN2IzMzBmZmVlMjUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMTk2MSw3ICsxOTYxLDcgQEAgc3RhdGlj
IGJvb2wgc2hvdWxkRmxpcEJlZm9yZUFmdGVyTWFyZ2lucyhjb25zdCBSZW5kZXJTdHlsZSogY29u
dGFpbmluZ0Jsb2NrU3R5bGUKICAgICByZXR1cm4gc2hvdWxkRmxpcDsKIH0KIAotdm9pZCBSZW5k
ZXJCb3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCkKK3ZvaWQgUmVuZGVyQm94Ojp1cGRhdGVMb2dp
Y2FsSGVpZ2h0KCkKIHsKICAgICBMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMgY29tcHV0ZWRW
YWx1ZXM7CiAgICAgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoY29tcHV0ZWRWYWx1ZXMpOwpAQCAtMjE4
MSw3ICsyMTgxLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbXB1dGVQZXJjZW50YWdlTG9n
aWNhbEhlaWdodChjb25zdCBMZW5ndGgmIGhlaWdodCkgY29uc3QKICAgICAgICAgLy8gRG9uJ3Qg
YWxsb3cgdGhpcyB0byBhZmZlY3QgdGhlIGJsb2NrJyBoZWlnaHQoKSBtZW1iZXIgdmFyaWFibGUs
IHNpbmNlIHRoaXMKICAgICAgICAgLy8gY2FuIGdldCBjYWxsZWQgd2hpbGUgdGhlIGJsb2NrIGlz
IHN0aWxsIGxheWluZyBvdXQgaXRzIGtpZHMuCiAgICAgICAgIExheW91dFVuaXQgb2xkSGVpZ2h0
ID0gY2ItPmxvZ2ljYWxIZWlnaHQoKTsKLSAgICAgICAgY2ItPmNvbXB1dGVMb2dpY2FsSGVpZ2h0
KCk7CisgICAgICAgIGNiLT51cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgIHJlc3VsdCA9
IGNiLT5jb250ZW50TG9naWNhbEhlaWdodCgpOwogICAgICAgICBjYi0+c2V0TG9naWNhbEhlaWdo
dChvbGRIZWlnaHQpOwogICAgIH0KQEAgLTIyNzYsNyArMjI3Niw3IEBAIExheW91dFVuaXQgUmVu
ZGVyQm94Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0VXNpbmcoU2l6ZVR5cGUgc2l6ZVR5
cGUsIExlbmd0CiAgICAgICAgICAgICAgICAgQVNTRVJUKGNiLT5pc1JlbmRlckJsb2NrKCkpOwog
ICAgICAgICAgICAgICAgIFJlbmRlckJsb2NrKiBibG9jayA9IHRvUmVuZGVyQmxvY2soY2IpOwog
ICAgICAgICAgICAgICAgIExheW91dFVuaXQgb2xkSGVpZ2h0ID0gYmxvY2stPmhlaWdodCgpOwot
ICAgICAgICAgICAgICAgIGJsb2NrLT5jb21wdXRlTG9naWNhbEhlaWdodCgpOworICAgICAgICAg
ICAgICAgIGJsb2NrLT51cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgICAgICAgICAgTGF5
b3V0VW5pdCBuZXdIZWlnaHQgPSBibG9jay0+Y29tcHV0ZUNvbnRlbnRCb3hMb2dpY2FsSGVpZ2h0
KGJsb2NrLT5jb250ZW50SGVpZ2h0KCkpOwogICAgICAgICAgICAgICAgIGJsb2NrLT5zZXRIZWln
aHQob2xkSGVpZ2h0KTsKICAgICAgICAgICAgICAgICByZXR1cm4gY29tcHV0ZUNvbnRlbnRCb3hM
b2dpY2FsSGVpZ2h0KHZhbHVlRm9yTGVuZ3RoKGxvZ2ljYWxIZWlnaHQsIG5ld0hlaWdodCkpOwpA
QCAtMjM0Nyw3ICsyMzQ3LDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmF2YWlsYWJsZUxvZ2lj
YWxIZWlnaHRVc2luZyhjb25zdCBMZW5ndGgmIGgpIGNvbnN0CiAgICAgaWYgKGlzUmVuZGVyQmxv
Y2soKSAmJiBpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSAmJiBzdHlsZSgpLT5oZWlnaHQoKS5pc0F1
dG8oKSAmJiAhKHN0eWxlKCktPnRvcCgpLmlzQXV0bygpIHx8IHN0eWxlKCktPmJvdHRvbSgpLmlz
QXV0bygpKSkgewogICAgICAgICBSZW5kZXJCbG9jayogYmxvY2sgPSBjb25zdF9jYXN0PFJlbmRl
ckJsb2NrKj4odG9SZW5kZXJCbG9jayh0aGlzKSk7CiAgICAgICAgIExheW91dFVuaXQgb2xkSGVp
Z2h0ID0gYmxvY2stPmxvZ2ljYWxIZWlnaHQoKTsKLSAgICAgICAgYmxvY2stPmNvbXB1dGVMb2dp
Y2FsSGVpZ2h0KCk7CisgICAgICAgIGJsb2NrLT51cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAgICAg
ICAgIExheW91dFVuaXQgbmV3SGVpZ2h0ID0gYmxvY2stPmNvbXB1dGVDb250ZW50Qm94TG9naWNh
bEhlaWdodChibG9jay0+Y29udGVudExvZ2ljYWxIZWlnaHQoKSk7CiAgICAgICAgIGJsb2NrLT5z
ZXRMb2dpY2FsSGVpZ2h0KG9sZEhlaWdodCk7CiAgICAgICAgIHJldHVybiBjb21wdXRlQ29udGVu
dEJveExvZ2ljYWxIZWlnaHQobmV3SGVpZ2h0KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
b3guaAppbmRleCBkNzkyNzc4NDk3YzA4ODhkNjkwMTUxZDg3MDllY2M1YThhOGMxZjhmLi44MWYz
OTU2OTc4NmMwYzgyOWEzNTY5ODRkZjczNGVkOTIzY2I2NWRhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5oCkBAIC0zNjUsNyArMzY1LDcgQEAgcHVibGljOgogICAgIExheW91dFVu
aXQgcGVycGVuZGljdWxhckNvbnRhaW5pbmdCbG9ja0xvZ2ljYWxIZWlnaHQoKSBjb25zdDsKIAog
ICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMb2dpY2FsV2lkdGgoKTsKLSAgICB2aXJ0dWFsIHZvaWQg
Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTG9naWNhbEhl
aWdodCgpOwogICAgIHZvaWQgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoTG9naWNhbEV4dGVudENvbXB1
dGVkVmFsdWVzJikgY29uc3Q7CiAKICAgICBSZW5kZXJCb3hSZWdpb25JbmZvKiByZW5kZXJCb3hS
ZWdpb25JbmZvKFJlbmRlclJlZ2lvbiosIExheW91dFVuaXQgb2Zmc2V0RnJvbUxvZ2ljYWxUb3BP
ZkZpcnN0UGFnZSwgUmVuZGVyQm94UmVnaW9uSW5mb0ZsYWdzID0gQ2FjaGVSZW5kZXJCb3hSZWdp
b25JbmZvKSBjb25zdDsKQEAgLTQ1Myw3ICs0NTMsNyBAQCBwdWJsaWM6CiAgICAgICAgIC8vIElm
IHdlIHNocmluayB0byBmaXQgb3VyIHdpZHRoIG1heSBoYXZlIGNoYW5nZWQsIHNvIHdlIHN0aWxs
IG5lZWQgZnVsbCBsYXlvdXQuCiAgICAgICAgIGlmIChvbGRXaWR0aCAhPSB3aWR0aCgpKQogICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgICAgICBjb21wdXRlTG9naWNhbEhlaWdodCgpOwor
ICAgICAgICB1cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlcHJlY2F0
ZWRGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVj
YXRlZEZsZXhpYmxlQm94LmNwcAppbmRleCA4YmNkMWU5MmE0MjdmZWU1OTcwNzBkYjQwNGUwOTQ1
MTY2ODhmZjFkLi4xNWEwZGE2ZGZiNDhiNjQ0YWYzZDllOTg0OGU1ZTg3MWU2MWJiYWRiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxl
Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZs
ZXhpYmxlQm94LmNwcApAQCAtMjQ4LDcgKzI0OCw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZs
ZXhpYmxlQm94OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQp
CiAgICAgTGF5b3V0U2l6ZSBwcmV2aW91c1NpemUgPSBzaXplKCk7CiAKICAgICB1cGRhdGVMb2dp
Y2FsV2lkdGgoKTsKLSAgICBjb21wdXRlTG9naWNhbEhlaWdodCgpOworICAgIHVwZGF0ZUxvZ2lj
YWxIZWlnaHQoKTsKIAogICAgIG1fb3ZlcmZsb3cuY2xlYXIoKTsKIApAQCAtMjY5LDcgKzI2OSw3
IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRCbG9jayhib29sIHJl
bGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQpCiAgICAgICAgIGxheW91dFZlcnRpY2FsQm94KHJl
bGF5b3V0Q2hpbGRyZW4pOwogCiAgICAgTGF5b3V0VW5pdCBvbGRDbGllbnRBZnRlckVkZ2UgPSBj
bGllbnRMb2dpY2FsQm90dG9tKCk7Ci0gICAgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsKKyAgICB1
cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAKICAgICBpZiAocHJldmlvdXNTaXplLmhlaWdodCgpICE9
IGhlaWdodCgpKQogICAgICAgICByZWxheW91dENoaWxkcmVuID0gdHJ1ZTsKQEAgLTQxNCw3ICs0
MTQsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJsZUJveDo6bGF5b3V0SG9yaXpvbnRh
bEJveChib29sIHJlbGF5b3V0Q2hpbGRyZW4pCiAgICAgICAgIHNldEhlaWdodChoZWlnaHQoKSAr
IHRvQWRkKTsKIAogICAgICAgICBvbGRIZWlnaHQgPSBoZWlnaHQoKTsKLSAgICAgICAgY29tcHV0
ZUxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgdXBkYXRlTG9naWNhbEhlaWdodCgpOwogCiAgICAg
ICAgIHJlbGF5b3V0Q2hpbGRyZW4gPSBmYWxzZTsKICAgICAgICAgaWYgKG9sZEhlaWdodCAhPSBo
ZWlnaHQoKSkKQEAgLTQ0Nyw3ICs0NDcsNyBAQCB2b2lkIFJlbmRlckRlcHJlY2F0ZWRGbGV4aWJs
ZUJveDo6bGF5b3V0SG9yaXpvbnRhbEJveChib29sIHJlbGF5b3V0Q2hpbGRyZW4pCiAgICAgICAg
ICAgICAvLyBmaWxsIHRoZSBoZWlnaHQgb2YgYSBjb250YWluaW5nIGJveCBieSBkZWZhdWx0Lgog
ICAgICAgICAgICAgLy8gTm93IGRvIGEgbGF5b3V0LgogICAgICAgICAgICAgTGF5b3V0VW5pdCBv
bGRDaGlsZEhlaWdodCA9IGNoaWxkLT5oZWlnaHQoKTsKLSAgICAgICAgICAgIGNoaWxkLT5jb21w
dXRlTG9naWNhbEhlaWdodCgpOworICAgICAgICAgICAgY2hpbGQtPnVwZGF0ZUxvZ2ljYWxIZWln
aHQoKTsKICAgICAgICAgICAgIGlmIChvbGRDaGlsZEhlaWdodCAhPSBjaGlsZC0+aGVpZ2h0KCkp
CiAgICAgICAgICAgICAgICAgY2hpbGQtPnNldENoaWxkTmVlZHNMYXlvdXQodHJ1ZSwgTWFya09u
bHlUaGlzKTsKIApAQCAtNzM1LDcgKzczNSw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhp
YmxlQm94OjpsYXlvdXRWZXJ0aWNhbEJveChib29sIHJlbGF5b3V0Q2hpbGRyZW4pCiAKICAgICAg
ICAgLy8gTm93IHdlIGhhdmUgdG8gY2FsYyBvdXIgaGVpZ2h0LCBzbyB3ZSBrbm93IGhvdyBtdWNo
IHNwYWNlIHdlIGhhdmUgcmVtYWluaW5nLgogICAgICAgICBvbGRIZWlnaHQgPSBoZWlnaHQoKTsK
LSAgICAgICAgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgdXBkYXRlTG9naWNhbEhl
aWdodCgpOwogICAgICAgICBpZiAob2xkSGVpZ2h0ICE9IGhlaWdodCgpKQogICAgICAgICAgICAg
aGVpZ2h0U3BlY2lmaWVkID0gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAKaW5kZXggODNkNmExZmJjMmQ4OGQ2ZTU4MzNkOThh
MTc1NmMxYjQwYTlkM2MwMy4uMTExMWUyOTllMmY4YTE1MjZhYjhmNWJiMDE5ZGI4ZDFlNDYwMzdi
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2Jq
ZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmpl
Y3QuY3BwCkBAIC0yMzEsNyArMjMxLDcgQEAgdm9pZCBSZW5kZXJFbWJlZGRlZE9iamVjdDo6bGF5
b3V0KCkKICAgICBBU1NFUlQobmVlZHNMYXlvdXQoKSk7CiAKICAgICB1cGRhdGVMb2dpY2FsV2lk
dGgoKTsKLSAgICBjb21wdXRlTG9naWNhbEhlaWdodCgpOworICAgIHVwZGF0ZUxvZ2ljYWxIZWln
aHQoKTsKIAogICAgIFJlbmRlclBhcnQ6OmxheW91dCgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAppbmRleCBhOTJlMDZkZDUyOTMxYjhjYjBk
MzE3MjQ3ZWE1MjBhMGE1YjdhMWY5Li41YWE3NmU0ODcwNTZmM2ExZjkwOTlkNWM3NTc1OTgwYmQ1
YzkwMDFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGli
bGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJv
eC5jcHAKQEAgLTI2NSw3ICsyNjUsNyBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRC
bG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQpCiAgICAgbGF5b3V0RmxleEl0
ZW1zKCptX29yZGVySXRlcmF0b3IsIGxpbmVDb250ZXh0cyk7CiAKICAgICBMYXlvdXRVbml0IG9s
ZENsaWVudEFmdGVyRWRnZSA9IGNsaWVudExvZ2ljYWxCb3R0b20oKTsKLSAgICBjb21wdXRlTG9n
aWNhbEhlaWdodCgpOworICAgIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKICAgICByZXBvc2l0aW9u
TG9naWNhbEhlaWdodERlcGVuZGVudEZsZXhJdGVtcygqbV9vcmRlckl0ZXJhdG9yLCBsaW5lQ29u
dGV4dHMsIG9sZENsaWVudEFmdGVyRWRnZSk7CiAKICAgICBpZiAoc2l6ZSgpICE9IHByZXZpb3Vz
U2l6ZSkKQEAgLTEwNTgsNyArMTA1OCw3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91
dEFuZFBsYWNlQ2hpbGRyZW4oTGF5b3V0VW5pdCYgY3Jvc3NBeGlzT2Zmc2V0LCBjb25zCiAgICAg
aWYgKHN0eWxlKCktPmZsZXhEaXJlY3Rpb24oKSA9PSBGbG93Q29sdW1uUmV2ZXJzZSkgewogICAg
ICAgICAvLyBXZSBoYXZlIHRvIGRvIGFuIGV4dHJhIHBhc3MgZm9yIGNvbHVtbi1yZXZlcnNlIHRv
IHJlcG9zaXRpb24gdGhlIGZsZXggaXRlbXMgc2luY2UgdGhlIHN0YXJ0IGRlcGVuZHMKICAgICAg
ICAgLy8gb24gdGhlIGhlaWdodCBvZiB0aGUgZmxleGJveCwgd2hpY2ggd2Ugb25seSBrbm93IGFm
dGVyIHdlJ3ZlIHBvc2l0aW9uZWQgYWxsIHRoZSBmbGV4IGl0ZW1zLgotICAgICAgICBjb21wdXRl
TG9naWNhbEhlaWdodCgpOworICAgICAgICB1cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAg
IGxheW91dENvbHVtblJldmVyc2UoY2hpbGRyZW4sIGNoaWxkU2l6ZXMsIGNyb3NzQXhpc09mZnNl
dCwgYXZhaWxhYmxlRnJlZVNwYWNlKTsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAppbmRleCBlYWJiNGE3YzBkYjA2ZmVmMWY5MWY3NTJj
MGY2MjY0YmQxMDAzYzNjLi44MjY4NjExN2EzZjZiMGY1MjIzOTFkZTZmZTEzZjk5OWJiYTA4NDM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwCkBA
IC0yMjIsNyArMjIyLDcgQEAgdm9pZCBSZW5kZXJGbG93VGhyZWFkOjp1cGRhdGVMb2dpY2FsV2lk
dGgoKQogICAgIH0KIH0KIAotdm9pZCBSZW5kZXJGbG93VGhyZWFkOjpjb21wdXRlTG9naWNhbEhl
aWdodCgpCit2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OnVwZGF0ZUxvZ2ljYWxIZWlnaHQoKQogewog
ICAgIExheW91dFVuaXQgbG9naWNhbEhlaWdodCA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCmluZGV4IGFjMGQ5ODhhMTU0Nzg0MDJkMzRmY2RiNDE2
N2VhZTkzY2M4YmEyN2UuLmYyYTIwNDZkMjAxNzBlZmYyY2UxM2Y0ZDE5YzM2MDAwNjhkOGZiMGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaApAQCAtNzQs
NyArNzQsNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgUmVuZGVyUmVnaW9uTGlzdCYgcmVuZGVyUmVn
aW9uTGlzdCgpIGNvbnN0IHsgcmV0dXJuIG1fcmVnaW9uTGlzdDsgfQogCiAgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZUxvZ2ljYWxXaWR0aCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwgdm9pZCBjb21w
dXRlTG9naWNhbEhlaWdodCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMb2dp
Y2FsSGVpZ2h0KCkgT1ZFUlJJREU7CiAKICAgICB2b2lkIHBhaW50Rmxvd1RocmVhZFBvcnRpb25J
blJlZ2lvbihQYWludEluZm8mLCBSZW5kZXJSZWdpb24qLCBMYXlvdXRSZWN0IGZsb3dUaHJlYWRQ
b3J0aW9uUmVjdCwgTGF5b3V0UmVjdCBmbG93VGhyZWFkUG9ydGlvbk92ZXJmbG93UmVjdCwgY29u
c3QgTGF5b3V0UG9pbnQmKSBjb25zdDsKICAgICBib29sIGhpdFRlc3RGbG93VGhyZWFkUG9ydGlv
bkluUmVnaW9uKFJlbmRlclJlZ2lvbiosIExheW91dFJlY3QgZmxvd1RocmVhZFBvcnRpb25SZWN0
LCBMYXlvdXRSZWN0IGZsb3dUaHJlYWRQb3J0aW9uT3ZlcmZsb3dSZWN0LCBjb25zdCBIaXRUZXN0
UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBIaXRUZXN0TG9jYXRpb24mIGxvY2F0aW9u
SW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9mZnNldCkgY29uc3Q7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKaW5kZXggNWE4MTNjMTRkZmZh
ZTUxMjFjYTVmYjY3OTA2ZDdiODJlYWE5NWQwZS4uZTI4MmY3ZjQxZjA0YWM0ZGU5OGVlNjQwYzM0
YzdmMzViYmU4NGUxMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcApA
QCAtODMsNyArODMsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlv
dXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKICAgICBsYXlvdXRHcmlkSXRlbXMoKTsKIAogICAgIExh
eW91dFVuaXQgb2xkQ2xpZW50QWZ0ZXJFZGdlID0gY2xpZW50TG9naWNhbEJvdHRvbSgpOwotICAg
IGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7CisgICAgdXBkYXRlTG9naWNhbEhlaWdodCgpOwogCiAg
ICAgaWYgKHNpemUoKSAhPSBwcmV2aW91c1NpemUpCiAgICAgICAgIHJlbGF5b3V0Q2hpbGRyZW4g
PSB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxD
YW52YXMuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3Bw
CmluZGV4IDNhMmI3NWI1MzVhZjIyZWM3Y2U5NTM3ZmRjZDA1YzgyYTFiZmRmMzcuLjU4MTBkYTIz
MDBlMzJiNGU2MTk3MWMzOTFmYzkzZmZmNmU3NGU4OGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJIVE1MQ2FudmFzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5jcHAKQEAgLTkwLDcgKzkwLDcgQEAgdm9pZCBSZW5k
ZXJIVE1MQ2FudmFzOjpjYW52YXNTaXplQ2hhbmdlZCgpCiAKICAgICBMYXlvdXRTaXplIG9sZFNp
emUgPSBzaXplKCk7CiAgICAgdXBkYXRlTG9naWNhbFdpZHRoKCk7Ci0gICAgY29tcHV0ZUxvZ2lj
YWxIZWlnaHQoKTsKKyAgICB1cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAgICAgaWYgKG9sZFNpemUg
PT0gc2l6ZSgpKQogICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJJRnJhbWUuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlcklGcmFtZS5jcHAKaW5kZXggNzM5ZWJhMjU2NWFiMGJhMTY1NzljYzVmYzA0YTQ4YmQ2MDM5
ZmRiNS4uYzQ1ZTgwNTlhMGQ4ZDI1NGM5ZmMxNGI3OWE5NTI4ODZiNzJjZmQwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5jcHAKQEAgLTQzLDkgKzQzLDkgQEAgUmVu
ZGVySUZyYW1lOjpSZW5kZXJJRnJhbWUoRWxlbWVudCogZWxlbWVudCkKIHsKIH0KIAotdm9pZCBS
ZW5kZXJJRnJhbWU6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCkKK3ZvaWQgUmVuZGVySUZyYW1lOjp1
cGRhdGVMb2dpY2FsSGVpZ2h0KCkKIHsKLSAgICBSZW5kZXJQYXJ0Ojpjb21wdXRlTG9naWNhbEhl
aWdodCgpOworICAgIFJlbmRlclBhcnQ6OnVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKICAgICBpZiAo
IWZsYXR0ZW5GcmFtZSgpKQogICAgICAgICAgcmV0dXJuOwogCkBAIC0xNzUsNyArMTc1LDcgQEAg
dm9pZCBSZW5kZXJJRnJhbWU6OmxheW91dFNlYW1sZXNzbHkoKQogICAgIEZyYW1lVmlldyogY2hp
bGRGcmFtZVZpZXcgPSBzdGF0aWNfY2FzdDxGcmFtZVZpZXcqPih3aWRnZXQoKSk7CiAgICAgaWYg
KGNoaWxkRnJhbWVWaWV3KSAvLyBXaWRnZXQgc2hvdWxkIG5ldmVyIGJlIG51bGwgZHVyaW5nIGxh
eW91dCgpLCBidXQganVzdCBpbiBjYXNlLgogICAgICAgICBzZXRMb2dpY2FsSGVpZ2h0KGNoaWxk
RnJhbWVWaWV3LT5jb250ZW50c0hlaWdodCgpICsgYm9yZGVyVG9wKCkgKyBib3JkZXJCb3R0b20o
KSk7Ci0gICAgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsKKyAgICB1cGRhdGVMb2dpY2FsSGVpZ2h0
KCk7CiAKICAgICB1cGRhdGVXaWRnZXRQb3NpdGlvbigpOyAvLyBOb3RpZnkgdGhlIFdpZGdldCBv
ZiBvdXIgZmluYWwgaGVpZ2h0LgogCkBAIC0xOTEsNyArMTkxLDcgQEAgdm9pZCBSZW5kZXJJRnJh
bWU6OmxheW91dCgpCiAKICAgICBpZiAoZmxhdHRlbkZyYW1lKCkpIHsKICAgICAgICAgUmVuZGVy
UGFydDo6dXBkYXRlTG9naWNhbFdpZHRoKCk7Ci0gICAgICAgIFJlbmRlclBhcnQ6OmNvbXB1dGVM
b2dpY2FsSGVpZ2h0KCk7CisgICAgICAgIFJlbmRlclBhcnQ6OnVwZGF0ZUxvZ2ljYWxIZWlnaHQo
KTsKICAgICAgICAgbGF5b3V0V2l0aEZsYXR0ZW5pbmcoc3R5bGUoKS0+d2lkdGgoKS5pc0ZpeGVk
KCksIHN0eWxlKCktPmhlaWdodCgpLmlzRml4ZWQoKSk7CiAgICAgICAgIC8vIEZJWE1FOiBJcyBl
YXJseSByZXR1cm4gcmVhbGx5IE9LIGhlcmU/IFdoYXQgYWJvdXQgdHJhbnNmb3JtL292ZXJmbG93
IGNvZGUgYmVsb3c/CiAgICAgICAgIHJldHVybjsKQEAgLTIwMSw3ICsyMDEsNyBAQCB2b2lkIFJl
bmRlcklGcmFtZTo6bGF5b3V0KCkKICAgICB9IGVsc2UgewogICAgICAgICB1cGRhdGVMb2dpY2Fs
V2lkdGgoKTsKICAgICAgICAgLy8gTm8ga2lkcyB0byBsYXlvdXQgYXMgYSByZXBsYWNlZCBlbGVt
ZW50LgotICAgICAgICBjb21wdXRlTG9naWNhbEhlaWdodCgpOworICAgICAgICB1cGRhdGVMb2dp
Y2FsSGVpZ2h0KCk7CiAgICAgfQogCiAgICAgbV9vdmVyZmxvdy5jbGVhcigpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5oCmluZGV4IDljZTVmYTZiY2E3N2IwNmVjYjY3NWVl
OTU0ZGYyNDI5ZGEwNWY0MjguLjY5ZTQzODIxM2U3MmM4MmU1MmQ0ZjQ4M2E3NTA5ZTg1YmRiMzA4
NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJhbWUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmgKQEAgLTQwLDggKzQw
LDggQEAgcHVibGljOgogICAgIGJvb2wgaXNTZWFtbGVzcygpIGNvbnN0OwogCiBwcml2YXRlOgot
ICAgIHZpcnR1YWwgdm9pZCBjb21wdXRlTG9naWNhbEhlaWdodCgpIE9WRVJSSURFOwogICAgIHZp
cnR1YWwgdm9pZCB1cGRhdGVMb2dpY2FsV2lkdGgoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZv
aWQgdXBkYXRlTG9naWNhbEhlaWdodCgpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBMYXlvdXRV
bml0IG1pblByZWZlcnJlZExvZ2ljYWxXaWR0aCgpIGNvbnN0IE9WRVJSSURFOwogICAgIHZpcnR1
YWwgTGF5b3V0VW5pdCBtYXhQcmVmZXJyZWRMb2dpY2FsV2lkdGgoKSBjb25zdCBPVkVSUklERTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCmluZGV4IGM3NjdmOGZkZjZj
ZDU5ZDFkMWI1NTA3ZGI5ODA3YjIzM2E0MjY4ZTEuLjQwNDAyNWY2ZTI3YzFlZTdiNGI0MWM3NmE3
YzY0ODI1YWFiMGYzNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJJbWFnZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNw
cApAQCAtMjI1LDcgKzIyNSw3IEBAIHZvaWQgUmVuZGVySW1hZ2U6OmltYWdlRGltZW5zaW9uc0No
YW5nZWQoYm9vbCBpbWFnZVNpemVDaGFuZ2VkLCBjb25zdCBJbnRSZWN0KiByCiAgICAgICAgIGlm
ICghcHJlZmVycmVkTG9naWNhbFdpZHRoc0RpcnR5KCkpCiAgICAgICAgICAgICBzZXRQcmVmZXJy
ZWRMb2dpY2FsV2lkdGhzRGlydHkodHJ1ZSk7CiAgICAgICAgIHVwZGF0ZUxvZ2ljYWxXaWR0aCgp
OwotICAgICAgICBjb21wdXRlTG9naWNhbEhlaWdodCgpOworICAgICAgICB1cGRhdGVMb2dpY2Fs
SGVpZ2h0KCk7CiAKICAgICAgICAgaWYgKGltYWdlU2l6ZUNoYW5nZWQgfHwgd2lkdGgoKSAhPSBv
bGR3aWR0aCB8fCBoZWlnaHQoKSAhPSBvbGRoZWlnaHQpIHsKICAgICAgICAgICAgIHNob3VsZFJl
cGFpbnQgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMaXN0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmNw
cAppbmRleCBkYjcwYjA4YTUxNjc0YTRiZTdiMjMwN2Y3MTUwNTVhMDc5MzU5MmNhLi45YjlmMDg0
ODc2MmRiZjJkYjM4MTJjOWFjMTdhY2UyOTMwZjQzMTJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCkBAIC0yNTAsMTQgKzI1MCwxNCBAQCBMYXlvdXRVbml0
IFJlbmRlckxpc3RCb3g6Omxpc3RIZWlnaHQoKSBjb25zdAogICAgIHJldHVybiBpdGVtSGVpZ2h0
KCkgKiBudW1JdGVtcygpIC0gcm93U3BhY2luZzsKIH0KIAotdm9pZCBSZW5kZXJMaXN0Qm94Ojpj
b21wdXRlTG9naWNhbEhlaWdodCgpCit2b2lkIFJlbmRlckxpc3RCb3g6OnVwZGF0ZUxvZ2ljYWxI
ZWlnaHQoKQogewogICAgIGludCB0b0FkZCA9IGJvcmRlckFuZFBhZGRpbmdIZWlnaHQoKTsKICAK
ICAgICBpbnQgaXRlbUhlaWdodCA9IFJlbmRlckxpc3RCb3g6Oml0ZW1IZWlnaHQoKTsKICAgICBz
ZXRIZWlnaHQoaXRlbUhlaWdodCAqIHNpemUoKSAtIHJvd1NwYWNpbmcgKyB0b0FkZCk7CiAgICAg
Ci0gICAgUmVuZGVyQmxvY2s6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7CisgICAgUmVuZGVyQmxv
Y2s6OnVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKICAgICAKICAgICBpZiAobV92QmFyKSB7CiAgICAg
ICAgIGJvb2wgZW5hYmxlZCA9IG51bVZpc2libGVJdGVtcygpIDwgbnVtSXRlbXMoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCmluZGV4IDlhMDExMGVmYzhmZmY2NDhk
YmVmYTg5YzA1MGJkOTBlN2UyMjUzNjguLmI5ZWViZDFlMDE3MWY2ZGM1ODk0ZGM3YWRmNDViODU0
YzYwOTE5NWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMaXN0
Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaApAQCAt
NzcsNyArNzcsNyBAQCBwcml2YXRlOgogCiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVQcmVmZXJy
ZWRMb2dpY2FsV2lkdGhzKCk7CiAgICAgdmlydHVhbCBMYXlvdXRVbml0IGJhc2VsaW5lUG9zaXRp
b24oRm9udEJhc2VsaW5lLCBib29sIGZpcnN0TGluZSwgTGluZURpcmVjdGlvbk1vZGUsIExpbmVQ
b3NpdGlvbk1vZGUgPSBQb3NpdGlvbk9uQ29udGFpbmluZ0xpbmUpIGNvbnN0OwotICAgIHZpcnR1
YWwgdm9pZCBjb21wdXRlTG9naWNhbEhlaWdodCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9p
ZCB1cGRhdGVMb2dpY2FsSGVpZ2h0KCkgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIHZvaWQgbGF5
b3V0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWV0ZXIuY3BwCmluZGV4IDAw
ZGM0NWExYmM1MmRkZTc0ODZlMjczZjFkZWY1NThjMzlkZDEwNzYuLmI1MzljMGEzYWRmZDJmMDgz
ZGVhODFmYWVkMjM4MTI1ZDg1ZmE1NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJNZXRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1ldGVyLmNwcApAQCAtNTgsOSArNTgsOSBAQCB2b2lkIFJlbmRlck1ldGVyOjp1cGRhdGVMb2dp
Y2FsV2lkdGgoKQogICAgIHNldFdpZHRoKHRoZW1lKCktPm1ldGVyU2l6ZUZvckJvdW5kcyh0aGlz
LCBwaXhlbFNuYXBwZWRJbnRSZWN0KGZyYW1lUmVjdCgpKSkud2lkdGgoKSk7CiB9CiAKLXZvaWQg
UmVuZGVyTWV0ZXI6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCkKK3ZvaWQgUmVuZGVyTWV0ZXI6OnVw
ZGF0ZUxvZ2ljYWxIZWlnaHQoKQogewotICAgIFJlbmRlckJveDo6Y29tcHV0ZUxvZ2ljYWxIZWln
aHQoKTsKKyAgICBSZW5kZXJCb3g6OnVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKICAgICBzZXRIZWln
aHQodGhlbWUoKS0+bWV0ZXJTaXplRm9yQm91bmRzKHRoaXMsIHBpeGVsU25hcHBlZEludFJlY3Qo
ZnJhbWVSZWN0KCkpKS5oZWlnaHQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNZXRlci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck1ldGVyLmgKaW5kZXggN2UwMjE0OWQ0M2Q4ZjJiYjE4M2U0NTA4MGNhZmYwMThhZTgzNzViZC4u
OTA1MTk1MWQxNTgyNzU2OTFmNzNkOGY5MDAwYWZkOTI1OWJiMWM5NSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1ldGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck1ldGVyLmgKQEAgLTQwLDcgKzQwLDcgQEAgcHVibGljOgogCiBwcml2
YXRlOiAgICAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTG9naWNhbFdpZHRoKCkgT1ZFUlJJREU7
Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCkgT1ZFUlJJREU7CisgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKSBPVkVSUklERTsKIAogICAgIHZpcnR1
YWwgY29uc3QgY2hhciogcmVuZGVyTmFtZSgpIGNvbnN0IHsgcmV0dXJuICJSZW5kZXJNZXRlciI7
IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNNZXRlcigpIGNvbnN0IHsgcmV0dXJuIHRydWU7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2Nr
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmNw
cAppbmRleCBlNTZmOWY3M2UyY2YyYzZjMWFiMWE2OTI2MDg1N2M5MDJkN2YwYmM0Li4yMjFjYjRk
MzA4MDMyZWE0ZGI3MDdkMTU5M2I3Y2RjOWExNTk2YTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suY3BwCkBAIC04MSw3ICs4MSw3
IEBAIGJvb2wgUmVuZGVyTXVsdGlDb2x1bW5CbG9jazo6dXBkYXRlTG9naWNhbFdpZHRoQW5kQ29s
dW1uV2lkdGgoKQogdm9pZCBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrOjpjaGVja0ZvclBhZ2luYXRp
b25Mb2dpY2FsSGVpZ2h0Q2hhbmdlKExheW91dFVuaXQmIC8qcGFnZUxvZ2ljYWxIZWlnaHQqLywg
Ym9vbCYgLypwYWdlTG9naWNhbEhlaWdodENoYW5nZWQqLywgYm9vbCYgLypoYXNTcGVjaWZpZWRQ
YWdlTG9naWNhbEhlaWdodCovKQogewogICAgIC8vIFdlIGRvbid0IGFjdHVhbGx5IHVwZGF0ZSBh
bnkgb2YgdGhlIHZhcmlhYmxlcy4gV2UganVzdCBzdWJjbGFzc2VkIHRvIGFkanVzdCBvdXIgY29s
dW1uIGhlaWdodC4KLSAgICBjb21wdXRlTG9naWNhbEhlaWdodCgpOworICAgIHVwZGF0ZUxvZ2lj
YWxIZWlnaHQoKTsKICAgICBMYXlvdXRVbml0IG5ld0NvbnRlbnRMb2dpY2FsSGVpZ2h0ID0gY29u
dGVudExvZ2ljYWxIZWlnaHQoKTsKICAgICBpZiAobmV3Q29udGVudExvZ2ljYWxIZWlnaHQgPiBa
RVJPX0xBWU9VVF9VTklUKSB7CiAgICAgICAgIC8vIFRoZSByZWdpb25zIHdpbGwgYmUgaW52YWxp
ZGF0ZWQgd2hlbiB3ZSBsYXkgdGhlbSBvdXQgYW5kIHRoZXkgY2hhbmdlIHNpemUgdG8KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJl
YWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJl
YWQuaAppbmRleCBjNjllNjUwMTY4NWIzYjNhZGQ5YWFiMmQ1MGY1OWEyYWY4NWY1YjZjLi4zNjNj
ZDA3NzEyOGNiZjVjOTY4OTc0ZTdmMjkyMmU3Yzc3YTQ3NTQ4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZC5oCkBAIC0z
OSw3ICszOSw3IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgdmlydHVhbCBjb25zdCBjaGFyKiBy
ZW5kZXJOYW1lKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgCi0gICAgdmlydHVhbCB2b2lkIGNvbXB1
dGVMb2dpY2FsSGVpZ2h0KCkgT1ZFUlJJREUge307IC8vIFdlIHNpbXBseSByZW1haW4gYXQgb3Vy
IGludHJpbnNpYyBoZWlnaHQuCisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxvZ2ljYWxIZWlnaHQo
KSBPVkVSUklERSB7IH0gLy8gV2Ugc2ltcGx5IHJlbWFpbiBhdCBvdXIgaW50cmluc2ljIGhlaWdo
dC4KIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuY3BwCmluZGV4IDM4MTI4NmViNzdlNDI1ZjU3
ODA1YjI3NWI0Y2QzYTcyYTY3NTNlMGIuLjgzZDFkZWE1MGU3NjYyMzdlM2FhMzE1MzcwM2FkYjY2
NWRhY2ZlYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0
aUNvbHVtblNldC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRp
Q29sdW1uU2V0LmNwcApAQCAtNjQsNyArNjQsNyBAQCB2b2lkIFJlbmRlck11bHRpQ29sdW1uU2V0
Ojp1cGRhdGVMb2dpY2FsV2lkdGgoKQogICAgIHNldENvbXB1dGVkQ29sdW1uV2lkdGhBbmRDb3Vu
dChwYXJlbnRCbG9jay0+Y29sdW1uV2lkdGgoKSwgcGFyZW50QmxvY2stPmNvbHVtbkNvdW50KCkp
OyAvLyBGSVhNRTogVGhpcyB3aWxsIGV2ZW50dWFsbHkgdmFyeSBpZiB3ZSBhcmUgY29udGFpbmVk
IGluc2lkZSByZWdpb25zLgogfQogCi12b2lkIFJlbmRlck11bHRpQ29sdW1uU2V0Ojpjb21wdXRl
TG9naWNhbEhlaWdodCgpCit2b2lkIFJlbmRlck11bHRpQ29sdW1uU2V0Ojp1cGRhdGVMb2dpY2Fs
SGVpZ2h0KCkKIHsKICAgICAvLyBNYWtlIHN1cmUgb3VyIGNvbHVtbiBoZWlnaHQgaXMgdXAgdG8g
ZGF0ZS4KICAgICBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrKiBwYXJlbnRCbG9jayA9IHRvUmVuZGVy
TXVsdGlDb2x1bW5CbG9jayhwYXJlbnQoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNdWx0aUNvbHVtblNldC5oCmluZGV4IDczNzdjNmQ5YjUwYWUzMjNhMTBmM2I0OTdh
NTA1ZmU0MDk5NDc3YmEuLmY4ZmEzNzc5NWFkMTM4ZWQyNmIxNjJlYjNkYWMwZmUyYjBmYjlmOTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNl
dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtblNldC5o
CkBAIC02Myw3ICs2Myw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlTG9naWNhbFdpZHRoKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVM
b2dpY2FsSGVpZ2h0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxvZ2ljYWxI
ZWlnaHQoKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBwYWludFJlcGxhY2VkKFBhaW50
SW5mbyYsIGNvbnN0IExheW91dFBvaW50JiBwYWludE9mZnNldCkgT1ZFUlJJREU7CiAgICAgdmly
dHVhbCBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0VGVzdFJlc3Vs
dCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRl
ZE9mZnNldCwgSGl0VGVzdEFjdGlvbikgT1ZFUlJJREU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJlcGxhY2VkLmNwcAppbmRleCA0YjEyZDdlZmJkMzM2YmYzY2I0MTdlMmRiZWIw
NDI3YjRkZGRjY2I0Li5mNzY1YzM4YzRiMjdhYzEwZWQ2NGI0OGM2NGEyNmI3MzQwMDk0NjZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKQEAgLTg2LDcg
Kzg2LDcgQEAgdm9pZCBSZW5kZXJSZXBsYWNlZDo6bGF5b3V0KCkKICAgICBzZXRIZWlnaHQobWlu
aW11bVJlcGxhY2VkSGVpZ2h0KCkpOwogCiAgICAgdXBkYXRlTG9naWNhbFdpZHRoKCk7Ci0gICAg
Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsKKyAgICB1cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAKICAg
ICBtX292ZXJmbG93LmNsZWFyKCk7CiAgICAgYWRkVmlzdWFsRWZmZWN0T3ZlcmZsb3coKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyU2VhcmNoRmllbGQuY3BwCmluZGV4IDI3
MDRjZGMwMzhmZGUyOGVkMmM5NDNmOWYzZjM0NzIzNmFkNGRjNTMuLjRhZDQ1OGFiNzQ1OWVjMWFm
MGM0ODM5MWM2ZWZiNzNmZDhmYTkwOGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclNlYXJjaEZpZWxkLmNwcApAQCAtMTUxLDEzICsxNTEsMTMgQEAgTGF5b3V0VW5pdCBS
ZW5kZXJTZWFyY2hGaWVsZDo6Y29tcHV0ZUNvbnRyb2xIZWlnaHQoTGF5b3V0VW5pdCBsaW5lSGVp
Z2h0LCBMYXlvdXQKIHsKICAgICBIVE1MRWxlbWVudCogcmVzdWx0c0J1dHRvbiA9IHJlc3VsdHNC
dXR0b25FbGVtZW50KCk7CiAgICAgaWYgKFJlbmRlckJveCogcmVzdWx0c1JlbmRlcmVyID0gcmVz
dWx0c0J1dHRvbiA/IHJlc3VsdHNCdXR0b24tPnJlbmRlckJveCgpIDogMCkgewotICAgICAgICBy
ZXN1bHRzUmVuZGVyZXItPmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgIHJlc3VsdHNS
ZW5kZXJlci0+dXBkYXRlTG9naWNhbEhlaWdodCgpOwogICAgICAgICBub25Db250ZW50SGVpZ2h0
ID0gbWF4KG5vbkNvbnRlbnRIZWlnaHQsIHJlc3VsdHNSZW5kZXJlci0+Ym9yZGVyQW5kUGFkZGlu
Z0hlaWdodCgpICsgcmVzdWx0c1JlbmRlcmVyLT5tYXJnaW5IZWlnaHQoKSk7CiAgICAgICAgIGxp
bmVIZWlnaHQgPSBtYXgobGluZUhlaWdodCwgcmVzdWx0c1JlbmRlcmVyLT5oZWlnaHQoKSk7CiAg
ICAgfQogICAgIEhUTUxFbGVtZW50KiBjYW5jZWxCdXR0b24gPSBjYW5jZWxCdXR0b25FbGVtZW50
KCk7CiAgICAgaWYgKFJlbmRlckJveCogY2FuY2VsUmVuZGVyZXIgPSBjYW5jZWxCdXR0b24gPyBj
YW5jZWxCdXR0b24tPnJlbmRlckJveCgpIDogMCkgewotICAgICAgICBjYW5jZWxSZW5kZXJlci0+
Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgY2FuY2VsUmVuZGVyZXItPnVwZGF0ZUxv
Z2ljYWxIZWlnaHQoKTsKICAgICAgICAgbm9uQ29udGVudEhlaWdodCA9IG1heChub25Db250ZW50
SGVpZ2h0LCBjYW5jZWxSZW5kZXJlci0+Ym9yZGVyQW5kUGFkZGluZ0hlaWdodCgpICsgY2FuY2Vs
UmVuZGVyZXItPm1hcmdpbkhlaWdodCgpKTsKICAgICAgICAgbGluZUhlaWdodCA9IG1heChsaW5l
SGVpZ2h0LCBjYW5jZWxSZW5kZXJlci0+aGVpZ2h0KCkpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCmluZGV4IGQwNjU2ZTQ4OGRlYWZhNzYxNGM3YjlmNGMx
ZWNhNTNlMGJhZTYyYTYuLjliMjQ3MzA2YWU2NTIwOTA2MWE5ZGE5NDMwZDQ1ZWRjZWU1MDRkNmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcApAQCAtNDA3LDcgKzQw
Nyw3IEBAIHZvaWQgUmVuZGVyVGFibGU6OmxheW91dCgpCiAgICAgc2V0TG9naWNhbEhlaWdodChs
b2dpY2FsSGVpZ2h0KCkgKyBib3JkZXJBbmRQYWRkaW5nQmVmb3JlKTsKIAogICAgIGlmICghaXNP
dXRPZkZsb3dQb3NpdGlvbmVkKCkpCi0gICAgICAgIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7Cisg
ICAgICAgIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKIAogICAgIExlbmd0aCBsb2dpY2FsSGVpZ2h0
TGVuZ3RoID0gc3R5bGUoKS0+bG9naWNhbEhlaWdodCgpOwogICAgIExheW91dFVuaXQgY29tcHV0
ZWRMb2dpY2FsSGVpZ2h0ID0gMDsKQEAgLTQ1OSw3ICs0NTksNyBAQCB2b2lkIFJlbmRlclRhYmxl
OjpsYXlvdXQoKQogICAgIH0KIAogICAgIGlmIChpc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkKLSAg
ICAgICAgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgdXBkYXRlTG9naWNhbEhlaWdo
dCgpOwogCiAgICAgLy8gdGFibGUgY2FuIGJlIGNvbnRhaW5pbmcgYmxvY2sgb2YgcG9zaXRpb25l
ZCBlbGVtZW50cy4KICAgICAvLyBGSVhNRTogT25seSBwYXNzIHRydWUgaWYgd2lkdGggb3IgaGVp
Z2h0IGNoYW5nZWQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGV4dENvbnRyb2wuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250
cm9sLmNwcAppbmRleCBjYjc2MzdkYjM3NWQxZTZjOTkzYmM5N2FmMWY2ZDg5OTdhMTRlN2VlLi40
YmJlOWRjNTI2N2Y5MDVhZTdlMjlkODc2ZGZkMTFmMGQxNGVmYzNiIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKQEAgLTE0NCw3ICsxNDQsNyBA
QCBpbnQgUmVuZGVyVGV4dENvbnRyb2w6OnNjcm9sbGJhclRoaWNrbmVzcygpIGNvbnN0CiAgICAg
cmV0dXJuIFNjcm9sbGJhclRoZW1lOjp0aGVtZSgpLT5zY3JvbGxiYXJUaGlja25lc3MoKTsKIH0K
IAotdm9pZCBSZW5kZXJUZXh0Q29udHJvbDo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoKQordm9pZCBS
ZW5kZXJUZXh0Q29udHJvbDo6dXBkYXRlTG9naWNhbEhlaWdodCgpCiB7CiAgICAgSFRNTEVsZW1l
bnQqIGlubmVyVGV4dCA9IGlubmVyVGV4dEVsZW1lbnQoKTsKICAgICBBU1NFUlQoaW5uZXJUZXh0
KTsKQEAgLTE1Nyw3ICsxNTcsNyBAQCB2b2lkIFJlbmRlclRleHRDb250cm9sOjpjb21wdXRlTG9n
aWNhbEhlaWdodCgpCiAgICAgICAgICAgICBzZXRIZWlnaHQoaGVpZ2h0KCkgKyBzY3JvbGxiYXJU
aGlja25lc3MoKSk7CiAgICAgfQogCi0gICAgUmVuZGVyQmxvY2s6OmNvbXB1dGVMb2dpY2FsSGVp
Z2h0KCk7CisgICAgUmVuZGVyQmxvY2s6OnVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKIH0KIAogdm9p
ZCBSZW5kZXJUZXh0Q29udHJvbDo6aGl0SW5uZXJUZXh0RWxlbWVudChIaXRUZXN0UmVzdWx0JiBy
ZXN1bHQsIGNvbnN0IExheW91dFBvaW50JiBwb2ludEluQ29udGFpbmVyLCBjb25zdCBMYXlvdXRQ
b2ludCYgYWNjdW11bGF0ZWRPZmZzZXQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUZXh0Q29udHJvbC5oCmluZGV4IDZkMGU0M2FmMWZlZjJlMmU2NzU4NWI0Yjc4MWY5Yzk4OGQz
OTc0MDAuLjRmZTRkYTU3MWYxNjhlYWM2MjVjNWUyNzI3NDdhMWYzZjYyMzg1NDEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5oCkBAIC02Miw3ICs2Miw3
IEBAIHByb3RlY3RlZDoKICAgICB2aXJ0dWFsIFJlbmRlclN0eWxlKiB0ZXh0QmFzZVN0eWxlKCkg
Y29uc3QgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUZyb21FbGVtZW50KCk7Ci0gICAg
dmlydHVhbCB2b2lkIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCkgT1ZFUlJJREU7CisgICAgdmlydHVh
bCB2b2lkIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKSBPVkVSUklERTsKICAgICB2aXJ0dWFsIFJlbmRl
ck9iamVjdCogbGF5b3V0U3BlY2lhbEV4Y2x1ZGVkQ2hpbGQoYm9vbCByZWxheW91dENoaWxkcmVu
KTsKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRl
eCA0MjhlNWEwNDA3NjRkODIzNjk5ZDI0NDYyNjc3NmM2NjY2Nzc0YjMxLi4xNDFlYTUyYjY0ODNj
ODRjZjI0ZGNkYmY0ZTM0OGU0ODVjYWI4OWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuY3BwCkBAIC05MCw3ICs5MCw3IEBAIGJvb2wgUmVuZGVyVmlldzo6aGl0VGVzdChj
b25zdCBIaXRUZXN0UmVxdWVzdCYgcmVxdWVzdCwgSGl0VGVzdFJlc3VsdCYgcmVzdWx0KQogICAg
IHJldHVybiBsYXllcigpLT5oaXRUZXN0KHJlcXVlc3QsIHJlc3VsdCk7CiB9CiAKLXZvaWQgUmVu
ZGVyVmlldzo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoKQordm9pZCBSZW5kZXJWaWV3Ojp1cGRhdGVM
b2dpY2FsSGVpZ2h0KCkKIHsKICAgICBpZiAoIXNob3VsZFVzZVByaW50aW5nTGF5b3V0KCkgJiYg
bV9mcmFtZVZpZXcpCiAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQodmlld0xvZ2ljYWxIZWlnaHQo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaAppbmRleCA3ZGU1NGE2NWIwYjgz
NGRhN2Y4OGMyMmMxMDVmMDQ5ZmNhYzY4ZmFlLi5lNmQ4MzJiOTc3YmI5MjRmOTgxMzRhMmZiY2Q1
NTQwMjcxZDEwMmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
Vmlldy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgKQEAgLTU5
LDcgKzU5LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB2b2lkIGxheW91dCgpIE9WRVJSSURF
OwogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMb2dpY2FsV2lkdGgoKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlTG9naWNhbEhlaWdodCgpIE9WRVJSSURFOwogICAgIC8vIEZJWE1FOiBUaGlz
IG92ZXJyaWRlIGlzIG5vdCBuZWVkZWQgYW5kIHNob3VsZCBiZSByZW1vdmVkCiAgICAgLy8gaXQg
b25seSBleGlzdHMgdG8gbWFrZSBjb21wdXRlUHJlZmVycmVkTG9naWNhbFdpZHRocyBwdWJsaWMu
CiAgICAgdmlydHVhbCB2b2lkIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzKCkgT1ZFUlJJ
REU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0Zv
cmVpZ25PYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdG
b3JlaWduT2JqZWN0LmNwcAppbmRleCBlM2M4MDA4Yzk4YzRhN2FkNjhjMTE1ZDAwZDJmZTQzNjk5
NDhkYTMzLi5mZTBkOWExMmI4MWQzZmFlYjBkMmE4NjUyNmUyZTA1YzhmMGFjM2JmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9i
amVjdC5jcHAKQEAgLTExMiw3ICsxMTIsNyBAQCB2b2lkIFJlbmRlclNWR0ZvcmVpZ25PYmplY3Q6
OnVwZGF0ZUxvZ2ljYWxXaWR0aCgpCiAgICAgc2V0V2lkdGgoc3RhdGljX2Nhc3Q8aW50Pihyb3Vu
ZGYobV92aWV3cG9ydC53aWR0aCgpKSkpOwogfQogCi12b2lkIFJlbmRlclNWR0ZvcmVpZ25PYmpl
Y3Q6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCkKK3ZvaWQgUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6
dXBkYXRlTG9naWNhbEhlaWdodCgpCiB7CiAgICAgLy8gRklYTUU6IEludmVzdGlnYXRlIGluIHNp
emUgcm91bmRpbmcgaXNzdWVzCiAgICAgLy8gRklYTUU6IFJlbW92ZSB1bm5lY2Vzc2FyeSByb3Vu
ZGluZyB3aGVuIGxheW91dCBpcyBvZmYgaW50czogd2Via2l0Lm9yZy9iLzYzNjU2CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25PYmplY3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5o
CmluZGV4IDEzMTRlYTMzYjFhOGYxNDczODZmZmY4NWQzODU0MWVjOTljNTc0NTYuLjFmMzdhM2Zj
ZjRkYWZlNTFhZGVjNDJjMTBhYWQ2ZjI4MGQxMzE4ZGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oCkBAIC02MCw3ICs2
MCw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTG9naWNh
bFdpZHRoKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVMb2dpY2FsSGVpZ2h0
KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKSBPVkVS
UklERTsKIAogICAgIHZpcnR1YWwgY29uc3QgQWZmaW5lVHJhbnNmb3JtJiBsb2NhbFRvUGFyZW50
VHJhbnNmb3JtKCkgY29uc3Q7CiAgICAgdmlydHVhbCBBZmZpbmVUcmFuc2Zvcm0gbG9jYWxUcmFu
c2Zvcm0oKSBjb25zdCB7IHJldHVybiBtX2xvY2FsVHJhbnNmb3JtOyB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290LmNwcAppbmRleCA0Njk4ZTg3MGEzYzc0
ZjJhZjJlZmZiMmFkM2NiNzRhYWY4YzUxMDJhLi43NDc2NzkyNjY1Nzg5NDQ5NjRhOWE3MGMzNTUy
MWI0ZDViMGEwZmEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1Jl
bmRlclNWR1Jvb3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVy
U1ZHUm9vdC5jcHAKQEAgLTIzMCw3ICsyMzAsNyBAQCB2b2lkIFJlbmRlclNWR1Jvb3Q6OmxheW91
dCgpCiAKICAgICBMYXlvdXRTaXplIG9sZFNpemUgPSBzaXplKCk7CiAgICAgdXBkYXRlTG9naWNh
bFdpZHRoKCk7Ci0gICAgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsKKyAgICB1cGRhdGVMb2dpY2Fs
SGVpZ2h0KCk7CiAgICAgYnVpbGRMb2NhbFRvQm9yZGVyQm94VHJhbnNmb3JtKCk7CiAKICAgICBT
VkdTVkdFbGVtZW50KiBzdmcgPSBzdGF0aWNfY2FzdDxTVkdTVkdFbGVtZW50Kj4obm9kZSgpKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>163389</attachid>
            <date>2012-09-11 09:56:15 -0700</date>
            <delta_ts>2012-09-11 10:21:40 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-96305-20120911095550.patch</filename>
            <type>text/plain</type>
            <size>33566</size>
            <attacher name="Tony Chang">tony</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTI4MTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTk4YTIzZmZiYzRiYzdk
Y2M0MWZkZWI1NjkyNjc3ZGQyZjcwMGI4Ni4uZDkwYzA0ODNlOTU0YTY5YzBlM2E2ODBiZjBkYThl
Y2IyNWQ1ZWUwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDEyLTA5LTEwICBUb255
IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmVuYW1lIGNvbXB1dGVMb2dp
Y2FsSGVpZ2h0IHRvIHVwZGF0ZUxvZ2ljYWxIZWlnaHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTk2MzA1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgT2ph
biBWYWZhaS4KKworICAgICAgICBjb21wdXRlTG9naWNhbEhlaWdodCBjaGFuZ2VzIHRoZSB2YWx1
ZSBvZiA0IG1lbWJlciB2YXJpYWJsZXMgb2YgdGhlCisgICAgICAgIHJlbmRlciBib3gsIHNvIGdp
dmUgaXQgYSBuYW1lIHRoYXQgbWFrZXMgaXQgbW9yZSBjbGVhciB0aGF0IGl0IGlzCisgICAgICAg
IHVwZGF0aW5nIG1lbWJlciB2YXJpYWJsZXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCB0aGlz
IGlzIGp1c3QgYSByZWZhY3Rvci4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6Y29tcHV0ZUluaXRpYWxSZWdpb25S
YW5nZUZvckJsb2NrKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjpjaGVja0ZvclBh
Z2luYXRpb25Mb2dpY2FsSGVpZ2h0Q2hhbmdlKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJs
b2NrOjpsYXlvdXRCbG9jayk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9jazo6bGF5b3V0
UG9zaXRpb25lZE9iamVjdHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2s6OmNvbXB1
dGVCbG9ja1ByZWZlcnJlZExvZ2ljYWxXaWR0aHMpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojp1cGRhdGVMb2dpY2FsSGVp
Z2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVBlcmNlbnRhZ2VMb2dp
Y2FsSGVpZ2h0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6Y29tcHV0ZVJlcGxhY2Vk
TG9naWNhbEhlaWdodFVzaW5nKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJveDo6YXZhaWxh
YmxlTG9naWNhbEhlaWdodFVzaW5nKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQm94Lmg6
CisgICAgICAgIChSZW5kZXJCb3gpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQm94Ojp0cnlM
YXlvdXREb2luZ1Bvc2l0aW9uZWRNb3ZlbWVudE9ubHkpOgorICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
RGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRCbG9jayk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dEhvcml6b250YWxCb3gpOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRWZXJ0aWNhbEJv
eCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckVtYmVkZGVkT2JqZWN0LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckVtYmVkZGVkT2JqZWN0OjpsYXlvdXQpOgorICAgICAgICAqIHJl
bmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJG
bGV4aWJsZUJveDo6bGF5b3V0QmxvY2spOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGli
bGVCb3g6OmxheW91dEFuZFBsYWNlQ2hpbGRyZW4pOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJGbG93VGhyZWFkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsb3dUaHJlYWQ6OnVw
ZGF0ZUxvZ2ljYWxIZWlnaHQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFk
Lmg6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyR3JpZDo6bGF5b3V0QmxvY2spOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJI
VE1MQ2FudmFzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckhUTUxDYW52YXM6OmNhbnZh
c1NpemVDaGFuZ2VkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlcklGcmFtZTo6dXBkYXRlTG9naWNhbEhlaWdodCk6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJJRnJhbWU6OmxheW91dFNlYW1sZXNzbHkpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVySUZyYW1lOjpsYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJJRnJhbWUuaDoKKyAgICAgICAgKFJlbmRlcklGcmFtZSk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlckltYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckltYWdlOjppbWFnZURp
bWVuc2lvbnNDaGFuZ2VkKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJMaXN0Qm94Ojp1cGRhdGVMb2dpY2FsSGVpZ2h0KToK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oOgorICAgICAgICAoUmVuZGVyTGlz
dEJveCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck1ldGVyLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlck1ldGVyOjp1cGRhdGVMb2dpY2FsSGVpZ2h0KToKKyAgICAgICAgKiByZW5k
ZXJpbmcvUmVuZGVyTWV0ZXIuaDoKKyAgICAgICAgKFJlbmRlck1ldGVyKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJNdWx0aUNvbHVtbkJsb2NrOjpjaGVja0ZvclBhZ2luYXRpb25Mb2dpY2FsSGVpZ2h0Q2hh
bmdlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkLmg6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlck11bHRpQ29sdW1uU2V0Ojp1cGRhdGVMb2dpY2FsSGVpZ2h0KToKKyAg
ICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5TZXQuaDoKKyAgICAgICAgKFJlbmRl
ck11bHRpQ29sdW1uU2V0KToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OmxheW91dCk6CisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
clNlYXJjaEZpZWxkOjpjb21wdXRlQ29udHJvbEhlaWdodCk6CisgICAgICAgICogcmVuZGVyaW5n
L1JlbmRlclRhYmxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlOjpsYXlvdXQp
OgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUZXh0Q29udHJvbDo6dXBkYXRlTG9naWNhbEhlaWdodCk6CisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmg6CisgICAgICAgIChSZW5kZXJUZXh0Q29u
dHJvbCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyVmlldzo6dXBkYXRlTG9naWNhbEhlaWdodCk6CisgICAgICAgICogcmVuZGVy
aW5nL1JlbmRlclZpZXcuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVp
Z25PYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6
dXBkYXRlTG9naWNhbEhlaWdodCk6CisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdG
b3JlaWduT2JqZWN0Lmg6CisgICAgICAgIChSZW5kZXJTVkdGb3JlaWduT2JqZWN0KToKKyAgICAg
ICAgKiByZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
UmVuZGVyU1ZHUm9vdDo6bGF5b3V0KToKKwogMjAxMi0wOS0xMSAgWmFjaCBLdXpuaWEgIDx6b3Jr
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBGaXggRmlsdGVyVHlwZVpvb20gdG8gcHJvcGVybHkg
Y2FsbCBjYW52YXMtPnJlc3RvcmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHAKaW5kZXggNDRiN2VhNzNiY2RkZjVlMjVmNmI2ZjhjMmFkYTE1ZjNlNThkMmQyYy4uYzJh
NDA2MTU2Yjk3ZmY3YjIzNGZkMWMxZTRjYjI5ZTBkMGY1ZmIxMiAxMDA3NTUKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC0xNDAyLDcgKzE0MDIsNyBAQCB2b2lkIFJlbmRl
ckJsb2NrOjpjb21wdXRlSW5pdGlhbFJlZ2lvblJhbmdlRm9yQmxvY2soKQogICAgICAgICBMYXlv
dXRVbml0IG9sZEhlaWdodCA9ICBsb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgIExheW91dFVuaXQg
b2xkTG9naWNhbFRvcCA9IGxvZ2ljYWxUb3AoKTsKICAgICAgICAgc2V0TG9naWNhbEhlaWdodChN
QVhfTEFZT1VUX1VOSVQgLyAyKTsKLSAgICAgICAgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsKKyAg
ICAgICAgdXBkYXRlTG9naWNhbEhlaWdodCgpOwogICAgICAgICBlbmNsb3NpbmdSZW5kZXJGbG93
VGhyZWFkKCktPnNldFJlZ2lvblJhbmdlRm9yQm94KHRoaXMsIG9mZnNldEZyb21Mb2dpY2FsVG9w
T2ZGaXJzdFBhZ2UoKSk7CiAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQob2xkSGVpZ2h0KTsKICAg
ICAgICAgc2V0TG9naWNhbFRvcChvbGRMb2dpY2FsVG9wKTsKQEAgLTE0MzMsNyArMTQzMyw3IEBA
IHZvaWQgUmVuZGVyQmxvY2s6OmNoZWNrRm9yUGFnaW5hdGlvbkxvZ2ljYWxIZWlnaHRDaGFuZ2Uo
TGF5b3V0VW5pdCYgcGFnZUxvZ2ljYWxICiAgICAgICAgIGlmICghcGFnZUxvZ2ljYWxIZWlnaHQp
IHsKICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gZ28gYWhlYWQgYW5kIHNldCBvdXIgZXhwbGlj
aXQgcGFnZSBoZWlnaHQgaWYgb25lIGV4aXN0cywgc28gdGhhdCB3ZSBjYW4KICAgICAgICAgICAg
IC8vIGF2b2lkIGRvaW5nIHR3byBsYXlvdXQgcGFzc2VzLgotICAgICAgICAgICAgY29tcHV0ZUxv
Z2ljYWxIZWlnaHQoKTsKKyAgICAgICAgICAgIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKICAgICAg
ICAgICAgIExheW91dFVuaXQgY29sdW1uSGVpZ2h0ID0gY29udGVudExvZ2ljYWxIZWlnaHQoKTsK
ICAgICAgICAgICAgIGlmIChjb2x1bW5IZWlnaHQgPiBaRVJPX0xBWU9VVF9VTklUKSB7CiAgICAg
ICAgICAgICAgICAgcGFnZUxvZ2ljYWxIZWlnaHQgPSBjb2x1bW5IZWlnaHQ7CkBAIC0xNTQ2LDcg
KzE1NDYsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hp
bGRyZW4sIExheW91dFVuaXQgcGFnZUxvZ2ljYWxIZWlnaAogICAgIC8vIENhbGN1bGF0ZSBvdXIg
bmV3IGhlaWdodC4KICAgICBMYXlvdXRVbml0IG9sZEhlaWdodCA9IGxvZ2ljYWxIZWlnaHQoKTsK
ICAgICBMYXlvdXRVbml0IG9sZENsaWVudEFmdGVyRWRnZSA9IGNsaWVudExvZ2ljYWxCb3R0b20o
KTsKLSAgICBjb21wdXRlTG9naWNhbEhlaWdodCgpOworICAgIHVwZGF0ZUxvZ2ljYWxIZWlnaHQo
KTsKICAgICBMYXlvdXRVbml0IG5ld0hlaWdodCA9IGxvZ2ljYWxIZWlnaHQoKTsKICAgICBpZiAo
b2xkSGVpZ2h0ICE9IG5ld0hlaWdodCkgewogICAgICAgICBpZiAob2xkSGVpZ2h0ID4gbmV3SGVp
Z2h0ICYmIG1heEZsb2F0TG9naWNhbEJvdHRvbSA+IG5ld0hlaWdodCAmJiAhY2hpbGRyZW5Jbmxp
bmUoKSkgewpAQCAtMjY1Miw3ICsyNjUyLDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0UG9z
aXRpb25lZE9iamVjdHMoYm9vbCByZWxheW91dENoaWxkcmVuKQogICAgICAgICBib29sIG5lZWRz
QmxvY2tEaXJlY3Rpb25Mb2NhdGlvblNldEJlZm9yZUxheW91dCA9IHItPm5lZWRzTGF5b3V0KCkg
JiYgdmlldygpLT5sYXlvdXRTdGF0ZSgpLT5uZWVkc0Jsb2NrRGlyZWN0aW9uTG9jYXRpb25TZXRC
ZWZvcmVMYXlvdXQoKTsgCiAgICAgICAgIGlmIChuZWVkc0Jsb2NrRGlyZWN0aW9uTG9jYXRpb25T
ZXRCZWZvcmVMYXlvdXQpIHsKICAgICAgICAgICAgIGlmIChpc0hvcml6b250YWxXcml0aW5nTW9k
ZSgpID09IHItPmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpCi0gICAgICAgICAgICAgICAgci0+
Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgICAgICAgICByLT51cGRhdGVMb2dpY2Fs
SGVpZ2h0KCk7CiAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgci0+dXBkYXRlTG9n
aWNhbFdpZHRoKCk7CiAgICAgICAgICAgICBvbGRMb2dpY2FsVG9wID0gbG9naWNhbFRvcEZvckNo
aWxkKHIpOwpAQCAtNjA1Nyw3ICs2MDU3LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6Y29tcHV0ZUJs
b2NrUHJlZmVycmVkTG9naWNhbFdpZHRocygpCiAgICAgICAgICAgICBSZW5kZXJCb3gqIGNoaWxk
Qm94ID0gdG9SZW5kZXJCb3goY2hpbGQpOwogICAgICAgICAgICAgTGF5b3V0VW5pdCBvbGRIZWln
aHQgPSBjaGlsZEJveC0+bG9naWNhbEhlaWdodCgpOwogICAgICAgICAgICAgY2hpbGRCb3gtPnNl
dExvZ2ljYWxIZWlnaHQoY2hpbGRCb3gtPmJvcmRlckFuZFBhZGRpbmdMb2dpY2FsSGVpZ2h0KCkp
OwotICAgICAgICAgICAgY2hpbGRCb3gtPmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7CisgICAgICAg
ICAgICBjaGlsZEJveC0+dXBkYXRlTG9naWNhbEhlaWdodCgpOwogICAgICAgICAgICAgY2hpbGRN
aW5QcmVmZXJyZWRMb2dpY2FsV2lkdGggPSBjaGlsZE1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCA9
IGNoaWxkQm94LT5sb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgICAgICBjaGlsZEJveC0+c2V0TG9n
aWNhbEhlaWdodChvbGRIZWlnaHQpOwogICAgICAgICB9IGVsc2UgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQm94LmNwcAppbmRleCA1ZDI2MDZjZjJlNmI3N2M0ZjZjYmVmY2Y5MmNhMTM2
NzI3NzExODdjLi40NDZhN2Y4ZjExYjIyYmQ0MzE3MDQxYzM5ZGU4M2RmYTYzOTYxOTVlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQm94LmNwcApAQCAtMTk2MSw3ICsxOTYxLDcgQEAg
c3RhdGljIGJvb2wgc2hvdWxkRmxpcEJlZm9yZUFmdGVyTWFyZ2lucyhjb25zdCBSZW5kZXJTdHls
ZSogY29udGFpbmluZ0Jsb2NrU3R5bGUKICAgICByZXR1cm4gc2hvdWxkRmxpcDsKIH0KIAotdm9p
ZCBSZW5kZXJCb3g6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCkKK3ZvaWQgUmVuZGVyQm94Ojp1cGRh
dGVMb2dpY2FsSGVpZ2h0KCkKIHsKICAgICBMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1ZXMgY29t
cHV0ZWRWYWx1ZXM7CiAgICAgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoY29tcHV0ZWRWYWx1ZXMpOwpA
QCAtMjE4MSw3ICsyMTgxLDcgQEAgTGF5b3V0VW5pdCBSZW5kZXJCb3g6OmNvbXB1dGVQZXJjZW50
YWdlTG9naWNhbEhlaWdodChjb25zdCBMZW5ndGgmIGhlaWdodCkgY29uc3QKICAgICAgICAgLy8g
RG9uJ3QgYWxsb3cgdGhpcyB0byBhZmZlY3QgdGhlIGJsb2NrJyBoZWlnaHQoKSBtZW1iZXIgdmFy
aWFibGUsIHNpbmNlIHRoaXMKICAgICAgICAgLy8gY2FuIGdldCBjYWxsZWQgd2hpbGUgdGhlIGJs
b2NrIGlzIHN0aWxsIGxheWluZyBvdXQgaXRzIGtpZHMuCiAgICAgICAgIExheW91dFVuaXQgb2xk
SGVpZ2h0ID0gY2ItPmxvZ2ljYWxIZWlnaHQoKTsKLSAgICAgICAgY2ItPmNvbXB1dGVMb2dpY2Fs
SGVpZ2h0KCk7CisgICAgICAgIGNiLT51cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgIHJl
c3VsdCA9IGNiLT5jb250ZW50TG9naWNhbEhlaWdodCgpOwogICAgICAgICBjYi0+c2V0TG9naWNh
bEhlaWdodChvbGRIZWlnaHQpOwogICAgIH0KQEAgLTIyNzYsNyArMjI3Niw3IEBAIExheW91dFVu
aXQgUmVuZGVyQm94Ojpjb21wdXRlUmVwbGFjZWRMb2dpY2FsSGVpZ2h0VXNpbmcoU2l6ZVR5cGUg
c2l6ZVR5cGUsIExlbmd0CiAgICAgICAgICAgICAgICAgQVNTRVJUKGNiLT5pc1JlbmRlckJsb2Nr
KCkpOwogICAgICAgICAgICAgICAgIFJlbmRlckJsb2NrKiBibG9jayA9IHRvUmVuZGVyQmxvY2so
Y2IpOwogICAgICAgICAgICAgICAgIExheW91dFVuaXQgb2xkSGVpZ2h0ID0gYmxvY2stPmhlaWdo
dCgpOwotICAgICAgICAgICAgICAgIGJsb2NrLT5jb21wdXRlTG9naWNhbEhlaWdodCgpOworICAg
ICAgICAgICAgICAgIGJsb2NrLT51cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgICAgICAg
ICAgTGF5b3V0VW5pdCBuZXdIZWlnaHQgPSBibG9jay0+YWRqdXN0Q29udGVudEJveExvZ2ljYWxI
ZWlnaHRGb3JCb3hTaXppbmcoYmxvY2stPmNvbnRlbnRIZWlnaHQoKSk7CiAgICAgICAgICAgICAg
ICAgYmxvY2stPnNldEhlaWdodChvbGRIZWlnaHQpOwogICAgICAgICAgICAgICAgIHJldHVybiBh
ZGp1c3RDb250ZW50Qm94TG9naWNhbEhlaWdodEZvckJveFNpemluZyh2YWx1ZUZvckxlbmd0aChs
b2dpY2FsSGVpZ2h0LCBuZXdIZWlnaHQpKTsKQEAgLTIzNDcsNyArMjM0Nyw3IEBAIExheW91dFVu
aXQgUmVuZGVyQm94OjphdmFpbGFibGVMb2dpY2FsSGVpZ2h0VXNpbmcoY29uc3QgTGVuZ3RoJiBo
KSBjb25zdAogICAgIGlmIChpc1JlbmRlckJsb2NrKCkgJiYgaXNPdXRPZkZsb3dQb3NpdGlvbmVk
KCkgJiYgc3R5bGUoKS0+aGVpZ2h0KCkuaXNBdXRvKCkgJiYgIShzdHlsZSgpLT50b3AoKS5pc0F1
dG8oKSB8fCBzdHlsZSgpLT5ib3R0b20oKS5pc0F1dG8oKSkpIHsKICAgICAgICAgUmVuZGVyQmxv
Y2sqIGJsb2NrID0gY29uc3RfY2FzdDxSZW5kZXJCbG9jayo+KHRvUmVuZGVyQmxvY2sodGhpcykp
OwogICAgICAgICBMYXlvdXRVbml0IG9sZEhlaWdodCA9IGJsb2NrLT5sb2dpY2FsSGVpZ2h0KCk7
Ci0gICAgICAgIGJsb2NrLT5jb21wdXRlTG9naWNhbEhlaWdodCgpOworICAgICAgICBibG9jay0+
dXBkYXRlTG9naWNhbEhlaWdodCgpOwogICAgICAgICBMYXlvdXRVbml0IG5ld0hlaWdodCA9IGJs
b2NrLT5hZGp1c3RDb250ZW50Qm94TG9naWNhbEhlaWdodEZvckJveFNpemluZyhibG9jay0+Y29u
dGVudExvZ2ljYWxIZWlnaHQoKSk7CiAgICAgICAgIGJsb2NrLT5zZXRMb2dpY2FsSGVpZ2h0KG9s
ZEhlaWdodCk7CiAgICAgICAgIHJldHVybiBhZGp1c3RDb250ZW50Qm94TG9naWNhbEhlaWdodEZv
ckJveFNpemluZyhuZXdIZWlnaHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJveC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJveC5oCmlu
ZGV4IDQxY2E1M2YzN2YxMGJhNTA4YjdkNmQ1YTI0ZWU1NWM4ZjZmNTQ5OGEuLmFmM2M0NjI0YTBm
ODQxNmUyMDJmYmY3ZmY5OTI1OTg5ZmJjNmVmODcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQm94LmgKQEAgLTM2NSw3ICszNjUsNyBAQCBwdWJsaWM6CiAgICAgTGF5b3V0VW5pdCBwZXJw
ZW5kaWN1bGFyQ29udGFpbmluZ0Jsb2NrTG9naWNhbEhlaWdodCgpIGNvbnN0OwogCiAgICAgdmly
dHVhbCB2b2lkIHVwZGF0ZUxvZ2ljYWxXaWR0aCgpOwotICAgIHZpcnR1YWwgdm9pZCBjb21wdXRl
TG9naWNhbEhlaWdodCgpOworICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMb2dpY2FsSGVpZ2h0KCk7
CiAgICAgdm9pZCBjb21wdXRlTG9naWNhbEhlaWdodChMb2dpY2FsRXh0ZW50Q29tcHV0ZWRWYWx1
ZXMmKSBjb25zdDsKIAogICAgIFJlbmRlckJveFJlZ2lvbkluZm8qIHJlbmRlckJveFJlZ2lvbklu
Zm8oUmVuZGVyUmVnaW9uKiwgTGF5b3V0VW5pdCBvZmZzZXRGcm9tTG9naWNhbFRvcE9mRmlyc3RQ
YWdlLCBSZW5kZXJCb3hSZWdpb25JbmZvRmxhZ3MgPSBDYWNoZVJlbmRlckJveFJlZ2lvbkluZm8p
IGNvbnN0OwpAQCAtNDUzLDcgKzQ1Myw3IEBAIHB1YmxpYzoKICAgICAgICAgLy8gSWYgd2Ugc2hy
aW5rIHRvIGZpdCBvdXIgd2lkdGggbWF5IGhhdmUgY2hhbmdlZCwgc28gd2Ugc3RpbGwgbmVlZCBm
dWxsIGxheW91dC4KICAgICAgICAgaWYgKG9sZFdpZHRoICE9IHdpZHRoKCkpCiAgICAgICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgICAgIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7CisgICAgICAg
IHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVwcmVjYXRlZEZsZXhp
YmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxl
eGlibGVCb3guY3BwCmluZGV4IGUxNGYzYWFkOTdiODE0OTA1ODg4NjJiYWE3MGY4NmVkODA3ODJk
NjIuLmQ2MTkxYjJlMjdmNjhiYWE4ODgwMTdhM2QwZGRkYTFkMGExYjYxZjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3guY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXByZWNhdGVkRmxleGlibGVC
b3guY3BwCkBAIC0yNDgsNyArMjQ4LDcgQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVC
b3g6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKICAgICBM
YXlvdXRTaXplIHByZXZpb3VzU2l6ZSA9IHNpemUoKTsKIAogICAgIHVwZGF0ZUxvZ2ljYWxXaWR0
aCgpOwotICAgIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7CisgICAgdXBkYXRlTG9naWNhbEhlaWdo
dCgpOwogCiAgICAgbV9vdmVyZmxvdy5jbGVhcigpOwogCkBAIC0yNjksNyArMjY5LDcgQEAgdm9p
ZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRD
aGlsZHJlbiwgTGF5b3V0VW5pdCkKICAgICAgICAgbGF5b3V0VmVydGljYWxCb3gocmVsYXlvdXRD
aGlsZHJlbik7CiAKICAgICBMYXlvdXRVbml0IG9sZENsaWVudEFmdGVyRWRnZSA9IGNsaWVudExv
Z2ljYWxCb3R0b20oKTsKLSAgICBjb21wdXRlTG9naWNhbEhlaWdodCgpOworICAgIHVwZGF0ZUxv
Z2ljYWxIZWlnaHQoKTsKIAogICAgIGlmIChwcmV2aW91c1NpemUuaGVpZ2h0KCkgIT0gaGVpZ2h0
KCkpCiAgICAgICAgIHJlbGF5b3V0Q2hpbGRyZW4gPSB0cnVlOwpAQCAtNDE0LDcgKzQxNCw3IEBA
IHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94OjpsYXlvdXRIb3Jpem9udGFsQm94KGJv
b2wgcmVsYXlvdXRDaGlsZHJlbikKICAgICAgICAgc2V0SGVpZ2h0KGhlaWdodCgpICsgdG9BZGQp
OwogCiAgICAgICAgIG9sZEhlaWdodCA9IGhlaWdodCgpOwotICAgICAgICBjb21wdXRlTG9naWNh
bEhlaWdodCgpOworICAgICAgICB1cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAKICAgICAgICAgcmVs
YXlvdXRDaGlsZHJlbiA9IGZhbHNlOwogICAgICAgICBpZiAob2xkSGVpZ2h0ICE9IGhlaWdodCgp
KQpAQCAtNDQ3LDcgKzQ0Nyw3IEBAIHZvaWQgUmVuZGVyRGVwcmVjYXRlZEZsZXhpYmxlQm94Ojps
YXlvdXRIb3Jpem9udGFsQm94KGJvb2wgcmVsYXlvdXRDaGlsZHJlbikKICAgICAgICAgICAgIC8v
IGZpbGwgdGhlIGhlaWdodCBvZiBhIGNvbnRhaW5pbmcgYm94IGJ5IGRlZmF1bHQuCiAgICAgICAg
ICAgICAvLyBOb3cgZG8gYSBsYXlvdXQuCiAgICAgICAgICAgICBMYXlvdXRVbml0IG9sZENoaWxk
SGVpZ2h0ID0gY2hpbGQtPmhlaWdodCgpOwotICAgICAgICAgICAgY2hpbGQtPmNvbXB1dGVMb2dp
Y2FsSGVpZ2h0KCk7CisgICAgICAgICAgICBjaGlsZC0+dXBkYXRlTG9naWNhbEhlaWdodCgpOwog
ICAgICAgICAgICAgaWYgKG9sZENoaWxkSGVpZ2h0ICE9IGNoaWxkLT5oZWlnaHQoKSkKICAgICAg
ICAgICAgICAgICBjaGlsZC0+c2V0Q2hpbGROZWVkc0xheW91dCh0cnVlLCBNYXJrT25seVRoaXMp
OwogCkBAIC03MzUsNyArNzM1LDcgQEAgdm9pZCBSZW5kZXJEZXByZWNhdGVkRmxleGlibGVCb3g6
OmxheW91dFZlcnRpY2FsQm94KGJvb2wgcmVsYXlvdXRDaGlsZHJlbikKIAogICAgICAgICAvLyBO
b3cgd2UgaGF2ZSB0byBjYWxjIG91ciBoZWlnaHQsIHNvIHdlIGtub3cgaG93IG11Y2ggc3BhY2Ug
d2UgaGF2ZSByZW1haW5pbmcuCiAgICAgICAgIG9sZEhlaWdodCA9IGhlaWdodCgpOwotICAgICAg
ICBjb21wdXRlTG9naWNhbEhlaWdodCgpOworICAgICAgICB1cGRhdGVMb2dpY2FsSGVpZ2h0KCk7
CiAgICAgICAgIGlmIChvbGRIZWlnaHQgIT0gaGVpZ2h0KCkpCiAgICAgICAgICAgICBoZWlnaHRT
cGVjaWZpZWQgPSB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRW1iZWRkZWRPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckVtYmVkZGVkT2JqZWN0LmNwcAppbmRleCA4M2Q2YTFmYmMyZDg4ZDZlNTgzM2Q5OGExNzU2YzFi
NDBhOWQzYzAzLi4xMTExZTI5OWUyZjhhMTUyNmFiOGY1YmIwMTlkYjhkMWU0NjAzN2I5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRW1iZWRkZWRPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbWJlZGRlZE9iamVjdC5jcHAK
QEAgLTIzMSw3ICsyMzEsNyBAQCB2b2lkIFJlbmRlckVtYmVkZGVkT2JqZWN0OjpsYXlvdXQoKQog
ICAgIEFTU0VSVChuZWVkc0xheW91dCgpKTsKIAogICAgIHVwZGF0ZUxvZ2ljYWxXaWR0aCgpOwot
ICAgIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7CisgICAgdXBkYXRlTG9naWNhbEhlaWdodCgpOwog
CiAgICAgUmVuZGVyUGFydDo6bGF5b3V0KCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRmxleGlibGVCb3guY3BwCmluZGV4IDQyYTdkMTA5MmQ3YTdiZThjNDU2MTIwYTc2
YWY3NmFmNGZlYmZhOTUuLmMzYTJhNWM5YTkyYjRjN2RjNjYwYTA4ZTNkMWQ1NTVlYjIzMjYxZmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcApA
QCAtMjY1LDcgKzI2NSw3IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91dEJsb2NrKGJv
b2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKICAgICBsYXlvdXRGbGV4SXRlbXMoKm1f
b3JkZXJJdGVyYXRvciwgbGluZUNvbnRleHRzKTsKIAogICAgIExheW91dFVuaXQgb2xkQ2xpZW50
QWZ0ZXJFZGdlID0gY2xpZW50TG9naWNhbEJvdHRvbSgpOwotICAgIGNvbXB1dGVMb2dpY2FsSGVp
Z2h0KCk7CisgICAgdXBkYXRlTG9naWNhbEhlaWdodCgpOwogICAgIHJlcG9zaXRpb25Mb2dpY2Fs
SGVpZ2h0RGVwZW5kZW50RmxleEl0ZW1zKCptX29yZGVySXRlcmF0b3IsIGxpbmVDb250ZXh0cywg
b2xkQ2xpZW50QWZ0ZXJFZGdlKTsKIAogICAgIGlmIChzaXplKCkgIT0gcHJldmlvdXNTaXplKQpA
QCAtMTA1OCw3ICsxMDU4LDcgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QW5kUGxh
Y2VDaGlsZHJlbihMYXlvdXRVbml0JiBjcm9zc0F4aXNPZmZzZXQsIGNvbnMKICAgICBpZiAoc3R5
bGUoKS0+ZmxleERpcmVjdGlvbigpID09IEZsb3dDb2x1bW5SZXZlcnNlKSB7CiAgICAgICAgIC8v
IFdlIGhhdmUgdG8gZG8gYW4gZXh0cmEgcGFzcyBmb3IgY29sdW1uLXJldmVyc2UgdG8gcmVwb3Np
dGlvbiB0aGUgZmxleCBpdGVtcyBzaW5jZSB0aGUgc3RhcnQgZGVwZW5kcwogICAgICAgICAvLyBv
biB0aGUgaGVpZ2h0IG9mIHRoZSBmbGV4Ym94LCB3aGljaCB3ZSBvbmx5IGtub3cgYWZ0ZXIgd2Un
dmUgcG9zaXRpb25lZCBhbGwgdGhlIGZsZXggaXRlbXMuCi0gICAgICAgIGNvbXB1dGVMb2dpY2Fs
SGVpZ2h0KCk7CisgICAgICAgIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgbGF5b3V0
Q29sdW1uUmV2ZXJzZShjaGlsZHJlbiwgY2hpbGRTaXplcywgY3Jvc3NBeGlzT2Zmc2V0LCBhdmFp
bGFibGVGcmVlU3BhY2UpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckZsb3dUaHJlYWQuY3BwCmluZGV4IGVhYmI0YTdjMGRiMDZmZWYxZjkxZjc1MmMwZjYyNjRi
ZDEwMDNjM2MuLjgyNjg2MTE3YTNmNmIwZjUyMjM5MWRlNmZlMTNmOTk5YmJhMDg0MzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbG93VGhyZWFkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5jcHAKQEAgLTIyMiw3
ICsyMjIsNyBAQCB2b2lkIFJlbmRlckZsb3dUaHJlYWQ6OnVwZGF0ZUxvZ2ljYWxXaWR0aCgpCiAg
ICAgfQogfQogCi12b2lkIFJlbmRlckZsb3dUaHJlYWQ6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCkK
K3ZvaWQgUmVuZGVyRmxvd1RocmVhZDo6dXBkYXRlTG9naWNhbEhlaWdodCgpCiB7CiAgICAgTGF5
b3V0VW5pdCBsb2dpY2FsSGVpZ2h0ID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGbG93VGhyZWFkLmgKaW5kZXggYWMwZDk4OGExNTQ3ODQwMmQzNGZjZGI0MTY3ZWFlOTNj
YzhiYTI3ZS4uZjJhMjA0NmQyMDE3MGVmZjJjZTEzZjRkMTljMzYwMDA2OGQ4ZmIwZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsb3dUaHJlYWQuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxvd1RocmVhZC5oCkBAIC03NCw3ICs3NCw3
IEBAIHB1YmxpYzoKICAgICBjb25zdCBSZW5kZXJSZWdpb25MaXN0JiByZW5kZXJSZWdpb25MaXN0
KCkgY29uc3QgeyByZXR1cm4gbV9yZWdpb25MaXN0OyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBk
YXRlTG9naWNhbFdpZHRoKCkgT1ZFUlJJREU7Ci0gICAgdmlydHVhbCB2b2lkIGNvbXB1dGVMb2dp
Y2FsSGVpZ2h0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0ZUxvZ2ljYWxIZWln
aHQoKSBPVkVSUklERTsKIAogICAgIHZvaWQgcGFpbnRGbG93VGhyZWFkUG9ydGlvbkluUmVnaW9u
KFBhaW50SW5mbyYsIFJlbmRlclJlZ2lvbiosIExheW91dFJlY3QgZmxvd1RocmVhZFBvcnRpb25S
ZWN0LCBMYXlvdXRSZWN0IGZsb3dUaHJlYWRQb3J0aW9uT3ZlcmZsb3dSZWN0LCBjb25zdCBMYXlv
dXRQb2ludCYpIGNvbnN0OwogICAgIGJvb2wgaGl0VGVzdEZsb3dUaHJlYWRQb3J0aW9uSW5SZWdp
b24oUmVuZGVyUmVnaW9uKiwgTGF5b3V0UmVjdCBmbG93VGhyZWFkUG9ydGlvblJlY3QsIExheW91
dFJlY3QgZmxvd1RocmVhZFBvcnRpb25PdmVyZmxvd1JlY3QsIGNvbnN0IEhpdFRlc3RSZXF1ZXN0
JiwgSGl0VGVzdFJlc3VsdCYsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRh
aW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0KSBjb25zdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJHcmlkLmNwcAppbmRleCA1YTgxM2MxNGRmZmFlNTEyMWNh
NWZiNjc5MDZkN2I4MmVhYTk1ZDBlLi5lMjgyZjdmNDFmMDRhYzRkZTk4ZWU2NDBjMzRjN2YzNWJi
ZTg0ZTEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCkBAIC04Myw3
ICs4Myw3IEBAIHZvaWQgUmVuZGVyR3JpZDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxk
cmVuLCBMYXlvdXRVbml0KQogICAgIGxheW91dEdyaWRJdGVtcygpOwogCiAgICAgTGF5b3V0VW5p
dCBvbGRDbGllbnRBZnRlckVkZ2UgPSBjbGllbnRMb2dpY2FsQm90dG9tKCk7Ci0gICAgY29tcHV0
ZUxvZ2ljYWxIZWlnaHQoKTsKKyAgICB1cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAKICAgICBpZiAo
c2l6ZSgpICE9IHByZXZpb3VzU2l6ZSkKICAgICAgICAgcmVsYXlvdXRDaGlsZHJlbiA9IHRydWU7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySFRNTENhbnZhcy5jcHAKaW5kZXgg
M2EyYjc1YjUzNWFmMjJlYzdjZTk1MzdmZGNkMDVjODJhMWJmZGYzNy4uNTgxMGRhMjMwMGUzMmI0
ZTYxOTcxYzM5MWZjOTNmZmY2ZTc0ZTg4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckhUTUxDYW52YXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJIVE1MQ2FudmFzLmNwcApAQCAtOTAsNyArOTAsNyBAQCB2b2lkIFJlbmRlckhUTUxD
YW52YXM6OmNhbnZhc1NpemVDaGFuZ2VkKCkKIAogICAgIExheW91dFNpemUgb2xkU2l6ZSA9IHNp
emUoKTsKICAgICB1cGRhdGVMb2dpY2FsV2lkdGgoKTsKLSAgICBjb21wdXRlTG9naWNhbEhlaWdo
dCgpOworICAgIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKICAgICBpZiAob2xkU2l6ZSA9PSBzaXpl
KCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlcklGcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZy
YW1lLmNwcAppbmRleCA3MzllYmEyNTY1YWIwYmExNjU3OWNjNWZjMDRhNDhiZDYwMzlmZGI1Li5j
NDVlODA1OWEwZDhkMjU0YzlmYzE0Yjc5YTk1Mjg4NmI3MmNmZDA0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmNwcApAQCAtNDMsOSArNDMsOSBAQCBSZW5kZXJJRnJh
bWU6OlJlbmRlcklGcmFtZShFbGVtZW50KiBlbGVtZW50KQogewogfQogCi12b2lkIFJlbmRlcklG
cmFtZTo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoKQordm9pZCBSZW5kZXJJRnJhbWU6OnVwZGF0ZUxv
Z2ljYWxIZWlnaHQoKQogewotICAgIFJlbmRlclBhcnQ6OmNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7
CisgICAgUmVuZGVyUGFydDo6dXBkYXRlTG9naWNhbEhlaWdodCgpOwogICAgIGlmICghZmxhdHRl
bkZyYW1lKCkpCiAgICAgICAgICByZXR1cm47CiAKQEAgLTE3NSw3ICsxNzUsNyBAQCB2b2lkIFJl
bmRlcklGcmFtZTo6bGF5b3V0U2VhbWxlc3NseSgpCiAgICAgRnJhbWVWaWV3KiBjaGlsZEZyYW1l
VmlldyA9IHN0YXRpY19jYXN0PEZyYW1lVmlldyo+KHdpZGdldCgpKTsKICAgICBpZiAoY2hpbGRG
cmFtZVZpZXcpIC8vIFdpZGdldCBzaG91bGQgbmV2ZXIgYmUgbnVsbCBkdXJpbmcgbGF5b3V0KCks
IGJ1dCBqdXN0IGluIGNhc2UuCiAgICAgICAgIHNldExvZ2ljYWxIZWlnaHQoY2hpbGRGcmFtZVZp
ZXctPmNvbnRlbnRzSGVpZ2h0KCkgKyBib3JkZXJUb3AoKSArIGJvcmRlckJvdHRvbSgpKTsKLSAg
ICBjb21wdXRlTG9naWNhbEhlaWdodCgpOworICAgIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKIAog
ICAgIHVwZGF0ZVdpZGdldFBvc2l0aW9uKCk7IC8vIE5vdGlmeSB0aGUgV2lkZ2V0IG9mIG91ciBm
aW5hbCBoZWlnaHQuCiAKQEAgLTE5MSw3ICsxOTEsNyBAQCB2b2lkIFJlbmRlcklGcmFtZTo6bGF5
b3V0KCkKIAogICAgIGlmIChmbGF0dGVuRnJhbWUoKSkgewogICAgICAgICBSZW5kZXJQYXJ0Ojp1
cGRhdGVMb2dpY2FsV2lkdGgoKTsKLSAgICAgICAgUmVuZGVyUGFydDo6Y29tcHV0ZUxvZ2ljYWxI
ZWlnaHQoKTsKKyAgICAgICAgUmVuZGVyUGFydDo6dXBkYXRlTG9naWNhbEhlaWdodCgpOwogICAg
ICAgICBsYXlvdXRXaXRoRmxhdHRlbmluZyhzdHlsZSgpLT53aWR0aCgpLmlzRml4ZWQoKSwgc3R5
bGUoKS0+aGVpZ2h0KCkuaXNGaXhlZCgpKTsKICAgICAgICAgLy8gRklYTUU6IElzIGVhcmx5IHJl
dHVybiByZWFsbHkgT0sgaGVyZT8gV2hhdCBhYm91dCB0cmFuc2Zvcm0vb3ZlcmZsb3cgY29kZSBi
ZWxvdz8KICAgICAgICAgcmV0dXJuOwpAQCAtMjAxLDcgKzIwMSw3IEBAIHZvaWQgUmVuZGVySUZy
YW1lOjpsYXlvdXQoKQogICAgIH0gZWxzZSB7CiAgICAgICAgIHVwZGF0ZUxvZ2ljYWxXaWR0aCgp
OwogICAgICAgICAvLyBObyBraWRzIHRvIGxheW91dCBhcyBhIHJlcGxhY2VkIGVsZW1lbnQuCi0g
ICAgICAgIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgIHVwZGF0ZUxvZ2ljYWxIZWln
aHQoKTsKICAgICB9CiAKICAgICBtX292ZXJmbG93LmNsZWFyKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySUZyYW1lLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySUZyYW1lLmgKaW5kZXggOWNlNWZhNmJjYTc3YjA2ZWNiNjc1ZWU5NTRkZjI0
MjlkYTA1ZjQyOC4uNjllNDM4MjEzZTcyYzgyZTUyZDRmNDgzYTc1MDllODViZGIzMDg2NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlcklGcmFtZS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJRnJhbWUuaApAQCAtNDAsOCArNDAsOCBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc1NlYW1sZXNzKCkgY29uc3Q7CiAKIHByaXZhdGU6Ci0gICAgdmly
dHVhbCB2b2lkIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCkgT1ZFUlJJREU7CiAgICAgdmlydHVhbCB2
b2lkIHVwZGF0ZUxvZ2ljYWxXaWR0aCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1cGRh
dGVMb2dpY2FsSGVpZ2h0KCkgT1ZFUlJJREU7CiAKICAgICB2aXJ0dWFsIExheW91dFVuaXQgbWlu
UHJlZmVycmVkTG9naWNhbFdpZHRoKCkgY29uc3QgT1ZFUlJJREU7CiAgICAgdmlydHVhbCBMYXlv
dXRVbml0IG1heFByZWZlcnJlZExvZ2ljYWxXaWR0aCgpIGNvbnN0IE9WRVJSSURFOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJJbWFnZS5jcHAKaW5kZXggYzc2N2Y4ZmRmNmNkNTlkMWQx
YjU1MDdkYjk4MDdiMjMzYTQyNjhlMS4uNDA0MDI1ZjZlMjdjMWVlN2I0YjQxYzc2YTdjNjQ4MjVh
YWIwZjM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckltYWdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySW1hZ2UuY3BwCkBAIC0y
MjUsNyArMjI1LDcgQEAgdm9pZCBSZW5kZXJJbWFnZTo6aW1hZ2VEaW1lbnNpb25zQ2hhbmdlZChi
b29sIGltYWdlU2l6ZUNoYW5nZWQsIGNvbnN0IEludFJlY3QqIHIKICAgICAgICAgaWYgKCFwcmVm
ZXJyZWRMb2dpY2FsV2lkdGhzRGlydHkoKSkKICAgICAgICAgICAgIHNldFByZWZlcnJlZExvZ2lj
YWxXaWR0aHNEaXJ0eSh0cnVlKTsKICAgICAgICAgdXBkYXRlTG9naWNhbFdpZHRoKCk7Ci0gICAg
ICAgIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7CisgICAgICAgIHVwZGF0ZUxvZ2ljYWxIZWlnaHQo
KTsKIAogICAgICAgICBpZiAoaW1hZ2VTaXplQ2hhbmdlZCB8fCB3aWR0aCgpICE9IG9sZHdpZHRo
IHx8IGhlaWdodCgpICE9IG9sZGhlaWdodCkgewogICAgICAgICAgICAgc2hvdWxkUmVwYWludCA9
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RC
b3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guY3BwCmluZGV4
IGQyNzViZTZkNzFiMDliYTFiOWMyNTFhMmFjMTI5NzdkM2RkZTc5NjkuLjdhMjQzOTc3OTczMjk2
NzhhOTQ2NzgzNmM2ODdjNGZiM2MyMmRhYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJMaXN0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGlzdEJveC5jcHAKQEAgLTI1MCwxNCArMjUwLDE0IEBAIExheW91dFVuaXQgUmVuZGVy
TGlzdEJveDo6bGlzdEhlaWdodCgpIGNvbnN0CiAgICAgcmV0dXJuIGl0ZW1IZWlnaHQoKSAqIG51
bUl0ZW1zKCkgLSByb3dTcGFjaW5nOwogfQogCi12b2lkIFJlbmRlckxpc3RCb3g6OmNvbXB1dGVM
b2dpY2FsSGVpZ2h0KCkKK3ZvaWQgUmVuZGVyTGlzdEJveDo6dXBkYXRlTG9naWNhbEhlaWdodCgp
CiB7CiAgICAgaW50IHRvQWRkID0gYm9yZGVyQW5kUGFkZGluZ0hlaWdodCgpOwogIAogICAgIGlu
dCBpdGVtSGVpZ2h0ID0gUmVuZGVyTGlzdEJveDo6aXRlbUhlaWdodCgpOwogICAgIHNldEhlaWdo
dChpdGVtSGVpZ2h0ICogc2l6ZSgpIC0gcm93U3BhY2luZyArIHRvQWRkKTsKICAgICAKLSAgICBS
ZW5kZXJCbG9jazo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsKKyAgICBSZW5kZXJCbG9jazo6dXBk
YXRlTG9naWNhbEhlaWdodCgpOwogICAgIAogICAgIGlmIChtX3ZCYXIpIHsKICAgICAgICAgYm9v
bCBlbmFibGVkID0gbnVtVmlzaWJsZUl0ZW1zKCkgPCBudW1JdGVtcygpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMaXN0Qm94LmgKaW5kZXggYjhjOGVkOWRhNDA0YWYxN2QwOTEzN2Ey
ZWVmNzdkZjE0MjQ1ZWFlMy4uZDI1OWU3NjdjODNlNjU5OTA1ZGRlNWYwZDk3M2VjNzViODZmMTBi
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxpc3RCb3guaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGlzdEJveC5oCkBAIC03Nyw3ICs3
Nyw3IEBAIHByaXZhdGU6CiAKICAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2lj
YWxXaWR0aHMoKTsKICAgICB2aXJ0dWFsIExheW91dFVuaXQgYmFzZWxpbmVQb3NpdGlvbihGb250
QmFzZWxpbmUsIGJvb2wgZmlyc3RMaW5lLCBMaW5lRGlyZWN0aW9uTW9kZSwgTGluZVBvc2l0aW9u
TW9kZSA9IFBvc2l0aW9uT25Db250YWluaW5nTGluZSkgY29uc3Q7Ci0gICAgdmlydHVhbCB2b2lk
IGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCkgT1ZFUlJJREU7CisgICAgdmlydHVhbCB2b2lkIHVwZGF0
ZUxvZ2ljYWxIZWlnaHQoKSBPVkVSUklERTsKIAogICAgIHZpcnR1YWwgdm9pZCBsYXlvdXQoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck1ldGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJNZXRlci5jcHAKaW5kZXggMDBkYzQ1YTFi
YzUyZGRlNzQ4NmUyNzNmMWRlZjU1OGMzOWRkMTA3Ni4uYjUzOWMwYTNhZGZkMmYwODNkZWE4MWZh
ZWQyMzgxMjVkODVmYTU1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck1ldGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWV0ZXIu
Y3BwCkBAIC01OCw5ICs1OCw5IEBAIHZvaWQgUmVuZGVyTWV0ZXI6OnVwZGF0ZUxvZ2ljYWxXaWR0
aCgpCiAgICAgc2V0V2lkdGgodGhlbWUoKS0+bWV0ZXJTaXplRm9yQm91bmRzKHRoaXMsIHBpeGVs
U25hcHBlZEludFJlY3QoZnJhbWVSZWN0KCkpKS53aWR0aCgpKTsKIH0KIAotdm9pZCBSZW5kZXJN
ZXRlcjo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoKQordm9pZCBSZW5kZXJNZXRlcjo6dXBkYXRlTG9n
aWNhbEhlaWdodCgpCiB7Ci0gICAgUmVuZGVyQm94Ojpjb21wdXRlTG9naWNhbEhlaWdodCgpOwor
ICAgIFJlbmRlckJveDo6dXBkYXRlTG9naWNhbEhlaWdodCgpOwogICAgIHNldEhlaWdodCh0aGVt
ZSgpLT5tZXRlclNpemVGb3JCb3VuZHModGhpcywgcGl4ZWxTbmFwcGVkSW50UmVjdChmcmFtZVJl
Y3QoKSkpLmhlaWdodCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck1ldGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTWV0ZXIu
aAppbmRleCA3ZTAyMTQ5ZDQzZDhmMmJiMTgzZTQ1MDgwY2FmZjAxOGFlODM3NWJkLi45MDUxOTUx
ZDE1ODI3NTY5MWY3M2Q4ZjkwMDBhZmQ5MjU5YmIxYzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTWV0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTWV0ZXIuaApAQCAtNDAsNyArNDAsNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6ICAg
IAogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMb2dpY2FsV2lkdGgoKSBPVkVSUklERTsKLSAgICB2
aXJ0dWFsIHZvaWQgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFs
IHZvaWQgdXBkYXRlTG9naWNhbEhlaWdodCgpIE9WRVJSSURFOwogCiAgICAgdmlydHVhbCBjb25z
dCBjaGFyKiByZW5kZXJOYW1lKCkgY29uc3QgeyByZXR1cm4gIlJlbmRlck1ldGVyIjsgfQogICAg
IHZpcnR1YWwgYm9vbCBpc01ldGVyKCkgY29uc3QgeyByZXR1cm4gdHJ1ZTsgfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uQmxvY2suY3BwCmluZGV4
IGU1NmY5ZjczZTJjZjJjNmMxYWIxYTY5MjYwODU3YzkwMmQ3ZjBiYzQuLjIyMWNiNGQzMDgwMzJl
YTRkYjcwN2QxNTkzYjdjZGM5YTE1OTZhNzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5CbG9jay5jcHAKQEAgLTgxLDcgKzgxLDcgQEAgYm9v
bCBSZW5kZXJNdWx0aUNvbHVtbkJsb2NrOjp1cGRhdGVMb2dpY2FsV2lkdGhBbmRDb2x1bW5XaWR0
aCgpCiB2b2lkIFJlbmRlck11bHRpQ29sdW1uQmxvY2s6OmNoZWNrRm9yUGFnaW5hdGlvbkxvZ2lj
YWxIZWlnaHRDaGFuZ2UoTGF5b3V0VW5pdCYgLypwYWdlTG9naWNhbEhlaWdodCovLCBib29sJiAv
KnBhZ2VMb2dpY2FsSGVpZ2h0Q2hhbmdlZCovLCBib29sJiAvKmhhc1NwZWNpZmllZFBhZ2VMb2dp
Y2FsSGVpZ2h0Ki8pCiB7CiAgICAgLy8gV2UgZG9uJ3QgYWN0dWFsbHkgdXBkYXRlIGFueSBvZiB0
aGUgdmFyaWFibGVzLiBXZSBqdXN0IHN1YmNsYXNzZWQgdG8gYWRqdXN0IG91ciBjb2x1bW4gaGVp
Z2h0LgotICAgIGNvbXB1dGVMb2dpY2FsSGVpZ2h0KCk7CisgICAgdXBkYXRlTG9naWNhbEhlaWdo
dCgpOwogICAgIExheW91dFVuaXQgbmV3Q29udGVudExvZ2ljYWxIZWlnaHQgPSBjb250ZW50TG9n
aWNhbEhlaWdodCgpOwogICAgIGlmIChuZXdDb250ZW50TG9naWNhbEhlaWdodCA+IFpFUk9fTEFZ
T1VUX1VOSVQpIHsKICAgICAgICAgLy8gVGhlIHJlZ2lvbnMgd2lsbCBiZSBpbnZhbGlkYXRlZCB3
aGVuIHdlIGxheSB0aGVtIG91dCBhbmQgdGhleSBjaGFuZ2Ugc2l6ZSB0bwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZC5oIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uRmxvd1RocmVhZC5oCmlu
ZGV4IGM2OWU2NTAxNjg1YjNiM2FkZDlhYWIyZDUwZjU5YTJhZjg1ZjViNmMuLjM2M2NkMDc3MTI4
Y2JmNWM5Njg5NzRlN2YyOTIyZTdjNzdhNDc1NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJNdWx0aUNvbHVtbkZsb3dUaHJlYWQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5GbG93VGhyZWFkLmgKQEAgLTM5LDcgKzM5
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICB2aXJ0dWFsIGNvbnN0IGNoYXIqIHJlbmRlck5h
bWUoKSBjb25zdCBPVkVSUklERTsKICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUxvZ2lj
YWxIZWlnaHQoKSBPVkVSUklERSB7fTsgLy8gV2Ugc2ltcGx5IHJlbWFpbiBhdCBvdXIgaW50cmlu
c2ljIGhlaWdodC4KKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTG9naWNhbEhlaWdodCgpIE9WRVJS
SURFIHsgfSAvLyBXZSBzaW1wbHkgcmVtYWluIGF0IG91ciBpbnRyaW5zaWMgaGVpZ2h0LgogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNdWx0aUNvbHVtblNldC5jcHAKaW5kZXggMzgxMjg2ZWI3N2U0MjVmNTc4MDViMjc1
YjRjZDNhNzJhNjc1M2UwYi4uODNkMWRlYTUwZTc2NjIzN2UzYWEzMTUzNzAzYWRiNjY1ZGFjZmVh
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1u
U2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTXVsdGlDb2x1bW5T
ZXQuY3BwCkBAIC02NCw3ICs2NCw3IEBAIHZvaWQgUmVuZGVyTXVsdGlDb2x1bW5TZXQ6OnVwZGF0
ZUxvZ2ljYWxXaWR0aCgpCiAgICAgc2V0Q29tcHV0ZWRDb2x1bW5XaWR0aEFuZENvdW50KHBhcmVu
dEJsb2NrLT5jb2x1bW5XaWR0aCgpLCBwYXJlbnRCbG9jay0+Y29sdW1uQ291bnQoKSk7IC8vIEZJ
WE1FOiBUaGlzIHdpbGwgZXZlbnR1YWxseSB2YXJ5IGlmIHdlIGFyZSBjb250YWluZWQgaW5zaWRl
IHJlZ2lvbnMuCiB9CiAKLXZvaWQgUmVuZGVyTXVsdGlDb2x1bW5TZXQ6OmNvbXB1dGVMb2dpY2Fs
SGVpZ2h0KCkKK3ZvaWQgUmVuZGVyTXVsdGlDb2x1bW5TZXQ6OnVwZGF0ZUxvZ2ljYWxIZWlnaHQo
KQogewogICAgIC8vIE1ha2Ugc3VyZSBvdXIgY29sdW1uIGhlaWdodCBpcyB1cCB0byBkYXRlLgog
ICAgIFJlbmRlck11bHRpQ29sdW1uQmxvY2sqIHBhcmVudEJsb2NrID0gdG9SZW5kZXJNdWx0aUNv
bHVtbkJsb2NrKHBhcmVudCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJNdWx0aUNvbHVtblNldC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck11bHRpQ29sdW1uU2V0LmgKaW5kZXggNzM3N2M2ZDliNTBhZTMyM2ExMGYzYjQ5N2E1MDVmZTQw
OTk0NzdiYS4uZjhmYTM3Nzk1YWQxMzhlZDI2YjE2MmViM2RhYzBmZTJiMGZiOWY5MSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck11bHRpQ29sdW1uU2V0LmgKQEAgLTYz
LDcgKzYzLDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVM
b2dpY2FsV2lkdGgoKSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUxvZ2ljYWxI
ZWlnaHQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTG9naWNhbEhlaWdodCgp
IE9WRVJSSURFOwogCiAgICAgdmlydHVhbCB2b2lkIHBhaW50UmVwbGFjZWQoUGFpbnRJbmZvJiwg
Y29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KSBPVkVSUklERTsKICAgICB2aXJ0dWFsIGJv
b2wgbm9kZUF0UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29u
c3QgSGl0VGVzdExvY2F0aW9uJiwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0
LCBIaXRUZXN0QWN0aW9uKSBPVkVSUklERTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuY3BwCmluZGV4IDRiMTJkN2VmYmQzMzZiZjNjYjQxN2UyZGJlYjA0MjdiNGRk
ZGNjYjQuLmY3NjVjMzhjNGIyN2FjMTBlZDY0YjQ4YzY0YTI2YjczNDAwOTQ2NmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcApAQCAtODYsNyArODYsNyBA
QCB2b2lkIFJlbmRlclJlcGxhY2VkOjpsYXlvdXQoKQogICAgIHNldEhlaWdodChtaW5pbXVtUmVw
bGFjZWRIZWlnaHQoKSk7CiAKICAgICB1cGRhdGVMb2dpY2FsV2lkdGgoKTsKLSAgICBjb21wdXRl
TG9naWNhbEhlaWdodCgpOworICAgIHVwZGF0ZUxvZ2ljYWxIZWlnaHQoKTsKIAogICAgIG1fb3Zl
cmZsb3cuY2xlYXIoKTsKICAgICBhZGRWaXN1YWxFZmZlY3RPdmVyZmxvdygpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclNlYXJjaEZpZWxkLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJTZWFyY2hGaWVsZC5jcHAKaW5kZXggMjcwNGNkYzAz
OGZkZTI4ZWQyYzk0M2Y5ZjNmMzQ3MjM2YWQ0ZGM1My4uNGFkNDU4YWI3NDU5ZWMxYWYwYzQ4Mzkx
YzZlZmI3M2ZkOGZhOTA4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclNlYXJjaEZpZWxkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
U2VhcmNoRmllbGQuY3BwCkBAIC0xNTEsMTMgKzE1MSwxMyBAQCBMYXlvdXRVbml0IFJlbmRlclNl
YXJjaEZpZWxkOjpjb21wdXRlQ29udHJvbEhlaWdodChMYXlvdXRVbml0IGxpbmVIZWlnaHQsIExh
eW91dAogewogICAgIEhUTUxFbGVtZW50KiByZXN1bHRzQnV0dG9uID0gcmVzdWx0c0J1dHRvbkVs
ZW1lbnQoKTsKICAgICBpZiAoUmVuZGVyQm94KiByZXN1bHRzUmVuZGVyZXIgPSByZXN1bHRzQnV0
dG9uID8gcmVzdWx0c0J1dHRvbi0+cmVuZGVyQm94KCkgOiAwKSB7Ci0gICAgICAgIHJlc3VsdHNS
ZW5kZXJlci0+Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAgcmVzdWx0c1JlbmRlcmVy
LT51cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAgIG5vbkNvbnRlbnRIZWlnaHQgPSBtYXgo
bm9uQ29udGVudEhlaWdodCwgcmVzdWx0c1JlbmRlcmVyLT5ib3JkZXJBbmRQYWRkaW5nSGVpZ2h0
KCkgKyByZXN1bHRzUmVuZGVyZXItPm1hcmdpbkhlaWdodCgpKTsKICAgICAgICAgbGluZUhlaWdo
dCA9IG1heChsaW5lSGVpZ2h0LCByZXN1bHRzUmVuZGVyZXItPmhlaWdodCgpKTsKICAgICB9CiAg
ICAgSFRNTEVsZW1lbnQqIGNhbmNlbEJ1dHRvbiA9IGNhbmNlbEJ1dHRvbkVsZW1lbnQoKTsKICAg
ICBpZiAoUmVuZGVyQm94KiBjYW5jZWxSZW5kZXJlciA9IGNhbmNlbEJ1dHRvbiA/IGNhbmNlbEJ1
dHRvbi0+cmVuZGVyQm94KCkgOiAwKSB7Ci0gICAgICAgIGNhbmNlbFJlbmRlcmVyLT5jb21wdXRl
TG9naWNhbEhlaWdodCgpOworICAgICAgICBjYW5jZWxSZW5kZXJlci0+dXBkYXRlTG9naWNhbEhl
aWdodCgpOwogICAgICAgICBub25Db250ZW50SGVpZ2h0ID0gbWF4KG5vbkNvbnRlbnRIZWlnaHQs
IGNhbmNlbFJlbmRlcmVyLT5ib3JkZXJBbmRQYWRkaW5nSGVpZ2h0KCkgKyBjYW5jZWxSZW5kZXJl
ci0+bWFyZ2luSGVpZ2h0KCkpOwogICAgICAgICBsaW5lSGVpZ2h0ID0gbWF4KGxpbmVIZWlnaHQs
IGNhbmNlbFJlbmRlcmVyLT5oZWlnaHQoKSk7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUYWJsZS5jcHAKaW5kZXggZDA2NTZlNDg4ZGVhZmE3NjE0YzdiOWY0YzFlY2E1M2Uw
YmFlNjJhNi4uOWIyNDczMDZhZTY1MjA5MDYxYTlkYTk0MzBkNDVlZGNlZTUwNGQ2YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGUuY3BwCkBAIC00MDcsNyArNDA3LDcgQEAg
dm9pZCBSZW5kZXJUYWJsZTo6bGF5b3V0KCkKICAgICBzZXRMb2dpY2FsSGVpZ2h0KGxvZ2ljYWxI
ZWlnaHQoKSArIGJvcmRlckFuZFBhZGRpbmdCZWZvcmUpOwogCiAgICAgaWYgKCFpc091dE9mRmxv
d1Bvc2l0aW9uZWQoKSkKLSAgICAgICAgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsKKyAgICAgICAg
dXBkYXRlTG9naWNhbEhlaWdodCgpOwogCiAgICAgTGVuZ3RoIGxvZ2ljYWxIZWlnaHRMZW5ndGgg
PSBzdHlsZSgpLT5sb2dpY2FsSGVpZ2h0KCk7CiAgICAgTGF5b3V0VW5pdCBjb21wdXRlZExvZ2lj
YWxIZWlnaHQgPSAwOwpAQCAtNDU5LDcgKzQ1OSw3IEBAIHZvaWQgUmVuZGVyVGFibGU6OmxheW91
dCgpCiAgICAgfQogCiAgICAgaWYgKGlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKQotICAgICAgICBj
b21wdXRlTG9naWNhbEhlaWdodCgpOworICAgICAgICB1cGRhdGVMb2dpY2FsSGVpZ2h0KCk7CiAK
ICAgICAvLyB0YWJsZSBjYW4gYmUgY29udGFpbmluZyBibG9jayBvZiBwb3NpdGlvbmVkIGVsZW1l
bnRzLgogICAgIC8vIEZJWE1FOiBPbmx5IHBhc3MgdHJ1ZSBpZiB3aWR0aCBvciBoZWlnaHQgY2hh
bmdlZC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29u
dHJvbC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGV4dENvbnRyb2wuY3Bw
CmluZGV4IDdkNGE5OGMwZTk1NDYzM2Q3ZTBlZDg1OGJhYWFlYjg3ZTVlNDFjZDAuLmMwZDcyY2Rh
OTE3NTY4OWY2ODQzZDM2MWQxOWRmMjE1ZDMzMDIxZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUZXh0Q29udHJvbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmNwcApAQCAtMTQ0LDcgKzE0NCw3IEBAIGludCBS
ZW5kZXJUZXh0Q29udHJvbDo6c2Nyb2xsYmFyVGhpY2tuZXNzKCkgY29uc3QKICAgICByZXR1cm4g
U2Nyb2xsYmFyVGhlbWU6OnRoZW1lKCktPnNjcm9sbGJhclRoaWNrbmVzcygpOwogfQogCi12b2lk
IFJlbmRlclRleHRDb250cm9sOjpjb21wdXRlTG9naWNhbEhlaWdodCgpCit2b2lkIFJlbmRlclRl
eHRDb250cm9sOjp1cGRhdGVMb2dpY2FsSGVpZ2h0KCkKIHsKICAgICBIVE1MRWxlbWVudCogaW5u
ZXJUZXh0ID0gaW5uZXJUZXh0RWxlbWVudCgpOwogICAgIEFTU0VSVChpbm5lclRleHQpOwpAQCAt
MTU3LDcgKzE1Nyw3IEBAIHZvaWQgUmVuZGVyVGV4dENvbnRyb2w6OmNvbXB1dGVMb2dpY2FsSGVp
Z2h0KCkKICAgICAgICAgICAgIHNldEhlaWdodChoZWlnaHQoKSArIHNjcm9sbGJhclRoaWNrbmVz
cygpKTsKICAgICB9CiAKLSAgICBSZW5kZXJCbG9jazo6Y29tcHV0ZUxvZ2ljYWxIZWlnaHQoKTsK
KyAgICBSZW5kZXJCbG9jazo6dXBkYXRlTG9naWNhbEhlaWdodCgpOwogfQogCiB2b2lkIFJlbmRl
clRleHRDb250cm9sOjpoaXRJbm5lclRleHRFbGVtZW50KEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwg
Y29uc3QgTGF5b3V0UG9pbnQmIHBvaW50SW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBh
Y2N1bXVsYXRlZE9mZnNldCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUZXh0Q29udHJvbC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRD
b250cm9sLmgKaW5kZXggNmQwZTQzYWYxZmVmMmUyZTY3NTg1YjRiNzgxZjljOTg4ZDM5NzQwMC4u
NGZlNGRhNTcxZjE2OGVhYzYyNWM1ZTI3Mjc0N2ExZjNmNjIzODU0MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclRleHRDb250cm9sLmgKQEAgLTYyLDcgKzYyLDcgQEAgcHJv
dGVjdGVkOgogICAgIHZpcnR1YWwgUmVuZGVyU3R5bGUqIHRleHRCYXNlU3R5bGUoKSBjb25zdCA9
IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlRnJvbUVsZW1lbnQoKTsKLSAgICB2aXJ0dWFs
IHZvaWQgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoKSBPVkVSUklERTsKKyAgICB2aXJ0dWFsIHZvaWQg
dXBkYXRlTG9naWNhbEhlaWdodCgpIE9WRVJSSURFOwogICAgIHZpcnR1YWwgUmVuZGVyT2JqZWN0
KiBsYXlvdXRTcGVjaWFsRXhjbHVkZWRDaGlsZChib29sIHJlbGF5b3V0Q2hpbGRyZW4pOwogCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmluZGV4IDQyOGU1
YTA0MDc2NGQ4MjM2OTlkMjQ0NjI2Nzc2YzY2NjY3NzRiMzEuLjE0MWVhNTJiNjQ4M2M4NGNmMjRk
Y2RiZjRlMzQ4ZTQ4NWNhYjg5Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHAKQEAgLTkwLDcgKzkwLDcgQEAgYm9vbCBSZW5kZXJWaWV3OjpoaXRUZXN0KGNvbnN0IEhp
dFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0UmVzdWx0JiByZXN1bHQpCiAgICAgcmV0dXJu
IGxheWVyKCktPmhpdFRlc3QocmVxdWVzdCwgcmVzdWx0KTsKIH0KIAotdm9pZCBSZW5kZXJWaWV3
Ojpjb21wdXRlTG9naWNhbEhlaWdodCgpCit2b2lkIFJlbmRlclZpZXc6OnVwZGF0ZUxvZ2ljYWxI
ZWlnaHQoKQogewogICAgIGlmICghc2hvdWxkVXNlUHJpbnRpbmdMYXlvdXQoKSAmJiBtX2ZyYW1l
VmlldykKICAgICAgICAgc2V0TG9naWNhbEhlaWdodCh2aWV3TG9naWNhbEhlaWdodCgpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5oCmluZGV4IDdkZTU0YTY1YjBiODM0ZGE3Zjg4
YzIyYzEwNWYwNDlmY2FjNjhmYWUuLmU2ZDgzMmI5NzdiYjkyNGY5ODEzNGEyZmJjZDU1NDAyNzFk
MTAyZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuaApAQCAtNTksNyArNTks
NyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgbGF5b3V0KCkgT1ZFUlJJREU7CiAgICAg
dmlydHVhbCB2b2lkIHVwZGF0ZUxvZ2ljYWxXaWR0aCgpIE9WRVJSSURFOwotICAgIHZpcnR1YWwg
dm9pZCBjb21wdXRlTG9naWNhbEhlaWdodCgpIE9WRVJSSURFOworICAgIHZpcnR1YWwgdm9pZCB1
cGRhdGVMb2dpY2FsSGVpZ2h0KCkgT1ZFUlJJREU7CiAgICAgLy8gRklYTUU6IFRoaXMgb3ZlcnJp
ZGUgaXMgbm90IG5lZWRlZCBhbmQgc2hvdWxkIGJlIHJlbW92ZWQKICAgICAvLyBpdCBvbmx5IGV4
aXN0cyB0byBtYWtlIGNvbXB1dGVQcmVmZXJyZWRMb2dpY2FsV2lkdGhzIHB1YmxpYy4KICAgICB2
aXJ0dWFsIHZvaWQgY29tcHV0ZVByZWZlcnJlZExvZ2ljYWxXaWR0aHMoKSBPVkVSUklERTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9i
amVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1JlbmRlclNWR0ZvcmVpZ25P
YmplY3QuY3BwCmluZGV4IGUzYzgwMDhjOThjNGE3YWQ2OGMxMTVkMDBkMmZlNDM2OTk0OGRhMzMu
LmZlMGQ5YTEyYjgxZDNmYWViMGQyYTg2NTI2ZTJlMDVjOGYwYWMzYmYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmNw
cApAQCAtMTEyLDcgKzExMiw3IEBAIHZvaWQgUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6dXBkYXRl
TG9naWNhbFdpZHRoKCkKICAgICBzZXRXaWR0aChzdGF0aWNfY2FzdDxpbnQ+KHJvdW5kZihtX3Zp
ZXdwb3J0LndpZHRoKCkpKSk7CiB9CiAKLXZvaWQgUmVuZGVyU1ZHRm9yZWlnbk9iamVjdDo6Y29t
cHV0ZUxvZ2ljYWxIZWlnaHQoKQordm9pZCBSZW5kZXJTVkdGb3JlaWduT2JqZWN0Ojp1cGRhdGVM
b2dpY2FsSGVpZ2h0KCkKIHsKICAgICAvLyBGSVhNRTogSW52ZXN0aWdhdGUgaW4gc2l6ZSByb3Vu
ZGluZyBpc3N1ZXMKICAgICAvLyBGSVhNRTogUmVtb3ZlIHVubmVjZXNzYXJ5IHJvdW5kaW5nIHdo
ZW4gbGF5b3V0IGlzIG9mZiBpbnRzOiB3ZWJraXQub3JnL2IvNjM2NTYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgKaW5kZXgg
MTMxNGVhMzNiMWE4ZjE0NzM4NmZmZjg1ZDM4NTQxZWM5OWM1NzQ1Ni4uMWYzN2EzZmNmNGRhZmU1
MWFkZWM0MmMxMGFhZDZmMjgwZDEzMThkYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdGb3JlaWduT2JqZWN0LmgKQEAgLTYwLDcgKzYwLDcgQEAg
cHVibGljOgogCiBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCB1cGRhdGVMb2dpY2FsV2lkdGgo
KSBPVkVSUklERTsKLSAgICB2aXJ0dWFsIHZvaWQgY29tcHV0ZUxvZ2ljYWxIZWlnaHQoKSBPVkVS
UklERTsKKyAgICB2aXJ0dWFsIHZvaWQgdXBkYXRlTG9naWNhbEhlaWdodCgpIE9WRVJSSURFOwog
CiAgICAgdmlydHVhbCBjb25zdCBBZmZpbmVUcmFuc2Zvcm0mIGxvY2FsVG9QYXJlbnRUcmFuc2Zv
cm0oKSBjb25zdDsKICAgICB2aXJ0dWFsIEFmZmluZVRyYW5zZm9ybSBsb2NhbFRyYW5zZm9ybSgp
IGNvbnN0IHsgcmV0dXJuIG1fbG9jYWxUcmFuc2Zvcm07IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZHUm9vdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvc3ZnL1JlbmRlclNWR1Jvb3QuY3BwCmluZGV4IDQ2OThlODcwYTNjNzRmMmFmMmVm
ZmIyYWQzY2I3NGFhZjhjNTEwMmEuLjc0NzY3OTI2NjU3ODk0NDk2NGE5YTcwYzM1NTIxYjRkNWIw
YTBmYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvUmVuZGVyU1ZH
Um9vdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9SZW5kZXJTVkdSb290
LmNwcApAQCAtMjMwLDcgKzIzMCw3IEBAIHZvaWQgUmVuZGVyU1ZHUm9vdDo6bGF5b3V0KCkKIAog
ICAgIExheW91dFNpemUgb2xkU2l6ZSA9IHNpemUoKTsKICAgICB1cGRhdGVMb2dpY2FsV2lkdGgo
KTsKLSAgICBjb21wdXRlTG9naWNhbEhlaWdodCgpOworICAgIHVwZGF0ZUxvZ2ljYWxIZWlnaHQo
KTsKICAgICBidWlsZExvY2FsVG9Cb3JkZXJCb3hUcmFuc2Zvcm0oKTsKIAogICAgIFNWR1NWR0Vs
ZW1lbnQqIHN2ZyA9IHN0YXRpY19jYXN0PFNWR1NWR0VsZW1lbnQqPihub2RlKCkpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>