<?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>181085</bug_id>
          
          <creation_ts>2017-12-21 09:40:55 -0800</creation_ts>
          <short_desc>[macOS, iOS] Adopt new secure coding APIs in WebKit</short_desc>
          <delta_ts>2018-01-03 11:22:05 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit Misc.</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brent Fulgham">bfulgham</reporter>
          <assigned_to name="Brent Fulgham">bfulgham</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>david_quesada</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1384122</commentid>
    <comment_count>0</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-12-21 09:40:55 -0800</bug_when>
    <thetext>Switch away from older NSKeyedArchiver/NSKeyedUnarchive methods that supported non-NSSecureCoding serialization.

This patch switches the last remaining &apos;insecure&apos; cases to &apos;secure&apos;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385324</commentid>
    <comment_count>1</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-01-02 17:09:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/34837397&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385325</commentid>
    <comment_count>2</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-01-02 17:10:22 -0800</bug_when>
    <thetext>It looks like NSView/UIView do not support NSSecureCoding, so we can&apos;t completely switch WKWebView to NSSecureCoding. But we can make sure it&apos;s ready when the time comes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385326</commentid>
    <comment_count>3</comment_count>
      <attachid>330355</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-01-02 17:10:31 -0800</bug_when>
    <thetext>Created attachment 330355
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385378</commentid>
    <comment_count>4</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-01-02 21:10:39 -0800</bug_when>
    <thetext>Committed r226353: &lt;https://trac.webkit.org/changeset/226353&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385524</commentid>
    <comment_count>5</comment_count>
    <who name="David Quesada">david_quesada</who>
    <bug_when>2018-01-03 11:22:05 -0800</bug_when>
    <thetext>*** Bug 181252 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330355</attachid>
            <date>2018-01-02 17:10:31 -0800</date>
            <delta_ts>2018-01-02 17:39:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181085-20180102171030.patch</filename>
            <type>text/plain</type>
            <size>24194</size>
            <attacher name="Brent Fulgham">bfulgham</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZwkocmV2aXNpb24gMjI2MzMwKQorKysgU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE4LTAx
LTAyICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisgICAgICAgIFttYWNP
UywgaU9TXSBBZG9wdCBuZXcgc2VjdXJlIGNvZGluZyBBUElzIGluIFdlYktpdAorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMDg1CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS8zNDgzNzM5Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgaGVscGVyIGZ1bmN0aW9uIHRvIGFsbG93IFdlYktp
dCBjb2RlIHRvIHVzZSBOU1NlY3VyZUNvZGluZyBpbiBtb3JlCisgICAgICAgIHBsYWNlcyB3aGVu
IHRoZSB1bmRlcmx5aW5nIG9wZXJhdGluZyBzeXN0ZW0gc3VwcG9ydHMgaXQuCisKKyAgICAgICAg
KiBwYWwvc3BpL2NvY29hL05TS2V5ZWRBcmNoaXZlclNQSS5oOgorICAgICAgICAoZGVjb2RlT2Jq
ZWN0T2ZDbGFzc0ZvcktleUZyb21Db2Rlcik6IE5ldyB3cmFwcGVyIG1ldGhvZC4KKwogMjAxNy0x
Mi0yMSAgQnJlbnQgRnVsZ2hhbSAgPGJmdWxnaGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJl
dmlld2VkIHRlc3QgZml4IGFmdGVyIHIyMjYyMjQuCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2ZXJTUEkuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2ZXJTUEkuaAkocmV2aXNpb24g
MjI2MzMwKQorKysgU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvTlNLZXllZEFyY2hp
dmVyU1BJLmgJKHdvcmtpbmcgY29weSkKQEAgLTEzNCwzICsxMzQsMTIgQEAgaW5saW5lIFJldGFp
blB0cjxOU0tleWVkVW5hcmNoaXZlcj4gc2VjdQogICAgIHJldHVybiBhZG9wdE5TKHVuYXJjaGl2
ZXIpOwogfQogCitpbmxpbmUgaWQgX051bGxhYmxlIGRlY29kZU9iamVjdE9mQ2xhc3NGb3JLZXlG
cm9tQ29kZXIoQ2xhc3MgX05vbm51bGwgY2xzLCBOU1N0cmluZyAqIF9Ob25udWxsIGtleSwgTlND
b2RlciAqIF9Ob25udWxsIGNvZGVyKQoreworI2lmIFVTRShTRUNVUkVfQVJDSElWRVJfQVBJKQor
ICAgIHJldHVybiBbY29kZXIgZGVjb2RlT2JqZWN0T2ZDbGFzczpjbHMgZm9yS2V5OmtleV07Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShjbHMpOworICAgIHJldHVybiBbY29kZXIgZGVjb2RlT2Jq
ZWN0Rm9yS2V5OmtleV07CisjZW5kaWYKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMjYzMzAp
CisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ2
IEBACisyMDE4LTAxLTAyICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgorCisg
ICAgICAgIFttYWNPUywgaU9TXSBBZG9wdCBuZXcgc2VjdXJlIGNvZGluZyBBUElzIGluIFdlYktp
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgxMDg1
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNDgzNzM5Nz4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgV2ViS2l0IGNvZGUgdG8gdXNlIE5T
U2VjdXJlQ29kaW5nIHdoZW4gdGhlIHVuZGVybHlpbmcgb3BlcmF0aW5nIHN5c3RlbSBzdXBwb3J0
cyBpdC4gVXNlIG5ldworICAgICAgICB3cmFwcGVyIGZ1bmN0aW9ucyBzbyB0aGUgc2FtZSBjb2Rl
IGNhbiBiZSBidWlsdCBvbiBhbGwgc3VwcG9ydGVkIE9TIHJlbGVhc2VzLCB3aGlsZSBlbmFibGlu
ZworICAgICAgICBzZXVyZSBjb2Rpbmcgd2hlbiBwb3NzaWJsZS4KKworICAgICAgICBOb3RlIHRo
YXQgTlNWaWV3LWJhc2VkIGNsYXNzZXMgY2Fubm90IGJlIG1pZ3JhdGVkIGF0IHByZXNlbnQgZHVl
IHRvIEFwcEtpdCBub3Qgc3VwcG9ydGluZyBOU1NlY3VyZUNvZGluZworICAgICAgICBpbiBpdHMg
Y2xhc3MgaGllcmFyY2h5LgorCisgICAgICAgIFRlc3RlZCBieSBleGlzaW5nIFRlc3RXZWJLaXRB
UEkgdGVzdHMgZm9yIENvZGluZyBhbmQgZGF0YSB0cmFuc2Zlci4KKworICAgICAgICAqIFBsYXRm
b3JtL2lvcy9BY2Nlc3NpYmlsaXR5SU9TLm1tOgorICAgICAgICAoV2ViS2l0OjpuZXdBY2Nlc3Np
YmlsaXR5UmVtb3RlVG9rZW4pOiBFbmNvZGUgdXNpbmcgTlNTZWN1cmVDb2RpbmcuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZWZlcmVuY2VzLm1tOgorICAgICAgICAoK1tXS1ByZWZlcmVuY2Vz
IHN1cHBvcnRzU2VjdXJlQ29kaW5nXSk6IEFkZGVkIHRvIGVuYWJsZSBOU1NlY3VyZUNvZGluZy4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJvY2Vzc1Bvb2wubW06CisgICAgICAgICgrW1dLUHJv
Y2Vzc1Bvb2wgc3VwcG9ydHNTZWN1cmVDb2RpbmddKTogRGl0dG8uCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXIubW06CisgICAgICAgICgrW1dL
VXNlckNvbnRlbnRDb250cm9sbGVyIHN1cHBvcnRzU2VjdXJlQ29kaW5nXSk6IERpdHRvLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dl
YlZpZXcgaW5pdFdpdGhDb2RlcjpdKTogVXNlIGNvZGluZyBpbml0aWFsaXphdGlvbiB0aGF0IHN1
cHBvcnRzIHNlY3VyZSBjb2RpbmcgaWYKKyAgICAgICAgaXQgaXMgYXZhaWxhYmxlIGluIHRoZSBz
dXBwbGllZCBjbGFzcy4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24uaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb24ubW06CisgICAgICAgICgrW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gc3VwcG9y
dHNTZWN1cmVDb2RpbmddKTogQWRkZWQgdG8gZW5hYmxlIE5TU2VjdXJlQ29kaW5nLgorICAgICAg
ICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIGluaXRXaXRoQ29kZXI6XSk6IFVzZSBzZWN1cmUg
Y29kaW5nIHdoZW4gcG9zc2libGUuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnNpdGVEYXRhU3RvcmUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0
ZURhdGFTdG9yZS5tbToKKyAgICAgICAgKCtbV0tXZWJzaXRlRGF0YVN0b3JlIHN1cHBvcnRzU2Vj
dXJlQ29kaW5nXSk6IEFkZGVkIHRvIGVuYWJsZSBOU1NlY3VyZUNvZGluZy4KKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS0FwcGxpY2F0aW9uTWFuaWZlc3QuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL19XS0FwcGxpY2F0aW9uTWFuaWZlc3QubW06CisgICAgICAgICgr
W19XS0FwcGxpY2F0aW9uTWFuaWZlc3Qgc3VwcG9ydHNTZWN1cmVDb2RpbmddKTogQWRkZWQgdG8g
ZW5hYmxlIE5TU2VjdXJlQ29kaW5nLgorICAgICAgICAoLVtfV0tBcHBsaWNhdGlvbk1hbmlmZXN0
IGluaXRXaXRoQ29kZXI6XSk6IFVzZSBzZWN1cmUgY29kaW5nIHdoZW4gcG9zc2libGUuCisKIDIw
MTgtMDEtMDIgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBVc2UgQmxvY2tQdHJzIGFuZCBsYW1iZGFzIGluc3RlYWQgb2YgbmV3L2RlbGV0ZSB0
byBwYXNzIHBhcmFtZXRlcnMgdG8gYmxvY2tzIGluIFdlYlZpZXdJbXBsOjpwZXJmb3JtRHJhZ09w
ZXJhdGlvbgpJbmRleDogU291cmNlL1dlYktpdC9QbGF0Zm9ybS9pb3MvQWNjZXNzaWJpbGl0eUlP
Uy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2lvcy9BY2Nlc3NpYmls
aXR5SU9TLm1tCShyZXZpc2lvbiAyMjYzMzApCisrKyBTb3VyY2UvV2ViS2l0L1BsYXRmb3JtL2lv
cy9BY2Nlc3NpYmlsaXR5SU9TLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTUtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM1LDcgKzM1LDcgQEAgTlNEYXRh
ICpuZXdBY2Nlc3NpYmlsaXR5UmVtb3RlVG9rZW4oTlNVVQogewogICAgIGlmICghdXVpZCkKICAg
ICAgICAgcmV0dXJuIG5pbDsKLSAgICByZXR1cm4gaW5zZWN1cmVseUFyY2hpdmVkRGF0YVdpdGhS
b290T2JqZWN0KEB7IEAiYXgtcGlkIiA6IEAoZ2V0cGlkKCkpLCBAImF4LXV1aWQiIDogW3V1aWQg
VVVJRFN0cmluZ10sIEAiYXgtcmVnaXN0ZXIiIDogQFlFUyB9KTsKKyAgICByZXR1cm4gc2VjdXJl
bHlBcmNoaXZlZERhdGFXaXRoUm9vdE9iamVjdChAeyBAImF4LXBpZCIgOiBAKGdldHBpZCgpKSwg
QCJheC11dWlkIiA6IFt1dWlkIFVVSURTdHJpbmddLCBAImF4LXJlZ2lzdGVyIiA6IEBZRVMgfSk7
CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLUHJlZmVyZW5jZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCShyZXZpc2lvbiAyMjYzMzApCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTM1LDcgKzM1LDcgQEAKICBpdHMgd2ViIHZpZXcgY29uZmlndXJhdGlvbi4KICAq
LwogV0tfQ0xBU1NfQVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQotQGludGVyZmFj
ZSBXS1ByZWZlcmVuY2VzIDogTlNPYmplY3QgPE5TQ29kaW5nPgorQGludGVyZmFjZSBXS1ByZWZl
cmVuY2VzIDogTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5nPgogCiAvKiEgQGFic3RyYWN0IFRoZSBt
aW5pbXVtIGZvbnQgc2l6ZSBpbiBwb2ludHMuCiAgQGRpc2N1c3Npb24gVGhlIGRlZmF1bHQgdmFs
dWUgaXMgMC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZWZl
cmVuY2VzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZWZlcmVuY2VzLm1tCShyZXZpc2lvbiAyMjYzMzApCisrKyBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmVmZXJlbmNlcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw1
ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQtMjAxNyBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTU1
LDYgKzU1LDExIEBAIC0gKHZvaWQpZGVhbGxvYwogICAgIFtzdXBlciBkZWFsbG9jXTsKIH0KIAor
KyAoQk9PTClzdXBwb3J0c1NlY3VyZUNvZGluZworeworICAgIHJldHVybiBZRVM7Cit9CisKIC8v
IEZJWE1FOiBXZSBjdXJyZW50bHkgb25seSBlbmNvZGUvZGVjb2RlIEFQSSBwcmVmZXJlbmNlcy4g
V2Ugc2hvdWxkIGNvbnNpZGVyIHdoZXRoZXIgd2Ugc2hvdWxkCiAvLyBlbmNvZGUvZGVjb2RlIFNQ
SSBwcmVmZXJlbmNlcyBhcyB3ZWxsLgogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLmgJKHJldmlzaW9uIDIyNjMzMCkKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cwpAQCAtMzYsNyArMzYsNyBAQAogIHdpdGggdGhlIHNhbWUgcHJvY2VzcyBwb29sIGVuZCB1cCBz
aGFyaW5nIHdlYiBjb250ZW50IHByb2Nlc3Nlcy4KICAqLwogV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zeCgxMC4xMCksIGlvcyg4LjApKQotQGludGVyZmFjZSBXS1Byb2Nlc3NQb29sIDogTlNPYmpl
Y3QgPE5TQ29kaW5nPgorQGludGVyZmFjZSBXS1Byb2Nlc3NQb29sIDogTlNPYmplY3QgPE5TU2Vj
dXJlQ29kaW5nPgogQGVuZAogCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1Byb2Nlc3NQb29sLm1tCShyZXZpc2lvbiAyMjYzMzApCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcm9jZXNzUG9vbC5tbQkod29y
a2luZyBjb3B5KQpAQCAtOTYsNiArOTYsMTEgQEAgLSAodm9pZClkZWFsbG9jCiAgICAgW3N1cGVy
IGRlYWxsb2NdOwogfQogCisrIChCT09MKXN1cHBvcnRzU2VjdXJlQ29kaW5nCit7CisgICAgcmV0
dXJuIFlFUzsKK30KKwogLSAodm9pZCllbmNvZGVXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2Rlcgog
ewogICAgIGlmIChzZWxmID09IHNoYXJlZFByb2Nlc3NQb29sKSB7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXIuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENv
bnRyb2xsZXIuaAkocmV2aXNpb24gMjI2MzMwKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLVXNlckNvbnRlbnRDb250cm9sbGVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTEs
NSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDEsNyAr
NDEsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogIHdlYiB2aWV3IGNvbmZpZ3VyYXRpb24u
CiAgKi8KIFdLX0NMQVNTX0FWQUlMQUJMRShtYWNvc3goMTAuMTApLCBpb3MoOC4wKSkKLUBpbnRl
cmZhY2UgV0tVc2VyQ29udGVudENvbnRyb2xsZXIgOiBOU09iamVjdCA8TlNDb2Rpbmc+CitAaW50
ZXJmYWNlIFdLVXNlckNvbnRlbnRDb250cm9sbGVyIDogTlNPYmplY3QgPE5TU2VjdXJlQ29kaW5n
PgogCiAvKiEgQGFic3RyYWN0IFRoZSB1c2VyIHNjcmlwdHMgYXNzb2NpYXRlZCB3aXRoIHRoaXMg
dXNlciBjb250ZW50CiAgY29udHJvbGxlci4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1VzZXJDb250ZW50Q29udHJvbGxlci5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVc2VyQ29udGVudENvbnRyb2xsZXIubW0J
KHJldmlzaW9uIDIyNjMzMCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1VzZXJDb250ZW50Q29udHJvbGxlci5tbQkod29ya2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAK
IC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICogQ29weXJpZ2h0IChDKSAyMDE0LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC02NSw2ICs2NSwxMSBAQCAt
ICh2b2lkKWRlYWxsb2MKICAgICBbc3VwZXIgZGVhbGxvY107CiB9CiAKKysgKEJPT0wpc3VwcG9y
dHNTZWN1cmVDb2RpbmcKK3sKKyAgICByZXR1cm4gWUVTOworfQorCiAtICh2b2lkKWVuY29kZVdp
dGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCiB7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHJldmlzaW9uIDIyNjMzMCkKKysrIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTcyMywxMSArNzIzLDExIEBAIC0gKGluc3RhbmNldHlwZSlpbml0V2l0aENvZGVyOihO
U0NvZGVyICoKICAgICBpZiAoIShzZWxmID0gW3N1cGVyIGluaXRXaXRoQ29kZXI6Y29kZXJdKSkK
ICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZp
Z3VyYXRpb24gPSBbY29kZXIgZGVjb2RlT2JqZWN0Rm9yS2V5OkAiY29uZmlndXJhdGlvbiJdOwor
ICAgIFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gKmNvbmZpZ3VyYXRpb24gPSBkZWNvZGVPYmplY3RP
ZkNsYXNzRm9yS2V5RnJvbUNvZGVyKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIGNsYXNzXSwgQCJj
b25maWd1cmF0aW9uIiwgY29kZXIpOwogICAgIFtzZWxmIF9pbml0aWFsaXplV2l0aENvbmZpZ3Vy
YXRpb246Y29uZmlndXJhdGlvbl07CiAKICAgICBzZWxmLmFsbG93c0JhY2tGb3J3YXJkTmF2aWdh
dGlvbkdlc3R1cmVzID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJhbGxvd3NCYWNrRm9yd2Fy
ZE5hdmlnYXRpb25HZXN0dXJlcyJdOwotICAgIHNlbGYuY3VzdG9tVXNlckFnZW50ID0gW2NvZGVy
IGRlY29kZU9iamVjdEZvcktleTpAImN1c3RvbVVzZXJBZ2VudCJdOworICAgIHNlbGYuY3VzdG9t
VXNlckFnZW50ID0gZGVjb2RlT2JqZWN0T2ZDbGFzc0ZvcktleUZyb21Db2RlcihbTlNTdHJpbmcg
Y2xhc3NdLCBAImN1c3RvbVVzZXJBZ2VudCIsIGNvZGVyKTsKICAgICBzZWxmLmFsbG93c0xpbmtQ
cmV2aWV3ID0gW2NvZGVyIGRlY29kZUJvb2xGb3JLZXk6QCJhbGxvd3NMaW5rUHJldmlldyJdOwog
CiAjaWYgUExBVEZPUk0oTUFDKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5oCShyZXZpc2lvbiAy
MjYzMzApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29u
ZmlndXJhdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmln
aHQgKEMpIDIwMTQtMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTkyLDcgKzkyLDcgQEAgdHlwZWRlZiBOU19PUFRJ
T05TKE5TVUludGVnZXIsIFdLQXVkaW92aQogIEBoZWxwcyBDb250YWlucyBwcm9wZXJ0aWVzIHVz
ZWQgdG8gY29uZmlndXJlIGEgQGxpbmsgV0tXZWJWaWV3IEAvbGluay4KICAqLwogV0tfQ0xBU1Nf
QVZBSUxBQkxFKG1hY29zeCgxMC4xMCksIGlvcyg4LjApKQotQGludGVyZmFjZSBXS1dlYlZpZXdD
b25maWd1cmF0aW9uIDogTlNPYmplY3QgPE5TQ29kaW5nLCBOU0NvcHlpbmc+CitAaW50ZXJmYWNl
IFdLV2ViVmlld0NvbmZpZ3VyYXRpb24gOiBOU09iamVjdCA8TlNTZWN1cmVDb2RpbmcsIE5TQ29w
eWluZz4KIAogLyohIEBhYnN0cmFjdCBUaGUgcHJvY2VzcyBwb29sIGZyb20gd2hpY2ggdG8gb2J0
YWluIHRoZSB2aWV3J3Mgd2ViIGNvbnRlbnQKICBwcm9jZXNzLgpJbmRleDogU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3Vy
YXRpb24ubW0JKHJldmlzaW9uIDIyNjMzMCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xLDUg
KzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE2IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjUs
NiArMjUsNyBAQAogCiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIldLV2ViVmlld0NvbmZp
Z3VyYXRpb25JbnRlcm5hbC5oIgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2
ZXJTUEkuaD4KIAogI2lmIFdLX0FQSV9FTkFCTEVECiAKQEAgLTIzNyw2ICsyMzgsMTEgQEAgLSAo
TlNTdHJpbmcgKilkZXNjcmlwdGlvbgogICAgIHJldHVybiBbTlNTdHJpbmcgc3RyaW5nV2l0aEZv
cm1hdDpAIjwlQDogJXA7IHByb2Nlc3NQb29sID0gJUA7IHByZWZlcmVuY2VzID0gJUA+IiwgTlNT
dHJpbmdGcm9tQ2xhc3Moc2VsZi5jbGFzcyksIHNlbGYsIHNlbGYucHJvY2Vzc1Bvb2wsIHNlbGYu
cHJlZmVyZW5jZXNdOwogfQogCisrIChCT09MKXN1cHBvcnRzU2VjdXJlQ29kaW5nCit7CisgICAg
cmV0dXJuIFlFUzsKK30KKwogLy8gRklYTUU6IEVuY29kZSB0aGUgcHJvY2VzcyBwb29sLCB1c2Vy
IGNvbnRlbnQgY29udHJvbGxlciBhbmQgd2Vic2l0ZSBkYXRhIHN0b3JlLgogCiAtICh2b2lkKWVu
Y29kZVdpdGhDb2RlcjooTlNDb2RlciAqKWNvZGVyCkBAIC0yNjksMTMgKzI3NSwxMyBAQCAtIChp
bnN0YW5jZXR5cGUpaW5pdFdpdGhDb2RlcjooTlNDb2RlciAqCiAgICAgaWYgKCEoc2VsZiA9IFtz
ZWxmIGluaXRdKSkKICAgICAgICAgcmV0dXJuIG5pbDsKIAotICAgIHNlbGYucHJvY2Vzc1Bvb2wg
PSBbY29kZXIgZGVjb2RlT2JqZWN0Rm9yS2V5OkAicHJvY2Vzc1Bvb2wiXTsKLSAgICBzZWxmLnBy
ZWZlcmVuY2VzID0gW2NvZGVyIGRlY29kZU9iamVjdEZvcktleTpAInByZWZlcmVuY2VzIl07Ci0g
ICAgc2VsZi51c2VyQ29udGVudENvbnRyb2xsZXIgPSBbY29kZXIgZGVjb2RlT2JqZWN0Rm9yS2V5
OkAidXNlckNvbnRlbnRDb250cm9sbGVyIl07Ci0gICAgc2VsZi53ZWJzaXRlRGF0YVN0b3JlID0g
W2NvZGVyIGRlY29kZU9iamVjdEZvcktleTpAIndlYnNpdGVEYXRhU3RvcmUiXTsKKyAgICBzZWxm
LnByb2Nlc3NQb29sID0gZGVjb2RlT2JqZWN0T2ZDbGFzc0ZvcktleUZyb21Db2RlcihbV0tQcm9j
ZXNzUG9vbCBjbGFzc10sIEAicHJvY2Vzc1Bvb2wiLCBjb2Rlcik7CisgICAgc2VsZi5wcmVmZXJl
bmNlcyA9IGRlY29kZU9iamVjdE9mQ2xhc3NGb3JLZXlGcm9tQ29kZXIoW1dLUHJlZmVyZW5jZXMg
Y2xhc3NdLCBAInByZWZlcmVuY2VzIiwgY29kZXIpOworICAgIHNlbGYudXNlckNvbnRlbnRDb250
cm9sbGVyID0gZGVjb2RlT2JqZWN0T2ZDbGFzc0ZvcktleUZyb21Db2RlcihbV0tVc2VyQ29udGVu
dENvbnRyb2xsZXIgY2xhc3NdLCBAInVzZXJDb250ZW50Q29udHJvbGxlciIsIGNvZGVyKTsKKyAg
ICBzZWxmLndlYnNpdGVEYXRhU3RvcmUgPSBkZWNvZGVPYmplY3RPZkNsYXNzRm9yS2V5RnJvbUNv
ZGVyKFtXS1dlYnNpdGVEYXRhU3RvcmUgY2xhc3NdLCBAIndlYnNpdGVEYXRhU3RvcmUiLCBjb2Rl
cik7CiAKICAgICBzZWxmLnN1cHByZXNzZXNJbmNyZW1lbnRhbFJlbmRlcmluZyA9IFtjb2RlciBk
ZWNvZGVCb29sRm9yS2V5OkAic3VwcHJlc3Nlc0luY3JlbWVudGFsUmVuZGVyaW5nIl07Ci0gICAg
c2VsZi5hcHBsaWNhdGlvbk5hbWVGb3JVc2VyQWdlbnQgPSBbY29kZXIgZGVjb2RlT2JqZWN0Rm9y
S2V5OkAiYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50Il07CisgICAgc2VsZi5hcHBsaWNhdGlv
bk5hbWVGb3JVc2VyQWdlbnQgPSBkZWNvZGVPYmplY3RPZkNsYXNzRm9yS2V5RnJvbUNvZGVyKFtO
U1N0cmluZyBjbGFzc10sIEAiYXBwbGljYXRpb25OYW1lRm9yVXNlckFnZW50IiwgY29kZXIpOwog
ICAgIHNlbGYuYWxsb3dzQWlyUGxheUZvck1lZGlhUGxheWJhY2sgPSBbY29kZXIgZGVjb2RlQm9v
bEZvcktleTpAImFsbG93c0FpclBsYXlGb3JNZWRpYVBsYXliYWNrIl07CiAKICNpZiBQTEFURk9S
TShJT1MpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRl
RGF0YVN0b3JlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2Vic2l0ZURhdGFTdG9yZS5oCShyZXZpc2lvbiAyMjYzMzApCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3JlLmgJKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzgsNyArMzgsNyBAQCBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogIEluZGV4ZWREQiBkYXRh
YmFzZXMsIGFuZCBsb2NhbCBzdG9yYWdlLgogICovCiBXS19DTEFTU19BVkFJTEFCTEUobWFjb3N4
KDEwLjExKSwgaW9zKDkuMCkpCi1AaW50ZXJmYWNlIFdLV2Vic2l0ZURhdGFTdG9yZSA6IE5TT2Jq
ZWN0IDxOU0NvZGluZz4KK0BpbnRlcmZhY2UgV0tXZWJzaXRlRGF0YVN0b3JlIDogTlNPYmplY3Qg
PE5TU2VjdXJlQ29kaW5nPgogCiAvKiBAYWJzdHJhY3QgUmV0dXJucyB0aGUgZGVmYXVsdCBkYXRh
IHN0b3JlLiAqLwogKyAoV0tXZWJzaXRlRGF0YVN0b3JlICopZGVmYXVsdERhdGFTdG9yZTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUu
bW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vi
c2l0ZURhdGFTdG9yZS5tbQkocmV2aXNpb24gMjI2MzMwKQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQkod29ya2luZyBjb3B5KQpAQCAt
NTksNiArNTksMTEgQEAgLSAodm9pZClkZWFsbG9jCiAgICAgW3N1cGVyIGRlYWxsb2NdOwogfQog
CisrIChCT09MKXN1cHBvcnRzU2VjdXJlQ29kaW5nCit7CisgICAgcmV0dXJuIFlFUzsKK30KKwog
LSAoaW5zdGFuY2V0eXBlKWluaXRXaXRoQ29kZXI6KE5TQ29kZXIgKiljb2RlcgogewogICAgIGlm
ICghKHNlbGYgPSBbc3VwZXIgaW5pdF0pKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS0FwcGxpY2F0aW9uTWFuaWZlc3QuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXBwbGljYXRpb25NYW5pZmVzdC5oCShyZXZp
c2lvbiAyMjYzMzApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQXBw
bGljYXRpb25NYW5pZmVzdC5oCSh3b3JraW5nIGNvcHkpCkBAIC00MSw3ICs0MSw3IEBAIHR5cGVk
ZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0FwcGxpY2F0aW8KIH0gV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAKIFdLX0NMQVNTX0FWQUlMQUJM
RShtYWNvc3goV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSkKLUBpbnRlcmZhY2UgX1dLQXBw
bGljYXRpb25NYW5pZmVzdCA6IE5TT2JqZWN0IDxOU0NvZGluZz4KK0BpbnRlcmZhY2UgX1dLQXBw
bGljYXRpb25NYW5pZmVzdCA6IE5TT2JqZWN0IDxOU1NlY3VyZUNvZGluZz4KIAogQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5LCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKm5hbWU7CiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIG51bGxhYmxlLCBjb3B5KSBOU1N0cmluZyAq
c2hvcnROYW1lOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Fw
cGxpY2F0aW9uTWFuaWZlc3QubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL19XS0FwcGxpY2F0aW9uTWFuaWZlc3QubW0JKHJldmlzaW9uIDIyNjMzMCkK
KysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBcHBsaWNhdGlvbk1hbmlm
ZXN0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMCwxOSArMzAsMjUgQEAKIAogI2ltcG9ydCA8V2Vi
Q29yZS9BcHBsaWNhdGlvbk1hbmlmZXN0Lmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FwcGxpY2F0aW9u
TWFuaWZlc3RQYXJzZXIuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNLZXllZEFyY2hpdmVy
U1BJLmg+CiAKIEBpbXBsZW1lbnRhdGlvbiBfV0tBcHBsaWNhdGlvbk1hbmlmZXN0CiAKICNpZiBF
TkFCTEUoQVBQTElDQVRJT05fTUFOSUZFU1QpCiAKKysgKEJPT0wpc3VwcG9ydHNTZWN1cmVDb2Rp
bmcKK3sKKyAgICByZXR1cm4gWUVTOworfQorCiAtIChpbnN0YW5jZXR5cGUpaW5pdFdpdGhDb2Rl
cjooTlNDb2RlciAqKWFEZWNvZGVyCiB7Ci0gICAgTlNTdHJpbmcgKm5hbWUgPSBbYURlY29kZXIg
ZGVjb2RlT2JqZWN0Rm9yS2V5OkAibmFtZSJdOwotICAgIE5TU3RyaW5nICpzaG9ydE5hbWUgPSBb
YURlY29kZXIgZGVjb2RlT2JqZWN0Rm9yS2V5OkAic2hvcnRfbmFtZSJdOwotICAgIE5TU3RyaW5n
ICpkZXNjcmlwdGlvbiA9IFthRGVjb2RlciBkZWNvZGVPYmplY3RGb3JLZXk6QCJkZXNjcmlwdGlv
biJdOwotICAgIE5TVVJMICpzY29wZVVSTCA9IFthRGVjb2RlciBkZWNvZGVPYmplY3RGb3JLZXk6
QCJzY29wZSJdOworICAgIE5TU3RyaW5nICpuYW1lID0gZGVjb2RlT2JqZWN0T2ZDbGFzc0Zvcktl
eUZyb21Db2RlcihbTlNTdHJpbmcgY2xhc3NdLCBAIm5hbWUiLCBhRGVjb2Rlcik7CisgICAgTlNT
dHJpbmcgKnNob3J0TmFtZSA9IGRlY29kZU9iamVjdE9mQ2xhc3NGb3JLZXlGcm9tQ29kZXIoW05T
U3RyaW5nIGNsYXNzXSwgQCJzaG9ydF9uYW1lIiwgYURlY29kZXIpOworICAgIE5TU3RyaW5nICpk
ZXNjcmlwdGlvbiA9IGRlY29kZU9iamVjdE9mQ2xhc3NGb3JLZXlGcm9tQ29kZXIoW05TU3RyaW5n
IGNsYXNzXSwgQCJkZXNjcmlwdGlvbiIsIGFEZWNvZGVyKTsKKyAgICBOU1VSTCAqc2NvcGVVUkwg
PSBkZWNvZGVPYmplY3RPZkNsYXNzRm9yS2V5RnJvbUNvZGVyKFtOU1VSTCBjbGFzc10sIEAic2Nv
cGUiLCBhRGVjb2Rlcik7CiAgICAgTlNJbnRlZ2VyIGRpc3BsYXkgPSBbYURlY29kZXIgZGVjb2Rl
SW50ZWdlckZvcktleTpAImRpc3BsYXkiXTsKLSAgICBOU1VSTCAqc3RhcnRVUkwgPSBbYURlY29k
ZXIgZGVjb2RlT2JqZWN0Rm9yS2V5OkAic3RhcnRfdXJsIl07CisgICAgTlNVUkwgKnN0YXJ0VVJM
ID0gZGVjb2RlT2JqZWN0T2ZDbGFzc0ZvcktleUZyb21Db2RlcihbTlNVUkwgY2xhc3NdLCBAInN0
YXJ0X3VybCIsIGFEZWNvZGVyKTsKIAogICAgIFdlYkNvcmU6OkFwcGxpY2F0aW9uTWFuaWZlc3Qg
Y29yZUFwcGxpY2F0aW9uTWFuaWZlc3QgewogICAgICAgICBXVEY6OlN0cmluZyhuYW1lKSwKSW5k
ZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlz
aW9uIDIyNjM0MikKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDIyIEBACisyMDE4LTAxLTAyICBCcmVudCBGdWxnaGFtICA8YmZ1bGdoYW1AYXBwbGUuY29tPgor
CisgICAgICAgIFttYWNPUywgaU9TXSBBZG9wdCBuZXcgc2VjdXJlIGNvZGluZyBBUElzIGluIFdl
YktpdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgx
MDg1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNDgzNzM5Nz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgQVBJIHRlc3RzIHRvIHVzZSBz
ZWN1cmUgY29kaW5nIHdoZXJldmVyIHBvc3NpYmxlLiBDdXJyZW50bHksIE5TVmlldy9VSVZpZXct
YmFzZWQgY2xhc3NlcyBhcmUgbm90CisgICAgICAgIGNhcGFibGUgb2Ygc3VwcG9ydGluZyBOU1Nl
Y3VyZUNvZGluZywgc28gcGFzcyB0aHJvdWdoIHRoZSBjdXJyZW50IGNvZGluZyByb3V0aW5lcy4K
KworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXBwbGljYXRpb25N
YW5pZmVzdC5tbTogVXBkYXRlZCBmb3IgTlNTZWN1cmVDb2RpbmcuCisgICAgICAgICogVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db2RpbmcubW06CisgICAgICAgIChlbmNvZGVBbmRE
ZWNvZGUpOiBDaGVjayBpZiBjbGFzcyBzdXBwb3J0cyB0aGUgTlNTZWN1cmVDb2RpbmcgcHJvdG9j
b2wgYW5kIHVzZSBub24tc2VjdXJlIGNvZGluZworICAgICAgICByb3V0aW5lcyBpZiBuZWNlc3Nh
cnkuCisgICAgICAgIChURVNUKTogVXBkYXRlZCBmb3IgTlNTZWN1cmVDb2RpbmcuCisgICAgICAg
ICogVGVzdFdlYktpdEFQSS9UZXN0cy9tYWMvRWFybHlLVk9DcmFzaC5tbToKKyAgICAgICAgKFRl
c3RXZWJLaXRBUEk6OlRFU1QpOiBVcGRhdGVkIGZvciBOU1NlY3VyZUNvZGluZy4KKwogMjAxOC0w
MS0wMiAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBE
aXNhYmxlIFdLQXR0YWNobWVudFRlc3RzIGlmIFVJUGFzdGVib2FyZC5pdGVtUHJvdmlkZXJzIGlz
IG5vdCBhdmFpbGFibGUKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29j
b2EvQXBwbGljYXRpb25NYW5pZmVzdC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0FwcGxpY2F0aW9uTWFuaWZlc3QubW0JKHJldmlzaW9uIDIy
NjMzMCkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvQXBwbGljYXRp
b25NYW5pZmVzdC5tbQkod29ya2luZyBjb3B5KQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCA8
V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQv
V0tXZWJWaWV3UHJpdmF0ZS5oPgogI2ltcG9ydCA8V2ViS2l0L19XS0FwcGxpY2F0aW9uTWFuaWZl
c3QuaD4KKyNpbXBvcnQgPHBhbC9zcGkvY29jb2EvTlNLZXllZEFyY2hpdmVyU1BJLmg+CiAKIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKIApAQCAtNDIsNyArNDMsNyBAQCBURVNUKFdlYktpdCwg
QXBwbGljYXRpb25NYW5pZmVzdENvZGluZykKICAgICBhdXRvIGpzb25TdHJpbmcgPSBAInsgXCJu
YW1lXCI6IFwiVGVzdE5hbWVcIiwgXCJzaG9ydF9uYW1lXCI6IFwiVGVzdFNob3J0TmFtZVwiLCBc
ImRlc2NyaXB0aW9uXCI6IFwiVGVzdERlc2NyaXB0aW9uXCIsIFwic2NvcGVcIjogXCJodHRwczov
L3Rlc3QuY29tL2FwcFwiLCBcInN0YXJ0X3VybFwiOiBcImh0dHBzOi8vdGVzdC5jb20vYXBwL2lu
ZGV4Lmh0bWxcIiwgXCJkaXNwbGF5XCI6IFwibWluaW1hbC11aVwiIH0iOwogICAgIFJldGFpblB0
cjxfV0tBcHBsaWNhdGlvbk1hbmlmZXN0PiBtYW5pZmVzdCB7IFtfV0tBcHBsaWNhdGlvbk1hbmlm
ZXN0IGFwcGxpY2F0aW9uTWFuaWZlc3RGcm9tSlNPTjpqc29uU3RyaW5nIG1hbmlmZXN0VVJMOltO
U1VSTCBVUkxXaXRoU3RyaW5nOkAiaHR0cHM6Ly90ZXN0LmNvbS9tYW5pZmVzdC5qc29uIl0gZG9j
dW1lbnRVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJodHRwczovL3Rlc3QuY29tLyJdXSB9Owog
ICAgIAotICAgIG1hbmlmZXN0ID0gW05TS2V5ZWRVbmFyY2hpdmVyIHVuYXJjaGl2ZU9iamVjdFdp
dGhEYXRhOltOU0tleWVkQXJjaGl2ZXIgYXJjaGl2ZWREYXRhV2l0aFJvb3RPYmplY3Q6bWFuaWZl
c3QuZ2V0KCldXTsKKyAgICBtYW5pZmVzdCA9IHVuYXJjaGl2ZWRPYmplY3RPZkNsYXNzZXNGcm9t
RGF0YShbTlNTZXQgc2V0V2l0aE9iamVjdDpbX1dLQXBwbGljYXRpb25NYW5pZmVzdCBjbGFzc11d
LCBzZWN1cmVseUFyY2hpdmVkRGF0YVdpdGhSb290T2JqZWN0KG1hbmlmZXN0LmdldCgpKSk7CiAg
ICAgCiAgICAgRVhQRUNUX1RSVUUoW21hbmlmZXN0IGlzS2luZE9mQ2xhc3M6W19XS0FwcGxpY2F0
aW9uTWFuaWZlc3QgY2xhc3NdXSk7CiAgICAgRVhQRUNUX1NUUkVRKCJUZXN0TmFtZSIsIG1hbmlm
ZXN0LmdldCgpLm5hbWUuVVRGOFN0cmluZyk7CkluZGV4OiBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdENvY29hL0NvZGluZy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL0NvZGluZy5tbQkocmV2aXNpb24gMjI2MzMwKQorKysgVG9v
bHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Db2RpbmcubW0JKHdvcmtpbmcgY29w
eSkKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNi0yMDE3IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMjgsMTQgKzI4LDE5IEBACiAjaWYgV0tfQVBJX0VOQUJMRUQKIAogI2ltcG9ydCA8V2ViS2l0
L1dLUHJvY2Vzc1Bvb2xQcml2YXRlLmg+CisjaW1wb3J0IDxwYWwvc3BpL2NvY29hL05TS2V5ZWRB
cmNoaXZlclNQSS5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgogUmV0YWluUHRyPFQ+IGVuY29kZUFuZERlY29kZShUKiB0KQogewotICAgIGF1dG8g
ZGF0YSA9IFtOU0tleWVkQXJjaGl2ZXIgYXJjaGl2ZWREYXRhV2l0aFJvb3RPYmplY3Q6dF07Cisg
ICAgaWYgKFt0IGNvbmZvcm1zVG9Qcm90b2NvbDpAcHJvdG9jb2woTlNTZWN1cmVDb2RpbmcpXSkg
eworICAgICAgICBhdXRvIGRhdGEgPSBzZWN1cmVseUFyY2hpdmVkRGF0YVdpdGhSb290T2JqZWN0
KHQpOworICAgICAgICByZXR1cm4gdW5hcmNoaXZlZE9iamVjdE9mQ2xhc3Nlc0Zyb21EYXRhKFtO
U1NldCBzZXRXaXRoT2JqZWN0czpbdCBjbGFzc10sIG5pbF0sIGRhdGEpOworICAgIH0KIAotICAg
IHJldHVybiBbTlNLZXllZFVuYXJjaGl2ZXIgdW5hcmNoaXZlT2JqZWN0V2l0aERhdGE6ZGF0YV07
CisgICAgYXV0byBkYXRhID0gaW5zZWN1cmVseUFyY2hpdmVkRGF0YVdpdGhSb290T2JqZWN0KHQp
OworICAgIHJldHVybiBpbnNlY3VyZWx5VW5hcmNoaXZlT2JqZWN0RnJvbURhdGEoZGF0YSk7CiB9
CiAKIFRFU1QoQ29kaW5nLCBXS1ByZWZlcmVuY2VzKQpAQCAtMTYxLDExICsxNjYsMTEgQEAgVEVT
VChDb2RpbmcsIFdLV2ViVmlld19TYW1lQ29uZmlndXJhdGlvbgogICAgICAgICBhdXRvIGEgPSBh
ZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOkNHUmVjdFplcm8gY29uZmln
dXJhdGlvbjpjb25maWd1cmF0aW9uLmdldCgpXSk7CiAgICAgICAgIGF1dG8gYiA9IGFkb3B0TlMo
W1tXS1dlYlZpZXcgYWxsb2NdIGluaXRXaXRoRnJhbWU6Q0dSZWN0WmVybyBjb25maWd1cmF0aW9u
OmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKIAotICAgICAgICBkYXRhID0gW05TS2V5ZWRBcmNoaXZl
ciBhcmNoaXZlZERhdGFXaXRoUm9vdE9iamVjdDpAW2EuZ2V0KCksIGIuZ2V0KCldXTsKKyAgICAg
ICAgZGF0YSA9IHNlY3VyZWx5QXJjaGl2ZWREYXRhV2l0aFJvb3RPYmplY3QoQFthLmdldCgpLCBi
LmdldCgpXSk7CiAgICAgfQogCiAgICAgLy8gVGhlbiwgZGVjb2RlIGFuZCB2ZXJpZnkgdGhhdCB0
aGUgaW1wb3J0YW50IGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBhcmUgdGhlIHNhbWUuCi0gICAg
TlNBcnJheSAqYXJyYXkgPSBbTlNLZXllZFVuYXJjaGl2ZXIgdW5hcmNoaXZlT2JqZWN0V2l0aERh
dGE6ZGF0YS5nZXQoKV07CisgICAgTlNBcnJheSAqYXJyYXkgPSB1bmFyY2hpdmVkT2JqZWN0T2ZD
bGFzc2VzRnJvbURhdGEoW05TU2V0IHNldFdpdGhPYmplY3Q6W05TQXJyYXkgY2xhc3NdXSwgZGF0
YS5nZXQoKSk7CiAKICAgICBXS1dlYlZpZXcgKmFWaWV3ID0gYXJyYXlbMF07CiAgICAgV0tXZWJW
aWV3ICpiVmlldyA9IGFycmF5WzFdOwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9t
YWMvRWFybHlLVk9DcmFzaC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL21hYy9FYXJseUtWT0NyYXNoLm1tCShyZXZpc2lvbiAyMjYzMzApCisrKyBUb29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL21hYy9FYXJseUtWT0NyYXNoLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYtMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI2LDYg
KzI2LDcgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogCiAjaW1wb3J0IDxXZWJLaXQvV2ViVmlldy5o
PgorI2ltcG9ydCA8cGFsL3NwaS9jb2NvYS9OU0tleWVkQXJjaGl2ZXJTUEkuaD4KICNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KIAogQGludGVyZmFjZSBFYXJseUtWT0NyYXNoUmVzcG9uZGVyIDog
TlNSZXNwb25kZXIgewpAQCAtODUsOCArODYsMTIgQEAgVEVTVChXZWJLaXRMZWdhY3ksIEVhcmx5
S1ZPQ3Jhc2gpCiAKICAgICBbd2ViVmlldyBzZXROZXh0UmVzcG9uZGVyOmVhcmx5S1ZPQ3Jhc2hS
ZXNwb25kZXIuZ2V0KCldOwogCi0gICAgTlNEYXRhICpkYXRhID0gW05TS2V5ZWRBcmNoaXZlciBh
cmNoaXZlZERhdGFXaXRoUm9vdE9iamVjdDpAWyB3ZWJWaWV3LmdldCgpLCBlYXJseUtWT0NyYXNo
UmVzcG9uZGVyLmdldCgpIF1dOwotICAgIFtOU0tleWVkVW5hcmNoaXZlciB1bmFyY2hpdmVPYmpl
Y3RXaXRoRGF0YTpkYXRhXTsKKyAgICBhdXRvIGRhdGEgPSBzZWN1cmVseUFyY2hpdmVkRGF0YVdp
dGhSb290T2JqZWN0KEBbd2ViVmlldy5nZXQoKSwgZWFybHlLVk9DcmFzaFJlc3BvbmRlci5nZXQo
KV0pOworCisgICAgaWYgKFt3ZWJWaWV3IGNvbmZvcm1zVG9Qcm90b2NvbDpAcHJvdG9jb2woTlNT
ZWN1cmVDb2RpbmcpXSkKKyAgICAgICAgdW5hcmNoaXZlZE9iamVjdE9mQ2xhc3Nlc0Zyb21EYXRh
KFtOU1NldCBzZXRXaXRoT2JqZWN0czpbTlNBcnJheSBjbGFzc10sIFtXZWJWaWV3IGNsYXNzXSwg
W0Vhcmx5S1ZPQ3Jhc2hSZXNwb25kZXIgY2xhc3NdLCBuaWxdLCBkYXRhKTsKKyAgICBlbHNlCisg
ICAgICAgIGluc2VjdXJlbHlVbmFyY2hpdmVPYmplY3RGcm9tRGF0YShkYXRhKTsKIH0KIAogfSAv
LyBuYW1lc3BhY2UgVGVzdFdlYktpdEFQSQo=
</data>
<flag name="review"
          id="349376"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>