<?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>71476</bug_id>
          
          <creation_ts>2011-11-03 08:50:59 -0700</creation_ts>
          <short_desc>[Qt] Remove Maemo specific code paths</short_desc>
          <delta_ts>2011-11-03 09:17:07 -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="Simon Hausmann">hausmann</reporter>
          <assigned_to name="Simon Hausmann">hausmann</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>495496</commentid>
    <comment_count>0</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-03 08:50:59 -0700</bug_when>
    <thetext>[Qt] Remove Maemo specific code paths</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495499</commentid>
    <comment_count>1</comment_count>
      <attachid>113500</attachid>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-03 08:52:41 -0700</bug_when>
    <thetext>Created attachment 113500
[Qt] Remove Maemo specific code paths</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495502</commentid>
    <comment_count>2</comment_count>
      <attachid>113500</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-11-03 08:55:40 -0700</bug_when>
    <thetext>Comment on attachment 113500
[Qt] Remove Maemo specific code paths

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>495518</commentid>
    <comment_count>3</comment_count>
    <who name="Simon Hausmann">hausmann</who>
    <bug_when>2011-11-03 09:17:07 -0700</bug_when>
    <thetext>Committed r99202: &lt;http://trac.webkit.org/changeset/99202&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>113500</attachid>
            <date>2011-11-03 08:52:41 -0700</date>
            <delta_ts>2011-11-03 08:55:40 -0700</delta_ts>
            <desc>[Qt] Remove Maemo specific code paths</desc>
            <filename>bug-71476-20111103165240.patch</filename>
            <type>text/plain</type>
            <size>45166</size>
            <attacher name="Simon Hausmann">hausmann</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTkxOTYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiOTM2MmJiNWEzNGI1M2I0
YTU4NDljM2JjZjVkMWViNmVkYTM3MzQ1Li5lOWY4Y2NjZTdkNmFlMTE2ZmYzOGU4MWYxMjlhYmY1
MDU2ODJhZjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMTEtMDMgIFNpbW9u
IEhhdXNtYW5uICA8c2ltb24uaGF1c21hbm5Abm9raWEuY29tPgorCisgICAgICAgIFtRdF0gUmVt
b3ZlIE1hZW1vIHNwZWNpZmljIGNvZGUgcGF0aHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTcxNDc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLiAoT09QUyEpCisKKyAgICAgICAgKiBX
ZWJDb3JlLnByaToKKyAgICAgICAgKiBmZWF0dXJlcy5wcmk6CisgICAgICAgICogcGx1Z2lucy9Q
bHVnaW5QYWNrYWdlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlBsdWdpblBhY2thZ2U6OmRldGVy
bWluZVF1aXJrcyk6CisgICAgICAgICogcGx1Z2lucy9QbHVnaW5WaWV3LmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlBsdWdpblZpZXc6OnNldFZhbHVlKToKKyAgICAgICAgKiBwbHVnaW5zL1BsdWdp
blZpZXcuaDoKKyAgICAgICAgKiBwbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpQbHVnaW5WaWV3Ojp1cGRhdGVQbHVnaW5XaWRnZXQpOgorICAgICAgICAoV2Vi
Q29yZTo6UGx1Z2luVmlldzo6cGFpbnQpOgorICAgICAgICAoV2ViQ29yZTo6UGx1Z2luVmlldzo6
cGxhdGZvcm1HZXRWYWx1ZVN0YXRpYyk6CisKIDIwMTEtMTEtMDMgIEZhZHkgU2FtdWVsICA8ZnNh
bXVlbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmVtb3ZpbmcgbGluZSBpbiBjb21wdXRlVmll
d3BvcnRBdHRyaWJ1dGVzIHRoYXQgZW5mb3JjZXMgYSBtaW5pbXVtIHNjYWxlIGZhY3RvciB0byBu
ZXZlciBhbGxvdyB6b29taW5nIG91dCBtb3JlIHRoYW4gdmlld3BvcnQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKaW5k
ZXggMGVkMDQzMzI3ZTMxYWE1MTMzYTQ5MWI3YmNkMDI2YTk4NzI5ZDkyYi4uMjA5ZmE5OGY5ZjU2
YjU2MGU0MmYxYmRiZTY4NjQ0YjA1YTVkYmEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
OSBAQAorMjAxMS0xMS0wMyAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5j
b20+CisKKyAgICAgICAgW1F0XSBSZW1vdmUgTWFlbW8gc3BlY2lmaWMgY29kZSBwYXRocworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE0NzYKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEFwaS9xd2VicGFn
ZS5jcHA6CisgICAgICAgIChRV2ViUGFnZTo6dXNlckFnZW50Rm9yVXJsKToKKyAgICAgICAgKiBB
cGkvcXdlYnZpZXcuY3BwOgorICAgICAgICAoUVdlYlZpZXc6OlFXZWJWaWV3KToKKyAgICAgICAg
KiBRdFdlYktpdC5wcm86CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hyb21lQ2xpZW50UXQ6OmNyZWF0ZVNlbGVjdFBvcHVw
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFZGl0b3JDbGllbnRRdDo6c2V0SW5wdXRNZXRob2RTdGF0ZSk6CisgICAgICAg
ICogV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZUxvYWRlckNsaWVudFF0OjpjcmVhdGVQbHVnaW4pOgorICAgICAgICAqIFdlYkNv
cmVTdXBwb3J0L1F0TWFlbW9XZWJQb3B1cC5jcHA6IFJlbW92ZWQuCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvUXRNYWVtb1dlYlBvcHVwLmg6IFJlbW92ZWQuCisgICAgICAgICogdGVzdHMvcWdy
YXBoaWNzd2Vidmlldy90c3RfcWdyYXBoaWNzd2Vidmlldy5jcHA6CisgICAgICAgICh0c3RfUUdy
YXBoaWNzV2ViVmlldzo6Zm9jdXNJbnB1dFR5cGVzKToKKyAgICAgICAgKiB0ZXN0cy9xd2ViZnJh
bWUvdHN0X3F3ZWJmcmFtZS5jcHA6CisgICAgICAgICogdGVzdHMvcXdlYnZpZXcvdHN0X3F3ZWJ2
aWV3LmNwcDoKKyAgICAgICAgKHRzdF9RV2ViVmlldzo6Zm9jdXNJbnB1dFR5cGVzKToKKwogMjAx
MS0xMS0wMyAgSmVzdXMgU2FuY2hlei1QYWxlbmNpYSAgPGplc3VzQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgUmV2aWV3ZWQgYnkgS2VubmV0aCBSb2hkZSBDaHJpc3RpYW5zZW4uCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnByaSBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJp
CmluZGV4IGFiYjE0M2E1ZjdlYzYwYmE3NTgyODc3ZGVhNmI2YmYwMzg0ZWVlYjAuLmY3YzBhYzNi
OTY5MmI2OTk0Yzk5ZDk5OWFlNzk2ZDFhNmMyN2UwNzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJpCkBAIC0xNjMs
MTIgKzE2Myw2IEBAIGNvbnRhaW5zKERFRklORVMsIEVOQUJMRV9ORVRTQ0FQRV9QTFVHSU5fQVBJ
PTEpIHsKICAgICAgICAgICAgICAgICBDT05GSUcgKz0geDExCiAgICAgICAgICAgICAgICAgTElC
UyArPSAtbFhyZW5kZXIKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIG1hZW1vNSB7Ci0gICAg
ICAgICAgICAgICAgREVGSU5FUyArPSBNT1pfUExBVEZPUk1fTUFFTU89NQotICAgICAgICAgICAg
fQotICAgICAgICAgICAgY29udGFpbnMoREVGSU5FUywgUV9XU19NQUVNT182KSB7Ci0gICAgICAg
ICAgICAgICAgREVGSU5FUyArPSBNT1pfUExBVEZPUk1fTUFFTU89NgotICAgICAgICAgICAgfQog
ICAgICAgICAgICAgREVGSU5FUyArPSBYUF9VTklYCiAgICAgICAgICAgICBERUZJTkVTICs9IEVO
QUJMRV9ORVRTQ0FQRV9QTFVHSU5fTUVUQURBVEFfQ0FDSEU9MQogICAgICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9mZWF0dXJlcy5wcmkgYi9Tb3VyY2UvV2ViQ29yZS9mZWF0dXJl
cy5wcmkKaW5kZXggM2Q3NmZlNzEwOTA5ZmRmMmY2MGZlNmEzNjQwY2ZjNGU5MjQ3ZjY5My4uMmFm
MGJlYzU1YzMwYjc4MDVhODk0ZDM2MmQyNGU2M2I2MzgwYTIxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZmVhdHVyZXMucHJpCisrKyBiL1NvdXJjZS9XZWJDb3JlL2ZlYXR1cmVzLnByaQpA
QCAtMTM0LDE1ICsxMzQsNiBAQCBjb250YWlucyhNT0JJTElUWV9DT05GSUcsIHNlbnNvcnMpIHsK
ICAgIE1PQklMSVRZICo9IHNlbnNvcnMKIH0KIAotIyBzeXN0ZW1pbmZvIHN1cHBvcnQgaWYgUXRN
b2JpbGl0eSBzeXN0ZW1pbmZvIG1vZHVsZSBleGlzdHMsIGJ1dCBvbmx5IGZvciBtYWVtbyBhbmQg
bWVlZ28KLW1hZW1vNXxtYWVtbzYgewotICAgICFjb250YWlucyhERUZJTkVTLCBXVEZfVVNFX1FU
X01PQklMSVRZX1NZU1RFTUlORk89LikgewotICAgICAgICBjb250YWlucyhNT0JJTElUWV9DT05G
SUcsIHN5c3RlbWluZm8pIHsKLSAgICAgICAgICAgIERFRklORVMgKz0gV1RGX1VTRV9RVF9NT0JJ
TElUWV9TWVNURU1JTkZPPTEKLSAgICAgICAgfQotICAgIH0KLX0KLQogIWNvbnRhaW5zKERFRklO
RVMsIEVOQUJMRV9UT1VDSF9FVkVOVFM9Lik6IERFRklORVMgKz0gRU5BQkxFX1RPVUNIX0VWRU5U
Uz0xCiAhY29udGFpbnMoREVGSU5FUywgRU5BQkxFX0dFU1RVUkVfRVZFTlRTPS4pOiBERUZJTkVT
ICs9IEVOQUJMRV9HRVNUVVJFX0VWRU5UUz0xCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdp
blBhY2thZ2UuY3BwCmluZGV4IDVhNDhlNWMyZWUwZGVkNzY2ZTRmZWY3NDRlNDkwZmRiZDQ5ZDJh
NTcuLjc3MWRiNWM4MmYwNjM3MTM4NTVkOGY4ZDcxYjAxNWNiNmY1NTU4NGMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luUGFja2FnZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGx1Z2lucy9QbHVnaW5QYWNrYWdlLmNwcApAQCAtMjE5LDEzICsyMTksNiBAQCB2b2lk
IFBsdWdpblBhY2thZ2U6OmRldGVybWluZVF1aXJrcyhjb25zdCBTdHJpbmcmIG1pbWVUeXBlKQog
ICAgICAgICBtX3F1aXJrcy5hZGQoUGx1Z2luUXVpcmtUaHJvdHRsZVdNVXNlclBsdXNPbmVNZXNz
YWdlcyk7CiAgICAgICAgIG1fcXVpcmtzLmFkZChQbHVnaW5RdWlya0ZsYXNoVVJMTm90aWZ5QnVn
KTsKICAgICB9Ci0KLSNpZiBkZWZpbmVkKFFfV1NfTUFFTU9fNSkgfHwgZGVmaW5lZChRX1dTX01B
RU1PXzYpCi0gICAgLy8gUGFzc2luZyBhIDMyLWJpdCBkZXB0aCBwaXhtYXAgdG8gTlBBUEkgcGx1
Z2lucyBpcyB0b28gaW5lZmZpY2llbnQuIEluc3RlYWQsIHBhc3MgYSBYIFBpeG1hcAotICAgIC8v
IHRoYXQgaGFzIHNhbWUgZGVwdGggYXMgdGhlIHNjcmVlbiBkZXB0aCBzaW5jZSBncmFwaGljcyBv
cGVyYXRpb25zIGFyZSBvcHRpbWl6ZWQKLSAgICAvLyBmb3IgdGhpcyBkZXB0aC4KLSAgICBtX3F1
aXJrcy5hZGQoUGx1Z2luUXVpcmtSZXF1aXJlc0RlZmF1bHRTY3JlZW5EZXB0aCk7Ci0jZW5kaWYK
IH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL1BsdWdpblZp
ZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmNwcAppbmRleCA0ZGFi
NjlkODM4MTgwY2FlODAwMzAwZWI3NWQ3ODU4YjQ4MTJkYzdhLi44MWJiY2MyODNlZTlmYjQ5ODE4
NTQwODA1MjZkMTUyNzJjNzE0ODVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5z
L1BsdWdpblZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5j
cHAKQEAgLTY3NSwxMiArNjc1LDYgQEAgTlBFcnJvciBQbHVnaW5WaWV3OjpzZXRWYWx1ZShOUFBW
YXJpYWJsZSB2YXJpYWJsZSwgdm9pZCogdmFsdWUpCiAgICAgfQogI2VuZGlmIC8vIGRlZmluZWQo
WFBfTUFDT1NYKQogCi0jaWYgUExBVEZPUk0oUVQpICYmIGRlZmluZWQoTU9aX1BMQVRGT1JNX01B
RU1PKSAmJiAoTU9aX1BMQVRGT1JNX01BRU1PID49IDUpCi0gICAgY2FzZSBOUFBWcGx1Z2luV2lu
ZG93bGVzc0xvY2FsQm9vbDoKLSAgICAgICAgbV9yZW5kZXJUb0ltYWdlID0gdHJ1ZTsKLSAgICAg
ICAgcmV0dXJuIE5QRVJSX05PX0VSUk9SOwotI2VuZGlmCi0KICAgICBkZWZhdWx0OgogICAgICAg
ICBub3RJbXBsZW1lbnRlZCgpOwogICAgICAgICByZXR1cm4gTlBFUlJfR0VORVJJQ19FUlJPUjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvUGx1Z2luVmlldy5oIGIvU291cmNl
L1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKaW5kZXggYjY0YjZjMjE1N2QzYWI4ZTQ2MTI0
ZmUyMDk5N2M2ZWE0OGY2YWYxYS4uNDUzYWNiZGQ3YjI1YmUwNmU0MDBlYjI4NGZhMjE2ZDQ0ZjUy
NmNlZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9QbHVnaW5WaWV3LmgKQEAgLTQxOSwxMSArNDE5LDYg
QEAgcHJpdmF0ZToKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oUVQpIAotI2lmIGRlZmluZWQoTU9a
X1BMQVRGT1JNX01BRU1PKSAmJiAoTU9aX1BMQVRGT1JNX01BRU1PID49IDUpCi0gICAgICAgIFFJ
bWFnZSBtX2ltYWdlOwotICAgICAgICBib29sIG1fcmVuZGVyVG9JbWFnZTsKLSAgICAgICAgdm9p
ZCBwYWludFVzaW5nSW1hZ2VTdXJmYWNlRXh0ZW5zaW9uKFFQYWludGVyKiBwYWludGVyLCBjb25z
dCBJbnRSZWN0JiBleHBvc2VkUmVjdCk7Ci0jZW5kaWYKICNpZiBkZWZpbmVkKFhQX1VOSVgpICYm
IEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgICAgICB2b2lkIHBhaW50VXNpbmdYUGl4
bWFwKFFQYWludGVyKiBwYWludGVyLCBjb25zdCBRUmVjdCAmZXhwb3NlZFJlY3QpOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbHVnaW5zL3F0L1BsdWdpblZpZXdRdC5jcHAKaW5kZXggYTcwZmM0
ZGMxYjY1Y2FiMmEyYzk1MjY2MWNmZDY0YmUwOTQwYjBjZC4uMDgyOWFjNjE0YWUyZTA3YjM2N2Yx
M2QyYjYzNjc1MjVhZDQwMTJiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGx1Z2lucy9x
dC9QbHVnaW5WaWV3UXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsdWdpbnMvcXQvUGx1Z2lu
Vmlld1F0LmNwcApAQCAtMTUyLDIwICsxNTIsMTIgQEAgdm9pZCBQbHVnaW5WaWV3Ojp1cGRhdGVQ
bHVnaW5XaWRnZXQoKQogICAgICAgICBzaG93KCk7CiAKICAgICBpZiAoIW1faXNXaW5kb3dlZCAm
JiBtX3dpbmRvd1JlY3Quc2l6ZSgpICE9IG9sZFdpbmRvd1JlY3Quc2l6ZSgpKSB7Ci0jaWYgZGVm
aW5lZChNT1pfUExBVEZPUk1fTUFFTU8pICYmIChNT1pfUExBVEZPUk1fTUFFTU8gPj0gNSkKLSAg
ICAgICAgLy8gT24gTWFlbW81LCBGbGFzaCBhbHdheXMgcmVuZGVycyB0byAxNi1iaXQgYnVmZmVy
Ci0gICAgICAgIGlmIChtX3JlbmRlclRvSW1hZ2UpCi0gICAgICAgICAgICBtX2ltYWdlID0gUUlt
YWdlKG1fd2luZG93UmVjdC53aWR0aCgpLCBtX3dpbmRvd1JlY3QuaGVpZ2h0KCksIFFJbWFnZTo6
Rm9ybWF0X1JHQjE2KTsKLSAgICAgICAgZWxzZQotI2VuZGlmCi0gICAgICAgIHsKLSAgICAgICAg
ICAgIGlmIChtX2RyYXdhYmxlKQotICAgICAgICAgICAgICAgIFhGcmVlUGl4bWFwKFFYMTFJbmZv
OjpkaXNwbGF5KCksIG1fZHJhd2FibGUpOworICAgICAgICBpZiAobV9kcmF3YWJsZSkKKyAgICAg
ICAgICAgIFhGcmVlUGl4bWFwKFFYMTFJbmZvOjpkaXNwbGF5KCksIG1fZHJhd2FibGUpOwogCi0g
ICAgICAgICAgICBtX2RyYXdhYmxlID0gWENyZWF0ZVBpeG1hcChRWDExSW5mbzo6ZGlzcGxheSgp
LCBRWDExSW5mbzo6YXBwUm9vdFdpbmRvdygpLCBtX3dpbmRvd1JlY3Qud2lkdGgoKSwgbV93aW5k
b3dSZWN0LmhlaWdodCgpLCAKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICgoTlBTZXRXaW5kb3dDYWxsYmFja1N0cnVjdCopbV9ucFdpbmRvdy53c19pbmZvKS0+ZGVwdGgp
OwotICAgICAgICAgICAgUUFwcGxpY2F0aW9uOjpzeW5jWCgpOyAvLyBtYWtlIHN1cmUgdGhhdCB0
aGUgc2VydmVyIGtub3dzIGFib3V0IHRoZSBEcmF3YWJsZQotICAgICAgICB9CisgICAgICAgIG1f
ZHJhd2FibGUgPSBYQ3JlYXRlUGl4bWFwKFFYMTFJbmZvOjpkaXNwbGF5KCksIFFYMTFJbmZvOjph
cHBSb290V2luZG93KCksIG1fd2luZG93UmVjdC53aWR0aCgpLCBtX3dpbmRvd1JlY3QuaGVpZ2h0
KCksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoTlBTZXRXaW5kb3dDYWxs
YmFja1N0cnVjdCopbV9ucFdpbmRvdy53c19pbmZvKS0+ZGVwdGgpOworICAgICAgICBRQXBwbGlj
YXRpb246OnN5bmNYKCk7IC8vIG1ha2Ugc3VyZSB0aGF0IHRoZSBzZXJ2ZXIga25vd3MgYWJvdXQg
dGhlIERyYXdhYmxlCiAgICAgfQogCiAgICAgLy8gZG8gbm90IGNhbGwgc2V0TlBXaW5kb3dJZk5l
ZWRlZCBpbW1lZGlhdGVseSwgd2lsbCBiZSBjYWxsZWQgb24gcGFpbnQoKQpAQCAtMjE0LDcxICsy
MDYsNiBAQCB2b2lkIFBsdWdpblZpZXc6OmhpZGUoKQogICAgIFdpZGdldDo6aGlkZSgpOwogfQog
Ci0jaWYgZGVmaW5lZChNT1pfUExBVEZPUk1fTUFFTU8pICYmIChNT1pfUExBVEZPUk1fTUFFTU8g
Pj0gNSkKLXZvaWQgUGx1Z2luVmlldzo6cGFpbnRVc2luZ0ltYWdlU3VyZmFjZUV4dGVuc2lvbihR
UGFpbnRlciogcGFpbnRlciwgY29uc3QgSW50UmVjdCYgZXhwb3NlZFJlY3QpCi17Ci0gICAgTlBJ
bWFnZUV4cG9zZSBpbWFnZUV4cG9zZTsKLSAgICBRUG9pbnQgb2Zmc2V0OwotICAgIFFXZWJQYWdl
Q2xpZW50KiBjbGllbnQgPSBtX3BhcmVudEZyYW1lLT52aWV3KCktPmhvc3RXaW5kb3coKS0+cGxh
dGZvcm1QYWdlQ2xpZW50KCk7Ci0gICAgY29uc3QgYm9vbCBzdXJmYWNlSGFzVW50cmFuc2Zvcm1l
ZENvbnRlbnRzID0gY2xpZW50ICYmIHFvYmplY3RfY2FzdDxRV2lkZ2V0Kj4oY2xpZW50LT5wbHVn
aW5QYXJlbnQoKSk7Ci0KLSAgICBRUGFpbnREZXZpY2UqIHN1cmZhY2UgPSAgUVBhaW50ZXI6OnJl
ZGlyZWN0ZWQocGFpbnRlci0+ZGV2aWNlKCksICZvZmZzZXQpOwotCi0gICAgLy8gSWYgdGhlIHN1
cmZhY2UgaXMgYSBRSW1hZ2UsIHdlIGNhbiByZW5kZXIgZGlyZWN0bHkgaW50byBpdAotICAgIGlm
IChzdXJmYWNlSGFzVW50cmFuc2Zvcm1lZENvbnRlbnRzICYmIHN1cmZhY2UgJiYgc3VyZmFjZS0+
ZGV2VHlwZSgpID09IFFJbnRlcm5hbDo6SW1hZ2UpIHsKLSAgICAgICAgUUltYWdlKiBpbWFnZSA9
IHN0YXRpY19jYXN0PFFJbWFnZSo+KHN1cmZhY2UpOwotICAgICAgICBvZmZzZXQgPSAtb2Zmc2V0
OyAvLyBuZWdhdGluZyB0aGUgb2Zmc2V0IGdpdmVzIHVzIHRoZSBvZmZzZXQgb2YgdGhlIHZpZXcg
d2l0aGluIHRoZSBzdXJmYWNlCi0gICAgICAgIGltYWdlRXhwb3NlLmRhdGEgPSByZWludGVycHJl
dF9jYXN0PGNoYXIqPihpbWFnZS0+Yml0cygpKTsKLSAgICAgICAgaW1hZ2VFeHBvc2UuZGF0YVNp
emUud2lkdGggPSBpbWFnZS0+d2lkdGgoKTsKLSAgICAgICAgaW1hZ2VFeHBvc2UuZGF0YVNpemUu
aGVpZ2h0ID0gaW1hZ2UtPmhlaWdodCgpOwotICAgICAgICBpbWFnZUV4cG9zZS5zdHJpZGUgPSBp
bWFnZS0+Ynl0ZXNQZXJMaW5lKCk7Ci0gICAgICAgIGltYWdlRXhwb3NlLmRlcHRoID0gaW1hZ2Ut
PmRlcHRoKCk7IC8vIHRoaXMgaXMgZ3VhcmFudGVlZCB0byBiZSAxNiBvbiBNYWVtbzUKLSAgICAg
ICAgaW1hZ2VFeHBvc2UudHJhbnNsYXRlWCA9IG9mZnNldC54KCkgKyBtX3dpbmRvd1JlY3QueCgp
OwotICAgICAgICBpbWFnZUV4cG9zZS50cmFuc2xhdGVZID0gb2Zmc2V0LnkoKSArIG1fd2luZG93
UmVjdC55KCk7Ci0gICAgICAgIGltYWdlRXhwb3NlLnNjYWxlWCA9IDE7Ci0gICAgICAgIGltYWdl
RXhwb3NlLnNjYWxlWSA9IDE7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgaWYgKG1faXNUcmFuc3Bh
cmVudCkgewotICAgICAgICAgICAgLy8gT24gTWFlbW81LCBGbGFzaCBleHBlY3RzIHRoZSBidWZm
ZXIgdG8gY29udGFpbiB0aGUgY29udGVudHMgdGhhdCBhcmUgYmVsb3cgaXQuCi0gICAgICAgICAg
ICAvLyBXZSBkb24ndCBzdXBwb3J0IHRyYW5zcGFyZW5jeSBmb3Igbm9uLXJhc3RlciBncmFwaGlj
c3N5c3RlbSwgc28gY2xlYW4gdGhlIGltYWdlIAotICAgICAgICAgICAgLy8gYmVmb3JlIGdpdmlu
ZyB0byBGbGFzaC4KLSAgICAgICAgICAgIFFQYWludGVyIGltYWdlUGFpbnRlcigmbV9pbWFnZSk7
Ci0gICAgICAgICAgICBpbWFnZVBhaW50ZXIuZmlsbFJlY3QoZXhwb3NlZFJlY3QsIFF0Ojp3aGl0
ZSk7Ci0gICAgICAgIH0KLQotICAgICAgICBpbWFnZUV4cG9zZS5kYXRhID0gcmVpbnRlcnByZXRf
Y2FzdDxjaGFyKj4obV9pbWFnZS5iaXRzKCkpOwotICAgICAgICBpbWFnZUV4cG9zZS5kYXRhU2l6
ZS53aWR0aCA9IG1faW1hZ2Uud2lkdGgoKTsKLSAgICAgICAgaW1hZ2VFeHBvc2UuZGF0YVNpemUu
aGVpZ2h0ID0gbV9pbWFnZS5oZWlnaHQoKTsKLSAgICAgICAgaW1hZ2VFeHBvc2Uuc3RyaWRlID0g
bV9pbWFnZS5ieXRlc1BlckxpbmUoKTsKLSAgICAgICAgaW1hZ2VFeHBvc2UuZGVwdGggPSBtX2lt
YWdlLmRlcHRoKCk7Ci0gICAgICAgIGltYWdlRXhwb3NlLnRyYW5zbGF0ZVggPSAwOwotICAgICAg
ICBpbWFnZUV4cG9zZS50cmFuc2xhdGVZID0gMDsKLSAgICAgICAgaW1hZ2VFeHBvc2Uuc2NhbGVY
ID0gMTsKLSAgICAgICAgaW1hZ2VFeHBvc2Uuc2NhbGVZID0gMTsKLSAgICB9Ci0gICAgaW1hZ2VF
eHBvc2UueCA9IGV4cG9zZWRSZWN0LngoKTsKLSAgICBpbWFnZUV4cG9zZS55ID0gZXhwb3NlZFJl
Y3QueSgpOwotICAgIGltYWdlRXhwb3NlLndpZHRoID0gZXhwb3NlZFJlY3Qud2lkdGgoKTsKLSAg
ICBpbWFnZUV4cG9zZS5oZWlnaHQgPSBleHBvc2VkUmVjdC5oZWlnaHQoKTsKLQotICAgIFhFdmVu
dCB4ZXZlbnQ7Ci0gICAgbWVtc2V0KCZ4ZXZlbnQsIDAsIHNpemVvZihYRXZlbnQpKTsKLSAgICBY
R3JhcGhpY3NFeHBvc2VFdmVudCYgZXhwb3NlRXZlbnQgPSB4ZXZlbnQueGdyYXBoaWNzZXhwb3Nl
OwotICAgIGV4cG9zZUV2ZW50LnR5cGUgPSBHcmFwaGljc0V4cG9zZTsKLSAgICBleHBvc2VFdmVu
dC5kaXNwbGF5ID0gMDsKLSAgICBleHBvc2VFdmVudC5kcmF3YWJsZSA9IHJlaW50ZXJwcmV0X2Nh
c3Q8WElEPigmaW1hZ2VFeHBvc2UpOwotICAgIGV4cG9zZUV2ZW50LnggPSBleHBvc2VkUmVjdC54
KCk7Ci0gICAgZXhwb3NlRXZlbnQueSA9IGV4cG9zZWRSZWN0LnkoKTsKLSAgICBleHBvc2VFdmVu
dC53aWR0aCA9IGV4cG9zZWRSZWN0LndpZHRoKCk7Ci0gICAgZXhwb3NlRXZlbnQuaGVpZ2h0ID0g
ZXhwb3NlZFJlY3QuaGVpZ2h0KCk7Ci0KLSAgICBkaXNwYXRjaE5QRXZlbnQoeGV2ZW50KTsKLQot
ICAgIGlmICghc3VyZmFjZUhhc1VudHJhbnNmb3JtZWRDb250ZW50cyB8fCAhc3VyZmFjZSB8fCBz
dXJmYWNlLT5kZXZUeXBlKCkgIT0gUUludGVybmFsOjpJbWFnZSkKLSAgICAgICAgcGFpbnRlci0+
ZHJhd0ltYWdlKFFQb2ludChmcmFtZVJlY3QoKS54KCkgKyBleHBvc2VkUmVjdC54KCksIGZyYW1l
UmVjdCgpLnkoKSArIGV4cG9zZWRSZWN0LnkoKSksIG1faW1hZ2UsIGV4cG9zZWRSZWN0KTsKLX0K
LSNlbmRpZgotCiB2b2lkIFBsdWdpblZpZXc6OnBhaW50VXNpbmdYUGl4bWFwKFFQYWludGVyKiBw
YWludGVyLCBjb25zdCBRUmVjdCAmZXhwb3NlZFJlY3QpCiB7CiAgICAgUVBpeG1hcCBxdERyYXdh
YmxlID0gUVBpeG1hcDo6ZnJvbVgxMVBpeG1hcChtX2RyYXdhYmxlLCBRUGl4bWFwOjpFeHBsaWNp
dGx5U2hhcmVkKTsKQEAgLTM2MSwxMSArMjg4LDcgQEAgdm9pZCBQbHVnaW5WaWV3OjpwYWludChH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCiAgICAgICAgIHJl
dHVybjsKICNlbmRpZgogCi0gICAgaWYgKCFtX2RyYXdhYmxlCi0jaWYgZGVmaW5lZChNT1pfUExB
VEZPUk1fTUFFTU8pICYmIChNT1pfUExBVEZPUk1fTUFFTU8gPj0gNSkKLSAgICAgICAgJiYgbV9p
bWFnZS5pc051bGwoKQotI2VuZGlmCi0gICAgICAgKQorICAgIGlmICghbV9kcmF3YWJsZSkKICAg
ICAgICAgcmV0dXJuOwogCiAgICAgUVBhaW50ZXIqIHBhaW50ZXIgPSBjb250ZXh0LT5wbGF0Zm9y
bUNvbnRleHQoKTsKQEAgLTM3MywxMyArMjk2LDYgQEAgdm9pZCBQbHVnaW5WaWV3OjpwYWludChH
cmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEludFJlY3QmIHJlY3QpCiAgICAgZXhwb3Nl
ZFJlY3QuaW50ZXJzZWN0KGZyYW1lUmVjdCgpKTsKICAgICBleHBvc2VkUmVjdC5tb3ZlKC1mcmFt
ZVJlY3QoKS54KCksIC1mcmFtZVJlY3QoKS55KCkpOwogCi0jaWYgZGVmaW5lZChNT1pfUExBVEZP
Uk1fTUFFTU8pICYmIChNT1pfUExBVEZPUk1fTUFFTU8gPj0gNSkKLSAgICBpZiAoIW1faW1hZ2Uu
aXNOdWxsKCkpIHsKLSAgICAgICAgcGFpbnRVc2luZ0ltYWdlU3VyZmFjZUV4dGVuc2lvbihwYWlu
dGVyLCBleHBvc2VkUmVjdCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0jZW5kaWYKLQogICAg
IHBhaW50ZXItPnRyYW5zbGF0ZShmcmFtZVJlY3QoKS54KCksIGZyYW1lUmVjdCgpLnkoKSk7CiAg
ICAgcGFpbnRVc2luZ1hQaXhtYXAocGFpbnRlciwgZXhwb3NlZFJlY3QpOwogICAgIHBhaW50ZXIt
PnRyYW5zbGF0ZSgtZnJhbWVSZWN0KCkueCgpLCAtZnJhbWVSZWN0KCkueSgpKTsKQEAgLTc3NCwx
MyArNjkwLDYgQEAgYm9vbCBQbHVnaW5WaWV3OjpwbGF0Zm9ybUdldFZhbHVlU3RhdGljKE5QTlZh
cmlhYmxlIHZhcmlhYmxlLCB2b2lkKiB2YWx1ZSwgTlBFcnIKICAgICAgICAgKnJlc3VsdCA9IE5Q
RVJSX05PX0VSUk9SOwogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotI2lmIGRlZmluZWQoTU9aX1BM
QVRGT1JNX01BRU1PKSAmJiAoTU9aX1BMQVRGT1JNX01BRU1PID49IDUpCi0gICAgY2FzZSBOUE5W
U3VwcG9ydHNXaW5kb3dsZXNzTG9jYWw6Ci0gICAgICAgICpzdGF0aWNfY2FzdDxOUEJvb2wqPih2
YWx1ZSkgPSB0cnVlOwotICAgICAgICAqcmVzdWx0ID0gTlBFUlJfTk9fRVJST1I7Ci0gICAgICAg
IHJldHVybiB0cnVlOwotI2VuZGlmCi0KICAgICBkZWZhdWx0OgogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC5wcmkgYi9Tb3VyY2UvV2ViS2l0
LnByaQppbmRleCA5ZGM1OWRmYzQ3OGMzOTk2ZmY1MzM5NWEwNzljYjcxMTQzNTBkYjEwLi45NWVj
NGJhNGY2ZmVhNjEyMmFkOGIyYmU0ZDdhNTdlZDIzMjNmOWMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0LnByaQorKysgYi9Tb3VyY2UvV2ViS2l0LnByaQpAQCAtMTAzLDE1ICsxMDMsOCBAQCBp
c0VtcHR5KCQkKFNCT1hfRFBLR19JTlNUX0FSQ0gpKTpleGlzdHMoL3Vzci9iaW4vbGQuZ29sZCkg
ewogfQogCiAKLSMjIyMjIERlZmF1bHRzIGZvciBzb21lIG1vYmlsZSBwbGF0Zm9ybXMKLW1hZW1v
NXxtYWVtbzYgewotICAgIENPTkZJRyArPSBkaXNhYmxlX3VpdG9vbHMKLSAgICBDT05GSUcgKz0g
ZW5hYmxlX2Zhc3RfbW9iaWxlX3Njcm9sbGluZwotICAgIENPTkZJRyArPSB1c2VfcXRfbW9iaWxl
X3RoZW1lCi0gICAgbWFlbW82OiBDT05GSUcgKz0gaW5jbHVkZV93ZWJpbnNwZWN0b3IKLX0gZWxz
ZSB7Ci0gICAgQ09ORklHICs9IGluY2x1ZGVfd2ViaW5zcGVjdG9yCi19CisjIyMjIyBEZWZhdWx0
cworQ09ORklHICs9IGluY2x1ZGVfd2ViaW5zcGVjdG9yCiAKICpzaDQqIHsKICAgICBDT05GSUcg
Kz0gZGlzYWJsZV91aXRvb2xzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vi
cGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKaW5kZXggZWYwMjJm
ZTVjZmU0NzQyYjc5OGNmMTQ1OGQ3OGI1ZjQwYmUzYWRmYS4uNDk4OGI0OGZlNmM4ZjExYjQ3MTkz
ODAzODczMDkzZWIxNmU3Mjk4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9BcGkvcXdl
YnBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcApAQCAtMzcx
OSw4ICszNzE5LDYgQEAgUVdlYlBsdWdpbkZhY3RvcnkgKlFXZWJQYWdlOjpwbHVnaW5GYWN0b3J5
KCkgY29uc3QKIAogICAgICJNb3ppbGxhLzUuMCAoJVBsYXRmb3JtJSVTZWN1cml0eSUlU3VicGxh
dGZvcm0lKSBBcHBsZVdlYktpdC8lV2ViS2l0VmVyc2lvbiUgKEtIVE1MLCBsaWtlIEdlY2tvKSAl
QXBwVmVyc2lvbiBTYWZhcmkvJVdlYktpdFZlcnNpb24lIgogCi0gICAgT24gbW9iaWxlIHBsYXRm
b3JtcyBzdWNoIGFzIFN5bWJpYW4gUzYwIGFuZCBNYWVtbywgIk1vYmlsZSBTYWZhcmkiIGlzIHVz
ZWQgaW5zdGVhZCBvZiAiU2FmYXJpIi4KLQogICAgIEluIHRoaXMgc3RyaW5nIHRoZSBmb2xsb3dp
bmcgdmFsdWVzIGFyZSByZXBsYWNlZCBhdCBydW4tdGltZToKICAgICBcbGlzdAogICAgIFxvICVQ
bGF0Zm9ybSUgZXhwYW5kcyB0byB0aGUgd2luZG93aW5nIHN5c3RlbSBmb2xsb3dlZCBieSAiOyAi
IGlmIGl0IGlzIG5vdCBXaW5kb3dzIChlLmcuICJYMTE7ICIpLgpAQCAtMzc0NywxMCArMzc0NSw2
IEBAIFFTdHJpbmcgUVdlYlBhZ2U6OnVzZXJBZ2VudEZvclVybChjb25zdCBRVXJsJikgY29uc3QK
ICAgICAgICAgIk1hY2ludG9zaDsgIgogI2VsaWYgZGVmaW5lZCBRX1dTX1FXUwogICAgICAgICAi
UXRFbWJlZGRlZDsgIgotI2VsaWYgZGVmaW5lZCBRX1dTX01BRU1PXzUKLSAgICAgICAgIk1hZW1v
IgotI2VsaWYgZGVmaW5lZCBRX1dTX01BRU1PXzYKLSAgICAgICAgIk1lZUdvIgogI2VsaWYgZGVm
aW5lZCBRX1dTX1dJTgogICAgICAgICAvLyBOb3RoaW5nCiAjZWxpZiBkZWZpbmVkIFFfV1NfWDEx
CkBAIC0zNzk2LDcgKzM3OTAsNiBAQCBRU3RyaW5nIFFXZWJQYWdlOjp1c2VyQWdlbnRGb3JVcmwo
Y29uc3QgUVVybCYpIGNvbnN0CiAjZWxpZiBkZWZpbmVkIFFfT1NfSVJJWAogICAgICAgICBmaXJz
dFBhcnRUZW1wICs9IFFTdHJpbmc6OmZyb21MYXRpbjEoIlNHSSBJcml4Iik7CiAjZWxpZiBkZWZp
bmVkIFFfT1NfTElOVVgKLSNpZiAhZGVmaW5lZChRX1dTX01BRU1PXzUpICYmICFkZWZpbmVkKFFf
V1NfTUFFTU9fNikKIAogI2lmIGRlZmluZWQoX194ODZfNjRfXykKICAgICAgICAgZmlyc3RQYXJ0
VGVtcCArPSBRU3RyaW5nOjpmcm9tTGF0aW4xKCJMaW51eCB4ODZfNjQiKTsKQEAgLTM4MDUsNyAr
Mzc5OCw2IEBAIFFTdHJpbmcgUVdlYlBhZ2U6OnVzZXJBZ2VudEZvclVybChjb25zdCBRVXJsJikg
Y29uc3QKICNlbHNlCiAgICAgICAgIGZpcnN0UGFydFRlbXAgKz0gUVN0cmluZzo6ZnJvbUxhdGlu
MSgiTGludXgiKTsKICNlbmRpZgotI2VuZGlmCiAKICNlbGlmIGRlZmluZWQgUV9PU19MWU5YCiAg
ICAgICAgIGZpcnN0UGFydFRlbXAgKz0gUVN0cmluZzo6ZnJvbUxhdGluMSgiTHlueE9TIik7CkBA
IC0zODY5LDExICszODYxLDcgQEAgUVN0cmluZyBRV2ViUGFnZTo6dXNlckFnZW50Rm9yVXJsKGNv
bnN0IFFVcmwmKSBjb25zdAogCiAgICAgICAgIFFTdHJpbmcgdGhpcmRQYXJ0VGVtcDsKICAgICAg
ICAgdGhpcmRQYXJ0VGVtcC5yZXNlcnZlKDE1MCk7Ci0jaWYgZGVmaW5lZChRX1dTX01BRU1PXzUp
IHx8IGRlZmluZWQoUV9XU19NQUVNT182KQotICAgICAgICB0aGlyZFBhcnRUZW1wICs9IFFMYXRp
bjFTdHJpbmcoIiBNb2JpbGUgU2FmYXJpLyIpOwotI2Vsc2UKICAgICAgICAgdGhpcmRQYXJ0VGVt
cCArPSBRTGF0aW4xU3RyaW5nKCIgU2FmYXJpLyIpOwotI2VuZGlmCiAgICAgICAgIHRoaXJkUGFy
dFRlbXAgKz0gcVdlYktpdFZlcnNpb24oKTsKICAgICAgICAgdGhpcmRQYXJ0VGVtcC5zcXVlZXpl
KCk7CiAgICAgICAgIHRoaXJkUGFydCA9IHRoaXJkUGFydFRlbXA7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2Vi
dmlldy5jcHAKaW5kZXggY2U4Y2I0NjAwYjY5Yjk5MzYzODY4M2NiODU0MWIxNTcwNmI0ZDFjMy4u
NGEyZDE4NmE5YmZkZGY5NjhlN2QwNWIxZmI2OTg3YTRmZWM3YWU0MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9xdC9BcGkvcXdlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvQXBp
L3F3ZWJ2aWV3LmNwcApAQCAtNjYsMTUxICs2Niw2IEBAIHZvaWQgUVdlYlZpZXdQcml2YXRlOjpf
cV9wYWdlRGVzdHJveWVkKCkKICAgICB2aWV3LT5zZXRQYWdlKDApOwogfQogCi0jaWZkZWYgUV9X
U19NQUVNT181Ci0jaW5jbHVkZSAicWFic3RyYWN0a2luZXRpY3Njcm9sbGVyLmgiCi0jaW5jbHVk
ZSAicWFwcGxpY2F0aW9uLmgiCi0KLS8vIFFDb3JlQXBwbGljYXRpb246OnNlbmRTcG9udGFuZW91
c0V2ZW50KCkgaXMgcHJpdmF0ZSwgaGVuY2UgdGhpcyBmcmllbmQgd3JhcHBlcgotYm9vbCBxdF9z
ZW5kU3BvbnRhbmVvdXNFdmVudChRT2JqZWN0KiByZWNlaXZlciwgUUV2ZW50KiBldikKLXsKLSAg
ICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6c2VuZFNwb250YW5lb3VzRXZlbnQocmVjZWl2ZXIs
IGV2KTsKLX0KLQotY2xhc3MgUVdlYlZpZXdLaW5ldGljU2Nyb2xsZXIgOiBwdWJsaWMgUU9iamVj
dCwgcHVibGljIFFBYnN0cmFjdEtpbmV0aWNTY3JvbGxlciB7Ci1wdWJsaWM6Ci0gICAgUVdlYlZp
ZXdLaW5ldGljU2Nyb2xsZXIoKQotICAgICAgICA6IFFPYmplY3QoKQotICAgICAgICAsIFFBYnN0
cmFjdEtpbmV0aWNTY3JvbGxlcigpCi0gICAgICAgICwgbV92aWV3KDApCi0gICAgICAgICwgbV9p
Z25vcmVFdmVudHMoZmFsc2UpCi0gICAgewotICAgIH0KLQotICAgIHZvaWQgc2V0V2lkZ2V0KFFX
ZWJWaWV3KiB3aWRnZXQpCi0gICAgewotICAgICAgICBpZiAobV92aWV3KSB7Ci0gICAgICAgICAg
ICBtX3ZpZXctPnJlbW92ZUV2ZW50RmlsdGVyKHRoaXMpOwotICAgICAgICAgICAgUVdlYkZyYW1l
KiBmcmFtZSA9IG1fdmlldy0+cGFnZSgpLT5tYWluRnJhbWUoKTsKLSAgICAgICAgICAgIGZyYW1l
LT5zZXRTY3JvbGxCYXJQb2xpY3koUXQ6OlZlcnRpY2FsLCBtX29sZFZlcnRpY2FsU2Nyb2xsQmFy
UG9saWN5KTsKLSAgICAgICAgICAgIGZyYW1lLT5zZXRTY3JvbGxCYXJQb2xpY3koUXQ6Okhvcml6
b250YWwsIG1fb2xkSG9yaXpvbnRhbFNjcm9sbEJhclBvbGljeSk7Ci0gICAgICAgIH0KLQotICAg
ICAgICBtX3ZpZXcgPSB3aWRnZXQ7Ci0gICAgICAgIHNldFBhcmVudChtX3ZpZXcpOwotICAgICAg
ICBpZiAobV92aWV3KSB7Ci0gICAgICAgICAgICBRV2ViRnJhbWUqIGZyYW1lID0gbV92aWV3LT5w
YWdlKCktPm1haW5GcmFtZSgpOwotICAgICAgICAgICAgbV9vbGRIb3Jpem9udGFsU2Nyb2xsQmFy
UG9saWN5ID0gZnJhbWUtPnNjcm9sbEJhclBvbGljeShRdDo6SG9yaXpvbnRhbCk7Ci0gICAgICAg
ICAgICBtX29sZFZlcnRpY2FsU2Nyb2xsQmFyUG9saWN5ID0gZnJhbWUtPnNjcm9sbEJhclBvbGlj
eShRdDo6VmVydGljYWwpOwotICAgICAgICAgICAgZnJhbWUtPnNldFNjcm9sbEJhclBvbGljeShR
dDo6VmVydGljYWwsIFF0OjpTY3JvbGxCYXJBbHdheXNPZmYpOwotICAgICAgICAgICAgZnJhbWUt
PnNldFNjcm9sbEJhclBvbGljeShRdDo6SG9yaXpvbnRhbCwgUXQ6OlNjcm9sbEJhckFsd2F5c09m
Zik7Ci0gICAgICAgICAgICBtX3ZpZXctPmluc3RhbGxFdmVudEZpbHRlcih0aGlzKTsKLSAgICAg
ICAgfQotICAgIH0KLQotcHJvdGVjdGVkOgotICAgIGJvb2wgZXZlbnRGaWx0ZXIoUU9iamVjdCog
bywgUUV2ZW50KiBldikKLSAgICB7Ci0gICAgICAgIGlmICghbyB8fCBtX3ZpZXcgIT0gbyB8fCBt
X2lnbm9yZUV2ZW50cyB8fCAhbV92aWV3LT5pc0VuYWJsZWQoKSkKLSAgICAgICAgICAgIHJldHVy
biBRT2JqZWN0OjpldmVudEZpbHRlcihvLCBldik7Ci0KLSAgICAgICAgYm9vbCByZXMgPSBmYWxz
ZTsKLQotICAgICAgICBzd2l0Y2ggKGV2LT50eXBlKCkpIHsKLSAgICAgICAgY2FzZSBRRXZlbnQ6
Ok1vdXNlQnV0dG9uUHJlc3M6IHsKLSAgICAgICAgICAgIC8vIHJlbWVtYmVyIHRoZSBmcmFtZSB3
aGVyZSB0aGUgYnV0dG9uIHdhcyBwcmVzc2VkCi0gICAgICAgICAgICBRV2ViRnJhbWUqIGhpdEZy
YW1lID0gc2Nyb2xsaW5nRnJhbWVBdChzdGF0aWNfY2FzdDxRTW91c2VFdmVudCo+KGV2KS0+cG9z
KCkpOwotICAgICAgICAgICAgaWYgKGhpdEZyYW1lKQotICAgICAgICAgICAgICAgIG1fZnJhbWUg
PSBoaXRGcmFtZTsKLSAgICAgICAgICAgIC8vIGZhbGwgdGhyb3VnaAotICAgICAgICB9Ci0gICAg
ICAgIGNhc2UgUUV2ZW50OjpNb3VzZU1vdmU6Ci0gICAgICAgIGNhc2UgUUV2ZW50OjpNb3VzZUJ1
dHRvblJlbGVhc2U6Ci0gICAgICAgIGNhc2UgUUV2ZW50OjpNb3VzZUJ1dHRvbkRibENsaWNrOgot
ICAgICAgICAgICAgcmVzID0gaGFuZGxlTW91c2VFdmVudChzdGF0aWNfY2FzdDxRTW91c2VFdmVu
dCo+KGV2KSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAgZGVmYXVsdDoKLSAgICAgICAg
ICAgIGJyZWFrOwotICAgICAgICB9Ci0gICAgICAgIHJldHVybiByZXMgPyB0cnVlIDogUU9iamVj
dDo6ZXZlbnRGaWx0ZXIobywgZXYpOwotICAgIH0KLQotICAgIHZvaWQgY2FuY2VsTGVmdE1vdXNl
QnV0dG9uUHJlc3MoY29uc3QgUVBvaW50JiAvKiBnbG9iYWxQcmVzc1BvcyAqLykKLSAgICB7Ci0g
ICAgICAgIFFNb3VzZUV2ZW50IGNtZW0oUUV2ZW50OjpNb3VzZU1vdmUsIFFQb2ludCgtSU5UX01B
WCwgLUlOVF9NQVgpLCBRdDo6TGVmdEJ1dHRvbiwgUUFwcGxpY2F0aW9uOjptb3VzZUJ1dHRvbnMo
KSB8IFF0OjpMZWZ0QnV0dG9uLCBRQXBwbGljYXRpb246OmtleWJvYXJkTW9kaWZpZXJzKCkpOwot
ICAgICAgICBzZW5kRXZlbnQobV92aWV3LCAmY21lbSk7Ci0gICAgICAgIFFNb3VzZUV2ZW50IGNt
ZXIoUUV2ZW50OjpNb3VzZUJ1dHRvblJlbGVhc2UsIFFQb2ludCgtSU5UX01BWCwgLUlOVF9NQVgp
LCBRdDo6TGVmdEJ1dHRvbiwgUUFwcGxpY2F0aW9uOjptb3VzZUJ1dHRvbnMoKSAmIH5RdDo6TGVm
dEJ1dHRvbiwgUUFwcGxpY2F0aW9uOjprZXlib2FyZE1vZGlmaWVycygpKTsKLSAgICAgICAgc2Vu
ZEV2ZW50KG1fdmlldywgJmNtZXIpOwotICAgIH0KLQotICAgIFFXZWJGcmFtZSogY3VycmVudEZy
YW1lKCkgY29uc3QKLSAgICB7Ci0gICAgICAgIGlmIChtX2ZyYW1lKQotICAgICAgICAgICAgcmV0
dXJuIG1fZnJhbWU7Ci0KLSAgICAgICAgaWYgKG1fdmlldykKLSAgICAgICAgICAgIHJldHVybiBt
X3ZpZXctPnBhZ2UoKS0+bWFpbkZyYW1lKCk7Ci0KLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfQot
Ci0gICAgLy8gUmV0dXJucyB0aGUgaW5uZXJtb3N0IGZyYW1lIGF0IHRoZSBnaXZlbiBwb3NpdGlv
biB0aGF0IGNhbiBzY3JvbGwuCi0gICAgUVdlYkZyYW1lKiBzY3JvbGxpbmdGcmFtZUF0KGNvbnN0
IFFQb2ludCYgcG9zKSBjb25zdAotICAgIHsKLSAgICAgICAgUVdlYkZyYW1lKiBoaXRGcmFtZSA9
IDA7Ci0gICAgICAgIGlmIChtX3ZpZXcpIHsKLSAgICAgICAgICAgIFFXZWJGcmFtZSogZnJhbWUg
PSBtX3ZpZXctPnBhZ2UoKS0+bWFpbkZyYW1lKCk7Ci0gICAgICAgICAgICBoaXRGcmFtZSA9IGZy
YW1lLT5oaXRUZXN0Q29udGVudChwb3MpLmZyYW1lKCk7Ci0gICAgICAgICAgICBRU2l6ZSByYW5n
ZSA9IGhpdEZyYW1lLT5jb250ZW50c1NpemUoKSAtIGhpdEZyYW1lLT5nZW9tZXRyeSgpLnNpemUo
KTsKLQotICAgICAgICAgICAgd2hpbGUgKGhpdEZyYW1lICYmIHJhbmdlLndpZHRoKCkgPD0gMSAm
JiByYW5nZS5oZWlnaHQoKSA8PSAxKQotICAgICAgICAgICAgICAgIGhpdEZyYW1lID0gaGl0RnJh
bWUtPnBhcmVudEZyYW1lKCk7Ci0KLSAgICAgICAgICAgIHJldHVybiBoaXRGcmFtZTsKLSAgICAg
ICAgfQotICAgIH0KLQotICAgIFFQb2ludCBtYXhpbXVtU2Nyb2xsUG9zaXRpb24oKSBjb25zdAot
ICAgIHsKLSAgICAgICAgUVdlYkZyYW1lKiBmcmFtZSA9IGN1cnJlbnRGcmFtZSgpOwotICAgICAg
ICBRU2l6ZSBzID0gZnJhbWUgPyBmcmFtZS0+Y29udGVudHNTaXplKCkgLSBmcmFtZS0+Z2VvbWV0
cnkoKS5zaXplKCkgOiBRU2l6ZSgwLCAwKTsKLSAgICAgICAgcmV0dXJuIFFQb2ludChxTWF4KDAs
IHMud2lkdGgoKSksIHFNYXgoMCwgcy5oZWlnaHQoKSkpOwotICAgIH0KLQotICAgIFFQb2ludCBz
Y3JvbGxQb3NpdGlvbigpIGNvbnN0Ci0gICAgewotICAgICAgICBRV2ViRnJhbWUqIGZyYW1lID0g
Y3VycmVudEZyYW1lKCk7Ci0gICAgICAgIHJldHVybiBmcmFtZSA/IGZyYW1lLT5zY3JvbGxQb3Np
dGlvbigpIDogUVBvaW50KCk7Ci0gICAgfQotCi0gICAgUVNpemUgdmlld3BvcnRTaXplKCkgY29u
c3QKLSAgICB7Ci0gICAgICAgIHJldHVybiBtX3ZpZXcgPyBtX3ZpZXctPnBhZ2UoKS0+dmlld3Bv
cnRTaXplKCkgOiBRU2l6ZSgpOwotICAgIH0KLQotICAgIHZvaWQgc2V0U2Nyb2xsUG9zaXRpb24o
Y29uc3QgUVBvaW50JiBwb2ludCwgY29uc3QgUVBvaW50JiAvKiBvdmVyU2hvb3REZWx0YSAqLykK
LSAgICB7Ci0gICAgICAgIFFXZWJGcmFtZSogZnJhbWUgPSBjdXJyZW50RnJhbWUoKTsKLSAgICAg
ICAgaWYgKGZyYW1lKQotICAgICAgICAgICAgZnJhbWUtPnNldFNjcm9sbFBvc2l0aW9uKHBvaW50
KTsKLSAgICB9Ci0KLSAgICB2b2lkIHNlbmRFdmVudChRV2lkZ2V0KiB3LCBRRXZlbnQqIGV2KQot
ICAgIHsKLSAgICAgICAgbV9pZ25vcmVFdmVudHMgPSB0cnVlOwotICAgICAgICBxdF9zZW5kU3Bv
bnRhbmVvdXNFdmVudCh3LCBldik7Ci0gICAgICAgIG1faWdub3JlRXZlbnRzID0gZmFsc2U7Ci0g
ICAgfQotCi0gICAgUVdlYlZpZXcqIG1fdmlldzsKLSAgICBib29sIG1faWdub3JlRXZlbnRzOwot
ICAgIFFXZWFrUG9pbnRlcjxRV2ViRnJhbWU+IG1fZnJhbWU7Ci0gICAgUXQ6OlNjcm9sbEJhclBv
bGljeSBtX29sZFZlcnRpY2FsU2Nyb2xsQmFyUG9saWN5OwotICAgIFF0OjpTY3JvbGxCYXJQb2xp
Y3kgbV9vbGRIb3Jpem9udGFsU2Nyb2xsQmFyUG9saWN5OwotfTsKLQotI2VuZGlmIC8vIFFfV1Nf
TUFFTU9fNQotCi0KIC8qIQogICAgIFxjbGFzcyBRV2ViVmlldwogICAgIFxzaW5jZSA0LjQKQEAg
LTMwOCwxMSArMTYzLDYgQEAgUVdlYlZpZXc6OlFXZWJWaWV3KFFXaWRnZXQgKnBhcmVudCkKICNl
bmRpZgogCiAgICAgc2V0QXR0cmlidXRlKFF0OjpXQV9BY2NlcHRUb3VjaEV2ZW50cyk7Ci0jaWYg
ZGVmaW5lZChRX1dTX01BRU1PXzUpCi0gICAgUUFic3RyYWN0S2luZXRpY1Njcm9sbGVyKiBzY3Jv
bGxlciA9IG5ldyBRV2ViVmlld0tpbmV0aWNTY3JvbGxlcigpOwotICAgIHN0YXRpY19jYXN0PFFX
ZWJWaWV3S2luZXRpY1Njcm9sbGVyKj4oc2Nyb2xsZXIpLT5zZXRXaWRnZXQodGhpcyk7Ci0gICAg
c2V0UHJvcGVydHkoImtpbmV0aWNTY3JvbGxlciIsIFFWYXJpYW50Ojpmcm9tVmFsdWUoc2Nyb2xs
ZXIpKTsKLSNlbmRpZgogICAgIHNldEFjY2VwdERyb3BzKHRydWUpOwogCiAgICAgc2V0TW91c2VU
cmFja2luZyh0cnVlKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvUXRXZWJLaXQucHJv
IGIvU291cmNlL1dlYktpdC9xdC9RdFdlYktpdC5wcm8KaW5kZXggZGNjOGE3NjE0MDI0ODZiZTlk
NWNmMzVlZWMzMGExMThlZGVjNzQxZi4uZGI2NzE1NjVjZmY0ZjA4ZjU0ODExYzY2NzJjOTMwZDM3
OWU4ODg3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC9RdFdlYktpdC5wcm8KKysrIGIv
U291cmNlL1dlYktpdC9xdC9RdFdlYktpdC5wcm8KQEAgLTE1MSwxNSArMTUxLDYgQEAgd2Via2l0
MiB7CiAgICAgU09VUkNFUyArPSAkJFdFQktJVDJfQVBJX1NPVVJDRVMKIH0KIAotY29udGFpbnMo
REVGSU5FUywgRU5BQkxFX05FVFNDQVBFX1BMVUdJTl9BUEk9MSkgewotICAgIHVuaXggewotICAg
ICAgICBtYWVtbzUgewotICAgICAgICAgICAgSEVBREVSUyArPSAkJFBXRC9XZWJDb3JlU3VwcG9y
dC9RdE1hZW1vV2ViUG9wdXAuaAotICAgICAgICAgICAgU09VUkNFUyArPSAkJFBXRC9XZWJDb3Jl
U3VwcG9ydC9RdE1hZW1vV2ViUG9wdXAuY3BwCi0gICAgICAgIH0KLSAgICB9Ci19Ci0KIGNvbnRh
aW5zKERFRklORVMsIEVOQUJMRV9WSURFTz0xKSB7CiAgICAgIWNvbnRhaW5zKERFRklORVMsIFdU
Rl9VU0VfUVRLSVQ9MSk6IWNvbnRhaW5zKERFRklORVMsIFdURl9VU0VfR1NUUkVBTUVSPTEpOmNv
bnRhaW5zKERFRklORVMsIFdURl9VU0VfUVRfTVVMVElNRURJQT0xKSB7CiAgICAgICAgIEhFQURF
UlMgKz0gJCRQV0QvV2ViQ29yZVN1cHBvcnQvRnVsbFNjcmVlblZpZGVvV2lkZ2V0LmgKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3Bw
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKaW5k
ZXggMDQzZWU1OTJkY2YwY2M5Y2Q0ZTM5N2Y5YzUzOGJiMzNlODk5NmYzZS4uOTVhNDA3ZTRjNjNj
MWExYTk5ZDYyOWJjNGVlYzZjYzhiMTQ2YmRlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAKQEAgLTUzLDExICs1Myw3IEBACiAj
aW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlBhZ2VDbGllbnRRdC5oIgogI2luY2x1ZGUgIlBv
cHVwTWVudVF0LmgiCi0jaWYgZGVmaW5lZChRX1dTX01BRU1PXzUpCi0jaW5jbHVkZSAiUXRNYWVt
b1dlYlBvcHVwLmgiCi0jZWxzZQogI2luY2x1ZGUgIlF0RmFsbGJhY2tXZWJQb3B1cC5oIgotI2Vu
ZGlmCiAjaW5jbHVkZSAiUVdlYlBhZ2VDbGllbnQuaCIKICNpbmNsdWRlICJTY3JvbGxiYXJUaGVt
ZS5oIgogI2luY2x1ZGUgIlNlYXJjaFBvcHVwTWVudVF0LmgiCkBAIC03MDIsOSArNjk4LDcgQEAg
UGFzc093blB0cjxRV2ViU2VsZWN0TWV0aG9kPiBDaHJvbWVDbGllbnRRdDo6Y3JlYXRlU2VsZWN0
UG9wdXAoKSBjb25zdAogICAgIGlmIChyZXN1bHQpCiAgICAgICAgIHJldHVybiByZXN1bHQucmVs
ZWFzZSgpOwogCi0jaWYgZGVmaW5lZChRX1dTX01BRU1PXzUpCi0gICAgcmV0dXJuIGFkb3B0UHRy
KG5ldyBRdE1hZW1vV2ViUG9wdXApOwotI2VsaWYgIWRlZmluZWQoUVRfTk9fQ09NQk9CT1gpCisj
aWYgIWRlZmluZWQoUVRfTk9fQ09NQk9CT1gpCiAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBRdEZh
bGxiYWNrV2ViUG9wdXAodGhpcykpOwogI2Vsc2UKICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3Bw
IGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAKaW5k
ZXggZjM4N2VhOWM1ZTExMTEzYWY1ZmUyOWFhNzU1NGVjOTIzZjM2NDM1MS4uOWIxNTRmYjBlOTdl
ZmU2YzA5YWE0MzRlNzY4NTdhY2QyY2JlZThkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAKQEAgLTYyNywxMSArNjI3LDYgQEAg
dm9pZCBFZGl0b3JDbGllbnRRdDo6c2V0SW5wdXRNZXRob2RTdGF0ZShib29sIGFjdGl2ZSkKICAg
ICAgICAgICAgIH0KICAgICAgICAgfQogCi0jaWYgZGVmaW5lZChRX1dTX01BRU1PXzUpIHx8IGRl
ZmluZWQoUV9XU19NQUVNT182KQotICAgICAgICAvLyBkaXNhYmxlcyBhdXRvLXVwcGVyY2FzZSBh
bmQgcHJlZGljdGl2ZSB0ZXh0IGZvciBtb2JpbGUgZGV2aWNlcwotICAgICAgICBoaW50cyB8PSBR
dDo6SW1oTm9BdXRvVXBwZXJjYXNlOwotICAgICAgICBoaW50cyB8PSBRdDo6SW1oTm9QcmVkaWN0
aXZlVGV4dDsKLSNlbmRpZiAvLyBRX1dTX01BRU1PXzUgfHwgUV9XU19NQUVNT182CiAgICAgICAg
IHdlYlBhZ2VDbGllbnQtPnNldElucHV0TWV0aG9kSGludHMoaGludHMpOwogICAgICAgICB3ZWJQ
YWdlQ2xpZW50LT5zZXRJbnB1dE1ldGhvZEVuYWJsZWQoYWN0aXZlKTsKICAgICB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQu
Y3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0
LmNwcAppbmRleCBkNDQzZGRmYjlkYTdmODc3NjJhNThkMTk3M2EwZWQzOWRjYjkzYjQzLi41NmFh
MDkwYjJkNjY2YzMzOThmNjQ4ODJjMzliMzBhZmE5NDMxMDNjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKQEAg
LTE2MjksMTcgKzE2MjksNiBAQCBQYXNzUmVmUHRyPFdpZGdldD4gRnJhbWVMb2FkZXJDbGllbnRR
dDo6Y3JlYXRlUGx1Z2luKGNvbnN0IEludFNpemUmIHBsdWdpblNpemUsCiAgICAgICAgIGlmICht
aW1lVHlwZSA9PSAiYXBwbGljYXRpb24veC1zaG9ja3dhdmUtZmxhc2giKSB7CiAgICAgICAgICAg
ICBRV2ViUGFnZUNsaWVudCogY2xpZW50ID0gbV93ZWJGcmFtZS0+cGFnZSgpLT5kLT5jbGllbnQu
Z2V0KCk7CiAgICAgICAgICAgICBjb25zdCBib29sIGlzUVdlYlZpZXcgPSBjbGllbnQgJiYgcW9i
amVjdF9jYXN0PFFXaWRnZXQqPihjbGllbnQtPnBsdWdpblBhcmVudCgpKTsKLSNpZiBkZWZpbmVk
KE1PWl9QTEFURk9STV9NQUVNTykgJiYgKE1PWl9QTEFURk9STV9NQUVNTyA+PSA1KQotICAgICAg
ICAgICAgc2l6ZV90IHdtb2RlSW5kZXggPSBwYXJhbXMuZmluZCgid21vZGUiKTsKLSAgICAgICAg
ICAgIGlmICh3bW9kZUluZGV4ID09IFdURjo6bm90Rm91bmQpIHsKLSAgICAgICAgICAgICAgICAv
LyBEaXNhYmxlIFhFbWJlZCBtb2RlIGFuZCBmb3JjZSBpdCB0byBvcGFxdWUgbW9kZS4KLSAgICAg
ICAgICAgICAgICBwYXJhbXMuYXBwZW5kKCJ3bW9kZSIpOwotICAgICAgICAgICAgICAgIHZhbHVl
cy5hcHBlbmQoIm9wYXF1ZSIpOwotICAgICAgICAgICAgfSBlbHNlIGlmICghaXNRV2ViVmlldykg
ewotICAgICAgICAgICAgICAgIC8vIERpc2FibGUgdHJhbnNwYXJlbmN5IGlmIGNsaWVudCBpcyBu
b3QgYSBRV2ViVmlldy4KLSAgICAgICAgICAgICAgICB2YWx1ZXNbd21vZGVJbmRleF0gPSAib3Bh
cXVlIjsKLSAgICAgICAgICAgIH0KLSNlbHNlCiAgICAgICAgICAgICBpZiAoIWlzUVdlYlZpZXcp
IHsKICAgICAgICAgICAgICAgICAvLyBJbmplY3Qgd21vZGU9b3BhcXVlIHdoZW4gdGhlcmUgaXMg
bm8gY2xpZW50IG9yIHRoZSBjbGllbnQgaXMgbm90IGEgUVdlYlZpZXcuCiAgICAgICAgICAgICAg
ICAgc2l6ZV90IHdtb2RlSW5kZXggPSBwYXJhbXMuZmluZCgid21vZGUiKTsKQEAgLTE2NDksNyAr
MTYzOCw2IEBAIFBhc3NSZWZQdHI8V2lkZ2V0PiBGcmFtZUxvYWRlckNsaWVudFF0OjpjcmVhdGVQ
bHVnaW4oY29uc3QgSW50U2l6ZSYgcGx1Z2luU2l6ZSwKICAgICAgICAgICAgICAgICB9IGVsc2Ug
aWYgKGVxdWFsSWdub3JpbmdDYXNlKHZhbHVlc1t3bW9kZUluZGV4XSwgIndpbmRvdyIpKQogICAg
ICAgICAgICAgICAgICAgICB2YWx1ZXNbd21vZGVJbmRleF0gPSAib3BhcXVlIjsKICAgICAgICAg
ICAgIH0KLSNlbmRpZgogICAgICAgICB9CiAKICAgICAgICAgUmVmUHRyPFBsdWdpblZpZXc+IHBs
dWdpblZpZXcgPSBQbHVnaW5WaWV3OjpjcmVhdGUobV9mcmFtZSwgcGx1Z2luU2l6ZSwgZWxlbWVu
dCwgdXJsLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdE1h
ZW1vV2ViUG9wdXAuY3BwIGIvU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9RdE1hZW1v
V2ViUG9wdXAuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5MGFmMGM2ODBhMjRi
NmI2MTE1ODE3MzAyNTBmMjk4Y2IyYWFjYWM2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRNYWVt
b1dlYlBvcHVwLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDIxOSArMCwwIEBACi0vKgotICogQ29w
eXJpZ2h0IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgt
aWVzKQotICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlz
dHJpYnV0ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGlj
ZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlz
IGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1
bCwKLSAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVk
IHdhcnJhbnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNl
bnNlIGZvciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEg
Y29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcg
d2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3Jp
dGUgdG8KLSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGlu
IFN0cmVldCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAq
Ci0gKi8KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJRdE1hZW1vV2ViUG9wdXAuaCIK
LQotI2luY2x1ZGUgPFFIQm94TGF5b3V0PgotI2luY2x1ZGUgPFFMaXN0V2lkZ2V0PgotI2luY2x1
ZGUgPFFMaXN0V2lkZ2V0SXRlbT4KLSNpbmNsdWRlIDxRUGFpbnRlcj4KLSNpbmNsdWRlIDxRUHVz
aEJ1dHRvbj4KLSNpbmNsdWRlIDxRU3R5bGVkSXRlbURlbGVnYXRlPgotI2luY2x1ZGUgPFFWQm94
TGF5b3V0PgotCi0jaW5jbHVkZSA8bGliaW50bC5oPgotCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotc3RhdGljIGNvbnN0IGludCBnTWFlbW9MaXN0SXRlbVNpemUgPSA3MDsKLXN0YXRpYyBjb25z
dCBpbnQgZ01hZW1vTGlzdFBhZGRpbmcgPSAzODsKLXN0YXRpYyBjb25zdCBpbnQgZ01hZW1vTWF4
VmlzaWJsZUl0ZW1zID0gNTsKLQotdm9pZCBNYWVtbzVQb3B1cDo6cG9wdWxhdGVMaXN0KCkKLXsK
LSAgICBRTGlzdFdpZGdldEl0ZW0qIGxpc3RJdGVtOwotICAgIGZvciAoaW50IGkgPSAwOyBpIDwg
bV9kYXRhLml0ZW1Db3VudCgpOyArK2kpIHsKLSAgICAgICAgaWYgKG1fZGF0YS5pdGVtVHlwZShp
KSA9PSBRV2ViU2VsZWN0RGF0YTo6T3B0aW9uKSB7Ci0gICAgICAgICAgICBsaXN0SXRlbSA9IG5l
dyBRTGlzdFdpZGdldEl0ZW0obV9kYXRhLml0ZW1UZXh0KGkpKTsKLSAgICAgICAgICAgIG1fbGlz
dC0+YWRkSXRlbShsaXN0SXRlbSk7Ci0gICAgICAgICAgICBsaXN0SXRlbS0+c2V0U2VsZWN0ZWQo
bV9kYXRhLml0ZW1Jc1NlbGVjdGVkKGkpKTsKLSAgICAgICAgfSBlbHNlIGlmIChtX2RhdGEuaXRl
bVR5cGUoaSkgPT0gUVdlYlNlbGVjdERhdGE6Okdyb3VwKSB7Ci0gICAgICAgICAgICBsaXN0SXRl
bSA9IG5ldyBRTGlzdFdpZGdldEl0ZW0obV9kYXRhLml0ZW1UZXh0KGkpKTsKLSAgICAgICAgICAg
IG1fbGlzdC0+YWRkSXRlbShsaXN0SXRlbSk7Ci0gICAgICAgICAgICBsaXN0SXRlbS0+c2V0U2Vs
ZWN0ZWQoZmFsc2UpOwotICAgICAgICAgICAgbGlzdEl0ZW0tPnNldEZsYWdzKFF0OjpOb0l0ZW1G
bGFncyk7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgY29ubmVjdChtX2xpc3QsIFNJR05BTChpdGVt
Q2xpY2tlZChRTGlzdFdpZGdldEl0ZW0qKSksIHRoaXMsIFNMT1Qob25JdGVtU2VsZWN0ZWQoUUxp
c3RXaWRnZXRJdGVtKikpKTsKLX0KLQotdm9pZCBNYWVtbzVQb3B1cDo6b25JdGVtU2VsZWN0ZWQo
UUxpc3RXaWRnZXRJdGVtKiBpdGVtKQotewotICAgIGlmIChpdGVtLT5mbGFncygpICE9IFF0OjpO
b0l0ZW1GbGFncykKLSAgICAgICAgZW1pdCBpdGVtQ2xpY2tlZChtX2xpc3QtPnJvdyhpdGVtKSk7
Ci19Ci0KLVF0TWFlbW9XZWJQb3B1cDo6UXRNYWVtb1dlYlBvcHVwKCkKLSAgICA6IG1fcG9wdXAo
MCkKLXsKLX0KLQotUXRNYWVtb1dlYlBvcHVwOjp+UXRNYWVtb1dlYlBvcHVwKCkKLXsKLSAgICBp
ZiAobV9wb3B1cCkKLSAgICAgICAgbV9wb3B1cC0+ZGVsZXRlTGF0ZXIoKTsKLX0KLQotTWFlbW81
UG9wdXAqIFF0TWFlbW9XZWJQb3B1cDo6Y3JlYXRlU2luZ2xlU2VsZWN0aW9uUG9wdXAoY29uc3Qg
UVdlYlNlbGVjdERhdGEmIGRhdGEpCi17Ci0gICAgcmV0dXJuIG5ldyBNYWVtbzVTaW5nbGVTZWxl
Y3Rpb25Qb3B1cChkYXRhKTsKLX0KLQotTWFlbW81UG9wdXAqIFF0TWFlbW9XZWJQb3B1cDo6Y3Jl
YXRlTXVsdGlwbGVTZWxlY3Rpb25Qb3B1cChjb25zdCBRV2ViU2VsZWN0RGF0YSYgZGF0YSkKLXsK
LSAgICByZXR1cm4gbmV3IE1hZW1vNU11bHRpcGxlU2VsZWN0aW9uUG9wdXAoZGF0YSk7Ci19Ci0K
LU1hZW1vNVBvcHVwKiBRdE1hZW1vV2ViUG9wdXA6OmNyZWF0ZVBvcHVwKGNvbnN0IFFXZWJTZWxl
Y3REYXRhJiBkYXRhKQotewotICAgIE1hZW1vNVBvcHVwKiByZXN1bHQgPSBkYXRhLm11bHRpcGxl
KCkgPyBjcmVhdGVNdWx0aXBsZVNlbGVjdGlvblBvcHVwKGRhdGEpIDogY3JlYXRlU2luZ2xlU2Vs
ZWN0aW9uUG9wdXAoZGF0YSk7Ci0gICAgY29ubmVjdChyZXN1bHQsIFNJR05BTChmaW5pc2hlZChp
bnQpKSwgdGhpcywgU0xPVChwb3B1cENsb3NlZCgpKSk7Ci0gICAgY29ubmVjdChyZXN1bHQsIFNJ
R05BTChpdGVtQ2xpY2tlZChpbnQpKSwgdGhpcywgU0xPVChpdGVtQ2xpY2tlZChpbnQpKSk7Ci0g
ICAgcmV0dXJuIHJlc3VsdDsKLX0KLQotdm9pZCBRdE1hZW1vV2ViUG9wdXA6OnNob3coY29uc3Qg
UVdlYlNlbGVjdERhdGEmIGRhdGEpCi17Ci0gICAgaWYgKG1fcG9wdXApCi0gICAgICAgIHJldHVy
bjsKLQotICAgIG1fcG9wdXAgPSBjcmVhdGVQb3B1cChkYXRhKTsKLSAgICBtX3BvcHVwLT5zaG93
KCk7Ci19Ci0KLXZvaWQgUXRNYWVtb1dlYlBvcHVwOjpoaWRlKCkKLXsKLSAgICBpZiAoIW1fcG9w
dXApCi0gICAgICAgIHJldHVybjsKLQotICAgIG1fcG9wdXAtPmFjY2VwdCgpOwotfQotCi12b2lk
IFF0TWFlbW9XZWJQb3B1cDo6cG9wdXBDbG9zZWQoKQotewotICAgIGlmICghbV9wb3B1cCkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgbV9wb3B1cC0+ZGVsZXRlTGF0ZXIoKTsKLSAgICBtX3BvcHVw
ID0gMDsKLSAgICBlbWl0IGRpZEhpZGUoKTsKLX0KLQotdm9pZCBRdE1hZW1vV2ViUG9wdXA6Oml0
ZW1DbGlja2VkKGludCBpZHgpCi17Ci0gICAgZW1pdCBzZWxlY3RJdGVtKGlkeCwgdHJ1ZSwgZmFs
c2UpOwotfQotCi1NYWVtbzVTaW5nbGVTZWxlY3Rpb25Qb3B1cDo6TWFlbW81U2luZ2xlU2VsZWN0
aW9uUG9wdXAoY29uc3QgUVdlYlNlbGVjdERhdGEmIGRhdGEpCi0gICAgOiBNYWVtbzVQb3B1cChk
YXRhKQotewotICAgIC8vIHdlIHRyeSB0byBnZXQgdGhlIHN0YW5kYXJkIGxpc3QgdGl0bGUgdGhl
IHdlYiBicm93c2VyIGlzIHVzaW5nCi0gICAgY29uc3QgY2hhciogdGl0bGUgPSA6OmRnZXR0ZXh0
KCJvc3NvLWJyb3dzZXItdWkiLCAid2ViYV90aV90ZXhsaXN0X3NpbmdsZSIpOwotICAgIGlmIChx
c3RyY21wKHRpdGxlLCAid2ViYV90aV90ZXhsaXN0X3NpbmdsZSIpKQotICAgICAgICBzZXRXaW5k
b3dUaXRsZShRU3RyaW5nOjpmcm9tVXRmOCh0aXRsZSkpOwotICAgIGVsc2UKLSAgICAgICAgc2V0
V2luZG93VGl0bGUoIlNlbGVjdCBpdGVtIik7Ci0KLSAgICBRSEJveExheW91dCogaExheW91dCA9
IG5ldyBRSEJveExheW91dCh0aGlzKTsKLSAgICBoTGF5b3V0LT5zZXRDb250ZW50c01hcmdpbnMo
MCwgMCwgMCwgMCk7Ci0KLSAgICBtX2xpc3QgPSBuZXcgUUxpc3RXaWRnZXQodGhpcyk7Ci0gICAg
cG9wdWxhdGVMaXN0KCk7Ci0KLSAgICBoTGF5b3V0LT5hZGRTcGFjaW5nKGdNYWVtb0xpc3RQYWRk
aW5nKTsKLSAgICBoTGF5b3V0LT5hZGRXaWRnZXQobV9saXN0KTsKLSAgICBoTGF5b3V0LT5hZGRT
cGFjaW5nKGdNYWVtb0xpc3RQYWRkaW5nKTsKLQotICAgIGNvbm5lY3QobV9saXN0LCBTSUdOQUwo
aXRlbUNsaWNrZWQoUUxpc3RXaWRnZXRJdGVtKikpLCB0aGlzLCBTTE9UKGFjY2VwdCgpKSk7Ci0K
LSAgICBjb25zdCBpbnQgdmlzaWJsZUl0ZW1Db3VudCA9IChtX2xpc3QtPmNvdW50KCkgPiBnTWFl
bW9NYXhWaXNpYmxlSXRlbXMpID8gZ01hZW1vTWF4VmlzaWJsZUl0ZW1zIDogbV9saXN0LT5jb3Vu
dCgpOwotICAgIHJlc2l6ZShzaXplKCkud2lkdGgoKSwgdmlzaWJsZUl0ZW1Db3VudCAqIGdNYWVt
b0xpc3RJdGVtU2l6ZSk7Ci19Ci0KLQotY2xhc3MgTXVsdGlwbGVJdGVtTGlzdERlbGVnYXRlIDog
cHVibGljIFFTdHlsZWRJdGVtRGVsZWdhdGUgewotcHVibGljOgotICAgIE11bHRpcGxlSXRlbUxp
c3REZWxlZ2F0ZShRT2JqZWN0KiBwYXJlbnQgPSAwKQotICAgICAgICAgICA6IFFTdHlsZWRJdGVt
RGVsZWdhdGUocGFyZW50KQotICAgIHsKLSAgICAgICAgdGlja01hcmsgPSBRSWNvbjo6ZnJvbVRo
ZW1lKCJ3aWRnZXRzX3RpY2ttYXJrX2xpc3QiKS5waXhtYXAoNDgsIDQ4KTsKLSAgICB9Ci0KLSAg
ICB2b2lkIHBhaW50KFFQYWludGVyKiBwYWludGVyLCBjb25zdCBRU3R5bGVPcHRpb25WaWV3SXRl
bSYgb3B0aW9uLCBjb25zdCBRTW9kZWxJbmRleCYgaW5kZXgpIGNvbnN0Ci0gICAgewotICAgICAg
ICBRU3R5bGVkSXRlbURlbGVnYXRlOjpwYWludChwYWludGVyLCBvcHRpb24sIGluZGV4KTsKLQot
ICAgICAgICBpZiAob3B0aW9uLnN0YXRlICYgUVN0eWxlOjpTdGF0ZV9TZWxlY3RlZCkKLSAgICAg
ICAgICAgIHBhaW50ZXItPmRyYXdQaXhtYXAob3B0aW9uLnJlY3Qud2lkdGgoKSAtIHRpY2tNYXJr
LnJlY3QoKS53aWR0aCgpLCBvcHRpb24ucmVjdC55KCkgKyAob3B0aW9uLnJlY3QuaGVpZ2h0KCkg
LyAyIC0gdGlja01hcmsucmVjdCgpLmhlaWdodCgpIC8gMiksIHRpY2tNYXJrKTsKLSAgICB9Ci0K
LXByaXZhdGU6Ci0gICAgUVBpeG1hcCB0aWNrTWFyazsKLX07Ci0KLU1hZW1vNU11bHRpcGxlU2Vs
ZWN0aW9uUG9wdXA6Ok1hZW1vNU11bHRpcGxlU2VsZWN0aW9uUG9wdXAoY29uc3QgUVdlYlNlbGVj
dERhdGEmIGRhdGEpCi0gICAgOiBNYWVtbzVQb3B1cChkYXRhKQotewotICAgIC8vIHdlIHRyeSB0
byBnZXQgdGhlIHN0YW5kYXJkIGxpc3QgdGl0bGUgdGhlIHdlYiBicm93c2VyIGlzIHVzaW5nCi0g
ICAgY29uc3QgY2hhciogdGl0bGUgPSA6OmRnZXR0ZXh0KCJvc3NvLWJyb3dzZXItdWkiLCAid2Vi
YV90aV90ZXh0bGlzdF9tdWx0aSIpOwotICAgIGlmIChxc3RyY21wKHRpdGxlLCAid2ViYV90aV90
ZXh0bGlzdF9tdWx0aSIpKQotICAgICAgICBzZXRXaW5kb3dUaXRsZShRU3RyaW5nOjpmcm9tVXRm
OCh0aXRsZSkpOwotICAgIGVsc2UKLSAgICAgICAgc2V0V2luZG93VGl0bGUoIlNlbGVjdCBpdGVt
cyIpOwotCi0gICAgUUhCb3hMYXlvdXQqIGhMYXlvdXQgPSBuZXcgUUhCb3hMYXlvdXQodGhpcyk7
Ci0gICAgaExheW91dC0+c2V0Q29udGVudHNNYXJnaW5zKDAsIDAsIDAsIDApOwotCi0gICAgbV9s
aXN0ID0gbmV3IFFMaXN0V2lkZ2V0KHRoaXMpOwotICAgIG1fbGlzdC0+c2V0U2VsZWN0aW9uTW9k
ZShRQWJzdHJhY3RJdGVtVmlldzo6TXVsdGlTZWxlY3Rpb24pOwotICAgIHBvcHVsYXRlTGlzdCgp
OwotCi0gICAgTXVsdGlwbGVJdGVtTGlzdERlbGVnYXRlKiBkZWxlZ2F0ZSA9IG5ldyBNdWx0aXBs
ZUl0ZW1MaXN0RGVsZWdhdGUodGhpcyk7Ci0gICAgbV9saXN0LT5zZXRJdGVtRGVsZWdhdGUoZGVs
ZWdhdGUpOwotCi0gICAgaExheW91dC0+YWRkU3BhY2luZyhnTWFlbW9MaXN0UGFkZGluZyk7Ci0g
ICAgaExheW91dC0+YWRkV2lkZ2V0KG1fbGlzdCk7Ci0KLSAgICBRVkJveExheW91dCogdkxheW91
dCA9IG5ldyBRVkJveExheW91dCgpOwotCi0gICAgY29uc3QgaW50IHZpc2libGVJdGVtQ291bnQg
PSAobV9saXN0LT5jb3VudCgpID4gZ01hZW1vTWF4VmlzaWJsZUl0ZW1zKSA/IGdNYWVtb01heFZp
c2libGVJdGVtcyA6IG1fbGlzdC0+Y291bnQoKTsKLSAgICB2TGF5b3V0LT5hZGRTcGFjaW5nKCh2
aXNpYmxlSXRlbUNvdW50IC0gMSkgKiBnTWFlbW9MaXN0SXRlbVNpemUpOwotCi0gICAgLy8gd2Ug
dHJ5IHRvIGdldCB0aGUgc3RhbmRhcmQgRG9uZSBidXR0b24gdGl0bGUKLSAgICBRUHVzaEJ1dHRv
biogZG9uZSA9IG5ldyBRUHVzaEJ1dHRvbih0aGlzKTsKLSAgICB0aXRsZSA9IDo6ZGdldHRleHQo
ImhpbGRvbi1saWJzIiwgIndkZ3RfYmRfZG9uZSIpOwotICAgIGlmIChxc3RyY21wKHRpdGxlLCAi
d2RndF9iZF9kb25lIikpCi0gICAgICAgIGRvbmUtPnNldFRleHQoUVN0cmluZzo6ZnJvbVV0Zjgo
dGl0bGUpKTsKLSAgICBlbHNlCi0gICAgICAgIGRvbmUtPnNldFRleHQoIkRvbmUiKTsKLQotICAg
IGRvbmUtPnNldE1pbmltdW1XaWR0aCgxNzgpOwotICAgIHZMYXlvdXQtPmFkZFdpZGdldChkb25l
KTsKLQotICAgIGhMYXlvdXQtPmFkZFNwYWNpbmcoOCk7Ci0gICAgaExheW91dC0+YWRkTGF5b3V0
KHZMYXlvdXQpOwotICAgIGhMYXlvdXQtPmFkZFNwYWNpbmcoMTgpOwotCi0gICAgY29ubmVjdChk
b25lLCBTSUdOQUwoY2xpY2tlZCgpKSwgdGhpcywgU0xPVChhY2NlcHQoKSkpOwotICAgIHJlc2l6
ZShzaXplKCkud2lkdGgoKSwgdmlzaWJsZUl0ZW1Db3VudCAqIGdNYWVtb0xpc3RJdGVtU2l6ZSk7
Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRN
YWVtb1dlYlBvcHVwLmggYi9Tb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1F0TWFlbW9X
ZWJQb3B1cC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA1NDMzYjc1M2UxOTE5NGU2
YTViMDBjOTMxMTRhOTExNWZmZWE2ZTIxLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvUXRNYWVtb1dl
YlBvcHVwLmgKKysrIC9kZXYvbnVsbApAQCAtMSw4OSArMCwwIEBACi0vKgotICogQ29weXJpZ2h0
IChDKSAyMDEwIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vic2lkaWFyeSgtaWVzKQot
ICoKLSAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0
ZSBpdCBhbmQvb3IKLSAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJy
YXJ5IEdlbmVyYWwgUHVibGljCi0gKiBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBT
b2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAqIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwg
b3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLSAqCi0gKiBUaGlzIGxpYnJh
cnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAq
IGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJh
bnR5IG9mCi0gKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQotICogTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZv
ciBtb3JlIGRldGFpbHMuCi0gKgotICogWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICogYWxvbmcgd2l0aCB0
aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8K
LSAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVl
dCwgRmlmdGggRmxvb3IsCi0gKiBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSAqCi0gKi8K
LSNpZm5kZWYgUXRNYWVtb1dlYlBvcHVwX2gKLSNkZWZpbmUgUXRNYWVtb1dlYlBvcHVwX2gKLQot
I2luY2x1ZGUgInF3ZWJraXRwbGF0Zm9ybXBsdWdpbi5oIgotCi0jaW5jbHVkZSA8UURpYWxvZz4K
LQotY2xhc3MgUUxpc3RXaWRnZXRJdGVtOwotY2xhc3MgUUxpc3RXaWRnZXQ7Ci0KLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotCi1jbGFzcyBNYWVtbzVQb3B1cCA6IHB1YmxpYyBRRGlhbG9nIHsKLSAg
ICBRX09CSkVDVAotcHVibGljOgotICAgIE1hZW1vNVBvcHVwKGNvbnN0IFFXZWJTZWxlY3REYXRh
JiBkYXRhKSA6IG1fZGF0YShkYXRhKSB7fQotCi1zaWduYWxzOgotICAgIHZvaWQgaXRlbUNsaWNr
ZWQoaW50IGlkeCk7Ci0KLXByb3RlY3RlZCBzbG90czoKLSAgICB2b2lkIG9uSXRlbVNlbGVjdGVk
KFFMaXN0V2lkZ2V0SXRlbSogaXRlbSk7Ci0KLXByb3RlY3RlZDoKLSAgICB2b2lkIHBvcHVsYXRl
TGlzdCgpOwotCi0gICAgY29uc3QgUVdlYlNlbGVjdERhdGEmIG1fZGF0YTsKLSAgICBRTGlzdFdp
ZGdldCogbV9saXN0OwotfTsKLQotCi1jbGFzcyBRdE1hZW1vV2ViUG9wdXAgOiBwdWJsaWMgUVdl
YlNlbGVjdE1ldGhvZCB7Ci0gICAgUV9PQkpFQ1QKLXB1YmxpYzoKLSAgICBRdE1hZW1vV2ViUG9w
dXAoKTsKLSAgICB+UXRNYWVtb1dlYlBvcHVwKCk7Ci0KLSAgICB2aXJ0dWFsIHZvaWQgc2hvdyhj
b25zdCBRV2ViU2VsZWN0RGF0YSYgZGF0YSk7Ci0gICAgdmlydHVhbCB2b2lkIGhpZGUoKTsKLQot
cHJpdmF0ZSBzbG90czoKLSAgICB2b2lkIHBvcHVwQ2xvc2VkKCk7Ci0gICAgdm9pZCBpdGVtQ2xp
Y2tlZChpbnQgaWR4KTsKLQotcHJpdmF0ZToKLSAgICBNYWVtbzVQb3B1cCogbV9wb3B1cDsKLQot
ICAgIE1hZW1vNVBvcHVwKiBjcmVhdGVQb3B1cChjb25zdCBRV2ViU2VsZWN0RGF0YSYgZGF0YSk7
Ci0gICAgTWFlbW81UG9wdXAqIGNyZWF0ZVNpbmdsZVNlbGVjdGlvblBvcHVwKGNvbnN0IFFXZWJT
ZWxlY3REYXRhJiBkYXRhKTsKLSAgICBNYWVtbzVQb3B1cCogY3JlYXRlTXVsdGlwbGVTZWxlY3Rp
b25Qb3B1cChjb25zdCBRV2ViU2VsZWN0RGF0YSYgZGF0YSk7Ci19OwotCi0KLWNsYXNzIE1hZW1v
NVNpbmdsZVNlbGVjdGlvblBvcHVwIDogcHVibGljIE1hZW1vNVBvcHVwIHsKLSAgICBRX09CSkVD
VAotcHVibGljOgotICAgIE1hZW1vNVNpbmdsZVNlbGVjdGlvblBvcHVwKGNvbnN0IFFXZWJTZWxl
Y3REYXRhJiBkYXRhKTsKLX07Ci0KLQotY2xhc3MgTWFlbW81TXVsdGlwbGVTZWxlY3Rpb25Qb3B1
cCA6IHB1YmxpYyBNYWVtbzVQb3B1cCB7Ci0gICAgUV9PQkpFQ1QKLXB1YmxpYzoKLSAgICBNYWVt
bzVNdWx0aXBsZVNlbGVjdGlvblBvcHVwKGNvbnN0IFFXZWJTZWxlY3REYXRhJiBkYXRhKTsKLX07
Ci0KLX0KLQotI2VuZGlmIC8vIFF0TWFlbW9XZWJQb3B1cF9oCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvdHN0X3FncmFwaGljc3dlYnZpZXcuY3Bw
IGIvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xZ3JhcGhpY3N3ZWJ2aWV3L3RzdF9xZ3JhcGhpY3N3
ZWJ2aWV3LmNwcAppbmRleCBiY2ZjNGRkYTIzNDU3NzBjMTVhMWI1NzQ1N2Y4ZTUxOWU0YWI2OWZl
Li5jNGY1OGE3MTFkZWNjYWEwNWM1MTllNDc5NWRlYzcwYmUxZjc5MjFmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L3F0L3Rlc3RzL3FncmFwaGljc3dlYnZpZXcvdHN0X3FncmFwaGljc3dlYnZp
ZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcWdyYXBoaWNzd2Vidmlldy90c3Rf
cWdyYXBoaWNzd2Vidmlldy5jcHAKQEAgLTMxNCwxMiArMzE0LDcgQEAgdm9pZCB0c3RfUUdyYXBo
aWNzV2ViVmlldzo6Zm9jdXNJbnB1dFR5cGVzKCkKIAogICAgIC8vICd0ZXh0JyB0eXBlCiAgICAg
d2ViVmlldy0+ZmlyZU1vdXNlQ2xpY2soUVBvaW50RigyMC4wLCAxMC4wKSk7Ci0jaWYgZGVmaW5l
ZChRX1dTX01BRU1PXzUpIHx8IGRlZmluZWQoUV9XU19NQUVNT182KQotICAgIFFWRVJJRlkod2Vi
Vmlldy0+aW5wdXRNZXRob2RIaW50cygpICYgUXQ6OkltaE5vQXV0b1VwcGVyY2FzZSk7Ci0gICAg
UVZFUklGWSh3ZWJWaWV3LT5pbnB1dE1ldGhvZEhpbnRzKCkgJiBRdDo6SW1oTm9QcmVkaWN0aXZl
VGV4dCk7Ci0jZWxzZQogICAgIFFWRVJJRlkod2ViVmlldy0+aW5wdXRNZXRob2RIaW50cygpID09
IFF0OjpJbWhOb25lKTsKLSNlbmRpZgogCiAgICAgLy8gJ3Bhc3N3b3JkJyBmaWVsZAogICAgIHdl
YlZpZXctPmZpcmVNb3VzZUNsaWNrKFFQb2ludEYoMjAuMCwgNjAuMCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2ViZnJhbWUvdHN0X3F3ZWJmcmFtZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLmNwcAppbmRleCA5ZmUx
YWQwNjViNjE2YWM2ZDdlZmQ4MWRiM2VhMGQ3YTk4ZjQwZWEwLi40M2VhODZmZjUzNmFiNWZlMzMy
MDFiZWZmNjFjZDA4MTlkM2QxNzdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3Rz
L3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L3F0L3Rlc3Rz
L3F3ZWJmcmFtZS90c3RfcXdlYmZyYW1lLmNwcApAQCAtNjI1LDkgKzYyNSw3IEBAIHByaXZhdGUg
c2xvdHM6CiAgICAgdm9pZCBzZXRIdG1sV2l0aEpTQWxlcnQoKTsKICAgICB2b2lkIGlwdjZIb3N0
RW5jb2RpbmcoKTsKICAgICB2b2lkIG1ldGFEYXRhKCk7Ci0jaWYgIWRlZmluZWQoUV9XU19NQUVN
T181KSAmJiAhZGVmaW5lZChRVF9OT19DT01CT0JPWCkKLSAgICAvLyBhcyBtYWVtbyA1IGRvZXMg
bm90IHVzZSBRQ29tYm9Cb3hlcyB0byBpbXBsZW1lbnQgdGhlIHBvcHVwcwotICAgIC8vIHRoaXMg
dGVzdCBkb2VzIG5vdCBtYWtlIHNlbnNlIGZvciBpdC4KKyNpZiAhZGVmaW5lZChRVF9OT19DT01C
T0JPWCkKICAgICB2b2lkIHBvcHVwRm9jdXMoKTsKICNlbmRpZgogICAgIHZvaWQgaW5wdXRGaWVs
ZEZvY3VzKCk7CkBAIC0yNjc0LDcgKzI2NzIsNyBAQCB2b2lkIHRzdF9RV2ViRnJhbWU6Om1ldGFE
YXRhKCkKICAgICBRQ09NUEFSRShtZXRhRGF0YS52YWx1ZSgibm9uZXhpc3RhbnQiKSwgUVN0cmlu
ZygpKTsKIH0KIAotI2lmICFkZWZpbmVkKFFfV1NfTUFFTU9fNSkgJiYgIWRlZmluZWQoUVRfTk9f
Q09NQk9CT1gpCisjaWYgIWRlZmluZWQoUVRfTk9fQ09NQk9CT1gpCiB2b2lkIHRzdF9RV2ViRnJh
bWU6OnBvcHVwRm9jdXMoKQogewogICAgIFFXZWJWaWV3IHZpZXc7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L3F0L3Rlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L3F0L3Rlc3RzL3F3ZWJ2aWV3L3RzdF9xd2Vidmlldy5jcHAKaW5kZXggMTU5ZjAyNDdkOWEx
NjQ4Mzc3M2YxMTgyZDM1NWY1ZDNlZTUyYjA2ZS4uYmUyYzRjOTg1ZWRkMDhlYzQxNzgzYzg1ZjJm
NmY2M2MxMzM2NjVjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9xdC90ZXN0cy9xd2Vidmll
dy90c3RfcXdlYnZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvcXQvdGVzdHMvcXdlYnZpZXcv
dHN0X3F3ZWJ2aWV3LmNwcApAQCAtMjQ2LDEyICsyNDYsNyBAQCB2b2lkIHRzdF9RV2ViVmlldzo6
Zm9jdXNJbnB1dFR5cGVzKCkKICAgICAvLyAndGV4dCcgdHlwZQogICAgIFFXZWJFbGVtZW50IGlu
cHV0RWxlbWVudCA9IG1haW5GcmFtZS0+ZG9jdW1lbnRFbGVtZW50KCkuZmluZEZpcnN0KFFMYXRp
bjFTdHJpbmcoImlucHV0W3R5cGU9dGV4dF0iKSk7CiAgICAgUVRlc3Q6Om1vdXNlQ2xpY2soJndl
YlZpZXcsIFF0OjpMZWZ0QnV0dG9uLCAwLCBpbnB1dEVsZW1lbnQuZ2VvbWV0cnkoKS5jZW50ZXIo
KSk7Ci0jaWYgZGVmaW5lZChRX1dTX01BRU1PXzUpIHx8IGRlZmluZWQoUV9XU19NQUVNT182KQot
ICAgIFFWRVJJRlkod2ViVmlldy5pbnB1dE1ldGhvZEhpbnRzKCkgJiBRdDo6SW1oTm9BdXRvVXBw
ZXJjYXNlKTsKLSAgICBRVkVSSUZZKHdlYlZpZXcuaW5wdXRNZXRob2RIaW50cygpICYgUXQ6Oklt
aE5vUHJlZGljdGl2ZVRleHQpOwotI2Vsc2UKICAgICBRVkVSSUZZKHdlYlZpZXcuaW5wdXRNZXRo
b2RIaW50cygpID09IFF0OjpJbWhOb25lKTsKLSNlbmRpZgogICAgIFFWRVJJRlkod2ViVmlldy50
ZXN0QXR0cmlidXRlKFF0OjpXQV9JbnB1dE1ldGhvZEVuYWJsZWQpKTsKIAogICAgIC8vICdwYXNz
d29yZCcgZmllbGQKQEAgLTI5MywxMiArMjg4LDcgQEAgdm9pZCB0c3RfUVdlYlZpZXc6OmZvY3Vz
SW5wdXRUeXBlcygpCiAgICAgLy8gJ3RleHQnIHR5cGUKICAgICBpbnB1dEVsZW1lbnQgPSBtYWlu
RnJhbWUtPmRvY3VtZW50RWxlbWVudCgpLmZpbmRGaXJzdChRTGF0aW4xU3RyaW5nKCJpbnB1dFt0
eXBlPXRleHRdIikpOwogICAgIFFUZXN0Ojptb3VzZUNsaWNrKCZ3ZWJWaWV3LCBRdDo6TGVmdEJ1
dHRvbiwgMCwgaW5wdXRFbGVtZW50Lmdlb21ldHJ5KCkuY2VudGVyKCkpOwotI2lmIGRlZmluZWQo
UV9XU19NQUVNT181KSB8fCBkZWZpbmVkKFFfV1NfTUFFTU9fNikKLSAgICBRVkVSSUZZKHdlYlZp
ZXcuaW5wdXRNZXRob2RIaW50cygpICYgUXQ6OkltaE5vQXV0b1VwcGVyY2FzZSk7Ci0gICAgUVZF
UklGWSh3ZWJWaWV3LmlucHV0TWV0aG9kSGludHMoKSAmIFF0OjpJbWhOb1ByZWRpY3RpdmVUZXh0
KTsKLSNlbHNlCiAgICAgUVZFUklGWSh3ZWJWaWV3LmlucHV0TWV0aG9kSGludHMoKSA9PSBRdDo6
SW1oTm9uZSk7Ci0jZW5kaWYKICAgICBRVkVSSUZZKHdlYlZpZXcudGVzdEF0dHJpYnV0ZShRdDo6
V0FfSW5wdXRNZXRob2RFbmFibGVkKSk7CiAKICAgICAvLyAncGFzc3dvcmQnIGZpZWxkCmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNjg5NGIxNzRh
YmY2NDY4NmVjZjA3YjVlODQ0YmEwMGM2MjQyZjUzMy4uOGUyMjEwNTE5ODI2N2RmZjg4ODQwYTJl
Yjk0Y2E4NmNjOWUzMzBjNyAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xz
L0NoYW5nZUxvZwpAQCAtMSw1ICsxLDI0IEBACiAyMDExLTExLTAzICBTaW1vbiBIYXVzbWFubiAg
PHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KIAorICAgICAgICBbUXRdIFJlbW92ZSBNYWVtbyBz
cGVjaWZpYyBjb2RlIHBhdGhzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD03MTQ3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgICogUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5jcHA6CisgICAgICAgIChM
YXVuY2hlcldpbmRvdzo6fkxhdW5jaGVyV2luZG93KToKKyAgICAgICAgKExhdW5jaGVyV2luZG93
Ojppbml0KToKKyAgICAgICAgKExhdW5jaGVyV2luZG93OjpzaG93TGlua0hvdmVyKToKKyAgICAg
ICAgKExhdW5jaGVyV2luZG93OjpzZWxlY3RFbGVtZW50cyk6CisgICAgICAgIChMYXVuY2hlcldp
bmRvdzo6c2hvd0ZQUyk6CisgICAgICAgIChMYXVuY2hlcldpbmRvdzo6dXBkYXRlRlBTKToKKyAg
ICAgICAgKiBRdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93Lmg6CisgICAgICAgIChXaW5kb3dP
cHRpb25zOjpXaW5kb3dPcHRpb25zKToKKyAgICAgICAgKiBRdFRlc3RCcm93c2VyL2xvY2F0aW9u
ZWRpdC5jcHA6CisgICAgICAgICogUXRUZXN0QnJvd3Nlci9sb2NhdGlvbmVkaXQuaDoKKworMjAx
MS0xMS0wMyAgU2ltb24gSGF1c21hbm4gIDxzaW1vbi5oYXVzbWFubkBub2tpYS5jb20+CisKICAg
ICAgICAgW1F0XSBVbmFibGUgdG8gc3RhcnQgTWluaUJyb3dzZXIgYWZ0ZXIgcnVuLXdlYmtpdC10
ZXN0cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzE0
NjkKIApkaWZmIC0tZ2l0IGEvVG9vbHMvUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5jcHAg
Yi9Ub29scy9RdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmNwcAppbmRleCA1ZWNlMGViNDFm
NDk5Nzg3NzJkODJlNWU4MWJjODU3NjFiOGE0MmYxLi4wMjhlZWIwYTMwODRmZjlhZDJmMzdlMzcz
ZTgzNDY3YTE1MjEwMjlmIDEwMDY0NAotLS0gYS9Ub29scy9RdFRlc3RCcm93c2VyL2xhdW5jaGVy
d2luZG93LmNwcAorKysgYi9Ub29scy9RdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmNwcApA
QCAtMTExLDcgKzExMSw2IEBAIExhdW5jaGVyV2luZG93OjpMYXVuY2hlcldpbmRvdyhXaW5kb3dP
cHRpb25zKiBkYXRhLCBRR3JhcGhpY3NTY2VuZSogc2hhcmVkU2NlbmUpCiAKIExhdW5jaGVyV2lu
ZG93Ojp+TGF1bmNoZXJXaW5kb3coKQogewotICAgIGdyYWJab29tS2V5cyhmYWxzZSk7CiAgICAg
ZGVsZXRlIG1fdXJsTG9hZGVyOwogfQogCkBAIC0xMzksOCArMTM4LDYgQEAgdm9pZCBMYXVuY2hl
cldpbmRvdzo6aW5pdCgpCiAgICAgICAgIG1fem9vbUxldmVscyA8PCAxMTAgPDwgMTIwIDw8IDEz
MyA8PCAxNTAgPDwgMTcwIDw8IDIwMCA8PCAyNDAgPDwgMzAwOwogICAgIH0KIAotICAgIGdyYWJa
b29tS2V5cyh0cnVlKTsKLQogICAgIGluaXRpYWxpemVWaWV3KCk7CiB9CiAKQEAgLTUzNSw0MiAr
NTMyLDYgQEAgYm9vbCBMYXVuY2hlcldpbmRvdzo6aXNHcmFwaGljc0Jhc2VkKCkgY29uc3QKICAg
ICByZXR1cm4gYm9vbChxb2JqZWN0X2Nhc3Q8UUdyYXBoaWNzVmlldyo+KG1fdmlldykpOwogfQog
Ci12b2lkIExhdW5jaGVyV2luZG93OjprZXlQcmVzc0V2ZW50KFFLZXlFdmVudCogZXZlbnQpCi17
Ci0jaWZkZWYgUV9XU19NQUVNT181Ci0gICAgc3dpdGNoIChldmVudC0+a2V5KCkpIHsKLSAgICBj
YXNlIFF0OjpLZXlfRjc6Ci0gICAgICAgIHpvb21JbigpOwotICAgICAgICBldmVudC0+YWNjZXB0
KCk7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUXQ6OktleV9GODoKLSAgICAgICAgem9vbU91
dCgpOwotICAgICAgICBldmVudC0+YWNjZXB0KCk7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSNl
bmRpZgotICAgIE1haW5XaW5kb3c6OmtleVByZXNzRXZlbnQoZXZlbnQpOwotfQotCi12b2lkIExh
dW5jaGVyV2luZG93OjpncmFiWm9vbUtleXMoYm9vbCBncmFiKQotewotI2lmZGVmIFFfV1NfTUFF
TU9fNQotICAgIGlmICghd2luSWQoKSkgewotICAgICAgICBxV2FybmluZygiQ2FuJ3QgZ3JhYiBr
ZXlzIHVubGVzcyB3ZSBoYXZlIGEgd2luZG93IGlkIik7Ci0gICAgICAgIHJldHVybjsKLSAgICB9
Ci0KLSAgICBBdG9tIGF0b20gPSBYSW50ZXJuQXRvbShRWDExSW5mbzo6ZGlzcGxheSgpLCAiX0hJ
TERPTl9aT09NX0tFWV9BVE9NIiwgRmFsc2UpOwotICAgIGlmICghYXRvbSkgewotICAgICAgICBx
V2FybmluZygiVW5hYmxlIHRvIG9idGFpbiBfSElMRE9OX1pPT01fS0VZX0FUT00iKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQotICAgIHVuc2lnbmVkIGxvbmcgdmFsID0gKGdyYWIpID8gMSA6
IDA7Ci0gICAgWENoYW5nZVByb3BlcnR5KFFYMTFJbmZvOjpkaXNwbGF5KCksIHdpbklkKCksIGF0
b20sIFhBX0lOVEVHRVIsIDMyLCBQcm9wTW9kZVJlcGxhY2UsIHJlaW50ZXJwcmV0X2Nhc3Q8dW5z
aWduZWQgY2hhcio+KCZ2YWwpLCAxKTsKLSNlbmRpZgotfQotCiB2b2lkIExhdW5jaGVyV2luZG93
OjpzZW5kVG91Y2hFdmVudCgpCiB7CiAgICAgaWYgKG1fdG91Y2hQb2ludHMuaXNFbXB0eSgpKQpA
QCAtNjkzLDkgKzY1NCw3IEBAIHZvaWQgTGF1bmNoZXJXaW5kb3c6OmxvYWRGaW5pc2hlZCgpCiAK
IHZvaWQgTGF1bmNoZXJXaW5kb3c6OnNob3dMaW5rSG92ZXIoY29uc3QgUVN0cmluZyAmbGluaywg
Y29uc3QgUVN0cmluZyAmdG9vbFRpcCkKIHsKLSNpZm5kZWYgUV9XU19NQUVNT181CiAgICAgc3Rh
dHVzQmFyKCktPnNob3dNZXNzYWdlKGxpbmspOwotI2VuZGlmCiAjaWZuZGVmIFFUX05PX1RPT0xU
SVAKICAgICBpZiAoIXRvb2xUaXAuaXNFbXB0eSgpKQogICAgICAgICBRVG9vbFRpcDo6c2hvd1Rl
eHQoUUN1cnNvcjo6cG9zKCksIHRvb2xUaXApOwpAQCAtODM1LDkgKzc5NCw3IEBAIHZvaWQgTGF1
bmNoZXJXaW5kb3c6OnNlbGVjdEVsZW1lbnRzKCkKICAgICAgICAgUVdlYkVsZW1lbnRDb2xsZWN0
aW9uIHJlc3VsdCA9ICBwYWdlKCktPm1haW5GcmFtZSgpLT5maW5kQWxsRWxlbWVudHMoc3RyKTsK
ICAgICAgICAgZm9yZWFjaCAoUVdlYkVsZW1lbnQgZSwgcmVzdWx0KQogICAgICAgICAgICAgZS5z
ZXRTdHlsZVByb3BlcnR5KCJiYWNrZ3JvdW5kLWNvbG9yIiwgInllbGxvdyIpOwotI2lmbmRlZiBR
X1dTX01BRU1PXzUKICAgICAgICAgc3RhdHVzQmFyKCktPnNob3dNZXNzYWdlKFFTdHJpbmcoIiUx
IGVsZW1lbnQocykgc2VsZWN0ZWQiKS5hcmcocmVzdWx0LmNvdW50KCkpLCA1MDAwKTsKLSNlbmRp
ZgogICAgIH0KICNlbmRpZgogfQpAQCAtOTg4LDEzICs5NDUsOCBAQCB2b2lkIExhdW5jaGVyV2lu
ZG93OjpzaG93RlBTKGJvb2wgZW5hYmxlKQogICAgIFdlYlZpZXdHcmFwaGljc0Jhc2VkKiB2aWV3
ID0gc3RhdGljX2Nhc3Q8V2ViVmlld0dyYXBoaWNzQmFzZWQqPihtX3ZpZXcpOwogICAgIHZpZXct
PnNldEZyYW1lUmF0ZU1lYXN1cmVtZW50RW5hYmxlZChlbmFibGUpOwogCi0gICAgaWYgKCFlbmFi
bGUpIHsKLSNpZiBkZWZpbmVkKFFfV1NfTUFFTU9fNSkKLSAgICAgICAgc2V0V2luZG93VGl0bGUo
IiIpOwotI2Vsc2UKKyAgICBpZiAoIWVuYWJsZSkKICAgICAgICAgc3RhdHVzQmFyKCktPmNsZWFy
TWVzc2FnZSgpOwotI2VuZGlmCi0gICAgfQogfQogCiB2b2lkIExhdW5jaGVyV2luZG93OjpzaG93
VXNlckFnZW50RGlhbG9nKCkKQEAgLTEwOTksMTEgKzEwNTEsNyBAQCB2b2lkIExhdW5jaGVyV2lu
ZG93Ojp1cGRhdGVGUFMoaW50IGZwcykKIHsKICAgICBRU3RyaW5nIGZwc1N0YXR1c1RleHQgPSBR
U3RyaW5nKCJDdXJyZW50IEZQUzogJTEiKS5hcmcoZnBzKTsKIAotI2lmIGRlZmluZWQoUV9XU19N
QUVNT181KQotICAgIHNldFdpbmRvd1RpdGxlKGZwc1N0YXR1c1RleHQpOwotI2Vsc2UKICAgICBz
dGF0dXNCYXIoKS0+c2hvd01lc3NhZ2UoZnBzU3RhdHVzVGV4dCk7Ci0jZW5kaWYKIH0KIAogdm9p
ZCBMYXVuY2hlcldpbmRvdzo6dG9nZ2xlTG9jYWxTdG9yYWdlKGJvb2wgdG9nZ2xlKQpkaWZmIC0t
Z2l0IGEvVG9vbHMvUXRUZXN0QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5oIGIvVG9vbHMvUXRUZXN0
QnJvd3Nlci9sYXVuY2hlcndpbmRvdy5oCmluZGV4IDk1NGJkZTRkMWM0OWY3OWFmYjMxMjE5OGQ2
M2MzMTM3ZGI1ZjlkYzUuLjg5OTVlZDQzZGE5NDBiODVmNzYzNTVmNWUyN2FmZDhhMjVhMDdjNTkg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL1F0VGVzdEJyb3dzZXIvbGF1bmNoZXJ3aW5kb3cuaAorKysgYi9U
b29scy9RdFRlc3RCcm93c2VyL2xhdW5jaGVyd2luZG93LmgKQEAgLTU2LDEwICs1Niw2IEBACiAj
aW5jbHVkZSA8cXdlYmluc3BlY3Rvci5oPgogI2luY2x1ZGUgPHF3ZWJzZXR0aW5ncy5oPgogCi0j
aWZkZWYgUV9XU19NQUVNT181Ci0jaW5jbHVkZSA8cXgxMWluZm9feDExLmg+Ci0jZW5kaWYKLQog
I2luY2x1ZGUgIkR1bXBSZW5kZXJUcmVlU3VwcG9ydFF0LmgiCiAjaW5jbHVkZSAibWFpbndpbmRv
dy5oIgogI2luY2x1ZGUgInVybGxvYWRlci5oIgpAQCAtNjgsMTIgKzY0LDYgQEAKICNpbmNsdWRl
ICJ3ZWJwYWdlLmgiCiAjaW5jbHVkZSAid2Vidmlldy5oIgogCi0jaWZkZWYgUV9XU19NQUVNT181
Ci0jaW5jbHVkZSA8WDExL1hhdG9tLmg+Ci0jaW5jbHVkZSA8WDExL1hsaWIuaD4KLSN1bmRlZiBL
ZXlQcmVzcwotI2VuZGlmCi0KIGNsYXNzIFFQcm9wZXJ0eUFuaW1hdGlvbjsKIAogY2xhc3MgV2lu
ZG93T3B0aW9ucyB7CkBAIC04NCwxMSArNzQsNyBAQCBwdWJsaWM6CiAgICAgICAgICwgdXNlQ29t
cG9zaXRpbmcodHJ1ZSkKICAgICAgICAgLCB1c2VUaWxlZEJhY2tpbmdTdG9yZShmYWxzZSkKICAg
ICAgICAgLCB1c2VXZWJHTChmYWxzZSkKLSNpZiBkZWZpbmVkKFFfV1NfTUFFTU9fNSkKLSAgICAg
ICAgLCB1c2VGcmFtZUZsYXR0ZW5pbmcodHJ1ZSkKLSNlbHNlCiAgICAgICAgICwgdXNlRnJhbWVG
bGF0dGVuaW5nKGZhbHNlKQotI2VuZGlmCiAgICAgICAgICwgY2FjaGVXZWJWaWV3KGZhbHNlKQog
ICAgICAgICAsIHNob3dGcmFtZVJhdGUoZmFsc2UpCiAgICAgICAgICwgcmVzaXplc1RvQ29udGVu
dHMoZmFsc2UpCkBAIC0xNDMsOSArMTI5LDYgQEAgcHVibGljOgogICAgIExhdW5jaGVyV2luZG93
KFdpbmRvd09wdGlvbnMqIGRhdGEgPSAwLCBRR3JhcGhpY3NTY2VuZSogc2hhcmVkU2NlbmUgPSAw
KTsKICAgICB2aXJ0dWFsIH5MYXVuY2hlcldpbmRvdygpOwogCi0gICAgdmlydHVhbCB2b2lkIGtl
eVByZXNzRXZlbnQoUUtleUV2ZW50KiBldmVudCk7Ci0gICAgdm9pZCBncmFiWm9vbUtleXMoYm9v
bCBncmFiKTsKLQogICAgIHZvaWQgc2VuZFRvdWNoRXZlbnQoKTsKIAogICAgIGJvb2wgZXZlbnRG
aWx0ZXIoUU9iamVjdCogb2JqLCBRRXZlbnQqIGV2ZW50KTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1F0
VGVzdEJyb3dzZXIvbG9jYXRpb25lZGl0LmNwcCBiL1Rvb2xzL1F0VGVzdEJyb3dzZXIvbG9jYXRp
b25lZGl0LmNwcAppbmRleCAwNGE2MDE4ZGIxOGVhYTNhYjFiZThmMmE2ZjM3NWRkNmQ5MTY2MTQx
Li42NDg5YjJiMmUyYzFlZmZlOTRmNjUwNjE1NTJjNjUyYTJiOTdiOWFkIDEwMDY0NAotLS0gYS9U
b29scy9RdFRlc3RCcm93c2VyL2xvY2F0aW9uZWRpdC5jcHAKKysrIGIvVG9vbHMvUXRUZXN0QnJv
d3Nlci9sb2NhdGlvbmVkaXQuY3BwCkBAIC0xMjEsMTIgKzEyMSw0IEBAIHZvaWQgTG9jYXRpb25F
ZGl0OjpwYWludEV2ZW50KFFQYWludEV2ZW50KiBldikKICAgICAgICAgbV9jbGVhclRpbWVyLnN0
YXJ0KDEwMCk7CiB9CiAKLXZvaWQgTG9jYXRpb25FZGl0Ojpmb2N1c0luRXZlbnQoUUZvY3VzRXZl
bnQqIGV2KQotewotICAgIFFMaW5lRWRpdDo6Zm9jdXNJbkV2ZW50KGV2KTsKLSNpZmRlZiBRX1dT
X01BRU1PXzUKLSAgICBRVGltZXI6OnNpbmdsZVNob3QoMCwgdGhpcywgU0xPVChzZWxlY3RBbGwo
KSkpOwotI2VuZGlmCi19Ci0KICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvUXRUZXN0QnJvd3Nl
ci9sb2NhdGlvbmVkaXQuaCBiL1Rvb2xzL1F0VGVzdEJyb3dzZXIvbG9jYXRpb25lZGl0LmgKaW5k
ZXggYWJkZDliODgxMjMyMmZkMTY3ZTE2N2VmYWE0MDY3MDRhM2EwNjYxNy4uYjY0NDc0ZGU3OTY3
MjVjN2Q4ODM2YjhkMTQ3YWRhZmNhMWFiZjEyOCAxMDA2NDQKLS0tIGEvVG9vbHMvUXRUZXN0QnJv
d3Nlci9sb2NhdGlvbmVkaXQuaAorKysgYi9Ub29scy9RdFRlc3RCcm93c2VyL2xvY2F0aW9uZWRp
dC5oCkBAIC01NCw3ICs1NCw2IEBAIHByaXZhdGUgc2xvdHM6CiAKIHByb3RlY3RlZDoKICAgICB2
aXJ0dWFsIHZvaWQgcGFpbnRFdmVudChRUGFpbnRFdmVudCopOwotICAgIHZpcnR1YWwgdm9pZCBm
b2N1c0luRXZlbnQoUUZvY3VzRXZlbnQqKTsKICAgICB2aXJ0dWFsIHZvaWQgcmVzaXplRXZlbnQo
UVJlc2l6ZUV2ZW50Kik7CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9DaGFuZ2VMb2cgYi9DaGFu
Z2VMb2cKaW5kZXggMDM0Mjc3MGI5NDBjZDBiZTFhY2ZmOWRkYzk5ZDExMTNlNTBjNTBiNi4uNmRm
NWI1ZTU4N2I5YmE3ZGI5OTdlMDM4ZTU1NmM2YjJmYTYyOGRmZCAxMDA2NDQKLS0tIGEvQ2hhbmdl
TG9nCisrKyBiL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDExLTExLTAzICBTaW1vbiBI
YXVzbWFubiAgPHNpbW9uLmhhdXNtYW5uQG5va2lhLmNvbT4KKworICAgICAgICBbUXRdIFJlbW92
ZSBNYWVtbyBzcGVjaWZpYyBjb2RlIHBhdGhzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD03MTQ3NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogU291cmNlL1dlYktpdC5wcmk6CisKIDIwMTEtMTEtMDMgIERv
bmd3b28gSW0gIDxkdy5pbUBzYW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBFbmFibGUgdGhl
IFBhZ2UgVmlzaWJpbGl0eSBBUEkuCg==
</data>
<flag name="review"
          id="111889"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
      

    </bug>

</bugzilla>