<?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>198590</bug_id>
          
          <creation_ts>2019-06-05 17:20:27 -0700</creation_ts>
          <short_desc>Introduce new SPI for context menus on iOS</short_desc>
          <delta_ts>2019-06-17 15:29:53 -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>WebKit API</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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>bdakin</cc>
    
    <cc>dino</cc>
    
    <cc>thorton</cc>
    
    <cc>timothy</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1542232</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-06-05 17:20:27 -0700</bug_when>
    <thetext>Introduce new SPI for context menus on iOS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542234</commentid>
    <comment_count>1</comment_count>
      <attachid>371457</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-06-05 17:23:14 -0700</bug_when>
    <thetext>Created attachment 371457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542237</commentid>
    <comment_count>2</comment_count>
      <attachid>371458</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-06-05 17:34:00 -0700</bug_when>
    <thetext>Created attachment 371458
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542238</commentid>
    <comment_count>3</comment_count>
      <attachid>371457</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2019-06-05 17:35:09 -0700</bug_when>
    <thetext>Comment on attachment 371457
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h:148
&gt; +// This needs to be kept once there is an API version to allow notifications for images.

&quot;notifications&quot;?

&gt; Source/WebKit/UIProcess/API/Cocoa/_WKActivatedElementInfo.mm:54
&gt; +    BOOL _isAnimatedImage;

I think the member usually drops the is?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542239</commentid>
    <comment_count>4</comment_count>
      <attachid>371459</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-06-05 17:40:41 -0700</bug_when>
    <thetext>Created attachment 371459
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542243</commentid>
    <comment_count>5</comment_count>
      <attachid>371461</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-06-05 17:55:51 -0700</bug_when>
    <thetext>Created attachment 371461
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542261</commentid>
    <comment_count>6</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-06-05 19:11:03 -0700</bug_when>
    <thetext>http://trac.webkit.org/r246137</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542263</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-06-05 19:14:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/51466257&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542452</commentid>
    <comment_count>8</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2019-06-06 09:50:53 -0700</bug_when>
    <thetext>Reverted r246137 for reason:

Broke internal builds.

Committed r246157: &lt;https://trac.webkit.org/changeset/246157&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542650</commentid>
    <comment_count>9</comment_count>
    <who name="Timothy Hatcher">timothy</who>
    <bug_when>2019-06-06 17:23:52 -0700</bug_when>
    <thetext>&lt;rdar://problem/51462498&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1545422</commentid>
    <comment_count>10</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-06-17 15:29:53 -0700</bug_when>
    <thetext>This was relanded in https://trac.webkit.org/changeset/246224/webkit</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371457</attachid>
            <date>2019-06-05 17:23:14 -0700</date>
            <delta_ts>2019-06-05 17:40:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198590-20190605172313.patch</filename>
            <type>text/plain</type>
            <size>37234</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDYxMzMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDE5LTA2LTA1ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW50cm9kdWNlIG5l
dyBTUEkgZm9yIGNvbnRleHQgbWVudXMgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg1OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBbHNvIGludHJvZHVjZSBXS0NvbnRleHRNZW51RWxlbWVu
dEluZm8gd2hpY2ggaXMgQVBJLgorICAgICAgICBUaGlzIGlzIHBhcnQgb2YgPHJkYXI6Ly9wcm9i
bGVtLzUxMDAzNTAzPgorCisgICAgICAgICogU2hhcmVkL0FQSS9BUElPYmplY3QuaDoKKyAgICAg
ICAgKiBTaGFyZWQvQVBJL0NvY29hL1dlYktpdC5oOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9B
UElPYmplY3QubW06CisgICAgICAgIChBUEk6Ok9iamVjdDo6bmV3T2JqZWN0KToKKyAgICAgICAg
KiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQVBJQ29udGV4dE1lbnVFbGVtZW50SW5mby5jcHA6IEFkZGVkLgorICAgICAg
ICAoQVBJOjpDb250ZXh0TWVudUVsZW1lbnRJbmZvOjpDb250ZXh0TWVudUVsZW1lbnRJbmZvKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUNvbnRleHRNZW51RWxlbWVudEluZm8uaDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRleHRNZW51RWxlbWVudElu
Zm8uaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRleHRNZW51
RWxlbWVudEluZm8ubW06IEFkZGVkLgorICAgICAgICAoLVtXS0NvbnRleHRNZW51RWxlbWVudElu
Zm8gbGlua1VSTF0pOgorICAgICAgICAoLVtXS0NvbnRleHRNZW51RWxlbWVudEluZm8gX2FwaU9i
amVjdF0pOgorICAgICAgICAoLVtXS0NvbnRleHRNZW51RWxlbWVudEluZm8gX2FjdGl2YXRlZEVs
ZW1lbnRJbmZvXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRleHRNZW51
RWxlbWVudEluZm9JbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLQ29udGV4dE1lbnVFbGVtZW50SW5mb1ByaXZhdGUuaDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLm1tOgorICAgICAgICAoLVtf
V0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBfaW5pdFdpdGhJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQ
b3NpdGlvbjpdKToKKyAgICAgICAgKC1bX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gaXNBbmltYXRl
ZEltYWdlXSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tOgor
ICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IGRlZmF1bHRBY3Rpb25zRm9yTGlua1No
ZWV0Ol0pOgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IGRlZmF1bHRBY3Rpb25z
Rm9ySW1hZ2VTaGVldDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOS0wNi0w
NSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBUZXN0V2ViS2l0
QVBJLldLV2ViVmlldy5Mb2NhbFN0b3JhZ2VQcm9jZXNzU3VzcGVuZHMgaXMgZmxha3kgb24gcmVs
ZWFzZSBidWlsZHMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAkocmV2aXNpb24gMjQ1ODI1KQorKysgU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzAwLDYgKzMwMCw3IEBAIFVJ
UHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5jcHAKIFVJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1
bGVMaXN0LmNwcAogVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RBY3Rpb24uY3BwCiBV
SVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNwcAorVUlQcm9jZXNzL0FQSS9B
UElDb250ZXh0TWVudUVsZW1lbnRJbmZvLmNwcAogVUlQcm9jZXNzL0FQSS9BUElFeHBlcmltZW50
YWxGZWF0dXJlLmNwcAogVUlQcm9jZXNzL0FQSS9BUElGcmFtZUluZm8uY3BwCiBVSVByb2Nlc3Mv
QVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQJKHJl
dmlzaW9uIDI0NTgyNSkKKysrIFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgyLDYgKzI4Miw3IEBAIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2lu
Z0NvbnRleHRHcm8KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb25uZWN0aW9uLm1tCiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLQ29udGVudFJ1bGVMaXN0Lm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
Q29udGVudFJ1bGVMaXN0U3RvcmUubW0KK1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZXh0TWVu
dUVsZW1lbnRJbmZvLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3IubW0KIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tGcmFtZUluZm8ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29v
a2llU3RvcmUubW0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmgJKHJldmlz
aW9uIDI0NTgyNSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaAkod29y
a2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSw3IEBAIHB1YmxpYzoKICAgICAgICAgQ29udGVudFJ1
bGVMaXN0LAogICAgICAgICBDb250ZW50UnVsZUxpc3RBY3Rpb24sCiAgICAgICAgIENvbnRlbnRS
dWxlTGlzdFN0b3JlLAorICAgICAgICBDb250ZXh0TWVudUVsZW1lbnRJbmZvLAogICAgICAgICBD
b250ZXh0TWVudUxpc3RlbmVyLAogICAgICAgICBDb29raWVNYW5hZ2VyLAogICAgICAgICBDdXN0
b21IZWFkZXJGaWVsZHMsCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV2Vi
S2l0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dlYktp
dC5oCShyZXZpc2lvbiAyNDU4MjUpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2Ev
V2ViS2l0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbXBvcnQgPFdlYktp
dC9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaD4KICNpbXBvcnQgPFdlYktpdC9XS0NvbnRlbnRSdWxl
TGlzdC5oPgogI2ltcG9ydCA8V2ViS2l0L1dLQ29udGVudFJ1bGVMaXN0U3RvcmUuaD4KKyNpbXBv
cnQgPFdlYktpdC9XS0NvbnRleHRNZW51RWxlbWVudEluZm8uaD4KICNpbXBvcnQgPFdlYktpdC9X
S0Vycm9yLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tGcmFtZUluZm8uaD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9i
amVjdC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BUElPYmpl
Y3QubW0JKHJldmlzaW9uIDI0NTgyNSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQ
SU9iamVjdC5tbQkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCAiV0tD
b25uZWN0aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLQ29udGVudFJ1bGVMaXN0SW50ZXJuYWwu
aCIKICNpbXBvcnQgIldLQ29udGVudFJ1bGVMaXN0U3RvcmVJbnRlcm5hbC5oIgorI2ltcG9ydCAi
V0tDb250ZXh0TWVudUVsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLRnJhbWVJbmZv
SW50ZXJuYWwuaCIKICNpbXBvcnQgIldLSFRUUENvb2tpZVN0b3JlSW50ZXJuYWwuaCIKICNpbXBv
cnQgIldLTlNBcnJheS5oIgpAQCAtMzEzLDYgKzMxNCwxMCBAQCB2b2lkKiBPYmplY3Q6Om5ld09i
amVjdChzaXplX3Qgc2l6ZSwgVHlwCiAgICAgICAgIHdyYXBwZXIgPSBbV0tDb250ZW50UnVsZUxp
c3RTdG9yZSBhbGxvY107CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBUeXBlOjpDb250ZXh0
TWVudUVsZW1lbnRJbmZvOgorICAgICAgICB3cmFwcGVyID0gW1dLQ29udGV4dE1lbnVFbGVtZW50
SW5mbyBhbGxvY107CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBUeXBlOjpDdXN0b21IZWFk
ZXJGaWVsZHM6CiAgICAgICAgIHdyYXBwZXIgPSBbX1dLQ3VzdG9tSGVhZGVyRmllbGRzIGFsbG9j
XTsKICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
Q29udGV4dE1lbnVFbGVtZW50SW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUNvbnRleHRNZW51RWxlbWVudEluZm8uY3BwCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZXh0TWVudUVsZW1lbnRJbmZv
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFQSUNvbnRleHRNZW51RWxlbWVudEluZm8uaCIKKwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKK25hbWVzcGFjZSBBUEkgeworCitDb250ZXh0TWVu
dUVsZW1lbnRJbmZvOjpDb250ZXh0TWVudUVsZW1lbnRJbmZvKGNvbnN0IFdlYktpdDo6SW50ZXJh
Y3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mIGluZm8pCisgICAgOiBtX2ludGVyYWN0aW9uSW5m
b3JtYXRpb24oaW5mbykKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgQVBJCisKKyNlbmRpZiAvLyBQ
TEFURk9STShJT1NfRkFNSUxZKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SUNvbnRleHRNZW51RWxlbWVudEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJQ29udGV4dE1lbnVFbGVtZW50SW5mby5oCShub25leGlzdGVudCkKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZXh0TWVudUVsZW1lbnRJbmZvLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgor
I2luY2x1ZGUgIkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgiCisKK25hbWVzcGFj
ZSBBUEkgeworCitjbGFzcyBDb250ZXh0TWVudUVsZW1lbnRJbmZvIGZpbmFsIDogcHVibGljIE9i
amVjdEltcGw8T2JqZWN0OjpUeXBlOjpDb250ZXh0TWVudUVsZW1lbnRJbmZvPiB7CitwdWJsaWM6
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4gc3RhdGljIFJlZjxDb250ZXh0TWVudUVs
ZW1lbnRJbmZvPiBjcmVhdGUoQXJncyYmLi4uIGFyZ3MpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDb250ZXh0TWVudUVsZW1lbnRJbmZvKHN0ZDo6Zm9yd2FyZDxBcmdzPihh
cmdzKS4uLikpOworICAgIH0KKyAgICAKKyAgICBjb25zdCBXVEY6OlVSTCYgdXJsKCkgY29uc3Qg
eyByZXR1cm4gbV9pbnRlcmFjdGlvbkluZm9ybWF0aW9uLnVybDsgfQorCisgICAgY29uc3QgV2Vi
S2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYgaW50ZXJhY3Rpb25JbmZvcm1h
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJhY3Rpb25JbmZvcm1hdGlvbjsgfQorCitwcml2
YXRlOgorICAgIENvbnRleHRNZW51RWxlbWVudEluZm8oY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpOworICAgIAorICAgIFdlYktpdDo6SW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb24gbV9pbnRlcmFjdGlvbkluZm9ybWF0aW9uOworfTsKKworI2Vu
ZGlmCisgICAgCit9IC8vIG5hbWVzcGFjZSBBUEkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0NvbnRleHRNZW51RWxlbWVudEluZm8uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZXh0TWVudUVsZW1lbnRJbmZv
LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
Q29udGV4dE1lbnVFbGVtZW50SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZiBUQVJH
RVRfT1NfSVBIT05FCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCitOU19B
U1NVTUVfTk9OTlVMTF9CRUdJTgorCitXS19DTEFTU19BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEp
KQorQGludGVyZmFjZSBXS0NvbnRleHRNZW51RWxlbWVudEluZm8gOiBOU09iamVjdAorCistIChp
bnN0YW5jZXR5cGUpaW5pdCBOU19VTkFWQUlMQUJMRTsKKworQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5LCBudWxsYWJsZSkgTlNVUkwgKmxpbmtVUkw7CisKK0BlbmQKKworTlNfQVNTVU1F
X05PTk5VTExfRU5ECisKKyNlbmRpZgorCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRleHRNZW51RWxlbWVudEluZm8ubW0J
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29u
dGV4dE1lbnVFbGVtZW50SW5mby5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXS0NvbnRleHRNZW51RWxl
bWVudEluZm9JbnRlcm5hbC5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2ltcG9y
dCAiX1dLQWN0aXZhdGVkRWxlbWVudEluZm9JbnRlcm5hbC5oIgorCitAaW1wbGVtZW50YXRpb24g
V0tDb250ZXh0TWVudUVsZW1lbnRJbmZvCisKKy0gKE5TVVJMICopbGlua1VSTAoreworICAgIHJl
dHVybiBfZWxlbWVudEluZm8tPnVybCgpOworfQorCistIChBUEk6Ok9iamVjdCYpX2FwaU9iamVj
dAoreworICAgIHJldHVybiAqX2VsZW1lbnRJbmZvOworfQorCitAZW5kCisKK0BpbXBsZW1lbnRh
dGlvbiBXS0NvbnRleHRNZW51RWxlbWVudEluZm8gKFdLUHJpdmF0ZSkKKworLSAoX1dLQWN0aXZh
dGVkRWxlbWVudEluZm8gKilfYWN0aXZhdGVkRWxlbWVudEluZm8KK3sKKyAgICByZXR1cm4gW19X
S0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFjdGl2YXRlZEVsZW1lbnRJbmZvV2l0aEludGVyYWN0aW9u
SW5mb3JtYXRpb25BdFBvc2l0aW9uOl9lbGVtZW50SW5mby0+aW50ZXJhY3Rpb25JbmZvcm1hdGlv
bigpXTsKK30KKworQGVuZAorCisjZW5kaWYKKwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQ29udGV4dE1lbnVFbGVtZW50SW5mb0ludGVybmFsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGV4dE1lbnVFbGVt
ZW50SW5mb0ludGVybmFsLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQ29udGV4dE1lbnVFbGVtZW50SW5mb0ludGVybmFsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIkFQSUNvbnRleHRN
ZW51RWxlbWVudEluZm8uaCIKKyNpbXBvcnQgIldLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oIgor
I2ltcG9ydCAiV0tPYmplY3QuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3RlbXBsYXRlPD4g
c3RydWN0IFdyYXBwZXJUcmFpdHM8QVBJOjpDb250ZXh0TWVudUVsZW1lbnRJbmZvPiB7CisgICAg
dXNpbmcgV3JhcHBlckNsYXNzID0gV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvOworfTsKKworfQor
CitAaW50ZXJmYWNlIFdLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAoKSA8V0tPYmplY3Q+IHsKK0Bw
YWNrYWdlCisgICAgQVBJOjpPYmplY3RTdG9yYWdlPEFQSTo6Q29udGV4dE1lbnVFbGVtZW50SW5m
bz4gX2VsZW1lbnRJbmZvOworfQorQGVuZApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLQ29udGV4dE1lbnVFbGVtZW50SW5mb1ByaXZhdGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZXh0TWVudUVsZW1lbnRJ
bmZvUHJpdmF0ZS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0NvbnRleHRNZW51RWxlbWVudEluZm9Qcml2YXRlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XS0NvbnRleHRN
ZW51RWxlbWVudEluZm8uaD4KKworQGNsYXNzIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvOworCitA
aW50ZXJmYWNlIFdLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAoV0tQcml2YXRlKQorCitAcHJvcGVy
dHkgKG5vbmF0b21pYywgY29weSwgcmVhZG9ubHkpIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICpf
YWN0aXZhdGVkRWxlbWVudEluZm87CisKK0BlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5oCShyZXZp
c2lvbiAyNDU4MjUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2
aWV3RWxlbWVudEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogCiBOU19B
U1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUoaW9zKDEwLjApKQorV0tf
Q0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS0NvbnRleHRNZW51RWxlbWVudElu
Zm8iLCBpb3MoMTAuMCwgV0tfSU9TX1RCQSkpCiBAaW50ZXJmYWNlIFdLUHJldmlld0VsZW1lbnRJ
bmZvIDogTlNPYmplY3QgPE5TQ29weWluZz4KIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5LCBudWxsYWJsZSkgTlNVUkwgKmxpbmtVUkw7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgJKHJldmlz
aW9uIDI0NTgyNSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVs
ZWdhdGVQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDggKzQwLDExIEBACiBAY2xhc3Mg
X1dLRnJhbWVIYW5kbGU7CiAKICNpZiBUQVJHRVRfT1NfSU9TCitAY2xhc3MgVUlDb250ZXh0TWVu
dUNvbmZpZ3VyYXRpb247CiBAY2xhc3MgVUlEcmFnSXRlbTsKIEBjbGFzcyBVSVRhcmdldGVkRHJh
Z1ByZXZpZXc7CitAY2xhc3MgV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvOworQHByb3RvY29sIFVJ
Q29udGV4dE1lbnVJbnRlcmFjdGlvbkNvbW1pdEFuaW1hdGluZzsKIEBwcm90b2NvbCBVSURyYWdT
ZXNzaW9uOwogQHByb3RvY29sIFVJRHJvcFNlc3Npb247CiAjZWxzZQpAQCAtMTM1LDI0ICsxMzgs
MzMgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgZGlkTm90SGFuZGxlVGFwQXNDbGlja0F0UG9pbnQ6KENHUG9pbnQpcG9pbnQ7CiAt
IChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZFJlcXVlc3RHZW9sb2Nh
dGlvbkF1dGhvcml6YXRpb25Gb3JVUkw6KE5TVVJMICopdXJsIGlzTWFpbkZyYW1lOihCT09MKWlz
TWFpbkZyYW1lIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkw7CiAtICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RHZW9sb2NhdGlvbkF1dGhvcml6YXRp
b25Gb3JVUkw6KE5TVVJMICopdXJsIGZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShpb3MoMTEuMCkpOwotLSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvclVSTDooTlNVUkwgKil1
cmwgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4wKSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGNvbW1pdFByZXZpZXdlZFZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9s
bGVyICopcHJldmlld2VkVmlld0NvbnRyb2xsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4wKSk7
Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxQcmV2aWV3SW1hZ2VX
aXRoVVJMOihOU1VSTCAqKWltYWdlVVJMIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOwotLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb21taXRQcmV2aWV3ZWRJbWFnZVdp
dGhVUkw6KE5TVVJMICopaW1hZ2VVUkwgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4wKSk7Ci0tICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZERpc21pc3NQcmV2aWV3Vmlld0Nv
bnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIgKilwcmV2aWV3ZWRWaWV3Q29udHJvbGxlciBjb21t
aXR0aW5nOihCT09MKWNvbW1pdHRpbmcgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4wKSk7Ci0tICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZERpc21pc3NQcmV2aWV3Vmlld0Nv
bnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIgKilwcmV2aWV3ZWRWaWV3Q29udHJvbGxlciBXS19B
UElfQVZBSUxBQkxFKGlvcyg5LjApKTsKKy0gKFVJVmlld0NvbnRyb2xsZXIgKilfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xsZXJGb3JVUkw6KE5TVVJMICop
dXJsIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIndlYlZpZXc6Y29udGV4dE1l
bnVDb25maWd1cmF0aW9uRm9yRWxlbWVudDpjb21wbGV0aW9uSGFuZGxlcjoiLCBpb3MoOS4wLCBX
S19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbW1p
dFByZXZpZXdlZFZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopcHJldmlld2VkVmll
d0NvbnRyb2xsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgid2ViVmlldzpj
b21taXRDb250ZXh0TWVudToiLCBpb3MoOS4wLCBXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxQcmV2aWV3SW1hZ2VXaXRoVVJMOihOU1VSTCAq
KWltYWdlVVJMIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIndlYlZpZXc6Y29u
dGV4dE1lbnVDb25maWd1cmF0aW9uRm9yRWxlbWVudDpjb21wbGV0aW9uSGFuZGxlcjoiLCBpb3Mo
OS4wLCBXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGNvbW1pdFByZXZpZXdlZEltYWdlV2l0aFVSTDooTlNVUkwgKilpbWFnZVVSTCBXS19BUElfREVQ
UkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJ3ZWJWaWV3OmNvbW1pdENvbnRleHRNZW51OiIsIGlv
cyg5LjAsIFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgZGlkRGlzbWlzc1ByZXZpZXdWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKXBy
ZXZpZXdlZFZpZXdDb250cm9sbGVyIGNvbW1pdHRpbmc6KEJPT0wpY29tbWl0dGluZyBXS19BUElf
REVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJ3ZWJWaWV3OmRpc21pc3NDb250ZXh0TWVudToi
LCBpb3MoOS4wLCBXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGRpZERpc21pc3NQcmV2aWV3Vmlld0NvbnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIg
KilwcmV2aWV3ZWRWaWV3Q29udHJvbGxlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VN
RU5UKCJ3ZWJWaWV3OmRpc21pc3NDb250ZXh0TWVudToiLCBpb3MoOS4wLCBXS19JT1NfVEJBKSk7
CisKKy8vIFRoaXMgbmVlZHMgdG8gYmUga2VwdCBvbmNlIHRoZXJlIGlzIGFuIEFQSSB2ZXJzaW9u
IHRvIGFsbG93IG5vdGlmaWNhdGlvbnMgZm9yIGltYWdlcy4KKy0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgY29udGV4dE1lbnVDb25maWd1cmF0aW9uRm9yRWxlbWVudDooV0tD
b250ZXh0TWVudUVsZW1lbnRJbmZvICopZWxlbWVudEluZm8gY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQoXikoVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKikpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworCisvLyBUaGVzZSBjYW4gYmUgcmVtb3Zl
ZCBvbmNlIHRoZXJlIGlzIGFuIEFQSSB2ZXJzaW9uLgorLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBjb250ZXh0TWVudUZvckVsZW1lbnQ6KFdLQ29udGV4dE1lbnVFbGVtZW50
SW5mbyAqKWVsZW1lbnRJbmZvIHdpbGxDb21taXRXaXRoQW5pbWF0b3I6KGlkPFVJQ29udGV4dE1l
bnVJbnRlcmFjdGlvbkNvbW1pdEFuaW1hdGluZz4pYW5pbWF0b3IgV0tfQVBJX0FWQUlMQUJMRShp
b3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBj
b250ZXh0TWVudVdpbGxQcmVzZW50Rm9yRWxlbWVudDooV0tDb250ZXh0TWVudUVsZW1lbnRJbmZv
ICopZWxlbWVudEluZm8gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250ZXh0TWVudURpZEVuZEZvckVsZW1l
bnQ6KFdLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIFdLX0FQSV9BVkFJTEFC
TEUoaW9zKFdLX0lPU19UQkEpKTsKKwogLSAoQk9PTClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBzaG93Q3VzdG9tU2hlZXRGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAq
KWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMCkpOwogLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBhbHRlcm5hdGVBY3Rpb25Gb3JVUkw6KE5TVVJMICopdXJsIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKIC0gKE5TQXJyYXkgKilfYXR0YWNobWVudExpc3RG
b3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjAp
KTsKIC0gKE5TQXJyYXkgKilfYXR0YWNobWVudExpc3RGb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHNvdXJjZUlzTWFuYWdlZDooQk9PTCopc291cmNlSXNNYW5hZ2VkIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKDEwLjMpKTsKIC0gKE5TVUludGVnZXIpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgaW5kZXhJbnRvQXR0YWNobWVudExpc3RGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVt
ZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMykpOwogLSAoVUlFZGdl
SW5zZXRzKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGZpbmFsT2JzY3VyZWRJbnNldHNG
b3JTY3JvbGxWaWV3OihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpdGhWZWxvY2l0eTooQ0dQ
b2ludCl2ZWxvY2l0eSB0YXJnZXRDb250ZW50T2Zmc2V0Oihpbm91dCBDR1BvaW50ICopdGFyZ2V0
Q29udGVudE9mZnNldCBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjApKTsKLS0gKFVJVmlld0NvbnRy
b2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xs
ZXJGb3JVUkw6KE5TVVJMICopdXJsIGRlZmF1bHRBY3Rpb25zOihOU0FycmF5PF9XS0VsZW1lbnRB
Y3Rpb24gKj4gKilhY3Rpb25zIGVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAq
KWVsZW1lbnRJbmZvIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOwotLSAoVUlWaWV3Q29udHJv
bGxlciAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxl
ckZvckFuaW1hdGVkSW1hZ2VBdFVSTDooTlNVUkwgKil1cmwgZGVmYXVsdEFjdGlvbnM6KE5TQXJy
YXk8X1dLRWxlbWVudEFjdGlvbiAqPiAqKWFjdGlvbnMgZWxlbWVudEluZm86KF9XS0FjdGl2YXRl
ZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8gaW1hZ2VTaXplOihDR1NpemUpaW1hZ2VTaXplIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOworLSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvclVSTDooTlNVUkwg
Kil1cmwgZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPiAqKWFjdGlv
bnMgZWxlbWVudEluZm86KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8gV0tf
QVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgid2ViVmlldzpjb250ZXh0TWVudUNvbmZp
Z3VyYXRpb25Gb3JFbGVtZW50OiIsIGlvcyg5LjAsIFdLX0lPU19UQkEpKTsKKy0gKFVJVmlld0Nv
bnRyb2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRy
b2xsZXJGb3JBbmltYXRlZEltYWdlQXRVUkw6KE5TVVJMICopdXJsIGRlZmF1bHRBY3Rpb25zOihO
U0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4gKilhY3Rpb25zIGVsZW1lbnRJbmZvOihfV0tBY3Rp
dmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIGltYWdlU2l6ZTooQ0dTaXplKWltYWdlU2l6
ZSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJ3ZWJWaWV3OmNvbnRleHRNZW51
Q29uZmlndXJhdGlvbkZvckVsZW1lbnQ6IiwgaW9zKDkuMCwgV0tfSU9TX1RCQSkpOwogLSAoVUlW
aWV3Q29udHJvbGxlciAqKV9wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKIC0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZ2V0QWx0ZXJuYXRlVVJMRnJvbUltYWdlOihVSUlt
YWdlICopaW1hZ2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TVVJMICphbHRlcm5hdGVV
UkwsIE5TRGljdGlvbmFyeSAqdXNlckluZm8pKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKDExLjApKTsKIC0gKE5TVVJMICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgYWx0ZXJuYXRlVVJMRnJvbUltYWdlOihVSUltYWdlICopaW1hZ2UgdXNlckluZm86KE5TRGlj
dGlvbmFyeSAqKil1c2VySW5mbyBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7Ci0tIChVSVZp
ZXdDb250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmlld1ZpZXdD
b250cm9sbGVyRm9ySW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSBhbHRlcm5hdGVVUkw6KE5TVVJMICop
dXJsIGRlZmF1bHRBY3Rpb25zOihOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4gKilhY3Rpb25z
IGVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIFdLX0FQ
SV9BVkFJTEFCTEUoaW9zKDExLjApKTsKKy0gKFVJVmlld0NvbnRyb2xsZXIgKilfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xsZXJGb3JJbWFnZTooVUlJbWFn
ZSAqKWltYWdlIGFsdGVybmF0ZVVSTDooTlNVUkwgKil1cmwgZGVmYXVsdEFjdGlvbnM6KE5TQXJy
YXk8X1dLRWxlbWVudEFjdGlvbiAqPiAqKWFjdGlvbnMgZWxlbWVudEluZm86KF9XS0FjdGl2YXRl
ZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8gV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNF
TUVOVCgid2ViVmlldzpjb250ZXh0TWVudUNvbmZpZ3VyYXRpb25Gb3JFbGVtZW50OiIsIGlvcygx
MS4wLCBXS19JT1NfVEJBKSk7CiAtIChOU0FycmF5ICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgYWRqdXN0ZWREYXRhSW50ZXJhY3Rpb25JdGVtUHJvdmlkZXJzOihOU0FycmF5ICopb3Jp
Z2luYWxJdGVtUHJvdmlkZXJzIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKIC0gKE5TQXJy
YXkgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBhZGp1c3RlZERhdGFJbnRlcmFjdGlv
bkl0ZW1Qcm92aWRlcnNGb3JJdGVtUHJvdmlkZXI6KGlkKWl0ZW1Qcm92aWRlciByZXByZXNlbnRp
bmdPYmplY3RzOihOU0FycmF5ICopcmVwcmVzZW50aW5nT2JqZWN0cyBhZGRpdGlvbmFsRGF0YToo
TlNEaWN0aW9uYXJ5ICopYWRkaXRpb25hbERhdGEgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkp
OwogLSAoQk9PTClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwZXJmb3JtRGF0YUludGVy
YWN0aW9uT3BlcmF0aW9uV2l0aEl0ZW1Qcm92aWRlcnM6KE5TQXJyYXkgKilpdGVtUHJvdmlkZXJz
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5o
CShyZXZpc2lvbiAyNDU4MjUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcsNyBA
QCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wCiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlIHR5cGU7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUmVjdCBib3VuZGluZ1JlY3Q7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpJRCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9P
TCBpc0FuaW1hdGVkSW1hZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKICNpZiBUQVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIE5TRGljdGlvbmFyeSAqdXNlckluZm8gV0tfQVBJX0FWQUlMQUJMRShpb3Mo
MTEuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBVSUltYWdlICpp
bWFnZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0
ZWRFbGVtZW50SW5mby5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8ubW0JKHJldmlzaW9uIDI0NTgyNSkKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5m
by5tbQkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsNyBAQAogI2lmIFBMQVRGT1JNKE1BQykK
ICAgICBSZXRhaW5QdHI8TlNJbWFnZT4gX25zSW1hZ2U7CiAjZW5kaWYKKyAgICBCT09MIF9pc0Fu
aW1hdGVkSW1hZ2U7CiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtODEsNiArODIs
NyBAQCAtIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoSW50ZXJhY3Rpb25JbmZvCiAgICAgCiAgICAg
X2ltYWdlID0gaW5mb3JtYXRpb24uaW1hZ2U7CiAgICAgX0lEID0gaW5mb3JtYXRpb24uaWRBdHRy
aWJ1dGU7CisgICAgX2lzQW5pbWF0ZWRJbWFnZSA9IGluZm9ybWF0aW9uLmlzQW5pbWF0ZWRJbWFn
ZTsKICAgICAKICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTEzNiw2ICsxMzgsMTEgQEAgLSAoQ0dQ
b2ludClfaW50ZXJhY3Rpb25Mb2NhdGlvbgogICAgIHJldHVybiBfaW50ZXJhY3Rpb25Mb2NhdGlv
bjsKIH0KIAorLSAoQk9PTClpc0FuaW1hdGVkSW1hZ2UKK3sKKyAgICByZXR1cm4gX2lzQW5pbWF0
ZWRJbWFnZTsKK30KKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAtIChOU0RpY3Rpb25hcnkg
Kil1c2VySW5mbwogewpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9u
U2hlZXRBc3Npc3RhbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCShyZXZpc2lvbiAyNDU4MjUpCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zOCw2ICszOCw3IEBAIHN0cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3Np
dGlvbjsKIAogQGNsYXNzIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQ7CiBAY2xhc3MgX1dLQWN0aXZh
dGVkRWxlbWVudEluZm87CitAY2xhc3MgX1dLRWxlbWVudEFjdGlvbjsKIEBwcm90b2NvbCBXS0Fj
dGlvblNoZWV0RGVsZWdhdGU7CiAKIEBwcm90b2NvbCBXS0FjdGlvblNoZWV0QXNzaXN0YW50RGVs
ZWdhdGUgPE5TT2JqZWN0PgpAQCAtNzYsOCArNzcsOCBAQCBzdHJ1Y3QgSW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb247CiAtICh2b2lkKXNob3dEYXRhRGV0ZWN0b3JzU2hlZXQ7CiAtICh2
b2lkKWNsZWFudXBTaGVldDsKIC0gKHZvaWQpdXBkYXRlU2hlZXRQb3NpdGlvbjsKLS0gKFJldGFp
blB0cjxOU0FycmF5PilkZWZhdWx0QWN0aW9uc0ZvckxpbmtTaGVldDooX1dLQWN0aXZhdGVkRWxl
bWVudEluZm8gKillbGVtZW50SW5mbzsKLS0gKFJldGFpblB0cjxOU0FycmF5PilkZWZhdWx0QWN0
aW9uc0ZvckltYWdlU2hlZXQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm87
CistIChSZXRhaW5QdHI8TlNBcnJheTxfV0tFbGVtZW50QWN0aW9uICo+PilkZWZhdWx0QWN0aW9u
c0ZvckxpbmtTaGVldDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbzsKKy0g
KFJldGFpblB0cjxOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4+KWRlZmF1bHRBY3Rpb25zRm9y
SW1hZ2VTaGVldDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbzsKIC0gKEJP
T0wpaXNTaG93aW5nU2hlZXQ7CiAtICh2b2lkKWludGVyYWN0aW9uRGlkU3RhcnRXaXRoUG9zaXRp
b25JbmZvcm1hdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3Np
dGlvbiYpaW5mb3JtYXRpb247CiAtIChOU0FycmF5ICopY3VycmVudEF2YWlsYWJsZUFjdGlvblRp
dGxlczsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNz
aXN0YW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Fj
dGlvblNoZWV0QXNzaXN0YW50Lm1tCShyZXZpc2lvbiAyNDU4MjUpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQkod29ya2luZyBjb3B5KQpA
QCAtNTI5LDcgKzUyOSw3IEBAIC0gKHZvaWQpX2FwcGVuZE9wZW5BY3Rpb25zRm9yVVJMOihOU1VS
TCAKICAgICBbZGVmYXVsdEFjdGlvbnMgYWRkT2JqZWN0OltfV0tFbGVtZW50QWN0aW9uIF9lbGVt
ZW50QWN0aW9uV2l0aFR5cGU6X1dLRWxlbWVudEFjdGlvblR5cGVPcGVuIGFzc2lzdGFudDpzZWxm
XV07CiB9CiAKLS0gKFJldGFpblB0cjxOU0FycmF5PilkZWZhdWx0QWN0aW9uc0ZvckxpbmtTaGVl
dDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbworLSAoUmV0YWluUHRyPE5T
QXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPj4pZGVmYXVsdEFjdGlvbnNGb3JMaW5rU2hlZXQ6KF9X
S0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8KIHsKICAgICBOU1VSTCAqdGFyZ2V0
VVJMID0gW2VsZW1lbnRJbmZvIFVSTF07CiAgICAgaWYgKCF0YXJnZXRVUkwpCkBAIC01NTAsNyAr
NTUwLDcgQEAgLSAoUmV0YWluUHRyPE5TQXJyYXk+KWRlZmF1bHRBY3Rpb25zRm9yTAogICAgIHJl
dHVybiBkZWZhdWx0QWN0aW9uczsKIH0KIAotLSAoUmV0YWluUHRyPE5TQXJyYXk+KWRlZmF1bHRB
Y3Rpb25zRm9ySW1hZ2VTaGVldDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5m
bworLSAoUmV0YWluUHRyPE5TQXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPj4pZGVmYXVsdEFjdGlv
bnNGb3JJbWFnZVNoZWV0OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvCiB7
CiAgICAgTlNVUkwgKnRhcmdldFVSTCA9IFtlbGVtZW50SW5mbyBVUkxdOwogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmgJKHJldmlzaW9uIDI0NTgy
NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmgJKHdvcmtp
bmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiBAaW50ZXJm
YWNlIFdLQ29udGVudFZpZXcgOiBXS0FwcGxpY2F0aW9uU3RhdGVUcmFja2luZ1ZpZXcgewogQHBh
Y2thZ2UKICAgICBSZWZQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IF9wYWdlOwotICAgIFdLV2Vi
VmlldyAqX3dlYlZpZXc7CisgICAgV0tXZWJWaWV3ICpfd2ViVmlldzsgLy8gRklYTUU6IFRoaXMg
c2hvdWxkIGJlIG1hZGUgYSBXZWFrT2JqQ1B0ciBvbmNlIGV2ZXJ5dGhpbmcgdGhhdCByZWZlcnMg
dG8gaXQgaXMgbW92ZWQgdG8gT3BlblNvdXJjZS4KIH0KIAogI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQkocmV2aXNpb24gMjQ1ODI1KQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQAogI2ltcG9ydCAiVGV4dElucHV0U1BJLmgiCiAjaW1w
b3J0ICJVSUtpdFNQSS5oIgogI2ltcG9ydCAiV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oIgorI2lt
cG9ydCAiV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLRGF0
ZVBpY2tlclZpZXdDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS0RyYXdpbmdDb29yZGluYXRvci5o
IgogI2ltcG9ydCAiV0tFcnJvci5oIgpJbmRleDogU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNDU4MjUpCisrKyBTb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC0x
MDcxLDYgKzEwNzEsOCBAQAogCQk1QzRCOUQ4QjIxMEE4Q0NGMDA4RjE0RDEgLyogVW5kb09yUmVk
by5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM0QjlE
OEEyMTBBOEM0NjAwOEYxNEQxIC8qIFVuZG9PclJlZG8uaCAqLzsgfTsKIAkJNUM1RDIzOEMyMjdB
MkNEQTAwMEI5QkRBIC8qIF9XS0N1c3RvbUhlYWRlckZpZWxkcy5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM1RDIzODkyMjdBMTg5MjAwMEI5QkRBIC8q
IF9XS0N1c3RvbUhlYWRlckZpZWxkcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTVDNjJGREY5MUVGQzI3MUMwMENFMDcyRSAvKiBXS1VSTFNjaGVt
ZVRhc2tQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1QzYyRkRGODFFRkMyNjNDMDBDRTA3MkUgLyogV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTVDNzk1
RDcwMjI5RjM3M0YwMDNGRjFDNCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm8uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDRTBDMzY5MjI5RjJENEEw
MDM2OTVGMCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm8uaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCTVDNzk1RDcxMjI5RjM3NTcwMDNGRjFDNCAv
KiBXS0NvbnRleHRNZW51RWxlbWVudEluZm9Qcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0UwQzM2QTIyOUYyRDRBMDAzNjk1RjAgLyogV0tD
b250ZXh0TWVudUVsZW1lbnRJbmZvUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTVDN0ZCNDcwMjFFOTdEQzUwMDlFMzI0MSAvKiBXZWJD
b29raWVKYXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVDN0ZCNDZGMjFFOTdDMEMwMDlFMzI0MSAvKiBXZWJDb29raWVKYXIuaCAqLzsgfTsKIAkJNUM4
QkM3OTcyMThDQkI0ODAwODEzODg2IC8qIFNhZmVCcm93c2luZy54Y2Fzc2V0cyBpbiBSZXNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM4QkM3OTYyMThDQjU4QTAw
ODEzODg2IC8qIFNhZmVCcm93c2luZy54Y2Fzc2V0cyAqLzsgfTsKIAkJNUM4REQzODAxRkU0NTIx
NjAwRjJBNTU2IC8qIFdlYnNpdGVBdXRvcGxheVBvbGljeS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM4REQzN0YxRkU0NTE5MjAwRjJBNTU2IC8qIFdl
YnNpdGVBdXRvcGxheVBvbGljeS5oICovOyB9OwpAQCAtMzU3MCw2ICszNTcyLDEyIEBACiAJCTVD
RDI4NjRFMUU3MjJGNDQwMDk0RkRDOCAvKiBXS0NvbnRlbnRSdWxlTGlzdFN0b3JlLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tDb250ZW50UnVsZUxpc3RTdG9y
ZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNEMjg2NEYxRTcyMkY0NDAwOTRG
REM4IC8qIFdLQ29udGVudFJ1bGVMaXN0U3RvcmVJbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXS0NvbnRlbnRSdWxlTGlzdFN0b3JlSW50ZXJuYWwuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNEMjg2NTAxRTcyMkY0NDAwOTRGREM4IC8qIFdLQ29u
dGVudFJ1bGVMaXN0U3RvcmVQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLQ29udGVudFJ1bGVMaXN0U3RvcmVQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTVDRTBDMzY2MjI5RjJEM0QwMDM2OTVGMCAvKiBBUElDb250ZXh0TWVudUVsZW1l
bnRJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEFQSUNvbnRl
eHRNZW51RWxlbWVudEluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1Q0Uw
QzM2NzIyOUYyRDNFMDAzNjk1RjAgLyogQVBJQ29udGV4dE1lbnVFbGVtZW50SW5mby5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElDb250ZXh0TWVudUVsZW1lbnRJbmZvLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDRTBDMzY4MjI5RjJENEEwMDM2OTVGMCAv
KiBXS0NvbnRleHRNZW51RWxlbWVudEluZm8ubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBXS0NvbnRleHRNZW51RWxlbWVudEluZm8ubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTVDRTBDMzY5MjI5RjJENEEwMDM2OTVGMCAvKiBXS0NvbnRleHRNZW51
RWxlbWVudEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tDb250ZXh0
TWVudUVsZW1lbnRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDRTBDMzZB
MjI5RjJENEEwMDM2OTVGMCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm9Qcml2YXRlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29udGV4dE1lbnVFbGVtZW50SW5mb1By
aXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUNFMEMzNkIyMjlGMkQ0QjAw
MzY5NUYwIC8qIFdLQ29udGV4dE1lbnVFbGVtZW50SW5mb0ludGVybmFsLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29udGV4dE1lbnVFbGVtZW50SW5mb0ludGVybmFsLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDRTg1QjFGMUM4OEU2NDMwMDcwQkZDRSAv
KiBQaW5nTG9hZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQaW5nTG9hZC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0U5MTIwQjIyOTNDMUUwMDA1QkVDNzgg
LyogV0tNYWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLTWFpbi5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0U5MTIwQzIyOTNDMUUwMDA1QkVDNzggLyog
V0tNYWluLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tNYWlu
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjI0NSw2ICs2MjUzLDEwIEBACiAJ
CQkJNUNEMjg2NEUxRTcyMkY0NDAwOTRGREM4IC8qIFdLQ29udGVudFJ1bGVMaXN0U3RvcmUubW0g
Ki8sCiAJCQkJNUNEMjg2NEYxRTcyMkY0NDAwOTRGREM4IC8qIFdLQ29udGVudFJ1bGVMaXN0U3Rv
cmVJbnRlcm5hbC5oICovLAogCQkJCTVDRDI4NjUwMUU3MjJGNDQwMDk0RkRDOCAvKiBXS0NvbnRl
bnRSdWxlTGlzdFN0b3JlUHJpdmF0ZS5oICovLAorCQkJCTVDRTBDMzY5MjI5RjJENEEwMDM2OTVG
MCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm8uaCAqLywKKwkJCQk1Q0UwQzM2ODIyOUYyRDRB
MDAzNjk1RjAgLyogV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLm1tICovLAorCQkJCTVDRTBDMzZC
MjI5RjJENEIwMDM2OTVGMCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm9JbnRlcm5hbC5oICov
LAorCQkJCTVDRTBDMzZBMjI5RjJENEEwMDM2OTVGMCAvKiBXS0NvbnRleHRNZW51RWxlbWVudElu
Zm9Qcml2YXRlLmggKi8sCiAJCQkJMUFGNDU5MkQxOTQ2NEIyMDAwRjlENEEyIC8qIFdLRXJyb3Iu
aCAqLywKIAkJCQkxQUY0NTkyQzE5NDY0QjIwMDBGOUQ0QTIgLyogV0tFcnJvci5tbSAqLywKIAkJ
CQkxQTJEMjUyQTE5NDY4OEZEMDA0NTM3QjAgLyogV0tFcnJvckludGVybmFsLmggKi8sCkBAIC03
NzEwLDYgKzc3MjIsOCBAQAogCQkJCTdDM0EwNkE1MUFBQjkwM0UwMDlENzRCQSAvKiBBUElDb250
ZW50UnVsZUxpc3RTdG9yZS5jcHAgKi8sCiAJCQkJN0MzQTA2QTYxQUFCOTAzRTAwOUQ3NEJBIC8q
IEFQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmggKi8sCiAJCQkJMDc2RTg4NEQxQTEzQ0FERjAwNUU5
MEZDIC8qIEFQSUNvbnRleHRNZW51Q2xpZW50LmggKi8sCisJCQkJNUNFMEMzNjYyMjlGMkQzRDAw
MzY5NUYwIC8qIEFQSUNvbnRleHRNZW51RWxlbWVudEluZm8uY3BwICovLAorCQkJCTVDRTBDMzY3
MjI5RjJEM0UwMDM2OTVGMCAvKiBBUElDb250ZXh0TWVudUVsZW1lbnRJbmZvLmggKi8sCiAJCQkJ
NUM1RDIzOEEyMjdBMUQ5QjAwMEI5QkRBIC8qIEFQSUN1c3RvbUhlYWRlckZpZWxkcy5oICovLAog
CQkJCTdBODIxRjRGMUUyRjdBNUMwMDYwNDU3NyAvKiBBUElDdXN0b21Qcm90b2NvbE1hbmFnZXJD
bGllbnQuaCAqLywKIAkJCQk4Mzg5MUI2MjFBNjhCMzQyMDAzMEYzODYgLyogQVBJRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuaCAqLywKQEAgLTk4ODQsNiArOTg5OCw4IEBACiAJCQkJMUE0NDVCQTMx
ODRENUZDRjAwNEIzNDE0IC8qIFdLQ29udGV4dERvd25sb2FkQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTQ0NUJBMTE4NEQ1RkMxMDA0QjM0MTQgLyogV0tDb250ZXh0SGlzdG9yeUNsaWVu
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0NDVCOUYxODRENUZCNTAwNEIzNDE0IC8qIFdLQ29u
dGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk1Qzc5NUQ3MDIy
OUYzNzNGMDAzRkYxQzQgLyogV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmggaW4gSGVhZGVycyAq
LywKKwkJCQk1Qzc5NUQ3MTIyOUYzNzU3MDAzRkYxQzQgLyogV0tDb250ZXh0TWVudUVsZW1lbnRJ
bmZvUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFBNTU1RjYxMjhDNkM0NzAwOUFCQ0VD
IC8qIFdLQ29udGV4dE1lbnVJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUE1NTYwMTEyOEM2
RDkyMDA5QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQTFFQTAyMzgxREFCRkY3RTAwOTYwMjFGIC8qIFdLQ29udGV4dE1lbnVMaXN0ZW5lci5oIGlu
IEhlYWRlcnMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371458</attachid>
            <date>2019-06-05 17:34:00 -0700</date>
            <delta_ts>2019-06-05 17:40:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198590-20190605173359.patch</filename>
            <type>text/plain</type>
            <size>41860</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDYxMzMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDE5LTA2LTA1ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW50cm9kdWNlIG5l
dyBTUEkgZm9yIGNvbnRleHQgbWVudXMgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg1OTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBBbHNvIGludHJvZHVjZSBXS0NvbnRleHRNZW51RWxlbWVu
dEluZm8gd2hpY2ggaXMgQVBJLgorICAgICAgICBUaGlzIGlzIHBhcnQgb2YgPHJkYXI6Ly9wcm9i
bGVtLzUxMDAzNTAzPgorCisgICAgICAgICogU2hhcmVkL0FQSS9BUElPYmplY3QuaDoKKyAgICAg
ICAgKiBTaGFyZWQvQVBJL0NvY29hL1dlYktpdC5oOgorICAgICAgICAqIFNoYXJlZC9Db2NvYS9B
UElPYmplY3QubW06CisgICAgICAgIChBUEk6Ok9iamVjdDo6bmV3T2JqZWN0KToKKyAgICAgICAg
KiBTb3VyY2VzLnR4dDoKKyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQVBJQ29udGV4dE1lbnVFbGVtZW50SW5mby5jcHA6IEFkZGVkLgorICAgICAg
ICAoQVBJOjpDb250ZXh0TWVudUVsZW1lbnRJbmZvOjpDb250ZXh0TWVudUVsZW1lbnRJbmZvKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSUNvbnRleHRNZW51RWxlbWVudEluZm8uaDogQWRk
ZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRleHRNZW51RWxlbWVudElu
Zm8uaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRleHRNZW51
RWxlbWVudEluZm8ubW06IEFkZGVkLgorICAgICAgICAoLVtXS0NvbnRleHRNZW51RWxlbWVudElu
Zm8gbGlua1VSTF0pOgorICAgICAgICAoLVtXS0NvbnRleHRNZW51RWxlbWVudEluZm8gX2FwaU9i
amVjdF0pOgorICAgICAgICAoLVtXS0NvbnRleHRNZW51RWxlbWVudEluZm8gX2FjdGl2YXRlZEVs
ZW1lbnRJbmZvXSk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRleHRNZW51
RWxlbWVudEluZm9JbnRlcm5hbC5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLQ29udGV4dE1lbnVFbGVtZW50SW5mb1ByaXZhdGUuaDogQWRkZWQuCisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvLm1tOgorICAgICAgICAoLVtf
V0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBfaW5pdFdpdGhJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQ
b3NpdGlvbjpdKToKKyAgICAgICAgKC1bX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gaXNBbmltYXRl
ZEltYWdlXSk6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tOgor
ICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IGRlZmF1bHRBY3Rpb25zRm9yTGlua1No
ZWV0Ol0pOgorICAgICAgICAoLVtXS0FjdGlvblNoZWV0QXNzaXN0YW50IGRlZmF1bHRBY3Rpb25z
Rm9ySW1hZ2VTaGVldDpdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXcu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbToK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAxOS0wNi0w
NSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBUZXN0V2ViS2l0
QVBJLldLV2ViVmlldy5Mb2NhbFN0b3JhZ2VQcm9jZXNzU3VzcGVuZHMgaXMgZmxha3kgb24gcmVs
ZWFzZSBidWlsZHMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU291cmNlcy50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAkocmV2aXNpb24gMjQ1ODI1KQorKysgU291cmNl
L1dlYktpdC9Tb3VyY2VzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMzAwLDYgKzMwMCw3IEBAIFVJ
UHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5jcHAKIFVJUHJvY2Vzcy9BUEkvQVBJQ29udGVudFJ1
bGVMaXN0LmNwcAogVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RBY3Rpb24uY3BwCiBV
SVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmNwcAorVUlQcm9jZXNzL0FQSS9B
UElDb250ZXh0TWVudUVsZW1lbnRJbmZvLmNwcAogVUlQcm9jZXNzL0FQSS9BUElFeHBlcmltZW50
YWxGZWF0dXJlLmNwcAogVUlQcm9jZXNzL0FQSS9BUElGcmFtZUluZm8uY3BwCiBVSVByb2Nlc3Mv
QVBJL0FQSUhUVFBDb29raWVTdG9yZS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU291cmNlc0Nv
Y29hLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQJKHJl
dmlzaW9uIDI0NTgyNSkKKysrIFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgyLDYgKzI4Miw3IEBAIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2lu
Z0NvbnRleHRHcm8KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb25uZWN0aW9uLm1tCiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLQ29udGVudFJ1bGVMaXN0Lm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
Q29udGVudFJ1bGVMaXN0U3RvcmUubW0KK1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZXh0TWVu
dUVsZW1lbnRJbmZvLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3IubW0KIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tGcmFtZUluZm8ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tIVFRQQ29v
a2llU3RvcmUubW0KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQVBJT2JqZWN0LmgJKHJldmlz
aW9uIDI0NTgyNSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaAkod29y
a2luZyBjb3B5KQpAQCAtMTA5LDYgKzEwOSw3IEBAIHB1YmxpYzoKICAgICAgICAgQ29udGVudFJ1
bGVMaXN0LAogICAgICAgICBDb250ZW50UnVsZUxpc3RBY3Rpb24sCiAgICAgICAgIENvbnRlbnRS
dWxlTGlzdFN0b3JlLAorICAgICAgICBDb250ZXh0TWVudUVsZW1lbnRJbmZvLAogICAgICAgICBD
b250ZXh0TWVudUxpc3RlbmVyLAogICAgICAgICBDb29raWVNYW5hZ2VyLAogICAgICAgICBDdXN0
b21IZWFkZXJGaWVsZHMsCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV2Vi
S2l0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dlYktp
dC5oCShyZXZpc2lvbiAyNDU4MjUpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2Ev
V2ViS2l0LmgJKHdvcmtpbmcgY29weSkKQEAgLTI3LDYgKzI3LDcgQEAKICNpbXBvcnQgPFdlYktp
dC9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaD4KICNpbXBvcnQgPFdlYktpdC9XS0NvbnRlbnRSdWxl
TGlzdC5oPgogI2ltcG9ydCA8V2ViS2l0L1dLQ29udGVudFJ1bGVMaXN0U3RvcmUuaD4KKyNpbXBv
cnQgPFdlYktpdC9XS0NvbnRleHRNZW51RWxlbWVudEluZm8uaD4KICNpbXBvcnQgPFdlYktpdC9X
S0Vycm9yLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxXZWJL
aXQvV0tGcmFtZUluZm8uaD4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9i
amVjdC5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BUElPYmpl
Y3QubW0JKHJldmlzaW9uIDI0NTgyNSkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQ
SU9iamVjdC5tbQkod29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCAiV0tD
b25uZWN0aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLQ29udGVudFJ1bGVMaXN0SW50ZXJuYWwu
aCIKICNpbXBvcnQgIldLQ29udGVudFJ1bGVMaXN0U3RvcmVJbnRlcm5hbC5oIgorI2ltcG9ydCAi
V0tDb250ZXh0TWVudUVsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLRnJhbWVJbmZv
SW50ZXJuYWwuaCIKICNpbXBvcnQgIldLSFRUUENvb2tpZVN0b3JlSW50ZXJuYWwuaCIKICNpbXBv
cnQgIldLTlNBcnJheS5oIgpAQCAtMzEzLDYgKzMxNCwxMCBAQCB2b2lkKiBPYmplY3Q6Om5ld09i
amVjdChzaXplX3Qgc2l6ZSwgVHlwCiAgICAgICAgIHdyYXBwZXIgPSBbV0tDb250ZW50UnVsZUxp
c3RTdG9yZSBhbGxvY107CiAgICAgICAgIGJyZWFrOwogCisgICAgY2FzZSBUeXBlOjpDb250ZXh0
TWVudUVsZW1lbnRJbmZvOgorICAgICAgICB3cmFwcGVyID0gW1dLQ29udGV4dE1lbnVFbGVtZW50
SW5mbyBhbGxvY107CisgICAgICAgIGJyZWFrOworCiAgICAgY2FzZSBUeXBlOjpDdXN0b21IZWFk
ZXJGaWVsZHM6CiAgICAgICAgIHdyYXBwZXIgPSBbX1dLQ3VzdG9tSGVhZGVyRmllbGRzIGFsbG9j
XTsKICAgICAgICAgYnJlYWs7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
Q29udGV4dE1lbnVFbGVtZW50SW5mby5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUNvbnRleHRNZW51RWxlbWVudEluZm8uY3BwCShub25leGlzdGVudCkK
KysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZXh0TWVudUVsZW1lbnRJbmZv
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1
ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkFQSUNvbnRleHRNZW51RWxlbWVudEluZm8uaCIKKwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKK25hbWVzcGFjZSBBUEkgeworCitDb250ZXh0TWVu
dUVsZW1lbnRJbmZvOjpDb250ZXh0TWVudUVsZW1lbnRJbmZvKGNvbnN0IFdlYktpdDo6SW50ZXJh
Y3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mIGluZm8pCisgICAgOiBtX2ludGVyYWN0aW9uSW5m
b3JtYXRpb24oaW5mbykKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgQVBJCisKKyNlbmRpZiAvLyBQ
TEFURk9STShJT1NfRkFNSUxZKQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQ
SUNvbnRleHRNZW51RWxlbWVudEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJQ29udGV4dE1lbnVFbGVtZW50SW5mby5oCShub25leGlzdGVudCkKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZXh0TWVudUVsZW1lbnRJbmZvLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgor
I2luY2x1ZGUgIkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uLmgiCisKK25hbWVzcGFj
ZSBBUEkgeworCitjbGFzcyBDb250ZXh0TWVudUVsZW1lbnRJbmZvIGZpbmFsIDogcHVibGljIE9i
amVjdEltcGw8T2JqZWN0OjpUeXBlOjpDb250ZXh0TWVudUVsZW1lbnRJbmZvPiB7CitwdWJsaWM6
CisgICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gQXJncz4gc3RhdGljIFJlZjxDb250ZXh0TWVudUVs
ZW1lbnRJbmZvPiBjcmVhdGUoQXJncyYmLi4uIGFyZ3MpCisgICAgeworICAgICAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBDb250ZXh0TWVudUVsZW1lbnRJbmZvKHN0ZDo6Zm9yd2FyZDxBcmdzPihh
cmdzKS4uLikpOworICAgIH0KKyAgICAKKyAgICBjb25zdCBXVEY6OlVSTCYgdXJsKCkgY29uc3Qg
eyByZXR1cm4gbV9pbnRlcmFjdGlvbkluZm9ybWF0aW9uLnVybDsgfQorCisgICAgY29uc3QgV2Vi
S2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYgaW50ZXJhY3Rpb25JbmZvcm1h
dGlvbigpIGNvbnN0IHsgcmV0dXJuIG1faW50ZXJhY3Rpb25JbmZvcm1hdGlvbjsgfQorCitwcml2
YXRlOgorICAgIENvbnRleHRNZW51RWxlbWVudEluZm8oY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlv
bkluZm9ybWF0aW9uQXRQb3NpdGlvbiYpOworICAgIAorICAgIFdlYktpdDo6SW50ZXJhY3Rpb25J
bmZvcm1hdGlvbkF0UG9zaXRpb24gbV9pbnRlcmFjdGlvbkluZm9ybWF0aW9uOworfTsKKworI2Vu
ZGlmCisgICAgCit9IC8vIG5hbWVzcGFjZSBBUEkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0NvbnRleHRNZW51RWxlbWVudEluZm8uaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZXh0TWVudUVsZW1lbnRJbmZv
LmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
Q29udGV4dE1lbnVFbGVtZW50SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVk
aXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0
IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBk
b2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlz
dHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5D
LiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJ
TVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhF
IElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05T
RVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJF
TUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERB
VEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FV
U0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJB
Q1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERB
TUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZiBUQVJH
RVRfT1NfSVBIT05FCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCitOU19B
U1NVTUVfTk9OTlVMTF9CRUdJTgorCitXS19DTEFTU19BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEp
KQorQGludGVyZmFjZSBXS0NvbnRleHRNZW51RWxlbWVudEluZm8gOiBOU09iamVjdAorCistIChp
bnN0YW5jZXR5cGUpaW5pdCBOU19VTkFWQUlMQUJMRTsKKworQHByb3BlcnR5IChub25hdG9taWMs
IHJlYWRvbmx5LCBudWxsYWJsZSkgTlNVUkwgKmxpbmtVUkw7CisKK0BlbmQKKworTlNfQVNTVU1F
X05PTk5VTExfRU5ECisKKyNlbmRpZgorCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRleHRNZW51RWxlbWVudEluZm8ubW0J
KG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29u
dGV4dE1lbnVFbGVtZW50SW5mby5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXS0NvbnRleHRNZW51RWxl
bWVudEluZm9JbnRlcm5hbC5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2ltcG9y
dCAiX1dLQWN0aXZhdGVkRWxlbWVudEluZm9JbnRlcm5hbC5oIgorCitAaW1wbGVtZW50YXRpb24g
V0tDb250ZXh0TWVudUVsZW1lbnRJbmZvCisKKy0gKE5TVVJMICopbGlua1VSTAoreworICAgIHJl
dHVybiBfZWxlbWVudEluZm8tPnVybCgpOworfQorCistIChBUEk6Ok9iamVjdCYpX2FwaU9iamVj
dAoreworICAgIHJldHVybiAqX2VsZW1lbnRJbmZvOworfQorCitAZW5kCisKK0BpbXBsZW1lbnRh
dGlvbiBXS0NvbnRleHRNZW51RWxlbWVudEluZm8gKFdLUHJpdmF0ZSkKKworLSAoX1dLQWN0aXZh
dGVkRWxlbWVudEluZm8gKilfYWN0aXZhdGVkRWxlbWVudEluZm8KK3sKKyAgICByZXR1cm4gW19X
S0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFjdGl2YXRlZEVsZW1lbnRJbmZvV2l0aEludGVyYWN0aW9u
SW5mb3JtYXRpb25BdFBvc2l0aW9uOl9lbGVtZW50SW5mby0+aW50ZXJhY3Rpb25JbmZvcm1hdGlv
bigpXTsKK30KKworQGVuZAorCisjZW5kaWYKKwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQ29udGV4dE1lbnVFbGVtZW50SW5mb0ludGVybmFsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGV4dE1lbnVFbGVt
ZW50SW5mb0ludGVybmFsLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQ29udGV4dE1lbnVFbGVtZW50SW5mb0ludGVybmFsLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTAsMCArMSw0MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIkFQSUNvbnRleHRN
ZW51RWxlbWVudEluZm8uaCIKKyNpbXBvcnQgIldLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oIgor
I2ltcG9ydCAiV0tPYmplY3QuaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3RlbXBsYXRlPD4g
c3RydWN0IFdyYXBwZXJUcmFpdHM8QVBJOjpDb250ZXh0TWVudUVsZW1lbnRJbmZvPiB7CisgICAg
dXNpbmcgV3JhcHBlckNsYXNzID0gV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvOworfTsKKworfQor
CitAaW50ZXJmYWNlIFdLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAoKSA8V0tPYmplY3Q+IHsKK0Bw
YWNrYWdlCisgICAgQVBJOjpPYmplY3RTdG9yYWdlPEFQSTo6Q29udGV4dE1lbnVFbGVtZW50SW5m
bz4gX2VsZW1lbnRJbmZvOworfQorQGVuZApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL1dLQ29udGV4dE1lbnVFbGVtZW50SW5mb1ByaXZhdGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZXh0TWVudUVsZW1lbnRJ
bmZvUHJpdmF0ZS5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0NvbnRleHRNZW51RWxlbWVudEluZm9Qcml2YXRlLmgJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktpdC9XS0NvbnRleHRN
ZW51RWxlbWVudEluZm8uaD4KKworQGNsYXNzIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvOworCitA
aW50ZXJmYWNlIFdLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAoV0tQcml2YXRlKQorCitAcHJvcGVy
dHkgKG5vbmF0b21pYywgY29weSwgcmVhZG9ubHkpIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICpf
YWN0aXZhdGVkRWxlbWVudEluZm87CisKK0BlbmQKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1ByZXZpZXdFbGVtZW50SW5mby5oCShyZXZp
c2lvbiAyNDU4MjUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2
aWV3RWxlbWVudEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtMzEsNyArMzEsNyBAQAogCiBOU19B
U1NVTUVfTk9OTlVMTF9CRUdJTgogCi1XS19DTEFTU19BVkFJTEFCTEUoaW9zKDEwLjApKQorV0tf
Q0xBU1NfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJXS0NvbnRleHRNZW51RWxlbWVudElu
Zm8iLCBpb3MoMTAuMCwgV0tfSU9TX1RCQSkpCiBAaW50ZXJmYWNlIFdLUHJldmlld0VsZW1lbnRJ
bmZvIDogTlNPYmplY3QgPE5TQ29weWluZz4KIAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5LCBudWxsYWJsZSkgTlNVUkwgKmxpbmtVUkw7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgJKHJldmlz
aW9uIDI0NTgyNSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVs
ZWdhdGVQcml2YXRlLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDggKzQwLDExIEBACiBAY2xhc3Mg
X1dLRnJhbWVIYW5kbGU7CiAKICNpZiBUQVJHRVRfT1NfSU9TCitAY2xhc3MgVUlDb250ZXh0TWVu
dUNvbmZpZ3VyYXRpb247CiBAY2xhc3MgVUlEcmFnSXRlbTsKIEBjbGFzcyBVSVRhcmdldGVkRHJh
Z1ByZXZpZXc7CitAY2xhc3MgV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvOworQHByb3RvY29sIFVJ
Q29udGV4dE1lbnVJbnRlcmFjdGlvbkNvbW1pdEFuaW1hdGluZzsKIEBwcm90b2NvbCBVSURyYWdT
ZXNzaW9uOwogQHByb3RvY29sIFVJRHJvcFNlc3Npb247CiAjZWxzZQpAQCAtMTM1LDI0ICsxMzgs
MzMgQEAgc3RydWN0IFVJRWRnZUluc2V0czsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgZGlkTm90SGFuZGxlVGFwQXNDbGlja0F0UG9pbnQ6KENHUG9pbnQpcG9pbnQ7CiAt
IChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZFJlcXVlc3RHZW9sb2Nh
dGlvbkF1dGhvcml6YXRpb25Gb3JVUkw6KE5TVVJMICopdXJsIGlzTWFpbkZyYW1lOihCT09MKWlz
TWFpbkZyYW1lIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkw7CiAtICh2b2lkKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RHZW9sb2NhdGlvbkF1dGhvcml6YXRp
b25Gb3JVUkw6KE5TVVJMICopdXJsIGZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGRlY2lzaW9u
SGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIgV0tfQVBJ
X0FWQUlMQUJMRShpb3MoMTEuMCkpOwotLSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvclVSTDooTlNVUkwgKil1
cmwgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4wKSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZp
ZXcgKil3ZWJWaWV3IGNvbW1pdFByZXZpZXdlZFZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9s
bGVyICopcHJldmlld2VkVmlld0NvbnRyb2xsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4wKSk7
Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxQcmV2aWV3SW1hZ2VX
aXRoVVJMOihOU1VSTCAqKWltYWdlVVJMIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOwotLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb21taXRQcmV2aWV3ZWRJbWFnZVdp
dGhVUkw6KE5TVVJMICopaW1hZ2VVUkwgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4wKSk7Ci0tICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZERpc21pc3NQcmV2aWV3Vmlld0Nv
bnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIgKilwcmV2aWV3ZWRWaWV3Q29udHJvbGxlciBjb21t
aXR0aW5nOihCT09MKWNvbW1pdHRpbmcgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4wKSk7Ci0tICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZERpc21pc3NQcmV2aWV3Vmlld0Nv
bnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIgKilwcmV2aWV3ZWRWaWV3Q29udHJvbGxlciBXS19B
UElfQVZBSUxBQkxFKGlvcyg5LjApKTsKKy0gKFVJVmlld0NvbnRyb2xsZXIgKilfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xsZXJGb3JVUkw6KE5TVVJMICop
dXJsIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIndlYlZpZXc6Y29udGV4dE1l
bnVDb25maWd1cmF0aW9uRm9yRWxlbWVudDpjb21wbGV0aW9uSGFuZGxlcjoiLCBpb3MoOS4wLCBX
S19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbW1p
dFByZXZpZXdlZFZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopcHJldmlld2VkVmll
d0NvbnRyb2xsZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgid2ViVmlldzpj
b21taXRDb250ZXh0TWVudToiLCBpb3MoOS4wLCBXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHdpbGxQcmV2aWV3SW1hZ2VXaXRoVVJMOihOU1VSTCAq
KWltYWdlVVJMIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIndlYlZpZXc6Y29u
dGV4dE1lbnVDb25maWd1cmF0aW9uRm9yRWxlbWVudDpjb21wbGV0aW9uSGFuZGxlcjoiLCBpb3Mo
OS4wLCBXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IGNvbW1pdFByZXZpZXdlZEltYWdlV2l0aFVSTDooTlNVUkwgKilpbWFnZVVSTCBXS19BUElfREVQ
UkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJ3ZWJWaWV3OmNvbW1pdENvbnRleHRNZW51OiIsIGlv
cyg5LjAsIFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgZGlkRGlzbWlzc1ByZXZpZXdWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKXBy
ZXZpZXdlZFZpZXdDb250cm9sbGVyIGNvbW1pdHRpbmc6KEJPT0wpY29tbWl0dGluZyBXS19BUElf
REVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJ3ZWJWaWV3OmRpc21pc3NDb250ZXh0TWVudToi
LCBpb3MoOS4wLCBXS19JT1NfVEJBKSk7CistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IGRpZERpc21pc3NQcmV2aWV3Vmlld0NvbnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIg
KilwcmV2aWV3ZWRWaWV3Q29udHJvbGxlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VN
RU5UKCJ3ZWJWaWV3OmRpc21pc3NDb250ZXh0TWVudToiLCBpb3MoOS4wLCBXS19JT1NfVEJBKSk7
CisKKy8vIFRoaXMgbmVlZHMgdG8gYmUga2VwdCBvbmNlIHRoZXJlIGlzIGFuIEFQSSB2ZXJzaW9u
IHRvIGFsbG93IG5vdGlmaWNhdGlvbnMgZm9yIGltYWdlcy4KKy0gKHZvaWQpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgY29udGV4dE1lbnVDb25maWd1cmF0aW9uRm9yRWxlbWVudDooV0tD
b250ZXh0TWVudUVsZW1lbnRJbmZvICopZWxlbWVudEluZm8gY29tcGxldGlvbkhhbmRsZXI6KHZv
aWQoXikoVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKikpY29tcGxldGlvbkhhbmRsZXIgV0tf
QVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworCisvLyBUaGVzZSBjYW4gYmUgcmVtb3Zl
ZCBvbmNlIHRoZXJlIGlzIGFuIEFQSSB2ZXJzaW9uLgorLSAodm9pZClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBjb250ZXh0TWVudUZvckVsZW1lbnQ6KFdLQ29udGV4dE1lbnVFbGVtZW50
SW5mbyAqKWVsZW1lbnRJbmZvIHdpbGxDb21taXRXaXRoQW5pbWF0b3I6KGlkPFVJQ29udGV4dE1l
bnVJbnRlcmFjdGlvbkNvbW1pdEFuaW1hdGluZz4pYW5pbWF0b3IgV0tfQVBJX0FWQUlMQUJMRShp
b3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBj
b250ZXh0TWVudVdpbGxQcmVzZW50Rm9yRWxlbWVudDooV0tDb250ZXh0TWVudUVsZW1lbnRJbmZv
ICopZWxlbWVudEluZm8gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworLSAodm9p
ZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250ZXh0TWVudURpZEVuZEZvckVsZW1l
bnQ6KFdLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIFdLX0FQSV9BVkFJTEFC
TEUoaW9zKFdLX0lPU19UQkEpKTsKKwogLSAoQk9PTClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyBzaG93Q3VzdG9tU2hlZXRGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAq
KWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMCkpOwogLSAodm9pZClfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBhbHRlcm5hdGVBY3Rpb25Gb3JVUkw6KE5TVVJMICopdXJsIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKIC0gKE5TQXJyYXkgKilfYXR0YWNobWVudExpc3RG
b3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjAp
KTsKIC0gKE5TQXJyYXkgKilfYXR0YWNobWVudExpc3RGb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3
ZWJWaWV3IHNvdXJjZUlzTWFuYWdlZDooQk9PTCopc291cmNlSXNNYW5hZ2VkIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKDEwLjMpKTsKIC0gKE5TVUludGVnZXIpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgaW5kZXhJbnRvQXR0YWNobWVudExpc3RGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVt
ZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMykpOwogLSAoVUlFZGdl
SW5zZXRzKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGZpbmFsT2JzY3VyZWRJbnNldHNG
b3JTY3JvbGxWaWV3OihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpdGhWZWxvY2l0eTooQ0dQ
b2ludCl2ZWxvY2l0eSB0YXJnZXRDb250ZW50T2Zmc2V0Oihpbm91dCBDR1BvaW50ICopdGFyZ2V0
Q29udGVudE9mZnNldCBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjApKTsKLS0gKFVJVmlld0NvbnRy
b2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xs
ZXJGb3JVUkw6KE5TVVJMICopdXJsIGRlZmF1bHRBY3Rpb25zOihOU0FycmF5PF9XS0VsZW1lbnRB
Y3Rpb24gKj4gKilhY3Rpb25zIGVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAq
KWVsZW1lbnRJbmZvIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOwotLSAoVUlWaWV3Q29udHJv
bGxlciAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxl
ckZvckFuaW1hdGVkSW1hZ2VBdFVSTDooTlNVUkwgKil1cmwgZGVmYXVsdEFjdGlvbnM6KE5TQXJy
YXk8X1dLRWxlbWVudEFjdGlvbiAqPiAqKWFjdGlvbnMgZWxlbWVudEluZm86KF9XS0FjdGl2YXRl
ZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8gaW1hZ2VTaXplOihDR1NpemUpaW1hZ2VTaXplIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOworLSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvclVSTDooTlNVUkwg
Kil1cmwgZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPiAqKWFjdGlv
bnMgZWxlbWVudEluZm86KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8gV0tf
QVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgid2ViVmlldzpjb250ZXh0TWVudUNvbmZp
Z3VyYXRpb25Gb3JFbGVtZW50OiIsIGlvcyg5LjAsIFdLX0lPU19UQkEpKTsKKy0gKFVJVmlld0Nv
bnRyb2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRy
b2xsZXJGb3JBbmltYXRlZEltYWdlQXRVUkw6KE5TVVJMICopdXJsIGRlZmF1bHRBY3Rpb25zOihO
U0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4gKilhY3Rpb25zIGVsZW1lbnRJbmZvOihfV0tBY3Rp
dmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIGltYWdlU2l6ZTooQ0dTaXplKWltYWdlU2l6
ZSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJ3ZWJWaWV3OmNvbnRleHRNZW51
Q29uZmlndXJhdGlvbkZvckVsZW1lbnQ6IiwgaW9zKDkuMCwgV0tfSU9TX1RCQSkpOwogLSAoVUlW
aWV3Q29udHJvbGxlciAqKV9wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3OihXS1dl
YlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKIC0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZ2V0QWx0ZXJuYXRlVVJMRnJvbUltYWdlOihVSUlt
YWdlICopaW1hZ2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TVVJMICphbHRlcm5hdGVV
UkwsIE5TRGljdGlvbmFyeSAqdXNlckluZm8pKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKDExLjApKTsKIC0gKE5TVVJMICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgYWx0ZXJuYXRlVVJMRnJvbUltYWdlOihVSUltYWdlICopaW1hZ2UgdXNlckluZm86KE5TRGlj
dGlvbmFyeSAqKil1c2VySW5mbyBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7Ci0tIChVSVZp
ZXdDb250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmlld1ZpZXdD
b250cm9sbGVyRm9ySW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSBhbHRlcm5hdGVVUkw6KE5TVVJMICop
dXJsIGRlZmF1bHRBY3Rpb25zOihOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4gKilhY3Rpb25z
IGVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIFdLX0FQ
SV9BVkFJTEFCTEUoaW9zKDExLjApKTsKKy0gKFVJVmlld0NvbnRyb2xsZXIgKilfd2ViVmlldzoo
V0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xsZXJGb3JJbWFnZTooVUlJbWFn
ZSAqKWltYWdlIGFsdGVybmF0ZVVSTDooTlNVUkwgKil1cmwgZGVmYXVsdEFjdGlvbnM6KE5TQXJy
YXk8X1dLRWxlbWVudEFjdGlvbiAqPiAqKWFjdGlvbnMgZWxlbWVudEluZm86KF9XS0FjdGl2YXRl
ZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8gV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNF
TUVOVCgid2ViVmlldzpjb250ZXh0TWVudUNvbmZpZ3VyYXRpb25Gb3JFbGVtZW50OiIsIGlvcygx
MS4wLCBXS19JT1NfVEJBKSk7CiAtIChOU0FycmF5ICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgYWRqdXN0ZWREYXRhSW50ZXJhY3Rpb25JdGVtUHJvdmlkZXJzOihOU0FycmF5ICopb3Jp
Z2luYWxJdGVtUHJvdmlkZXJzIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKIC0gKE5TQXJy
YXkgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBhZGp1c3RlZERhdGFJbnRlcmFjdGlv
bkl0ZW1Qcm92aWRlcnNGb3JJdGVtUHJvdmlkZXI6KGlkKWl0ZW1Qcm92aWRlciByZXByZXNlbnRp
bmdPYmplY3RzOihOU0FycmF5ICopcmVwcmVzZW50aW5nT2JqZWN0cyBhZGRpdGlvbmFsRGF0YToo
TlNEaWN0aW9uYXJ5ICopYWRkaXRpb25hbERhdGEgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkp
OwogLSAoQk9PTClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwZXJmb3JtRGF0YUludGVy
YWN0aW9uT3BlcmF0aW9uV2l0aEl0ZW1Qcm92aWRlcnM6KE5TQXJyYXkgKilpdGVtUHJvdmlkZXJz
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5o
CShyZXZpc2lvbiAyNDU4MjUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcsNyBA
QCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wCiBAcHJvcGVydHkgKG5v
bmF0b21pYywgcmVhZG9ubHkpIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlIHR5cGU7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUmVjdCBib3VuZGluZ1JlY3Q7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpJRCBXS19BUElfQVZBSUxBQkxFKG1hY29z
KDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkgQk9P
TCBpc0FuaW1hdGVkSW1hZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9z
KFdLX0lPU19UQkEpKTsKICNpZiBUQVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIE5TRGljdGlvbmFyeSAqdXNlckluZm8gV0tfQVBJX0FWQUlMQUJMRShpb3Mo
MTEuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBVSUltYWdlICpp
bWFnZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0
ZWRFbGVtZW50SW5mby5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8ubW0JKHJldmlzaW9uIDI0NTgyNSkKKysr
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5m
by5tbQkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsNyBAQAogI2lmIFBMQVRGT1JNKE1BQykK
ICAgICBSZXRhaW5QdHI8TlNJbWFnZT4gX25zSW1hZ2U7CiAjZW5kaWYKKyAgICBCT09MIF9pc0Fu
aW1hdGVkSW1hZ2U7CiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtODEsNiArODIs
NyBAQCAtIChpbnN0YW5jZXR5cGUpX2luaXRXaXRoSW50ZXJhY3Rpb25JbmZvCiAgICAgCiAgICAg
X2ltYWdlID0gaW5mb3JtYXRpb24uaW1hZ2U7CiAgICAgX0lEID0gaW5mb3JtYXRpb24uaWRBdHRy
aWJ1dGU7CisgICAgX2lzQW5pbWF0ZWRJbWFnZSA9IGluZm9ybWF0aW9uLmlzQW5pbWF0ZWRJbWFn
ZTsKICAgICAKICAgICByZXR1cm4gc2VsZjsKIH0KQEAgLTEzNiw2ICsxMzgsMTEgQEAgLSAoQ0dQ
b2ludClfaW50ZXJhY3Rpb25Mb2NhdGlvbgogICAgIHJldHVybiBfaW50ZXJhY3Rpb25Mb2NhdGlv
bjsKIH0KIAorLSAoQk9PTClpc0FuaW1hdGVkSW1hZ2UKK3sKKyAgICByZXR1cm4gX2lzQW5pbWF0
ZWRJbWFnZTsKK30KKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAtIChOU0RpY3Rpb25hcnkg
Kil1c2VySW5mbwogewpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9u
U2hlZXRBc3Npc3RhbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCShyZXZpc2lvbiAyNDU4MjUpCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCSh3b3JraW5nIGNv
cHkpCkBAIC0zOCw2ICszOCw3IEBAIHN0cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3Np
dGlvbjsKIAogQGNsYXNzIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQ7CiBAY2xhc3MgX1dLQWN0aXZh
dGVkRWxlbWVudEluZm87CitAY2xhc3MgX1dLRWxlbWVudEFjdGlvbjsKIEBwcm90b2NvbCBXS0Fj
dGlvblNoZWV0RGVsZWdhdGU7CiAKIEBwcm90b2NvbCBXS0FjdGlvblNoZWV0QXNzaXN0YW50RGVs
ZWdhdGUgPE5TT2JqZWN0PgpAQCAtNzYsOCArNzcsOCBAQCBzdHJ1Y3QgSW50ZXJhY3Rpb25JbmZv
cm1hdGlvbkF0UG9zaXRpb247CiAtICh2b2lkKXNob3dEYXRhRGV0ZWN0b3JzU2hlZXQ7CiAtICh2
b2lkKWNsZWFudXBTaGVldDsKIC0gKHZvaWQpdXBkYXRlU2hlZXRQb3NpdGlvbjsKLS0gKFJldGFp
blB0cjxOU0FycmF5PilkZWZhdWx0QWN0aW9uc0ZvckxpbmtTaGVldDooX1dLQWN0aXZhdGVkRWxl
bWVudEluZm8gKillbGVtZW50SW5mbzsKLS0gKFJldGFpblB0cjxOU0FycmF5PilkZWZhdWx0QWN0
aW9uc0ZvckltYWdlU2hlZXQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm87
CistIChSZXRhaW5QdHI8TlNBcnJheTxfV0tFbGVtZW50QWN0aW9uICo+PilkZWZhdWx0QWN0aW9u
c0ZvckxpbmtTaGVldDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbzsKKy0g
KFJldGFpblB0cjxOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4+KWRlZmF1bHRBY3Rpb25zRm9y
SW1hZ2VTaGVldDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbzsKIC0gKEJP
T0wpaXNTaG93aW5nU2hlZXQ7CiAtICh2b2lkKWludGVyYWN0aW9uRGlkU3RhcnRXaXRoUG9zaXRp
b25JbmZvcm1hdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3Np
dGlvbiYpaW5mb3JtYXRpb247CiAtIChOU0FycmF5ICopY3VycmVudEF2YWlsYWJsZUFjdGlvblRp
dGxlczsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNz
aXN0YW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Fj
dGlvblNoZWV0QXNzaXN0YW50Lm1tCShyZXZpc2lvbiAyNDU4MjUpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQkod29ya2luZyBjb3B5KQpA
QCAtNTI5LDcgKzUyOSw3IEBAIC0gKHZvaWQpX2FwcGVuZE9wZW5BY3Rpb25zRm9yVVJMOihOU1VS
TCAKICAgICBbZGVmYXVsdEFjdGlvbnMgYWRkT2JqZWN0OltfV0tFbGVtZW50QWN0aW9uIF9lbGVt
ZW50QWN0aW9uV2l0aFR5cGU6X1dLRWxlbWVudEFjdGlvblR5cGVPcGVuIGFzc2lzdGFudDpzZWxm
XV07CiB9CiAKLS0gKFJldGFpblB0cjxOU0FycmF5PilkZWZhdWx0QWN0aW9uc0ZvckxpbmtTaGVl
dDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbworLSAoUmV0YWluUHRyPE5T
QXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPj4pZGVmYXVsdEFjdGlvbnNGb3JMaW5rU2hlZXQ6KF9X
S0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8KIHsKICAgICBOU1VSTCAqdGFyZ2V0
VVJMID0gW2VsZW1lbnRJbmZvIFVSTF07CiAgICAgaWYgKCF0YXJnZXRVUkwpCkBAIC01NTAsNyAr
NTUwLDcgQEAgLSAoUmV0YWluUHRyPE5TQXJyYXk+KWRlZmF1bHRBY3Rpb25zRm9yTAogICAgIHJl
dHVybiBkZWZhdWx0QWN0aW9uczsKIH0KIAotLSAoUmV0YWluUHRyPE5TQXJyYXk+KWRlZmF1bHRB
Y3Rpb25zRm9ySW1hZ2VTaGVldDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5m
bworLSAoUmV0YWluUHRyPE5TQXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPj4pZGVmYXVsdEFjdGlv
bnNGb3JJbWFnZVNoZWV0OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvCiB7
CiAgICAgTlNVUkwgKnRhcmdldFVSTCA9IFtlbGVtZW50SW5mbyBVUkxdOwogCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmgJKHJldmlzaW9uIDI0NTgy
NSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmgJKHdvcmtp
bmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiBAaW50ZXJm
YWNlIFdLQ29udGVudFZpZXcgOiBXS0FwcGxpY2F0aW9uU3RhdGVUcmFja2luZ1ZpZXcgewogQHBh
Y2thZ2UKICAgICBSZWZQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IF9wYWdlOwotICAgIFdLV2Vi
VmlldyAqX3dlYlZpZXc7CisgICAgV0tXZWJWaWV3ICpfd2ViVmlldzsgLy8gRklYTUU6IFRoaXMg
c2hvdWxkIGJlIG1hZGUgYSBXZWFrT2JqQ1B0ciBvbmNlIGV2ZXJ5dGhpbmcgdGhhdCByZWZlcnMg
dG8gaXQgaXMgbW92ZWQgdG8gT3BlblNvdXJjZS4KIH0KIAogI3ByYWdtYSBjbGFuZyBkaWFnbm9z
dGljIHB1c2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
SW50ZXJhY3Rpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQkocmV2aXNpb24gMjQ1ODI1KQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQAogI2ltcG9ydCAiVGV4dElucHV0U1BJLmgiCiAjaW1w
b3J0ICJVSUtpdFNQSS5oIgogI2ltcG9ydCAiV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oIgorI2lt
cG9ydCAiV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLRGF0
ZVBpY2tlclZpZXdDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS0RyYXdpbmdDb29yZGluYXRvci5o
IgogI2ltcG9ydCAiV0tFcnJvci5oIgpAQCAtNzUxNCw3ICs3NTE1LDkgQEAgLSAoVUlWaWV3Q29u
dHJvbGxlciAqKV9wcmVzZW50ZWRWaWV3Q29udAogCiAgICAgICAgICAgICBpZiAoW3VpRGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpwcmV2aWV3Vmlld0NvbnRy
b2xsZXJGb3JBbmltYXRlZEltYWdlQXRVUkw6ZGVmYXVsdEFjdGlvbnM6ZWxlbWVudEluZm86aW1h
Z2VTaXplOildKSB7CiAgICAgICAgICAgICAgICAgUmV0YWluUHRyPE5TQXJyYXk+IGFjdGlvbnMg
PSBbX2FjdGlvblNoZWV0QXNzaXN0YW50IGRlZmF1bHRBY3Rpb25zRm9ySW1hZ2VTaGVldDphbmlt
YXRlZEltYWdlRWxlbWVudEluZm8uZ2V0KCldOworICAgICAgICAgICAgICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICAgICAgcmV0dXJuIFt1aURlbGVn
YXRlIF93ZWJWaWV3Ol93ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvckFuaW1hdGVkSW1h
Z2VBdFVSTDp0YXJnZXRVUkwgZGVmYXVsdEFjdGlvbnM6YWN0aW9ucy5nZXQoKSBlbGVtZW50SW5m
bzphbmltYXRlZEltYWdlRWxlbWVudEluZm8uZ2V0KCkgaW1hZ2VTaXplOl9wb3NpdGlvbkluZm9y
bWF0aW9uLmltYWdlLT5zaXplKCldOworICAgICAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURf
REVDTEFSQVRJT05TX0VORAogICAgICAgICAgICAgfQogICAgICAgICB9CiAKQEAgLTc1MzYsMTEg
Kzc1MzksMTQgQEAgLSAoVUlWaWV3Q29udHJvbGxlciAqKV9wcmVzZW50ZWRWaWV3Q29udAogICAg
ICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgICAgIH0KIAor
ICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAgICAgICBpZiAo
W3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpwcmV2aWV3
Vmlld0NvbnRyb2xsZXJGb3JVUkw6ZGVmYXVsdEFjdGlvbnM6ZWxlbWVudEluZm86KV0pCiAgICAg
ICAgICAgICByZXR1cm4gW3VpRGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgcHJldmlld1ZpZXdD
b250cm9sbGVyRm9yVVJMOnRhcmdldFVSTCBkZWZhdWx0QWN0aW9uczphY3Rpb25zLmdldCgpIGVs
ZW1lbnRJbmZvOmVsZW1lbnRJbmZvLmdldCgpXTsKIAogICAgICAgICBpZiAoW3VpRGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpwcmV2aWV3Vmlld0NvbnRyb2xs
ZXJGb3JVUkw6KV0pCiAgICAgICAgICAgICByZXR1cm4gW3VpRGVsZWdhdGUgX3dlYlZpZXc6X3dl
YlZpZXcgcHJldmlld1ZpZXdDb250cm9sbGVyRm9yVVJMOnRhcmdldFVSTF07CisgICAgICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAorCiAgICAgICAgIHJldHVybiBuaWw7CiAg
ICAgfQogCkBAIC03NTYxLDEyICs3NTY3LDE2IEBAIC0gKFVJVmlld0NvbnRyb2xsZXIgKilfcHJl
c2VudGVkVmlld0NvbnQKICAgICAgICAgUmV0YWluUHRyPF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZv
PiBlbGVtZW50SW5mbyA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBhbGxvY10g
X2luaXRXaXRoVHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUltYWdlIFVSTDphbHRlcm5hdGVV
UkwuZ2V0KCkgaW1hZ2VVUkw6bmlsIGxvY2F0aW9uOl9wb3NpdGlvbkluZm9ybWF0aW9uLnJlcXVl
c3QucG9pbnQgdGl0bGU6X3Bvc2l0aW9uSW5mb3JtYXRpb24udGl0bGUgSUQ6X3Bvc2l0aW9uSW5m
b3JtYXRpb24uaWRBdHRyaWJ1dGUgcmVjdDpfcG9zaXRpb25JbmZvcm1hdGlvbi5ib3VuZHMgaW1h
Z2U6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2UuZ2V0KCkgdXNlckluZm86aW1hZ2VJbmZvLmdl
dCgpXSk7CiAgICAgICAgIF9wYWdlLT5zdGFydEludGVyYWN0aW9uV2l0aEVsZW1lbnRBdFBvc2l0
aW9uKF9wb3NpdGlvbkluZm9ybWF0aW9uLnJlcXVlc3QucG9pbnQpOwogCisgICAgICAgIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIGlmIChbdWlEZWxlZ2F0ZSBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OndpbGxQcmV2aWV3SW1hZ2VXaXRo
VVJMOildKQogICAgICAgICAgICAgW3VpRGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgd2lsbFBy
ZXZpZXdJbWFnZVdpdGhVUkw6dGFyZ2V0VVJMXTsKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9E
RUNMQVJBVElPTlNfRU5ECiAKICAgICAgICAgYXV0byBkZWZhdWx0QWN0aW9ucyA9IFtfYWN0aW9u
U2hlZXRBc3Npc3RhbnQgZGVmYXVsdEFjdGlvbnNGb3JJbWFnZVNoZWV0OmVsZW1lbnRJbmZvLmdl
dCgpXTsKICAgICAgICAgaWYgKGltYWdlSW5mbyAmJiBbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnByZXZpZXdWaWV3Q29udHJvbGxlckZvckltYWdlOmFs
dGVybmF0ZVVSTDpkZWZhdWx0QWN0aW9uczplbGVtZW50SW5mbzopXSkgeworICAgICAgICAgICAg
QUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgICAgIFVJVmlld0Nv
bnRyb2xsZXIgKnByZXZpZXdWaWV3Q29udHJvbGxlciA9IFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93
ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvckltYWdlOnVpSW1hZ2UuZ2V0KCkgYWx0ZXJu
YXRlVVJMOmFsdGVybmF0ZVVSTC5nZXQoKSBkZWZhdWx0QWN0aW9uczpkZWZhdWx0QWN0aW9ucy5n
ZXQoKSBlbGVtZW50SW5mbzplbGVtZW50SW5mby5nZXQoKV07CisgICAgICAgICAgICBBTExPV19E
RVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgICAgIGlmIChwcmV2aWV3Vmlld0Nv
bnRyb2xsZXIpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpZXdWaWV3Q29udHJvbGxlcjsK
ICAgICAgICAgfQpAQCAtNzU4NSw3ICs3NTk1LDkgQEAgLSAodm9pZClfcHJldmlld0l0ZW1Db250
cm9sbGVyOihVSVByZXZpZQogICAgICAgICAgICAgY29uc3QgVVJMJiBpbWFnZVVSTCA9IF9wb3Np
dGlvbkluZm9ybWF0aW9uLmltYWdlVVJMOwogICAgICAgICAgICAgaWYgKGltYWdlVVJMLmlzRW1w
dHkoKSB8fCAhKGltYWdlVVJMLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSB8fCBpbWFnZVVSTC5w
cm90b2NvbElzKCJkYXRhIikpKQogICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICBbdWlEZWxl
Z2F0ZSBfd2ViVmlldzpfd2ViVmlldyBjb21taXRQcmV2aWV3ZWRJbWFnZVdpdGhVUkw6KE5TVVJM
ICopaW1hZ2VVUkxdOworICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgcmV0dXJuOwpAQCAt
NzU5OSw3ICs3NjExLDkgQEAgLSAodm9pZClfcHJldmlld0l0ZW1Db250cm9sbGVyOihVSVByZXZp
ZQogICAgIH0KIAogICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKF93ZWJWaWV3OmNvbW1pdFByZXZpZXdlZFZpZXdDb250cm9sbGVyOildKSB7CisgICAgICAg
IEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIFt1aURlbGVnYXRl
IF93ZWJWaWV3Ol93ZWJWaWV3IGNvbW1pdFByZXZpZXdlZFZpZXdDb250cm9sbGVyOnZpZXdDb250
cm9sbGVyXTsKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKQEAgLTc2MjMsMTEgKzc2MzcsMTMgQEAgLSAodm9pZClfaW50
ZXJhY3Rpb25TdG9wcGVkRnJvbVByZXZpZXdJdAogLSAodm9pZClfcHJldmlld0l0ZW1Db250cm9s
bGVyOihVSVByZXZpZXdJdGVtQ29udHJvbGxlciAqKWNvbnRyb2xsZXIgZGlkRGlzbWlzc1ByZXZp
ZXc6KFVJVmlld0NvbnRyb2xsZXIgKil2aWV3Q29udHJvbGxlciBjb21taXR0aW5nOihCT09MKWNv
bW1pdHRpbmcKIHsKICAgICBpZDxXS1VJRGVsZWdhdGVQcml2YXRlPiB1aURlbGVnYXRlID0gc3Rh
dGljX2Nhc3Q8aWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+PihbX3dlYlZpZXcgVUlEZWxlZ2F0ZV0p
OworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgaWYgKFt1aURl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlkRGlzbWlzc1By
ZXZpZXdWaWV3Q29udHJvbGxlcjpjb21taXR0aW5nOildKQogICAgICAgICBbdWlEZWxlZ2F0ZSBf
d2ViVmlldzpfd2ViVmlldyBkaWREaXNtaXNzUHJldmlld1ZpZXdDb250cm9sbGVyOnZpZXdDb250
cm9sbGVyIGNvbW1pdHRpbmc6Y29tbWl0dGluZ107CiAgICAgZWxzZSBpZiAoW3VpRGVsZWdhdGUg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkaWREaXNtaXNzUHJldmlld1Zp
ZXdDb250cm9sbGVyOildKQogICAgICAgICBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyBk
aWREaXNtaXNzUHJldmlld1ZpZXdDb250cm9sbGVyOnZpZXdDb250cm9sbGVyXTsKLSAgICAKKyAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKwogICAgIFtfd2ViVmlldyBfZGlk
RGlzbWlzc0ZvcmNlUHJlc3NQcmV2aWV3XTsKIH0KIApJbmRleDogU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNDU4MjUpCisrKyBT
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNv
cHkpCkBAIC0xMDcxLDYgKzEwNzEsOCBAQAogCQk1QzRCOUQ4QjIxMEE4Q0NGMDA4RjE0RDEgLyog
VW5kb09yUmVkby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUM0QjlEOEEyMTBBOEM0NjAwOEYxNEQxIC8qIFVuZG9PclJlZG8uaCAqLzsgfTsKIAkJNUM1
RDIzOEMyMjdBMkNEQTAwMEI5QkRBIC8qIF9XS0N1c3RvbUhlYWRlckZpZWxkcy5oIGluIEhlYWRl
cnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM1RDIzODkyMjdBMTg5MjAw
MEI5QkRBIC8qIF9XS0N1c3RvbUhlYWRlckZpZWxkcy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTVDNjJGREY5MUVGQzI3MUMwMENFMDcyRSAvKiBX
S1VSTFNjaGVtZVRhc2tQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1QzYyRkRGODFFRkMyNjNDMDBDRTA3MkUgLyogV0tVUkxTY2hlbWVUYXNr
UHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CisJCTVDNzk1RDcwMjI5RjM3M0YwMDNGRjFDNCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm8u
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDRTBDMzY5
MjI5RjJENEEwMDM2OTVGMCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm8uaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCTVDNzk1RDcxMjI5RjM3NTcw
MDNGRjFDNCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm9Qcml2YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0UwQzM2QTIyOUYyRDRBMDAzNjk1
RjAgLyogV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTVDN0ZCNDcwMjFFOTdEQzUwMDlFMzI0
MSAvKiBXZWJDb29raWVKYXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVDN0ZCNDZGMjFFOTdDMEMwMDlFMzI0MSAvKiBXZWJDb29raWVKYXIuaCAqLzsg
fTsKIAkJNUM4QkM3OTcyMThDQkI0ODAwODEzODg2IC8qIFNhZmVCcm93c2luZy54Y2Fzc2V0cyBp
biBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM4QkM3OTYy
MThDQjU4QTAwODEzODg2IC8qIFNhZmVCcm93c2luZy54Y2Fzc2V0cyAqLzsgfTsKIAkJNUM4REQz
ODAxRkU0NTIxNjAwRjJBNTU2IC8qIFdlYnNpdGVBdXRvcGxheVBvbGljeS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM4REQzN0YxRkU0NTE5MjAwRjJB
NTU2IC8qIFdlYnNpdGVBdXRvcGxheVBvbGljeS5oICovOyB9OwpAQCAtMzU3MCw2ICszNTcyLDEy
IEBACiAJCTVDRDI4NjRFMUU3MjJGNDQwMDk0RkRDOCAvKiBXS0NvbnRlbnRSdWxlTGlzdFN0b3Jl
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tDb250ZW50UnVs
ZUxpc3RTdG9yZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNEMjg2NEYxRTcy
MkY0NDAwOTRGREM4IC8qIFdLQ29udGVudFJ1bGVMaXN0U3RvcmVJbnRlcm5hbC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0NvbnRlbnRSdWxlTGlzdFN0b3JlSW50ZXJuYWwu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNEMjg2NTAxRTcyMkY0NDAwOTRGREM4
IC8qIFdLQ29udGVudFJ1bGVMaXN0U3RvcmVQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFdLQ29udGVudFJ1bGVMaXN0U3RvcmVQcml2YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTVDRTBDMzY2MjI5RjJEM0QwMDM2OTVGMCAvKiBBUElDb250ZXh0
TWVudUVsZW1lbnRJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IEFQSUNvbnRleHRNZW51RWxlbWVudEluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1Q0UwQzM2NzIyOUYyRDNFMDAzNjk1RjAgLyogQVBJQ29udGV4dE1lbnVFbGVtZW50SW5m
by5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElDb250ZXh0TWVudUVsZW1l
bnRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDRTBDMzY4MjI5RjJENEEw
MDM2OTVGMCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm8ubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0NvbnRleHRNZW51RWxlbWVudEluZm8ubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDRTBDMzY5MjI5RjJENEEwMDM2OTVGMCAvKiBXS0Nv
bnRleHRNZW51RWxlbWVudEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTVDRTBDMzZBMjI5RjJENEEwMDM2OTVGMCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm9Qcml2
YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29udGV4dE1lbnVFbGVt
ZW50SW5mb1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUNFMEMzNkIy
MjlGMkQ0QjAwMzY5NUYwIC8qIFdLQ29udGV4dE1lbnVFbGVtZW50SW5mb0ludGVybmFsLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29udGV4dE1lbnVFbGVtZW50SW5mb0lu
dGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDRTg1QjFGMUM4OEU2NDMw
MDcwQkZDRSAvKiBQaW5nTG9hZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQ
aW5nTG9hZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0U5MTIwQjIyOTNDMUUw
MDA1QkVDNzggLyogV0tNYWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdL
TWFpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0U5MTIwQzIyOTNDMUUwMDA1
QkVDNzggLyogV0tNYWluLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV0tNYWluLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjI0NSw2ICs2MjUz
LDEwIEBACiAJCQkJNUNEMjg2NEUxRTcyMkY0NDAwOTRGREM4IC8qIFdLQ29udGVudFJ1bGVMaXN0
U3RvcmUubW0gKi8sCiAJCQkJNUNEMjg2NEYxRTcyMkY0NDAwOTRGREM4IC8qIFdLQ29udGVudFJ1
bGVMaXN0U3RvcmVJbnRlcm5hbC5oICovLAogCQkJCTVDRDI4NjUwMUU3MjJGNDQwMDk0RkRDOCAv
KiBXS0NvbnRlbnRSdWxlTGlzdFN0b3JlUHJpdmF0ZS5oICovLAorCQkJCTVDRTBDMzY5MjI5RjJE
NEEwMDM2OTVGMCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm8uaCAqLywKKwkJCQk1Q0UwQzM2
ODIyOUYyRDRBMDAzNjk1RjAgLyogV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLm1tICovLAorCQkJ
CTVDRTBDMzZCMjI5RjJENEIwMDM2OTVGMCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm9JbnRl
cm5hbC5oICovLAorCQkJCTVDRTBDMzZBMjI5RjJENEEwMDM2OTVGMCAvKiBXS0NvbnRleHRNZW51
RWxlbWVudEluZm9Qcml2YXRlLmggKi8sCiAJCQkJMUFGNDU5MkQxOTQ2NEIyMDAwRjlENEEyIC8q
IFdLRXJyb3IuaCAqLywKIAkJCQkxQUY0NTkyQzE5NDY0QjIwMDBGOUQ0QTIgLyogV0tFcnJvci5t
bSAqLywKIAkJCQkxQTJEMjUyQTE5NDY4OEZEMDA0NTM3QjAgLyogV0tFcnJvckludGVybmFsLmgg
Ki8sCkBAIC03NzEwLDYgKzc3MjIsOCBAQAogCQkJCTdDM0EwNkE1MUFBQjkwM0UwMDlENzRCQSAv
KiBBUElDb250ZW50UnVsZUxpc3RTdG9yZS5jcHAgKi8sCiAJCQkJN0MzQTA2QTYxQUFCOTAzRTAw
OUQ3NEJBIC8qIEFQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmggKi8sCiAJCQkJMDc2RTg4NEQxQTEz
Q0FERjAwNUU5MEZDIC8qIEFQSUNvbnRleHRNZW51Q2xpZW50LmggKi8sCisJCQkJNUNFMEMzNjYy
MjlGMkQzRDAwMzY5NUYwIC8qIEFQSUNvbnRleHRNZW51RWxlbWVudEluZm8uY3BwICovLAorCQkJ
CTVDRTBDMzY3MjI5RjJEM0UwMDM2OTVGMCAvKiBBUElDb250ZXh0TWVudUVsZW1lbnRJbmZvLmgg
Ki8sCiAJCQkJNUM1RDIzOEEyMjdBMUQ5QjAwMEI5QkRBIC8qIEFQSUN1c3RvbUhlYWRlckZpZWxk
cy5oICovLAogCQkJCTdBODIxRjRGMUUyRjdBNUMwMDYwNDU3NyAvKiBBUElDdXN0b21Qcm90b2Nv
bE1hbmFnZXJDbGllbnQuaCAqLywKIAkJCQk4Mzg5MUI2MjFBNjhCMzQyMDAzMEYzODYgLyogQVBJ
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLywKQEAgLTk4ODQsNiArOTg5OCw4IEBACiAJCQkJ
MUE0NDVCQTMxODRENUZDRjAwNEIzNDE0IC8qIFdLQ29udGV4dERvd25sb2FkQ2xpZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQkxQTQ0NUJBMTE4NEQ1RkMxMDA0QjM0MTQgLyogV0tDb250ZXh0SGlz
dG9yeUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0NDVCOUYxODRENUZCNTAwNEIzNDE0
IC8qIFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQk1
Qzc5NUQ3MDIyOUYzNzNGMDAzRkYxQzQgLyogV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmggaW4g
SGVhZGVycyAqLywKKwkJCQk1Qzc5NUQ3MTIyOUYzNzU3MDAzRkYxQzQgLyogV0tDb250ZXh0TWVu
dUVsZW1lbnRJbmZvUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFBNTU1RjYxMjhDNkM0
NzAwOUFCQ0VDIC8qIFdLQ29udGV4dE1lbnVJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUE1
NTYwMTEyOEM2RDkyMDA5QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQTFFQTAyMzgxREFCRkY3RTAwOTYwMjFGIC8qIFdLQ29udGV4dE1lbnVMaXN0
ZW5lci5oIGluIEhlYWRlcnMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371459</attachid>
            <date>2019-06-05 17:40:41 -0700</date>
            <delta_ts>2019-06-05 17:55:50 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198590-20190605174041.patch</filename>
            <type>text/plain</type>
            <size>42002</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDYxMzMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDE5LTA2LTA1ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW50cm9kdWNlIG5l
dyBTUEkgZm9yIGNvbnRleHQgbWVudXMgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg1OTAKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0g
SG9ydG9uLgorCisgICAgICAgIEFsc28gaW50cm9kdWNlIFdLQ29udGV4dE1lbnVFbGVtZW50SW5m
byB3aGljaCBpcyBBUEkuCisgICAgICAgIFRoaXMgaXMgcGFydCBvZiA8cmRhcjovL3Byb2JsZW0v
NTEwMDM1MDM+CisKKyAgICAgICAgKiBTaGFyZWQvQVBJL0FQSU9iamVjdC5oOgorICAgICAgICAq
IFNoYXJlZC9BUEkvQ29jb2EvV2ViS2l0Lmg6CisgICAgICAgICogU2hhcmVkL0NvY29hL0FQSU9i
amVjdC5tbToKKyAgICAgICAgKEFQSTo6T2JqZWN0OjpuZXdPYmplY3QpOgorICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9BUElDb250ZXh0TWVudUVsZW1lbnRJbmZvLmNwcDogQWRkZWQuCisgICAgICAgIChB
UEk6OkNvbnRleHRNZW51RWxlbWVudEluZm86OkNvbnRleHRNZW51RWxlbWVudEluZm8pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJQ29udGV4dE1lbnVFbGVtZW50SW5mby5oOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5o
OiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGV4dE1lbnVFbGVt
ZW50SW5mby5tbTogQWRkZWQuCisgICAgICAgICgtW1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyBs
aW5rVVJMXSk6CisgICAgICAgICgtW1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyBfYXBpT2JqZWN0
XSk6CisgICAgICAgICgtW1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyBfYWN0aXZhdGVkRWxlbWVu
dEluZm9dKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGV4dE1lbnVFbGVt
ZW50SW5mb0ludGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tDb250ZXh0TWVudUVsZW1lbnRJbmZvUHJpdmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8ubW06CisgICAgICAgICgtW19XS0Fj
dGl2YXRlZEVsZW1lbnRJbmZvIF9pbml0V2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uOl0pOgorICAgICAgICAoLVtfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBpc0FuaW1hdGVkSW1h
Z2VdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW06CisgICAg
ICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgZGVmYXVsdEFjdGlvbnNGb3JMaW5rU2hlZXQ6
XSk6CisgICAgICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgZGVmYXVsdEFjdGlvbnNGb3JJ
bWFnZVNoZWV0Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE5LTA2LTA1ICBT
aWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIFRlc3RXZWJLaXRBUEku
V0tXZWJWaWV3LkxvY2FsU3RvcmFnZVByb2Nlc3NTdXNwZW5kcyBpcyBmbGFreSBvbiByZWxlYXNl
IGJ1aWxkcwpJbmRleDogU291cmNlL1dlYktpdC9Tb3VyY2VzLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1NvdXJjZXMudHh0CShyZXZpc2lvbiAyNDU4MjUpCisrKyBTb3VyY2UvV2Vi
S2l0L1NvdXJjZXMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zMDAsNiArMzAwLDcgQEAgVUlQcm9j
ZXNzL0FQSS9BUElBdHRhY2htZW50LmNwcAogVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxp
c3QuY3BwCiBVSVByb2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdEFjdGlvbi5jcHAKIFVJUHJv
Y2Vzcy9BUEkvQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuY3BwCitVSVByb2Nlc3MvQVBJL0FQSUNv
bnRleHRNZW51RWxlbWVudEluZm8uY3BwCiBVSVByb2Nlc3MvQVBJL0FQSUV4cGVyaW1lbnRhbEZl
YXR1cmUuY3BwCiBVSVByb2Nlc3MvQVBJL0FQSUZyYW1lSW5mby5jcHAKIFVJUHJvY2Vzcy9BUEkv
QVBJSFRUUENvb2tpZVN0b3JlLmNwcApJbmRleDogU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2Eu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAkocmV2aXNp
b24gMjQ1ODI1KQorKysgU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CSh3b3JraW5nIGNv
cHkpCkBAIC0yODIsNiArMjgyLDcgQEAgVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29u
dGV4dEdybwogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Nvbm5lY3Rpb24ubW0KIFVJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tDb250ZW50UnVsZUxpc3QubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250
ZW50UnVsZUxpc3RTdG9yZS5tbQorVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRleHRNZW51RWxl
bWVudEluZm8ubW0KIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJvci5tbQogVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS0ZyYW1lSW5mby5tbQogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0hUVFBDb29raWVT
dG9yZS5tbQpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9BUElPYmplY3QuaAkocmV2aXNpb24g
MjQ1ODI1KQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvQVBJL0FQSU9iamVjdC5oCSh3b3JraW5n
IGNvcHkpCkBAIC0xMDksNiArMTA5LDkgQEAgcHVibGljOgogICAgICAgICBDb250ZW50UnVsZUxp
c3QsCiAgICAgICAgIENvbnRlbnRSdWxlTGlzdEFjdGlvbiwKICAgICAgICAgQ29udGVudFJ1bGVM
aXN0U3RvcmUsCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICAgICAgQ29udGV4dE1lbnVF
bGVtZW50SW5mbywKKyNlbmRpZgogICAgICAgICBDb250ZXh0TWVudUxpc3RlbmVyLAogICAgICAg
ICBDb29raWVNYW5hZ2VyLAogICAgICAgICBDdXN0b21IZWFkZXJGaWVsZHMsCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV2ViS2l0LmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9TaGFyZWQvQVBJL0NvY29hL1dlYktpdC5oCShyZXZpc2lvbiAyNDU4MjUpCisrKyBT
b3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV2ViS2l0LmgJKHdvcmtpbmcgY29weSkKQEAg
LTI3LDYgKzI3LDcgQEAKICNpbXBvcnQgPFdlYktpdC9XS0JhY2tGb3J3YXJkTGlzdEl0ZW0uaD4K
ICNpbXBvcnQgPFdlYktpdC9XS0NvbnRlbnRSdWxlTGlzdC5oPgogI2ltcG9ydCA8V2ViS2l0L1dL
Q29udGVudFJ1bGVMaXN0U3RvcmUuaD4KKyNpbXBvcnQgPFdlYktpdC9XS0NvbnRleHRNZW51RWxl
bWVudEluZm8uaD4KICNpbXBvcnQgPFdlYktpdC9XS0Vycm9yLmg+CiAjaW1wb3J0IDxXZWJLaXQv
V0tGb3VuZGF0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tGcmFtZUluZm8uaD4KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9BUElPYmplY3QubW0JKHJldmlzaW9uIDI0NTgyNSkKKysr
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9iamVjdC5tbQkod29ya2luZyBjb3B5KQpA
QCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCAiV0tDb25uZWN0aW9uSW50ZXJuYWwuaCIKICNpbXBv
cnQgIldLQ29udGVudFJ1bGVMaXN0SW50ZXJuYWwuaCIKICNpbXBvcnQgIldLQ29udGVudFJ1bGVM
aXN0U3RvcmVJbnRlcm5hbC5oIgorI2ltcG9ydCAiV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvSW50
ZXJuYWwuaCIKICNpbXBvcnQgIldLRnJhbWVJbmZvSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLSFRU
UENvb2tpZVN0b3JlSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLTlNBcnJheS5oIgpAQCAtMzEzLDYg
KzMxNCwxMiBAQCB2b2lkKiBPYmplY3Q6Om5ld09iamVjdChzaXplX3Qgc2l6ZSwgVHlwCiAgICAg
ICAgIHdyYXBwZXIgPSBbV0tDb250ZW50UnVsZUxpc3RTdG9yZSBhbGxvY107CiAgICAgICAgIGJy
ZWFrOwogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBjYXNlIFR5cGU6OkNvbnRleHRN
ZW51RWxlbWVudEluZm86CisgICAgICAgIHdyYXBwZXIgPSBbV0tDb250ZXh0TWVudUVsZW1lbnRJ
bmZvIGFsbG9jXTsKKyAgICAgICAgYnJlYWs7CisjZW5kaWYKKwogICAgIGNhc2UgVHlwZTo6Q3Vz
dG9tSGVhZGVyRmllbGRzOgogICAgICAgICB3cmFwcGVyID0gW19XS0N1c3RvbUhlYWRlckZpZWxk
cyBhbGxvY107CiAgICAgICAgIGJyZWFrOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0FQSUNvbnRleHRNZW51RWxlbWVudEluZm8uY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElDb250ZXh0TWVudUVsZW1lbnRJbmZvLmNwcAkobm9uZXhp
c3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGV4dE1lbnVFbGVt
ZW50SW5mby5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0MCBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJBUElDb250ZXh0TWVudUVsZW1lbnRJbmZv
LmgiCisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorCituYW1lc3BhY2UgQVBJIHsKKworQ29u
dGV4dE1lbnVFbGVtZW50SW5mbzo6Q29udGV4dE1lbnVFbGVtZW50SW5mbyhjb25zdCBXZWJLaXQ6
OkludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uJiBpbmZvKQorICAgIDogbV9pbnRlcmFj
dGlvbkluZm9ybWF0aW9uKGluZm8pCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIEFQSQorCisjZW5k
aWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElDb250ZXh0TWVudUVsZW1lbnRJbmZvLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRleHRNZW51RWxlbWVudEluZm8uaAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGV4dE1lbnVFbGVtZW50
SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTQgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKKyNpbmNsdWRlICJBUElPYmpl
Y3QuaCIKKyNpbmNsdWRlICJJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbi5oIgorCitu
YW1lc3BhY2UgQVBJIHsKKworY2xhc3MgQ29udGV4dE1lbnVFbGVtZW50SW5mbyBmaW5hbCA6IHB1
YmxpYyBPYmplY3RJbXBsPE9iamVjdDo6VHlwZTo6Q29udGV4dE1lbnVFbGVtZW50SW5mbz4gewor
cHVibGljOgorICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIEFyZ3M+IHN0YXRpYyBSZWY8Q29udGV4
dE1lbnVFbGVtZW50SW5mbz4gY3JlYXRlKEFyZ3MmJi4uLiBhcmdzKQorICAgIHsKKyAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgQ29udGV4dE1lbnVFbGVtZW50SW5mbyhzdGQ6OmZvcndhcmQ8
QXJncz4oYXJncykuLi4pKTsKKyAgICB9CisgICAgCisgICAgY29uc3QgV1RGOjpVUkwmIHVybCgp
IGNvbnN0IHsgcmV0dXJuIG1faW50ZXJhY3Rpb25JbmZvcm1hdGlvbi51cmw7IH0KKworICAgIGNv
bnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mIGludGVyYWN0aW9u
SW5mb3JtYXRpb24oKSBjb25zdCB7IHJldHVybiBtX2ludGVyYWN0aW9uSW5mb3JtYXRpb247IH0K
KworcHJpdmF0ZToKKyAgICBDb250ZXh0TWVudUVsZW1lbnRJbmZvKGNvbnN0IFdlYktpdDo6SW50
ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKTsKKyAgICAKKyAgICBXZWJLaXQ6OkludGVy
YWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uIG1faW50ZXJhY3Rpb25JbmZvcm1hdGlvbjsKK307
CisKK30gLy8gbmFtZXNwYWNlIEFQSQorCisjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRleHRNZW51RWxlbWVudEluZm8uaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZXh0TWVudUVsZW1lbnRJ
bmZvLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNDYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW1wb3J0IDxXZWJLaXQvV0tGb3VuZGF0aW9uLmg+CisKKyNpZiBU
QVJHRVRfT1NfSVBIT05FCisKKyNpbXBvcnQgPEZvdW5kYXRpb24vRm91bmRhdGlvbi5oPgorCitO
U19BU1NVTUVfTk9OTlVMTF9CRUdJTgorCitXS19DTEFTU19BVkFJTEFCTEUoaW9zKFdLX0lPU19U
QkEpKQorQGludGVyZmFjZSBXS0NvbnRleHRNZW51RWxlbWVudEluZm8gOiBOU09iamVjdAorCist
IChpbnN0YW5jZXR5cGUpaW5pdCBOU19VTkFWQUlMQUJMRTsKKworQHByb3BlcnR5IChub25hdG9t
aWMsIHJlYWRvbmx5LCBudWxsYWJsZSkgTlNVUkwgKmxpbmtVUkw7CisKK0BlbmQKKworTlNfQVNT
VU1FX05PTk5VTExfRU5ECisKKyNlbmRpZgorCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLm1tCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRleHRNZW51RWxlbWVudEluZm8u
bW0JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
Q29udGV4dE1lbnVFbGVtZW50SW5mby5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXS0NvbnRleHRNZW51
RWxlbWVudEluZm9JbnRlcm5hbC5oIgorCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKKworI2lt
cG9ydCAiX1dLQWN0aXZhdGVkRWxlbWVudEluZm9JbnRlcm5hbC5oIgorCitAaW1wbGVtZW50YXRp
b24gV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvCisKKy0gKE5TVVJMICopbGlua1VSTAoreworICAg
IHJldHVybiBfZWxlbWVudEluZm8tPnVybCgpOworfQorCistIChBUEk6Ok9iamVjdCYpX2FwaU9i
amVjdAoreworICAgIHJldHVybiAqX2VsZW1lbnRJbmZvOworfQorCitAZW5kCisKK0BpbXBsZW1l
bnRhdGlvbiBXS0NvbnRleHRNZW51RWxlbWVudEluZm8gKFdLUHJpdmF0ZSkKKworLSAoX1dLQWN0
aXZhdGVkRWxlbWVudEluZm8gKilfYWN0aXZhdGVkRWxlbWVudEluZm8KK3sKKyAgICByZXR1cm4g
W19XS0FjdGl2YXRlZEVsZW1lbnRJbmZvIGFjdGl2YXRlZEVsZW1lbnRJbmZvV2l0aEludGVyYWN0
aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOl9lbGVtZW50SW5mby0+aW50ZXJhY3Rpb25JbmZvcm1h
dGlvbigpXTsKK30KKworQGVuZAorCisjZW5kaWYKKwpJbmRleDogU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLQ29udGV4dE1lbnVFbGVtZW50SW5mb0ludGVybmFsLmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGV4dE1lbnVF
bGVtZW50SW5mb0ludGVybmFsLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLQ29udGV4dE1lbnVFbGVtZW50SW5mb0ludGVybmFsLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgIkFQSUNvbnRl
eHRNZW51RWxlbWVudEluZm8uaCIKKyNpbXBvcnQgIldLQ29udGV4dE1lbnVFbGVtZW50SW5mby5o
IgorI2ltcG9ydCAiV0tPYmplY3QuaCIKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCisKK25h
bWVzcGFjZSBXZWJLaXQgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBXcmFwcGVyVHJhaXRzPEFQSTo6
Q29udGV4dE1lbnVFbGVtZW50SW5mbz4geworICAgIHVzaW5nIFdyYXBwZXJDbGFzcyA9IFdLQ29u
dGV4dE1lbnVFbGVtZW50SW5mbzsKK307CisKK30KKworQGludGVyZmFjZSBXS0NvbnRleHRNZW51
RWxlbWVudEluZm8gKCkgPFdLT2JqZWN0PiB7CitAcGFja2FnZQorICAgIEFQSTo6T2JqZWN0U3Rv
cmFnZTxBUEk6OkNvbnRleHRNZW51RWxlbWVudEluZm8+IF9lbGVtZW50SW5mbzsKK30KK0BlbmQK
KworI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvUHJpdmF0ZS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRleHRNZW51
RWxlbWVudEluZm9Qcml2YXRlLmgJKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLQ29udGV4dE1lbnVFbGVtZW50SW5mb1ByaXZhdGUuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDM0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCA8V2ViS2l0L1dL
Q29udGV4dE1lbnVFbGVtZW50SW5mby5oPgorCitAY2xhc3MgX1dLQWN0aXZhdGVkRWxlbWVudElu
Zm87CisKK0BpbnRlcmZhY2UgV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvIChXS1ByaXZhdGUpCisK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBjb3B5LCByZWFkb25seSkgX1dLQWN0aXZhdGVkRWxlbWVu
dEluZm8gKl9hY3RpdmF0ZWRFbGVtZW50SW5mbzsKKworQGVuZApJbmRleDogU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZv
LmgJKHJldmlzaW9uIDI0NTgyNSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS1ByZXZpZXdFbGVtZW50SW5mby5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMSw3ICszMSw3IEBA
CiAKIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiAKLVdLX0NMQVNTX0FWQUlMQUJMRShpb3MoMTAu
MCkpCitXS19DTEFTU19ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIldLQ29udGV4dE1lbnVF
bGVtZW50SW5mbyIsIGlvcygxMC4wLCBXS19JT1NfVEJBKSkKIEBpbnRlcmZhY2UgV0tQcmV2aWV3
RWxlbWVudEluZm8gOiBOU09iamVjdCA8TlNDb3B5aW5nPgogCiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHksIG51bGxhYmxlKSBOU1VSTCAqbGlua1VSTDsKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUu
aAkocmV2aXNpb24gMjQ1ODI1KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLVUlEZWxlZ2F0ZVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsOCArNDAsMTEgQEAK
IEBjbGFzcyBfV0tGcmFtZUhhbmRsZTsKIAogI2lmIFRBUkdFVF9PU19JT1MKK0BjbGFzcyBVSUNv
bnRleHRNZW51Q29uZmlndXJhdGlvbjsKIEBjbGFzcyBVSURyYWdJdGVtOwogQGNsYXNzIFVJVGFy
Z2V0ZWREcmFnUHJldmlldzsKK0BjbGFzcyBXS0NvbnRleHRNZW51RWxlbWVudEluZm87CitAcHJv
dG9jb2wgVUlDb250ZXh0TWVudUludGVyYWN0aW9uQ29tbWl0QW5pbWF0aW5nOwogQHByb3RvY29s
IFVJRHJhZ1Nlc3Npb247CiBAcHJvdG9jb2wgVUlEcm9wU2Vzc2lvbjsKICNlbHNlCkBAIC0xMzUs
MjQgKzEzOCwzMyBAQCBzdHJ1Y3QgVUlFZGdlSW5zZXRzOwogLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBkaWROb3RIYW5kbGVUYXBBc0NsaWNrQXRQb2ludDooQ0dQb2ludClw
b2ludDsKIC0gKEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvdWxkUmVxdWVz
dEdlb2xvY2F0aW9uQXV0aG9yaXphdGlvbkZvclVSTDooTlNVUkwgKil1cmwgaXNNYWluRnJhbWU6
KEJPT0wpaXNNYWluRnJhbWUgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTDsKIC0g
KHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcmVxdWVzdEdlb2xvY2F0aW9uQXV0
aG9yaXphdGlvbkZvclVSTDooTlNVUkwgKil1cmwgZnJhbWU6KFdLRnJhbWVJbmZvICopZnJhbWUg
ZGVjaXNpb25IYW5kbGVyOih2b2lkICheKShCT09MIGF1dGhvcml6ZWQpKWRlY2lzaW9uSGFuZGxl
ciBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7Ci0tIChVSVZpZXdDb250cm9sbGVyICopX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmlld1ZpZXdDb250cm9sbGVyRm9yVVJMOihO
U1VSTCAqKXVybCBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjApKTsKLS0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgY29tbWl0UHJldmlld2VkVmlld0NvbnRyb2xsZXI6KFVJVmll
d0NvbnRyb2xsZXIgKilwcmV2aWV3ZWRWaWV3Q29udHJvbGxlciBXS19BUElfQVZBSUxBQkxFKGlv
cyg5LjApKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbFByZXZp
ZXdJbWFnZVdpdGhVUkw6KE5TVVJMICopaW1hZ2VVUkwgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4w
KSk7Ci0tICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbW1pdFByZXZpZXdl
ZEltYWdlV2l0aFVSTDooTlNVUkwgKilpbWFnZVVSTCBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjAp
KTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRGlzbWlzc1ByZXZp
ZXdWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKXByZXZpZXdlZFZpZXdDb250cm9s
bGVyIGNvbW1pdHRpbmc6KEJPT0wpY29tbWl0dGluZyBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjAp
KTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGlkRGlzbWlzc1ByZXZp
ZXdWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKXByZXZpZXdlZFZpZXdDb250cm9s
bGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOworLSAoVUlWaWV3Q29udHJvbGxlciAqKV93
ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvclVSTDoo
TlNVUkwgKil1cmwgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgid2ViVmlldzpj
b250ZXh0TWVudUNvbmZpZ3VyYXRpb25Gb3JFbGVtZW50OmNvbXBsZXRpb25IYW5kbGVyOiIsIGlv
cyg5LjAsIFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZp
ZXcgY29tbWl0UHJldmlld2VkVmlld0NvbnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIgKilwcmV2
aWV3ZWRWaWV3Q29udHJvbGxlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJ3
ZWJWaWV3OmNvbW1pdENvbnRleHRNZW51OiIsIGlvcyg5LjAsIFdLX0lPU19UQkEpKTsKKy0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgd2lsbFByZXZpZXdJbWFnZVdpdGhVUkw6
KE5TVVJMICopaW1hZ2VVUkwgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgid2Vi
Vmlldzpjb250ZXh0TWVudUNvbmZpZ3VyYXRpb25Gb3JFbGVtZW50OmNvbXBsZXRpb25IYW5kbGVy
OiIsIGlvcyg5LjAsIFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgY29tbWl0UHJldmlld2VkSW1hZ2VXaXRoVVJMOihOU1VSTCAqKWltYWdlVVJMIFdL
X0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIndlYlZpZXc6Y29tbWl0Q29udGV4dE1l
bnU6IiwgaW9zKDkuMCwgV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBkaWREaXNtaXNzUHJldmlld1ZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9s
bGVyICopcHJldmlld2VkVmlld0NvbnRyb2xsZXIgY29tbWl0dGluZzooQk9PTCljb21taXR0aW5n
IFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIndlYlZpZXc6ZGlzbWlzc0NvbnRl
eHRNZW51OiIsIGlvcyg5LjAsIFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgZGlkRGlzbWlzc1ByZXZpZXdWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29u
dHJvbGxlciAqKXByZXZpZXdlZFZpZXdDb250cm9sbGVyIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhf
UkVQTEFDRU1FTlQoIndlYlZpZXc6ZGlzbWlzc0NvbnRleHRNZW51OiIsIGlvcyg5LjAsIFdLX0lP
U19UQkEpKTsKKworLy8gVGhpcyBuZWVkcyB0byBiZSBrZXB0IG9uY2UgdGhlcmUgaXMgYW4gQVBJ
IHZlcnNpb24gdG8gY29udGludWUgdG8gZG8gY2FsbGJhY2tzIGZvciBpbWFnZSBlbGVtZW50IGNv
bnRleHQgbWVudXMuCistICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGNvbnRl
eHRNZW51Q29uZmlndXJhdGlvbkZvckVsZW1lbnQ6KFdLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAq
KWVsZW1lbnRJbmZvIGNvbXBsZXRpb25IYW5kbGVyOih2b2lkKF4pKFVJQ29udGV4dE1lbnVDb25m
aWd1cmF0aW9uICopKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lP
U19UQkEpKTsKKworLy8gVGhlc2UgY2FuIGJlIHJlbW92ZWQgb25jZSB0aGVyZSBpcyBhbiBBUEkg
dmVyc2lvbi4KKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29udGV4dE1l
bnVGb3JFbGVtZW50OihXS0NvbnRleHRNZW51RWxlbWVudEluZm8gKillbGVtZW50SW5mbyB3aWxs
Q29tbWl0V2l0aEFuaW1hdG9yOihpZDxVSUNvbnRleHRNZW51SW50ZXJhY3Rpb25Db21taXRBbmlt
YXRpbmc+KWFuaW1hdG9yIFdLX0FQSV9BVkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZv
aWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY29udGV4dE1lbnVXaWxsUHJlc2VudEZv
ckVsZW1lbnQ6KFdLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIFdLX0FQSV9B
VkFJTEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgY29udGV4dE1lbnVEaWRFbmRGb3JFbGVtZW50OihXS0NvbnRleHRNZW51RWxlbWVu
dEluZm8gKillbGVtZW50SW5mbyBXS19BUElfQVZBSUxBQkxFKGlvcyhXS19JT1NfVEJBKSk7CisK
IC0gKEJPT0wpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgc2hvd0N1c3RvbVNoZWV0Rm9y
RWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IFdLX0FQSV9BVkFJTEFC
TEUoaW9zKDEwLjApKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgYWx0
ZXJuYXRlQWN0aW9uRm9yVVJMOihOU1VSTCAqKXVybCBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4w
KSk7CiAtIChOU0FycmF5ICopX2F0dGFjaG1lbnRMaXN0Rm9yV2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4wKSk7CiAtIChOU0FycmF5ICopX2F0dGFj
aG1lbnRMaXN0Rm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBzb3VyY2VJc01hbmFnZWQ6
KEJPT0wqKXNvdXJjZUlzTWFuYWdlZCBXS19BUElfQVZBSUxBQkxFKGlvcygxMC4zKSk7CiAtIChO
U1VJbnRlZ2VyKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGluZGV4SW50b0F0dGFjaG1l
bnRMaXN0Rm9yRWxlbWVudDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IFdLX0FQ
SV9BVkFJTEFCTEUoaW9zKDEwLjMpKTsKIC0gKFVJRWRnZUluc2V0cylfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBmaW5hbE9ic2N1cmVkSW5zZXRzRm9yU2Nyb2xsVmlldzooVUlTY3JvbGxW
aWV3ICopc2Nyb2xsVmlldyB3aXRoVmVsb2NpdHk6KENHUG9pbnQpdmVsb2NpdHkgdGFyZ2V0Q29u
dGVudE9mZnNldDooaW5vdXQgQ0dQb2ludCAqKXRhcmdldENvbnRlbnRPZmZzZXQgV0tfQVBJX0FW
QUlMQUJMRShpb3MoOS4wKSk7Ci0tIChVSVZpZXdDb250cm9sbGVyICopX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgcHJldmlld1ZpZXdDb250cm9sbGVyRm9yVVJMOihOU1VSTCAqKXVybCBk
ZWZhdWx0QWN0aW9uczooTlNBcnJheTxfV0tFbGVtZW50QWN0aW9uICo+ICopYWN0aW9ucyBlbGVt
ZW50SW5mbzooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbyBXS19BUElfQVZB
SUxBQkxFKGlvcyg5LjApKTsKLS0gKFVJVmlld0NvbnRyb2xsZXIgKilfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xsZXJGb3JBbmltYXRlZEltYWdlQXRVUkw6
KE5TVVJMICopdXJsIGRlZmF1bHRBY3Rpb25zOihOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4g
KilhY3Rpb25zIGVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJ
bmZvIGltYWdlU2l6ZTooQ0dTaXplKWltYWdlU2l6ZSBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjAp
KTsKKy0gKFVJVmlld0NvbnRyb2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBw
cmV2aWV3Vmlld0NvbnRyb2xsZXJGb3JVUkw6KE5TVVJMICopdXJsIGRlZmF1bHRBY3Rpb25zOihO
U0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4gKilhY3Rpb25zIGVsZW1lbnRJbmZvOihfV0tBY3Rp
dmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQ
TEFDRU1FTlQoIndlYlZpZXc6Y29udGV4dE1lbnVDb25maWd1cmF0aW9uRm9yRWxlbWVudDoiLCBp
b3MoOS4wLCBXS19JT1NfVEJBKSk7CistIChVSVZpZXdDb250cm9sbGVyICopX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgcHJldmlld1ZpZXdDb250cm9sbGVyRm9yQW5pbWF0ZWRJbWFnZUF0
VVJMOihOU1VSTCAqKXVybCBkZWZhdWx0QWN0aW9uczooTlNBcnJheTxfV0tFbGVtZW50QWN0aW9u
ICo+ICopYWN0aW9ucyBlbGVtZW50SW5mbzooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVt
ZW50SW5mbyBpbWFnZVNpemU6KENHU2l6ZSlpbWFnZVNpemUgV0tfQVBJX0RFUFJFQ0FURURfV0lU
SF9SRVBMQUNFTUVOVCgid2ViVmlldzpjb250ZXh0TWVudUNvbmZpZ3VyYXRpb25Gb3JFbGVtZW50
OiIsIGlvcyg5LjAsIFdLX0lPU19UQkEpKTsKIC0gKFVJVmlld0NvbnRyb2xsZXIgKilfcHJlc2Vu
dGluZ1ZpZXdDb250cm9sbGVyRm9yV2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBXS19BUElf
QVZBSUxBQkxFKGlvcygxMC4wKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJW
aWV3IGdldEFsdGVybmF0ZVVSTEZyb21JbWFnZTooVUlJbWFnZSAqKWltYWdlIGNvbXBsZXRpb25I
YW5kbGVyOih2b2lkICheKShOU1VSTCAqYWx0ZXJuYXRlVVJMLCBOU0RpY3Rpb25hcnkgKnVzZXJJ
bmZvKSljb21wbGV0aW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAtIChO
U1VSTCAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGFsdGVybmF0ZVVSTEZyb21JbWFn
ZTooVUlJbWFnZSAqKWltYWdlIHVzZXJJbmZvOihOU0RpY3Rpb25hcnkgKiopdXNlckluZm8gV0tf
QVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpOwotLSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJWaWV3
OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvckltYWdlOihVSUlt
YWdlICopaW1hZ2UgYWx0ZXJuYXRlVVJMOihOU1VSTCAqKXVybCBkZWZhdWx0QWN0aW9uczooTlNB
cnJheTxfV0tFbGVtZW50QWN0aW9uICo+ICopYWN0aW9ucyBlbGVtZW50SW5mbzooX1dLQWN0aXZh
dGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbyBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7
CistIChVSVZpZXdDb250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJl
dmlld1ZpZXdDb250cm9sbGVyRm9ySW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSBhbHRlcm5hdGVVUkw6
KE5TVVJMICopdXJsIGRlZmF1bHRBY3Rpb25zOihOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4g
KilhY3Rpb25zIGVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJ
bmZvIFdLX0FQSV9ERVBSRUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIndlYlZpZXc6Y29udGV4dE1l
bnVDb25maWd1cmF0aW9uRm9yRWxlbWVudDoiLCBpb3MoMTEuMCwgV0tfSU9TX1RCQSkpOwogLSAo
TlNBcnJheSAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGFkanVzdGVkRGF0YUludGVy
YWN0aW9uSXRlbVByb3ZpZGVyczooTlNBcnJheSAqKW9yaWdpbmFsSXRlbVByb3ZpZGVycyBXS19B
UElfQVZBSUxBQkxFKGlvcygxMS4wKSk7CiAtIChOU0FycmF5ICopX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgYWRqdXN0ZWREYXRhSW50ZXJhY3Rpb25JdGVtUHJvdmlkZXJzRm9ySXRlbVBy
b3ZpZGVyOihpZClpdGVtUHJvdmlkZXIgcmVwcmVzZW50aW5nT2JqZWN0czooTlNBcnJheSAqKXJl
cHJlc2VudGluZ09iamVjdHMgYWRkaXRpb25hbERhdGE6KE5TRGljdGlvbmFyeSAqKWFkZGl0aW9u
YWxEYXRhIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKIC0gKEJPT0wpX3dlYlZpZXc6KFdL
V2ViVmlldyAqKXdlYlZpZXcgcGVyZm9ybURhdGFJbnRlcmFjdGlvbk9wZXJhdGlvbldpdGhJdGVt
UHJvdmlkZXJzOihOU0FycmF5ICopaXRlbVByb3ZpZGVycyBXS19BUElfQVZBSUxBQkxFKGlvcygx
MS4wKSk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZh
dGVkRWxlbWVudEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaAkocmV2aXNpb24gMjQ1ODI1KQorKysg
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVsZW1lbnRJbmZv
LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ3LDYgKzQ3LDcgQEAgV0tfQ0xBU1NfQVZBSUxBQkxFKG1h
Y29zKDEwLjEwKSwgaW9zKDguMAogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBfV0tB
Y3RpdmF0ZWRFbGVtZW50VHlwZSB0eXBlOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5
KSBDR1JlY3QgYm91bmRpbmdSZWN0OwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBO
U1N0cmluZyAqSUQgV0tfQVBJX0FWQUlMQUJMRShtYWNvcygxMC4xMiksIGlvcygxMC4wKSk7CitA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEJPT0wgaXNBbmltYXRlZEltYWdlIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7CiAjaWYgVEFS
R0VUX09TX0lQSE9ORQogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5KSBOU0RpY3Rpb25h
cnkgKnVzZXJJbmZvIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCByZWFkb25seSwgY29weSkgVUlJbWFnZSAqaW1hZ2U7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8ubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvLm1tCShyZXZpc2lvbiAyNDU4MjUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8ubW0JKHdvcmtpbmcgY29weSkKQEAg
LTUxLDYgKzUxLDcgQEAKICNpZiBQTEFURk9STShNQUMpCiAgICAgUmV0YWluUHRyPE5TSW1hZ2U+
IF9uc0ltYWdlOwogI2VuZGlmCisgICAgQk9PTCBfYW5pbWF0ZWRJbWFnZTsKIH0KIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCkBAIC04MSw2ICs4Miw3IEBAIC0gKGluc3RhbmNldHlwZSlfaW5p
dFdpdGhJbnRlcmFjdGlvbkluZm8KICAgICAKICAgICBfaW1hZ2UgPSBpbmZvcm1hdGlvbi5pbWFn
ZTsKICAgICBfSUQgPSBpbmZvcm1hdGlvbi5pZEF0dHJpYnV0ZTsKKyAgICBfYW5pbWF0ZWRJbWFn
ZSA9IGluZm9ybWF0aW9uLmlzQW5pbWF0ZWRJbWFnZTsKICAgICAKICAgICByZXR1cm4gc2VsZjsK
IH0KQEAgLTEzNiw2ICsxMzgsMTEgQEAgLSAoQ0dQb2ludClfaW50ZXJhY3Rpb25Mb2NhdGlvbgog
ICAgIHJldHVybiBfaW50ZXJhY3Rpb25Mb2NhdGlvbjsKIH0KIAorLSAoQk9PTClpc0FuaW1hdGVk
SW1hZ2UKK3sKKyAgICByZXR1cm4gX2FuaW1hdGVkSW1hZ2U7Cit9CisKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQogLSAoTlNEaWN0aW9uYXJ5ICopdXNlckluZm8KIHsKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50LmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaAko
cmV2aXNpb24gMjQ1ODI1KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9u
U2hlZXRBc3Npc3RhbnQuaAkod29ya2luZyBjb3B5KQpAQCAtMzgsNiArMzgsNyBAQCBzdHJ1Y3Qg
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb247CiAKIEBjbGFzcyBXS0FjdGlvblNoZWV0
QXNzaXN0YW50OwogQGNsYXNzIF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvOworQGNsYXNzIF9XS0Vs
ZW1lbnRBY3Rpb247CiBAcHJvdG9jb2wgV0tBY3Rpb25TaGVldERlbGVnYXRlOwogCiBAcHJvdG9j
b2wgV0tBY3Rpb25TaGVldEFzc2lzdGFudERlbGVnYXRlIDxOU09iamVjdD4KQEAgLTc2LDggKzc3
LDggQEAgc3RydWN0IEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0aW9uOwogLSAodm9pZClz
aG93RGF0YURldGVjdG9yc1NoZWV0OwogLSAodm9pZCljbGVhbnVwU2hlZXQ7CiAtICh2b2lkKXVw
ZGF0ZVNoZWV0UG9zaXRpb247Ci0tIChSZXRhaW5QdHI8TlNBcnJheT4pZGVmYXVsdEFjdGlvbnNG
b3JMaW5rU2hlZXQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm87Ci0tIChS
ZXRhaW5QdHI8TlNBcnJheT4pZGVmYXVsdEFjdGlvbnNGb3JJbWFnZVNoZWV0OihfV0tBY3RpdmF0
ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvOworLSAoUmV0YWluUHRyPE5TQXJyYXk8X1dLRWxl
bWVudEFjdGlvbiAqPj4pZGVmYXVsdEFjdGlvbnNGb3JMaW5rU2hlZXQ6KF9XS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvICopZWxlbWVudEluZm87CistIChSZXRhaW5QdHI8TlNBcnJheTxfV0tFbGVtZW50
QWN0aW9uICo+PilkZWZhdWx0QWN0aW9uc0ZvckltYWdlU2hlZXQ6KF9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvICopZWxlbWVudEluZm87CiAtIChCT09MKWlzU2hvd2luZ1NoZWV0OwogLSAodm9pZClp
bnRlcmFjdGlvbkRpZFN0YXJ0V2l0aFBvc2l0aW9uSW5mb3JtYXRpb246KGNvbnN0IFdlYktpdDo6
SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24mKWluZm9ybWF0aW9uOwogLSAoTlNBcnJh
eSAqKWN1cnJlbnRBdmFpbGFibGVBY3Rpb25UaXRsZXM7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQkocmV2aXNp
b24gMjQ1ODI1KQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRB
c3Npc3RhbnQubW0JKHdvcmtpbmcgY29weSkKQEAgLTUyOSw3ICs1MjksNyBAQCAtICh2b2lkKV9h
cHBlbmRPcGVuQWN0aW9uc0ZvclVSTDooTlNVUkwgCiAgICAgW2RlZmF1bHRBY3Rpb25zIGFkZE9i
amVjdDpbX1dLRWxlbWVudEFjdGlvbiBfZWxlbWVudEFjdGlvbldpdGhUeXBlOl9XS0VsZW1lbnRB
Y3Rpb25UeXBlT3BlbiBhc3Npc3RhbnQ6c2VsZl1dOwogfQogCi0tIChSZXRhaW5QdHI8TlNBcnJh
eT4pZGVmYXVsdEFjdGlvbnNGb3JMaW5rU2hlZXQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICop
ZWxlbWVudEluZm8KKy0gKFJldGFpblB0cjxOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4+KWRl
ZmF1bHRBY3Rpb25zRm9yTGlua1NoZWV0OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1l
bnRJbmZvCiB7CiAgICAgTlNVUkwgKnRhcmdldFVSTCA9IFtlbGVtZW50SW5mbyBVUkxdOwogICAg
IGlmICghdGFyZ2V0VVJMKQpAQCAtNTUwLDcgKzU1MCw3IEBAIC0gKFJldGFpblB0cjxOU0FycmF5
PilkZWZhdWx0QWN0aW9uc0ZvckwKICAgICByZXR1cm4gZGVmYXVsdEFjdGlvbnM7CiB9CiAKLS0g
KFJldGFpblB0cjxOU0FycmF5PilkZWZhdWx0QWN0aW9uc0ZvckltYWdlU2hlZXQ6KF9XS0FjdGl2
YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8KKy0gKFJldGFpblB0cjxOU0FycmF5PF9XS0Vs
ZW1lbnRBY3Rpb24gKj4+KWRlZmF1bHRBY3Rpb25zRm9ySW1hZ2VTaGVldDooX1dLQWN0aXZhdGVk
RWxlbWVudEluZm8gKillbGVtZW50SW5mbwogewogICAgIE5TVVJMICp0YXJnZXRVUkwgPSBbZWxl
bWVudEluZm8gVVJMXTsKIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29u
dGVudFZpZXcuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tD
b250ZW50Vmlldy5oCShyZXZpc2lvbiAyNDU4MjUpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC01NCw3ICs1NCw3IEBAIGNs
YXNzIFdlYlByb2Nlc3NQb29sOwogQGludGVyZmFjZSBXS0NvbnRlbnRWaWV3IDogV0tBcHBsaWNh
dGlvblN0YXRlVHJhY2tpbmdWaWV3IHsKIEBwYWNrYWdlCiAgICAgUmVmUHRyPFdlYktpdDo6V2Vi
UGFnZVByb3h5PiBfcGFnZTsKLSAgICBXS1dlYlZpZXcgKl93ZWJWaWV3OworICAgIFdLV2ViVmll
dyAqX3dlYlZpZXc7IC8vIEZJWE1FOiBUaGlzIHNob3VsZCBiZSBtYWRlIGEgV2Vha09iakNQdHIg
b25jZSBldmVyeXRoaW5nIHRoYXQgcmVmZXJzIHRvIGl0IGlzIG1vdmVkIHRvIE9wZW5Tb3VyY2Uu
CiB9CiAKICNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0J
KHJldmlzaW9uIDI0NTgyNSkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRl
bnRWaWV3SW50ZXJhY3Rpb24ubW0JKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDcgQEAKICNp
bXBvcnQgIlRleHRJbnB1dFNQSS5oIgogI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBvcnQgIldL
QWN0aW9uU2hlZXRBc3Npc3RhbnQuaCIKKyNpbXBvcnQgIldLQ29udGV4dE1lbnVFbGVtZW50SW5m
b0ludGVybmFsLmgiCiAjaW1wb3J0ICJXS0RhdGVQaWNrZXJWaWV3Q29udHJvbGxlci5oIgogI2lt
cG9ydCAiV0tEcmF3aW5nQ29vcmRpbmF0b3IuaCIKICNpbXBvcnQgIldLRXJyb3IuaCIKQEAgLTc1
MTQsNyArNzUxNSw5IEBAIC0gKFVJVmlld0NvbnRyb2xsZXIgKilfcHJlc2VudGVkVmlld0NvbnQK
IAogICAgICAgICAgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoX3dlYlZpZXc6cHJldmlld1ZpZXdDb250cm9sbGVyRm9yQW5pbWF0ZWRJbWFnZUF0VVJMOmRl
ZmF1bHRBY3Rpb25zOmVsZW1lbnRJbmZvOmltYWdlU2l6ZTopXSkgewogICAgICAgICAgICAgICAg
IFJldGFpblB0cjxOU0FycmF5PiBhY3Rpb25zID0gW19hY3Rpb25TaGVldEFzc2lzdGFudCBkZWZh
dWx0QWN0aW9uc0ZvckltYWdlU2hlZXQ6YW5pbWF0ZWRJbWFnZUVsZW1lbnRJbmZvLmdldCgpXTsK
KyAgICAgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
ICAgICAgICAgICAgIHJldHVybiBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyBwcmV2aWV3
Vmlld0NvbnRyb2xsZXJGb3JBbmltYXRlZEltYWdlQXRVUkw6dGFyZ2V0VVJMIGRlZmF1bHRBY3Rp
b25zOmFjdGlvbnMuZ2V0KCkgZWxlbWVudEluZm86YW5pbWF0ZWRJbWFnZUVsZW1lbnRJbmZvLmdl
dCgpIGltYWdlU2l6ZTpfcG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZS0+c2l6ZSgpXTsKKyAgICAg
ICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgICAg
IH0KICAgICAgICAgfQogCkBAIC03NTM2LDExICs3NTM5LDE0IEBAIC0gKFVJVmlld0NvbnRyb2xs
ZXIgKilfcHJlc2VudGVkVmlld0NvbnQKICAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVD
TEFSQVRJT05TX0VORAogICAgICAgICB9CiAKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KICAgICAgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3IoX3dlYlZpZXc6cHJldmlld1ZpZXdDb250cm9sbGVyRm9yVVJMOmRlZmF1bHRB
Y3Rpb25zOmVsZW1lbnRJbmZvOildKQogICAgICAgICAgICAgcmV0dXJuIFt1aURlbGVnYXRlIF93
ZWJWaWV3Ol93ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvclVSTDp0YXJnZXRVUkwgZGVm
YXVsdEFjdGlvbnM6YWN0aW9ucy5nZXQoKSBlbGVtZW50SW5mbzplbGVtZW50SW5mby5nZXQoKV07
CiAKICAgICAgICAgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
X3dlYlZpZXc6cHJldmlld1ZpZXdDb250cm9sbGVyRm9yVVJMOildKQogICAgICAgICAgICAgcmV0
dXJuIFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZv
clVSTDp0YXJnZXRVUkxdOworICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19F
TkQKKwogICAgICAgICByZXR1cm4gbmlsOwogICAgIH0KIApAQCAtNzU2MSwxMiArNzU2NywxNiBA
QCAtIChVSVZpZXdDb250cm9sbGVyICopX3ByZXNlbnRlZFZpZXdDb250CiAgICAgICAgIFJldGFp
blB0cjxfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbz4gZWxlbWVudEluZm8gPSBhZG9wdE5TKFtbX1dL
QWN0aXZhdGVkRWxlbWVudEluZm8gYWxsb2NdIF9pbml0V2l0aFR5cGU6X1dLQWN0aXZhdGVkRWxl
bWVudFR5cGVJbWFnZSBVUkw6YWx0ZXJuYXRlVVJMLmdldCgpIGltYWdlVVJMOm5pbCBsb2NhdGlv
bjpfcG9zaXRpb25JbmZvcm1hdGlvbi5yZXF1ZXN0LnBvaW50IHRpdGxlOl9wb3NpdGlvbkluZm9y
bWF0aW9uLnRpdGxlIElEOl9wb3NpdGlvbkluZm9ybWF0aW9uLmlkQXR0cmlidXRlIHJlY3Q6X3Bv
c2l0aW9uSW5mb3JtYXRpb24uYm91bmRzIGltYWdlOl9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdl
LmdldCgpIHVzZXJJbmZvOmltYWdlSW5mby5nZXQoKV0pOwogICAgICAgICBfcGFnZS0+c3RhcnRJ
bnRlcmFjdGlvbldpdGhFbGVtZW50QXRQb3NpdGlvbihfcG9zaXRpb25JbmZvcm1hdGlvbi5yZXF1
ZXN0LnBvaW50KTsKIAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJ
TgogICAgICAgICBpZiAoW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihf
d2ViVmlldzp3aWxsUHJldmlld0ltYWdlV2l0aFVSTDopXSkKICAgICAgICAgICAgIFt1aURlbGVn
YXRlIF93ZWJWaWV3Ol93ZWJWaWV3IHdpbGxQcmV2aWV3SW1hZ2VXaXRoVVJMOnRhcmdldFVSTF07
CisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogCiAgICAgICAgIGF1
dG8gZGVmYXVsdEFjdGlvbnMgPSBbX2FjdGlvblNoZWV0QXNzaXN0YW50IGRlZmF1bHRBY3Rpb25z
Rm9ySW1hZ2VTaGVldDplbGVtZW50SW5mby5nZXQoKV07CiAgICAgICAgIGlmIChpbWFnZUluZm8g
JiYgW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpwcmV2
aWV3Vmlld0NvbnRyb2xsZXJGb3JJbWFnZTphbHRlcm5hdGVVUkw6ZGVmYXVsdEFjdGlvbnM6ZWxl
bWVudEluZm86KV0pIHsKKyAgICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05T
X0JFR0lOCiAgICAgICAgICAgICBVSVZpZXdDb250cm9sbGVyICpwcmV2aWV3Vmlld0NvbnRyb2xs
ZXIgPSBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xsZXJG
b3JJbWFnZTp1aUltYWdlLmdldCgpIGFsdGVybmF0ZVVSTDphbHRlcm5hdGVVUkwuZ2V0KCkgZGVm
YXVsdEFjdGlvbnM6ZGVmYXVsdEFjdGlvbnMuZ2V0KCkgZWxlbWVudEluZm86ZWxlbWVudEluZm8u
Z2V0KCldOworICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAg
ICAgICAgICAgICBpZiAocHJldmlld1ZpZXdDb250cm9sbGVyKQogICAgICAgICAgICAgICAgIHJl
dHVybiBwcmV2aWV3Vmlld0NvbnRyb2xsZXI7CiAgICAgICAgIH0KQEAgLTc1ODUsNyArNzU5NSw5
IEBAIC0gKHZvaWQpX3ByZXZpZXdJdGVtQ29udHJvbGxlcjooVUlQcmV2aWUKICAgICAgICAgICAg
IGNvbnN0IFVSTCYgaW1hZ2VVUkwgPSBfcG9zaXRpb25JbmZvcm1hdGlvbi5pbWFnZVVSTDsKICAg
ICAgICAgICAgIGlmIChpbWFnZVVSTC5pc0VtcHR5KCkgfHwgIShpbWFnZVVSTC5wcm90b2NvbElz
SW5IVFRQRmFtaWx5KCkgfHwgaW1hZ2VVUkwucHJvdG9jb2xJcygiZGF0YSIpKSkKICAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgICAgICAgICAgW3VpRGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgY29tbWl0
UHJldmlld2VkSW1hZ2VXaXRoVVJMOihOU1VSTCAqKWltYWdlVVJMXTsKKyAgICAgICAgICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAgICAgcmV0dXJuOwogICAg
ICAgICB9CiAgICAgICAgIHJldHVybjsKQEAgLTc1OTksNyArNzYxMSw5IEBAIC0gKHZvaWQpX3By
ZXZpZXdJdGVtQ29udHJvbGxlcjooVUlQcmV2aWUKICAgICB9CiAKICAgICBpZiAoW3VpRGVsZWdh
dGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpjb21taXRQcmV2aWV3ZWRW
aWV3Q29udHJvbGxlcjopXSkgeworICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9O
U19CRUdJTgogICAgICAgICBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyBjb21taXRQcmV2
aWV3ZWRWaWV3Q29udHJvbGxlcjp2aWV3Q29udHJvbGxlcl07CisgICAgICAgIEFMTE9XX0RFUFJF
Q0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC03NjIz
LDExICs3NjM3LDEzIEBAIC0gKHZvaWQpX2ludGVyYWN0aW9uU3RvcHBlZEZyb21QcmV2aWV3SXQK
IC0gKHZvaWQpX3ByZXZpZXdJdGVtQ29udHJvbGxlcjooVUlQcmV2aWV3SXRlbUNvbnRyb2xsZXIg
Kiljb250cm9sbGVyIGRpZERpc21pc3NQcmV2aWV3OihVSVZpZXdDb250cm9sbGVyICopdmlld0Nv
bnRyb2xsZXIgY29tbWl0dGluZzooQk9PTCljb21taXR0aW5nCiB7CiAgICAgaWQ8V0tVSURlbGVn
YXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IHN0YXRpY19jYXN0PGlkIDxXS1VJRGVsZWdhdGVQcml2
YXRlPj4oW193ZWJWaWV3IFVJRGVsZWdhdGVdKTsKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xB
UkFUSU9OU19CRUdJTgogICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OmRpZERpc21pc3NQcmV2aWV3Vmlld0NvbnRyb2xsZXI6Y29tbWl0dGlu
ZzopXSkKICAgICAgICAgW3VpRGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgZGlkRGlzbWlzc1By
ZXZpZXdWaWV3Q29udHJvbGxlcjp2aWV3Q29udHJvbGxlciBjb21taXR0aW5nOmNvbW1pdHRpbmdd
OwogICAgIGVsc2UgaWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
X3dlYlZpZXc6ZGlkRGlzbWlzc1ByZXZpZXdWaWV3Q29udHJvbGxlcjopXSkKICAgICAgICAgW3Vp
RGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgZGlkRGlzbWlzc1ByZXZpZXdWaWV3Q29udHJvbGxl
cjp2aWV3Q29udHJvbGxlcl07Ci0gICAgCisgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElP
TlNfRU5ECisKICAgICBbX3dlYlZpZXcgX2RpZERpc21pc3NGb3JjZVByZXNzUHJldmlld107CiB9
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagkocmV2aXNpb24gMjQ1ODI1KQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTA3MSw2ICsxMDcxLDggQEAKIAkJ
NUM0QjlEOEIyMTBBOENDRjAwOEYxNEQxIC8qIFVuZG9PclJlZG8uaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDNEI5RDhBMjEwQThDNDYwMDhGMTREMSAv
KiBVbmRvT3JSZWRvLmggKi87IH07CiAJCTVDNUQyMzhDMjI3QTJDREEwMDBCOUJEQSAvKiBfV0tD
dXN0b21IZWFkZXJGaWVsZHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDVDNUQyMzg5MjI3QTE4OTIwMDBCOUJEQSAvKiBfV0tDdXN0b21IZWFkZXJGaWVs
ZHMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1
QzYyRkRGOTFFRkMyNzFDMDBDRTA3MkUgLyogV0tVUkxTY2hlbWVUYXNrUHJpdmF0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM2MkZERjgxRUZDMjYz
QzAwQ0UwNzJFIC8qIFdLVVJMU2NoZW1lVGFza1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1Qzc5NUQ3MDIyOUYzNzNGMDAzRkYxQzQg
LyogV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0UwQzM2OTIyOUYyRDRBMDAzNjk1RjAgLyogV0tDb250ZXh0
TWVudUVsZW1lbnRJbmZvLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHVibGljLCAp
OyB9OyB9OworCQk1Qzc5NUQ3MTIyOUYzNzU3MDAzRkYxQzQgLyogV0tDb250ZXh0TWVudUVsZW1l
bnRJbmZvUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNUNFMEMzNkEyMjlGMkQ0QTAwMzY5NUYwIC8qIFdLQ29udGV4dE1lbnVFbGVtZW50SW5m
b1ByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk1QzdGQjQ3MDIxRTk3REM1MDA5RTMyNDEgLyogV2ViQ29va2llSmFyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzdGQjQ2RjIxRTk3QzBDMDA5
RTMyNDEgLyogV2ViQ29va2llSmFyLmggKi87IH07CiAJCTVDOEJDNzk3MjE4Q0JCNDgwMDgxMzg4
NiAvKiBTYWZlQnJvd3NpbmcueGNhc3NldHMgaW4gUmVzb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVDOEJDNzk2MjE4Q0I1OEEwMDgxMzg4NiAvKiBTYWZlQnJvd3Np
bmcueGNhc3NldHMgKi87IH07CiAJCTVDOEREMzgwMUZFNDUyMTYwMEYyQTU1NiAvKiBXZWJzaXRl
QXV0b3BsYXlQb2xpY3kuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDVDOEREMzdGMUZFNDUxOTIwMEYyQTU1NiAvKiBXZWJzaXRlQXV0b3BsYXlQb2xpY3ku
aCAqLzsgfTsKQEAgLTM1NzAsNiArMzU3MiwxMiBAQAogCQk1Q0QyODY0RTFFNzIyRjQ0MDA5NEZE
QzggLyogV0tDb250ZW50UnVsZUxpc3RTdG9yZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
Lm9iamNwcDsgcGF0aCA9IFdLQ29udGVudFJ1bGVMaXN0U3RvcmUubW07IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTVDRDI4NjRGMUU3MjJGNDQwMDk0RkRDOCAvKiBXS0NvbnRlbnRSdWxl
TGlzdFN0b3JlSW50ZXJuYWwuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tD
b250ZW50UnVsZUxpc3RTdG9yZUludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTVDRDI4NjUwMUU3MjJGNDQwMDk0RkRDOCAvKiBXS0NvbnRlbnRSdWxlTGlzdFN0b3JlUHJp
dmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0NvbnRlbnRSdWxlTGlz
dFN0b3JlUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1Q0UwQzM2NjIy
OUYyRDNEMDAzNjk1RjAgLyogQVBJQ29udGV4dE1lbnVFbGVtZW50SW5mby5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBBUElDb250ZXh0TWVudUVsZW1lbnRJbmZvLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNUNFMEMzNjcyMjlGMkQzRTAwMzY5NUYw
IC8qIEFQSUNvbnRleHRNZW51RWxlbWVudEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQVBJQ29udGV4dE1lbnVFbGVtZW50SW5mby5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1Q0UwQzM2ODIyOUYyRDRBMDAzNjk1RjAgLyogV0tDb250ZXh0TWVudUVsZW1l
bnRJbmZvLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tDb250
ZXh0TWVudUVsZW1lbnRJbmZvLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1Q0Uw
QzM2OTIyOUYyRDRBMDAzNjk1RjAgLyogV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1Q0UwQzM2QTIyOUYyRDRBMDAzNjk1RjAgLyog
V0tDb250ZXh0TWVudUVsZW1lbnRJbmZvUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXS0NvbnRleHRNZW51RWxlbWVudEluZm9Qcml2YXRlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCTVDRTBDMzZCMjI5RjJENEIwMDM2OTVGMCAvKiBXS0NvbnRleHRN
ZW51RWxlbWVudEluZm9JbnRlcm5hbC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS0NvbnRleHRNZW51RWxlbWVudEluZm9JbnRlcm5hbC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk1Q0U4NUIxRjFDODhFNjQzMDA3MEJGQ0UgLyogUGluZ0xvYWQuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUGluZ0xvYWQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNUNFOTEyMEIyMjkzQzFFMDAwNUJFQzc4IC8qIFdLTWFpbi5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS01haW4uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNUNFOTEyMEMyMjkzQzFFMDAwNUJFQzc4IC8qIFdLTWFpbi5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdLTWFpbi5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTYyNDUsNiArNjI1MywxMCBAQAogCQkJCTVDRDI4NjRFMUU3MjJGNDQw
MDk0RkRDOCAvKiBXS0NvbnRlbnRSdWxlTGlzdFN0b3JlLm1tICovLAogCQkJCTVDRDI4NjRGMUU3
MjJGNDQwMDk0RkRDOCAvKiBXS0NvbnRlbnRSdWxlTGlzdFN0b3JlSW50ZXJuYWwuaCAqLywKIAkJ
CQk1Q0QyODY1MDFFNzIyRjQ0MDA5NEZEQzggLyogV0tDb250ZW50UnVsZUxpc3RTdG9yZVByaXZh
dGUuaCAqLywKKwkJCQk1Q0UwQzM2OTIyOUYyRDRBMDAzNjk1RjAgLyogV0tDb250ZXh0TWVudUVs
ZW1lbnRJbmZvLmggKi8sCisJCQkJNUNFMEMzNjgyMjlGMkQ0QTAwMzY5NUYwIC8qIFdLQ29udGV4
dE1lbnVFbGVtZW50SW5mby5tbSAqLywKKwkJCQk1Q0UwQzM2QjIyOUYyRDRCMDAzNjk1RjAgLyog
V0tDb250ZXh0TWVudUVsZW1lbnRJbmZvSW50ZXJuYWwuaCAqLywKKwkJCQk1Q0UwQzM2QTIyOUYy
RDRBMDAzNjk1RjAgLyogV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvUHJpdmF0ZS5oICovLAogCQkJ
CTFBRjQ1OTJEMTk0NjRCMjAwMEY5RDRBMiAvKiBXS0Vycm9yLmggKi8sCiAJCQkJMUFGNDU5MkMx
OTQ2NEIyMDAwRjlENEEyIC8qIFdLRXJyb3IubW0gKi8sCiAJCQkJMUEyRDI1MkExOTQ2ODhGRDAw
NDUzN0IwIC8qIFdLRXJyb3JJbnRlcm5hbC5oICovLApAQCAtNzcxMCw2ICs3NzIyLDggQEAKIAkJ
CQk3QzNBMDZBNTFBQUI5MDNFMDA5RDc0QkEgLyogQVBJQ29udGVudFJ1bGVMaXN0U3RvcmUuY3Bw
ICovLAogCQkJCTdDM0EwNkE2MUFBQjkwM0UwMDlENzRCQSAvKiBBUElDb250ZW50UnVsZUxpc3RT
dG9yZS5oICovLAogCQkJCTA3NkU4ODREMUExM0NBREYwMDVFOTBGQyAvKiBBUElDb250ZXh0TWVu
dUNsaWVudC5oICovLAorCQkJCTVDRTBDMzY2MjI5RjJEM0QwMDM2OTVGMCAvKiBBUElDb250ZXh0
TWVudUVsZW1lbnRJbmZvLmNwcCAqLywKKwkJCQk1Q0UwQzM2NzIyOUYyRDNFMDAzNjk1RjAgLyog
QVBJQ29udGV4dE1lbnVFbGVtZW50SW5mby5oICovLAogCQkJCTVDNUQyMzhBMjI3QTFEOUIwMDBC
OUJEQSAvKiBBUElDdXN0b21IZWFkZXJGaWVsZHMuaCAqLywKIAkJCQk3QTgyMUY0RjFFMkY3QTVD
MDA2MDQ1NzcgLyogQVBJQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyQ2xpZW50LmggKi8sCiAJCQkJODM4
OTFCNjIxQTY4QjM0MjAwMzBGMzg2IC8qIEFQSURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmggKi8s
CkBAIC05ODg0LDYgKzk4OTgsOCBAQAogCQkJCTFBNDQ1QkEzMTg0RDVGQ0YwMDRCMzQxNCAvKiBX
S0NvbnRleHREb3dubG9hZENsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0NDVCQTExODRE
NUZDMTAwNEIzNDE0IC8qIFdLQ29udGV4dEhpc3RvcnlDbGllbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCTFBNDQ1QjlGMTg0RDVGQjUwMDRCMzQxNCAvKiBXS0NvbnRleHRJbmplY3RlZEJ1bmRsZUNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJNUM3OTVENzAyMjlGMzczRjAwM0ZGMUM0IC8qIFdL
Q29udGV4dE1lbnVFbGVtZW50SW5mby5oIGluIEhlYWRlcnMgKi8sCisJCQkJNUM3OTVENzEyMjlG
Mzc1NzAwM0ZGMUM0IC8qIFdLQ29udGV4dE1lbnVFbGVtZW50SW5mb1ByaXZhdGUuaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxQTU1NUY2MTI4QzZDNDcwMDlBQkNFQyAvKiBXS0NvbnRleHRNZW51SXRl
bS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFBNTU2MDExMjhDNkQ5MjAwOUFCQ0VDIC8qIFdLQ29u
dGV4dE1lbnVJdGVtVHlwZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUExRUEwMjM4MURBQkZGN0Uw
MDk2MDIxRiAvKiBXS0NvbnRleHRNZW51TGlzdGVuZXIuaCBpbiBIZWFkZXJzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371461</attachid>
            <date>2019-06-05 17:55:51 -0700</date>
            <delta_ts>2019-06-05 17:56:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198590-20190605175550.patch</filename>
            <type>text/plain</type>
            <size>43579</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDYxMzApCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQzIEBACisyMDE5LTA2LTA1ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgSW50cm9kdWNlIG5l
dyBTUEkgZm9yIGNvbnRleHQgbWVudXMgb24gaU9TCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg1OTAKKworICAgICAgICBSZXZpZXdlZCBieSBUaW0g
SG9ydG9uLgorCisgICAgICAgIEFsc28gaW50cm9kdWNlIFdLQ29udGV4dE1lbnVFbGVtZW50SW5m
byB3aGljaCBpcyBBUEkuCisgICAgICAgIFRoaXMgaXMgcGFydCBvZiA8cmRhcjovL3Byb2JsZW0v
NTEwMDM1MDM+CisKKyAgICAgICAgKiBTaGFyZWQvQVBJL0FQSU9iamVjdC5oOgorICAgICAgICAq
IFNoYXJlZC9BUEkvQ29jb2EvV2ViS2l0Lmg6CisgICAgICAgICogU2hhcmVkL0NvY29hL0FQSU9i
amVjdC5tbToKKyAgICAgICAgKEFQSTo6T2JqZWN0OjpuZXdPYmplY3QpOgorICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFNvdXJjZXNDb2NvYS50eHQ6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9BUElDb250ZXh0TWVudUVsZW1lbnRJbmZvLmNwcDogQWRkZWQuCisgICAgICAgIChB
UEk6OkNvbnRleHRNZW51RWxlbWVudEluZm86OkNvbnRleHRNZW51RWxlbWVudEluZm8pOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJQ29udGV4dE1lbnVFbGVtZW50SW5mby5oOiBBZGRlZC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5o
OiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGV4dE1lbnVFbGVt
ZW50SW5mby5tbTogQWRkZWQuCisgICAgICAgICgtW1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyBs
aW5rVVJMXSk6CisgICAgICAgICgtW1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyBfYXBpT2JqZWN0
XSk6CisgICAgICAgICgtW1dLQ29udGV4dE1lbnVFbGVtZW50SW5mbyBfYWN0aXZhdGVkRWxlbWVu
dEluZm9dKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGV4dE1lbnVFbGVt
ZW50SW5mb0ludGVybmFsLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tDb250ZXh0TWVudUVsZW1lbnRJbmZvUHJpdmF0ZS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvLmg6CisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8ubW06CisgICAgICAgICgtW19XS0Fj
dGl2YXRlZEVsZW1lbnRJbmZvIF9pbml0V2l0aEludGVyYWN0aW9uSW5mb3JtYXRpb25BdFBvc2l0
aW9uOl0pOgorICAgICAgICAoLVtfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyBpc0FuaW1hdGVkSW1h
Z2VdKToKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQubW06CisgICAg
ICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgZGVmYXVsdEFjdGlvbnNGb3JMaW5rU2hlZXQ6
XSk6CisgICAgICAgICgtW1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQgZGVmYXVsdEFjdGlvbnNGb3JJ
bWFnZVNoZWV0Ol0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tOgorICAg
ICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDE5LTA2LTA1ICBB
bGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CiAKICAgICAgICAgUmUt
ZW5hYmxlIHNhZmUgYnJvd3NpbmcgaW4gV0tXZWJWaWV3CkluZGV4OiBTb3VyY2UvV2ViS2l0L1Nv
dXJjZXMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU291cmNlcy50eHQJKHJldmlz
aW9uIDI0NjEzMCkKKysrIFNvdXJjZS9XZWJLaXQvU291cmNlcy50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTMwMCw2ICszMDAsNyBAQCBVSVByb2Nlc3MvQVBJL0FQSUF0dGFjaG1lbnQuY3BwCiBVSVBy
b2Nlc3MvQVBJL0FQSUNvbnRlbnRSdWxlTGlzdC5jcHAKIFVJUHJvY2Vzcy9BUEkvQVBJQ29udGVu
dFJ1bGVMaXN0QWN0aW9uLmNwcAogVUlQcm9jZXNzL0FQSS9BUElDb250ZW50UnVsZUxpc3RTdG9y
ZS5jcHAKK1VJUHJvY2Vzcy9BUEkvQVBJQ29udGV4dE1lbnVFbGVtZW50SW5mby5jcHAKIFVJUHJv
Y2Vzcy9BUEkvQVBJRXhwZXJpbWVudGFsRmVhdHVyZS5jcHAKIFVJUHJvY2Vzcy9BUEkvQVBJRnJh
bWVJbmZvLmNwcAogVUlQcm9jZXNzL0FQSS9BUElIVFRQQ29va2llU3RvcmUuY3BwCkluZGV4OiBT
b3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9Tb3VyY2VzQ29jb2EudHh0CShyZXZpc2lvbiAyNDYxMzApCisrKyBTb3VyY2UvV2ViS2l0L1Nv
dXJjZXNDb2NvYS50eHQJKHdvcmtpbmcgY29weSkKQEAgLTI4NCw2ICsyODQsNyBAQCBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0R3JvCiBVSVByb2Nlc3MvQVBJL0NvY29hL1dL
Q29ubmVjdGlvbi5tbQogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRSdWxlTGlzdC5tbQog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRlbnRSdWxlTGlzdFN0b3JlLm1tCitVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5tbQogVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0Vycm9yLm1tCiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLRnJhbWVJbmZvLm1tCiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLSFRUUENvb2tpZVN0b3JlLm1tCkluZGV4OiBTb3VyY2UvV2ViS2l0L1No
YXJlZC9BUEkvQVBJT2JqZWN0LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQv
QVBJL0FQSU9iamVjdC5oCShyZXZpc2lvbiAyNDYxMzApCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9BUEkvQVBJT2JqZWN0LmgJKHdvcmtpbmcgY29weSkKQEAgLTEwOSw2ICsxMDksOSBAQCBwdWJs
aWM6CiAgICAgICAgIENvbnRlbnRSdWxlTGlzdCwKICAgICAgICAgQ29udGVudFJ1bGVMaXN0QWN0
aW9uLAogICAgICAgICBDb250ZW50UnVsZUxpc3RTdG9yZSwKKyNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQorICAgICAgICBDb250ZXh0TWVudUVsZW1lbnRJbmZvLAorI2VuZGlmCiAgICAgICAgIENv
bnRleHRNZW51TGlzdGVuZXIsCiAgICAgICAgIENvb2tpZU1hbmFnZXIsCiAgICAgICAgIEN1c3Rv
bUhlYWRlckZpZWxkcywKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9XZWJL
aXQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9BUEkvQ29jb2EvV2ViS2l0
LmgJKHJldmlzaW9uIDI0NjEzMCkKKysrIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0FQSS9Db2NvYS9X
ZWJLaXQuaAkod29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2ltcG9ydCA8V2ViS2l0
L1dLQmFja0ZvcndhcmRMaXN0SXRlbS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLQ29udGVudFJ1bGVM
aXN0Lmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tDb250ZW50UnVsZUxpc3RTdG9yZS5oPgorI2ltcG9y
dCA8V2ViS2l0L1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5oPgogI2ltcG9ydCA8V2ViS2l0L1dL
RXJyb3IuaD4KICNpbXBvcnQgPFdlYktpdC9XS0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFdlYktp
dC9XS0ZyYW1lSW5mby5oPgpJbmRleDogU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQVBJT2Jq
ZWN0Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0FQSU9iamVj
dC5tbQkocmV2aXNpb24gMjQ2MTMwKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvQVBJ
T2JqZWN0Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJXS0Nv
bm5lY3Rpb25JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tDb250ZW50UnVsZUxpc3RJbnRlcm5hbC5o
IgogI2ltcG9ydCAiV0tDb250ZW50UnVsZUxpc3RTdG9yZUludGVybmFsLmgiCisjaW1wb3J0ICJX
S0NvbnRleHRNZW51RWxlbWVudEluZm9JbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tGcmFtZUluZm9J
bnRlcm5hbC5oIgogI2ltcG9ydCAiV0tIVFRQQ29va2llU3RvcmVJbnRlcm5hbC5oIgogI2ltcG9y
dCAiV0tOU0FycmF5LmgiCkBAIC0zMTMsNiArMzE0LDEyIEBAIHZvaWQqIE9iamVjdDo6bmV3T2Jq
ZWN0KHNpemVfdCBzaXplLCBUeXAKICAgICAgICAgd3JhcHBlciA9IFtXS0NvbnRlbnRSdWxlTGlz
dFN0b3JlIGFsbG9jXTsKICAgICAgICAgYnJlYWs7CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQorICAgIGNhc2UgVHlwZTo6Q29udGV4dE1lbnVFbGVtZW50SW5mbzoKKyAgICAgICAgd3JhcHBl
ciA9IFtXS0NvbnRleHRNZW51RWxlbWVudEluZm8gYWxsb2NdOworICAgICAgICBicmVhazsKKyNl
bmRpZgorCiAgICAgY2FzZSBUeXBlOjpDdXN0b21IZWFkZXJGaWVsZHM6CiAgICAgICAgIHdyYXBw
ZXIgPSBbX1dLQ3VzdG9tSGVhZGVyRmllbGRzIGFsbG9jXTsKICAgICAgICAgYnJlYWs7CkluZGV4
OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGV4dE1lbnVFbGVtZW50SW5mby5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRleHRN
ZW51RWxlbWVudEluZm8uY3BwCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElDb250ZXh0TWVudUVsZW1lbnRJbmZvLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDQwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUg
IkFQSUNvbnRleHRNZW51RWxlbWVudEluZm8uaCIKKworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkp
CisKK25hbWVzcGFjZSBBUEkgeworCitDb250ZXh0TWVudUVsZW1lbnRJbmZvOjpDb250ZXh0TWVu
dUVsZW1lbnRJbmZvKGNvbnN0IFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRp
b24mIGluZm8pCisgICAgOiBtX2ludGVyYWN0aW9uSW5mb3JtYXRpb24oaW5mbykKK3sKK30KKwor
fSAvLyBuYW1lc3BhY2UgQVBJCisKKyNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQpJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUNvbnRleHRNZW51RWxlbWVudEluZm8u
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQ29udGV4dE1l
bnVFbGVtZW50SW5mby5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElDb250ZXh0TWVudUVsZW1lbnRJbmZvLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw1NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKKworI2luY2x1ZGUgIkFQSU9iamVjdC5oIgorI2luY2x1ZGUgIkludGVyYWN0aW9uSW5m
b3JtYXRpb25BdFBvc2l0aW9uLmgiCisKK25hbWVzcGFjZSBBUEkgeworCitjbGFzcyBDb250ZXh0
TWVudUVsZW1lbnRJbmZvIGZpbmFsIDogcHVibGljIE9iamVjdEltcGw8T2JqZWN0OjpUeXBlOjpD
b250ZXh0TWVudUVsZW1lbnRJbmZvPiB7CitwdWJsaWM6CisgICAgdGVtcGxhdGU8dHlwZW5hbWUu
Li4gQXJncz4gc3RhdGljIFJlZjxDb250ZXh0TWVudUVsZW1lbnRJbmZvPiBjcmVhdGUoQXJncyYm
Li4uIGFyZ3MpCisgICAgeworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBDb250ZXh0TWVu
dUVsZW1lbnRJbmZvKHN0ZDo6Zm9yd2FyZDxBcmdzPihhcmdzKS4uLikpOworICAgIH0KKyAgICAK
KyAgICBjb25zdCBXVEY6OlVSTCYgdXJsKCkgY29uc3QgeyByZXR1cm4gbV9pbnRlcmFjdGlvbklu
Zm9ybWF0aW9uLnVybDsgfQorCisgICAgY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbiYgaW50ZXJhY3Rpb25JbmZvcm1hdGlvbigpIGNvbnN0IHsgcmV0dXJuIG1f
aW50ZXJhY3Rpb25JbmZvcm1hdGlvbjsgfQorCitwcml2YXRlOgorICAgIENvbnRleHRNZW51RWxl
bWVudEluZm8oY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0aW9uQXRQb3NpdGlvbiYp
OworICAgIAorICAgIFdlYktpdDo6SW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb24gbV9p
bnRlcmFjdGlvbkluZm9ybWF0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgQVBJCisKKyNlbmRp
ZgpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQ29udGV4dE1lbnVF
bGVtZW50SW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0NvbnRleHRNZW51RWxlbWVudEluZm8uaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmgJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw0NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgPFdlYktp
dC9XS0ZvdW5kYXRpb24uaD4KKworI2lmIFRBUkdFVF9PU19JUEhPTkUKKworI2ltcG9ydCA8Rm91
bmRhdGlvbi9Gb3VuZGF0aW9uLmg+CisKK05TX0FTU1VNRV9OT05OVUxMX0JFR0lOCisKK1dLX0NM
QVNTX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpCitAaW50ZXJmYWNlIFdLQ29udGV4dE1lbnVF
bGVtZW50SW5mbyA6IE5TT2JqZWN0CisKKy0gKGluc3RhbmNldHlwZSlpbml0IE5TX1VOQVZBSUxB
QkxFOworCitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHksIG51bGxhYmxlKSBOU1VSTCAq
bGlua1VSTDsKKworQGVuZAorCitOU19BU1NVTUVfTk9OTlVMTF9FTkQKKworI2VuZGlmCisKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRleHRNZW51RWxlbWVu
dEluZm8ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLQ29udGV4dE1lbnVFbGVtZW50SW5mby5tbQkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLm1tCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcu
aCIKKyNpbXBvcnQgIldLQ29udGV4dE1lbnVFbGVtZW50SW5mb0ludGVybmFsLmgiCisKKyNpZiBQ
TEFURk9STShJT1NfRkFNSUxZKQorCisjaW1wb3J0ICJfV0tBY3RpdmF0ZWRFbGVtZW50SW5mb0lu
dGVybmFsLmgiCisKK0BpbXBsZW1lbnRhdGlvbiBXS0NvbnRleHRNZW51RWxlbWVudEluZm8KKwor
LSAoTlNVUkwgKilsaW5rVVJMCit7CisgICAgcmV0dXJuIF9lbGVtZW50SW5mby0+dXJsKCk7Cit9
CisKKy0gKEFQSTo6T2JqZWN0JilfYXBpT2JqZWN0Cit7CisgICAgcmV0dXJuICpfZWxlbWVudElu
Zm87Cit9CisKK0BlbmQKKworQGltcGxlbWVudGF0aW9uIFdLQ29udGV4dE1lbnVFbGVtZW50SW5m
byAoV0tQcml2YXRlKQorCistIChfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKV9hY3RpdmF0ZWRF
bGVtZW50SW5mbworeworICAgIHJldHVybiBbX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gYWN0aXZh
dGVkRWxlbWVudEluZm9XaXRoSW50ZXJhY3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb246X2VsZW1l
bnRJbmZvLT5pbnRlcmFjdGlvbkluZm9ybWF0aW9uKCldOworfQorCitAZW5kCisKKyNlbmRpZgor
CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZXh0TWVudUVs
ZW1lbnRJbmZvSW50ZXJuYWwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvSW50ZXJuYWwuaAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZXh0TWVudUVs
ZW1lbnRJbmZvSW50ZXJuYWwuaAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQ2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2ltcG9ydCAiQVBJQ29udGV4dE1lbnVFbGVtZW50SW5mby5oIgorI2ltcG9ydCAi
V0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmgiCisjaW1wb3J0ICJXS09iamVjdC5oIgorCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3RlbXBsYXRlPD4g
c3RydWN0IFdyYXBwZXJUcmFpdHM8QVBJOjpDb250ZXh0TWVudUVsZW1lbnRJbmZvPiB7CisgICAg
dXNpbmcgV3JhcHBlckNsYXNzID0gV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvOworfTsKKworfQor
CitAaW50ZXJmYWNlIFdLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAoKSA8V0tPYmplY3Q+IHsKK0Bw
YWNrYWdlCisgICAgQVBJOjpPYmplY3RTdG9yYWdlPEFQSTo6Q29udGV4dE1lbnVFbGVtZW50SW5m
bz4gX2VsZW1lbnRJbmZvOworfQorQGVuZAorCisjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlM
WSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0NvbnRleHRNZW51
RWxlbWVudEluZm9Qcml2YXRlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLQ29udGV4dE1lbnVFbGVtZW50SW5mb1ByaXZhdGUuaAkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tDb250ZXh0TWVudUVs
ZW1lbnRJbmZvUHJpdmF0ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0IDxXZWJLaXQvV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmg+CisKK0Bj
bGFzcyBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbzsKKworQGludGVyZmFjZSBXS0NvbnRleHRNZW51
RWxlbWVudEluZm8gKFdLUHJpdmF0ZSkKKworQHByb3BlcnR5IChub25hdG9taWMsIGNvcHksIHJl
YWRvbmx5KSBfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqX2FjdGl2YXRlZEVsZW1lbnRJbmZvOwor
CitAZW5kCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tQcmV2aWV3
RWxlbWVudEluZm8uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tQcmV2aWV3RWxlbWVudEluZm8uaAkocmV2aXNpb24gMjQ2MTMwKQorKysgU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLUHJldmlld0VsZW1lbnRJbmZvLmgJKHdvcmtp
bmcgY29weSkKQEAgLTMxLDcgKzMxLDcgQEAKIAogTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIAot
V0tfQ0xBU1NfQVZBSUxBQkxFKGlvcygxMC4wKSkKK1dLX0NMQVNTX0RFUFJFQ0FURURfV0lUSF9S
RVBMQUNFTUVOVCgiV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvIiwgaW9zKDEwLjAsIFdLX0lPU19U
QkEpKQogQGludGVyZmFjZSBXS1ByZXZpZXdFbGVtZW50SW5mbyA6IE5TT2JqZWN0IDxOU0NvcHlp
bmc+CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgbnVsbGFibGUpIE5TVVJMICps
aW5rVVJMOwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLVUlEZWxl
Z2F0ZVByaXZhdGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCShyZXZpc2lvbiAyNDYxMzApCisrKyBTb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC00MCw4ICs0MCwxMSBAQAogQGNsYXNzIF9XS0ZyYW1lSGFuZGxlOwogCiAjaWYg
VEFSR0VUX09TX0lPUworQGNsYXNzIFVJQ29udGV4dE1lbnVDb25maWd1cmF0aW9uOwogQGNsYXNz
IFVJRHJhZ0l0ZW07CiBAY2xhc3MgVUlUYXJnZXRlZERyYWdQcmV2aWV3OworQGNsYXNzIFdLQ29u
dGV4dE1lbnVFbGVtZW50SW5mbzsKK0Bwcm90b2NvbCBVSUNvbnRleHRNZW51SW50ZXJhY3Rpb25D
b21taXRBbmltYXRpbmc7CiBAcHJvdG9jb2wgVUlEcmFnU2Vzc2lvbjsKIEBwcm90b2NvbCBVSURy
b3BTZXNzaW9uOwogI2Vsc2UKQEAgLTEzNSwyNCArMTM4LDMzIEBAIHN0cnVjdCBVSUVkZ2VJbnNl
dHM7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZE5vdEhhbmRsZVRh
cEFzQ2xpY2tBdFBvaW50OihDR1BvaW50KXBvaW50OwogLSAoQk9PTClfd2ViVmlldzooV0tXZWJW
aWV3ICopd2ViVmlldyBzaG91bGRSZXF1ZXN0R2VvbG9jYXRpb25BdXRob3JpemF0aW9uRm9yVVJM
OihOU1VSTCAqKXVybCBpc01haW5GcmFtZTooQk9PTClpc01haW5GcmFtZSBtYWluRnJhbWVVUkw6
KE5TVVJMICopbWFpbkZyYW1lVVJMOwogLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2Vi
VmlldyByZXF1ZXN0R2VvbG9jYXRpb25BdXRob3JpemF0aW9uRm9yVVJMOihOU1VSTCAqKXVybCBm
cmFtZTooV0tGcmFtZUluZm8gKilmcmFtZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKEJPT0wg
YXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsK
LS0gKFVJVmlld0NvbnRyb2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2
aWV3Vmlld0NvbnRyb2xsZXJGb3JVUkw6KE5TVVJMICopdXJsIFdLX0FQSV9BVkFJTEFCTEUoaW9z
KDkuMCkpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb21taXRQcmV2
aWV3ZWRWaWV3Q29udHJvbGxlcjooVUlWaWV3Q29udHJvbGxlciAqKXByZXZpZXdlZFZpZXdDb250
cm9sbGVyIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOwotLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyB3aWxsUHJldmlld0ltYWdlV2l0aFVSTDooTlNVUkwgKilpbWFnZVVS
TCBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjApKTsKLS0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmll
dyAqKXdlYlZpZXcgY29tbWl0UHJldmlld2VkSW1hZ2VXaXRoVVJMOihOU1VSTCAqKWltYWdlVVJM
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBkaWREaXNtaXNzUHJldmlld1ZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9s
bGVyICopcHJldmlld2VkVmlld0NvbnRyb2xsZXIgY29tbWl0dGluZzooQk9PTCljb21taXR0aW5n
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOwotLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBkaWREaXNtaXNzUHJldmlld1ZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9s
bGVyICopcHJldmlld2VkVmlld0NvbnRyb2xsZXIgV0tfQVBJX0FWQUlMQUJMRShpb3MoOS4wKSk7
CistIChVSVZpZXdDb250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJl
dmlld1ZpZXdDb250cm9sbGVyRm9yVVJMOihOU1VSTCAqKXVybCBXS19BUElfREVQUkVDQVRFRF9X
SVRIX1JFUExBQ0VNRU5UKCJ3ZWJWaWV3OmNvbnRleHRNZW51Q29uZmlndXJhdGlvbkZvckVsZW1l
bnQ6Y29tcGxldGlvbkhhbmRsZXI6IiwgaW9zKDkuMCwgV0tfSU9TX1RCQSkpOworLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb21taXRQcmV2aWV3ZWRWaWV3Q29udHJvbGxl
cjooVUlWaWV3Q29udHJvbGxlciAqKXByZXZpZXdlZFZpZXdDb250cm9sbGVyIFdLX0FQSV9ERVBS
RUNBVEVEX1dJVEhfUkVQTEFDRU1FTlQoIndlYlZpZXc6Y29tbWl0Q29udGV4dE1lbnU6IiwgaW9z
KDkuMCwgV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyB3aWxsUHJldmlld0ltYWdlV2l0aFVSTDooTlNVUkwgKilpbWFnZVVSTCBXS19BUElfREVQUkVD
QVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJ3ZWJWaWV3OmNvbnRleHRNZW51Q29uZmlndXJhdGlvbkZv
ckVsZW1lbnQ6Y29tcGxldGlvbkhhbmRsZXI6IiwgaW9zKDkuMCwgV0tfSU9TX1RCQSkpOworLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb21taXRQcmV2aWV3ZWRJbWFnZVdp
dGhVUkw6KE5TVVJMICopaW1hZ2VVUkwgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVO
VCgid2ViVmlldzpjb21taXRDb250ZXh0TWVudToiLCBpb3MoOS4wLCBXS19JT1NfVEJBKSk7Cist
ICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZERpc21pc3NQcmV2aWV3Vmll
d0NvbnRyb2xsZXI6KFVJVmlld0NvbnRyb2xsZXIgKilwcmV2aWV3ZWRWaWV3Q29udHJvbGxlciBj
b21taXR0aW5nOihCT09MKWNvbW1pdHRpbmcgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNF
TUVOVCgid2ViVmlldzpkaXNtaXNzQ29udGV4dE1lbnU6IiwgaW9zKDkuMCwgV0tfSU9TX1RCQSkp
OworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWREaXNtaXNzUHJldmll
d1ZpZXdDb250cm9sbGVyOihVSVZpZXdDb250cm9sbGVyICopcHJldmlld2VkVmlld0NvbnRyb2xs
ZXIgV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgid2ViVmlldzpkaXNtaXNzQ29u
dGV4dE1lbnU6IiwgaW9zKDkuMCwgV0tfSU9TX1RCQSkpOworCisvLyBUaGlzIG5lZWRzIHRvIGJl
IGtlcHQgb25jZSB0aGVyZSBpcyBhbiBBUEkgdmVyc2lvbiB0byBjb250aW51ZSB0byBkbyBjYWxs
YmFja3MgZm9yIGltYWdlIGVsZW1lbnQgY29udGV4dCBtZW51cy4KKy0gKHZvaWQpX3dlYlZpZXc6
KFdLV2ViVmlldyAqKXdlYlZpZXcgY29udGV4dE1lbnVDb25maWd1cmF0aW9uRm9yRWxlbWVudDoo
V0tDb250ZXh0TWVudUVsZW1lbnRJbmZvICopZWxlbWVudEluZm8gY29tcGxldGlvbkhhbmRsZXI6
KHZvaWQoXikoVUlDb250ZXh0TWVudUNvbmZpZ3VyYXRpb24gKikpY29tcGxldGlvbkhhbmRsZXIg
V0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworCisvLyBUaGVzZSBjYW4gYmUgcmVt
b3ZlZCBvbmNlIHRoZXJlIGlzIGFuIEFQSSB2ZXJzaW9uLgorLSAodm9pZClfd2ViVmlldzooV0tX
ZWJWaWV3ICopd2ViVmlldyBjb250ZXh0TWVudUZvckVsZW1lbnQ6KFdLQ29udGV4dE1lbnVFbGVt
ZW50SW5mbyAqKWVsZW1lbnRJbmZvIHdpbGxDb21taXRXaXRoQW5pbWF0b3I6KGlkPFVJQ29udGV4
dE1lbnVJbnRlcmFjdGlvbkNvbW1pdEFuaW1hdGluZz4pYW5pbWF0b3IgV0tfQVBJX0FWQUlMQUJM
RShpb3MoV0tfSU9TX1RCQSkpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmll
dyBjb250ZXh0TWVudVdpbGxQcmVzZW50Rm9yRWxlbWVudDooV0tDb250ZXh0TWVudUVsZW1lbnRJ
bmZvICopZWxlbWVudEluZm8gV0tfQVBJX0FWQUlMQUJMRShpb3MoV0tfSU9TX1RCQSkpOworLSAo
dm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBjb250ZXh0TWVudURpZEVuZEZvckVs
ZW1lbnQ6KFdLQ29udGV4dE1lbnVFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIFdLX0FQSV9BVkFJ
TEFCTEUoaW9zKFdLX0lPU19UQkEpKTsKKwogLSAoQk9PTClfd2ViVmlldzooV0tXZWJWaWV3ICop
d2ViVmlldyBzaG93Q3VzdG9tU2hlZXRGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5m
byAqKWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMCkpOwogLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBhbHRlcm5hdGVBY3Rpb25Gb3JVUkw6KE5TVVJMICopdXJs
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKIC0gKE5TQXJyYXkgKilfYXR0YWNobWVudExp
c3RGb3JXZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEw
LjApKTsKIC0gKE5TQXJyYXkgKilfYXR0YWNobWVudExpc3RGb3JXZWJWaWV3OihXS1dlYlZpZXcg
Kil3ZWJWaWV3IHNvdXJjZUlzTWFuYWdlZDooQk9PTCopc291cmNlSXNNYW5hZ2VkIFdLX0FQSV9B
VkFJTEFCTEUoaW9zKDEwLjMpKTsKIC0gKE5TVUludGVnZXIpX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgaW5kZXhJbnRvQXR0YWNobWVudExpc3RGb3JFbGVtZW50OihfV0tBY3RpdmF0ZWRF
bGVtZW50SW5mbyAqKWVsZW1lbnQgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTAuMykpOwogLSAoVUlF
ZGdlSW5zZXRzKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGZpbmFsT2JzY3VyZWRJbnNl
dHNGb3JTY3JvbGxWaWV3OihVSVNjcm9sbFZpZXcgKilzY3JvbGxWaWV3IHdpdGhWZWxvY2l0eToo
Q0dQb2ludCl2ZWxvY2l0eSB0YXJnZXRDb250ZW50T2Zmc2V0Oihpbm91dCBDR1BvaW50ICopdGFy
Z2V0Q29udGVudE9mZnNldCBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjApKTsKLS0gKFVJVmlld0Nv
bnRyb2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRy
b2xsZXJGb3JVUkw6KE5TVVJMICopdXJsIGRlZmF1bHRBY3Rpb25zOihOU0FycmF5PF9XS0VsZW1l
bnRBY3Rpb24gKj4gKilhY3Rpb25zIGVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5m
byAqKWVsZW1lbnRJbmZvIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOwotLSAoVUlWaWV3Q29u
dHJvbGxlciAqKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJv
bGxlckZvckFuaW1hdGVkSW1hZ2VBdFVSTDooTlNVUkwgKil1cmwgZGVmYXVsdEFjdGlvbnM6KE5T
QXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPiAqKWFjdGlvbnMgZWxlbWVudEluZm86KF9XS0FjdGl2
YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8gaW1hZ2VTaXplOihDR1NpemUpaW1hZ2VTaXpl
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDkuMCkpOworLSAoVUlWaWV3Q29udHJvbGxlciAqKV93ZWJW
aWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvclVSTDooTlNV
UkwgKil1cmwgZGVmYXVsdEFjdGlvbnM6KE5TQXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPiAqKWFj
dGlvbnMgZWxlbWVudEluZm86KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8g
V0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBMQUNFTUVOVCgid2ViVmlldzpjb250ZXh0TWVudUNv
bmZpZ3VyYXRpb25Gb3JFbGVtZW50OiIsIGlvcyg5LjAsIFdLX0lPU19UQkEpKTsKKy0gKFVJVmll
d0NvbnRyb2xsZXIgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0Nv
bnRyb2xsZXJGb3JBbmltYXRlZEltYWdlQXRVUkw6KE5TVVJMICopdXJsIGRlZmF1bHRBY3Rpb25z
OihOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4gKilhY3Rpb25zIGVsZW1lbnRJbmZvOihfV0tB
Y3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIGltYWdlU2l6ZTooQ0dTaXplKWltYWdl
U2l6ZSBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExBQ0VNRU5UKCJ3ZWJWaWV3OmNvbnRleHRN
ZW51Q29uZmlndXJhdGlvbkZvckVsZW1lbnQ6IiwgaW9zKDkuMCwgV0tfSU9TX1RCQSkpOwogLSAo
VUlWaWV3Q29udHJvbGxlciAqKV9wcmVzZW50aW5nVmlld0NvbnRyb2xsZXJGb3JXZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEwLjApKTsKIC0gKHZvaWQp
X3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZ2V0QWx0ZXJuYXRlVVJMRnJvbUltYWdlOihV
SUltYWdlICopaW1hZ2UgY29tcGxldGlvbkhhbmRsZXI6KHZvaWQgKF4pKE5TVVJMICphbHRlcm5h
dGVVUkwsIE5TRGljdGlvbmFyeSAqdXNlckluZm8pKWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9B
VkFJTEFCTEUoaW9zKDExLjApKTsKIC0gKE5TVVJMICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdl
YlZpZXcgYWx0ZXJuYXRlVVJMRnJvbUltYWdlOihVSUltYWdlICopaW1hZ2UgdXNlckluZm86KE5T
RGljdGlvbmFyeSAqKil1c2VySW5mbyBXS19BUElfQVZBSUxBQkxFKGlvcygxMS4wKSk7Ci0tIChV
SVZpZXdDb250cm9sbGVyICopX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgcHJldmlld1Zp
ZXdDb250cm9sbGVyRm9ySW1hZ2U6KFVJSW1hZ2UgKilpbWFnZSBhbHRlcm5hdGVVUkw6KE5TVVJM
ICopdXJsIGRlZmF1bHRBY3Rpb25zOihOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4gKilhY3Rp
b25zIGVsZW1lbnRJbmZvOihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1lbnRJbmZvIFdL
X0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKKy0gKFVJVmlld0NvbnRyb2xsZXIgKilfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyBwcmV2aWV3Vmlld0NvbnRyb2xsZXJGb3JJbWFnZTooVUlJ
bWFnZSAqKWltYWdlIGFsdGVybmF0ZVVSTDooTlNVUkwgKil1cmwgZGVmYXVsdEFjdGlvbnM6KE5T
QXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPiAqKWFjdGlvbnMgZWxlbWVudEluZm86KF9XS0FjdGl2
YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8gV0tfQVBJX0RFUFJFQ0FURURfV0lUSF9SRVBM
QUNFTUVOVCgid2ViVmlldzpjb250ZXh0TWVudUNvbmZpZ3VyYXRpb25Gb3JFbGVtZW50OiIsIGlv
cygxMS4wLCBXS19JT1NfVEJBKSk7CiAtIChOU0FycmF5ICopX3dlYlZpZXc6KFdLV2ViVmlldyAq
KXdlYlZpZXcgYWRqdXN0ZWREYXRhSW50ZXJhY3Rpb25JdGVtUHJvdmlkZXJzOihOU0FycmF5ICop
b3JpZ2luYWxJdGVtUHJvdmlkZXJzIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKIC0gKE5T
QXJyYXkgKilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBhZGp1c3RlZERhdGFJbnRlcmFj
dGlvbkl0ZW1Qcm92aWRlcnNGb3JJdGVtUHJvdmlkZXI6KGlkKWl0ZW1Qcm92aWRlciByZXByZXNl
bnRpbmdPYmplY3RzOihOU0FycmF5ICopcmVwcmVzZW50aW5nT2JqZWN0cyBhZGRpdGlvbmFsRGF0
YTooTlNEaWN0aW9uYXJ5ICopYWRkaXRpb25hbERhdGEgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTEu
MCkpOwogLSAoQk9PTClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBwZXJmb3JtRGF0YUlu
dGVyYWN0aW9uT3BlcmF0aW9uV2l0aEl0ZW1Qcm92aWRlcnM6KE5TQXJyYXkgKilpdGVtUHJvdmlk
ZXJzIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5mby5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50SW5m
by5oCShyZXZpc2lvbiAyNDYxMzApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8uaAkod29ya2luZyBjb3B5KQpAQCAtNDcsNiArNDcs
NyBAQCBXS19DTEFTU19BVkFJTEFCTEUobWFjb3MoMTAuMTApLCBpb3MoOC4wCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgcmVhZG9ubHkpIF9XS0FjdGl2YXRlZEVsZW1lbnRUeXBlIHR5cGU7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIENHUmVjdCBib3VuZGluZ1JlY3Q7CiBAcHJvcGVy
dHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpJRCBXS19BUElfQVZBSUxBQkxFKG1h
Y29zKDEwLjEyKSwgaW9zKDEwLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSkg
Qk9PTCBpc0FuaW1hdGVkSW1hZ2UgV0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwg
aW9zKFdLX0lPU19UQkEpKTsKICNpZiBUQVJHRVRfT1NfSVBIT05FCiBAcHJvcGVydHkgKG5vbmF0
b21pYywgcmVhZG9ubHkpIE5TRGljdGlvbmFyeSAqdXNlckluZm8gV0tfQVBJX0FWQUlMQUJMRShp
b3MoMTEuMCkpOwogQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRvbmx5LCBjb3B5KSBVSUltYWdl
ICppbWFnZTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3Rp
dmF0ZWRFbGVtZW50SW5mby5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvX1dLQWN0aXZhdGVkRWxlbWVudEluZm8ubW0JKHJldmlzaW9uIDI0NjEzMCkK
KysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tBY3RpdmF0ZWRFbGVtZW50
SW5mby5tbQkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsNyBAQAogI2lmIFBMQVRGT1JNKE1B
QykKICAgICBSZXRhaW5QdHI8TlNJbWFnZT4gX25zSW1hZ2U7CiAjZW5kaWYKKyAgICBCT09MIF9h
bmltYXRlZEltYWdlOwogfQogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKQEAgLTgxLDYgKzgy
LDcgQEAgLSAoaW5zdGFuY2V0eXBlKV9pbml0V2l0aEludGVyYWN0aW9uSW5mbwogICAgIAogICAg
IF9pbWFnZSA9IGluZm9ybWF0aW9uLmltYWdlOwogICAgIF9JRCA9IGluZm9ybWF0aW9uLmlkQXR0
cmlidXRlOworICAgIF9hbmltYXRlZEltYWdlID0gaW5mb3JtYXRpb24uaXNBbmltYXRlZEltYWdl
OwogICAgIAogICAgIHJldHVybiBzZWxmOwogfQpAQCAtMTM2LDYgKzEzOCwxMSBAQCAtIChDR1Bv
aW50KV9pbnRlcmFjdGlvbkxvY2F0aW9uCiAgICAgcmV0dXJuIF9pbnRlcmFjdGlvbkxvY2F0aW9u
OwogfQogCistIChCT09MKWlzQW5pbWF0ZWRJbWFnZQoreworICAgIHJldHVybiBfYW5pbWF0ZWRJ
bWFnZTsKK30KKwogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAtIChOU0RpY3Rpb25hcnkgKil1
c2VySW5mbwogewpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3
SW1wbC5oCShyZXZpc2lvbiAyNDYxMzApCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9XZWJWaWV3SW1wbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDAsNiArMTQwLDcgQEAgY2xhc3Mg
V2ViRWRpdENvbW1hbmRQcm94eTsKIGNsYXNzIFdlYkZyYW1lUHJveHk7CiBjbGFzcyBXZWJQYWdl
UHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzUG9vbDsKK2NsYXNzIFdlYlByb2Nlc3NQcm94eTsKIHN0
cnVjdCBDb2xvclNwYWNlRGF0YTsKIHN0cnVjdCBXZWJIaXRUZXN0UmVzdWx0RGF0YTsKIApJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0JKHJldmlz
aW9uIDI0NjEzMCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBs
Lm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNTY5LDcgKzE1NjksNyBAQCB2b2lkIFdlYlZpZXdJbXBs
Ojp0YWtlRm9jdXMoV2ViQ29yZTo6Rm9jCiB7CiAgICAgTlNWaWV3ICp3ZWJWaWV3ID0gbV92aWV3
LmdldEF1dG9yZWxlYXNlZCgpOwogCi0gICAgaWYgKGRpcmVjdGlvbiA9PSBGb2N1c0RpcmVjdGlv
bkZvcndhcmQpIHsKKyAgICBpZiAoZGlyZWN0aW9uID09IFdlYkNvcmU6OkZvY3VzRGlyZWN0aW9u
Rm9yd2FyZCkgewogICAgICAgICAvLyBTaW5jZSB3ZSdyZSB0cnlpbmcgdG8gbW92ZSBmb2N1cyBv
dXQgb2YgbV93ZWJWaWV3LCBhbmQgYmVjYXVzZQogICAgICAgICAvLyBtX3dlYlZpZXcgbWF5IGNv
bnRhaW4gc3Vidmlld3Mgd2l0aGluIGl0LCB3ZSBhc2sgaXQgZm9yIHRoZSBuZXh0IGtleQogICAg
ICAgICAvLyB2aWV3IG9mIHRoZSBsYXN0IHZpZXcgaW4gaXRzIGtleSB2aWV3IGxvb3AuIFRoaXMg
bWFrZXMgbV93ZWJWaWV3CkBAIC0zNjExLDcgKzM2MTEsNyBAQCBpZCBXZWJWaWV3SW1wbDo6YWNj
ZXNzaWJpbGl0eUF0dHJpYnV0ZVZhCiAgICAgaWYgKFthdHRyaWJ1dGUgaXNFcXVhbFRvU3RyaW5n
OkAiQVhDb252ZXJ0UmVsYXRpdmVGcmFtZSJdKSB7CiAgICAgICAgIGlmIChbcGFyYW1ldGVyIGlz
S2luZE9mQ2xhc3M6W05TVmFsdWUgY2xhc3NdXSkgewogICAgICAgICAgICAgTlNSZWN0IHJlY3Qg
PSBbKE5TVmFsdWUgKilwYXJhbWV0ZXIgcmVjdFZhbHVlXTsKLSAgICAgICAgICAgIHJldHVybiBb
TlNWYWx1ZSB2YWx1ZVdpdGhSZWN0Om1fcGFnZUNsaWVudC0+cm9vdFZpZXdUb1NjcmVlbihJbnRS
ZWN0KHJlY3QpKV07CisgICAgICAgICAgICByZXR1cm4gW05TVmFsdWUgdmFsdWVXaXRoUmVjdDpt
X3BhZ2VDbGllbnQtPnJvb3RWaWV3VG9TY3JlZW4oV2ViQ29yZTo6SW50UmVjdChyZWN0KSldOwog
ICAgICAgICB9CiAgICAgfQogICAgIApJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQWN0aW9uU2hlZXRBc3Npc3RhbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCShyZXZpc2lvbiAyNDYxMzApCisr
KyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5oCSh3
b3JraW5nIGNvcHkpCkBAIC0zOCw2ICszOCw3IEBAIHN0cnVjdCBJbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbjsKIAogQGNsYXNzIFdLQWN0aW9uU2hlZXRBc3Npc3RhbnQ7CiBAY2xhc3Mg
X1dLQWN0aXZhdGVkRWxlbWVudEluZm87CitAY2xhc3MgX1dLRWxlbWVudEFjdGlvbjsKIEBwcm90
b2NvbCBXS0FjdGlvblNoZWV0RGVsZWdhdGU7CiAKIEBwcm90b2NvbCBXS0FjdGlvblNoZWV0QXNz
aXN0YW50RGVsZWdhdGUgPE5TT2JqZWN0PgpAQCAtNzYsOCArNzcsOCBAQCBzdHJ1Y3QgSW50ZXJh
Y3Rpb25JbmZvcm1hdGlvbkF0UG9zaXRpb247CiAtICh2b2lkKXNob3dEYXRhRGV0ZWN0b3JzU2hl
ZXQ7CiAtICh2b2lkKWNsZWFudXBTaGVldDsKIC0gKHZvaWQpdXBkYXRlU2hlZXRQb3NpdGlvbjsK
LS0gKFJldGFpblB0cjxOU0FycmF5PilkZWZhdWx0QWN0aW9uc0ZvckxpbmtTaGVldDooX1dLQWN0
aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbzsKLS0gKFJldGFpblB0cjxOU0FycmF5Pilk
ZWZhdWx0QWN0aW9uc0ZvckltYWdlU2hlZXQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxl
bWVudEluZm87CistIChSZXRhaW5QdHI8TlNBcnJheTxfV0tFbGVtZW50QWN0aW9uICo+PilkZWZh
dWx0QWN0aW9uc0ZvckxpbmtTaGVldDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50
SW5mbzsKKy0gKFJldGFpblB0cjxOU0FycmF5PF9XS0VsZW1lbnRBY3Rpb24gKj4+KWRlZmF1bHRB
Y3Rpb25zRm9ySW1hZ2VTaGVldDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5m
bzsKIC0gKEJPT0wpaXNTaG93aW5nU2hlZXQ7CiAtICh2b2lkKWludGVyYWN0aW9uRGlkU3RhcnRX
aXRoUG9zaXRpb25JbmZvcm1hdGlvbjooY29uc3QgV2ViS2l0OjpJbnRlcmFjdGlvbkluZm9ybWF0
aW9uQXRQb3NpdGlvbiYpaW5mb3JtYXRpb247CiAtIChOU0FycmF5ICopY3VycmVudEF2YWlsYWJs
ZUFjdGlvblRpdGxlczsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0FjdGlv
blNoZWV0QXNzaXN0YW50Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0FjdGlvblNoZWV0QXNzaXN0YW50Lm1tCShyZXZpc2lvbiAyNDYxMzApCisrKyBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tBY3Rpb25TaGVldEFzc2lzdGFudC5tbQkod29ya2lu
ZyBjb3B5KQpAQCAtNTI5LDcgKzUyOSw3IEBAIC0gKHZvaWQpX2FwcGVuZE9wZW5BY3Rpb25zRm9y
VVJMOihOU1VSTCAKICAgICBbZGVmYXVsdEFjdGlvbnMgYWRkT2JqZWN0OltfV0tFbGVtZW50QWN0
aW9uIF9lbGVtZW50QWN0aW9uV2l0aFR5cGU6X1dLRWxlbWVudEFjdGlvblR5cGVPcGVuIGFzc2lz
dGFudDpzZWxmXV07CiB9CiAKLS0gKFJldGFpblB0cjxOU0FycmF5PilkZWZhdWx0QWN0aW9uc0Zv
ckxpbmtTaGVldDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50SW5mbworLSAoUmV0
YWluUHRyPE5TQXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPj4pZGVmYXVsdEFjdGlvbnNGb3JMaW5r
U2hlZXQ6KF9XS0FjdGl2YXRlZEVsZW1lbnRJbmZvICopZWxlbWVudEluZm8KIHsKICAgICBOU1VS
TCAqdGFyZ2V0VVJMID0gW2VsZW1lbnRJbmZvIFVSTF07CiAgICAgaWYgKCF0YXJnZXRVUkwpCkBA
IC01NTYsNyArNTU2LDcgQEAgLSAoUmV0YWluUHRyPE5TQXJyYXk+KWRlZmF1bHRBY3Rpb25zRm9y
TAogICAgIHJldHVybiBkZWZhdWx0QWN0aW9uczsKIH0KIAotLSAoUmV0YWluUHRyPE5TQXJyYXk+
KWRlZmF1bHRBY3Rpb25zRm9ySW1hZ2VTaGVldDooX1dLQWN0aXZhdGVkRWxlbWVudEluZm8gKill
bGVtZW50SW5mbworLSAoUmV0YWluUHRyPE5TQXJyYXk8X1dLRWxlbWVudEFjdGlvbiAqPj4pZGVm
YXVsdEFjdGlvbnNGb3JJbWFnZVNoZWV0OihfV0tBY3RpdmF0ZWRFbGVtZW50SW5mbyAqKWVsZW1l
bnRJbmZvCiB7CiAgICAgTlNVUkwgKnRhcmdldFVSTCA9IFtlbGVtZW50SW5mbyBVUkxdOwogCklu
ZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlldy5oCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3LmgJKHJldmlz
aW9uIDI0NjEzMCkKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU0LDcgKzU0LDcgQEAgY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7
CiBAaW50ZXJmYWNlIFdLQ29udGVudFZpZXcgOiBXS0FwcGxpY2F0aW9uU3RhdGVUcmFja2luZ1Zp
ZXcgewogQHBhY2thZ2UKICAgICBSZWZQdHI8V2ViS2l0OjpXZWJQYWdlUHJveHk+IF9wYWdlOwot
ICAgIFdLV2ViVmlldyAqX3dlYlZpZXc7CisgICAgV0tXZWJWaWV3ICpfd2ViVmlldzsgLy8gRklY
TUU6IFRoaXMgc2hvdWxkIGJlIG1hZGUgYSBXZWFrT2JqQ1B0ciBvbmNlIGV2ZXJ5dGhpbmcgdGhh
dCByZWZlcnMgdG8gaXQgaXMgbW92ZWQgdG8gT3BlblNvdXJjZS4KIH0KIAogI3ByYWdtYSBjbGFu
ZyBkaWFnbm9zdGljIHB1c2gKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0Nv
bnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQkocmV2aXNpb24gMjQ2MTMwKQor
KysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bQkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsNyBAQAogI2ltcG9ydCAiVGV4dElucHV0U1BJ
LmgiCiAjaW1wb3J0ICJVSUtpdFNQSS5oIgogI2ltcG9ydCAiV0tBY3Rpb25TaGVldEFzc2lzdGFu
dC5oIgorI2ltcG9ydCAiV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvSW50ZXJuYWwuaCIKICNpbXBv
cnQgIldLRGF0ZVBpY2tlclZpZXdDb250cm9sbGVyLmgiCiAjaW1wb3J0ICJXS0RyYXdpbmdDb29y
ZGluYXRvci5oIgogI2ltcG9ydCAiV0tFcnJvci5oIgpAQCAtNzUxNSw3ICs3NTE2LDkgQEAgLSAo
VUlWaWV3Q29udHJvbGxlciAqKV9wcmVzZW50ZWRWaWV3Q29udAogCiAgICAgICAgICAgICBpZiAo
W3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpwcmV2aWV3
Vmlld0NvbnRyb2xsZXJGb3JBbmltYXRlZEltYWdlQXRVUkw6ZGVmYXVsdEFjdGlvbnM6ZWxlbWVu
dEluZm86aW1hZ2VTaXplOildKSB7CiAgICAgICAgICAgICAgICAgUmV0YWluUHRyPE5TQXJyYXk+
IGFjdGlvbnMgPSBbX2FjdGlvblNoZWV0QXNzaXN0YW50IGRlZmF1bHRBY3Rpb25zRm9ySW1hZ2VT
aGVldDphbmltYXRlZEltYWdlRWxlbWVudEluZm8uZ2V0KCldOworICAgICAgICAgICAgICAgIEFM
TE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAgICAgICAgcmV0dXJu
IFt1aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvckFu
aW1hdGVkSW1hZ2VBdFVSTDp0YXJnZXRVUkwgZGVmYXVsdEFjdGlvbnM6YWN0aW9ucy5nZXQoKSBl
bGVtZW50SW5mbzphbmltYXRlZEltYWdlRWxlbWVudEluZm8uZ2V0KCkgaW1hZ2VTaXplOl9wb3Np
dGlvbkluZm9ybWF0aW9uLmltYWdlLT5zaXplKCldOworICAgICAgICAgICAgICAgIEFMTE9XX0RF
UFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogICAgICAgICAgICAgfQogICAgICAgICB9CiAKQEAg
LTc1MzcsMTEgKzc1NDAsMTQgQEAgLSAoVUlWaWV3Q29udHJvbGxlciAqKV9wcmVzZW50ZWRWaWV3
Q29udAogICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAg
ICAgIH0KIAorICAgICAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19CRUdJTgogICAg
ICAgICBpZiAoW3VpRGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmll
dzpwcmV2aWV3Vmlld0NvbnRyb2xsZXJGb3JVUkw6ZGVmYXVsdEFjdGlvbnM6ZWxlbWVudEluZm86
KV0pCiAgICAgICAgICAgICByZXR1cm4gW3VpRGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZpZXcgcHJl
dmlld1ZpZXdDb250cm9sbGVyRm9yVVJMOnRhcmdldFVSTCBkZWZhdWx0QWN0aW9uczphY3Rpb25z
LmdldCgpIGVsZW1lbnRJbmZvOmVsZW1lbnRJbmZvLmdldCgpXTsKIAogICAgICAgICBpZiAoW3Vp
RGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpwcmV2aWV3Vmll
d0NvbnRyb2xsZXJGb3JVUkw6KV0pCiAgICAgICAgICAgICByZXR1cm4gW3VpRGVsZWdhdGUgX3dl
YlZpZXc6X3dlYlZpZXcgcHJldmlld1ZpZXdDb250cm9sbGVyRm9yVVJMOnRhcmdldFVSTF07Cisg
ICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAorCiAgICAgICAgIHJldHVy
biBuaWw7CiAgICAgfQogCkBAIC03NTYyLDEyICs3NTY4LDE2IEBAIC0gKFVJVmlld0NvbnRyb2xs
ZXIgKilfcHJlc2VudGVkVmlld0NvbnQKICAgICAgICAgUmV0YWluUHRyPF9XS0FjdGl2YXRlZEVs
ZW1lbnRJbmZvPiBlbGVtZW50SW5mbyA9IGFkb3B0TlMoW1tfV0tBY3RpdmF0ZWRFbGVtZW50SW5m
byBhbGxvY10gX2luaXRXaXRoVHlwZTpfV0tBY3RpdmF0ZWRFbGVtZW50VHlwZUltYWdlIFVSTDph
bHRlcm5hdGVVUkwuZ2V0KCkgaW1hZ2VVUkw6bmlsIGxvY2F0aW9uOl9wb3NpdGlvbkluZm9ybWF0
aW9uLnJlcXVlc3QucG9pbnQgdGl0bGU6X3Bvc2l0aW9uSW5mb3JtYXRpb24udGl0bGUgSUQ6X3Bv
c2l0aW9uSW5mb3JtYXRpb24uaWRBdHRyaWJ1dGUgcmVjdDpfcG9zaXRpb25JbmZvcm1hdGlvbi5i
b3VuZHMgaW1hZ2U6X3Bvc2l0aW9uSW5mb3JtYXRpb24uaW1hZ2UuZ2V0KCkgdXNlckluZm86aW1h
Z2VJbmZvLmdldCgpXSk7CiAgICAgICAgIF9wYWdlLT5zdGFydEludGVyYWN0aW9uV2l0aEVsZW1l
bnRBdFBvc2l0aW9uKF9wb3NpdGlvbkluZm9ybWF0aW9uLnJlcXVlc3QucG9pbnQpOwogCisgICAg
ICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIGlmIChbdWlE
ZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OndpbGxQcmV2aWV3
SW1hZ2VXaXRoVVJMOildKQogICAgICAgICAgICAgW3VpRGVsZWdhdGUgX3dlYlZpZXc6X3dlYlZp
ZXcgd2lsbFByZXZpZXdJbWFnZVdpdGhVUkw6dGFyZ2V0VVJMXTsKKyAgICAgICAgQUxMT1dfREVQ
UkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAKICAgICAgICAgYXV0byBkZWZhdWx0QWN0aW9ucyA9
IFtfYWN0aW9uU2hlZXRBc3Npc3RhbnQgZGVmYXVsdEFjdGlvbnNGb3JJbWFnZVNoZWV0OmVsZW1l
bnRJbmZvLmdldCgpXTsKICAgICAgICAgaWYgKGltYWdlSW5mbyAmJiBbdWlEZWxlZ2F0ZSByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3OnByZXZpZXdWaWV3Q29udHJvbGxlckZv
ckltYWdlOmFsdGVybmF0ZVVSTDpkZWZhdWx0QWN0aW9uczplbGVtZW50SW5mbzopXSkgeworICAg
ICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfQkVHSU4KICAgICAgICAgICAg
IFVJVmlld0NvbnRyb2xsZXIgKnByZXZpZXdWaWV3Q29udHJvbGxlciA9IFt1aURlbGVnYXRlIF93
ZWJWaWV3Ol93ZWJWaWV3IHByZXZpZXdWaWV3Q29udHJvbGxlckZvckltYWdlOnVpSW1hZ2UuZ2V0
KCkgYWx0ZXJuYXRlVVJMOmFsdGVybmF0ZVVSTC5nZXQoKSBkZWZhdWx0QWN0aW9uczpkZWZhdWx0
QWN0aW9ucy5nZXQoKSBlbGVtZW50SW5mbzplbGVtZW50SW5mby5nZXQoKV07CisgICAgICAgICAg
ICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKICAgICAgICAgICAgIGlmIChwcmV2
aWV3Vmlld0NvbnRyb2xsZXIpCiAgICAgICAgICAgICAgICAgcmV0dXJuIHByZXZpZXdWaWV3Q29u
dHJvbGxlcjsKICAgICAgICAgfQpAQCAtNzU4Niw3ICs3NTk2LDkgQEAgLSAodm9pZClfcHJldmll
d0l0ZW1Db250cm9sbGVyOihVSVByZXZpZQogICAgICAgICAgICAgY29uc3QgVVJMJiBpbWFnZVVS
TCA9IF9wb3NpdGlvbkluZm9ybWF0aW9uLmltYWdlVVJMOwogICAgICAgICAgICAgaWYgKGltYWdl
VVJMLmlzRW1wdHkoKSB8fCAhKGltYWdlVVJMLnByb3RvY29sSXNJbkhUVFBGYW1pbHkoKSB8fCBp
bWFnZVVSTC5wcm90b2NvbElzKCJkYXRhIikpKQogICAgICAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgICAg
ICBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyBjb21taXRQcmV2aWV3ZWRJbWFnZVdpdGhV
Ukw6KE5TVVJMICopaW1hZ2VVUkxdOworICAgICAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfRU5ECiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KICAgICAgICAgcmV0
dXJuOwpAQCAtNzYwMCw3ICs3NjEyLDkgQEAgLSAodm9pZClfcHJldmlld0l0ZW1Db250cm9sbGVy
OihVSVByZXZpZQogICAgIH0KIAogICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKF93ZWJWaWV3OmNvbW1pdFByZXZpZXdlZFZpZXdDb250cm9sbGVyOildKSB7
CisgICAgICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAgICAgIFt1
aURlbGVnYXRlIF93ZWJWaWV3Ol93ZWJWaWV3IGNvbW1pdFByZXZpZXdlZFZpZXdDb250cm9sbGVy
OnZpZXdDb250cm9sbGVyXTsKKyAgICAgICAgQUxMT1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNf
RU5ECiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTc2MjQsMTEgKzc2MzgsMTMgQEAgLSAo
dm9pZClfaW50ZXJhY3Rpb25TdG9wcGVkRnJvbVByZXZpZXdJdAogLSAodm9pZClfcHJldmlld0l0
ZW1Db250cm9sbGVyOihVSVByZXZpZXdJdGVtQ29udHJvbGxlciAqKWNvbnRyb2xsZXIgZGlkRGlz
bWlzc1ByZXZpZXc6KFVJVmlld0NvbnRyb2xsZXIgKil2aWV3Q29udHJvbGxlciBjb21taXR0aW5n
OihCT09MKWNvbW1pdHRpbmcKIHsKICAgICBpZDxXS1VJRGVsZWdhdGVQcml2YXRlPiB1aURlbGVn
YXRlID0gc3RhdGljX2Nhc3Q8aWQgPFdLVUlEZWxlZ2F0ZVByaXZhdGU+PihbX3dlYlZpZXcgVUlE
ZWxlZ2F0ZV0pOworICAgIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0JFR0lOCiAgICAg
aWYgKFt1aURlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6ZGlk
RGlzbWlzc1ByZXZpZXdWaWV3Q29udHJvbGxlcjpjb21taXR0aW5nOildKQogICAgICAgICBbdWlE
ZWxlZ2F0ZSBfd2ViVmlldzpfd2ViVmlldyBkaWREaXNtaXNzUHJldmlld1ZpZXdDb250cm9sbGVy
OnZpZXdDb250cm9sbGVyIGNvbW1pdHRpbmc6Y29tbWl0dGluZ107CiAgICAgZWxzZSBpZiAoW3Vp
RGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihfd2ViVmlldzpkaWREaXNtaXNz
UHJldmlld1ZpZXdDb250cm9sbGVyOildKQogICAgICAgICBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpf
d2ViVmlldyBkaWREaXNtaXNzUHJldmlld1ZpZXdDb250cm9sbGVyOnZpZXdDb250cm9sbGVyXTsK
LSAgICAKKyAgICBBTExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKKwogICAgIFtfd2Vi
VmlldyBfZGlkRGlzbWlzc0ZvcmNlUHJlc3NQcmV2aWV3XTsKIH0KIApJbmRleDogU291cmNlL1dl
YktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyNDYx
MzApCisrKyBTb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDc0LDYgKzEwNzQsOCBAQAogCQk1QzRCOUQ4QjIxMEE4Q0NGMDA4
RjE0RDEgLyogVW5kb09yUmVkby5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNUM0QjlEOEEyMTBBOEM0NjAwOEYxNEQxIC8qIFVuZG9PclJlZG8uaCAqLzsg
fTsKIAkJNUM1RDIzOEMyMjdBMkNEQTAwMEI5QkRBIC8qIF9XS0N1c3RvbUhlYWRlckZpZWxkcy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM1RDIzODky
MjdBMTg5MjAwMEI5QkRBIC8qIF9XS0N1c3RvbUhlYWRlckZpZWxkcy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTVDNjJGREY5MUVGQzI3MUMwMENF
MDcyRSAvKiBXS1VSTFNjaGVtZVRhc2tQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1QzYyRkRGODFFRkMyNjNDMDBDRTA3MkUgLyogV0tVUkxT
Y2hlbWVUYXNrUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTVDNzk1RDcwMjI5RjM3M0YwMDNGRjFDNCAvKiBXS0NvbnRleHRNZW51RWxl
bWVudEluZm8uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDVDRTBDMzY5MjI5RjJENEEwMDM2OTVGMCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm8uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQdWJsaWMsICk7IH07IH07CisJCTVDNzk1RDcx
MjI5RjM3NTcwMDNGRjFDNCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm9Qcml2YXRlLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0UwQzM2QTIyOUYy
RDRBMDAzNjk1RjAgLyogV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvUHJpdmF0ZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTVDN0ZCNDcwMjFFOTdE
QzUwMDlFMzI0MSAvKiBXZWJDb29raWVKYXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDVDN0ZCNDZGMjFFOTdDMEMwMDlFMzI0MSAvKiBXZWJDb29raWVK
YXIuaCAqLzsgfTsKIAkJNUM4QkM3OTcyMThDQkI0ODAwODEzODg2IC8qIFNhZmVCcm93c2luZy54
Y2Fzc2V0cyBpbiBSZXNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NUM4QkM3OTYyMThDQjU4QTAwODEzODg2IC8qIFNhZmVCcm93c2luZy54Y2Fzc2V0cyAqLzsgfTsK
IAkJNUM4REQzODAxRkU0NTIxNjAwRjJBNTU2IC8qIFdlYnNpdGVBdXRvcGxheVBvbGljeS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUM4REQzN0YxRkU0
NTE5MjAwRjJBNTU2IC8qIFdlYnNpdGVBdXRvcGxheVBvbGljeS5oICovOyB9OwpAQCAtMzU3Niw2
ICszNTc4LDEyIEBACiAJCTVDRDI4NjRFMUU3MjJGNDQwMDk0RkRDOCAvKiBXS0NvbnRlbnRSdWxl
TGlzdFN0b3JlLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV0tD
b250ZW50UnVsZUxpc3RTdG9yZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNE
Mjg2NEYxRTcyMkY0NDAwOTRGREM4IC8qIFdLQ29udGVudFJ1bGVMaXN0U3RvcmVJbnRlcm5hbC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0NvbnRlbnRSdWxlTGlzdFN0b3Jl
SW50ZXJuYWwuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNEMjg2NTAxRTcyMkY0
NDAwOTRGREM4IC8qIFdLQ29udGVudFJ1bGVMaXN0U3RvcmVQcml2YXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29udGVudFJ1bGVMaXN0U3RvcmVQcml2YXRlLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDRTBDMzY2MjI5RjJEM0QwMDM2OTVGMCAvKiBB
UElDb250ZXh0TWVudUVsZW1lbnRJbmZvLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IEFQSUNvbnRleHRNZW51RWxlbWVudEluZm8uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk1Q0UwQzM2NzIyOUYyRDNFMDAzNjk1RjAgLyogQVBJQ29udGV4dE1lbnVF
bGVtZW50SW5mby5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElDb250ZXh0
TWVudUVsZW1lbnRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDRTBDMzY4
MjI5RjJENEEwMDM2OTVGMCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm8ubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXS0NvbnRleHRNZW51RWxlbWVudEluZm8u
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDRTBDMzY5MjI5RjJENEEwMDM2OTVG
MCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm8uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTVDRTBDMzZBMjI5RjJENEEwMDM2OTVGMCAvKiBXS0NvbnRleHRNZW51RWxlbWVu
dEluZm9Qcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29udGV4
dE1lbnVFbGVtZW50SW5mb1ByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NUNFMEMzNkIyMjlGMkQ0QjAwMzY5NUYwIC8qIFdLQ29udGV4dE1lbnVFbGVtZW50SW5mb0ludGVy
bmFsLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQ29udGV4dE1lbnVFbGVt
ZW50SW5mb0ludGVybmFsLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDRTg1QjFG
MUM4OEU2NDMwMDcwQkZDRSAvKiBQaW5nTG9hZC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBQaW5nTG9hZC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0U5MTIw
QjIyOTNDMUUwMDA1QkVDNzggLyogV0tNYWluLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdLTWFpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0U5MTIwQzIy
OTNDMUUwMDA1QkVDNzggLyogV0tNYWluLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gV0tNYWluLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjI1
Nyw2ICs2MjY1LDEwIEBACiAJCQkJNUNEMjg2NEUxRTcyMkY0NDAwOTRGREM4IC8qIFdLQ29udGVu
dFJ1bGVMaXN0U3RvcmUubW0gKi8sCiAJCQkJNUNEMjg2NEYxRTcyMkY0NDAwOTRGREM4IC8qIFdL
Q29udGVudFJ1bGVMaXN0U3RvcmVJbnRlcm5hbC5oICovLAogCQkJCTVDRDI4NjUwMUU3MjJGNDQw
MDk0RkRDOCAvKiBXS0NvbnRlbnRSdWxlTGlzdFN0b3JlUHJpdmF0ZS5oICovLAorCQkJCTVDRTBD
MzY5MjI5RjJENEEwMDM2OTVGMCAvKiBXS0NvbnRleHRNZW51RWxlbWVudEluZm8uaCAqLywKKwkJ
CQk1Q0UwQzM2ODIyOUYyRDRBMDAzNjk1RjAgLyogV0tDb250ZXh0TWVudUVsZW1lbnRJbmZvLm1t
ICovLAorCQkJCTVDRTBDMzZCMjI5RjJENEIwMDM2OTVGMCAvKiBXS0NvbnRleHRNZW51RWxlbWVu
dEluZm9JbnRlcm5hbC5oICovLAorCQkJCTVDRTBDMzZBMjI5RjJENEEwMDM2OTVGMCAvKiBXS0Nv
bnRleHRNZW51RWxlbWVudEluZm9Qcml2YXRlLmggKi8sCiAJCQkJMUFGNDU5MkQxOTQ2NEIyMDAw
RjlENEEyIC8qIFdLRXJyb3IuaCAqLywKIAkJCQkxQUY0NTkyQzE5NDY0QjIwMDBGOUQ0QTIgLyog
V0tFcnJvci5tbSAqLywKIAkJCQkxQTJEMjUyQTE5NDY4OEZEMDA0NTM3QjAgLyogV0tFcnJvcklu
dGVybmFsLmggKi8sCkBAIC03NzIzLDYgKzc3MzUsOCBAQAogCQkJCTdDM0EwNkE1MUFBQjkwM0Uw
MDlENzRCQSAvKiBBUElDb250ZW50UnVsZUxpc3RTdG9yZS5jcHAgKi8sCiAJCQkJN0MzQTA2QTYx
QUFCOTAzRTAwOUQ3NEJBIC8qIEFQSUNvbnRlbnRSdWxlTGlzdFN0b3JlLmggKi8sCiAJCQkJMDc2
RTg4NEQxQTEzQ0FERjAwNUU5MEZDIC8qIEFQSUNvbnRleHRNZW51Q2xpZW50LmggKi8sCisJCQkJ
NUNFMEMzNjYyMjlGMkQzRDAwMzY5NUYwIC8qIEFQSUNvbnRleHRNZW51RWxlbWVudEluZm8uY3Bw
ICovLAorCQkJCTVDRTBDMzY3MjI5RjJEM0UwMDM2OTVGMCAvKiBBUElDb250ZXh0TWVudUVsZW1l
bnRJbmZvLmggKi8sCiAJCQkJNUM1RDIzOEEyMjdBMUQ5QjAwMEI5QkRBIC8qIEFQSUN1c3RvbUhl
YWRlckZpZWxkcy5oICovLAogCQkJCTdBODIxRjRGMUUyRjdBNUMwMDYwNDU3NyAvKiBBUElDdXN0
b21Qcm90b2NvbE1hbmFnZXJDbGllbnQuaCAqLywKIAkJCQk4Mzg5MUI2MjFBNjhCMzQyMDAzMEYz
ODYgLyogQVBJRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCAqLywKQEAgLTk4OTksNiArOTkxMyw4
IEBACiAJCQkJMUE0NDVCQTMxODRENUZDRjAwNEIzNDE0IC8qIFdLQ29udGV4dERvd25sb2FkQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTQ0NUJBMTE4NEQ1RkMxMDA0QjM0MTQgLyogV0tD
b250ZXh0SGlzdG9yeUNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0NDVCOUYxODRENUZC
NTAwNEIzNDE0IC8qIFdLQ29udGV4dEluamVjdGVkQnVuZGxlQ2xpZW50LmggaW4gSGVhZGVycyAq
LywKKwkJCQk1Qzc5NUQ3MDIyOUYzNzNGMDAzRkYxQzQgLyogV0tDb250ZXh0TWVudUVsZW1lbnRJ
bmZvLmggaW4gSGVhZGVycyAqLywKKwkJCQk1Qzc5NUQ3MTIyOUYzNzU3MDAzRkYxQzQgLyogV0tD
b250ZXh0TWVudUVsZW1lbnRJbmZvUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFBNTU1
RjYxMjhDNkM0NzAwOUFCQ0VDIC8qIFdLQ29udGV4dE1lbnVJdGVtLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1MUE1NTYwMTEyOEM2RDkyMDA5QUJDRUMgLyogV0tDb250ZXh0TWVudUl0ZW1UeXBlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTFFQTAyMzgxREFCRkY3RTAwOTYwMjFGIC8qIFdLQ29udGV4
dE1lbnVMaXN0ZW5lci5oIGluIEhlYWRlcnMgKi8sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>