<?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>163674</bug_id>
          
          <creation_ts>2016-10-19 11:15:07 -0700</creation_ts>
          <short_desc>Add WKWebView fullscreen delegate SPI</short_desc>
          <delta_ts>2016-10-27 19:26:01 -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>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="Jer Noble">jer.noble</reporter>
          <assigned_to name="Jer Noble">jer.noble</assigned_to>
          <cc>andersca</cc>
    
    <cc>jbedard</cc>
    
    <cc>ossy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1241998</commentid>
    <comment_count>0</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-10-19 11:15:07 -0700</bug_when>
    <thetext>Add WKWebView fullscreen delegate SPI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1241999</commentid>
    <comment_count>1</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-10-19 11:17:47 -0700</bug_when>
    <thetext>rdar://problem/28722363</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242001</commentid>
    <comment_count>2</comment_count>
      <attachid>292085</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-10-19 11:18:16 -0700</bug_when>
    <thetext>Created attachment 292085
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242261</commentid>
    <comment_count>3</comment_count>
      <attachid>292148</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-10-19 21:02:03 -0700</bug_when>
    <thetext>Created attachment 292148
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1242476</commentid>
    <comment_count>4</comment_count>
      <attachid>292222</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-10-20 10:26:30 -0700</bug_when>
    <thetext>Created attachment 292222
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1243849</commentid>
    <comment_count>5</comment_count>
      <attachid>292222</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2016-10-24 13:12:14 -0700</bug_when>
    <thetext>Comment on attachment 292222
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=292222&amp;action=review

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:3942
&gt; +    return [static_cast&lt;WebKit::FullscreenClient&amp;&gt;(_page-&gt;fullscreenClient()).delegate().leakRef() autorelease];

Can just use .autorelease() here instead of .leakRef() autorelease].

&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h:249
&gt; +@property (nonatomic, setter=_setFullscreenDelegate:) id&lt;_WKFullscreenDelegate&gt; _fullscreenDelegate WK_API_AVAILABLE(macos(10.13));
&gt; +@property (nonatomic, readonly) BOOL _isInFullscreen WK_API_AVAILABLE(macos(10.13));

Should be WK_MAC_TBA.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1244220</commentid>
    <comment_count>6</comment_count>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2016-10-25 08:55:25 -0700</bug_when>
    <thetext>Committed r207820: &lt;http://trac.webkit.org/changeset/207820&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1244231</commentid>
    <comment_count>7</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-10-25 09:26:37 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; Committed r207820: &lt;http://trac.webkit.org/changeset/207820&gt;

It broke the debug build, see build.webkit.org for details.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1244233</commentid>
    <comment_count>8</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-10-25 09:29:21 -0700</bug_when>
    <thetext>/Volumes/Data/slave/elcapitan-debug/build/Source/WebKit2/UIProcess/API/Cocoa/WKWebView.mm:3942:102: error: expected &apos;;&apos; after return statement
    return static_cast&lt;WebKit::FullscreenClient&amp;&gt;(_page-&gt;fullscreenClient()).delegate().autorelease());
                                                                                                     ^
                                                                                                     ;

Not only the debug, but all builds .... Please build locally before landing random syntax errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1244234</commentid>
    <comment_count>9</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2016-10-25 09:30:46 -0700</bug_when>
    <thetext>fix already landed in https://trac.webkit.org/changeset/207822 , thanks Jonathan.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1245400</commentid>
    <comment_count>10</comment_count>
      <attachid>292222</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2016-10-27 19:26:01 -0700</bug_when>
    <thetext>Comment on attachment 292222
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=292222&amp;action=review

&gt;&gt; Source/WebKit2/UIProcess/API/Cocoa/WKWebViewPrivate.h:249
&gt;&gt; +@property (nonatomic, setter=_setFullscreenDelegate:) id&lt;_WKFullscreenDelegate&gt; _fullscreenDelegate WK_API_AVAILABLE(macos(10.13));
&gt;&gt; +@property (nonatomic, readonly) BOOL _isInFullscreen WK_API_AVAILABLE(macos(10.13));
&gt; 
&gt; Should be WK_MAC_TBA.

This broke building against older SDKs that don&apos;t know about &quot;macos&quot;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292085</attachid>
            <date>2016-10-19 11:18:16 -0700</date>
            <delta_ts>2016-10-19 21:02:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163674-20161019111440.patch</filename>
            <type>text/plain</type>
            <size>40730</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA2NjU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTgwYjQyODExNWE5MTk2
YmQ3OWEwNDNhNjczMzVjZGRkYzA1ZTQzYy4uNTk1ZjY2ZWNkZDk5NTQxNTU3YTMxOWE3MDUwMDU4
NDY2ZGU0NTVmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE2LTEwLTE5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBXS1dlYlZpZXcgZnVs
bHNjcmVlbiBkZWxlZ2F0ZSBTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MzY3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgcHJvcGVydHkgdG8gV0tXZWJWaWV3IGFsbG93aW5n
IGNsaWVudHMgdG8gYmUgbm90aWZpZWQgd2hlbiBmdWxsc2NyZWVuIG1vZGUgZW50ZXJzIGFuZCBl
eGl0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJRnVsbHNjcmVlbkNsaWVudC5oOiBB
ZGRlZC4KKyAgICAgICAgKEFQSTo6RnVsbHNjcmVlbkNsaWVudDo6fkZ1bGxzY3JlZW5DbGllbnQp
OgorICAgICAgICAoQVBJOjpGdWxsc2NyZWVuQ2xpZW50Ojp3aWxsRW50ZXJGdWxsc2NyZWVuKToK
KyAgICAgICAgKEFQSTo6RnVsbHNjcmVlbkNsaWVudDo6ZGlkRW50ZXJGdWxsc2NyZWVuKToKKyAg
ICAgICAgKEFQSTo6RnVsbHNjcmVlbkNsaWVudDo6d2lsbEV4aXRGdWxsc2NyZWVuKToKKyAgICAg
ICAgKEFQSTo6RnVsbHNjcmVlbkNsaWVudDo6ZGlkRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcg
X2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9z
ZXRGdWxsc2NyZWVuRGVsZWdhdGU6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZnVsbHNjcmVl
bkRlbGVnYXRlXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfaXNJbkZ1bGxzY3JlZW5dKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudDo6fkZ1bGxzY3JlZW5DbGllbnQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9GdWxsc2NyZWVuQ2xpZW50Lm1tOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudDo6RnVsbHNjcmVlbkNsaWVudCk6CisgICAgICAgIChX
ZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ6OmRlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6RnVs
bHNjcmVlbkNsaWVudDo6c2V0RGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpGdWxsc2NyZWVu
Q2xpZW50Ojp3aWxsRW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6RnVsbHNjcmVl
bkNsaWVudDo6ZGlkRW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6RnVsbHNjcmVl
bkNsaWVudDo6d2lsbEV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6RnVsbHNjcmVl
bkNsaWVudDo6ZGlkRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVlbk1h
bmFnZXJQcm94eTo6d2lsbEVudGVyRnVsbFNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZEVudGVyRnVsbFNjcmVlbik6CisgICAgICAgIChXZWJL
aXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OndpbGxFeGl0RnVsbFNjcmVlbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZEV4aXRGdWxsU2NyZWVu
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnNldEZ1bGxzY3JlZW5DbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmZ1bGxTY3JlZW5NYW5hZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZnVsbHNjcmVlbkNs
aWVudCk6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAy
MDE2LTA5LTMwICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW1dL
Ml1baU9TXSBBZGQgcmFkaXVzWCAvIHJhZGl1c1kgLyByb3RhdGlvbkFuZ2xlIHRvIFdlYlBsYXRm
b3JtVG91Y2hQb2ludApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9B
UElGdWxsc2NyZWVuQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSUZ1
bGxzY3JlZW5DbGllbnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMzQ4YjhiZmViMGQ5NzEwODRlYzM3NmMyMjZk
ZTNjOTc5NWI4MGM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9BUElGdWxsc2NyZWVuQ2xpZW50LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2VQcm94eTsK
K30KKworbmFtZXNwYWNlIEFQSSB7CisKK2NsYXNzIEZ1bGxzY3JlZW5DbGllbnQgeworcHVibGlj
OgorICAgIHZpcnR1YWwgfkZ1bGxzY3JlZW5DbGllbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9p
ZCB3aWxsRW50ZXJGdWxsc2NyZWVuKFdlYktpdDo6V2ViUGFnZVByb3h5KikgeyB9CisgICAgdmly
dHVhbCB2b2lkIGRpZEVudGVyRnVsbHNjcmVlbihXZWJLaXQ6OldlYlBhZ2VQcm94eSopIHsgfQor
ICAgIHZpcnR1YWwgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpXZWJQYWdlUHJveHkq
KSB7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpXZWJQYWdl
UHJveHkqKSB7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCA0MzEwYmU4MWM0YTI2YzZl
MDhhNjdkNTlkZDliZGMwZmI5OGVhNzE0Li4zNjYxYmQzYWQxMzE0ZDI5YjlhOWU0NzNkMDY5NDFh
OTRmNWExNGUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQpAQCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAiQ29tcGxldGlvbkhhbmRsZXJD
YWxsQ2hlY2tlci5oIgogI2ltcG9ydCAiRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbXBv
cnQgIkZpbmRDbGllbnQuaCIKKyNpbXBvcnQgIkZ1bGxzY3JlZW5DbGllbnQuaCIKICNpbXBvcnQg
IkxlZ2FjeVNlc3Npb25TdGF0ZUNvZGluZy5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9y
dCAiTmF2aWdhdGlvblN0YXRlLmgiCkBAIC02Nyw2ICs2OCw3IEBACiAjaW1wb3J0ICJXZWJCYWNr
Rm9yd2FyZExpc3QuaCIKICNpbXBvcnQgIldlYkNlcnRpZmljYXRlSW5mby5oIgogI2ltcG9ydCAi
V2ViRm9ybVN1Ym1pc3Npb25MaXN0ZW5lclByb3h5LmgiCisjaW1wb3J0ICJXZWJGdWxsU2NyZWVu
TWFuYWdlclByb3h5LmgiCiAjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIKICNpbXBv
cnQgIldlYlBhZ2VHcm91cC5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCkBAIC03Nyw2ICs3
OSw3IEBACiAjaW1wb3J0ICJfV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmgiCiAjaW1wb3J0
ICJfV0tGaW5kRGVsZWdhdGUuaCIKICNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaCIK
KyNpbXBvcnQgIl9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oIgogI2ltcG9ydCAiX1dLSGl0VGVzdFJl
c3VsdEludGVybmFsLmgiCiAjaW1wb3J0ICJfV0tJbnB1dERlbGVnYXRlLmgiCiAjaW1wb3J0ICJf
V0tSZW1vdGVPYmplY3RSZWdpc3RyeUludGVybmFsLmgiCkBAIC01MzcsNiArNTQwLDcgQEAgc3Rh
dGljIHVpbnQzMl90IGNvbnZlcnRTeXN0ZW1MYXlvdXREaXJlY3Rpb24oTlNVc2VySW50ZXJmYWNl
TGF5b3V0RGlyZWN0aW9uIGRpcmUKICAgICBfdWlEZWxlZ2F0ZSA9IHN0ZDo6bWFrZV91bmlxdWU8
V2ViS2l0OjpVSURlbGVnYXRlPihzZWxmKTsKICAgICBfcGFnZS0+c2V0RmluZENsaWVudChzdGQ6
Om1ha2VfdW5pcXVlPFdlYktpdDo6RmluZENsaWVudD4oc2VsZikpOwogICAgIF9wYWdlLT5zZXRE
aWFnbm9zdGljTG9nZ2luZ0NsaWVudChzdGQ6Om1ha2VfdW5pcXVlPFdlYktpdDo6RGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQ+KHNlbGYpKTsKKyAgICBfcGFnZS0+c2V0RnVsbHNjcmVlbkNsaWVudChz
dGQ6Om1ha2VfdW5pcXVlPFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudD4oc2VsZikpOwogCiAgICAg
cGFnZVRvVmlld01hcCgpLmFkZChfcGFnZS5nZXQoKSwgc2VsZik7CiB9CkBAIC0zOTA5LDYgKzM5
MTMsMzEgQEAgc3RhdGljIGlubGluZSBXZWJLaXQ6OkZpbmRPcHRpb25zIHRvRmluZE9wdGlvbnMo
X1dLRmluZE9wdGlvbnMgd2tGaW5kT3B0aW9ucykKICAgICByZXR1cm4gX3BhZ2UtPnByb2Nlc3Mo
KS5yZXNwb25zaXZlbmVzc1RpbWVyKCkuaXNSZXNwb25zaXZlKCk7CiB9CiAKKy0gKHZvaWQpX3Nl
dEZ1bGxzY3JlZW5EZWxlZ2F0ZTooaWQ8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPilkZWxlZ2F0ZQor
eworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICBzdGF0aWNfY2FzdDxXZWJLaXQ6OkZ1
bGxzY3JlZW5DbGllbnQmPihfcGFnZS0+ZnVsbHNjcmVlbkNsaWVudCgpKS5zZXREZWxlZ2F0ZShk
ZWxlZ2F0ZSk7CisjZW5kaWYKK30KKworLSAoaWQ8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPilfZnVs
bHNjcmVlbkRlbGVnYXRlCit7CisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIHJldHVy
biBbc3RhdGljX2Nhc3Q8V2ViS2l0OjpGdWxsc2NyZWVuQ2xpZW50Jj4oX3BhZ2UtPmZ1bGxzY3Jl
ZW5DbGllbnQoKSkuZGVsZWdhdGUoKS5sZWFrUmVmKCkgYXV0b3JlbGVhc2VdOworI2Vsc2UKKyAg
ICByZXR1cm4gbnVsbHB0cjsKKyNlbmRpZgorfQorCistIChCT09MKV9pc0luRnVsbHNjcmVlbgor
eworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICByZXR1cm4gX3BhZ2UtPmZ1bGxTY3Jl
ZW5NYW5hZ2VyKCkgJiYgX3BhZ2UtPmZ1bGxTY3JlZW5NYW5hZ2VyKCktPmlzRnVsbFNjcmVlbigp
OworI2Vsc2UKKyAgICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogI3ByYWdtYSBtYXJrIGlP
Uy1zcGVjaWZpYyBtZXRob2RzCiAKICNpZiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IGY4
N2E1NDhkNWJjYjY1ZjcxY2U0OWU3MDgwNTE3NTM0OTZiNTJjMDQuLmQwZWM3YWM2ODE5YTkzOTU1
NzgyMzU0NDg2YzY5YzVjZWYwMTFlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC02Myw2ICs2Myw3IEBAIHR5
cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKIEBwcm90
b2NvbCBfV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlOwogQHByb3RvY29sIF9XS0ZpbmREZWxl
Z2F0ZTsKIEBwcm90b2NvbCBfV0tJbnB1dERlbGVnYXRlOworQHByb3RvY29sIF9XS0Z1bGxzY3Jl
ZW5EZWxlZ2F0ZTsKIAogQGludGVyZmFjZSBXS1dlYlZpZXcgKFdLUHJpdmF0ZSkKIApAQCAtMjQ0
LDYgKzI0NSw5IEBAIHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlv
blR5cGUpIHsKIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF93ZWJQcm9j
ZXNzSXNSZXNwb25zaXZlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjAp
KTsKIAorQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RnVsbHNjcmVlbkRlbGVnYXRl
OikgaWQ8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPiBfZnVsbHNjcmVlbkRlbGVnYXRlIFdLX0FQSV9B
VkFJTEFCTEUobWFjb3MoMTAuMTMpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
Qk9PTCBfaXNJbkZ1bGxzY3JlZW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMykpOworCiBA
ZW5kCiAKICNpZiAhVEFSR0VUX09TX0lQSE9ORQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGdWxsc2NyZWVuRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRnVsbHNjcmVlbkRlbGVnYXRlLmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uODY0NmM1MTUzNWY3YmI1YWNiZWI2YTU0ZTQzODVkMWE4MDNhMWZmOQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRnVsbHNjcmVlbkRl
bGVnYXRlLmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9X
S0ZvdW5kYXRpb24uaD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKK0Bwcm90b2NvbCBfV0tGdWxs
c2NyZWVuRGVsZWdhdGUgPE5TT2JqZWN0PgorCitAb3B0aW9uYWwKKworLSAodm9pZClfd2ViVmll
d1dpbGxFbnRlckZ1bGxzY3JlZW46KFdLV2ViVmlldyAqKXdlYlZpZXc7CistICh2b2lkKV93ZWJW
aWV3RGlkRW50ZXJGdWxsc2NyZWVuOihXS1dlYlZpZXcgKil3ZWJWaWV3OworLSAodm9pZClfd2Vi
Vmlld1dpbGxFeGl0RnVsbHNjcmVlbjooV0tXZWJWaWV3ICopd2ViVmlldzsKKy0gKHZvaWQpX3dl
YlZpZXdEaWRFeGl0RnVsbHNjcmVlbjooV0tXZWJWaWV3ICopd2ViVmlldzsKKworQGVuZAorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9GdWxsc2Ny
ZWVuQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNs
aWVudC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjJhNzMyZjA4MjFlODE4YzRhMjQ3NGU4ODZhZWE3MTg0NTdjNzRj
NGMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvRnVs
bHNjcmVlbkNsaWVudC5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2ltcG9ydCAiV0tGb3VuZGF0aW9uLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRAorCisj
aW1wb3J0ICJBUElGdWxsc2NyZWVuQ2xpZW50LmgiCisjaW1wb3J0ICJXZWFrT2JqQ1B0ci5oIgor
I2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgorCitAY2xhc3MgV0tXZWJWaWV3OworQHByb3RvY29s
IF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEZ1
bGxzY3JlZW5DbGllbnQgOiBwdWJsaWMgQVBJOjpGdWxsc2NyZWVuQ2xpZW50IHsKK3B1YmxpYzoK
KyAgICBleHBsaWNpdCBGdWxsc2NyZWVuQ2xpZW50KFdLV2ViVmlldyAqKTsKKyAgICB+RnVsbHNj
cmVlbkNsaWVudCgpIHsgfTsKKworICAgIFJldGFpblB0cjxpZDxfV0tGdWxsc2NyZWVuRGVsZWdh
dGU+PiBkZWxlZ2F0ZSgpOworICAgIHZvaWQgc2V0RGVsZWdhdGUoaWQ8X1dLRnVsbHNjcmVlbkRl
bGVnYXRlPik7CisKKyAgICB2b2lkIHdpbGxFbnRlckZ1bGxzY3JlZW4oV2ViUGFnZVByb3h5Kikg
b3ZlcnJpZGU7CisgICAgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oV2ViUGFnZVByb3h5Kikgb3Zl
cnJpZGU7CisgICAgdm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4oV2ViUGFnZVByb3h5Kikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBkaWRFeGl0RnVsbHNjcmVlbihXZWJQYWdlUHJveHkqKSBvdmVycmlkZTsK
KworcHJpdmF0ZToKKyAgICBXS1dlYlZpZXcgKm1fd2ViVmlldzsKKyAgICBXZWFrT2JqQ1B0cjxp
ZCA8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPiA+IG1fZGVsZWdhdGU7CisKKyAgICBzdHJ1Y3Qgewor
ICAgICAgICBib29sIHdlYlZpZXdXaWxsRW50ZXJGdWxsc2NyZWVuIDogMTsKKyAgICAgICAgYm9v
bCB3ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3V2ls
bEV4aXRGdWxsc2NyZWVuIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3RGlkRXhpdEZ1bGxzY3Jl
ZW4gOiAxOworICAgIH0gbV9kZWxlZ2F0ZU1ldGhvZHM7Cit9OworICAgIAorfSAvLyBuYW1lc3Bh
Y2UgV2ViS2l0CisKKyNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL0Z1bGxzY3JlZW5DbGllbnQubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDZj
OTY1NmViZjJmOGMyNGRlNmY5NTRlMmFmMWUzOWI1YWExZmNjCi0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL0Z1bGxzY3JlZW5DbGllbnQubW0KQEAgLTAs
MCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkZ1
bGxzY3JlZW5DbGllbnQuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgIl9XS0Z1
bGxzY3JlZW5EZWxlZ2F0ZS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworRnVsbHNjcmVlbkNs
aWVudDo6RnVsbHNjcmVlbkNsaWVudChXS1dlYlZpZXcgKndlYlZpZXcpCisgICAgOiBtX3dlYlZp
ZXcod2ViVmlldykKK3sKK30KKworUmV0YWluUHRyPGlkIDxfV0tGdWxsc2NyZWVuRGVsZWdhdGU+
PiBGdWxsc2NyZWVuQ2xpZW50OjpkZWxlZ2F0ZSgpCit7CisgICAgcmV0dXJuIG1fZGVsZWdhdGUu
Z2V0KCk7Cit9CisKK3ZvaWQgRnVsbHNjcmVlbkNsaWVudDo6c2V0RGVsZWdhdGUoaWQgPF9XS0Z1
bGxzY3JlZW5EZWxlZ2F0ZT4gZGVsZWdhdGUpCit7CisgICAgbV9kZWxlZ2F0ZSA9IGRlbGVnYXRl
OworCisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dpbGxFbnRlckZ1bGxzY3JlZW4gPSBb
ZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld1dpbGxFbnRlckZ1
bGxzY3JlZW46KV07CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEVudGVyRnVsbHNj
cmVlbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3RGlk
RW50ZXJGdWxsc2NyZWVuOildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsRXhp
dEZ1bGxzY3JlZW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2Vi
Vmlld1dpbGxFeGl0RnVsbHNjcmVlbjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
RGlkRXhpdEZ1bGxzY3JlZW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cihfd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuOildOworfQorCit2b2lkIEZ1bGxzY3JlZW5DbGll
bnQ6OndpbGxFbnRlckZ1bGxzY3JlZW4oV2ViUGFnZVByb3h5KikKK3sKKyAgICBpZiAobV9kZWxl
Z2F0ZU1ldGhvZHMud2ViVmlld1dpbGxFbnRlckZ1bGxzY3JlZW4pCisgICAgICAgIFttX2RlbGVn
YXRlLmdldCgpIF93ZWJWaWV3V2lsbEVudGVyRnVsbHNjcmVlbjptX3dlYlZpZXddOworfQorCit2
b2lkIEZ1bGxzY3JlZW5DbGllbnQ6OmRpZEVudGVyRnVsbHNjcmVlbihXZWJQYWdlUHJveHkqKQor
eworICAgIGlmIChtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuKQor
ICAgICAgICBbbV9kZWxlZ2F0ZS5nZXQoKSBfd2ViVmlld0RpZEVudGVyRnVsbHNjcmVlbjptX3dl
YlZpZXddOworfQorCit2b2lkIEZ1bGxzY3JlZW5DbGllbnQ6OndpbGxFeGl0RnVsbHNjcmVlbihX
ZWJQYWdlUHJveHkqKQoreworICAgIGlmIChtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2lsbEV4
aXRGdWxsc2NyZWVuKQorICAgICAgICBbbV9kZWxlZ2F0ZS5nZXQoKSBfd2ViVmlld1dpbGxFeGl0
RnVsbHNjcmVlbjptX3dlYlZpZXddOworfQorCit2b2lkIEZ1bGxzY3JlZW5DbGllbnQ6OmRpZEV4
aXRGdWxsc2NyZWVuKFdlYlBhZ2VQcm94eSopCit7CisgICAgaWYgKG1fZGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdEaWRFeGl0RnVsbHNjcmVlbikKKyAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkgX3dl
YlZpZXdEaWRFeGl0RnVsbHNjcmVlbjptX3dlYlZpZXddOworfQorCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAKaW5kZXggNDgxN2Yz
ZmIwNDM3YzdlOTQ3MjBkMTcwYWUwNjUxMDg0NWNmMjBlNC4uMTJlYzZkZWY4YzU5ZmQxMGVlMTRm
OWJlNGJjYWJhYzhjMjM3YTNjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5LmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAj
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogCisjaW5jbHVkZSAiQVBJRnVsbHNjcmVlbkNsaWVu
dC5oIgogI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRl
ICJXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdl
UHJveHkuaCIKQEAgLTU2LDIxICs1NywyNSBAQCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Ojp+
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSgpCiAKIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eTo6d2lsbEVudGVyRnVsbFNjcmVlbigpCiB7CisgICAgbV9wYWdlLT5mdWxsc2NyZWVuQ2xp
ZW50KCkud2lsbEVudGVyRnVsbHNjcmVlbihtX3BhZ2UpOwogICAgIG1fcGFnZS0+cHJvY2Vzcygp
LnNlbmQoTWVzc2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpXaWxsRW50ZXJGdWxsU2NyZWVu
KCksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCiB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJv
eHk6OmRpZEVudGVyRnVsbFNjcmVlbigpCiB7CisgICAgbV9wYWdlLT5mdWxsc2NyZWVuQ2xpZW50
KCkuZGlkRW50ZXJGdWxsc2NyZWVuKG1fcGFnZSk7CiAgICAgbV9wYWdlLT5wcm9jZXNzKCkuc2Vu
ZChNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6OkRpZEVudGVyRnVsbFNjcmVlbigpLCBt
X3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAogdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Ojp3
aWxsRXhpdEZ1bGxTY3JlZW4oKQogeworICAgIG1fcGFnZS0+ZnVsbHNjcmVlbkNsaWVudCgpLndp
bGxFeGl0RnVsbHNjcmVlbihtX3BhZ2UpOwogICAgIG1fcGFnZS0+cHJvY2VzcygpLnNlbmQoTWVz
c2FnZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpXaWxsRXhpdEZ1bGxTY3JlZW4oKSwgbV9wYWdl
LT5wYWdlSUQoKSk7CiB9CiAKIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkRXhp
dEZ1bGxTY3JlZW4oKQogeworICAgIG1fcGFnZS0+ZnVsbHNjcmVlbkNsaWVudCgpLmRpZEV4aXRG
dWxsc2NyZWVuKG1fcGFnZSk7CiAgICAgbV9wYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6
V2ViRnVsbFNjcmVlbk1hbmFnZXI6OkRpZEV4aXRGdWxsU2NyZWVuKCksIG1fcGFnZS0+cGFnZUlE
KCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IDAyZmZkMTg0ZDIxNzdkMjIzN2Y0ZTgyNGFmYjA1YzZkYmNkYTBmY2YuLmRjOWZkNThjNjQxZjcw
YWY5YzQ2ZWUwMzljMWQyNDM1ZWYxNWYzOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQVBJRmluZE1hdGNo
ZXNDbGllbnQuaCIKICNpbmNsdWRlICJBUElGb3JtQ2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJRnJh
bWVJbmZvLmgiCisjaW5jbHVkZSAiQVBJRnVsbHNjcmVlbkNsaWVudC5oIgogI2luY2x1ZGUgIkFQ
SUdlb21ldHJ5LmgiCiAjaW5jbHVkZSAiQVBJSGlzdG9yeUNsaWVudC5oIgogI2luY2x1ZGUgIkFQ
SUhpdFRlc3RSZXN1bHQuaCIKQEAgLTMzNiw2ICszMzcsOSBAQCBXZWJQYWdlUHJveHk6OldlYlBh
Z2VQcm94eShQYWdlQ2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3Ms
IHVpbgogICAgICwgbV9tYWluRnJhbWUobnVsbHB0cikKICAgICAsIG1fdXNlckFnZW50KHN0YW5k
YXJkVXNlckFnZW50KCkpCiAgICAgLCBtX3RyZWF0c1NIQTFDZXJ0aWZpY2F0ZXNBc0luc2VjdXJl
KG1fY29uZmlndXJhdGlvbi0+dHJlYXRzU0hBMVNpZ25lZENlcnRpZmljYXRlc0FzSW5zZWN1cmUo
KSkKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgLCBtX2Z1bGxzY3JlZW5DbGllbnQo
c3RkOjptYWtlX3VuaXF1ZTxBUEk6OkZ1bGxzY3JlZW5DbGllbnQ+KCkpCisjZW5kaWYKICNpZiBQ
TEFURk9STShJT1MpCiAgICAgLCBtX2hhc1JlY2VpdmVkTGF5ZXJUcmVlVHJhbnNhY3Rpb25BZnRl
ckRpZENvbW1pdExvYWQodHJ1ZSkKICAgICAsIG1fZmlyc3RMYXllclRyZWVUcmFuc2FjdGlvbklk
QWZ0ZXJEaWRDb21taXRMb2FkKDApCkBAIC00MjYzLDYgKzQyNjcsMTEgQEAgV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eSogV2ViUGFnZVByb3h5OjpmdWxsU2NyZWVuTWFuYWdlcigpCiB7CiAgICAg
cmV0dXJuIG1fZnVsbFNjcmVlbk1hbmFnZXIuZ2V0KCk7CiB9CisKK3ZvaWQgV2ViUGFnZVByb3h5
OjpzZXRGdWxsc2NyZWVuQ2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxBUEk6OkZ1bGxzY3JlZW5DbGll
bnQ+IGNsaWVudCkKK3sKKyAgICBtX2Z1bGxzY3JlZW5DbGllbnQgPSBXVEZNb3ZlKGNsaWVudCk7
Cit9CiAjZW5kaWYKICAgICAKICNpZiAoUExBVEZPUk0oSU9TKSAmJiBIQVZFKEFWS0lUKSkgfHwg
KFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAyZWEzMDRhZjY2ZTIwN2ZlMGFi
ZjE2OTE5OWZmZmY5MmVkYjNlODcyLi5iY2UwMzhmNzBjYzEyM2QxOGRiZjc2MWEzMDQ2ZTM3NDli
NjRjYjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMjgs
NiArMTI4LDcgQEAgY2xhc3MgQ29udGV4dE1lbnVDbGllbnQ7CiBjbGFzcyBGaW5kQ2xpZW50Owog
Y2xhc3MgRmluZE1hdGNoZXNDbGllbnQ7CiBjbGFzcyBGb3JtQ2xpZW50OworY2xhc3MgRnVsbHNj
cmVlbkNsaWVudDsKIGNsYXNzIEhpc3RvcnlDbGllbnQ7CiBjbGFzcyBMb2FkZXJDbGllbnQ7CiBj
bGFzcyBOYXZpZ2F0aW9uOwpAQCAtMzMwLDYgKzMzMSw5IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKICAgICBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5KiBmdWxsU2Ny
ZWVuTWFuYWdlcigpOworCisgICAgQVBJOjpGdWxsc2NyZWVuQ2xpZW50JiBmdWxsc2NyZWVuQ2xp
ZW50KCkgY29uc3QgeyByZXR1cm4gKm1fZnVsbHNjcmVlbkNsaWVudDsgfQorICAgIHZvaWQgc2V0
RnVsbHNjcmVlbkNsaWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpGdWxsc2NyZWVuQ2xpZW50Pik7
CiAjZW5kaWYKICNpZiAoUExBVEZPUk0oSU9TKSAmJiBIQVZFKEFWS0lUKSkgfHwgKFBMQVRGT1JN
KE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKICAgICBXZWJQbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyUHJveHkqIHBsYXliYWNrU2Vzc2lvbk1hbmFnZXIoKTsKQEAgLTE1OTMs
NiArMTU5Nyw3IEBAIHByaXZhdGU6CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAg
UmVmUHRyPFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk+IG1fZnVsbFNjcmVlbk1hbmFnZXI7Cisg
ICAgc3RkOjp1bmlxdWVfcHRyPEFQSTo6RnVsbHNjcmVlbkNsaWVudD4gbV9mdWxsc2NyZWVuQ2xp
ZW50OwogI2VuZGlmCiAjaWYgKFBMQVRGT1JNKElPUykgJiYgSEFWRShBVktJVCkpIHx8IChQTEFU
Rk9STShNQUMpICYmIEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiAgICAgUmVmUHRy
PFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eT4gbV9wbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDY3MjU0YWJiOTRhYjA1MjZjNDU4MDBjMThmYzU1MTMwNzU0N2YwMDYuLjA5NGY5YmZm
ODMwZDAzNjBjZjg2NmU3MTIwOWQ2NDg0ZTgwN2VlYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3NTUsNiArMTc1NSwxMCBA
QAogCQlDRDczQkE0NzEzMUFDQzlBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDczQkE0NTEzMUFDQzg4MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFn
ZXJQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCUNENzNCQTRFMTMxQUNEQjcwMEVF
REVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDczQkE0ODEzMUFDRDhFMDBF
RURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9Owog
CQlDRDczQkE1MzEzMUI2NDVCMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3M0JBMzcxMzFB
MjlGRTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCAqLzsgfTsKKwkJQ0Q3OEUx
MTQxREI3RDdFRDAwMTRBMkRFIC8qIEZ1bGxzY3JlZW5DbGllbnQubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDc4RTExMjFEQjdEN0VEMDAxNEEyREUg
LyogRnVsbHNjcmVlbkNsaWVudC5tbSAqLzsgfTsKKwkJQ0Q3OEUxMTUxREI3RDdFRDAwMTRBMkRF
IC8qIEZ1bGxzY3JlZW5DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IENENzhFMTEzMURCN0Q3RUQwMDE0QTJERSAvKiBGdWxsc2NyZWVuQ2xpZW50
LmggKi87IH07CisJCUNENzhFMTE3MURCN0RDMEEwMDE0QTJERSAvKiBBUElGdWxsc2NyZWVuQ2xp
ZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDc4
RTExNjFEQjdEQzBBMDAxNEEyREUgLyogQVBJRnVsbHNjcmVlbkNsaWVudC5oICovOyB9OworCQlD
RDc4RTExOTFEQjdFNUFEMDAxNEEyREUgLyogX1dLRnVsbHNjcmVlbkRlbGVnYXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDc4RTExODFEQjdFNUFE
MDAxNEEyREUgLyogX1dLRnVsbHNjcmVlbkRlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQ0RBMDQxRjQxQUNFMjEwNTAwNEExM0VDIC8q
IEJhY2tCb2FyZFNlcnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDREEwNDFGMzFBQ0UyMTA1MDA0QTEzRUMgLyogQmFja0JvYXJkU2Vydmlj
ZXNTUEkuaCAqLzsgfTsKIAkJQ0RBMjlBMUExQ0JEQkY0MTAwOTAxQ0NGIC8qIFdlYlBsYXliYWNr
U2Vzc2lvbk1hbmFnZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDREEyOUExODFDQkRCRjQxMDA5MDFDQ0YgLyogV2ViUGxheWJhY2tTZXNzaW9uTWFu
YWdlci5tbSAqLzsgfTsKIAkJQ0RBMjlBMUIxQ0JEQkY0MTAwOTAxQ0NGIC8qIFdlYlBsYXliYWNr
U2Vzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEQTI5QTE5MUNCREJGNDEwMDkwMUNDRiAvKiBXZWJQbGF5YmFja1Nlc3Npb25NYW5h
Z2VyLmggKi87IH07CkBAIC0zODkzLDYgKzM4OTcsMTAgQEAKIAkJQ0Q3M0JBNDgxMzFBQ0Q4RTAw
RUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3M0JBNDkxMzFB
Q0Q4RTAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDczQkE0QTEzMUFDRDhGMDBFRURFRDIgLyog
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlDRDc4RTExMjFEQjdEN0VEMDAxNEEyREUgLyogRnVsbHNj
cmVlbkNsaWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZ1
bGxzY3JlZW5DbGllbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENzhFMTEz
MURCN0Q3RUQwMDE0QTJERSAvKiBGdWxsc2NyZWVuQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEZ1bGxzY3JlZW5DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJQ0Q3OEUxMTYxREI3REMwQTAwMTRBMkRFIC8qIEFQSUZ1bGxzY3JlZW5DbGllbnQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJRnVsbHNjcmVlbkNsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDc4RTExODFEQjdFNUFEMDAxNEEyREUg
LyogX1dLRnVsbHNjcmVlbkRlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDREEwNDFGMzFBQ0UyMTA1MDA0QTEzRUMgLyogQmFja0JvYXJkU2VydmljZXNTUEkuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQmFja0JvYXJkU2VydmljZXNTUEkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0RBMjlBMTgxQ0JEQkY0MTAwOTAxQ0NGIC8qIFdl
YlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDREEyOUExOTFDQkRCRjQxMDA5MDFDQ0YgLyogV2ViUGxheWJhY2tTZXNz
aW9uTWFuYWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQbGF5YmFj
a1Nlc3Npb25NYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00Nzk0LDYg
KzQ4MDIsOCBAQAogCQkJCUExREY2MzEwMThFMEI3QzgwMDNBM0UyQSAvKiBEb3dubG9hZENsaWVu
dC5tbSAqLywKIAkJCQkwMEI5NjYxODE4RTI1QUUxMDBDRTFGODggLyogRmluZENsaWVudC5oICov
LAogCQkJCTAwQjk2NjE3MThFMjVBRTEwMENFMUY4OCAvKiBGaW5kQ2xpZW50Lm1tICovLAorCQkJ
CUNENzhFMTEyMURCN0Q3RUQwMDE0QTJERSAvKiBGdWxsc2NyZWVuQ2xpZW50Lm1tICovLAorCQkJ
CUNENzhFMTEzMURCN0Q3RUQwMDE0QTJERSAvKiBGdWxsc2NyZWVuQ2xpZW50LmggKi8sCiAJCQkJ
MEYwQzM2NTkxOEMwNTU1ODAwRjYwN0Q3IC8qIExheWVyUmVwcmVzZW50YXRpb24uaCAqLywKIAkJ
CQkxQUJDM0RGNDE4OTlFNDM3MDA0RjA2MjYgLyogTmF2aWdhdGlvblN0YXRlLmggKi8sCiAJCQkJ
MUFCQzNERjMxODk5RTQzNzAwNEYwNjI2IC8qIE5hdmlnYXRpb25TdGF0ZS5tbSAqLywKQEAgLTUx
NzMsNiArNTE4Myw3IEBACiAJCQkJMkRFQUM1Q0UxQUMzNjhCQjAwQTE5NUQ4IC8qIF9XS0ZpbmRP
cHRpb25zLmggKi8sCiAJCQkJMkU3QTk0NDkxQkJEOTVDNjAwOTQ1NTQ3IC8qIF9XS0ZvY3VzZWRF
bGVtZW50SW5mby5oICovLAogCQkJCTM3QTY0RTU2MThGMzhGNDYwMEVCMzBGMSAvKiBfV0tGb3Jt
SW5wdXRTZXNzaW9uLmggKi8sCisJCQkJQ0Q3OEUxMTgxREI3RTVBRDAwMTRBMkRFIC8qIF9XS0Z1
bGxzY3JlZW5EZWxlZ2F0ZS5oICovLAogCQkJCTM3QTY0RTU0MThGMzhFM0MwMEVCMzBGMSAvKiBf
V0tJbnB1dERlbGVnYXRlLmggKi8sCiAJCQkJMkQ3OTBBOUMxQUQ3MDUwRDAwQUI5MEIzIC8qIF9X
S0xheW91dE1vZGUuaCAqLywKIAkJCQk5MzIzNjExRDFCMDE1REE4MDBGQTkyMzIgLyogX1dLT3Zl
cmxheVNjcm9sbGJhclN0eWxlLmggKi8sCkBAIC02MjM4LDYgKzYyNDksNyBAQAogCQkJCTM3RTI1
RDZEMThGREU1RDYwMDVEM0EwMCAvKiBBUElGb3JtQ2xpZW50LmggKi8sCiAJCQkJMkRGOUVFRTMx
QTc4MUZCNDAwQjZDRkJFIC8qIEFQSUZyYW1lSW5mby5jcHAgKi8sCiAJCQkJMkRGOUVFRTQxQTc4
MUZCNDAwQjZDRkJFIC8qIEFQSUZyYW1lSW5mby5oICovLAorCQkJCUNENzhFMTE2MURCN0RDMEEw
MDE0QTJERSAvKiBBUElGdWxsc2NyZWVuQ2xpZW50LmggKi8sCiAJCQkJMkRBQkE3NzUxQTgyQjQy
MTAwRUYwRjFBIC8qIEFQSUhpc3RvcnlDbGllbnQuaCAqLywKIAkJCQk5M0E4OEI0MjFCQzg4MjhD
MDBBQkE1QzIgLyogQVBJSGl0VGVzdFJlc3VsdC5jcHAgKi8sCiAJCQkJOTNBODhCNDMxQkM4ODI4
QzAwQUJBNUMyIC8qIEFQSUhpdFRlc3RSZXN1bHQuaCAqLywKQEAgLTc1MTYsNiArNzUyOCw3IEBA
CiAJCQkJMUFGQjRDNzIxQURGMTU1RDAwQjMzMzM5IC8qIF9XS1dlYnNpdGVEYXRhU3RvcmUuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBNEE5M0I3MUFFQjA4RUEwMDE1MEU5QyAvKiBfV0tXZWJzaXRl
RGF0YVN0b3JlSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMTVEQzcyMTkxRDgyREEw
MERBODA3MiAvKiBfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUNENzhFMTE5MURCN0U1QUQwMDE0QTJERSAvKiBfV0tGdWxsc2NyZWVuRGVsZWdhdGUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUExOUREM0MwMUQwN0QxNjgwMEFDODIzQiAvKiBfV0tXZWJWaWV3UHJp
bnRGb3JtYXR0ZXJJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE4MkQ1QjUxQkU2QkQy
NTAwODdBN0NDIC8qIEFjY2Vzc2liaWxpdHlJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RDc5
MkQ4MTc2N0NDQTMwMDg4MUNCRSAvKiBBY3Rpdml0eUFzc2VydGlvbi5oIGluIEhlYWRlcnMgKi8s
CkBAIC04MjYwLDYgKzgyNzMsNyBAQAogCQkJCTgzNzJEQjI1MUE2NzRDOEYwMEM2OTdDNSAvKiBX
S1BhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCOEEx
RjQxODQwMEI4RjAwRTlBRTY5IC8qIFdLUGFnZUZpbmRDbGllbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBQjhBMUY2MTg0MDBCOUQwMEU5QUU2OSAvKiBXS1BhZ2VGaW5kTWF0Y2hlc0NsaWVudC5o
IGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q3OEUxMTUxREI3RDdFRDAwMTRBMkRFIC8qIEZ1bGxzY3Jl
ZW5DbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjhBMUYwMTg0MDBCMDAwMEU5QUU2OSAv
KiBXS1BhZ2VGb3JtQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzdCNjMzNzEyQTQ1QUJB
MDBEMTc0QTQgLyogV0tQYWdlR3JvdXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEOUVBMzBEMUE5
NkNCNTkwMDJEMjgwNyAvKiBXS1BhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCkBAIC04MjkxLDYgKzgzMDUsNyBAQAogCQkJCTkzOTEwNzRGMUJGNkJDNjUwMDhDMTdBRCAv
KiBXS1ByZXZpZXdFbGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkNC
NEU2NjE4QkJFM0Q5MDAwRkNGQzkgLyogV0tQcmludGluZ1ZpZXcuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDQkFBQ0VCMTQ1MjI1RTMwMDUzRjgyRiAvKiBXS1Byb2Nlc3NHcm91cC5oIGluIEhlYWRl
cnMgKi8sCisJCQkJQ0Q3OEUxMTcxREI3REMwQTAwMTRBMkRFIC8qIEFQSUZ1bGxzY3JlZW5DbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQkFBQ0VEMTQ1MjI1RTMwMDUzRjgyRiAvKiBXS1By
b2Nlc3NHcm91cFByaXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMTU4NDFBMTg5MDQ0RjUw
MDE3NjE2QyAvKiBXS1Byb2Nlc3NQb29sLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTNDQzE2OTE4
OTA3RUIwMDAxRTZFRDggLyogV0tQcm9jZXNzUG9vbEludGVybmFsLmggaW4gSGVhZGVycyAqLywK
QEAgLTkxOTksNiArOTIxNCw3IEBACiAJCQkJRTQ0MzZFQ0QxQTBEMDQwQjAwRUFEMjA0IC8qIE5l
dHdvcmtDYWNoZUtleS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MzFFRUJCRTFCRDg1QzQzMDBC
QjY0QzMgLyogTmV0d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTgzMkFFMjUzMUJFMkU4Q0QwMEZBQUUxMCAvKiBOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxv
YWRNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCUNENzhFMTE0MURCN0Q3RUQwMDE0QTJE
RSAvKiBGdWxsc2NyZWVuQ2xpZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODNCRENDQjkxQUM1
RkRCNjAwM0Y2NDQxIC8qIE5ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJRTQ0MzZFRDAxQTBEMDQwQjAwRUFEMjA0IC8qIE5ldHdvcmtDYWNoZVN0b3JhZ2UuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJODMxMDQyOEMxQkQ2QjY2RjAwQTcxNUU0IC8qIE5ldHdvcmtD
YWNoZVN1YnJlc291cmNlc0VudHJ5LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGU1MWRjM2E4NDc4NjFjMTNhYjRm
YzBmOTIxY2ExN2I0MmYwOTNjYTguLjkwNmQyYzE3YTUwMjhmZTJmMTUxYzdkMDE3ZmE5MWM3Zjdi
MDRjYWMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMCBAQAorMjAxNi0xMC0xOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxl
LmNvbT4KKworICAgICAgICBBZGQgV0tXZWJWaWV3IGZ1bGxzY3JlZW4gZGVsZWdhdGUgU1BJCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM2NzQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcg
QVBJIHRlc3Qgd2hpY2ggdmVyaWZpZXMgdGhhdCB0aGUgZnVsbHNjcmVlbiBkZWxlZ2F0ZSByZWNl
aXZlcyBub3RpZmljYXRpb25zLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXQyQ29jb2EvRnVsbHNjcmVlbkRlbGVnYXRlLm1tOgorICAgICAgICAoLVtGdWxsc2NyZWVuRGVs
ZWdhdGVNZXNzYWdlSGFuZGxlciB1c2VyQ29udGVudENvbnRyb2xsZXI6ZGlkUmVjZWl2ZVNjcmlw
dE1lc3NhZ2U6XSk6CisgICAgICAgICgtW0Z1bGxzY3JlZW5EZWxlZ2F0ZU1lc3NhZ2VIYW5kbGVy
IF93ZWJWaWV3V2lsbEVudGVyRnVsbHNjcmVlbjpdKToKKyAgICAgICAgKC1bRnVsbHNjcmVlbkRl
bGVnYXRlTWVzc2FnZUhhbmRsZXIgX3dlYlZpZXdEaWRFbnRlckZ1bGxzY3JlZW46XSk6CisgICAg
ICAgICgtW0Z1bGxzY3JlZW5EZWxlZ2F0ZU1lc3NhZ2VIYW5kbGVyIF93ZWJWaWV3V2lsbEV4aXRG
dWxsc2NyZWVuOl0pOgorICAgICAgICAoLVtGdWxsc2NyZWVuRGVsZWdhdGVNZXNzYWdlSGFuZGxl
ciBfd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuOl0pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6
VEVTVCk6CisKIDIwMTYtMDktMzAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBGaXggb2ZmLWJ5LW9uZSBlcnJvciBpbiBVUkxQYXJzZXI6OnBh
cnNlSVB2NEhvc3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdFdlYktpdEFQ
SS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMzYwZTVkZDU3OTQ5ZDI5YTI1
YzNiMzY2NDE5ZTcyMWU5ZDRiOWVkNC4uM2UxYTliNzFmZGQzNGI5YTM4ZWNmOTYxYzBlN2VlZWI4
OGY2MzIxOCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ2Miw2ICs0NjIsOCBAQAogCQlD
NUUxQUZGRTE2QjIyMUYxMDA2Q0MxRjIgLyogZXhlY0NvcHkuaHRtbCBpbiBDb3B5IFJlc291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNUUxQUZGRDE2QjIyMTc5MDA2
Q0MxRjIgLyogZXhlY0NvcHkuaHRtbCAqLzsgfTsKIAkJQ0Q1OUY1MzQxOUU5MTEwRDAwQ0YxODM1
IC8qIGZpbGUtd2l0aC1tc2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU5RjUzMjE5RTkxMEFBMDBDRjE4MzUgLyogZmlsZS13aXRo
LW1zZS5odG1sICovOyB9OwogCQlDRDU5RjUzNTE5RTkxMTBEMDBDRjE4MzUgLyogdGVzdC1tc2Uu
bXA0IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENENTlGNTMzMTlFOTEwQkMwMENGMTgzNSAvKiB0ZXN0LW1zZS5tcDQgKi87IH07CisJCUNENzhF
MTFEMURCN0VBNjYwMDE0QTJERSAvKiBGdWxsc2NyZWVuRGVsZWdhdGUubW0gaW4gU291cmNlcyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDc4RTExQTFEQjdFQTM2MDAxNEEy
REUgLyogRnVsbHNjcmVlbkRlbGVnYXRlLm1tICovOyB9OworCQlDRDc4RTExRTFEQjdFRTJBMDAx
NEEyREUgLyogRnVsbHNjcmVlbkRlbGVnYXRlLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3OEUxMUIxREI3RUEzNjAwMTRBMkRFIC8q
IEZ1bGxzY3JlZW5EZWxlZ2F0ZS5odG1sICovOyB9OwogCQlDRDlFMjkyRTFDOTBDMzNGMDAwQkI4
MDAgLyogYXVkaW8tb25seS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENEOUUyOTJEMUM5MEMxQkEwMDBCQjgwMCAvKiBhdWRpby1vbmx5
Lmh0bWwgKi87IH07CiAJCUNEQkZDQzQ1MUE5RkY0NTMwMEE3QjY5MSAvKiBGdWxsc2NyZWVuWm9v
bUluaXRpYWxGcmFtZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENEQkZDQzQzMUE5RkY0NDgwMEE3QjY5MSAvKiBGdWxsc2NyZWVuWm9vbUluaXRpYWxG
cmFtZS5tbSAqLzsgfTsKIAkJQ0RCRkNDNDYxQTlGRjQ5RTAwQTdCNjkxIC8qIEZ1bGxzY3JlZW5a
b29tSW5pdGlhbEZyYW1lLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0RCRkNDNDIxQTlGRjQ0ODAwQTdCNjkxIC8qIEZ1bGxzY3JlZW5a
b29tSW5pdGlhbEZyYW1lLmh0bWwgKi87IH07CkBAIC01NTIsNiArNTU0LDcgQEAKIAkJCWRzdFBh
dGggPSBUZXN0V2ViS2l0QVBJLnJlc291cmNlczsKIAkJCWRzdFN1YmZvbGRlclNwZWMgPSA3Owog
CQkJZmlsZXMgPSAoCisJCQkJQ0Q3OEUxMUUxREI3RUUyQTAwMTRBMkRFIC8qIEZ1bGxzY3JlZW5E
ZWxlZ2F0ZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0RjEzNzkyMUQ5QjY4M0Uw
MDJCRUM1NyAvKiBsYXJnZS12aWRlby10ZXN0LW5vdy1wbGF5aW5nLmh0bWwgaW4gQ29weSBSZXNv
dXJjZXMgKi8sCiAJCQkJODM3QTM1RjExRDlBMUU3RDAwNjYzQzU3IC8qIERvd25sb2FkUmVxdWVz
dEJsb2JVUkwuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQkyRTk4OTYxNTFEOEYwOTM4
MDA3Mzk4OTIgLyogdGV4dC1hbmQtcGFzc3dvcmQtaW5wdXRzLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8sCkBAIC0xMTYyLDYgKzExNjUsOCBAQAogCQlDRDU5RjUzMjE5RTkxMEFBMDBDRjE4MzUg
LyogZmlsZS13aXRoLW1zZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gImZpbGUt
d2l0aC1tc2UuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENTlGNTMzMTlF
OTEwQkMwMENGMTgzNSAvKiB0ZXN0LW1zZS5tcDQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxlOyBwYXRoID0gInRlc3QtbXNlLm1wNCI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENzczRjcxMUM1MDU3REIwMDAyMjU3QyAvKiBGZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBGZWF0
dXJlRGVmaW5lcy54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q3OEUx
MUExREI3RUEzNjAwMTRBMkRFIC8qIEZ1bGxzY3JlZW5EZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZ1bGxzY3JlZW5EZWxlZ2F0ZS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q3OEUxMUIxREI3RUEzNjAwMTRBMkRFIC8qIEZ1bGxz
Y3JlZW5EZWxlZ2F0ZS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBwYXRoID0gRnVsbHNjcmVl
bkRlbGVnYXRlLmh0bWw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEODlEMDM4MUM0
RURCMkEwMDA0MEEwNCAvKiBXZWJDb3JlTlNVUkxTZXNzaW9uLm1tICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQ29yZU5TVVJMU2Vzc2lvbi5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q5RTI5MkIxQzkwQTcxRjAwMEJCODAwIC8qIFJlcXVpcmVz
VXNlckFjdGlvbkZvclBsYXliYWNrLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3Bw
OyBwYXRoID0gUmVxdWlyZXNVc2VyQWN0aW9uRm9yUGxheWJhY2subW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCUNEOUUyOTJEMUM5MEMxQkEwMDBCQjgwMCAvKiBhdWRpby1vbmx5Lmh0
bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBhdGggPSAiYXVkaW8tb25seS5odG1sIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEzNjcsNiArMTM3Miw3IEBACiAJCQkJQTFBNEZFNUQx
OEREM0RCNzAwQjVFQThBIC8qIERvd25sb2FkLm1tICovLAogCQkJCTJEODEwNENCMUJFQzEzRTcw
MDIwREE0NiAvKiBGaW5kSW5QYWdlLm1tICovLAogCQkJCTJEMUZFMEFGMUFENDY1QzEwMDZDRDlF
NiAvKiBGaXhlZExheW91dFNpemUubW0gKi8sCisJCQkJQ0Q3OEUxMUExREI3RUEzNjAwMTRBMkRF
IC8qIEZ1bGxzY3JlZW5EZWxlZ2F0ZS5tbSAqLywKIAkJCQkzRjFCNTI2ODFEM0Q3MTI5MDA4RDYw
QzQgLyogRnVsbHNjcmVlbkxheW91dENvbnN0cmFpbnRzLm1tICovLAogCQkJCUNERTE5NUIzMUNG
RTBBREUwMDUzRDI1NiAvKiBGdWxsc2NyZWVuVG9wQ29udGVudEluc2V0Lm1tICovLAogCQkJCTUx
MDQ3Nzc1MUQyOThFMDMwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNvdmVyeS5tbSAqLywKQEAgLTE1
MjIsNiArMTUyOCw3IEBACiAJCQkJOTk4NEZBQ0QxQ0ZGQjAzODAwOEQxOThDIC8qIGVkaXRhYmxl
LWJvZHkuaHRtbCAqLywKIAkJCQk5MzU3NUM1NTFEMzAzNjZFMDAwRDYwNEQgLyogZm9jdXMtaW5w
dXRzLmh0bWwgKi8sCiAJCQkJRjRGNDA1QkExRDRDMENGODAwN0E5NzA3IC8qIGZ1bGwtc2l6ZS1h
dXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlvLmh0bWwgKi8sCisJCQkJQ0Q3OEUxMUIxREI3RUEz
NjAwMTRBMkRFIC8qIEZ1bGxzY3JlZW5EZWxlZ2F0ZS5odG1sICovLAogCQkJCTNGQkQxQjQ5MUQz
OUQxREIwMEU2RDZGQSAvKiBGdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWludHMuaHRtbCAqLywKIAkJ
CQlDREUxOTVCMjFDRkUwQURFMDA1M0QyNTYgLyogRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5o
dG1sICovLAogCQkJCTUxMDQ3Nzc2MUQyOThFNTcwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNvdmVy
eS5odG1sICovLApAQCAtMjQ5NSw2ICsyNTAyLDcgQEAKIAkJCQk1MTcxNEVCODFDRjhDQTE3MDA0
NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJREJDbGVhbnVwLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
NTM2NzcwMzQxQ0M4MDIyODAwRDQyNUIxIC8qIFdlYlNjcmlwdE9iamVjdERlc2NyaXB0aW9uLm1t
IGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRDQxQTQxMUE3RTAwNDQ3QzRDIC8qIFdlYlZpZXdD
YW5QYXN0ZVVSTC5tbSBpbiBTb3VyY2VzICovLAorCQkJCUNENzhFMTFEMURCN0VBNjYwMDE0QTJE
RSAvKiBGdWxsc2NyZWVuRGVsZWdhdGUubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTA0MjFE
MEE2M0ZEMDBGRUJDRjMgLyogV2ViVmlld0Nsb3NlSW5zaWRlRGlkRmluaXNoTG9hZEZvckZyYW1l
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRDUxQTQxMUE3RTAwNDQ3QzRDIC8qIFdlYlZp
ZXdEaWRDcmVhdGVKYXZhU2NyaXB0Q29udGV4dC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3
RUQ2MUE0MTFBN0UwMDQ0N0M0QyAvKiBXZWJWaWV3RGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5
Lm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0MkNvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjlhOTAwNjIwMzRhNWU3M2Y1YjJiMjU1ZmE5NjRlM2I4MGQ3ODIzMWUKLS0tIC9kZXYvbnVsbAor
KysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuRGVs
ZWdhdGUuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhl
YWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAgZnVuY3Rpb24gbG9hZCgpIHsKKyAgICAgICAgICAg
IHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLmZ1bGxzY3JlZW5DaGFuZ2VIYW5kbGVyLnBv
c3RNZXNzYWdlKCdsb2FkJyk7CisgICAgICAgIH0KKyAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRM
aXN0ZW5lcignd2Via2l0ZnVsbHNjcmVlbmNoYW5nZScsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAg
ICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3NhZ2VIYW5kbGVycy5mdWxsc2NyZWVuQ2hhbmdlSGFu
ZGxlci5wb3N0TWVzc2FnZSgnZnVsbHNjcmVlbmNoYW5nZScpOworICAgICAgICB9KTsKKyAgICAg
ICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vkb3duJywgZnVuY3Rpb24oZXZlbnQp
IHsKKyAgICAgICAgICAgIC8vIFRvZ2dsZSBmdWxsc2NyZWVuCisgICAgICAgICAgICB2YXIgdGFy
Z2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3RhcmdldCcpOworICAgICAgICAgICAgaWYg
KGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5FbGVtZW50ID09IHRhcmdldCkKKyAgICAgICAgICAg
ICAgICBkb2N1bWVudC53ZWJraXRFeGl0RnVsbHNjcmVlbigpOworICAgICAgICAgICAgZWxzZQor
ICAgICAgICAgICAgICAgIHRhcmdldC53ZWJraXRSZXF1ZXN0RnVsbFNjcmVlbigpOworICAgICAg
ICB9KTsKKyAgICA8L3NjcmlwdD4KKyAgICA8c3R5bGU+CisgICAgI3RhcmdldCB7CisgICAgICAg
IGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAgICAgICAgd2lkdGg6IDE1MHB4OworICAgICAgICBo
ZWlnaHQ6IDE1MHB4OworICAgIH0KKyAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgb25sb2Fk
PSJsb2FkKCkiPgorICAgIDxkaXYgaWQ9InRhcmdldCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVlbkRlbGVnYXRlLm1tIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVlbkRlbGVnYXRlLm1tCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmViZTg4YjZhNDJjZTJhMWY0MTVjMzcwOTUzZTc0YWEyNDBmOWI3ZmMKLS0tIC9kZXYv
bnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2Ny
ZWVuRGVsZWdhdGUubW0KQEAgLTAsMCArMSwxMTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRCAmJiBQTEFURk9STShNQUMpCisKKyNpbXBv
cnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1By
aXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5o
PgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9f
V0tGdWxsc2NyZWVuRGVsZWdhdGUuaD4KKyNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworc3Rh
dGljIGJvb2wgcmVjZWl2ZWRMb2FkZWRNZXNzYWdlOworc3RhdGljIGJvb2wgcmVjZWl2ZWRXaWxs
RW50ZXJGdWxsc2NyZWVuTWVzc2FnZTsKK3N0YXRpYyBib29sIHJlY2VpdmVkRGlkRW50ZXJGdWxs
c2NyZWVuTWVzc2FnZTsKK3N0YXRpYyBib29sIHJlY2VpdmVkV2lsbEV4aXRGdWxsc2NyZWVuTWVz
c2FnZTsKK3N0YXRpYyBib29sIHJlY2VpdmVkRGlkRXhpdEZ1bGxzY3JlZW5NZXNzYWdlOworCitA
aW50ZXJmYWNlIEZ1bGxzY3JlZW5EZWxlZ2F0ZU1lc3NhZ2VIYW5kbGVyIDogTlNPYmplY3QgPFdL
U2NyaXB0TWVzc2FnZUhhbmRsZXIsIF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4KK0BlbmQKKworQGlt
cGxlbWVudGF0aW9uIEZ1bGxzY3JlZW5EZWxlZ2F0ZU1lc3NhZ2VIYW5kbGVyCistICh2b2lkKXVz
ZXJDb250ZW50Q29udHJvbGxlcjooV0tVc2VyQ29udGVudENvbnRyb2xsZXIgKil1c2VyQ29udGVu
dENvbnRyb2xsZXIgZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6KFdLU2NyaXB0TWVzc2FnZSAqKW1l
c3NhZ2UKK3sKKyAgICBOU1N0cmluZyAqYm9keVN0cmluZyA9IChOU1N0cmluZyAqKVttZXNzYWdl
IGJvZHldOworICAgIGlmIChbYm9keVN0cmluZyBpc0VxdWFsVG9TdHJpbmc6QCJsb2FkIl0pCisg
ICAgICAgIHJlY2VpdmVkTG9hZGVkTWVzc2FnZSA9IHRydWU7Cit9CisKKy0gKHZvaWQpX3dlYlZp
ZXdXaWxsRW50ZXJGdWxsc2NyZWVuOihXS1dlYlZpZXcgKil2aWV3Cit7CisgICAgcmVjZWl2ZWRX
aWxsRW50ZXJGdWxsc2NyZWVuTWVzc2FnZSA9IHRydWU7Cit9CisKKy0gKHZvaWQpX3dlYlZpZXdE
aWRFbnRlckZ1bGxzY3JlZW46KFdLV2ViVmlldyAqKXZpZXcKK3sKKyAgICByZWNlaXZlZERpZEVu
dGVyRnVsbHNjcmVlbk1lc3NhZ2UgPSB0cnVlOworfQorCistICh2b2lkKV93ZWJWaWV3V2lsbEV4
aXRGdWxsc2NyZWVuOihXS1dlYlZpZXcgKil2aWV3Cit7CisgICAgcmVjZWl2ZWRXaWxsRXhpdEZ1
bGxzY3JlZW5NZXNzYWdlID0gdHJ1ZTsKK30KKworLSAodm9pZClfd2ViVmlld0RpZEV4aXRGdWxs
c2NyZWVuOihXS1dlYlZpZXcgKil2aWV3Cit7CisgICAgcmVjZWl2ZWREaWRFeGl0RnVsbHNjcmVl
bk1lc3NhZ2UgPSB0cnVlOworfQorQGVuZAorCituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisK
K1RFU1QoRnVsbHNjcmVlbiwgRGVsZWdhdGUpCit7CisgICAgUmV0YWluUHRyPFdLV2ViVmlld0Nv
bmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24gPSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJh
dGlvbiBhbGxvY10gaW5pdF0pOworICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBh
ZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwg
MTAwLCAxMDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFtjb25m
aWd1cmF0aW9uIHByZWZlcmVuY2VzXS5fZnVsbFNjcmVlbkVuYWJsZWQgPSBZRVM7CisgICAgUmV0
YWluUHRyPEZ1bGxzY3JlZW5EZWxlZ2F0ZU1lc3NhZ2VIYW5kbGVyPiBoYW5kbGVyID0gYWRvcHRO
UyhbW0Z1bGxzY3JlZW5EZWxlZ2F0ZU1lc3NhZ2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CisgICAg
W1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhh
bmRsZXI6aGFuZGxlci5nZXQoKSBuYW1lOkAiZnVsbHNjcmVlbkNoYW5nZUhhbmRsZXIiXTsKKyAg
ICBbd2ViVmlldyBfc2V0RnVsbHNjcmVlbkRlbGVnYXRlOmhhbmRsZXIuZ2V0KCldOworCisgICAg
UmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cgPSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGlu
aXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcgZnJhbWVdIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NX
aW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5nU3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOworICAg
IFtbd2luZG93IGNvbnRlbnRWaWV3XSBhZGRTdWJ2aWV3OndlYlZpZXcuZ2V0KCldOworCisgICAg
TlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05TVVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05T
QnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJlc291cmNlOkAiRnVsbHNjcmVlbkRlbGVnYXRlIiB3
aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGlyZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJj
ZXMiXV07CisgICAgW3dlYlZpZXcgbG9hZFJlcXVlc3Q6cmVxdWVzdF07CisgICAgVGVzdFdlYktp
dEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZExvYWRlZE1lc3NhZ2UpOworCisgICAgTlNFdmVudCAq
ZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3duIGxvY2F0
aW9uOk5TTWFrZVBvaW50KDUsIDUpIG1vZGlmaWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dO
dW1iZXI6d2luZG93LmdldCgpLndpbmRvd051bWJlciBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBj
bGlja0NvdW50OjAgcHJlc3N1cmU6MF07CisgICAgW3dlYlZpZXcgbW91c2VEb3duOmV2ZW50XTsK
KworICAgIEFTU0VSVF9GQUxTRShbd2ViVmlldyBfaXNJbkZ1bGxzY3JlZW5dKTsKKyAgICBUZXN0
V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkV2lsbEVudGVyRnVsbHNjcmVlbk1lc3NhZ2Up
OworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWREaWRFbnRlckZ1bGxzY3Jl
ZW5NZXNzYWdlKTsKKworICAgIEFTU0VSVF9UUlVFKFt3ZWJWaWV3IF9pc0luRnVsbHNjcmVlbl0p
OworICAgIFt3ZWJWaWV3IG1vdXNlRG93bjpldmVudF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRp
bDo6cnVuKCZyZWNlaXZlZFdpbGxFeGl0RnVsbHNjcmVlbk1lc3NhZ2UpOworICAgIFRlc3RXZWJL
aXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWREaWRFeGl0RnVsbHNjcmVlbk1lc3NhZ2UpOworCisg
ICAgQVNTRVJUX0ZBTFNFKFt3ZWJWaWV3IF9pc0luRnVsbHNjcmVlbl0pOworfQorCit9IC8vIG5h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292148</attachid>
            <date>2016-10-19 21:02:03 -0700</date>
            <delta_ts>2016-10-20 10:26:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163674-20161019205826.patch</filename>
            <type>text/plain</type>
            <size>40817</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3NTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjYxYTY4ZTdjYzdkYjI2
ZWMxNzZiNGMxZjJhYTE2YmUxYmE1ODZjNS4uYWExNzJmYTRiZWI1ZmZjNzFlYjY4OGMyMzI0YjVh
NWUwN2ZmNWMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE2LTEwLTE5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBXS1dlYlZpZXcgZnVs
bHNjcmVlbiBkZWxlZ2F0ZSBTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MzY3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgcHJvcGVydHkgdG8gV0tXZWJWaWV3IGFsbG93aW5n
IGNsaWVudHMgdG8gYmUgbm90aWZpZWQgd2hlbiBmdWxsc2NyZWVuIG1vZGUgZW50ZXJzIGFuZCBl
eGl0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJRnVsbHNjcmVlbkNsaWVudC5oOiBB
ZGRlZC4KKyAgICAgICAgKEFQSTo6RnVsbHNjcmVlbkNsaWVudDo6fkZ1bGxzY3JlZW5DbGllbnQp
OgorICAgICAgICAoQVBJOjpGdWxsc2NyZWVuQ2xpZW50Ojp3aWxsRW50ZXJGdWxsc2NyZWVuKToK
KyAgICAgICAgKEFQSTo6RnVsbHNjcmVlbkNsaWVudDo6ZGlkRW50ZXJGdWxsc2NyZWVuKToKKyAg
ICAgICAgKEFQSTo6RnVsbHNjcmVlbkNsaWVudDo6d2lsbEV4aXRGdWxsc2NyZWVuKToKKyAgICAg
ICAgKEFQSTo6RnVsbHNjcmVlbkNsaWVudDo6ZGlkRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcg
X2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9z
ZXRGdWxsc2NyZWVuRGVsZWdhdGU6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZnVsbHNjcmVl
bkRlbGVnYXRlXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfaXNJbkZ1bGxzY3JlZW5dKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudDo6fkZ1bGxzY3JlZW5DbGllbnQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9GdWxsc2NyZWVuQ2xpZW50Lm1tOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudDo6RnVsbHNjcmVlbkNsaWVudCk6CisgICAgICAgIChX
ZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ6OmRlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6RnVs
bHNjcmVlbkNsaWVudDo6c2V0RGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpGdWxsc2NyZWVu
Q2xpZW50Ojp3aWxsRW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6RnVsbHNjcmVl
bkNsaWVudDo6ZGlkRW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6RnVsbHNjcmVl
bkNsaWVudDo6d2lsbEV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6RnVsbHNjcmVl
bkNsaWVudDo6ZGlkRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVlbk1h
bmFnZXJQcm94eTo6d2lsbEVudGVyRnVsbFNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZEVudGVyRnVsbFNjcmVlbik6CisgICAgICAgIChXZWJL
aXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OndpbGxFeGl0RnVsbFNjcmVlbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZEV4aXRGdWxsU2NyZWVu
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnNldEZ1bGxzY3JlZW5DbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmZ1bGxTY3JlZW5NYW5hZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZnVsbHNjcmVlbkNs
aWVudCk6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAy
MDE2LTEwLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW1dL
Ml0gRXhwb3NlIHN1Z2dlc3RlZCBmaWxlbmFtZSB2aWEgV0tCdW5kbGVIaXRUZXN0UmVzdWx0IEFQ
SQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElGdWxsc2NyZWVu
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSUZ1bGxzY3JlZW5DbGll
bnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jMzQ4YjhiZmViMGQ5NzEwODRlYzM3NmMyMjZkZTNjOTc5NWI4MGM4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElGdWxs
c2NyZWVuQ2xpZW50LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2VQcm94eTsKK30KKworbmFtZXNw
YWNlIEFQSSB7CisKK2NsYXNzIEZ1bGxzY3JlZW5DbGllbnQgeworcHVibGljOgorICAgIHZpcnR1
YWwgfkZ1bGxzY3JlZW5DbGllbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCB3aWxsRW50ZXJG
dWxsc2NyZWVuKFdlYktpdDo6V2ViUGFnZVByb3h5KikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRp
ZEVudGVyRnVsbHNjcmVlbihXZWJLaXQ6OldlYlBhZ2VQcm94eSopIHsgfQorICAgIHZpcnR1YWwg
dm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0K
K307CisKK30gLy8gbmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCBlYmRiZGQ1Yjk1MWY0MjFhMTk2NWU5MzYzNmY4
NTUxZTcyOGQ2MjVkLi5hNTgxNjBhMmRhNzRmNGFhMDg3Yjc5ZWUwZmM3OWNiYWE2MTJjY2I3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpA
QCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAiQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5o
IgogI2ltcG9ydCAiRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbXBvcnQgIkZpbmRDbGll
bnQuaCIKKyNpbXBvcnQgIkZ1bGxzY3JlZW5DbGllbnQuaCIKICNpbXBvcnQgIkxlZ2FjeVNlc3Np
b25TdGF0ZUNvZGluZy5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTmF2aWdhdGlv
blN0YXRlLmgiCkBAIC02Nyw2ICs2OCw3IEBACiAjaW1wb3J0ICJXZWJCYWNrRm9yd2FyZExpc3Qu
aCIKICNpbXBvcnQgIldlYkNlcnRpZmljYXRlSW5mby5oIgogI2ltcG9ydCAiV2ViRm9ybVN1Ym1p
c3Npb25MaXN0ZW5lclByb3h5LmgiCisjaW1wb3J0ICJXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
LmgiCiAjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIKICNpbXBvcnQgIldlYlBhZ2VH
cm91cC5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCkBAIC03Nyw2ICs3OSw3IEBACiAjaW1w
b3J0ICJfV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmgiCiAjaW1wb3J0ICJfV0tGaW5kRGVs
ZWdhdGUuaCIKICNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIl9X
S0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oIgogI2ltcG9ydCAiX1dLSGl0VGVzdFJlc3VsdEludGVybmFs
LmgiCiAjaW1wb3J0ICJfV0tJbnB1dERlbGVnYXRlLmgiCiAjaW1wb3J0ICJfV0tSZW1vdGVPYmpl
Y3RSZWdpc3RyeUludGVybmFsLmgiCkBAIC01NDksNiArNTUyLDcgQEAgc3RhdGljIHVpbnQzMl90
IGNvbnZlcnRTeXN0ZW1MYXlvdXREaXJlY3Rpb24oTlNVc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0
aW9uIGRpcmUKICAgICBfdWlEZWxlZ2F0ZSA9IHN0ZDo6bWFrZV91bmlxdWU8V2ViS2l0OjpVSURl
bGVnYXRlPihzZWxmKTsKICAgICBfcGFnZS0+c2V0RmluZENsaWVudChzdGQ6Om1ha2VfdW5pcXVl
PFdlYktpdDo6RmluZENsaWVudD4oc2VsZikpOwogICAgIF9wYWdlLT5zZXREaWFnbm9zdGljTG9n
Z2luZ0NsaWVudChzdGQ6Om1ha2VfdW5pcXVlPFdlYktpdDo6RGlhZ25vc3RpY0xvZ2dpbmdDbGll
bnQ+KHNlbGYpKTsKKyAgICBfcGFnZS0+c2V0RnVsbHNjcmVlbkNsaWVudChzdGQ6Om1ha2VfdW5p
cXVlPFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudD4oc2VsZikpOwogCiAgICAgcGFnZVRvVmlld01h
cCgpLmFkZChfcGFnZS5nZXQoKSwgc2VsZik7CiB9CkBAIC0zOTIyLDYgKzM5MjYsMzEgQEAgc3Rh
dGljIGlubGluZSBXZWJLaXQ6OkZpbmRPcHRpb25zIHRvRmluZE9wdGlvbnMoX1dLRmluZE9wdGlv
bnMgd2tGaW5kT3B0aW9ucykKICAgICByZXR1cm4gX3BhZ2UtPnByb2Nlc3MoKS5yZXNwb25zaXZl
bmVzc1RpbWVyKCkuaXNSZXNwb25zaXZlKCk7CiB9CiAKKy0gKHZvaWQpX3NldEZ1bGxzY3JlZW5E
ZWxlZ2F0ZTooaWQ8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPilkZWxlZ2F0ZQoreworI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKKyAgICBzdGF0aWNfY2FzdDxXZWJLaXQ6OkZ1bGxzY3JlZW5DbGll
bnQmPihfcGFnZS0+ZnVsbHNjcmVlbkNsaWVudCgpKS5zZXREZWxlZ2F0ZShkZWxlZ2F0ZSk7Cisj
ZW5kaWYKK30KKworLSAoaWQ8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPilfZnVsbHNjcmVlbkRlbGVn
YXRlCit7CisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgIHJldHVybiBbc3RhdGljX2Nh
c3Q8V2ViS2l0OjpGdWxsc2NyZWVuQ2xpZW50Jj4oX3BhZ2UtPmZ1bGxzY3JlZW5DbGllbnQoKSku
ZGVsZWdhdGUoKS5sZWFrUmVmKCkgYXV0b3JlbGVhc2VdOworI2Vsc2UKKyAgICByZXR1cm4gbnVs
bHB0cjsKKyNlbmRpZgorfQorCistIChCT09MKV9pc0luRnVsbHNjcmVlbgoreworI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKKyAgICByZXR1cm4gX3BhZ2UtPmZ1bGxTY3JlZW5NYW5hZ2VyKCkg
JiYgX3BhZ2UtPmZ1bGxTY3JlZW5NYW5hZ2VyKCktPmlzRnVsbFNjcmVlbigpOworI2Vsc2UKKyAg
ICByZXR1cm4gZmFsc2U7CisjZW5kaWYKK30KKwogI3ByYWdtYSBtYXJrIGlPUy1zcGVjaWZpYyBt
ZXRob2RzCiAKICNpZiBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IGIwM2I5MWNlZDNiYzlk
OTkzODAwN2Y0ZTU0MWJkNzJlNzQ5YmMyODMuLmQ2MDI0MTEwMDRhZDAwNzY0ZjVlNDcxZjVlYjZj
ZmQ4OWI4MjI2YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCkBAIC02Myw2ICs2Myw3IEBAIHR5cGVkZWYgTlNfRU5V
TShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKIEBwcm90b2NvbCBfV0tEaWFn
bm9zdGljTG9nZ2luZ0RlbGVnYXRlOwogQHByb3RvY29sIF9XS0ZpbmREZWxlZ2F0ZTsKIEBwcm90
b2NvbCBfV0tJbnB1dERlbGVnYXRlOworQHByb3RvY29sIF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZTsK
IAogQGludGVyZmFjZSBXS1dlYlZpZXcgKFdLUHJpdmF0ZSkKIApAQCAtMjQ0LDYgKzI0NSw5IEBA
IHR5cGVkZWYgTlNfRU5VTShOU0ludGVnZXIsIF9XS0ltbWVkaWF0ZUFjdGlvblR5cGUpIHsKIAog
QHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF93ZWJQcm9jZXNzSXNSZXNwb25z
aXZlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3N4KDEwLjEyKSwgaW9zKDEwLjApKTsKIAorQHByb3Bl
cnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0RnVsbHNjcmVlbkRlbGVnYXRlOikgaWQ8X1dLRnVs
bHNjcmVlbkRlbGVnYXRlPiBfZnVsbHNjcmVlbkRlbGVnYXRlIFdLX0FQSV9BVkFJTEFCTEUobWFj
b3MoMTAuMTMpKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9PTCBfaXNJbkZ1
bGxzY3JlZW4gV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMykpOworCiBAZW5kCiAKICNpZiAh
VEFSR0VUX09TX0lQSE9ORQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tGdWxsc2NyZWVuRGVsZWdhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLRnVsbHNjcmVlbkRlbGVnYXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODY0NmM1MTUz
NWY3YmI1YWNiZWI2YTU0ZTQzODVkMWE4MDNhMWZmOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLRnVsbHNjcmVlbkRlbGVnYXRlLmgKQEAg
LTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24u
aD4KKworI2lmIFdLX0FQSV9FTkFCTEVECisKK0Bwcm90b2NvbCBfV0tGdWxsc2NyZWVuRGVsZWdh
dGUgPE5TT2JqZWN0PgorCitAb3B0aW9uYWwKKworLSAodm9pZClfd2ViVmlld1dpbGxFbnRlckZ1
bGxzY3JlZW46KFdLV2ViVmlldyAqKXdlYlZpZXc7CistICh2b2lkKV93ZWJWaWV3RGlkRW50ZXJG
dWxsc2NyZWVuOihXS1dlYlZpZXcgKil3ZWJWaWV3OworLSAodm9pZClfd2ViVmlld1dpbGxFeGl0
RnVsbHNjcmVlbjooV0tXZWJWaWV3ICopd2ViVmlldzsKKy0gKHZvaWQpX3dlYlZpZXdEaWRFeGl0
RnVsbHNjcmVlbjooV0tXZWJWaWV3ICopd2ViVmlldzsKKworQGVuZAorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9GdWxsc2NyZWVuQ2xpZW50Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjJhNzMyZjA4MjFlODE4YzRhMjQ3NGU4ODZhZWE3MTg0NTdjNzRjNGMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVu
dC5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2ltcG9y
dCAiV0tGb3VuZGF0aW9uLmgiCisKKyNpZiBXS19BUElfRU5BQkxFRAorCisjaW1wb3J0ICJBUElG
dWxsc2NyZWVuQ2xpZW50LmgiCisjaW1wb3J0ICJXZWFrT2JqQ1B0ci5oIgorI2ltcG9ydCA8d3Rm
L1JldGFpblB0ci5oPgorCitAY2xhc3MgV0tXZWJWaWV3OworQHByb3RvY29sIF9XS0Z1bGxzY3Jl
ZW5EZWxlZ2F0ZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIEZ1bGxzY3JlZW5DbGll
bnQgOiBwdWJsaWMgQVBJOjpGdWxsc2NyZWVuQ2xpZW50IHsKK3B1YmxpYzoKKyAgICBleHBsaWNp
dCBGdWxsc2NyZWVuQ2xpZW50KFdLV2ViVmlldyAqKTsKKyAgICB+RnVsbHNjcmVlbkNsaWVudCgp
IHsgfTsKKworICAgIFJldGFpblB0cjxpZDxfV0tGdWxsc2NyZWVuRGVsZWdhdGU+PiBkZWxlZ2F0
ZSgpOworICAgIHZvaWQgc2V0RGVsZWdhdGUoaWQ8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPik7CisK
KyAgICB2b2lkIHdpbGxFbnRlckZ1bGxzY3JlZW4oV2ViUGFnZVByb3h5Kikgb3ZlcnJpZGU7Cisg
ICAgdm9pZCBkaWRFbnRlckZ1bGxzY3JlZW4oV2ViUGFnZVByb3h5Kikgb3ZlcnJpZGU7CisgICAg
dm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4oV2ViUGFnZVByb3h5Kikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBkaWRFeGl0RnVsbHNjcmVlbihXZWJQYWdlUHJveHkqKSBvdmVycmlkZTsKKworcHJpdmF0ZToK
KyAgICBXS1dlYlZpZXcgKm1fd2ViVmlldzsKKyAgICBXZWFrT2JqQ1B0cjxpZCA8X1dLRnVsbHNj
cmVlbkRlbGVnYXRlPiA+IG1fZGVsZWdhdGU7CisKKyAgICBzdHJ1Y3QgeworICAgICAgICBib29s
IHdlYlZpZXdXaWxsRW50ZXJGdWxsc2NyZWVuIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3RGlk
RW50ZXJGdWxsc2NyZWVuIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3V2lsbEV4aXRGdWxsc2Ny
ZWVuIDogMTsKKyAgICAgICAgYm9vbCB3ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW4gOiAxOworICAg
IH0gbV9kZWxlZ2F0ZU1ldGhvZHM7Cit9OworICAgIAorfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBXS19BUElfRU5BQkxFRApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL0Z1bGxzY3JlZW5DbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDZjOTY1NmViZjJmOGMy
NGRlNmY5NTRlMmFmMWUzOWI1YWExZmNjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0NvY29hL0Z1bGxzY3JlZW5DbGllbnQubW0KQEAgLTAsMCArMSw4MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiAKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkZ1bGxzY3JlZW5DbGll
bnQuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgIl9XS0Z1bGxzY3JlZW5EZWxl
Z2F0ZS5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworRnVsbHNjcmVlbkNsaWVudDo6RnVsbHNj
cmVlbkNsaWVudChXS1dlYlZpZXcgKndlYlZpZXcpCisgICAgOiBtX3dlYlZpZXcod2ViVmlldykK
K3sKK30KKworUmV0YWluUHRyPGlkIDxfV0tGdWxsc2NyZWVuRGVsZWdhdGU+PiBGdWxsc2NyZWVu
Q2xpZW50OjpkZWxlZ2F0ZSgpCit7CisgICAgcmV0dXJuIG1fZGVsZWdhdGUuZ2V0KCk7Cit9CisK
K3ZvaWQgRnVsbHNjcmVlbkNsaWVudDo6c2V0RGVsZWdhdGUoaWQgPF9XS0Z1bGxzY3JlZW5EZWxl
Z2F0ZT4gZGVsZWdhdGUpCit7CisgICAgbV9kZWxlZ2F0ZSA9IGRlbGVnYXRlOworCisgICAgbV9k
ZWxlZ2F0ZU1ldGhvZHMud2ViVmlld1dpbGxFbnRlckZ1bGxzY3JlZW4gPSBbZGVsZWdhdGUgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld1dpbGxFbnRlckZ1bGxzY3JlZW46KV07
CisgICAgbV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEVudGVyRnVsbHNjcmVlbiA9IFtkZWxl
Z2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3RGlkRW50ZXJGdWxsc2Ny
ZWVuOildOworICAgIG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdXaWxsRXhpdEZ1bGxzY3JlZW4g
PSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld1dpbGxFeGl0
RnVsbHNjcmVlbjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRXhpdEZ1bGxz
Y3JlZW4gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlld0Rp
ZEV4aXRGdWxsc2NyZWVuOildOworfQorCit2b2lkIEZ1bGxzY3JlZW5DbGllbnQ6OndpbGxFbnRl
ckZ1bGxzY3JlZW4oV2ViUGFnZVByb3h5KikKK3sKKyAgICBpZiAobV9kZWxlZ2F0ZU1ldGhvZHMu
d2ViVmlld1dpbGxFbnRlckZ1bGxzY3JlZW4pCisgICAgICAgIFttX2RlbGVnYXRlLmdldCgpIF93
ZWJWaWV3V2lsbEVudGVyRnVsbHNjcmVlbjptX3dlYlZpZXddOworfQorCit2b2lkIEZ1bGxzY3Jl
ZW5DbGllbnQ6OmRpZEVudGVyRnVsbHNjcmVlbihXZWJQYWdlUHJveHkqKQoreworICAgIGlmICht
X2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuKQorICAgICAgICBbbV9k
ZWxlZ2F0ZS5nZXQoKSBfd2ViVmlld0RpZEVudGVyRnVsbHNjcmVlbjptX3dlYlZpZXddOworfQor
Cit2b2lkIEZ1bGxzY3JlZW5DbGllbnQ6OndpbGxFeGl0RnVsbHNjcmVlbihXZWJQYWdlUHJveHkq
KQoreworICAgIGlmIChtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2lsbEV4aXRGdWxsc2NyZWVu
KQorICAgICAgICBbbV9kZWxlZ2F0ZS5nZXQoKSBfd2ViVmlld1dpbGxFeGl0RnVsbHNjcmVlbjpt
X3dlYlZpZXddOworfQorCit2b2lkIEZ1bGxzY3JlZW5DbGllbnQ6OmRpZEV4aXRGdWxsc2NyZWVu
KFdlYlBhZ2VQcm94eSopCit7CisgICAgaWYgKG1fZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRF
eGl0RnVsbHNjcmVlbikKKyAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkgX3dlYlZpZXdEaWRFeGl0
RnVsbHNjcmVlbjptX3dlYlZpZXddOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIFdLX0FQSV9FTkFCTEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAKaW5kZXggMWExZjk4MWIxN2ViYmQwYmMw
NjM2ZDhlODkwNjgxN2JhMmM3YzE5MS4uMzUyZDZhMDc1OGU4ZDdjMWI3NDZiNzAxZDM3YzNhYWQ5
NDU3MzQ4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5LmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQogCisjaW5jbHVkZSAiQVBJRnVsbHNjcmVlbkNsaWVudC5oIgogI2luY2x1
ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKQEAg
LTU2LDIxICs1NywyNSBAQCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Ojp+V2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eSgpCiAKIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6d2lsbEVu
dGVyRnVsbFNjcmVlbigpCiB7CisgICAgbV9wYWdlLT5mdWxsc2NyZWVuQ2xpZW50KCkud2lsbEVu
dGVyRnVsbHNjcmVlbihtX3BhZ2UpOwogICAgIG1fcGFnZS0+cHJvY2VzcygpLnNlbmQoTWVzc2Fn
ZXM6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyOjpXaWxsRW50ZXJGdWxsU2NyZWVuKCksIG1fcGFnZS0+
cGFnZUlEKCkpOwogfQogCiB2b2lkIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZEVudGVy
RnVsbFNjcmVlbigpCiB7CisgICAgbV9wYWdlLT5mdWxsc2NyZWVuQ2xpZW50KCkuZGlkRW50ZXJG
dWxsc2NyZWVuKG1fcGFnZSk7CiAgICAgbV9wYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6
V2ViRnVsbFNjcmVlbk1hbmFnZXI6OkRpZEVudGVyRnVsbFNjcmVlbigpLCBtX3BhZ2UtPnBhZ2VJ
RCgpKTsKIH0KIAogdm9pZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Ojp3aWxsRXhpdEZ1bGxT
Y3JlZW4oKQogeworICAgIG1fcGFnZS0+ZnVsbHNjcmVlbkNsaWVudCgpLndpbGxFeGl0RnVsbHNj
cmVlbihtX3BhZ2UpOwogICAgIG1fcGFnZS0+cHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYkZ1
bGxTY3JlZW5NYW5hZ2VyOjpXaWxsRXhpdEZ1bGxTY3JlZW4oKSwgbV9wYWdlLT5wYWdlSUQoKSk7
CiB9CiAKIHZvaWQgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkRXhpdEZ1bGxTY3JlZW4o
KQogeworICAgIG1fcGFnZS0+ZnVsbHNjcmVlbkNsaWVudCgpLmRpZEV4aXRGdWxsc2NyZWVuKG1f
cGFnZSk7CiAgICAgbV9wYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViRnVsbFNjcmVl
bk1hbmFnZXI6OkRpZEV4aXRGdWxsU2NyZWVuKCksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IDlmZWUxODViMGZl
MjQ5NjUxMjE1NGVlMmViMmY5Njg5N2UzMWE3ODYuLjJlNGFlMzk4Y2ZlNDNlZGEwMWIwNzhiYjIz
Mjg0YjA4OGZmYmY1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiQVBJRmluZE1hdGNoZXNDbGllbnQuaCIK
ICNpbmNsdWRlICJBUElGb3JtQ2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJRnJhbWVJbmZvLmgiCisj
aW5jbHVkZSAiQVBJRnVsbHNjcmVlbkNsaWVudC5oIgogI2luY2x1ZGUgIkFQSUdlb21ldHJ5Lmgi
CiAjaW5jbHVkZSAiQVBJSGlzdG9yeUNsaWVudC5oIgogI2luY2x1ZGUgIkFQSUhpdFRlc3RSZXN1
bHQuaCIKQEAgLTM0MCw2ICszNDEsOSBAQCBXZWJQYWdlUHJveHk6OldlYlBhZ2VQcm94eShQYWdl
Q2xpZW50JiBwYWdlQ2xpZW50LCBXZWJQcm9jZXNzUHJveHkmIHByb2Nlc3MsIHVpbgogICAgICwg
bV9tYWluRnJhbWUobnVsbHB0cikKICAgICAsIG1fdXNlckFnZW50KHN0YW5kYXJkVXNlckFnZW50
KCkpCiAgICAgLCBtX3RyZWF0c1NIQTFDZXJ0aWZpY2F0ZXNBc0luc2VjdXJlKG1fY29uZmlndXJh
dGlvbi0+dHJlYXRzU0hBMVNpZ25lZENlcnRpZmljYXRlc0FzSW5zZWN1cmUoKSkKKyNpZiBFTkFC
TEUoRlVMTFNDUkVFTl9BUEkpCisgICAgLCBtX2Z1bGxzY3JlZW5DbGllbnQoc3RkOjptYWtlX3Vu
aXF1ZTxBUEk6OkZ1bGxzY3JlZW5DbGllbnQ+KCkpCisjZW5kaWYKICNpZiBQTEFURk9STShJT1Mp
CiAgICAgLCBtX2hhc1JlY2VpdmVkTGF5ZXJUcmVlVHJhbnNhY3Rpb25BZnRlckRpZENvbW1pdExv
YWQodHJ1ZSkKICAgICAsIG1fZmlyc3RMYXllclRyZWVUcmFuc2FjdGlvbklkQWZ0ZXJEaWRDb21t
aXRMb2FkKDApCkBAIC00MjY5LDYgKzQyNzMsMTEgQEAgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94
eSogV2ViUGFnZVByb3h5OjpmdWxsU2NyZWVuTWFuYWdlcigpCiB7CiAgICAgcmV0dXJuIG1fZnVs
bFNjcmVlbk1hbmFnZXIuZ2V0KCk7CiB9CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpzZXRGdWxsc2Ny
ZWVuQ2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxBUEk6OkZ1bGxzY3JlZW5DbGllbnQ+IGNsaWVudCkK
K3sKKyAgICBtX2Z1bGxzY3JlZW5DbGllbnQgPSBXVEZNb3ZlKGNsaWVudCk7Cit9CiAjZW5kaWYK
ICAgICAKICNpZiAoUExBVEZPUk0oSU9TKSAmJiBIQVZFKEFWS0lUKSkgfHwgKFBMQVRGT1JNKE1B
QykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAxNzZiOWUwNjZmODAyMzU1ZGM2NjI5MjllOTEyNmE1
YTg1YjhhNjcyLi5hNzUyMzMxNjVjNmM0NTI4N2VmMjgwNTQ1MmFkNWM3OTkzY2ZiNWVhIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xMjcsNiArMTI3LDcgQEAg
Y2xhc3MgQ29udGV4dE1lbnVDbGllbnQ7CiBjbGFzcyBGaW5kQ2xpZW50OwogY2xhc3MgRmluZE1h
dGNoZXNDbGllbnQ7CiBjbGFzcyBGb3JtQ2xpZW50OworY2xhc3MgRnVsbHNjcmVlbkNsaWVudDsK
IGNsYXNzIEhpc3RvcnlDbGllbnQ7CiBjbGFzcyBMb2FkZXJDbGllbnQ7CiBjbGFzcyBOYXZpZ2F0
aW9uOwpAQCAtMzI5LDYgKzMzMCw5IEBAIHB1YmxpYzoKIAogI2lmIEVOQUJMRShGVUxMU0NSRUVO
X0FQSSkKICAgICBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5KiBmdWxsU2NyZWVuTWFuYWdlcigp
OworCisgICAgQVBJOjpGdWxsc2NyZWVuQ2xpZW50JiBmdWxsc2NyZWVuQ2xpZW50KCkgY29uc3Qg
eyByZXR1cm4gKm1fZnVsbHNjcmVlbkNsaWVudDsgfQorICAgIHZvaWQgc2V0RnVsbHNjcmVlbkNs
aWVudChzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpGdWxsc2NyZWVuQ2xpZW50Pik7CiAjZW5kaWYKICNp
ZiAoUExBVEZPUk0oSU9TKSAmJiBIQVZFKEFWS0lUKSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5B
QkxFKFZJREVPX1BSRVNFTlRBVElPTl9NT0RFKSkKICAgICBXZWJQbGF5YmFja1Nlc3Npb25NYW5h
Z2VyUHJveHkqIHBsYXliYWNrU2Vzc2lvbk1hbmFnZXIoKTsKQEAgLTE1OTQsNiArMTU5OCw3IEBA
IHByaXZhdGU6CiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAgICAgUmVmUHRyPFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHk+IG1fZnVsbFNjcmVlbk1hbmFnZXI7CisgICAgc3RkOjp1bmlx
dWVfcHRyPEFQSTo6RnVsbHNjcmVlbkNsaWVudD4gbV9mdWxsc2NyZWVuQ2xpZW50OwogI2VuZGlm
CiAjaWYgKFBMQVRGT1JNKElPUykgJiYgSEFWRShBVktJVCkpIHx8IChQTEFURk9STShNQUMpICYm
IEVOQUJMRShWSURFT19QUkVTRU5UQVRJT05fTU9ERSkpCiAgICAgUmVmUHRyPFdlYlBsYXliYWNr
U2Vzc2lvbk1hbmFnZXJQcm94eT4gbV9wbGF5YmFja1Nlc3Npb25NYW5hZ2VyOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYzNjYw
NzE3ZjBiOWUxOTFiYjI2MThlOGU4YWU3OTJmZjFmZDViNDcuLjE2YmEyZDUyMjgwN2ZlZmM0ZGU1
NGI1YzBiYTYyNGQzOThhMWM2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3NTQsNiArMTc1NCwxMCBAQAogCQlDRDczQkE0
NzEzMUFDQzlBMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
RDczQkE0NTEzMUFDQzg4MDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eU1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi87IH07CiAJCUNENzNCQTRFMTMxQUNEQjcwMEVFREVEMiAvKiBXZWJG
dWxsU2NyZWVuTWFuYWdlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDczQkE0ODEzMUFDRDhFMDBFRURFRDIgLyogV2Vi
RnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQlDRDczQkE1MzEz
MUI2NDVCMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3M0JBMzcxMzFBMjlGRTAwRUVERUQy
IC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyLmNwcCAqLzsgfTsKKwkJQ0Q3OEUxMTQxREI3RDdFRDAw
MTRBMkRFIC8qIEZ1bGxzY3JlZW5DbGllbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDRDc4RTExMjFEQjdEN0VEMDAxNEEyREUgLyogRnVsbHNjcmVl
bkNsaWVudC5tbSAqLzsgfTsKKwkJQ0Q3OEUxMTUxREI3RDdFRDAwMTRBMkRFIC8qIEZ1bGxzY3Jl
ZW5DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IENENzhFMTEzMURCN0Q3RUQwMDE0QTJERSAvKiBGdWxsc2NyZWVuQ2xpZW50LmggKi87IH07CisJ
CUNENzhFMTE3MURCN0RDMEEwMDE0QTJERSAvKiBBUElGdWxsc2NyZWVuQ2xpZW50LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDc4RTExNjFEQjdEQzBB
MDAxNEEyREUgLyogQVBJRnVsbHNjcmVlbkNsaWVudC5oICovOyB9OworCQlDRDc4RTExOTFEQjdF
NUFEMDAxNEEyREUgLyogX1dLRnVsbHNjcmVlbkRlbGVnYXRlLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDc4RTExODFEQjdFNUFEMDAxNEEyREUgLyog
X1dLRnVsbHNjcmVlbkRlbGVnYXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJQ0RBMDQxRjQxQUNFMjEwNTAwNEExM0VDIC8qIEJhY2tCb2FyZFNl
cnZpY2VzU1BJLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDREEwNDFGMzFBQ0UyMTA1MDA0QTEzRUMgLyogQmFja0JvYXJkU2VydmljZXNTUEkuaCAqLzsg
fTsKIAkJQ0RBMjlBMUExQ0JEQkY0MTAwOTAxQ0NGIC8qIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDREEy
OUExODFDQkRCRjQxMDA5MDFDQ0YgLyogV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbSAqLzsg
fTsKIAkJQ0RBMjlBMUIxQ0JEQkY0MTAwOTAxQ0NGIC8qIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQTI5
QTE5MUNCREJGNDEwMDkwMUNDRiAvKiBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmggKi87IH07
CkBAIC0zODkxLDYgKzM4OTUsMTAgQEAKIAkJQ0Q3M0JBNDgxMzFBQ0Q4RTAwRUVERUQyIC8qIFdl
YkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q3M0JBNDkxMzFBQ0Q4RTAwRUVERUQy
IC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2FnZXMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlDRDczQkE0QTEzMUFDRDhGMDBFRURFRDIgLyogV2ViRnVsbFNjcmVl
bk1hbmFnZXJQcm94eU1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdlcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlDRDc4RTExMjFEQjdEN0VEMDAxNEEyREUgLyogRnVsbHNjcmVlbkNsaWVudC5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEZ1bGxzY3JlZW5DbGll
bnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENzhFMTEzMURCN0Q3RUQwMDE0
QTJERSAvKiBGdWxsc2NyZWVuQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEZ1bGxzY3JlZW5DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q3
OEUxMTYxREI3REMwQTAwMTRBMkRFIC8qIEFQSUZ1bGxzY3JlZW5DbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJRnVsbHNjcmVlbkNsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlDRDc4RTExODFEQjdFNUFEMDAxNEEyREUgLyogX1dLRnVsbHNj
cmVlbkRlbGVnYXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IF9XS0Z1bGxz
Y3JlZW5EZWxlZ2F0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREEwNDFGMzFB
Q0UyMTA1MDA0QTEzRUMgLyogQmFja0JvYXJkU2VydmljZXNTUEkuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQmFja0JvYXJkU2VydmljZXNTUEkuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQ0RBMjlBMTgxQ0JEQkY0MTAwOTAxQ0NGIC8qIFdlYlBsYXliYWNrU2Vz
c2lvbk1hbmFnZXIubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
ZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDREEyOUExOTFDQkRCRjQxMDA5MDFDQ0YgLyogV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJQbGF5YmFja1Nlc3Npb25NYW5h
Z2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00NzkyLDYgKzQ4MDAsOCBAQAog
CQkJCUExREY2MzEwMThFMEI3QzgwMDNBM0UyQSAvKiBEb3dubG9hZENsaWVudC5tbSAqLywKIAkJ
CQkwMEI5NjYxODE4RTI1QUUxMDBDRTFGODggLyogRmluZENsaWVudC5oICovLAogCQkJCTAwQjk2
NjE3MThFMjVBRTEwMENFMUY4OCAvKiBGaW5kQ2xpZW50Lm1tICovLAorCQkJCUNENzhFMTEyMURC
N0Q3RUQwMDE0QTJERSAvKiBGdWxsc2NyZWVuQ2xpZW50Lm1tICovLAorCQkJCUNENzhFMTEzMURC
N0Q3RUQwMDE0QTJERSAvKiBGdWxsc2NyZWVuQ2xpZW50LmggKi8sCiAJCQkJMEYwQzM2NTkxOEMw
NTU1ODAwRjYwN0Q3IC8qIExheWVyUmVwcmVzZW50YXRpb24uaCAqLywKIAkJCQkxQUJDM0RGNDE4
OTlFNDM3MDA0RjA2MjYgLyogTmF2aWdhdGlvblN0YXRlLmggKi8sCiAJCQkJMUFCQzNERjMxODk5
RTQzNzAwNEYwNjI2IC8qIE5hdmlnYXRpb25TdGF0ZS5tbSAqLywKQEAgLTUxNzMsNiArNTE4Myw3
IEBACiAJCQkJMkRFQUM1Q0UxQUMzNjhCQjAwQTE5NUQ4IC8qIF9XS0ZpbmRPcHRpb25zLmggKi8s
CiAJCQkJMkU3QTk0NDkxQkJEOTVDNjAwOTQ1NTQ3IC8qIF9XS0ZvY3VzZWRFbGVtZW50SW5mby5o
ICovLAogCQkJCTM3QTY0RTU2MThGMzhGNDYwMEVCMzBGMSAvKiBfV0tGb3JtSW5wdXRTZXNzaW9u
LmggKi8sCisJCQkJQ0Q3OEUxMTgxREI3RTVBRDAwMTRBMkRFIC8qIF9XS0Z1bGxzY3JlZW5EZWxl
Z2F0ZS5oICovLAogCQkJCTM3QTY0RTU0MThGMzhFM0MwMEVCMzBGMSAvKiBfV0tJbnB1dERlbGVn
YXRlLmggKi8sCiAJCQkJMkQ3OTBBOUMxQUQ3MDUwRDAwQUI5MEIzIC8qIF9XS0xheW91dE1vZGUu
aCAqLywKIAkJCQk5MzIzNjExRDFCMDE1REE4MDBGQTkyMzIgLyogX1dLT3ZlcmxheVNjcm9sbGJh
clN0eWxlLmggKi8sCkBAIC02MjMxLDYgKzYyNDIsNyBAQAogCQkJCTM3RTI1RDZEMThGREU1RDYw
MDVEM0EwMCAvKiBBUElGb3JtQ2xpZW50LmggKi8sCiAJCQkJMkRGOUVFRTMxQTc4MUZCNDAwQjZD
RkJFIC8qIEFQSUZyYW1lSW5mby5jcHAgKi8sCiAJCQkJMkRGOUVFRTQxQTc4MUZCNDAwQjZDRkJF
IC8qIEFQSUZyYW1lSW5mby5oICovLAorCQkJCUNENzhFMTE2MURCN0RDMEEwMDE0QTJERSAvKiBB
UElGdWxsc2NyZWVuQ2xpZW50LmggKi8sCiAJCQkJMkRBQkE3NzUxQTgyQjQyMTAwRUYwRjFBIC8q
IEFQSUhpc3RvcnlDbGllbnQuaCAqLywKIAkJCQk5M0E4OEI0MjFCQzg4MjhDMDBBQkE1QzIgLyog
QVBJSGl0VGVzdFJlc3VsdC5jcHAgKi8sCiAJCQkJOTNBODhCNDMxQkM4ODI4QzAwQUJBNUMyIC8q
IEFQSUhpdFRlc3RSZXN1bHQuaCAqLywKQEAgLTc1MDUsNiArNzUxNyw3IEBACiAJCQkJMUFGQjRD
NzIxQURGMTU1RDAwQjMzMzM5IC8qIF9XS1dlYnNpdGVEYXRhU3RvcmUuaCBpbiBIZWFkZXJzICov
LAogCQkJCTFBNEE5M0I3MUFFQjA4RUEwMDE1MEU5QyAvKiBfV0tXZWJzaXRlRGF0YVN0b3JlSW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMTVEQzcyMTkxRDgyREEwMERBODA3MiAvKiBf
V0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUNENzhFMTE5MURC
N0U1QUQwMDE0QTJERSAvKiBfV0tGdWxsc2NyZWVuRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAog
CQkJCUExOUREM0MwMUQwN0QxNjgwMEFDODIzQiAvKiBfV0tXZWJWaWV3UHJpbnRGb3JtYXR0ZXJJ
bnRlcm5hbC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE4MkQ1QjUxQkU2QkQyNTAwODdBN0NDIC8q
IEFjY2Vzc2liaWxpdHlJT1MuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3RDc5MkQ4MTc2N0NDQTMw
MDg4MUNCRSAvKiBBY3Rpdml0eUFzc2VydGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC04MjUwLDYg
KzgyNjMsNyBAQAogCQkJCTgzNzJEQjI1MUE2NzRDOEYwMEM2OTdDNSAvKiBXS1BhZ2VEaWFnbm9z
dGljTG9nZ2luZ0NsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCOEExRjQxODQwMEI4RjAw
RTlBRTY5IC8qIFdLUGFnZUZpbmRDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBQjhBMUY2
MTg0MDBCOUQwMEU5QUU2OSAvKiBXS1BhZ2VGaW5kTWF0Y2hlc0NsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJQ0Q3OEUxMTUxREI3RDdFRDAwMTRBMkRFIC8qIEZ1bGxzY3JlZW5DbGllbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBQjhBMUYwMTg0MDBCMDAwMEU5QUU2OSAvKiBXS1BhZ2VGb3Jt
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzdCNjMzNzEyQTQ1QUJBMDBEMTc0QTQgLyog
V0tQYWdlR3JvdXAuaCBpbiBIZWFkZXJzICovLAogCQkJCTJEOUVBMzBEMUE5NkNCNTkwMDJEMjgw
NyAvKiBXS1BhZ2VJbmplY3RlZEJ1bmRsZUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC04Mjgx
LDYgKzgyOTUsNyBAQAogCQkJCTkzOTEwNzRGMUJGNkJDNjUwMDhDMTdBRCAvKiBXS1ByZXZpZXdF
bGVtZW50SW5mb0ludGVybmFsLmggaW4gSGVhZGVycyAqLywKIAkJCQkwRkNCNEU2NjE4QkJFM0Q5
MDAwRkNGQzkgLyogV0tQcmludGluZ1ZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQkFBQ0VC
MTQ1MjI1RTMwMDUzRjgyRiAvKiBXS1Byb2Nlc3NHcm91cC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
Q0Q3OEUxMTcxREI3REMwQTAwMTRBMkRFIC8qIEFQSUZ1bGxzY3JlZW5DbGllbnQuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDQkFBQ0VEMTQ1MjI1RTMwMDUzRjgyRiAvKiBXS1Byb2Nlc3NHcm91cFBy
aXZhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMTU4NDFBMTg5MDQ0RjUwMDE3NjE2QyAvKiBX
S1Byb2Nlc3NQb29sLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTNDQzE2OTE4OTA3RUIwMDAxRTZF
RDggLyogV0tQcm9jZXNzUG9vbEludGVybmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTkxODcsNiAr
OTIwMiw3IEBACiAJCQkJRTQ0MzZFQ0QxQTBEMDQwQjAwRUFEMjA0IC8qIE5ldHdvcmtDYWNoZUtl
eS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MzFFRUJCRTFCRDg1QzQzMDBCQjY0QzMgLyogTmV0
d29ya0NhY2hlU3BlY3VsYXRpdmVMb2FkLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTgzMkFFMjUz
MUJFMkU4Q0QwMEZBQUUxMCAvKiBOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCUNENzhFMTE0MURCN0Q3RUQwMDE0QTJERSAvKiBGdWxsc2Ny
ZWVuQ2xpZW50Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJODNCRENDQjkxQUM1RkRCNjAwM0Y2NDQx
IC8qIE5ldHdvcmtDYWNoZVN0YXRpc3RpY3MuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTQ0MzZF
RDAxQTBEMDQwQjAwRUFEMjA0IC8qIE5ldHdvcmtDYWNoZVN0b3JhZ2UuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJODMxMDQyOEMxQkQ2QjY2RjAwQTcxNUU0IC8qIE5ldHdvcmtDYWNoZVN1YnJlc291
cmNlc0VudHJ5LmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDQ2OTRlMThjY2I5OTg4NmZhNDA4NjgzNDVjMThhMTUz
ZGIxYWNjOTkuLjY0YzZkNjg0Mjk5ZjIxZDM3ZmI4YTFiYTEyYzljN2FhMjRiNmM3N2EgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
MCBAQAorMjAxNi0xMC0xOSAgSmVyIE5vYmxlICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgV0tXZWJWaWV3IGZ1bGxzY3JlZW4gZGVsZWdhdGUgU1BJCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNjM2NzQKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBuZXcgQVBJIHRlc3Qgd2hp
Y2ggdmVyaWZpZXMgdGhhdCB0aGUgZnVsbHNjcmVlbiBkZWxlZ2F0ZSByZWNlaXZlcyBub3RpZmlj
YXRpb25zLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVs
bHNjcmVlbkRlbGVnYXRlLm1tOgorICAgICAgICAoLVtGdWxsc2NyZWVuRGVsZWdhdGVNZXNzYWdl
SGFuZGxlciB1c2VyQ29udGVudENvbnRyb2xsZXI6ZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6XSk6
CisgICAgICAgICgtW0Z1bGxzY3JlZW5EZWxlZ2F0ZU1lc3NhZ2VIYW5kbGVyIF93ZWJWaWV3V2ls
bEVudGVyRnVsbHNjcmVlbjpdKToKKyAgICAgICAgKC1bRnVsbHNjcmVlbkRlbGVnYXRlTWVzc2Fn
ZUhhbmRsZXIgX3dlYlZpZXdEaWRFbnRlckZ1bGxzY3JlZW46XSk6CisgICAgICAgICgtW0Z1bGxz
Y3JlZW5EZWxlZ2F0ZU1lc3NhZ2VIYW5kbGVyIF93ZWJWaWV3V2lsbEV4aXRGdWxsc2NyZWVuOl0p
OgorICAgICAgICAoLVtGdWxsc2NyZWVuRGVsZWdhdGVNZXNzYWdlSGFuZGxlciBfd2ViVmlld0Rp
ZEV4aXRGdWxsc2NyZWVuOl0pOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisKIDIw
MTYtMTAtMTkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBSZS1lbmFibGUgVVJMUGFyc2VyIGZvciBub24tU2FmYXJpIENvY29hIGFwcHMgYWZ0
ZXIgcjIwNzMyMQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJ
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0YzI2YTVmODQzMjI2MWYzMDll
NTMzMGIwOGE2ZjkxZjRjNTBlYTgzLi4zMjMzMzk3MjllN2EwNmVjMTY0NmE1NmI1NjI1MGUyYmQ1
NDc2MzIxIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJLaXRBUEkueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RXZWJL
aXRBUEkueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtNDcxLDYgKzQ3MSw4IEBACiAJCUM1
RTFBRkZFMTZCMjIxRjEwMDZDQzFGMiAvKiBleGVjQ29weS5odG1sIGluIENvcHkgUmVzb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1RTFBRkZEMTZCMjIxNzkwMDZD
QzFGMiAvKiBleGVjQ29weS5odG1sICovOyB9OwogCQlDRDU5RjUzNDE5RTkxMTBEMDBDRjE4MzUg
LyogZmlsZS13aXRoLW1zZS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENENTlGNTMyMTlFOTEwQUEwMENGMTgzNSAvKiBmaWxlLXdpdGgt
bXNlLmh0bWwgKi87IH07CiAJCUNENTlGNTM1MTlFOTExMEQwMENGMTgzNSAvKiB0ZXN0LW1zZS5t
cDQgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
Q0Q1OUY1MzMxOUU5MTBCQzAwQ0YxODM1IC8qIHRlc3QtbXNlLm1wNCAqLzsgfTsKKwkJQ0Q3OEUx
MUQxREI3RUE2NjAwMTRBMkRFIC8qIEZ1bGxzY3JlZW5EZWxlZ2F0ZS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENzhFMTFBMURCN0VBMzYwMDE0QTJE
RSAvKiBGdWxsc2NyZWVuRGVsZWdhdGUubW0gKi87IH07CisJCUNENzhFMTFFMURCN0VFMkEwMDE0
QTJERSAvKiBGdWxsc2NyZWVuRGVsZWdhdGUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDc4RTExQjFEQjdFQTM2MDAxNEEyREUgLyog
RnVsbHNjcmVlbkRlbGVnYXRlLmh0bWwgKi87IH07CiAJCUNEOUUyOTJFMUM5MEMzM0YwMDBCQjgw
MCAvKiBhdWRpby1vbmx5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQ0Q5RTI5MkQxQzkwQzFCQTAwMEJCODAwIC8qIGF1ZGlvLW9ubHku
aHRtbCAqLzsgfTsKIAkJQ0RCRkNDNDUxQTlGRjQ1MzAwQTdCNjkxIC8qIEZ1bGxzY3JlZW5ab29t
SW5pdGlhbEZyYW1lLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQ0RCRkNDNDMxQTlGRjQ0ODAwQTdCNjkxIC8qIEZ1bGxzY3JlZW5ab29tSW5pdGlhbEZy
YW1lLm1tICovOyB9OwogCQlDREJGQ0M0NjFBOUZGNDlFMDBBN0I2OTEgLyogRnVsbHNjcmVlblpv
b21Jbml0aWFsRnJhbWUuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDREJGQ0M0MjFBOUZGNDQ4MDBBN0I2OTEgLyogRnVsbHNjcmVlblpv
b21Jbml0aWFsRnJhbWUuaHRtbCAqLzsgfTsKQEAgLTU2NCw2ICs1NjYsNyBAQAogCQkJZmlsZXMg
PSAoCiAJCQkJQUQ1N0FDMjIxREE3NDY2RTAwRkYxQkRFIC8qIG1hbnktaWZyYW1lcy5odG1sIGlu
IENvcHkgUmVzb3VyY2VzICovLAogCQkJCUY0MTUwODZEMURBMDQwQzUwMDQ0QkU5QiAvKiBwbGF5
LWF1ZGlvLW9uLWNsaWNrLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJQ0Q3OEUxMUUx
REI3RUUyQTAwMTRBMkRFIC8qIEZ1bGxzY3JlZW5EZWxlZ2F0ZS5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCUY0RjEzNzkyMUQ5QjY4M0UwMDJCRUM1NyAvKiBsYXJnZS12aWRlby10ZXN0
LW5vdy1wbGF5aW5nLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJODM3QTM1RjExRDlB
MUU3RDAwNjYzQzU3IC8qIERvd25sb2FkUmVxdWVzdEJsb2JVUkwuaHRtbCBpbiBDb3B5IFJlc291
cmNlcyAqLywKIAkJCQkyRTk4OTYxNTFEOEYwOTM4MDA3Mzk4OTIgLyogdGV4dC1hbmQtcGFzc3dv
cmQtaW5wdXRzLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xMTgyLDYgKzExODUsOCBA
QAogCQlDRDU5RjUzMjE5RTkxMEFBMDBDRjE4MzUgLyogZmlsZS13aXRoLW1zZS5odG1sICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dC5odG1sOyBwYXRoID0gImZpbGUtd2l0aC1tc2UuaHRtbCI7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNENTlGNTMzMTlFOTEwQkMwMENGMTgzNSAvKiB0ZXN0LW1zZS5t
cDQgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBmaWxl
OyBwYXRoID0gInRlc3QtbXNlLm1wNCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNE
NzczRjcxMUM1MDU3REIwMDAyMjU3QyAvKiBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZyAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQueGNjb25maWc7IHBhdGggPSBGZWF0dXJlRGVmaW5lcy54Y2NvbmZpZzsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q3OEUxMUExREI3RUEzNjAwMTRBMkRFIC8qIEZ1bGxz
Y3JlZW5EZWxlZ2F0ZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IEZ1bGxzY3JlZW5EZWxlZ2F0ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQ0Q3
OEUxMUIxREI3RUEzNjAwMTRBMkRFIC8qIEZ1bGxzY3JlZW5EZWxlZ2F0ZS5odG1sICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dC5odG1sOyBwYXRoID0gRnVsbHNjcmVlbkRlbGVnYXRlLmh0bWw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUNEODlEMDM4MUM0RURCMkEwMDA0MEEwNCAvKiBXZWJDb3JlTlNV
UkxTZXNzaW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2Vi
Q29yZU5TVVJMU2Vzc2lvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQ0Q5RTI5
MkIxQzkwQTcxRjAwMEJCODAwIC8qIFJlcXVpcmVzVXNlckFjdGlvbkZvclBsYXliYWNrLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gUmVxdWlyZXNVc2VyQWN0aW9u
Rm9yUGxheWJhY2subW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEOUUyOTJEMUM5
MEMxQkEwMDBCQjgwMCAvKiBhdWRpby1vbmx5Lmh0bWwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmh0bWw7IHBh
dGggPSAiYXVkaW8tb25seS5odG1sIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEz
ODgsNiArMTM5Myw3IEBACiAJCQkJQTFBNEZFNUQxOEREM0RCNzAwQjVFQThBIC8qIERvd25sb2Fk
Lm1tICovLAogCQkJCTJEODEwNENCMUJFQzEzRTcwMDIwREE0NiAvKiBGaW5kSW5QYWdlLm1tICov
LAogCQkJCTJEMUZFMEFGMUFENDY1QzEwMDZDRDlFNiAvKiBGaXhlZExheW91dFNpemUubW0gKi8s
CisJCQkJQ0Q3OEUxMUExREI3RUEzNjAwMTRBMkRFIC8qIEZ1bGxzY3JlZW5EZWxlZ2F0ZS5tbSAq
LywKIAkJCQkzRjFCNTI2ODFEM0Q3MTI5MDA4RDYwQzQgLyogRnVsbHNjcmVlbkxheW91dENvbnN0
cmFpbnRzLm1tICovLAogCQkJCUNERTE5NUIzMUNGRTBBREUwMDUzRDI1NiAvKiBGdWxsc2NyZWVu
VG9wQ29udGVudEluc2V0Lm1tICovLAogCQkJCTUxMDQ3Nzc1MUQyOThFMDMwMDk3NDdFQiAvKiBJ
REJEZWxldGVSZWNvdmVyeS5tbSAqLywKQEAgLTE1NDcsNiArMTU1Myw3IEBACiAJCQkJOTk4NEZB
Q0QxQ0ZGQjAzODAwOEQxOThDIC8qIGVkaXRhYmxlLWJvZHkuaHRtbCAqLywKIAkJCQk5MzU3NUM1
NTFEMzAzNjZFMDAwRDYwNEQgLyogZm9jdXMtaW5wdXRzLmh0bWwgKi8sCiAJCQkJRjRGNDA1QkEx
RDRDMENGODAwN0E5NzA3IC8qIGZ1bGwtc2l6ZS1hdXRvcGxheWluZy12aWRlby13aXRoLWF1ZGlv
Lmh0bWwgKi8sCisJCQkJQ0Q3OEUxMUIxREI3RUEzNjAwMTRBMkRFIC8qIEZ1bGxzY3JlZW5EZWxl
Z2F0ZS5odG1sICovLAogCQkJCTNGQkQxQjQ5MUQzOUQxREIwMEU2RDZGQSAvKiBGdWxsc2NyZWVu
TGF5b3V0Q29uc3RyYWludHMuaHRtbCAqLywKIAkJCQlDREUxOTVCMjFDRkUwQURFMDA1M0QyNTYg
LyogRnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5odG1sICovLAogCQkJCTUxMDQ3Nzc2MUQyOThF
NTcwMDk3NDdFQiAvKiBJREJEZWxldGVSZWNvdmVyeS5odG1sICovLApAQCAtMjUzMiw2ICsyNTM5
LDcgQEAKIAkJCQk1MTcxNEVCODFDRjhDQTE3MDA0NzIzQzQgLyogV2ViUHJvY2Vzc0tpbGxJREJD
bGVhbnVwLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTM2NzcwMzQxQ0M4MDIyODAwRDQyNUIxIC8q
IFdlYlNjcmlwdE9iamVjdERlc2NyaXB0aW9uLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdF
RDQxQTQxMUE3RTAwNDQ3QzRDIC8qIFdlYlZpZXdDYW5QYXN0ZVVSTC5tbSBpbiBTb3VyY2VzICov
LAorCQkJCUNENzhFMTFEMURCN0VBNjYwMDE0QTJERSAvKiBGdWxsc2NyZWVuRGVsZWdhdGUubW0g
aW4gU291cmNlcyAqLywKIAkJCQk3QzgzRTA0MjFEMEE2M0ZEMDBGRUJDRjMgLyogV2ViVmlld0Ns
b3NlSW5zaWRlRGlkRmluaXNoTG9hZEZvckZyYW1lLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0ND
RTdFRDUxQTQxMUE3RTAwNDQ3QzRDIC8qIFdlYlZpZXdEaWRDcmVhdGVKYXZhU2NyaXB0Q29udGV4
dC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDQ0U3RUQ2MUE0MTFBN0UwMDQ0N0M0QyAvKiBXZWJW
aWV3RGlkUmVtb3ZlRnJhbWVGcm9tSGllcmFyY2h5Lm1tIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1n
aXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuRGVs
ZWdhdGUuaHRtbCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0MkNvY29hL0Z1bGxz
Y3JlZW5EZWxlZ2F0ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhOTAwNjIwMzRhNWU3M2Y1YjJiMjU1ZmE5
NjRlM2I4MGQ3ODIzMWUKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rl
c3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUuaHRtbApAQCAtMCwwICsxLDMxIEBA
Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdD4KKyAgICAgICAg
ZnVuY3Rpb24gbG9hZCgpIHsKKyAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRs
ZXJzLmZ1bGxzY3JlZW5DaGFuZ2VIYW5kbGVyLnBvc3RNZXNzYWdlKCdsb2FkJyk7CisgICAgICAg
IH0KKyAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignd2Via2l0ZnVsbHNjcmVlbmNo
YW5nZScsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1lc3Nh
Z2VIYW5kbGVycy5mdWxsc2NyZWVuQ2hhbmdlSGFuZGxlci5wb3N0TWVzc2FnZSgnZnVsbHNjcmVl
bmNoYW5nZScpOworICAgICAgICB9KTsKKyAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5l
cignbW91c2Vkb3duJywgZnVuY3Rpb24oZXZlbnQpIHsKKyAgICAgICAgICAgIC8vIFRvZ2dsZSBm
dWxsc2NyZWVuCisgICAgICAgICAgICB2YXIgdGFyZ2V0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ3RhcmdldCcpOworICAgICAgICAgICAgaWYgKGRvY3VtZW50LndlYmtpdEZ1bGxzY3JlZW5F
bGVtZW50ID09IHRhcmdldCkKKyAgICAgICAgICAgICAgICBkb2N1bWVudC53ZWJraXRFeGl0RnVs
bHNjcmVlbigpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRhcmdldC53ZWJr
aXRSZXF1ZXN0RnVsbFNjcmVlbigpOworICAgICAgICB9KTsKKyAgICA8L3NjcmlwdD4KKyAgICA8
c3R5bGU+CisgICAgI3RhcmdldCB7CisgICAgICAgIGJhY2tncm91bmQtY29sb3I6IHJlZDsKKyAg
ICAgICAgd2lkdGg6IDE1MHB4OworICAgICAgICBoZWlnaHQ6IDE1MHB4OworICAgIH0KKyAgICA8
L3N0eWxlPgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJsb2FkKCkiPgorICAgIDxkaXYgaWQ9InRh
cmdldCI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVs
bHNjcmVlbkRlbGVnYXRlLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29j
b2EvRnVsbHNjcmVlbkRlbGVnYXRlLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmViZTg4YjZhNDJjZTJhMWY0MTVj
MzcwOTUzZTc0YWEyNDBmOWI3ZmMKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUubW0KQEAgLTAsMCArMSwx
MTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisKKyNpZiBXS19BUElfRU5B
QkxFRCAmJiBQTEFURk9STShNQUMpCisKKyNpbXBvcnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisj
aW1wb3J0IDxXZWJLaXQvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9X
S1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmll
d1ByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktpdC9fV0tGdWxsc2NyZWVuRGVsZWdhdGUuaD4KKyNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KKworc3RhdGljIGJvb2wgcmVjZWl2ZWRMb2FkZWRNZXNz
YWdlOworc3RhdGljIGJvb2wgcmVjZWl2ZWRXaWxsRW50ZXJGdWxsc2NyZWVuTWVzc2FnZTsKK3N0
YXRpYyBib29sIHJlY2VpdmVkRGlkRW50ZXJGdWxsc2NyZWVuTWVzc2FnZTsKK3N0YXRpYyBib29s
IHJlY2VpdmVkV2lsbEV4aXRGdWxsc2NyZWVuTWVzc2FnZTsKK3N0YXRpYyBib29sIHJlY2VpdmVk
RGlkRXhpdEZ1bGxzY3JlZW5NZXNzYWdlOworCitAaW50ZXJmYWNlIEZ1bGxzY3JlZW5EZWxlZ2F0
ZU1lc3NhZ2VIYW5kbGVyIDogTlNPYmplY3QgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXIsIF9XS0Z1
bGxzY3JlZW5EZWxlZ2F0ZT4KK0BlbmQKKworQGltcGxlbWVudGF0aW9uIEZ1bGxzY3JlZW5EZWxl
Z2F0ZU1lc3NhZ2VIYW5kbGVyCistICh2b2lkKXVzZXJDb250ZW50Q29udHJvbGxlcjooV0tVc2Vy
Q29udGVudENvbnRyb2xsZXIgKil1c2VyQ29udGVudENvbnRyb2xsZXIgZGlkUmVjZWl2ZVNjcmlw
dE1lc3NhZ2U6KFdLU2NyaXB0TWVzc2FnZSAqKW1lc3NhZ2UKK3sKKyAgICBOU1N0cmluZyAqYm9k
eVN0cmluZyA9IChOU1N0cmluZyAqKVttZXNzYWdlIGJvZHldOworICAgIGlmIChbYm9keVN0cmlu
ZyBpc0VxdWFsVG9TdHJpbmc6QCJsb2FkIl0pCisgICAgICAgIHJlY2VpdmVkTG9hZGVkTWVzc2Fn
ZSA9IHRydWU7Cit9CisKKy0gKHZvaWQpX3dlYlZpZXdXaWxsRW50ZXJGdWxsc2NyZWVuOihXS1dl
YlZpZXcgKil2aWV3Cit7CisgICAgcmVjZWl2ZWRXaWxsRW50ZXJGdWxsc2NyZWVuTWVzc2FnZSA9
IHRydWU7Cit9CisKKy0gKHZvaWQpX3dlYlZpZXdEaWRFbnRlckZ1bGxzY3JlZW46KFdLV2ViVmll
dyAqKXZpZXcKK3sKKyAgICByZWNlaXZlZERpZEVudGVyRnVsbHNjcmVlbk1lc3NhZ2UgPSB0cnVl
OworfQorCistICh2b2lkKV93ZWJWaWV3V2lsbEV4aXRGdWxsc2NyZWVuOihXS1dlYlZpZXcgKil2
aWV3Cit7CisgICAgcmVjZWl2ZWRXaWxsRXhpdEZ1bGxzY3JlZW5NZXNzYWdlID0gdHJ1ZTsKK30K
KworLSAodm9pZClfd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuOihXS1dlYlZpZXcgKil2aWV3Cit7
CisgICAgcmVjZWl2ZWREaWRFeGl0RnVsbHNjcmVlbk1lc3NhZ2UgPSB0cnVlOworfQorQGVuZAor
CituYW1lc3BhY2UgVGVzdFdlYktpdEFQSSB7CisKK1RFU1QoRnVsbHNjcmVlbiwgRGVsZWdhdGUp
Cit7CisgICAgUmV0YWluUHRyPFdLV2ViVmlld0NvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb24g
PSBhZG9wdE5TKFtbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBhbGxvY10gaW5pdF0pOworICAgIFJl
dGFpblB0cjxXS1dlYlZpZXc+IHdlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBp
bml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgMTAwLCAxMDApIGNvbmZpZ3VyYXRpb246Y29u
ZmlndXJhdGlvbi5nZXQoKV0pOworICAgIFtjb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXS5fZnVs
bFNjcmVlbkVuYWJsZWQgPSBZRVM7CisgICAgUmV0YWluUHRyPEZ1bGxzY3JlZW5EZWxlZ2F0ZU1l
c3NhZ2VIYW5kbGVyPiBoYW5kbGVyID0gYWRvcHROUyhbW0Z1bGxzY3JlZW5EZWxlZ2F0ZU1lc3Nh
Z2VIYW5kbGVyIGFsbG9jXSBpbml0XSk7CisgICAgW1tjb25maWd1cmF0aW9uIHVzZXJDb250ZW50
Q29udHJvbGxlcl0gYWRkU2NyaXB0TWVzc2FnZUhhbmRsZXI6aGFuZGxlci5nZXQoKSBuYW1lOkAi
ZnVsbHNjcmVlbkNoYW5nZUhhbmRsZXIiXTsKKyAgICBbd2ViVmlldyBfc2V0RnVsbHNjcmVlbkRl
bGVnYXRlOmhhbmRsZXIuZ2V0KCldOworCisgICAgUmV0YWluUHRyPE5TV2luZG93PiB3aW5kb3cg
PSBhZG9wdE5TKFtbTlNXaW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6W3dlYlZpZXcg
ZnJhbWVdIHN0eWxlTWFzazpOU0JvcmRlcmxlc3NXaW5kb3dNYXNrIGJhY2tpbmc6TlNCYWNraW5n
U3RvcmVCdWZmZXJlZCBkZWZlcjpOT10pOworICAgIFtbd2luZG93IGNvbnRlbnRWaWV3XSBhZGRT
dWJ2aWV3OndlYlZpZXcuZ2V0KCldOworCisgICAgTlNVUkxSZXF1ZXN0ICpyZXF1ZXN0ID0gW05T
VVJMUmVxdWVzdCByZXF1ZXN0V2l0aFVSTDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIFVSTEZvclJl
c291cmNlOkAiRnVsbHNjcmVlbkRlbGVnYXRlIiB3aXRoRXh0ZW5zaW9uOkAiaHRtbCIgc3ViZGly
ZWN0b3J5OkAiVGVzdFdlYktpdEFQSS5yZXNvdXJjZXMiXV07CisgICAgW3dlYlZpZXcgbG9hZFJl
cXVlc3Q6cmVxdWVzdF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZExv
YWRlZE1lc3NhZ2UpOworCisgICAgTlNFdmVudCAqZXZlbnQgPSBbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6TlNMZWZ0TW91c2VEb3duIGxvY2F0aW9uOk5TTWFrZVBvaW50KDUsIDUpIG1vZGlm
aWVyRmxhZ3M6MCB0aW1lc3RhbXA6MCB3aW5kb3dOdW1iZXI6d2luZG93LmdldCgpLndpbmRvd051
bWJlciBjb250ZXh0OjAgZXZlbnROdW1iZXI6MCBjbGlja0NvdW50OjAgcHJlc3N1cmU6MF07Cisg
ICAgW3dlYlZpZXcgbW91c2VEb3duOmV2ZW50XTsKKworICAgIEFTU0VSVF9GQUxTRShbd2ViVmll
dyBfaXNJbkZ1bGxzY3JlZW5dKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJnJlY2Vp
dmVkV2lsbEVudGVyRnVsbHNjcmVlbk1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6
OnJ1bigmcmVjZWl2ZWREaWRFbnRlckZ1bGxzY3JlZW5NZXNzYWdlKTsKKworICAgIEFTU0VSVF9U
UlVFKFt3ZWJWaWV3IF9pc0luRnVsbHNjcmVlbl0pOworICAgIFt3ZWJWaWV3IG1vdXNlRG93bjpl
dmVudF07CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZyZWNlaXZlZFdpbGxFeGl0RnVs
bHNjcmVlbk1lc3NhZ2UpOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRE
aWRFeGl0RnVsbHNjcmVlbk1lc3NhZ2UpOworCisgICAgQVNTRVJUX0ZBTFNFKFt3ZWJWaWV3IF9p
c0luRnVsbHNjcmVlbl0pOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNl
bmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>292222</attachid>
            <date>2016-10-20 10:26:30 -0700</date>
            <delta_ts>2016-10-24 13:12:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-163674-20161020102253.patch</filename>
            <type>text/plain</type>
            <size>40827</size>
            <attacher name="Jer Noble">jer.noble</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3NTg0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjYxYTY4ZTdjYzdkYjI2
ZWMxNzZiNGMxZjJhYTE2YmUxYmE1ODZjNS4uYWExNzJmYTRiZWI1ZmZjNzFlYjY4OGMyMzI0YjVh
NWUwN2ZmNWMxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDE2LTEwLTE5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBXS1dlYlZpZXcgZnVs
bHNjcmVlbiBkZWxlZ2F0ZSBTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MzY3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhIG5ldyBTUEkgcHJvcGVydHkgdG8gV0tXZWJWaWV3IGFsbG93aW5n
IGNsaWVudHMgdG8gYmUgbm90aWZpZWQgd2hlbiBmdWxsc2NyZWVuIG1vZGUgZW50ZXJzIGFuZCBl
eGl0cy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJRnVsbHNjcmVlbkNsaWVudC5oOiBB
ZGRlZC4KKyAgICAgICAgKEFQSTo6RnVsbHNjcmVlbkNsaWVudDo6fkZ1bGxzY3JlZW5DbGllbnQp
OgorICAgICAgICAoQVBJOjpGdWxsc2NyZWVuQ2xpZW50Ojp3aWxsRW50ZXJGdWxsc2NyZWVuKToK
KyAgICAgICAgKEFQSTo6RnVsbHNjcmVlbkNsaWVudDo6ZGlkRW50ZXJGdWxsc2NyZWVuKToKKyAg
ICAgICAgKEFQSTo6RnVsbHNjcmVlbkNsaWVudDo6d2lsbEV4aXRGdWxsc2NyZWVuKToKKyAgICAg
ICAgKEFQSTo6RnVsbHNjcmVlbkNsaWVudDo6ZGlkRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcg
X2luaXRpYWxpemVXaXRoQ29uZmlndXJhdGlvbjpdKToKKyAgICAgICAgKC1bV0tXZWJWaWV3IF9z
ZXRGdWxsc2NyZWVuRGVsZWdhdGU6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfZnVsbHNjcmVl
bkRlbGVnYXRlXSk6CisgICAgICAgICgtW1dLV2ViVmlldyBfaXNJbkZ1bGxzY3JlZW5dKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL0NvY29hL19XS0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVlbkNsaWVudC5oOiBBZGRlZC4KKyAgICAg
ICAgKFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudDo6fkZ1bGxzY3JlZW5DbGllbnQpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9GdWxsc2NyZWVuQ2xpZW50Lm1tOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudDo6RnVsbHNjcmVlbkNsaWVudCk6CisgICAgICAgIChX
ZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ6OmRlbGVnYXRlKToKKyAgICAgICAgKFdlYktpdDo6RnVs
bHNjcmVlbkNsaWVudDo6c2V0RGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpGdWxsc2NyZWVu
Q2xpZW50Ojp3aWxsRW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6RnVsbHNjcmVl
bkNsaWVudDo6ZGlkRW50ZXJGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6RnVsbHNjcmVl
bkNsaWVudDo6d2lsbEV4aXRGdWxsc2NyZWVuKToKKyAgICAgICAgKFdlYktpdDo6RnVsbHNjcmVl
bkNsaWVudDo6ZGlkRXhpdEZ1bGxzY3JlZW4pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGdWxs
U2NyZWVuTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnVsbFNjcmVlbk1h
bmFnZXJQcm94eTo6d2lsbEVudGVyRnVsbFNjcmVlbik6CisgICAgICAgIChXZWJLaXQ6OldlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZEVudGVyRnVsbFNjcmVlbik6CisgICAgICAgIChXZWJL
aXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OndpbGxFeGl0RnVsbFNjcmVlbik6CisgICAg
ICAgIChXZWJLaXQ6OldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk6OmRpZEV4aXRGdWxsU2NyZWVu
KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUGFnZVByb3h5OjpXZWJQYWdlUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdl
UHJveHk6OnNldEZ1bGxzY3JlZW5DbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmZ1bGxTY3JlZW5NYW5hZ2VyKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UGFnZVByb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZnVsbHNjcmVlbkNs
aWVudCk6CisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAy
MDE2LTEwLTE5ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW1dL
Ml0gRXhwb3NlIHN1Z2dlc3RlZCBmaWxlbmFtZSB2aWEgV0tCdW5kbGVIaXRUZXN0UmVzdWx0IEFQ
SQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElGdWxsc2NyZWVu
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0FQSUZ1bGxzY3JlZW5DbGll
bnQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5jMzQ4YjhiZmViMGQ5NzEwODRlYzM3NmMyMjZkZTNjOTc5NWI4MGM4
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9BUElGdWxs
c2NyZWVuQ2xpZW50LmgKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCituYW1lc3BhY2UgV2ViS2l0IHsKK2NsYXNzIFdlYlBhZ2VQcm94eTsKK30KKworbmFtZXNw
YWNlIEFQSSB7CisKK2NsYXNzIEZ1bGxzY3JlZW5DbGllbnQgeworcHVibGljOgorICAgIHZpcnR1
YWwgfkZ1bGxzY3JlZW5DbGllbnQoKSB7IH0KKworICAgIHZpcnR1YWwgdm9pZCB3aWxsRW50ZXJG
dWxsc2NyZWVuKFdlYktpdDo6V2ViUGFnZVByb3h5KikgeyB9CisgICAgdmlydHVhbCB2b2lkIGRp
ZEVudGVyRnVsbHNjcmVlbihXZWJLaXQ6OldlYlBhZ2VQcm94eSopIHsgfQorICAgIHZpcnR1YWwg
dm9pZCB3aWxsRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0KKyAgICB2
aXJ0dWFsIHZvaWQgZGlkRXhpdEZ1bGxzY3JlZW4oV2ViS2l0OjpXZWJQYWdlUHJveHkqKSB7IH0K
K307CisKK30gLy8gbmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCBlYmRiZGQ1Yjk1MWY0MjFhMTk2NWU5MzYzNmY4
NTUxZTcyOGQ2MjVkLi5hOTJlNGEwM2FhYmJkNzA5ZDRkZTVkMzZmOWZmZTM0MmI1ZjRmOTkwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQpA
QCAtMzQsNiArMzQsNyBAQAogI2ltcG9ydCAiQ29tcGxldGlvbkhhbmRsZXJDYWxsQ2hlY2tlci5o
IgogI2ltcG9ydCAiRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKICNpbXBvcnQgIkZpbmRDbGll
bnQuaCIKKyNpbXBvcnQgIkZ1bGxzY3JlZW5DbGllbnQuaCIKICNpbXBvcnQgIkxlZ2FjeVNlc3Np
b25TdGF0ZUNvZGluZy5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTmF2aWdhdGlv
blN0YXRlLmgiCkBAIC02Nyw2ICs2OCw3IEBACiAjaW1wb3J0ICJXZWJCYWNrRm9yd2FyZExpc3Qu
aCIKICNpbXBvcnQgIldlYkNlcnRpZmljYXRlSW5mby5oIgogI2ltcG9ydCAiV2ViRm9ybVN1Ym1p
c3Npb25MaXN0ZW5lclByb3h5LmgiCisjaW1wb3J0ICJXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5
LmgiCiAjaW1wb3J0ICJXZWJLaXRTeXN0ZW1JbnRlcmZhY2UuaCIKICNpbXBvcnQgIldlYlBhZ2VH
cm91cC5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCkBAIC03Nyw2ICs3OSw3IEBACiAjaW1w
b3J0ICJfV0tEaWFnbm9zdGljTG9nZ2luZ0RlbGVnYXRlLmgiCiAjaW1wb3J0ICJfV0tGaW5kRGVs
ZWdhdGUuaCIKICNpbXBvcnQgIl9XS0ZyYW1lSGFuZGxlSW50ZXJuYWwuaCIKKyNpbXBvcnQgIl9X
S0Z1bGxzY3JlZW5EZWxlZ2F0ZS5oIgogI2ltcG9ydCAiX1dLSGl0VGVzdFJlc3VsdEludGVybmFs
LmgiCiAjaW1wb3J0ICJfV0tJbnB1dERlbGVnYXRlLmgiCiAjaW1wb3J0ICJfV0tSZW1vdGVPYmpl
Y3RSZWdpc3RyeUludGVybmFsLmgiCkBAIC01NTAsNiArNTUzLDEwIEBAIHN0YXRpYyB1aW50MzJf
dCBjb252ZXJ0U3lzdGVtTGF5b3V0RGlyZWN0aW9uKE5TVXNlckludGVyZmFjZUxheW91dERpcmVj
dGlvbiBkaXJlCiAgICAgX3BhZ2UtPnNldEZpbmRDbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxXZWJL
aXQ6OkZpbmRDbGllbnQ+KHNlbGYpKTsKICAgICBfcGFnZS0+c2V0RGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQoc3RkOjptYWtlX3VuaXF1ZTxXZWJLaXQ6OkRpYWdub3N0aWNMb2dnaW5nQ2xpZW50Pihz
ZWxmKSk7CiAKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgX3BhZ2UtPnNldEZ1bGxz
Y3JlZW5DbGllbnQoc3RkOjptYWtlX3VuaXF1ZTxXZWJLaXQ6OkZ1bGxzY3JlZW5DbGllbnQ+KHNl
bGYpKTsKKyNlbmRpZgorCiAgICAgcGFnZVRvVmlld01hcCgpLmFkZChfcGFnZS5nZXQoKSwgc2Vs
Zik7CiB9CiAKQEAgLTM5MjIsNiArMzkyOSwzMSBAQCBzdGF0aWMgaW5saW5lIFdlYktpdDo6Rmlu
ZE9wdGlvbnMgdG9GaW5kT3B0aW9ucyhfV0tGaW5kT3B0aW9ucyB3a0ZpbmRPcHRpb25zKQogICAg
IHJldHVybiBfcGFnZS0+cHJvY2VzcygpLnJlc3BvbnNpdmVuZXNzVGltZXIoKS5pc1Jlc3BvbnNp
dmUoKTsKIH0KIAorLSAodm9pZClfc2V0RnVsbHNjcmVlbkRlbGVnYXRlOihpZDxfV0tGdWxsc2Ny
ZWVuRGVsZWdhdGU+KWRlbGVnYXRlCit7CisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAg
IHN0YXRpY19jYXN0PFdlYktpdDo6RnVsbHNjcmVlbkNsaWVudCY+KF9wYWdlLT5mdWxsc2NyZWVu
Q2xpZW50KCkpLnNldERlbGVnYXRlKGRlbGVnYXRlKTsKKyNlbmRpZgorfQorCistIChpZDxfV0tG
dWxsc2NyZWVuRGVsZWdhdGU+KV9mdWxsc2NyZWVuRGVsZWdhdGUKK3sKKyNpZiBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpCisgICAgcmV0dXJuIFtzdGF0aWNfY2FzdDxXZWJLaXQ6OkZ1bGxzY3JlZW5D
bGllbnQmPihfcGFnZS0+ZnVsbHNjcmVlbkNsaWVudCgpKS5kZWxlZ2F0ZSgpLmxlYWtSZWYoKSBh
dXRvcmVsZWFzZV07CisjZWxzZQorICAgIHJldHVybiBudWxscHRyOworI2VuZGlmCit9CisKKy0g
KEJPT0wpX2lzSW5GdWxsc2NyZWVuCit7CisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAg
IHJldHVybiBfcGFnZS0+ZnVsbFNjcmVlbk1hbmFnZXIoKSAmJiBfcGFnZS0+ZnVsbFNjcmVlbk1h
bmFnZXIoKS0+aXNGdWxsU2NyZWVuKCk7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRp
ZgorfQorCiAjcHJhZ21hIG1hcmsgaU9TLXNwZWNpZmljIG1ldGhvZHMKIAogI2lmIFBMQVRGT1JN
KElPUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdQcml2YXRlLmgKaW5kZXggYjAzYjkxY2VkM2JjOWQ5OTM4MDA3ZjRlNTQxYmQ3MmU3NDli
YzI4My4uZDYwMjQxMTAwNGFkMDA3NjRmNWU0NzFmNWViNmNmZDg5YjgyMjZhNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRl
LmgKQEAgLTYzLDYgKzYzLDcgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50ZWdlciwgX1dLSW1tZWRp
YXRlQWN0aW9uVHlwZSkgewogQHByb3RvY29sIF9XS0RpYWdub3N0aWNMb2dnaW5nRGVsZWdhdGU7
CiBAcHJvdG9jb2wgX1dLRmluZERlbGVnYXRlOwogQHByb3RvY29sIF9XS0lucHV0RGVsZWdhdGU7
CitAcHJvdG9jb2wgX1dLRnVsbHNjcmVlbkRlbGVnYXRlOwogCiBAaW50ZXJmYWNlIFdLV2ViVmll
dyAoV0tQcml2YXRlKQogCkBAIC0yNDQsNiArMjQ1LDkgQEAgdHlwZWRlZiBOU19FTlVNKE5TSW50
ZWdlciwgX1dLSW1tZWRpYXRlQWN0aW9uVHlwZSkgewogCiBAcHJvcGVydHkgKG5vbmF0b21pYywg
cmVhZG9ubHkpIEJPT0wgX3dlYlByb2Nlc3NJc1Jlc3BvbnNpdmUgV0tfQVBJX0FWQUlMQUJMRSht
YWNvc3goMTAuMTIpLCBpb3MoMTAuMCkpOwogCitAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRGdWxsc2NyZWVuRGVsZWdhdGU6KSBpZDxfV0tGdWxsc2NyZWVuRGVsZWdhdGU+IF9mdWxs
c2NyZWVuRGVsZWdhdGUgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMykpOworQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5KSBCT09MIF9pc0luRnVsbHNjcmVlbiBXS19BUElfQVZBSUxB
QkxFKG1hY29zKDEwLjEzKSk7CisKIEBlbmQKIAogI2lmICFUQVJHRVRfT1NfSVBIT05FCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0Z1bGxzY3JlZW5E
ZWxlZ2F0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tGdWxsc2Ny
ZWVuRGVsZWdhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NjQ2YzUxNTM1ZjdiYjVhY2JlYjZhNTRlNDM4NWQx
YTgwM2ExZmY5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9fV0tGdWxsc2NyZWVuRGVsZWdhdGUuaApAQCAtMCwwICsxLDQxIEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2ltcG9ydCA8V2ViS2l0L1dLRm91bmRhdGlvbi5oPgorCisjaWYgV0tfQVBJX0VOQUJM
RUQKKworQHByb3RvY29sIF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZSA8TlNPYmplY3Q+CisKK0BvcHRp
b25hbAorCistICh2b2lkKV93ZWJWaWV3V2lsbEVudGVyRnVsbHNjcmVlbjooV0tXZWJWaWV3ICop
d2ViVmlldzsKKy0gKHZvaWQpX3dlYlZpZXdEaWRFbnRlckZ1bGxzY3JlZW46KFdLV2ViVmlldyAq
KXdlYlZpZXc7CistICh2b2lkKV93ZWJWaWV3V2lsbEV4aXRGdWxsc2NyZWVuOihXS1dlYlZpZXcg
Kil3ZWJWaWV3OworLSAodm9pZClfd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuOihXS1dlYlZpZXcg
Kil3ZWJWaWV3OworCitAZW5kCisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL0Z1bGxzY3JlZW5DbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9Db2NvYS9GdWxsc2NyZWVuQ2xpZW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmE3MzJmMDgyMWU4MThj
NGEyNDc0ZTg4NmFlYTcxODQ1N2M3NGM0YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9GdWxsc2NyZWVuQ2xpZW50LmgKQEAgLTAsMCArMSw2OCBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW1wb3J0ICJXS0ZvdW5kYXRpb24uaCIKKwor
I2lmIFdLX0FQSV9FTkFCTEVECisKKyNpbXBvcnQgIkFQSUZ1bGxzY3JlZW5DbGllbnQuaCIKKyNp
bXBvcnQgIldlYWtPYmpDUHRyLmgiCisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK0BjbGFz
cyBXS1dlYlZpZXc7CitAcHJvdG9jb2wgX1dLRnVsbHNjcmVlbkRlbGVnYXRlOworCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworY2xhc3MgRnVsbHNjcmVlbkNsaWVudCA6IHB1YmxpYyBBUEk6OkZ1bGxz
Y3JlZW5DbGllbnQgeworcHVibGljOgorICAgIGV4cGxpY2l0IEZ1bGxzY3JlZW5DbGllbnQoV0tX
ZWJWaWV3ICopOworICAgIH5GdWxsc2NyZWVuQ2xpZW50KCkgeyB9OworCisgICAgUmV0YWluUHRy
PGlkPF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4+IGRlbGVnYXRlKCk7CisgICAgdm9pZCBzZXREZWxl
Z2F0ZShpZDxfV0tGdWxsc2NyZWVuRGVsZWdhdGU+KTsKKworICAgIHZvaWQgd2lsbEVudGVyRnVs
bHNjcmVlbihXZWJQYWdlUHJveHkqKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEVudGVyRnVsbHNj
cmVlbihXZWJQYWdlUHJveHkqKSBvdmVycmlkZTsKKyAgICB2b2lkIHdpbGxFeGl0RnVsbHNjcmVl
bihXZWJQYWdlUHJveHkqKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpZEV4aXRGdWxsc2NyZWVuKFdl
YlBhZ2VQcm94eSopIG92ZXJyaWRlOworCitwcml2YXRlOgorICAgIFdLV2ViVmlldyAqbV93ZWJW
aWV3OworICAgIFdlYWtPYmpDUHRyPGlkIDxfV0tGdWxsc2NyZWVuRGVsZWdhdGU+ID4gbV9kZWxl
Z2F0ZTsKKworICAgIHN0cnVjdCB7CisgICAgICAgIGJvb2wgd2ViVmlld1dpbGxFbnRlckZ1bGxz
Y3JlZW4gOiAxOworICAgICAgICBib29sIHdlYlZpZXdEaWRFbnRlckZ1bGxzY3JlZW4gOiAxOwor
ICAgICAgICBib29sIHdlYlZpZXdXaWxsRXhpdEZ1bGxzY3JlZW4gOiAxOworICAgICAgICBib29s
IHdlYlZpZXdEaWRFeGl0RnVsbHNjcmVlbiA6IDE7CisgICAgfSBtX2RlbGVnYXRlTWV0aG9kczsK
K307CisgICAgCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFdLX0FQSV9FTkFC
TEVECmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvRnVsbHNjcmVl
bkNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9GdWxsc2NyZWVuQ2xp
ZW50Lm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmMwNmM5NjU2ZWJmMmY4YzI0ZGU2Zjk1NGUyYWYxZTM5YjVhYTFm
Y2MKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvRnVs
bHNjcmVlbkNsaWVudC5tbQpAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIAorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQg
ImNvbmZpZy5oIgorI2ltcG9ydCAiRnVsbHNjcmVlbkNsaWVudC5oIgorCisjaWYgV0tfQVBJX0VO
QUJMRUQKKworI2ltcG9ydCAiX1dLRnVsbHNjcmVlbkRlbGVnYXRlLmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitGdWxsc2NyZWVuQ2xpZW50OjpGdWxsc2NyZWVuQ2xpZW50KFdLV2ViVmlldyAq
d2ViVmlldykKKyAgICA6IG1fd2ViVmlldyh3ZWJWaWV3KQoreworfQorCitSZXRhaW5QdHI8aWQg
PF9XS0Z1bGxzY3JlZW5EZWxlZ2F0ZT4+IEZ1bGxzY3JlZW5DbGllbnQ6OmRlbGVnYXRlKCkKK3sK
KyAgICByZXR1cm4gbV9kZWxlZ2F0ZS5nZXQoKTsKK30KKwordm9pZCBGdWxsc2NyZWVuQ2xpZW50
OjpzZXREZWxlZ2F0ZShpZCA8X1dLRnVsbHNjcmVlbkRlbGVnYXRlPiBkZWxlZ2F0ZSkKK3sKKyAg
ICBtX2RlbGVnYXRlID0gZGVsZWdhdGU7CisKKyAgICBtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3
V2lsbEVudGVyRnVsbHNjcmVlbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF93ZWJWaWV3V2lsbEVudGVyRnVsbHNjcmVlbjopXTsKKyAgICBtX2RlbGVnYXRlTWV0aG9k
cy53ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVuID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX3dlYlZpZXdEaWRFbnRlckZ1bGxzY3JlZW46KV07CisgICAgbV9kZWxlZ2F0
ZU1ldGhvZHMud2ViVmlld1dpbGxFeGl0RnVsbHNjcmVlbiA9IFtkZWxlZ2F0ZSByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3V2lsbEV4aXRGdWxsc2NyZWVuOildOworICAgIG1f
ZGVsZWdhdGVNZXRob2RzLndlYlZpZXdEaWRFeGl0RnVsbHNjcmVlbiA9IFtkZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW46KV07Cit9
CisKK3ZvaWQgRnVsbHNjcmVlbkNsaWVudDo6d2lsbEVudGVyRnVsbHNjcmVlbihXZWJQYWdlUHJv
eHkqKQoreworICAgIGlmIChtX2RlbGVnYXRlTWV0aG9kcy53ZWJWaWV3V2lsbEVudGVyRnVsbHNj
cmVlbikKKyAgICAgICAgW21fZGVsZWdhdGUuZ2V0KCkgX3dlYlZpZXdXaWxsRW50ZXJGdWxsc2Ny
ZWVuOm1fd2ViVmlld107Cit9CisKK3ZvaWQgRnVsbHNjcmVlbkNsaWVudDo6ZGlkRW50ZXJGdWxs
c2NyZWVuKFdlYlBhZ2VQcm94eSopCit7CisgICAgaWYgKG1fZGVsZWdhdGVNZXRob2RzLndlYlZp
ZXdEaWRFbnRlckZ1bGxzY3JlZW4pCisgICAgICAgIFttX2RlbGVnYXRlLmdldCgpIF93ZWJWaWV3
RGlkRW50ZXJGdWxsc2NyZWVuOm1fd2ViVmlld107Cit9CisKK3ZvaWQgRnVsbHNjcmVlbkNsaWVu
dDo6d2lsbEV4aXRGdWxsc2NyZWVuKFdlYlBhZ2VQcm94eSopCit7CisgICAgaWYgKG1fZGVsZWdh
dGVNZXRob2RzLndlYlZpZXdXaWxsRXhpdEZ1bGxzY3JlZW4pCisgICAgICAgIFttX2RlbGVnYXRl
LmdldCgpIF93ZWJWaWV3V2lsbEV4aXRGdWxsc2NyZWVuOm1fd2ViVmlld107Cit9CisKK3ZvaWQg
RnVsbHNjcmVlbkNsaWVudDo6ZGlkRXhpdEZ1bGxzY3JlZW4oV2ViUGFnZVByb3h5KikKK3sKKyAg
ICBpZiAobV9kZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuKQorICAgICAg
ICBbbV9kZWxlZ2F0ZS5nZXQoKSBfd2ViVmlld0RpZEV4aXRGdWxsc2NyZWVuOm1fd2ViVmlld107
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJGdWxsU2NyZWVuTWFuYWdl
clByb3h5LmNwcAppbmRleCAxYTFmOTgxYjE3ZWJiZDBiYzA2MzZkOGU4OTA2ODE3YmEyYzdjMTkx
Li4zNTJkNmEwNzU4ZThkN2MxYjc0NmI3MDFkMzdjM2FhZDk0NTczNDg2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkuY3Bw
CkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCiAKKyNpbmNs
dWRlICJBUElGdWxsc2NyZWVuQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViRnVsbFNjcmVlbk1hbmFn
ZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHlNZXNzYWdl
cy5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgpAQCAtNTYsMjEgKzU3LDI1IEBAIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHk6On5XZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5KCkKIAogdm9p
ZCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5Ojp3aWxsRW50ZXJGdWxsU2NyZWVuKCkKIHsKKyAg
ICBtX3BhZ2UtPmZ1bGxzY3JlZW5DbGllbnQoKS53aWxsRW50ZXJGdWxsc2NyZWVuKG1fcGFnZSk7
CiAgICAgbV9wYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFn
ZXI6OldpbGxFbnRlckZ1bGxTY3JlZW4oKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAKIHZvaWQg
V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTo6ZGlkRW50ZXJGdWxsU2NyZWVuKCkKIHsKKyAgICBt
X3BhZ2UtPmZ1bGxzY3JlZW5DbGllbnQoKS5kaWRFbnRlckZ1bGxzY3JlZW4obV9wYWdlKTsKICAg
ICBtX3BhZ2UtPnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6
RGlkRW50ZXJGdWxsU2NyZWVuKCksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCiB2b2lkIFdlYkZ1
bGxTY3JlZW5NYW5hZ2VyUHJveHk6OndpbGxFeGl0RnVsbFNjcmVlbigpCiB7CisgICAgbV9wYWdl
LT5mdWxsc2NyZWVuQ2xpZW50KCkud2lsbEV4aXRGdWxsc2NyZWVuKG1fcGFnZSk7CiAgICAgbV9w
YWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViRnVsbFNjcmVlbk1hbmFnZXI6OldpbGxF
eGl0RnVsbFNjcmVlbigpLCBtX3BhZ2UtPnBhZ2VJRCgpKTsKIH0KIAogdm9pZCBXZWJGdWxsU2Ny
ZWVuTWFuYWdlclByb3h5OjpkaWRFeGl0RnVsbFNjcmVlbigpCiB7CisgICAgbV9wYWdlLT5mdWxs
c2NyZWVuQ2xpZW50KCkuZGlkRXhpdEZ1bGxzY3JlZW4obV9wYWdlKTsKICAgICBtX3BhZ2UtPnBy
b2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJGdWxsU2NyZWVuTWFuYWdlcjo6RGlkRXhpdEZ1bGxT
Y3JlZW4oKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggOWZlZTE4NWIwZmUyNDk2NTEyMTU0ZWUyZWIyZjk2ODk3
ZTMxYTc4Ni4uMmU0YWUzOThjZmU0M2VkYTAxYjA3OGJiMjMyODRiMDg4ZmZiZjU3MyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAgLTMzLDYgKzMzLDcgQEAK
ICNpbmNsdWRlICJBUElGaW5kTWF0Y2hlc0NsaWVudC5oIgogI2luY2x1ZGUgIkFQSUZvcm1DbGll
bnQuaCIKICNpbmNsdWRlICJBUElGcmFtZUluZm8uaCIKKyNpbmNsdWRlICJBUElGdWxsc2NyZWVu
Q2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJR2VvbWV0cnkuaCIKICNpbmNsdWRlICJBUElIaXN0b3J5
Q2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJSGl0VGVzdFJlc3VsdC5oIgpAQCAtMzQwLDYgKzM0MSw5
IEBAIFdlYlBhZ2VQcm94eTo6V2ViUGFnZVByb3h5KFBhZ2VDbGllbnQmIHBhZ2VDbGllbnQsIFdl
YlByb2Nlc3NQcm94eSYgcHJvY2VzcywgdWluCiAgICAgLCBtX21haW5GcmFtZShudWxscHRyKQog
ICAgICwgbV91c2VyQWdlbnQoc3RhbmRhcmRVc2VyQWdlbnQoKSkKICAgICAsIG1fdHJlYXRzU0hB
MUNlcnRpZmljYXRlc0FzSW5zZWN1cmUobV9jb25maWd1cmF0aW9uLT50cmVhdHNTSEExU2lnbmVk
Q2VydGlmaWNhdGVzQXNJbnNlY3VyZSgpKQorI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAg
ICAsIG1fZnVsbHNjcmVlbkNsaWVudChzdGQ6Om1ha2VfdW5pcXVlPEFQSTo6RnVsbHNjcmVlbkNs
aWVudD4oKSkKKyNlbmRpZgogI2lmIFBMQVRGT1JNKElPUykKICAgICAsIG1faGFzUmVjZWl2ZWRM
YXllclRyZWVUcmFuc2FjdGlvbkFmdGVyRGlkQ29tbWl0TG9hZCh0cnVlKQogICAgICwgbV9maXJz
dExheWVyVHJlZVRyYW5zYWN0aW9uSWRBZnRlckRpZENvbW1pdExvYWQoMCkKQEAgLTQyNjksNiAr
NDI3MywxMSBAQCBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5KiBXZWJQYWdlUHJveHk6OmZ1bGxT
Y3JlZW5NYW5hZ2VyKCkKIHsKICAgICByZXR1cm4gbV9mdWxsU2NyZWVuTWFuYWdlci5nZXQoKTsK
IH0KKwordm9pZCBXZWJQYWdlUHJveHk6OnNldEZ1bGxzY3JlZW5DbGllbnQoc3RkOjp1bmlxdWVf
cHRyPEFQSTo6RnVsbHNjcmVlbkNsaWVudD4gY2xpZW50KQoreworICAgIG1fZnVsbHNjcmVlbkNs
aWVudCA9IFdURk1vdmUoY2xpZW50KTsKK30KICNlbmRpZgogICAgIAogI2lmIChQTEFURk9STShJ
T1MpICYmIEhBVkUoQVZLSVQpKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJF
U0VOVEFUSU9OX01PREUpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmlu
ZGV4IDE3NmI5ZTA2NmY4MDIzNTVkYzY2MjkyOWU5MTI2YTVhODViOGE2NzIuLmE3NTIzMzE2NWM2
YzQ1Mjg3ZWYyODA1NDUyYWQ1Yzc5OTNjZmI1ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmgKQEAgLTEyNyw2ICsxMjcsNyBAQCBjbGFzcyBDb250ZXh0TWVudUNsaWVu
dDsKIGNsYXNzIEZpbmRDbGllbnQ7CiBjbGFzcyBGaW5kTWF0Y2hlc0NsaWVudDsKIGNsYXNzIEZv
cm1DbGllbnQ7CitjbGFzcyBGdWxsc2NyZWVuQ2xpZW50OwogY2xhc3MgSGlzdG9yeUNsaWVudDsK
IGNsYXNzIExvYWRlckNsaWVudDsKIGNsYXNzIE5hdmlnYXRpb247CkBAIC0zMjksNiArMzMwLDkg
QEAgcHVibGljOgogCiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQogICAgIFdlYkZ1bGxTY3Jl
ZW5NYW5hZ2VyUHJveHkqIGZ1bGxTY3JlZW5NYW5hZ2VyKCk7CisKKyAgICBBUEk6OkZ1bGxzY3Jl
ZW5DbGllbnQmIGZ1bGxzY3JlZW5DbGllbnQoKSBjb25zdCB7IHJldHVybiAqbV9mdWxsc2NyZWVu
Q2xpZW50OyB9CisgICAgdm9pZCBzZXRGdWxsc2NyZWVuQ2xpZW50KHN0ZDo6dW5pcXVlX3B0cjxB
UEk6OkZ1bGxzY3JlZW5DbGllbnQ+KTsKICNlbmRpZgogI2lmIChQTEFURk9STShJT1MpICYmIEhB
VkUoQVZLSVQpKSB8fCAoUExBVEZPUk0oTUFDKSAmJiBFTkFCTEUoVklERU9fUFJFU0VOVEFUSU9O
X01PREUpKQogICAgIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eSogcGxheWJhY2tTZXNz
aW9uTWFuYWdlcigpOwpAQCAtMTU5NCw2ICsxNTk4LDcgQEAgcHJpdmF0ZToKIAogI2lmIEVOQUJM
RShGVUxMU0NSRUVOX0FQSSkKICAgICBSZWZQdHI8V2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eT4g
bV9mdWxsU2NyZWVuTWFuYWdlcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8QVBJOjpGdWxsc2NyZWVu
Q2xpZW50PiBtX2Z1bGxzY3JlZW5DbGllbnQ7CiAjZW5kaWYKICNpZiAoUExBVEZPUk0oSU9TKSAm
JiBIQVZFKEFWS0lUKSkgfHwgKFBMQVRGT1JNKE1BQykgJiYgRU5BQkxFKFZJREVPX1BSRVNFTlRB
VElPTl9NT0RFKSkKICAgICBSZWZQdHI8V2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5PiBt
X3BsYXliYWNrU2Vzc2lvbk1hbmFnZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJL
aXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNjM2NjA3MTdmMGI5ZTE5MWJiMjYxOGU4ZThh
ZTc5MmZmMWZkNWI0Ny4uMTZiYTJkNTIyODA3ZmVmYzRkZTU0YjVjMGJhNjI0ZDM5OGExYzZjNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTc1NCw2ICsxNzU0LDEwIEBACiAJCUNENzNCQTQ3MTMxQUNDOUEwMEVFREVEMiAvKiBX
ZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENENzNCQTQ1MTMxQUNDODgwMEVFREVE
MiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsK
IAkJQ0Q3M0JBNEUxMzFBQ0RCNzAwRUVERUQyIC8qIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IENENzNCQTQ4MTMxQUNEOEUwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlck1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi87IH07CiAJCUNENzNCQTUzMTMxQjY0NUIwMEVFREVEMiAvKiBXZWJG
dWxsU2NyZWVuTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBDRDczQkEzNzEzMUEyOUZFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFn
ZXIuY3BwICovOyB9OworCQlDRDc4RTExNDFEQjdEN0VEMDAxNEEyREUgLyogRnVsbHNjcmVlbkNs
aWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENE
NzhFMTEyMURCN0Q3RUQwMDE0QTJERSAvKiBGdWxsc2NyZWVuQ2xpZW50Lm1tICovOyB9OworCQlD
RDc4RTExNTFEQjdEN0VEMDAxNEEyREUgLyogRnVsbHNjcmVlbkNsaWVudC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3OEUxMTMxREI3RDdFRDAwMTRB
MkRFIC8qIEZ1bGxzY3JlZW5DbGllbnQuaCAqLzsgfTsKKwkJQ0Q3OEUxMTcxREI3REMwQTAwMTRB
MkRFIC8qIEFQSUZ1bGxzY3JlZW5DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IENENzhFMTE2MURCN0RDMEEwMDE0QTJERSAvKiBBUElGdWxsc2Ny
ZWVuQ2xpZW50LmggKi87IH07CisJCUNENzhFMTE5MURCN0U1QUQwMDE0QTJERSAvKiBfV0tGdWxs
c2NyZWVuRGVsZWdhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IENENzhFMTE4MURCN0U1QUQwMDE0QTJERSAvKiBfV0tGdWxsc2NyZWVuRGVsZWdhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDREEw
NDFGNDFBQ0UyMTA1MDA0QTEzRUMgLyogQmFja0JvYXJkU2VydmljZXNTUEkuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQTA0MUYzMUFDRTIxMDUwMDRB
MTNFQyAvKiBCYWNrQm9hcmRTZXJ2aWNlc1NQSS5oICovOyB9OwogCQlDREEyOUExQTFDQkRCRjQx
MDA5MDFDQ0YgLyogV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEQTI5QTE4MUNCREJGNDEwMDkwMUNDRiAv
KiBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tICovOyB9OwogCQlDREEyOUExQjFDQkRCRjQx
MDA5MDFDQ0YgLyogV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RBMjlBMTkxQ0JEQkY0MTAwOTAxQ0NGIC8q
IFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaCAqLzsgfTsKQEAgLTM4OTEsNiArMzg5NSwxMCBA
QAogCQlDRDczQkE0ODEzMUFDRDhFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
RnVsbFNjcmVlbk1hbmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDRDczQkE0OTEzMUFDRDhFMDBFRURFRDIgLyogV2ViRnVsbFNjcmVlbk1hbmFn
ZXJNZXNzYWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGdWxsU2Ny
ZWVuTWFuYWdlck1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNENzNC
QTRBMTMxQUNEOEYwMEVFREVEMiAvKiBXZWJGdWxsU2NyZWVuTWFuYWdlclByb3h5TWVzc2FnZXMu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRnVsbFNjcmVlbk1hbmFnZXJQ
cm94eU1lc3NhZ2VzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENzhFMTEyMURC
N0Q3RUQwMDE0QTJERSAvKiBGdWxsc2NyZWVuQ2xpZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gRnVsbHNjcmVlbkNsaWVudC5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJQ0Q3OEUxMTMxREI3RDdFRDAwMTRBMkRFIC8qIEZ1bGxzY3JlZW5DbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRnVsbHNjcmVlbkNsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDRDc4RTExNjFEQjdEQzBBMDAxNEEyREUg
LyogQVBJRnVsbHNjcmVlbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBBUElGdWxsc2NyZWVuQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNE
NzhFMTE4MURCN0U1QUQwMDE0QTJERSAvKiBfV0tGdWxsc2NyZWVuRGVsZWdhdGUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLRnVsbHNjcmVlbkRlbGVnYXRlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQTA0MUYzMUFDRTIxMDUwMDRBMTNFQyAvKiBCYWNr
Qm9hcmRTZXJ2aWNlc1NQSS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBCYWNr
Qm9hcmRTZXJ2aWNlc1NQSS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDREEyOUEx
ODFDQkRCRjQxMDA5MDFDQ0YgLyogV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFn
ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUNEQTI5QTE5MUNCREJGNDEwMDkw
MUNDRiAvKiBXZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTQ3OTIsNiArNDgwMCw4IEBACiAJCQkJQTFERjYzMTAxOEUwQjdDODAw
M0EzRTJBIC8qIERvd25sb2FkQ2xpZW50Lm1tICovLAogCQkJCTAwQjk2NjE4MThFMjVBRTEwMENF
MUY4OCAvKiBGaW5kQ2xpZW50LmggKi8sCiAJCQkJMDBCOTY2MTcxOEUyNUFFMTAwQ0UxRjg4IC8q
IEZpbmRDbGllbnQubW0gKi8sCisJCQkJQ0Q3OEUxMTIxREI3RDdFRDAwMTRBMkRFIC8qIEZ1bGxz
Y3JlZW5DbGllbnQubW0gKi8sCisJCQkJQ0Q3OEUxMTMxREI3RDdFRDAwMTRBMkRFIC8qIEZ1bGxz
Y3JlZW5DbGllbnQuaCAqLywKIAkJCQkwRjBDMzY1OTE4QzA1NTU4MDBGNjA3RDcgLyogTGF5ZXJS
ZXByZXNlbnRhdGlvbi5oICovLAogCQkJCTFBQkMzREY0MTg5OUU0MzcwMDRGMDYyNiAvKiBOYXZp
Z2F0aW9uU3RhdGUuaCAqLywKIAkJCQkxQUJDM0RGMzE4OTlFNDM3MDA0RjA2MjYgLyogTmF2aWdh
dGlvblN0YXRlLm1tICovLApAQCAtNTE3Myw2ICs1MTgzLDcgQEAKIAkJCQkyREVBQzVDRTFBQzM2
OEJCMDBBMTk1RDggLyogX1dLRmluZE9wdGlvbnMuaCAqLywKIAkJCQkyRTdBOTQ0OTFCQkQ5NUM2
MDA5NDU1NDcgLyogX1dLRm9jdXNlZEVsZW1lbnRJbmZvLmggKi8sCiAJCQkJMzdBNjRFNTYxOEYz
OEY0NjAwRUIzMEYxIC8qIF9XS0Zvcm1JbnB1dFNlc3Npb24uaCAqLywKKwkJCQlDRDc4RTExODFE
QjdFNUFEMDAxNEEyREUgLyogX1dLRnVsbHNjcmVlbkRlbGVnYXRlLmggKi8sCiAJCQkJMzdBNjRF
NTQxOEYzOEUzQzAwRUIzMEYxIC8qIF9XS0lucHV0RGVsZWdhdGUuaCAqLywKIAkJCQkyRDc5MEE5
QzFBRDcwNTBEMDBBQjkwQjMgLyogX1dLTGF5b3V0TW9kZS5oICovLAogCQkJCTkzMjM2MTFEMUIw
MTVEQTgwMEZBOTIzMiAvKiBfV0tPdmVybGF5U2Nyb2xsYmFyU3R5bGUuaCAqLywKQEAgLTYyMzEs
NiArNjI0Miw3IEBACiAJCQkJMzdFMjVENkQxOEZERTVENjAwNUQzQTAwIC8qIEFQSUZvcm1DbGll
bnQuaCAqLywKIAkJCQkyREY5RUVFMzFBNzgxRkI0MDBCNkNGQkUgLyogQVBJRnJhbWVJbmZvLmNw
cCAqLywKIAkJCQkyREY5RUVFNDFBNzgxRkI0MDBCNkNGQkUgLyogQVBJRnJhbWVJbmZvLmggKi8s
CisJCQkJQ0Q3OEUxMTYxREI3REMwQTAwMTRBMkRFIC8qIEFQSUZ1bGxzY3JlZW5DbGllbnQuaCAq
LywKIAkJCQkyREFCQTc3NTFBODJCNDIxMDBFRjBGMUEgLyogQVBJSGlzdG9yeUNsaWVudC5oICov
LAogCQkJCTkzQTg4QjQyMUJDODgyOEMwMEFCQTVDMiAvKiBBUElIaXRUZXN0UmVzdWx0LmNwcCAq
LywKIAkJCQk5M0E4OEI0MzFCQzg4MjhDMDBBQkE1QzIgLyogQVBJSGl0VGVzdFJlc3VsdC5oICov
LApAQCAtNzUwNSw2ICs3NTE3LDcgQEAKIAkJCQkxQUZCNEM3MjFBREYxNTVEMDBCMzMzMzkgLyog
X1dLV2Vic2l0ZURhdGFTdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0QTkzQjcxQUVCMDhF
QTAwMTUwRTlDIC8qIF9XS1dlYnNpdGVEYXRhU3RvcmVJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQTExNURDNzIxOTFEODJEQTAwREE4MDcyIC8qIF9XS1dlYlZpZXdQcmludEZvcm1hdHRl
ci5oIGluIEhlYWRlcnMgKi8sCisJCQkJQ0Q3OEUxMTkxREI3RTVBRDAwMTRBMkRFIC8qIF9XS0Z1
bGxzY3JlZW5EZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTE5REQzQzAxRDA3RDE2ODAw
QUM4MjNCIC8qIF9XS1dlYlZpZXdQcmludEZvcm1hdHRlckludGVybmFsLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBMTgyRDVCNTFCRTZCRDI1MDA4N0E3Q0MgLyogQWNjZXNzaWJpbGl0eUlPUy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQTdENzkyRDgxNzY3Q0NBMzAwODgxQ0JFIC8qIEFjdGl2aXR5QXNz
ZXJ0aW9uLmggaW4gSGVhZGVycyAqLywKQEAgLTgyNTAsNiArODI2Myw3IEBACiAJCQkJODM3MkRC
MjUxQTY3NEM4RjAwQzY5N0M1IC8qIFdLUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQUI4QTFGNDE4NDAwQjhGMDBFOUFFNjkgLyogV0tQYWdlRmluZENs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFCOEExRjYxODQwMEI5RDAwRTlBRTY5IC8qIFdL
UGFnZUZpbmRNYXRjaGVzQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDc4RTExNTFEQjdE
N0VEMDAxNEEyREUgLyogRnVsbHNjcmVlbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFC
OEExRjAxODQwMEIwMDAwRTlBRTY5IC8qIFdLUGFnZUZvcm1DbGllbnQuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDN0I2MzM3MTJBNDVBQkEwMEQxNzRBNCAvKiBXS1BhZ2VHcm91cC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMkQ5RUEzMEQxQTk2Q0I1OTAwMkQyODA3IC8qIFdLUGFnZUluamVjdGVkQnVu
ZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTgyODEsNiArODI5NSw3IEBACiAJCQkJOTM5
MTA3NEYxQkY2QkM2NTAwOEMxN0FEIC8qIFdLUHJldmlld0VsZW1lbnRJbmZvSW50ZXJuYWwuaCBp
biBIZWFkZXJzICovLAogCQkJCTBGQ0I0RTY2MThCQkUzRDkwMDBGQ0ZDOSAvKiBXS1ByaW50aW5n
Vmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCQUFDRUIxNDUyMjVFMzAwNTNGODJGIC8qIFdL
UHJvY2Vzc0dyb3VwLmggaW4gSGVhZGVycyAqLywKKwkJCQlDRDc4RTExNzFEQjdEQzBBMDAxNEEy
REUgLyogQVBJRnVsbHNjcmVlbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNCQUFDRUQx
NDUyMjVFMzAwNTNGODJGIC8qIFdLUHJvY2Vzc0dyb3VwUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUExNTg0MUExODkwNDRGNTAwMTc2MTZDIC8qIFdLUHJvY2Vzc1Bvb2wuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTFBM0NDMTY5MTg5MDdFQjAwMDFFNkVEOCAvKiBXS1Byb2Nlc3NQb29sSW50
ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAtOTE4Nyw2ICs5MjAyLDcgQEAKIAkJCQlFNDQzNkVD
RDFBMEQwNDBCMDBFQUQyMDQgLyogTmV0d29ya0NhY2hlS2V5LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTgzMUVFQkJFMUJEODVDNDMwMEJCNjRDMyAvKiBOZXR3b3JrQ2FjaGVTcGVjdWxhdGl2ZUxv
YWQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJODMyQUUyNTMxQkUyRThDRDAwRkFBRTEwIC8qIE5l
dHdvcmtDYWNoZVNwZWN1bGF0aXZlTG9hZE1hbmFnZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
Q0Q3OEUxMTQxREI3RDdFRDAwMTRBMkRFIC8qIEZ1bGxzY3JlZW5DbGllbnQubW0gaW4gU291cmNl
cyAqLywKIAkJCQk4M0JEQ0NCOTFBQzVGREI2MDAzRjY0NDEgLyogTmV0d29ya0NhY2hlU3RhdGlz
dGljcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlFNDQzNkVEMDFBMEQwNDBCMDBFQUQyMDQgLyog
TmV0d29ya0NhY2hlU3RvcmFnZS5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk4MzEwNDI4QzFCRDZC
NjZGMDBBNzE1RTQgLyogTmV0d29ya0NhY2hlU3VicmVzb3VyY2VzRW50cnkuY3BwIGluIFNvdXJj
ZXMgKi8sCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5k
ZXggY2U3YzJhN2Q2OTdjMzc2MDZmNzE1NjVjMDk3YmUyZGRhY2Q1YzUxZC4uNWM0M2UyOTRmNDg1
MTQ2ODcxN2RmOTQ2MDI0ZmU1ZWFjYzVkMGQzYiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9n
CisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDIyIEBACiAyMDE2LTEwLTE5ICBKZXIg
Tm9ibGUgIDxqZXIubm9ibGVAYXBwbGUuY29tPgogCisgICAgICAgIEFkZCBXS1dlYlZpZXcgZnVs
bHNjcmVlbiBkZWxlZ2F0ZSBTUEkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE2MzY3NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgIEFkZCBhIG5ldyBBUEkgdGVzdCB3aGljaCB2ZXJpZmllcyB0aGF0IHRoZSBm
dWxsc2NyZWVuIGRlbGVnYXRlIHJlY2VpdmVzIG5vdGlmaWNhdGlvbnMuCisKKyAgICAgICAgKiBU
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJDb2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUubW06Cisg
ICAgICAgICgtW0Z1bGxzY3JlZW5EZWxlZ2F0ZU1lc3NhZ2VIYW5kbGVyIHVzZXJDb250ZW50Q29u
dHJvbGxlcjpkaWRSZWNlaXZlU2NyaXB0TWVzc2FnZTpdKToKKyAgICAgICAgKC1bRnVsbHNjcmVl
bkRlbGVnYXRlTWVzc2FnZUhhbmRsZXIgX3dlYlZpZXdXaWxsRW50ZXJGdWxsc2NyZWVuOl0pOgor
ICAgICAgICAoLVtGdWxsc2NyZWVuRGVsZWdhdGVNZXNzYWdlSGFuZGxlciBfd2ViVmlld0RpZEVu
dGVyRnVsbHNjcmVlbjpdKToKKyAgICAgICAgKC1bRnVsbHNjcmVlbkRlbGVnYXRlTWVzc2FnZUhh
bmRsZXIgX3dlYlZpZXdXaWxsRXhpdEZ1bGxzY3JlZW46XSk6CisgICAgICAgICgtW0Z1bGxzY3Jl
ZW5EZWxlZ2F0ZU1lc3NhZ2VIYW5kbGVyIF93ZWJWaWV3RGlkRXhpdEZ1bGxzY3JlZW46XSk6Cisg
ICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKworMjAxNi0xMC0xOSAgSmVyIE5vYmxlICA8
amVyLm5vYmxlQGFwcGxlLmNvbT4KKwogICAgICAgICBNb2RpZnkgdGVzdHJ1bm5lciB0byBtdXRl
IGF1ZGlvIGR1cmluZyB0ZXN0cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTYyNTgyCiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNGMyNmE1Zjg0
MzIyNjFmMzA5ZTUzMzBiMDhhNmY5MWY0YzUwZWE4My4uMzIzMzM5NzI5ZTdhMDZlYzE2NDZhNTZi
NTYyNTBlMmJkNTQ3NjMyMSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0V2Vi
S2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTQ3MSw2ICs0NzEs
OCBAQAogCQlDNUUxQUZGRTE2QjIyMUYxMDA2Q0MxRjIgLyogZXhlY0NvcHkuaHRtbCBpbiBDb3B5
IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNUUxQUZGRDE2
QjIyMTc5MDA2Q0MxRjIgLyogZXhlY0NvcHkuaHRtbCAqLzsgfTsKIAkJQ0Q1OUY1MzQxOUU5MTEw
RDAwQ0YxODM1IC8qIGZpbGUtd2l0aC1tc2UuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDU5RjUzMjE5RTkxMEFBMDBDRjE4MzUgLyog
ZmlsZS13aXRoLW1zZS5odG1sICovOyB9OwogCQlDRDU5RjUzNTE5RTkxMTBEMDBDRjE4MzUgLyog
dGVzdC1tc2UubXA0IGluIENvcHkgUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IENENTlGNTMzMTlFOTEwQkMwMENGMTgzNSAvKiB0ZXN0LW1zZS5tcDQgKi87IH07
CisJCUNENzhFMTFEMURCN0VBNjYwMDE0QTJERSAvKiBGdWxsc2NyZWVuRGVsZWdhdGUubW0gaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDRDc4RTExQTFEQjdF
QTM2MDAxNEEyREUgLyogRnVsbHNjcmVlbkRlbGVnYXRlLm1tICovOyB9OworCQlDRDc4RTExRTFE
QjdFRTJBMDAxNEEyREUgLyogRnVsbHNjcmVlbkRlbGVnYXRlLmh0bWwgaW4gQ29weSBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0Q3OEUxMUIxREI3RUEzNjAw
MTRBMkRFIC8qIEZ1bGxzY3JlZW5EZWxlZ2F0ZS5odG1sICovOyB9OwogCQlDRDlFMjkyRTFDOTBD
MzNGMDAwQkI4MDAgLyogYXVkaW8tb25seS5odG1sIGluIENvcHkgUmVzb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IENEOUUyOTJEMUM5MEMxQkEwMDBCQjgwMCAvKiBh
dWRpby1vbmx5Lmh0bWwgKi87IH07CiAJCUNEQkZDQzQ1MUE5RkY0NTMwMEE3QjY5MSAvKiBGdWxs
c2NyZWVuWm9vbUluaXRpYWxGcmFtZS5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IENEQkZDQzQzMUE5RkY0NDgwMEE3QjY5MSAvKiBGdWxsc2NyZWVuWm9v
bUluaXRpYWxGcmFtZS5tbSAqLzsgfTsKIAkJQ0RCRkNDNDYxQTlGRjQ5RTAwQTdCNjkxIC8qIEZ1
bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQ0RCRkNDNDIxQTlGRjQ0ODAwQTdCNjkxIC8qIEZ1
bGxzY3JlZW5ab29tSW5pdGlhbEZyYW1lLmh0bWwgKi87IH07CkBAIC01NjQsNiArNTY2LDcgQEAK
IAkJCWZpbGVzID0gKAogCQkJCUFENTdBQzIyMURBNzQ2NkUwMEZGMUJERSAvKiBtYW55LWlmcmFt
ZXMuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNDE1MDg2RDFEQTA0MEM1MDA0NEJF
OUIgLyogcGxheS1hdWRpby1vbi1jbGljay5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAorCQkJ
CUNENzhFMTFFMURCN0VFMkEwMDE0QTJERSAvKiBGdWxsc2NyZWVuRGVsZWdhdGUuaHRtbCBpbiBD
b3B5IFJlc291cmNlcyAqLywKIAkJCQlGNEYxMzc5MjFEOUI2ODNFMDAyQkVDNTcgLyogbGFyZ2Ut
dmlkZW8tdGVzdC1ub3ctcGxheWluZy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLAogCQkJCTgz
N0EzNUYxMUQ5QTFFN0QwMDY2M0M1NyAvKiBEb3dubG9hZFJlcXVlc3RCbG9iVVJMLmh0bWwgaW4g
Q29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMkU5ODk2MTUxRDhGMDkzODAwNzM5ODkyIC8qIHRleHQt
YW5kLXBhc3N3b3JkLWlucHV0cy5odG1sIGluIENvcHkgUmVzb3VyY2VzICovLApAQCAtMTE4Miw2
ICsxMTg1LDggQEAKIAkJQ0Q1OUY1MzIxOUU5MTBBQTAwQ0YxODM1IC8qIGZpbGUtd2l0aC1tc2Uu
aHRtbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9ICJmaWxlLXdpdGgtbXNlLmh0bWwiOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDU5RjUzMzE5RTkxMEJDMDBDRjE4MzUgLyog
dGVzdC1tc2UubXA0ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gZmlsZTsgcGF0aCA9ICJ0ZXN0LW1zZS5tcDQiOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDRDc3M0Y3MTFDNTA1N0RCMDAwMjI1N0MgLyogRmVhdHVyZURlZmluZXMueGNjb25m
aWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gRmVhdHVyZURlZmluZXMueGNjb25m
aWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUNENzhFMTFBMURCN0VBMzYwMDE0QTJE
RSAvKiBGdWxsc2NyZWVuRGVsZWdhdGUubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBGdWxsc2NyZWVuRGVsZWdhdGUubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUNENzhFMTFCMURCN0VBMzYwMDE0QTJERSAvKiBGdWxsc2NyZWVuRGVsZWdhdGUuaHRt
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQuaHRtbDsgcGF0aCA9IEZ1bGxzY3JlZW5EZWxlZ2F0ZS5odG1sOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDRDg5RDAzODFDNEVEQjJBMDAwNDBBMDQgLyog
V2ViQ29yZU5TVVJMU2Vzc2lvbi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYkNvcmVOU1VSTFNlc3Npb24ubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUNEOUUyOTJCMUM5MEE3MUYwMDBCQjgwMCAvKiBSZXF1aXJlc1VzZXJBY3Rpb25Gb3JQbGF5
YmFjay5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFJlcXVpcmVz
VXNlckFjdGlvbkZvclBsYXliYWNrLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
RDlFMjkyRDFDOTBDMUJBMDAwQkI4MDAgLyogYXVkaW8tb25seS5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gImF1ZGlvLW9ubHkuaHRtbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0xMzg4LDYgKzEzOTMsNyBAQAogCQkJCUExQTRGRTVEMThERDNEQjcwMEI1RUE4QSAv
KiBEb3dubG9hZC5tbSAqLywKIAkJCQkyRDgxMDRDQjFCRUMxM0U3MDAyMERBNDYgLyogRmluZElu
UGFnZS5tbSAqLywKIAkJCQkyRDFGRTBBRjFBRDQ2NUMxMDA2Q0Q5RTYgLyogRml4ZWRMYXlvdXRT
aXplLm1tICovLAorCQkJCUNENzhFMTFBMURCN0VBMzYwMDE0QTJERSAvKiBGdWxsc2NyZWVuRGVs
ZWdhdGUubW0gKi8sCiAJCQkJM0YxQjUyNjgxRDNENzEyOTAwOEQ2MEM0IC8qIEZ1bGxzY3JlZW5M
YXlvdXRDb25zdHJhaW50cy5tbSAqLywKIAkJCQlDREUxOTVCMzFDRkUwQURFMDA1M0QyNTYgLyog
RnVsbHNjcmVlblRvcENvbnRlbnRJbnNldC5tbSAqLywKIAkJCQk1MTA0Nzc3NTFEMjk4RTAzMDA5
NzQ3RUIgLyogSURCRGVsZXRlUmVjb3ZlcnkubW0gKi8sCkBAIC0xNTQ3LDYgKzE1NTMsNyBAQAog
CQkJCTk5ODRGQUNEMUNGRkIwMzgwMDhEMTk4QyAvKiBlZGl0YWJsZS1ib2R5Lmh0bWwgKi8sCiAJ
CQkJOTM1NzVDNTUxRDMwMzY2RTAwMEQ2MDREIC8qIGZvY3VzLWlucHV0cy5odG1sICovLAogCQkJ
CUY0RjQwNUJBMUQ0QzBDRjgwMDdBOTcwNyAvKiBmdWxsLXNpemUtYXV0b3BsYXlpbmctdmlkZW8t
d2l0aC1hdWRpby5odG1sICovLAorCQkJCUNENzhFMTFCMURCN0VBMzYwMDE0QTJERSAvKiBGdWxs
c2NyZWVuRGVsZWdhdGUuaHRtbCAqLywKIAkJCQkzRkJEMUI0OTFEMzlEMURCMDBFNkQ2RkEgLyog
RnVsbHNjcmVlbkxheW91dENvbnN0cmFpbnRzLmh0bWwgKi8sCiAJCQkJQ0RFMTk1QjIxQ0ZFMEFE
RTAwNTNEMjU2IC8qIEZ1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQuaHRtbCAqLywKIAkJCQk1MTA0
Nzc3NjFEMjk4RTU3MDA5NzQ3RUIgLyogSURCRGVsZXRlUmVjb3ZlcnkuaHRtbCAqLywKQEAgLTI1
MzIsNiArMjUzOSw3IEBACiAJCQkJNTE3MTRFQjgxQ0Y4Q0ExNzAwNDcyM0M0IC8qIFdlYlByb2Nl
c3NLaWxsSURCQ2xlYW51cC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUzNjc3MDM0MUNDODAyMjgw
MEQ0MjVCMSAvKiBXZWJTY3JpcHRPYmplY3REZXNjcmlwdGlvbi5tbSBpbiBTb3VyY2VzICovLAog
CQkJCTdDQ0U3RUQ0MUE0MTFBN0UwMDQ0N0M0QyAvKiBXZWJWaWV3Q2FuUGFzdGVVUkwubW0gaW4g
U291cmNlcyAqLywKKwkJCQlDRDc4RTExRDFEQjdFQTY2MDAxNEEyREUgLyogRnVsbHNjcmVlbkRl
bGVnYXRlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M4M0UwNDIxRDBBNjNGRDAwRkVCQ0YzIC8q
IFdlYlZpZXdDbG9zZUluc2lkZURpZEZpbmlzaExvYWRGb3JGcmFtZS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTdDQ0U3RUQ1MUE0MTFBN0UwMDQ0N0M0QyAvKiBXZWJWaWV3RGlkQ3JlYXRlSmF2YVNj
cmlwdENvbnRleHQubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VENjFBNDExQTdFMDA0NDdD
NEMgLyogV2ViVmlld0RpZFJlbW92ZUZyYW1lRnJvbUhpZXJhcmNoeS5tbSBpbiBTb3VyY2VzICov
LApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVs
bHNjcmVlbkRlbGVnYXRlLmh0bWwgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJD
b2NvYS9GdWxsc2NyZWVuRGVsZWdhdGUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTkwMDYyMDM0YTVlNzNm
NWIyYjI1NWZhOTY0ZTNiODBkNzgyMzFlCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVlbkRlbGVnYXRlLmh0bWwKQEAgLTAs
MCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQ+
CisgICAgICAgIGZ1bmN0aW9uIGxvYWQoKSB7CisgICAgICAgICAgICB3aW5kb3cud2Via2l0Lm1l
c3NhZ2VIYW5kbGVycy5mdWxsc2NyZWVuQ2hhbmdlSGFuZGxlci5wb3N0TWVzc2FnZSgnbG9hZCcp
OworICAgICAgICB9CisgICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3dlYmtpdGZ1
bGxzY3JlZW5jaGFuZ2UnLCBmdW5jdGlvbihldmVudCkgeworICAgICAgICAgICAgd2luZG93Lndl
YmtpdC5tZXNzYWdlSGFuZGxlcnMuZnVsbHNjcmVlbkNoYW5nZUhhbmRsZXIucG9zdE1lc3NhZ2Uo
J2Z1bGxzY3JlZW5jaGFuZ2UnKTsKKyAgICAgICAgfSk7CisgICAgICAgIGRvY3VtZW50LmFkZEV2
ZW50TGlzdGVuZXIoJ21vdXNlZG93bicsIGZ1bmN0aW9uKGV2ZW50KSB7CisgICAgICAgICAgICAv
LyBUb2dnbGUgZnVsbHNjcmVlbgorICAgICAgICAgICAgdmFyIHRhcmdldCA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCd0YXJnZXQnKTsKKyAgICAgICAgICAgIGlmIChkb2N1bWVudC53ZWJraXRG
dWxsc2NyZWVuRWxlbWVudCA9PSB0YXJnZXQpCisgICAgICAgICAgICAgICAgZG9jdW1lbnQud2Vi
a2l0RXhpdEZ1bGxzY3JlZW4oKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0
YXJnZXQud2Via2l0UmVxdWVzdEZ1bGxTY3JlZW4oKTsKKyAgICAgICAgfSk7CisgICAgPC9zY3Jp
cHQ+CisgICAgPHN0eWxlPgorICAgICN0YXJnZXQgeworICAgICAgICBiYWNrZ3JvdW5kLWNvbG9y
OiByZWQ7CisgICAgICAgIHdpZHRoOiAxNTBweDsKKyAgICAgICAgaGVpZ2h0OiAxNTBweDsKKyAg
ICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ibG9hZCgpIj4KKyAgICA8
ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2PgorPC9ib2R5PgorPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQg
ZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
MkNvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0MkNvY29hL0Z1bGxzY3JlZW5EZWxlZ2F0ZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYmU4OGI2YTQy
Y2UyYTFmNDE1YzM3MDk1M2U3NGFhMjQwZjliN2ZjCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyQ29jb2EvRnVsbHNjcmVlbkRlbGVnYXRlLm1tCkBA
IC0wLDAgKzEsMTEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaWYg
V0tfQVBJX0VOQUJMRUQgJiYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxp
dGllcy5oIgorI2ltcG9ydCA8V2ViS2l0L1dLUHJlZmVyZW5jZXNQcml2YXRlLmg+CisjaW1wb3J0
IDxXZWJLaXQvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaD4KKyNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvX1dLRnVsbHNjcmVlbkRlbGVn
YXRlLmg+CisjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CisKK3N0YXRpYyBib29sIHJlY2VpdmVk
TG9hZGVkTWVzc2FnZTsKK3N0YXRpYyBib29sIHJlY2VpdmVkV2lsbEVudGVyRnVsbHNjcmVlbk1l
c3NhZ2U7CitzdGF0aWMgYm9vbCByZWNlaXZlZERpZEVudGVyRnVsbHNjcmVlbk1lc3NhZ2U7Citz
dGF0aWMgYm9vbCByZWNlaXZlZFdpbGxFeGl0RnVsbHNjcmVlbk1lc3NhZ2U7CitzdGF0aWMgYm9v
bCByZWNlaXZlZERpZEV4aXRGdWxsc2NyZWVuTWVzc2FnZTsKKworQGludGVyZmFjZSBGdWxsc2Ny
ZWVuRGVsZWdhdGVNZXNzYWdlSGFuZGxlciA6IE5TT2JqZWN0IDxXS1NjcmlwdE1lc3NhZ2VIYW5k
bGVyLCBfV0tGdWxsc2NyZWVuRGVsZWdhdGU+CitAZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBGdWxs
c2NyZWVuRGVsZWdhdGVNZXNzYWdlSGFuZGxlcgorLSAodm9pZCl1c2VyQ29udGVudENvbnRyb2xs
ZXI6KFdLVXNlckNvbnRlbnRDb250cm9sbGVyICopdXNlckNvbnRlbnRDb250cm9sbGVyIGRpZFJl
Y2VpdmVTY3JpcHRNZXNzYWdlOihXS1NjcmlwdE1lc3NhZ2UgKiltZXNzYWdlCit7CisgICAgTlNT
dHJpbmcgKmJvZHlTdHJpbmcgPSAoTlNTdHJpbmcgKilbbWVzc2FnZSBib2R5XTsKKyAgICBpZiAo
W2JvZHlTdHJpbmcgaXNFcXVhbFRvU3RyaW5nOkAibG9hZCJdKQorICAgICAgICByZWNlaXZlZExv
YWRlZE1lc3NhZ2UgPSB0cnVlOworfQorCistICh2b2lkKV93ZWJWaWV3V2lsbEVudGVyRnVsbHNj
cmVlbjooV0tXZWJWaWV3ICopdmlldworeworICAgIHJlY2VpdmVkV2lsbEVudGVyRnVsbHNjcmVl
bk1lc3NhZ2UgPSB0cnVlOworfQorCistICh2b2lkKV93ZWJWaWV3RGlkRW50ZXJGdWxsc2NyZWVu
OihXS1dlYlZpZXcgKil2aWV3Cit7CisgICAgcmVjZWl2ZWREaWRFbnRlckZ1bGxzY3JlZW5NZXNz
YWdlID0gdHJ1ZTsKK30KKworLSAodm9pZClfd2ViVmlld1dpbGxFeGl0RnVsbHNjcmVlbjooV0tX
ZWJWaWV3ICopdmlldworeworICAgIHJlY2VpdmVkV2lsbEV4aXRGdWxsc2NyZWVuTWVzc2FnZSA9
IHRydWU7Cit9CisKKy0gKHZvaWQpX3dlYlZpZXdEaWRFeGl0RnVsbHNjcmVlbjooV0tXZWJWaWV3
ICopdmlldworeworICAgIHJlY2VpdmVkRGlkRXhpdEZ1bGxzY3JlZW5NZXNzYWdlID0gdHJ1ZTsK
K30KK0BlbmQKKworbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgeworCitURVNUKEZ1bGxzY3JlZW4s
IERlbGVnYXRlKQoreworICAgIFJldGFpblB0cjxXS1dlYlZpZXdDb25maWd1cmF0aW9uPiBjb25m
aWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gYWxsb2NdIGluaXRd
KTsKKyAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiB3ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmll
dyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDEwMCwgMTAwKSBjb25maWd1
cmF0aW9uOmNvbmZpZ3VyYXRpb24uZ2V0KCldKTsKKyAgICBbY29uZmlndXJhdGlvbiBwcmVmZXJl
bmNlc10uX2Z1bGxTY3JlZW5FbmFibGVkID0gWUVTOworICAgIFJldGFpblB0cjxGdWxsc2NyZWVu
RGVsZWdhdGVNZXNzYWdlSGFuZGxlcj4gaGFuZGxlciA9IGFkb3B0TlMoW1tGdWxsc2NyZWVuRGVs
ZWdhdGVNZXNzYWdlSGFuZGxlciBhbGxvY10gaW5pdF0pOworICAgIFtbY29uZmlndXJhdGlvbiB1
c2VyQ29udGVudENvbnRyb2xsZXJdIGFkZFNjcmlwdE1lc3NhZ2VIYW5kbGVyOmhhbmRsZXIuZ2V0
KCkgbmFtZTpAImZ1bGxzY3JlZW5DaGFuZ2VIYW5kbGVyIl07CisgICAgW3dlYlZpZXcgX3NldEZ1
bGxzY3JlZW5EZWxlZ2F0ZTpoYW5kbGVyLmdldCgpXTsKKworICAgIFJldGFpblB0cjxOU1dpbmRv
dz4gd2luZG93ID0gYWRvcHROUyhbW05TV2luZG93IGFsbG9jXSBpbml0V2l0aENvbnRlbnRSZWN0
Olt3ZWJWaWV3IGZyYW1lXSBzdHlsZU1hc2s6TlNCb3JkZXJsZXNzV2luZG93TWFzayBiYWNraW5n
Ok5TQmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dKTsKKyAgICBbW3dpbmRvdyBjb250ZW50
Vmlld10gYWRkU3Vidmlldzp3ZWJWaWV3LmdldCgpXTsKKworICAgIE5TVVJMUmVxdWVzdCAqcmVx
dWVzdCA9IFtOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W1tOU0J1bmRsZSBtYWluQnVuZGxl
XSBVUkxGb3JSZXNvdXJjZTpAIkZ1bGxzY3JlZW5EZWxlZ2F0ZSIgd2l0aEV4dGVuc2lvbjpAImh0
bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1dOworICAgIFt3ZWJW
aWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigm
cmVjZWl2ZWRMb2FkZWRNZXNzYWdlKTsKKworICAgIE5TRXZlbnQgKmV2ZW50ID0gW05TRXZlbnQg
bW91c2VFdmVudFdpdGhUeXBlOk5TTGVmdE1vdXNlRG93biBsb2NhdGlvbjpOU01ha2VQb2ludCg1
LCA1KSBtb2RpZmllckZsYWdzOjAgdGltZXN0YW1wOjAgd2luZG93TnVtYmVyOndpbmRvdy5nZXQo
KS53aW5kb3dOdW1iZXIgY29udGV4dDowIGV2ZW50TnVtYmVyOjAgY2xpY2tDb3VudDowIHByZXNz
dXJlOjBdOworICAgIFt3ZWJWaWV3IG1vdXNlRG93bjpldmVudF07CisKKyAgICBBU1NFUlRfRkFM
U0UoW3dlYlZpZXcgX2lzSW5GdWxsc2NyZWVuXSk7CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6
cnVuKCZyZWNlaXZlZFdpbGxFbnRlckZ1bGxzY3JlZW5NZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0
QVBJOjpVdGlsOjpydW4oJnJlY2VpdmVkRGlkRW50ZXJGdWxsc2NyZWVuTWVzc2FnZSk7CisKKyAg
ICBBU1NFUlRfVFJVRShbd2ViVmlldyBfaXNJbkZ1bGxzY3JlZW5dKTsKKyAgICBbd2ViVmlldyBt
b3VzZURvd246ZXZlbnRdOworICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVjZWl2ZWRX
aWxsRXhpdEZ1bGxzY3JlZW5NZXNzYWdlKTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4o
JnJlY2VpdmVkRGlkRXhpdEZ1bGxzY3JlZW5NZXNzYWdlKTsKKworICAgIEFTU0VSVF9GQUxTRShb
d2ViVmlldyBfaXNJbkZ1bGxzY3JlZW5dKTsKK30KKworfSAvLyBuYW1lc3BhY2UgVGVzdFdlYktp
dEFQSQorCisjZW5kaWYK
</data>
<flag name="review"
          id="315315"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>