<?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>91457</bug_id>
          
          <creation_ts>2012-07-16 17:48:10 -0700</creation_ts>
          <short_desc>[Chromium] Move TextInputController into TestRunner.a</short_desc>
          <delta_ts>2012-07-17 01:11:52 -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>
          
          <blocked>91308</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>jochen</cc>
    
    <cc>ojan</cc>
    
    <cc>rniwa</cc>
    
    <cc>tony</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>670839</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-16 17:48:10 -0700</bug_when>
    <thetext>[Chromium] Move TextInputController into TestRunner.a</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670843</commentid>
    <comment_count>1</comment_count>
      <attachid>152660</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-16 17:49:19 -0700</bug_when>
    <thetext>Created attachment 152660
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>670952</commentid>
    <comment_count>2</comment_count>
      <attachid>152660</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2012-07-16 20:55:43 -0700</bug_when>
    <thetext>Comment on attachment 152660
Patch

rs=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671070</commentid>
    <comment_count>3</comment_count>
      <attachid>152660</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-17 01:11:47 -0700</bug_when>
    <thetext>Comment on attachment 152660
Patch

Clearing flags on attachment: 152660

Committed r122822: &lt;http://trac.webkit.org/changeset/122822&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>671071</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-07-17 01:11:52 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>152660</attachid>
            <date>2012-07-16 17:49:19 -0700</date>
            <delta_ts>2012-07-17 01:11:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-91457-20120716174925.patch</filename>
            <type>text/plain</type>
            <size>26624</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTIyNjU5CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDA1MjM4YmRhNTk0ZDNhZTE3NzA3YzkzNTM1NDRmZTdl
MWMyZWNkYy4uOTJjYTA4MmVlN2U3NTJlMzA0YjI2N2ZhMzM0MjAxMWE5N2FjNDJmZiAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIw
IEBACiAyMDEyLTA3LTE2ICBBZGFtIEJhcnRoICA8YWJhcnRoQHdlYmtpdC5vcmc+CiAKKyAgICAg
ICAgW0Nocm9taXVtXSBNb3ZlIFRleHRJbnB1dENvbnRyb2xsZXIgaW50byBUZXN0UnVubmVyLmEK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTkxNDU3CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBpcyBwdXJlbHkgbW92aW5nIGNvZGUuIFRleHRJbnB1dENvbnRyb2xsZXIgaXMgb25lIG9mIHRo
ZQorICAgICAgICBvYmplY3RzIGV4cG9zZWQgdG8gSmF2YVNjcmlwdCBhbmQgc28gc2hvdWxkIGJl
IGluIHRoZSBUZXN0UnVubmVyCisgICAgICAgIGxpYnJhcnkuCisKKyAgICAgICAgKiBEdW1wUmVu
ZGVyVHJlZS9EdW1wUmVuZGVyVHJlZS5neXBpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvVGV4dElucHV0Q29udHJvbGxlci5jcHA6IFJlbmFtZWQgZnJvbSBU
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXh0SW5wdXRDb250cm9sbGVyLmNwcC4KKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL1RleHRJbnB1dENvbnRy
b2xsZXIuaDogUmVuYW1lZCBmcm9tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1RleHRJ
bnB1dENvbnRyb2xsZXIuaC4KKworMjAxMi0wNy0xNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJr
aXQub3JnPgorCiAgICAgICAgIFtDaHJvbWl1bV0gVGV4dElucHV0Q29udHJvbGxlciBzaG91bGRu
J3Qga25vdyBhYm91dCBUZXN0U2hlbGwKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTkxNDU1CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVl
L0R1bXBSZW5kZXJUcmVlLmd5cGkgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9EdW1wUmVuZGVyVHJl
ZS5neXBpCmluZGV4IDVjNTQyODczYzYxM2MxZDY0YjY0MjU3YTAzZDZkZDZjNzdmOWVlZjcuLjYx
ZTZhMTM4ZmE0OWY2NjNiY2IxM2JmZGZmMzgzNGEyOGMzZTE5MDEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL0R1bXBSZW5kZXJUcmVlLmd5cGkKKysrIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvRHVtcFJlbmRlclRyZWUuZ3lwaQpAQCAtMzYsOCArMzYsNiBAQAogICAgICAgICAgICAg
J2Nocm9taXVtL1Rlc3RTaGVsbFgxMS5jcHAnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RX
ZWJQbHVnaW4uY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0V2ViUGx1Z2luLmgnLAot
ICAgICAgICAgICAgJ2Nocm9taXVtL1RleHRJbnB1dENvbnRyb2xsZXIuY3BwJywKLSAgICAgICAg
ICAgICdjaHJvbWl1bS9UZXh0SW5wdXRDb250cm9sbGVyLmgnLAogICAgICAgICAgICAgJ2Nocm9t
aXVtL1dlYlBlcm1pc3Npb25zLmNwcCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vV2ViUGVybWlz
c2lvbnMuaCcsCiAgICAgICAgICAgICAnY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuY3BwJywKQEAg
LTYyLDEyICs2MCwxNCBAQAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5uZXIvQ3BwQm91
bmRDbGFzcy5oJywKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL0NwcFZhcmlhbnQu
Y3BwJywKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVyL0NwcFZhcmlhbnQuaCcsCisg
ICAgICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9HYW1lcGFkQ29udHJvbGxlci5jcHAnLAor
ICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5uZXIvR2FtZXBhZENvbnRyb2xsZXIuaCcsCiAg
ICAgICAgICAgICAnY2hyb21pdW0vVGVzdFJ1bm5lci9UYXNrLmNwcCcsCiAgICAgICAgICAgICAn
Y2hyb21pdW0vVGVzdFJ1bm5lci9UYXNrLmgnLAogICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RS
dW5uZXIvVGVzdEludGVyZmFjZXMuY3BwJywKICAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVu
bmVyL1Rlc3RJbnRlcmZhY2VzLmgnLAotICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5uZXIv
R2FtZXBhZENvbnRyb2xsZXIuY3BwJywKLSAgICAgICAgICAgICdjaHJvbWl1bS9UZXN0UnVubmVy
L0dhbWVwYWRDb250cm9sbGVyLmgnLAorICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5uZXIv
VGV4dElucHV0Q29udHJvbGxlci5jcHAnLAorICAgICAgICAgICAgJ2Nocm9taXVtL1Rlc3RSdW5u
ZXIvVGV4dElucHV0Q29udHJvbGxlci5oJywKICAgICAgICAgXSwKICAgICAgICAgJ3Rlc3RfcGx1
Z2luX2ZpbGVzJzogWwogICAgICAgICAgICAgJ1Rlc3ROZXRzY2FwZVBsdWdJbi9QbHVnaW5PYmpl
Y3QuY3BwJywKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RS
dW5uZXIvVGV4dElucHV0Q29udHJvbGxlci5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXN0UnVubmVyL1RleHRJbnB1dENvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI3MmEy
MDgwZDJjMDk3NThhZTE5NDNhMTRhMjFmOTNhNDA2Nzc3Y2IKLS0tIC9kZXYvbnVsbAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0UnVubmVyL1RleHRJbnB1dENvbnRyb2xs
ZXIuY3BwCkBAIC0wLDAgKzEsMjMzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEwIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAq
IGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRo
ZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRy
aWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZl
ZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBw
ZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlS
SUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRP
LCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UK
KyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRl
eHRJbnB1dENvbnRyb2xsZXIuaCIKKworI2luY2x1ZGUgIldlYkJpbmRpbmdzLmgiCisjaW5jbHVk
ZSAiV2ViQ29tcG9zaXRpb25VbmRlcmxpbmUuaCIKKyNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2lu
Y2x1ZGUgIldlYklucHV0RXZlbnQuaCIKKyNpbmNsdWRlICJXZWJSYW5nZS5oIgorI2luY2x1ZGUg
IldlYlZpZXcuaCIKKyNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTdHJpbmcuaCIKKyNpbmNsdWRlICJw
bGF0Zm9ybS9XZWJWZWN0b3IuaCIKKyNpbmNsdWRlIDxzdHJpbmc+CisjaW5jbHVkZSA8d3RmL1N0
cmluZ0V4dHJhcy5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViS2l0OworCitUZXh0SW5wdXRDb250
cm9sbGVyOjpUZXh0SW5wdXRDb250cm9sbGVyKCkKK3sKKyAgICBiaW5kTWV0aG9kKCJhdHRyaWJ1
dGVkU3Vic3RyaW5nRnJvbVJhbmdlIiwgJlRleHRJbnB1dENvbnRyb2xsZXI6OmF0dHJpYnV0ZWRT
dWJzdHJpbmdGcm9tUmFuZ2UpOworICAgIGJpbmRNZXRob2QoImNoYXJhY3RlckluZGV4Rm9yUG9p
bnQiLCAmVGV4dElucHV0Q29udHJvbGxlcjo6Y2hhcmFjdGVySW5kZXhGb3JQb2ludCk7CisgICAg
YmluZE1ldGhvZCgiY29udmVyc2F0aW9uSWRlbnRpZmllciIsICZUZXh0SW5wdXRDb250cm9sbGVy
Ojpjb252ZXJzYXRpb25JZGVudGlmaWVyKTsKKyAgICBiaW5kTWV0aG9kKCJkb0NvbW1hbmQiLCAm
VGV4dElucHV0Q29udHJvbGxlcjo6ZG9Db21tYW5kKTsKKyAgICBiaW5kTWV0aG9kKCJmaXJzdFJl
Y3RGb3JDaGFyYWN0ZXJSYW5nZSIsICZUZXh0SW5wdXRDb250cm9sbGVyOjpmaXJzdFJlY3RGb3JD
aGFyYWN0ZXJSYW5nZSk7CisgICAgYmluZE1ldGhvZCgiaGFzTWFya2VkVGV4dCIsICZUZXh0SW5w
dXRDb250cm9sbGVyOjpoYXNNYXJrZWRUZXh0KTsKKyAgICBiaW5kTWV0aG9kKCJpbnNlcnRUZXh0
IiwgJlRleHRJbnB1dENvbnRyb2xsZXI6Omluc2VydFRleHQpOworICAgIGJpbmRNZXRob2QoIm1h
a2VBdHRyaWJ1dGVkU3RyaW5nIiwgJlRleHRJbnB1dENvbnRyb2xsZXI6Om1ha2VBdHRyaWJ1dGVk
U3RyaW5nKTsKKyAgICBiaW5kTWV0aG9kKCJtYXJrZWRSYW5nZSIsICZUZXh0SW5wdXRDb250cm9s
bGVyOjptYXJrZWRSYW5nZSk7CisgICAgYmluZE1ldGhvZCgic2VsZWN0ZWRSYW5nZSIsICZUZXh0
SW5wdXRDb250cm9sbGVyOjpzZWxlY3RlZFJhbmdlKTsKKyAgICBiaW5kTWV0aG9kKCJzZXRNYXJr
ZWRUZXh0IiwgJlRleHRJbnB1dENvbnRyb2xsZXI6OnNldE1hcmtlZFRleHQpOworICAgIGJpbmRN
ZXRob2QoInN1YnN0cmluZ0Zyb21SYW5nZSIsICZUZXh0SW5wdXRDb250cm9sbGVyOjpzdWJzdHJp
bmdGcm9tUmFuZ2UpOworICAgIGJpbmRNZXRob2QoInVubWFya1RleHQiLCAmVGV4dElucHV0Q29u
dHJvbGxlcjo6dW5tYXJrVGV4dCk7CisgICAgYmluZE1ldGhvZCgidmFsaWRBdHRyaWJ1dGVzRm9y
TWFya2VkVGV4dCIsICZUZXh0SW5wdXRDb250cm9sbGVyOjp2YWxpZEF0dHJpYnV0ZXNGb3JNYXJr
ZWRUZXh0KTsKKyAgICBiaW5kTWV0aG9kKCJzZXRDb21wb3NpdGlvbiIsICZUZXh0SW5wdXRDb250
cm9sbGVyOjpzZXRDb21wb3NpdGlvbik7Cit9CisKK3ZvaWQgVGV4dElucHV0Q29udHJvbGxlcjo6
aW5zZXJ0VGV4dChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCog
cmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0TnVsbCgpOworCisgICAgaWYgKGFyZ3VtZW50cy5z
aXplKCkgPCAxIHx8ICFhcmd1bWVudHNbMF0uaXNTdHJpbmcoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgbV93ZWJWaWV3LT5jb25maXJtQ29tcG9zaXRpb24oV2ViU3RyaW5nOjpmcm9tVVRGOChh
cmd1bWVudHNbMF0udG9TdHJpbmcoKSkpOworfQorCit2b2lkIFRleHRJbnB1dENvbnRyb2xsZXI6
OmRvQ29tbWFuZChjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCog
cmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0TnVsbCgpOworCisgICAgV2ViRnJhbWUqIG1haW5G
cmFtZSA9IG1fd2ViVmlldy0+bWFpbkZyYW1lKCk7CisgICAgaWYgKCFtYWluRnJhbWUpCisgICAg
ICAgIHJldHVybjsKKworICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID49IDEgJiYgYXJndW1lbnRz
WzBdLmlzU3RyaW5nKCkpCisgICAgICAgIG1haW5GcmFtZS0+ZXhlY3V0ZUNvbW1hbmQoV2ViU3Ry
aW5nOjpmcm9tVVRGOChhcmd1bWVudHNbMF0udG9TdHJpbmcoKSkpOworfQorCit2b2lkIFRleHRJ
bnB1dENvbnRyb2xsZXI6OnNldE1hcmtlZFRleHQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1
bWVudHMsIENwcFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQtPnNldE51bGwoKTsKKwor
ICAgIGlmIChhcmd1bWVudHMuc2l6ZSgpID49IDMgJiYgYXJndW1lbnRzWzBdLmlzU3RyaW5nKCkK
KyAgICAgICAgJiYgYXJndW1lbnRzWzFdLmlzTnVtYmVyKCkgJiYgYXJndW1lbnRzWzJdLmlzTnVt
YmVyKCkpIHsKKyAgICAgICAgV2ViVmVjdG9yPFdlYkNvbXBvc2l0aW9uVW5kZXJsaW5lPiB1bmRl
cmxpbmVzOworICAgICAgICBtX3dlYlZpZXctPnNldENvbXBvc2l0aW9uKFdlYlN0cmluZzo6ZnJv
bVVURjgoYXJndW1lbnRzWzBdLnRvU3RyaW5nKCkpLAorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIHVuZGVybGluZXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXJndW1lbnRzWzFdLnRvSW50MzIoKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBhcmd1bWVudHNbMV0udG9JbnQzMigpICsgYXJndW1lbnRzWzJdLnRvSW50MzIoKSk7CisgICAg
fQorfQorCit2b2lkIFRleHRJbnB1dENvbnRyb2xsZXI6OnVubWFya1RleHQoY29uc3QgQ3BwQXJn
dW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0TnVsbCgp
OworCisgICAgbV93ZWJWaWV3LT5jb25maXJtQ29tcG9zaXRpb24oKTsKK30KKwordm9pZCBUZXh0
SW5wdXRDb250cm9sbGVyOjpoYXNNYXJrZWRUZXh0KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENw
cFZhcmlhbnQqIHJlc3VsdCkKK3sKKyAgICByZXN1bHQtPnNldE51bGwoKTsKKworICAgIFdlYkZy
YW1lKiBtYWluRnJhbWUgPSBtX3dlYlZpZXctPm1haW5GcmFtZSgpOworICAgIGlmICghbWFpbkZy
YW1lKQorICAgICAgICByZXR1cm47CisKKyAgICByZXN1bHQtPnNldChtYWluRnJhbWUtPmhhc01h
cmtlZFRleHQoKSk7Cit9CisKK3ZvaWQgVGV4dElucHV0Q29udHJvbGxlcjo6Y29udmVyc2F0aW9u
SWRlbnRpZmllcihjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCit7
CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorICAgIHJlc3VsdC0+c2V0TnVsbCgpOwor
fQorCit2b2lkIFRleHRJbnB1dENvbnRyb2xsZXI6OnN1YnN0cmluZ0Zyb21SYW5nZShjb25zdCBD
cHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgLy8gRklYTUU6IElt
cGxlbWVudCB0aGlzLgorICAgIHJlc3VsdC0+c2V0TnVsbCgpOworfQorCit2b2lkIFRleHRJbnB1
dENvbnRyb2xsZXI6OmF0dHJpYnV0ZWRTdWJzdHJpbmdGcm9tUmFuZ2UoY29uc3QgQ3BwQXJndW1l
bnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQg
dGhpcy4KKyAgICByZXN1bHQtPnNldE51bGwoKTsKK30KKwordm9pZCBUZXh0SW5wdXRDb250cm9s
bGVyOjptYXJrZWRSYW5nZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1
bHQpCit7CisgICAgcmVzdWx0LT5zZXROdWxsKCk7CisKKyAgICBXZWJGcmFtZSogbWFpbkZyYW1l
ID0gbV93ZWJWaWV3LT5tYWluRnJhbWUoKTsKKyAgICBpZiAoIW1haW5GcmFtZSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgV2ViUmFuZ2UgcmFuZ2UgPSBtYWluRnJhbWUtPm1hcmtlZFJhbmdlKCk7
CisgICAgVmVjdG9yPGludD4gaW50QXJyYXkoMik7CisgICAgaW50QXJyYXlbMF0gPSByYW5nZS5z
dGFydE9mZnNldCgpOworICAgIGludEFycmF5WzFdID0gcmFuZ2UuZW5kT2Zmc2V0KCk7CisgICAg
cmVzdWx0LT5zZXQoV2ViQmluZGluZ3M6Om1ha2VJbnRBcnJheShpbnRBcnJheSkpOworfQorCit2
b2lkIFRleHRJbnB1dENvbnRyb2xsZXI6OnNlbGVjdGVkUmFuZ2UoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0TnVsbCgpOworCisg
ICAgV2ViRnJhbWUqIG1haW5GcmFtZSA9IG1fd2ViVmlldy0+bWFpbkZyYW1lKCk7CisgICAgaWYg
KCFtYWluRnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIFdlYlJhbmdlIHJhbmdlID0gbWFp
bkZyYW1lLT5zZWxlY3Rpb25SYW5nZSgpOworICAgIFZlY3RvcjxpbnQ+IGludEFycmF5KDIpOwor
ICAgIGludEFycmF5WzBdID0gcmFuZ2Uuc3RhcnRPZmZzZXQoKTsKKyAgICBpbnRBcnJheVsxXSA9
IHJhbmdlLmVuZE9mZnNldCgpOworICAgIHJlc3VsdC0+c2V0KFdlYkJpbmRpbmdzOjptYWtlSW50
QXJyYXkoaW50QXJyYXkpKTsKK30KKwordm9pZCBUZXh0SW5wdXRDb250cm9sbGVyOjpmaXJzdFJl
Y3RGb3JDaGFyYWN0ZXJSYW5nZShjb25zdCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3Bw
VmFyaWFudCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+c2V0TnVsbCgpOworCisgICAgV2ViRnJh
bWUqIGZyYW1lID0gbV93ZWJWaWV3LT5mb2N1c2VkRnJhbWUoKTsKKyAgICBpZiAoIWZyYW1lKQor
ICAgICAgICByZXR1cm47CisKKyAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA8IDIgfHwgIWFyZ3Vt
ZW50c1swXS5pc051bWJlcigpIHx8ICFhcmd1bWVudHNbMV0uaXNOdW1iZXIoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgV2ViUmVjdCByZWN0OworICAgIGlmICghZnJhbWUtPmZpcnN0UmVjdEZv
ckNoYXJhY3RlclJhbmdlKGFyZ3VtZW50c1swXS50b0ludDMyKCksIGFyZ3VtZW50c1sxXS50b0lu
dDMyKCksIHJlY3QpKQorICAgICAgICByZXR1cm47CisKKyAgICBWZWN0b3I8aW50PiBpbnRBcnJh
eSg0KTsKKyAgICBpbnRBcnJheVswXSA9IHJlY3QueDsKKyAgICBpbnRBcnJheVsxXSA9IHJlY3Qu
eTsKKyAgICBpbnRBcnJheVsyXSA9IHJlY3Qud2lkdGg7CisgICAgaW50QXJyYXlbM10gPSByZWN0
LmhlaWdodDsKKyAgICByZXN1bHQtPnNldChXZWJCaW5kaW5nczo6bWFrZUludEFycmF5KGludEFy
cmF5KSk7Cit9CisKK3ZvaWQgVGV4dElucHV0Q29udHJvbGxlcjo6Y2hhcmFjdGVySW5kZXhGb3JQ
b2ludChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAg
Ly8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorICAgIHJlc3VsdC0+c2V0TnVsbCgpOworfQorCit2
b2lkIFRleHRJbnB1dENvbnRyb2xsZXI6OnZhbGlkQXR0cmlidXRlc0Zvck1hcmtlZFRleHQoY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQoreworICAgIHJlc3VsdC0+
c2V0TnVsbCgpOworCisgICAgV2ViRnJhbWUqIG1haW5GcmFtZSA9IG1fd2ViVmlldy0+bWFpbkZy
YW1lKCk7CisgICAgaWYgKCFtYWluRnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIHJlc3Vs
dC0+c2V0KCJOU1VuZGVybGluZSxOU1VuZGVybGluZUNvbG9yLE5TTWFya2VkQ2xhdXNlU2VnbWVu
dCwiCisgICAgICAgICAgICAgICAgIk5TVGV4dElucHV0UmVwbGFjZW1lbnRSYW5nZUF0dHJpYnV0
ZU5hbWUiKTsKK30KKwordm9pZCBUZXh0SW5wdXRDb250cm9sbGVyOjptYWtlQXR0cmlidXRlZFN0
cmluZyhjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAg
Ly8gRklYTUU6IEltcGxlbWVudCB0aGlzLgorICAgIHJlc3VsdC0+c2V0TnVsbCgpOworfQorCit2
b2lkIFRleHRJbnB1dENvbnRyb2xsZXI6OnNldENvbXBvc2l0aW9uKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYgYXJndW1lbnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCit7CisgICAgcmVzdWx0LT5zZXRO
dWxsKCk7CisKKyAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA8IDEpCisgICAgICAgIHJldHVybjsK
KworICAgIC8vIFNlbmRzIGEga2V5ZG93biBldmVudCB3aXRoIGtleSBjb2RlID0gMHhFNSB0byBl
bXVsYXRlIGlucHV0IG1ldGhvZCBiZWhhdmlvci4KKyAgICBXZWJLZXlib2FyZEV2ZW50IGtleURv
d247CisgICAga2V5RG93bi50eXBlID0gV2ViSW5wdXRFdmVudDo6UmF3S2V5RG93bjsKKyAgICBr
ZXlEb3duLm1vZGlmaWVycyA9IDA7CisgICAga2V5RG93bi53aW5kb3dzS2V5Q29kZSA9IDB4RTU7
IC8vIFZLRVlfUFJPQ0VTU0tFWQorICAgIGtleURvd24uc2V0S2V5SWRlbnRpZmllckZyb21XaW5k
b3dzS2V5Q29kZSgpOworICAgIG1fd2ViVmlldy0+aGFuZGxlSW5wdXRFdmVudChrZXlEb3duKTsK
KworICAgIFdlYlZlY3RvcjxXZWJDb21wb3NpdGlvblVuZGVybGluZT4gdW5kZXJsaW5lczsKKyAg
ICBXZWJTdHJpbmcgdGV4dChXZWJTdHJpbmc6OmZyb21VVEY4KGFyZ3VtZW50c1swXS50b1N0cmlu
ZygpKSk7CisgICAgbV93ZWJWaWV3LT5zZXRDb21wb3NpdGlvbih0ZXh0LCB1bmRlcmxpbmVzLCAw
LCB0ZXh0Lmxlbmd0aCgpKTsKK30KZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL1Rlc3RSdW5uZXIvVGV4dElucHV0Q29udHJvbGxlci5oIGIvVG9vbHMvRHVtcFJlbmRl
clRyZWUvY2hyb21pdW0vVGVzdFJ1bm5lci9UZXh0SW5wdXRDb250cm9sbGVyLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTk1OWFhOGIzNjg0MzcyMWY0MWNkMzUyZWRmMDNkZjg4MWUzOGQ2NQotLS0gL2Rldi9udWxs
CisrKyBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RSdW5uZXIvVGV4dElucHV0
Q29udHJvbGxlci5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTAg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucyBhcmUKKyAqIG1ldDoKKyAqCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogICAg
ICogUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZQorICogY29weXJpZ2h0IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lcgorICogaW4gdGhlIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZQorICogZGlzdHJpYnV0aW9uLgorICogICAgICog
TmVpdGhlciB0aGUgbmFtZSBvZiBHb29nbGUgSW5jLiBub3IgdGhlIG5hbWVzIG9mIGl0cworICog
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkIGZyb20KKyAqIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0
dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBUSEUg
Q09QWVJJR0hUIEhPTERFUlMgQU5EIENPTlRSSUJVVE9SUworICogIkFTIElTIiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlU
RUQgVE8sIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUgorICogQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIFRIRSBDT1BZUklHSFQKKyAqIE9XTkVSIE9SIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLAorICogU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVAorICog
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsCisgKiBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkKKyAqIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQorICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvLyBUZXh0SW5wdXRDb250cm9sbGVyIGlzIGJv
dW5kIHRvIHdpbmRvdy50ZXh0SW5wdXRDb250cm9sbGVyIGluIEphdmFzY3JpcHQKKy8vIHdoZW4g
RFJUIGlzIHJ1bm5pbmcuIExheW91dCB0ZXN0cyB1c2UgaXQgdG8gZXhlcmNpc2UgdmFyaW91cyBj
b3JuZXJzIG9mCisvLyB0ZXh0IGlucHV0LgorCisjaWZuZGVmIFRleHRJbnB1dENvbnRyb2xsZXJf
aAorI2RlZmluZSBUZXh0SW5wdXRDb250cm9sbGVyX2gKKworI2luY2x1ZGUgIkNwcEJvdW5kQ2xh
c3MuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CitjbGFzcyBXZWJWaWV3OworfQorCitjbGFzcyBU
ZXh0SW5wdXRDb250cm9sbGVyIDogcHVibGljIENwcEJvdW5kQ2xhc3MgeworcHVibGljOgorICAg
IFRleHRJbnB1dENvbnRyb2xsZXIoKTsKKworICAgIHZvaWQgc2V0V2ViVmlldyhXZWJLaXQ6Oldl
YlZpZXcqIHdlYlZpZXcpIHsgbV93ZWJWaWV3ID0gd2ViVmlldzsgfQorCisgICAgdm9pZCBpbnNl
cnRUZXh0KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIGRv
Q29tbWFuZChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBz
ZXRNYXJrZWRUZXh0KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2
b2lkIHVubWFya1RleHQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAg
IHZvaWQgaGFzTWFya2VkVGV4dChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7
CisgICAgdm9pZCBjb252ZXJzYXRpb25JZGVudGlmaWVyKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYs
IENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIHN1YnN0cmluZ0Zyb21SYW5nZShjb25zdCBDcHBBcmd1
bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCBhdHRyaWJ1dGVkU3Vic3RyaW5nRnJv
bVJhbmdlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lkIG1h
cmtlZFJhbmdlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lk
IHNlbGVjdGVkUmFuZ2UoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOworICAg
IHZvaWQgZmlyc3RSZWN0Rm9yQ2hhcmFjdGVyUmFuZ2UoY29uc3QgQ3BwQXJndW1lbnRMaXN0Jiwg
Q3BwVmFyaWFudCopOworICAgIHZvaWQgY2hhcmFjdGVySW5kZXhGb3JQb2ludChjb25zdCBDcHBB
cmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7CisgICAgdm9pZCB2YWxpZEF0dHJpYnV0ZXNGb3JN
YXJrZWRUZXh0KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKKyAgICB2b2lk
IG1ha2VBdHRyaWJ1dGVkU3RyaW5nKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQq
KTsKKyAgICB2b2lkIHNldENvbXBvc2l0aW9uKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZh
cmlhbnQqKTsKKworcHJpdmF0ZToKKyAgICBXZWJLaXQ6OldlYlZpZXcqIG1fd2ViVmlldzsKK307
CisKKyNlbmRpZiAvLyBUZXh0SW5wdXRDb250cm9sbGVyX2gKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1RleHRJbnB1dENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGV4dElucHV0Q29udHJvbGxlci5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGI3MmEyMDgwZDJjMDk3NThhZTE5NDNhMTRhMjFmOTNhNDA2Nzc3
Y2IuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMv
RHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGV4dElucHV0Q29udHJvbGxlci5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSwyMzMgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
IGFyZQotICogbWV0OgotICoKLSAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBj
b3B5cmlnaHQgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlCi0gKiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVy
IHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmli
dXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQg
ZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVy
bWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklH
SFQgSE9MREVSUyBBTkQgQ09OVFJJQlVUT1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywg
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
Ci0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgVEhFIENPUFlSSUdIVAotICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWQotICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0g
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJUZXh0
SW5wdXRDb250cm9sbGVyLmgiCi0KLSNpbmNsdWRlICJXZWJCaW5kaW5ncy5oIgotI2luY2x1ZGUg
IldlYkNvbXBvc2l0aW9uVW5kZXJsaW5lLmgiCi0jaW5jbHVkZSAiV2ViRnJhbWUuaCIKLSNpbmNs
dWRlICJXZWJJbnB1dEV2ZW50LmgiCi0jaW5jbHVkZSAiV2ViUmFuZ2UuaCIKLSNpbmNsdWRlICJX
ZWJWaWV3LmgiCi0jaW5jbHVkZSAicGxhdGZvcm0vV2ViU3RyaW5nLmgiCi0jaW5jbHVkZSAicGxh
dGZvcm0vV2ViVmVjdG9yLmgiCi0jaW5jbHVkZSA8c3RyaW5nPgotI2luY2x1ZGUgPHd0Zi9TdHJp
bmdFeHRyYXMuaD4KLQotdXNpbmcgbmFtZXNwYWNlIFdlYktpdDsKLQotVGV4dElucHV0Q29udHJv
bGxlcjo6VGV4dElucHV0Q29udHJvbGxlcigpCi17Ci0gICAgYmluZE1ldGhvZCgiYXR0cmlidXRl
ZFN1YnN0cmluZ0Zyb21SYW5nZSIsICZUZXh0SW5wdXRDb250cm9sbGVyOjphdHRyaWJ1dGVkU3Vi
c3RyaW5nRnJvbVJhbmdlKTsKLSAgICBiaW5kTWV0aG9kKCJjaGFyYWN0ZXJJbmRleEZvclBvaW50
IiwgJlRleHRJbnB1dENvbnRyb2xsZXI6OmNoYXJhY3RlckluZGV4Rm9yUG9pbnQpOwotICAgIGJp
bmRNZXRob2QoImNvbnZlcnNhdGlvbklkZW50aWZpZXIiLCAmVGV4dElucHV0Q29udHJvbGxlcjo6
Y29udmVyc2F0aW9uSWRlbnRpZmllcik7Ci0gICAgYmluZE1ldGhvZCgiZG9Db21tYW5kIiwgJlRl
eHRJbnB1dENvbnRyb2xsZXI6OmRvQ29tbWFuZCk7Ci0gICAgYmluZE1ldGhvZCgiZmlyc3RSZWN0
Rm9yQ2hhcmFjdGVyUmFuZ2UiLCAmVGV4dElucHV0Q29udHJvbGxlcjo6Zmlyc3RSZWN0Rm9yQ2hh
cmFjdGVyUmFuZ2UpOwotICAgIGJpbmRNZXRob2QoImhhc01hcmtlZFRleHQiLCAmVGV4dElucHV0
Q29udHJvbGxlcjo6aGFzTWFya2VkVGV4dCk7Ci0gICAgYmluZE1ldGhvZCgiaW5zZXJ0VGV4dCIs
ICZUZXh0SW5wdXRDb250cm9sbGVyOjppbnNlcnRUZXh0KTsKLSAgICBiaW5kTWV0aG9kKCJtYWtl
QXR0cmlidXRlZFN0cmluZyIsICZUZXh0SW5wdXRDb250cm9sbGVyOjptYWtlQXR0cmlidXRlZFN0
cmluZyk7Ci0gICAgYmluZE1ldGhvZCgibWFya2VkUmFuZ2UiLCAmVGV4dElucHV0Q29udHJvbGxl
cjo6bWFya2VkUmFuZ2UpOwotICAgIGJpbmRNZXRob2QoInNlbGVjdGVkUmFuZ2UiLCAmVGV4dElu
cHV0Q29udHJvbGxlcjo6c2VsZWN0ZWRSYW5nZSk7Ci0gICAgYmluZE1ldGhvZCgic2V0TWFya2Vk
VGV4dCIsICZUZXh0SW5wdXRDb250cm9sbGVyOjpzZXRNYXJrZWRUZXh0KTsKLSAgICBiaW5kTWV0
aG9kKCJzdWJzdHJpbmdGcm9tUmFuZ2UiLCAmVGV4dElucHV0Q29udHJvbGxlcjo6c3Vic3RyaW5n
RnJvbVJhbmdlKTsKLSAgICBiaW5kTWV0aG9kKCJ1bm1hcmtUZXh0IiwgJlRleHRJbnB1dENvbnRy
b2xsZXI6OnVubWFya1RleHQpOwotICAgIGJpbmRNZXRob2QoInZhbGlkQXR0cmlidXRlc0Zvck1h
cmtlZFRleHQiLCAmVGV4dElucHV0Q29udHJvbGxlcjo6dmFsaWRBdHRyaWJ1dGVzRm9yTWFya2Vk
VGV4dCk7Ci0gICAgYmluZE1ldGhvZCgic2V0Q29tcG9zaXRpb24iLCAmVGV4dElucHV0Q29udHJv
bGxlcjo6c2V0Q29tcG9zaXRpb24pOwotfQotCi12b2lkIFRleHRJbnB1dENvbnRyb2xsZXI6Omlu
c2VydFRleHQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJl
c3VsdCkKLXsKLSAgICByZXN1bHQtPnNldE51bGwoKTsKLQotICAgIGlmIChhcmd1bWVudHMuc2l6
ZSgpIDwgMSB8fCAhYXJndW1lbnRzWzBdLmlzU3RyaW5nKCkpCi0gICAgICAgIHJldHVybjsKLQot
ICAgIG1fd2ViVmlldy0+Y29uZmlybUNvbXBvc2l0aW9uKFdlYlN0cmluZzo6ZnJvbVVURjgoYXJn
dW1lbnRzWzBdLnRvU3RyaW5nKCkpKTsKLX0KLQotdm9pZCBUZXh0SW5wdXRDb250cm9sbGVyOjpk
b0NvbW1hbmQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZhcmlhbnQqIHJl
c3VsdCkKLXsKLSAgICByZXN1bHQtPnNldE51bGwoKTsKLQotICAgIFdlYkZyYW1lKiBtYWluRnJh
bWUgPSBtX3dlYlZpZXctPm1haW5GcmFtZSgpOwotICAgIGlmICghbWFpbkZyYW1lKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBpZiAoYXJndW1lbnRzLnNpemUoKSA+PSAxICYmIGFyZ3VtZW50c1sw
XS5pc1N0cmluZygpKQotICAgICAgICBtYWluRnJhbWUtPmV4ZWN1dGVDb21tYW5kKFdlYlN0cmlu
Zzo6ZnJvbVVURjgoYXJndW1lbnRzWzBdLnRvU3RyaW5nKCkpKTsKLX0KLQotdm9pZCBUZXh0SW5w
dXRDb250cm9sbGVyOjpzZXRNYXJrZWRUZXh0KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYgYXJndW1l
bnRzLCBDcHBWYXJpYW50KiByZXN1bHQpCi17Ci0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci0KLSAg
ICBpZiAoYXJndW1lbnRzLnNpemUoKSA+PSAzICYmIGFyZ3VtZW50c1swXS5pc1N0cmluZygpCi0g
ICAgICAgICYmIGFyZ3VtZW50c1sxXS5pc051bWJlcigpICYmIGFyZ3VtZW50c1syXS5pc051bWJl
cigpKSB7Ci0gICAgICAgIFdlYlZlY3RvcjxXZWJDb21wb3NpdGlvblVuZGVybGluZT4gdW5kZXJs
aW5lczsKLSAgICAgICAgbV93ZWJWaWV3LT5zZXRDb21wb3NpdGlvbihXZWJTdHJpbmc6OmZyb21V
VEY4KGFyZ3VtZW50c1swXS50b1N0cmluZygpKSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICB1bmRlcmxpbmVzLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFy
Z3VtZW50c1sxXS50b0ludDMyKCksCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
YXJndW1lbnRzWzFdLnRvSW50MzIoKSArIGFyZ3VtZW50c1syXS50b0ludDMyKCkpOwotICAgIH0K
LX0KLQotdm9pZCBUZXh0SW5wdXRDb250cm9sbGVyOjp1bm1hcmtUZXh0KGNvbnN0IENwcEFyZ3Vt
ZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICByZXN1bHQtPnNldE51bGwoKTsK
LQotICAgIG1fd2ViVmlldy0+Y29uZmlybUNvbXBvc2l0aW9uKCk7Ci19Ci0KLXZvaWQgVGV4dElu
cHV0Q29udHJvbGxlcjo6aGFzTWFya2VkVGV4dChjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBW
YXJpYW50KiByZXN1bHQpCi17Ci0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci0KLSAgICBXZWJGcmFt
ZSogbWFpbkZyYW1lID0gbV93ZWJWaWV3LT5tYWluRnJhbWUoKTsKLSAgICBpZiAoIW1haW5GcmFt
ZSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgcmVzdWx0LT5zZXQobWFpbkZyYW1lLT5oYXNNYXJr
ZWRUZXh0KCkpOwotfQotCi12b2lkIFRleHRJbnB1dENvbnRyb2xsZXI6OmNvbnZlcnNhdGlvbklk
ZW50aWZpZXIoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQotewot
ICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KLSAgICByZXN1bHQtPnNldE51bGwoKTsKLX0K
LQotdm9pZCBUZXh0SW5wdXRDb250cm9sbGVyOjpzdWJzdHJpbmdGcm9tUmFuZ2UoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQotewotICAgIC8vIEZJWE1FOiBJbXBs
ZW1lbnQgdGhpcy4KLSAgICByZXN1bHQtPnNldE51bGwoKTsKLX0KLQotdm9pZCBUZXh0SW5wdXRD
b250cm9sbGVyOjphdHRyaWJ1dGVkU3Vic3RyaW5nRnJvbVJhbmdlKGNvbnN0IENwcEFyZ3VtZW50
TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICAvLyBGSVhNRTogSW1wbGVtZW50IHRo
aXMuCi0gICAgcmVzdWx0LT5zZXROdWxsKCk7Ci19Ci0KLXZvaWQgVGV4dElucHV0Q29udHJvbGxl
cjo6bWFya2VkUmFuZ2UoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0
KQotewotICAgIHJlc3VsdC0+c2V0TnVsbCgpOwotCi0gICAgV2ViRnJhbWUqIG1haW5GcmFtZSA9
IG1fd2ViVmlldy0+bWFpbkZyYW1lKCk7Ci0gICAgaWYgKCFtYWluRnJhbWUpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIFdlYlJhbmdlIHJhbmdlID0gbWFpbkZyYW1lLT5tYXJrZWRSYW5nZSgpOwot
ICAgIFZlY3RvcjxpbnQ+IGludEFycmF5KDIpOwotICAgIGludEFycmF5WzBdID0gcmFuZ2Uuc3Rh
cnRPZmZzZXQoKTsKLSAgICBpbnRBcnJheVsxXSA9IHJhbmdlLmVuZE9mZnNldCgpOwotICAgIHJl
c3VsdC0+c2V0KFdlYkJpbmRpbmdzOjptYWtlSW50QXJyYXkoaW50QXJyYXkpKTsKLX0KLQotdm9p
ZCBUZXh0SW5wdXRDb250cm9sbGVyOjpzZWxlY3RlZFJhbmdlKGNvbnN0IENwcEFyZ3VtZW50TGlz
dCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICByZXN1bHQtPnNldE51bGwoKTsKLQotICAg
IFdlYkZyYW1lKiBtYWluRnJhbWUgPSBtX3dlYlZpZXctPm1haW5GcmFtZSgpOwotICAgIGlmICgh
bWFpbkZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBXZWJSYW5nZSByYW5nZSA9IG1haW5G
cmFtZS0+c2VsZWN0aW9uUmFuZ2UoKTsKLSAgICBWZWN0b3I8aW50PiBpbnRBcnJheSgyKTsKLSAg
ICBpbnRBcnJheVswXSA9IHJhbmdlLnN0YXJ0T2Zmc2V0KCk7Ci0gICAgaW50QXJyYXlbMV0gPSBy
YW5nZS5lbmRPZmZzZXQoKTsKLSAgICByZXN1bHQtPnNldChXZWJCaW5kaW5nczo6bWFrZUludEFy
cmF5KGludEFycmF5KSk7Ci19Ci0KLXZvaWQgVGV4dElucHV0Q29udHJvbGxlcjo6Zmlyc3RSZWN0
Rm9yQ2hhcmFjdGVyUmFuZ2UoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMsIENwcFZh
cmlhbnQqIHJlc3VsdCkKLXsKLSAgICByZXN1bHQtPnNldE51bGwoKTsKLQotICAgIFdlYkZyYW1l
KiBmcmFtZSA9IG1fd2ViVmlldy0+Zm9jdXNlZEZyYW1lKCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAg
ICAgICAgcmV0dXJuOwotCi0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPCAyIHx8ICFhcmd1bWVu
dHNbMF0uaXNOdW1iZXIoKSB8fCAhYXJndW1lbnRzWzFdLmlzTnVtYmVyKCkpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIFdlYlJlY3QgcmVjdDsKLSAgICBpZiAoIWZyYW1lLT5maXJzdFJlY3RGb3JD
aGFyYWN0ZXJSYW5nZShhcmd1bWVudHNbMF0udG9JbnQzMigpLCBhcmd1bWVudHNbMV0udG9JbnQz
MigpLCByZWN0KSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgVmVjdG9yPGludD4gaW50QXJyYXko
NCk7Ci0gICAgaW50QXJyYXlbMF0gPSByZWN0Lng7Ci0gICAgaW50QXJyYXlbMV0gPSByZWN0Lnk7
Ci0gICAgaW50QXJyYXlbMl0gPSByZWN0LndpZHRoOwotICAgIGludEFycmF5WzNdID0gcmVjdC5o
ZWlnaHQ7Ci0gICAgcmVzdWx0LT5zZXQoV2ViQmluZGluZ3M6Om1ha2VJbnRBcnJheShpbnRBcnJh
eSkpOwotfQotCi12b2lkIFRleHRJbnB1dENvbnRyb2xsZXI6OmNoYXJhY3RlckluZGV4Rm9yUG9p
bnQoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQotewotICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KLSAgICByZXN1bHQtPnNldE51bGwoKTsKLX0KLQotdm9p
ZCBUZXh0SW5wdXRDb250cm9sbGVyOjp2YWxpZEF0dHJpYnV0ZXNGb3JNYXJrZWRUZXh0KGNvbnN0
IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqIHJlc3VsdCkKLXsKLSAgICByZXN1bHQtPnNl
dE51bGwoKTsKLQotICAgIFdlYkZyYW1lKiBtYWluRnJhbWUgPSBtX3dlYlZpZXctPm1haW5GcmFt
ZSgpOwotICAgIGlmICghbWFpbkZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICByZXN1bHQt
PnNldCgiTlNVbmRlcmxpbmUsTlNVbmRlcmxpbmVDb2xvcixOU01hcmtlZENsYXVzZVNlZ21lbnQs
IgotICAgICAgICAgICAgICAgICJOU1RleHRJbnB1dFJlcGxhY2VtZW50UmFuZ2VBdHRyaWJ1dGVO
YW1lIik7Ci19Ci0KLXZvaWQgVGV4dElucHV0Q29udHJvbGxlcjo6bWFrZUF0dHJpYnV0ZWRTdHJp
bmcoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCogcmVzdWx0KQotewotICAgIC8v
IEZJWE1FOiBJbXBsZW1lbnQgdGhpcy4KLSAgICByZXN1bHQtPnNldE51bGwoKTsKLX0KLQotdm9p
ZCBUZXh0SW5wdXRDb250cm9sbGVyOjpzZXRDb21wb3NpdGlvbihjb25zdCBDcHBBcmd1bWVudExp
c3QmIGFyZ3VtZW50cywgQ3BwVmFyaWFudCogcmVzdWx0KQotewotICAgIHJlc3VsdC0+c2V0TnVs
bCgpOwotCi0gICAgaWYgKGFyZ3VtZW50cy5zaXplKCkgPCAxKQotICAgICAgICByZXR1cm47Ci0K
LSAgICAvLyBTZW5kcyBhIGtleWRvd24gZXZlbnQgd2l0aCBrZXkgY29kZSA9IDB4RTUgdG8gZW11
bGF0ZSBpbnB1dCBtZXRob2QgYmVoYXZpb3IuCi0gICAgV2ViS2V5Ym9hcmRFdmVudCBrZXlEb3du
OwotICAgIGtleURvd24udHlwZSA9IFdlYklucHV0RXZlbnQ6OlJhd0tleURvd247Ci0gICAga2V5
RG93bi5tb2RpZmllcnMgPSAwOwotICAgIGtleURvd24ud2luZG93c0tleUNvZGUgPSAweEU1OyAv
LyBWS0VZX1BST0NFU1NLRVkKLSAgICBrZXlEb3duLnNldEtleUlkZW50aWZpZXJGcm9tV2luZG93
c0tleUNvZGUoKTsKLSAgICBtX3dlYlZpZXctPmhhbmRsZUlucHV0RXZlbnQoa2V5RG93bik7Ci0K
LSAgICBXZWJWZWN0b3I8V2ViQ29tcG9zaXRpb25VbmRlcmxpbmU+IHVuZGVybGluZXM7Ci0gICAg
V2ViU3RyaW5nIHRleHQoV2ViU3RyaW5nOjpmcm9tVVRGOChhcmd1bWVudHNbMF0udG9TdHJpbmco
KSkpOwotICAgIG1fd2ViVmlldy0+c2V0Q29tcG9zaXRpb24odGV4dCwgdW5kZXJsaW5lcywgMCwg
dGV4dC5sZW5ndGgoKSk7Ci19CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9UZXh0SW5wdXRDb250cm9sbGVyLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9UZXh0SW5wdXRDb250cm9sbGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGE5
NTlhYThiMzY4NDM3MjFmNDFjZDM1MmVkZjAzZGY4ODFlMzhkNjUuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vVGV4dElucHV0Q29udHJvbGxlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNzAgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMCBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQotICogbWV0OgotICoKLSAqICAg
ICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCi0gKiBjb3B5cmlnaHQgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCi0gKiBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlCi0g
KiBkaXN0cmlidXRpb24uCi0gKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdvb2dsZSBJbmMu
IG5vciB0aGUgbmFtZXMgb2YgaXRzCi0gKiBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQotICogdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQgQ09OVFJJQlVU
T1JTCi0gKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVAotICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCi0gKiBBIFBBUlRJQ1VMQVIgUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdIVAotICogT1dO
RVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsCi0gKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UCi0gKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKLSAqIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWQot
ICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS8v
IFRleHRJbnB1dENvbnRyb2xsZXIgaXMgYm91bmQgdG8gd2luZG93LnRleHRJbnB1dENvbnRyb2xs
ZXIgaW4gSmF2YXNjcmlwdAotLy8gd2hlbiBEUlQgaXMgcnVubmluZy4gTGF5b3V0IHRlc3RzIHVz
ZSBpdCB0byBleGVyY2lzZSB2YXJpb3VzIGNvcm5lcnMgb2YKLS8vIHRleHQgaW5wdXQuCi0KLSNp
Zm5kZWYgVGV4dElucHV0Q29udHJvbGxlcl9oCi0jZGVmaW5lIFRleHRJbnB1dENvbnRyb2xsZXJf
aAotCi0jaW5jbHVkZSAiQ3BwQm91bmRDbGFzcy5oIgotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLWNs
YXNzIFdlYlZpZXc7Ci19Ci0KLWNsYXNzIFRleHRJbnB1dENvbnRyb2xsZXIgOiBwdWJsaWMgQ3Bw
Qm91bmRDbGFzcyB7Ci1wdWJsaWM6Ci0gICAgVGV4dElucHV0Q29udHJvbGxlcigpOwotCi0gICAg
dm9pZCBzZXRXZWJWaWV3KFdlYktpdDo6V2ViVmlldyogd2ViVmlldykgeyBtX3dlYlZpZXcgPSB3
ZWJWaWV3OyB9Ci0KLSAgICB2b2lkIGluc2VydFRleHQoY29uc3QgQ3BwQXJndW1lbnRMaXN0Jiwg
Q3BwVmFyaWFudCopOwotICAgIHZvaWQgZG9Db21tYW5kKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYs
IENwcFZhcmlhbnQqKTsKLSAgICB2b2lkIHNldE1hcmtlZFRleHQoY29uc3QgQ3BwQXJndW1lbnRM
aXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgdW5tYXJrVGV4dChjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAgdm9pZCBoYXNNYXJrZWRUZXh0KGNvbnN0IENwcEFy
Z3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAgICB2b2lkIGNvbnZlcnNhdGlvbklkZW50aWZp
ZXIoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgc3Vic3Ry
aW5nRnJvbVJhbmdlKGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAgICB2
b2lkIGF0dHJpYnV0ZWRTdWJzdHJpbmdGcm9tUmFuZ2UoY29uc3QgQ3BwQXJndW1lbnRMaXN0Jiwg
Q3BwVmFyaWFudCopOwotICAgIHZvaWQgbWFya2VkUmFuZ2UoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgc2VsZWN0ZWRSYW5nZShjb25zdCBDcHBBcmd1bWVu
dExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAgdm9pZCBmaXJzdFJlY3RGb3JDaGFyYWN0ZXJSYW5n
ZShjb25zdCBDcHBBcmd1bWVudExpc3QmLCBDcHBWYXJpYW50Kik7Ci0gICAgdm9pZCBjaGFyYWN0
ZXJJbmRleEZvclBvaW50KGNvbnN0IENwcEFyZ3VtZW50TGlzdCYsIENwcFZhcmlhbnQqKTsKLSAg
ICB2b2lkIHZhbGlkQXR0cmlidXRlc0Zvck1hcmtlZFRleHQoY29uc3QgQ3BwQXJndW1lbnRMaXN0
JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgbWFrZUF0dHJpYnV0ZWRTdHJpbmcoY29uc3QgQ3Bw
QXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotICAgIHZvaWQgc2V0Q29tcG9zaXRpb24oY29u
c3QgQ3BwQXJndW1lbnRMaXN0JiwgQ3BwVmFyaWFudCopOwotCi1wcml2YXRlOgotICAgIFdlYktp
dDo6V2ViVmlldyogbV93ZWJWaWV3OwotfTsKLQotI2VuZGlmIC8vIFRleHRJbnB1dENvbnRyb2xs
ZXJfaAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>